{"_id":"@absolutejs/secure-messaging-federation-delivery","name":"@absolutejs/secure-messaging-federation-delivery","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@absolutejs/secure-messaging-federation-delivery","version":"0.0.1","description":"DeliveryService bridge from AbsoluteJS secure messaging to authenticated federation transports.","type":"module","license":"Apache-2.0","author":{"name":"Alex Kahn"},"repository":{"type":"git","url":"git+https://github.com/absolutejs/secure-messaging-federation-adapters.git","directory":"delivery"},"homepage":"https://github.com/absolutejs/secure-messaging-federation-adapters/tree/main/delivery","bugs":{"url":"https://github.com/absolutejs/secure-messaging-federation-adapters/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"},"./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=browser --external @absolutejs/e2ee --external @absolutejs/secure-messaging-federation --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: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"},"peerDependencies":{"@absolutejs/e2ee":">=0.8.0 <0.9","@absolutejs/secure-messaging-federation":">=0.1.0 <0.2"},"devDependencies":{"@absolutejs/e2ee":"0.8.0","@absolutejs/e2ee-mls":"0.5.0","@absolutejs/secure-messaging":"0.5.0","@absolutejs/secure-messaging-federation":"0.1.0","@types/bun":"^1.3.14","prettier":"^3.9.0","typescript":"^5.9.0"},"absolutejs":{"manifestContract":2},"_id":"@absolutejs/secure-messaging-federation-delivery@0.0.1","gitHead":"f97166f1641c3d43d4231a5e0e532c90e6e624a2","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-8VDsMHSWPuHgogUKOvF+Su+lquagmOWAgClD5+trkFmJLPnlO72CvDPCi4oWTYo/uS3EhVOWBh5vaJueZPdZZA==","shasum":"838591ab0a1b9dd1fd371c7cb7908d1ad026c682","tarball":"https://registry.npmjs.org/@absolutejs/secure-messaging-federation-delivery/-/secure-messaging-federation-delivery-0.0.1.tgz","fileCount":12,"unpackedSize":40027,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBc91j6uVM7xYyH0dTsoEtmlkXBXp8WjeS6Niv8QTifvAiEA01CerxC7TRGft2FqaJNuwupWkQtcNeTp/FCoc6WeTIk="}]},"_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/secure-messaging-federation-delivery_0.0.1_1787800664796_0.13680458041995158"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T03:17:44.581Z","0.0.1":"2026-08-27T03:17:44.937Z","modified":"2026-08-27T03:17:45.221Z"},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"description":"DeliveryService bridge from AbsoluteJS secure messaging to authenticated federation transports.","homepage":"https://github.com/absolutejs/secure-messaging-federation-adapters/tree/main/delivery","repository":{"type":"git","url":"git+https://github.com/absolutejs/secure-messaging-federation-adapters.git","directory":"delivery"},"author":{"name":"Alex Kahn"},"bugs":{"url":"https://github.com/absolutejs/secure-messaging-federation-adapters/issues"},"license":"Apache-2.0","readme":"# `@absolutejs/secure-messaging-federation-delivery`\n\nAn adapter from AbsoluteJS secure messaging's `DeliveryService` to an\nauthenticated, interchangeable federation transport. It carries the actual\nprotected messaging frame as opaque bytes; it does not replace MLS or decrypt\napplication content.\n\n## Security boundary\n\nOutbound application routing is converted into a provider-local opaque\n`routeId`. Inbound code resolves only a preconfigured session before checking\nthe remote-domain signature. The application conversation and recipient route\nare resolved only after authentication and replay checks succeed.\n\nThe selected `strict-e2ee` or `managed-recovery` mode must exactly match the\nnegotiated federation session. Modes are never inferred or silently downgraded.\n\nUse random, non-semantic conversation and route identifiers. MLS authenticated\ndata can be visible to a delivery provider even though application plaintext is\nencrypted; do not place email addresses, usernames, or other personal data in\nidentifiers.\n\n## Usage\n\n```ts\nimport { createFederatedDeliveryService } from \"@absolutejs/secure-messaging-federation-delivery\";\n\nconst delivery = createFederatedDeliveryService({\n  directory,\n  limits,\n  localDomain: \"alice.example\",\n  maximumMessagesPerReceive: 100,\n  replayStore,\n  signatureProvider,\n  transport,\n});\n```\n\nPass `delivery` to `createSecureMessagingClient`. The directory is the policy\nboundary: it must return negotiated, unexpired sessions and opaque routes for\nthe current tenant.\n\n## Protocol position\n\nThis package is an AbsoluteJS bridge, not a claim of independent MIMI\ninteroperability. Use the revision-pinned MIMI adapter for experiments with the\nactive Internet-Drafts and the HTTPS adapter for the hardened network hop.\n","readmeFilename":"README.md","_rev":"1-24f02193c37e698e500272f1248a877f"}