{"_id":"@absolutejs/e2ee","_rev":"8-244d997f13a0d400da67892e231b9c7c","name":"@absolutejs/e2ee","dist-tags":{"latest":"0.8.0"},"versions":{"0.1.0":{"name":"@absolutejs/e2ee","version":"0.1.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"e7415ffb865754fd6f0bb7d0169e91772e2f4bef","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.1.0.tgz","fileCount":18,"integrity":"sha512-8McPvyrZA++li1a8QXnpMdxi/uBIk31cdeaiVGNaxWLRy5bHC5ktLyJmPcktUjOwbiR10RKkC6/EiCg04mVDjw==","signatures":[{"sig":"MEUCIQDffVJcCtk5c924RRrTlZibcjdopGHUHgc0114PIfzxZQIgFS9Jnd9g1pxs7R8QxmzUHpOyytjPi5nA7lSi5PBTp1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78773},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"c350fe411ed57dcac35e5f818864df3bb2fb9b5d","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.1.0_1787734964656_0.7232812101687374","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/e2ee","version":"0.2.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"1481f3d34cee74222d491e83d5adbe8d0936cf36","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.2.0.tgz","fileCount":19,"integrity":"sha512-zBkUd4yn6zo211t25zCNt2yEU+TJTvgSR/4lVJ+JSjoqz0NoQBCQd55W2I2R9uCrGnmVW+5wv5iiDlvrJtbqNw==","signatures":[{"sig":"MEUCIHyizZNhQqbzQySH6mYSq+9mStVpUJ3sFB1JuXAYrYm1AiEAmLSkBEGX9ork6wtWSk5PUcwklM8zjBxAyjEI/I3B/fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100235},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"d4ae63d8a0b1ec649f2c1aef04939f12ebadfcbd","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.2.0_1787763771117_0.11696878949215339","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/e2ee","version":"0.3.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.3.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"3b81ba25195bbeff453af362e4c225acaa59148c","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.3.0.tgz","fileCount":19,"integrity":"sha512-LF2NvmGDdmVQLvYU33jaLPy0TS7O1+qVmnzc0IdkPPE/Nt4SH5ItheKTHU4t2QVOORb7zJp5NF/3K9eH437DBA==","signatures":[{"sig":"MEUCICnopg36SF6eiAIBhtJLuE4vD53BDY7UpJtIAiY5tn63AiEA5CyTqETtwL370u4x9GTStH2cZ14399qk0nKhLc1b08w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100370},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"58c527648ac5d90df535ccfcaa280e68dba4b1a8","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.3.0_1787764014886_0.6817635351385465","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@absolutejs/e2ee","version":"0.4.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.4.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"5165ecd13e79c71f708e6dca0d751bf144f5d20a","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.4.0.tgz","fileCount":19,"integrity":"sha512-0llRBN1lTI2k1sIY2OggroXFf5dcoArsIu+31NUtJxHhE54Hqr/KIr83f5D0cc5je2S45eErArYUZVi/1A1XWw==","signatures":[{"sig":"MEYCIQC23Bn8SI3IOwI6n/5ufe58IGXH8KEcWdH+HCHwTm4A1QIhAKII0rhPrASU2VZuJdqvLpvfrY83GhiESKPXYjHpbETj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100716},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"dc43aab22a8c1c609b86882c0a6aa1b36619e6ac","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.4.0_1787764315845_0.6398152358218405","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@absolutejs/e2ee","version":"0.5.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.5.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"e82af12f8f0e605b6ac6aaccd37b0b5479065bad","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.5.0.tgz","fileCount":22,"integrity":"sha512-76xPOYngA1tortaQBwjaJAuXQ1vu7iR+wR3L5fMch/6asLKj80vYWnJ88ErTRER1v8+9P6VZ+rdyh57HVsP9qg==","signatures":[{"sig":"MEYCIQCN0pjuvKpxFYe0y/ze69R2XnVW9qfwcrXXntbysmAV+QIhAJvFfIqM80T0ibuekXh3P7cFJnm81lSrd4czyZdnBUpc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131473},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./certification":{"types":"./dist/certification.d.ts","import":"./dist/certification.js","default":"./dist/certification.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"20867b286b512ce715b1707455b3787c589e2711","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/certification.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.5.0_1787769934371_0.570620726430622","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@absolutejs/e2ee","version":"0.6.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.6.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"8ea8932c987a68c5667efa36d19fa7f361ae1bf2","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.6.0.tgz","fileCount":22,"integrity":"sha512-Fi1/L6x7eS6ifPh21hf5Rc/WlEZA3TrdUtU0aTF/mhaeKeDheN6bfTVPs2TGMRiywwosr1N463FPCBEeLAGe6w==","signatures":[{"sig":"MEUCICQYeCWlmtzkS9JSabLZSvOGq+/JvbM/ntXhcW2bfaSqAiEAt0jq1QHjnU33gtNbisePWhxd/RiDu1RBw9MH6o6JS98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149757},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./certification":{"types":"./dist/certification.d.ts","import":"./dist/certification.js","default":"./dist/certification.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"144e6279715d6aa7ded5129d000f4b0bb0f9e9e2","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/certification.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.6.0_1787781095151_0.9055098868923364","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@absolutejs/e2ee","version":"0.7.0","author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/e2ee@0.7.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"dist":{"shasum":"5b1a1dc20520be25ef791286ecb02d6df0e8fe8e","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.7.0.tgz","fileCount":22,"integrity":"sha512-tA4eALvLwwKxF9QVScWNqyDqeFbmwe7+xRF55w6zHSq4dO0EMYLHKF3WMFyk7MM7uUJ1FqW2aj9Ld/o/Y0LNYA==","signatures":[{"sig":"MEYCIQCeEYP4X5+c3wRTxr9+YN0Y8E1aavyZWrgshjMIXXGoRwIhAINibKQL77lwH6vdBdpptVsRYUMFK0pHojUexlpfMK9R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151553},"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"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./certification":{"types":"./dist/certification.d.ts","import":"./dist/certification.js","default":"./dist/certification.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"3c6465c24a9a436d7ef66cbd9d610d634a77f53f","scripts":{"test":"bun test tests/","build":"rm -rf dist && bun build src/index.ts src/certification.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","format:check":"prettier --check \"./**/*.{ts,json,md}\"","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/e2ee.git","type":"git"},"_npmVersion":"10.9.2","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.0","@types/bun":"^1.3.14","typescript":"^5.9.0"},"_npmOperationalInternal":{"tmp":"tmp/e2ee_0.7.0_1787783334048_0.4346151767421762","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@absolutejs/e2ee","version":"0.8.0","description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","type":"module","license":"Apache-2.0","author":{"name":"Alex Kahn"},"repository":{"type":"git","url":"git+https://github.com/absolutejs/e2ee.git"},"homepage":"https://github.com/absolutejs/e2ee","bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./conformance":{"types":"./dist/conformance.d.ts","import":"./dist/conformance.js","default":"./dist/conformance.js"},"./certification":{"types":"./dist/certification.d.ts","import":"./dist/certification.js","default":"./dist/certification.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/certification.ts src/conformance.ts src/manifest.ts --outdir dist --root src --sourcemap --target=browser --external @absolutejs/manifest --external @sinclair/typebox && tsc --project tsconfig.build.json && absolute-manifest emit","check:package":"bun run format:check && bun run typecheck && bun run test && bun run build && bun run verify-package","format":"prettier --write \"./**/*.{ts,json,md}\"","format:check":"prettier --check \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","test":"bun test tests/","typecheck":"tsc --noEmit","verify-package":"absolute-manifest verify-package"},"dependencies":{"@absolutejs/manifest":"^0.9.0","@sinclair/typebox":"^0.34.0"},"devDependencies":{"@types/bun":"^1.3.14","prettier":"^3.9.0","typescript":"^5.9.0"},"absolutejs":{"manifestContract":2},"_id":"@absolutejs/e2ee@0.8.0","gitHead":"c188a80ad3161fe30c1b766efadb65279577f282","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-POqferRMc0rfqsl2BItK+yFwc5118unC2FJYhDCf/lSt7C83uSzmrIhqGqSO3LXrgigR9KkC/2Pzw3Eur5RXOQ==","shasum":"fa52db132031b0afdaa1485124c2d3380048b137","tarball":"https://registry.npmjs.org/@absolutejs/e2ee/-/e2ee-0.8.0.tgz","fileCount":22,"unpackedSize":160453,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICIUS+hs/0iu1X8C/XYCnnCnejA1LzkzzBqZ+Su1vKrzAiBa5Ejr2viHEulyh/1z4iEcimwcSYGxjkUZbcQiB1jthg=="}]},"_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/e2ee_0.8.0_1787787591434_0.478821518697242"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-26T09:02:44.515Z","modified":"2026-08-26T23:39:51.754Z","0.1.0":"2026-08-26T09:02:44.791Z","0.2.0":"2026-08-26T17:02:51.260Z","0.3.0":"2026-08-26T17:06:55.015Z","0.4.0":"2026-08-26T17:11:55.996Z","0.5.0":"2026-08-26T18:45:34.516Z","0.6.0":"2026-08-26T21:51:35.307Z","0.7.0":"2026-08-26T22:28:54.208Z","0.8.0":"2026-08-26T23:39:51.571Z"},"bugs":{"url":"https://github.com/absolutejs/e2ee/issues"},"author":{"name":"Alex Kahn"},"license":"Apache-2.0","homepage":"https://github.com/absolutejs/e2ee","repository":{"type":"git","url":"git+https://github.com/absolutejs/e2ee.git"},"description":"Provider-neutral E2EE contracts, security modes, assurance manifests, and conformance tools for AbsoluteJS.","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# `@absolutejs/e2ee`\n\nProvider-neutral E2EE contracts, explicit security modes, assurance manifests,\nprovider selection, and conformance tools for AbsoluteJS.\n\nThis package is the stable seam between applications and implementations in the\n[`e2ee-providers`](https://github.com/absolutejs/e2ee-providers) repository. It\ndoes **not** invent cryptography, silently select a provider, or claim that unlike\nproviders have equivalent security.\n\n> This is an early `0.x` release. The core package does not itself encrypt data,\n> and no provider is production-approved until its published assurance and audit\n> gates pass.\n\n## Install\n\n```bash\nbun add @absolutejs/e2ee\n```\n\n## Select a provider explicitly\n\n```ts\nimport { selectE2EEProvider } from \"@absolutejs/e2ee\";\n\nconst selected = selectE2EEProvider(providers, {\n  minimumAssurance: \"reviewed\",\n  operatorCanDecrypt: false,\n  protocols: [\"MLS-1.0\"],\n  roles: [\"messaging\"],\n  runtime: \"browser\",\n  securityMode: \"strict-e2ee\",\n});\n\nconsole.log(selected.manifest.packageName);\n```\n\nSelection fails closed and explains why each provider was rejected. Applications\nmay pin a provider ID when they need deterministic deployment rather than accepting\nthe highest compatible assurance level.\n\n## Explicit modes\n\n- `strict-e2ee`: only verified participant devices can decrypt conversation\n  history. Losing all verified devices and exports may permanently lose history.\n- `managed-recovery`: a visibly identified recovery authority may authorize a\n  new verified device to replace lost device leaves. It is never enabled silently,\n  and the authority does not receive serialized live MLS state through this API.\n\nSensitive agent exchange additionally declares whether a value is\n`tool-confined`, `endpoint-visible`, or `model-visible`. `tool-confined` is the\nrecommended default.\n\n## Scope\n\nThe `0.2.x` line adds the application boundaries required around an MLS engine:\ndevice credentials, KeyPackages, membership changes, delivery, durable\ncompare-and-set state, and an explicit recovery authority. These are contracts,\nnot hosted services. Implementations remain in provider packages.\n\nMLS deliberately does not define an application's Authentication Service or\nDelivery Service. AbsoluteJS keeps those dependencies visible so a cryptographic\nengine cannot silently become the identity authority, transport, or recovery\nauthority. Strict E2EE never receives a `RecoveryAuthority`; managed recovery\nmust identify and configure a `RecoveryGrantVerifier` explicitly. Recovery after\nstate loss follows RFC 9750's rejoin-and-remove model: bind a short-lived grant to\nthe replacement credential, add it, and remove the lost leaves in one commit.\n\nChanging modes is not a session mutation. Call\n`planSecurityModeTransition()`, create a new conversation in the requested\nmode, re-add verified devices, and visibly retire the prior conversation.\nNew conversations begin with their creator only; add every other device through\n`addMembers()` so its Welcome message cannot be accidentally discarded.\nJoining a Welcome requires `expectedSecurityMode`, and the returned session\nexposes the mode authenticated by provider state. Callers must reject any\nstrict/managed mismatch instead of trusting delivery metadata.\n\nPublic TypeScript contracts use type aliases rather than interfaces so unions,\nintersections, and provider capability composition stay explicit.\n\nSee [SECURITY.md](./SECURITY.md) before relying on this package for protected data.\n\n## Version-bound certification\n\nProvider capability claims and provider certification are separate. A certification\nreport binds the provider ID, package name, exact package version, runtime, suite,\nscenarios, implementation identities, vector sources, and an evidence digest.\n`checkE2EECertification()` rejects stale reports, reports for another release or\nruntime, and missing policy claims.\n\nAn `independent-audit` claim additionally requires an HTTPS report and SHA-256\ndigest, an exact package/version scope, an auditor identity, a future validity\ndate, and zero unresolved critical or high findings. Deployments can set\n`trustedAuditorIds`; the library does not pretend that a provider's\nself-declaration proves reviewer independence. Any provider release or scoped\nengine change requires new audit evidence.\n\nThe claims deliberately distinguish shared conformance, known-answer vectors, and\ncross-implementation testing. Passing the MLS Working Group vectors does not by\nitself prove application interoperability: RFC 9750 leaves Authentication Service,\nDelivery Service, identity, and application framing choices to deployments.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}