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,6 +1,7 @@
|
|
|
1
|
-
import { decodeB64, Decrypter, Diger, Encrypter, hydrateMatter, intToB64, MtrDex, NumberPrimitive, NumDex, parseMatter, Saider, Salter, Signer, Tiers, Verfer, } from "cesr-ts";
|
|
1
|
+
import { decodeB64, Decrypter, Diger, Encrypter, hydrateMatter, intToB64, MtrDex, NumberPrimitive, NumDex, parseMatter, Prefixer, Saider, Salter, Signer, Tiers, Verfer, } from "cesr-ts";
|
|
2
2
|
import { b } from "cesr-ts";
|
|
3
|
-
import {
|
|
3
|
+
import { ValidationError } from "../../core/errors.js";
|
|
4
|
+
import { PubLot } from "../../db/keeping.js";
|
|
4
5
|
/**
|
|
5
6
|
* Root key-creation strategy selectors stored in keeper globals.
|
|
6
7
|
*
|
|
@@ -207,7 +208,7 @@ function emptyLot(dt = "") {
|
|
|
207
208
|
* - `randy` and `salty` creator algorithms are live; `group` and `extern`
|
|
208
209
|
* remain explicit unsupported-algorithm seams
|
|
209
210
|
* - AEID handling now includes real sealed-box encryption for keeper-global
|
|
210
|
-
* salt, per-prefix salts, and
|
|
211
|
+
* salt, per-prefix salts, signer seeds and registry roots, while keeping the encrypted
|
|
211
212
|
* runtime dependency local to the KERI package instead of CESR
|
|
212
213
|
* - readonly opens intentionally avoid keeper mutation so visibility commands
|
|
213
214
|
* can inspect stores without side effects
|
|
@@ -361,76 +362,79 @@ export class Manager {
|
|
|
361
362
|
* Re-encryption scope:
|
|
362
363
|
* - keeper-global root salt in `gbls.salt`
|
|
363
364
|
* - per-prefix salts in `prms.salt`
|
|
364
|
-
* - signer seeds in `pris.`
|
|
365
|
+
* - signer seeds in `pris.` and Salt128 registry roots in `rroots.`
|
|
365
366
|
*
|
|
366
367
|
* Behavior matrix:
|
|
367
368
|
* - `current AEID -> same AEID`: validate and keep stable
|
|
368
369
|
* - `current AEID -> new AEID`: decrypt with old seed, re-encrypt with new
|
|
369
370
|
* public box key
|
|
370
|
-
* - `current AEID -> empty`:
|
|
371
|
-
* - `empty -> new AEID`: encrypt
|
|
371
|
+
* - `current AEID -> empty`: refuse retained registry roots; otherwise persist plaintext secrets
|
|
372
|
+
* - `empty -> new AEID`: encrypt existing and subsequently managed secrets
|
|
372
373
|
*
|
|
373
374
|
* Failure model:
|
|
374
375
|
* - current seed must authenticate the currently stored AEID before any
|
|
375
376
|
* secret migration is attempted
|
|
376
377
|
* - new seed must authenticate the new AEID before any re-encryption is
|
|
377
378
|
* attempted
|
|
379
|
+
* - Keeper owns one synchronous native transaction for all affected rows;
|
|
380
|
+
* refusal or failure leaves durable and live crypto state unchanged
|
|
381
|
+
* - publish encrypter/decrypter/seed only after that transaction commits;
|
|
382
|
+
* readonly and borrowed-writer changes are refused
|
|
378
383
|
*/
|
|
379
384
|
updateAeid(aeid, seed) {
|
|
380
385
|
const currentAeid = this.aeid;
|
|
381
|
-
if (currentAeid) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
this.salt = salt;
|
|
386
|
+
if (currentAeid && (!this.seed || !new Encrypter({ verkey: currentAeid }).verifySeed(this.seed))) {
|
|
387
|
+
throw new Error(`Last seed missing or provided last seed not associated with last aeid=${currentAeid}.`);
|
|
388
|
+
}
|
|
389
|
+
const encrypter = aeid ? new Encrypter({ verkey: aeid }) : null;
|
|
390
|
+
if (encrypter && (!seed || !encrypter.verifySeed(seed))) {
|
|
391
|
+
throw new Error(`Seed missing or provided seed not associated with aeid=${aeid}.`);
|
|
392
|
+
}
|
|
393
|
+
const decrypter = seed ? new Decrypter({ seed }) : null;
|
|
394
|
+
this.ks.changeEncryption({ currentAeid, aeid, encrypter, decrypter: this.decrypter });
|
|
395
|
+
// All fallible preparation and durable work precedes publication of live state.
|
|
396
|
+
this.encrypter = encrypter;
|
|
397
|
+
this.decrypter = decrypter;
|
|
398
|
+
this._seed = seed;
|
|
399
|
+
}
|
|
400
|
+
/** Require full canonical keys; local ownership is the calling operation's responsibility. */
|
|
401
|
+
registryRootKeys(aid, regid) {
|
|
402
|
+
if (new Prefixer({ qb64: aid }).qb64 !== aid || new Diger({ qb64: regid }).qb64 !== regid) {
|
|
403
|
+
throw new Error("Registry root keys must be canonical AID and registry SAID strings");
|
|
400
404
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
data.salt = this.encrypter
|
|
409
|
-
? this.encrypter.encrypt({
|
|
410
|
-
prim: this.decrypter.decrypt({
|
|
411
|
-
qb64: data.salt,
|
|
412
|
-
ctor: Salter,
|
|
413
|
-
}),
|
|
414
|
-
}).qb64
|
|
415
|
-
: this.decrypter.decrypt({
|
|
416
|
-
qb64: data.salt,
|
|
417
|
-
ctor: Salter,
|
|
418
|
-
}).qb64;
|
|
419
|
-
this.ks.prms.pin(keys, data);
|
|
420
|
-
}
|
|
421
|
-
// `pris.` stores signer seeds keyed by their public verifier. Reads here
|
|
422
|
-
// are intentionally plaintext through the decrypter so the subdb can
|
|
423
|
-
// immediately re-pin under the new encryption policy.
|
|
424
|
-
for (const [keys, signer] of this.ks.pris.getTopItemIter("", this.decrypter)) {
|
|
425
|
-
this.ks.pris.pin(keys, signer, this.encrypter ?? undefined);
|
|
426
|
-
}
|
|
405
|
+
return [aid, regid];
|
|
406
|
+
}
|
|
407
|
+
/** Authenticate live policy as well as process-local crypto, refusing stale managers. */
|
|
408
|
+
registryRootCrypto() {
|
|
409
|
+
const aeid = this.aeid;
|
|
410
|
+
if (!aeid || !this.encrypter || !this.decrypter || !new Encrypter({ verkey: aeid }).verifySeed(this.seed)) {
|
|
411
|
+
throw new ValidationError("Registry roots require an authenticated encrypted unlocked Keeper");
|
|
427
412
|
}
|
|
428
|
-
this.
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
413
|
+
return { aeid, encrypter: this.encrypter, decrypter: this.decrypter };
|
|
414
|
+
}
|
|
415
|
+
/** Assert encrypted, unlocked current policy before authorizing an operation with no root yet. */
|
|
416
|
+
requireRegistryRootAccess() {
|
|
417
|
+
this.registryRootCrypto();
|
|
418
|
+
}
|
|
419
|
+
/** Return the retained Salt128 root; absent reads require no encryption. */
|
|
420
|
+
getRegistryRoot(aid, regid) {
|
|
421
|
+
const cipher = this.ks.rroots.get(this.registryRootKeys(aid, regid));
|
|
422
|
+
if (!cipher)
|
|
423
|
+
return null;
|
|
424
|
+
const { decrypter } = this.registryRootCrypto();
|
|
425
|
+
const root = decrypter.decrypt({ cipher, ctor: Salter });
|
|
426
|
+
if (!(root instanceof Salter) || root.code !== MtrDex.Salt_128) {
|
|
427
|
+
throw new Error("Retained registry root is not Salt128");
|
|
432
428
|
}
|
|
433
|
-
|
|
429
|
+
return root;
|
|
430
|
+
}
|
|
431
|
+
/** Retain once, returning false for the identical root without replacing ciphertext. */
|
|
432
|
+
putRegistryRoot(aid, regid, root) {
|
|
433
|
+
const keys = this.registryRootKeys(aid, regid);
|
|
434
|
+
if (!(root instanceof Salter) || root.code !== MtrDex.Salt_128)
|
|
435
|
+
throw new Error("Registry root must be Salt128");
|
|
436
|
+
const { aeid, encrypter, decrypter } = this.registryRootCrypto();
|
|
437
|
+
return this.ks.retainRegistryRoot(keys, root, aeid, encrypter, decrypter);
|
|
434
438
|
}
|
|
435
439
|
signerDecrypter() {
|
|
436
440
|
if (this.aeid && !this.decrypter) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidationError } from "
|
|
1
|
+
import { ValidationError } from "../../core/errors.js";
|
|
2
2
|
const textDecoder = new TextDecoder();
|
|
3
3
|
const textEncoder = new TextEncoder();
|
|
4
4
|
/**
|
|
@@ -10,23 +10,53 @@ const textEncoder = new TextEncoder();
|
|
|
10
10
|
* - no broader contact-management CLI surface yet
|
|
11
11
|
*/
|
|
12
12
|
export class Organizer {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/** Borrow contact storage and its optional signing authority without owning their lifetime. */
|
|
14
|
+
constructor(db, signator) {
|
|
15
|
+
Object.defineProperty(this, "db", {
|
|
15
16
|
enumerable: true,
|
|
16
17
|
configurable: true,
|
|
17
18
|
writable: true,
|
|
18
|
-
value:
|
|
19
|
+
value: db
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "signator", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: signator
|
|
19
26
|
});
|
|
20
|
-
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve one application recipient input into the actual destination prefix.
|
|
30
|
+
*
|
|
31
|
+
* Resolution order matches the mailbox CLI mental model:
|
|
32
|
+
* - exact known prefix wins
|
|
33
|
+
* - otherwise exact organizer alias lookup is required
|
|
34
|
+
*
|
|
35
|
+
* @param recipient Known AID prefix or exact organizer alias.
|
|
36
|
+
* @returns Resolved destination AID.
|
|
37
|
+
* @throws ValidationError for absent or ambiguous aliases.
|
|
38
|
+
*/
|
|
39
|
+
resolveRecipient(recipient) {
|
|
40
|
+
if (this.db.getKever(recipient)) {
|
|
41
|
+
return recipient;
|
|
42
|
+
}
|
|
43
|
+
const matches = this.findExact("alias", recipient);
|
|
44
|
+
if (matches.length === 0) {
|
|
45
|
+
throw new ValidationError(`no contact found with alias '${recipient}'`);
|
|
46
|
+
}
|
|
47
|
+
if (matches.length > 1) {
|
|
48
|
+
throw new ValidationError(`multiple contacts match alias '${recipient}', use prefix instead`);
|
|
49
|
+
}
|
|
50
|
+
return matches[0].id;
|
|
21
51
|
}
|
|
22
52
|
/** Load one signed contact record by identifier prefix. */
|
|
23
53
|
get(pre) {
|
|
24
|
-
const raw = this.
|
|
54
|
+
const raw = this.db.cons.get([pre]);
|
|
25
55
|
if (raw === null) {
|
|
26
56
|
return null;
|
|
27
57
|
}
|
|
28
|
-
const cigar = this.
|
|
29
|
-
if (cigar && this.
|
|
58
|
+
const cigar = this.db.ccigs.get([pre]);
|
|
59
|
+
if (cigar && this.signator && !verifySignedContact(this.signator, raw, cigar)) {
|
|
30
60
|
throw new ValidationError(`failed signature on ${pre} contact data`);
|
|
31
61
|
}
|
|
32
62
|
const parsed = JSON.parse(raw);
|
|
@@ -43,7 +73,7 @@ export class Organizer {
|
|
|
43
73
|
* and OOBI URL recall, not arbitrary structured contact search.
|
|
44
74
|
*/
|
|
45
75
|
update(pre, data) {
|
|
46
|
-
const signator = this.
|
|
76
|
+
const signator = this.signator;
|
|
47
77
|
if (!signator) {
|
|
48
78
|
throw new ValidationError("Contact updates require an available habery signator.");
|
|
49
79
|
}
|
|
@@ -51,19 +81,19 @@ export class Organizer {
|
|
|
51
81
|
const next = { ...(current ?? {}), ...data };
|
|
52
82
|
delete next.id;
|
|
53
83
|
const raw = JSON.stringify(next);
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
84
|
+
this.db.cons.pin([pre], raw);
|
|
85
|
+
this.db.ccigs.pin([pre], signator.sign(textEncoder.encode(raw)));
|
|
56
86
|
for (const [field, value] of Object.entries(data)) {
|
|
57
87
|
if (value === undefined || value === null) {
|
|
58
88
|
continue;
|
|
59
89
|
}
|
|
60
|
-
this.
|
|
90
|
+
this.db.cfld.pin([pre, field], String(value));
|
|
61
91
|
}
|
|
62
92
|
}
|
|
63
93
|
/** Find contacts whose indexed field exactly equals the provided value. */
|
|
64
94
|
findExact(field, value) {
|
|
65
95
|
const matches = [];
|
|
66
|
-
for (const [keys, current] of this.
|
|
96
|
+
for (const [keys, current] of this.db.cfld.getTopItemIter()) {
|
|
67
97
|
const pre = keys[0];
|
|
68
98
|
const currentField = keys[1];
|
|
69
99
|
if (!pre || currentField !== field || current !== value) {
|
|
@@ -77,11 +107,7 @@ export class Organizer {
|
|
|
77
107
|
return matches;
|
|
78
108
|
}
|
|
79
109
|
}
|
|
80
|
-
function verifySignedContact(
|
|
81
|
-
const signator = hby.signator;
|
|
82
|
-
if (!signator) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
110
|
+
function verifySignedContact(signator, raw, cigar) {
|
|
85
111
|
return signator.verify(textEncoder.encode(raw), cigar);
|
|
86
112
|
}
|
|
87
113
|
/** Persist minimal alias/OOBI contact state once one remote AID resolves. */
|
|
@@ -99,10 +125,10 @@ export function persistResolvedContact(hby, pre, data) {
|
|
|
99
125
|
if (Object.keys(next).length === 0) {
|
|
100
126
|
return;
|
|
101
127
|
}
|
|
102
|
-
new Organizer(hby).update(pre, next);
|
|
128
|
+
new Organizer(hby.db, hby.signator).update(pre, next);
|
|
103
129
|
}
|
|
104
130
|
/** Debug helper kept local so organizer serialization stays reviewable. */
|
|
105
|
-
export function signedContactJson(
|
|
106
|
-
const raw =
|
|
131
|
+
export function signedContactJson(db, pre) {
|
|
132
|
+
const raw = db.cons.get([pre]);
|
|
107
133
|
return raw === null ? null : textDecoder.decode(textEncoder.encode(raw));
|
|
108
134
|
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/** Pure v2 IPEX body construction and finite, cancellable byte-input preparation. */
|
|
2
|
+
import { collectPayload, nestedPayload, parseBytes, SerderACDC, Vrsn_2_0 } from "cesr-ts";
|
|
3
|
+
import { exchange, exincept, IPEX_V2_PREDECESSORS, isIpexVerb } from "../../core/exchange/protocol-exchanging.js";
|
|
4
|
+
import { abortable } from "../runtime/abortable.js";
|
|
5
|
+
import { hasIpexNodeAttachments, isIpexMetadata, singleDagDisclosurePlan, validDisclosurePlan, } from "./ipex-graph.js";
|
|
6
|
+
const nodeIlks = new Set([null, "acm", "ace", "act", "acg"]);
|
|
7
|
+
/**
|
|
8
|
+
* Construct an XIP opener or EXN continuation from parsed credential bodies, without reading or owning wire.
|
|
9
|
+
* The first node is the origin SAID commitment; offer callers may send just that
|
|
10
|
+
* commitment or borrow the frames' nestedPayloads. A commitment authenticates no
|
|
11
|
+
* child signature. Conversation storage, signing and anchoring belong to callers.
|
|
12
|
+
*/
|
|
13
|
+
export function ipexExnBody(sender, route, nodes, options) {
|
|
14
|
+
const verb = route.slice("/ipex/".length);
|
|
15
|
+
if (route !== `/ipex/${verb}` || !isIpexVerb(verb)) {
|
|
16
|
+
throw new Error("Unsupported IPEX route.");
|
|
17
|
+
}
|
|
18
|
+
if (nodes.length && verb !== "offer" && verb !== "grant") {
|
|
19
|
+
throw new Error("Only offer and grant disclose credential nodes.");
|
|
20
|
+
}
|
|
21
|
+
if (nodes.some((node) => !(node instanceof SerderACDC) || !node.said || !nodeIlks.has(node.ilk))) {
|
|
22
|
+
throw new Error("IPEX requires parsed disclosed ACDC nodes.");
|
|
23
|
+
}
|
|
24
|
+
if (new Set(nodes.map((node) => node.said)).size !== nodes.length)
|
|
25
|
+
throw new Error("Duplicate IPEX credential node.");
|
|
26
|
+
if (verb === "grant" && nodes.some(isIpexMetadata))
|
|
27
|
+
throw new Error("IPEX Grant requires credentials, not metadata.");
|
|
28
|
+
const prior = options.prior;
|
|
29
|
+
let recipient = options.recipient;
|
|
30
|
+
let xid;
|
|
31
|
+
if (prior) {
|
|
32
|
+
if (prior.pvrsn.major !== 2 || verb === "apply"
|
|
33
|
+
|| (prior.ilk === "xip"
|
|
34
|
+
? !["/ipex/apply", "/ipex/offer", "/ipex/grant"].includes(prior.route ?? "")
|
|
35
|
+
: prior.ilk !== "exn" || !prior.sad.p)
|
|
36
|
+
|| !IPEX_V2_PREDECESSORS[verb].some((v) => prior.route === `/ipex/${v}`)) {
|
|
37
|
+
throw new Error("Unsupported IPEX prior route.");
|
|
38
|
+
}
|
|
39
|
+
if (!prior.sad.ri || prior.sad.ri !== sender || (recipient !== undefined && recipient !== prior.pre)) {
|
|
40
|
+
throw new Error("IPEX reply parties do not match the prior.");
|
|
41
|
+
}
|
|
42
|
+
if (verb === "spurn" && prior.route === "/ipex/grant" && prior.sad.p) {
|
|
43
|
+
throw new Error("Only an opening grant may be spurned.");
|
|
44
|
+
}
|
|
45
|
+
recipient = prior.pre;
|
|
46
|
+
xid = prior.ilk === "xip" ? prior.said : prior.sad.x;
|
|
47
|
+
}
|
|
48
|
+
else if (!["apply", "offer", "grant"].includes(verb) || !recipient) {
|
|
49
|
+
throw new Error("An IPEX opener requires a recipient; replies require a prior.");
|
|
50
|
+
}
|
|
51
|
+
const attrs = { ...options.attrs };
|
|
52
|
+
if (["m", "o", "ax"].some((key) => Object.hasOwn(attrs, key))) {
|
|
53
|
+
throw new Error("Use named IPEX inputs for m, o and ax.");
|
|
54
|
+
}
|
|
55
|
+
attrs.m = options.message;
|
|
56
|
+
const priorAnchor = prior?.sad?.a?.ax?.[0] === true;
|
|
57
|
+
const anchor = options.anchor ?? (["agree", "admit"].includes(verb) && priorAnchor ? true : undefined);
|
|
58
|
+
if (anchor !== undefined) {
|
|
59
|
+
if (typeof anchor !== "boolean")
|
|
60
|
+
throw new TypeError("IPEX anchor must be boolean.");
|
|
61
|
+
attrs.ax = [anchor];
|
|
62
|
+
}
|
|
63
|
+
if (prior && ((["agree", "grant", "admit"].includes(verb) && (anchor === true) !== priorAnchor)
|
|
64
|
+
|| (verb === "offer" && priorAnchor && anchor !== true)))
|
|
65
|
+
throw new Error("IPEX reply must preserve the anchoring requirement.");
|
|
66
|
+
let plan = options.plan;
|
|
67
|
+
if (verb === "offer" && prior && (plan === undefined || !plan.length)) {
|
|
68
|
+
const inherited = singleDagDisclosurePlan(prior.sad?.q?.dp);
|
|
69
|
+
if (inherited === null) {
|
|
70
|
+
throw new Error("IPEX offer cannot inherit an invalid Apply plan.");
|
|
71
|
+
}
|
|
72
|
+
plan ??= [];
|
|
73
|
+
}
|
|
74
|
+
if (verb === "agree") {
|
|
75
|
+
if (plan?.length)
|
|
76
|
+
throw new Error("IPEX agree must use an empty ditto plan.");
|
|
77
|
+
plan = [];
|
|
78
|
+
}
|
|
79
|
+
if (verb === "grant" && plan === undefined) {
|
|
80
|
+
if (prior || !nodes.length)
|
|
81
|
+
plan = [];
|
|
82
|
+
else if (nodes.length === 1) {
|
|
83
|
+
const schema = nodes[0].schema;
|
|
84
|
+
plan = [[
|
|
85
|
+
typeof schema === "object" && schema !== null
|
|
86
|
+
? schema.$id
|
|
87
|
+
: schema,
|
|
88
|
+
"/",
|
|
89
|
+
[],
|
|
90
|
+
]];
|
|
91
|
+
}
|
|
92
|
+
else
|
|
93
|
+
throw new Error("A grant with multiple nodes requires an explicit disclosure plan.");
|
|
94
|
+
}
|
|
95
|
+
const modifiers = {};
|
|
96
|
+
if (["apply", "offer", "agree", "grant"].includes(verb)) {
|
|
97
|
+
if (!validDisclosurePlan(plan))
|
|
98
|
+
throw new Error("IPEX requires a valid disclosure plan.");
|
|
99
|
+
modifiers.dp = [structuredClone(plan)];
|
|
100
|
+
}
|
|
101
|
+
else if (plan !== undefined)
|
|
102
|
+
throw new Error("This IPEX route does not negotiate disclosure.");
|
|
103
|
+
if (verb === "grant") {
|
|
104
|
+
if (!prior && Boolean(plan.length) !== Boolean(nodes.length)) {
|
|
105
|
+
throw new Error("Opening grant nodes must match its disclosure obligation.");
|
|
106
|
+
}
|
|
107
|
+
attrs.o = nodes.length ? [nodes[0].said] : [];
|
|
108
|
+
}
|
|
109
|
+
else if (verb === "offer" && nodes.length)
|
|
110
|
+
attrs.o = [nodes[0].said];
|
|
111
|
+
if (!prior) {
|
|
112
|
+
return exincept(route, {
|
|
113
|
+
sender,
|
|
114
|
+
receiver: recipient,
|
|
115
|
+
attributes: attrs,
|
|
116
|
+
modifiers,
|
|
117
|
+
stamp: options.date ?? options.stamp,
|
|
118
|
+
kind: options.kind,
|
|
119
|
+
gvrsn: options.gvrsn ?? Vrsn_2_0,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return exchange(route, attrs, {
|
|
123
|
+
sender,
|
|
124
|
+
recipient,
|
|
125
|
+
xid,
|
|
126
|
+
dig: prior?.said ?? "",
|
|
127
|
+
modifiers,
|
|
128
|
+
stamp: options.stamp,
|
|
129
|
+
date: options.date,
|
|
130
|
+
kind: options.kind,
|
|
131
|
+
pvrsn: Vrsn_2_0,
|
|
132
|
+
gvrsn: options.gvrsn ?? Vrsn_2_0,
|
|
133
|
+
})[0];
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Parse a finite stream of direct child messages once, then consume their nested
|
|
137
|
+
* wire for the enclosing exchange. Parsed frames and Texters are ordinary values;
|
|
138
|
+
* serialization observes the operation signal.
|
|
139
|
+
* Returned nested bytes must share the enclosure with the parent's own proofs.
|
|
140
|
+
*/
|
|
141
|
+
export function* prepareIpexExn(sender, route, wire, options) {
|
|
142
|
+
return yield* abortable(async (signal) => {
|
|
143
|
+
const frames = parseBytes(wire);
|
|
144
|
+
if (frames.some((frame) => !(frame.body instanceof SerderACDC) || frame.nests?.length)) {
|
|
145
|
+
throw new Error("IPEX requires direct credential node frames.");
|
|
146
|
+
}
|
|
147
|
+
if (route === "/ipex/offer" && frames.some(hasIpexNodeAttachments)) {
|
|
148
|
+
throw new Error("IPEX Offer nodes must not carry attachments.");
|
|
149
|
+
}
|
|
150
|
+
const body = ipexExnBody(sender, route, frames.map((frame) => frame.body), options);
|
|
151
|
+
const payloads = frames.map((frame) => nestedPayload(frame, Vrsn_2_0));
|
|
152
|
+
const payload = {
|
|
153
|
+
size: payloads.reduce((sum, child) => sum + child.size, 0),
|
|
154
|
+
/** Borrow each frame only until collection completes or aborts. */
|
|
155
|
+
async *open(signal) {
|
|
156
|
+
for (const child of payloads)
|
|
157
|
+
yield* child.open(signal);
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
return [body, await collectPayload(payload, signal)];
|
|
161
|
+
});
|
|
162
|
+
}
|