keri-ts 1.0.0 → 2.0.1
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} +50 -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
|
@@ -100,6 +100,8 @@ export function regcept(issuer, options = {}) {
|
|
|
100
100
|
/** Create an ACDC v2 blindable registry update (`bup`) message. */
|
|
101
101
|
export function blindate(regid, prior, blid, options = {}) {
|
|
102
102
|
const { sn = 1, stamp, pvrsn = Vrsn_2_0, gvrsn = Vrsn_2_0, kind = Kinds.json } = options;
|
|
103
|
+
if (BigInt(sn) < 1n)
|
|
104
|
+
throw new ValidationError(`ACDC blindable update sequence number must be positive: ${sn}`);
|
|
103
105
|
return new SerderACDC({
|
|
104
106
|
sad: {
|
|
105
107
|
v: versionString({ pvrsn, gvrsn, kind }),
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
import { Diger, Ilks, ParserError } from "cesr-ts";
|
|
1
|
+
/** Public v2 registry intake with event-local opening preflight and durable retention. */
|
|
2
|
+
import { bytesEqual, Diger, Ilks, ParserError } from "cesr-ts";
|
|
3
3
|
import { DatabaseNotOpenError, DatabaseOperationError } from "../core/errors.js";
|
|
4
4
|
import { RegistryEventer } from "./regengine.js";
|
|
5
|
-
import { validateRip, validateUpdate } from "./regeventing.js";
|
|
5
|
+
import { validateRegistrySourceLocators, validateRip, validateUpdate, vetBlind, } from "./regeventing.js";
|
|
6
|
+
import { publicOpeningAttachment } from "./registering.js";
|
|
6
7
|
/**
|
|
7
8
|
* Borrow accepted public KEL state and one registry store without habitats, aliases or handles.
|
|
8
9
|
* Reconstruct the engine's issuer from stored inception after reopen. Intake uses the engine's
|
|
9
|
-
*
|
|
10
|
+
* exact registry-seal and historical witness policy shared with observer vetting. Each accepted
|
|
10
11
|
* event commits independently; a later failure preserves the already accepted prefix.
|
|
11
|
-
* Parsed evidence stays borrowed.
|
|
12
|
+
* Parsed evidence stays borrowed. Composition supplies this owner to v2 protocol dispatch;
|
|
13
|
+
* no local habitat, alias or application disclosure custody is created by public intake.
|
|
12
14
|
*/
|
|
13
15
|
export class RegistryObserver {
|
|
14
16
|
constructor(db, store) {
|
|
@@ -26,11 +28,22 @@ export class RegistryObserver {
|
|
|
26
28
|
});
|
|
27
29
|
}
|
|
28
30
|
/** Stage parsed events before inception, otherwise delegate ordinary validation and acceptance. */
|
|
29
|
-
processEvent(serder) {
|
|
31
|
+
processEvent(serder, locators = {}) {
|
|
30
32
|
const result = serder.ilk === Ilks.rip ? validateRip(serder) : validateUpdate(serder, serder.regid ?? "");
|
|
31
33
|
if (result.kind === "reject")
|
|
32
34
|
return result;
|
|
33
35
|
const event = result.event;
|
|
36
|
+
const openings = [...locators.bsqs ?? [], ...locators.bsss ?? []], opening = openings[0];
|
|
37
|
+
if (openings.length > 1 || (opening && event.ilk !== Ilks.bup))
|
|
38
|
+
return { kind: "reject", reason: "disclosure" };
|
|
39
|
+
if (opening) {
|
|
40
|
+
if (!vetBlind(opening, serder.sad.b))
|
|
41
|
+
return { kind: "reject", reason: "disclosure" };
|
|
42
|
+
const old = this.store.opening(event.said), stored = this.store.event(event.said);
|
|
43
|
+
if ((old && !bytesEqual(old, publicOpeningAttachment(opening)))
|
|
44
|
+
|| (stored && !bytesEqual(stored.raw, serder.raw)))
|
|
45
|
+
return { kind: "reject", reason: "disclosure" };
|
|
46
|
+
}
|
|
34
47
|
// Unknown registry routing cannot rely on a stored RIP to validate its qualified SAID.
|
|
35
48
|
try {
|
|
36
49
|
if (new Diger({ qb64: event.regid }).qb64 !== event.regid)
|
|
@@ -52,8 +65,13 @@ export class RegistryObserver {
|
|
|
52
65
|
engine ??= new RegistryEventer(this.db, event.issuer, this.store, event.regid);
|
|
53
66
|
}
|
|
54
67
|
if (engine) {
|
|
55
|
-
|
|
68
|
+
const decision = engine.processEvent(serder, locators);
|
|
69
|
+
if (decision.kind !== "reject" && opening)
|
|
70
|
+
this.store.retainOpening(serder, opening);
|
|
71
|
+
return decision;
|
|
56
72
|
}
|
|
73
|
+
if (!validateRegistrySourceLocators(serder, this.db, null, locators))
|
|
74
|
+
return { kind: "reject", reason: "anchor" };
|
|
57
75
|
// Issuer/anchor discovery is impossible until RIP arrives; the existing anchor escrow owns this body.
|
|
58
76
|
const baser = this.store.baser;
|
|
59
77
|
if (baser.readonly)
|
|
@@ -61,6 +79,8 @@ export class RegistryObserver {
|
|
|
61
79
|
return baser.env.transactionSync(() => {
|
|
62
80
|
this.store.putEvent(serder);
|
|
63
81
|
this.store.escrowMissingAnchor(event.regid, Number(event.sn), event.said);
|
|
82
|
+
if (opening)
|
|
83
|
+
this.store.retainOpening(serder, opening);
|
|
64
84
|
return { kind: "escrow", reason: "inception", event };
|
|
65
85
|
});
|
|
66
86
|
}
|
|
@@ -71,6 +91,19 @@ export class RegistryObserver {
|
|
|
71
91
|
return;
|
|
72
92
|
engine.processEscrows();
|
|
73
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Retry registries named by durable dependency escrows, including foreign registries after reopen.
|
|
96
|
+
* Finish both table cursors before acceptance writes; local aliases do not determine pending work.
|
|
97
|
+
*/
|
|
98
|
+
processAllEscrows() {
|
|
99
|
+
const registries = new Set();
|
|
100
|
+
for (const table of [this.store.baser.maes, this.store.baser.ooes]) {
|
|
101
|
+
for (const [keys] of table.getAllItemIter())
|
|
102
|
+
registries.add(keys[0]);
|
|
103
|
+
}
|
|
104
|
+
for (const regid of registries)
|
|
105
|
+
this.processEscrows(regid);
|
|
106
|
+
}
|
|
74
107
|
/** Stored inception is durable issuer identity, including while its anchor is still absent. */
|
|
75
108
|
engine(regid) {
|
|
76
109
|
if (!this.store.baser.env)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { b, Diger, NumberPrimitive, Saider, SerderACDC } from "cesr-ts";
|
|
3
3
|
import { DatabaseNotOpenError } from "../core/errors.js";
|
|
4
4
|
import { LMDBer } from "../db/core/lmdber.js";
|
|
5
|
-
import { B64OnIoSetSuber, CatCesrSuber, CesrOnSuber, CesrSuber, SerderSuber } from "../db/subing.js";
|
|
5
|
+
import { B64OnIoSetSuber, BytesSuber, CatCesrSuber, CesrOnSuber, CesrSuber, SerderSuber } from "../db/subing.js";
|
|
6
6
|
/**
|
|
7
7
|
* Own one environment for public registry TEL bodies, accepted ordinals and heads.
|
|
8
8
|
* Mirrors frozen KERIpy RegBaser's typed tables; opening neither verifies
|
|
@@ -14,7 +14,10 @@ export class RegBaser extends LMDBer {
|
|
|
14
14
|
hasTable(name) {
|
|
15
15
|
if (!this.env)
|
|
16
16
|
throw new DatabaseNotOpenError("Registry environment is closed.");
|
|
17
|
-
|
|
17
|
+
// Native lmdb-js exposes its C-string terminator in root metadata keys;
|
|
18
|
+
// the Deno backend also supports the unterminated representation.
|
|
19
|
+
return this.env.getBinary(b(name)) !== undefined
|
|
20
|
+
|| this.env.getBinary(b(`${name}\0`)) !== undefined;
|
|
18
21
|
}
|
|
19
22
|
constructor(options = {}) {
|
|
20
23
|
super(options, {
|
|
@@ -45,6 +48,13 @@ export class RegBaser extends LMDBer {
|
|
|
45
48
|
writable: true,
|
|
46
49
|
value: void 0
|
|
47
50
|
});
|
|
51
|
+
/** Event-SAID -> one deliberately published counted BSQ/BSS opening; never private custody. */
|
|
52
|
+
Object.defineProperty(this, "openings", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: void 0
|
|
57
|
+
});
|
|
48
58
|
/** Event-SAID -> earliest verified KEL source couple, in the current store. */
|
|
49
59
|
Object.defineProperty(this, "ancs", {
|
|
50
60
|
enumerable: true,
|
|
@@ -76,6 +86,7 @@ export class RegBaser extends LMDBer {
|
|
|
76
86
|
this.evts = new SerderSuber(this, { subkey: "evts.", ctor: SerderACDC });
|
|
77
87
|
this.tels = new CesrOnSuber(this, { subkey: "tels.", ctor: Saider });
|
|
78
88
|
this.heads = new CesrSuber(this, { subkey: "heds.", ctor: Saider });
|
|
89
|
+
this.openings = new BytesSuber(this, { subkey: "openings." });
|
|
79
90
|
this.ancs = new CatCesrSuber(this, { subkey: "ancs.", ctor: [NumberPrimitive, Diger] });
|
|
80
91
|
this.maes = new B64OnIoSetSuber(this, { subkey: "maes." });
|
|
81
92
|
this.ooes = new B64OnIoSetSuber(this, { subkey: "ooes." });
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/** Shared TEL validation, accepted-state publication, anchoring and retry for local and foreign registries. */
|
|
2
2
|
import { Diger, Ilks, NumberPrimitive, } from "cesr-ts";
|
|
3
3
|
import { DatabaseNotOpenError, DatabaseOperationError } from "../core/errors.js";
|
|
4
|
-
import {
|
|
4
|
+
import { consoleLogger } from "../core/logger.js";
|
|
5
|
+
import { findRegistryAnchor, validateRegistrySourceLocators, validateRip, validateUpdate, verifyRegistryAnchor, } from "./regeventing.js";
|
|
5
6
|
/**
|
|
6
7
|
* Borrow the issuer's accepted KEL and registry store; no keys or handles are acquired.
|
|
7
8
|
* The local facade and foreign observer share this accepted-state engine.
|
|
@@ -81,10 +82,13 @@ export class RegistryEventer {
|
|
|
81
82
|
return { kind: "reject", reason: "prior" };
|
|
82
83
|
if ((number === undefined) !== (diger === undefined))
|
|
83
84
|
return { kind: "reject", reason: "anchor" };
|
|
85
|
+
if (number && diger && !verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
|
|
86
|
+
return { kind: "reject", reason: "anchor" };
|
|
87
|
+
}
|
|
88
|
+
// Already accepted TEL history is immutable; explicit claims still verify before duplicate success.
|
|
89
|
+
if (occupied?.kind === "duplicate")
|
|
90
|
+
return this.processEvent(serder);
|
|
84
91
|
if (number && diger) {
|
|
85
|
-
if (!verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
|
|
86
|
-
return { kind: "reject", reason: "anchor" };
|
|
87
|
-
}
|
|
88
92
|
this.store.putAnchor(said, number, diger);
|
|
89
93
|
}
|
|
90
94
|
else {
|
|
@@ -148,16 +152,38 @@ export class RegistryEventer {
|
|
|
148
152
|
for (const event of candidates) {
|
|
149
153
|
const result = this.processEvent(event.serder);
|
|
150
154
|
if (result.kind === "reject" || result.kind === "duplicate") {
|
|
151
|
-
this.store.clearEscrows(this.regk, sn, event.said);
|
|
155
|
+
const removed = this.store.clearEscrows(this.regk, sn, event.said);
|
|
156
|
+
if (removed && result.kind === "reject") {
|
|
157
|
+
consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
|
|
158
|
+
family: "registry",
|
|
159
|
+
said: event.said,
|
|
160
|
+
regk: this.regk,
|
|
161
|
+
sn,
|
|
162
|
+
reason: result.reason,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
152
165
|
}
|
|
153
166
|
}
|
|
154
167
|
}
|
|
155
168
|
}
|
|
156
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Prune unrecoverable candidates and report completed removals; accepted duplicates stay quiet.
|
|
171
|
+
* @param said Candidate event SAID loaded from the current escrow snapshot.
|
|
172
|
+
* @param sn TEL ordinal under which the candidate was indexed.
|
|
173
|
+
* @returns The validated candidate, or null after obsolete or invalid membership cleanup.
|
|
174
|
+
*/
|
|
157
175
|
replayCandidate(said, sn) {
|
|
158
176
|
const serder = this.store.event(said);
|
|
159
177
|
if (!serder) {
|
|
160
|
-
this.store.clearEscrows(this.regk, sn, said)
|
|
178
|
+
if (this.store.clearEscrows(this.regk, sn, said)) {
|
|
179
|
+
consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
|
|
180
|
+
family: "registry",
|
|
181
|
+
said,
|
|
182
|
+
regk: this.regk,
|
|
183
|
+
sn,
|
|
184
|
+
reason: "missingEvent",
|
|
185
|
+
});
|
|
186
|
+
}
|
|
161
187
|
return null;
|
|
162
188
|
}
|
|
163
189
|
if (serder.said !== said)
|
|
@@ -165,6 +191,7 @@ export class RegistryEventer {
|
|
|
165
191
|
const result = serder.ilk === Ilks.rip
|
|
166
192
|
? validateRip(serder, this.issuer)
|
|
167
193
|
: validateUpdate(serder, this.regk);
|
|
194
|
+
let reason = result.kind === "reject" ? result.reason : "registryOrOrdinal";
|
|
168
195
|
if (result.kind === "valid") {
|
|
169
196
|
const event = result.event;
|
|
170
197
|
if (event.regid === this.regk && event.sn === BigInt(sn)) {
|
|
@@ -172,9 +199,19 @@ export class RegistryEventer {
|
|
|
172
199
|
const prior = sn > 0 ? this.acceptedAt(event.regid, sn - 1) : null;
|
|
173
200
|
if (!existing && (!prior || prior.said === event.prior))
|
|
174
201
|
return event;
|
|
202
|
+
reason = existing?.kind === "duplicate" ? null : existing?.kind === "reject" ? existing.reason : "prior";
|
|
175
203
|
}
|
|
176
204
|
}
|
|
177
|
-
this.store.clearEscrows(this.regk, sn, said);
|
|
205
|
+
const removed = this.store.clearEscrows(this.regk, sn, said);
|
|
206
|
+
if (removed && reason !== null) {
|
|
207
|
+
consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
|
|
208
|
+
family: "registry",
|
|
209
|
+
said,
|
|
210
|
+
regk: this.regk,
|
|
211
|
+
sn,
|
|
212
|
+
reason,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
178
215
|
return null;
|
|
179
216
|
}
|
|
180
217
|
/** Earliest verified anchor wins; digest then event SAID break ties using code-point order. */
|
|
@@ -193,20 +230,23 @@ export class RegistryEventer {
|
|
|
193
230
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
194
231
|
}
|
|
195
232
|
/** Accept one parsed event, then advance ready successors without recursive replay. */
|
|
196
|
-
processEvent(serder) {
|
|
197
|
-
const decision = this.processOne(serder);
|
|
233
|
+
processEvent(serder, locators = {}) {
|
|
234
|
+
const decision = this.processOne(serder, locators);
|
|
198
235
|
if (decision.kind === "accept")
|
|
199
236
|
this.processQueued();
|
|
200
237
|
return decision;
|
|
201
238
|
}
|
|
202
239
|
/** Decide and persist one event; callers own subsequent chain progression. */
|
|
203
|
-
processOne(serder) {
|
|
240
|
+
processOne(serder, locators = {}) {
|
|
204
241
|
if (this.regk === null || serder.ilk === Ilks.rip)
|
|
205
|
-
return this.processInception(serder);
|
|
242
|
+
return this.processInception(serder, locators);
|
|
206
243
|
const result = validateUpdate(serder, this.regk);
|
|
207
244
|
if (result.kind === "reject")
|
|
208
245
|
return result;
|
|
209
246
|
const event = result.event;
|
|
247
|
+
if (!validateRegistrySourceLocators(serder, this.db, this.issuer, locators)) {
|
|
248
|
+
return { kind: "reject", reason: "anchor" };
|
|
249
|
+
}
|
|
210
250
|
// Preserve protocol precision until the existing ordinal storage seam can represent it.
|
|
211
251
|
if (event.sn > BigInt(Number.MAX_SAFE_INTEGER))
|
|
212
252
|
return { kind: "reject", reason: "ordinalRange" };
|
|
@@ -247,11 +287,14 @@ export class RegistryEventer {
|
|
|
247
287
|
});
|
|
248
288
|
}
|
|
249
289
|
/** Validate, anchor and accept one inception, or retain its body in anchor escrow. */
|
|
250
|
-
processInception(serder) {
|
|
290
|
+
processInception(serder, locators) {
|
|
251
291
|
const result = validateRip(serder, this.issuer);
|
|
252
292
|
if (result.kind === "reject")
|
|
253
293
|
return result;
|
|
254
294
|
const event = result.event;
|
|
295
|
+
if (!validateRegistrySourceLocators(serder, this.db, this.issuer, locators)) {
|
|
296
|
+
return { kind: "reject", reason: "anchor" };
|
|
297
|
+
}
|
|
255
298
|
if (this.regk !== null && this.regk !== event.regid)
|
|
256
299
|
return { kind: "reject", reason: "registry" };
|
|
257
300
|
const previous = this.acceptedEvent(event);
|
|
@@ -335,19 +378,24 @@ export class RegistryEventer {
|
|
|
335
378
|
this.store.baser.maes.rem(event.regid, Number(event.sn));
|
|
336
379
|
this.store.baser.ooes.rem(event.regid, Number(event.sn));
|
|
337
380
|
}
|
|
338
|
-
/** Keep
|
|
381
|
+
/** Keep a valid first pair; recovery-invalidated pending anchors must rediscover current-branch authority. */
|
|
339
382
|
discoverAnchor(event) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
383
|
+
const current = this.store.anchor(event.said);
|
|
384
|
+
if (current) {
|
|
385
|
+
if (verifyRegistryAnchor(event, {
|
|
386
|
+
db: this.db,
|
|
387
|
+
issuer: this.issuer,
|
|
388
|
+
number: current[0],
|
|
389
|
+
diger: current[1],
|
|
390
|
+
}))
|
|
391
|
+
return;
|
|
392
|
+
this.store.baser.ancs.rem(event.said);
|
|
393
|
+
}
|
|
394
|
+
const anchor = findRegistryAnchor(this.db, this.issuer, event.serder);
|
|
347
395
|
if (!anchor)
|
|
348
396
|
return;
|
|
349
|
-
const number = NumberPrimitive.fromNum(BigInt(anchor
|
|
350
|
-
const diger = new Diger({ qb64: anchor
|
|
397
|
+
const number = NumberPrimitive.fromNum(BigInt(anchor[0]));
|
|
398
|
+
const diger = new Diger({ qb64: anchor[1] });
|
|
351
399
|
if (verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
|
|
352
400
|
this.store.putAnchor(event.said, number, diger);
|
|
353
401
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Mirrors frozen KERIpy acdc.regeventing.vet/vetBinds. Parsing, KEL acceptance,
|
|
4
4
|
* fetching, escrow persistence, and issuer-side TEL processing belong to callers.
|
|
5
5
|
*/
|
|
6
|
-
import { commitBlindState, commitBoundState, Ilks, } from "cesr-ts";
|
|
6
|
+
import { commitBlindState, commitBoundState, Diger, Ilks, ParserError, } from "cesr-ts";
|
|
7
7
|
import { timestampMicros } from "../time/mod.js";
|
|
8
8
|
/** Sequence numbers retain protocol precision; database KEL lookups remain safe integers. */
|
|
9
9
|
function ordinal(event) {
|
|
@@ -14,9 +14,14 @@ function normalizeEvent(event) {
|
|
|
14
14
|
if (!event.verify() || (event.ilk !== Ilks.rip && event.ilk !== Ilks.bup))
|
|
15
15
|
return { kind: "reject", reason: "event" };
|
|
16
16
|
const sequence = event.sad?.n;
|
|
17
|
-
if (typeof sequence !== "string" || !/^[0-9a-
|
|
17
|
+
if (typeof sequence !== "string" || !/^(0|[1-9a-f][0-9a-f]*)$/.test(sequence) || ordinal(event) >= 2n ** 128n) {
|
|
18
18
|
return { kind: "reject", reason: "sequence" };
|
|
19
19
|
}
|
|
20
|
+
const stamp = event.sad?.dt;
|
|
21
|
+
if (typeof stamp !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}[+-]\d{2}:\d{2}$/.test(stamp)
|
|
22
|
+
|| stamp.startsWith("0000-")
|
|
23
|
+
|| timestampMicros(stamp) === null)
|
|
24
|
+
return { kind: "reject", reason: "timestamp" };
|
|
20
25
|
return {
|
|
21
26
|
kind: "valid",
|
|
22
27
|
event: {
|
|
@@ -61,8 +66,8 @@ export function validateUpdate(serder, regid, prior) {
|
|
|
61
66
|
return result;
|
|
62
67
|
}
|
|
63
68
|
/**
|
|
64
|
-
* Check a local TEL anchor against the
|
|
65
|
-
*
|
|
69
|
+
* Check a local TEL anchor against the current accepted KEL branch and its witness quorum.
|
|
70
|
+
* V2 TEL admission requires the full registry/ordinal/event-SAID seal.
|
|
66
71
|
* Missing or mismatched evidence returns false; database failures propagate.
|
|
67
72
|
*/
|
|
68
73
|
export function verifyRegistryAnchor(event, { db, issuer, number, diger }) {
|
|
@@ -70,13 +75,68 @@ export function verifyRegistryAnchor(event, { db, issuer, number, diger }) {
|
|
|
70
75
|
return false;
|
|
71
76
|
const said = db.kels.getLast(issuer, Number(number.num));
|
|
72
77
|
const anchor = said ? db.getEvtSerder(issuer, said) : null;
|
|
73
|
-
if (!anchor || anchor.said !== diger.qb64 || !db
|
|
78
|
+
if (!anchor || anchor.said !== diger.qb64 || !onCurrentRegistryBranch(db, issuer, anchor)
|
|
79
|
+
|| !db.fullyWitnessed(anchor))
|
|
74
80
|
return false;
|
|
75
|
-
return anchor.seals.some((seal) =>
|
|
76
|
-
&& "i" in seal && "s" in seal && "d" in seal
|
|
77
|
-
&& seal.i === event.regid && seal.s === event.serder.sad.n && seal.d === event.said);
|
|
81
|
+
return anchor.seals.some((seal) => matchesRegistrySeal(seal, event.serder));
|
|
78
82
|
}
|
|
79
|
-
/**
|
|
83
|
+
/** Descend the current head's exact prior digests, stopping at missing or noncontiguous ancestry. */
|
|
84
|
+
function* currentRegistryBranch(db, issuer) {
|
|
85
|
+
let current = db.getKever(issuer)?.serder ?? null;
|
|
86
|
+
while (current) {
|
|
87
|
+
yield current;
|
|
88
|
+
const prior = current.prior ? db.getEvtSerder(issuer, current.prior) : null;
|
|
89
|
+
if (!prior || prior.sn !== current.sn - 1)
|
|
90
|
+
return;
|
|
91
|
+
current = prior;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Recovery preserves disputed buckets; new TEL authority comes only from the current branch. */
|
|
95
|
+
function onCurrentRegistryBranch(db, issuer, anchor) {
|
|
96
|
+
for (const current of currentRegistryBranch(db, issuer)) {
|
|
97
|
+
if (current.sn < anchor.sn)
|
|
98
|
+
return false;
|
|
99
|
+
if (current.said === anchor.said)
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
/** Match the full registry/ordinal/event-SAID tuple required for v2 TEL authority. */
|
|
105
|
+
export function matchesRegistrySeal(candidate, event) {
|
|
106
|
+
if (!candidate || typeof candidate !== "object" || Array.isArray(candidate))
|
|
107
|
+
return false;
|
|
108
|
+
const seal = candidate;
|
|
109
|
+
const fields = Object.keys(seal).sort().join(",");
|
|
110
|
+
if (fields !== "d,i,s")
|
|
111
|
+
return false;
|
|
112
|
+
return seal.d === event.said
|
|
113
|
+
&& seal.s === event.sad.n
|
|
114
|
+
&& seal.i === (event.ilk === Ilks.rip ? event.said : event.regid);
|
|
115
|
+
}
|
|
116
|
+
/** Refuse resolvable false locators before publication, without persisting unsigned requirements. */
|
|
117
|
+
export function validateRegistrySourceLocators(event, db, issuer, { sscs = [], ssts = [] }) {
|
|
118
|
+
const locators = [
|
|
119
|
+
...sscs.map((seal) => ({ controller: issuer, number: seal.s, diger: seal.d })),
|
|
120
|
+
...ssts.map((seal) => ({ controller: seal.i.qb64, number: seal.s, diger: seal.d })),
|
|
121
|
+
];
|
|
122
|
+
for (const { controller, number, diger } of locators) {
|
|
123
|
+
if (issuer !== null && controller !== issuer)
|
|
124
|
+
return false;
|
|
125
|
+
if (controller === null || number.num > BigInt(Number.MAX_SAFE_INTEGER))
|
|
126
|
+
continue;
|
|
127
|
+
const accepted = db.kels.getLast(controller, Number(number.num));
|
|
128
|
+
if (!accepted)
|
|
129
|
+
continue;
|
|
130
|
+
if (accepted !== diger.qb64)
|
|
131
|
+
return false;
|
|
132
|
+
const anchor = db.getEvtSerder(controller, accepted);
|
|
133
|
+
if (anchor && (!onCurrentRegistryBranch(db, controller, anchor)
|
|
134
|
+
|| !anchor.seals.some((seal) => matchesRegistrySeal(seal, event))))
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
/** Public stateless vetting authenticates digest commitments; other seal fields are nonbinding hints. */
|
|
80
140
|
function sealDigests(event) {
|
|
81
141
|
return event.seals.flatMap((seal) => {
|
|
82
142
|
if (typeof seal === "string")
|
|
@@ -86,19 +146,26 @@ function sealDigests(event) {
|
|
|
86
146
|
return [];
|
|
87
147
|
});
|
|
88
148
|
}
|
|
89
|
-
/**
|
|
90
|
-
function
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
149
|
+
/** Find an accepted controller event carrying an exact registry seal and its historical witness quorum. */
|
|
150
|
+
export function findRegistryAnchor(db, issuer, registry) {
|
|
151
|
+
let earliest = null;
|
|
152
|
+
for (const event of currentRegistryBranch(db, issuer)) {
|
|
153
|
+
if (db.fullyWitnessed(event)
|
|
154
|
+
&& event.seals.some((seal) => matchesRegistrySeal(seal, registry))) {
|
|
155
|
+
earliest = [event.sn, event.said];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return earliest;
|
|
159
|
+
}
|
|
160
|
+
/** Find a public digest commitment without granting v2 registry admission authority. */
|
|
161
|
+
function findDigestAnchor(db, issuer, digest) {
|
|
162
|
+
let earliest = null;
|
|
163
|
+
for (const event of currentRegistryBranch(db, issuer)) {
|
|
164
|
+
if (db.fullyWitnessed(event) && sealDigests(event).includes(digest)) {
|
|
165
|
+
earliest = [event.sn, event.said];
|
|
166
|
+
}
|
|
100
167
|
}
|
|
101
|
-
return
|
|
168
|
+
return earliest;
|
|
102
169
|
}
|
|
103
170
|
/** Match the reference's source-hint fallback and named aggregate-seal refusal. */
|
|
104
171
|
function vetAnchor(event, issuer, db, told, source) {
|
|
@@ -111,29 +178,66 @@ function vetAnchor(event, issuer, db, told, source) {
|
|
|
111
178
|
if (source !== undefined) {
|
|
112
179
|
const said = typeof source === "string" ? source : db.kels.getLast(issuer, source);
|
|
113
180
|
const anchor = said ? db.getEvtSerder(issuer, said) : null;
|
|
114
|
-
if (anchor)
|
|
181
|
+
if (anchor && db.kels.getLast(issuer, anchor.sn) === anchor.said
|
|
182
|
+
&& onCurrentRegistryBranch(db, issuer, anchor)) {
|
|
115
183
|
const digests = sealDigests(anchor);
|
|
116
|
-
if (digests.includes(event.said))
|
|
184
|
+
if (db.fullyWitnessed(anchor) && digests.includes(event.said)) {
|
|
117
185
|
return { kind: "verified", anchor: [anchor.sn, anchor.said] };
|
|
186
|
+
}
|
|
118
187
|
if (digests.length && !digests.some((digest) => typeof digest === "string" && told.has(digest))) {
|
|
119
188
|
return { kind: "reject", reason: "rootSeal" };
|
|
120
189
|
}
|
|
121
190
|
}
|
|
122
191
|
}
|
|
123
|
-
const anchor =
|
|
192
|
+
const anchor = findDigestAnchor(db, issuer, event.said);
|
|
124
193
|
if (anchor)
|
|
125
194
|
return { kind: "verified", anchor };
|
|
126
195
|
for (const pre of db.kevers.keys()) {
|
|
127
|
-
if (pre !== issuer &&
|
|
196
|
+
if (pre !== issuer && findDigestAnchor(db, pre, event.said))
|
|
128
197
|
return { kind: "reject", reason: "anchor" };
|
|
129
198
|
}
|
|
130
199
|
return missing;
|
|
131
200
|
}
|
|
132
|
-
/**
|
|
133
|
-
function vetBlind(blinder, blid) {
|
|
134
|
-
|
|
201
|
+
/** Authenticate the declared native BLID against the exact carried primitive tuple. */
|
|
202
|
+
export function vetBlind(blinder, blid) {
|
|
203
|
+
if (!/^[E-I][A-Za-z0-9_-]{43}$/.test(blid) || blinder.d.nonce !== blid)
|
|
204
|
+
return false;
|
|
205
|
+
let digest;
|
|
206
|
+
try {
|
|
207
|
+
digest = new Diger({ qb64: blid });
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
if (error instanceof ParserError)
|
|
211
|
+
return false;
|
|
212
|
+
throw error;
|
|
213
|
+
}
|
|
214
|
+
if (new Diger({ code: digest.code, raw: digest.raw }).qb64 !== blid)
|
|
215
|
+
return false;
|
|
216
|
+
const redone = "bn" in blinder ? commitBoundState(blinder, digest.code) : commitBlindState(blinder, digest.code);
|
|
135
217
|
return redone.d.nonce === blid;
|
|
136
218
|
}
|
|
219
|
+
/** A bound opening names an exact accepted Issuee event, including historical interactions. */
|
|
220
|
+
export function vetBound(blinder, acdc, db) {
|
|
221
|
+
if (!("bn" in blinder))
|
|
222
|
+
return null;
|
|
223
|
+
const number = blinder.bn.num, digest = blinder.bd.nonce;
|
|
224
|
+
if (!blinder.td.nonce && !blinder.ts.text) {
|
|
225
|
+
return number === 0n && !digest ? null : { kind: "reject", reason: "binding" };
|
|
226
|
+
}
|
|
227
|
+
if (!digest || !acdc || blinder.td.nonce !== acdc.said || !acdc.issuee)
|
|
228
|
+
return { kind: "reject", reason: "binding" };
|
|
229
|
+
const issuer = acdc.issuee;
|
|
230
|
+
const missing = { kind: "missing", reason: "anchor", issuer, said: digest };
|
|
231
|
+
if (number > BigInt(Number.MAX_SAFE_INTEGER))
|
|
232
|
+
return missing;
|
|
233
|
+
const accepted = db.kels.getLast(issuer, Number(number));
|
|
234
|
+
if (!accepted)
|
|
235
|
+
return missing;
|
|
236
|
+
if (accepted !== digest)
|
|
237
|
+
return { kind: "reject", reason: "anchor" };
|
|
238
|
+
const event = db.getEvtSerder(issuer, accepted);
|
|
239
|
+
return event && db.fullyWitnessed(event) ? null : missing;
|
|
240
|
+
}
|
|
137
241
|
/** A registry must bind both the exact credential and its issuer, plus rd when present. */
|
|
138
242
|
function binding(acdc, state) {
|
|
139
243
|
if (!acdc.verify() || state.acdc !== acdc.said || acdc.issuer !== state.issuer)
|
|
@@ -200,6 +304,9 @@ export function vet({ rip, updates = [], db, sources = new Map(), acdc, blinder
|
|
|
200
304
|
if (head.ilk === Ilks.bup && blinder) {
|
|
201
305
|
if (!vetBlind(blinder, head.sad.b))
|
|
202
306
|
return { kind: "reject", reason: "disclosure" };
|
|
307
|
+
const refusal = vetBound(blinder, acdc, db);
|
|
308
|
+
if (refusal)
|
|
309
|
+
return refusal;
|
|
203
310
|
state.acdc = blinder.td.nonce || null;
|
|
204
311
|
state.state = blinder.ts.text || null;
|
|
205
312
|
}
|
|
@@ -215,25 +322,28 @@ export function vet({ rip, updates = [], db, sources = new Map(), acdc, blinder
|
|
|
215
322
|
/**
|
|
216
323
|
* Resolve the latest non-vacuous binding behind a verified (possibly historical)
|
|
217
324
|
* head. Every intervening vacuous update needs exactly one authentic disclosure.
|
|
218
|
-
* The
|
|
325
|
+
* The selected SAID fixes the TEL prefix; neither timestamps nor source hints select it.
|
|
219
326
|
*/
|
|
220
|
-
export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, blinders, target, controller, cutoff, requireSource = false }) {
|
|
221
|
-
if (cutoff !== undefined)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
327
|
+
export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, blinders, target, controller, cutoff, at, requireSource = false }) {
|
|
328
|
+
if (cutoff !== undefined)
|
|
329
|
+
return { kind: "reject", reason: "event" };
|
|
330
|
+
if (at !== undefined) {
|
|
331
|
+
const selected = [rip, ...updates].filter((event) => event.said === at);
|
|
332
|
+
if (selected.length !== 1)
|
|
333
|
+
return { kind: "missing", reason: "anchor", issuer: rip.issuer, said: at };
|
|
334
|
+
const checked = selected[0].ilk === Ilks.rip ? validateRip(selected[0]) : validateUpdate(selected[0], rip.said);
|
|
335
|
+
if (checked.kind === "reject")
|
|
336
|
+
return checked;
|
|
337
|
+
const prefix = [];
|
|
229
338
|
for (const update of updates) {
|
|
230
|
-
const
|
|
231
|
-
if (
|
|
232
|
-
return { kind: "reject", reason: "
|
|
233
|
-
|
|
234
|
-
|
|
339
|
+
const sequence = update.sad?.n;
|
|
340
|
+
if (typeof sequence !== "string" || !/^(0|[1-9a-f][0-9a-f]*)$/.test(sequence) || ordinal(update) >= 2n ** 128n) {
|
|
341
|
+
return { kind: "reject", reason: "sequence" };
|
|
342
|
+
}
|
|
343
|
+
if (ordinal(update) <= checked.event.sn)
|
|
344
|
+
prefix.push(update);
|
|
235
345
|
}
|
|
236
|
-
updates =
|
|
346
|
+
updates = prefix;
|
|
237
347
|
}
|
|
238
348
|
const result = vet({ rip, updates, db, sources });
|
|
239
349
|
if (result.kind !== "verified")
|
|
@@ -243,10 +353,19 @@ export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, bli
|
|
|
243
353
|
const newest = [...updates].sort((a, b) => ordinal(a) > ordinal(b) ? -1 : ordinal(a) < ordinal(b) ? 1 : 0);
|
|
244
354
|
for (const update of newest) {
|
|
245
355
|
const matches = blinders.filter((blinder) => blinder.d.nonce === update.sad.b);
|
|
356
|
+
if (!matches.length) {
|
|
357
|
+
if (blinders.some((blinder) => !vetBlind(blinder, blinder.d.nonce))
|
|
358
|
+
|| new Set(blinders.map((blinder) => blinder.d.nonce)).size !== blinders.length)
|
|
359
|
+
return { kind: "reject", reason: "disclosure" };
|
|
360
|
+
return { kind: "missing", reason: "disclosure", issuer: result.state.issuer, said: update.said };
|
|
361
|
+
}
|
|
246
362
|
if (matches.length !== 1 || !vetBlind(matches[0], update.sad.b)) {
|
|
247
363
|
return { kind: "reject", reason: "disclosure" };
|
|
248
364
|
}
|
|
249
365
|
const blinder = matches[0];
|
|
366
|
+
const refusal = vetBound(blinder, acdc, db);
|
|
367
|
+
if (refusal)
|
|
368
|
+
return refusal;
|
|
250
369
|
const td = blinder.td.nonce;
|
|
251
370
|
const state = blinder.ts.text;
|
|
252
371
|
if (!td && !state)
|