@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/coordinator.ts"],"names":[],"mappings":"AA8BA,OAAO,EAEH,KAAK,4BAA4B,EAGjC,KAAK,oBAAoB,EAEzB,KAAK,gCAAgC,EAGxC,MAAM,SAAS,CAAC;AAgHjB,eAAO,MAAM,0BAA0B,GACnC,cAAc,gCAAgC,KAC/C,oBA6iBF,CAAC;AAEF,YAAY,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export { createShareLinkCoordinator } from './coordinator';
3
+ export { runShareContentCleanupOnce } from './cleanup-runner';
4
+ export { recoverShareLinkOperation, runShareLinkRecoveryOnce } from './recovery-runner';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type RecoveryRunnerDependencies, type ScopedShareRecoveryResult, type ShareRecoveryRunSummary } from './types';
2
+ export declare const runShareLinkRecoveryOnce: (dependencies: RecoveryRunnerDependencies) => Promise<ShareRecoveryRunSummary>;
3
+ export declare const recoverShareLinkOperation: (dependencies: RecoveryRunnerDependencies, key: {
4
+ namespace: string;
5
+ ownerProfileId: string;
6
+ shareId: string;
7
+ operationId: string;
8
+ }) => Promise<ScopedShareRecoveryResult>;
9
+ //# sourceMappingURL=recovery-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-runner.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/recovery-runner.ts"],"names":[],"mappings":"AASA,OAAO,EAEH,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAE9B,KAAK,uBAAuB,EAC/B,MAAM,SAAS,CAAC;AAwQjB,eAAO,MAAM,wBAAwB,GACjC,cAAc,0BAA0B,KACzC,OAAO,CAAC,uBAAuB,CAsGjC,CAAC;AAUF,eAAO,MAAM,yBAAyB,GAClC,cAAc,0BAA0B,EACxC,KAAK;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,KACzF,OAAO,CAAC,yBAAyB,CA+BnC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CleanupRunnerDependencies, RecoveryRunnerDependencies, ShareLinkCoordinator, ShareLinkCoordinatorDependencies, ShareLinkLifecycleRepository, ShareLinkRecoveryRepository } from './types';
2
+ export declare const createRuntimeShareLinkCoordinator: (options: Omit<ShareLinkCoordinatorDependencies, "repository"> & {
3
+ repository?: ShareLinkLifecycleRepository;
4
+ }) => ShareLinkCoordinator;
5
+ export declare const createRuntimeCleanupRunnerDependencies: (options: Omit<CleanupRunnerDependencies, "repository"> & {
6
+ repository?: CleanupRunnerDependencies["repository"];
7
+ }) => CleanupRunnerDependencies;
8
+ export declare const createRuntimeRecoveryRunnerDependencies: (options: Omit<RecoveryRunnerDependencies, "repository"> & {
9
+ repository?: ShareLinkRecoveryRepository;
10
+ }) => RecoveryRunnerDependencies;
11
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/runtime.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC9B,MAAM,SAAS,CAAC;AAoCjB,eAAO,MAAM,iCAAiC,GAC1C,SAAS,IAAI,CAAC,gCAAgC,EAAE,YAAY,CAAC,GAAG;IAC5D,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC7C,KACF,oBAIG,CAAC;AAEP,eAAO,MAAM,sCAAsC,GAC/C,SAAS,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,GAAG;IACrD,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;CACxD,KACF,yBAGD,CAAC;AAEH,eAAO,MAAM,uCAAuC,GAChD,SAAS,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,GAAG;IACtD,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC5C,KACF,0BAGD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ShareLinkReservationRecord } from '../../accesslayer/share-link';
2
+ import type { ShareContentStatValue } from '../share-content-client/types';
3
+ export declare const verifyShareContentActiveStat: (stat: ShareContentStatValue, reservation: ShareLinkReservationRecord) => boolean;
4
+ //# sourceMappingURL=stat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/stat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAU3E,eAAO,MAAM,4BAA4B,GACrC,MAAM,qBAAqB,EAC3B,aAAa,0BAA0B,KACxC,OAeF,CAAC"}
@@ -0,0 +1,160 @@
1
+ import type { AbandonRecoveredReservationInput, AbandonRecoveredReservationResult, AbandonReservationInput, AbandonReservationResult, ClaimCleanupJobsInput, ClaimCleanupJobsResult, ClaimRecoverableReservationInput, ClaimRecoverableReservationResult, CompleteCleanupJobInput, CompleteCleanupJobResult, CurrentShareContentResult, DiscoverRecoverableReservationsInput, DiscoverRecoverableReservationsResult, FinalizeReservationInput, FinalizeReservationResult, GetCurrentShareContentInput, GetShareLinkInput, RecoveryClaimRejection, ReserveCreateInput, ReserveReplacementInput, ReserveShareLinkResult, RevokeShareLinkInput, RevokeShareLinkResult, ShareLinkRecoveryKey, ShareLinkRecoveryTarget, ShareLinkReservationRecord } from '../../accesslayer/share-link';
2
+ import type { ShareContentClient, ShareContentClientErrorCode, ShareContentClientResult, ShareContentContentProjection, ShareContentPutRequest, ShareContentRecoveryProjection } from '../share-content-client/types';
3
+ import type { ShareEnvelope } from '@learncard/types';
4
+ import type { ShareLinkRecord } from '../../models/ShareLink';
5
+ import type { ShareLinkPolicyResolver } from '../share-link-policy/types';
6
+ export type MaintenanceBudget = {
7
+ remainingMs: () => number;
8
+ exhausted: () => boolean;
9
+ reserveMs?: () => number;
10
+ };
11
+ export type ShareLinkLifecycleRepository = {
12
+ reserveCreate: (input: ReserveCreateInput) => Promise<ReserveShareLinkResult>;
13
+ reserveReplacement: (input: ReserveReplacementInput) => Promise<ReserveShareLinkResult>;
14
+ finalizeReservation: (input: FinalizeReservationInput) => Promise<FinalizeReservationResult>;
15
+ abandonReservation: (input: AbandonReservationInput) => Promise<AbandonReservationResult>;
16
+ revokeShareLink: (input: RevokeShareLinkInput) => Promise<RevokeShareLinkResult>;
17
+ getShareLink: (input: GetShareLinkInput) => Promise<ShareLinkRecord | null>;
18
+ getCurrentShareContent: (input: GetCurrentShareContentInput) => Promise<CurrentShareContentResult>;
19
+ claimCleanupJobs: (input: ClaimCleanupJobsInput) => Promise<ClaimCleanupJobsResult>;
20
+ completeCleanupJob: (input: CompleteCleanupJobInput) => Promise<CompleteCleanupJobResult>;
21
+ };
22
+ export type ShareLinkCoordinatorDependencies = {
23
+ repository: ShareLinkLifecycleRepository;
24
+ client: Pick<ShareContentClient, 'put' | 'get' | 'stat' | 'delete' | 'readRecovery'>;
25
+ leaseOwner: string;
26
+ leaseMs?: number;
27
+ now?: () => Date;
28
+ policyResolver?: ShareLinkPolicyResolver;
29
+ };
30
+ export type ShareOwnerContext = {
31
+ namespace: string;
32
+ ownerProfileId: string;
33
+ };
34
+ export type ShareContentPendingReason = 'upload_unavailable' | 'stat_unavailable' | 'stat_missing' | 'stat_mismatch' | 'finalize_unavailable';
35
+ export type ShareLinkCommitResult = {
36
+ status: 'committed';
37
+ share: ShareLinkRecord;
38
+ } | {
39
+ status: 'replayed';
40
+ share: ShareLinkRecord;
41
+ recorded: ShareLinkRecord;
42
+ } | {
43
+ status: 'pending';
44
+ reservation: ShareLinkReservationRecord;
45
+ reason: ShareContentPendingReason;
46
+ };
47
+ export type ShareLinkRevokeResult = {
48
+ status: 'revoked' | 'already_stopped';
49
+ share: ShareLinkRecord;
50
+ cleanupQueuedFor: string[];
51
+ };
52
+ export type ShareLinkResumeResult = {
53
+ status: 'committed';
54
+ share: ShareLinkRecord;
55
+ } | {
56
+ status: 'replayed';
57
+ share: ShareLinkRecord;
58
+ } | {
59
+ status: 'pending';
60
+ reservation: ShareLinkReservationRecord;
61
+ reason: ShareContentPendingReason;
62
+ } | {
63
+ status: 'abandoned';
64
+ cleanupQueuedFor: string | null;
65
+ };
66
+ export type ShareContentPayload = {
67
+ envelope: ShareEnvelope;
68
+ ownerEncryptedRecovery: Record<string, unknown>;
69
+ };
70
+ export type PendingShareContentOperation = {
71
+ reservation: ShareLinkReservationRecord;
72
+ };
73
+ export type ShareLinkCoordinatorErrorCode = 'INVALID_INPUT' | 'NOT_FOUND' | 'CONFLICT' | 'UNAUTHORIZED' | 'SIGNING_FAILED' | 'PAYLOAD_TOO_LARGE' | 'UNAVAILABLE' | 'LEASE_EXPIRED' | 'STALE_GENERATION' | 'OPERATION_IN_FLIGHT' | 'PRECONDITION_FAILED' | 'UNEXPECTED';
74
+ export declare class ShareLinkCoordinatorError extends Error {
75
+ readonly code: ShareLinkCoordinatorErrorCode;
76
+ constructor(code: ShareLinkCoordinatorErrorCode, message: string);
77
+ }
78
+ export type ShareCleanupCategory = ShareContentClientErrorCode | 'claim_lost' | 'claim_error' | 'client_error' | 'budget_exhausted';
79
+ export type CleanupRunSummary = {
80
+ claimed: number;
81
+ completed: number;
82
+ retried: number;
83
+ claimLost: number;
84
+ skipped: number;
85
+ categories: Partial<Record<ShareCleanupCategory, number>>;
86
+ };
87
+ export type CleanupRunnerDependencies = {
88
+ repository: Pick<ShareLinkLifecycleRepository, 'claimCleanupJobs' | 'completeCleanupJob'>;
89
+ client: Pick<ShareContentClient, 'delete'>;
90
+ claimant: string;
91
+ namespace: string;
92
+ limit?: number;
93
+ claimMs?: number;
94
+ claimBatchSize?: number;
95
+ budget?: MaintenanceBudget;
96
+ transactionTimeoutMs?: number;
97
+ requestTimeoutMs?: number;
98
+ noInlineRetry?: boolean;
99
+ now?: () => Date;
100
+ };
101
+ export type ShareLinkRecoveryRepository = {
102
+ discoverRecoverableReservations: (input: DiscoverRecoverableReservationsInput) => Promise<DiscoverRecoverableReservationsResult>;
103
+ readShareLinkRecoveryTarget: (input: ShareLinkRecoveryKey) => Promise<ShareLinkRecoveryTarget>;
104
+ claimRecoverableReservation: (input: ClaimRecoverableReservationInput) => Promise<ClaimRecoverableReservationResult>;
105
+ abandonRecoveredReservation: (input: AbandonRecoveredReservationInput) => Promise<AbandonRecoveredReservationResult>;
106
+ finalizeReservation: (input: FinalizeReservationInput) => Promise<FinalizeReservationResult>;
107
+ };
108
+ export type ShareRecoveryCategory = 'finalized' | 'abandoned_missing' | 'abandoned_tombstone' | 'deferred_stat_mismatch' | 'deferred_stat_transient' | 'deferred_stat_error' | 'deferred_finalize' | 'claim_lost' | 'malformed_binding' | 'budget_exhausted';
109
+ export type ShareRecoveryRunSummary = {
110
+ discovered: number;
111
+ claimed: number;
112
+ finalized: number;
113
+ abandoned: number;
114
+ deferred: number;
115
+ claimLost: number;
116
+ anomalies: number;
117
+ categories: Partial<Record<ShareRecoveryCategory, number>>;
118
+ };
119
+ export type RecoveryRunnerDependencies = {
120
+ repository: ShareLinkRecoveryRepository;
121
+ client: Pick<ShareContentClient, 'stat'>;
122
+ claimant: string;
123
+ namespace: string;
124
+ limit?: number;
125
+ leaseMs?: number;
126
+ budget?: MaintenanceBudget;
127
+ transactionTimeoutMs?: number;
128
+ requestTimeoutMs?: number;
129
+ noInlineRetry?: boolean;
130
+ now?: () => Date;
131
+ };
132
+ export type ScopedShareRecoveryResult = {
133
+ status: 'committed';
134
+ share: ShareLinkRecord;
135
+ } | {
136
+ status: 'abandoned';
137
+ } | {
138
+ status: 'deferred';
139
+ category: ShareRecoveryCategory;
140
+ } | {
141
+ status: 'absent';
142
+ } | {
143
+ status: 'not_claimable';
144
+ reason: RecoveryClaimRejection;
145
+ };
146
+ export type ShareLinkCoordinator = {
147
+ createShareLink: (request: unknown, context: ShareOwnerContext) => Promise<ShareLinkCommitResult>;
148
+ updateShareLink: (request: unknown, context: ShareOwnerContext) => Promise<ShareLinkCommitResult>;
149
+ revokeShareLink: (request: unknown, context: ShareOwnerContext) => Promise<ShareLinkRevokeResult>;
150
+ resumePendingOperation: (pending: PendingShareContentOperation, content?: ShareContentPayload) => Promise<ShareLinkResumeResult>;
151
+ abandonPendingOperation: (pending: PendingShareContentOperation) => Promise<AbandonReservationResult>;
152
+ getShareLink: (shareId: string, context: ShareOwnerContext) => Promise<ShareLinkRecord | null>;
153
+ getActiveShareContent: (shareId: string, context: ShareOwnerContext) => Promise<CurrentShareContentResult>;
154
+ fetchShareContent: (shareId: string, context: ShareOwnerContext, options?: {
155
+ allowExpired?: boolean;
156
+ }) => Promise<ShareContentClientResult<ShareContentContentProjection>>;
157
+ readOwnerRecovery: (shareId: string, context: ShareOwnerContext) => Promise<ShareContentClientResult<ShareContentRecoveryProjection>>;
158
+ };
159
+ export type { ShareContentPutRequest };
160
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-coordinator/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './request-hash.helpers';
3
+ export * from './lease.helpers';
4
+ export * from './recovery.helpers';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const computeLeaseExpiry: (now: Date, leaseMs?: number) => string;
2
+ export declare const isLeaseActive: (leaseExpiresAt: string | null, now: Date) => boolean;
3
+ export declare const computeCleanupBackoffMs: (attempts: number) => number;
4
+ //# sourceMappingURL=lease.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease.helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-lifecycle/lease.helpers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,GAC3B,KAAK,IAAI,EACT,UAAS,MAAoC,KAC9C,MAAkF,CAAC;AAMtF,eAAO,MAAM,aAAa,GAAI,gBAAgB,MAAM,GAAG,IAAI,EAAE,KAAK,IAAI,KAAG,OAMxE,CAAC;AAOF,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,MAK1D,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const SHARE_LINK_RECOVERY_DEFAULT_BATCH = 25;
2
+ export declare const SHARE_LINK_RECOVERY_MAX_BATCH = 100;
3
+ export declare const clampShareLinkRecoveryBatch: (limit: number | undefined) => number;
4
+ export type ShareLinkRecoveryKeyShape = {
5
+ namespace: string;
6
+ ownerProfileId: string;
7
+ shareId: string;
8
+ operationId: string;
9
+ };
10
+ export type ShareLinkRecoveryBindingCheck = 'ok' | 'binding_mismatch' | 'malformed_binding';
11
+ export declare const classifyReservationBinding: (props: Record<string, unknown>, key: ShareLinkRecoveryKeyShape) => ShareLinkRecoveryBindingCheck;
12
+ export type ShareLinkRecoveryOperationExpectation = {
13
+ namespace: string;
14
+ ownerProfileId: string;
15
+ shareId: string;
16
+ operationId: string;
17
+ opKind?: string;
18
+ clientRequestId?: string;
19
+ };
20
+ export declare const classifyOperationBinding: (props: Record<string, unknown>, expected: ShareLinkRecoveryOperationExpectation) => ShareLinkRecoveryBindingCheck;
21
+ //# sourceMappingURL=recovery.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-lifecycle/recovery.helpers.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAGjD,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MAMvE,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,6BAA6B,GAAG,IAAI,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AA+B5F,eAAO,MAAM,0BAA0B,GACnC,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,yBAAyB,KAC/B,6BAqDF,CAAC;AAGF,MAAM,MAAM,qCAAqC,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAOF,eAAO,MAAM,wBAAwB,GACjC,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,qCAAqC,KAChD,6BAmCF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ShareLinkOperationKind } from './types';
2
+ export declare const canonicalizeJson: (value: unknown, ancestors?: Set<object>, depth?: number) => string;
3
+ export declare const getShareLinkRequestHashSecret: () => string;
4
+ export declare const computeShareLinkRequestHash: (opKind: ShareLinkOperationKind, request: Record<string, unknown>) => string;
5
+ export declare const computeShareLinkPayloadHash: (payload: {
6
+ envelope: unknown;
7
+ ownerEncryptedRecovery: unknown;
8
+ }) => string;
9
+ //# sourceMappingURL=request-hash.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-hash.helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-lifecycle/request-hash.helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAWtD,eAAO,MAAM,gBAAgB,GACzB,OAAO,OAAO,EACd,uBAA6B,EAC7B,cAAS,KACV,MAmDF,CAAC;AASF,eAAO,MAAM,6BAA6B,QAAO,MAMhD,CAAC;AAcF,eAAO,MAAM,2BAA2B,GACpC,QAAQ,sBAAsB,EAC9B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACjC,MAWF,CAAC;AAKF,eAAO,MAAM,2BAA2B,GAAI,SAAS;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,OAAO,CAAC;CACnC,KAAG,MAQkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type ShareLinkOperationKind = 'create' | 'update' | 'revoke';
2
+ export declare const SHARE_LINK_OPERATION_KINDS: readonly ShareLinkOperationKind[];
3
+ export declare const SHARE_LINK_DEFAULT_LEASE_MS: number;
4
+ export declare const SHARE_LINK_OPERATION_RETENTION_MS: number;
5
+ export declare const SHARE_LINK_CLEANUP_BASE_BACKOFF_MS: number;
6
+ export declare const SHARE_LINK_CLEANUP_MAX_BACKOFF_MS: number;
7
+ export declare const SHARE_LINK_CLEANUP_DEFAULT_BATCH = 25;
8
+ export declare const SHARE_LINK_CLEANUP_MAX_BATCH = 100;
9
+ export declare const SHARE_LINK_CLEANUP_DEFAULT_CLAIM_MS: number;
10
+ export declare const SHARE_LINK_CLEANUP_MIN_CLAIM_MS = 1000;
11
+ export declare const SHARE_LINK_CLEANUP_MAX_CLAIM_MS: number;
12
+ export type ShareContentCleanupReason = 'superseded' | 'abandoned' | 'stopped';
13
+ export type ShareContentCleanupStatus = 'queued' | 'claimed' | 'completed';
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-lifecycle/types.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpE,eAAO,MAAM,0BAA0B,EAAE,SAAS,sBAAsB,EAIvE,CAAC;AAOF,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AAUzD,eAAO,MAAM,iCAAiC,QAA2B,CAAC;AAG1E,eAAO,MAAM,kCAAkC,QAAY,CAAC;AAC5D,eAAO,MAAM,iCAAiC,QAAsB,CAAC;AAGrE,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAGhD,eAAO,MAAM,mCAAmC,QAAgB,CAAC;AAOjE,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,+BAA+B,QAAiB,CAAC;AAG9D,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAG/E,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { MaintenanceBudget } from '../share-link-coordinator';
2
+ export type MaintenancePassBudget = MaintenanceBudget & {
3
+ elapsedMs: () => number;
4
+ configuredMs: number;
5
+ };
6
+ export declare const resolveMaintenanceBudgetMs: (configuredBudgetMs: number, remainingTimeMs: number | undefined) => number;
7
+ export declare const createMaintenancePassBudget: (input: {
8
+ budgetMs: number;
9
+ finalizeReserveMs: number;
10
+ monotonicNow?: () => number;
11
+ }) => MaintenancePassBudget;
12
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAWnE,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACpD,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAcF,eAAO,MAAM,0BAA0B,GACnC,oBAAoB,MAAM,EAC1B,iBAAiB,MAAM,GAAG,SAAS,KACpC,MAKF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,OAAO;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B,KAAG,qBAoBH,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { ShareLinkMaintenanceConfigResolution } from './types';
2
+ export declare const SHARE_LINK_MAINTENANCE_ENV: {
3
+ readonly NAMESPACE: "SHARE_LINK_MAINTENANCE_NAMESPACE";
4
+ readonly ORIGIN: "SHARE_LINK_MAINTENANCE_ORIGIN";
5
+ readonly AUDIENCE: "SHARE_LINK_MAINTENANCE_AUDIENCE";
6
+ readonly ALLOW_INSECURE_LOOPBACK: "SHARE_LINK_MAINTENANCE_ALLOW_INSECURE_LOOPBACK";
7
+ readonly CLAIMANT: "SHARE_LINK_MAINTENANCE_CLAIMANT";
8
+ readonly RECOVERY_LIMIT: "SHARE_LINK_MAINTENANCE_RECOVERY_LIMIT";
9
+ readonly CLEANUP_LIMIT: "SHARE_LINK_MAINTENANCE_CLEANUP_LIMIT";
10
+ readonly RECEIPT_PRUNE_LIMIT: "SHARE_LINK_MAINTENANCE_RECEIPT_PRUNE_LIMIT";
11
+ readonly LEASE_MS: "SHARE_LINK_MAINTENANCE_LEASE_MS";
12
+ readonly CLAIM_MS: "SHARE_LINK_MAINTENANCE_CLAIM_MS";
13
+ readonly BUDGET_MS: "SHARE_LINK_MAINTENANCE_BUDGET_MS";
14
+ readonly INTERVAL_MS: "SHARE_LINK_MAINTENANCE_INTERVAL_MS";
15
+ readonly REQUEST_TIMEOUT_MS: "SHARE_LINK_MAINTENANCE_REQUEST_TIMEOUT_MS";
16
+ readonly FINALIZE_RESERVE_MS: "SHARE_LINK_MAINTENANCE_FINALIZE_RESERVE_MS";
17
+ readonly GRAPH_TIMEOUT_MS: "SHARE_LINK_MAINTENANCE_GRAPH_TIMEOUT_MS";
18
+ };
19
+ export declare const SHARE_LINK_MAINTENANCE_DEFAULTS: Readonly<{
20
+ claimant: "brain-share-link-maintenance";
21
+ recoveryLimit: 25;
22
+ cleanupLimit: 25;
23
+ receiptPruneLimit: 200;
24
+ leaseMs: number;
25
+ claimMs: number;
26
+ budgetMs: 60000;
27
+ intervalMs: 300000;
28
+ requestTimeoutMs: 10000;
29
+ finalizeReserveMs: 5000;
30
+ graphTimeoutMs: 15000;
31
+ }>;
32
+ export declare const SHARE_LINK_MAINTENANCE_INVALID_CATEGORY: "share_link_maintenance_configuration_invalid";
33
+ export type ShareLinkServiceTransportConfig = {
34
+ namespace: string;
35
+ origin: string;
36
+ audience: string;
37
+ allowInsecureLoopback: boolean;
38
+ };
39
+ export type ShareLinkServiceTransportConfigResolution = {
40
+ status: 'enabled';
41
+ config: ShareLinkServiceTransportConfig;
42
+ } | {
43
+ status: 'invalid';
44
+ };
45
+ export declare const hasShareLinkServiceTransportConfig: (source: Record<string, unknown>) => boolean;
46
+ export declare const resolveShareLinkServiceTransportConfig: (raw: unknown) => ShareLinkServiceTransportConfigResolution;
47
+ export declare const resolveShareLinkMaintenanceConfig: (raw: unknown) => ShareLinkMaintenanceConfigResolution;
48
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/config.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAA8B,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAYhG,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEX,eAAO,MAAM,+BAA+B;;;;;;;;;;;;EAY1C,CAAC;AAEH,eAAO,MAAM,uCAAuC,EAChD,8CAAuD,CAAC;AAQ5D,MAAM,MAAM,+BAA+B,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,yCAAyC,GACjD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,+BAA+B,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAG3F,eAAO,MAAM,kCAAkC,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAKK,CAAC;AAK3F,eAAO,MAAM,sCAAsC,GAC/C,KAAK,OAAO,KACb,yCAmCF,CAAC;AAsDF,eAAO,MAAM,iCAAiC,GAC1C,KAAK,OAAO,KACb,oCAmIF,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './types';
2
+ export { SHARE_LINK_MAINTENANCE_DEFAULTS, SHARE_LINK_MAINTENANCE_ENV, SHARE_LINK_MAINTENANCE_INVALID_CATEGORY, resolveShareLinkMaintenanceConfig, } from './config';
3
+ export { createMaintenancePassBudget, type MaintenancePassBudget } from './budget';
4
+ export { createConsoleMaintenanceLogger, safeLogMaintenance, toMaintenanceLogEvent, } from './telemetry';
5
+ export { runShareLinkMaintenancePass, type ShareLinkMaintenanceRunnerDependencies } from './runner';
6
+ export { createShareLinkMaintenanceScheduler, type ShareLinkMaintenanceScheduler, type ShareLinkMaintenanceSchedulerDependencies, } from './scheduler';
7
+ export { createShareLinkMaintenanceRuntime, type CreateShareLinkMaintenanceRuntimeOptions, type ShareLinkMaintenanceRuntime, } from './runtime';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EACH,+BAA+B,EAC/B,0BAA0B,EAC1B,uCAAuC,EACvC,iCAAiC,GACpC,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnF,OAAO,EACH,8BAA8B,EAC9B,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,KAAK,sCAAsC,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EACH,mCAAmC,EACnC,KAAK,6BAA6B,EAClC,KAAK,yCAAyC,GACjD,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,iCAAiC,EACjC,KAAK,wCAAwC,EAC7C,KAAK,2BAA2B,GACnC,MAAM,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { CleanupRunnerDependencies, RecoveryRunnerDependencies } from '../share-link-coordinator';
2
+ import type { ShareContentClient } from '../share-content-client/types';
3
+ import type { PruneShareViewReceiptsInput } from '../../accesslayer/share-link/types';
4
+ import { type MaintenancePassBudget } from './budget';
5
+ import type { ShareLinkMaintenanceConfig, ShareLinkMaintenanceLogger, ShareLinkMaintenanceRunSummary } from './types';
6
+ export type ShareLinkMaintenanceRunnerDependencies = {
7
+ config: ShareLinkMaintenanceConfig;
8
+ recoveryRepository: RecoveryRunnerDependencies['repository'];
9
+ cleanupRepository: CleanupRunnerDependencies['repository'];
10
+ pruneReceipts: (input: PruneShareViewReceiptsInput) => Promise<number>;
11
+ client: Pick<ShareContentClient, 'stat' | 'delete'>;
12
+ logger: ShareLinkMaintenanceLogger;
13
+ monotonicNow?: () => number;
14
+ now?: () => Date;
15
+ remainingTimeMs?: () => number;
16
+ budget?: MaintenancePassBudget;
17
+ };
18
+ export declare const runShareLinkMaintenancePass: (dependencies: ShareLinkMaintenanceRunnerDependencies) => Promise<ShareLinkMaintenanceRunSummary>;
19
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,yBAAyB,EACzB,0BAA0B,EAC7B,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAGH,KAAK,qBAAqB,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACR,0BAA0B,EAE1B,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,sCAAsC,GAAG;IACjD,MAAM,EAAE,0BAA0B,CAAC;IACnC,kBAAkB,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC7D,iBAAiB,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAK3D,aAAa,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACpD,MAAM,EAAE,0BAA0B,CAAC;IAEnC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAE5B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAKjB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IAM/B,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAsCF,eAAO,MAAM,2BAA2B,GACpC,cAAc,sCAAsC,KACrD,OAAO,CAAC,8BAA8B,CAsIxC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { CleanupRunnerDependencies, RecoveryRunnerDependencies } from '../share-link-coordinator';
2
+ import type { PruneShareViewReceiptsInput } from '../../accesslayer/share-link/types';
3
+ import type { ShareContentClient } from '../share-content-client/types';
4
+ import type { ShareLinkMaintenanceConfigResolution, ShareLinkMaintenanceLogger, ShareLinkMaintenanceRunSummary } from './types';
5
+ type MaintenanceClient = Pick<ShareContentClient, 'stat' | 'delete'>;
6
+ type ResolvedRunnerDependencies = {
7
+ recoveryRepository: RecoveryRunnerDependencies['repository'];
8
+ cleanupRepository: CleanupRunnerDependencies['repository'];
9
+ pruneReceipts: (input: PruneShareViewReceiptsInput) => Promise<number>;
10
+ client: MaintenanceClient;
11
+ };
12
+ export type ShareLinkMaintenanceRuntime = {
13
+ readonly resolution: ShareLinkMaintenanceConfigResolution;
14
+ runOnce: (options?: {
15
+ remainingTimeMs?: number | (() => number);
16
+ }) => Promise<ShareLinkMaintenanceRunSummary>;
17
+ };
18
+ export type CreateShareLinkMaintenanceRuntimeOptions = {
19
+ rawEnvironment?: Record<string, unknown>;
20
+ logger?: ShareLinkMaintenanceLogger;
21
+ now?: () => Date;
22
+ monotonicNow?: () => number;
23
+ createClient?: (config: Extract<ShareLinkMaintenanceConfigResolution, {
24
+ status: 'enabled';
25
+ }>['config']) => Promise<MaintenanceClient>;
26
+ createRepositories?: (client: MaintenanceClient, config: Extract<ShareLinkMaintenanceConfigResolution, {
27
+ status: 'enabled';
28
+ }>['config']) => Promise<{
29
+ recoveryRepository: RecoveryRunnerDependencies['repository'];
30
+ cleanupRepository: CleanupRunnerDependencies['repository'];
31
+ pruneReceipts: ResolvedRunnerDependencies['pruneReceipts'];
32
+ }>;
33
+ };
34
+ export declare const createShareLinkMaintenanceRuntime: (options?: CreateShareLinkMaintenanceRuntimeOptions) => ShareLinkMaintenanceRuntime;
35
+ export {};
36
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,yBAAyB,EACzB,0BAA0B,EAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKxE,OAAO,KAAK,EACR,oCAAoC,EACpC,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,SAAS,CAAC;AAEjB,KAAK,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;AAErE,KAAK,0BAA0B,GAAG;IAC9B,kBAAkB,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC7D,iBAAiB,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAOF,MAAM,MAAM,2BAA2B,GAAG;IAEtC,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;IAC1D,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;QAMhB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;KAC7C,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAE5B,YAAY,CAAC,EAAE,CACX,MAAM,EAAE,OAAO,CAAC,oCAAoC,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC,QAAQ,CAAC,KACrF,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEhC,kBAAkB,CAAC,EAAE,CACjB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,OAAO,CAAC,oCAAoC,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC,QAAQ,CAAC,KACrF,OAAO,CAAC;QACT,kBAAkB,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC7D,iBAAiB,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC;KAC9D,CAAC,CAAC;CACN,CAAC;AAsEF,eAAO,MAAM,iCAAiC,GAC1C,UAAS,wCAA6C,KACvD,2BA0HF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ShareLinkMaintenanceLogger } from './types';
2
+ export type ShareLinkMaintenanceSchedulerDependencies = {
3
+ runOnce: (options?: {
4
+ remainingTimeMs?: number;
5
+ }) => Promise<unknown>;
6
+ intervalMs: number;
7
+ logger: ShareLinkMaintenanceLogger;
8
+ setTimeoutFn?: (handler: () => void, timeoutMs: number) => unknown;
9
+ clearTimeoutFn?: (handle: unknown) => void;
10
+ };
11
+ export type ShareLinkMaintenanceScheduler = {
12
+ start: () => void;
13
+ stop: () => Promise<void>;
14
+ trigger: () => Promise<void>;
15
+ isRunning: () => boolean;
16
+ };
17
+ export declare const createShareLinkMaintenanceScheduler: (dependencies: ShareLinkMaintenanceSchedulerDependencies) => ShareLinkMaintenanceScheduler;
18
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAkC,MAAM,SAAS,CAAC;AAE1F,MAAM,MAAM,yCAAyC,GAAG;IACpD,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,0BAA0B,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACnE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAExC,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC;AA8BF,eAAO,MAAM,mCAAmC,GAC5C,cAAc,yCAAyC,KACxD,6BA0EF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ShareLinkMaintenanceLogEvent, ShareLinkMaintenanceLogger, ShareLinkMaintenanceRunSummary } from './types';
2
+ export declare const toMaintenanceLogEvent: (summary: ShareLinkMaintenanceRunSummary) => ShareLinkMaintenanceLogEvent;
3
+ export declare const safeLogMaintenance: (logger: ShareLinkMaintenanceLogger, summary: ShareLinkMaintenanceRunSummary) => void;
4
+ export declare const createConsoleMaintenanceLogger: () => ShareLinkMaintenanceLogger;
5
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/telemetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,SAAS,CAAC;AAyBjB,eAAO,MAAM,qBAAqB,GAC9B,SAAS,8BAA8B,KACxC,4BAeD,CAAC;AAMH,eAAO,MAAM,kBAAkB,GAC3B,QAAQ,0BAA0B,EAClC,SAAS,8BAA8B,KACxC,IAQF,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAO,0BAGhD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { ShareRecoveryRunSummary, CleanupRunSummary } from '../share-link-coordinator';
2
+ export type ShareLinkMaintenanceConfig = {
3
+ namespace: string;
4
+ origin: string;
5
+ audience: string;
6
+ allowInsecureLoopback: boolean;
7
+ claimant: string;
8
+ recoveryLimit: number;
9
+ cleanupLimit: number;
10
+ receiptPruneLimit: number;
11
+ leaseMs: number;
12
+ claimMs: number;
13
+ budgetMs: number;
14
+ intervalMs: number;
15
+ requestTimeoutMs: number;
16
+ finalizeReserveMs: number;
17
+ graphTimeoutMs: number;
18
+ };
19
+ export type ShareLinkMaintenanceConfigResolution = {
20
+ status: 'enabled';
21
+ config: ShareLinkMaintenanceConfig;
22
+ } | {
23
+ status: 'disabled';
24
+ } | {
25
+ status: 'invalid';
26
+ category: 'share_link_maintenance_configuration_invalid';
27
+ };
28
+ export type ShareLinkMaintenanceStatus = 'disabled' | 'invalid_configuration' | 'initialization_failed' | 'completed' | 'deadline_exhausted' | 'failed';
29
+ export type ShareLinkMaintenanceFailureCategory = 'share_link_maintenance_pass_failed' | 'share_link_maintenance_recovery_failed' | 'share_link_maintenance_cleanup_failed' | 'share_link_maintenance_receipt_prune_failed' | 'share_link_maintenance_initialization_failed' | 'share_link_maintenance_configuration_invalid';
30
+ export type ShareLinkMaintenanceRunSummary = {
31
+ status: ShareLinkMaintenanceStatus;
32
+ durationMs: number;
33
+ budgetMs: number;
34
+ recovery: ShareRecoveryRunSummary | null;
35
+ cleanup: CleanupRunSummary | null;
36
+ receiptPrune: {
37
+ pruned: number;
38
+ } | null;
39
+ categories: Partial<Record<ShareLinkMaintenanceFailureCategory, number>>;
40
+ };
41
+ export type ShareLinkMaintenanceLogEvent = {
42
+ event: 'share_link_maintenance';
43
+ status: ShareLinkMaintenanceStatus;
44
+ durationMs: number;
45
+ budgetMs: number;
46
+ counts: Record<string, number>;
47
+ categories: Record<string, number>;
48
+ };
49
+ export type ShareLinkMaintenanceLogger = {
50
+ info: (event: ShareLinkMaintenanceLogEvent) => void;
51
+ error: (event: ShareLinkMaintenanceLogEvent) => void;
52
+ };
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-maintenance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAW5F,MAAM,MAAM,0BAA0B,GAAG;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAMF,MAAM,MAAM,oCAAoC,GAC1C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE,GACzD;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,8CAA8C,CAAA;CAAE,CAAC;AAGtF,MAAM,MAAM,0BAA0B,GAChC,UAAU,GACV,uBAAuB,GACvB,uBAAuB,GACvB,WAAW,GACX,oBAAoB,GACpB,QAAQ,CAAC;AAGf,MAAM,MAAM,mCAAmC,GACzC,oCAAoC,GACpC,wCAAwC,GACxC,uCAAuC,GACvC,6CAA6C,GAC7C,8CAA8C,GAC9C,8CAA8C,CAAC;AAOrD,MAAM,MAAM,8BAA8B,GAAG;IACzC,MAAM,EAAE,0BAA0B,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAElC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5E,CAAC;AAMF,MAAM,MAAM,4BAA4B,GAAG;IACvC,KAAK,EAAE,wBAAwB,CAAC;IAChC,MAAM,EAAE,0BAA0B,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACrC,IAAI,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACxD,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare const SHARE_LINK_OWNER_API_ENV: {
2
+ readonly NAMESPACE: "SHARE_LINK_OWNER_API_NAMESPACE";
3
+ };
4
+ export type ShareLinkOwnerApiConfigResolution = {
5
+ status: 'disabled';
6
+ } | {
7
+ status: 'invalid';
8
+ } | {
9
+ status: 'enabled';
10
+ namespace: string;
11
+ origin: string;
12
+ audience: string;
13
+ allowInsecureLoopback: boolean;
14
+ };
15
+ export declare const resolveShareLinkOwnerApiConfig: (raw: unknown) => ShareLinkOwnerApiConfigResolution;
16
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/helpers/share-link-owner/config.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB;;CAE3B,CAAC;AAEX,MAAM,MAAM,iCAAiC,GACvC;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IACI,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;CAClC,CAAC;AAER,eAAO,MAAM,8BAA8B,GAAI,KAAK,OAAO,KAAG,iCAqB7D,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare const SHARE_LINK_COMPOSITION_DIAGNOSTIC: {
2
+ readonly OWNER_CONFIGURATION_INVALID: "share_link_owner_configuration_invalid";
3
+ readonly OWNER_INITIALIZATION_FAILED: "share_link_owner_initialization_failed";
4
+ readonly PUBLIC_CONFIGURATION_INVALID: "share_link_public_configuration_invalid";
5
+ readonly PUBLIC_INITIALIZATION_FAILED: "share_link_public_initialization_failed";
6
+ };
7
+ export type ShareLinkCompositionDiagnosticCategory = (typeof SHARE_LINK_COMPOSITION_DIAGNOSTIC)[keyof typeof SHARE_LINK_COMPOSITION_DIAGNOSTIC];
8
+ export type ShareLinkDiagnosticSink = (category: ShareLinkCompositionDiagnosticCategory) => void;
9
+ export declare const defaultShareLinkDiagnosticSink: ShareLinkDiagnosticSink;
10
+ export declare const createBoundedShareLinkDiagnosticReporter: (sink?: ShareLinkDiagnosticSink) => ShareLinkDiagnosticSink;
11
+ type ShareLinkConfigStatus = {
12
+ status: 'disabled';
13
+ } | {
14
+ status: 'invalid';
15
+ } | {
16
+ status: 'enabled';
17
+ };
18
+ export declare const createShareLinkDependencyResolver: <TDependencies>(options: {
19
+ readonly resolveConfig: () => ShareLinkConfigStatus;
20
+ readonly initializeDependencies: () => Promise<TDependencies>;
21
+ readonly reportDiagnostic: ShareLinkDiagnosticSink;
22
+ readonly configurationInvalidCategory: ShareLinkCompositionDiagnosticCategory;
23
+ readonly initializationFailedCategory: ShareLinkCompositionDiagnosticCategory;
24
+ }) => (() => Promise<TDependencies | null>);
25
+ export {};
26
+ //# sourceMappingURL=diagnostics.d.ts.map