keri-ts 0.11.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.
Files changed (820) hide show
  1. package/README.md +32 -2
  2. package/esm/keri/npm/src/_dnt.polyfills.js +36 -0
  3. package/esm/keri/npm/src/acdc/chaining.js +213 -0
  4. package/esm/keri/npm/src/acdc/dhking.js +716 -0
  5. package/esm/keri/npm/src/acdc/messaging.js +2 -0
  6. package/esm/keri/npm/src/acdc/observing.js +47 -40
  7. package/esm/keri/npm/src/acdc/regbasing.js +22 -22
  8. package/esm/keri/npm/src/acdc/regengine.js +88 -119
  9. package/esm/keri/npm/src/acdc/regeventing.js +163 -44
  10. package/esm/keri/npm/src/acdc/registering.js +99 -23
  11. package/esm/keri/npm/src/acdc/registraring.js +82 -46
  12. package/esm/keri/npm/src/acdc/relating.js +59 -0
  13. package/esm/keri/npm/src/acdc/salting.js +720 -0
  14. package/esm/keri/npm/src/acdc/scheming.js +103 -105
  15. package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
  16. package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +40 -39
  17. package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
  18. package/esm/keri/npm/src/app/bootstrap/oobi-replies.js +113 -0
  19. package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +211 -267
  20. package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
  21. package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
  22. package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
  23. package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
  24. package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
  25. package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +50 -45
  26. package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
  27. package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
  28. package/esm/keri/npm/src/app/delivery/reply-streams.js +230 -0
  29. package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
  30. package/esm/keri/npm/src/app/delivery/stored-replies.js +53 -0
  31. package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
  32. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
  33. package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
  34. package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +13 -8
  35. package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
  36. package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +118 -40
  37. package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +43 -39
  38. package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +258 -226
  39. package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
  40. package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
  41. package/esm/keri/npm/src/app/{ipex-building.js → ipex/ipex-building.js} +53 -55
  42. package/esm/keri/npm/src/app/ipex/ipex-credentialing.js +359 -0
  43. package/esm/keri/npm/src/app/{ipex-graph.js → ipex/ipex-graph.js} +70 -124
  44. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
  45. package/esm/keri/npm/src/app/ipex/ipex-node-authentication.js +185 -0
  46. package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
  47. package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +59 -10
  48. package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
  49. package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +146 -139
  50. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
  51. package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
  52. package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +117 -70
  53. package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
  54. package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
  55. package/esm/keri/npm/src/app/multisig/grouping.js +932 -0
  56. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
  57. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
  58. package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +23 -50
  59. package/esm/keri/npm/src/app/notifications/signaling.js +177 -0
  60. package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +123 -53
  61. package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
  62. package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
  63. package/esm/keri/npm/src/app/queries/query-replies.js +151 -0
  64. package/esm/keri/npm/src/app/queries/querying.js +306 -0
  65. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
  66. package/esm/keri/npm/src/app/runtime/abortable.js +103 -0
  67. package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
  68. package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
  69. package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
  70. package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +43 -21
  71. package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
  72. package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +28 -78
  73. package/esm/keri/npm/src/app/transport/http-client.js +172 -0
  74. package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
  75. package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
  76. package/esm/keri/npm/src/app/transport/httping.js +57 -0
  77. package/esm/keri/npm/src/app/transport/message-source.js +77 -0
  78. package/esm/keri/npm/src/app/transport/messengering.js +68 -0
  79. package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +41 -5
  80. package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
  81. package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
  82. package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
  83. package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
  84. package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
  85. package/esm/keri/npm/src/app/witness/ingress.js +148 -0
  86. package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
  87. package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
  88. package/esm/keri/npm/src/app/witness/receipting.js +323 -0
  89. package/esm/keri/npm/src/app/witness/registration.js +50 -0
  90. package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
  91. package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -9
  92. package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -29
  93. package/esm/keri/npm/src/cli/common/parsing.js +279 -0
  94. package/esm/keri/npm/src/cli/common/passcode.js +66 -0
  95. package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
  96. package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
  97. package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
  98. package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
  99. package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +71 -53
  100. package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +34 -31
  101. package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +22 -20
  102. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
  103. package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +37 -36
  104. package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
  105. package/esm/keri/npm/src/cli/identity/challenge.js +181 -0
  106. package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +88 -73
  107. package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
  108. package/esm/keri/npm/src/cli/identity/incept.js +181 -0
  109. package/esm/keri/npm/src/cli/identity/init.js +153 -0
  110. package/esm/keri/npm/src/cli/identity/interact.js +84 -0
  111. package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
  112. package/esm/keri/npm/src/cli/identity/rotate.js +172 -0
  113. package/esm/keri/npm/src/cli/index.js +38 -0
  114. package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -24
  115. package/esm/keri/npm/src/cli/messaging/multisig.js +569 -0
  116. package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
  117. package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
  118. package/esm/keri/npm/src/cli/tools/annotate.js +25 -0
  119. package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +18 -9
  120. package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +14 -27
  121. package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
  122. package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
  123. package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
  124. package/esm/keri/npm/src/core/attachment-countering.js +31 -1
  125. package/esm/keri/npm/src/core/deck.js +5 -44
  126. package/esm/keri/npm/src/core/dispatch.js +10 -2
  127. package/esm/keri/npm/src/core/errors.js +5 -10
  128. package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
  129. package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +47 -4
  130. package/esm/keri/npm/src/core/genus-framing.js +44 -0
  131. package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +209 -390
  132. package/esm/keri/npm/src/core/kel/kever-decisions.js +70 -0
  133. package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +84 -167
  134. package/esm/keri/npm/src/core/logger.js +3 -3
  135. package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
  136. package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +5 -15
  137. package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
  138. package/esm/keri/npm/src/core/mailbox/kram-staging.js +149 -0
  139. package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +9 -15
  140. package/esm/keri/npm/src/core/mailbox/kraming.js +78 -0
  141. package/esm/keri/npm/src/core/protocol-eventing.js +6 -1
  142. package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
  143. package/esm/keri/npm/src/core/protocol-vdr-eventing.js +10 -11
  144. package/esm/keri/npm/src/core/records.js +0 -19
  145. package/esm/keri/npm/src/core/routing.js +187 -199
  146. package/esm/keri/npm/src/db/baser-defaults.js +11 -0
  147. package/esm/keri/npm/src/db/basing.js +224 -401
  148. package/esm/keri/npm/src/db/core/keys.js +2 -2
  149. package/esm/keri/npm/src/db/core/lmdber.js +123 -149
  150. package/esm/keri/npm/src/db/core/path-manager.js +2 -4
  151. package/esm/keri/npm/src/db/escrowing.js +82 -200
  152. package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
  153. package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
  154. package/esm/keri/npm/src/db/index.js +5 -6
  155. package/esm/keri/npm/src/db/keeping.js +123 -6
  156. package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +17 -50
  157. package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +5 -8
  158. package/esm/keri/npm/src/db/reger.js +48 -69
  159. package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +12 -24
  160. package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +38 -36
  161. package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +8 -14
  162. package/esm/keri/npm/src/db/subing.js +2 -11
  163. package/esm/keri/npm/src/did/keri/resolving.js +4 -18
  164. package/esm/keri/npm/src/did/webs/artifacts.js +21 -24
  165. package/esm/keri/npm/src/did/webs/designated-aliases.js +18 -48
  166. package/esm/keri/npm/src/did/webs/documenting.js +8 -8
  167. package/esm/keri/npm/src/did/webs/resolving.js +73 -74
  168. package/esm/keri/npm/src/library/index.js +1 -1
  169. package/esm/keri/npm/src/npm/cli.js +1 -1
  170. package/esm/keri/npm/src/npm/index.js +1 -1
  171. package/esm/keri/npm/src/runtime/index.js +105 -74
  172. package/esm/keri/npm/src/vdr/backer-state.js +55 -0
  173. package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
  174. package/esm/keri/npm/src/vdr/credentialing.js +84 -109
  175. package/esm/keri/npm/src/vdr/eventing.js +633 -251
  176. package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
  177. package/esm/keri/npm/src/vdr/revoking.js +90 -0
  178. package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
  179. package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
  180. package/esm/keri/npm/src/vdr/tsn-query.js +15 -10
  181. package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
  182. package/package.json +7 -21
  183. package/types/_dnt.polyfills.d.ts +55 -0
  184. package/types/_dnt.polyfills.d.ts.map +1 -1
  185. package/types/acdc/chaining.d.ts +35 -0
  186. package/types/acdc/chaining.d.ts.map +1 -0
  187. package/types/acdc/dhking.d.ts +136 -0
  188. package/types/acdc/dhking.d.ts.map +1 -0
  189. package/types/acdc/messaging.d.ts.map +1 -1
  190. package/types/acdc/observing.d.ts +19 -15
  191. package/types/acdc/observing.d.ts.map +1 -1
  192. package/types/acdc/regbasing.d.ts +8 -9
  193. package/types/acdc/regbasing.d.ts.map +1 -1
  194. package/types/acdc/regengine.d.ts +14 -28
  195. package/types/acdc/regengine.d.ts.map +1 -1
  196. package/types/acdc/regeventing.d.ts +24 -7
  197. package/types/acdc/regeventing.d.ts.map +1 -1
  198. package/types/acdc/registering.d.ts +27 -11
  199. package/types/acdc/registering.d.ts.map +1 -1
  200. package/types/acdc/registraring.d.ts +22 -22
  201. package/types/acdc/registraring.d.ts.map +1 -1
  202. package/types/acdc/relating.d.ts +21 -0
  203. package/types/acdc/relating.d.ts.map +1 -0
  204. package/types/acdc/salting.d.ts +241 -0
  205. package/types/acdc/salting.d.ts.map +1 -0
  206. package/types/acdc/scheming.d.ts +3 -2
  207. package/types/acdc/scheming.d.ts.map +1 -1
  208. package/types/acdc/unblinding.d.ts +150 -0
  209. package/types/acdc/unblinding.d.ts.map +1 -0
  210. package/types/app/bootstrap/authenticating.d.ts +54 -0
  211. package/types/app/bootstrap/authenticating.d.ts.map +1 -0
  212. package/types/app/bootstrap/bootstrapping.d.ts +45 -0
  213. package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
  214. package/types/app/bootstrap/oobi-replies.d.ts +8 -0
  215. package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
  216. package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -27
  217. package/types/app/bootstrap/oobiery.d.ts.map +1 -0
  218. package/types/app/credentials/credential-importing.d.ts +29 -0
  219. package/types/app/credentials/credential-importing.d.ts.map +1 -0
  220. package/types/app/credentials/credential-proposals.d.ts +27 -0
  221. package/types/app/credentials/credential-proposals.d.ts.map +1 -0
  222. package/types/app/credentials/credential-revoking.d.ts +44 -0
  223. package/types/app/credentials/credential-revoking.d.ts.map +1 -0
  224. package/types/app/credentials/credential-workflows.d.ts +149 -0
  225. package/types/app/credentials/credential-workflows.d.ts.map +1 -0
  226. package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
  227. package/types/app/credentials/schema-resolving.d.ts.map +1 -0
  228. package/types/app/credentials/tel-publishing.d.ts +16 -0
  229. package/types/app/credentials/tel-publishing.d.ts.map +1 -0
  230. package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +20 -9
  231. package/types/app/credentials/verifying.d.ts.map +1 -0
  232. package/types/app/delivery/forwarding.d.ts +227 -0
  233. package/types/app/delivery/forwarding.d.ts.map +1 -0
  234. package/types/app/delivery/introducing.d.ts +21 -0
  235. package/types/app/delivery/introducing.d.ts.map +1 -0
  236. package/types/app/delivery/reply-streams.d.ts +49 -0
  237. package/types/app/delivery/reply-streams.d.ts.map +1 -0
  238. package/types/app/delivery/respondant.d.ts +52 -0
  239. package/types/app/delivery/respondant.d.ts.map +1 -0
  240. package/types/app/delivery/stored-replies.d.ts +11 -0
  241. package/types/app/delivery/stored-replies.d.ts.map +1 -0
  242. package/types/app/exchanges/essr.d.ts +53 -0
  243. package/types/app/exchanges/essr.d.ts.map +1 -0
  244. package/types/app/exchanges/exchange-messaging.d.ts +73 -0
  245. package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
  246. package/types/app/exchanges/exchanging.d.ts +379 -0
  247. package/types/app/exchanges/exchanging.d.ts.map +1 -0
  248. package/types/app/{challenging.d.ts → identity/challenging.d.ts} +9 -3
  249. package/types/app/identity/challenging.d.ts.map +1 -0
  250. package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
  251. package/types/app/identity/configing.d.ts.map +1 -0
  252. package/types/app/{delegating.d.ts → identity/delegating.d.ts} +59 -17
  253. package/types/app/identity/delegating.d.ts.map +1 -0
  254. package/types/app/identity/endpoint-roleing.d.ts +54 -0
  255. package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
  256. package/types/app/{habbing.d.ts → identity/habbing.d.ts} +86 -54
  257. package/types/app/identity/habbing.d.ts.map +1 -0
  258. package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
  259. package/types/app/identity/keeping.d.ts.map +1 -0
  260. package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
  261. package/types/app/identity/organizing.d.ts.map +1 -0
  262. package/types/app/{ipex-building.d.ts → ipex/ipex-building.d.ts} +5 -5
  263. package/types/app/ipex/ipex-building.d.ts.map +1 -0
  264. package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +42 -10
  265. package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
  266. package/types/app/ipex/ipex-graph.d.ts +28 -0
  267. package/types/app/ipex/ipex-graph.d.ts.map +1 -0
  268. package/types/app/ipex/ipex-grouping.d.ts +112 -0
  269. package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
  270. package/types/app/ipex/ipex-node-authentication.d.ts +32 -0
  271. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
  272. package/types/app/ipex/ipex-v2.d.ts +71 -0
  273. package/types/app/ipex/ipex-v2.d.ts.map +1 -0
  274. package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -8
  275. package/types/app/ipex/ipexing.d.ts.map +1 -0
  276. package/types/app/mailbox/forward-handler.d.ts +68 -0
  277. package/types/app/mailbox/forward-handler.d.ts.map +1 -0
  278. package/types/app/mailbox/mailbox-director.d.ts +252 -0
  279. package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
  280. package/types/app/mailbox/mailbox-poller.d.ts +149 -0
  281. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
  282. package/types/app/mailbox/mailbox-sse.d.ts +63 -0
  283. package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
  284. package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -43
  285. package/types/app/mailbox/mailboxing.d.ts.map +1 -0
  286. package/types/app/mailbox/topic-routing.d.ts +18 -0
  287. package/types/app/mailbox/topic-routing.d.ts.map +1 -0
  288. package/types/app/multisig/group-members.d.ts +60 -0
  289. package/types/app/multisig/group-members.d.ts.map +1 -0
  290. package/types/app/multisig/grouping.d.ts +317 -0
  291. package/types/app/multisig/grouping.d.ts.map +1 -0
  292. package/types/app/multisig/multisig-messaging.d.ts +97 -0
  293. package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
  294. package/types/app/multisig/multisig-workflows.d.ts +85 -0
  295. package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
  296. package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +5 -6
  297. package/types/app/notifications/notifying.d.ts.map +1 -0
  298. package/types/app/notifications/signaling.d.ts +68 -0
  299. package/types/app/notifications/signaling.d.ts.map +1 -0
  300. package/types/app/protocol/parsering.d.ts +128 -0
  301. package/types/app/protocol/parsering.d.ts.map +1 -0
  302. package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
  303. package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
  304. package/types/app/protocol/protocol-processing.d.ts +140 -0
  305. package/types/app/protocol/protocol-processing.d.ts.map +1 -0
  306. package/types/app/protocol/reactor.d.ts +43 -0
  307. package/types/app/protocol/reactor.d.ts.map +1 -0
  308. package/types/app/queries/query-replies.d.ts +78 -0
  309. package/types/app/queries/query-replies.d.ts.map +1 -0
  310. package/types/app/queries/querying.d.ts +155 -0
  311. package/types/app/queries/querying.d.ts.map +1 -0
  312. package/types/app/queries/witness-inquisitor.d.ts +150 -0
  313. package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
  314. package/types/app/runtime/abortable.d.ts +39 -0
  315. package/types/app/runtime/abortable.d.ts.map +1 -0
  316. package/types/app/runtime/agent-runtime.d.ts +348 -0
  317. package/types/app/runtime/agent-runtime.d.ts.map +1 -0
  318. package/types/app/runtime/cue-runtime.d.ts +33 -0
  319. package/types/app/runtime/cue-runtime.d.ts.map +1 -0
  320. package/types/app/runtime/runtime-clock.d.ts +28 -0
  321. package/types/app/runtime/runtime-clock.d.ts.map +1 -0
  322. package/types/app/runtime/runtime-turn.d.ts.map +1 -0
  323. package/types/app/transport/byte-source.d.ts +41 -0
  324. package/types/app/transport/byte-source.d.ts.map +1 -0
  325. package/types/app/transport/cesr-egress.d.ts +117 -0
  326. package/types/app/transport/cesr-egress.d.ts.map +1 -0
  327. package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +9 -33
  328. package/types/app/transport/cesr-http.d.ts.map +1 -0
  329. package/types/app/transport/http-client.d.ts +99 -0
  330. package/types/app/transport/http-client.d.ts.map +1 -0
  331. package/types/app/transport/http-messenger.d.ts +37 -0
  332. package/types/app/transport/http-messenger.d.ts.map +1 -0
  333. package/types/app/transport/http-stream-messenger.d.ts +30 -0
  334. package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
  335. package/types/app/transport/httping.d.ts +19 -0
  336. package/types/app/transport/httping.d.ts.map +1 -0
  337. package/types/app/transport/message-source.d.ts +22 -0
  338. package/types/app/transport/message-source.d.ts.map +1 -0
  339. package/types/app/transport/messengering.d.ts +41 -0
  340. package/types/app/transport/messengering.d.ts.map +1 -0
  341. package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +10 -3
  342. package/types/app/transport/socket-source.d.ts.map +1 -0
  343. package/types/app/transport/tcp-egress.d.ts +118 -0
  344. package/types/app/transport/tcp-egress.d.ts.map +1 -0
  345. package/types/app/transport/tcp-messenger.d.ts +69 -0
  346. package/types/app/transport/tcp-messenger.d.ts.map +1 -0
  347. package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
  348. package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
  349. package/types/app/transport/transport-error.d.ts +12 -0
  350. package/types/app/transport/transport-error.d.ts.map +1 -0
  351. package/types/app/witness/http-endpoints.d.ts +77 -0
  352. package/types/app/witness/http-endpoints.d.ts.map +1 -0
  353. package/types/app/witness/ingress.d.ts +65 -0
  354. package/types/app/witness/ingress.d.ts.map +1 -0
  355. package/types/app/witness/receipt-client.d.ts +82 -0
  356. package/types/app/witness/receipt-client.d.ts.map +1 -0
  357. package/types/app/witness/receipt-messages.d.ts +21 -0
  358. package/types/app/witness/receipt-messages.d.ts.map +1 -0
  359. package/types/app/witness/receipting.d.ts +117 -0
  360. package/types/app/witness/receipting.d.ts.map +1 -0
  361. package/types/app/witness/registration.d.ts +27 -0
  362. package/types/app/witness/registration.d.ts.map +1 -0
  363. package/types/cli/common/bootstrap.d.ts +5 -0
  364. package/types/cli/common/bootstrap.d.ts.map +1 -0
  365. package/types/{app/cli → cli}/common/context.d.ts +10 -9
  366. package/types/cli/common/context.d.ts.map +1 -0
  367. package/types/{app/cli → cli}/common/existing.d.ts +2 -8
  368. package/types/cli/common/existing.d.ts.map +1 -0
  369. package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
  370. package/types/cli/common/parsing.d.ts.map +1 -0
  371. package/types/cli/common/passcode.d.ts +9 -0
  372. package/types/cli/common/passcode.d.ts.map +1 -0
  373. package/types/cli/common/rendering.d.ts.map +1 -0
  374. package/types/cli/common/tel-completion.d.ts +8 -0
  375. package/types/cli/common/tel-completion.d.ts.map +1 -0
  376. package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
  377. package/types/cli/common/witness-auth.d.ts.map +1 -0
  378. package/types/cli/credentials/ipex.d.ts +110 -0
  379. package/types/cli/credentials/ipex.d.ts.map +1 -0
  380. package/types/cli/credentials/vc.d.ts +42 -0
  381. package/types/cli/credentials/vc.d.ts.map +1 -0
  382. package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
  383. package/types/cli/endpoints/did.d.ts.map +1 -0
  384. package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
  385. package/types/cli/endpoints/ends.d.ts.map +1 -0
  386. package/types/cli/endpoints/loc.d.ts.map +1 -0
  387. package/types/cli/endpoints/oobi-clean.d.ts +8 -0
  388. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
  389. package/types/{app/cli → cli/endpoints}/oobi.d.ts +3 -1
  390. package/types/cli/endpoints/oobi.d.ts.map +1 -0
  391. package/types/cli/identity/aid.d.ts.map +1 -0
  392. package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
  393. package/types/cli/identity/challenge.d.ts.map +1 -0
  394. package/types/cli/identity/delegate.d.ts +4 -0
  395. package/types/cli/identity/delegate.d.ts.map +1 -0
  396. package/types/cli/identity/export.d.ts.map +1 -0
  397. package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
  398. package/types/cli/identity/incept.d.ts.map +1 -0
  399. package/types/{app/cli → cli/identity}/init.d.ts +2 -0
  400. package/types/cli/identity/init.d.ts.map +1 -0
  401. package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
  402. package/types/cli/identity/interact.d.ts.map +1 -0
  403. package/types/cli/identity/list.d.ts.map +1 -0
  404. package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
  405. package/types/cli/identity/rotate.d.ts.map +1 -0
  406. package/types/cli/index.d.ts +39 -0
  407. package/types/cli/index.d.ts.map +1 -0
  408. package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
  409. package/types/cli/messaging/exchange.d.ts.map +1 -0
  410. package/types/cli/messaging/multisig.d.ts +29 -0
  411. package/types/cli/messaging/multisig.d.ts.map +1 -0
  412. package/types/cli/messaging/notifications.d.ts.map +1 -0
  413. package/types/cli/output.d.ts.map +1 -0
  414. package/types/cli/tools/annotate-color.d.ts.map +1 -0
  415. package/types/cli/tools/annotate.d.ts.map +1 -0
  416. package/types/cli/tools/benchmark.d.ts.map +1 -0
  417. package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -2
  418. package/types/cli/tools/db-dump.d.ts.map +1 -0
  419. package/types/cli/tools/saidify.d.ts.map +1 -0
  420. package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
  421. package/types/cli/tools/sign.d.ts.map +1 -0
  422. package/types/cli/tools/verify.d.ts.map +1 -0
  423. package/types/core/attachment-countering.d.ts +10 -1
  424. package/types/core/attachment-countering.d.ts.map +1 -1
  425. package/types/core/cues.d.ts +146 -57
  426. package/types/core/cues.d.ts.map +1 -1
  427. package/types/core/deck.d.ts +2 -12
  428. package/types/core/deck.d.ts.map +1 -1
  429. package/types/core/dispatch.d.ts +7 -3
  430. package/types/core/dispatch.d.ts.map +1 -1
  431. package/types/core/errors.d.ts +4 -4
  432. package/types/core/errors.d.ts.map +1 -1
  433. package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
  434. package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
  435. package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +18 -2
  436. package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
  437. package/types/core/genus-framing.d.ts +12 -0
  438. package/types/core/genus-framing.d.ts.map +1 -0
  439. package/types/core/{eventing.d.ts → kel/eventing.d.ts} +37 -48
  440. package/types/core/kel/eventing.d.ts.map +1 -0
  441. package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +36 -22
  442. package/types/core/kel/kever-decisions.d.ts.map +1 -0
  443. package/types/core/{kever.d.ts → kel/kever.d.ts} +13 -47
  444. package/types/core/kel/kever.d.ts.map +1 -0
  445. package/types/core/kel/witnesses.d.ts.map +1 -0
  446. package/types/core/logger.d.ts +1 -1
  447. package/types/core/logger.d.ts.map +1 -1
  448. package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
  449. package/types/core/mailbox/kram-auth.d.ts.map +1 -0
  450. package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
  451. package/types/core/mailbox/kram-policy.d.ts.map +1 -0
  452. package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +3 -3
  453. package/types/core/{kram-pruning.d.ts.map → mailbox/kram-pruning.d.ts.map} +1 -1
  454. package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
  455. package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
  456. package/types/core/mailbox/kram-staging.d.ts +30 -0
  457. package/types/core/mailbox/kram-staging.d.ts.map +1 -0
  458. package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +5 -11
  459. package/types/core/mailbox/kram-time.d.ts.map +1 -0
  460. package/types/core/mailbox/kraming.d.ts +42 -0
  461. package/types/core/mailbox/kraming.d.ts.map +1 -0
  462. package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
  463. package/types/core/protocol-eventing.d.ts +5 -0
  464. package/types/core/protocol-eventing.d.ts.map +1 -1
  465. package/types/core/protocol-serialization.d.ts +1 -1
  466. package/types/core/protocol-serialization.d.ts.map +1 -1
  467. package/types/core/protocol-vdr-eventing.d.ts +7 -5
  468. package/types/core/protocol-vdr-eventing.d.ts.map +1 -1
  469. package/types/core/records.d.ts +15 -50
  470. package/types/core/records.d.ts.map +1 -1
  471. package/types/core/routing.d.ts +76 -46
  472. package/types/core/routing.d.ts.map +1 -1
  473. package/types/db/baser-defaults.d.ts +5 -0
  474. package/types/db/baser-defaults.d.ts.map +1 -0
  475. package/types/db/basing.d.ts +70 -75
  476. package/types/db/basing.d.ts.map +1 -1
  477. package/types/db/core/keys.d.ts.map +1 -1
  478. package/types/db/core/lmdber.d.ts +21 -23
  479. package/types/db/core/lmdber.d.ts.map +1 -1
  480. package/types/db/core/path-manager.d.ts.map +1 -1
  481. package/types/db/escrowing.d.ts +12 -49
  482. package/types/db/escrowing.d.ts.map +1 -1
  483. package/types/db/exchange/exchange-nests.d.ts +12 -0
  484. package/types/db/exchange/exchange-nests.d.ts.map +1 -0
  485. package/types/db/exchange/exchange-records.d.ts +38 -0
  486. package/types/db/exchange/exchange-records.d.ts.map +1 -0
  487. package/types/db/index.d.ts +5 -6
  488. package/types/db/index.d.ts.map +1 -1
  489. package/types/db/keeping.d.ts +19 -1
  490. package/types/db/keeping.d.ts.map +1 -1
  491. package/types/db/koming.d.ts +1 -1
  492. package/types/db/koming.d.ts.map +1 -1
  493. package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +3 -5
  494. package/types/db/mailbox/kram-factors.d.ts.map +1 -0
  495. package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +3 -4
  496. package/types/db/mailbox/mailboxing.d.ts.map +1 -0
  497. package/types/db/reger.d.ts +10 -12
  498. package/types/db/reger.d.ts.map +1 -1
  499. package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +2 -6
  500. package/types/db/replay/kel-replay.d.ts.map +1 -0
  501. package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +13 -8
  502. package/types/db/replay/tel-replay.d.ts.map +1 -0
  503. package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +2 -3
  504. package/types/db/replay/witness-replay.d.ts.map +1 -0
  505. package/types/db/subing.d.ts +1 -5
  506. package/types/db/subing.d.ts.map +1 -1
  507. package/types/did/keri/resolving.d.ts +5 -10
  508. package/types/did/keri/resolving.d.ts.map +1 -1
  509. package/types/did/webs/artifacts.d.ts +5 -5
  510. package/types/did/webs/artifacts.d.ts.map +1 -1
  511. package/types/did/webs/designated-aliases.d.ts +6 -5
  512. package/types/did/webs/designated-aliases.d.ts.map +1 -1
  513. package/types/did/webs/documenting.d.ts +6 -5
  514. package/types/did/webs/documenting.d.ts.map +1 -1
  515. package/types/did/webs/resolving.d.ts +13 -3
  516. package/types/did/webs/resolving.d.ts.map +1 -1
  517. package/types/library/index.d.ts +1 -1
  518. package/types/library/index.d.ts.map +1 -1
  519. package/types/npm/cli.d.ts +1 -1
  520. package/types/npm/cli.d.ts.map +1 -1
  521. package/types/npm/index.d.ts +1 -1
  522. package/types/npm/index.d.ts.map +1 -1
  523. package/types/runtime/index.d.ts +109 -76
  524. package/types/runtime/index.d.ts.map +1 -1
  525. package/types/vdr/backer-state.d.ts +22 -0
  526. package/types/vdr/backer-state.d.ts.map +1 -0
  527. package/types/vdr/credential-tsn-record.d.ts +13 -0
  528. package/types/vdr/credential-tsn-record.d.ts.map +1 -0
  529. package/types/vdr/credentialing.d.ts +16 -27
  530. package/types/vdr/credentialing.d.ts.map +1 -1
  531. package/types/vdr/eventing.d.ts +66 -23
  532. package/types/vdr/eventing.d.ts.map +1 -1
  533. package/types/vdr/registry-tsn-record.d.ts +6 -0
  534. package/types/vdr/registry-tsn-record.d.ts.map +1 -0
  535. package/types/vdr/revoking.d.ts +18 -0
  536. package/types/vdr/revoking.d.ts.map +1 -0
  537. package/types/vdr/tel-anchor.d.ts +10 -0
  538. package/types/vdr/tel-anchor.d.ts.map +1 -0
  539. package/types/vdr/tel-publication.d.ts +49 -0
  540. package/types/vdr/tel-publication.d.ts.map +1 -0
  541. package/types/vdr/tsn-query.d.ts +9 -4
  542. package/types/vdr/tsn-query.d.ts.map +1 -1
  543. package/types/{app/version.d.ts → version.d.ts} +2 -2
  544. package/types/version.d.ts.map +1 -0
  545. package/esm/keri/npm/src/app/abortable.js +0 -27
  546. package/esm/keri/npm/src/app/agent-runtime.js +0 -638
  547. package/esm/keri/npm/src/app/cesr-egress.js +0 -308
  548. package/esm/keri/npm/src/app/cesr-output.js +0 -12
  549. package/esm/keri/npm/src/app/cli/annotate.js +0 -24
  550. package/esm/keri/npm/src/app/cli/challenge.js +0 -168
  551. package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
  552. package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
  553. package/esm/keri/npm/src/app/cli/incept.js +0 -187
  554. package/esm/keri/npm/src/app/cli/index.js +0 -36
  555. package/esm/keri/npm/src/app/cli/init.js +0 -155
  556. package/esm/keri/npm/src/app/cli/interact.js +0 -72
  557. package/esm/keri/npm/src/app/cli/ipex.js +0 -453
  558. package/esm/keri/npm/src/app/cli/multisig.js +0 -474
  559. package/esm/keri/npm/src/app/cli/query.js +0 -143
  560. package/esm/keri/npm/src/app/cli/rotate.js +0 -171
  561. package/esm/keri/npm/src/app/cli/vc.js +0 -284
  562. package/esm/keri/npm/src/app/cli/verifier.js +0 -96
  563. package/esm/keri/npm/src/app/credential-workflows.js +0 -431
  564. package/esm/keri/npm/src/app/cue-delivery.js +0 -171
  565. package/esm/keri/npm/src/app/cue-preparation.js +0 -124
  566. package/esm/keri/npm/src/app/cue-route.js +0 -64
  567. package/esm/keri/npm/src/app/cue-runtime.js +0 -104
  568. package/esm/keri/npm/src/app/direct-reply-delivery.js +0 -282
  569. package/esm/keri/npm/src/app/essr.js +0 -235
  570. package/esm/keri/npm/src/app/exchanging.js +0 -1219
  571. package/esm/keri/npm/src/app/forwarding.js +0 -1346
  572. package/esm/keri/npm/src/app/group-members.js +0 -37
  573. package/esm/keri/npm/src/app/grouping.js +0 -534
  574. package/esm/keri/npm/src/app/httping.js +0 -130
  575. package/esm/keri/npm/src/app/ipex-credentialing.js +0 -245
  576. package/esm/keri/npm/src/app/ipex-grouping.js +0 -317
  577. package/esm/keri/npm/src/app/ipex-v2.js +0 -542
  578. package/esm/keri/npm/src/app/mailbox-sse.js +0 -257
  579. package/esm/keri/npm/src/app/multisig-workflows.js +0 -537
  580. package/esm/keri/npm/src/app/oobi-replies.js +0 -194
  581. package/esm/keri/npm/src/app/query-replies.js +0 -181
  582. package/esm/keri/npm/src/app/querying.js +0 -1040
  583. package/esm/keri/npm/src/app/reactor.js +0 -517
  584. package/esm/keri/npm/src/app/reply-streams.js +0 -304
  585. package/esm/keri/npm/src/app/respondant.js +0 -173
  586. package/esm/keri/npm/src/app/runtime-deliveries.js +0 -510
  587. package/esm/keri/npm/src/app/runtime-services.js +0 -25
  588. package/esm/keri/npm/src/app/signaling.js +0 -388
  589. package/esm/keri/npm/src/app/stored-replies.js +0 -85
  590. package/esm/keri/npm/src/app/tcp-egress.js +0 -334
  591. package/esm/keri/npm/src/app/verifier-agent.js +0 -461
  592. package/esm/keri/npm/src/app/witnessing.js +0 -956
  593. package/esm/keri/npm/src/core/cue-admission.js +0 -419
  594. package/esm/keri/npm/src/core/index.js +0 -23
  595. package/esm/keri/npm/src/core/kever-decisions.js +0 -63
  596. package/esm/keri/npm/src/core/kram-handoff.js +0 -148
  597. package/esm/keri/npm/src/core/kram-staging.js +0 -211
  598. package/esm/keri/npm/src/core/kraming.js +0 -99
  599. package/esm/keri/npm/src/db/exchange-nests.js +0 -175
  600. package/esm/keri/npm/src/db/exchange-records.js +0 -7
  601. package/esm/keri/npm/src/db/kram-snapshots.js +0 -216
  602. package/esm/keri/npm/src/db/mailbox-inbox.js +0 -206
  603. package/esm/keri/npm/src/db/outboxing.js +0 -371
  604. package/esm/keri/npm/src/db/payload-archive.js +0 -402
  605. package/esm/keri/npm/src/db/payload-store.js +0 -416
  606. package/esm/keri/npm/src/db/payload-view.js +0 -23
  607. package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
  608. package/esm/keri/npm/src/vdr/credential-tsn.js +0 -218
  609. package/esm/keri/npm/src/vdr/registry-tsn.js +0 -218
  610. package/types/app/abortable.d.ts +0 -11
  611. package/types/app/abortable.d.ts.map +0 -1
  612. package/types/app/agent-runtime.d.ts +0 -284
  613. package/types/app/agent-runtime.d.ts.map +0 -1
  614. package/types/app/authenticating.d.ts +0 -36
  615. package/types/app/authenticating.d.ts.map +0 -1
  616. package/types/app/byte-source.d.ts +0 -16
  617. package/types/app/byte-source.d.ts.map +0 -1
  618. package/types/app/cesr-egress.d.ts +0 -48
  619. package/types/app/cesr-egress.d.ts.map +0 -1
  620. package/types/app/cesr-http.d.ts.map +0 -1
  621. package/types/app/cesr-output.d.ts +0 -5
  622. package/types/app/cesr-output.d.ts.map +0 -1
  623. package/types/app/challenging.d.ts.map +0 -1
  624. package/types/app/cli/aid.d.ts.map +0 -1
  625. package/types/app/cli/annotate-color.d.ts.map +0 -1
  626. package/types/app/cli/annotate.d.ts.map +0 -1
  627. package/types/app/cli/benchmark.d.ts.map +0 -1
  628. package/types/app/cli/challenge.d.ts.map +0 -1
  629. package/types/app/cli/common/context.d.ts.map +0 -1
  630. package/types/app/cli/common/displaying.d.ts +0 -12
  631. package/types/app/cli/common/displaying.d.ts.map +0 -1
  632. package/types/app/cli/common/existing.d.ts.map +0 -1
  633. package/types/app/cli/common/parsing.d.ts.map +0 -1
  634. package/types/app/cli/common/rendering.d.ts.map +0 -1
  635. package/types/app/cli/common/witness-auth.d.ts.map +0 -1
  636. package/types/app/cli/db-dump.d.ts.map +0 -1
  637. package/types/app/cli/delegate.d.ts +0 -26
  638. package/types/app/cli/delegate.d.ts.map +0 -1
  639. package/types/app/cli/did.d.ts.map +0 -1
  640. package/types/app/cli/ends.d.ts.map +0 -1
  641. package/types/app/cli/exchange.d.ts.map +0 -1
  642. package/types/app/cli/export.d.ts.map +0 -1
  643. package/types/app/cli/incept.d.ts.map +0 -1
  644. package/types/app/cli/index.d.ts +0 -37
  645. package/types/app/cli/index.d.ts.map +0 -1
  646. package/types/app/cli/init.d.ts.map +0 -1
  647. package/types/app/cli/interact.d.ts.map +0 -1
  648. package/types/app/cli/ipex.d.ts +0 -20
  649. package/types/app/cli/ipex.d.ts.map +0 -1
  650. package/types/app/cli/list.d.ts.map +0 -1
  651. package/types/app/cli/loc.d.ts.map +0 -1
  652. package/types/app/cli/multisig.d.ts +0 -12
  653. package/types/app/cli/multisig.d.ts.map +0 -1
  654. package/types/app/cli/notifications.d.ts.map +0 -1
  655. package/types/app/cli/oobi.d.ts.map +0 -1
  656. package/types/app/cli/output.d.ts.map +0 -1
  657. package/types/app/cli/query.d.ts +0 -12
  658. package/types/app/cli/query.d.ts.map +0 -1
  659. package/types/app/cli/rotate.d.ts.map +0 -1
  660. package/types/app/cli/saidify.d.ts.map +0 -1
  661. package/types/app/cli/sign.d.ts.map +0 -1
  662. package/types/app/cli/vc.d.ts +0 -20
  663. package/types/app/cli/vc.d.ts.map +0 -1
  664. package/types/app/cli/verifier.d.ts +0 -3
  665. package/types/app/cli/verifier.d.ts.map +0 -1
  666. package/types/app/cli/verify.d.ts.map +0 -1
  667. package/types/app/configing.d.ts.map +0 -1
  668. package/types/app/credential-workflows.d.ts +0 -118
  669. package/types/app/credential-workflows.d.ts.map +0 -1
  670. package/types/app/cue-delivery.d.ts +0 -30
  671. package/types/app/cue-delivery.d.ts.map +0 -1
  672. package/types/app/cue-preparation.d.ts +0 -25
  673. package/types/app/cue-preparation.d.ts.map +0 -1
  674. package/types/app/cue-route.d.ts +0 -19
  675. package/types/app/cue-route.d.ts.map +0 -1
  676. package/types/app/cue-runtime.d.ts +0 -46
  677. package/types/app/cue-runtime.d.ts.map +0 -1
  678. package/types/app/delegating.d.ts.map +0 -1
  679. package/types/app/direct-reply-delivery.d.ts +0 -38
  680. package/types/app/direct-reply-delivery.d.ts.map +0 -1
  681. package/types/app/endpoint-roleing.d.ts +0 -41
  682. package/types/app/endpoint-roleing.d.ts.map +0 -1
  683. package/types/app/essr.d.ts +0 -72
  684. package/types/app/essr.d.ts.map +0 -1
  685. package/types/app/exchanging.d.ts +0 -245
  686. package/types/app/exchanging.d.ts.map +0 -1
  687. package/types/app/forwarding.d.ts +0 -411
  688. package/types/app/forwarding.d.ts.map +0 -1
  689. package/types/app/group-members.d.ts +0 -12
  690. package/types/app/group-members.d.ts.map +0 -1
  691. package/types/app/grouping.d.ts +0 -150
  692. package/types/app/grouping.d.ts.map +0 -1
  693. package/types/app/habbing.d.ts.map +0 -1
  694. package/types/app/httping.d.ts +0 -42
  695. package/types/app/httping.d.ts.map +0 -1
  696. package/types/app/ipex-building.d.ts.map +0 -1
  697. package/types/app/ipex-credentialing.d.ts.map +0 -1
  698. package/types/app/ipex-graph.d.ts +0 -30
  699. package/types/app/ipex-graph.d.ts.map +0 -1
  700. package/types/app/ipex-grouping.d.ts +0 -51
  701. package/types/app/ipex-grouping.d.ts.map +0 -1
  702. package/types/app/ipex-v2.d.ts +0 -51
  703. package/types/app/ipex-v2.d.ts.map +0 -1
  704. package/types/app/ipexing.d.ts.map +0 -1
  705. package/types/app/keeping.d.ts.map +0 -1
  706. package/types/app/mailbox-director.d.ts +0 -159
  707. package/types/app/mailbox-director.d.ts.map +0 -1
  708. package/types/app/mailbox-sse.d.ts +0 -38
  709. package/types/app/mailbox-sse.d.ts.map +0 -1
  710. package/types/app/mailboxing.d.ts.map +0 -1
  711. package/types/app/multisig-workflows.d.ts +0 -59
  712. package/types/app/multisig-workflows.d.ts.map +0 -1
  713. package/types/app/notifying.d.ts.map +0 -1
  714. package/types/app/oobi-replies.d.ts +0 -18
  715. package/types/app/oobi-replies.d.ts.map +0 -1
  716. package/types/app/oobiery.d.ts.map +0 -1
  717. package/types/app/organizing.d.ts.map +0 -1
  718. package/types/app/parsering.d.ts +0 -106
  719. package/types/app/parsering.d.ts.map +0 -1
  720. package/types/app/protocol-host-policy.d.ts.map +0 -1
  721. package/types/app/query-replies.d.ts +0 -45
  722. package/types/app/query-replies.d.ts.map +0 -1
  723. package/types/app/querying.d.ts +0 -294
  724. package/types/app/querying.d.ts.map +0 -1
  725. package/types/app/reactor.d.ts +0 -171
  726. package/types/app/reactor.d.ts.map +0 -1
  727. package/types/app/reply-streams.d.ts +0 -51
  728. package/types/app/reply-streams.d.ts.map +0 -1
  729. package/types/app/respondant.d.ts +0 -48
  730. package/types/app/respondant.d.ts.map +0 -1
  731. package/types/app/runtime-deliveries.d.ts +0 -67
  732. package/types/app/runtime-deliveries.d.ts.map +0 -1
  733. package/types/app/runtime-services.d.ts +0 -29
  734. package/types/app/runtime-services.d.ts.map +0 -1
  735. package/types/app/runtime-turn.d.ts.map +0 -1
  736. package/types/app/schema-resolving.d.ts.map +0 -1
  737. package/types/app/signaling.d.ts +0 -96
  738. package/types/app/signaling.d.ts.map +0 -1
  739. package/types/app/socket-source.d.ts.map +0 -1
  740. package/types/app/stored-replies.d.ts +0 -18
  741. package/types/app/stored-replies.d.ts.map +0 -1
  742. package/types/app/tcp-egress.d.ts +0 -87
  743. package/types/app/tcp-egress.d.ts.map +0 -1
  744. package/types/app/verifier-agent.d.ts +0 -91
  745. package/types/app/verifier-agent.d.ts.map +0 -1
  746. package/types/app/verifying.d.ts.map +0 -1
  747. package/types/app/version.d.ts.map +0 -1
  748. package/types/app/witnessing.d.ts +0 -227
  749. package/types/app/witnessing.d.ts.map +0 -1
  750. package/types/core/cue-admission.d.ts +0 -74
  751. package/types/core/cue-admission.d.ts.map +0 -1
  752. package/types/core/eventing.d.ts.map +0 -1
  753. package/types/core/exchange-proofing.d.ts.map +0 -1
  754. package/types/core/index.d.ts +0 -24
  755. package/types/core/index.d.ts.map +0 -1
  756. package/types/core/kever-decisions.d.ts.map +0 -1
  757. package/types/core/kever.d.ts.map +0 -1
  758. package/types/core/kram-auth.d.ts.map +0 -1
  759. package/types/core/kram-handoff.d.ts +0 -45
  760. package/types/core/kram-handoff.d.ts.map +0 -1
  761. package/types/core/kram-policy.d.ts.map +0 -1
  762. package/types/core/kram-signatures.d.ts.map +0 -1
  763. package/types/core/kram-staging.d.ts +0 -36
  764. package/types/core/kram-staging.d.ts.map +0 -1
  765. package/types/core/kram-time.d.ts.map +0 -1
  766. package/types/core/kraming.d.ts +0 -46
  767. package/types/core/kraming.d.ts.map +0 -1
  768. package/types/core/mailbox-topics.d.ts.map +0 -1
  769. package/types/core/protocol-exchanging.d.ts.map +0 -1
  770. package/types/core/witnesses.d.ts.map +0 -1
  771. package/types/db/exchange-nests.d.ts +0 -39
  772. package/types/db/exchange-nests.d.ts.map +0 -1
  773. package/types/db/exchange-records.d.ts +0 -35
  774. package/types/db/exchange-records.d.ts.map +0 -1
  775. package/types/db/kel-replay.d.ts.map +0 -1
  776. package/types/db/kram-factors.d.ts.map +0 -1
  777. package/types/db/kram-snapshots.d.ts +0 -23
  778. package/types/db/kram-snapshots.d.ts.map +0 -1
  779. package/types/db/mailbox-inbox.d.ts +0 -72
  780. package/types/db/mailbox-inbox.d.ts.map +0 -1
  781. package/types/db/mailboxing.d.ts.map +0 -1
  782. package/types/db/outboxing.d.ts +0 -182
  783. package/types/db/outboxing.d.ts.map +0 -1
  784. package/types/db/payload-archive.d.ts +0 -70
  785. package/types/db/payload-archive.d.ts.map +0 -1
  786. package/types/db/payload-store.d.ts +0 -40
  787. package/types/db/payload-store.d.ts.map +0 -1
  788. package/types/db/payload-view.d.ts +0 -4
  789. package/types/db/payload-view.d.ts.map +0 -1
  790. package/types/db/tel-replay.d.ts.map +0 -1
  791. package/types/db/verifier-cueing.d.ts +0 -46
  792. package/types/db/verifier-cueing.d.ts.map +0 -1
  793. package/types/db/witness-replay.d.ts.map +0 -1
  794. package/types/vdr/credential-tsn.d.ts +0 -18
  795. package/types/vdr/credential-tsn.d.ts.map +0 -1
  796. package/types/vdr/registry-tsn.d.ts +0 -23
  797. package/types/vdr/registry-tsn.d.ts.map +0 -1
  798. /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
  799. /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
  800. /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
  801. /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
  802. /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
  803. /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
  804. /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
  805. /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
  806. /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
  807. /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
  808. /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
  809. /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
  810. /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
  811. /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
  812. /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
  813. /package/types/{app/cli → cli}/output.d.ts +0 -0
  814. /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
  815. /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
  816. /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
  817. /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
  818. /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
  819. /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
  820. /package/types/core/{mailbox-topics.d.ts → mailbox/mailbox-topics.d.ts} +0 -0
@@ -0,0 +1,692 @@
1
+ import { IPEX_V2_PREDECESSORS, isIpexVerb, nestedIpexRoute, } from "../../core/exchange/protocol-exchanging.js";
2
+ /** V2 IPEX route policy; v1 routing remains independently registered. */
3
+ import { Diger, ParserError, Prefixer, } from "cesr-ts";
4
+ import { evaluateChain } from "../../acdc/chaining.js";
5
+ import { validateUpdate, verifyRegistryAnchor, vet, vetBinds, vetBlind, vetBound, } from "../../acdc/regeventing.js";
6
+ import { validateSchema } from "../../acdc/scheming.js";
7
+ import { DatabaseOperationError } from "../../core/errors.js";
8
+ import { verifyExchangeProofs } from "../../core/exchange/exchange-proofing.js";
9
+ import { loadNests } from "../../db/exchange/exchange-nests.js";
10
+ import { envelopeFromFrame } from "../protocol/parsering.js";
11
+ import { hasIpexNodeAttachments, isIpexMetadata, singleDagDisclosurePlan, verifyIpexDisclosure, walkIpexGraph, } from "./ipex-graph.js";
12
+ import { acceptedRegistryEvidence, authenticatedNodeVerdict, authenticateIpexNode, } from "./ipex-node-authentication.js";
13
+ /** SAD payloads include application-defined keys; named protocol fields are checked below before use. */
14
+ function record(value) {
15
+ return value !== null && typeof value === "object" && !Array.isArray(value);
16
+ }
17
+ /** Require the current single-DAG outer list shape. */
18
+ function single(value, type) {
19
+ return Array.isArray(value) && value.length === 1
20
+ && typeof value[0] === type;
21
+ }
22
+ /** Parsed exchange bodies retain the exact same ordered disclosure plan through dittos. */
23
+ function samePlan(a, b) {
24
+ return JSON.stringify(a) === JSON.stringify(b);
25
+ }
26
+ /** The workflow owns a proof dependency cue and retry; no child is published here. */
27
+ function missing(reason) {
28
+ return { kind: "escrow", reason };
29
+ }
30
+ /**
31
+ * Authenticate each disclosed node independently before Exchanger persists an EXN.
32
+ * Registry evidence is caller-owned; notifier delivery follows durable acceptance.
33
+ * Presentation registries require the retained receiver receipt and node-local proofs.
34
+ */
35
+ export class IpexV2Handler {
36
+ constructor(resource, hby, notifier = null, registry = null) {
37
+ Object.defineProperty(this, "resource", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: resource
42
+ });
43
+ Object.defineProperty(this, "hby", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: hby
48
+ });
49
+ Object.defineProperty(this, "notifier", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: notifier
54
+ });
55
+ Object.defineProperty(this, "registry", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: registry
60
+ });
61
+ Object.defineProperty(this, "protocolMajor", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: 2
66
+ });
67
+ Object.defineProperty(this, "acceptsSscs", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: true
72
+ });
73
+ Object.defineProperty(this, "acceptsEvidence", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: true
78
+ });
79
+ Object.defineProperty(this, "acceptsMissingEvidence", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: void 0
84
+ });
85
+ Object.defineProperty(this, "acceptsNests", {
86
+ enumerable: true,
87
+ configurable: true,
88
+ writable: true,
89
+ value: void 0
90
+ });
91
+ this.acceptsMissingEvidence = resource === "/ipex/grant";
92
+ this.acceptsNests = nestedIpexRoute(resource);
93
+ }
94
+ /**
95
+ * Keep verified historical grant seals and current-key signatures, preferring a seal
96
+ * for the same AID. Exchanger has already checked every supplied factor against
97
+ * this exact body and accepted KEL; rotation cannot undo a recorded commitment.
98
+ */
99
+ verifyEvidence({ serder, factors, invalid, missing: unresolved = [] }) {
100
+ if (serder.route !== "/ipex/grant") {
101
+ return invalid || unresolved.length || factors.tsgs.length || factors.cigars.length || factors.sourceSeals.length
102
+ ? null
103
+ : { tsgs: [], cigars: [], sourceSeals: [] };
104
+ }
105
+ const sourceSeals = [...factors.sourceSeals];
106
+ const sealers = new Set(sourceSeals.map((seal) => seal.i.qb64));
107
+ const tsgs = factors.tsgs.filter((group) => {
108
+ const kever = this.hby.db.getKever(group.pre);
109
+ return !sealers.has(group.pre) && kever && group.sn === BigInt(kever.lastEst.s) && group.said === kever.lastEst.d;
110
+ });
111
+ return { tsgs, cigars: factors.cigars.filter((cigar) => !sealers.has(cigar.verfer.qb64)), sourceSeals };
112
+ }
113
+ /** Apply final issuer-state reduction only after the shared context is valid. */
114
+ verify(args) {
115
+ const context = this.verifyContext(args);
116
+ if (typeof context !== "object" || context.kind !== "grant")
117
+ return context;
118
+ const { graph, authentications } = context, { serder } = args;
119
+ const fresh = this.pendingIssuance(serder, graph, authentications);
120
+ if (fresh === null)
121
+ return false;
122
+ if (fresh.size)
123
+ return missing("Grant awaits issuance of its fresh registries.");
124
+ const verdict = evaluateChain(graph, new Map([...authentications].map(([said, auth]) => [said, authenticatedNodeVerdict(auth)])), this.hby.db);
125
+ if (!verdict || verdict.kind === "invalid") {
126
+ const pending = this.presentationState(serder, graph, authentications)?.pending;
127
+ if (!pending?.size)
128
+ return false;
129
+ const retry = evaluateChain(graph, this.pendingVerdicts(authentications, pending), this.hby.db);
130
+ return retry?.kind === "unknown" && retry.retryable
131
+ ? missing("Grant awaits current issuer-registry openings.")
132
+ : false;
133
+ }
134
+ if (verdict.kind === "valid") {
135
+ const registryStates = [];
136
+ for (const [node, authentication] of authentications) {
137
+ if (authentication.kind !== "authenticated" || !authentication.registration)
138
+ continue;
139
+ const record = authentication.registration;
140
+ // acceptedRegistryEvidence already requires exact safe storage ordinals.
141
+ registryStates.push([node, {
142
+ regid: record.regid,
143
+ said: record.said,
144
+ sn: Number(record.sn),
145
+ state: record.state,
146
+ stamp: record.stamp,
147
+ }]);
148
+ }
149
+ return { kind: "accept", registryStates };
150
+ }
151
+ if (!verdict.retryable)
152
+ return false;
153
+ return verdict.schemas.length
154
+ ? { kind: "escrow", reason: verdict.reason, schema: verdict.schemas[0] }
155
+ : missing(verdict.reason);
156
+ }
157
+ /** Return deduplicated fresh registry IDs; stored sender authentication belongs to Exchanger. */
158
+ pendingGrant(args) {
159
+ if (args.serder.route !== "/ipex/grant")
160
+ return null;
161
+ const context = this.verifyContext({ ...args, historical: false });
162
+ if (typeof context !== "object" || context.kind !== "grant")
163
+ return null;
164
+ const fresh = this.pendingIssuance(args.serder, context.graph, context.authentications);
165
+ if (!fresh?.size)
166
+ return null;
167
+ // DH may supply fresh node-own registry proofs, but cannot satisfy unresolved edge authority.
168
+ const verdicts = new Map([...context.authentications].map(([said, auth]) => [
169
+ said,
170
+ fresh.has(said) ? { kind: "valid" } : authenticatedNodeVerdict(auth),
171
+ ]));
172
+ const verdict = evaluateChain(context.graph, verdicts, this.hby.db);
173
+ return verdict?.kind === "valid" ? [...new Set(fresh.values())] : null;
174
+ }
175
+ /**
176
+ * Return auxiliary registry scope without issuing an admission verdict.
177
+ * Every supplied opening and non-registry issuer factor must authenticate,
178
+ * including optional graph branches. A separate discloser needs each node's
179
+ * issuer to endorse this exact Grant; origin authority cannot extend to others.
180
+ */
181
+ presentationContext(args) {
182
+ if (args.serder.route !== "/ipex/grant")
183
+ return null;
184
+ const context = this.verifyContext({ ...args, historical: false });
185
+ if (typeof context !== "object" || context.kind !== "grant")
186
+ return null;
187
+ const { graph, authentications } = context;
188
+ const state = this.presentationState(args.serder, graph, authentications);
189
+ if (!state)
190
+ return null;
191
+ const verdict = evaluateChain(graph, this.pendingVerdicts(authentications, state.pending), this.hby.db);
192
+ if (!verdict || !(verdict.kind === "valid" || verdict.kind === "unknown" && verdict.retryable))
193
+ return null;
194
+ // Exchanger already cryptographically verified and route-selected these factors.
195
+ const evidence = args.evidence;
196
+ const endorsers = new Set([
197
+ ...evidence.tsgs.map(group => group.pre),
198
+ ...evidence.cigars.map(cigar => cigar.verfer.qb64),
199
+ ...evidence.sourceSeals.map(seal => seal.i.qb64),
200
+ ]);
201
+ const registries = new Map();
202
+ for (const [regid, saids] of state.registries) {
203
+ if (saids.every((said) => {
204
+ const node = graph.nodes.get(said).body;
205
+ return args.serder.pre === node.issuer || args.serder.pre === node.issuee || endorsers.has(node.issuer);
206
+ }))
207
+ registries.set(regid, saids);
208
+ }
209
+ return registries.size ? registries : null;
210
+ }
211
+ /** Validate shared conversation, disclosure, schema and authentication obligations in reference order. */
212
+ verifyContext({ serder, nests = [], sscs = [], evidence, receiverTime, historical = false }) {
213
+ if (serder.pvrsn.major !== 2 || serder.route !== this.resource)
214
+ return false;
215
+ const route = serder.route.split("/");
216
+ const verb = route[2];
217
+ if (route.length !== 3 || route[0] !== "" || route[1] !== "ipex"
218
+ || !isIpexVerb(verb))
219
+ return false;
220
+ const attrs = serder.sad.a;
221
+ const q = serder.sad.q;
222
+ const priorSaid = serder.sad.p;
223
+ if (!record(attrs) || !Object.hasOwn(attrs, "m") || !record(q))
224
+ return false;
225
+ if (Object.hasOwn(attrs, "ax") && !single(attrs.ax, "boolean"))
226
+ return false;
227
+ const messagePlan = singleDagDisclosurePlan(q.dp);
228
+ if (["apply", "offer", "agree", "grant"].includes(verb) && messagePlan === null)
229
+ return false;
230
+ if (verb === "agree" && messagePlan?.length)
231
+ return false;
232
+ if (verb === "offer") {
233
+ if (Object.hasOwn(attrs, "o")) {
234
+ if (!single(attrs.o, "string") || !this.validOrigin(attrs.o[0]))
235
+ return false;
236
+ }
237
+ else if (nests.length)
238
+ return false;
239
+ }
240
+ else if (verb !== "grant" && nests.length)
241
+ return false;
242
+ let previous = null;
243
+ if (!priorSaid) {
244
+ if (serder.ilk !== "xip" || !["apply", "offer", "grant"].includes(verb) || !serder.sad.ri)
245
+ return false;
246
+ }
247
+ else {
248
+ if (serder.ilk !== "exn" || verb === "apply" || typeof priorSaid !== "string")
249
+ return false;
250
+ previous = this.prior(verb, serder, priorSaid);
251
+ if (!previous)
252
+ return false;
253
+ }
254
+ const requiresAnchor = attrs.ax?.[0] === true;
255
+ const priorAttrs = previous?.sad?.a;
256
+ const priorAnchor = record(priorAttrs) && priorAttrs.ax?.[0] === true;
257
+ if (previous) {
258
+ if (["agree", "grant", "admit"].includes(verb) && requiresAnchor !== priorAnchor)
259
+ return false;
260
+ if (verb === "offer" && priorAnchor && !requiresAnchor)
261
+ return false;
262
+ }
263
+ if (["agree", "admit"].includes(verb) && (requiresAnchor || priorAnchor)) {
264
+ return sscs.length ? this.sourceAnchor(serder, serder.pre, sscs.at(-1)) : false;
265
+ }
266
+ if (verb === "offer" && nests.length) {
267
+ if (nests.some(hasIpexNodeAttachments))
268
+ return false;
269
+ const graph = walkIpexGraph(attrs.o[0], nests, false);
270
+ return graph ? this.nodeSchemas(graph) : false;
271
+ }
272
+ if (verb !== "grant")
273
+ return true;
274
+ const plan = this.plan(serder);
275
+ if (!plan)
276
+ return false;
277
+ if (previous) {
278
+ const priorPlan = this.plan(previous);
279
+ if (!priorPlan || !samePlan(plan, priorPlan))
280
+ return false;
281
+ }
282
+ if (!plan.length) {
283
+ if (!Array.isArray(attrs.o) || attrs.o.length || nests.length)
284
+ return false;
285
+ return requiresAnchor ? (sscs.length ? this.sourceAnchor(serder, serder.pre, sscs.at(-1)) : false) : true;
286
+ }
287
+ if (!single(attrs.o, "string") || !this.validOrigin(attrs.o[0]) || !nests.length)
288
+ return false;
289
+ const origin = attrs.o[0];
290
+ const graph = walkIpexGraph(origin, nests, true);
291
+ if (!graph || [...graph.nodes.values()].some((node) => isIpexMetadata(node.body)))
292
+ return false;
293
+ if (!verifyIpexDisclosure(plan, origin, graph))
294
+ return false;
295
+ const fulfilled = this.offerFulfilled(previous, origin, graph);
296
+ if (fulfilled !== true)
297
+ return fulfilled;
298
+ const schemas = this.nodeSchemas(graph);
299
+ if (schemas !== true)
300
+ return schemas;
301
+ if (!evidence)
302
+ return false; // Exchanger must supply its selected supplemental factor set.
303
+ const originNode = graph.nodes.get(origin).body;
304
+ const grantors = new Set([serder.pre, originNode.issuee || originNode.issuer]);
305
+ for (const group of evidence.tsgs ?? [])
306
+ grantors.add(group.pre);
307
+ for (const cigar of evidence.cigars ?? [])
308
+ grantors.add(cigar.verfer.qb64);
309
+ for (const seal of evidence.sourceSeals ?? [])
310
+ grantors.add(seal.i.qb64);
311
+ const issuance = serder.pre === originNode.issuer && serder.sad.ri === originNode.issuee;
312
+ const tethered = new Set();
313
+ for (const said of graph.order) {
314
+ const node = graph.nodes.get(said);
315
+ const declarations = this.presentationRegistries(node.body);
316
+ if (declarations === null)
317
+ return false;
318
+ for (const [issuee, registry] of declarations) {
319
+ // Only participating Grantors present; direct issuance exempts its recipient.
320
+ if (!grantors.has(issuee) || (issuance && issuee === serder.sad.ri))
321
+ continue;
322
+ if (!receiverTime)
323
+ return false;
324
+ const result = this.presentation(node, registry, issuee, serder.said);
325
+ if (result !== true)
326
+ return result;
327
+ tethered.add(issuee);
328
+ }
329
+ }
330
+ if (requiresAnchor || priorAnchor) {
331
+ const anchorers = tethered;
332
+ if (sscs.length) {
333
+ const result = this.sourceAnchor(serder, serder.pre, sscs.at(-1));
334
+ if (typeof result === "object")
335
+ return result;
336
+ if (result)
337
+ anchorers.add(serder.pre);
338
+ }
339
+ for (const seal of evidence?.sourceSeals ?? []) {
340
+ const result = this.sourceAnchor(serder, seal.i.qb64, seal);
341
+ if (typeof result === "object")
342
+ return result;
343
+ if (result)
344
+ anchorers.add(seal.i.qb64);
345
+ }
346
+ const node = graph.nodes.get(origin).body;
347
+ if (![serder.pre, node.issuee, node.issuer].some((aid) => aid && anchorers.has(aid)))
348
+ return false;
349
+ }
350
+ const authentications = new Map();
351
+ for (const said of graph.order) {
352
+ const frame = graph.nodes.get(said);
353
+ authentications.set(said, authenticateIpexNode(frame.body, envelopeFromFrame(frame), this.hby.db, this.registry, historical));
354
+ }
355
+ return { kind: "grant", graph, authentications };
356
+ }
357
+ /** Substitute node-own unknowns only; the shared evaluator still traverses every edge. */
358
+ pendingVerdicts(authentications, pending) {
359
+ return new Map([...authentications].map(([said, auth]) => [
360
+ said,
361
+ pending.has(said)
362
+ ? { kind: "unknown", retryable: true, reason: "Missing registry opening.", schemas: [] }
363
+ : authenticatedNodeVerdict(auth),
364
+ ]));
365
+ }
366
+ /** Fresh issuance is authorized by an accepted issuer RIP and exact Grant parties, before final reduction. */
367
+ pendingIssuance(grant, graph, authentications) {
368
+ const pending = new Map();
369
+ if (!this.registry)
370
+ return pending;
371
+ for (const said of graph.order) {
372
+ const frame = graph.nodes.get(said);
373
+ const node = frame.body, envelope = envelopeFromFrame(frame);
374
+ // Python's BlindState parser verifies primitive integrity before candidate selection.
375
+ if (node.regid && [...envelope.bsqs, ...envelope.bsss].some((proof) => !vetBlind(proof, proof.d.nonce))) {
376
+ return null;
377
+ }
378
+ if (!node.regid || envelope.bsqs.length || envelope.bsss.length
379
+ || node.issuer !== grant.pre || node.issuee !== grant.sad.ri)
380
+ continue;
381
+ const chain = acceptedRegistryEvidence(this.registry, node.regid);
382
+ if (!chain || chain.updates.length || chain.rip.said !== node.regid || chain.rip.issuer !== grant.pre
383
+ || vet({ ...chain, db: this.hby.db }).kind !== "verified")
384
+ continue;
385
+ pending.set(said, node.regid);
386
+ }
387
+ if (!pending.size)
388
+ return pending;
389
+ for (const [said, auth] of authentications) {
390
+ if (!pending.has(said) && auth.kind !== "authenticated")
391
+ return null;
392
+ }
393
+ const verdict = evaluateChain(graph, this.pendingVerdicts(authentications, new Set(pending.keys())), this.hby.db);
394
+ // A satisfied OR cannot authorize publishing a still proofless issuance.
395
+ return verdict && (verdict.kind === "valid" || (verdict.kind === "unknown" && verdict.retryable)) ? pending : null;
396
+ }
397
+ /** Validate all supplied claims, then classify absent issuer openings and exact per-registry node scope. */
398
+ presentationState(grant, graph, authentications) {
399
+ if (!this.registry)
400
+ return null;
401
+ const pending = new Set(), registries = new Map();
402
+ for (const said of graph.order) {
403
+ const frame = graph.nodes.get(said);
404
+ const node = frame.body, envelope = envelopeFromFrame(frame);
405
+ const proofs = [...envelope.bsqs, ...envelope.bsss];
406
+ if (!node.regid) {
407
+ if (proofs.length || authentications.get(said)?.kind !== "authenticated")
408
+ return null;
409
+ continue;
410
+ }
411
+ const chain = acceptedRegistryEvidence(this.registry, node.regid);
412
+ if (!chain || !chain.updates.length || chain.rip.said !== node.regid || chain.rip.issuer !== node.issuer
413
+ || vet({ ...chain, db: this.hby.db }).kind !== "verified")
414
+ return null;
415
+ const allowed = new Map(chain.updates.map((event) => [event.sad.b, { target: said, acdc: node }]));
416
+ if (proofs.some((proof) => !allowed.has(proof.d.nonce))) {
417
+ for (const [issuee, regid] of this.presentationRegistries(node) ?? []) {
418
+ const presentation = acceptedRegistryEvidence(this.registry, regid);
419
+ if (!presentation || presentation.rip.said !== regid || presentation.rip.issuer !== issuee
420
+ || vet({ ...presentation, db: this.hby.db }).kind !== "verified")
421
+ return null;
422
+ for (const event of presentation.updates) {
423
+ const blid = event.sad.b, prior = allowed.get(blid);
424
+ if (prior && (prior.target !== grant.said || prior.acdc !== undefined))
425
+ return null;
426
+ allowed.set(blid, { target: grant.said, acdc: undefined });
427
+ }
428
+ }
429
+ }
430
+ const opened = new Map();
431
+ for (const proof of proofs) {
432
+ const blid = proof.d.nonce, expected = allowed.get(blid);
433
+ if (opened.has(blid) || !expected || !vetBlind(proof, blid) || vetBound(proof, expected.acdc, this.hby.db)
434
+ || ((proof.td.nonce || proof.ts.text) && proof.td.nonce !== expected.target))
435
+ return null;
436
+ opened.set(blid, proof);
437
+ }
438
+ let bound = false;
439
+ for (const update of [...chain.updates].reverse()) {
440
+ const proof = opened.get(update.sad.b);
441
+ if (!proof) {
442
+ pending.add(said);
443
+ bound = true;
444
+ break;
445
+ }
446
+ if (proof.td.nonce || proof.ts.text) {
447
+ bound = true;
448
+ break;
449
+ }
450
+ }
451
+ if (!bound)
452
+ return null; // A completely opened placeholder history binds no credential.
453
+ const selected = registries.get(node.regid) ?? [];
454
+ selected.push(said);
455
+ registries.set(node.regid, selected);
456
+ }
457
+ return { pending, registries };
458
+ }
459
+ /** Notify only after Exchanger has durably accepted the parent and its evidence. */
460
+ handle({ serder }) {
461
+ this.notifier?.add({ r: `/exn${serder.route}`, d: serder.said, m: serder.sad.a.m });
462
+ }
463
+ /** Every disclosed own schema vets before presentation and issuer graph reduction. */
464
+ nodeSchemas(graph) {
465
+ for (const said of graph.order) {
466
+ const result = validateSchema(graph.nodes.get(said).body, this.hby.db);
467
+ if (result.kind === "invalid")
468
+ return false;
469
+ if (result.kind === "missing")
470
+ return { kind: "escrow", reason: "Missing node schema.", schema: result.said };
471
+ }
472
+ return true;
473
+ }
474
+ /** Compare the exact accepted Offer before authenticating the Grant's independent issuer proofs. */
475
+ offerFulfilled(agree, origin, graph) {
476
+ if (agree?.route !== "/ipex/agree")
477
+ return true;
478
+ const offerSaid = agree.sad.p;
479
+ const offer = this.hby.db.exns.get(offerSaid);
480
+ if (!offer)
481
+ return missing(`Missing accepted Offer ${offerSaid}.`);
482
+ const attrs = offer.sad.a;
483
+ if (!record(attrs))
484
+ return false;
485
+ if (!Object.hasOwn(attrs, "o"))
486
+ return true;
487
+ if (!single(attrs.o, "string"))
488
+ return false;
489
+ const offeredOrigin = attrs.o[0];
490
+ if (offeredOrigin === origin)
491
+ return true;
492
+ const nests = loadNests(this.hby.db, offerSaid);
493
+ if (!nests.length)
494
+ return missing(`Missing metadata ACDC for accepted Offer ${offerSaid}.`);
495
+ const offered = walkIpexGraph(offeredOrigin, nests, false);
496
+ if (!offered)
497
+ return false;
498
+ const metadata = offered.nodes.get(offeredOrigin).body;
499
+ if (!isIpexMetadata(metadata))
500
+ return false;
501
+ const schemas = this.nodeSchemas(offered);
502
+ if (schemas !== true)
503
+ return schemas;
504
+ const granted = graph.nodes.get(origin).body;
505
+ if (metadata.issuer !== granted.issuer || (metadata.regid && metadata.regid !== granted.regid))
506
+ return false;
507
+ for (const label of ["s", "a", "A", "e", "r"]) {
508
+ const section = metadata.sad[label];
509
+ if (section === undefined || section === null || section === ""
510
+ || (Array.isArray(section) && !section.length) || (record(section) && !Object.keys(section).length))
511
+ continue;
512
+ const promised = this.sectionCommitment(label, section);
513
+ if (!promised || promised !== this.sectionCommitment(label, granted.sad[label]))
514
+ return false;
515
+ }
516
+ return true;
517
+ }
518
+ /** Read only walk-verified nodes: Serder authenticates exposed d/$id/AGID claims; strings stay opaque. */
519
+ sectionCommitment(label, value) {
520
+ const said = typeof value === "string"
521
+ ? value
522
+ : label === "A" && Array.isArray(value)
523
+ ? value[0]
524
+ : record(value)
525
+ ? value[label === "s" ? "$id" : "d"]
526
+ : null;
527
+ return this.validOrigin(said) ? said : null;
528
+ }
529
+ /** Origin commitments are SAIDs, never implicit signatures over the node. */
530
+ validOrigin(value) {
531
+ if (typeof value !== "string")
532
+ return false;
533
+ try {
534
+ return new Diger({ qb64: value }).qb64 === value;
535
+ }
536
+ catch {
537
+ return false;
538
+ }
539
+ }
540
+ /** Enforce reciprocal parties, exchange id and the prior's single accepted response. */
541
+ prior(verb, current, said) {
542
+ const prior = this.hby.db.exns.get(said);
543
+ const previous = prior?.route?.split("/");
544
+ if (!prior || previous?.length !== 3 || previous[0] !== "" || previous[1] !== "ipex"
545
+ || !IPEX_V2_PREDECESSORS[verb].some((allowed) => allowed === previous[2]))
546
+ return null;
547
+ if (prior.ilk === "xip"
548
+ ? !["apply", "offer", "grant"].includes(previous[2])
549
+ : prior.ilk !== "exn" || !prior.sad.p)
550
+ return null;
551
+ if (verb === "spurn" && previous[2] === "grant" && prior.sad.p)
552
+ return null;
553
+ if (current.sad.ri !== prior.pre || !prior.sad.ri || current.pre !== prior.sad.ri
554
+ || current.sad.x !== (prior.ilk === "xip" ? prior.said : prior.sad.x))
555
+ return null;
556
+ const response = this.hby.db.erpy.get(said);
557
+ if (response && response.qb64 !== current.said && this.hby.db.exns.get(response.qb64))
558
+ return null;
559
+ return prior;
560
+ }
561
+ /** Resolve empty-plan dittos only through accepted prior exchanges. */
562
+ plan(serder) {
563
+ const seen = new Set();
564
+ let current = serder;
565
+ while (current) {
566
+ if (!current.said || seen.has(current.said)
567
+ || !["/ipex/apply", "/ipex/offer", "/ipex/agree", "/ipex/grant"].includes(current.route ?? ""))
568
+ return null;
569
+ seen.add(current.said);
570
+ const q = current.sad.q;
571
+ const plan = record(q) ? singleDagDisclosurePlan(q.dp) : null;
572
+ if (plan === null)
573
+ return null;
574
+ if (plan.length)
575
+ return plan;
576
+ const prior = current.sad.p;
577
+ if (!prior)
578
+ return [];
579
+ current = typeof prior === "string" ? this.hby.db.exns.get(prior) : null;
580
+ }
581
+ return null;
582
+ }
583
+ /** Match the exact historical KEL commitment; missing evidence remains retryable. */
584
+ sourceAnchor(serder, aid, seal) {
585
+ const verified = verifyExchangeProofs(this.hby.db, serder, {
586
+ sourceSeals: [{ i: new Prefixer({ qb64: aid }), s: seal.s, d: seal.d }],
587
+ });
588
+ if (verified.missing.length)
589
+ return missing(`Missing anchorer KEL evidence for ${aid}.`);
590
+ return !verified.invalid && verified.sourceSeals.length > 0;
591
+ }
592
+ /** Authenticate a grant target against this node's Issuee TEL and explicit fully witnessed KEL sources. */
593
+ presentation(frame, regid, issuee, target) {
594
+ const envelope = envelopeFromFrame(frame), blinders = [...envelope.bsqs, ...envelope.bsss];
595
+ if (!blinders.length || !this.registry)
596
+ return false;
597
+ const chain = acceptedRegistryEvidence(this.registry, regid);
598
+ if (!chain)
599
+ return missing(`Missing presentation TEL evidence for ${regid}.`);
600
+ const sources = new Map();
601
+ let selected = null;
602
+ let unresolved = false;
603
+ for (const seal of envelope.ssts) {
604
+ if (seal.i.qb64 !== issuee)
605
+ continue;
606
+ const said = seal.s.num > BigInt(Number.MAX_SAFE_INTEGER)
607
+ ? null
608
+ : this.hby.db.kels.getLast(issuee, Number(seal.s.num));
609
+ if (!said) {
610
+ unresolved = true;
611
+ continue;
612
+ }
613
+ if (said !== seal.d.qb64)
614
+ continue;
615
+ const anchor = this.hby.db.getEvtSerder(issuee, said);
616
+ if (!anchor) {
617
+ unresolved = true;
618
+ continue;
619
+ }
620
+ // An accepted source still awaiting its witness quorum is retryable, not a bad binding.
621
+ if (!this.hby.db.fullyWitnessed(anchor)) {
622
+ unresolved = true;
623
+ continue;
624
+ }
625
+ // Inception can arrive before the update named by this source. A retry
626
+ // between those messages must not turn missing TEL evidence into a bad binding.
627
+ for (const tuple of anchor.seals) {
628
+ if (!tuple || typeof tuple !== "object" || Array.isArray(tuple)
629
+ || !("i" in tuple) || tuple.i !== regid || !("s" in tuple) || typeof tuple.s !== "string"
630
+ || !/^[0-9a-f]+$/.test(tuple.s) || !("d" in tuple) || typeof tuple.d !== "string")
631
+ continue;
632
+ const sn = BigInt(`0x${tuple.s}`);
633
+ if (sn <= BigInt(Number.MAX_SAFE_INTEGER) && !this.registry.seqSaider(regid, Number(sn)))
634
+ unresolved = true;
635
+ }
636
+ for (const update of chain.updates) {
637
+ const checked = validateUpdate(update, regid);
638
+ if (checked.kind !== "valid")
639
+ throw new DatabaseOperationError("Accepted presentation update is corrupt.");
640
+ if (verifyRegistryAnchor(checked.event, { db: this.hby.db, issuer: issuee, number: seal.s, diger: seal.d })) {
641
+ sources.set(update.said, seal.d.qb64);
642
+ if (!selected || checked.event.sn > selected.sn)
643
+ selected = { said: update.said, sn: checked.event.sn };
644
+ }
645
+ }
646
+ }
647
+ if (!sources.size && unresolved)
648
+ return missing(`Missing presentation anchor source for ${regid}.`);
649
+ if (!selected)
650
+ return false;
651
+ const result = vetBinds({
652
+ ...chain,
653
+ db: this.hby.db,
654
+ blinders,
655
+ target,
656
+ controller: issuee,
657
+ at: selected.said,
658
+ sources,
659
+ requireSource: true,
660
+ });
661
+ if ((result.kind === "missing" && result.reason === "anchor")
662
+ || (result.kind === "reject" && result.reason === "anchor" && unresolved)) {
663
+ return missing(`Missing presentation TEL anchor for ${regid}.`);
664
+ }
665
+ return result.kind === "verified" && result.state.regid === regid;
666
+ }
667
+ /** Read the disclosed top-level attribute's Issuee presentation-registry declaration. */
668
+ presentationRegistries(serder) {
669
+ const a = serder.sad.a;
670
+ if (!serder.regid)
671
+ return record(a) && a.rd ? null : [];
672
+ if (typeof a === "string")
673
+ return null;
674
+ if (!record(a))
675
+ return [];
676
+ const regid = a.rd, issuee = a.i;
677
+ if (!regid || !issuee)
678
+ return [];
679
+ if (typeof regid !== "string" || typeof issuee !== "string")
680
+ return null;
681
+ try {
682
+ if (new Diger({ qb64: regid }).qb64 !== regid || new Prefixer({ qb64: issuee }).qb64 !== issuee)
683
+ return null;
684
+ }
685
+ catch (error) {
686
+ if (!(error instanceof ParserError))
687
+ throw error;
688
+ return null;
689
+ }
690
+ return [[issuee, regid]];
691
+ }
692
+ }