{"_id":"@absolutejs/compliance","_rev":"11-e7cb5646b8f3e386b0322e1dd06ccadd","name":"@absolutejs/compliance","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@absolutejs/compliance","version":"0.1.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/compliance@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"ae57aca19d3d5c73109829cfdde7f5dcc619ea9c","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.1.0.tgz","fileCount":6,"integrity":"sha512-8rQ5TaSFxNjbDvXGdSAqkdUcQpLMuJfCg/q1T5vovGtal4RMMznPvKR3THlEa2X17ilaBkJzuwHjzyNdm03cEQ==","signatures":[{"sig":"MEUCIFoXwwF12ph7YWkncD0IV5EwWqNJpTncnVD7WTWY1o1RAiEA1/1Q99MnyWkqlo7+mr0/fH/qMF7rs/egEgdA0iODQ44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61256},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ae57aca19d3d5c73109829cfdde7f5dcc619ea9c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-8rQ5TaSFxNjbDvXGdSAqkdUcQpLMuJfCg/q1T5vovGtal4RMMznPvKR3THlEa2X17ilaBkJzuwHjzyNdm03cEQ==","repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.8.3","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.1.0_1780248880328_0.2989350997505025","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/compliance","version":"0.1.1","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/compliance@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"5841fad9af69813c5919411bb0c3ca0ef3c4b9cc","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.1.1.tgz","fileCount":10,"integrity":"sha512-r26Oz/i1U/0wwTL41auuRh1JA9z8UuRqZDS8vf9PSarhjrVM+FSTeruvmrhdS+2ZVvE7CVoyFEuo8x/SHGcxpA==","signatures":[{"sig":"MEUCIEoZ/jwYRoayiANJwp0ph9v/gcB/9Me7R9IdTPKRMrd2AiEAspr+tr1n0ZMMGNnjmISXyqCghygZxaeAFFhOZlSRVyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1206699},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"5841fad9af69813c5919411bb0c3ca0ef3c4b9cc","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-r26Oz/i1U/0wwTL41auuRh1JA9z8UuRqZDS8vf9PSarhjrVM+FSTeruvmrhdS+2ZVvE7CVoyFEuo8x/SHGcxpA==","absolutejs":{"manifestContract":1},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.8.3","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.1.1_1783964633392_0.9502684529220564","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/compliance","version":"0.2.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"2dd24c2b549e07e534af822b5f7460959fe8cc8e","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.2.0.tgz","fileCount":10,"integrity":"sha512-IL0b4PoD8xGUt5obtLHHNTW+dVNlA3KOdyo+ZTjC9pvkFAoP5rrvGRcVklo9Qyr6VIUSGO/sNn1ovjmRzBspdQ==","signatures":[{"sig":"MEYCIQDolcdUhswKL9d/ekv9oIK5kSHdvkQWBFCheX0u92nc0gIhAIFiJmFd8kjL0AxEqyvZCVsOOWzSPY855DqBhUoVo7gI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1231684},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"0647d6816dfe297463160610ea60cb8424e48d9e","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run build && bun run test"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0"},"peerDependencies":{"bun-types":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.2.0_1784806784936_0.35894821651772557","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@absolutejs/compliance","version":"0.2.1","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.2.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"f3547b52814c9aa62d54ea4b63b59e8bb72b815d","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.2.1.tgz","fileCount":10,"integrity":"sha512-ETrJnu7ki17L7nVyR221lDXmJ9tpN/7wvekQvl8SNNSPXR+l09XuNRxYY7TdAH84B7IgPprMPBefq+UhKXtKPw==","signatures":[{"sig":"MEUCIQDgeVp9K0WIqCF4DEvrQz0CRcvjRmvEKm89sAhbH5X6CwIgBe1AJVO7iDdaB/Ggp52Oq8o16S+ViREMNehxrQR98u4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":574807},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"94c70003ca7c5788bd336bf47bb73127dccb2bcf","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.2.1_1784961535873_0.18930316640376788","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/compliance","version":"0.3.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.3.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"086688ab2a36d5fa57bae2c3d489f418bd44360a","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.3.0.tgz","fileCount":11,"integrity":"sha512-5KR+SUbThPUQFYpBCdyu7i3iVHs4Z+RrmJZTjqEYDENHuP7ggGpph5/2vWQ31wsT/Q0orthYyFwtRpvKqtE7zw==","signatures":[{"sig":"MEQCIAacgDT9hpG3K0iRYKlVINERXpU0OXTjkK9xEZ99SxgDAiAUZA7wxayjaMitjr5uL16Epmgf3jlvaYgnridu9kuLpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":616073},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"bf0931ca9ff5ce87dec86957049c22a2dc7b9310","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.3.0 <0.4","tested":"0.3.0","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.3.0"},"peerDependencies":{"@absolutejs/dispatch":">=0.3.0 <0.4"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.3.0_1785601463745_0.1545377356242894","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@absolutejs/compliance","version":"0.3.1","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.3.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"3d62283f44516b3993f604e10b3b09d07f7ce636","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.3.1.tgz","fileCount":11,"integrity":"sha512-1eWxHakTMSo1D8anTE1iMECGOD2YTH2CKM2v2qChy32IQ1y2aIvieyAkXbECqnsLuuWaet+UN2Zf0AhOYzISFw==","signatures":[{"sig":"MEUCIQDyOmUQZfu6itcIB50CUoLxo4Xafa6NHEXkcaN1gYmbsgIgdJnMnn8CJUIaSElz0n5iOYBZEefVMzgVdOISgzk+usQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618361},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"aad7b66325423d9f8af8c6c3648fae5c67b3ac5e","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.3.0 <0.4","tested":"0.3.1","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.3.1"},"peerDependencies":{"@absolutejs/dispatch":">=0.3.0 <0.4"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.3.1_1785601764633_0.9457980657051501","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@absolutejs/compliance","version":"0.3.2","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.3.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"50d71a359bf5e32b882f92d3e8ba1527eaeab771","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.3.2.tgz","fileCount":11,"integrity":"sha512-yFCpxMJ4Qiy7+Sey5EZ7LFHRuuzO4H87Rv6PKyZW1djnK5tMnU30hABejnlmadotmT88hA2siHGLK/4K2TN5fA==","signatures":[{"sig":"MEUCIAu/tPH0WADWqgeCh8wmyuyN0pOL4t8eDXRXMpDPdpStAiEAo0GN+vz3+S1QvXtj2lEYMyOXycq25rwdl0W9N0tjhHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618895},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"371bfcd3e2319384fb086e5a09cefa9a88134919","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.3.0 <0.4","tested":"0.3.1","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.3.1"},"peerDependencies":{"@absolutejs/dispatch":">=0.3.0 <0.4"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.3.2_1785602297953_0.3650480036015933","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@absolutejs/compliance","version":"0.4.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.4.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"f3d58d2f6220d976e1a49171aa1a2d3a88d33349","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.4.0.tgz","fileCount":11,"integrity":"sha512-pZ1AfZwd4BdZkmWnNzae2xGXjshuKeA5bg4xHo5JczkZ5Qo8xiZrMWIUdKuayZoDWxgM6hYKvRpflzkLjNJJ6Q==","signatures":[{"sig":"MEUCICQ+8s/HBQdTvwefOSP9OI5v3s06ujJYVsQ5pbv2ifScAiEAp0zH5Dh4qQotmIpmuWThIX1mpzaUk0G4EZGwfu1SF5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":638036},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"bcc5eff02e7ad76f02c884459b46f41456e7bd0a","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.4.0 <0.5","tested":"0.4.0","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.4.0"},"peerDependencies":{"@absolutejs/dispatch":">=0.4.0 <0.5"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.4.0_1785603786164_0.8093888430513676","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@absolutejs/compliance","version":"0.5.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.5.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"5f3c7296dc7f43387eb66920ea8006664bc1e157","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.5.0.tgz","fileCount":11,"integrity":"sha512-0fEmLGHkwlqk8Y+j0ge1vMecRYqX6uLxhX8CAQDHfHov+B0P3Lc/kWIy3DuW/HUB+fK3fmtwi8lY6KmhQ0YGYg==","signatures":[{"sig":"MEYCIQDYRCAE/ayWxfyDsLqf7ZcENWHXOKI92g/P59ES8eIwIAIhAMOKvMbcnBdRra9yy3LJ9xL68lE+53WbA03ZZL2lbZgy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637638},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"adc2bfaaf4385dab31226e2bc3dc9ede387bb145","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.5.0 <0.6","tested":"0.5.0","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.5.0"},"peerDependencies":{"@absolutejs/dispatch":">=0.5.0 <0.6"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.5.0_1785606331640_0.2859265810526974","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@absolutejs/compliance","version":"0.6.0","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/compliance@0.6.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"dist":{"shasum":"9e1fc979d0bb28e260afb83aa4cea66a45f4f448","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.6.0.tgz","fileCount":11,"integrity":"sha512-Rf7xMtndEiPL9eKgnI2RzpuhiUt3oKpdK+/ktZcl4/l1BfDOnxN028m9Vb1WUbd+a8TVR9dgLTI2sVfJvfTNSA==","signatures":[{"sig":"MEQCIFZFLEuyW+psORCpCJbxPObrm4n4AdoqqB/E/+tAHlkOAiANxBHuEMm5iNSVuhYOLTChaiyK15H4yG3Rhwj26Ntp5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637640},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"c1beaf401a82bf61460878b4964d368024c6e620","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run check:package && bun publish","typecheck":"tsc --noEmit","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"@absolutejs/dispatch":{"range":">=0.6.0 <0.7","tested":"0.6.0","optional":true,"buildExternals":["@absolutejs/dispatch"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/compliance.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","@types/bun":"^1.3.14","typescript":"^5.9.0","@absolutejs/dispatch":"0.6.0"},"peerDependencies":{"@absolutejs/dispatch":">=0.6.0 <0.7"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/compliance_0.6.0_1785608635115_0.5408047461552696","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@absolutejs/compliance","version":"0.7.0","description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","repository":{"type":"git","url":"git+https://github.com/absolutejs/compliance.git"},"homepage":"https://github.com/absolutejs/compliance","bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"BSL-1.1","author":{"name":"Alex Kahn"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"publishConfig":{"access":"public"},"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --sourcemap --target=bun --external @absolutejs/dispatch && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test tests/","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","verify-package":"absolute-manifest verify-package","check:package":"bun run typecheck && bun run verify-package && bun run build && bun run verify-package --artifacts && bun run test","release":"bun run format && bun run check:package && bun publish"},"keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"devDependencies":{"@absolutejs/dispatch":"0.7.0","@types/bun":"^1.3.14","prettier":"^3.8.3","typescript":"^5.9.0"},"peerDependencies":{"@absolutejs/dispatch":">=0.7.0 <0.8"},"peerDependenciesMeta":{"@absolutejs/dispatch":{"optional":true}},"absolutejs":{"manifestContract":2,"runtimePeers":{"@absolutejs/dispatch":{"artifactImports":[],"buildExternals":["@absolutejs/dispatch"],"optional":true,"range":">=0.7.0 <0.8","tested":"0.7.0"}}},"dependencies":{"@absolutejs/manifest":"^0.7.2","@sinclair/typebox":"^0.34.0"},"_id":"@absolutejs/compliance@0.7.0","gitHead":"c1beaf401a82bf61460878b4964d368024c6e620","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-lMP4PhNn5FU7qcuG+oSdLbYFjH6oFP888SwlYmjKIVr5EN/VM/bpqIysUvBdEkfDIljFnEyRvQNym6O/D5pNuA==","shasum":"9487d85f8f6720232a741ce246c614532fb3bb21","tarball":"https://registry.npmjs.org/@absolutejs/compliance/-/compliance-0.7.0.tgz","fileCount":11,"unpackedSize":637655,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFybHD/9dcKBiZgp9qGJo7RjAENkIi5EFVwTlN8YGRqBAiB+iJpPPJj1h9kwiVE0AAI57XMJ6Qs6PKCKxXbEs4Y3og=="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/compliance_0.7.0_1785617447835_0.8840790290052669"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-31T17:34:40.173Z","modified":"2026-08-01T20:50:48.197Z","0.1.0":"2026-05-31T17:34:40.472Z","0.1.1":"2026-07-13T17:43:53.573Z","0.2.0":"2026-07-23T11:39:45.077Z","0.2.1":"2026-07-25T06:38:56.003Z","0.3.0":"2026-08-01T16:24:23.885Z","0.3.1":"2026-08-01T16:29:24.801Z","0.3.2":"2026-08-01T16:38:18.114Z","0.4.0":"2026-08-01T17:03:06.367Z","0.5.0":"2026-08-01T17:45:31.798Z","0.6.0":"2026-08-01T18:23:55.275Z","0.7.0":"2026-08-01T20:50:47.997Z"},"bugs":{"url":"https://github.com/absolutejs/compliance/issues"},"author":{"name":"Alex Kahn"},"license":"BSL-1.1","homepage":"https://github.com/absolutejs/compliance","keywords":["absolutejs","compliance","gdpr","soc2","hipaa","data-residency","retention","sar","erasure","audit"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/compliance.git"},"description":"Framework-agnostic compliance substrate for the AbsoluteJS PaaS. Declarative data classification + residency + retention policies; orchestrators for retention sweeps, Subject Access Requests, right-to-erasure, and evidence bundles. Composes onto @absolute","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# `@absolutejs/compliance`\n\n> Framework-agnostic compliance substrate for the AbsoluteJS PaaS.\n\n`@absolutejs/compliance` gives a control plane composable\nprimitives. None of them know about a specific framework — SOC2,\nHIPAA, ISO 27001, and GDPR all map onto the same shape.\n\n## Messaging consent\n\nThe messaging consent ledger records immutable grant/revocation evidence at an\nexact tenant, program, purpose, transport, and recipient scope. Memory and\nPostgres stores are included. Its dispatch policy blocks messages before an\nadapter or provider call when evidence is missing or revoked.\n\n```ts\nconst store = createPostgresMessagingConsentStore(postgres);\nconst consent = createMessagingConsentLedger({ audit, store });\n\nawait consent.grant(\n  {\n    recipient: \"+12025550100\",\n    programId: \"acme-incident-alerts\",\n    purpose: \"incident-alerts\",\n    tenant: \"tenant-a\",\n    transport: \"sms\",\n  },\n  { at: Date.now(), reference: \"signup-42\", source: \"signup-form\" },\n);\n\nconst dispatcher = createDispatcher({\n  policies: [createMessagingConsentDispatchPolicy({ ledger: consent })],\n  sms,\n});\n```\n\nApply `MESSAGING_CONSENT_POSTGRES_SCHEMA` once before using the Postgres\nstore. Provider adapters can write signed opt-in/opt-out callbacks into the\nsame ledger.\n\n## Primitives\n\n### 1. `createCompliancePolicy({ classifications, tenantOverrides? })`\n\nDeclarative shape. Each classification gets a stable id,\nretention window, optional residency region, optional\n`erasureExempt` flag, and an open `flags` bag.\n\n```ts\nconst policy = createCompliancePolicy({\n  classifications: {\n    pii: { id: \"pii\", retentionMs: 730 * DAY, residency: \"eu\" },\n    \"audit-log\": {\n      id: \"audit-log\",\n      retentionMs: Infinity,\n      erasureExempt: true, // SOX / many regulators require 7+ years\n      flags: { immutable: true },\n    },\n    operational: { id: \"operational\", retentionMs: 90 * DAY },\n  },\n  tenantOverrides: {\n    \"gdpr-strict-tenant\": { pii: { retentionMs: 90 * DAY } },\n  },\n});\n```\n\n### 2. `createResidencyGuard(policy)`\n\nPure check. The runtime, sync, queue, and blob layers call\n`guard.check({ classification, region, tenant? })` before letting\ndata move. Mismatches throw `ResidencyViolation`.\n\n```ts\nguard.check({ classification: \"pii\", region: \"us-east\" });\n// throws ResidencyViolation if policy says 'eu'\n\n// non-throwing variant\nconst v = guard.inspect({\n  classification: \"pii\",\n  region: \"eu\",\n  tenant: \"acme\",\n});\nif (v !== null) return new Response(v.message, { status: 451 });\n```\n\n### 3. `runRetention({ policy, scanners, deleters, audit?, ... })`\n\nOrchestrator. Each scanner streams expired records for a\nclassification; each deleter removes them (batched). Per-scanner\nfailures are isolated. Optional audit broker logs a\n`'compliance.retention.swept'` event per class. `dryRun: true`\ncounts without deleting.\n\n```ts\nconst report = await runRetention({\n  policy,\n  audit: broker,\n  scanners: [\n    { classification: \"audit-log\", scan: auditTable.scan },\n    { classification: \"pii\", scan: userTable.scan },\n  ],\n  deleters: {\n    \"audit-log\": (rows) => auditTable.delete(rows.map((r) => r.id)),\n    pii: (rows) => userTable.delete(rows.map((r) => r.id)),\n  },\n});\n// report = { byClassification: { pii: { scanned, deleted, durationMs }, ... }, errors }\n```\n\n### 4. `runSubjectAccess({ subject, collectors })` + `runErasure({ subject, erasers, ... })`\n\nCompose a \"find / forget everything about user X\" pipeline across\npackages. Each package provides a collector / eraser pair. The\nsubstrate runs them and returns a structured bundle.\n\n`runErasure` automatically routes to `eraser.anonymize` for\n`erasureExempt` classifications (typical: anonymize audit-log\nsubject references rather than delete the log itself). Records the\nerasure to audit if a broker is provided.\n\n```ts\nconst bundle = await runSubjectAccess({\n  subject: { tenant: \"acme\", subjectId: \"u-1\" },\n  collectors: [\n    {\n      name: \"profile\",\n      classification: \"pii\",\n      collect: userTable.findBySubject,\n    },\n    {\n      name: \"audit\",\n      classification: \"audit-log\",\n      collect: auditTable.findBySubject,\n    },\n    {\n      name: \"sync-packs\",\n      classification: \"sync-packs\",\n      collect: syncPacks.findBySubject,\n    },\n  ],\n});\n\nawait runErasure({\n  policy,\n  audit: broker,\n  subject: { tenant: \"acme\", subjectId: \"u-1\" },\n  erasers: [\n    {\n      name: \"profile\",\n      classification: \"pii\",\n      erase: userTable.deleteBySubject,\n    },\n    {\n      name: \"audit\",\n      classification: \"audit-log\",\n      anonymize: auditTable.anonymizeSubject,\n    },\n  ],\n});\n```\n\n### 5. `collectEvidence({ policy, period, sources })`\n\nBundles per-source JSON evidence into a single structure an\nexternal auditor can read. Each source returns arbitrary JSON-\nserializable evidence for the period; the bundler doesn't\ninterpret the shape. Ships with `auditEvidenceSource(broker)`\nfor the typical \"all audit events in the period\" case.\n\n```ts\nconst bundle = await collectEvidence({\n  policy,\n  period: { start: lastQuarter, end: now },\n  sources: [\n    auditEvidenceSource(broker, { kindPrefix: \"compliance.\" }),\n    { name: \"access-log\", collect: () => accessLog.dump(period) },\n    { name: \"config-snapshot\", collect: () => config.snapshot() },\n  ],\n});\n// Write `bundle` to disk → hand to your SOC2 / ISO / HIPAA auditor.\n```\n\n## Tenant overrides\n\nA per-tenant override wins over the class default. GDPR-strict\ntenants riding a default-US-East platform get their own residency,\nretention, and erasure-exempt behavior without forking the policy.\n\n## License\n\nBSL-1.1 with named carveout against hosted compliance / GRC SaaS\n(Vanta, Drata, Secureframe, OneTrust, TrustCloud, Sprinto,\nTugboat Logic). See `LICENSE`. Change date: **2030-05-31** →\nApache 2.0.\n","readmeFilename":"README.md"}