@sempdev/semp 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/brief/address.d.ts +77 -0
- package/dist/brief/address.d.ts.map +1 -0
- package/dist/brief/address.js +217 -0
- package/dist/brief/address.js.map +1 -0
- package/dist/brief/brief.d.ts +75 -0
- package/dist/brief/brief.d.ts.map +1 -0
- package/dist/brief/brief.js +56 -0
- package/dist/brief/brief.js.map +1 -0
- package/dist/brief/index.d.ts +11 -0
- package/dist/brief/index.d.ts.map +1 -0
- package/dist/brief/index.js +11 -0
- package/dist/brief/index.js.map +1 -0
- package/dist/canonical/index.d.ts +8 -0
- package/dist/canonical/index.d.ts.map +1 -0
- package/dist/canonical/index.js +8 -0
- package/dist/canonical/index.js.map +1 -0
- package/dist/canonical/marshal.d.ts +35 -0
- package/dist/canonical/marshal.d.ts.map +1 -0
- package/dist/canonical/marshal.js +107 -0
- package/dist/canonical/marshal.js.map +1 -0
- package/dist/clockskew/index.d.ts +52 -0
- package/dist/clockskew/index.d.ts.map +1 -0
- package/dist/clockskew/index.js +62 -0
- package/dist/clockskew/index.js.map +1 -0
- package/dist/closure/closure.d.ts +106 -0
- package/dist/closure/closure.d.ts.map +1 -0
- package/dist/closure/closure.js +152 -0
- package/dist/closure/closure.js.map +1 -0
- package/dist/closure/driver.d.ts +103 -0
- package/dist/closure/driver.d.ts.map +1 -0
- package/dist/closure/driver.js +126 -0
- package/dist/closure/driver.js.map +1 -0
- package/dist/closure/index.d.ts +13 -0
- package/dist/closure/index.d.ts.map +1 -0
- package/dist/closure/index.js +13 -0
- package/dist/closure/index.js.map +1 -0
- package/dist/closure/store.d.ts +80 -0
- package/dist/closure/store.d.ts.map +1 -0
- package/dist/closure/store.js +89 -0
- package/dist/closure/store.js.map +1 -0
- package/dist/crypto/aead.d.ts +29 -0
- package/dist/crypto/aead.d.ts.map +1 -0
- package/dist/crypto/aead.js +48 -0
- package/dist/crypto/aead.js.map +1 -0
- package/dist/crypto/argon2.d.ts +20 -0
- package/dist/crypto/argon2.d.ts.map +1 -0
- package/dist/crypto/argon2.js +28 -0
- package/dist/crypto/argon2.js.map +1 -0
- package/dist/crypto/index.d.ts +14 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +14 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/kdf.d.ts +96 -0
- package/dist/crypto/kdf.d.ts.map +1 -0
- package/dist/crypto/kdf.js +122 -0
- package/dist/crypto/kdf.js.map +1 -0
- package/dist/crypto/kem.d.ts +85 -0
- package/dist/crypto/kem.d.ts.map +1 -0
- package/dist/crypto/kem.js +130 -0
- package/dist/crypto/kem.js.map +1 -0
- package/dist/crypto/mac.d.ts +19 -0
- package/dist/crypto/mac.d.ts.map +1 -0
- package/dist/crypto/mac.js +32 -0
- package/dist/crypto/mac.js.map +1 -0
- package/dist/delivery/ack.d.ts +125 -0
- package/dist/delivery/ack.d.ts.map +1 -0
- package/dist/delivery/ack.js +141 -0
- package/dist/delivery/ack.js.map +1 -0
- package/dist/delivery/blocklist.d.ts +87 -0
- package/dist/delivery/blocklist.d.ts.map +1 -0
- package/dist/delivery/blocklist.js +107 -0
- package/dist/delivery/blocklist.js.map +1 -0
- package/dist/delivery/cancel.d.ts +60 -0
- package/dist/delivery/cancel.d.ts.map +1 -0
- package/dist/delivery/cancel.js +43 -0
- package/dist/delivery/cancel.js.map +1 -0
- package/dist/delivery/disposition.d.ts +106 -0
- package/dist/delivery/disposition.d.ts.map +1 -0
- package/dist/delivery/disposition.js +105 -0
- package/dist/delivery/disposition.js.map +1 -0
- package/dist/delivery/fetch.d.ts +59 -0
- package/dist/delivery/fetch.d.ts.map +1 -0
- package/dist/delivery/fetch.js +47 -0
- package/dist/delivery/fetch.js.map +1 -0
- package/dist/delivery/forwarder.d.ts +106 -0
- package/dist/delivery/forwarder.d.ts.map +1 -0
- package/dist/delivery/forwarder.js +251 -0
- package/dist/delivery/forwarder.js.map +1 -0
- package/dist/delivery/inbox.d.ts +42 -0
- package/dist/delivery/inbox.d.ts.map +1 -0
- package/dist/delivery/inbox.js +68 -0
- package/dist/delivery/inbox.js.map +1 -0
- package/dist/delivery/index.d.ts +31 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +31 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/delivery/internalroute.d.ts +50 -0
- package/dist/delivery/internalroute.d.ts.map +1 -0
- package/dist/delivery/internalroute.js +23 -0
- package/dist/delivery/internalroute.js.map +1 -0
- package/dist/delivery/pipeline.d.ts +153 -0
- package/dist/delivery/pipeline.d.ts.map +1 -0
- package/dist/delivery/pipeline.js +356 -0
- package/dist/delivery/pipeline.js.map +1 -0
- package/dist/delivery/policy_state.d.ts +105 -0
- package/dist/delivery/policy_state.d.ts.map +1 -0
- package/dist/delivery/policy_state.js +293 -0
- package/dist/delivery/policy_state.js.map +1 -0
- package/dist/delivery/queue.d.ts +47 -0
- package/dist/delivery/queue.d.ts.map +1 -0
- package/dist/delivery/queue.js +33 -0
- package/dist/delivery/queue.js.map +1 -0
- package/dist/delivery/receipt.d.ts +137 -0
- package/dist/delivery/receipt.d.ts.map +1 -0
- package/dist/delivery/receipt.js +181 -0
- package/dist/delivery/receipt.js.map +1 -0
- package/dist/delivery/receipt_store.d.ts +81 -0
- package/dist/delivery/receipt_store.d.ts.map +1 -0
- package/dist/delivery/receipt_store.js +74 -0
- package/dist/delivery/receipt_store.js.map +1 -0
- package/dist/delivery/retry.d.ts +78 -0
- package/dist/delivery/retry.d.ts.map +1 -0
- package/dist/delivery/retry.js +132 -0
- package/dist/delivery/retry.js.map +1 -0
- package/dist/delivery/scheduler.d.ts +156 -0
- package/dist/delivery/scheduler.d.ts.map +1 -0
- package/dist/delivery/scheduler.js +349 -0
- package/dist/delivery/scheduler.js.map +1 -0
- package/dist/delivery/stage_partition.d.ts +87 -0
- package/dist/delivery/stage_partition.d.ts.map +1 -0
- package/dist/delivery/stage_partition.js +122 -0
- package/dist/delivery/stage_partition.js.map +1 -0
- package/dist/delivery/staged_runner.d.ts +100 -0
- package/dist/delivery/staged_runner.d.ts.map +1 -0
- package/dist/delivery/staged_runner.js +277 -0
- package/dist/delivery/staged_runner.js.map +1 -0
- package/dist/delivery/submission.d.ts +72 -0
- package/dist/delivery/submission.d.ts.map +1 -0
- package/dist/delivery/submission.js +58 -0
- package/dist/delivery/submission.js.map +1 -0
- package/dist/delivery/sync.d.ts +68 -0
- package/dist/delivery/sync.d.ts.map +1 -0
- package/dist/delivery/sync.js +99 -0
- package/dist/delivery/sync.js.map +1 -0
- package/dist/delivery/user_policy.d.ts +74 -0
- package/dist/delivery/user_policy.d.ts.map +1 -0
- package/dist/delivery/user_policy.js +140 -0
- package/dist/delivery/user_policy.js.map +1 -0
- package/dist/discovery/cache.d.ts +37 -0
- package/dist/discovery/cache.d.ts.map +1 -0
- package/dist/discovery/cache.js +45 -0
- package/dist/discovery/cache.js.map +1 -0
- package/dist/discovery/configuration.d.ts +97 -0
- package/dist/discovery/configuration.d.ts.map +1 -0
- package/dist/discovery/configuration.js +146 -0
- package/dist/discovery/configuration.js.map +1 -0
- package/dist/discovery/dns.d.ts +56 -0
- package/dist/discovery/dns.d.ts.map +1 -0
- package/dist/discovery/dns.js +120 -0
- package/dist/discovery/dns.js.map +1 -0
- package/dist/discovery/domain_keys.d.ts +62 -0
- package/dist/discovery/domain_keys.d.ts.map +1 -0
- package/dist/discovery/domain_keys.js +89 -0
- package/dist/discovery/domain_keys.js.map +1 -0
- package/dist/discovery/index.d.ts +19 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +19 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/lookup.d.ts +72 -0
- package/dist/discovery/lookup.d.ts.map +1 -0
- package/dist/discovery/lookup.js +121 -0
- package/dist/discovery/lookup.js.map +1 -0
- package/dist/discovery/onion.d.ts +34 -0
- package/dist/discovery/onion.d.ts.map +1 -0
- package/dist/discovery/onion.js +61 -0
- package/dist/discovery/onion.js.map +1 -0
- package/dist/discovery/partition.d.ts +96 -0
- package/dist/discovery/partition.d.ts.map +1 -0
- package/dist/discovery/partition.js +247 -0
- package/dist/discovery/partition.js.map +1 -0
- package/dist/discovery/resolver.d.ts +113 -0
- package/dist/discovery/resolver.d.ts.map +1 -0
- package/dist/discovery/resolver.js +176 -0
- package/dist/discovery/resolver.js.map +1 -0
- package/dist/discovery/txt.d.ts +39 -0
- package/dist/discovery/txt.d.ts.map +1 -0
- package/dist/discovery/txt.js +71 -0
- package/dist/discovery/txt.js.map +1 -0
- package/dist/enclosure/forwarding.d.ts +128 -0
- package/dist/enclosure/forwarding.d.ts.map +1 -0
- package/dist/enclosure/forwarding.js +119 -0
- package/dist/enclosure/forwarding.js.map +1 -0
- package/dist/enclosure/index.d.ts +11 -0
- package/dist/enclosure/index.d.ts.map +1 -0
- package/dist/enclosure/index.js +11 -0
- package/dist/enclosure/index.js.map +1 -0
- package/dist/envelope/buckets.d.ts +38 -0
- package/dist/envelope/buckets.d.ts.map +1 -0
- package/dist/envelope/buckets.js +73 -0
- package/dist/envelope/buckets.js.map +1 -0
- package/dist/envelope/canonical.d.ts +28 -0
- package/dist/envelope/canonical.d.ts.map +1 -0
- package/dist/envelope/canonical.js +54 -0
- package/dist/envelope/canonical.js.map +1 -0
- package/dist/envelope/compose.d.ts +171 -0
- package/dist/envelope/compose.d.ts.map +1 -0
- package/dist/envelope/compose.js +237 -0
- package/dist/envelope/compose.js.map +1 -0
- package/dist/envelope/encode.d.ts +41 -0
- package/dist/envelope/encode.d.ts.map +1 -0
- package/dist/envelope/encode.js +69 -0
- package/dist/envelope/encode.js.map +1 -0
- package/dist/envelope/index.d.ts +20 -0
- package/dist/envelope/index.d.ts.map +1 -0
- package/dist/envelope/index.js +20 -0
- package/dist/envelope/index.js.map +1 -0
- package/dist/envelope/open_any.d.ts +48 -0
- package/dist/envelope/open_any.d.ts.map +1 -0
- package/dist/envelope/open_any.js +81 -0
- package/dist/envelope/open_any.js.map +1 -0
- package/dist/envelope/open_verified.d.ts +59 -0
- package/dist/envelope/open_verified.d.ts.map +1 -0
- package/dist/envelope/open_verified.js +67 -0
- package/dist/envelope/open_verified.js.map +1 -0
- package/dist/envelope/padding.d.ts +55 -0
- package/dist/envelope/padding.d.ts.map +1 -0
- package/dist/envelope/padding.js +162 -0
- package/dist/envelope/padding.js.map +1 -0
- package/dist/envelope/rejection.d.ts +22 -0
- package/dist/envelope/rejection.d.ts.map +1 -0
- package/dist/envelope/rejection.js +30 -0
- package/dist/envelope/rejection.js.map +1 -0
- package/dist/envelope/sendtime.d.ts +49 -0
- package/dist/envelope/sendtime.d.ts.map +1 -0
- package/dist/envelope/sendtime.js +87 -0
- package/dist/envelope/sendtime.js.map +1 -0
- package/dist/envelope/verify.d.ts +29 -0
- package/dist/envelope/verify.d.ts.map +1 -0
- package/dist/envelope/verify.js +90 -0
- package/dist/envelope/verify.js.map +1 -0
- package/dist/extensions/index.d.ts +7 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +7 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/limits.d.ts +101 -0
- package/dist/extensions/limits.d.ts.map +1 -0
- package/dist/extensions/limits.js +175 -0
- package/dist/extensions/limits.js.map +1 -0
- package/dist/handshake/abort.d.ts +49 -0
- package/dist/handshake/abort.d.ts.map +1 -0
- package/dist/handshake/abort.js +82 -0
- package/dist/handshake/abort.js.map +1 -0
- package/dist/handshake/capabilities.d.ts +46 -0
- package/dist/handshake/capabilities.d.ts.map +1 -0
- package/dist/handshake/capabilities.js +114 -0
- package/dist/handshake/capabilities.js.map +1 -0
- package/dist/handshake/client_state.d.ts +186 -0
- package/dist/handshake/client_state.d.ts.map +1 -0
- package/dist/handshake/client_state.js +520 -0
- package/dist/handshake/client_state.js.map +1 -0
- package/dist/handshake/confirm.d.ts +21 -0
- package/dist/handshake/confirm.d.ts.map +1 -0
- package/dist/handshake/confirm.js +27 -0
- package/dist/handshake/confirm.js.map +1 -0
- package/dist/handshake/driver.d.ts +126 -0
- package/dist/handshake/driver.d.ts.map +1 -0
- package/dist/handshake/driver.js +251 -0
- package/dist/handshake/driver.js.map +1 -0
- package/dist/handshake/federation.d.ts +365 -0
- package/dist/handshake/federation.d.ts.map +1 -0
- package/dist/handshake/federation.js +664 -0
- package/dist/handshake/federation.js.map +1 -0
- package/dist/handshake/first_contact.d.ts +57 -0
- package/dist/handshake/first_contact.d.ts.map +1 -0
- package/dist/handshake/first_contact.js +124 -0
- package/dist/handshake/first_contact.js.map +1 -0
- package/dist/handshake/identity.d.ts +101 -0
- package/dist/handshake/identity.d.ts.map +1 -0
- package/dist/handshake/identity.js +117 -0
- package/dist/handshake/identity.js.map +1 -0
- package/dist/handshake/index.d.ts +21 -0
- package/dist/handshake/index.d.ts.map +1 -0
- package/dist/handshake/index.js +21 -0
- package/dist/handshake/index.js.map +1 -0
- package/dist/handshake/messages.d.ts +176 -0
- package/dist/handshake/messages.d.ts.map +1 -0
- package/dist/handshake/messages.js +125 -0
- package/dist/handshake/messages.js.map +1 -0
- package/dist/handshake/pow.d.ts +53 -0
- package/dist/handshake/pow.d.ts.map +1 -0
- package/dist/handshake/pow.js +142 -0
- package/dist/handshake/pow.js.map +1 -0
- package/dist/handshake/resume_driver.d.ts +56 -0
- package/dist/handshake/resume_driver.d.ts.map +1 -0
- package/dist/handshake/resume_driver.js +75 -0
- package/dist/handshake/resume_driver.js.map +1 -0
- package/dist/handshake/server.d.ts +112 -0
- package/dist/handshake/server.d.ts.map +1 -0
- package/dist/handshake/server.js +247 -0
- package/dist/handshake/server.js.map +1 -0
- package/dist/handshake/server_state.d.ts +102 -0
- package/dist/handshake/server_state.d.ts.map +1 -0
- package/dist/handshake/server_state.js +278 -0
- package/dist/handshake/server_state.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/keys/compromise.d.ts +118 -0
- package/dist/keys/compromise.d.ts.map +1 -0
- package/dist/keys/compromise.js +218 -0
- package/dist/keys/compromise.js.map +1 -0
- package/dist/keys/device_certificate.d.ts +166 -0
- package/dist/keys/device_certificate.d.ts.map +1 -0
- package/dist/keys/device_certificate.js +328 -0
- package/dist/keys/device_certificate.js.map +1 -0
- package/dist/keys/device_records.d.ts +175 -0
- package/dist/keys/device_records.d.ts.map +1 -0
- package/dist/keys/device_records.js +418 -0
- package/dist/keys/device_records.js.map +1 -0
- package/dist/keys/directory_cache.d.ts +64 -0
- package/dist/keys/directory_cache.d.ts.map +1 -0
- package/dist/keys/directory_cache.js +98 -0
- package/dist/keys/directory_cache.js.map +1 -0
- package/dist/keys/directory_state.d.ts +79 -0
- package/dist/keys/directory_state.d.ts.map +1 -0
- package/dist/keys/directory_state.js +155 -0
- package/dist/keys/directory_state.js.map +1 -0
- package/dist/keys/index.d.ts +18 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +18 -0
- package/dist/keys/index.js.map +1 -0
- package/dist/keys/key_revocation.d.ts +61 -0
- package/dist/keys/key_revocation.d.ts.map +1 -0
- package/dist/keys/key_revocation.js +88 -0
- package/dist/keys/key_revocation.js.map +1 -0
- package/dist/keys/request.d.ts +124 -0
- package/dist/keys/request.d.ts.map +1 -0
- package/dist/keys/request.js +130 -0
- package/dist/keys/request.js.map +1 -0
- package/dist/keys/sign.d.ts +49 -0
- package/dist/keys/sign.d.ts.map +1 -0
- package/dist/keys/sign.js +80 -0
- package/dist/keys/sign.js.map +1 -0
- package/dist/keys/signed.d.ts +80 -0
- package/dist/keys/signed.d.ts.map +1 -0
- package/dist/keys/signed.js +138 -0
- package/dist/keys/signed.js.map +1 -0
- package/dist/keys/store.d.ts +138 -0
- package/dist/keys/store.d.ts.map +1 -0
- package/dist/keys/store.js +107 -0
- package/dist/keys/store.js.map +1 -0
- package/dist/largeattachment/crypto.d.ts +47 -0
- package/dist/largeattachment/crypto.d.ts.map +1 -0
- package/dist/largeattachment/crypto.js +235 -0
- package/dist/largeattachment/crypto.js.map +1 -0
- package/dist/largeattachment/enclosure.d.ts +48 -0
- package/dist/largeattachment/enclosure.d.ts.map +1 -0
- package/dist/largeattachment/enclosure.js +102 -0
- package/dist/largeattachment/enclosure.js.map +1 -0
- package/dist/largeattachment/index.d.ts +15 -0
- package/dist/largeattachment/index.d.ts.map +1 -0
- package/dist/largeattachment/index.js +15 -0
- package/dist/largeattachment/index.js.map +1 -0
- package/dist/largeattachment/store.d.ts +36 -0
- package/dist/largeattachment/store.d.ts.map +1 -0
- package/dist/largeattachment/store.js +37 -0
- package/dist/largeattachment/store.js.map +1 -0
- package/dist/largeattachment/types.d.ts +56 -0
- package/dist/largeattachment/types.d.ts.map +1 -0
- package/dist/largeattachment/types.js +31 -0
- package/dist/largeattachment/types.js.map +1 -0
- package/dist/largeattachment/upload.d.ts +62 -0
- package/dist/largeattachment/upload.d.ts.map +1 -0
- package/dist/largeattachment/upload.js +166 -0
- package/dist/largeattachment/upload.js.map +1 -0
- package/dist/migration/index.d.ts +17 -0
- package/dist/migration/index.d.ts.map +1 -0
- package/dist/migration/index.js +17 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/lockout.d.ts +48 -0
- package/dist/migration/lockout.d.ts.map +1 -0
- package/dist/migration/lockout.js +57 -0
- package/dist/migration/lockout.js.map +1 -0
- package/dist/migration/migration.d.ts +48 -0
- package/dist/migration/migration.d.ts.map +1 -0
- package/dist/migration/migration.js +58 -0
- package/dist/migration/migration.js.map +1 -0
- package/dist/migration/notice.d.ts +33 -0
- package/dist/migration/notice.d.ts.map +1 -0
- package/dist/migration/notice.js +85 -0
- package/dist/migration/notice.js.map +1 -0
- package/dist/migration/orchestrate.d.ts +109 -0
- package/dist/migration/orchestrate.d.ts.map +1 -0
- package/dist/migration/orchestrate.js +212 -0
- package/dist/migration/orchestrate.js.map +1 -0
- package/dist/migration/publication_store.d.ts +34 -0
- package/dist/migration/publication_store.d.ts.map +1 -0
- package/dist/migration/publication_store.js +44 -0
- package/dist/migration/publication_store.js.map +1 -0
- package/dist/migration/sign.d.ts +65 -0
- package/dist/migration/sign.d.ts.map +1 -0
- package/dist/migration/sign.js +331 -0
- package/dist/migration/sign.js.map +1 -0
- package/dist/migration/types.d.ts +92 -0
- package/dist/migration/types.d.ts.map +1 -0
- package/dist/migration/types.js +26 -0
- package/dist/migration/types.js.map +1 -0
- package/dist/reasoncodes.d.ts +42 -0
- package/dist/reasoncodes.d.ts.map +1 -0
- package/dist/reasoncodes.js +80 -0
- package/dist/reasoncodes.js.map +1 -0
- package/dist/recovery/bundle.d.ts +34 -0
- package/dist/recovery/bundle.d.ts.map +1 -0
- package/dist/recovery/bundle.js +144 -0
- package/dist/recovery/bundle.js.map +1 -0
- package/dist/recovery/bundle_crypto.d.ts +60 -0
- package/dist/recovery/bundle_crypto.d.ts.map +1 -0
- package/dist/recovery/bundle_crypto.js +179 -0
- package/dist/recovery/bundle_crypto.js.map +1 -0
- package/dist/recovery/bundle_store.d.ts +57 -0
- package/dist/recovery/bundle_store.d.ts.map +1 -0
- package/dist/recovery/bundle_store.js +104 -0
- package/dist/recovery/bundle_store.js.map +1 -0
- package/dist/recovery/index.d.ts +19 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +19 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/manifest_crosscheck.d.ts +59 -0
- package/dist/recovery/manifest_crosscheck.d.ts.map +1 -0
- package/dist/recovery/manifest_crosscheck.js +59 -0
- package/dist/recovery/manifest_crosscheck.js.map +1 -0
- package/dist/recovery/shamir.d.ts +51 -0
- package/dist/recovery/shamir.d.ts.map +1 -0
- package/dist/recovery/shamir.js +181 -0
- package/dist/recovery/shamir.js.map +1 -0
- package/dist/recovery/sign.d.ts +61 -0
- package/dist/recovery/sign.d.ts.map +1 -0
- package/dist/recovery/sign.js +359 -0
- package/dist/recovery/sign.js.map +1 -0
- package/dist/recovery/types.d.ts +180 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/recovery/types.js +31 -0
- package/dist/recovery/types.js.map +1 -0
- package/dist/reputation/abuse_report.d.ts +62 -0
- package/dist/reputation/abuse_report.d.ts.map +1 -0
- package/dist/reputation/abuse_report.js +111 -0
- package/dist/reputation/abuse_report.js.map +1 -0
- package/dist/reputation/bucketize.d.ts +31 -0
- package/dist/reputation/bucketize.d.ts.map +1 -0
- package/dist/reputation/bucketize.js +77 -0
- package/dist/reputation/bucketize.js.map +1 -0
- package/dist/reputation/gossip.d.ts +24 -0
- package/dist/reputation/gossip.d.ts.map +1 -0
- package/dist/reputation/gossip.js +64 -0
- package/dist/reputation/gossip.js.map +1 -0
- package/dist/reputation/gossip_fetch.d.ts +64 -0
- package/dist/reputation/gossip_fetch.d.ts.map +1 -0
- package/dist/reputation/gossip_fetch.js +114 -0
- package/dist/reputation/gossip_fetch.js.map +1 -0
- package/dist/reputation/index.d.ts +20 -0
- package/dist/reputation/index.d.ts.map +1 -0
- package/dist/reputation/index.js +20 -0
- package/dist/reputation/index.js.map +1 -0
- package/dist/reputation/observation_store.d.ts +67 -0
- package/dist/reputation/observation_store.d.ts.map +1 -0
- package/dist/reputation/observation_store.js +171 -0
- package/dist/reputation/observation_store.js.map +1 -0
- package/dist/reputation/pow.d.ts +91 -0
- package/dist/reputation/pow.d.ts.map +1 -0
- package/dist/reputation/pow.js +209 -0
- package/dist/reputation/pow.js.map +1 -0
- package/dist/reputation/sign.d.ts +40 -0
- package/dist/reputation/sign.d.ts.map +1 -0
- package/dist/reputation/sign.js +202 -0
- package/dist/reputation/sign.js.map +1 -0
- package/dist/reputation/types.d.ts +133 -0
- package/dist/reputation/types.d.ts.map +1 -0
- package/dist/reputation/types.js +33 -0
- package/dist/reputation/types.js.map +1 -0
- package/dist/reputation/whois.d.ts +25 -0
- package/dist/reputation/whois.d.ts.map +1 -0
- package/dist/reputation/whois.js +20 -0
- package/dist/reputation/whois.js.map +1 -0
- package/dist/seal/index.d.ts +8 -0
- package/dist/seal/index.d.ts.map +1 -0
- package/dist/seal/index.js +8 -0
- package/dist/seal/index.js.map +1 -0
- package/dist/seal/wrap.d.ts +74 -0
- package/dist/seal/wrap.d.ts.map +1 -0
- package/dist/seal/wrap.js +213 -0
- package/dist/seal/wrap.js.map +1 -0
- package/dist/session/dispatcher.d.ts +65 -0
- package/dist/session/dispatcher.d.ts.map +1 -0
- package/dist/session/dispatcher.js +96 -0
- package/dist/session/dispatcher.js.map +1 -0
- package/dist/session/index.d.ts +15 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +15 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/rekey.d.ts +108 -0
- package/dist/session/rekey.d.ts.map +1 -0
- package/dist/session/rekey.js +207 -0
- package/dist/session/rekey.js.map +1 -0
- package/dist/session/rekey_seal.d.ts +66 -0
- package/dist/session/rekey_seal.d.ts.map +1 -0
- package/dist/session/rekey_seal.js +153 -0
- package/dist/session/rekey_seal.js.map +1 -0
- package/dist/session/resume.d.ts +125 -0
- package/dist/session/resume.d.ts.map +1 -0
- package/dist/session/resume.js +263 -0
- package/dist/session/resume.js.map +1 -0
- package/dist/session/session.d.ts +136 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +188 -0
- package/dist/session/session.js.map +1 -0
- package/dist/transparency/index.d.ts +13 -0
- package/dist/transparency/index.d.ts.map +1 -0
- package/dist/transparency/index.js +13 -0
- package/dist/transparency/index.js.map +1 -0
- package/dist/transparency/log.d.ts +61 -0
- package/dist/transparency/log.d.ts.map +1 -0
- package/dist/transparency/log.js +133 -0
- package/dist/transparency/log.js.map +1 -0
- package/dist/transparency/merkle.d.ts +59 -0
- package/dist/transparency/merkle.d.ts.map +1 -0
- package/dist/transparency/merkle.js +314 -0
- package/dist/transparency/merkle.js.map +1 -0
- package/dist/transparency/sign.d.ts +48 -0
- package/dist/transparency/sign.d.ts.map +1 -0
- package/dist/transparency/sign.js +140 -0
- package/dist/transparency/sign.js.map +1 -0
- package/dist/transparency/types.d.ts +97 -0
- package/dist/transparency/types.d.ts.map +1 -0
- package/dist/transparency/types.js +25 -0
- package/dist/transparency/types.js.map +1 -0
- package/dist/transport/h2.d.ts +163 -0
- package/dist/transport/h2.d.ts.map +1 -0
- package/dist/transport/h2.js +397 -0
- package/dist/transport/h2.js.map +1 -0
- package/dist/transport/index.d.ts +15 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +15 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/memory.d.ts +21 -0
- package/dist/transport/memory.d.ts.map +1 -0
- package/dist/transport/memory.js +112 -0
- package/dist/transport/memory.js.map +1 -0
- package/dist/transport/transport.d.ts +54 -0
- package/dist/transport/transport.d.ts.map +1 -0
- package/dist/transport/transport.js +20 -0
- package/dist/transport/transport.js.map +1 -0
- package/dist/transport/ws.d.ts +40 -0
- package/dist/transport/ws.d.ts.map +1 -0
- package/dist/transport/ws.js +204 -0
- package/dist/transport/ws.js.map +1 -0
- package/package.json +147 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receive-side delivery pipeline per DELIVERY.md §2.
|
|
3
|
+
*
|
|
4
|
+
* Runs the fixed nine-step sequence every envelope passes through
|
|
5
|
+
* before a delivery decision is made:
|
|
6
|
+
*
|
|
7
|
+
* 1. Verify `seal.signature` → `seal_invalid`
|
|
8
|
+
* 2. Check `postmark.expires` → `envelope_expired`
|
|
9
|
+
* 3. Check `postmark.session_id` → `no_session` / `handshake_invalid`
|
|
10
|
+
* 4. Verify `seal.session_mac` → `session_mac_invalid`
|
|
11
|
+
* 5. Check domain / server policy → `rejected` or `silent`
|
|
12
|
+
* 6. Decrypt `K_brief` from `seal.brief_recipients`
|
|
13
|
+
* 7. Decrypt `envelope.brief`
|
|
14
|
+
* 8. Check user policy (block list) → `rejected` or `silent`
|
|
15
|
+
* 9. Deliver to client → `delivered`
|
|
16
|
+
*
|
|
17
|
+
* Each step is a private method so operators can wrap or override
|
|
18
|
+
* individual stages without rewriting orchestration. The exported
|
|
19
|
+
* {@link Pipeline.process} runs all steps in order and short-circuits
|
|
20
|
+
* on the first failure.
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import { aeadOpen } from "../crypto/index.js";
|
|
25
|
+
import { encodeEnvelope, verifySealSignature, verifySessionMAC, } from "../envelope/index.js";
|
|
26
|
+
import { unwrap as sealUnwrap } from "../seal/index.js";
|
|
27
|
+
import { matchBlockList } from "./blocklist.js";
|
|
28
|
+
/**
|
|
29
|
+
* Receive-side delivery pipeline. Single-process, callable across
|
|
30
|
+
* many envelopes. Concurrency is the caller's responsibility — each
|
|
31
|
+
* `process()` call is independent and stateless beyond the
|
|
32
|
+
* configured hooks.
|
|
33
|
+
*/
|
|
34
|
+
export class Pipeline {
|
|
35
|
+
cfg;
|
|
36
|
+
constructor(cfg) {
|
|
37
|
+
if (cfg.isLocal === undefined) {
|
|
38
|
+
throw new Error("delivery: pipeline missing isLocal classifier");
|
|
39
|
+
}
|
|
40
|
+
if (cfg.briefRecipients.length === 0) {
|
|
41
|
+
throw new Error("delivery: pipeline missing briefRecipients");
|
|
42
|
+
}
|
|
43
|
+
this.cfg = cfg;
|
|
44
|
+
}
|
|
45
|
+
/** Run the full pipeline against `env`. */
|
|
46
|
+
async process(env) {
|
|
47
|
+
const result = {
|
|
48
|
+
envelopeId: env.postmark.id,
|
|
49
|
+
results: [],
|
|
50
|
+
};
|
|
51
|
+
// Step 1.
|
|
52
|
+
if (this.cfg.skipSignatureCheck !== true) {
|
|
53
|
+
const rej1 = await this.verifySignature(env);
|
|
54
|
+
if (rej1 !== null) {
|
|
55
|
+
result.rejection = rej1;
|
|
56
|
+
this.log(`step1 reject: ${rej1.reasonCode}`);
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Step 2.
|
|
61
|
+
if (this.cfg.skipExpiryCheck !== true) {
|
|
62
|
+
const rej2 = this.checkExpiry(env);
|
|
63
|
+
if (rej2 !== null) {
|
|
64
|
+
result.rejection = rej2;
|
|
65
|
+
this.log(`step2 reject: ${rej2.reasonCode}`);
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Step 3.
|
|
70
|
+
if (this.cfg.skipSessionIDCheck !== true) {
|
|
71
|
+
const rej3 = await this.checkSessionId(env);
|
|
72
|
+
if (rej3 !== null) {
|
|
73
|
+
result.rejection = rej3;
|
|
74
|
+
this.log(`step3 reject: ${rej3.reasonCode}`);
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Step 4.
|
|
79
|
+
if (this.cfg.skipSessionMACCheck !== true) {
|
|
80
|
+
const rej4 = this.checkSessionMac(env);
|
|
81
|
+
if (rej4 !== null) {
|
|
82
|
+
result.rejection = rej4;
|
|
83
|
+
this.log(`step4 reject: ${rej4.reasonCode}`);
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Step 5.
|
|
88
|
+
const rej5 = this.checkDomainPolicy(env);
|
|
89
|
+
if (rej5 !== null) {
|
|
90
|
+
result.rejection = rej5;
|
|
91
|
+
this.log(`step5 reject: ${rej5.reasonCode}`);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
// Steps 6 + 7: home-server brief-only open. We don't need
|
|
95
|
+
// K_enclosure here — only the recipient client does. Walk the
|
|
96
|
+
// configured candidates and try each against
|
|
97
|
+
// env.seal.brief_recipients.
|
|
98
|
+
let brief;
|
|
99
|
+
try {
|
|
100
|
+
brief = openBriefOnly(env, this.cfg.briefRecipients);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
104
|
+
result.rejection = { reasonCode: "seal_invalid", reason };
|
|
105
|
+
this.log(`step6/7 reject: ${reason}`);
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
if (!Array.isArray(brief.to)) {
|
|
109
|
+
result.rejection = {
|
|
110
|
+
reasonCode: "brief_invalid",
|
|
111
|
+
reason: "brief.to is missing or not an array",
|
|
112
|
+
};
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
result.brief = brief;
|
|
116
|
+
// Steps 8 + 9.
|
|
117
|
+
const wire = encodeEnvelope(env);
|
|
118
|
+
const recipients = [...brief.to, ...(brief.cc ?? [])];
|
|
119
|
+
for (const recipient of recipients) {
|
|
120
|
+
result.results.push(await this.deliverOne(env, brief, recipient, wire));
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
// --- Step implementations -----------------------------------------------
|
|
125
|
+
async verifySignature(env) {
|
|
126
|
+
if (this.cfg.domainKeys === undefined) {
|
|
127
|
+
return {
|
|
128
|
+
reasonCode: "seal_invalid",
|
|
129
|
+
reason: "pipeline missing domainKeys lookup; cannot verify seal.signature",
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const pub = await this.cfg.domainKeys(env.postmark.from_domain);
|
|
133
|
+
if (pub === null || pub.length === 0) {
|
|
134
|
+
return {
|
|
135
|
+
reasonCode: "seal_invalid",
|
|
136
|
+
reason: `no domain key on file for ${env.postmark.from_domain}`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
let ok = false;
|
|
140
|
+
try {
|
|
141
|
+
ok = verifySealSignature(env, pub);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
return {
|
|
145
|
+
reasonCode: "seal_invalid",
|
|
146
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (!ok) {
|
|
150
|
+
return {
|
|
151
|
+
reasonCode: "seal_invalid",
|
|
152
|
+
reason: "seal.signature did not verify",
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
checkExpiry(env) {
|
|
158
|
+
if (env.postmark.expires === undefined || env.postmark.expires === "") {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const expiryMs = Date.parse(env.postmark.expires);
|
|
162
|
+
if (Number.isNaN(expiryMs)) {
|
|
163
|
+
return {
|
|
164
|
+
reasonCode: "envelope_expired",
|
|
165
|
+
reason: `postmark.expires ${env.postmark.expires} is not ISO 8601`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const nowMs = (this.cfg.now ?? (() => new Date()))().getTime();
|
|
169
|
+
const tolerance = this.cfg.clockSkewMs ?? 15 * 60 * 1_000;
|
|
170
|
+
if (nowMs - expiryMs > tolerance) {
|
|
171
|
+
return {
|
|
172
|
+
reasonCode: "envelope_expired",
|
|
173
|
+
reason: `postmark.expires ${env.postmark.expires} is outside the clock-skew tolerance`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
async checkSessionId(env) {
|
|
179
|
+
if (env.postmark.session_id.trim() === "") {
|
|
180
|
+
return {
|
|
181
|
+
reasonCode: "no_session",
|
|
182
|
+
reason: "postmark.session_id is empty",
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
if (this.cfg.sessionRetired === undefined) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
let retired = false;
|
|
189
|
+
try {
|
|
190
|
+
retired = await this.cfg.sessionRetired(env.postmark.session_id);
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
// Lookup failures fail open; log and continue.
|
|
194
|
+
this.log(`session retired lookup error for ${env.postmark.session_id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
if (retired) {
|
|
198
|
+
return {
|
|
199
|
+
reasonCode: "handshake_invalid",
|
|
200
|
+
reason: `session_id ${env.postmark.session_id} is retired`,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
checkSessionMac(env) {
|
|
206
|
+
if (this.cfg.envMAC === undefined) {
|
|
207
|
+
return {
|
|
208
|
+
reasonCode: "session_mac_invalid",
|
|
209
|
+
reason: "pipeline missing envMAC source; cannot verify seal.session_mac",
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
const mac = this.cfg.envMAC();
|
|
213
|
+
if (mac.length === 0) {
|
|
214
|
+
return {
|
|
215
|
+
reasonCode: "session_mac_invalid",
|
|
216
|
+
reason: "empty K_env_mac; cannot verify seal.session_mac",
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
let ok = false;
|
|
220
|
+
try {
|
|
221
|
+
ok = verifySessionMAC(env, mac);
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
return {
|
|
225
|
+
reasonCode: "session_mac_invalid",
|
|
226
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
if (!ok) {
|
|
230
|
+
return {
|
|
231
|
+
reasonCode: "session_mac_invalid",
|
|
232
|
+
reason: "seal.session_mac did not verify",
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
checkDomainPolicy(env) {
|
|
238
|
+
if (this.cfg.domainPolicy === undefined) {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
const verdict = this.cfg.domainPolicy(env.postmark.from_domain, "");
|
|
242
|
+
if (verdict.ack === "delivered") {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
reasonCode: verdict.reasonCode,
|
|
247
|
+
reason: verdict.reason ?? "domain policy rejected envelope",
|
|
248
|
+
silent: verdict.ack === "silent",
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
async deliverOne(env, brief, recipient, wire) {
|
|
252
|
+
if (!this.cfg.isLocal(recipient)) {
|
|
253
|
+
return {
|
|
254
|
+
recipient,
|
|
255
|
+
status: "rejected",
|
|
256
|
+
reason_code: "recipient_not_found",
|
|
257
|
+
reason: "recipient is not local; caller forwards via federation",
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
// Step 8a: optional pre-block-list per-recipient gate.
|
|
261
|
+
if (this.cfg.recipientPolicy !== undefined) {
|
|
262
|
+
const gate = this.cfg.recipientPolicy(recipient);
|
|
263
|
+
if (gate.ack !== "delivered") {
|
|
264
|
+
return {
|
|
265
|
+
recipient,
|
|
266
|
+
status: gate.ack,
|
|
267
|
+
reason_code: gate.reasonCode,
|
|
268
|
+
...(gate.reason !== undefined ? { reason: gate.reason } : {}),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Step 8b: user block list.
|
|
273
|
+
if (this.cfg.blockList !== undefined) {
|
|
274
|
+
const sender = brief.from !== undefined
|
|
275
|
+
? { address: brief.from, domain: brief.from.split("@")[1] ?? "" }
|
|
276
|
+
: { address: "", domain: env.postmark.from_domain };
|
|
277
|
+
const list = await this.cfg.blockList.lookup(recipient);
|
|
278
|
+
const matched = matchBlockList(list, sender);
|
|
279
|
+
if (matched !== null) {
|
|
280
|
+
return {
|
|
281
|
+
recipient,
|
|
282
|
+
status: matched.acknowledgment,
|
|
283
|
+
reason_code: "blocked_recipient",
|
|
284
|
+
...(matched.reason !== undefined ? { reason: matched.reason } : {}),
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Step 9: inbox.
|
|
289
|
+
if (this.cfg.inbox !== undefined) {
|
|
290
|
+
this.cfg.inbox.store(recipient, wire);
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
recipient,
|
|
294
|
+
status: "delivered",
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
log(line) {
|
|
298
|
+
if (this.cfg.logger !== undefined) {
|
|
299
|
+
this.cfg.logger(`pipeline ${line}`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Home-server brief-only open: walk `candidates`, find the first
|
|
305
|
+
* whose `keyId` is in `env.seal.brief_recipients`, unwrap K_brief
|
|
306
|
+
* with that candidate's X25519 keypair, AEAD-open the brief blob,
|
|
307
|
+
* and return the decoded JSON. Throws if no candidate matches or
|
|
308
|
+
* decryption fails.
|
|
309
|
+
*
|
|
310
|
+
* Distinct from {@link "../envelope".openForRecipient}, which
|
|
311
|
+
* additionally requires the candidate to be an enclosure recipient.
|
|
312
|
+
* The home server only ever receives K_brief, never K_enclosure.
|
|
313
|
+
*/
|
|
314
|
+
function openBriefOnly(env, candidates) {
|
|
315
|
+
if (candidates.length === 0) {
|
|
316
|
+
throw new Error("envelope: openBriefOnly: empty candidate list");
|
|
317
|
+
}
|
|
318
|
+
const errors = [];
|
|
319
|
+
for (const c of candidates) {
|
|
320
|
+
const wrapped = env.seal.brief_recipients[c.keyId];
|
|
321
|
+
if (typeof wrapped !== "string") {
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
const kBrief = sealUnwrap("x25519-chacha20-poly1305", c.privateKey, c.publicKey, wrapped);
|
|
326
|
+
const briefBlob = base64Decode(env.brief);
|
|
327
|
+
if (briefBlob.length < 12) {
|
|
328
|
+
throw new Error("brief blob too short");
|
|
329
|
+
}
|
|
330
|
+
const briefNonce = briefBlob.slice(0, 12);
|
|
331
|
+
const briefCT = briefBlob.slice(12);
|
|
332
|
+
const aad = new TextEncoder().encode(env.postmark.id);
|
|
333
|
+
const briefPT = aeadOpen("chacha20-poly1305", kBrief, briefNonce, briefCT, aad);
|
|
334
|
+
return JSON.parse(new TextDecoder().decode(briefPT));
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
errors.push(`${c.keyId}: ${err instanceof Error ? err.message : String(err)}`);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (errors.length === 0) {
|
|
341
|
+
throw new Error("envelope: openBriefOnly: no candidate matches a brief recipient slot");
|
|
342
|
+
}
|
|
343
|
+
throw new Error(`envelope: openBriefOnly: every candidate failed: ${errors.join("; ")}`);
|
|
344
|
+
}
|
|
345
|
+
function base64Decode(s) {
|
|
346
|
+
if (typeof Buffer !== "undefined") {
|
|
347
|
+
return new Uint8Array(Buffer.from(s, "base64"));
|
|
348
|
+
}
|
|
349
|
+
const bin = atob(s);
|
|
350
|
+
const out = new Uint8Array(bin.length);
|
|
351
|
+
for (let i = 0; i < bin.length; i++) {
|
|
352
|
+
out[i] = bin.charCodeAt(i);
|
|
353
|
+
}
|
|
354
|
+
return out;
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/delivery/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-user authoritative policy view per DELIVERY.md §7.2.
|
|
3
|
+
*
|
|
4
|
+
* `applyPolicyMessage` takes a verified {@link UserPolicyMessage} and
|
|
5
|
+
* either applies every operation atomically (advancing
|
|
6
|
+
* `policy_version`) or rejects the whole message without mutating
|
|
7
|
+
* state. Atomicity is the §7.2 guarantee: a single unrecognized kind
|
|
8
|
+
* rejects the whole message; unrelated operations in the same
|
|
9
|
+
* message MUST NOT be applied.
|
|
10
|
+
*
|
|
11
|
+
* Apply does NOT verify the signature on the message — callers MUST
|
|
12
|
+
* run {@link verifyUserPolicyMessage} before invoking
|
|
13
|
+
* {@link PolicyState.apply}.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import { type UserPolicyMessage } from "./user_policy.js";
|
|
18
|
+
/** §7.3 default rule kinds for v1.0.0. */
|
|
19
|
+
export declare function defaultPolicyKinds(): string[];
|
|
20
|
+
/** Reason codes for policy apply failures (mirror ERRORS.md §5). */
|
|
21
|
+
export type PolicyApplyReasonCode = "policy_kind_unsupported" | "policy_op_invalid" | "policy_version_stale";
|
|
22
|
+
/** Typed error wrapping a structured policy rejection. */
|
|
23
|
+
export declare class PolicyApplyError extends Error {
|
|
24
|
+
readonly code: PolicyApplyReasonCode;
|
|
25
|
+
readonly details: {
|
|
26
|
+
kind?: string;
|
|
27
|
+
opIndex?: number;
|
|
28
|
+
submittedVersion?: number;
|
|
29
|
+
currentVersion?: number;
|
|
30
|
+
detail?: string;
|
|
31
|
+
};
|
|
32
|
+
readonly name = "PolicyApplyError";
|
|
33
|
+
constructor(code: PolicyApplyReasonCode, details?: {
|
|
34
|
+
kind?: string;
|
|
35
|
+
opIndex?: number;
|
|
36
|
+
submittedVersion?: number;
|
|
37
|
+
currentVersion?: number;
|
|
38
|
+
detail?: string;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Snapshot of a {@link PolicyState} at one point in time. Used for
|
|
43
|
+
* propagation to other devices on next connection per §7.2 and for
|
|
44
|
+
* persistence checkpointing.
|
|
45
|
+
*/
|
|
46
|
+
export interface PolicySnapshot {
|
|
47
|
+
user_id: string;
|
|
48
|
+
policy_version: number;
|
|
49
|
+
/** ISO 8601 UTC timestamp of the most recent applied message. */
|
|
50
|
+
last_timestamp: string;
|
|
51
|
+
/** Per-kind list-shaped entries, keyed by kind, then by entry_id. */
|
|
52
|
+
list_entries: Record<string, Record<string, unknown>>;
|
|
53
|
+
/** Per-kind singleton entries (e.g. semp.dev/first_contact). */
|
|
54
|
+
singletons: Record<string, unknown>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Per-user policy state. Concurrency-safe within a single JS event
|
|
58
|
+
* loop (no async mutation between read-modify-write).
|
|
59
|
+
*
|
|
60
|
+
* Does NOT enforce DELIVERY.md §7.5 encrypted-at-rest storage —
|
|
61
|
+
* that is the persistence layer's responsibility.
|
|
62
|
+
*/
|
|
63
|
+
export declare class PolicyState {
|
|
64
|
+
private readonly userIdValue;
|
|
65
|
+
private readonly supportedKinds;
|
|
66
|
+
private policyVersionValue;
|
|
67
|
+
private lastTimestampValue;
|
|
68
|
+
private readonly listEntriesMap;
|
|
69
|
+
private readonly singletonsMap;
|
|
70
|
+
/**
|
|
71
|
+
* @param userId - the account this state belongs to
|
|
72
|
+
* @param kinds - rule kinds to register; defaults to {@link defaultPolicyKinds}
|
|
73
|
+
*/
|
|
74
|
+
constructor(userId: string, kinds?: string[]);
|
|
75
|
+
/** Account this state belongs to. */
|
|
76
|
+
userId(): string;
|
|
77
|
+
/** Current policy_version per §7.2. Zero before any message has been applied. */
|
|
78
|
+
currentVersion(): number;
|
|
79
|
+
/** Timestamp of the most recently applied message; `""` before any apply. */
|
|
80
|
+
lastTimestamp(): string;
|
|
81
|
+
/** Whether `kind` is registered for this state. */
|
|
82
|
+
supportsKind(kind: string): boolean;
|
|
83
|
+
/** Registered kinds, lexically sorted. */
|
|
84
|
+
registeredKinds(): string[];
|
|
85
|
+
/**
|
|
86
|
+
* Apply `m` atomically per §7.2. On success advances
|
|
87
|
+
* `policy_version` and applies every operation. On any per-message
|
|
88
|
+
* failure throws a {@link PolicyApplyError} with structured
|
|
89
|
+
* details and leaves state unchanged.
|
|
90
|
+
*
|
|
91
|
+
* Caller MUST have run {@link verifyUserPolicyMessage} first.
|
|
92
|
+
*/
|
|
93
|
+
apply(m: UserPolicyMessage): void;
|
|
94
|
+
private applyOp;
|
|
95
|
+
/** Deep copy of the entries currently held for `kind`, keyed by entry id. */
|
|
96
|
+
listEntries(kind: string): Record<string, unknown>;
|
|
97
|
+
/**
|
|
98
|
+
* Copy of the current singleton entry for `kind`, or `undefined`
|
|
99
|
+
* if none has been set.
|
|
100
|
+
*/
|
|
101
|
+
singleton(kind: string): unknown;
|
|
102
|
+
/** Deep copy of all state for propagation / persistence. */
|
|
103
|
+
snapshot(): PolicySnapshot;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=policy_state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy_state.d.ts","sourceRoot":"","sources":["../../src/delivery/policy_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAC;AAE1B,0CAA0C;AAC1C,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,oEAAoE;AACpE,MAAM,MAAM,qBAAqB,GAC7B,yBAAyB,GACzB,mBAAmB,GACnB,sBAAsB,CAAC;AAE3B,0DAA0D;AAC1D,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,IAAI,EAAE,qBAAqB;aAC3B,OAAO,EAAE;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IATH,SAAkB,IAAI,sBAAsB;gBAE1B,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;CAIT;AAkBD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAE7C,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,kBAAkB,CAAM;IAEhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D;;;OAGG;gBACS,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE;IAe5C,qCAAqC;IACrC,MAAM,IAAI,MAAM;IAIhB,iFAAiF;IACjF,cAAc,IAAI,MAAM;IAIxB,6EAA6E;IAC7E,aAAa,IAAI,MAAM;IAIvB,mDAAmD;IACnD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,0CAA0C;IAC1C,eAAe,IAAI,MAAM,EAAE;IAI3B;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI;IA8DjC,OAAO,CAAC,OAAO;IA8Bf,6EAA6E;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYlD;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOhC,4DAA4D;IAC5D,QAAQ,IAAI,cAAc;CAqB3B"}
|