@learncard/network-brain-service 3.18.0 → 3.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/.env.example +38 -2
  2. package/CHANGELOG.md +118 -0
  3. package/README.md +42 -0
  4. package/compose.inbox.yml +7 -0
  5. package/dist/accesslayer/auth-grant/read.d.ts +1 -0
  6. package/dist/accesslayer/auth-grant/read.d.ts.map +1 -1
  7. package/dist/accesslayer/consentflowcontract/relationships/create.d.ts.map +1 -1
  8. package/dist/accesslayer/consentflowcontract/relationships/update.d.ts.map +1 -1
  9. package/dist/accesslayer/credential-activity/create.d.ts.map +1 -1
  10. package/dist/accesslayer/credential-refresh/email-delivery.d.ts +18 -0
  11. package/dist/accesslayer/credential-refresh/email-delivery.d.ts.map +1 -0
  12. package/dist/accesslayer/credential-refresh/index.d.ts +1 -0
  13. package/dist/accesslayer/credential-refresh/index.d.ts.map +1 -1
  14. package/dist/accesslayer/credential-refresh/read.d.ts.map +1 -1
  15. package/dist/accesslayer/credential-refresh/update.d.ts.map +1 -1
  16. package/dist/accesslayer/inbox-batch/store.d.ts +33 -0
  17. package/dist/accesslayer/inbox-batch/store.d.ts.map +1 -0
  18. package/dist/accesslayer/inbox-credential/create.d.ts +5 -0
  19. package/dist/accesslayer/inbox-credential/create.d.ts.map +1 -1
  20. package/dist/accesslayer/inbox-credential/refresh.d.ts +71 -0
  21. package/dist/accesslayer/inbox-credential/refresh.d.ts.map +1 -0
  22. package/dist/accesslayer/inbox-credential/update.d.ts +1 -1
  23. package/dist/accesslayer/inbox-credential/update.d.ts.map +1 -1
  24. package/dist/accesslayer/presentation/read.d.ts.map +1 -1
  25. package/dist/accesslayer/presentation/relationships/create.d.ts +2 -2
  26. package/dist/accesslayer/presentation/relationships/create.d.ts.map +1 -1
  27. package/dist/accesslayer/presentation/relationships/read.d.ts.map +1 -1
  28. package/dist/accesslayer/share-link/abandon.d.ts +3 -0
  29. package/dist/accesslayer/share-link/abandon.d.ts.map +1 -0
  30. package/dist/accesslayer/share-link/cleanup.d.ts +6 -0
  31. package/dist/accesslayer/share-link/cleanup.d.ts.map +1 -0
  32. package/dist/accesslayer/share-link/errors.d.ts +8 -0
  33. package/dist/accesslayer/share-link/errors.d.ts.map +1 -0
  34. package/dist/accesslayer/share-link/finalize.d.ts +3 -0
  35. package/dist/accesslayer/share-link/finalize.d.ts.map +1 -0
  36. package/dist/accesslayer/share-link/helpers.d.ts +56 -0
  37. package/dist/accesslayer/share-link/helpers.d.ts.map +1 -0
  38. package/dist/accesslayer/share-link/index.d.ts +12 -0
  39. package/dist/accesslayer/share-link/index.d.ts.map +1 -0
  40. package/dist/accesslayer/share-link/list.d.ts +5 -0
  41. package/dist/accesslayer/share-link/list.d.ts.map +1 -0
  42. package/dist/accesslayer/share-link/read.d.ts +5 -0
  43. package/dist/accesslayer/share-link/read.d.ts.map +1 -0
  44. package/dist/accesslayer/share-link/receipt.d.ts +11 -0
  45. package/dist/accesslayer/share-link/receipt.d.ts.map +1 -0
  46. package/dist/accesslayer/share-link/recovery.d.ts +6 -0
  47. package/dist/accesslayer/share-link/recovery.d.ts.map +1 -0
  48. package/dist/accesslayer/share-link/reserve.d.ts +4 -0
  49. package/dist/accesslayer/share-link/reserve.d.ts.map +1 -0
  50. package/dist/accesslayer/share-link/revoke.d.ts +3 -0
  51. package/dist/accesslayer/share-link/revoke.d.ts.map +1 -0
  52. package/dist/accesslayer/share-link/transaction-execution.d.ts +18 -0
  53. package/dist/accesslayer/share-link/transaction-execution.d.ts.map +1 -0
  54. package/dist/accesslayer/share-link/transaction.d.ts +15 -0
  55. package/dist/accesslayer/share-link/transaction.d.ts.map +1 -0
  56. package/dist/accesslayer/share-link/types.d.ts +370 -0
  57. package/dist/accesslayer/share-link/types.d.ts.map +1 -0
  58. package/dist/app.d.ts +4 -0
  59. package/dist/app.d.ts.map +1 -1
  60. package/dist/cache/atomic-counter.test-helpers.d.ts +3 -0
  61. package/dist/cache/atomic-counter.test-helpers.d.ts.map +1 -0
  62. package/dist/cache/atomic-counter.test.d.ts +2 -0
  63. package/dist/cache/atomic-counter.test.d.ts.map +1 -0
  64. package/dist/cache/index.d.ts +1 -1
  65. package/dist/cache/index.d.ts.map +1 -1
  66. package/dist/config/environment.d.ts +55 -0
  67. package/dist/config/environment.d.ts.map +1 -1
  68. package/dist/constants/auth-grant.d.ts +2 -0
  69. package/dist/constants/auth-grant.d.ts.map +1 -1
  70. package/dist/credential-refresh.d.ts.map +1 -1
  71. package/dist/helpers/activity.helpers.d.ts +4 -0
  72. package/dist/helpers/activity.helpers.d.ts.map +1 -1
  73. package/dist/helpers/boost.helpers.d.ts.map +1 -1
  74. package/dist/helpers/contact-method.helpers.d.ts.map +1 -1
  75. package/dist/helpers/contact-method.helpers.test.d.ts +2 -0
  76. package/dist/helpers/contact-method.helpers.test.d.ts.map +1 -0
  77. package/dist/helpers/credential-refresh-email-content.helpers.d.ts +44 -0
  78. package/dist/helpers/credential-refresh-email-content.helpers.d.ts.map +1 -0
  79. package/dist/helpers/credential-refresh-email-content.helpers.test.d.ts +2 -0
  80. package/dist/helpers/credential-refresh-email-content.helpers.test.d.ts.map +1 -0
  81. package/dist/helpers/credential-refresh-email.helpers.d.ts +17 -0
  82. package/dist/helpers/credential-refresh-email.helpers.d.ts.map +1 -0
  83. package/dist/helpers/credential-refresh-proof.helpers.d.ts +4 -0
  84. package/dist/helpers/credential-refresh-proof.helpers.d.ts.map +1 -0
  85. package/dist/helpers/credential-refresh-proof.helpers.test.d.ts +2 -0
  86. package/dist/helpers/credential-refresh-proof.helpers.test.d.ts.map +1 -0
  87. package/dist/helpers/credential-refresh.helpers.d.ts +45 -2
  88. package/dist/helpers/credential-refresh.helpers.d.ts.map +1 -1
  89. package/dist/helpers/credential.helpers.d.ts +2 -1
  90. package/dist/helpers/credential.helpers.d.ts.map +1 -1
  91. package/dist/helpers/credentialSubject.helpers.d.ts +3 -0
  92. package/dist/helpers/credentialSubject.helpers.d.ts.map +1 -0
  93. package/dist/helpers/credentialSubject.helpers.test.d.ts +2 -0
  94. package/dist/helpers/credentialSubject.helpers.test.d.ts.map +1 -0
  95. package/dist/helpers/finalize-inbox.helpers.d.ts.map +1 -1
  96. package/dist/helpers/inbox-batch-http.helpers.d.ts +15 -0
  97. package/dist/helpers/inbox-batch-http.helpers.d.ts.map +1 -0
  98. package/dist/helpers/inbox-batch-http.helpers.test.d.ts +2 -0
  99. package/dist/helpers/inbox-batch-http.helpers.test.d.ts.map +1 -0
  100. package/dist/helpers/inbox-batch-status.helpers.d.ts +3 -0
  101. package/dist/helpers/inbox-batch-status.helpers.d.ts.map +1 -0
  102. package/dist/helpers/inbox-batch.helpers.d.ts +10 -0
  103. package/dist/helpers/inbox-batch.helpers.d.ts.map +1 -0
  104. package/dist/helpers/inbox-batch.helpers.test.d.ts +2 -0
  105. package/dist/helpers/inbox-batch.helpers.test.d.ts.map +1 -0
  106. package/dist/helpers/inbox-issuance-error.helpers.d.ts +13 -0
  107. package/dist/helpers/inbox-issuance-error.helpers.d.ts.map +1 -0
  108. package/dist/helpers/inbox-queue.helpers.d.ts +11 -0
  109. package/dist/helpers/inbox-queue.helpers.d.ts.map +1 -0
  110. package/dist/helpers/inbox-queue.helpers.test.d.ts +2 -0
  111. package/dist/helpers/inbox-queue.helpers.test.d.ts.map +1 -0
  112. package/dist/helpers/inbox-refresh.helpers.d.ts +186 -0
  113. package/dist/helpers/inbox-refresh.helpers.d.ts.map +1 -0
  114. package/dist/helpers/inbox.helpers.d.ts +9 -1
  115. package/dist/helpers/inbox.helpers.d.ts.map +1 -1
  116. package/dist/helpers/notificationMessages.d.ts +1 -1
  117. package/dist/helpers/notificationMessages.d.ts.map +1 -1
  118. package/dist/helpers/notifications.helpers.d.ts.map +1 -1
  119. package/dist/helpers/presentation-metadata.d.ts +4 -0
  120. package/dist/helpers/presentation-metadata.d.ts.map +1 -0
  121. package/dist/helpers/presentation.helpers.d.ts +1 -1
  122. package/dist/helpers/presentation.helpers.d.ts.map +1 -1
  123. package/dist/helpers/profile.helpers.d.ts +1 -0
  124. package/dist/helpers/profile.helpers.d.ts.map +1 -1
  125. package/dist/helpers/rateLimit.helpers.d.ts.map +1 -1
  126. package/dist/helpers/refresh-send-intent.helpers.d.ts +51 -0
  127. package/dist/helpers/refresh-send-intent.helpers.d.ts.map +1 -0
  128. package/dist/helpers/share-content-client/adapters.d.ts +10 -0
  129. package/dist/helpers/share-content-client/adapters.d.ts.map +1 -0
  130. package/dist/helpers/share-content-client/canonical.d.ts +7 -0
  131. package/dist/helpers/share-content-client/canonical.d.ts.map +1 -0
  132. package/dist/helpers/share-content-client/client.d.ts +5 -0
  133. package/dist/helpers/share-content-client/client.d.ts.map +1 -0
  134. package/dist/helpers/share-content-client/config.d.ts +11 -0
  135. package/dist/helpers/share-content-client/config.d.ts.map +1 -0
  136. package/dist/helpers/share-content-client/index.d.ts +6 -0
  137. package/dist/helpers/share-content-client/index.d.ts.map +1 -0
  138. package/dist/helpers/share-content-client/responses.d.ts +16 -0
  139. package/dist/helpers/share-content-client/responses.d.ts.map +1 -0
  140. package/dist/helpers/share-content-client/types.d.ts +145 -0
  141. package/dist/helpers/share-content-client/types.d.ts.map +1 -0
  142. package/dist/helpers/share-link-coordinator/budget-helpers.d.ts +5 -0
  143. package/dist/helpers/share-link-coordinator/budget-helpers.d.ts.map +1 -0
  144. package/dist/helpers/share-link-coordinator/cleanup-runner.d.ts +3 -0
  145. package/dist/helpers/share-link-coordinator/cleanup-runner.d.ts.map +1 -0
  146. package/dist/helpers/share-link-coordinator/coordinator.d.ts +4 -0
  147. package/dist/helpers/share-link-coordinator/coordinator.d.ts.map +1 -0
  148. package/dist/helpers/share-link-coordinator/index.d.ts +5 -0
  149. package/dist/helpers/share-link-coordinator/index.d.ts.map +1 -0
  150. package/dist/helpers/share-link-coordinator/recovery-runner.d.ts +9 -0
  151. package/dist/helpers/share-link-coordinator/recovery-runner.d.ts.map +1 -0
  152. package/dist/helpers/share-link-coordinator/runtime.d.ts +11 -0
  153. package/dist/helpers/share-link-coordinator/runtime.d.ts.map +1 -0
  154. package/dist/helpers/share-link-coordinator/stat.d.ts +4 -0
  155. package/dist/helpers/share-link-coordinator/stat.d.ts.map +1 -0
  156. package/dist/helpers/share-link-coordinator/types.d.ts +160 -0
  157. package/dist/helpers/share-link-coordinator/types.d.ts.map +1 -0
  158. package/dist/helpers/share-link-lifecycle/index.d.ts +5 -0
  159. package/dist/helpers/share-link-lifecycle/index.d.ts.map +1 -0
  160. package/dist/helpers/share-link-lifecycle/lease.helpers.d.ts +4 -0
  161. package/dist/helpers/share-link-lifecycle/lease.helpers.d.ts.map +1 -0
  162. package/dist/helpers/share-link-lifecycle/recovery.helpers.d.ts +21 -0
  163. package/dist/helpers/share-link-lifecycle/recovery.helpers.d.ts.map +1 -0
  164. package/dist/helpers/share-link-lifecycle/request-hash.helpers.d.ts +9 -0
  165. package/dist/helpers/share-link-lifecycle/request-hash.helpers.d.ts.map +1 -0
  166. package/dist/helpers/share-link-lifecycle/types.d.ts +14 -0
  167. package/dist/helpers/share-link-lifecycle/types.d.ts.map +1 -0
  168. package/dist/helpers/share-link-maintenance/budget.d.ts +12 -0
  169. package/dist/helpers/share-link-maintenance/budget.d.ts.map +1 -0
  170. package/dist/helpers/share-link-maintenance/config.d.ts +48 -0
  171. package/dist/helpers/share-link-maintenance/config.d.ts.map +1 -0
  172. package/dist/helpers/share-link-maintenance/index.d.ts +8 -0
  173. package/dist/helpers/share-link-maintenance/index.d.ts.map +1 -0
  174. package/dist/helpers/share-link-maintenance/runner.d.ts +19 -0
  175. package/dist/helpers/share-link-maintenance/runner.d.ts.map +1 -0
  176. package/dist/helpers/share-link-maintenance/runtime.d.ts +36 -0
  177. package/dist/helpers/share-link-maintenance/runtime.d.ts.map +1 -0
  178. package/dist/helpers/share-link-maintenance/scheduler.d.ts +18 -0
  179. package/dist/helpers/share-link-maintenance/scheduler.d.ts.map +1 -0
  180. package/dist/helpers/share-link-maintenance/telemetry.d.ts +5 -0
  181. package/dist/helpers/share-link-maintenance/telemetry.d.ts.map +1 -0
  182. package/dist/helpers/share-link-maintenance/types.d.ts +53 -0
  183. package/dist/helpers/share-link-maintenance/types.d.ts.map +1 -0
  184. package/dist/helpers/share-link-owner/config.d.ts +16 -0
  185. package/dist/helpers/share-link-owner/config.d.ts.map +1 -0
  186. package/dist/helpers/share-link-owner/diagnostics.d.ts +26 -0
  187. package/dist/helpers/share-link-owner/diagnostics.d.ts.map +1 -0
  188. package/dist/helpers/share-link-owner/lazy-initializer.d.ts +2 -0
  189. package/dist/helpers/share-link-owner/lazy-initializer.d.ts.map +1 -0
  190. package/dist/helpers/share-link-owner-projection.d.ts +4 -0
  191. package/dist/helpers/share-link-owner-projection.d.ts.map +1 -0
  192. package/dist/helpers/share-link-passcode-abuse.d.ts +2 -0
  193. package/dist/helpers/share-link-passcode-abuse.d.ts.map +1 -0
  194. package/dist/helpers/share-link-passcode.d.ts +6 -0
  195. package/dist/helpers/share-link-passcode.d.ts.map +1 -0
  196. package/dist/helpers/share-link-policy/index.d.ts +4 -0
  197. package/dist/helpers/share-link-policy/index.d.ts.map +1 -0
  198. package/dist/helpers/share-link-policy/production.d.ts +13 -0
  199. package/dist/helpers/share-link-policy/production.d.ts.map +1 -0
  200. package/dist/helpers/share-link-policy/resolver.d.ts +6 -0
  201. package/dist/helpers/share-link-policy/resolver.d.ts.map +1 -0
  202. package/dist/helpers/share-link-policy/types.d.ts +16 -0
  203. package/dist/helpers/share-link-policy/types.d.ts.map +1 -0
  204. package/dist/helpers/share-link-public/config.d.ts +13 -0
  205. package/dist/helpers/share-link-public/config.d.ts.map +1 -0
  206. package/dist/helpers/share-link-view-notification.d.ts +2 -0
  207. package/dist/helpers/share-link-view-notification.d.ts.map +1 -0
  208. package/dist/helpers/shim.d.ts +1 -1
  209. package/dist/helpers/shim.d.ts.map +1 -1
  210. package/dist/inbox-queue-local.d.ts +2 -0
  211. package/dist/inbox-queue-local.d.ts.map +1 -0
  212. package/dist/index.js +2 -2
  213. package/dist/models/AuthGrant.d.ts.map +1 -1
  214. package/dist/models/CredentialActivity.d.ts +1 -0
  215. package/dist/models/CredentialActivity.d.ts.map +1 -1
  216. package/dist/models/CredentialRefresh.d.ts +5 -2
  217. package/dist/models/CredentialRefresh.d.ts.map +1 -1
  218. package/dist/models/InboxCredential.d.ts +1 -0
  219. package/dist/models/InboxCredential.d.ts.map +1 -1
  220. package/dist/models/Presentation.d.ts +2 -0
  221. package/dist/models/Presentation.d.ts.map +1 -1
  222. package/dist/models/Profile.d.ts +2 -0
  223. package/dist/models/Profile.d.ts.map +1 -1
  224. package/dist/models/ShareLink.d.ts +44 -0
  225. package/dist/models/ShareLink.d.ts.map +1 -0
  226. package/dist/models/ShareViewReceipt.d.ts +22 -0
  227. package/dist/models/ShareViewReceipt.d.ts.map +1 -0
  228. package/dist/models/credential-refresh-constraints.d.ts.map +1 -1
  229. package/dist/models/index.d.ts +1 -0
  230. package/dist/models/index.d.ts.map +1 -1
  231. package/dist/models/share-link-constraints.d.ts +3 -0
  232. package/dist/models/share-link-constraints.d.ts.map +1 -0
  233. package/dist/openapi.d.ts.map +1 -1
  234. package/dist/public-share-link-http.d.ts +4 -0
  235. package/dist/public-share-link-http.d.ts.map +1 -0
  236. package/dist/routes/act-as.test.d.ts +2 -0
  237. package/dist/routes/act-as.test.d.ts.map +1 -0
  238. package/dist/routes/activity.d.ts +3 -0
  239. package/dist/routes/activity.d.ts.map +1 -1
  240. package/dist/routes/app-store.d.ts.map +1 -1
  241. package/dist/routes/auth-grants.d.ts +10 -0
  242. package/dist/routes/auth-grants.d.ts.map +1 -1
  243. package/dist/routes/boosts.d.ts +494 -0
  244. package/dist/routes/boosts.d.ts.map +1 -1
  245. package/dist/routes/contracts.d.ts +2 -2
  246. package/dist/routes/contracts.d.ts.map +1 -1
  247. package/dist/routes/credential-refreshes.d.ts.map +1 -1
  248. package/dist/routes/credentials.d.ts +1 -1
  249. package/dist/routes/credentials.d.ts.map +1 -1
  250. package/dist/routes/inbox.d.ts +953 -11
  251. package/dist/routes/inbox.d.ts.map +1 -1
  252. package/dist/routes/index.d.ts +154 -85
  253. package/dist/routes/index.d.ts.map +1 -1
  254. package/dist/routes/presentations.d.ts +1 -0
  255. package/dist/routes/presentations.d.ts.map +1 -1
  256. package/dist/routes/profile-manager.d.ts.map +1 -1
  257. package/dist/routes/profiles.d.ts.map +1 -1
  258. package/dist/routes/public-share-links.d.ts +230 -0
  259. package/dist/routes/public-share-links.d.ts.map +1 -0
  260. package/dist/routes/share-links.d.ts +844 -0
  261. package/dist/routes/share-links.d.ts.map +1 -0
  262. package/dist/routes/workflows.d.ts.map +1 -1
  263. package/dist/services/delivery/adapters/postmark.adapter.d.ts.map +1 -1
  264. package/dist/services/delivery/adapters/postmark.adapter.test.d.ts +2 -0
  265. package/dist/services/delivery/adapters/postmark.adapter.test.d.ts.map +1 -0
  266. package/dist/services/registry/registry.factory.d.ts.map +1 -1
  267. package/dist/types/activity.d.ts +4 -0
  268. package/dist/types/activity.d.ts.map +1 -1
  269. package/dist/types/consentflowcontract.d.ts +1 -1
  270. package/dist/types/credential-refresh.d.ts +10 -1
  271. package/dist/types/credential-refresh.d.ts.map +1 -1
  272. package/dist/types/inbox-batch.d.ts +38 -0
  273. package/dist/types/inbox-batch.d.ts.map +1 -0
  274. package/inbox-e2e-setup.ts +53 -1
  275. package/inbox-elasticmq.conf +10 -0
  276. package/lambda.ts +64 -16
  277. package/package.json +24 -16
  278. package/scripts/seed-demo-persona.ts +425 -0
  279. package/scripts/setup-inbox-queues.ts +60 -0
  280. package/serverless-local.yml +2 -0
  281. package/serverless.yml +111 -0
  282. package/shareLinkMaintenanceLambda.ts +49 -0
  283. package/src/accesslayer/auth-grant/read.ts +2 -1
  284. package/src/accesslayer/consentflowcontract/relationships/create.ts +9 -16
  285. package/src/accesslayer/consentflowcontract/relationships/update.ts +15 -28
  286. package/src/accesslayer/credential-activity/create.ts +1 -0
  287. package/src/accesslayer/credential-refresh/email-delivery.ts +116 -0
  288. package/src/accesslayer/credential-refresh/index.ts +1 -0
  289. package/src/accesslayer/credential-refresh/read.ts +8 -2
  290. package/src/accesslayer/credential-refresh/update.ts +4 -0
  291. package/src/accesslayer/inbox-batch/store.ts +469 -0
  292. package/src/accesslayer/inbox-credential/create.ts +51 -19
  293. package/src/accesslayer/inbox-credential/refresh.ts +221 -0
  294. package/src/accesslayer/inbox-credential/update.ts +1 -1
  295. package/src/accesslayer/presentation/read.ts +57 -25
  296. package/src/accesslayer/presentation/relationships/create.ts +54 -11
  297. package/src/accesslayer/presentation/relationships/read.ts +21 -6
  298. package/src/accesslayer/share-link/abandon.ts +100 -0
  299. package/src/accesslayer/share-link/cleanup.ts +271 -0
  300. package/src/accesslayer/share-link/errors.ts +32 -0
  301. package/src/accesslayer/share-link/finalize.ts +265 -0
  302. package/src/accesslayer/share-link/helpers.ts +419 -0
  303. package/src/accesslayer/share-link/index.ts +11 -0
  304. package/src/accesslayer/share-link/list.ts +162 -0
  305. package/src/accesslayer/share-link/read.ts +107 -0
  306. package/src/accesslayer/share-link/receipt.ts +548 -0
  307. package/src/accesslayer/share-link/recovery.ts +545 -0
  308. package/src/accesslayer/share-link/reserve.ts +684 -0
  309. package/src/accesslayer/share-link/revoke.ts +197 -0
  310. package/src/accesslayer/share-link/transaction-execution.ts +72 -0
  311. package/src/accesslayer/share-link/transaction.ts +126 -0
  312. package/src/accesslayer/share-link/types.ts +601 -0
  313. package/src/app.ts +6 -0
  314. package/src/cache/atomic-counter.test-helpers.ts +27 -0
  315. package/src/cache/atomic-counter.test.ts +6 -0
  316. package/src/cache/index.ts +25 -13
  317. package/src/config/environment.ts +40 -0
  318. package/src/constants/auth-grant.ts +5 -0
  319. package/src/credential-refresh.ts +5 -1
  320. package/src/docker-entry.ts +65 -0
  321. package/src/helpers/activity.helpers.ts +4 -0
  322. package/src/helpers/app-counter.helpers.ts +1 -1
  323. package/src/helpers/boost.helpers.ts +4 -31
  324. package/src/helpers/contact-method.helpers.test.ts +43 -0
  325. package/src/helpers/contact-method.helpers.ts +3 -4
  326. package/src/helpers/credential-refresh-email-content.helpers.test.ts +222 -0
  327. package/src/helpers/credential-refresh-email-content.helpers.ts +155 -0
  328. package/src/helpers/credential-refresh-email.helpers.ts +201 -0
  329. package/src/helpers/credential-refresh-proof.helpers.test.ts +103 -0
  330. package/src/helpers/credential-refresh-proof.helpers.ts +43 -0
  331. package/src/helpers/credential-refresh.helpers.ts +375 -99
  332. package/src/helpers/credential.helpers.ts +4 -1
  333. package/src/helpers/credentialSubject.helpers.test.ts +114 -0
  334. package/src/helpers/credentialSubject.helpers.ts +40 -0
  335. package/src/helpers/finalize-inbox.helpers.ts +29 -14
  336. package/src/helpers/inbox-batch-http.helpers.test.ts +188 -0
  337. package/src/helpers/inbox-batch-http.helpers.ts +150 -0
  338. package/src/helpers/inbox-batch-status.helpers.ts +11 -0
  339. package/src/helpers/inbox-batch.helpers.test.ts +668 -0
  340. package/src/helpers/inbox-batch.helpers.ts +374 -0
  341. package/src/helpers/inbox-issuance-error.helpers.ts +25 -0
  342. package/src/helpers/inbox-queue.helpers.test.ts +253 -0
  343. package/src/helpers/inbox-queue.helpers.ts +372 -0
  344. package/src/helpers/inbox-refresh.helpers.ts +432 -0
  345. package/src/helpers/inbox.helpers.ts +275 -36
  346. package/src/helpers/notificationMessages.ts +18 -1
  347. package/src/helpers/notifications.helpers.ts +4 -2
  348. package/src/helpers/presentation-metadata.ts +41 -0
  349. package/src/helpers/presentation.helpers.ts +27 -20
  350. package/src/helpers/profile.helpers.ts +7 -0
  351. package/src/helpers/rateLimit.helpers.ts +2 -5
  352. package/src/helpers/refresh-send-intent.helpers.ts +273 -0
  353. package/src/helpers/share-content-client/adapters.ts +55 -0
  354. package/src/helpers/share-content-client/canonical.ts +25 -0
  355. package/src/helpers/share-content-client/client.ts +440 -0
  356. package/src/helpers/share-content-client/config.ts +189 -0
  357. package/src/helpers/share-content-client/index.ts +27 -0
  358. package/src/helpers/share-content-client/responses.ts +273 -0
  359. package/src/helpers/share-content-client/types.ts +253 -0
  360. package/src/helpers/share-link-coordinator/budget-helpers.ts +53 -0
  361. package/src/helpers/share-link-coordinator/cleanup-runner.ts +286 -0
  362. package/src/helpers/share-link-coordinator/coordinator.ts +714 -0
  363. package/src/helpers/share-link-coordinator/index.ts +8 -0
  364. package/src/helpers/share-link-coordinator/recovery-runner.ts +428 -0
  365. package/src/helpers/share-link-coordinator/runtime.ts +88 -0
  366. package/src/helpers/share-link-coordinator/stat.ts +30 -0
  367. package/src/helpers/share-link-coordinator/types.ts +353 -0
  368. package/src/helpers/share-link-lifecycle/index.ts +4 -0
  369. package/src/helpers/share-link-lifecycle/lease.helpers.ts +35 -0
  370. package/src/helpers/share-link-lifecycle/recovery.helpers.ts +173 -0
  371. package/src/helpers/share-link-lifecycle/request-hash.helpers.ts +130 -0
  372. package/src/helpers/share-link-lifecycle/types.ts +58 -0
  373. package/src/helpers/share-link-maintenance/budget.ts +63 -0
  374. package/src/helpers/share-link-maintenance/config.ts +312 -0
  375. package/src/helpers/share-link-maintenance/index.ts +24 -0
  376. package/src/helpers/share-link-maintenance/runner.ts +223 -0
  377. package/src/helpers/share-link-maintenance/runtime.ts +334 -0
  378. package/src/helpers/share-link-maintenance/scheduler.ts +126 -0
  379. package/src/helpers/share-link-maintenance/telemetry.ts +70 -0
  380. package/src/helpers/share-link-maintenance/types.ts +89 -0
  381. package/src/helpers/share-link-owner/config.ts +48 -0
  382. package/src/helpers/share-link-owner/diagnostics.ts +89 -0
  383. package/src/helpers/share-link-owner/lazy-initializer.ts +29 -0
  384. package/src/helpers/share-link-owner-projection.ts +52 -0
  385. package/src/helpers/share-link-passcode-abuse.ts +36 -0
  386. package/src/helpers/share-link-passcode.ts +47 -0
  387. package/src/helpers/share-link-policy/index.ts +7 -0
  388. package/src/helpers/share-link-policy/production.ts +88 -0
  389. package/src/helpers/share-link-policy/resolver.ts +108 -0
  390. package/src/helpers/share-link-policy/types.ts +48 -0
  391. package/src/helpers/share-link-public/config.ts +41 -0
  392. package/src/helpers/share-link-view-notification.ts +18 -0
  393. package/src/helpers/shim.ts +32 -31
  394. package/src/inbox-queue-local.ts +28 -0
  395. package/src/models/AuthGrant.ts +1 -0
  396. package/src/models/CredentialActivity.ts +3 -5
  397. package/src/models/CredentialRefresh.ts +4 -2
  398. package/src/models/InboxCredential.ts +2 -0
  399. package/src/models/Presentation.ts +2 -2
  400. package/src/models/Profile.ts +3 -2
  401. package/src/models/ShareLink.ts +130 -0
  402. package/src/models/ShareViewReceipt.ts +69 -0
  403. package/src/models/credential-refresh-constraints.test.ts +8 -3
  404. package/src/models/credential-refresh-constraints.ts +5 -0
  405. package/src/models/index.ts +2 -0
  406. package/src/models/share-link-constraints.ts +93 -0
  407. package/src/openapi.ts +8 -0
  408. package/src/public-share-link-http.ts +49 -0
  409. package/src/routes/act-as.test.ts +239 -0
  410. package/src/routes/app-store.ts +4 -13
  411. package/src/routes/auth-grants.ts +13 -11
  412. package/src/routes/boosts.ts +916 -103
  413. package/src/routes/contracts.ts +2 -11
  414. package/src/routes/credential-refreshes.test.ts +8 -2
  415. package/src/routes/credential-refreshes.ts +4 -1
  416. package/src/routes/credentials.ts +2 -1
  417. package/src/routes/inbox.ts +95 -49
  418. package/src/routes/index.ts +216 -46
  419. package/src/routes/presentations.ts +19 -3
  420. package/src/routes/profile-manager.ts +10 -2
  421. package/src/routes/profiles.ts +17 -6
  422. package/src/routes/public-share-links.ts +814 -0
  423. package/src/routes/share-links.ts +640 -0
  424. package/src/routes/skills.ts +1 -1
  425. package/src/routes/workflows.ts +43 -24
  426. package/src/services/delivery/adapters/postmark.adapter.test.ts +54 -0
  427. package/src/services/delivery/adapters/postmark.adapter.ts +16 -1
  428. package/src/services/registry/registry.factory.ts +2 -1
  429. package/src/types/activity.ts +2 -0
  430. package/src/types/credential-refresh.ts +21 -2
  431. package/src/types/inbox-batch.ts +46 -0
  432. package/test/atomic-counter.e2e.ts +12 -0
  433. package/test/auth-grant.spec.ts +21 -21
  434. package/test/credential-refresh-email.spec.ts +663 -0
  435. package/test/credential-refresh-publication.spec.ts +2 -0
  436. package/test/dids.spec.ts +10 -1
  437. package/test/guardian-gated-routes.spec.ts +13 -0
  438. package/test/helpers/inbox-e2e-environment.ts +6 -0
  439. package/test/helpers/share-link-fixtures.ts +94 -0
  440. package/test/inbox-batch.spec.ts +1338 -0
  441. package/test/inbox-refresh.spec.ts +534 -0
  442. package/test/managed-recipient-inbox.spec.ts +130 -0
  443. package/test/notificationMessages.spec.ts +13 -0
  444. package/test/openapi.spec.ts +61 -1
  445. package/test/presentations.spec.ts +54 -6
  446. package/test/profiles.spec.ts +67 -1
  447. package/test/refresh-send.spec.ts +1799 -0
  448. package/test/registry.spec.ts +56 -11
  449. package/test/share-content-client.contract.spec.ts +365 -0
  450. package/test/share-content-client.unit.spec.ts +462 -0
  451. package/test/share-link-abuse.unit.spec.ts +65 -0
  452. package/test/share-link-coordinator.neo4j.spec.ts +684 -0
  453. package/test/share-link-coordinator.unit.spec.ts +990 -0
  454. package/test/share-link-dependency-diagnostics.unit.spec.ts +127 -0
  455. package/test/share-link-lifecycle.neo4j.spec.ts +1268 -0
  456. package/test/share-link-lifecycle.unit.spec.ts +205 -0
  457. package/test/share-link-list-cursor.unit.spec.ts +86 -0
  458. package/test/share-link-list.neo4j.spec.ts +324 -0
  459. package/test/share-link-maintenance.neo4j.spec.ts +355 -0
  460. package/test/share-link-maintenance.unit.spec.ts +1113 -0
  461. package/test/share-link-owner-policy.unit.spec.ts +210 -0
  462. package/test/share-link-owner-route.unit.spec.ts +752 -0
  463. package/test/share-link-owner-runtime.unit.spec.ts +102 -0
  464. package/test/share-link-passcode.unit.spec.ts +29 -0
  465. package/test/share-link-policy.unit.spec.ts +135 -0
  466. package/test/share-link-presentation-metadata.unit.spec.ts +49 -0
  467. package/test/share-link-production-policy.unit.spec.ts +77 -0
  468. package/test/share-link-public-config.unit.spec.ts +64 -0
  469. package/test/share-link-public-http-adapter.unit.spec.ts +315 -0
  470. package/test/share-link-public-route.unit.spec.ts +800 -0
  471. package/test/share-link-receipt.neo4j.spec.ts +943 -0
  472. package/test/share-link-recovery.neo4j.spec.ts +935 -0
  473. package/test/share-link-recovery.unit.spec.ts +726 -0
  474. package/vitest.config.ts +10 -0
  475. package/vitest.inbox-e2e.config.ts +5 -1
  476. package/vitest.integration.config.ts +2 -0
  477. package/vitest.share-links-neo4j.config.ts +19 -0
  478. package/vitest.share-links-unit.config.ts +28 -0
package/.env.example CHANGED
@@ -6,8 +6,13 @@ PORT=3000
6
6
  SEED=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7
7
  NEO4J_URI=bolt://localhost:7687
8
8
  NEO4J_USERNAME=neo4j
9
- NEO4J_PASSWORD=password
10
- DOMAIN_NAME=
9
+ NEO4J_PASSWORD=this-is-the-password
10
+ DOMAIN_NAME=localhost%3A4000
11
+ MONGO_URI=mongodb://localhost:27017/?replicaSet=rs0
12
+ MONGO_DB_NAME=lca-api
13
+ # Required by the sample-persona seeder. Use a disposable seed only for local development.
14
+ DEMO_PERSONA_SIGNING_AUTHORITY_ENDPOINT=http://localhost:5100/api
15
+ DEMO_PERSONA_SA_SEED=
11
16
  CLIENT_APP_DOMAIN_NAME=
12
17
  CLIENT_APP_PORT=3000
13
18
  LOGIN_PROVIDER_DID=
@@ -22,6 +27,10 @@ OIDC_EXPECTED_AUDIENCE=
22
27
 
23
28
  AWS_REGION=
24
29
  NOTIFICATIONS_QUEUE_URL=
30
+ INBOX_QUEUE_URL=
31
+ INBOX_DEAD_LETTER_QUEUE_URL=
32
+ # Set only for a local SQS emulator; production uses the AWS endpoint and IAM role.
33
+ INBOX_QUEUE_ENDPOINT=
25
34
  NOTIFICATIONS_QUEUE_POLL_URL=
26
35
  NOTIFICATIONS_SERVICE_WEBHOOK_URL=
27
36
  NOTIFICATIONS_SERVICE_PORT=5100
@@ -88,3 +97,30 @@ CREDENTIAL_REFRESH_ENABLED=false
88
97
  CREDENTIAL_REFRESH_DIGEST_SECRET=
89
98
  # Hours during which repeat refresh notifications collapse into one unread record.
90
99
  CREDENTIAL_REFRESH_NOTIFICATION_WINDOW_HOURS=24
100
+
101
+ # LC-2187 service wiring and automatic recovery/cleanup maintenance.
102
+ # Supply an explicit namespace, trusted LearnCloud origin and audience;
103
+ # malformed values fail closed without graph/remote/signing work.
104
+ SHARE_LINK_MAINTENANCE_NAMESPACE=
105
+ SHARE_LINK_MAINTENANCE_ORIGIN=
106
+ SHARE_LINK_MAINTENANCE_AUDIENCE=
107
+ SHARE_LINK_MAINTENANCE_ALLOW_INSECURE_LOOPBACK=false
108
+ SHARE_LINK_MAINTENANCE_CLAIMANT=brain-share-link-maintenance
109
+ SHARE_LINK_MAINTENANCE_RECOVERY_LIMIT=25
110
+ SHARE_LINK_MAINTENANCE_CLEANUP_LIMIT=25
111
+ SHARE_LINK_MAINTENANCE_LEASE_MS=120000
112
+ SHARE_LINK_MAINTENANCE_CLAIM_MS=300000
113
+ SHARE_LINK_MAINTENANCE_BUDGET_MS=60000
114
+ SHARE_LINK_MAINTENANCE_INTERVAL_MS=300000
115
+ SHARE_LINK_MAINTENANCE_REQUEST_TIMEOUT_MS=10000
116
+ SHARE_LINK_MAINTENANCE_FINALIZE_RESERVE_MS=5000
117
+ SHARE_LINK_MAINTENANCE_GRAPH_TIMEOUT_MS=15000
118
+
119
+ # Owner/public APIs and maintenance are available once the service wiring above
120
+ # is valid. UI rollout is controlled only by LaunchDarkly share-links-enabled.
121
+ # Optional owner namespace override must match SHARE_LINK_MAINTENANCE_NAMESPACE.
122
+ SHARE_LINK_OWNER_API_NAMESPACE=
123
+ # Independent 32+ byte secret, identical on all Brain instances and stable across
124
+ # deployments. Required when the owner API is enabled; test runs use a test-only key.
125
+ SHARE_LINK_REQUEST_HASH_SECRET=
126
+ # Production unknown-age policy defaults to 30 days and does not count views.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,123 @@
1
1
  # @learncard/network-brain-service
2
2
 
3
+ ## 3.19.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1607](https://github.com/learningeconomy/LearnCard/pull/1607) [`b184f5552abf37a11468d435e5cea07fc35e1993`](https://github.com/learningeconomy/LearnCard/commit/b184f5552abf37a11468d435e5cea07fc35e1993) Thanks [@goblincore](https://github.com/goblincore)! - Make `acceptPresentation` idempotent so retries of a saved collection do not create duplicate relationships. New or replacement share-link passcodes require at least eight characters; existing shorter passcodes remain valid for recipients. Public share resolution can now return `try_later` when passcode verification is unavailable or throttled.
8
+
9
+ - [#1624](https://github.com/learningeconomy/LearnCard/pull/1624) [`7e5c2b9ce9fabbd5635cf17a2c6eea5c3ce692fa`](https://github.com/learningeconomy/LearnCard/commit/7e5c2b9ce9fabbd5635cf17a2c6eea5c3ce692fa) Thanks [@Custard7](https://github.com/Custard7)! - fix: Stop treating service profiles as child accounts and fix managed-child claim email template
10
+
11
+ - [#1529](https://github.com/learningeconomy/LearnCard/pull/1529) [`0e262737aafb8248e88e05039c83a3f30be6750f`](https://github.com/learningeconomy/LearnCard/commit/0e262737aafb8248e88e05039c83a3f30be6750f) Thanks [@Custard7](https://github.com/Custard7)! - SSS prod hardening: confirmed recovery enrollment, lost-login identity rebind, and an isolated email relay.
12
+
13
+ - Recovery methods now carry `confirmedAt` and must be proven before they count (email confirmation code, phrase challenge words, backup re-decrypt, passkey round trip). New SSS accounts are `active` immediately; web3auth migrations stay `provisional` until a method is confirmed.
14
+ - New recovery-session flow lets a user whose sign-in identity is gone recover via a verified personal email and bind a new sign-in.
15
+ - Email recovery shares are encrypted on the client to an isolated relay's public key; `lca-api` never sees plaintext. Provider tokens move from query strings to the `X-Auth-Token` header.
16
+ - Sensitive key routes require a single-use DID challenge; key records are keyed by immutable provider ID.
17
+ - `recovery-key` email template now requires `confirmationCode`.
18
+ - Auth-share initialization requires the provider uniqueness index before inserting, preventing competing first writes from creating duplicate accounts. Existing records with missing or BSON-null auth material retain atomic update protection.
19
+ - Automatic stale-key cleanup preserves unresolved pending shares for delayed commits; explicit device forgetting still removes them. Custom SSS storage adapters now implement `deleteDeviceShare(id?)` to remove only the selected share and its version.
20
+
21
+ - [#1614](https://github.com/learningeconomy/LearnCard/pull/1614) [`ae10525fbd0ef284aabe1b03d12db147a1922f2c`](https://github.com/learningeconomy/LearnCard/commit/ae10525fbd0ef284aabe1b03d12db147a1922f2c) Thanks [@smurflo2](https://github.com/smurflo2)! - feat: [LC-2191] Replace Demo School with standards-pure sample personas, including plain OBv3 ConsentFlow issuance without proprietary `boostId` fields.
22
+
23
+ - Updated dependencies [[`4b83aa9ee802f0d7a54adc5f053a7376fa103cdd`](https://github.com/learningeconomy/LearnCard/commit/4b83aa9ee802f0d7a54adc5f053a7376fa103cdd), [`2ebda517e9468476f22d3ae3b4ebddf67e8aca78`](https://github.com/learningeconomy/LearnCard/commit/2ebda517e9468476f22d3ae3b4ebddf67e8aca78), [`0e9dd47f4451d776ad1787d0a35dbd54141b9fe3`](https://github.com/learningeconomy/LearnCard/commit/0e9dd47f4451d776ad1787d0a35dbd54141b9fe3), [`b184f5552abf37a11468d435e5cea07fc35e1993`](https://github.com/learningeconomy/LearnCard/commit/b184f5552abf37a11468d435e5cea07fc35e1993), [`0e262737aafb8248e88e05039c83a3f30be6750f`](https://github.com/learningeconomy/LearnCard/commit/0e262737aafb8248e88e05039c83a3f30be6750f), [`ae10525fbd0ef284aabe1b03d12db147a1922f2c`](https://github.com/learningeconomy/LearnCard/commit/ae10525fbd0ef284aabe1b03d12db147a1922f2c), [`d436c39e00994e6d8c77e7b94985a51fe1f42adb`](https://github.com/learningeconomy/LearnCard/commit/d436c39e00994e6d8c77e7b94985a51fe1f42adb)]:
24
+ - @learncard/types@5.22.0
25
+ - @learncard/credential-library@2.0.5
26
+ - @learncard/email-templates@1.2.0
27
+ - @learncard/helpers@1.6.1
28
+ - @learncard/core@9.4.37
29
+ - @learncard/did-web-plugin@1.1.37
30
+ - @learncard/didkey-plugin@1.1.37
31
+ - @learncard/didkit-plugin@1.10.2
32
+ - @learncard/didkit-plugin-node@0.3.2
33
+ - @learncard/encryption-plugin@1.1.37
34
+ - @learncard/learn-card-plugin@1.2.37
35
+ - @learncard/vc-plugin@1.6.3
36
+ - @learncard/vc-templates-plugin@1.1.37
37
+ - @learncard/crypto-plugin@1.1.37
38
+ - @learncard/dynamic-loader-plugin@1.1.37
39
+ - @learncard/expiration-plugin@1.2.37
40
+
41
+ ## 3.19.0
42
+
43
+ ### Minor Changes
44
+
45
+ - [#1585](https://github.com/learningeconomy/LearnCard/pull/1585) [`0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e`](https://github.com/learningeconomy/LearnCard/commit/0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e) Thanks [@goblincore](https://github.com/goblincore)! - Send managed credential update emails to a bound holder's verified email (or a verified manager for managed accounts). Include the issuer display name and a bounded credential title, with a translated link to app notifications; exclude grades, subject data, and update summaries. Keep email failures independent of publication and in-app notifications, and persist a single delivery attempt per publication notification window so retries cannot send duplicate email.
46
+
47
+ Email delivery is best effort: a failed or ambiguous provider attempt is recorded and not retried within that window. A later material update in a new window can send another email. There is no background email retry worker.
48
+
49
+ Existing verified Universal Inbox recipients also receive an initial email pointing to their app notifications when delivery is not suppressed. Local claim and update links use the frontend address.
50
+
51
+ Preserve recipient profile identities when local webhook delivery normalizes notification DIDs, so the subsequent update-email lookup can still find verified contacts.
52
+
53
+ - [#1591](https://github.com/learningeconomy/LearnCard/pull/1591) [`928e587378b3674766cf58a8bbe1cbd4d66d3a9f`](https://github.com/learningeconomy/LearnCard/commit/928e587378b3674766cf58a8bbe1cbd4d66d3a9f) Thanks [@gerardopar](https://github.com/gerardopar)! - Add Universal Inbox batch issuance through `sendCredentialsViaInbox`, tRPC
54
+ `inbox.issueBatch`, and `POST /inbox/issue-batch`, with public batch input and result
55
+ validators/types, shared configuration defaults, ordered per-item outcomes, and
56
+ 24-hour issuer-scoped idempotency keys. Later duplicate keys in one batch conflict
57
+ deterministically. Completed issuances include reconciliation IDs if replay storage
58
+ cannot be confirmed; side-effect-free preflight failures release their keys.
59
+
60
+ Enforce a 4 MiB JSON payload budget and atomic batch quota admission without
61
+ charging rejected batches. Batch submission returns HTTP 202 with a durable
62
+ receipt. Poll `GET /inbox/batches/{batchId}` or
63
+ `getInboxCredentialBatch` for ordered progress and outcomes. Batch-level request IDs
64
+ make submission retries safe. Jobs, quota admission, dispatch records, and encrypted
65
+ results are stored in Neo4j; a dedicated SQS queue processes items independently of
66
+ notifications. Submission retries report the current batch state. Transient preparation
67
+ and signing failures retry before delivery. Terminal batches release their original
68
+ payload and remain available for 30 days, including uncertain outcomes; unresolved
69
+ client-keyed replay reservations stay blocked for reconciliation after job expiry.
70
+ Orphaned internal reservations for unkeyed items are collected after job pruning.
71
+ Container-backed tests exercise Neo4j, Redis, and an SQS emulator, including worker
72
+ recovery, duplicate delivery, polling authorization, and submission replay.
73
+
74
+ The existing single-issue route now accepts `configuration.guardianEmail`, exposing
75
+ guardian approval to single-issue clients. Both routes reject guardian self-approval
76
+ case-insensitively. Rate-limit errors use `TOO_MANY_REQUESTS` (HTTP 429); remove stale
77
+ TypeScript casts to `BAD_REQUEST` from existing callers. Those casts did not change
78
+ the runtime status code.
79
+
80
+ ### Patch Changes
81
+
82
+ - [#1585](https://github.com/learningeconomy/LearnCard/pull/1585) [`0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e`](https://github.com/learningeconomy/LearnCard/commit/0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e) Thanks [@goblincore](https://github.com/goblincore)! - Managed refreshable sends through the standard send paths (LC-2198). `send({ type: 'boost', refresh: true })` now issues refreshable credentials for profile/DID recipients: with local signing the SDK asks the server to run every managed-send guard, create or reuse the boost and allocate the managed refresh service in one step, injects the service (with its inline JSON-LD context) before signing, and hands the signed credential to the server's unified send so activity/contract behavior and the canonical receipt are preserved; without local signing the request is served by the signing-authority path. Email/phone recipients now use Universal Inbox deferred issuance: allocate a stable refresh service at issue, queue unsigned updates in encrypted inbox escrow, and bind/sign the latest content at verified claim. The deferred receipt is returned at `inbox.refresh`; direct `inbox/issue` returns it at `refresh`.
83
+
84
+ `sendBoost` with literal `{ enableRefresh: true }` now returns `{ credentialUri, refresh }` instead of a plain URI string, where `refresh` is the metadata-only issuance receipt (refreshId, refreshService, credentialId, issuerDid, holderDid, credentialStatus) needed to publish future versions via `publishCredentialRefresh`. Legacy callers — boolean options, omitted options, or object options without `enableRefresh` — still receive the credential URI string; a dynamically typed `enableRefresh` degrades the result to `string | { credentialUri, refresh }`. Delivered managed credentials remain holder-encrypted even when `encrypt: false`. Pending Inbox content uses the existing service-readable encrypted escrow until claim, when it is wiped.
85
+
86
+ `@learncard/types` adds the `ManagedCredentialRefreshReceipt` validator plus optional `refresh` on the unified send input/response validators; `@learncard/helpers` adds the shared managed context preparation helpers (`prepareManagedRefreshContext`, `injectManagedRefreshService`) now also used by SDK `issueCredential` signing.
87
+
88
+ Refreshable `send` accepts an optional `idempotencyKey` so a whole call can be retried without duplicating the boost, refresh allocation or delivery.
89
+
90
+ Completed-send comparisons canonicalize nested result keys so equivalent receipts remain idempotent regardless of property insertion order. Keyed sends reuse the recipient validation already performed in the request.
91
+
92
+ Keyed pre-signed retries now recover the original result when delivery bound successfully but its intent result was not recorded, matching preparation and signing-authority retries. Pending receipt fallbacks use the holder's network profile DID consistently.
93
+
94
+ Signing a credential with a managed refresh service now rejects conflicting inline JSON-LD term definitions (including `authorization`) instead of producing a credential whose refresh terms are not correctly signed. Credentials without a managed service are unaffected.
95
+
96
+ Managed send and refresh publication recover from a stale local issuer DID document after signing-authority registration: if proof verification fails, the server refreshes the authenticated issuer's document and verifies once more without relaxing signature checks.
97
+
98
+ Universal Inbox accepts `refresh: true` and an issuance `idempotencyKey`; both claim paths bind the latest revision atomically. Publication keys survive claim, and issuer `getInboxCredential` exposes the metadata-only receipt with its bound holder DID.
99
+
100
+ - [#1585](https://github.com/learningeconomy/LearnCard/pull/1585) [`0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e`](https://github.com/learningeconomy/LearnCard/commit/0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e) Thanks [@goblincore](https://github.com/goblincore)! - Honor delegated boost issuance permissions for managed refresh delivery. Expire saved post-login destinations after 30 minutes, discard legacy untimed destinations, and clear superseded claim redirects during sign-in.
101
+
102
+ - [#1591](https://github.com/learningeconomy/LearnCard/pull/1591) [`928e587378b3674766cf58a8bbe1cbd4d66d3a9f`](https://github.com/learningeconomy/LearnCard/commit/928e587378b3674766cf58a8bbe1cbd4d66d3a9f) Thanks [@gerardopar](https://github.com/gerardopar)! - Support managed refresh through batch and item configuration, with item overrides including explicit false. Forward refresh options and template anchors to issuance, preserve caller permissions for background processing, and return refresh receipts in item results and replays.
103
+
104
+ - Updated dependencies [[`2991bd32b03e26736239dd8e586e2f720d9bcd45`](https://github.com/learningeconomy/LearnCard/commit/2991bd32b03e26736239dd8e586e2f720d9bcd45), [`0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e`](https://github.com/learningeconomy/LearnCard/commit/0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e), [`0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e`](https://github.com/learningeconomy/LearnCard/commit/0c1bf9a8a33e6392d5fd279479d9ab4fb0449b5e), [`3174c09b97fde6f7b5251390245038cf6b7ea9ba`](https://github.com/learningeconomy/LearnCard/commit/3174c09b97fde6f7b5251390245038cf6b7ea9ba), [`928e587378b3674766cf58a8bbe1cbd4d66d3a9f`](https://github.com/learningeconomy/LearnCard/commit/928e587378b3674766cf58a8bbe1cbd4d66d3a9f), [`928e587378b3674766cf58a8bbe1cbd4d66d3a9f`](https://github.com/learningeconomy/LearnCard/commit/928e587378b3674766cf58a8bbe1cbd4d66d3a9f)]:
105
+ - @learncard/types@5.21.0
106
+ - @learncard/helpers@1.6.0
107
+ - @learncard/vc-plugin@1.6.2
108
+ - @learncard/email-templates@1.1.0
109
+ - @learncard/core@9.4.36
110
+ - @learncard/did-web-plugin@1.1.36
111
+ - @learncard/didkey-plugin@1.1.36
112
+ - @learncard/didkit-plugin@1.10.1
113
+ - @learncard/didkit-plugin-node@0.3.1
114
+ - @learncard/encryption-plugin@1.1.36
115
+ - @learncard/learn-card-plugin@1.2.36
116
+ - @learncard/vc-templates-plugin@1.1.36
117
+ - @learncard/crypto-plugin@1.1.36
118
+ - @learncard/dynamic-loader-plugin@1.1.36
119
+ - @learncard/expiration-plugin@1.2.36
120
+
3
121
  ## 3.18.0
4
122
 
5
123
  ### Minor Changes
package/README.md CHANGED
@@ -29,6 +29,48 @@ Deploy this producer before an AI Passport consumer that requires the new guardi
29
29
  - **Default environment**: if you omit the stage, the command defaults to `local` and prints a note.
30
30
  - **Production safety**: the manual seed command still refuses to run in production unless `--force` is provided.
31
31
 
32
+ ## Sample persona seeding
33
+
34
+ Sample personas are ordered credential-library bundles published as idempotent
35
+ consent-flow contracts. The seeder uses every target value from
36
+ `services/learn-card-network/brain-service/.env`; verify them before running it.
37
+ Do not overwrite an existing `.env` or assume it points to local services.
38
+
39
+ For the local LearnCard App Compose stack, use explicit host-side values:
40
+
41
+ ```dotenv
42
+ NEO4J_URI=bolt://localhost:7687
43
+ NEO4J_USERNAME=neo4j
44
+ NEO4J_PASSWORD=this-is-the-password
45
+ MONGO_URI=mongodb://localhost:27017/?replicaSet=rs0
46
+ MONGO_DB_NAME=lca-api
47
+ REDIS_HOST=localhost
48
+ REDIS_PORT=6379
49
+ DOMAIN_NAME=localhost%3A4000
50
+ DEMO_PERSONA_SIGNING_AUTHORITY_ENDPOINT=http://localhost:5100/api
51
+ # Disposable local-only seed. Never reuse this value in a shared environment.
52
+ DEMO_PERSONA_SA_SEED=dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
53
+ ```
54
+
55
+ Start the stack, then publish the bundle from `apps/learn-card-app`:
56
+
57
+ ```bash
58
+ bun run seed:demo-persona student
59
+ ```
60
+
61
+ Staging and production require their own secret 64-character hexadecimal
62
+ `DEMO_PERSONA_SA_SEED`, the matching LCA API endpoint, and explicit Neo4j, MongoDB,
63
+ Redis, and domain settings. Deploy the brain service first, run the seeder against
64
+ the intended environment, verify the printed contract URI, and only then deploy app
65
+ configuration that references it.
66
+
67
+ The root seed deterministically derives a distinct signing identity for every
68
+ configured sample issuer. The command updates issuer profiles, unsigned credential
69
+ templates, and auto-boost relationships in place, then prints the stable contract URI
70
+ to record in that tenant's `features.samplePersonas`. Running it again publishes
71
+ credential-library content changes without duplicating profiles, Boosts, signing
72
+ authorities, or contracts.
73
+
32
74
  ## Notes
33
75
 
34
76
  - The default fixture is idempotent by framework and skill ID, so running the seed command multiple times does not duplicate data.
@@ -0,0 +1,7 @@
1
+ services:
2
+ inbox-sqs:
3
+ image: softwaremill/elasticmq-native:1.6.15
4
+ ports:
5
+ - '9324:9324'
6
+ volumes:
7
+ - ./inbox-elasticmq.conf:/opt/elasticmq.conf:ro
@@ -12,5 +12,6 @@ export declare const isAuthGrantAssociatedWithProfile: (authGrantId: string, pro
12
12
  export declare const isAuthGrantChallengeValidForDID: (challenge: string, did: string) => Promise<{
13
13
  isChallengeValid: boolean;
14
14
  scope: string;
15
+ actAs?: string;
15
16
  }>;
16
17
  //# sourceMappingURL=read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/auth-grant/read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,aAAa,EAA4B,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAgB/E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,SAAS,WAAW,EACpB,uCAIG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,cAAc,CAAA;CAAE,KAC9D,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCpD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,aAAa,MAAM,EACnB,WAAW,MAAM,KAClB,OAAO,CAAC,OAAO,CAmBjB,CAAC;AAEF,eAAO,MAAM,+BAA+B,GACxC,WAAW,MAAM,EACjB,KAAK,MAAM,KACZ,OAAO,CAAC;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6BtD,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/auth-grant/read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,aAAa,EAA4B,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAgB/E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,SAAS,WAAW,EACpB,uCAIG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,cAAc,CAAA;CAAE,KAC9D,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCpD,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,aAAa,MAAM,EACnB,WAAW,MAAM,KAClB,OAAO,CAAC,OAAO,CAmBjB,CAAC;AAEF,eAAO,MAAM,+BAA+B,GACxC,WAAW,MAAM,EACjB,KAAK,MAAM,KACZ,OAAO,CAAC;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA8BtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/consentflowcontract/relationships/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EAExC,2BAA2B,EAE3B,UAAU,EAGb,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxC,eAAO,MAAM,qBAAqB,GAAU,UAAU,cAAc,EAAE,SAAS,UAAU,oBAQxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,UAAU,cAAc,EACxB,OAAO,SAAS,EAChB,kBAAkB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACpD,SAAS,MAAM,oBAWlB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACnC,UAAU,cAAc,EACxB,OAAO,SAAS,KACjB,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC1B,WAAW,UAAU,EACrB,6BAA6B;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,UAAU,CAAA;CAAE,EACpF,0DAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,qBAgRjB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/consentflowcontract/relationships/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EAExC,2BAA2B,EAE3B,UAAU,EAGb,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxC,eAAO,MAAM,qBAAqB,GAAU,UAAU,cAAc,EAAE,SAAS,UAAU,oBAQxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,UAAU,cAAc,EACxB,OAAO,SAAS,EAChB,kBAAkB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACpD,SAAS,MAAM,oBAWlB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACnC,UAAU,cAAc,EACxB,OAAO,SAAS,KACjB,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC1B,WAAW,UAAU,EACrB,6BAA6B;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,UAAU,CAAA;CAAE,EACpF,0DAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,qBAyQjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/consentflowcontract/relationships/update.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EAExC,2BAA2B,EAE3B,UAAU,EAGb,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AASxE,eAAO,MAAM,cAAc,GACvB,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,kDAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,KACf,OAAO,CAAC,OAAO,CA8MjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACpB,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,kDAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,KACf,OAAO,CAAC,OAAO,CAiNjB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,cAAc;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,KAAG,OAAO,CAAC,OAAO,CAqDlB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAClC,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KACrC,OAAO,CAAC,OAAO,CAoHjB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,OAAO,WAAW,EAClB,aAAa,MAAM,EAAE,KACtB,OAAO,CAAC,MAAM,CAkEhB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,IAAI,MAAM,EACV,WAAW,MAAM,EACjB,QAAQ,SAAS,GAAG,UAAU,GAAG,QAAQ,KAC1C,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACvC,IAAI,MAAM,EACV,WAAW,MAAM,EACjB,SAAS,SAAS,GAAG,UAAU,GAAG,QAAQ,EAC1C,aAAa,MAAM,GAAG,QAAQ,GAAG,IAAI,kBAgBxC,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/consentflowcontract/relationships/update.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EAExC,2BAA2B,EAE3B,UAAU,EAGb,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAUxE,eAAO,MAAM,cAAc,GACvB,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,kDAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,KACf,OAAO,CAAC,OAAO,CAuMjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACpB,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,kDAKG;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAClD,EACD,QAAQ,MAAM,KACf,OAAO,CAAC,OAAO,CA0MjB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,cAAc;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,KAAG,OAAO,CAAC,OAAO,CAqDlB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAClC,cAAc;IACV,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;CAC7B,EACD,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KACrC,OAAO,CAAC,OAAO,CAoHjB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,OAAO,WAAW,EAClB,aAAa,MAAM,EAAE,KACtB,OAAO,CAAC,MAAM,CAkEhB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,IAAI,MAAM,EACV,WAAW,MAAM,EACjB,QAAQ,SAAS,GAAG,UAAU,GAAG,QAAQ,KAC1C,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACvC,IAAI,MAAM,EACV,WAAW,MAAM,EACjB,SAAS,SAAS,GAAG,UAAU,GAAG,QAAQ,EAC1C,aAAa,MAAM,GAAG,QAAQ,GAAG,IAAI,kBAgBxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-activity/create.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,eAAO,MAAM,wBAAwB,GACjC,QAAQ,2BAA2B,KACpC,OAAO,CAAC,MAAM,CAoDhB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-activity/create.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,eAAO,MAAM,wBAAwB,GACjC,QAAQ,2BAA2B,KACpC,OAAO,CAAC,MAAM,CAqDhB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type CredentialRefreshEmailDeliveryState = 'claimed' | 'delivered' | 'failed';
2
+ export declare const claimCredentialRefreshEmailDelivery: (params: {
3
+ refreshId: string;
4
+ windowKey: string;
5
+ }) => Promise<"claimed" | "duplicate">;
6
+ export declare const finalizeCredentialRefreshEmailDelivery: (params: {
7
+ refreshId: string;
8
+ windowKey: string;
9
+ state: Extract<CredentialRefreshEmailDeliveryState, "delivered" | "failed">;
10
+ }) => Promise<void>;
11
+ export declare const getCredentialRefreshEmailDelivery: (refreshId: string, windowKey: string) => Promise<{
12
+ deliveryKey: string;
13
+ refreshId: string;
14
+ windowKey: string;
15
+ state: CredentialRefreshEmailDeliveryState;
16
+ attempts: number;
17
+ } | null>;
18
+ //# sourceMappingURL=email-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-delivery.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/email-delivery.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,mCAAmC,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAkBrF,eAAO,MAAM,mCAAmC,GAAU,QAAQ;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,KAAG,OAAO,CAAC,SAAS,GAAG,WAAW,CA6BlC,CAAC;AAGF,eAAO,MAAM,sCAAsC,GAAU,QAAQ;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,mCAAmC,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;CAC/E,KAAG,OAAO,CAAC,IAAI,CASf,CAAC;AAGF,eAAO,MAAM,iCAAiC,GAC1C,WAAW,MAAM,EACjB,WAAW,MAAM,KAClB,OAAO,CAAC;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,mCAAmC,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAmBP,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './create';
2
+ export * from './email-delivery';
2
3
  export * from './read';
3
4
  export * from './update';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/read.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,uBAAuB,EAEvB,4BAA4B,EAE5B,8BAA8B,EAEjC,MAAM,0BAA0B,CAAC;AAgBlC,eAAO,MAAM,oBAAoB,GAC7B,WAAW,MAAM,KAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAWxC,CAAC;AAGF,eAAO,MAAM,wBAAwB,GACjC,WAAW,MAAM,KAClB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAY7C,CAAC;AAGF,eAAO,MAAM,2BAA2B,GACpC,WAAW,MAAM,EACjB,SAAS,MAAM,KAChB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAY7C,CAAC;AAGF,eAAO,MAAM,2CAA2C,GACpD,WAAW,MAAM,EACjB,gBAAgB,MAAM,KACvB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAW7C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAE9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,CAAC,IAC3C;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAkBxF,eAAO,MAAM,iCAAiC,GAC1C,WAAW,MAAM,KAClB,OAAO,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAqBzE,CAAC;AAGF,eAAO,MAAM,oCAAoC,GAC7C,WAAW,MAAM,EACjB,SAAS,MAAM,KAChB,OAAO,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAqBzE,CAAC;AAGF,eAAO,MAAM,qCAAqC,GAC9C,WAAW,MAAM,EACjB,UAAS,mCAAwC,KAClD,OAAO,CAAC,iCAAiC,CAAC,kCAAkC,CAAC,CA6D/E,CAAC;AAMF,eAAO,MAAM,4BAA4B,GACrC,WAAW,MAAM,EACjB,UAAS,mCAAwC,KAClD,OAAO,CAAC,kCAAkC,CAoD5C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAE9C,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,sCAAsC,GAC/C,WAAW,MAAM,KAClB,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAoBpD,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/read.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,uBAAuB,EAEvB,4BAA4B,EAE5B,8BAA8B,EAEjC,MAAM,0BAA0B,CAAC;AAgBlC,eAAO,MAAM,oBAAoB,GAC7B,WAAW,MAAM,KAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAWxC,CAAC;AAGF,eAAO,MAAM,wBAAwB,GACjC,WAAW,MAAM,KAClB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAY7C,CAAC;AAGF,eAAO,MAAM,2BAA2B,GACpC,WAAW,MAAM,EACjB,SAAS,MAAM,KAChB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAY7C,CAAC;AAGF,eAAO,MAAM,2CAA2C,GACpD,WAAW,MAAM,EACjB,gBAAgB,MAAM,KACvB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAW7C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAE9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,CAAC,IAC3C;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAkBxF,eAAO,MAAM,iCAAiC,GAC1C,WAAW,MAAM,KAClB,OAAO,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAqBzE,CAAC;AAGF,eAAO,MAAM,oCAAoC,GAC7C,WAAW,MAAM,EACjB,SAAS,MAAM,KAChB,OAAO,CAAC,iCAAiC,CAAC,4BAA4B,CAAC,CAqBzE,CAAC;AAGF,eAAO,MAAM,qCAAqC,GAC9C,WAAW,MAAM,EACjB,UAAS,mCAAwC,KAClD,OAAO,CAAC,iCAAiC,CAAC,kCAAkC,CAAC,CA6D/E,CAAC;AAMF,eAAO,MAAM,4BAA4B,GACrC,WAAW,MAAM,EACjB,UAAS,mCAAwC,KAClD,OAAO,CAAC,kCAAkC,CA0D5C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAE9C,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,sCAAsC,GAC/C,WAAW,MAAM,KAClB,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAoBpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/update.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,kCAAkC,EAElC,kCAAkC,EAClC,uBAAuB,EAEvB,sBAAsB,EACzB,MAAM,0BAA0B,CAAC;AAuDlC,eAAO,MAAM,4BAA4B,GACrC,QAAQ,kCAAkC,KAC3C,OAAO,CAAC,kCAAkC,CAuK5C,CAAC;AASF,eAAO,MAAM,mCAAmC,GAAU,QAAQ;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB,KAAG,OAAO,CAAC,IAAI,CAyBf,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAClC,WAAW,MAAM,EACjB,OAAO,sBAAsB,EAC7B,gBAAgB,sBAAsB,KACvC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAgBxC,CAAC;AAWF,eAAO,MAAM,8CAA8C,GACvD,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,KACxB,OAAO,CAAC,OAAO,CAYjB,CAAC;AAOF,eAAO,MAAM,oCAAoC,GAC7C,kBAAkB,MAAM,KACzB,OAAO,CAAC,OAAO,CAYjB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/credential-refresh/update.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,kCAAkC,EAElC,kCAAkC,EAClC,uBAAuB,EAEvB,sBAAsB,EACzB,MAAM,0BAA0B,CAAC;AAuDlC,eAAO,MAAM,4BAA4B,GACrC,QAAQ,kCAAkC,KAC3C,OAAO,CAAC,kCAAkC,CA2K5C,CAAC;AASF,eAAO,MAAM,mCAAmC,GAAU,QAAQ;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB,KAAG,OAAO,CAAC,IAAI,CAyBf,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAClC,WAAW,MAAM,EACjB,OAAO,sBAAsB,EAC7B,gBAAgB,sBAAsB,KACvC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAgBxC,CAAC;AAWF,eAAO,MAAM,8CAA8C,GACvD,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,KACxB,OAAO,CAAC,OAAO,CAYjB,CAAC;AAOF,eAAO,MAAM,oCAAoC,GAC7C,kBAAkB,MAAM,KACzB,OAAO,CAAC,OAAO,CAYjB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { InboxBatchReceipt, IssueInboxCredentialBatchItemResult } from '@learncard/types';
2
+ import type { BatchItem, BatchJob, BatchReplayStore, InboxDispatchLease } from '../../types/inbox-batch';
3
+ export declare const DAY = 86400000;
4
+ export declare const LEASE_MS = 360000;
5
+ export declare const ensureInboxBatchConstraints: () => Promise<void>;
6
+ export declare const createBatchJob: (input: {
7
+ issuer: string;
8
+ requestId?: string;
9
+ requestHash: string;
10
+ payload: string;
11
+ items: {
12
+ replayKey: string;
13
+ duplicate: boolean;
14
+ correlation?: string;
15
+ }[];
16
+ limit: number;
17
+ }) => Promise<InboxBatchReceipt>;
18
+ export declare const readBatchJob: (id: string, issuer: string) => Promise<{
19
+ job: BatchJob;
20
+ items: BatchItem[];
21
+ }>;
22
+ export declare const claimBatchItem: (id: string, owner: string) => Promise<{
23
+ job: BatchJob;
24
+ item: BatchItem;
25
+ } | undefined>;
26
+ export declare const markBatchIssuanceStarted: (id: string, owner: string) => Promise<void>;
27
+ export declare const batchReplayStore: (itemId: string, owner: string, replayKey: string) => BatchReplayStore;
28
+ export declare const finishBatchItem: (id: string, owner: string, result: IssueInboxCredentialBatchItemResult) => Promise<void>;
29
+ export declare const takeInboxDispatches: () => Promise<InboxDispatchLease[]>;
30
+ export declare const acknowledgeInboxDispatches: (leases: InboxDispatchLease[]) => Promise<void>;
31
+ export declare const deadLetterBatchItem: (id: string) => Promise<void>;
32
+ export declare const recoverInboxJobs: (deadline?: number) => Promise<void>;
33
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-batch/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,MAAM,kBAAkB,CAAC;AAG/F,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGnG,eAAO,MAAM,GAAG,WAAa,CAAC;AAC9B,eAAO,MAAM,QAAQ,SAAU,CAAC;AAIhC,eAAO,MAAM,2BAA2B,QAAO,OAAO,CAAC,IAAI,CAoC1D,CAAC;AAaF,eAAO,MAAM,cAAc,GAAU,OAAO;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;CACjB,KAAG,OAAO,CAAC,iBAAiB,CAkE5B,CAAC;AAEF,eAAO,MAAM,YAAY,GACrB,IAAI,MAAM,EACV,QAAQ,MAAM,KACf,OAAO,CAAC;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,CAW/C,CAAC;AAGF,eAAO,MAAM,cAAc,GACvB,IAAI,MAAM,EACV,OAAO,MAAM,KACd,OAAO,CAAC;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAgBnD,CAAC;AAsBP,eAAO,MAAM,wBAAwB,GAAU,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAIjF,CAAC;AAMP,eAAO,MAAM,gBAAgB,GACzB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,WAAW,MAAM,KAClB,gBA2DD,CAAC;AAgBH,eAAO,MAAM,eAAe,GACxB,IAAI,MAAM,EACV,OAAO,MAAM,EACb,QAAQ,mCAAmC,KAC5C,OAAO,CAAC,IAAI,CA+Bd,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,kBAAkB,EAAE,CAanE,CAAC;AAEP,eAAO,MAAM,0BAA0B,GAAU,QAAQ,kBAAkB,EAAE,KAAG,OAAO,CAAC,IAAI,CAQ3F,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CA8B7D,CAAC;AAGP,eAAO,MAAM,gBAAgB,GAAU,iBAA8B,KAAG,OAAO,CAAC,IAAI,CAsFnF,CAAC"}
@@ -3,6 +3,11 @@ import { ProfileType } from '../../types/profile';
3
3
  export declare const DEFAULT_INBOX_EXPIRY_DAYS = 30;
4
4
  export declare const createInboxCredential: (input: {
5
5
  credential: string;
6
+ refresh?: {
7
+ aggregate: Record<string, unknown>;
8
+ issueKey: string;
9
+ requestDigest: string;
10
+ };
6
11
  delivered?: boolean;
7
12
  isSigned: boolean;
8
13
  isAccepted?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-credential/create.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,eAAO,MAAM,qBAAqB,GAAU,OAAO;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,sBAAsB,CAAC;IAClC,aAAa,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;CACpF,KAAG,OAAO,CAAC,mBAAmB,CAsG9B,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-credential/create.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,eAAO,MAAM,qBAAqB,GAAU,OAAO;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,sBAAsB,CAAC;IAClC,aAAa,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;CACpF,KAAG,OAAO,CAAC,mBAAmB,CAoI9B,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { InboxCredentialType, PublishCredentialRefreshResult } from '@learncard/types';
2
+ export declare const getInboxRefreshIssue: (issueKey: string) => Promise<{
3
+ inbox: InboxCredentialType;
4
+ requestDigest: string;
5
+ claimUrl?: string;
6
+ } | null>;
7
+ export declare const createPendingInboxRefresh: (params: {
8
+ inbox: Record<string, unknown>;
9
+ aggregate: Record<string, unknown>;
10
+ issueKey: string;
11
+ requestDigest: string;
12
+ }) => Promise<InboxCredentialType>;
13
+ export declare const getPendingInboxPublication: (refreshId: string, idempotencyKey?: string) => Promise<PublishCredentialRefreshResult | null>;
14
+ export declare const advancePendingInboxRefresh: (params: {
15
+ refreshId: string;
16
+ expectedVersion: number;
17
+ credential: string;
18
+ credentialName?: string;
19
+ materialDigest: string;
20
+ idempotencyKey?: string;
21
+ updateSummary?: string;
22
+ }) => Promise<PublishCredentialRefreshResult | null>;
23
+ export declare const bindPendingInboxRefresh: (params: {
24
+ inboxId: string;
25
+ refreshId: string;
26
+ expectedVersion: number;
27
+ holderDid: string;
28
+ holderProfileId?: string;
29
+ issuerProfileId: string;
30
+ root: Record<string, unknown>;
31
+ aggregate: Record<string, unknown>;
32
+ deliveryCredential: string;
33
+ deliveryExpiresAt: string;
34
+ accepted: boolean;
35
+ boostId?: string;
36
+ }) => Promise<boolean>;
37
+ export declare const getInboxRefreshSnapshot: (inboxId: string) => Promise<{
38
+ inbox: any;
39
+ aggregate: {
40
+ refreshId: string;
41
+ issuerProfileId: string;
42
+ issuerDid: string;
43
+ credentialId: string;
44
+ state: "active" | "revoked" | "pending_holder" | "awaiting_claim";
45
+ currentVersion: number;
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ inboxCredentialId?: string | undefined;
49
+ inboxCredentialStatus?: string | undefined;
50
+ holderProfileId?: string | undefined;
51
+ holderDid?: string | undefined;
52
+ etag?: string | undefined;
53
+ materialDigest?: string | undefined;
54
+ rootMaterialDigest?: string | undefined;
55
+ credentialStatusDigest?: string | undefined;
56
+ credentialSubjectDigest?: string | undefined;
57
+ boostId?: string | undefined;
58
+ signingMode?: "issuer-signed" | "signing-authority" | undefined;
59
+ idempotencyKey?: string | undefined;
60
+ updateSummary?: string | undefined;
61
+ credentialDisplayName?: string | undefined;
62
+ lastPublishedAt?: string | undefined;
63
+ notificationWindowKey?: string | undefined;
64
+ lastNotificationId?: string | undefined;
65
+ lastNotificationAt?: string | undefined;
66
+ initialNotificationSentAt?: string | undefined;
67
+ initialNotificationSuppressed?: boolean | undefined;
68
+ };
69
+ } | null>;
70
+ export declare const recordInboxRefreshClaimUrl: (id: string, claimUrl: string) => Promise<string>;
71
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-credential/refresh.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAG5F,eAAO,MAAM,oBAAoB,GAC7B,UAAU,MAAM,KACjB,OAAO,CAAC;IACP,KAAK,EAAE,mBAAmB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAaP,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAAU,QAAQ;IACpD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,mBAAmB,CAuB9B,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACnC,WAAW,MAAM,EACjB,iBAAiB,MAAM,KACxB,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAe/C,CAAC;AAGF,eAAO,MAAM,0BAA0B,GAAU,QAAQ;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,KAAG,OAAO,CAAC,8BAA8B,GAAG,IAAI,CA6ChD,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAU,QAAQ;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,OAAO,CAwClB,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAU,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAiB5D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAU,IAAI,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAQ7F,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { InboxCredentialType } from '@learncard/types';
2
2
  import { InboxDelivery } from '../../types/inbox-delivery';
3
- export declare const updateInboxCredential: (id: string, updates: Partial<Omit<InboxCredentialType, "id" | "createdAt" | "credential">>) => Promise<InboxCredentialType | null>;
3
+ export declare const updateInboxCredential: (id: string, updates: Partial<Omit<InboxCredentialType, "id" | "createdAt" | "credential" | "refresh">>) => Promise<InboxCredentialType | null>;
4
4
  export declare const finalizeAndWipeInboxCredential: (id: string, delivery: InboxDelivery, { isAccepted }?: {
5
5
  isAccepted?: boolean;
6
6
  }) => Promise<InboxCredentialType | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-credential/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EACH,aAAa,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,qBAAqB,GAC9B,IAAI,MAAM,EACV,SAAS,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,KAC/E,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAcpC,CAAC;AAGF,eAAO,MAAM,8BAA8B,GACvC,IAAI,MAAM,EACV,UAAU,aAAa,EACvB,iBAAuB;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,KACrD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAsCpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAC/B,cAAoC,KACrC,OAAO,CAAC,MAAM,CAyBhB,CAAC;AAKF,eAAO,MAAM,0BAA0B,GACnC,cAAoC,KACrC,OAAO,CAAC,MAAM,CAWhB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/inbox-credential/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EACH,aAAa,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,qBAAqB,GAC9B,IAAI,MAAM,EACV,SAAS,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC,KAC3F,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAcpC,CAAC;AAGF,eAAO,MAAM,8BAA8B,GACvC,IAAI,MAAM,EACV,UAAU,aAAa,EACvB,iBAAuB;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,KACrD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAsCpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAC/B,cAAoC,KACrC,OAAO,CAAC,MAAM,CAyBhB,CAAC;AAKF,eAAO,MAAM,0BAA0B,GACnC,cAAoC,KACrC,OAAO,CAAC,MAAM,CAWhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/presentation/read.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,oBAAoB,EAIvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,eAAO,MAAM,mBAAmB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAEzF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAI3F,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC3C,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,kBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,KACF,OAAO,CAAC,kBAAkB,EAAE,CAsC9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACvC,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,gBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,KACF,OAAO,CAAC,kBAAkB,EAAE,CA8C9B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC3C,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,kBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,KACF,OAAO,CAAC,kBAAkB,EAAE,CAuC9B,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/presentation/read.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,oBAAoB,EAIvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,eAAO,MAAM,mBAAmB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAEzF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAI3F,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC3C,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,kBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,KACF,OAAO,CAAC,kBAAkB,EAAE,CA+C9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACvC,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,gBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,KACF,OAAO,CAAC,kBAAkB,EAAE,CAuD9B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC3C,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,kBAGG;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,KACF,OAAO,CAAC,kBAAkB,EAAE,CA+C9B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { PresentationInstance } from '../../.././models/index';
2
2
  import { ProfileType } from '../../../types/profile';
3
- export declare const createSentPresentationRelationship: (from: ProfileType, to: ProfileType, presentation: PresentationInstance) => Promise<void>;
4
- export declare const createReceivedPresentationRelationship: (to: ProfileType, from: ProfileType, presentation: PresentationInstance) => Promise<void>;
3
+ export declare const createSentPresentationRelationship: (from: ProfileType, to: ProfileType, presentation: PresentationInstance, metadata?: Record<string, unknown>) => Promise<void>;
4
+ export declare const createReceivedPresentationRelationship: (to: ProfileType, from: ProfileType, presentation: PresentationInstance, metadata?: Record<string, unknown>) => Promise<void>;
5
5
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/presentation/relationships/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAW,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,kCAAkC,GAC3C,MAAM,WAAW,EACjB,IAAI,WAAW,EACf,cAAc,oBAAoB,KACnC,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,sCAAsC,GAC/C,IAAI,WAAW,EACf,MAAM,WAAW,EACjB,cAAc,oBAAoB,KACnC,OAAO,CAAC,IAAI,CAMd,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/presentation/relationships/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,oBAAoB,EAAW,MAAM,SAAS,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,kCAAkC,GAC3C,MAAM,WAAW,EACjB,IAAI,WAAW,EACf,cAAc,oBAAoB,EAClC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,IAAI,CAyBd,CAAC;AAEF,eAAO,MAAM,sCAAsC,GAC/C,IAAI,WAAW,EACf,MAAM,WAAW,EACjB,cAAc,oBAAoB,EAClC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,IAAI,CAyBd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/presentation/relationships/read.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,oBAAoB,EAAW,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,4BAA4B,GACrC,IAAI,MAAM,EACV,IAAI,WAAW,KAChB,OAAO,CACJ;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACjF,MAAM,EAAE,oBAAoB,CAAC;CAChC,GACC,SAAS,CAYd,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,cAAc,oBAAoB,KACnC,OAAO,CAAC,WAAW,GAAG,SAAS,CAajC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,gBAAgB,MAAM,EACtB,SAAS,WAAW,KACrB,OAAO,CAAC,OAAO,CAUjB,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../src/accesslayer/presentation/relationships/read.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,oBAAoB,EAAW,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,eAAO,MAAM,4BAA4B,GACrC,IAAI,MAAM,EACV,IAAI,WAAW,KAChB,OAAO,CACJ;IACI,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACjF,MAAM,EAAE,oBAAoB,CAAC;CAChC,GACD,SAAS,CAgBd,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,cAAc,oBAAoB,KACnC,OAAO,CAAC,WAAW,GAAG,SAAS,CAajC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GACzC,gBAAgB,MAAM,EACtB,SAAS,WAAW,KACrB,OAAO,CAAC,OAAO,CAUjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AbandonReservationInput, AbandonReservationResult } from './types';
2
+ export declare const abandonReservation: (input: AbandonReservationInput) => Promise<AbandonReservationResult>;
3
+ //# sourceMappingURL=abandon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abandon.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/share-link/abandon.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAcjF,eAAO,MAAM,kBAAkB,GAC3B,OAAO,uBAAuB,KAC/B,OAAO,CAAC,wBAAwB,CAuElC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ClaimCleanupJobsInput, ClaimCleanupJobsResult, CompleteCleanupJobInput, CompleteCleanupJobResult, ShareContentCleanupJobRecord } from './types';
2
+ export declare const claimCleanupJobs: (input: ClaimCleanupJobsInput) => Promise<ClaimCleanupJobsResult>;
3
+ export declare const completeCleanupJob: (input: CompleteCleanupJobInput) => Promise<CompleteCleanupJobResult>;
4
+ export declare const getCleanupJob: (objectRef: string) => Promise<ShareContentCleanupJobRecord | null>;
5
+ export declare const listCleanupJobsForShare: (shareId: string) => Promise<ShareContentCleanupJobRecord[]>;
6
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/share-link/cleanup.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACR,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AA2DjB,eAAO,MAAM,gBAAgB,GACzB,OAAO,qBAAqB,KAC7B,OAAO,CAAC,sBAAsB,CAkEhC,CAAC;AAOF,eAAO,MAAM,kBAAkB,GAC3B,OAAO,uBAAuB,KAC/B,OAAO,CAAC,wBAAwB,CAgFlC,CAAC;AAGF,eAAO,MAAM,aAAa,GACtB,WAAW,MAAM,KAClB,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAQ7C,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAChC,SAAS,MAAM,KAChB,OAAO,CAAC,4BAA4B,EAAE,CAaxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type ShareLinkRepositoryErrorCode = 'NOT_FOUND' | 'CONFLICT' | 'OPERATION_IN_FLIGHT' | 'LEASE_EXPIRED' | 'STALE_GENERATION' | 'PRECONDITION_FAILED' | 'INVALID_INPUT';
2
+ export declare class ShareLinkRepositoryError extends Error {
3
+ readonly code: ShareLinkRepositoryErrorCode;
4
+ constructor(code: ShareLinkRepositoryErrorCode, message: string);
5
+ }
6
+ export declare const isShareLinkRepositoryError: (error: unknown) => error is ShareLinkRepositoryError;
7
+ export declare function failShareLink(code: ShareLinkRepositoryErrorCode, message: string): never;
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/share-link/errors.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,4BAA4B,GAClC,WAAW,GACX,UAAU,GACV,qBAAqB,GACrB,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,eAAe,CAAC;AAEtB,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;gBAEhC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM;CAKlE;AAED,eAAO,MAAM,0BAA0B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,wBACxB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAExF"}
@@ -0,0 +1,3 @@
1
+ import type { FinalizeReservationInput, FinalizeReservationResult } from './types';
2
+ export declare const finalizeReservation: (input: FinalizeReservationInput) => Promise<FinalizeReservationResult>;
3
+ //# sourceMappingURL=finalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../../src/accesslayer/share-link/finalize.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAqBnF,eAAO,MAAM,mBAAmB,GAC5B,OAAO,wBAAwB,KAChC,OAAO,CAAC,yBAAyB,CA6NnC,CAAC"}