{"_id":"pipework","_rev":"116-7ae9884d203e53f32814c4feb1c969ab","name":"pipework","dist-tags":{"latest":"0.52.2"},"versions":{"0.1.0":{"name":"pipework","version":"0.1.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"60dd9046ca44fd78b02a8d8704648feb73cc0986","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.0.tgz","fileCount":732,"integrity":"sha512-greiHimmEL2w4nR97UiGr5P9tw0jAnn3rGnGTVjrfFWjoWI3cwPyVOuiaaAVkuWuYYBgh4gc4x1LhxKmx8gYag==","signatures":[{"sig":"MEUCIGHHieJuB6mXNrz8R4qBjnP5/i3YT2oofhyJyWOteMl3AiEA9t1f6UyLb5iZvvx49z9JxwtybHp258vqZR1wsNL71SY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":687735},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"}},"gitHead":"d654a35c78b28a5d462d2b937b24160eef08831c","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.0_1778090220826_0.3703977522089894","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"pipework","version":"0.1.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1d5c46bd5d50823aa7d0a85387174d29f02d6209","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.1.tgz","fileCount":740,"integrity":"sha512-EuTcHleg64PDZuKD9hsmUBescvqZbaQWHbI4RZA5ruPDf7/Q1DVIdVPenQN+tM3llzyOdqb7K1o4GvDgX0eWTw==","signatures":[{"sig":"MEUCIA7Gm0E6MyYNzeNlX8skVlG2cQrrt893dnEdiym8imUvAiEAmT6mSUoj9emRD8eoKFoSal3oa9cVJksFkqL4xZ4fMXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":696358},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"}},"gitHead":"8a36c7f4238c2668e6c9634e604dab652921372a","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.1_1778093854663_0.8821744849017399","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"pipework","version":"0.1.2","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.2","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"960f98c54ce7aa9c86f7bfec02d38550f6b3f526","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.2.tgz","fileCount":740,"integrity":"sha512-f8qdpdWPGB4b7Dw9GcBQW8U6hc1kKNQO3HK4tUi2j1IbvusjOBlvpPgyVbxum+HMZOYo1v8A17ORntr6LNHxPQ==","signatures":[{"sig":"MEYCIQCng2ojwj4mB8ZxOEaCH5n0B3/9uEclvfCmBQersnBOWQIhAI0J9OuEUhp72sv2/rY4IpdND/3Mj4DgWJVdKf6Rb2Ua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":696605},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"_resolved":"/tmp/89425517bff9ad3e00c5fe502832af36/pipework-0.1.2.tgz","_integrity":"sha512-f8qdpdWPGB4b7Dw9GcBQW8U6hc1kKNQO3HK4tUi2j1IbvusjOBlvpPgyVbxum+HMZOYo1v8A17ORntr6LNHxPQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.2_1778099781051_0.18103762489088138","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"pipework","version":"0.1.3","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.3","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"4fd5ea3d8936bac92a78a1bd28aa129d2170f85f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.3.tgz","fileCount":788,"integrity":"sha512-36H9DEAMfWUR1F9hGggBVSETFVwwuLYF5CZvPHnMe1hxCSdAwd1+e7G7jboaDBZnMlmw3kyeoQCo7U59PQWcFQ==","signatures":[{"sig":"MEUCIEauwdnF4Inm95XUEQllCFFs/uVOYEznDrzCjji7aFfHAiEAmWXV+GJSmhEeE17sLgGDrm1tsgTUxVP/czpy6ootQKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765107},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"_resolved":"/tmp/f44611ab47c29d211676376a658ad356/pipework-0.1.3.tgz","_integrity":"sha512-36H9DEAMfWUR1F9hGggBVSETFVwwuLYF5CZvPHnMe1hxCSdAwd1+e7G7jboaDBZnMlmw3kyeoQCo7U59PQWcFQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.3_1778102038087_0.7558788277853321","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"pipework","version":"0.1.4","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.4","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"75a083ff0d95b6e52158a7ba94cbf4fe7b31c5b0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.4.tgz","fileCount":792,"integrity":"sha512-9eX8b9VqVudo2ljkkg+a4a/pntS528r3L+MuY+6KnGLLMWGm+um0wPRNqQ159YyTdyMGu/g7aBKpN0URiJJ1cw==","signatures":[{"sig":"MEQCIHup1M3z4F049YzDtRlL3DFViN4B/fB2aGCwfr6m9vQVAiB9um+AVwEMtZ3PUHlN2FT8PLL06z1Dv64LnDVIaF/h9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768523},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"}},"gitHead":"af820fadd2e83bd500c2ed300bdac702417b0efa","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.4_1778105501106_0.028890528772825164","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"pipework","version":"0.1.5","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.1.5","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"475964ac8de0f4f459f9dd8d05fa3a86898bc3dd","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.1.5.tgz","fileCount":792,"integrity":"sha512-5UuvjJZHqy+RJ3dlxKbZ5WWmUdZBao5r0263KpGzxXYHiehkIL+hIy0ToOZ+kJmqT7T7Eo8WL5+OAV8VD58aOA==","signatures":[{"sig":"MEUCIQCfOEVrlRML9ZJH752sgfYtLj6soAIimwbunaktYTIw8gIgPYbwg0/f/D6dPbQ9MFAzQuQpEJH+mRqHDDhj5oiABLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769419},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"}},"gitHead":"320f7de6cc79afca1cb7d136911d056fdcb77b35","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.1.5_1778109642033_0.027191917890467376","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pipework","version":"0.2.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.2.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1d6cbab3481e3166cc52c47f00aaef9db1654f49","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.2.0.tgz","fileCount":820,"integrity":"sha512-tZauTO2G2H3bfp5jCxA7wN4M+FCgpsUmHgsSHQcPxGUyojJxk+KRmoBepz5wL9+DjokFb6H8AJl4IgmbN926Cw==","signatures":[{"sig":"MEQCIBLjPzyZnWPXUbsRdwVFbjF+8bjpEk8fpQXbCTCwN705AiAZSoaD8nfpfeVLPcgGujxY6aMuyunD2kahc4N+3UR4Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":815208},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"5bc41d7f50c844333172d1d3ec7b15fa43b029d7","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.2.0_1778115250548_0.10331783834066299","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pipework","version":"0.3.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.3.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ef53d26cc9b48cabbe2b75c445a53d026ceada5f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.3.0.tgz","fileCount":836,"integrity":"sha512-nyfQF5JtFEpsL8YWoKajBXVMPEnrhyN8PcTZw8wr77W1N5tGWqYELC7qaL0gA1Ami+YISyFflmatXTTSkFnARw==","signatures":[{"sig":"MEQCH1SPRhqAvWS0faQI88brOUpjaHV658NO3+mEkrcf6yUCIQDd4KA0vthN/xQ+gALM1g2+o42so0OazBlKw5KGnQIQQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856242},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/93e69b0676f393ee9c6fe0706f04f0b1/pipework-0.3.0.tgz","_integrity":"sha512-nyfQF5JtFEpsL8YWoKajBXVMPEnrhyN8PcTZw8wr77W1N5tGWqYELC7qaL0gA1Ami+YISyFflmatXTTSkFnARw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.3.0_1778155198220_0.882623375132789","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"pipework","version":"0.3.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.3.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"bdbe8fde772f5d7c7905499a589c5d2a195514a6","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.3.1.tgz","fileCount":837,"integrity":"sha512-czRLICYs6PxR1d0NGAuTXP4jh133lDt1EKYSWynHroPNXsIHkE4Ibfswmybz+gMpBaUz5iOeOvIsJ0kLhIjKHw==","signatures":[{"sig":"MEUCIFLRsSjqAbNP1lMG6pIkBSfKrHBIr8TBJlP4vY5p0lTHAiEAqUTypxB71QCQTYX2AyGnvijQ8qx24q7uu2zFFe3OshM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856378},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/b102beda1fd526b9e7eba967a5ed298e/pipework-0.3.1.tgz","_integrity":"sha512-czRLICYs6PxR1d0NGAuTXP4jh133lDt1EKYSWynHroPNXsIHkE4Ibfswmybz+gMpBaUz5iOeOvIsJ0kLhIjKHw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.3.1_1778155498061_0.7349049754627297","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pipework","version":"0.4.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.4.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"417c7be4cb3285c0e946d5139dead6c0e3bfc3bc","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.4.0.tgz","fileCount":837,"integrity":"sha512-zKyE3C1s26CWaZBn2Z1D5A/B4/8dGcZ0+a7G2ll457zmCTqkB1/66A+8xaDQmZP+pZYDufBB2nUDhBhS03ySIg==","signatures":[{"sig":"MEUCIBFpyXPTcdmIB9lMDuoulrse0tWhx31vl1bidVmv5LVPAiEAyg6rC68aSCtCAaLKTSjoJ6PWmpNO+mPJdBlJtSFtpeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856378},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/5a66e7891b1f18d3ea9e8fbdf94943ac/pipework-0.4.0.tgz","_integrity":"sha512-zKyE3C1s26CWaZBn2Z1D5A/B4/8dGcZ0+a7G2ll457zmCTqkB1/66A+8xaDQmZP+pZYDufBB2nUDhBhS03ySIg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.4.0_1778160734808_0.1464813842281989","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"pipework","version":"0.4.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.4.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"f69e067e72bf1853cd1978c290954d8207d6c9af","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.4.1.tgz","fileCount":873,"integrity":"sha512-yUVq+mWTo3uXqkSRs6Nu/IJTdvOnKUAOZTJZ9fZEWrPo7pAx/rLxdypHodm2VnLCbkQ4bIDqnjohFsIUYyCnXQ==","signatures":[{"sig":"MEUCIDL82EJzbmY+r4Gs/lc17aNwYK7+kwebfVWS+LlMs/VpAiEAt1RNkJcE424WdT2WNXLIEOFW+OuQtQnWrKq9hIqrvmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":918309},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/bd285fc9131abcd4e5d048e399212520/pipework-0.4.1.tgz","_integrity":"sha512-yUVq+mWTo3uXqkSRs6Nu/IJTdvOnKUAOZTJZ9fZEWrPo7pAx/rLxdypHodm2VnLCbkQ4bIDqnjohFsIUYyCnXQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.4.1_1778161083076_0.09535895856308474","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"pipework","version":"0.5.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.5.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ab475c7a3612f3c4f2454dae10a7a0b97f4e77ff","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.5.0.tgz","fileCount":941,"integrity":"sha512-jyu+PXrpgDVL/3PZ4/Hvb1m99V64tnA/JjYAPwpQQ/W4aiUemE2zUvesF6sj1F+7YEApLr+2FScJhYGrokNqyQ==","signatures":[{"sig":"MEUCIQCSWow2eWy2h2+kQOpF6XNICNb65RxWw+Aeu6auPhUPuAIgOU3AcMLZgUEYR2ex5l6NSHyJg6n/zz61FeUSO66WySM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1041871},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/cf526a34a23a41f7691f3561e77af272/pipework-0.5.0.tgz","_integrity":"sha512-jyu+PXrpgDVL/3PZ4/Hvb1m99V64tnA/JjYAPwpQQ/W4aiUemE2zUvesF6sj1F+7YEApLr+2FScJhYGrokNqyQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.5.0_1778176930014_0.24695436216798505","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"pipework","version":"0.6.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.6.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"831cfa36173c96608d69be0fb421c5faed2be14f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.6.0.tgz","fileCount":993,"integrity":"sha512-Il9ybdm0DssgE33HUEl4E09ZggBAB39DIjZLBE+E0s65kYP+8Rj21JxJK3TKuvi2oLZgy7cizO5Zpv4AGKlV6Q==","signatures":[{"sig":"MEUCIB7dkxBQhXOWapOiPDcwKBmBhnxFvsICXBC/4IHnPbf3AiEA4INE20niW2mdhHZm8ilxMXHEZUf62Aa13dmFR8KUxGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1119079},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/3bd10dcdac84bf4469e659c840811822/pipework-0.6.0.tgz","_integrity":"sha512-Il9ybdm0DssgE33HUEl4E09ZggBAB39DIjZLBE+E0s65kYP+8Rj21JxJK3TKuvi2oLZgy7cizO5Zpv4AGKlV6Q==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.6.0_1778182771393_0.3892494551231742","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"pipework","version":"0.6.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.6.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"2a395e245a9435cdd21807899a60ded92066ef46","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.6.1.tgz","fileCount":993,"integrity":"sha512-8nYURcE9QHsk1iyrAL+KWXvOvsL8zQoP3kN3pUOpSGvbTGl3cxYaRwbyPh4I8kzvAWB1cXPRjFw4CTZ3R9vK+A==","signatures":[{"sig":"MEUCIGY20PdTmq2iOTbBT3UWNw1g2KUIOr6tfgKlwZRpPBUnAiEAipQU9zcZwA5URh2r4hLINeugBNePJNS/8s8ezHMF4aU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136630},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.6.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"_resolved":"/tmp/d3bf0f3083b6489f13f80d647a978647/pipework-0.6.1.tgz","_integrity":"sha512-8nYURcE9QHsk1iyrAL+KWXvOvsL8zQoP3kN3pUOpSGvbTGl3cxYaRwbyPh4I8kzvAWB1cXPRjFw4CTZ3R9vK+A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.6.1_1778188399807_0.29389659863752904","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"pipework","version":"0.6.2","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.6.2","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"8299d4303375365f7b5eb16e58606fa3b1823efc","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.6.2.tgz","fileCount":993,"integrity":"sha512-r0G8KU8Mscv6Sa0GMoGnM+jHp+htdd0oxSpAdpPwOQ0TBOYsrIdrBgCGukjExnb0B7+6GZ0Xn8aT0nDT1y2V5w==","signatures":[{"sig":"MEYCIQCgagr5iICPjDF2Noyc8D2mDLlR/cRPSUBowXbQhuwvdgIhALNfnV4wuwmSfyCoXf/Xv44Ki1XzHIZpg0grKB+4OJ8F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136791},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"8e04b4d18082c70c6d3ede00cca219d73c3366de","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.6.2_1778204482202_0.9579234732775566","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"pipework","version":"0.6.3","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.6.3","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"46100ee92469357c6eb4be2a3ff8b8fa89338475","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.6.3.tgz","fileCount":993,"integrity":"sha512-+zeWnPjSssm75M1zOB8YlLZs7r604l6Zi1U0ZficnrLrXYSvdRKbb+L3TCEjxRFe+aF7XDdVeI/DezLTeeZXnQ==","signatures":[{"sig":"MEUCICxx8nKSpSwJpnHJEUcIrfvJX6LnkvZY9uIeIDO8DixyAiEA0zqxe/3Qy2CmRl3VvPEzy4aQPj0mR/YuaXW0DaGTiU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1137066},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"b2f4cc666a15c9b39b13eadebe1c26775c959920","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"zod":{"optional":true},"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.6.3_1778205532503_0.791998711062122","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"pipework","version":"0.6.4","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.6.4","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"210d6dca0c5dd1e179788f112ff854c4ad103e5f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.6.4.tgz","fileCount":993,"integrity":"sha512-aGSXgPA5HY39BPLwzZTwxy7QE3/DYFK0hRk9A9OK9t8dThzRVUGuKX6v18Z7DFU+6cTs2Z+SHZFgXW7Givw7gg==","signatures":[{"sig":"MEYCIQCvctR8hjrCPI2JIf4AFa9orwkqnp9I6bjoClhbl5hr8QIhAJel+BXKLCW/uA0ygoLz1CpSWHWM58OQOrJPd7BhlQig","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1137327},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"6754314a0f96338bc0f3f50f379ac38501576955","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/migrate/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"zod":{"optional":true},"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.6.4_1778206654168_0.9962927028917343","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"pipework","version":"0.7.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"73ddfb37c5f452b3563138a4b04c2774942034f8","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.0.tgz","fileCount":961,"integrity":"sha512-0ABRFz5kvzkxVhacUuga4i+KAfULUX2sikdc/yPebvdH1mOQNoP3KbmC5WiSjbsERAYEZuhqMwi+i3sty8YAIQ==","signatures":[{"sig":"MEQCIDV3J0m076PAi6YOympSkHAT0jwDMKRiyfigLs4gq4nKAiArWfLPvwE4aMpF6chdIbJiVwJffo5y0ughSCtEhw5U5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1169405},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/27bc12aad98b789d0f2614fb71ab7779/pipework-0.7.0.tgz","_integrity":"sha512-0ABRFz5kvzkxVhacUuga4i+KAfULUX2sikdc/yPebvdH1mOQNoP3KbmC5WiSjbsERAYEZuhqMwi+i3sty8YAIQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"zod":{"optional":true},"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.0_1778265228444_0.10106960660530384","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"pipework","version":"0.7.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"3756b64f1f6211ca2b29dbd19c4ae865eda3d173","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.1.tgz","fileCount":961,"integrity":"sha512-V+kN87soqqIJ//vdpqJK+K4TnORW+LNjTm+Phc9pojPYFRn6PwryxJlSOdMx736ijwZ9+OAHU15BMEKvWIfUbA==","signatures":[{"sig":"MEQCIDuqvpGsD38lIBPreLZA4nu35yrqM3wrqixX/31T3Eg4AiApHV7AQUAsfT5fN+g8Q7QZatYBlM4HrkifpJpNtXxLMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1174178},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/4639b5e166c3c4bbfa1e605c00017cdb/pipework-0.7.1.tgz","_integrity":"sha512-V+kN87soqqIJ//vdpqJK+K4TnORW+LNjTm+Phc9pojPYFRn6PwryxJlSOdMx736ijwZ9+OAHU15BMEKvWIfUbA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"zod":{"optional":true},"drizzle-orm":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.1_1778275530108_0.961455881864975","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"pipework","version":"0.7.2","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.2","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"0db2bd51bb9af19561acebb1c36947138678b34c","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.2.tgz","fileCount":1001,"integrity":"sha512-ybSE04ept4SMgS1IbwnH/1W5PINwQqjmDtDqFQU8aSpZnHVCA/sfDM9qRLEjQpimWpwK1DyczT8wuyRjiJtGBg==","signatures":[{"sig":"MEYCIQCCVz3NikNuSGc815YSzVwOeLq27PNBRjBcBNIfVtuLjAIhANUC4w+VcafpdtX095dFUCu5xZ9Y6IBHpdernp0vIpeK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1233478},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/fe58c8c4005b570c9373dbd79c2a4b6f/pipework-0.7.2.tgz","_integrity":"sha512-ybSE04ept4SMgS1IbwnH/1W5PINwQqjmDtDqFQU8aSpZnHVCA/sfDM9qRLEjQpimWpwK1DyczT8wuyRjiJtGBg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.2_1778285312026_0.5090489763863251","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"pipework","version":"0.7.4","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.4","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c1b703e7f254329961a5ed3210ab30878dc91015","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.4.tgz","fileCount":977,"integrity":"sha512-ILiWAovL6XStNcs++Y0zcXOITNjEGOCh3bdoAjYoCbS/63S5OFtMvI+ZaItDJtupD3ikTyNc1NHgIuYigHD7TA==","signatures":[{"sig":"MEUCIQCWO6EmZvLGmsjZfryAFnAvZ8X/+1gT2396Y7XbllzYeAIgBDbjWyn/PuKPujLOFFIpE+4ud5nmHrB1tD5KvQTMvK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1203662},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/2a80ad5efa7a69d7962df92c0ea0fadd/pipework-0.7.4.tgz","_integrity":"sha512-ILiWAovL6XStNcs++Y0zcXOITNjEGOCh3bdoAjYoCbS/63S5OFtMvI+ZaItDJtupD3ikTyNc1NHgIuYigHD7TA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.4_1778290184521_0.7118460821262145","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"pipework","version":"0.7.5","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.5","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"a0a944dc9609dd87c64c930f8fc28580f13cf7f0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.5.tgz","fileCount":981,"integrity":"sha512-EIJPbFYYSxsFtKJadoqmmsxUJ4Vxk8bgZUrJr2u2iuIS7V4x958bU8/vmZ4PUuvwwjmLIkHeWWVo2eZ7whyt6w==","signatures":[{"sig":"MEYCIQDK79fBsOxJIAEsqKz6GBHR/npT/hVl3BByg/yGFqHQQQIhAPHAX2ZcDzDRNiFoNSUOu6Sp1IY/Z3xBmtCQku+VyH+r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1206670},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/ca065014f45b11f6d00f076adcd12a5f/pipework-0.7.5.tgz","_integrity":"sha512-EIJPbFYYSxsFtKJadoqmmsxUJ4Vxk8bgZUrJr2u2iuIS7V4x958bU8/vmZ4PUuvwwjmLIkHeWWVo2eZ7whyt6w==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.5_1778291343833_0.028049570074864194","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"pipework","version":"0.7.6","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.6","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1690c285fad8afb512e26fec6554a3df48f620f0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.6.tgz","fileCount":981,"integrity":"sha512-GcGWCpetDxm70WXXA0kYhhOjAntC4NCvnif1LjEgoDlme13+YdLhv5HFDD7SngMRF31dW9ZtQW+RAB5tcrRIdw==","signatures":[{"sig":"MEUCIGXVwSfyoNInAuThT/0v+lhCupsp8Wur5R+QpgSQRDydAiEAlL0HVuaKpALX6rQxOtsulCG8Q8sSHBNoac6vWXWbO1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1207069},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/e76c1896914d741dbf067ae79dec402d/pipework-0.7.6.tgz","_integrity":"sha512-GcGWCpetDxm70WXXA0kYhhOjAntC4NCvnif1LjEgoDlme13+YdLhv5HFDD7SngMRF31dW9ZtQW+RAB5tcrRIdw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.6_1778291926977_0.2551302938221711","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"pipework","version":"0.7.7","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.7","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"41efcfceafe40e56d611578320d08c296164159c","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.7.tgz","fileCount":981,"integrity":"sha512-l+vHNIhknZJDC6M1CqvClHMk3h1Prk2TmJAa8qTJMZVI8y1XT/fwTahHeJtOeB7cMjAgNTcQIq6Sb0EWLvlhvA==","signatures":[{"sig":"MEUCIQDY0bKTjcllm/DXCzM+NRcimiVW87TivnRpUI1OuvTvOwIgXvjyBFPcHXNlFcQuMMsbH4O8g6oVz9jGwG/hqkbZhec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209097},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/"]}}}},"_resolved":"/tmp/ae8cdb67557d0e285e1a49b4d25383d8/pipework-0.7.7.tgz","_integrity":"sha512-l+vHNIhknZJDC6M1CqvClHMk3h1Prk2TmJAa8qTJMZVI8y1XT/fwTahHeJtOeB7cMjAgNTcQIq6Sb0EWLvlhvA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@typescript-eslint/parser":"^8.59.2","@stryker-mutator/vitest-runner":"^9.6.1","@typescript-eslint/eslint-plugin":"^8.59.2","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.7_1778292822918_0.3957054064977916","host":"s3://npm-registry-packages-npm-production"}},"0.7.10":{"name":"pipework","version":"0.7.10","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.10","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c9b1ee705f9bb7b3f759c191543d349ad9d83574","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.10.tgz","fileCount":994,"integrity":"sha512-RQ6iiz/BG0QH0dT4n4ObopLkUXKdrXliFDAflkzaknw52kEQA3PKHDCeiMVsblfrakbNVJ+Eb+CYV/GW5DwT3w==","signatures":[{"sig":"MEUCIQCyLaBPAi5X/O4OMtSma63bWlHTODmWeI+o4wV/aJFhLgIgAZ61L4qPLIwDL9bBKjdCFhWBImO40z6nv3Axy5flBWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1244601},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/8da2cd154291485a55149182535ffe0e/pipework-0.7.10.tgz","_integrity":"sha512-RQ6iiz/BG0QH0dT4n4ObopLkUXKdrXliFDAflkzaknw52kEQA3PKHDCeiMVsblfrakbNVJ+Eb+CYV/GW5DwT3w==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.10_1778298766911_0.8740257835845997","host":"s3://npm-registry-packages-npm-production"}},"0.7.11":{"name":"pipework","version":"0.7.11","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.11","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"13cd2738377d63291bb5237bf8f4a90442e02b37","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.11.tgz","fileCount":1002,"integrity":"sha512-0ywvhB4YGIdzSmF6VaQ8RwPmP0NCch1HJ2C4rarXvRvZWzoqPTOt3JqaurUGhUDs+2Kyk3ReCJ9KuYAQFQWgJQ==","signatures":[{"sig":"MEUCIE+rmjxXgt7xF2VhCWV0H7UVrqHE68qE0Ae6lraiJ0ZDAiEAxvm0Ita0TuhXjzOmZLgYUj4IlClskA2os0sk3NpPaIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1248580},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/1ab26581e971d4f55d424134fd2e66ce/pipework-0.7.11.tgz","_integrity":"sha512-0ywvhB4YGIdzSmF6VaQ8RwPmP0NCch1HJ2C4rarXvRvZWzoqPTOt3JqaurUGhUDs+2Kyk3ReCJ9KuYAQFQWgJQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.11_1778328747420_0.09887805815675277","host":"s3://npm-registry-packages-npm-production"}},"0.7.12":{"name":"pipework","version":"0.7.12","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.12","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"027da5385666c31af977144d31af1c1c18fb98a0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.12.tgz","fileCount":1008,"integrity":"sha512-E7oqEAq1Nk6K+y1afiVX4f7qFREnrKjoPgFytGFX5B63t53x7slCocv7DdNqzGoYgLggXtuMKgCpyCkkoU/8mw==","signatures":[{"sig":"MEYCIQCKylw4sXfmM2KGQ9uYz1q/R3lSAA5t09XHUPoFC/QyEgIhAPNlUyUTwrRvcOlr1pCjROrbEIvo6GeZDKdxK0sI+yXj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1297601},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/schema/","src/domain/","src/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/db/","src/test/","src/migrate/","src/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/http/","src/fixture/","src/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/db/","src/test/","src/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/db/","src/domain/","src/drizzle/","src/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b45820ed10af2b248e3cf6b3f8c6558a/pipework-0.7.12.tgz","_integrity":"sha512-E7oqEAq1Nk6K+y1afiVX4f7qFREnrKjoPgFytGFX5B63t53x7slCocv7DdNqzGoYgLggXtuMKgCpyCkkoU/8mw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.12_1778342080277_0.13531583977226136","host":"s3://npm-registry-packages-npm-production"}},"0.7.13":{"name":"pipework","version":"0.7.13","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.13","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"3661c52fdc2ac0c3a65ae9e8db8bd45915907ed1","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.13.tgz","fileCount":1852,"integrity":"sha512-P0Rr8Rkowrc+JiSBkCM62lAvy6UXLRc03L1TYI3DZfz3VWmksVwBF4YBtI9yI/PF1YbcDIJIcMQdKZc96r/DXQ==","signatures":[{"sig":"MEYCIQDV9jUyw15qciARe8lQQ9CbVP/CSz2nzR49b5LC8BiagAIhAIoKpVm5f7u9fGiC7VJyu8YmMDUJ5Aa+30gxCf+kXWOY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2309801},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c7a5d29e5b5503e902fbcde2cb72141c/pipework-0.7.13.tgz","_integrity":"sha512-P0Rr8Rkowrc+JiSBkCM62lAvy6UXLRc03L1TYI3DZfz3VWmksVwBF4YBtI9yI/PF1YbcDIJIcMQdKZc96r/DXQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","drizzle-orm":"^0.45.2","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-kit":"^0.31.10","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","drizzle-orm":"^0.45.2"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.13_1778356141368_0.42497666332831785","host":"s3://npm-registry-packages-npm-production"}},"0.7.17":{"name":"pipework","version":"0.7.17","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.17","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"b30a5007376dacfe96a2c3fe7522ef4d47347cc5","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.17.tgz","fileCount":2348,"integrity":"sha512-mS9oVUOxS0m5TbPmVJG2SvuHA3mfXXLBy9VLkwGGg0p8wpojqYxXtJzCGqpWDr2uKX7APn0RQQgSKqLBtyYNug==","signatures":[{"sig":"MEQCIAPQe4sCxLs5y/JqvtOOIOszNIV+4tKv27O9qLYXN1UyAiA2oHubmkHq6PhgWX90BFM5WVoWRbo4fz0bCVHuGGFpew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3584531},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"26f8f387d99a63bb3bbba6a8c1d62fb2d114a64f","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","prepare":"git config core.hooksPath .githooks","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.17_1778516313793_0.3479456601673321","host":"s3://npm-registry-packages-npm-production"}},"0.7.18":{"name":"pipework","version":"0.7.18","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.18","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"9c0abee949a8bbf684add371fc685b5f07ea1b2f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.18.tgz","fileCount":2348,"integrity":"sha512-kyAly65Dz+Kmn45kj7chHxDjkASJiBJ+FD/9/lPEjPtwoJfP/wb7MNc7E453Ce2aayfWXf4xoumB7xEdKzxMZQ==","signatures":[{"sig":"MEUCID7vVxvWWwhheEjTJ6Nf7bIzGN6QDhTbkTRloEhRZ/i7AiEAj2KDus4iziiHwEH4uLABUU1zF4vRiDFCEyimsKd41p8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3585877},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"38c17fb6788c97f4a2d659c0e68ff7a7120bef66","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","prepare":"git config core.hooksPath .githooks","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.18_1778519538318_0.9872811505143853","host":"s3://npm-registry-packages-npm-production"}},"0.7.19":{"name":"pipework","version":"0.7.19","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.19","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"b727f2b6630233df415693937ed217d10781c56a","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.19.tgz","fileCount":2360,"integrity":"sha512-upvjENFMiL1VgUiXrcU1LnwC+HpRKJxqCYlemroRXkGsWVYvW1WzOPAIB5oqXs4NEsHcRl9fUw0C8IvUNItpDQ==","signatures":[{"sig":"MEUCIG/KyDxBxt05fTHiHAkQdq0gQH2z7ynlHwg0aaeKlBD3AiEAg2bnznb1+l0DKcFXiDuXctNxFsqfsT28Ibd6lZ5crkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3601333},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.19.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/d52c4537de954f576390354c51b3761d/pipework-0.7.19.tgz","_integrity":"sha512-upvjENFMiL1VgUiXrcU1LnwC+HpRKJxqCYlemroRXkGsWVYvW1WzOPAIB5oqXs4NEsHcRl9fUw0C8IvUNItpDQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.19_1778525767969_0.8635661668926482","host":"s3://npm-registry-packages-npm-production"}},"0.7.20":{"name":"pipework","version":"0.7.20","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.20","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"3abcec35b28cfe814227c341b6543024dd2d9a57","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.20.tgz","fileCount":2360,"integrity":"sha512-8hfL3y/Zr+k9ynvs9ZyXdiF0K6qDexDZ+Z81nLqtSAqs2f2dsHR27EFX+zWfeN45SaOw0/VtxHIk9TbGo2Uk5A==","signatures":[{"sig":"MEUCIHJYdSs/KE3i5EXUrelysuc176a/dtIKTPvy9bhxdPXTAiEApGZ65iLQ9TLq2XScRjBoZGOWbmj8Nnn0uLI4vFV1yzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3602933},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.20.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/8147c546148862cf0ccffddbf65fbea1/pipework-0.7.20.tgz","_integrity":"sha512-8hfL3y/Zr+k9ynvs9ZyXdiF0K6qDexDZ+Z81nLqtSAqs2f2dsHR27EFX+zWfeN45SaOw0/VtxHIk9TbGo2Uk5A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.20_1778529864076_0.7491090728168399","host":"s3://npm-registry-packages-npm-production"}},"0.7.21":{"name":"pipework","version":"0.7.21","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.21","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1803bb11b3443c52af696f2896f20253cc555600","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.21.tgz","fileCount":2360,"integrity":"sha512-Y6a8mx7vQ01fzkcH6HUZJ4qFrgIY1BiZcxXk8UpKQmzY41WnlAwDPQnyMFCVe6zFdn2I+rO6pd1u4K9IjghtMA==","signatures":[{"sig":"MEYCIQDaPUiW87g2f1FWg0rwS4Zka6Q3pJ9PyqhaNrmXje+3rwIhAOvxD8YjYd0ceJrwkT+uzYB6MEEHp633WwsdIqVtZREb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3604199},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"2d2178391592486f4a05381de6f354e80f68424f","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","prepare":"git config core.hooksPath .githooks","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.21_1778589681180_0.07885240845156472","host":"s3://npm-registry-packages-npm-production"}},"0.7.22":{"name":"pipework","version":"0.7.22","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.22","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"9888eef350bd2846b5b2303daef294d492dd953e","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.22.tgz","fileCount":2376,"integrity":"sha512-PCXV0b5z3vFqqlHQ536DdJCTI7s4LbpmcTuJNAfLrhGe/+iFjyDTySyK0jgKNNpxyzT2LoffEG1K0P9oXlHmRA==","signatures":[{"sig":"MEQCIFdzVv+VNGrUScEO+3XD8S5+irW3wlZ7s+6EAE+kAO0PAiAoMChLWsa77cSUtBoFjiC8GrkBIcbsPj7vMgCmg7vHLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3645076},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"7a883de8c51f7b9096b6dbb73b80b405296c3203","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","prepare":"git config core.hooksPath .githooks","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.22_1778638234645_0.3819218192591902","host":"s3://npm-registry-packages-npm-production"}},"0.7.23":{"name":"pipework","version":"0.7.23","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.23","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"6d4f5a0e5d5aad0e9946498ee65e9192234680d4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.23.tgz","fileCount":2388,"integrity":"sha512-OE6oS2rO95f2zqpkmE6jtSpwBHkHoRMA6Jflph64zTtw3I45iQElwqcoiZUbVdmCdKtVMcb8E7EdVOFUBZhtHQ==","signatures":[{"sig":"MEUCIQDFaPRhaJsEVrCBEgTNhqkxH7MpN4iNp4uZM78ZUfYcuQIgcEQkC4lKsc3b1fpfM5n9NvpW2l+dVBIKRDw8TLimqIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3698048},"main":"./dist/index.js","pnpm":{"overrides":{"esbuild":">=0.25.0"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"gitHead":"53ea0d2f7b1405a7ec364f184063f00d17a03091","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","prepack":"pnpm build","prepare":"git config core.hooksPath .githooks","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.4","devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.23_1778644943196_0.8483146583086127","host":"s3://npm-registry-packages-npm-production"}},"0.7.24":{"name":"pipework","version":"0.7.24","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.24","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c22a7ec58a7f5c4f199e1576e2d616fc0344e6e9","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.24.tgz","fileCount":2452,"integrity":"sha512-KZQbqXfVCQMTT0g4cCY8tV9QtRT1m/m40EFl1KF/QkOgZvzGqgqLWR3Y3ZyBh8F2wK4sYsFE44xO4XA7CNUvQA==","signatures":[{"sig":"MEQCIA3GkKNK/AGxbl7MYw+M8t4mJv1FqKUjY6cJCow/2EvvAiAjnP2Ant3W1qQvodROyPKnHvl2k93qAKj4XgVdK14ozg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3755931},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.24.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c80a2c09bc24c2dd24cd40c5eaed2431/pipework-0.7.24.tgz","_integrity":"sha512-KZQbqXfVCQMTT0g4cCY8tV9QtRT1m/m40EFl1KF/QkOgZvzGqgqLWR3Y3ZyBh8F2wK4sYsFE44xO4XA7CNUvQA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.24_1778709740075_0.29882720254047923","host":"s3://npm-registry-packages-npm-production"}},"0.7.25":{"name":"pipework","version":"0.7.25","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.25","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"03d365107ac5f6f7f1cf0ac5d607813a39689894","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.25.tgz","fileCount":2460,"integrity":"sha512-gND+wkYpljr5QoW0cREns91mINoc2ofYW5TNtx0PJbl6rsWugSWcdat0F9J5moLhd1xHal0RsfqeqDXcrPj8/A==","signatures":[{"sig":"MEQCIFiTOKq7CCCaXoNw3ednpf/Mt4ia213dhJR9dzOJUKxLAiAFvtMImuX8H4Mm/zBH3WIvEJkG3qMF2WMNQfU7l/qbmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3764754},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.25.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-config.d.ts","import":"./dist/test/vitest-config.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/5f4428df92c43c1248a9fdf8489cf68f/pipework-0.7.25.tgz","_integrity":"sha512-gND+wkYpljr5QoW0cREns91mINoc2ofYW5TNtx0PJbl6rsWugSWcdat0F9J5moLhd1xHal0RsfqeqDXcrPj8/A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.25_1778783976968_0.7680607592171751","host":"s3://npm-registry-packages-npm-production"}},"0.7.26":{"name":"pipework","version":"0.7.26","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.7.26","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ad4ef1ad535ae7b04106345de1068591943aa6d8","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.7.26.tgz","fileCount":2460,"integrity":"sha512-gK6eFfeiHABdfKaLIiS7uCFk1S7dT1txYOZhRcB3EQ4dEhja0P1rDoLhLVi+hUrDlZHIqazTtadjtR/IuT+61g==","signatures":[{"sig":"MEUCIQCg5lnpPRrayUQnggrMeqjKr4HtOVd5IcnLOyTuiOaP+QIgfglN0PYNMUplkmCQOitpzCs13us1Fez8Fdutib733dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3771992},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.7.26.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/7f57ba8dc3b76de20ff15ef0120b8631/pipework-0.7.26.tgz","_integrity":"sha512-gK6eFfeiHABdfKaLIiS7uCFk1S7dT1txYOZhRcB3EQ4dEhja0P1rDoLhLVi+hUrDlZHIqazTtadjtR/IuT+61g==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.7.26_1778791752991_0.11581574629099256","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"pipework","version":"0.8.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"9410cc2dd060e1f9551e674461883022fd9083b9","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.0.tgz","fileCount":2544,"integrity":"sha512-nIH1DGea37I8LQGqQpq52e+yh5HSQ4oYAcN9Cyhc5y5RoxknuYF27CDGHvMFbgeUZrcfgEPY9sfEsVkKuPzGnQ==","signatures":[{"sig":"MEYCIQDDb04dqTH/21p194ar1P9SPPVHpQB7WPr2K9aiIrnQfAIhAJY95/6UuqjozDvHqyGcIDpDWQPgJVPZNDRJ1u2xYSxW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3888540},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b8fc70b15349ce8f0766cec39c4abb70/pipework-0.8.0.tgz","_integrity":"sha512-nIH1DGea37I8LQGqQpq52e+yh5HSQ4oYAcN9Cyhc5y5RoxknuYF27CDGHvMFbgeUZrcfgEPY9sfEsVkKuPzGnQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.0_1778798395320_0.4276804670986858","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"pipework","version":"0.8.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"42638e025e3d498c9f752870adb5b667618d7118","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.1.tgz","fileCount":1655,"integrity":"sha512-Z9oMNy8evfrUaCfC0mhk2gqYuD6vByIIG/Li1zyTLWbamF5bHqGL4NOnpkDw2AUbCvQsOhtjBiiHg0NxIZN/zA==","signatures":[{"sig":"MEQCIFf3J4ar7BjWDbUh6ml/EjVSq9KO9ZIq0Igi55H0c1nuAiAy3GWmu/e6SSoRUvtLghlKfX6XzJxr5hKUETOzc6gYTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2783191},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/80fc2633af5e4e974f2dd1b47e8abafc/pipework-0.8.1.tgz","_integrity":"sha512-Z9oMNy8evfrUaCfC0mhk2gqYuD6vByIIG/Li1zyTLWbamF5bHqGL4NOnpkDw2AUbCvQsOhtjBiiHg0NxIZN/zA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.1_1778810042934_0.722489524261106","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"pipework","version":"0.8.2","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.2","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"95b078db498f6a905d3c733f1e9da91738b389c1","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.2.tgz","fileCount":1659,"integrity":"sha512-C3usDcR7xiJrjWRmkaa+MaCKvnx8stOKGs6VZfSnGOy2Oc/ueUomioQVRIYAH/N7Qzwd0HyZg9mk60hg3Ff46w==","signatures":[{"sig":"MEUCIQDd4P1r0Kj9kSnTPtSIzFzR6F5571IoEnd9Aumyut9vHgIgM3D+iuMKoOXXei+qLet1iiPByjuOYXZIJnOCsndaIvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2789498},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/71bdeb163f8678eba10ba6d866640c54/pipework-0.8.2.tgz","_integrity":"sha512-C3usDcR7xiJrjWRmkaa+MaCKvnx8stOKGs6VZfSnGOy2Oc/ueUomioQVRIYAH/N7Qzwd0HyZg9mk60hg3Ff46w==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","drizzle-orm":"^0.45.2","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.2_1778846427507_0.8034456159539107","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"pipework","version":"0.8.4","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.4","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"cc3ce308d0b72a785c14f1847999cf950c41ba86","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.4.tgz","fileCount":1895,"integrity":"sha512-XCO7mq9LImYx2asPdhA4WWtgC21ZAmCTw4btgGjQZj2NbGieFNecNDhqFbY6HcvkT0m3sY4Ot1omHDuH5eIrsA==","signatures":[{"sig":"MEQCIC3M0Y8TohC31KEMQU/BfTOTpfxZiURrF08AbcXx+BZ8AiAs18AP2Lv+CKX2feUGAOMrGo+5mvghE7LwoOdRRyfqIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3166277},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter @pipework/flow-step-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter @pipework/flow-step-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/f6741f215650766ac97b45820f2aae0b/pipework-0.8.4.tgz","_integrity":"sha512-XCO7mq9LImYx2asPdhA4WWtgC21ZAmCTw4btgGjQZj2NbGieFNecNDhqFbY6HcvkT0m3sY4Ot1omHDuH5eIrsA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","@typescript-eslint/parser":"^8.59.2","@pipework/flow-step-parser":"0.1.0","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.4_1778948164103_0.5406092020402666","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"pipework","version":"0.8.5","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.5","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"2aa9d805342fda01b3fedda42b2243ce0fdc31c3","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.5.tgz","fileCount":1895,"integrity":"sha512-BeQjOKqYE33/W+93KGbQkGofvKzlm2mh87cnwBNT/Am/vzazvnC8XOFQ8Q/e8KNMZmNrYJz9UaWBHWB05/jCOw==","signatures":[{"sig":"MEQCIHJ9a6oBXHB3hd0ed3Se1r//DinsrChSkdKIwwcnTC9OAiBDOxfW1zrYurbyTtltprqYvxWIo6UbJYfEvEV2E4I+cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3166646},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/448679d3c04d38f4c1aa7ccb917e0855/pipework-0.8.5.tgz","_integrity":"sha512-BeQjOKqYE33/W+93KGbQkGofvKzlm2mh87cnwBNT/Am/vzazvnC8XOFQ8Q/e8KNMZmNrYJz9UaWBHWB05/jCOw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.5_1778950257529_0.24868736949627568","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"pipework","version":"0.8.6","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.6","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c524c087794177b3ff1c31c6fa2ec4a97426c613","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.6.tgz","fileCount":1895,"integrity":"sha512-eBdGt9QHzy2yMiOXB1/Q/3uELqhc0Eq+RBtoOopD4p2vrkiLUBtG/p5YsDXxggVTK6fdsMz2Brn7TtUm0q62eQ==","signatures":[{"sig":"MEQCIAaqhCZw9JXYUXkMIaWGQuHybaZDtjI4IxX1wJ4xKMTOAiAfhuxJIf1yNT8FHuwluqJb1ZRSzoq2mhTgYgerBYZx5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3167070},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/977f2d0a007979a1eccb3e1aa076a128/pipework-0.8.6.tgz","_integrity":"sha512-eBdGt9QHzy2yMiOXB1/Q/3uELqhc0Eq+RBtoOopD4p2vrkiLUBtG/p5YsDXxggVTK6fdsMz2Brn7TtUm0q62eQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.6_1778951095656_0.4629397493964258","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"pipework","version":"0.8.7","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.7","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1ae377613fcb5b2fcedb354cba68f793d7f109d2","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.7.tgz","fileCount":1895,"integrity":"sha512-hXcZ1ddIwQ/9eFq2sqCqobProuauAOElwZ4/FBnxK4QutcRsWbNy3GNCy8U+6SbmM9mFL9wQyBOJ/s74c/5g9Q==","signatures":[{"sig":"MEQCIGkRXLxA+wr5OGgP5DVoNJ5MWJg4QA7jOQElb6OFPQLKAiBW28IQ/x5v2khDktsdwbdE0rPQZN9svB/NroUitjZRsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3176717},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/bbeb10eeed02f1a37f9622623ee01711/pipework-0.8.7.tgz","_integrity":"sha512-hXcZ1ddIwQ/9eFq2sqCqobProuauAOElwZ4/FBnxK4QutcRsWbNy3GNCy8U+6SbmM9mFL9wQyBOJ/s74c/5g9Q==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.7_1778956912139_0.4964689743048787","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"pipework","version":"0.8.8","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.8","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"6c6039843fc797ecfd962fbad5eccb23eec7941a","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.8.tgz","fileCount":2792,"integrity":"sha512-OZFIf4VHkljDRlYtlSFZfKEKiG325mnZqVqHOYbQgZuGlvK4jzeQVnqBaVJCjbQy8ASHK4Ewbs9ALqO0wx/2JQ==","signatures":[{"sig":"MEYCIQCYqMZk4bd28oQO5xSTIyRE7Iu6H43ehY/9b/lyAlMk0wIhAMzSwOQKX6aNpYCQH236qioQwlNm2jNSDz5EXk84HwIh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4295797},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/65138a4b925dade8efe09e15ccfdf082/pipework-0.8.8.tgz","_integrity":"sha512-OZFIf4VHkljDRlYtlSFZfKEKiG325mnZqVqHOYbQgZuGlvK4jzeQVnqBaVJCjbQy8ASHK4Ewbs9ALqO0wx/2JQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.8_1778964957676_0.7295521606320137","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"pipework","version":"0.8.9","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.9","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"a2e0592523d0069f2626bdd66535df279b8a5b05","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.9.tgz","fileCount":1859,"integrity":"sha512-FiD5nbbycVSLkPiKCADad1qa7XzeiDhSkIIaOXf1n1i9Y6SGLviiD4d0ngwEEuS0A3xWC9kJwxI2fAFBY5juTQ==","signatures":[{"sig":"MEUCIH1CtvnDZpEmq9xUYY/8068qnQFbCCaKHj8df3zR3regAiEA8x2afERriiy8bAd2iiTi3K1ROBVdJnOMbEEIdnevAzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3175980},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/7b5e3794e86640cbc9a4536749c2d903/pipework-0.8.9.tgz","_integrity":"sha512-FiD5nbbycVSLkPiKCADad1qa7XzeiDhSkIIaOXf1n1i9Y6SGLviiD4d0ngwEEuS0A3xWC9kJwxI2fAFBY5juTQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.9_1779063045016_0.7854582974596296","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"pipework","version":"0.8.10","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.10","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"cf7175cf6783d34a6ba7d5b77028b0f8a41f2cc6","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.10.tgz","fileCount":1859,"integrity":"sha512-G7OwpxKK9nd8CltzHfMOYlOfwbJqKC3qT4GoS1hf5Rg4XhPoKI5xYrhRqJlWWSPU+yBcDYhu/LcOh7G8xteBKg==","signatures":[{"sig":"MEYCIQCYFlLXvdayXJZX9lgIqwVdcOuQ57CW8968fivnMNOeYgIhAPLXiPMx56M209UyRB0rysx35vXgsQARPbj2/ECNksRG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3185872},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/e14642411f06d52ce9578502680ad7f1/pipework-0.8.10.tgz","_integrity":"sha512-G7OwpxKK9nd8CltzHfMOYlOfwbJqKC3qT4GoS1hf5Rg4XhPoKI5xYrhRqJlWWSPU+yBcDYhu/LcOh7G8xteBKg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.10_1779251113881_0.762918329822964","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"pipework","version":"0.8.11","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.11","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"8cc2b17f196bca0f8cf836401730622345e1b059","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.11.tgz","fileCount":1863,"integrity":"sha512-cXfbyKLRl4CAMLFvi6qK83RCBAz1ZX5xSdNH4Tp2E/mAumOBjPkPi/im5mZpRDDfi/udF5uXzWJMEx7QqW9CpQ==","signatures":[{"sig":"MEQCICx/xa4TbPYFubaUnzCp/vO8rWkGfEojHgpQyohjJaYIAiBIGWXafVn2ugTo+pEpqKw/CqXyegjROCCVU9MkaPlSFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3193935},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/bd8f2916e0865278697cb5553528a515/pipework-0.8.11.tgz","_integrity":"sha512-cXfbyKLRl4CAMLFvi6qK83RCBAz1ZX5xSdNH4Tp2E/mAumOBjPkPi/im5mZpRDDfi/udF5uXzWJMEx7QqW9CpQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.11_1779307122544_0.12075045879210622","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"pipework","version":"0.8.12","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.12","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ced021abd27659e4190d7272f9cb8ab77f25d13e","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.12.tgz","fileCount":1915,"integrity":"sha512-cQAFE4WqeEwD2pahQo3+vFfK3pEZ31DpjehC299Ld7BEX/1GZnbMUiuRHdl9B4+yMY8AAgskmqc712W7sMVk0g==","signatures":[{"sig":"MEUCIFDez4/REhso+x4C33IOEDIBjgP2WnpXsfgjRdeIgO3AAiEArJrUnmGJqRP97biH9LyVs3kQ2qumrf8J3E7Z9zqGogY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3274655},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/2c2470c6fd6597f5b4c91c7363624b62/pipework-0.8.12.tgz","_integrity":"sha512-cQAFE4WqeEwD2pahQo3+vFfK3pEZ31DpjehC299Ld7BEX/1GZnbMUiuRHdl9B4+yMY8AAgskmqc712W7sMVk0g==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.12_1779327541617_0.8915837680129042","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"pipework","version":"0.8.13","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.13","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"908c80cfbad30e916a15d2694cd0a4edff2c62bb","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.13.tgz","fileCount":1935,"integrity":"sha512-HoE4aBqXis7KvAYGf03P4HkTuwtGPCR5QRqsA6sqlm4X8QQLLZt65QoXlnextZaBMpEmbyC/lLXPOWaAIk3O0Q==","signatures":[{"sig":"MEUCIDZS8Swn6rtEtrmI3+1XJaiBgvRwc5HbXdoQAp4Tul7jAiEA6xAfqkDefgFTumbC2BA6pD8uNfdamtIn6V2JCT85vYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3303943},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/cd69553cc6bae54aa87e57040530d290/pipework-0.8.13.tgz","_integrity":"sha512-HoE4aBqXis7KvAYGf03P4HkTuwtGPCR5QRqsA6sqlm4X8QQLLZt65QoXlnextZaBMpEmbyC/lLXPOWaAIk3O0Q==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.13_1779330726132_0.12555960000781763","host":"s3://npm-registry-packages-npm-production"}},"0.8.14":{"name":"pipework","version":"0.8.14","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.14","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"b0880fba62f018a9c95b929c31768eb78dc421c7","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.14.tgz","fileCount":1935,"integrity":"sha512-lOOguXESAdDGM2/2/eMgEpHUqxZn/utW8iw6LHkst96s0Jl1cKZdXU9brGl+M7xX75gH0sqogRFhpQIQ1r0aoA==","signatures":[{"sig":"MEYCIQDU4a/oonjYQMiGRBWSl09/v+9LDZ7J863qN6w1K0XxJwIhAKXv2VyH/+ivjVE1Im7pDmFABflQacpu5yG9Gq+ioqxO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3316470},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/fdb17e20bb7da7baacb9126fe577b998/pipework-0.8.14.tgz","_integrity":"sha512-lOOguXESAdDGM2/2/eMgEpHUqxZn/utW8iw6LHkst96s0Jl1cKZdXU9brGl+M7xX75gH0sqogRFhpQIQ1r0aoA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.14_1779453831698_0.5696041641981324","host":"s3://npm-registry-packages-npm-production"}},"0.8.15":{"name":"pipework","version":"0.8.15","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.15","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"6159a69db571e667175cf3e3323b15447c0b67b4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.15.tgz","fileCount":1939,"integrity":"sha512-DYan9e6lvUeogVrd+Ugc3qKAVXWTUjeHRRx9kPnF+Akwrzwoi1UzSRDVSQne4u89Tyx0jcGFc3DA8+rDlS6bVw==","signatures":[{"sig":"MEUCIB3oVhCZpFT8eP+4Sc5qQhKau35EIb38QPDJlJrAgs4sAiEA8csXlN8iqSm6pLIga9mQ95a+zQfqQxkf+orFFRPs6EQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3349592},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.15.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/fdeb77c26ce280488bdc729dedcb1c9d/pipework-0.8.15.tgz","_integrity":"sha512-DYan9e6lvUeogVrd+Ugc3qKAVXWTUjeHRRx9kPnF+Akwrzwoi1UzSRDVSQne4u89Tyx0jcGFc3DA8+rDlS6bVw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.15_1779473818751_0.3765412359598008","host":"s3://npm-registry-packages-npm-production"}},"0.8.16":{"name":"pipework","version":"0.8.16","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.16","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1200ce8fdcca0ab4b23a143971fc7d72242a6aac","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.16.tgz","fileCount":1939,"integrity":"sha512-Ya9/1mNKJgKM6UXzZe2PKjPtBDiBph45aRO2tTNs6LDnXJyYYpb2aJAsoDAaMsRx4pVGa94yW80CFl8WXkJOmg==","signatures":[{"sig":"MEQCIDx9zKSdj81Xm6CvEfkYdT7ODSlOcnTzn4Is2D85U4/NAiBkMcLIyAg9g7GffZibQ/XMgSHHz3g/Rn+KtOelWBfdcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3350968},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.16.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/f59912131746d036e64cafc89cc0e24e/pipework-0.8.16.tgz","_integrity":"sha512-Ya9/1mNKJgKM6UXzZe2PKjPtBDiBph45aRO2tTNs6LDnXJyYYpb2aJAsoDAaMsRx4pVGa94yW80CFl8WXkJOmg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.16_1779481959168_0.18312978158745508","host":"s3://npm-registry-packages-npm-production"}},"0.8.17":{"name":"pipework","version":"0.8.17","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.17","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"acdaf7f2d50b79464e8361ff19ed7c0871f6eb19","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.17.tgz","fileCount":1939,"integrity":"sha512-bvUi0lUAJNPWlTHaqRXViqxOZICNYsDrH8dm2YSduS8v5W7dH1ZMiCfdSJBOHo2RrEMJdwS7Nu1l6v25cfxXNQ==","signatures":[{"sig":"MEQCIALRECBXAgOXQaovbHftZn1oa9bPnIsN54d9cGHa8RVVAiBQ1hxuEBEEcJXAuBfBoc0+jOwJ5zusiNWZyfFGa5iCJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3354497},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.17.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/99af5cd64dd6ba049a196fd55a21412c/pipework-0.8.17.tgz","_integrity":"sha512-bvUi0lUAJNPWlTHaqRXViqxOZICNYsDrH8dm2YSduS8v5W7dH1ZMiCfdSJBOHo2RrEMJdwS7Nu1l6v25cfxXNQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.17_1779489578954_0.7769625119137511","host":"s3://npm-registry-packages-npm-production"}},"0.8.18":{"name":"pipework","version":"0.8.18","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.18","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"6ce7f59d98809fd21c040d0825f57eee95339182","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.18.tgz","fileCount":1939,"integrity":"sha512-vSdaxTtTuk5mfW3TmizvAGk4zBKxV76s/+zPPXSWflFGonb9s81W9No4uIy7/NxE5XetA2gLkRasF7qnNIoHaQ==","signatures":[{"sig":"MEUCIQCf2x/lD6xgcCuo4IqcMTjekipqKIKvo3kzc/mTFroiPQIgQ2X4y8R2+m6iX8z2B9DtFkWC9+LLSImFD6QKwAWCLHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3354664},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.18.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/f4b4bd451fbce8e087199821882dd784/pipework-0.8.18.tgz","_integrity":"sha512-vSdaxTtTuk5mfW3TmizvAGk4zBKxV76s/+zPPXSWflFGonb9s81W9No4uIy7/NxE5XetA2gLkRasF7qnNIoHaQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.18_1780408108914_0.6562308793311278","host":"s3://npm-registry-packages-npm-production"}},"0.8.19":{"name":"pipework","version":"0.8.19","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.19","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e06fb95becf55cd03c1c808b130201c6f058ad0d","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.19.tgz","fileCount":1939,"integrity":"sha512-/btkQCLfCMgTYkqOkJe5ga1A0Waln4SzPqIpwZO6NkqaNXbpCqOLTqwCcOjjuOym2J113GB0K1GP0dwnT/IqfQ==","signatures":[{"sig":"MEUCIFYp2QdE95JKxQbxzmTuEGsRut7IkA1AhuY9HhSVeTwlAiEAlVO4hNLXne0ZrwmBDvtzKwyaubblrUUURjq5CNTEz0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3358762},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.19.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/ec3f7359e42a1961aa45f631d8d4e920/pipework-0.8.19.tgz","_integrity":"sha512-/btkQCLfCMgTYkqOkJe5ga1A0Waln4SzPqIpwZO6NkqaNXbpCqOLTqwCcOjjuOym2J113GB0K1GP0dwnT/IqfQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.19_1780684322057_0.2856456924856545","host":"s3://npm-registry-packages-npm-production"}},"0.8.20":{"name":"pipework","version":"0.8.20","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.8.20","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"78029638206ed792b993ed0e4e654356c3ddb9d5","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.8.20.tgz","fileCount":1939,"integrity":"sha512-CAv1TsauZ8+4T0FmJ/RhMyT53mEUl9EuEGx6hrALikrL7KfyTiiFICy4Q4nNChTig4agKvacPFhjOfbyefca0w==","signatures":[{"sig":"MEUCIB9bcGRgoILJj2ozPeU0qBBXRwZ1PuBhtXJEFk1lKoooAiEAmA+byIKWHTk/svq86JaUgTWSSIW8ffxgUKpvJdM7bJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3363563},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.8.20.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/da5951abfbbae0ae62371fe063571362/pipework-0.8.20.tgz","_integrity":"sha512-CAv1TsauZ8+4T0FmJ/RhMyT53mEUl9EuEGx6hrALikrL7KfyTiiFICy4Q4nNChTig4agKvacPFhjOfbyefca0w==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.8.20_1780702442747_0.4109941055463915","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"pipework","version":"0.9.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.9.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"647b7f258a89d214c0deefea0d48c60096630365","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.9.0.tgz","fileCount":1939,"integrity":"sha512-zxzqm/sIDNHYyA7EocE2Hi81pfVvRIZ2BRxVRyxMZMQ2h6AiQQO9nrRs3sYQOMtoSuhf6jv3fSASwNH4PWZzSQ==","signatures":[{"sig":"MEQCIDcs86nVr/3wK+okSxOnXZCeJ3bBZwhMYApfQfiRHcYQAiA+2MhXTGJxQzrwqCUsa6khFMXdRdjAp1VGHrWXS2fiBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3383858},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.9.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/3dcd611b2653cc3c8a4395fa28414599/pipework-0.9.0.tgz","_integrity":"sha512-zxzqm/sIDNHYyA7EocE2Hi81pfVvRIZ2BRxVRyxMZMQ2h6AiQQO9nrRs3sYQOMtoSuhf6jv3fSASwNH4PWZzSQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.9.0_1781180230869_0.38802237916003546","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"pipework","version":"0.10.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"bdbd6fdc5f35186229b9c29f10c3bc1c02ef15c0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.0.tgz","fileCount":1951,"integrity":"sha512-4YxxiZOL0COOunqz+f/8UTd2Kmeao8sPMi4mfcxriEGvISgpo0UDM1FeZPHrqdquI+gt+E2jnzBAjjV5NLg88A==","signatures":[{"sig":"MEUCIQDDg6RemeoGLazjHI/eYPp74F5jnw7lhzOv+0HaJE6TSQIgAaWZqqrGUzS5YYm+GopHVChNnajOHCMMdvPri7mYyPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3436344},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/01733d1cc822fb226d465b1e216e4272/pipework-0.10.0.tgz","_integrity":"sha512-4YxxiZOL0COOunqz+f/8UTd2Kmeao8sPMi4mfcxriEGvISgpo0UDM1FeZPHrqdquI+gt+E2jnzBAjjV5NLg88A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.0_1781212286891_0.9982829972991072","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"pipework","version":"0.10.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"8fcc5da9cfe973bd42b9fb8fdd729fb948a4fe8c","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.1.tgz","fileCount":1951,"integrity":"sha512-vGjmGcZiUFC8N1wSyG+CZiEK3GptVLh3jngkzI/baUMlQ1CI+1Q+0K0J+AIVNGhHNwijCwsnD+pVvPZwoUJujw==","signatures":[{"sig":"MEUCIA6skzgwa5TqhUQrbepwQrgEl8/xBaT4L8ErxavOMHo9AiEAoHD/VC/8Mj7MvGZlz2AXET+fwxsAI0NoL8eTRS6pDFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3442622},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c61d2b01fc29d8184af738ce0c69bede/pipework-0.10.1.tgz","_integrity":"sha512-vGjmGcZiUFC8N1wSyG+CZiEK3GptVLh3jngkzI/baUMlQ1CI+1Q+0K0J+AIVNGhHNwijCwsnD+pVvPZwoUJujw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.1_1781228745894_0.4866552091736862","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"pipework","version":"0.10.2","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.2","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"f7de7f2023f6cefe5d9e5652885487d552798af5","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.2.tgz","fileCount":1955,"integrity":"sha512-K+9we1keKoWlO/KXMpW4HVYW4MLtZL1vAXJ/4BsdHC5q0N7nxRpTsF5njrGpZHOX63qMbyXarH/iOmtW+gGbkA==","signatures":[{"sig":"MEUCIAxeTkEinSxes78INiIDVILAoz5rGgNHYug1IetSRslHAiEA6qOlOxDZiXnWK/OME19LYeMySaNcmui8u+wtc4vaZU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3454758},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/fb53b7e048f0be9584ba0d1b2d724c17/pipework-0.10.2.tgz","_integrity":"sha512-K+9we1keKoWlO/KXMpW4HVYW4MLtZL1vAXJ/4BsdHC5q0N7nxRpTsF5njrGpZHOX63qMbyXarH/iOmtW+gGbkA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.2_1781399914710_0.9616010213590511","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"pipework","version":"0.10.3","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.3","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1d0c12bbd3785b0d6c7acf77abec6be2d918ce74","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.3.tgz","fileCount":1951,"integrity":"sha512-Wb/maQSiQhZbH3wUiWE4U2RSZsXKUlkBIthbK58qWqhAICrbZYY7VEVzCE0jqxdDoIqhLum0WLWJRr4XmiSYDQ==","signatures":[{"sig":"MEYCIQDDnT2DANqheCnSgpxo/UrleDu33JUIrO5tHif0gkIx8gIhALBlr4H+qkDACJRLCLo94nkZ3IlP9QdgSr/eOzBiGGOV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3439290},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/97f2b7d4ea2680eca1f866571c1d6172/pipework-0.10.3.tgz","_integrity":"sha512-Wb/maQSiQhZbH3wUiWE4U2RSZsXKUlkBIthbK58qWqhAICrbZYY7VEVzCE0jqxdDoIqhLum0WLWJRr4XmiSYDQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.3_1781671334386_0.2899685119000188","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"pipework","version":"0.10.4","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.4","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"d449a7120dc0701682d681a0c8388b34fc723003","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.4.tgz","fileCount":1951,"integrity":"sha512-oalsgEs1ZUoIR7AhceRJKPJR/zlnb1uAo20m/dByFa8Vw/JyQDamJG2YBVQagvkZdL775hQGNO3h2j2ukq/tgA==","signatures":[{"sig":"MEUCIE+dzJaLmaMdnWYJxenumMOQ5LOjOkUW329v0o2PY5zaAiEAx8rNX0Yph2+A6XXrONhDYSM7G4ou+/JS+MGqnyggb7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448429},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/9dc5c77005d36f162da2779544b49ef8/pipework-0.10.4.tgz","_integrity":"sha512-oalsgEs1ZUoIR7AhceRJKPJR/zlnb1uAo20m/dByFa8Vw/JyQDamJG2YBVQagvkZdL775hQGNO3h2j2ukq/tgA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.4_1781676095614_0.9219047519256984","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"pipework","version":"0.10.5","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.5","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ff56d6a3d5604d70c8405f577dac82ba3da07758","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.5.tgz","fileCount":1955,"integrity":"sha512-E1MPuBPioJ/6VVANVKiI+qR8R5ESQ4uPdQh7cJ8Bq+lVrZNOjmTxnPvVS+11ceky9gaytfblbNH20du1BWi0Gw==","signatures":[{"sig":"MEYCIQDYo5eN1yzpbeU+ixISGgIk8Z52YfcxUmrAVOGHckUPQwIhAKrmnpGhpDq/1mIGPN1cFWlzgI/zGUbxKqy5xNbcJhGk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3452774},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/cea4232eca0d101d59e055d75c31d903/pipework-0.10.5.tgz","_integrity":"sha512-E1MPuBPioJ/6VVANVKiI+qR8R5ESQ4uPdQh7cJ8Bq+lVrZNOjmTxnPvVS+11ceky9gaytfblbNH20du1BWi0Gw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.5_1781957280739_0.31277482768034437","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"pipework","version":"0.10.6","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.6","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"7be13ee68b3035ebf51ebeff8e2295acc65b9104","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.6.tgz","fileCount":1955,"integrity":"sha512-WTXBBYkGKc48M8+kiieHtOgtECbKINlRUuilk4gKytCBzEyjxRd0B8ZR4iWshsqFJZ1ij2CpTFPvp4M5gp/mjw==","signatures":[{"sig":"MEUCIQD3ZlV9RuRuX239C96RZZ13rK/s9KP17tr03n9SpAuxRwIgFJpGe7cq4ik/84eO841jDotVseH/IcWmaTIHem9QVDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3453783},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/5d3e84f9d8d4c8e121e4901265325f4e/pipework-0.10.6.tgz","_integrity":"sha512-WTXBBYkGKc48M8+kiieHtOgtECbKINlRUuilk4gKytCBzEyjxRd0B8ZR4iWshsqFJZ1ij2CpTFPvp4M5gp/mjw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.6_1782583236394_0.795308156004888","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"pipework","version":"0.10.8","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.10.8","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"af566d6d834aa95713de14f234f0f7d4c92e4f92","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.10.8.tgz","fileCount":1955,"integrity":"sha512-mxSSwKjh44ZlwPGH8kFqYC2q8EAbo6wTz62KKSsqUv9oVQLGKrts13FoEDaD2OJET/6jh/n3Gsz3j5Wq9l7QAg==","signatures":[{"sig":"MEQCIEo69I3EP9Y4OOPr0eqSQsINwALGANlqrHgRK153CoY+AiAqIWH3eR1Z/gZgn1h0/+gBZxonrXzZxccSDs9ji/pf0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3457300},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.10.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/924cfceea5609041db908cf17347e841/pipework-0.10.8.tgz","_integrity":"sha512-mxSSwKjh44ZlwPGH8kFqYC2q8EAbo6wTz62KKSsqUv9oVQLGKrts13FoEDaD2OJET/6jh/n3Gsz3j5Wq9l7QAg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.10.8_1782595484445_0.6417333087475596","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"pipework","version":"0.11.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.11.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"67c189cb6915446ffa41a162a04939ecaf205e7b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.11.0.tgz","fileCount":1955,"integrity":"sha512-56pYeqGO4bh0KX2YWmYXPWhv0uh4tfCEpCICHyRKaf0SdMGiw4Cyb9aio0gD9eP1eE0wfXE9Xtol+7IqhcMbeQ==","signatures":[{"sig":"MEYCIQCqicRD5CXVMSlEJIsO3aXMWxzlrR+GR/J9EkNW8UCf0wIhAMCZ4BY5jCJce0AWdvJkH6CYIeu5KNIWxJBGdkXGcLDd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3471477},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.11.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/e3f1854d31b0ad2656c679f0a9bbc469/pipework-0.11.0.tgz","_integrity":"sha512-56pYeqGO4bh0KX2YWmYXPWhv0uh4tfCEpCICHyRKaf0SdMGiw4Cyb9aio0gD9eP1eE0wfXE9Xtol+7IqhcMbeQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.11.0_1782651391234_0.7177001394504718","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"pipework","version":"0.12.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.12.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"0b15aabd3ec642060432c112a9e75d4b682f62fb","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.12.0.tgz","fileCount":1960,"integrity":"sha512-4iTSsg6+LfdrMIKC+F9rKyHgvtMSVmj2XJWCXn+kWTelewCxoKDV7JguTtkOs505cXIGucnLgQyEeQifQotLxA==","signatures":[{"sig":"MEYCIQCDUX/Z3I9td47AUTlORrASHfxwAdz50Ndt63RbIH90ggIhAPEqD8XWe8S7pPDhSO/os6hH15i919YmOtpMPXwC2boc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3514597},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.12.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/7752f0094386cff3ee2aea1a03167b02/pipework-0.12.0.tgz","_integrity":"sha512-4iTSsg6+LfdrMIKC+F9rKyHgvtMSVmj2XJWCXn+kWTelewCxoKDV7JguTtkOs505cXIGucnLgQyEeQifQotLxA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.12.0_1782762182810_0.3417731778037756","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"pipework","version":"0.13.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.13.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"00c97cb91395838134d6b1ecd1073fb5bb4d8542","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.13.0.tgz","fileCount":1972,"integrity":"sha512-69P/phoHhM1afVNFQmeQjkI+lrQgo5DhLG4zl4iY0aV7oraGyci3ij+nX/LUIg/HDXUV54+qGH92nhyikCpvSg==","signatures":[{"sig":"MEUCIERCKYCcRnMUoddoQ2boRDC+oCUUW7fJvW1COq10U47uAiEAnOEO9GsF9sy8pBds17nq/ra03R9X6VcPGY+CktqGRYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3533844},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.13.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/37be6adefc8f85293990cf0ad4f91b07/pipework-0.13.0.tgz","_integrity":"sha512-69P/phoHhM1afVNFQmeQjkI+lrQgo5DhLG4zl4iY0aV7oraGyci3ij+nX/LUIg/HDXUV54+qGH92nhyikCpvSg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.13.0_1782765157930_0.428085842846734","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"pipework","version":"0.14.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.14.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"97a87980251ffdbdb6319c4b27cd11ed5903c3de","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.14.0.tgz","fileCount":1972,"integrity":"sha512-7P9MTPDZVh5JjQsEcQieWXpUAypicc6rVZ3l9feDsGjbA2vT5QND9GJ0HETcGsCzKCb/XO3+gh+ENXR686twOA==","signatures":[{"sig":"MEUCIQDiyxVnbJWv+sgiBAKJvPu7M6vXXP3+/47jCKhM/xwa9wIgD2bMTOb3GKQm72sD8H0rTwm5FBfoM7RSYiZq2P+50yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3536030},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.14.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/e0aff2d111a5a54e9b6d616045d65cb9/pipework-0.14.0.tgz","_integrity":"sha512-7P9MTPDZVh5JjQsEcQieWXpUAypicc6rVZ3l9feDsGjbA2vT5QND9GJ0HETcGsCzKCb/XO3+gh+ENXR686twOA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.14.0_1782766118814_0.8309091763907079","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"pipework","version":"0.14.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.14.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"35091d794b1efab00744dff8295b0bd37db61cb4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.14.1.tgz","fileCount":1972,"integrity":"sha512-arUc8SdVnuA8P1exEenj4Y40iRw1kXzQ0lCFptC7ErtuZMzEoP+c+oJinjneCQnyu5PVqZQg283F7Fi56N8Olw==","signatures":[{"sig":"MEQCIEILl3zrwZi7u7sW6aG9+0lmNmgsTCBTTmT8jdI3jh61AiBOmRpymgnGluWQcHwNtOGGwAVjqnfMYLS+xdrJgVArkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3537378},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.14.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/ae151ae17ded4a154c76ae8bebc63053/pipework-0.14.1.tgz","_integrity":"sha512-arUc8SdVnuA8P1exEenj4Y40iRw1kXzQ0lCFptC7ErtuZMzEoP+c+oJinjneCQnyu5PVqZQg283F7Fi56N8Olw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.14.1_1783080235347_0.24447207851599173","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"pipework","version":"0.15.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.15.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"12f2b67938866105832a0ec147a7833b99727c80","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.15.0.tgz","fileCount":1972,"integrity":"sha512-X2dHxXHAFg/FaOnTtgnsKbzjQCexoktooaYcB89CbhbPmuHbo1Dtn2XEKzffD8yOYAnGzi+OBig8A8uhOhtKRw==","signatures":[{"sig":"MEQCIANoNWCIya2//gB5fC6Bqj1y6T6Wntmo5OEL+zfW/J/ZAiBH7iGU2rWs1VsXd3rvshY9BxTK5+nEkzrpcA4jiWuAvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3544919},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.15.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c47cb02800f4f54c369376613718b5d8/pipework-0.15.0.tgz","_integrity":"sha512-X2dHxXHAFg/FaOnTtgnsKbzjQCexoktooaYcB89CbhbPmuHbo1Dtn2XEKzffD8yOYAnGzi+OBig8A8uhOhtKRw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.15.0_1783203044770_0.3629696515139982","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"pipework","version":"0.16.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.16.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ac7b7bdd2a16f7250eec863390e845fb1b75953b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.16.0.tgz","fileCount":1988,"integrity":"sha512-7x7yLhCLwNFdbFuvlj1s2UxQc4aTDiJzn7CIcu/mgsuRH/ZnstXsKs520bTJZ6dZPtlefnQuPL0IYpNB+eHTkg==","signatures":[{"sig":"MEUCIQC9hLuLWYc8tCeAGGoIHucYHKFpbTScuoDjDybgh4MMUgIgYJ6BcyXehSQahorvSuBE8DJdFvBorVWnZGf8MoWaYOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3589922},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.16.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/5dc1ac0dd4dde2e6d8e611f38b02cb34/pipework-0.16.0.tgz","_integrity":"sha512-7x7yLhCLwNFdbFuvlj1s2UxQc4aTDiJzn7CIcu/mgsuRH/ZnstXsKs520bTJZ6dZPtlefnQuPL0IYpNB+eHTkg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.16.0_1784214109831_0.9767360903322819","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"pipework","version":"0.17.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.17.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"fa41c9a7c9083a79982152328ea2aabc81c53b46","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.17.0.tgz","fileCount":1999,"integrity":"sha512-Jduu4TjhCCXZn5TY/S9k/His8sXWgaVQ0E01JmfXGeVKTawh4Qsy3FKzxlagpHoLGWUtSUWvWiqW+Nyp5dJHFw==","signatures":[{"sig":"MEUCIFaIIjaJ7kkyIKf8+jb1vvQLpCcb2ciD0v98f/IaXlj4AiEA9+RUmONa4uJuUBl8nPihz6nWYVnnBt1atTA1GCg68PE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3592437},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.17.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/dc1794a966e73400f29ae1b239ace24e/pipework-0.17.0.tgz","_integrity":"sha512-Jduu4TjhCCXZn5TY/S9k/His8sXWgaVQ0E01JmfXGeVKTawh4Qsy3FKzxlagpHoLGWUtSUWvWiqW+Nyp5dJHFw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.17.0_1784444650246_0.971538020272048","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"pipework","version":"0.17.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.17.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"3a461da5733fa6c4a011915388bac36533e16979","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.17.1.tgz","fileCount":2003,"integrity":"sha512-JDdtRJBvLpa0GUnNUiE196XToEnjsezltdj+8uhaq41krZME6D2u57EN2yWAs7/oEYQdzOjJ+nT5ICqZ72ONTQ==","signatures":[{"sig":"MEQCICSEc7U7MIwtNbCE4Go20sVhXZHfeWjKNygtAXhPz9syAiALXs+/gSTRDIkeu1CJZ03/VDLcrWmpFh+7hIwf+DRGcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3601599},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.17.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/ea5175e31acdc9deab2f6aa07205f472/pipework-0.17.1.tgz","_integrity":"sha512-JDdtRJBvLpa0GUnNUiE196XToEnjsezltdj+8uhaq41krZME6D2u57EN2yWAs7/oEYQdzOjJ+nT5ICqZ72ONTQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.17.1_1784451790126_0.9915694164064595","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"pipework","version":"0.18.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.18.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"273cd2d474e5dbe7f2f54d58ee807e827d64a961","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.18.0.tgz","fileCount":2008,"integrity":"sha512-NHoUg1YeZe55BcDxAhniRa+YsbxWmJ85v6ElGzig7Y8OEs2JzWe5Dd+JfVkOwrcr3nbSJzBWRg3Bv9aoIilfKg==","signatures":[{"sig":"MEUCIB9grXfTn2E6K+9DeCCxCVjceXUSwY6A1g3Pq+N30X1uAiEAg1dcKqfIhRmL4BEexQ0K1Bw84i6CTCzwgav70AUD2Vk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3649372},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.18.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/d01c8b1b3ebc9d1f0828383e09366856/pipework-0.18.0.tgz","_integrity":"sha512-NHoUg1YeZe55BcDxAhniRa+YsbxWmJ85v6ElGzig7Y8OEs2JzWe5Dd+JfVkOwrcr3nbSJzBWRg3Bv9aoIilfKg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.18.0_1785519325134_0.38274257349754137","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"pipework","version":"0.19.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.19.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"cd4477190cc0ab30d399701594fbb8da75f4d9db","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.19.0.tgz","fileCount":2012,"integrity":"sha512-CTK6ZbgUAYpft9/egT3SHQfTSwwvmi1lhuB5g0Of8HMUuqgoygd26Vlc4WER+CAD/pt8QQbdeIiJY6Bo+auuGQ==","signatures":[{"sig":"MEUCIQCjIUN62CqfoeA71uU0ObSa3V8RfUYmOS2f4warNhYz7gIgH0bnUNAtTO43jV7iXCWlh5zlDizm2UwOjKXo6csfwT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3669171},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.19.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/2ac5ef02cb89655dcb773ff2d25a12d8/pipework-0.19.0.tgz","_integrity":"sha512-CTK6ZbgUAYpft9/egT3SHQfTSwwvmi1lhuB5g0Of8HMUuqgoygd26Vlc4WER+CAD/pt8QQbdeIiJY6Bo+auuGQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.19.0_1785521683196_0.9342590574986696","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"pipework","version":"0.19.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.19.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1f034e25235950ac0a0c7ce645eff674f5601e0b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.19.1.tgz","fileCount":2012,"integrity":"sha512-3n4OhLTqODhOwfMjpzPha50wswWZA/9gYfIgSRg62RiGaWGn0/7AXD8WHFl9Xmu/PmBVASV0yGhv+ZG6xjcL7w==","signatures":[{"sig":"MEUCIF3P23q91P42X6SLEXbAIg6XuBSip+x6/wSdMqahlvP7AiEAwQu7m36rQ/Wrz2tqq58nz8zalnvkXPhfaBhbcfDcIPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3673362},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.19.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/0e9e895d87c896eda79b964fbc92735c/pipework-0.19.1.tgz","_integrity":"sha512-3n4OhLTqODhOwfMjpzPha50wswWZA/9gYfIgSRg62RiGaWGn0/7AXD8WHFl9Xmu/PmBVASV0yGhv+ZG6xjcL7w==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.19.1_1785943064224_0.2538161330004929","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"pipework","version":"0.20.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.20.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ad3b588427ca98480e3d1d9e05e2a3d59b28d550","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.20.0.tgz","fileCount":2016,"integrity":"sha512-E1WnJeH1szjNZigKlspwbMNrmOQqKbg8LByW4iMuKQAOIAQAHWcr8nravM9mbB+qhRqwbGB9b0of/9s9sHeKSg==","signatures":[{"sig":"MEUCIAtUV2Hsp3/NksbeBCKWSyBYqg/IYYj8qEp/u5IhYdHVAiEA2YU9UsiwZnCBtjbYjxZGNmk3hHCMvZJ9clkIKQLFR9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3706748},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.20.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b5d5a6bd172f667a92dc699c62d7313e/pipework-0.20.0.tgz","_integrity":"sha512-E1WnJeH1szjNZigKlspwbMNrmOQqKbg8LByW4iMuKQAOIAQAHWcr8nravM9mbB+qhRqwbGB9b0of/9s9sHeKSg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.20.0_1786481997914_0.04647952761551388","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"pipework","version":"0.21.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.21.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"332d8570bb4f5f6543042dc2545efd2db15cbc2b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.21.0.tgz","fileCount":2016,"integrity":"sha512-qYkSUKV5ehpgf6GlZv3/w3b7EbG9hPL+hfzRqzpsDfnc3LXQzNXODv2wXB91sakZjutYo8Uv7hHCK1awXC+BRw==","signatures":[{"sig":"MEYCIQDAUpWTNceO46yQgI1OdF58+lEC1OPaftRbgMHbf21LkgIhAJCHuvnPV5/eZWYVHJf0ypsnlxQQrSt2Q2y80PlxrO/K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3728116},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.21.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/923e434634c789fcf9cd6850e412fa61/pipework-0.21.0.tgz","_integrity":"sha512-qYkSUKV5ehpgf6GlZv3/w3b7EbG9hPL+hfzRqzpsDfnc3LXQzNXODv2wXB91sakZjutYo8Uv7hHCK1awXC+BRw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.21.0_1786757151575_0.9068613976154862","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"pipework","version":"0.22.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.22.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"46d528dd999d40d82f0afe4e008a1f15696d7abe","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.22.0.tgz","fileCount":2020,"integrity":"sha512-xd89ARxGIbiHu5l3mCH6HNBaHAK03gLM7cvBCrXFpBkgc5gTyiBzBqStjMHNFPss9xmZ5xevTWqFZGKOQ++jIg==","signatures":[{"sig":"MEQCIEWy8YWqu5G0cnje4/HN/Hmgd8B3F7djDeaZi7He47KqAiAqL+VmsPDDPx2G8lakwu5Us9h3kU/QmwEFCBx383Erow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3740011},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.22.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/3cb7a2213593f2d127a5bfaadd0aca37/pipework-0.22.0.tgz","_integrity":"sha512-xd89ARxGIbiHu5l3mCH6HNBaHAK03gLM7cvBCrXFpBkgc5gTyiBzBqStjMHNFPss9xmZ5xevTWqFZGKOQ++jIg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.7","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.22.0_1787140257668_0.9025111459888129","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"pipework","version":"0.23.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.23.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ae2f133673f6ebf9bb8543b99f6b617ff745e26b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.23.0.tgz","fileCount":2020,"integrity":"sha512-xKTVUJLZ5eoJgxpJOE6H0+A7PEtmwUYVD4C6oEbstUrsrqdtWkmRKF9qoNOG8+JcFIpJSKcJdv/CUqdkigpUiA==","signatures":[{"sig":"MEUCIQCnzSiH15wo+7/QbxgchYr1WZiP3QyTsfUP2h9CD5GleQIgc4P+g+8ca0HOVRo/YCxJSLCOCVeuYrAndg9rxcq2rqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3745736},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.23.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/2c5c68f1c50f380c3a8caf5926285932/pipework-0.23.0.tgz","_integrity":"sha512-xKTVUJLZ5eoJgxpJOE6H0+A7PEtmwUYVD4C6oEbstUrsrqdtWkmRKF9qoNOG8+JcFIpJSKcJdv/CUqdkigpUiA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.23.0_1787925774222_0.7916874021504419","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"pipework","version":"0.24.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.24.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e0d579f77b1c4a8b86586a93ab67efaaf07545f4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.24.0.tgz","fileCount":2020,"integrity":"sha512-chBjTKwCIhpEvflxYWBTIgzttAASVaqHqApWkfecWblJLHkX0gIPrhUhe2qRb364fxgxUSA+skmsE0wayhiozQ==","signatures":[{"sig":"MEUCIQCiqAOP933AQV0gNOHGv5FJv7Zq2cwyt17v7I0QNztMlQIgFm/hiSRy7TJVfHclMngZrJq/KdnVLSJ7ufmQDrNKVT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3752258},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.24.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/6dbdfe614953392112da83e093d965de/pipework-0.24.0.tgz","_integrity":"sha512-chBjTKwCIhpEvflxYWBTIgzttAASVaqHqApWkfecWblJLHkX0gIPrhUhe2qRb364fxgxUSA+skmsE0wayhiozQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.24.0_1787928327469_0.552675775969202","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"pipework","version":"0.24.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.24.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1b1d24feca00832a0b06359f81323b094b2f7ce9","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.24.1.tgz","fileCount":2020,"integrity":"sha512-FGsBwzbTdZ2n/8dGGLf5rNlLqxzz1CX9B+7j+iBVlqozkqp24/UpwL7XEpXs0DS5//E0zj30uhtjVI0TC/d9ww==","signatures":[{"sig":"MEQCICUSCyuSqwi8BnAXhf1HvkNJHegY/HZj+EUJ13UN4E+eAiBvWv3PjKcDWHp6JsjpXkfApeFjatw1fZSAQf4FOLRa5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3754118},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.24.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/46ef6f32f43498e5c1624a25a871ddfa/pipework-0.24.1.tgz","_integrity":"sha512-FGsBwzbTdZ2n/8dGGLf5rNlLqxzz1CX9B+7j+iBVlqozkqp24/UpwL7XEpXs0DS5//E0zj30uhtjVI0TC/d9ww==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.24.1_1787929186693_0.7420178616747062","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"pipework","version":"0.25.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.25.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e04d826eeabf3f099a549dfd8906bf8dc6acaccd","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.25.0.tgz","fileCount":2019,"integrity":"sha512-NhPDkeiycrzlghV0PGwfiFal+lESNFCKWXOIm3e+1eYH3xLW9t6sBDK8tEVu7XcZygnFptnjQRSh0YF3B+ynGg==","signatures":[{"sig":"MEYCIQCsAs97GozSbDWdTY2z6hN++snBVnvq7Fy4RwRrbjmJ8AIhAJBOshROhP98E9+XgQv5s+ZBg5Pdtwhc4dpN0hctLh+r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3733560},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.25.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/6d082572b4f4ac7cd5a35f1f0df8cc58/pipework-0.25.0.tgz","_integrity":"sha512-NhPDkeiycrzlghV0PGwfiFal+lESNFCKWXOIm3e+1eYH3xLW9t6sBDK8tEVu7XcZygnFptnjQRSh0YF3B+ynGg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.25.0_1787955103579_0.15073626413913122","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"pipework","version":"0.25.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.25.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"a374dfd1d1dff15e6a09af46fc48dbb68e91c01e","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.25.1.tgz","fileCount":2019,"integrity":"sha512-vrrALbh5I3c0B/K60wLtpES1iwJUrCp7l+6SVS7voqXdolXCgbJ7O5AUQBOM/LEJtS49H+e1TQ+wqJQGsJnedw==","signatures":[{"sig":"MEUCIFVH53NhR7GLyOPhYMok9rBDoG3FKu2DDDm3eyr3GmsfAiEAto1aaEwVzlqsy6Fd/3DgIIPAywma91r/1/wBZBo9cpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3739076},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.25.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/671bd7099720af67c4654275fcfb252e/pipework-0.25.1.tgz","_integrity":"sha512-vrrALbh5I3c0B/K60wLtpES1iwJUrCp7l+6SVS7voqXdolXCgbJ7O5AUQBOM/LEJtS49H+e1TQ+wqJQGsJnedw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.25.1_1787956380761_0.32643509249750924","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"pipework","version":"0.26.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.26.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"5141ecbb2b92df5e51e84734faaf1df4c7965310","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.26.0.tgz","fileCount":2019,"integrity":"sha512-br1hNsJWTb8NTwarGipZPqTLqLwbC3NnF8faMeffvvd0D+4qpjBWc96hS9D6sdRRUGCsMn+NbMJAv4/FxNUGqw==","signatures":[{"sig":"MEUCIQCiDU7PxPMajPJBCJChx9MmEub4PGa9hQayABvtC20ByAIgYaclDInAqRHALdS1hOgPJMVq2UoJZd1qA803Y82dI6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3741294},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.26.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c6f22c80255be432a9644449238f9b21/pipework-0.26.0.tgz","_integrity":"sha512-br1hNsJWTb8NTwarGipZPqTLqLwbC3NnF8faMeffvvd0D+4qpjBWc96hS9D6sdRRUGCsMn+NbMJAv4/FxNUGqw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.26.0_1787956891328_0.06879126009066638","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"pipework","version":"0.27.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.27.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"bdad4797e0dd015812efce359c872ed492d52a3d","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.27.0.tgz","fileCount":2019,"integrity":"sha512-mni0zh3Ser7MBnbIL5IUV+XwjqLHyeFFYCXDzu0UiWGwPb/aSYFXqVM2vPXJaV9gUmnKIINdNJOIsOZE+tjmmg==","signatures":[{"sig":"MEYCIQCMumkHPDA6Hc7qnbtQijmp73rvHDUX17fHnTge1f4jAwIhANPDRQaJM6QOzZIwSar59hKnbWy65WYCx/I97kwe4xXb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3748595},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.27.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/93db1e189c07e9f43c86c629e98f34d2/pipework-0.27.0.tgz","_integrity":"sha512-mni0zh3Ser7MBnbIL5IUV+XwjqLHyeFFYCXDzu0UiWGwPb/aSYFXqVM2vPXJaV9gUmnKIINdNJOIsOZE+tjmmg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.27.0_1787958349265_0.44819482522735465","host":"s3://npm-registry-packages-npm-production"}},"0.27.1":{"name":"pipework","version":"0.27.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.27.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1fbf0d78a860f5b134e4ba1542280a585fe3eaac","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.27.1.tgz","fileCount":2019,"integrity":"sha512-YOlU66Yj5Jjr4pc4f88vUCBZWOyqqCgCjkdI6buTI6ydZHO/M09HHUZR+LG0qBFpyOE2EikiCGSxhwyBYYTYRw==","signatures":[{"sig":"MEUCIQC6qn/Pgz6mQPSAzTWgyDuHwm0zYi9yZa0ZJch64Ek2eAIgIuhTjxTv+YcJrXm443AkYH8CrJEDa50jXlNmYxuubjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3749143},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.27.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.stryker.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/dc5dba463ddb68b22793c4d8e02a9027/pipework-0.27.1.tgz","_integrity":"sha512-YOlU66Yj5Jjr4pc4f88vUCBZWOyqqCgCjkdI6buTI6ydZHO/M09HHUZR+LG0qBFpyOE2EikiCGSxhwyBYYTYRw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.27.1_1787960091951_0.3572720040899362","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"pipework","version":"0.28.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.28.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e36a85347ae33bfa308ed7a56e35f14e81f5e46a","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.28.0.tgz","fileCount":2019,"integrity":"sha512-qdzNLswS7Q/DmVmngJ9rkvDDYR4CcMu4VH4VylwlGY1AWrRq+TjSH523CUCDVqFJyrJJFjcS4y6IZ2B/7dyUFA==","signatures":[{"sig":"MEUCIQCuYZW7zyEj3a9mLtZrKA3G11VAWDjSKOZns6zsdZGMRwIgTiZcea6IhMdr5m1qptvSCDxqLCscZxZ5/np83vbcdIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3761076},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.28.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b543d12dfa88c7ddbf50373e72f08c5e/pipework-0.28.0.tgz","_integrity":"sha512-qdzNLswS7Q/DmVmngJ9rkvDDYR4CcMu4VH4VylwlGY1AWrRq+TjSH523CUCDVqFJyrJJFjcS4y6IZ2B/7dyUFA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.28.0_1787961344534_0.26495762499682485","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"pipework","version":"0.29.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.29.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"476e41a8f3d2fbf540c37b11f6d20354b366a8f4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.29.0.tgz","fileCount":2019,"integrity":"sha512-q9QMuiaYRQrtkPRxwZOgh8TjQdwblbVwb2Wq/1ASI/AiN6+ebg8KbSbitg+R0H2EOWrQaW1eX0I1OA6Tz/D3mQ==","signatures":[{"sig":"MEYCIQCgWpLm64Tsd6qqAdvZrP0SKpvSK0h02sFfvtS+J3d6mgIhAM1CKyWc52e6YkR0L+1EiFvhBcJy+DTn+k5MysBEkv8j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3763705},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.29.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/df8a3c969ae7b895c4d3ba71bd0e87d4/pipework-0.29.0.tgz","_integrity":"sha512-q9QMuiaYRQrtkPRxwZOgh8TjQdwblbVwb2Wq/1ASI/AiN6+ebg8KbSbitg+R0H2EOWrQaW1eX0I1OA6Tz/D3mQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.29.0_1787962017518_0.7095119746838543","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"pipework","version":"0.30.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.30.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"671195951c650f1b8b460b0dbdf54a23c2da1c2b","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.30.0.tgz","fileCount":2024,"integrity":"sha512-/nPJa14449ayUs70DFwK5AU3civkcRB8VV0Uw8cZjBeJrLC3mUM3A/9eYtazGFiFZeBuzh5aJe/xpfFMQl4+VQ==","signatures":[{"sig":"MEQCIFmJOOQpQ0tIQDGlhhNKU+9PO6Gu/lQOCwTDLn259H2xAiA0K/QcXLU3NxXQEGhSCW49XKikmZK/aricFodt7FIcTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3816884},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.30.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/50d15000e54126786eb1609dd89e474b/pipework-0.30.0.tgz","_integrity":"sha512-/nPJa14449ayUs70DFwK5AU3civkcRB8VV0Uw8cZjBeJrLC3mUM3A/9eYtazGFiFZeBuzh5aJe/xpfFMQl4+VQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.30.0_1787983023478_0.1460374894729155","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"pipework","version":"0.31.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.31.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"744585e377f4a669b21d0c6a25d18c8bde73dfb5","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.31.0.tgz","fileCount":2024,"integrity":"sha512-2l46++G34ihEskg8Tv7YJ4dv3j/USWRFa4RCe0IZZDV4MQEnJEkGIXZtZwMiSosahkhWL+V2+shByrJ8a9t80Q==","signatures":[{"sig":"MEUCIQCDPxY9kHGA23lXm4LxiXuidbH111rnq6efOFxk38qQQQIgfCseGMXYBeDVqgYkm6rsn+MVepoH1lREGek3IVvCorI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3825682},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.31.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/352f97de86087a18b672ef1e48eb8a83/pipework-0.31.0.tgz","_integrity":"sha512-2l46++G34ihEskg8Tv7YJ4dv3j/USWRFa4RCe0IZZDV4MQEnJEkGIXZtZwMiSosahkhWL+V2+shByrJ8a9t80Q==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.31.0_1787983659863_0.3533894502791477","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"pipework","version":"0.32.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.32.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"0c99c7bec6a84ec2640387c66685431a6442da61","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.32.0.tgz","fileCount":2024,"integrity":"sha512-zuofis4AxeeqMNCiaTzmJREh7NncMax9FzNg2WFwDakX+i/UxwS7TeoiHqvGXBYsE6QivH1x2JtVqr8ZfpnI+A==","signatures":[{"sig":"MEYCIQCBEH9KwdIp3atj91DDoMFDsm4eCn3mKd0qvbWYStiVkwIhAJ2BeMeI5cqjQDEPyMSuH0Agyd4YIP/gWhnJMoK7DegH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3836840},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.32.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/eb02a8d799e5c386149e9a158f3fef5a/pipework-0.32.0.tgz","_integrity":"sha512-zuofis4AxeeqMNCiaTzmJREh7NncMax9FzNg2WFwDakX+i/UxwS7TeoiHqvGXBYsE6QivH1x2JtVqr8ZfpnI+A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.32.0_1787992318609_0.5069233924632761","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"pipework","version":"0.33.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.33.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"adc6dc326d1c0e267bd63f2cf0928abbd4e5cbb8","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.33.0.tgz","fileCount":2024,"integrity":"sha512-MUTT8yRO3Fshw9ZBDV1ZHZMyyXgHGLFw7yPV/hC5JQhlLuXmMj9hY170mqs/X5tPVImw2zmKS0gGOfRaloHdxQ==","signatures":[{"sig":"MEUCIQCyUV6zbbfZL6FmV60Y8OYAFxH4IlaRdozPOO5/BJk3WwIgcDG1SZkL3hfquiMyYhAXI0jw86N13D1wnHGbVGP85ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3846530},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.33.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/4d5fba8e6811270e9131783e608964f8/pipework-0.33.0.tgz","_integrity":"sha512-MUTT8yRO3Fshw9ZBDV1ZHZMyyXgHGLFw7yPV/hC5JQhlLuXmMj9hY170mqs/X5tPVImw2zmKS0gGOfRaloHdxQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.33.0_1787993159671_0.273453459510129","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"pipework","version":"0.34.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.34.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c78ff5c13689512f7fe2a7df035e6149b4722985","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.34.0.tgz","fileCount":2032,"integrity":"sha512-/zAOdSH0RSKueoZFXuceKRXRuMAj+cCB4Y4k6N3hWQ2XxNKvUvEJoWmBhAng/AdeweVuTz0chXQhZWRYBN91XA==","signatures":[{"sig":"MEQCIGjPjCQUG71yNiSAhPP2PohldtT51Mk/2xBZtNcbUgQaAiBtHyhNLFu+tG1kSmg/Kfu7K6nyLP3YabJHKd/T7Lmc1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3862583},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.34.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/ac3eb8b99022062879b12d9da63f7629/pipework-0.34.0.tgz","_integrity":"sha512-/zAOdSH0RSKueoZFXuceKRXRuMAj+cCB4Y4k6N3hWQ2XxNKvUvEJoWmBhAng/AdeweVuTz0chXQhZWRYBN91XA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.34.0_1787997767604_0.4492888176354839","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"pipework","version":"0.35.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.35.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"2ce65f36895a587733222bdccaa5cd3ad11e970a","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.35.0.tgz","fileCount":2032,"integrity":"sha512-hnATLutvkyUi6BuVPFPYrrzxFoEd5jjW77mSZgcVB/bp9C/BstofjWzd/PCEG22lu41IzTcQEbvsKoxYIgrjfQ==","signatures":[{"sig":"MEUCIQCiZGjH0UzQmVRa9/kaOgNp4QwpGgT4SFacgIuy4fY+WQIgbWukHaONwGT534nLmYAcmhTFG4rHlQ4wenjpeg8mcjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3887564},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.35.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/e4b142a9082742a381d3e6d43fb29ad7/pipework-0.35.0.tgz","_integrity":"sha512-hnATLutvkyUi6BuVPFPYrrzxFoEd5jjW77mSZgcVB/bp9C/BstofjWzd/PCEG22lu41IzTcQEbvsKoxYIgrjfQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.35.0_1788036043034_0.17085555141615494","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"pipework","version":"0.36.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.36.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"ec74b9704617f08bab1d321c12423d55e2908a31","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.36.0.tgz","fileCount":2036,"integrity":"sha512-nouRII8LfhPGdaXbE1rRqVIyFtaC8K8OBD6fzBbv18yLFUlja0WV1nWqBC+G2EJ+KSyzBEKevAsHOruQOEXVWA==","signatures":[{"sig":"MEYCIQCyZzBi9r593y4dBIA81bz4wxh/tZukuh7SI7JrTFwwvAIhAJmVv8RxrUCWoYLBnK+3LDjh9Mggq6RMDHfnBN5ijqaF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3904663},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.36.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/7b49440a5329e1c3fa39039a4a84060c/pipework-0.36.0.tgz","_integrity":"sha512-nouRII8LfhPGdaXbE1rRqVIyFtaC8K8OBD6fzBbv18yLFUlja0WV1nWqBC+G2EJ+KSyzBEKevAsHOruQOEXVWA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.36.0_1788036677554_0.9126017733791802","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"pipework","version":"0.37.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.37.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"b6969e6809d03412b0c3c9a19179ce2ee3447a61","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.37.0.tgz","fileCount":2036,"integrity":"sha512-kCLqG/LUYGnGJyGbPTJa34xi9ZaEdFF8t+GwfwFcezbnw1ZPxuNsTCDYSsIw9KMA+XKCTVZ9nVk3YgRJCSjrJA==","signatures":[{"sig":"MEYCIQDT7tZj+Pri3bKOwnazAZbBOw9w+axcHfvXwHaeuGQh3wIhAMOcS8dOffrO3tkvS4yZMSMbgPehECo7DsoySwzFDqHZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3919178},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.37.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/d1e092d01bb38595214427bbe6458547/pipework-0.37.0.tgz","_integrity":"sha512-kCLqG/LUYGnGJyGbPTJa34xi9ZaEdFF8t+GwfwFcezbnw1ZPxuNsTCDYSsIw9KMA+XKCTVZ9nVk3YgRJCSjrJA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.37.0_1788037570267_0.1823020273671654","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"pipework","version":"0.38.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.38.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c0b6aa57d39985542bb4605718b4642c77b6b179","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.38.0.tgz","fileCount":2036,"integrity":"sha512-qObVsUoJ+5WK1MVZ/jScPz10P3THFkksJ8qNdX+tt/8jX2Xm+cqYPEerZ7vXxu4LTFqsxz+ASrUb9isZbxnVxA==","signatures":[{"sig":"MEUCIQDyC0r542rkb5H4BdKffdASfKAnr899tCSn1TiQGfBcwAIgeWfJGyg8mtLcC0aWMhfEQapW+kSRrjTwMyX+6RF++Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3926182},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.38.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/a4d8fe546d352611432a91dcf8e3d77e/pipework-0.38.0.tgz","_integrity":"sha512-qObVsUoJ+5WK1MVZ/jScPz10P3THFkksJ8qNdX+tt/8jX2Xm+cqYPEerZ7vXxu4LTFqsxz+ASrUb9isZbxnVxA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.38.0_1788038053641_0.14483571867857048","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"pipework","version":"0.39.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.39.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e2d2c60fcffcc6d68d82cb7ebf85dd1ef1bfe515","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.39.0.tgz","fileCount":2036,"integrity":"sha512-byPb9iTJtS/YmUmKazh/NEjyme/Wyute+zEwLhg6vTrsndpBTTfGdhaB3eBY0IZn4JXcv34jNh0qMjSLjoB3wA==","signatures":[{"sig":"MEYCIQCIwKh3uMU01F4LPhqap+e4deurgYr+JFKCSu5BI9D+1QIhAMw73SOcpNzWsPHusRWzS3JYLYV+UxJd0pHAarbD2s+U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3932524},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.39.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/08142b5756f31891c64fa5c7f796cc69/pipework-0.39.0.tgz","_integrity":"sha512-byPb9iTJtS/YmUmKazh/NEjyme/Wyute+zEwLhg6vTrsndpBTTfGdhaB3eBY0IZn4JXcv34jNh0qMjSLjoB3wA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.39.0_1788038572496_0.34964937982216693","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"pipework","version":"0.40.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.40.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"624664047754a2682d987c4c72ba2ca7d00c3972","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.40.0.tgz","fileCount":2040,"integrity":"sha512-FkBGQNoTNtP9FlVHPu/6JWtk/vMXNPaGdp7zAXe+q4Iz+5IM/7SZkkhH8C6FahNFQLEEYB69vM4qJ+p5adR8CA==","signatures":[{"sig":"MEQCICzA18EKrOPxg2dErxOI3QNE97onLNWRCEQ3mt0cWPH/AiBVtngOw2lnK9SLPfhzfbJLW+KxHxBXtUObQWYdw1beSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3940767},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.40.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b285140ca51d3fb37cd32c4482440e76/pipework-0.40.0.tgz","_integrity":"sha512-FkBGQNoTNtP9FlVHPu/6JWtk/vMXNPaGdp7zAXe+q4Iz+5IM/7SZkkhH8C6FahNFQLEEYB69vM4qJ+p5adR8CA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.40.0_1788048898800_0.192604576375067","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"pipework","version":"0.41.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.41.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"2a616e10908f220c7f7b32a7fc3c71475351b989","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.41.0.tgz","fileCount":2040,"integrity":"sha512-C8D3Eyy1cn/puFYVC/QBzUqUbbNhBZE2r7WaKeG7ZXq6o4k/+srJzWobhpq2lioCza35ESI84RaNQ/0eMvXmcg==","signatures":[{"sig":"MEUCIAVbB5AP4JMj0PK1z2N9COqN5PDODp3jHgI3NzY47WD9AiEA/KxavBsyeWG5/xj5qrw1A32Eozjw9DRcO1lMCWbtC1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3943054},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.41.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b42e1a0611b95346d4ac064be90cab60/pipework-0.41.0.tgz","_integrity":"sha512-C8D3Eyy1cn/puFYVC/QBzUqUbbNhBZE2r7WaKeG7ZXq6o4k/+srJzWobhpq2lioCza35ESI84RaNQ/0eMvXmcg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.41.0_1788049211786_0.700229537066265","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"pipework","version":"0.42.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.42.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"d1a398294fcf8e12aee58ee891d94751c888cfe9","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.42.0.tgz","fileCount":2040,"integrity":"sha512-uYPXi35cg9cuRWe33eIMuze5Semy6Tj2KbN3AvDZNdK8nYCvmXlKdWouv6CRyL5ygBs3GNjMOggS0iEonzqiNQ==","signatures":[{"sig":"MEYCIQCytFVOc4vugGZAoaM4i3yWTYwLArkRFElbNOkeF9YmwgIhAJZcWIYJ5fg52QHRPovNeRZ+MUd9HY3E10rxvI9sTzTZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3946687},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.42.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/5661db43d01daa6888e4749002796f79/pipework-0.42.0.tgz","_integrity":"sha512-uYPXi35cg9cuRWe33eIMuze5Semy6Tj2KbN3AvDZNdK8nYCvmXlKdWouv6CRyL5ygBs3GNjMOggS0iEonzqiNQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.42.0_1788049522007_0.32439062574075694","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"pipework","version":"0.43.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.43.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"464c3780f04a3ebef75d1ae95bf346c898d6bdfc","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.43.0.tgz","fileCount":2040,"integrity":"sha512-X/00i8OPmBbsAY2jPnz3SY6TF2WSMKlTBWsTH63YhbJT7sUh3KIQ2KlID+NfMcZlF0CREG1gPBsam1f3RLiGCQ==","signatures":[{"sig":"MEYCIQD+/K9V8T/4X+4u24HWFUtb37P4/wufVqA+rlvRZ0A2YwIhAJpoOzLLNV3IfwjDEkBK4FR5boHxOv65fxJns5zCvbbX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3947280},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.43.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/b92446b37d4ad09dbab506b211231442/pipework-0.43.0.tgz","_integrity":"sha512-X/00i8OPmBbsAY2jPnz3SY6TF2WSMKlTBWsTH63YhbJT7sUh3KIQ2KlID+NfMcZlF0CREG1gPBsam1f3RLiGCQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.43.0_1788049867431_0.0891436821078333","host":"s3://npm-registry-packages-npm-production"}},"0.44.0":{"name":"pipework","version":"0.44.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.44.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"1610e03bfcb18e5d519fbc51892af93db1de06e2","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.44.0.tgz","fileCount":2040,"integrity":"sha512-wndzsliDoCRpD3wGrCkXk3NAGqOsqk1Qa49S9+if7xw128Y0XiqfztkLec8A5n5IA+ZSSvXptfaIQD1m8rjVVA==","signatures":[{"sig":"MEUCIQDsG3x6UCNvjtNrAZsnAzLg5VoapnpADiHD/xfZl7UwWgIgZwixAv4PldjTcorBh9qXmVJmrQ60xDCxNwmstMnFxNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3958610},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.44.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/cfb1e1d4ac7157a9e5640b8477d4858b/pipework-0.44.0.tgz","_integrity":"sha512-wndzsliDoCRpD3wGrCkXk3NAGqOsqk1Qa49S9+if7xw128Y0XiqfztkLec8A5n5IA+ZSSvXptfaIQD1m8rjVVA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.44.0_1788052828893_0.3106500709441271","host":"s3://npm-registry-packages-npm-production"}},"0.45.0":{"name":"pipework","version":"0.45.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.45.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"d1ddcb7c7122095a2688ae4d609abfb701c03748","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.45.0.tgz","fileCount":2040,"integrity":"sha512-24DyHn3CXG1grk57fYFosW/A9Na9BJKoIiMGVdiJyKEhPrrwdS1r2geYVSD+whs1k6WXb0Bt0tMqxc4l5Asl8A==","signatures":[{"sig":"MEUCIA59ZaOAHfsGJDSCFqF13DiV/k78NKG4fILAX2GALQ/aAiEA0+fK5dtxlRxMFT5P/G+PNZcDid2PEYYkUfyMnjrCK60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3960097},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.45.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/005dac8182ab4d4234162f502cdb81e3/pipework-0.45.0.tgz","_integrity":"sha512-24DyHn3CXG1grk57fYFosW/A9Na9BJKoIiMGVdiJyKEhPrrwdS1r2geYVSD+whs1k6WXb0Bt0tMqxc4l5Asl8A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.45.0_1788053156195_0.3741289843773361","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"pipework","version":"0.49.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.49.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"2bbc47e77dff738b4af7dfba80aafa7f1344f0d3","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.49.0.tgz","fileCount":2040,"integrity":"sha512-YyrcehuK6d/bJg098Amg8yBrhnDuUxvWRg7lctUE9/VeNBGphWRa1NKGhM7KEtKRld3iDsThn2C/2gguNbXspw==","signatures":[{"sig":"MEUCIQD4z/Z5Cb/4qXBYlM9DK1NvA8wjHg2VKfiLyNg9745kwQIgUlyeuB/iBrB7J2ZkWFo1uCYc3/5mziVoz7bU1Uqo/GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE2CgjdYNGWbjDgVNtYn0tL2OM5hQX/LYHSXbSGxzkBqAiAnHJoDCtORqlt66XC11Hj6t87xPY21tIs9M0ZbAr+/aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3983806},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.49.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/5b3e416f8c3c26be8b45749a7047a7a7/pipework-0.49.0.tgz","_integrity":"sha512-YyrcehuK6d/bJg098Amg8yBrhnDuUxvWRg7lctUE9/VeNBGphWRa1NKGhM7KEtKRld3iDsThn2C/2gguNbXspw==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.49.0_1790019515575_0.6387538666160595","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"pipework","version":"0.50.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.50.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"60dde573e2e2218c7ab03f158a728a69e23e845f","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.50.0.tgz","fileCount":2040,"integrity":"sha512-bZ0Oa+jsgquOi511RBgEoUtiR5uKSNV5oof8NfoZcAvrar51uFErucOSVLaHFbWjt3wrK++6s9x9W1ikrwOU3g==","signatures":[{"sig":"MEYCIQDpI4Qa+98WCnqeltOgehCQbJcNjVGz24W/DZuzpVR6/wIhAOWdABooXwce87wmQN7By4rwXD9ZTKNGlS60wL3pY4/o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDY+/pB4s6IoYT/1EYta8EDkuFP686gudvr3a0QkRkqXgIhALNXvA3ulFL5pZOebR99FYEknigFnjeNtn3wtsYfVbuf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3987737},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.50.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/c7d137881368831589a7ac07d82f5c1b/pipework-0.50.0.tgz","_integrity":"sha512-bZ0Oa+jsgquOi511RBgEoUtiR5uKSNV5oof8NfoZcAvrar51uFErucOSVLaHFbWjt3wrK++6s9x9W1ikrwOU3g==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.50.0_1790022591930_0.04346899297503026","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"pipework","version":"0.51.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.51.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"cafec18797451a7eed41374fac46d37adebc92e0","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.51.0.tgz","fileCount":2040,"integrity":"sha512-FibaQ4Hb0Btg6Qwe3g+h5doBoCjd8bGNUGuoe3Nd6OM70DDFJBD3jUvNPkuQBAQcICRIE2z6ynnYg8KSUYaZSA==","signatures":[{"sig":"MEYCIQCQlMeb06WZcDtWWMcLk6Bsr+lqWDCXFrUSlQ7dMZefcwIhALP7oDRJxUw/flKUkyqVucxqdzyUx7IJxoVuzJiIWga7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB2Ayh23G7VCowo6M87levNZ4HjLXksuIDf3LSuTvC/HAiATY6CTvKvkK49JFEPtnCczmCRnRTLAnc49eGivReAvhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3994107},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.51.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/387f371527fc27ffcce701eab46368d8/pipework-0.51.0.tgz","_integrity":"sha512-FibaQ4Hb0Btg6Qwe3g+h5doBoCjd8bGNUGuoe3Nd6OM70DDFJBD3jUvNPkuQBAQcICRIE2z6ynnYg8KSUYaZSA==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.51.0_1790026501549_0.43364539876723573","host":"s3://npm-registry-packages-npm-production"}},"0.52.0":{"name":"pipework","version":"0.52.0","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.52.0","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"c50026dcbec80f972b377fda65575d4d4a96b6c9","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.52.0.tgz","fileCount":2040,"integrity":"sha512-D2QEWKoQDVMOBAyMb/53jc0sAMcaJsfCdPp0sE6H9kk7qas8d60uJ8nXvcDUCqLImbdq65+OeiEmhqFAEHJtwg==","signatures":[{"sig":"MEUCIGD+mHjhGFYWyN+Dlk03pH68FZl8vUh36EZRLSxKOYTjAiEA+wqJQ9pjQqOXAadeYe7C6MHvim9M74G/rPelk/Y/mtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+Uha1tpOHqykYbnLZDkupCfysGHRv8iitjvv+CfTgKgIhAMClUKd6vDLJ/zDbanWkSVybyksH0hvTlZt4CNOkltPP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3996434},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.52.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/0ce151390740100546b6242085a4de75/pipework-0.52.0.tgz","_integrity":"sha512-D2QEWKoQDVMOBAyMb/53jc0sAMcaJsfCdPp0sE6H9kk7qas8d60uJ8nXvcDUCqLImbdq65+OeiEmhqFAEHJtwg==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.52.0_1790033656023_0.18744986562551236","host":"s3://npm-registry-packages-npm-production"}},"0.52.1":{"name":"pipework","version":"0.52.1","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"license":"MIT","_id":"pipework@0.52.1","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"homepage":"https://github.com/theconstructory/pipework#readme","bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"bin":{"pipework":"bin/pipework.js"},"dist":{"shasum":"e2d36db1bb2ed12c52ae2ad43815f73616e4da08","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.52.1.tgz","fileCount":2040,"integrity":"sha512-AeLhaE3junVtz2zCqcaYVsjF+P7BwnSLp56ZYqDKe9kWV/EDg6IiTW9IrVGD3cEzyusUfmKlHRFR8dDaS2v0/A==","signatures":[{"sig":"MEUCIAG81W5CnD2qn1iU62mGOKqoaLx7J5r9xN+waHG3C44yAiEA6QOnVjHjtCExQzFpgEb1Hnd836X01cx0gqpEfzMoYfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBM5IBaBK9KAeLQLjHRcF1WKYB8iyizmiIiZ1jvKbBMXAiEA0hasv+xdg9ji2v6RZiqhDTYMTFHWiFr0Mtc27Ab4VAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4001357},"main":"./dist/index.js","type":"module","_from":"file:pipework-0.52.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/163418bbe172c186790f6522b4e05e59/pipework-0.52.1.tgz","_integrity":"sha512-AeLhaE3junVtz2zCqcaYVsjF+P7BwnSLp56ZYqDKe9kWV/EDg6IiTW9IrVGD3cEzyusUfmKlHRFR8dDaS2v0/A==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pipework_0.52.1_1790361210194_0.9212197169719392","host":"s3://npm-registry-packages-npm-production"}},"0.52.2":{"_id":"pipework@0.52.2","bin":{"pipework":"bin/pipework.js"},"bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"dist":{"shasum":"1e2b2f33d77edd561ad0da2e664489ed10af90f4","tarball":"https://registry.npmjs.org/pipework/-/pipework-0.52.2.tgz","fileCount":2040,"integrity":"sha512-adsuy/oaEmgrVQLaXiwS31DscE0bHxz6NYGTGBttf1eW7qMJATXRL8EHT6qSbAqQmsRg1ATkKzyoiJ69iC2LCQ==","signatures":[{"sig":"MEQCIH1DzqyPIyeVkL6Jay2iizGalVsQ3jSPXd753K05IDBTAiAnSS8XBwRoFIYdImVqoHdgCZrbLLmmFonKKgp0VJumsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEFE9UYKDtsIiXfkQHrVPOQDvEa/V/siNTVaVi+xoTr4AiBhSHYlNajT1rjVyhIxzMvU8Duinfk2Z6KkE8sZi1JefA=="}],"unpackedSize":4004689},"main":"./dist/index.js","name":"pipework","type":"module","_from":"file:pipework-0.52.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./test":{"types":"./dist/test/index.d.ts","import":"./dist/test/index.js"},"./eslint":{"types":"./dist/lint/index.d.ts","import":"./dist/lint/index.js"},"./vitest":{"types":"./dist/test/vitest-workspace.d.ts","import":"./dist/test/vitest-workspace.js"},"./globals":{"types":"./dist/test/globals.d.ts"},"./test/setup":{"types":"./dist/test/auto-setup.d.ts","import":"./dist/test/auto-setup.js"},"./package.json":"./package.json","./eslint/preset":{"types":"./dist/lint/preset.d.ts","import":"./dist/lint/preset.js"},"./vitest-plugin":{"types":"./dist/test/vitest-plugin.d.ts","import":"./dist/test/vitest-plugin.js"}},"license":"MIT","scripts":{"lint":"eslint src --max-warnings 0","test":"vitest run","build":"pnpm --filter pipework-flow-parser build && tsc && cp src/test/globals.d.ts dist/test/globals.d.ts","mutate":"stryker run","test:all":"pnpm test:packages && vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts","lint:jsdoc":"node scripts/check-jsdoc.js","type-check":"pnpm --filter pipework-flow-parser type-check && tsc --noEmit","test:stress":"vitest run --config vitest.stress.config.ts","test:packages":"pnpm -r --filter='./packages/*' test","test:property":"vitest run --config vitest.property.config.ts","test:isolation":"vitest run --config vitest.isolation.config.ts","lint:boundaries":"node scripts/check-boundaries.js","type-check:tests":"tsc --noEmit -p tsconfig.test.json","generate:reference":"node scripts/generate-reference.js"},"version":"0.52.2","_npmUser":{"name":"theconstructory","email":"git@theconstructory.com"},"homepage":"https://github.com/theconstructory/pipework#readme","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"pipework":{"boundaries":{"rules":{"no-raw-zod":{"exempt":["src/data/schema/","src/data/domain/","src/core/config/","tests/boundaries/"]},"no-process-env":{"exempt":["src/core/config/","src/cli/","src/workspace/scrub-git-env.ts","tests/"]},"no-raw-pg-import":{"exempt":["src/data/db/","src/data/query/","src/test/","src/data/migrate/","src/core/validation/","tests/boundaries/","tests/query/"]},"no-raw-drizzle-orm":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/migrate/","src/test/","tests/boundaries/"]},"no-raw-drizzle-writes":{"exempt":["src/data/write/","src/data/query/","src/data/domain/build-factory.ts","tests/boundaries/","tests/db/","tests/query/","tests/resource/","tests/temporal/","tests/tenant/scoped-db.test.ts"]},"no-raw-route-handlers":{"exempt":["src/request/http/","src/request/fixture/","src/core/lifecycle/","tests/"]},"no-raw-drizzle-connect":{"exempt":["src/data/db/","src/test/","src/data/migrate/","tests/boundaries/"]},"no-raw-drizzle-pg-core":{"exempt":["src/data/db/","src/data/domain/","src/data/drizzle/","src/data/query/","src/data/migrate/","src/test/","tests/boundaries/","tests/domain/","tests/migrate/","tests/validation/"]}}}},"_resolved":"/tmp/d8f010f0ddba413d66b32df5dea8c6bf/pipework-0.52.2.tgz","_integrity":"sha512-adsuy/oaEmgrVQLaXiwS31DscE0bHxz6NYGTGBttf1eW7qMJATXRL8EHT6qSbAqQmsRg1ATkKzyoiJ69iC2LCQ==","repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"_npmVersion":"10.9.8","description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","directories":{},"maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jose":"^6.2.3","pino":"^10.3.1","eslint":"^10.3.0","fastify":"^5.8.5","postgres":"^3.4.9","@fastify/cors":"^11.2.0","@fastify/helmet":"^13.0.2","@fastify/rate-limit":"^10.3.0","pipework-flow-parser":"0.1.0","@typescript-eslint/parser":"^8.59.2","@typescript-eslint/eslint-plugin":"^8.59.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","fast-check":"^4.7.0","typescript":"^6.0.3","@types/node":"^25.6.0","pino-pretty":"^13.1.3","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@stryker-mutator/typescript-checker":"^9.6.1"},"peerDependencies":{"zod":"^4.4.3","typescript":"^6.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pipework_0.52.2_1790785194516_0.1063564177646441"}}},"time":{"created":"2026-05-06T17:57:00.740Z","modified":"2026-09-30T16:19:54.904Z","0.1.0":"2026-05-06T17:57:00.995Z","0.1.1":"2026-05-06T18:57:34.848Z","0.1.2":"2026-05-06T20:36:21.236Z","0.1.3":"2026-05-06T21:13:58.311Z","0.1.4":"2026-05-06T22:11:41.311Z","0.1.5":"2026-05-06T23:20:42.232Z","0.2.0":"2026-05-07T00:54:10.723Z","0.3.0":"2026-05-07T11:59:58.458Z","0.3.1":"2026-05-07T12:04:58.294Z","0.4.0":"2026-05-07T13:32:15.031Z","0.4.1":"2026-05-07T13:38:03.261Z","0.5.0":"2026-05-07T18:02:10.155Z","0.6.0":"2026-05-07T19:39:31.588Z","0.6.1":"2026-05-07T21:13:19.963Z","0.6.2":"2026-05-08T01:41:22.399Z","0.6.3":"2026-05-08T01:58:52.680Z","0.6.4":"2026-05-08T02:17:34.385Z","0.7.0":"2026-05-08T18:33:48.651Z","0.7.1":"2026-05-08T21:25:30.351Z","0.7.2":"2026-05-09T00:08:32.214Z","0.7.4":"2026-05-09T01:29:44.710Z","0.7.5":"2026-05-09T01:49:04.081Z","0.7.6":"2026-05-09T01:58:47.186Z","0.7.7":"2026-05-09T02:13:43.094Z","0.7.10":"2026-05-09T03:52:47.142Z","0.7.11":"2026-05-09T12:12:27.586Z","0.7.12":"2026-05-09T15:54:40.460Z","0.7.13":"2026-05-09T19:49:01.591Z","0.7.17":"2026-05-11T16:18:34.080Z","0.7.18":"2026-05-11T17:12:18.526Z","0.7.19":"2026-05-11T18:56:08.305Z","0.7.20":"2026-05-11T20:04:24.463Z","0.7.21":"2026-05-12T12:41:21.455Z","0.7.22":"2026-05-13T02:10:34.912Z","0.7.23":"2026-05-13T04:02:23.440Z","0.7.24":"2026-05-13T22:02:20.305Z","0.7.25":"2026-05-14T18:39:37.248Z","0.7.26":"2026-05-14T20:49:13.308Z","0.8.0":"2026-05-14T22:39:55.550Z","0.8.1":"2026-05-15T01:54:03.141Z","0.8.2":"2026-05-15T12:00:27.725Z","0.8.4":"2026-05-16T16:16:04.402Z","0.8.5":"2026-05-16T16:50:57.720Z","0.8.6":"2026-05-16T17:04:55.843Z","0.8.7":"2026-05-16T18:41:52.371Z","0.8.8":"2026-05-16T20:55:57.924Z","0.8.9":"2026-05-18T00:10:45.229Z","0.8.10":"2026-05-20T04:25:14.172Z","0.8.11":"2026-05-20T19:58:42.697Z","0.8.12":"2026-05-21T01:39:01.839Z","0.8.13":"2026-05-21T02:32:06.369Z","0.8.14":"2026-05-22T12:43:51.907Z","0.8.15":"2026-05-22T18:16:59.008Z","0.8.16":"2026-05-22T20:32:39.399Z","0.8.17":"2026-05-22T22:39:39.211Z","0.8.18":"2026-06-02T13:48:29.060Z","0.8.19":"2026-06-05T18:32:02.300Z","0.8.20":"2026-06-05T23:34:02.916Z","0.9.0":"2026-06-11T12:17:11.030Z","0.10.0":"2026-06-11T21:11:27.066Z","0.10.1":"2026-06-12T01:45:46.096Z","0.10.2":"2026-06-14T01:18:34.961Z","0.10.3":"2026-06-17T04:42:14.609Z","0.10.4":"2026-06-17T06:01:35.801Z","0.10.5":"2026-06-20T12:08:00.972Z","0.10.6":"2026-06-27T18:00:36.590Z","0.10.7":"2026-06-27T21:19:28.011Z","0.10.8":"2026-06-27T21:24:44.658Z","0.11.0":"2026-06-28T12:56:31.381Z","0.12.0":"2026-06-29T19:43:03.037Z","0.13.0":"2026-06-29T20:32:38.163Z","0.14.0":"2026-06-29T20:48:39.044Z","0.14.1":"2026-07-03T12:03:55.560Z","0.15.0":"2026-07-04T22:10:45.030Z","0.16.0":"2026-07-16T15:01:50.078Z","0.17.0":"2026-07-19T07:04:10.433Z","0.17.1":"2026-07-19T09:03:10.305Z","0.18.0":"2026-07-31T17:35:25.390Z","0.19.0":"2026-07-31T18:14:43.425Z","0.19.1":"2026-08-05T15:17:44.450Z","0.20.0":"2026-08-11T20:59:58.137Z","0.21.0":"2026-08-15T01:25:51.779Z","0.22.0":"2026-08-19T11:50:57.858Z","0.23.0":"2026-08-28T14:02:54.449Z","0.24.0":"2026-08-28T14:45:27.643Z","0.24.1":"2026-08-28T14:59:46.956Z","0.25.0":"2026-08-28T22:11:43.814Z","0.25.1":"2026-08-28T22:33:00.959Z","0.26.0":"2026-08-28T22:41:31.535Z","0.27.0":"2026-08-28T23:05:49.503Z","0.27.1":"2026-08-28T23:34:52.124Z","0.28.0":"2026-08-28T23:55:44.745Z","0.29.0":"2026-08-29T00:06:57.762Z","0.30.0":"2026-08-29T05:57:03.649Z","0.31.0":"2026-08-29T06:07:40.072Z","0.32.0":"2026-08-29T08:31:58.849Z","0.33.0":"2026-08-29T08:45:59.829Z","0.34.0":"2026-08-29T10:02:47.833Z","0.35.0":"2026-08-29T20:40:43.234Z","0.36.0":"2026-08-29T20:51:17.748Z","0.37.0":"2026-08-29T21:06:10.422Z","0.38.0":"2026-08-29T21:14:13.813Z","0.39.0":"2026-08-29T21:22:52.650Z","0.40.0":"2026-08-30T00:14:59.029Z","0.41.0":"2026-08-30T00:20:11.998Z","0.42.0":"2026-08-30T00:25:22.260Z","0.43.0":"2026-08-30T00:31:07.620Z","0.44.0":"2026-08-30T01:20:29.203Z","0.45.0":"2026-08-30T01:25:56.395Z","0.49.0":"2026-09-21T19:38:35.703Z","0.50.0":"2026-09-21T20:29:52.059Z","0.51.0":"2026-09-21T21:35:01.660Z","0.52.0":"2026-09-21T23:34:16.148Z","0.52.1":"2026-09-25T18:33:30.316Z","0.52.2":"2026-09-30T16:19:54.744Z"},"bugs":{"url":"https://github.com/theconstructory/pipework/issues"},"license":"MIT","homepage":"https://github.com/theconstructory/pipework#readme","keywords":["saas","multi-tenant","postgresql","drizzle","fastify","typescript","framework"],"repository":{"url":"git+https://github.com/theconstructory/pipework.git","type":"git"},"description":"TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.","maintainers":[{"name":"theconstructory","email":"git@theconstructory.com"}],"readme":"# Pipework\n\nA TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only. Owns the wiring between Drizzle, Fastify, Vitest, and Zod so your application code never has to.\n\n## What it does\n\nPipework eliminates the infrastructure decisions that every SaaS backend makes independently and gets wrong:\n\n- **Database wiring** — named connections, pooling, context-aware `pipe()` accessor, test isolation\n- **Request context** — AsyncLocalStorage propagation of auth, tenant, transactions from HTTP entry to database query\n- **DI builder** — type-safe handler composition with `.use()`, `.auth()`, `.input()`, `.output()`, `.route()`, `.fit()`\n- **Multi-tenant scoping** — `SET LOCAL` propagation, tenant extraction from auth, UUID validation\n- **Auth chain** — pluggable strategies, enrichers, session management with JWT refresh rotation, cookie-based token delivery\n- **Multi-org auth** — org selection on login, org switching, membership management via `auth.createMultiOrg()`\n- **RBAC** — hierarchical scope resolution, permission caching, DI integration via `.permission()`\n- **Background jobs** — Postgres-backed queue with `SKIP LOCKED`, heartbeat, reaper, `LISTEN/NOTIFY`, synchronous wait (`jobs.enqueueAndWait`)\n- **Cron scheduling** — recurring jobs with cron expressions, dedup, catch-up on missed ticks\n- **Temporal records** — SCD Type 2 versioning with atomic `temporal.revise()`, point-in-time queries\n- **Resource CRUD** — `fixture` builder with cursor-based pagination, batch operations (preview + execute), auth, tenant scoping, 404/405\n- **Composable behaviors** — `behavior.compose()` to stack versioned + audited + cached on any resource\n- **State machines** — validated transitions with guards and audit integration\n- **Pipelines** — ordered sync/async step execution with persistent state and resume\n- **HTTP security** — CORS, Helmet, rate limiting via `http.createServer()`, production startup validation (refuses insecure defaults)\n- **Structured logging** — context-aware `log` proxy with automatic correlation fields (requestId, tenantId, userId, sessionId, traceId, jobType), configurable redaction, `X-Request-Id` response header\n- **OpenAPI** — automatic schema generation from handler metadata, served at `/openapi.json`\n\n## Quick example\n\n```typescript\n// pipework.config.ts — the single entry point\nimport { createManifold } from 'pipework'\n\nexport default createManifold({\n  databases: {\n    app: {\n      url: 'DATABASE_URL',\n      testUrl: 'DATABASE_URL_TEST',\n      schema: './src/db/schema.ts',\n      migrations: './migrations/app',\n    },\n  },\n})\n```\n\n```typescript\n// src/domains.ts — define once, project everywhere\nimport { pipe } from 'pipework'\n\nexport const User = pipe.define('users', {\n  id: pipe.field.uuid().brand('UserId').primaryKey().defaultRandom(),\n  name: pipe.field.text().min(1).max(255),\n  email: pipe.field.text().email().unique(),\n  role: pipe.field.enum(['admin', 'member'] as const),\n  tenantId: pipe.field.uuid().tenant(),\n})\n\n// User.table()        → Drizzle pgTable\n// User.insertShape()  → zod validator (omits PK, optionalizes defaults)\n// User.selectShape()  → zod validator (all fields)\n// User.factory()      → test data builder with FK resolution\n// User.Select         → { id: Branded<string, 'UserId'>; name: string; ... }\n```\n\n```typescript\n// src/server.ts — import the manifold, build your app\nimport pipework from '../pipework.config.js'\nimport { http, fitting, schema } from 'pipework'\nimport { User } from './domains.js'\n\nconst createNote = fitting\n  .use()\n  .auth<{ userId: string; tenantId: string }>()\n  .input(schema.check.object({ title: schema.check.string(), body: schema.check.string() }))\n  .route('POST', '/notes')\n  .fit(async ({ db, auth, input }) => {\n    const [note] = await db\n      .insert(notes)\n      .values({ ...input, tenantId: auth.tenantId })\n      .returning()\n    return note\n  })\n\nconst server = http.createServer(pipework, {\n  auth: { strategy: myAuthStrategy },\n  tenant: { extract: (auth) => auth.tenantId },\n})\n\nserver.registerHandlers([createNote])\nawait server.listen()\n```\n\n## Install\n\n```bash\npnpm add pipework\npnpm add -D vitest\n```\n\nThen scaffold your project:\n\n```bash\nnpx pipework init\n```\n\nThis creates `pipework.config.ts` at your project root — the single entry point for config, runtime instance, CLI, and test setup.\n\n## Testing\n\nTest configuration is centralized in `pipework.config.ts` under the `vitest` key — one place for the whole repo:\n\n```typescript\n// pipework.config.ts\nexport default createManifold({\n  databases: { /* ... */ },\n  vitest: {\n    // single-package repo: just `{}` enables integration tests at the root\n    modules: {\n      '.': {\n        // optional per-module profiles, e.g. a unit-only suite with no DB:\n        profiles: { unit: { database: false } },\n      },\n    },\n  },\n})\n```\n\n`pipework install` generates `vitest.config.ts` from this — the file is owned by pipework, never hand-edited. `pipework check` hard-errors on a stray hand-written `vitest.config.ts`.\n\n```bash\n# .env.test\nDATABASE_URL_TEST=postgresql://user:pass@localhost:5432/myapp_test\n```\n\nEvery integration test runs in a rollback transaction. No cleanup, no state leaks. Profiles with `database: false` skip all DB machinery — safe to use in CI steps without a database.\n\n**What the rollback transaction hides.** Under `setupPipeworkTests` every database\ngets one connection with an open transaction, bound into the context for *every*\ndatabase name, with the tenant session variable already set. So a handler under test\nnever takes a pooled connection and nothing it writes is ever committed — which means\na test on that harness cannot observe commit boundaries in either direction:\n`transaction-per-request` on or off, `.transaction('manual')` or not, the test passes\nthe same way. Only the durability of the writes differs, and the harness removes it.\n\nTo see a real commit boundary — a `checkpoint` that is its own top-level transaction,\nwith its own session variables, actually committed — build the server over a manifold\nthe harness never touched, and read with a second pooled connection:\n\n```typescript\nimport { createServer, discoverInstance } from 'pipework'\n\nconst instance = await discoverInstance()          // no test plugin, no bound transaction\nconst server = createServer(instance, { port: 0, logger: false, transactionPerRequest: ['app'] })\nconst reader = instance.pool.getOrCreate(instance.config.database('app')).drizzle\n\nserver.registerHandlers([handler])\nawait server.ready()\nawait server.inject({ method: 'POST', url: '/claim', payload: {} })\n// reader sees a committed checkpoint while the request is still in flight\n\nawait server.close()\nawait instance.pool.closeAll()                     // this manifold owns its own pools\n```\n\nThe venue takes the same `auth` and `tenant` config `manifold.start()` hands a\nsurface, so an authed route can be driven in it with a stub strategy — the\ncheckpoint then runs under that tenant, with the tenant session variable set:\n\n```typescript\nconst server = createServer(instance, {\n  port: 0, logger: false, transactionPerRequest: ['app'],\n  auth: { strategy: stub },                       // any AuthStrategy\n  tenant: { extract: auth => auth.tenantId },     // tenant IDs are UUIDs unless you pass `validate`\n})\n```\n\n## Documentation\n\nAPI documentation lives in two places:\n\n- **[REFERENCE.md](REFERENCE.md)** — auto-generated from source JSDoc. Complete API surface, organized by namespace.\n- **JSDoc on every public export** — enforced by `pnpm lint:jsdoc`. Read inline in your editor or via the reference file.\n\nFor Claude Code users, the `/pipework` skill provides usage guidance, API reference, and project auditing.\n\n## Design principles\n\n1. **Pipework first.** Orchestrates Drizzle, Fastify, Vitest, and Zod so your application code doesn't have to.\n2. **Constraints over conventions.** If a rule can be enforced in code, it is.\n3. **Fail at startup, not at first use.** Missing config throws immediately with what's wrong and how to fix it.\n4. **PostgreSQL-only.** No database abstraction. Build deep on Postgres features.\n5. **TypeScript strict mode.** `exactOptionalPropertyTypes`, `noUncheckedIndexedAccess` — all enabled.\n\n## Tech stack\n\n- **PostgreSQL** — the only supported database\n- **postgres.js** — connection driver\n- **Query engine** — forked from Drizzle ORM, stripped to Postgres-only, owned by pipework\n- **Migration engine** — own snapshot/diff/SQL pipeline, no external generation tool\n- **Zod** — runtime validation with TypeScript inference\n- **Fastify** — HTTP framework (wrapped, not replaced)\n- **Vitest** — test runner\n- **Pino** — structured logging\n\n## License\n\nMIT\n","readmeFilename":"README.md"}