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
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/** Recipient mailbox polling: signed queries, awaited SSE intake and persisted cursor progression. */
|
|
2
|
+
import { call, scoped, spawn } from "effection";
|
|
3
|
+
import { abortable } from "../runtime/abortable.js";
|
|
4
|
+
import { runtimeTurn } from "../runtime/runtime-turn.js";
|
|
5
|
+
import { isLegacyCesrMediaRejection, readResponseDetail } from "../transport/cesr-egress.js";
|
|
6
|
+
import { buildCesrRequest, CESR_CONTENT_TYPE, KERIPY_CESR_JSON_CONTENT_TYPE } from "../transport/cesr-http.js";
|
|
7
|
+
import { requestWithHeaderTimeout } from "../transport/httping.js";
|
|
8
|
+
import { consumeMailboxSse } from "./mailbox-sse.js";
|
|
9
|
+
import { mailboxPollEndpoints } from "./mailboxing.js";
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve recipient messages from remote mailbox or witness endpoints over HTTP/SSE.
|
|
12
|
+
*
|
|
13
|
+
* Each endpoint has an independent worker and durable progress in the director.
|
|
14
|
+
* Retrieved records are lent to the awaited consumer; protocol intake stays outside.
|
|
15
|
+
* A provider store in the same runtime is never scanned for local recipient input.
|
|
16
|
+
*/
|
|
17
|
+
export class MailboxPoller {
|
|
18
|
+
/**
|
|
19
|
+
* Bind polling inputs and dependencies without starting workers or acquiring stores.
|
|
20
|
+
*
|
|
21
|
+
* @param hby Borrowed local identities and accepted-state stores.
|
|
22
|
+
* @param mailboxDirector Borrowed provider/topic/cursor owner.
|
|
23
|
+
* @param http Borrowed HTTP implementation selected by composition.
|
|
24
|
+
* @param clock Borrowed clock with epoch-millisecond now and millisecond timer delays.
|
|
25
|
+
* @param options Optional timeout overrides; finite positive values are floored with a 1 ms minimum. Missing/nonpositive/nonfinite values use 5-second headers and 30-second poll windows.
|
|
26
|
+
*/
|
|
27
|
+
constructor(hby, mailboxDirector, http, clock, options = {}) {
|
|
28
|
+
/** Borrowed habitat collection used to select mailbox signers. */
|
|
29
|
+
Object.defineProperty(this, "hby", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
/** Shared provider topics and persisted remote cursors. */
|
|
36
|
+
Object.defineProperty(this, "mailboxDirector", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: void 0
|
|
41
|
+
});
|
|
42
|
+
/** Existing request-open and SSE-window settings, normalized once. */
|
|
43
|
+
Object.defineProperty(this, "timeoutPolicy", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: void 0
|
|
48
|
+
});
|
|
49
|
+
/** Borrowed HTTP client passed to each polling attempt. */
|
|
50
|
+
Object.defineProperty(this, "http", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
configurable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
value: void 0
|
|
55
|
+
});
|
|
56
|
+
/** Borrowed clock for this owner's actual network deadlines. */
|
|
57
|
+
Object.defineProperty(this, "clock", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
value: void 0
|
|
62
|
+
});
|
|
63
|
+
const { timeouts } = options;
|
|
64
|
+
this.hby = hby;
|
|
65
|
+
this.mailboxDirector = mailboxDirector;
|
|
66
|
+
this.timeoutPolicy = normalizeMailboxPollingTimeoutPolicy(timeouts);
|
|
67
|
+
this.http = http;
|
|
68
|
+
this.clock = clock;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Register one mailbox topic that this poller should retrieve.
|
|
72
|
+
*
|
|
73
|
+
* @param topic Protocol mailbox topic; leading slash is normalized where required.
|
|
74
|
+
*/
|
|
75
|
+
registerTopic(topic) {
|
|
76
|
+
this.mailboxDirector.registerTopic(topic);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Poll forever, streaming typed batches into one sink.
|
|
80
|
+
*
|
|
81
|
+
* Each remote endpoint progresses independently, and awaits the consumer before
|
|
82
|
+
* reading the next event or advancing its persisted cursor.
|
|
83
|
+
*
|
|
84
|
+
* @param onBatch Awaited endpoint-batch consumer; the durable event cursor advances only after it succeeds. Failure or cancellation leaves that event available for later retrieval.
|
|
85
|
+
* @throws Consumer/transport failures propagate; endpoint workers are joined on scope exit.
|
|
86
|
+
*/
|
|
87
|
+
*pollDo(onBatch) {
|
|
88
|
+
const remoteWorkers = new Map();
|
|
89
|
+
try {
|
|
90
|
+
while (true) {
|
|
91
|
+
const topics = this.mailboxDirector.registeredTopics();
|
|
92
|
+
yield* this.syncRemoteWorkers(remoteWorkers, onBatch, topics);
|
|
93
|
+
yield* runtimeTurn();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
for (const task of [...remoteWorkers.values()].reverse()) {
|
|
98
|
+
yield* task.halt();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Stream one remote response through its consumer before recording cursor progress.
|
|
104
|
+
*
|
|
105
|
+
* @param target Mailbox subject habitat plus the actual local signer (a member for groups).
|
|
106
|
+
* @param endpoint Selected remote endpoint AID and HTTP(S) URL.
|
|
107
|
+
* @param onBatch Awaited consumer; successful completion precedes durable cursor advancement.
|
|
108
|
+
*/
|
|
109
|
+
*pollRemoteEndpointOnce(target, endpoint, onBatch) {
|
|
110
|
+
const cursor = this.mailboxDirector.remoteQueryCursor(target.targetPre, endpoint.eid);
|
|
111
|
+
// deno-lint-ignore no-this-alias -- Generator callbacks have no lexical this.
|
|
112
|
+
const self = this;
|
|
113
|
+
// The concrete HTTP/SSE operation owns and joins this whole poll attempt.
|
|
114
|
+
yield* call(() => fetchMailboxMessages(target.signerHab, target.targetPre, endpoint.eid, endpoint.url, cursor, mailboxFetchTimeoutPolicy(this.timeoutPolicy), this.http, this.clock, function* deliverThenAdvanceCursor(message) {
|
|
115
|
+
yield* call(() => onBatch({ pre: target.targetPre, eid: endpoint.eid, messages: [message.msg] }));
|
|
116
|
+
self.mailboxDirector.updateRemoteCursor(target.targetPre, endpoint.eid, message.topic, message.idx);
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Keep one long-lived worker running for each currently configured remote endpoint.
|
|
121
|
+
*
|
|
122
|
+
* @param remoteWorkers Owned worker map, mutated to match current endpoint selection.
|
|
123
|
+
* @param onBatch Shared awaited consumer used independently by each endpoint worker.
|
|
124
|
+
* @param topics Current registered topics; no topics means no remote workers.
|
|
125
|
+
*/
|
|
126
|
+
*syncRemoteWorkers(remoteWorkers, onBatch, topics) {
|
|
127
|
+
const active = new Set();
|
|
128
|
+
if (topics.length > 0) {
|
|
129
|
+
for (const target of this.remotePollTargets()) {
|
|
130
|
+
for (const endpoint of mailboxPollEndpoints(target.hab)) {
|
|
131
|
+
const workerKey = `${target.targetPre}:${endpoint.key}`;
|
|
132
|
+
active.add(workerKey);
|
|
133
|
+
if (remoteWorkers.has(workerKey)) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const task = yield* spawn(() => this.remoteEndpointWorker(target, endpoint, onBatch));
|
|
137
|
+
remoteWorkers.set(workerKey, task);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
for (const [workerKey, task] of [...remoteWorkers.entries()]) {
|
|
142
|
+
if (active.has(workerKey)) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
yield* task.halt();
|
|
146
|
+
remoteWorkers.delete(workerKey);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Poll one remote endpoint continuously in the long-lived runtime shape.
|
|
151
|
+
*
|
|
152
|
+
* This keeps KERIpy's "one poller per endpoint" behavior while preserving
|
|
153
|
+
* `keri-ts`'s split between mailbox transport and runtime parser ownership.
|
|
154
|
+
*
|
|
155
|
+
* @param target Mailbox subject habitat plus the actual local signer (a member for groups).
|
|
156
|
+
* @param endpoint Selected remote endpoint AID and HTTP(S) URL.
|
|
157
|
+
* @param onBatch Awaited consumer; successful completion precedes durable cursor advancement.
|
|
158
|
+
*/
|
|
159
|
+
*remoteEndpointWorker(target, endpoint, onBatch) {
|
|
160
|
+
while (true) {
|
|
161
|
+
yield* this.pollRemoteEndpointOnce(target, endpoint, onBatch);
|
|
162
|
+
yield* runtimeTurn();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Select locally pollable subjects without substituting the group for its member signer.
|
|
167
|
+
*
|
|
168
|
+
* @returns Local subject/signing pairs; groups without an available local member are omitted.
|
|
169
|
+
*/
|
|
170
|
+
remotePollTargets() {
|
|
171
|
+
const targets = [];
|
|
172
|
+
for (const hab of this.hby.habs.values()) {
|
|
173
|
+
const signerHab = this.pollSignerHab(hab);
|
|
174
|
+
if (!signerHab) {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
targets.push({ hab, targetPre: hab.pre, signerHab });
|
|
178
|
+
}
|
|
179
|
+
return targets;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Choose the actual local signer for a subject's mailbox query.
|
|
183
|
+
*
|
|
184
|
+
* @param hab Local subject habitat, possibly a group.
|
|
185
|
+
* @returns The habitat itself, or its available local group member; null when unresolved.
|
|
186
|
+
*/
|
|
187
|
+
pollSignerHab(hab) {
|
|
188
|
+
if (!this.hby.db.groups.has(hab.pre)) {
|
|
189
|
+
return hab;
|
|
190
|
+
}
|
|
191
|
+
const mid = this.hby.db.getHab(hab.pre)?.mid;
|
|
192
|
+
if (!mid) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
return this.hby.habs.get(mid) ?? null;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Default header acquisition (5 seconds) and absolute poll window (30 seconds).
|
|
200
|
+
*/
|
|
201
|
+
Object.defineProperty(MailboxPoller, "DefaultTimeoutPolicy", {
|
|
202
|
+
enumerable: true,
|
|
203
|
+
configurable: true,
|
|
204
|
+
writable: true,
|
|
205
|
+
value: Object.freeze({
|
|
206
|
+
requestOpenTimeoutMs: 5_000,
|
|
207
|
+
maxPollDurationMs: 30_000,
|
|
208
|
+
})
|
|
209
|
+
});
|
|
210
|
+
/**
|
|
211
|
+
* Idle read window after the first complete event, in milliseconds.
|
|
212
|
+
*/
|
|
213
|
+
Object.defineProperty(MailboxPoller, "ReadIdleTimeoutMs", {
|
|
214
|
+
enumerable: true,
|
|
215
|
+
configurable: true,
|
|
216
|
+
writable: true,
|
|
217
|
+
value: 500
|
|
218
|
+
});
|
|
219
|
+
/**
|
|
220
|
+
* Query one endpoint and consume complete SSE events within one request scope.
|
|
221
|
+
* Header timeout or non-success status ends this attempt without events. Successful
|
|
222
|
+
* body processing and its cleanup finish before the endpoint worker begins another poll.
|
|
223
|
+
* The sole alternate submission is the exact pre-intake KERIpy media refusal:
|
|
224
|
+
* drain/close that request, then reuse the same signed query and attachments with
|
|
225
|
+
* legacy metadata. Authentication or protocol refusals do not take that branch.
|
|
226
|
+
* consume runs inline and is awaited before the caller persists its cursor; this
|
|
227
|
+
* callback is a scoped event-consumer boundary, not deferred workflow scheduling.
|
|
228
|
+
*
|
|
229
|
+
* @param hab Local signing habitat; its state/store lifetime remains with the caller.
|
|
230
|
+
* @param targetPre Mailbox subject AID; may be a group distinct from hab.
|
|
231
|
+
* @param src Remote mailbox attester AID.
|
|
232
|
+
* @param url Selected HTTP(S) polling endpoint.
|
|
233
|
+
* @param topics Next-wanted ordinals by topic.
|
|
234
|
+
* @param timeouts Header, absolute read and idle windows in milliseconds.
|
|
235
|
+
* @param http Borrowed HTTP implementation selected by composition.
|
|
236
|
+
* @param clock Borrowed clock with epoch-millisecond now and millisecond timer delays.
|
|
237
|
+
* @param consume Awaited complete-event consumer; false stops the poll and errors propagate before remote cursor advancement.
|
|
238
|
+
*/
|
|
239
|
+
function* fetchMailboxMessages(hab, targetPre, src, url, topics, timeouts, http, clock, consume) {
|
|
240
|
+
const query = hab.query(targetPre, src, { route: "mbx", q: { topics } });
|
|
241
|
+
const prepared = buildCesrRequest(query, { destination: src });
|
|
242
|
+
for (const contentType of [CESR_CONTENT_TYPE, KERIPY_CESR_JSON_CONTENT_TYPE]) {
|
|
243
|
+
const alternate = yield* scoped(function* () {
|
|
244
|
+
const controller = new AbortController();
|
|
245
|
+
const request = {
|
|
246
|
+
method: "POST",
|
|
247
|
+
headers: { ...prepared.headers, "Content-Type": contentType },
|
|
248
|
+
body: prepared.body,
|
|
249
|
+
signal: controller.signal,
|
|
250
|
+
};
|
|
251
|
+
const response = yield* requestWithHeaderTimeout(http, clock, url, request, timeouts.requestOpenTimeoutMs);
|
|
252
|
+
if (!response)
|
|
253
|
+
return false;
|
|
254
|
+
if (!response.ok) {
|
|
255
|
+
const detail = yield* abortable(signal => readResponseDetail(response, signal));
|
|
256
|
+
return isLegacyCesrMediaRejection(request, response.status, detail);
|
|
257
|
+
}
|
|
258
|
+
yield* consumeMailboxSse(response, controller, consume, clock, {
|
|
259
|
+
idleTimeoutMs: timeouts.readIdleTimeoutMs,
|
|
260
|
+
maxDurationMs: timeouts.maxReadDurationMs,
|
|
261
|
+
});
|
|
262
|
+
return false;
|
|
263
|
+
});
|
|
264
|
+
// Closing the refused request is part of the scoped operation above. A close
|
|
265
|
+
// failure escapes before another request can submit these same signed bytes.
|
|
266
|
+
if (!alternate)
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Normalize the caller's polling policy against the existing defaults.
|
|
272
|
+
*
|
|
273
|
+
* @param overrides Optional timeout values; missing/nonpositive/nonfinite values use defaults.
|
|
274
|
+
* @returns Frozen header/poll settings with finite positive inputs floored and clamped to at least 1 ms.
|
|
275
|
+
*/
|
|
276
|
+
function normalizeMailboxPollingTimeoutPolicy(overrides) {
|
|
277
|
+
const defaults = MailboxPoller.DefaultTimeoutPolicy;
|
|
278
|
+
return Object.freeze({
|
|
279
|
+
requestOpenTimeoutMs: positiveTimeoutMs(overrides?.requestOpenTimeoutMs, defaults.requestOpenTimeoutMs),
|
|
280
|
+
maxPollDurationMs: positiveTimeoutMs(overrides?.maxPollDurationMs, defaults.maxPollDurationMs),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Translate poller windows into the concrete request/SSE settings.
|
|
285
|
+
*
|
|
286
|
+
* @param timeouts Normalized poller policy.
|
|
287
|
+
* @returns Per-attempt windows with the fixed 500 ms read-idle interval.
|
|
288
|
+
*/
|
|
289
|
+
function mailboxFetchTimeoutPolicy(timeouts) {
|
|
290
|
+
return {
|
|
291
|
+
requestOpenTimeoutMs: timeouts.requestOpenTimeoutMs,
|
|
292
|
+
maxReadDurationMs: timeouts.maxPollDurationMs,
|
|
293
|
+
readIdleTimeoutMs: MailboxPoller.ReadIdleTimeoutMs,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Normalize a polling duration without turning a positive override into a zero-length window.
|
|
298
|
+
*
|
|
299
|
+
* @param value Optional proposed duration in milliseconds.
|
|
300
|
+
* @param fallback Default used for missing, nonfinite or nonpositive input.
|
|
301
|
+
* @returns Finite positive input floored with a 1 ms minimum; otherwise fallback.
|
|
302
|
+
*/
|
|
303
|
+
function positiveTimeoutMs(value, fallback) {
|
|
304
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.max(1, Math.floor(value)) : fallback;
|
|
305
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { call, resource } from "effection";
|
|
2
|
+
import { abortable, cleanupFailures } from "../runtime/abortable.js";
|
|
3
|
+
/** Shared encoder for complete mailbox event payloads. */
|
|
4
|
+
const textEncoder = new TextEncoder();
|
|
5
|
+
/**
|
|
6
|
+
* Decode one complete SSE block; an unterminated block is never delivered.
|
|
7
|
+
*
|
|
8
|
+
* @param lines Lines of one blank-line-terminated SSE block, without line endings.
|
|
9
|
+
* @returns Decoded ordinal/topic/message, or undefined for incomplete/invalid metadata.
|
|
10
|
+
*/
|
|
11
|
+
function eventMessage(lines) {
|
|
12
|
+
let idx = -1;
|
|
13
|
+
let topic = "";
|
|
14
|
+
const data = [];
|
|
15
|
+
for (const line of lines) {
|
|
16
|
+
const colon = line.indexOf(":");
|
|
17
|
+
const field = colon < 0 ? line : line.slice(0, colon);
|
|
18
|
+
let value = colon < 0 ? "" : line.slice(colon + 1);
|
|
19
|
+
// SSE removes exactly one optional space, not meaningful payload whitespace.
|
|
20
|
+
if (value.startsWith(" "))
|
|
21
|
+
value = value.slice(1);
|
|
22
|
+
if (field === "id")
|
|
23
|
+
idx = /^\d+$/.test(value) ? Number(value) : -1;
|
|
24
|
+
else if (field === "event")
|
|
25
|
+
topic = value;
|
|
26
|
+
else if (field === "data")
|
|
27
|
+
data.push(value);
|
|
28
|
+
}
|
|
29
|
+
if (!Number.isSafeInteger(idx) || idx < 0 || !topic || !data.length)
|
|
30
|
+
return;
|
|
31
|
+
return { idx, topic, msg: textEncoder.encode(data.join("\n")) };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Geometric byte growth keeps fragmentation from creating one retained metadata entry per chunk.
|
|
35
|
+
*
|
|
36
|
+
* @param bytes Current owned backing buffer.
|
|
37
|
+
* @param size Number of populated bytes already retained.
|
|
38
|
+
* @param chunk Next fragment to append.
|
|
39
|
+
* @returns Original or grown buffer containing the appended bytes.
|
|
40
|
+
*/
|
|
41
|
+
function appendBytes(bytes, size, chunk) {
|
|
42
|
+
if (size + chunk.length > bytes.length) {
|
|
43
|
+
const grown = new Uint8Array(Math.max(size + chunk.length, 1024, bytes.length * 2));
|
|
44
|
+
grown.set(bytes.subarray(0, size));
|
|
45
|
+
bytes = grown;
|
|
46
|
+
}
|
|
47
|
+
bytes.set(chunk, size);
|
|
48
|
+
return bytes;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Consume complete mailbox events with backpressure from the awaited consumer.
|
|
52
|
+
* Returning false stops the poll without acknowledging an unread event. Timeout,
|
|
53
|
+
* EOF, and cancellation discard an incomplete final event so its cursor can retry.
|
|
54
|
+
* The consumer is immediately awaited in this read owner, not scheduled or queued.
|
|
55
|
+
* Keeping consumer failure inside this scope lets cleanup retain both failures;
|
|
56
|
+
* a borrowed pull iterator alone cannot observe a later consumer exception.
|
|
57
|
+
*
|
|
58
|
+
* @param response Borrowed streaming HTTP response; caller keeps its scope open through this operation.
|
|
59
|
+
* @param controller Body cancellation owner aborted when the poll window ends.
|
|
60
|
+
* @param consume Awaited complete-event consumer; false stops the poll and errors propagate before remote cursor advancement.
|
|
61
|
+
* @param clock Borrowed clock with epoch-millisecond now and millisecond timer delays.
|
|
62
|
+
* @param options Positive idle/absolute windows in milliseconds and optional upstream signal; defaults 500 and 30000.
|
|
63
|
+
* @throws External cancellation and genuine read/consumer/cleanup errors remain visible; owned window expiry ends the poll.
|
|
64
|
+
*/
|
|
65
|
+
export function consumeMailboxSse(response, controller, consume, clock, options = {}) {
|
|
66
|
+
return call(function* () {
|
|
67
|
+
let lines = [];
|
|
68
|
+
let lineBytes = new Uint8Array(0);
|
|
69
|
+
let lineSize = 0;
|
|
70
|
+
const decoder = new TextDecoder();
|
|
71
|
+
let completed = false;
|
|
72
|
+
yield* consumeChunks(response, controller, function* consumeCompleteEvents(chunk) {
|
|
73
|
+
let start = 0;
|
|
74
|
+
for (let index = 0; index < chunk.length; index++) {
|
|
75
|
+
if (chunk[index] !== 10)
|
|
76
|
+
continue;
|
|
77
|
+
lineBytes = appendBytes(lineBytes, lineSize, chunk.subarray(start, index));
|
|
78
|
+
lineSize += index - start;
|
|
79
|
+
let line = decoder.decode(lineBytes.subarray(0, lineSize));
|
|
80
|
+
if (line.endsWith("\r"))
|
|
81
|
+
line = line.slice(0, -1);
|
|
82
|
+
lineSize = 0;
|
|
83
|
+
start = index + 1;
|
|
84
|
+
if (line) {
|
|
85
|
+
lines.push(line);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const message = eventMessage(lines);
|
|
89
|
+
lines = [];
|
|
90
|
+
if (message) {
|
|
91
|
+
completed = true;
|
|
92
|
+
if ((yield* consume(message)) === false)
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (start < chunk.length) {
|
|
98
|
+
lineBytes = appendBytes(lineBytes, lineSize, chunk.subarray(start));
|
|
99
|
+
lineSize += chunk.length - start;
|
|
100
|
+
}
|
|
101
|
+
}, clock, options, () => completed);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Collect a raw SSE diagnostic report for one poll window. Production polling
|
|
106
|
+
* uses consumeMailboxSse to deliver complete events as they arrive.
|
|
107
|
+
*
|
|
108
|
+
* @param response Borrowed streaming HTTP response; caller keeps its scope open through this operation.
|
|
109
|
+
* @param controller Body cancellation owner aborted when the poll window ends.
|
|
110
|
+
* @param clock Borrowed clock with epoch-millisecond now and millisecond timer delays.
|
|
111
|
+
* @param options Positive idle/absolute windows in milliseconds and optional upstream signal; defaults 500 and 30000.
|
|
112
|
+
* @returns Collected text from this bounded diagnostic window.
|
|
113
|
+
* @throws External cancellation and genuine read/consumer/cleanup errors remain visible; owned window expiry ends the poll.
|
|
114
|
+
*/
|
|
115
|
+
export function readMailboxSseBody(response, controller, clock, options = {}) {
|
|
116
|
+
return call(function* () {
|
|
117
|
+
const decoder = new TextDecoder();
|
|
118
|
+
let bytes = new Uint8Array(0);
|
|
119
|
+
let size = 0;
|
|
120
|
+
let blockStart = 0;
|
|
121
|
+
let completed = false;
|
|
122
|
+
yield* consumeChunks(response, controller, function* collectDiagnosticChunk(chunk) {
|
|
123
|
+
bytes = appendBytes(bytes, size, chunk);
|
|
124
|
+
const end = size + chunk.length;
|
|
125
|
+
// Inspect each terminated block once. A retry/comment header alone must not start the idle deadline.
|
|
126
|
+
for (let index = size; !completed && index < end; index++) {
|
|
127
|
+
if (bytes[index] !== 10)
|
|
128
|
+
continue;
|
|
129
|
+
if (bytes[index - 1] === 10
|
|
130
|
+
|| (bytes[index - 1] === 13 && bytes[index - 2] === 10 && bytes[index - 3] === 13)) {
|
|
131
|
+
completed = parseMailboxSse(decoder.decode(bytes.subarray(blockStart, index + 1))).length > 0;
|
|
132
|
+
blockStart = index + 1;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
size = end;
|
|
136
|
+
}, clock, options, () => completed);
|
|
137
|
+
return new TextDecoder().decode(bytes.subarray(0, size));
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Parse only terminated events from an already finite diagnostic report.
|
|
142
|
+
*
|
|
143
|
+
* @param text Finite diagnostic response text; an unterminated final block is ignored.
|
|
144
|
+
* @returns Complete valid mailbox events in received order.
|
|
145
|
+
*/
|
|
146
|
+
export function parseMailboxSse(text) {
|
|
147
|
+
return text.replaceAll("\r\n", "\n").split("\n\n").slice(0, -1)
|
|
148
|
+
.map((block) => eventMessage(block.split("\n")))
|
|
149
|
+
.filter((message) => message !== undefined);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Apply SSE deadlines to the owned byte source; the HTTP client retains native reader mechanics.
|
|
153
|
+
*
|
|
154
|
+
* @param response Borrowed streaming HTTP response; caller keeps its scope open through this operation.
|
|
155
|
+
* @param controller Body cancellation owner aborted when the poll window ends.
|
|
156
|
+
* @param consume Awaited byte-chunk consumer; false ends this window.
|
|
157
|
+
* @param clock Borrowed clock with epoch-millisecond now and millisecond timer delays.
|
|
158
|
+
* @param options Positive idle/absolute windows in milliseconds and optional upstream signal; defaults 500 and 30000.
|
|
159
|
+
* @param hasEvent Reports whether a complete event has arrived, enabling the shorter idle deadline.
|
|
160
|
+
* @throws External cancellation and genuine read/consumer/cleanup errors remain visible; owned window expiry ends the poll.
|
|
161
|
+
*/
|
|
162
|
+
function* consumeChunks(response, controller, consume, clock, options, hasEvent) {
|
|
163
|
+
const { idleTimeoutMs = 500, maxDurationMs = 30_000 } = options;
|
|
164
|
+
for (const value of [idleTimeoutMs, maxDurationMs]) {
|
|
165
|
+
if (!Number.isSafeInteger(value) || value < 1)
|
|
166
|
+
throw new RangeError("Invalid mailbox SSE timeout");
|
|
167
|
+
}
|
|
168
|
+
const iterator = response.body(controller.signal)[Symbol.asyncIterator]();
|
|
169
|
+
let pending;
|
|
170
|
+
let reported;
|
|
171
|
+
// Deadline cancellation wakes a blocked source read before teardown joins its iterator.
|
|
172
|
+
yield* resource(function* (provide) {
|
|
173
|
+
try {
|
|
174
|
+
yield* provide();
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
controller.abort();
|
|
178
|
+
const errors = [];
|
|
179
|
+
yield* call(async () => {
|
|
180
|
+
/**
|
|
181
|
+
* Preserve cleanup failures other than the owned abort and already reported read failure.
|
|
182
|
+
* @param error Rejection from the pending read or iterator return.
|
|
183
|
+
*/
|
|
184
|
+
const remember = (error) => {
|
|
185
|
+
for (const remaining of cleanupFailures(error, controller.signal)) {
|
|
186
|
+
if (!(reported && remaining === reported.error) && !errors.includes(remaining))
|
|
187
|
+
errors.push(remaining);
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
try {
|
|
191
|
+
await pending;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
remember(error);
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
await iterator.return?.();
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
remember(error);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
if (errors.length && reported)
|
|
204
|
+
errors.unshift(reported.error);
|
|
205
|
+
// deno-lint-ignore no-unsafe-finally -- Keep actual source cleanup failure visible during cancellation.
|
|
206
|
+
if (errors.length === 1)
|
|
207
|
+
throw errors[0];
|
|
208
|
+
// deno-lint-ignore no-unsafe-finally -- Preserve the source failure alongside distinct cleanup failures.
|
|
209
|
+
if (errors.length)
|
|
210
|
+
throw new AggregateError(errors, "Mailbox SSE source and cleanup failed");
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
const deadline = clock.now() + maxDurationMs;
|
|
214
|
+
try {
|
|
215
|
+
while (clock.now() < deadline) {
|
|
216
|
+
const wait = Math.max(1, Math.min(hasEvent() ? idleTimeoutMs : maxDurationMs, deadline - clock.now()));
|
|
217
|
+
const next = yield* abortable(async (signal) => {
|
|
218
|
+
// This is application window policy, not native HTTP failure classification.
|
|
219
|
+
/** Wake the native body read before this child can be joined during cancellation. */
|
|
220
|
+
const cancel = () => controller.abort(signal.reason);
|
|
221
|
+
signal.addEventListener("abort", cancel, { once: true });
|
|
222
|
+
if (signal.aborted)
|
|
223
|
+
cancel();
|
|
224
|
+
let timer;
|
|
225
|
+
pending = iterator.next();
|
|
226
|
+
try {
|
|
227
|
+
const result = await Promise.race([
|
|
228
|
+
pending,
|
|
229
|
+
new Promise((resolve) => {
|
|
230
|
+
timer = clock.setTimeout(() => resolve(undefined), wait);
|
|
231
|
+
}),
|
|
232
|
+
]);
|
|
233
|
+
if (!result)
|
|
234
|
+
controller.abort();
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
finally {
|
|
238
|
+
if (timer !== undefined)
|
|
239
|
+
clock.clearTimeout(timer);
|
|
240
|
+
signal.removeEventListener("abort", cancel);
|
|
241
|
+
await pending.catch(() => undefined);
|
|
242
|
+
}
|
|
243
|
+
}, options.signal ? AbortSignal.any([controller.signal, options.signal]) : controller.signal);
|
|
244
|
+
if (!next || next.done)
|
|
245
|
+
return;
|
|
246
|
+
if (next.value.length && (yield* consume(next.value)) === false)
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
reported = { error };
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
}
|