keri-ts 2.1.0 → 2.2.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 (294) hide show
  1. package/README.md +30 -2
  2. package/esm/keri/npm/src/acdc/authoring.js +195 -0
  3. package/esm/keri/npm/src/acdc/custody.js +164 -0
  4. package/esm/keri/npm/src/acdc/dhking.js +244 -32
  5. package/esm/keri/npm/src/acdc/regbasing.js +10 -0
  6. package/esm/keri/npm/src/acdc/salting.js +16 -1
  7. package/esm/keri/npm/src/acdc/scheming.js +93 -54
  8. package/esm/keri/npm/src/acdc/unblinding.js +118 -95
  9. package/esm/keri/npm/src/app/bootstrap/authenticating.js +4 -6
  10. package/esm/keri/npm/src/app/bootstrap/oobi-resolving.js +41 -0
  11. package/esm/keri/npm/src/app/bootstrap/oobiery.js +4 -6
  12. package/esm/keri/npm/src/app/credentials/credential-revoking.js +1 -0
  13. package/esm/keri/npm/src/app/credentials/credential-workflows.js +2 -0
  14. package/esm/keri/npm/src/app/credentials/registry-settling.js +44 -0
  15. package/esm/keri/npm/src/app/credentials/root-replicating.js +68 -60
  16. package/esm/keri/npm/src/app/credentials/root-replicator.js +198 -0
  17. package/esm/keri/npm/src/app/credentials/tel-completion.js +36 -0
  18. package/esm/keri/npm/src/app/delivery/forwarding.js +16 -3
  19. package/esm/keri/npm/src/app/exchanges/exchanging.js +14 -4
  20. package/esm/keri/npm/src/app/identity/challenging.js +50 -0
  21. package/esm/keri/npm/src/app/identity/delegating.js +77 -77
  22. package/esm/keri/npm/src/app/identity/delegation-approval.js +333 -0
  23. package/esm/keri/npm/src/app/identity/event-completion.js +154 -0
  24. package/esm/keri/npm/src/app/identity/habbing.js +129 -6
  25. package/esm/keri/npm/src/app/identity/keeping.js +77 -4
  26. package/esm/keri/npm/src/app/ipex/group-ipex.js +327 -0
  27. package/esm/keri/npm/src/app/ipex/group-issuance.js +902 -0
  28. package/esm/keri/npm/src/app/ipex/ipex-admitting.js +120 -0
  29. package/esm/keri/npm/src/app/ipex/ipex-conversation.js +197 -0
  30. package/esm/keri/npm/src/app/ipex/ipex-discloser.js +591 -0
  31. package/esm/keri/npm/src/app/ipex/ipex-granting.js +93 -0
  32. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +34 -11
  33. package/esm/keri/npm/src/app/ipex/issuance.js +888 -0
  34. package/esm/keri/npm/src/app/ipex/pending-presentations.js +46 -0
  35. package/esm/keri/npm/src/app/ipex/presentation-files.js +200 -0
  36. package/esm/keri/npm/src/app/ipex/presenting.js +401 -0
  37. package/esm/keri/npm/src/app/ipex/receive-issuance.js +86 -0
  38. package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +660 -0
  39. package/esm/keri/npm/src/app/mailbox/ipex-arrival.js +103 -0
  40. package/esm/keri/npm/src/app/mailbox/kel-publisher.js +322 -0
  41. package/esm/keri/npm/src/app/mailbox/kel-publishing.js +65 -0
  42. package/esm/keri/npm/src/app/mailbox/kel-submission.js +24 -0
  43. package/esm/keri/npm/src/app/mailbox/mailbox-admin.js +208 -0
  44. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +212 -47
  45. package/esm/keri/npm/src/app/mailbox/mailboxing.js +10 -5
  46. package/esm/keri/npm/src/app/multisig/counseling.js +482 -0
  47. package/esm/keri/npm/src/app/multisig/group-members.js +18 -0
  48. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +94 -139
  49. package/esm/keri/npm/src/app/multisig/proposals.js +281 -0
  50. package/esm/keri/npm/src/app/multisig/proposing.js +122 -0
  51. package/esm/keri/npm/src/app/notifications/signaling.js +5 -5
  52. package/esm/keri/npm/src/app/protocol/parsering.js +26 -1
  53. package/esm/keri/npm/src/app/protocol/protocol-processing.js +9 -3
  54. package/esm/keri/npm/src/app/queries/query-workflows.js +98 -0
  55. package/esm/keri/npm/src/app/runtime/agent-runtime.js +106 -55
  56. package/esm/keri/npm/src/app/runtime/cue-runtime.js +3 -6
  57. package/esm/keri/npm/src/app/runtime/delivery-outbox.js +87 -0
  58. package/esm/keri/npm/src/app/runtime/doing.js +17 -0
  59. package/esm/keri/npm/src/app/runtime/ipex-auxiliaries.js +207 -0
  60. package/esm/keri/npm/src/app/runtime/operation-owners.js +151 -0
  61. package/esm/keri/npm/src/app/runtime/retry-backoff.js +93 -0
  62. package/esm/keri/npm/src/app/runtime/workflow-contract.js +80 -0
  63. package/esm/keri/npm/src/app/transport/http-client.js +25 -6
  64. package/esm/keri/npm/src/app/witness/http-endpoints.js +4 -4
  65. package/esm/keri/npm/src/cli/common/event-completion.js +49 -0
  66. package/esm/keri/npm/src/cli/common/runtime-workers.js +23 -0
  67. package/esm/keri/npm/src/cli/credentials/ipex.js +157 -190
  68. package/esm/keri/npm/src/cli/credentials/vc.js +53 -72
  69. package/esm/keri/npm/src/cli/endpoints/did.js +12 -3
  70. package/esm/keri/npm/src/cli/endpoints/oobi.js +10 -13
  71. package/esm/keri/npm/src/cli/identity/challenge.js +8 -34
  72. package/esm/keri/npm/src/cli/identity/delegate.js +81 -258
  73. package/esm/keri/npm/src/cli/identity/incept.js +15 -32
  74. package/esm/keri/npm/src/cli/identity/interact.js +5 -17
  75. package/esm/keri/npm/src/cli/identity/rotate.js +8 -36
  76. package/esm/keri/npm/src/cli/index.js +3 -1
  77. package/esm/keri/npm/src/cli/messaging/group-join.js +79 -0
  78. package/esm/keri/npm/src/cli/messaging/group-wait.js +88 -0
  79. package/esm/keri/npm/src/cli/messaging/multisig.js +163 -284
  80. package/esm/keri/npm/src/cli/messaging/root-copy-lines.js +31 -0
  81. package/esm/keri/npm/src/core/kel/eventing.js +66 -10
  82. package/esm/keri/npm/src/core/mailbox/kram-policy.js +39 -6
  83. package/esm/keri/npm/src/core/mailbox/kraming.js +2 -0
  84. package/esm/keri/npm/src/core/records.js +23 -0
  85. package/esm/keri/npm/src/core/routing.js +13 -0
  86. package/esm/keri/npm/src/db/basing.js +34 -2
  87. package/esm/keri/npm/src/db/core/indexeddb-persistence.js +221 -0
  88. package/esm/keri/npm/src/db/indexeddb.js +98 -0
  89. package/esm/keri/npm/src/db/keeping.js +11 -2
  90. package/esm/keri/npm/src/db/store-lock.js +150 -0
  91. package/esm/keri/npm/src/npm/db-indexeddb.browser.js +2 -0
  92. package/esm/keri/npm/src/npm/db-indexeddb.js +3 -0
  93. package/esm/keri/npm/src/npm/db.browser.js +2 -0
  94. package/esm/keri/npm/src/npm/index.browser.js +9 -0
  95. package/esm/keri/npm/src/npm/runtime-web.browser.js +2 -0
  96. package/esm/keri/npm/src/npm/runtime-web.js +3 -0
  97. package/esm/keri/npm/src/npm/runtime.browser.js +2 -0
  98. package/esm/keri/npm/src/runtime/index.js +51 -4
  99. package/esm/keri/npm/src/runtime/web/output-barrier.js +47 -0
  100. package/esm/keri/npm/src/runtime/web/persistent-storage.js +37 -0
  101. package/esm/keri/npm/src/runtime/web.js +10 -0
  102. package/esm/keri/npm/src/vdr/tel-publication.js +16 -0
  103. package/esm/keri/npm/src/version.js +2 -2
  104. package/package.json +15 -2
  105. package/types/acdc/authoring.d.ts +54 -0
  106. package/types/acdc/authoring.d.ts.map +1 -0
  107. package/types/acdc/custody.d.ts +77 -0
  108. package/types/acdc/custody.d.ts.map +1 -0
  109. package/types/acdc/dhking.d.ts +94 -3
  110. package/types/acdc/dhking.d.ts.map +1 -1
  111. package/types/acdc/regbasing.d.ts +4 -0
  112. package/types/acdc/regbasing.d.ts.map +1 -1
  113. package/types/acdc/salting.d.ts +6 -1
  114. package/types/acdc/salting.d.ts.map +1 -1
  115. package/types/acdc/scheming.d.ts +2 -0
  116. package/types/acdc/scheming.d.ts.map +1 -1
  117. package/types/acdc/unblinding.d.ts +58 -19
  118. package/types/acdc/unblinding.d.ts.map +1 -1
  119. package/types/app/bootstrap/authenticating.d.ts +3 -1
  120. package/types/app/bootstrap/authenticating.d.ts.map +1 -1
  121. package/types/app/bootstrap/oobi-resolving.d.ts +92 -0
  122. package/types/app/bootstrap/oobi-resolving.d.ts.map +1 -0
  123. package/types/app/bootstrap/oobiery.d.ts +3 -1
  124. package/types/app/bootstrap/oobiery.d.ts.map +1 -1
  125. package/types/app/credentials/credential-revoking.d.ts +3 -0
  126. package/types/app/credentials/credential-revoking.d.ts.map +1 -1
  127. package/types/app/credentials/credential-workflows.d.ts +5 -0
  128. package/types/app/credentials/credential-workflows.d.ts.map +1 -1
  129. package/types/app/credentials/registry-settling.d.ts +85 -0
  130. package/types/app/credentials/registry-settling.d.ts.map +1 -0
  131. package/types/app/credentials/root-replicating.d.ts +56 -44
  132. package/types/app/credentials/root-replicating.d.ts.map +1 -1
  133. package/types/app/credentials/root-replicator.d.ts +105 -0
  134. package/types/app/credentials/root-replicator.d.ts.map +1 -0
  135. package/types/app/credentials/tel-completion.d.ts +55 -0
  136. package/types/app/credentials/tel-completion.d.ts.map +1 -0
  137. package/types/app/delivery/forwarding.d.ts +6 -0
  138. package/types/app/delivery/forwarding.d.ts.map +1 -1
  139. package/types/app/exchanges/exchanging.d.ts.map +1 -1
  140. package/types/app/identity/challenging.d.ts +54 -0
  141. package/types/app/identity/challenging.d.ts.map +1 -1
  142. package/types/app/identity/delegating.d.ts +21 -4
  143. package/types/app/identity/delegating.d.ts.map +1 -1
  144. package/types/app/identity/delegation-approval.d.ts +228 -0
  145. package/types/app/identity/delegation-approval.d.ts.map +1 -0
  146. package/types/app/identity/event-completion.d.ts +151 -0
  147. package/types/app/identity/event-completion.d.ts.map +1 -0
  148. package/types/app/identity/habbing.d.ts +67 -2
  149. package/types/app/identity/habbing.d.ts.map +1 -1
  150. package/types/app/identity/keeping.d.ts +49 -3
  151. package/types/app/identity/keeping.d.ts.map +1 -1
  152. package/types/app/ipex/group-ipex.d.ts +247 -0
  153. package/types/app/ipex/group-ipex.d.ts.map +1 -0
  154. package/types/app/ipex/group-issuance.d.ts +281 -0
  155. package/types/app/ipex/group-issuance.d.ts.map +1 -0
  156. package/types/app/ipex/ipex-admitting.d.ts +47 -0
  157. package/types/app/ipex/ipex-admitting.d.ts.map +1 -0
  158. package/types/app/ipex/ipex-conversation.d.ts +195 -0
  159. package/types/app/ipex/ipex-conversation.d.ts.map +1 -0
  160. package/types/app/ipex/ipex-discloser.d.ts +156 -0
  161. package/types/app/ipex/ipex-discloser.d.ts.map +1 -0
  162. package/types/app/ipex/ipex-granting.d.ts +145 -0
  163. package/types/app/ipex/ipex-granting.d.ts.map +1 -0
  164. package/types/app/ipex/ipex-grouping.d.ts +18 -0
  165. package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
  166. package/types/app/ipex/issuance.d.ts +443 -0
  167. package/types/app/ipex/issuance.d.ts.map +1 -0
  168. package/types/app/ipex/pending-presentations.d.ts +25 -0
  169. package/types/app/ipex/pending-presentations.d.ts.map +1 -0
  170. package/types/app/ipex/presentation-files.d.ts +47 -0
  171. package/types/app/ipex/presentation-files.d.ts.map +1 -0
  172. package/types/app/ipex/presenting.d.ts +298 -0
  173. package/types/app/ipex/presenting.d.ts.map +1 -0
  174. package/types/app/ipex/receive-issuance.d.ts +99 -0
  175. package/types/app/ipex/receive-issuance.d.ts.map +1 -0
  176. package/types/app/ipex/unblinding-workflow.d.ts +255 -0
  177. package/types/app/ipex/unblinding-workflow.d.ts.map +1 -0
  178. package/types/app/mailbox/ipex-arrival.d.ts +104 -0
  179. package/types/app/mailbox/ipex-arrival.d.ts.map +1 -0
  180. package/types/app/mailbox/kel-publisher.d.ts +141 -0
  181. package/types/app/mailbox/kel-publisher.d.ts.map +1 -0
  182. package/types/app/mailbox/kel-publishing.d.ts +70 -0
  183. package/types/app/mailbox/kel-publishing.d.ts.map +1 -0
  184. package/types/app/mailbox/kel-submission.d.ts +18 -0
  185. package/types/app/mailbox/kel-submission.d.ts.map +1 -0
  186. package/types/app/mailbox/mailbox-admin.d.ts +113 -0
  187. package/types/app/mailbox/mailbox-admin.d.ts.map +1 -0
  188. package/types/app/mailbox/mailbox-poller.d.ts +92 -3
  189. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
  190. package/types/app/mailbox/mailboxing.d.ts +3 -0
  191. package/types/app/mailbox/mailboxing.d.ts.map +1 -1
  192. package/types/app/multisig/counseling.d.ts +196 -0
  193. package/types/app/multisig/counseling.d.ts.map +1 -0
  194. package/types/app/multisig/group-members.d.ts +11 -0
  195. package/types/app/multisig/group-members.d.ts.map +1 -1
  196. package/types/app/multisig/grouping.d.ts +39 -20
  197. package/types/app/multisig/grouping.d.ts.map +1 -1
  198. package/types/app/multisig/multisig-workflows.d.ts +91 -22
  199. package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
  200. package/types/app/multisig/proposals.d.ts +129 -0
  201. package/types/app/multisig/proposals.d.ts.map +1 -0
  202. package/types/app/multisig/proposing.d.ts +125 -0
  203. package/types/app/multisig/proposing.d.ts.map +1 -0
  204. package/types/app/notifications/signaling.d.ts +3 -1
  205. package/types/app/notifications/signaling.d.ts.map +1 -1
  206. package/types/app/protocol/parsering.d.ts +13 -0
  207. package/types/app/protocol/parsering.d.ts.map +1 -1
  208. package/types/app/protocol/protocol-processing.d.ts +7 -1
  209. package/types/app/protocol/protocol-processing.d.ts.map +1 -1
  210. package/types/app/queries/query-workflows.d.ts +98 -0
  211. package/types/app/queries/query-workflows.d.ts.map +1 -0
  212. package/types/app/runtime/agent-runtime.d.ts +72 -25
  213. package/types/app/runtime/agent-runtime.d.ts.map +1 -1
  214. package/types/app/runtime/cue-runtime.d.ts +2 -1
  215. package/types/app/runtime/cue-runtime.d.ts.map +1 -1
  216. package/types/app/runtime/delivery-outbox.d.ts +68 -0
  217. package/types/app/runtime/delivery-outbox.d.ts.map +1 -0
  218. package/types/app/runtime/doing.d.ts +27 -0
  219. package/types/app/runtime/doing.d.ts.map +1 -0
  220. package/types/app/runtime/ipex-auxiliaries.d.ts +74 -0
  221. package/types/app/runtime/ipex-auxiliaries.d.ts.map +1 -0
  222. package/types/app/runtime/operation-owners.d.ts +137 -0
  223. package/types/app/runtime/operation-owners.d.ts.map +1 -0
  224. package/types/app/runtime/retry-backoff.d.ts +49 -0
  225. package/types/app/runtime/retry-backoff.d.ts.map +1 -0
  226. package/types/app/runtime/workflow-contract.d.ts +79 -0
  227. package/types/app/runtime/workflow-contract.d.ts.map +1 -0
  228. package/types/app/transport/http-client.d.ts.map +1 -1
  229. package/types/cli/common/event-completion.d.ts +26 -0
  230. package/types/cli/common/event-completion.d.ts.map +1 -0
  231. package/types/cli/common/runtime-workers.d.ts +23 -0
  232. package/types/cli/common/runtime-workers.d.ts.map +1 -0
  233. package/types/cli/credentials/ipex.d.ts.map +1 -1
  234. package/types/cli/credentials/vc.d.ts +1 -1
  235. package/types/cli/credentials/vc.d.ts.map +1 -1
  236. package/types/cli/endpoints/did.d.ts.map +1 -1
  237. package/types/cli/endpoints/oobi.d.ts +3 -1
  238. package/types/cli/endpoints/oobi.d.ts.map +1 -1
  239. package/types/cli/identity/challenge.d.ts +1 -1
  240. package/types/cli/identity/challenge.d.ts.map +1 -1
  241. package/types/cli/identity/delegate.d.ts +14 -1
  242. package/types/cli/identity/delegate.d.ts.map +1 -1
  243. package/types/cli/identity/incept.d.ts.map +1 -1
  244. package/types/cli/identity/interact.d.ts.map +1 -1
  245. package/types/cli/identity/rotate.d.ts.map +1 -1
  246. package/types/cli/index.d.ts +3 -1
  247. package/types/cli/index.d.ts.map +1 -1
  248. package/types/cli/messaging/group-join.d.ts +53 -0
  249. package/types/cli/messaging/group-join.d.ts.map +1 -0
  250. package/types/cli/messaging/group-wait.d.ts +34 -0
  251. package/types/cli/messaging/group-wait.d.ts.map +1 -0
  252. package/types/cli/messaging/multisig.d.ts +28 -5
  253. package/types/cli/messaging/multisig.d.ts.map +1 -1
  254. package/types/cli/messaging/root-copy-lines.d.ts +39 -0
  255. package/types/cli/messaging/root-copy-lines.d.ts.map +1 -0
  256. package/types/core/cues.d.ts +11 -0
  257. package/types/core/cues.d.ts.map +1 -1
  258. package/types/core/kel/eventing.d.ts.map +1 -1
  259. package/types/core/mailbox/kram-policy.d.ts +14 -0
  260. package/types/core/mailbox/kram-policy.d.ts.map +1 -1
  261. package/types/core/mailbox/kraming.d.ts +1 -1
  262. package/types/core/mailbox/kraming.d.ts.map +1 -1
  263. package/types/core/records.d.ts +61 -0
  264. package/types/core/records.d.ts.map +1 -1
  265. package/types/core/routing.d.ts +6 -0
  266. package/types/core/routing.d.ts.map +1 -1
  267. package/types/db/basing.d.ts +8 -2
  268. package/types/db/basing.d.ts.map +1 -1
  269. package/types/db/core/indexeddb-persistence.d.ts +59 -0
  270. package/types/db/core/indexeddb-persistence.d.ts.map +1 -0
  271. package/types/db/indexeddb.d.ts +37 -0
  272. package/types/db/indexeddb.d.ts.map +1 -0
  273. package/types/db/keeping.d.ts +5 -2
  274. package/types/db/keeping.d.ts.map +1 -1
  275. package/types/db/store-lock.d.ts +72 -0
  276. package/types/db/store-lock.d.ts.map +1 -0
  277. package/types/npm/db-indexeddb.d.ts +4 -0
  278. package/types/npm/db-indexeddb.d.ts.map +1 -0
  279. package/types/npm/runtime-web.d.ts +4 -0
  280. package/types/npm/runtime-web.d.ts.map +1 -0
  281. package/types/runtime/index.d.ts +41 -6
  282. package/types/runtime/index.d.ts.map +1 -1
  283. package/types/runtime/web/output-barrier.d.ts +30 -0
  284. package/types/runtime/web/output-barrier.d.ts.map +1 -0
  285. package/types/runtime/web/persistent-storage.d.ts +36 -0
  286. package/types/runtime/web/persistent-storage.d.ts.map +1 -0
  287. package/types/runtime/web.d.ts +11 -0
  288. package/types/runtime/web.d.ts.map +1 -0
  289. package/types/vdr/tel-publication.d.ts +6 -0
  290. package/types/vdr/tel-publication.d.ts.map +1 -1
  291. package/types/version.d.ts +2 -2
  292. package/esm/keri/npm/src/cli/common/tel-completion.js +0 -24
  293. package/types/cli/common/tel-completion.d.ts +0 -8
  294. package/types/cli/common/tel-completion.d.ts.map +0 -1
@@ -0,0 +1,156 @@
1
+ /**
2
+ * IPEX discloser core: Grant preparation over borrowed protocol owners.
3
+ *
4
+ * Holds the parts of disclosure that read no credential inventory: exchange
5
+ * wires, source anchoring, fresh-issuance Grant bodies and public proof
6
+ * support, plus graph authorization, registry proofs, Apply and Reply bodies.
7
+ * Selecting issued or held credentials stays with the embedder
8
+ * (`WalletDiscloser` extends this class).
9
+ * No constructor opens a store, starts a worker or loads registry secrets.
10
+ */
11
+ import { type CesrFrame, SealSource, SerderACDC, SerderKERI, type Versionage } from "cesr-ts";
12
+ import { type Operation } from "effection";
13
+ import type { RegistryCustody } from "../../acdc/custody.js";
14
+ import { type RegistryDisclosure } from "../../acdc/regeventing.js";
15
+ import { type RegistryStore } from "../../acdc/registering.js";
16
+ import type { Registry } from "../../acdc/registraring.js";
17
+ import type { ExchangeInput, Exchanger } from "../exchanges/exchanging.js";
18
+ import { type Hab, type Habery } from "../identity/habbing.js";
19
+ import type { Receiptor, WitnessAuthMap } from "../witness/receipting.js";
20
+ import { type IpexV2BodyOptions } from "./ipex-building.js";
21
+ /** A prepared signed exchange and its supporting public KEL/TEL bytes; delivery and intake stay explicit. */
22
+ export interface PreparedDisclosure {
23
+ exn: SerderKERI;
24
+ wire: Uint8Array;
25
+ support: Uint8Array;
26
+ }
27
+ /** Frozen unsigned Grant and its exact selected nodes; group approval and presentation anchoring remain explicit. */
28
+ export interface PreparedGrantBody {
29
+ exn: SerderKERI;
30
+ raw: Uint8Array;
31
+ nests: Uint8Array;
32
+ }
33
+ /** Fresh origin and explicit far-node proofs; preparation grants neither DH nor inventory consent. */
34
+ export interface IssuanceGrantOptions extends Omit<IpexV2BodyOptions, "prior"> {
35
+ recipient: string;
36
+ priorSaid?: string;
37
+ artifacts?: readonly Uint8Array[];
38
+ }
39
+ /** Reuse a matching accepted KEL seal, or author once and gather real witness receipts. */
40
+ export declare function anchorExchange(hby: Habery, receiptor: Receiptor, hab: Hab, body: SerderKERI | SerderACDC, auths?: WitnessAuthMap): Operation<SealSource>;
41
+ /** Encode one frozen body and its existing prepared nests; source proofs do not alter its SAID. */
42
+ export declare function exchangeWire(hab: Hab, exn: SerderKERI, nested?: Uint8Array, source?: SealSource, gvrsn?: Versionage): Uint8Array;
43
+ /**
44
+ * Re-encode a signed exchange from its retained, authenticated factors: the wire its signer sent, rebuilt
45
+ * from the stored signatures or source seal and the stored nests. Signs nothing, so it needs no keys.
46
+ */
47
+ export declare function storedExchangeWire(retained: ExchangeInput, gvrsn?: Versionage): Operation<Uint8Array>;
48
+ /** Exact admitted node streams; no fuller cached section replaces retained disclosure. */
49
+ export interface HeldCredential {
50
+ credential: SerderACDC;
51
+ proof: Uint8Array;
52
+ artifacts: Uint8Array[];
53
+ grant: SerderKERI;
54
+ admit: string;
55
+ }
56
+ /** Credential views presentation selects from; the embedder owns the inventory behind them. */
57
+ export interface CredentialViews {
58
+ /** Reconstruct a locally issued credential; throws when it is not retained. */
59
+ issued(said: string): SerderACDC;
60
+ /** Registry of a retained issuance, when the embedder records one. */
61
+ issuedRegistry(said: string): string | undefined;
62
+ /** Read the original admitted proof, or a presenter-authorized transferred view. */
63
+ held(grant: string, options?: {
64
+ presenterAuthorized?: boolean;
65
+ }): Promise<HeldCredential>;
66
+ }
67
+ /** Select an exact issued credential or a retained Grant, never the fullest cached credential. */
68
+ export interface DisclosureSelection {
69
+ said?: string;
70
+ fromGrant?: string;
71
+ /** Exact transferred credential/proof bytes; explicit presenter authorization creates no inventory consent. */
72
+ transferred?: Uint8Array;
73
+ presenterAuthorized?: boolean;
74
+ disclose?: readonly string[];
75
+ refresh?: boolean;
76
+ openings?: readonly RegistryDisclosure[];
77
+ derive?: boolean;
78
+ artifacts?: readonly Uint8Array[];
79
+ }
80
+ /** Exact parties reviewed by the operator before adding independent issuer authentication. */
81
+ export interface GrantFileSelection {
82
+ said: string;
83
+ sender: string;
84
+ recipient: string;
85
+ }
86
+ /** Valid individual factors may remain below their ordinary signing threshold. */
87
+ export interface InspectedGrantFile {
88
+ frame: CesrFrame;
89
+ completeSigners: string[];
90
+ partialSigners: string[];
91
+ }
92
+ /** Borrow concrete owners only. No constructor opens a store, starts a worker or loads registry secrets. */
93
+ export declare class IpexDiscloser {
94
+ readonly hby: Habery;
95
+ readonly registry: RegistryStore;
96
+ readonly exc: Exchanger;
97
+ readonly receiptor: Receiptor;
98
+ readonly custody?: RegistryCustody | undefined;
99
+ readonly views?: CredentialViews | undefined;
100
+ constructor(hby: Habery, registry: RegistryStore, exc: Exchanger, receiptor: Receiptor, custody?: RegistryCustody | undefined, views?: CredentialViews | undefined);
101
+ /** Selection needs the embedder's credential views; fresh issuance and replies do not. */
102
+ protected credentials(): CredentialViews;
103
+ /** Resolve only a local individual signer; group approval composes this body in the group workflow. */
104
+ protected signer(sender: string, gvrsn?: Versionage): Hab;
105
+ /** Revalidate exact accepted prior bytes without treating notification or salt possession as acceptance. */
106
+ protected prior(said?: string): Operation<SerderKERI | undefined>;
107
+ /** Prepare one fresh issuer origin with explicit authenticated far nodes, without changing disclosure authority. */
108
+ prepareIssuanceGrantBody(sender: string, credential: SerderACDC, options: IssuanceGrantOptions): Operation<PreparedGrantBody>;
109
+ /** Carry selected public evidence and root-first delegation ancestry; receiver intake still verifies every approval. */
110
+ proofSupport(raw: Uint8Array, hab: Hab): Uint8Array;
111
+ /** Public replay includes actual stored witness receipts; it grants no new consent. */
112
+ kel(hab: Hab): Uint8Array;
113
+ /** Reduce only the selected attribute view using the existing commitment-preserving Compactor. */
114
+ protected partial(credential: SerderACDC, paths?: readonly string[]): SerderACDC;
115
+ /** Authenticate every selected node, then authorize only the shared complete-root expression. */
116
+ protected requireGraph(origin: string, raw: Uint8Array, pendingPresentation?: boolean): void;
117
+ /** Recover a candidate using an explicitly possessed UUID; this neither derives a salt nor grants authority. */
118
+ unblind(opening: RegistryDisclosure, credential: string, states: readonly string[], bounds?: readonly (readonly [number | bigint, string])[]): RegistryDisclosure | null;
119
+ /** Attach exact accepted issuer openings from head through vacuous suffix to this credential's binding. */
120
+ registryProof(credential: SerderACDC, registry: string, retained?: readonly RegistryDisclosure[], options?: {
121
+ derive?: boolean;
122
+ }): Uint8Array;
123
+ /** Create an application request; no credential-use approval is invented for negotiation. */
124
+ prepareApply(sender: string, options: IpexV2BodyOptions): Operation<PreparedDisclosure>;
125
+ /** Accept or decline the exact authenticated predecessor and its negotiated anchoring choice. */
126
+ prepareReply(sender: string, verb: "agree" | "spurn", priorSaid: string, message?: string, recipient?: string, auths?: WitnessAuthMap): Operation<PreparedDisclosure>;
127
+ /** Extend the frozen Grant's exact origin proof; ordinary intake still authenticates the supplied presentation evidence. */
128
+ attachPresentationProof(prepared: PreparedGrantBody, opening: RegistryDisclosure, source: SealSource): Operation<PreparedGrantBody>;
129
+ /** Select immutable admitted/transferred nests; proof refresh changes attachments only when explicitly requested. */
130
+ protected selected(selection: DisclosureSelection, offer?: boolean): Operation<Uint8Array>;
131
+ /** Offer only the selected commitment/view without issuer proof attachments. */
132
+ prepareOffer(sender: string, selection: DisclosureSelection, options: IpexV2BodyOptions & {
133
+ priorSaid?: string;
134
+ }): Operation<PreparedDisclosure>;
135
+ /** Select and authorize once before freezing a Grant body, without signing or committing group approval. */
136
+ prepareGrantBody(sender: string, selection: DisclosureSelection, options: IpexV2BodyOptions & {
137
+ priorSaid?: string;
138
+ }): Operation<PreparedGrantBody>;
139
+ /** Freeze an endorsement file from issued evidence, allowing only retryable current-opening absence. */
140
+ prepareGrantFileBody(sender: string, selection: DisclosureSelection, options: IpexV2BodyOptions & {
141
+ priorSaid?: string;
142
+ }): Operation<PreparedGrantBody>;
143
+ /** Both public preparation profiles preserve the same selected view and body construction. */
144
+ protected grantBody(sender: string, selection: DisclosureSelection, options: IpexV2BodyOptions & {
145
+ priorSaid?: string;
146
+ }, pendingPresentation: boolean): Operation<PreparedGrantBody>;
147
+ /** Authenticate and authorize the selected graph before the Grant builder and after receipt waits. */
148
+ prepareGrant(sender: string, selection: DisclosureSelection, options: IpexV2BodyOptions & {
149
+ priorSaid?: string;
150
+ presentation?: Registry;
151
+ auths?: WitnessAuthMap;
152
+ }): Operation<PreparedDisclosure>;
153
+ /** Inspect one exact unanchored Grant without dropping invalid signatures or publishing any evidence. */
154
+ inspectGrantFile(raw: Uint8Array, selection?: GrantFileSelection): InspectedGrantFile;
155
+ }
156
+ //# sourceMappingURL=ipex-discloser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipex-discloser.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/ipex-discloser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Legacy (v1) IPEX credential grant and admit for a single-signature
3
+ * controller, plus the step that saves a granted credential. Owned by the
4
+ * library so that every host (CLI, wallet, service) runs one implementation.
5
+ * Conversation verbs and the status/wait reads live in `ipex-conversation.ts`.
6
+ *
7
+ * Operations follow the workflow contract. `sendIpexGrant` and `sendIpexAdmit`
8
+ * are explicit: each validates, signs one exchange, accepts it locally, hands
9
+ * it to the Poster and returns once that delivery attempt has an outcome.
10
+ * `sendIpexAdmit` is the holder's consent to a grant. `settleGrantCredential`
11
+ * imports a stored grant's artifacts so the wallet can save the credential; it
12
+ * is idempotent and signs nothing. Waiting for the credential is
13
+ * `waitForIpexExchange(..., { until: "credential-saved" })`: the host's own
14
+ * workers make escrowed evidence resolve.
15
+ *
16
+ * Boundaries:
17
+ * - Collaborators are narrow (ADR-0013); the host owns their lifetimes and runs
18
+ * the Poster worker while a send awaits its outcome.
19
+ * - `deliver: false` authors and accepts locally but leaves delivery to the
20
+ * caller, who then holds the bytes (for export to a file).
21
+ * - Grant files, mailbox intake and group controllers are host concerns: the
22
+ * library starts from a grant already stored as accepted.
23
+ */
24
+ import type { SerderKERI, Versionage } from "cesr-ts";
25
+ import type { Operation } from "effection";
26
+ import type { Reger } from "../../db/reger.js";
27
+ import type { Hab } from "../identity/habbing.js";
28
+ import type { Habery } from "../identity/habbing.js";
29
+ import type { ProtocolProcessor } from "../protocol/protocol-processing.js";
30
+ import { type IpexExchangeStatus, type IpexSendDeps } from "./ipex-conversation.js";
31
+ /** Collaborators grant and admit need: the send set plus the credential store. */
32
+ export interface IpexGrantDeps extends IpexSendDeps {
33
+ /** Borrowed credential store holding the credential, its TEL and the saved index. */
34
+ readonly reger: Reger;
35
+ }
36
+ /** Choices for {@link sendIpexGrant}. */
37
+ export interface IpexGrantSendOptions {
38
+ /** Resolved recipient AID. */
39
+ recipient: string;
40
+ /** SAID of the stored credential to grant. */
41
+ credential: string;
42
+ /** Free-text `m` field; defaults to empty. */
43
+ message?: string;
44
+ /** Said of the accepted agree this grant answers; omit for an unsolicited grant. */
45
+ agree?: string;
46
+ /** Attachment genus; defaults to the exchange's own. */
47
+ gvrsn?: Versionage;
48
+ /** False leaves delivery to the caller. Defaults to true. */
49
+ deliver?: boolean;
50
+ }
51
+ /** The grant a send signed and accepted. */
52
+ export interface IpexGrantSent {
53
+ readonly grant: SerderKERI;
54
+ /** SAID of the granted credential. */
55
+ readonly credential: string;
56
+ /** Support messages (issuer KEL, TEL and the like) that precede the grant, in order. */
57
+ readonly support: Uint8Array[];
58
+ /** Signed grant followed by its attachments. */
59
+ readonly wire: Uint8Array;
60
+ /** Successful destination URLs; empty when delivery was left to the caller. */
61
+ readonly deliveries: string[];
62
+ }
63
+ /**
64
+ * Grant a stored single-signature credential: validate the optional agree,
65
+ * assemble the embedded artifacts and support messages, sign, accept locally
66
+ * and deliver support then grant as one stream. Granting a credential again
67
+ * without an agree authors another grant; an agree answers once.
68
+ *
69
+ * @throws ValidationError for a non-local sender, a refused prior, missing local
70
+ * credential evidence or a grant local state does not accept.
71
+ */
72
+ export declare function sendIpexGrant(deps: IpexGrantDeps, sender: Hab, { recipient, credential, message, agree, gvrsn, deliver }: IpexGrantSendOptions): Operation<IpexGrantSent>;
73
+ /** An accepted grant the holder may admit. */
74
+ export interface AdmittableGrant {
75
+ readonly grant: SerderKERI;
76
+ /** The grant's sender, who receives the admit. */
77
+ readonly recipient: string;
78
+ /** SAID of the granted credential. */
79
+ readonly credential: string;
80
+ }
81
+ /**
82
+ * Validate a stored grant for admission by `holder` without signing: it is
83
+ * accepted, addressed to the holder, carries a credential and has no accepted
84
+ * response yet. Saving is not required here.
85
+ *
86
+ * @throws ValidationError when the grant is not stored, was already answered or is not addressed to `holder`.
87
+ */
88
+ export declare function requireAdmittableGrant(deps: Pick<IpexGrantDeps, "hby" | "reger">, holder: Hab, grantSaid: string): AdmittableGrant;
89
+ /** Choices for {@link sendIpexAdmit}. */
90
+ export interface IpexAdmitOptions {
91
+ /** Free-text `m` field; defaults to empty. */
92
+ message?: string;
93
+ /** Attachment genus; defaults to the exchange's own. */
94
+ gvrsn?: Versionage;
95
+ /** Refuse unless the granted credential is saved. Defaults to true; false authors the admit without that wallet fact. */
96
+ requireSaved?: boolean;
97
+ /** False leaves delivery to the caller. Defaults to true. */
98
+ deliver?: boolean;
99
+ }
100
+ /** The admit a send signed and accepted. */
101
+ export interface IpexAdmitSent {
102
+ readonly admit: SerderKERI;
103
+ readonly grant: SerderKERI;
104
+ /** SAID of the granted credential. */
105
+ readonly credential: string;
106
+ /** Whether the wallet had saved the credential when the admit was signed. */
107
+ readonly saved: boolean;
108
+ /** Signed admit followed by its attachments. */
109
+ readonly wire: Uint8Array;
110
+ /** Successful destination URLs; empty when delivery was left to the caller. */
111
+ readonly deliveries: string[];
112
+ }
113
+ /**
114
+ * The holder's consent to a grant: validate the stored grant, sign an admit,
115
+ * accept it locally and deliver it to the grant's sender. A grant that already
116
+ * has an accepted response is refused, so a second admit never re-signs.
117
+ *
118
+ * @throws ValidationError as for {@link requireAdmittableGrant}, for a credential
119
+ * that is not saved when `requireSaved` holds, or for an admit local state does not accept.
120
+ */
121
+ export declare function sendIpexAdmit(deps: IpexGrantDeps, holder: Hab, grantSaid: string, { message, gvrsn, requireSaved, deliver }?: IpexAdmitOptions): Operation<IpexAdmitSent>;
122
+ /** Collaborators for saving a granted credential. */
123
+ export interface IpexSettleDeps {
124
+ /** Borrowed identities, accepted exchanges and the escrow paths stored artifacts are rebuilt from. */
125
+ readonly hby: Habery;
126
+ /** Credential store. */
127
+ readonly reger: Reger;
128
+ /** Receive processor that accepts the replayed grant artifacts. */
129
+ readonly protocol: ProtocolProcessor;
130
+ }
131
+ /**
132
+ * Import a stored grant's authenticated artifacts once, so the wallet can save
133
+ * its credential as evidence resolves. Idempotent: a credential that is already
134
+ * saved is not replayed. Signs nothing and does not wait; observe the outcome
135
+ * with `waitForIpexExchange(..., { until: "credential-saved" })` while the
136
+ * host's workers run.
137
+ *
138
+ * @param holder AID the grant must be addressed to.
139
+ * @returns The grant's status after the import.
140
+ * @throws ValidationError when the grant is not stored or not addressed to `holder`.
141
+ */
142
+ export declare function settleGrantCredential(deps: IpexSettleDeps, holder: string, grantSaid: string, { gvrsn }?: {
143
+ gvrsn?: Versionage;
144
+ }): Operation<IpexExchangeStatus>;
145
+ //# sourceMappingURL=ipex-granting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipex-granting.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/ipex-granting.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,20 @@ export interface MultisigIpexApprovalResult extends GroupSendResult {
31
31
  /** Null while this member lacks required evidence, even if other members completed the child. */
32
32
  approved: Uint8Array | null;
33
33
  }
34
+ /** What a member's local approval of one stored IPEX proposal produced, before anything is sent. */
35
+ export interface LocalMultisigIpexApproval {
36
+ embedded: SerderKERI;
37
+ groupHab: Hab;
38
+ genus: Versionage;
39
+ /** This member's exact approved wire, accepted locally; null while it lacks required evidence. */
40
+ approved: Uint8Array | null;
41
+ }
42
+ /**
43
+ * Approve one stored multisig wrapper around an IPEX message locally: validate it, reuse or sign this member's
44
+ * contribution and accept it, without publishing or sending anything. The explicit consent of the library's group
45
+ * IPEX operations; {@link approveMultisigIpex} adds publication and the lead's delivery.
46
+ */
47
+ export declare function approveMultisigIpexLocally(hby: Habery, protocol: ProtocolProcessor, reger: Reger | null, wrapper: SerderKERI): Operation<LocalMultisigIpexApproval>;
34
48
  /**
35
49
  * Approve one pending multisig wrapper around an embedded IPEX message.
36
50
  *
@@ -109,4 +123,8 @@ export declare function sendCredentialBytes(postman: Poster, hab: Hab, dest: str
109
123
  * @returns Actual delivered URLs; a failed concrete outcome throws its original error.
110
124
  */
111
125
  export declare function sendCredentialStream(postman: Poster, hab: Hab, dest: string, msgs: Uint8Array[]): Operation<string[]>;
126
+ /** The stored `/multisig/exn` wrapper that carries the IPEX message `embeddedSaid`, if one is held. */
127
+ export declare function findStoredMultisigIpex(db: Baser, embeddedSaid: string): SerderKERI | null;
128
+ /** Whether the local member of `group` already holds a verified contribution to `embedded` (a recorded approval). */
129
+ export declare function groupIpexApproved(hby: Habery, group: string, embedded: SerderKERI): boolean;
112
130
  //# sourceMappingURL=ipex-grouping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipex-grouping.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/ipex-grouping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipex-grouping.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/ipex-grouping.ts"],"names":[],"mappings":"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"}