{"_id":"@zingage/postgres-multi-tenant-ids","_rev":"14-57034d1c635e4fd0282bfd464ce052e0","name":"@zingage/postgres-multi-tenant-ids","dist-tags":{"latest":"3.0.1"},"versions":{"1.0.0":{"name":"@zingage/postgres-multi-tenant-ids","version":"1.0.0","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@1.0.0","maintainers":[{"name":"ethanresnick","email":"ethan.resnick@gmail.com"}],"dist":{"shasum":"25ef6facc4108f20acac920a2a9a60944bfec986","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-1.0.0.tgz","fileCount":91,"integrity":"sha512-xAZba+ftGhHPAeshD1a+c5KOGR4wV6taQCfb5NtdS7GAsgXW48/hGAXjd56EtCUrEhHy3YZPfin84f9sv1ZTvQ==","signatures":[{"sig":"MEQCIFnX6OXOS8coUcEUxlTVrI3x9kWwW/HFUU/UYmC0LHOJAiBLKRhp+UbX/W4xKZ7wL1v8w/rF5hXpq9rklQ6lcvbilA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164444},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"27ac8d6b911a666a387dd11d07f29ff3bef307c0","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","actor":{"name":"ethanresnick","type":"user","email":"ethan.resnick@gmail.com"},"email":"ethan.resnick@gmail.com"},"_npmVersion":"11.3.0","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.1.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_1.0.0_1750483940482_0.2010460621446788","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@zingage/postgres-multi-tenant-ids","version":"1.0.1","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@1.0.1","maintainers":[{"name":"ethanresnick","email":"ethan.resnick@gmail.com"}],"dist":{"shasum":"301595492968980fed712e4c745ac592c0e20bc6","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-1.0.1.tgz","fileCount":91,"integrity":"sha512-rkO5B9S7iGHj2bvg9p2jitgMnoNKxf2Oh9jSWU2t9Xi4eSSv33h/Ymfh0wVd5bb+E4VtjkD482OXOhgHaJnAng==","signatures":[{"sig":"MEQCIFvp3MGe2NsO7NTKYt1VkxW3Mnvy+aK3egH9/WAJxc2HAiB6cvWbJb8fEyUJsTb4rpWJlGfHgcC/luCisvs1alu4Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168836},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"dded040d6230f9d876dc677f08c841ce6dbf9d61","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","actor":{"name":"ethanresnick","type":"user","email":"ethan.resnick@gmail.com"},"email":"ethan.resnick@gmail.com"},"_npmVersion":"11.3.0","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.1.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_1.0.1_1750488747319_0.29066301242484127","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@zingage/postgres-multi-tenant-ids","version":"1.0.2","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@1.0.2","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"}],"dist":{"shasum":"51777916fa697d94788809a1f63d6cd79b66c303","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-1.0.2.tgz","fileCount":19,"integrity":"sha512-s8LJ9ySBefUzgTJsBPKE3gY0dPboRCIZ/Fm/8AriWXQ69YvjDeVn8Rz/M9/1XlFihpaHrLortxcqkd3InT7yGg==","signatures":[{"sig":"MEQCIGsFxWbKkaaNaq2v/9LJZxHn1xUokIltpXbup9RZtSh3AiACrRqCrKBkE2jZGvhyz0yalRhLNpyFcX8vWVzUOGMvCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66623},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"7fc8f6f6f78cadca2bae0b4a6584709ebc121e28","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","actor":{"name":"ethanresnick","type":"user","email":"ethan.resnick@gmail.com"},"email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_1.0.2_1751587788040_0.030113406656493646","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@zingage/postgres-multi-tenant-ids","version":"1.0.3","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@1.0.3","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"3cce75586cd73e1cf1568148c43f109616d4baa6","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-1.0.3.tgz","fileCount":61,"integrity":"sha512-Zxg970XEMfXLNqe4szudn2kvX/Jcg4uMV+l0ZxHBq6faVq6bsIAQhqvlzkt4vidpHXH+GGcHdIr2LqGVPex4kA==","signatures":[{"sig":"MEUCIQDiooRgdAJWicqd6+4ZewLElB8kcUfysdCt78/htbQmPgIgSIGRQyd7YTZlSzO7+Im3RDX6/o8eFjm6Y3RP1HFpJzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128496},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"7fc8f6f6f78cadca2bae0b4a6584709ebc121e28","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_1.0.3_1755036476575_0.5492766966664029","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@zingage/postgres-multi-tenant-ids","version":"1.1.0","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@1.1.0","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"b14675516a2b4b8889a1ba5fdc01b8cf0a639f7e","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-1.1.0.tgz","fileCount":61,"integrity":"sha512-hUu1VFSZHbQX4zIeVeQQp88jXXJH7jUWPfHPSwndWLJ3VzT75jKo8Yg8cqbtezZ9VZPGaxfdUe8FUzq7TWLTYg==","signatures":[{"sig":"MEQCIHA8aucrBF1/kblQdDK+ZH7RTH9VtvrM1Ji/EYsMq4zWAiBd9jOOn8xK001ISXAAtFmFHmbybM2wyFEVYqFMgEnXIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128762},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"8293304ffd76964ce680747164118f14c1b125ba","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_1.1.0_1758664330994_0.4348625931414374","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@zingage/postgres-multi-tenant-ids","version":"2.0.0","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@2.0.0","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"54106449e83c94c335ab84b08472e5df0a154f62","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-2.0.0.tgz","fileCount":61,"integrity":"sha512-Sa8Iyhg/n7J5JdJj1q/wQnixAACWzIFA7v2fEM8oJhKq2qfZxfD2OoW47A7AHOcT8bQQINvp1IVYUaJROapkGQ==","signatures":[{"sig":"MEQCIGzsjQ3385dNLsmClf2Fz7d7E3ghCRaA7rALc/v6DOAQAiB8fgUAQxfC9n9lEd2ImxWVFM7a98jAXjSTg02AleUfsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128726},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"cc78f07b31590b0c2c064c0a8e68424d9e989a84","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_2.0.0_1758664946651_0.4482883051387354","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@zingage/postgres-multi-tenant-ids","version":"2.0.1","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@2.0.1","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"e92eccae0cd0fcee99bdd9a24c01afeb4fa2df54","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-2.0.1.tgz","fileCount":61,"integrity":"sha512-S2cJGFTxPcg+WYzVOL3BbuKyccGMt7+s4bZW36CoI2ZGdavqOlL87GeY/qJcBepqcU5Sp7O53IaXcbQSb20lfQ==","signatures":[{"sig":"MEYCIQCo9Gl8a8kjaUa7uEJml+GoL2ZNDBr2un/mXt5W4IhyWQIhAKet5Bp+6hNgbc8Um626jQSdaRKq8NzbLkILoVbswjPQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128746},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"542c0d689c877a87660b43b2a67102a61b86b853","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^4.41.0","@types/node":"^22.0.0","@ethanresnick/type-party":"^0.0.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0 || >=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_2.0.1_1758666053005_0.7158494534298034","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@zingage/postgres-multi-tenant-ids","version":"3.0.0","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@3.0.0","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"16425ac053088985dac3779514df33c2c68cb959","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-3.0.0.tgz","fileCount":61,"integrity":"sha512-3G7Y0u+krHabTE9/WIVZalncE86goVcllz8U6CWMI2PeR1rBMcRlyJePexfmEClprgszYaOWZJqOi/nEYXuYiw==","signatures":[{"sig":"MEUCIH1VpceR5iDNFiltrMR2ZfEDyohl0XTmYIwFEGCiZ9PgAiEAvlZiZqGkWj/EjrUWfZ4zdwiWuqTAkK3RiT1vOkoPipA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128876},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"308aee5986f8cdd6ac30f235bb69085d03c19a71","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^5.0.1","type-party":"^0.6.2","@types/node":"^22.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0 || >=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_3.0.0_1758682289688_0.5534231644804293","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@zingage/postgres-multi-tenant-ids","version":"3.0.1","keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"author":"","_id":"@zingage/postgres-multi-tenant-ids@3.0.1","maintainers":[{"name":"zingagedt","email":"npm@zingage.com"},{"name":"atkeson","email":"atkesonu@gmail.com"},{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},{"name":"jeffzingage","email":"jeff@zingage.com"}],"dist":{"shasum":"b5df67585f0110a4cbde543e2f558fe396c2ddba","tarball":"https://registry.npmjs.org/@zingage/postgres-multi-tenant-ids/-/postgres-multi-tenant-ids-3.0.1.tgz","fileCount":61,"integrity":"sha512-OCFEJugJcOk5B7QBNdCAGTPnat+NQJJYpof9uvfzndXuIvT32qUQpNVtMxOPgpPCilFUYn1b53dmfrYr8SB6Ug==","signatures":[{"sig":"MEQCIA8HpSTQLs8Ined1Mk2ok508xqHAOpM0sBB59fw1eDptAiA0HT+6EQ3YnXFblPf3xAEgbUG9VOS/Nl0NrVV/puPmXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128724},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./zod.js":{"types":"./dist/zod-schemas.d.ts","import":"./dist/zod-schemas.js"},"./fast-check.js":{"types":"./dist/fast-check.d.ts","import":"./dist/fast-check.js"}},"gitHead":"89e3d72e96caf0a3e0aa7b48b9b14b14496df300","scripts":{"lint":"eslint src --ext .ts","test":"npm run build && run-p test:unit test:integration","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write src/**/*.ts","test:unit":"node --test dist/**/*.spec.js","type-check":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"NODE_V8_COVERAGE=.coverage node --test dist/**/*.spec.js","prepublishOnly":"npm run clean && npm run build","test:unit:watch":"node --test --watch dist/**/*.spec.js","test:integration":"node --test dist/**/*.integration.spec.js","test:integration:watch":"node --test --watch dist/**/*.integration.spec.js"},"_npmUser":{"name":"ethanresnick","email":"ethan.resnick@gmail.com"},"_npmVersion":"11.4.2","description":"PostgreSQL IDs for secure multi-tenant applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"uuid":"^11.1.0","dotenv":"^16.4.0","type-fest":"^5.0.1","type-party":"^0.6.2","@types/node":"^22.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.2","eslint":"^9.0.0","prettier":"^3.0.0","@types/pg":"^8.11.0","fast-check":"^4.1.1","typescript":"^5.8.3","npm-run-all":"^4.1.5","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"zod":">=3.0.0 || >=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/postgres-multi-tenant-ids_3.0.1_1758682490429_0.31297766371704583","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-21T05:32:20.416Z","modified":"2026-06-26T03:48:00.934Z","1.0.0":"2025-06-21T05:32:20.698Z","1.0.1":"2025-06-21T06:52:27.499Z","1.0.2":"2025-07-04T00:09:48.279Z","1.0.3":"2025-08-12T22:07:56.745Z","1.1.0":"2025-09-23T21:52:11.258Z","2.0.0":"2025-09-23T22:02:26.842Z","2.0.1":"2025-09-23T22:20:53.182Z","3.0.0":"2025-09-24T02:51:29.860Z","3.0.1":"2025-09-24T02:54:50.609Z"},"keywords":["postgresql","typescript","nodejs","multi-tenant","security"],"description":"PostgreSQL IDs for secure multi-tenant applications","maintainers":[{"email":"npm@zingage.com","name":"zingagedt"},{"email":"ethan.resnick@gmail.com","name":"ethanresnick"},{"email":"jeff@zingage.com","name":"jeffzingage"}],"readme":"## Example Usage\n\n```ts\n// src/my-app/ids.ts\n\nimport {\n  initialize,\n  type Satisfies,\n  type Duplicates,\n  type TypesFromConfig,\n  type ScopedId as _ScopedId,\n  type UnscopedId as _UnscopedId,\n  type Id as _Id,\n} from \"@zingage/postgres-multi-tenant-ids\";\n\n// Configure your entity types!\nconst config = {\n  tenantScoped: {\n    ACCOUNT: {\n      insertRate: \"VERY_LOW\",\n      entityTypeHint: \"0000000001\",\n    },\n    HOLDING: {\n      insertRate: \"VERY_LOW\",\n      entityTypeHint: \"0000000010\",\n    },\n  },\n  crossTenant: {\n    ASSET: {\n      insertRate: \"VERY_LOW\",\n      entityTypeHint: \"0000000010\",\n    },\n    ASSET_CLASS: {\n      insertRate: \"VERY_LOW\",\n      entityTypeHint: \"0000000001\",\n    },\n  },\n} as const;\n\n// Validate that your config has no duplicate entity type hints\ntype _ValidateConfig = Satisfies<Duplicates<typeof config>, never>;\n\n// Generate exports specific to your config\nexport const {\n  makeTenantId,\n  uuidV4ToTenantId,\n  isTenantId,\n  stringIsTenantId,\n  getTenantShortIdFromFullId,\n\n  makeScopedId,\n  isScopedId,\n  stringIsScopedId,\n  scopedIdsBelongToSameTenant,\n\n  makeUnscopedId,\n  isUnscopedId,\n  stringIsUnscopedId,\n} = initialize(config);\n\n// Generate and export some types based on your specific config.\nexport type TenantScopedEntityType = keyof (typeof config)[\"tenantScoped\"];\nexport type CrossTenantEntityType = keyof (typeof config)[\"crossTenant\"];\nexport type NonTenantEntityType =\n  | TenantScopedEntityType\n  | CrossTenantEntityType;\n\nexport type Id<T extends NonTenantEntityType> = _Id<typeof config, T>;\nexport type ScopedId<T extends TenantScopedEntityType> = _ScopedId<\n  (typeof config)[\"tenantScoped\"],\n  T\n>;\nexport type UnscopedId<T extends CrossTenantEntityType> = _UnscopedId<\n  (typeof config)[\"crossTenant\"],\n  T\n>;\n\n//\n\n// Optional: make zod schemas helpers\nimport { makeZodSchemas } from \"@zingage/postgres-multi-tenant-ids/zod.js\";\nexport const { tenantIdSchema, unscopedIdSchemaOfType, scopedIdSchemaOfType } =\n  makeZodSchemas(config);\n\n//\n\n// Optional: make fast-check arbitraries for generating valid ids in tests\nimport { makeFastCheckArbitraries } from \"@zingage/postgres-multi-tenant-ids/fast-check.js\";\nexport const {\n  TenantScopedEntityTypeArbitrary,\n  CrossTenantEntityTypeArbitrary,\n  IdDateArbitrary,\n  TenantIdArbitrary,\n  TenantScopedIdArbitrary,\n  CrossTenantIdArbitrary,\n} = makeFastCheckArbitraries(config);\n```\n\n## Running PostgreSQL Locally for Integration Tests\n\nYou can run a local PostgreSQL 17 server using Docker Compose for integration testing:\n\n```bash\n# Start the PostgreSQL container\ndocker compose up -d --wait\n```\n\nThis will start a PostgreSQL 17 server accessible at `localhost:9000` with:\n\n- user: `postgres`\n- password: `postgres`\n- database: `pg_ids_test`\n\nThe database will be automatically initialized with the required functions and extensions from `install.sql`.\n\nTo stop the server:\n\n```bash\ndocker compose down\n```\n\nTo stop the server and remove all data:\n\n```bash\ndocker compose down -v\n```\n","readmeFilename":"README.md"}