keri-ts 1.0.0 → 2.0.0
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/README.md +23 -0
- package/esm/keri/npm/src/acdc/chaining.js +213 -0
- package/esm/keri/npm/src/acdc/dhking.js +716 -0
- package/esm/keri/npm/src/acdc/messaging.js +2 -0
- package/esm/keri/npm/src/acdc/observing.js +40 -7
- package/esm/keri/npm/src/acdc/regbasing.js +13 -2
- package/esm/keri/npm/src/acdc/regengine.js +71 -23
- package/esm/keri/npm/src/acdc/regeventing.js +163 -44
- package/esm/keri/npm/src/acdc/registering.js +93 -14
- package/esm/keri/npm/src/acdc/relating.js +59 -0
- package/esm/keri/npm/src/acdc/salting.js +720 -0
- package/esm/keri/npm/src/acdc/scheming.js +94 -39
- package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
- package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +39 -18
- package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
- package/esm/keri/npm/src/app/{oobi-replies.js → bootstrap/oobi-replies.js} +8 -6
- package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +161 -75
- package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
- package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
- package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
- package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
- package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
- package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +41 -6
- package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
- package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
- package/esm/keri/npm/src/app/{reply-streams.js → delivery/reply-streams.js} +52 -7
- package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
- package/esm/keri/npm/src/app/{stored-replies.js → delivery/stored-replies.js} +4 -4
- package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
- package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
- package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
- package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
- package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +99 -29
- package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +36 -36
- package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +232 -150
- package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
- package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
- package/esm/keri/npm/src/app/ipex/ipex-building.js +162 -0
- package/esm/keri/npm/src/app/{ipex-credentialing.js → ipex/ipex-credentialing.js} +142 -31
- package/esm/keri/npm/src/app/ipex/ipex-graph.js +243 -0
- package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
- package/esm/keri/npm/src/app/{ipex-node-authentication.js → ipex/ipex-node-authentication.js} +83 -6
- package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
- package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +58 -1
- package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
- package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +120 -15
- package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
- package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
- package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +118 -67
- package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
- package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
- package/esm/keri/npm/src/app/{grouping.js → multisig/grouping.js} +384 -70
- package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
- package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
- package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +8 -14
- package/esm/keri/npm/src/app/{signaling.js → notifications/signaling.js} +1 -1
- package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +86 -18
- package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
- package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
- package/esm/keri/npm/src/app/{query-replies.js → queries/query-replies.js} +57 -6
- package/esm/keri/npm/src/app/queries/querying.js +306 -0
- package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
- package/esm/keri/npm/src/app/{abortable.js → runtime/abortable.js} +43 -4
- package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
- package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
- package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
- package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +36 -6
- package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
- package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +20 -55
- package/esm/keri/npm/src/app/transport/http-client.js +172 -0
- package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
- package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
- package/esm/keri/npm/src/app/transport/httping.js +57 -0
- package/esm/keri/npm/src/app/transport/message-source.js +77 -0
- package/esm/keri/npm/src/app/transport/messengering.js +68 -0
- package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +39 -2
- package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
- package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
- package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
- package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
- package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
- package/esm/keri/npm/src/app/witness/ingress.js +148 -0
- package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
- package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
- package/esm/keri/npm/src/app/witness/receipting.js +323 -0
- package/esm/keri/npm/src/app/witness/registration.js +50 -0
- package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
- package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -6
- package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -11
- package/esm/keri/npm/src/cli/common/parsing.js +279 -0
- package/esm/keri/npm/src/cli/common/passcode.js +66 -0
- package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
- package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
- package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
- package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
- package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +63 -36
- package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +33 -28
- package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +16 -11
- package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
- package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +35 -32
- package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
- package/esm/keri/npm/src/{app/cli → cli/identity}/challenge.js +60 -49
- package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +61 -26
- package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
- package/esm/keri/npm/src/cli/identity/incept.js +181 -0
- package/esm/keri/npm/src/cli/identity/init.js +153 -0
- package/esm/keri/npm/src/cli/identity/interact.js +84 -0
- package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
- package/esm/keri/npm/src/{app/cli → cli/identity}/rotate.js +60 -57
- package/esm/keri/npm/src/cli/index.js +38 -0
- package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -22
- package/esm/keri/npm/src/{app/cli → cli/messaging}/multisig.js +165 -156
- package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
- package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
- package/esm/keri/npm/src/{app/cli → cli/tools}/annotate.js +10 -4
- package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +15 -4
- package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +11 -10
- package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
- package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
- package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
- package/esm/keri/npm/src/core/attachment-countering.js +31 -1
- package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
- package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +26 -4
- package/esm/keri/npm/src/core/genus-framing.js +44 -0
- package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +57 -25
- package/esm/keri/npm/src/core/{kever-decisions.js → kel/kever-decisions.js} +24 -12
- package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +4 -4
- package/esm/keri/npm/src/core/logger.js +3 -3
- package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
- package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +3 -3
- package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
- package/esm/keri/npm/src/core/{kram-staging.js → mailbox/kram-staging.js} +6 -6
- package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +4 -3
- package/esm/keri/npm/src/core/{kraming.js → mailbox/kraming.js} +2 -2
- package/esm/keri/npm/src/core/protocol-eventing.js +1 -1
- package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
- package/esm/keri/npm/src/core/routing.js +52 -17
- package/esm/keri/npm/src/db/baser-defaults.js +11 -0
- package/esm/keri/npm/src/db/basing.js +89 -232
- package/esm/keri/npm/src/db/core/lmdber.js +102 -63
- package/esm/keri/npm/src/db/escrowing.js +73 -49
- package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
- package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
- package/esm/keri/npm/src/db/index.js +5 -4
- package/esm/keri/npm/src/db/keeping.js +122 -3
- package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +1 -1
- package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +3 -3
- package/esm/keri/npm/src/db/reger.js +38 -29
- package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +11 -4
- package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +34 -0
- package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +2 -2
- package/esm/keri/npm/src/db/subing.js +2 -3
- package/esm/keri/npm/src/did/webs/artifacts.js +15 -18
- package/esm/keri/npm/src/did/webs/designated-aliases.js +5 -7
- package/esm/keri/npm/src/did/webs/resolving.js +73 -56
- package/esm/keri/npm/src/library/index.js +1 -1
- package/esm/keri/npm/src/npm/cli.js +1 -1
- package/esm/keri/npm/src/npm/index.js +1 -1
- package/esm/keri/npm/src/runtime/index.js +79 -47
- package/esm/keri/npm/src/vdr/backer-state.js +55 -0
- package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
- package/esm/keri/npm/src/vdr/credentialing.js +84 -82
- package/esm/keri/npm/src/vdr/eventing.js +592 -204
- package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
- package/esm/keri/npm/src/vdr/revoking.js +90 -0
- package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
- package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
- package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
- package/package.json +5 -3
- package/types/_dnt.polyfills.d.ts +6 -0
- package/types/_dnt.polyfills.d.ts.map +1 -1
- package/types/acdc/chaining.d.ts +35 -0
- package/types/acdc/chaining.d.ts.map +1 -0
- package/types/acdc/dhking.d.ts +136 -0
- package/types/acdc/dhking.d.ts.map +1 -0
- package/types/acdc/messaging.d.ts.map +1 -1
- package/types/acdc/observing.d.ts +18 -7
- package/types/acdc/observing.d.ts.map +1 -1
- package/types/acdc/regbasing.d.ts +3 -1
- package/types/acdc/regbasing.d.ts.map +1 -1
- package/types/acdc/regengine.d.ts +9 -4
- package/types/acdc/regengine.d.ts.map +1 -1
- package/types/acdc/regeventing.d.ts +24 -7
- package/types/acdc/regeventing.d.ts.map +1 -1
- package/types/acdc/registering.d.ts +22 -6
- package/types/acdc/registering.d.ts.map +1 -1
- package/types/acdc/registraring.d.ts +1 -1
- package/types/acdc/registraring.d.ts.map +1 -1
- package/types/acdc/relating.d.ts +21 -0
- package/types/acdc/relating.d.ts.map +1 -0
- package/types/acdc/salting.d.ts +241 -0
- package/types/acdc/salting.d.ts.map +1 -0
- package/types/acdc/scheming.d.ts +1 -1
- package/types/acdc/scheming.d.ts.map +1 -1
- package/types/acdc/unblinding.d.ts +150 -0
- package/types/acdc/unblinding.d.ts.map +1 -0
- package/types/app/bootstrap/authenticating.d.ts +54 -0
- package/types/app/bootstrap/authenticating.d.ts.map +1 -0
- package/types/app/bootstrap/bootstrapping.d.ts +45 -0
- package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
- package/types/app/{oobi-replies.d.ts → bootstrap/oobi-replies.d.ts} +1 -1
- package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
- package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -25
- package/types/app/bootstrap/oobiery.d.ts.map +1 -0
- package/types/app/credentials/credential-importing.d.ts +29 -0
- package/types/app/credentials/credential-importing.d.ts.map +1 -0
- package/types/app/credentials/credential-proposals.d.ts +27 -0
- package/types/app/credentials/credential-proposals.d.ts.map +1 -0
- package/types/app/credentials/credential-revoking.d.ts +44 -0
- package/types/app/credentials/credential-revoking.d.ts.map +1 -0
- package/types/app/credentials/credential-workflows.d.ts +149 -0
- package/types/app/credentials/credential-workflows.d.ts.map +1 -0
- package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
- package/types/app/credentials/schema-resolving.d.ts.map +1 -0
- package/types/app/credentials/tel-publishing.d.ts +16 -0
- package/types/app/credentials/tel-publishing.d.ts.map +1 -0
- package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +19 -7
- package/types/app/credentials/verifying.d.ts.map +1 -0
- package/types/app/delivery/forwarding.d.ts +227 -0
- package/types/app/delivery/forwarding.d.ts.map +1 -0
- package/types/app/delivery/introducing.d.ts +21 -0
- package/types/app/delivery/introducing.d.ts.map +1 -0
- package/types/app/delivery/reply-streams.d.ts +49 -0
- package/types/app/delivery/reply-streams.d.ts.map +1 -0
- package/types/app/delivery/respondant.d.ts +52 -0
- package/types/app/delivery/respondant.d.ts.map +1 -0
- package/types/app/{stored-replies.d.ts → delivery/stored-replies.d.ts} +1 -1
- package/types/app/delivery/stored-replies.d.ts.map +1 -0
- package/types/app/exchanges/essr.d.ts +53 -0
- package/types/app/exchanges/essr.d.ts.map +1 -0
- package/types/app/exchanges/exchange-messaging.d.ts +73 -0
- package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
- package/types/app/exchanges/exchanging.d.ts +379 -0
- package/types/app/exchanges/exchanging.d.ts.map +1 -0
- package/types/app/{challenging.d.ts → identity/challenging.d.ts} +3 -3
- package/types/app/identity/challenging.d.ts.map +1 -0
- package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
- package/types/app/identity/configing.d.ts.map +1 -0
- package/types/app/{delegating.d.ts → identity/delegating.d.ts} +52 -15
- package/types/app/identity/delegating.d.ts.map +1 -0
- package/types/app/{endpoint-roleing.d.ts → identity/endpoint-roleing.d.ts} +24 -13
- package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
- package/types/app/{habbing.d.ts → identity/habbing.d.ts} +73 -32
- package/types/app/identity/habbing.d.ts.map +1 -0
- package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
- package/types/app/identity/keeping.d.ts.map +1 -0
- package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
- package/types/app/identity/organizing.d.ts.map +1 -0
- package/types/app/ipex/ipex-building.d.ts +30 -0
- package/types/app/ipex/ipex-building.d.ts.map +1 -0
- package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +33 -6
- package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
- package/types/app/ipex/ipex-graph.d.ts +28 -0
- package/types/app/ipex/ipex-graph.d.ts.map +1 -0
- package/types/app/ipex/ipex-grouping.d.ts +112 -0
- package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
- package/types/app/{ipex-node-authentication.d.ts → ipex/ipex-node-authentication.d.ts} +10 -5
- package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
- package/types/app/ipex/ipex-v2.d.ts +71 -0
- package/types/app/ipex/ipex-v2.d.ts.map +1 -0
- package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -6
- package/types/app/ipex/ipexing.d.ts.map +1 -0
- package/types/app/mailbox/forward-handler.d.ts +68 -0
- package/types/app/mailbox/forward-handler.d.ts.map +1 -0
- package/types/app/mailbox/mailbox-director.d.ts +252 -0
- package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
- package/types/app/mailbox/mailbox-poller.d.ts +149 -0
- package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
- package/types/app/mailbox/mailbox-sse.d.ts +63 -0
- package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
- package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -40
- package/types/app/mailbox/mailboxing.d.ts.map +1 -0
- package/types/app/mailbox/topic-routing.d.ts +18 -0
- package/types/app/mailbox/topic-routing.d.ts.map +1 -0
- package/types/app/multisig/group-members.d.ts +60 -0
- package/types/app/multisig/group-members.d.ts.map +1 -0
- package/types/app/{grouping.d.ts → multisig/grouping.d.ts} +142 -19
- package/types/app/multisig/grouping.d.ts.map +1 -0
- package/types/app/multisig/multisig-messaging.d.ts +97 -0
- package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
- package/types/app/multisig/multisig-workflows.d.ts +85 -0
- package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
- package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +4 -5
- package/types/app/notifications/notifying.d.ts.map +1 -0
- package/types/app/notifications/signaling.d.ts.map +1 -0
- package/types/app/{parsering.d.ts → protocol/parsering.d.ts} +40 -11
- package/types/app/protocol/parsering.d.ts.map +1 -0
- package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
- package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
- package/types/app/protocol/protocol-processing.d.ts +140 -0
- package/types/app/protocol/protocol-processing.d.ts.map +1 -0
- package/types/app/protocol/reactor.d.ts +43 -0
- package/types/app/protocol/reactor.d.ts.map +1 -0
- package/types/app/queries/query-replies.d.ts +78 -0
- package/types/app/queries/query-replies.d.ts.map +1 -0
- package/types/app/queries/querying.d.ts +155 -0
- package/types/app/queries/querying.d.ts.map +1 -0
- package/types/app/queries/witness-inquisitor.d.ts +150 -0
- package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
- package/types/app/runtime/abortable.d.ts +39 -0
- package/types/app/runtime/abortable.d.ts.map +1 -0
- package/types/app/runtime/agent-runtime.d.ts +348 -0
- package/types/app/runtime/agent-runtime.d.ts.map +1 -0
- package/types/app/runtime/cue-runtime.d.ts +33 -0
- package/types/app/runtime/cue-runtime.d.ts.map +1 -0
- package/types/app/runtime/runtime-clock.d.ts +28 -0
- package/types/app/runtime/runtime-clock.d.ts.map +1 -0
- package/types/app/runtime/runtime-turn.d.ts.map +1 -0
- package/types/app/transport/byte-source.d.ts +41 -0
- package/types/app/transport/byte-source.d.ts.map +1 -0
- package/types/app/transport/cesr-egress.d.ts +117 -0
- package/types/app/transport/cesr-egress.d.ts.map +1 -0
- package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +4 -27
- package/types/app/transport/cesr-http.d.ts.map +1 -0
- package/types/app/transport/http-client.d.ts +99 -0
- package/types/app/transport/http-client.d.ts.map +1 -0
- package/types/app/transport/http-messenger.d.ts +37 -0
- package/types/app/transport/http-messenger.d.ts.map +1 -0
- package/types/app/transport/http-stream-messenger.d.ts +30 -0
- package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
- package/types/app/transport/httping.d.ts +19 -0
- package/types/app/transport/httping.d.ts.map +1 -0
- package/types/app/transport/message-source.d.ts +22 -0
- package/types/app/transport/message-source.d.ts.map +1 -0
- package/types/app/transport/messengering.d.ts +41 -0
- package/types/app/transport/messengering.d.ts.map +1 -0
- package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +8 -0
- package/types/app/transport/socket-source.d.ts.map +1 -0
- package/types/app/transport/tcp-egress.d.ts +118 -0
- package/types/app/transport/tcp-egress.d.ts.map +1 -0
- package/types/app/transport/tcp-messenger.d.ts +69 -0
- package/types/app/transport/tcp-messenger.d.ts.map +1 -0
- package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
- package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
- package/types/app/transport/transport-error.d.ts +12 -0
- package/types/app/transport/transport-error.d.ts.map +1 -0
- package/types/app/witness/http-endpoints.d.ts +77 -0
- package/types/app/witness/http-endpoints.d.ts.map +1 -0
- package/types/app/witness/ingress.d.ts +65 -0
- package/types/app/witness/ingress.d.ts.map +1 -0
- package/types/app/witness/receipt-client.d.ts +82 -0
- package/types/app/witness/receipt-client.d.ts.map +1 -0
- package/types/app/witness/receipt-messages.d.ts +21 -0
- package/types/app/witness/receipt-messages.d.ts.map +1 -0
- package/types/app/witness/receipting.d.ts +117 -0
- package/types/app/witness/receipting.d.ts.map +1 -0
- package/types/app/witness/registration.d.ts +27 -0
- package/types/app/witness/registration.d.ts.map +1 -0
- package/types/cli/common/bootstrap.d.ts +5 -0
- package/types/cli/common/bootstrap.d.ts.map +1 -0
- package/types/{app/cli → cli}/common/context.d.ts +10 -5
- package/types/cli/common/context.d.ts.map +1 -0
- package/types/{app/cli → cli}/common/existing.d.ts +2 -4
- package/types/cli/common/existing.d.ts.map +1 -0
- package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
- package/types/cli/common/parsing.d.ts.map +1 -0
- package/types/cli/common/passcode.d.ts +9 -0
- package/types/cli/common/passcode.d.ts.map +1 -0
- package/types/cli/common/rendering.d.ts.map +1 -0
- package/types/cli/common/tel-completion.d.ts +8 -0
- package/types/cli/common/tel-completion.d.ts.map +1 -0
- package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
- package/types/cli/common/witness-auth.d.ts.map +1 -0
- package/types/cli/credentials/ipex.d.ts +110 -0
- package/types/cli/credentials/ipex.d.ts.map +1 -0
- package/types/cli/credentials/vc.d.ts +42 -0
- package/types/cli/credentials/vc.d.ts.map +1 -0
- package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
- package/types/cli/endpoints/did.d.ts.map +1 -0
- package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
- package/types/cli/endpoints/ends.d.ts.map +1 -0
- package/types/cli/endpoints/loc.d.ts.map +1 -0
- package/types/cli/endpoints/oobi-clean.d.ts +8 -0
- package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
- package/types/{app/cli → cli/endpoints}/oobi.d.ts +2 -0
- package/types/cli/endpoints/oobi.d.ts.map +1 -0
- package/types/cli/identity/aid.d.ts.map +1 -0
- package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
- package/types/cli/identity/challenge.d.ts.map +1 -0
- package/types/cli/identity/delegate.d.ts.map +1 -0
- package/types/cli/identity/export.d.ts.map +1 -0
- package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
- package/types/cli/identity/incept.d.ts.map +1 -0
- package/types/{app/cli → cli/identity}/init.d.ts +2 -0
- package/types/cli/identity/init.d.ts.map +1 -0
- package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
- package/types/cli/identity/interact.d.ts.map +1 -0
- package/types/cli/identity/list.d.ts.map +1 -0
- package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
- package/types/cli/identity/rotate.d.ts.map +1 -0
- package/types/cli/index.d.ts +39 -0
- package/types/cli/index.d.ts.map +1 -0
- package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
- package/types/cli/messaging/exchange.d.ts.map +1 -0
- package/types/cli/messaging/multisig.d.ts +29 -0
- package/types/cli/messaging/multisig.d.ts.map +1 -0
- package/types/cli/messaging/notifications.d.ts.map +1 -0
- package/types/cli/output.d.ts.map +1 -0
- package/types/cli/tools/annotate-color.d.ts.map +1 -0
- package/types/cli/tools/annotate.d.ts.map +1 -0
- package/types/cli/tools/benchmark.d.ts.map +1 -0
- package/types/cli/tools/db-dump.d.ts.map +1 -0
- package/types/cli/tools/saidify.d.ts.map +1 -0
- package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
- package/types/cli/tools/sign.d.ts.map +1 -0
- package/types/cli/tools/verify.d.ts.map +1 -0
- package/types/core/attachment-countering.d.ts +10 -1
- package/types/core/attachment-countering.d.ts.map +1 -1
- package/types/core/cues.d.ts +78 -21
- package/types/core/cues.d.ts.map +1 -1
- package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
- package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
- package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +10 -2
- package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
- package/types/core/genus-framing.d.ts +12 -0
- package/types/core/genus-framing.d.ts.map +1 -0
- package/types/core/{eventing.d.ts → kel/eventing.d.ts} +22 -10
- package/types/core/kel/eventing.d.ts.map +1 -0
- package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +21 -8
- package/types/core/kel/kever-decisions.d.ts.map +1 -0
- package/types/core/{kever.d.ts → kel/kever.d.ts} +2 -2
- package/types/core/kel/kever.d.ts.map +1 -0
- package/types/core/kel/witnesses.d.ts.map +1 -0
- package/types/core/logger.d.ts +1 -1
- package/types/core/logger.d.ts.map +1 -1
- package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
- package/types/core/mailbox/kram-auth.d.ts.map +1 -0
- package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
- package/types/core/mailbox/kram-policy.d.ts.map +1 -0
- package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +1 -1
- package/types/core/mailbox/kram-pruning.d.ts.map +1 -0
- package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
- package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
- package/types/core/{kram-staging.d.ts → mailbox/kram-staging.d.ts} +2 -2
- package/types/core/mailbox/kram-staging.d.ts.map +1 -0
- package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +2 -2
- package/types/core/mailbox/kram-time.d.ts.map +1 -0
- package/types/core/{kraming.d.ts → mailbox/kraming.d.ts} +5 -5
- package/types/core/mailbox/kraming.d.ts.map +1 -0
- package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
- package/types/core/protocol-eventing.d.ts.map +1 -1
- package/types/core/protocol-serialization.d.ts +1 -1
- package/types/core/protocol-serialization.d.ts.map +1 -1
- package/types/core/records.d.ts +1 -1
- package/types/core/records.d.ts.map +1 -1
- package/types/core/routing.d.ts +24 -4
- package/types/core/routing.d.ts.map +1 -1
- package/types/db/baser-defaults.d.ts +5 -0
- package/types/db/baser-defaults.d.ts.map +1 -0
- package/types/db/basing.d.ts +32 -44
- package/types/db/basing.d.ts.map +1 -1
- package/types/db/core/lmdber.d.ts +18 -13
- package/types/db/core/lmdber.d.ts.map +1 -1
- package/types/db/escrowing.d.ts +3 -1
- package/types/db/escrowing.d.ts.map +1 -1
- package/types/db/exchange/exchange-nests.d.ts +12 -0
- package/types/db/exchange/exchange-nests.d.ts.map +1 -0
- package/types/db/exchange/exchange-records.d.ts +38 -0
- package/types/db/exchange/exchange-records.d.ts.map +1 -0
- package/types/db/index.d.ts +5 -4
- package/types/db/index.d.ts.map +1 -1
- package/types/db/keeping.d.ts +19 -1
- package/types/db/keeping.d.ts.map +1 -1
- package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +2 -2
- package/types/db/mailbox/kram-factors.d.ts.map +1 -0
- package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +2 -2
- package/types/db/mailbox/mailboxing.d.ts.map +1 -0
- package/types/db/reger.d.ts +7 -6
- package/types/db/reger.d.ts.map +1 -1
- package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +1 -2
- package/types/db/replay/kel-replay.d.ts.map +1 -0
- package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +11 -1
- package/types/db/replay/tel-replay.d.ts.map +1 -0
- package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +1 -1
- package/types/db/replay/witness-replay.d.ts.map +1 -0
- package/types/db/subing.d.ts.map +1 -1
- package/types/did/keri/resolving.d.ts +1 -1
- package/types/did/keri/resolving.d.ts.map +1 -1
- package/types/did/webs/artifacts.d.ts +5 -5
- package/types/did/webs/artifacts.d.ts.map +1 -1
- package/types/did/webs/designated-aliases.d.ts +1 -2
- package/types/did/webs/designated-aliases.d.ts.map +1 -1
- package/types/did/webs/documenting.d.ts +1 -1
- package/types/did/webs/documenting.d.ts.map +1 -1
- package/types/did/webs/resolving.d.ts +13 -9
- package/types/did/webs/resolving.d.ts.map +1 -1
- package/types/library/index.d.ts +1 -1
- package/types/library/index.d.ts.map +1 -1
- package/types/npm/cli.d.ts +1 -1
- package/types/npm/cli.d.ts.map +1 -1
- package/types/npm/index.d.ts +1 -1
- package/types/npm/index.d.ts.map +1 -1
- package/types/runtime/index.d.ts +86 -51
- package/types/runtime/index.d.ts.map +1 -1
- package/types/vdr/backer-state.d.ts +22 -0
- package/types/vdr/backer-state.d.ts.map +1 -0
- package/types/vdr/credential-tsn-record.d.ts +13 -0
- package/types/vdr/credential-tsn-record.d.ts.map +1 -0
- package/types/vdr/credentialing.d.ts +16 -17
- package/types/vdr/credentialing.d.ts.map +1 -1
- package/types/vdr/eventing.d.ts +60 -18
- package/types/vdr/eventing.d.ts.map +1 -1
- package/types/vdr/registry-tsn-record.d.ts +6 -0
- package/types/vdr/registry-tsn-record.d.ts.map +1 -0
- package/types/vdr/revoking.d.ts +18 -0
- package/types/vdr/revoking.d.ts.map +1 -0
- package/types/vdr/tel-anchor.d.ts +10 -0
- package/types/vdr/tel-anchor.d.ts.map +1 -0
- package/types/vdr/tel-publication.d.ts +49 -0
- package/types/vdr/tel-publication.d.ts.map +1 -0
- package/types/vdr/tsn-query.d.ts +1 -1
- package/types/vdr/tsn-query.d.ts.map +1 -1
- package/types/{app/version.d.ts → version.d.ts} +2 -2
- package/types/version.d.ts.map +1 -0
- package/esm/keri/npm/src/app/agent-runtime.js +0 -544
- package/esm/keri/npm/src/app/cesr-egress.js +0 -294
- package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
- package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
- package/esm/keri/npm/src/app/cli/incept.js +0 -185
- package/esm/keri/npm/src/app/cli/index.js +0 -36
- package/esm/keri/npm/src/app/cli/init.js +0 -149
- package/esm/keri/npm/src/app/cli/interact.js +0 -72
- package/esm/keri/npm/src/app/cli/ipex.js +0 -519
- package/esm/keri/npm/src/app/cli/query.js +0 -142
- package/esm/keri/npm/src/app/cli/vc.js +0 -283
- package/esm/keri/npm/src/app/cli/verifier.js +0 -92
- package/esm/keri/npm/src/app/credential-workflows.js +0 -409
- package/esm/keri/npm/src/app/cue-runtime.js +0 -38
- package/esm/keri/npm/src/app/essr.js +0 -170
- package/esm/keri/npm/src/app/exchanging.js +0 -1001
- package/esm/keri/npm/src/app/forwarding.js +0 -936
- package/esm/keri/npm/src/app/group-members.js +0 -37
- package/esm/keri/npm/src/app/httping.js +0 -162
- package/esm/keri/npm/src/app/ipex-graph.js +0 -407
- package/esm/keri/npm/src/app/ipex-grouping.js +0 -276
- package/esm/keri/npm/src/app/ipex-v2.js +0 -438
- package/esm/keri/npm/src/app/mailbox-sse.js +0 -240
- package/esm/keri/npm/src/app/multisig-workflows.js +0 -457
- package/esm/keri/npm/src/app/querying.js +0 -775
- package/esm/keri/npm/src/app/reactor.js +0 -394
- package/esm/keri/npm/src/app/respondant.js +0 -358
- package/esm/keri/npm/src/app/runtime-services.js +0 -22
- package/esm/keri/npm/src/app/tcp-conversation.js +0 -85
- package/esm/keri/npm/src/app/tcp-egress.js +0 -251
- package/esm/keri/npm/src/app/verifier-agent.js +0 -443
- package/esm/keri/npm/src/app/witnessing.js +0 -914
- package/esm/keri/npm/src/core/index.js +0 -23
- package/esm/keri/npm/src/db/exchange-nests.js +0 -80
- package/esm/keri/npm/src/db/exchange-records.js +0 -7
- package/esm/keri/npm/src/db/payload-archive.js +0 -402
- package/esm/keri/npm/src/db/payload-store.js +0 -406
- package/esm/keri/npm/src/db/payload-view.js +0 -23
- package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
- package/esm/keri/npm/src/vdr/credential-tsn.js +0 -230
- package/esm/keri/npm/src/vdr/registry-tsn.js +0 -217
- package/types/app/abortable.d.ts +0 -13
- package/types/app/abortable.d.ts.map +0 -1
- package/types/app/agent-runtime.d.ts +0 -221
- package/types/app/agent-runtime.d.ts.map +0 -1
- package/types/app/authenticating.d.ts +0 -36
- package/types/app/authenticating.d.ts.map +0 -1
- package/types/app/byte-source.d.ts +0 -16
- package/types/app/byte-source.d.ts.map +0 -1
- package/types/app/cesr-egress.d.ts +0 -45
- package/types/app/cesr-egress.d.ts.map +0 -1
- package/types/app/cesr-http.d.ts.map +0 -1
- package/types/app/challenging.d.ts.map +0 -1
- package/types/app/cli/aid.d.ts.map +0 -1
- package/types/app/cli/annotate-color.d.ts.map +0 -1
- package/types/app/cli/annotate.d.ts.map +0 -1
- package/types/app/cli/benchmark.d.ts.map +0 -1
- package/types/app/cli/challenge.d.ts.map +0 -1
- package/types/app/cli/common/context.d.ts.map +0 -1
- package/types/app/cli/common/displaying.d.ts +0 -12
- package/types/app/cli/common/displaying.d.ts.map +0 -1
- package/types/app/cli/common/existing.d.ts.map +0 -1
- package/types/app/cli/common/parsing.d.ts.map +0 -1
- package/types/app/cli/common/rendering.d.ts.map +0 -1
- package/types/app/cli/common/witness-auth.d.ts.map +0 -1
- package/types/app/cli/db-dump.d.ts.map +0 -1
- package/types/app/cli/delegate.d.ts.map +0 -1
- package/types/app/cli/did.d.ts.map +0 -1
- package/types/app/cli/ends.d.ts.map +0 -1
- package/types/app/cli/exchange.d.ts.map +0 -1
- package/types/app/cli/export.d.ts.map +0 -1
- package/types/app/cli/incept.d.ts.map +0 -1
- package/types/app/cli/index.d.ts +0 -37
- package/types/app/cli/index.d.ts.map +0 -1
- package/types/app/cli/init.d.ts.map +0 -1
- package/types/app/cli/interact.d.ts.map +0 -1
- package/types/app/cli/ipex.d.ts +0 -20
- package/types/app/cli/ipex.d.ts.map +0 -1
- package/types/app/cli/list.d.ts.map +0 -1
- package/types/app/cli/loc.d.ts.map +0 -1
- package/types/app/cli/multisig.d.ts +0 -12
- package/types/app/cli/multisig.d.ts.map +0 -1
- package/types/app/cli/notifications.d.ts.map +0 -1
- package/types/app/cli/oobi.d.ts.map +0 -1
- package/types/app/cli/output.d.ts.map +0 -1
- package/types/app/cli/query.d.ts +0 -12
- package/types/app/cli/query.d.ts.map +0 -1
- package/types/app/cli/rotate.d.ts.map +0 -1
- package/types/app/cli/saidify.d.ts.map +0 -1
- package/types/app/cli/sign.d.ts.map +0 -1
- package/types/app/cli/vc.d.ts +0 -20
- package/types/app/cli/vc.d.ts.map +0 -1
- package/types/app/cli/verifier.d.ts +0 -3
- package/types/app/cli/verifier.d.ts.map +0 -1
- package/types/app/cli/verify.d.ts.map +0 -1
- package/types/app/configing.d.ts.map +0 -1
- package/types/app/credential-workflows.d.ts +0 -113
- package/types/app/credential-workflows.d.ts.map +0 -1
- package/types/app/cue-runtime.d.ts +0 -12
- package/types/app/cue-runtime.d.ts.map +0 -1
- package/types/app/delegating.d.ts.map +0 -1
- package/types/app/endpoint-roleing.d.ts.map +0 -1
- package/types/app/essr.d.ts +0 -58
- package/types/app/essr.d.ts.map +0 -1
- package/types/app/exchanging.d.ts +0 -233
- package/types/app/exchanging.d.ts.map +0 -1
- package/types/app/forwarding.d.ts +0 -352
- package/types/app/forwarding.d.ts.map +0 -1
- package/types/app/group-members.d.ts +0 -12
- package/types/app/group-members.d.ts.map +0 -1
- package/types/app/grouping.d.ts.map +0 -1
- package/types/app/habbing.d.ts.map +0 -1
- package/types/app/httping.d.ts +0 -49
- package/types/app/httping.d.ts.map +0 -1
- package/types/app/ipex-credentialing.d.ts.map +0 -1
- package/types/app/ipex-graph.d.ts +0 -49
- package/types/app/ipex-graph.d.ts.map +0 -1
- package/types/app/ipex-grouping.d.ts +0 -43
- package/types/app/ipex-grouping.d.ts.map +0 -1
- package/types/app/ipex-node-authentication.d.ts.map +0 -1
- package/types/app/ipex-v2.d.ts +0 -46
- package/types/app/ipex-v2.d.ts.map +0 -1
- package/types/app/ipexing.d.ts.map +0 -1
- package/types/app/keeping.d.ts.map +0 -1
- package/types/app/mailbox-director.d.ts +0 -140
- package/types/app/mailbox-director.d.ts.map +0 -1
- package/types/app/mailbox-sse.d.ts +0 -32
- package/types/app/mailbox-sse.d.ts.map +0 -1
- package/types/app/mailboxing.d.ts.map +0 -1
- package/types/app/multisig-workflows.d.ts +0 -47
- package/types/app/multisig-workflows.d.ts.map +0 -1
- package/types/app/notifying.d.ts.map +0 -1
- package/types/app/oobi-replies.d.ts.map +0 -1
- package/types/app/oobiery.d.ts.map +0 -1
- package/types/app/organizing.d.ts.map +0 -1
- package/types/app/parsering.d.ts.map +0 -1
- package/types/app/protocol-host-policy.d.ts.map +0 -1
- package/types/app/query-replies.d.ts +0 -40
- package/types/app/query-replies.d.ts.map +0 -1
- package/types/app/querying.d.ts +0 -221
- package/types/app/querying.d.ts.map +0 -1
- package/types/app/reactor.d.ts +0 -138
- package/types/app/reactor.d.ts.map +0 -1
- package/types/app/reply-streams.d.ts +0 -20
- package/types/app/reply-streams.d.ts.map +0 -1
- package/types/app/respondant.d.ts +0 -63
- package/types/app/respondant.d.ts.map +0 -1
- package/types/app/runtime-services.d.ts +0 -26
- package/types/app/runtime-services.d.ts.map +0 -1
- package/types/app/runtime-turn.d.ts.map +0 -1
- package/types/app/schema-resolving.d.ts.map +0 -1
- package/types/app/signaling.d.ts.map +0 -1
- package/types/app/socket-source.d.ts.map +0 -1
- package/types/app/stored-replies.d.ts.map +0 -1
- package/types/app/tcp-conversation.d.ts +0 -27
- package/types/app/tcp-conversation.d.ts.map +0 -1
- package/types/app/tcp-egress.d.ts +0 -49
- package/types/app/tcp-egress.d.ts.map +0 -1
- package/types/app/verifier-agent.d.ts +0 -92
- package/types/app/verifier-agent.d.ts.map +0 -1
- package/types/app/verifying.d.ts.map +0 -1
- package/types/app/version.d.ts.map +0 -1
- package/types/app/witnessing.d.ts +0 -223
- package/types/app/witnessing.d.ts.map +0 -1
- package/types/core/eventing.d.ts.map +0 -1
- package/types/core/exchange-proofing.d.ts.map +0 -1
- package/types/core/index.d.ts +0 -24
- package/types/core/index.d.ts.map +0 -1
- package/types/core/kever-decisions.d.ts.map +0 -1
- package/types/core/kever.d.ts.map +0 -1
- package/types/core/kram-auth.d.ts.map +0 -1
- package/types/core/kram-policy.d.ts.map +0 -1
- package/types/core/kram-pruning.d.ts.map +0 -1
- package/types/core/kram-signatures.d.ts.map +0 -1
- package/types/core/kram-staging.d.ts.map +0 -1
- package/types/core/kram-time.d.ts.map +0 -1
- package/types/core/kraming.d.ts.map +0 -1
- package/types/core/mailbox-topics.d.ts.map +0 -1
- package/types/core/protocol-exchanging.d.ts.map +0 -1
- package/types/core/witnesses.d.ts.map +0 -1
- package/types/db/exchange-nests.d.ts +0 -15
- package/types/db/exchange-nests.d.ts.map +0 -1
- package/types/db/exchange-records.d.ts +0 -33
- package/types/db/exchange-records.d.ts.map +0 -1
- package/types/db/kel-replay.d.ts.map +0 -1
- package/types/db/kram-factors.d.ts.map +0 -1
- package/types/db/mailboxing.d.ts.map +0 -1
- package/types/db/payload-archive.d.ts +0 -70
- package/types/db/payload-archive.d.ts.map +0 -1
- package/types/db/payload-store.d.ts +0 -40
- package/types/db/payload-store.d.ts.map +0 -1
- package/types/db/payload-view.d.ts +0 -4
- package/types/db/payload-view.d.ts.map +0 -1
- package/types/db/tel-replay.d.ts.map +0 -1
- package/types/db/verifier-cueing.d.ts +0 -46
- package/types/db/verifier-cueing.d.ts.map +0 -1
- package/types/db/witness-replay.d.ts.map +0 -1
- package/types/vdr/credential-tsn.d.ts +0 -23
- package/types/vdr/credential-tsn.d.ts.map +0 -1
- package/types/vdr/registry-tsn.d.ts +0 -28
- package/types/vdr/registry-tsn.d.ts.map +0 -1
- /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
- /package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +0 -0
- /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
- /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
- /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
- /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
- /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
- /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
- /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
- /package/types/app/{signaling.d.ts → notifications/signaling.d.ts} +0 -0
- /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
- /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
- /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
- /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
- /package/types/{app/cli → cli/identity}/delegate.d.ts +0 -0
- /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
- /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
- /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
- /package/types/{app/cli → cli}/output.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
- /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
- /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
- /package/types/core/{mailbox-topics.d.ts → mailbox/mailbox-topics.d.ts} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValidationError } from "../../core/errors.js";
|
|
2
|
+
import { exchange, isIpexVerb } from "../../core/exchange/protocol-exchanging.js";
|
|
2
3
|
import { IpexV2Handler } from "./ipex-v2.js";
|
|
3
4
|
/** KERIpy IPEX route constants. */
|
|
4
5
|
export const IPEX_APPLY_ROUTE = "/ipex/apply";
|
|
@@ -191,6 +192,62 @@ function requiredSaid(serder, label) {
|
|
|
191
192
|
function rawMessage(message) {
|
|
192
193
|
return message instanceof Uint8Array ? message : message.raw;
|
|
193
194
|
}
|
|
195
|
+
/** Validate known signed response parties and the existing legacy predecessor graph. */
|
|
196
|
+
export function validateIpexReply(prior, verb, sender, recipient) {
|
|
197
|
+
if (!(PREVIOUS_IPEX_ROUTES.get(verb) ?? []).some(route => prior.route === `/ipex/${route}`)) {
|
|
198
|
+
throw new ValidationError("Prior IPEX exchange is missing or has the wrong route.");
|
|
199
|
+
}
|
|
200
|
+
const intended = ipexRecipient(prior);
|
|
201
|
+
if (prior.pre !== recipient || (intended && intended !== sender)) {
|
|
202
|
+
throw new ValidationError("IPEX response parties do not match the accepted prior exchange.");
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Preflight a proposed legacy conversation before a member adds a signature.
|
|
207
|
+
* Missing accepted predecessors stay pending; malformed routes, changed parties
|
|
208
|
+
* and replacement responses fail. This does not admit an EXN or change its indexes.
|
|
209
|
+
*/
|
|
210
|
+
export function ipexConversationReady(db, exn) {
|
|
211
|
+
const verb = ipexVerbForRoute(exn.route ?? "");
|
|
212
|
+
if (!verb || !exn.pre || exn.pvrsn.major !== 1)
|
|
213
|
+
throw new ValidationError("Unsupported IPEX conversation profile.");
|
|
214
|
+
const said = priorSaid(exn);
|
|
215
|
+
if (!said) {
|
|
216
|
+
if (!STARTABLE_WITHOUT_PRIOR.has(verb))
|
|
217
|
+
throw new ValidationError("IPEX response requires its predecessor.");
|
|
218
|
+
if (!ipexRecipient(exn))
|
|
219
|
+
throw new ValidationError("IPEX proposal is missing its recipient.");
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
const prior = db.exns.get([said]);
|
|
223
|
+
if (!prior)
|
|
224
|
+
return false;
|
|
225
|
+
const recipient = ipexRecipient(exn, prior);
|
|
226
|
+
if (!recipient)
|
|
227
|
+
throw new ValidationError("IPEX proposal is missing its recipient.");
|
|
228
|
+
validateIpexReply(prior, verb, exn.pre, recipient);
|
|
229
|
+
const response = db.erpy.get([said]);
|
|
230
|
+
if (response && response.qb64 !== exn.said) {
|
|
231
|
+
throw new ValidationError("Prior IPEX exchange already has another accepted response.");
|
|
232
|
+
}
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Resolve signed recipient data, or the sender of an accepted linked predecessor.
|
|
237
|
+
* Legacy admit/agree/spurn builders omit an explicit recipient. Callers loading
|
|
238
|
+
* a predecessor must supply it from accepted storage; this helper does not admit it.
|
|
239
|
+
*/
|
|
240
|
+
export function ipexRecipient(exn, prior) {
|
|
241
|
+
const rp = exn.ked?.rp;
|
|
242
|
+
if (typeof rp === "string" && rp.length > 0)
|
|
243
|
+
return rp;
|
|
244
|
+
const attrs = exn.ked?.a;
|
|
245
|
+
if (isRecord(attrs) && typeof attrs.i === "string" && attrs.i.length > 0)
|
|
246
|
+
return attrs.i;
|
|
247
|
+
if (prior?.said && priorSaid(exn) === prior.said)
|
|
248
|
+
return prior.pre || null;
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
194
251
|
function priorSaid(serder) {
|
|
195
252
|
const prior = serder.ked?.p;
|
|
196
253
|
return typeof prior === "string" ? prior : "";
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/** Authenticated /fwd intake: validate provider authority before storing reconstructed child bytes. */
|
|
2
|
+
import { collectPayload, concatBytes, Counter, Diger, nestedPayload, parsePather, SerderACDC, SerderKERI, Vrsn_2_0, } from "cesr-ts";
|
|
3
|
+
import { Roles } from "../../core/roles.js";
|
|
4
|
+
import { abortable } from "../runtime/abortable.js";
|
|
5
|
+
/**
|
|
6
|
+
* Accepted `/fwd` route handler that stores embedded payloads in mailbox topics.
|
|
7
|
+
*
|
|
8
|
+
* This is the `keri-ts` mailbox-storage analogue to KERIpy's `ForwardHandler`.
|
|
9
|
+
*
|
|
10
|
+
* Authorization rule:
|
|
11
|
+
* - the request-scoped mailbox AID passed with this message must currently be
|
|
12
|
+
* authorized for the addressed recipient
|
|
13
|
+
*/
|
|
14
|
+
export class ForwardHandler {
|
|
15
|
+
/**
|
|
16
|
+
* Bind mailbox publication without acquiring a store.
|
|
17
|
+
*
|
|
18
|
+
* @param mailboxDirector Borrowed provider owner that publishes accepted forwarded payloads.
|
|
19
|
+
*/
|
|
20
|
+
constructor(mailboxDirector) {
|
|
21
|
+
/** Instance route identity used by exchange dispatch. */
|
|
22
|
+
Object.defineProperty(this, "resource", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: ForwardHandler.resource
|
|
27
|
+
});
|
|
28
|
+
/** This route binds a single v2 child body; recipient processors authenticate its evidence. */
|
|
29
|
+
Object.defineProperty(this, "acceptsNests", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: true
|
|
34
|
+
});
|
|
35
|
+
/** Borrowed provider publication/correlation owner. */
|
|
36
|
+
Object.defineProperty(this, "mailboxDirector", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: void 0
|
|
41
|
+
});
|
|
42
|
+
this.mailboxDirector = mailboxDirector;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Verify that the embedded exchange has the mailbox modifiers and one
|
|
46
|
+
* extractable forwarded payload.
|
|
47
|
+
*
|
|
48
|
+
* @param args Signed forwarding exchange, attachment evidence and optional nested frames; children retain their own authentication requirements.
|
|
49
|
+
* @returns Whether required modifiers and one bound forwarded payload are structurally valid.
|
|
50
|
+
*/
|
|
51
|
+
verify(args) {
|
|
52
|
+
const modifiers = args.serder.ked?.q;
|
|
53
|
+
if (typeof modifiers?.pre !== "string" || typeof modifiers?.topic !== "string")
|
|
54
|
+
return false;
|
|
55
|
+
if (args.serder.pvrsn.major < 2) {
|
|
56
|
+
return !args.nests?.length && extractForwardedMessage(args.serder, args.attachments) !== null;
|
|
57
|
+
}
|
|
58
|
+
if (args.nests?.length !== 1)
|
|
59
|
+
return false;
|
|
60
|
+
const signed = args.serder.a?.evt;
|
|
61
|
+
const child = args.nests[0].body;
|
|
62
|
+
if (typeof signed !== "string" || !(child instanceof SerderKERI || child instanceof SerderACDC))
|
|
63
|
+
return false;
|
|
64
|
+
try {
|
|
65
|
+
return child.verify() && new Diger({ qb64: signed }).verify(child.raw);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Store one forwarded payload when the receiving host is allowed to act as
|
|
73
|
+
* the recipient's async correspondence store.
|
|
74
|
+
*
|
|
75
|
+
* Accepted host shapes:
|
|
76
|
+
* - explicit mailbox provider authorized in `ends.`
|
|
77
|
+
* - recipient witness host from the accepted KEL witness set
|
|
78
|
+
* - recipient agent host authorized in `ends.`
|
|
79
|
+
*
|
|
80
|
+
* Controller endpoints stay excluded here because they are direct
|
|
81
|
+
* correspondence destinations, not store-and-forward hosts.
|
|
82
|
+
*
|
|
83
|
+
* @param args Accepted exchange with borrowed attachments/children and receiving mailboxAid provenance.
|
|
84
|
+
* @returns An operation for v2 child serialization, or synchronous completion/no-op for legacy or unauthorized input.
|
|
85
|
+
*/
|
|
86
|
+
handle(args) {
|
|
87
|
+
const modifiers = args.serder.ked?.q;
|
|
88
|
+
const recipient = typeof modifiers?.pre === "string" ? modifiers.pre : null;
|
|
89
|
+
const topic = typeof modifiers?.topic === "string" ? modifiers.topic : null;
|
|
90
|
+
const child = args.serder.pvrsn.major >= 2 ? args.nests?.[0] : undefined;
|
|
91
|
+
const forwarded = child ? null : extractForwardedMessage(args.serder, args.attachments);
|
|
92
|
+
const mailboxAid = args.mailboxAid;
|
|
93
|
+
if (!recipient || !topic || (!child && !forwarded)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!this.canStoreRecipient(recipient, mailboxAid))
|
|
97
|
+
return;
|
|
98
|
+
if (child) {
|
|
99
|
+
// Mailbox LMDB accepts a finite row; collect one child, never the whole exchange stream.
|
|
100
|
+
return abortable(async (signal) => {
|
|
101
|
+
const wire = await collectPayload(nestedPayload(child, Vrsn_2_0), signal);
|
|
102
|
+
signal.throwIfAborted();
|
|
103
|
+
if (this.canStoreRecipient(recipient, mailboxAid))
|
|
104
|
+
this.mailboxDirector.publish(recipient, topic, wire);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
this.mailboxDirector.publish(recipient, topic, forwarded);
|
|
108
|
+
}
|
|
109
|
+
/** Re-read accepted authority in the same synchronous turn as provider publication. */
|
|
110
|
+
canStoreRecipient(recipient, mailboxAid) {
|
|
111
|
+
const hby = this.mailboxDirector.hby;
|
|
112
|
+
const kever = hby.db.getKever(recipient);
|
|
113
|
+
if (!kever)
|
|
114
|
+
return false;
|
|
115
|
+
if (mailboxAid)
|
|
116
|
+
return hostCanStoreForwardRecipient(hby, recipient, kever, mailboxAid);
|
|
117
|
+
return hasLocalStoreForwardHost(hby, recipient, kever);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Registered exchange route for store-forward messages. */
|
|
121
|
+
Object.defineProperty(ForwardHandler, "resource", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
configurable: true,
|
|
124
|
+
writable: true,
|
|
125
|
+
value: "/fwd"
|
|
126
|
+
});
|
|
127
|
+
/**
|
|
128
|
+
* Check recipient-specific store-forward authority without treating a controller endpoint as a mailbox.
|
|
129
|
+
*
|
|
130
|
+
* @param hby Borrowed local habitat collection and accepted-state database.
|
|
131
|
+
* @param recipient Final recipient AID.
|
|
132
|
+
* @param recipientKever Accepted recipient state supplying its current witness cohort.
|
|
133
|
+
* @param hostAid Receiving endpoint AID whose witness/mailbox/agent authority is checked.
|
|
134
|
+
* @returns True when current accepted witness or endpoint-role state authorizes a local store-forward host.
|
|
135
|
+
*/
|
|
136
|
+
function hostCanStoreForwardRecipient(hby, recipient, recipientKever, hostAid) {
|
|
137
|
+
// A local host may store forwarded traffic only when it is an authorized
|
|
138
|
+
// witness/mailbox/agent for the recipient. This keeps mailbox storage from
|
|
139
|
+
// becoming a generic unauthenticated relay.
|
|
140
|
+
if (recipientKever.wits.includes(hostAid)) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
for (const role of [Roles.mailbox, Roles.agent]) {
|
|
144
|
+
const end = hby.db.ends.get([recipient, role, hostAid]);
|
|
145
|
+
if (end?.allowed || end?.enabled) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Check recipient-specific store-forward authority without treating a controller endpoint as a mailbox.
|
|
153
|
+
*
|
|
154
|
+
* @param hby Borrowed local habitat collection and accepted-state database.
|
|
155
|
+
* @param recipient Final recipient AID.
|
|
156
|
+
* @param recipientKever Accepted recipient state supplying its current witness cohort.
|
|
157
|
+
* @returns True when current accepted witness or endpoint-role state authorizes a local store-forward host.
|
|
158
|
+
*/
|
|
159
|
+
function hasLocalStoreForwardHost(hby, recipient, recipientKever) {
|
|
160
|
+
// Check all local prefixes because a multi-role runtime can host a mailbox
|
|
161
|
+
// AID that is distinct from the controller currently processing the EXN.
|
|
162
|
+
for (const hostAid of hby.db.prefixes) {
|
|
163
|
+
if (hostCanStoreForwardRecipient(hby, recipient, recipientKever, hostAid)) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Reconstruct legacy forwarded wire without assigning outer attachments to the child.
|
|
171
|
+
*
|
|
172
|
+
* @param serder Legacy forwarding exchange containing an e.evt body.
|
|
173
|
+
* @param attachments Pathed attachments; only /e/evt material belongs to the embedded message.
|
|
174
|
+
* @returns Reconstructed child wire, or null without an embedded event.
|
|
175
|
+
*/
|
|
176
|
+
function extractForwardedMessage(serder, attachments) {
|
|
177
|
+
const embeds = serder.ked?.e;
|
|
178
|
+
const evt = embeds?.evt;
|
|
179
|
+
if (!evt || typeof evt !== "object" || Array.isArray(evt)) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
// Rebuild the embedded event from SAD plus only the attachment material
|
|
183
|
+
// pathed to `/e/evt`; other pathed groups belong to the outer `/fwd` message.
|
|
184
|
+
const embedded = embeddedSerderRaw(evt);
|
|
185
|
+
const messageParts = [embedded];
|
|
186
|
+
for (const attachment of attachments) {
|
|
187
|
+
const atc = forwardedAttachmentForPath(attachment.raw, "/e/evt");
|
|
188
|
+
if (atc) {
|
|
189
|
+
messageParts.push(atc);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return concatBytes(...messageParts);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Serialize one legacy embedded body according to its declared protocol.
|
|
196
|
+
*
|
|
197
|
+
* @param sad Embedded self-addressing data; version prefix selects ACDC versus KERI serialization.
|
|
198
|
+
* @returns Serialized embedded body bytes; caller owns attachment reconstruction.
|
|
199
|
+
*/
|
|
200
|
+
function embeddedSerderRaw(sad) {
|
|
201
|
+
const version = typeof sad.v === "string" ? sad.v : "";
|
|
202
|
+
if (version.startsWith("ACDC")) {
|
|
203
|
+
return new SerderACDC({ sad, verify: false }).raw;
|
|
204
|
+
}
|
|
205
|
+
return new SerderKERI({ sad }).raw;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Extract the forwarded attachment bytes for the embedded `/e/evt` path.
|
|
209
|
+
*
|
|
210
|
+
* Forwarded attachment groups can carry multiple pathed attachments, so the
|
|
211
|
+
* path filter keeps mailbox reconstruction focused on the embedded event.
|
|
212
|
+
*
|
|
213
|
+
* @param raw One qualified pathed attachment group in text-domain bytes.
|
|
214
|
+
* @param path Exact embedded SAD path to match.
|
|
215
|
+
* @returns Attachment bytes after the matching pather, or null for a different/empty group.
|
|
216
|
+
*/
|
|
217
|
+
function forwardedAttachmentForPath(raw, path) {
|
|
218
|
+
if (raw.length === 0) {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
const counter = new Counter({ qb64b: raw });
|
|
222
|
+
const offset = counter.fullSize;
|
|
223
|
+
const pather = parsePather(raw.slice(offset), "txt");
|
|
224
|
+
if (pather.path !== path) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
return raw.slice(offset + pather.fullSize);
|
|
228
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Deck } from "
|
|
2
|
-
import { ValidationError } from "
|
|
1
|
+
import { Deck } from "../../core/deck.js";
|
|
2
|
+
import { ValidationError } from "../../core/errors.js";
|
|
3
3
|
import { mailboxQueryTopics, mailboxTopicKey, updateMailboxRemoteCursor } from "./mailboxing.js";
|
|
4
4
|
/** Shared encoder for SSE mailbox stream framing. */
|
|
5
5
|
const textEncoder = new TextEncoder();
|
|
@@ -25,13 +25,27 @@ const STREAM_CHUNK_BYTES = 65536;
|
|
|
25
25
|
* `MailboxIterable`
|
|
26
26
|
*/
|
|
27
27
|
export class MailboxDirector {
|
|
28
|
+
/**
|
|
29
|
+
* Compose provider publication and request-owned stream tracking.
|
|
30
|
+
* Absent mailboxer disables storage/serving; correlation and topic registration
|
|
31
|
+
* remain available. A new query Deck is created only when none is supplied.
|
|
32
|
+
*
|
|
33
|
+
* @param hby Borrowed local identities and accepted-state stores.
|
|
34
|
+
* @param options Optional borrowed mailbox store, exclusive query-cue Deck and initial topics; no store is opened.
|
|
35
|
+
*/
|
|
28
36
|
constructor(hby, { mailboxer, queryCues, topics = [], } = {}) {
|
|
37
|
+
/**
|
|
38
|
+
* Borrowed local identities and accepted-state stores.
|
|
39
|
+
*/
|
|
29
40
|
Object.defineProperty(this, "hby", {
|
|
30
41
|
enumerable: true,
|
|
31
42
|
configurable: true,
|
|
32
43
|
writable: true,
|
|
33
44
|
value: void 0
|
|
34
45
|
});
|
|
46
|
+
/**
|
|
47
|
+
* Borrowed provider mailbox store, or null when this host cannot serve stored messages.
|
|
48
|
+
*/
|
|
35
49
|
Object.defineProperty(this, "mailboxer", {
|
|
36
50
|
enumerable: true,
|
|
37
51
|
configurable: true,
|
|
@@ -45,18 +59,27 @@ export class MailboxDirector {
|
|
|
45
59
|
writable: true,
|
|
46
60
|
value: void 0
|
|
47
61
|
});
|
|
62
|
+
/**
|
|
63
|
+
* Registered protocol topics, copied from construction input and extended by registerTopic.
|
|
64
|
+
*/
|
|
48
65
|
Object.defineProperty(this, "topics", {
|
|
49
66
|
enumerable: true,
|
|
50
67
|
configurable: true,
|
|
51
68
|
writable: true,
|
|
52
69
|
value: void 0
|
|
53
70
|
});
|
|
71
|
+
/**
|
|
72
|
+
* Live response finalizers joined before the provider store can close.
|
|
73
|
+
*/
|
|
54
74
|
Object.defineProperty(this, "streamCleanups", {
|
|
55
75
|
enumerable: true,
|
|
56
76
|
configurable: true,
|
|
57
77
|
writable: true,
|
|
58
78
|
value: new Set()
|
|
59
79
|
});
|
|
80
|
+
/**
|
|
81
|
+
* Terminal stream/correlation admission state.
|
|
82
|
+
*/
|
|
60
83
|
Object.defineProperty(this, "closed", {
|
|
61
84
|
enumerable: true,
|
|
62
85
|
configurable: true,
|
|
@@ -68,17 +91,21 @@ export class MailboxDirector {
|
|
|
68
91
|
this.queryCues = queryCues ?? new Deck();
|
|
69
92
|
this.topics = new Set(topics);
|
|
70
93
|
}
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Register one mailbox topic this runtime should poll/stream.
|
|
96
|
+
*
|
|
97
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
98
|
+
*/
|
|
76
99
|
registerTopic(topic) {
|
|
77
100
|
if (topic.length > 0) {
|
|
78
101
|
this.topics.add(topic);
|
|
79
102
|
}
|
|
80
103
|
}
|
|
81
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Snapshot the currently configured mailbox topic set.
|
|
106
|
+
*
|
|
107
|
+
* @returns Independent array snapshot of the configured topic set.
|
|
108
|
+
*/
|
|
82
109
|
registeredTopics() {
|
|
83
110
|
return [...this.topics];
|
|
84
111
|
}
|
|
@@ -99,7 +126,14 @@ export class MailboxDirector {
|
|
|
99
126
|
if (failures.length)
|
|
100
127
|
throw new AggregateError(failures, "Mailbox stream cleanup failed");
|
|
101
128
|
}
|
|
102
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Validate exact cursor ordinals before copying the caller's query positions.
|
|
131
|
+
*
|
|
132
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
133
|
+
* @param topics Topic-to-next-wanted ordinal map; each value must be a nonnegative safe integer.
|
|
134
|
+
* @returns A copied cursor map owned by this response.
|
|
135
|
+
* @throws RangeError for malformed prefix/map/ordinals.
|
|
136
|
+
*/
|
|
103
137
|
cursor(pre, topics) {
|
|
104
138
|
if (typeof pre !== "string" || !topics || typeof topics !== "object" || Array.isArray(topics)) {
|
|
105
139
|
throw new RangeError("Invalid mailbox topic metadata");
|
|
@@ -113,7 +147,11 @@ export class MailboxDirector {
|
|
|
113
147
|
}
|
|
114
148
|
return { ...topics };
|
|
115
149
|
}
|
|
116
|
-
/**
|
|
150
|
+
/**
|
|
151
|
+
* Queue a query cue for correlation with its mailbox response.
|
|
152
|
+
*
|
|
153
|
+
* @param cue Authorized stream request produced by protocol processing; the director owns later correlation consumption.
|
|
154
|
+
*/
|
|
117
155
|
retainQueryCue(cue) {
|
|
118
156
|
if (this.closed)
|
|
119
157
|
throw new Error("Mailbox query correlation is closed");
|
|
@@ -124,13 +162,24 @@ export class MailboxDirector {
|
|
|
124
162
|
* `pre/topic`.
|
|
125
163
|
*
|
|
126
164
|
* The returned index is the newly assigned mailbox event id for that topic.
|
|
165
|
+
*
|
|
166
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
167
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
168
|
+
* @param msg Complete already-authorized wire message to persist under this recipient/topic.
|
|
169
|
+
* @returns Assigned mailbox index; persistence is not remote consumption.
|
|
127
170
|
*/
|
|
128
171
|
publish(pre, topic, msg) {
|
|
129
172
|
const idx = this.lastIndex(pre, topic) + 1;
|
|
130
173
|
this.requireMailboxer().storeMsg(mailboxTopicKey(pre, topic), msg);
|
|
131
174
|
return idx;
|
|
132
175
|
}
|
|
133
|
-
/**
|
|
176
|
+
/**
|
|
177
|
+
* Return the latest stored publication index for one topic, or `-1`.
|
|
178
|
+
*
|
|
179
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
180
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
181
|
+
* @returns Latest stored insertion ordinal, or -1 for an empty topic.
|
|
182
|
+
*/
|
|
134
183
|
lastIndex(pre, topic) {
|
|
135
184
|
const count = this.requireMailboxer().tpcs.cntOn(mailboxTopicKey(pre, topic));
|
|
136
185
|
return count > 0 ? count - 1 : -1;
|
|
@@ -140,6 +189,11 @@ export class MailboxDirector {
|
|
|
140
189
|
*
|
|
141
190
|
* The returned index is the mailbox event id that should be reflected in the
|
|
142
191
|
* SSE `id:` field for the emitted message.
|
|
192
|
+
*
|
|
193
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
194
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
195
|
+
* @param from Inclusive insertion ordinal; default zero.
|
|
196
|
+
* @returns Synchronous iterator of ordinal/message pairs in storage order.
|
|
143
197
|
*/
|
|
144
198
|
*topicIter(pre, topic, from = 0) {
|
|
145
199
|
for (const [idx, , msg] of this.requireMailboxer().cloneTopicIter(mailboxTopicKey(pre, topic), from)) {
|
|
@@ -154,13 +208,26 @@ export class MailboxDirector {
|
|
|
154
208
|
* - emit one initial `retry:` hint
|
|
155
209
|
* - stream ordered mailbox payloads as `id/event/data`
|
|
156
210
|
* - close once the idle window expires without new mailbox traffic
|
|
211
|
+
*
|
|
212
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
213
|
+
* @param topicCursor Next wanted insertion ordinal for each requested topic; copied before streaming.
|
|
214
|
+
* @param options SSE retry hint, local polling interval, optional idle expiry and initial hint selection.
|
|
215
|
+
* @returns Demand-driven response tracked until EOF, cancellation or director close.
|
|
157
216
|
*/
|
|
158
217
|
streamMailbox(pre, topicCursor, options = {}) {
|
|
159
218
|
if (this.closed)
|
|
160
219
|
throw new Error("Mailbox stream is closed");
|
|
161
220
|
return this.mailboxStream(pre, this.cursor(pre, topicCursor), options, true);
|
|
162
221
|
}
|
|
163
|
-
/**
|
|
222
|
+
/**
|
|
223
|
+
* Own one demand-driven mailbox reader; query responses join their nested reader themselves.
|
|
224
|
+
*
|
|
225
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
226
|
+
* @param cursors Response-owned next-wanted ordinals, advanced as rows are framed.
|
|
227
|
+
* @param options Millisecond retry/poll/idle settings; null idle timeout keeps the response open.
|
|
228
|
+
* @param tracked Track direct responses here; nested query responses are joined by their outer owner.
|
|
229
|
+
* @returns SSE bytes in 64 KiB chunks; database iterators close before awaiting HTTP demand.
|
|
230
|
+
*/
|
|
164
231
|
mailboxStream(pre, cursors, { retryMs = 5000, pollIntervalMs = 50, idleTimeoutMs = 2000, emitRetryHeader = true, }, tracked) {
|
|
165
232
|
for (const value of [retryMs, pollIntervalMs, idleTimeoutMs]) {
|
|
166
233
|
if (value !== null && (!Number.isSafeInteger(value) || value < 0)) {
|
|
@@ -189,9 +256,11 @@ export class MailboxDirector {
|
|
|
189
256
|
wake?.();
|
|
190
257
|
parts = [];
|
|
191
258
|
};
|
|
259
|
+
/** Remove this direct stream from shutdown tracking after its pending pull settles. */
|
|
192
260
|
const finish = () => {
|
|
193
261
|
this.streamCleanups.delete(close);
|
|
194
262
|
};
|
|
263
|
+
/** Wake and join the pending pull once before forgetting this response owner. */
|
|
195
264
|
const cleanup = () => {
|
|
196
265
|
stop();
|
|
197
266
|
return closing ??= Promise.resolve(pending).finally(finish);
|
|
@@ -205,6 +274,11 @@ export class MailboxDirector {
|
|
|
205
274
|
return cleanup();
|
|
206
275
|
};
|
|
207
276
|
const readable = new ReadableStream({
|
|
277
|
+
/**
|
|
278
|
+
* Bind the Web stream controller before response demand begins.
|
|
279
|
+
*
|
|
280
|
+
* @param controller Web response controller retained for later pulls/shutdown.
|
|
281
|
+
*/
|
|
208
282
|
start(controller) {
|
|
209
283
|
stream = controller;
|
|
210
284
|
},
|
|
@@ -298,6 +372,10 @@ export class MailboxDirector {
|
|
|
298
372
|
* This mirrors KERIpy `QryRpyMailboxIterable` ownership closely: the HTTP
|
|
299
373
|
* route does not guess mailbox topics itself; it waits for mailbox query
|
|
300
374
|
* correlation to tell it what to stream.
|
|
375
|
+
*
|
|
376
|
+
* @param said Query SAID used to locate an already-authorized stream cue; correlation alone is not authorization.
|
|
377
|
+
* @param options Retry hint and query-cue polling interval in milliseconds; defaults 5000 and 50.
|
|
378
|
+
* @returns Request-owned SSE response that waits for its cue then proxies an unbounded mailbox reader.
|
|
301
379
|
*/
|
|
302
380
|
streamQueryResponse(said, { retryMs = 5000, pollIntervalMs = 50 } = {}) {
|
|
303
381
|
if (this.closed)
|
|
@@ -363,6 +441,9 @@ export class MailboxDirector {
|
|
|
363
441
|
return completed;
|
|
364
442
|
};
|
|
365
443
|
const readable = new ReadableStream({
|
|
444
|
+
/** Bind this nested response controller before the first pull.
|
|
445
|
+
* @param controller Web response controller used by pull and shutdown.
|
|
446
|
+
*/
|
|
366
447
|
start(controller) {
|
|
367
448
|
stream = controller;
|
|
368
449
|
},
|
|
@@ -433,11 +514,22 @@ export class MailboxDirector {
|
|
|
433
514
|
*
|
|
434
515
|
* Stored cursor rows track the last seen index, while the wire query asks for
|
|
435
516
|
* the next wanted index.
|
|
517
|
+
*
|
|
518
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
519
|
+
* @param witness Remote mailbox/witness endpoint AID, not the local signer.
|
|
520
|
+
* @returns Next-wanted ordinals (last consumed + 1, or zero) for registered topics.
|
|
436
521
|
*/
|
|
437
522
|
remoteQueryCursor(pre, witness) {
|
|
438
523
|
return mailboxQueryTopics(this.hby, pre, witness, this.topics);
|
|
439
524
|
}
|
|
440
|
-
/**
|
|
525
|
+
/**
|
|
526
|
+
* Persist one consumed remote mailbox index for one `(pre, witness, topic)`.
|
|
527
|
+
*
|
|
528
|
+
* @param pre AID whose mailbox or accepted state is addressed.
|
|
529
|
+
* @param witness Remote endpoint AID.
|
|
530
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
531
|
+
* @param idx Last successfully consumed insertion ordinal, not the next requested ordinal.
|
|
532
|
+
*/
|
|
441
533
|
updateRemoteCursor(pre, witness, topic, idx) {
|
|
442
534
|
updateMailboxRemoteCursor(this.hby, pre, witness, topic, idx);
|
|
443
535
|
}
|
|
@@ -447,6 +539,9 @@ export class MailboxDirector {
|
|
|
447
539
|
*
|
|
448
540
|
* This keeps query correlation observable without consuming cues that later
|
|
449
541
|
* host work still needs.
|
|
542
|
+
*
|
|
543
|
+
* @param said Exact query SAID whose stream request is sought.
|
|
544
|
+
* @returns Whether a matching request exists.
|
|
450
545
|
*/
|
|
451
546
|
hasQueryCue(said) {
|
|
452
547
|
for (const cue of this.queryCues) {
|
|
@@ -455,7 +550,12 @@ export class MailboxDirector {
|
|
|
455
550
|
}
|
|
456
551
|
return false;
|
|
457
552
|
}
|
|
458
|
-
/**
|
|
553
|
+
/**
|
|
554
|
+
* Select the first matching owner without re-admission or changing preceding cue order.
|
|
555
|
+
*
|
|
556
|
+
* @param said Exact query SAID whose stream request is sought.
|
|
557
|
+
* @returns Removed matching cue, or null; other cues retain their order.
|
|
558
|
+
*/
|
|
459
559
|
takeQueryCue(said) {
|
|
460
560
|
let preceding = 0;
|
|
461
561
|
for (const cue of this.queryCues) {
|
|
@@ -472,7 +572,12 @@ export class MailboxDirector {
|
|
|
472
572
|
}
|
|
473
573
|
return null;
|
|
474
574
|
}
|
|
475
|
-
/**
|
|
575
|
+
/**
|
|
576
|
+
* Require provider mailbox storage for publication or mailbox serving.
|
|
577
|
+
*
|
|
578
|
+
* @returns Borrowed provider store.
|
|
579
|
+
* @throws ValidationError when storage is absent.
|
|
580
|
+
*/
|
|
476
581
|
requireMailboxer() {
|
|
477
582
|
if (!this.mailboxer) {
|
|
478
583
|
throw new ValidationError("Provider mailbox storage is unavailable for this runtime.");
|