@cosmicdrift/kumiko-bundled-features 0.369.0 → 0.371.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/dist/account-security/constants.d.ts +4 -0
  2. package/dist/account-security/constants.js +5 -0
  3. package/dist/account-security/feature.d.ts +14 -0
  4. package/dist/account-security/feature.js +62 -0
  5. package/dist/account-security/i18n.d.ts +6 -0
  6. package/dist/account-security/i18n.js +6 -0
  7. package/dist/account-security/index.d.ts +3 -0
  8. package/dist/account-security/index.js +3 -0
  9. package/dist/admin-shell/feature.d.ts +1 -1
  10. package/dist/admin-shell/index.d.ts +4 -4
  11. package/dist/admin-shell/overview-panels.d.ts +1 -1
  12. package/dist/admin-shell/web/index.d.ts +1 -1
  13. package/dist/agent-tools/agent-manifest.d.ts +1 -1
  14. package/dist/agent-tools/index.d.ts +8 -8
  15. package/dist/agent-tools/manifest-deny-qns.d.ts +1 -1
  16. package/dist/agent-tools/tool-catalog.d.ts +1 -1
  17. package/dist/agent-tools/tool-dispatch.d.ts +1 -1
  18. package/dist/audit/handlers/resolve-audit-tenant.d.ts +1 -1
  19. package/dist/audit/index.d.ts +3 -3
  20. package/dist/audit/web/index.d.ts +1 -1
  21. package/dist/auth-email-password/bootstrap.d.ts +1 -1
  22. package/dist/auth-email-password/feature.d.ts +7 -6
  23. package/dist/auth-email-password/feature.js +3 -1
  24. package/dist/auth-email-password/handlers/confirm-token-flow.d.ts +1 -1
  25. package/dist/auth-email-password/handlers/invite-accept-with-login.write.d.ts +1 -1
  26. package/dist/auth-email-password/handlers/invite-create.write.d.ts +2 -2
  27. package/dist/auth-email-password/handlers/invite-signup-complete.write.d.ts +1 -1
  28. package/dist/auth-email-password/handlers/login.write.d.ts +1 -1
  29. package/dist/auth-email-password/handlers/request-account-unlock.write.d.ts +1 -1
  30. package/dist/auth-email-password/handlers/request-email-verification.write.d.ts +1 -1
  31. package/dist/auth-email-password/handlers/request-password-reset.write.d.ts +1 -1
  32. package/dist/auth-email-password/handlers/signup-confirm.write.d.ts +1 -1
  33. package/dist/auth-email-password/handlers/signup-request.write.d.ts +1 -1
  34. package/dist/auth-email-password/handlers/switch-tenant-mfa-gate.write.d.ts +1 -1
  35. package/dist/auth-email-password/handlers/token-request-handler.d.ts +2 -2
  36. package/dist/auth-email-password/index.d.ts +13 -13
  37. package/dist/auth-email-password/lockout-store.d.ts +1 -1
  38. package/dist/auth-email-password/magic-link-mail.d.ts +1 -1
  39. package/dist/auth-email-password/seeding.d.ts +3 -3
  40. package/dist/auth-email-password/signed-token.d.ts +1 -1
  41. package/dist/auth-email-password/signup-token-store.d.ts +1 -1
  42. package/dist/auth-email-password/testing.d.ts +1 -1
  43. package/dist/auth-email-password/web/auth-gate.d.ts +1 -1
  44. package/dist/auth-email-password/web/client-plugin.d.ts +2 -2
  45. package/dist/auth-email-password/web/index.d.ts +42 -42
  46. package/dist/auth-email-password/web/session-bootstrap-error.d.ts +1 -1
  47. package/dist/auth-email-password/web/session.d.ts +1 -1
  48. package/dist/auth-email-password/web/signup-complete-screen.d.ts +1 -1
  49. package/dist/auth-foundation/feature.d.ts +2 -6
  50. package/dist/auth-foundation/feature.js +0 -2
  51. package/dist/auth-foundation/index.d.ts +3 -3
  52. package/dist/auth-foundation/index.js +1 -1
  53. package/dist/auth-foundation/resolve-anonymous-access.d.ts +2 -1
  54. package/dist/auth-foundation/resolve-anonymous-access.js +9 -1
  55. package/dist/auth-mfa/env.d.ts +13 -0
  56. package/dist/auth-mfa/env.js +24 -0
  57. package/dist/auth-mfa/errors.d.ts +1 -1
  58. package/dist/auth-mfa/feature-exports.d.ts +12 -0
  59. package/dist/auth-mfa/feature-exports.js +72 -0
  60. package/dist/auth-mfa/feature.d.ts +6 -12
  61. package/dist/auth-mfa/feature.js +53 -70
  62. package/dist/auth-mfa/handlers/reencrypt.job.d.ts +1 -1
  63. package/dist/auth-mfa/index.d.ts +12 -9
  64. package/dist/auth-mfa/index.js +4 -2
  65. package/dist/auth-mfa/mfa-challenge-token.d.ts +1 -1
  66. package/dist/auth-mfa/mfa-preauth-setup-token.d.ts +1 -1
  67. package/dist/auth-mfa/mfa-status-checker.d.ts +1 -1
  68. package/dist/auth-mfa/mfa-verify-attempts.d.ts +1 -1
  69. package/dist/auth-mfa/testing.d.ts +1 -1
  70. package/dist/auth-mfa/token-secrets.d.ts +7 -0
  71. package/dist/auth-mfa/token-secrets.js +13 -0
  72. package/dist/auth-mfa/verify-factor.d.ts +1 -1
  73. package/dist/auth-mfa/web/index.d.ts +15 -15
  74. package/dist/auth-mfa/web/mfa-client.d.ts +1 -1
  75. package/dist/auth-mfa-user-data/index.d.ts +0 -4
  76. package/dist/auth-mfa-user-data/index.js +0 -2
  77. package/dist/billing-foundation/checkout-core.d.ts +2 -2
  78. package/dist/billing-foundation/consumer-protection/confirmation-mail.d.ts +2 -2
  79. package/dist/billing-foundation/consumer-protection/consent-gate.d.ts +1 -1
  80. package/dist/billing-foundation/consumer-protection/consent-text.d.ts +2 -2
  81. package/dist/billing-foundation/consumer-protection/issue-confirmation.d.ts +1 -1
  82. package/dist/billing-foundation/consumer-protection/register-consent.d.ts +1 -1
  83. package/dist/billing-foundation/consumer-protection/register-termination.d.ts +1 -1
  84. package/dist/billing-foundation/consumer-protection/termination-mail.d.ts +3 -3
  85. package/dist/billing-foundation/consumer-protection/termination-notify.d.ts +5 -5
  86. package/dist/billing-foundation/consumer-protection/termination-pages.d.ts +2 -2
  87. package/dist/billing-foundation/consumer-protection/termination-record.d.ts +3 -3
  88. package/dist/billing-foundation/consumer-protection/termination-request.d.ts +2 -2
  89. package/dist/billing-foundation/consumer-protection/termination-texts.d.ts +2 -2
  90. package/dist/billing-foundation/feature.d.ts +1 -3
  91. package/dist/billing-foundation/feature.js +0 -2
  92. package/dist/billing-foundation/handlers/billing-plans.query.d.ts +1 -1
  93. package/dist/billing-foundation/handlers/create-checkout-session.write.d.ts +1 -1
  94. package/dist/billing-foundation/handlers/create-portal-session.write.d.ts +1 -1
  95. package/dist/billing-foundation/handlers/start-plan-checkout.write.d.ts +1 -1
  96. package/dist/billing-foundation/handlers/switch-plan.write.d.ts +1 -1
  97. package/dist/billing-foundation/index.d.ts +16 -16
  98. package/dist/billing-foundation/index.js +1 -1
  99. package/dist/billing-foundation/plan-catalog.d.ts +1 -1
  100. package/dist/billing-foundation/subscription-tier-sync.d.ts +24 -5
  101. package/dist/billing-foundation/subscription-tier-sync.js +48 -19
  102. package/dist/billing-foundation/types.d.ts +3 -3
  103. package/dist/billing-foundation/validate-options.d.ts +1 -1
  104. package/dist/billing-foundation/web/checkout-consent-dialog.d.ts +1 -1
  105. package/dist/billing-foundation/web/index.d.ts +6 -6
  106. package/dist/billing-foundation/webhook-handler.d.ts +2 -1
  107. package/dist/billing-foundation/webhook-handler.js +2 -2
  108. package/dist/cap-counter/calendar-cap-usage-reservation.d.ts +4 -4
  109. package/dist/cap-counter/cap-reservation.d.ts +1 -1
  110. package/dist/cap-counter/enforce-cap.d.ts +1 -1
  111. package/dist/cap-counter/feature.d.ts +0 -4
  112. package/dist/cap-counter/feature.js +0 -2
  113. package/dist/cap-counter/index.d.ts +13 -13
  114. package/dist/cap-counter/index.js +1 -1
  115. package/dist/cap-counter/value-cap-guard.d.ts +1 -1
  116. package/dist/cap-counter/with-cap-enforcement.d.ts +1 -1
  117. package/dist/cap-overview/feature.d.ts +1 -1
  118. package/dist/cap-overview/handlers/caps-usage.query.d.ts +1 -1
  119. package/dist/cap-overview/handlers/tenant-caps-list.query.d.ts +1 -1
  120. package/dist/cap-overview/index.d.ts +6 -6
  121. package/dist/cap-overview/screens.d.ts +1 -1
  122. package/dist/cap-overview/types.d.ts +1 -1
  123. package/dist/cap-overview/usage-math.d.ts +1 -1
  124. package/dist/cap-overview/web/cap-usage-bar.d.ts +1 -1
  125. package/dist/cap-overview/web/index.d.ts +4 -4
  126. package/dist/channel-discord/discord-channel.d.ts +1 -1
  127. package/dist/channel-discord/feature.d.ts +1 -1
  128. package/dist/channel-discord/index.d.ts +2 -2
  129. package/dist/channel-email/email-channel.d.ts +2 -2
  130. package/dist/channel-email/env.d.ts +14 -0
  131. package/dist/channel-email/env.js +27 -0
  132. package/dist/channel-email/feature.d.ts +14 -3
  133. package/dist/channel-email/feature.js +5 -1
  134. package/dist/channel-email/index.d.ts +6 -5
  135. package/dist/channel-email/index.js +1 -0
  136. package/dist/channel-email/pii-guard.d.ts +1 -1
  137. package/dist/channel-email/smtp-transport.d.ts +1 -1
  138. package/dist/channel-email/types.d.ts +1 -1
  139. package/dist/channel-in-app/in-app-channel.d.ts +1 -1
  140. package/dist/channel-in-app/index.d.ts +4 -4
  141. package/dist/channel-push/feature.d.ts +1 -1
  142. package/dist/channel-push/index.d.ts +3 -3
  143. package/dist/channel-push/push-channel.d.ts +2 -2
  144. package/dist/channel-slack/feature.d.ts +1 -1
  145. package/dist/channel-slack/index.d.ts +2 -2
  146. package/dist/channel-slack/slack-channel.d.ts +1 -1
  147. package/dist/channel-teams/feature.d.ts +1 -1
  148. package/dist/channel-teams/index.d.ts +2 -2
  149. package/dist/channel-teams/teams-channel.d.ts +1 -1
  150. package/dist/channel-telegram/feature.d.ts +1 -1
  151. package/dist/channel-telegram/index.d.ts +2 -2
  152. package/dist/channel-telegram/telegram-channel.d.ts +1 -1
  153. package/dist/compliance-profiles/feature.d.ts +1 -1
  154. package/dist/compliance-profiles/index.d.ts +3 -3
  155. package/dist/compliance-profiles/web/index.d.ts +2 -2
  156. package/dist/compliance-profiles-ops/index.d.ts +0 -8
  157. package/dist/compliance-profiles-ops/index.js +0 -2
  158. package/dist/config/feature.d.ts +1 -1
  159. package/dist/config/handlers/reencrypt.job.d.ts +1 -1
  160. package/dist/config/index.d.ts +8 -8
  161. package/dist/config/web/client-plugin.d.ts +1 -1
  162. package/dist/config/web/index.d.ts +2 -2
  163. package/dist/crypto-shredding/env/index.d.ts +21 -0
  164. package/dist/crypto-shredding/env/index.js +78 -0
  165. package/dist/crypto-shredding/feature.d.ts +17 -2
  166. package/dist/crypto-shredding/feature.js +5 -1
  167. package/dist/crypto-shredding/index.d.ts +4 -3
  168. package/dist/crypto-shredding/index.js +1 -0
  169. package/dist/custom-fields/feature.d.ts +0 -17
  170. package/dist/custom-fields/feature.js +0 -2
  171. package/dist/custom-fields/index.d.ts +10 -10
  172. package/dist/custom-fields/index.js +1 -1
  173. package/dist/custom-fields/lib/define-or-resurrect.d.ts +2 -2
  174. package/dist/custom-fields/lib/field-access.d.ts +1 -1
  175. package/dist/custom-fields/lib/field-definition-row.d.ts +1 -1
  176. package/dist/custom-fields/lib/quota.d.ts +1 -1
  177. package/dist/custom-fields/web/index.d.ts +3 -3
  178. package/dist/data-retention/_internal/parse-override.d.ts +1 -1
  179. package/dist/data-retention/feature.d.ts +7 -7
  180. package/dist/data-retention/handlers/policy-for.query.d.ts +1 -1
  181. package/dist/data-retention/index.d.ts +3 -3
  182. package/dist/data-retention/resolve-for-tenant.d.ts +2 -2
  183. package/dist/data-retention/resolve-tenant-preset.d.ts +1 -1
  184. package/dist/data-retention/resolver.d.ts +1 -1
  185. package/dist/data-retention/run-retention-cleanup.d.ts +2 -2
  186. package/dist/delivery/attachment-ref.d.ts +1 -1
  187. package/dist/delivery/attempt-log.d.ts +1 -1
  188. package/dist/delivery/channel-context.d.ts +2 -2
  189. package/dist/delivery/chat-webhook-channel.d.ts +2 -2
  190. package/dist/delivery/constants.d.ts +1 -1
  191. package/dist/delivery/delivery-service.d.ts +2 -2
  192. package/dist/delivery/feature.js +2 -0
  193. package/dist/delivery/handlers/log.query.d.ts +1 -1
  194. package/dist/delivery/handlers/unsubscribe-page-chrome.query.d.ts +5 -0
  195. package/dist/delivery/handlers/unsubscribe-page-chrome.query.js +44 -0
  196. package/dist/delivery/index.d.ts +20 -20
  197. package/dist/delivery/notify-factory.d.ts +1 -1
  198. package/dist/delivery/public-names.d.ts +1 -0
  199. package/dist/delivery/public-names.js +1 -0
  200. package/dist/delivery/testing.d.ts +3 -3
  201. package/dist/delivery/types.d.ts +3 -3
  202. package/dist/delivery/unsubscribe-link.d.ts +1 -1
  203. package/dist/delivery/unsubscribe-page-strings.d.ts +4 -0
  204. package/dist/delivery/unsubscribe-page-strings.js +4 -0
  205. package/dist/delivery/unsubscribe-page.d.ts +27 -0
  206. package/dist/delivery/unsubscribe-page.js +192 -0
  207. package/dist/delivery/unsubscribe.d.ts +11 -3
  208. package/dist/delivery/unsubscribe.js +146 -64
  209. package/dist/delivery/web/index.d.ts +2 -2
  210. package/dist/derivatives-sharp/feature.d.ts +0 -4
  211. package/dist/derivatives-sharp/feature.js +0 -2
  212. package/dist/derivatives-sharp/index.d.ts +2 -2
  213. package/dist/derivatives-sharp/index.js +1 -1
  214. package/dist/document-ingest-foundation/feature.d.ts +0 -7
  215. package/dist/document-ingest-foundation/feature.js +0 -2
  216. package/dist/document-ingest-foundation/index.d.ts +7 -7
  217. package/dist/document-ingest-foundation/index.js +1 -1
  218. package/dist/document-ingest-foundation/pages.d.ts +1 -1
  219. package/dist/document-ingest-foundation/providers.d.ts +1 -1
  220. package/dist/document-ingest-foundation/write-document-extract.d.ts +1 -1
  221. package/dist/feature-toggles/compose-tier-resolver.d.ts +1 -1
  222. package/dist/feature-toggles/feature.d.ts +5 -5
  223. package/dist/feature-toggles/handlers/set.write.d.ts +1 -1
  224. package/dist/feature-toggles/index.d.ts +3 -3
  225. package/dist/feature-toggles/toggle-sync-signal.d.ts +1 -1
  226. package/dist/feature-toggles/web/index.d.ts +1 -1
  227. package/dist/file-derivatives/feature.d.ts +0 -2
  228. package/dist/file-derivatives/feature.js +0 -2
  229. package/dist/file-derivatives/index.d.ts +4 -4
  230. package/dist/file-derivatives/index.js +1 -1
  231. package/dist/file-foundation/feature.d.ts +0 -6
  232. package/dist/file-foundation/feature.js +0 -2
  233. package/dist/file-foundation/index.d.ts +2 -2
  234. package/dist/file-foundation/index.js +1 -1
  235. package/dist/file-provider-inmemory/feature.d.ts +0 -4
  236. package/dist/file-provider-inmemory/feature.js +0 -2
  237. package/dist/file-provider-inmemory/index.d.ts +1 -1
  238. package/dist/file-provider-inmemory/index.js +1 -1
  239. package/dist/file-provider-s3/env-feature.d.ts +12 -2
  240. package/dist/file-provider-s3/env-feature.js +9 -6
  241. package/dist/file-provider-s3/env-schema.d.ts +38 -0
  242. package/dist/file-provider-s3/env-schema.js +54 -0
  243. package/dist/file-provider-s3/feature.d.ts +1 -14
  244. package/dist/file-provider-s3/feature.js +0 -2
  245. package/dist/file-provider-s3/index.d.ts +2 -1
  246. package/dist/file-provider-s3/index.js +2 -1
  247. package/dist/file-provider-s3/lib/env-helper.d.ts +1 -1
  248. package/dist/file-provider-s3/lib/index.d.ts +3 -3
  249. package/dist/files/index.d.ts +1 -1
  250. package/dist/files-tenant-data/index.d.ts +2 -2
  251. package/dist/folders/feature.d.ts +0 -4
  252. package/dist/folders/feature.js +0 -2
  253. package/dist/folders/index.d.ts +7 -7
  254. package/dist/folders/index.js +1 -1
  255. package/dist/folders/web/folder-manager.d.ts +1 -1
  256. package/dist/folders/web/index.d.ts +5 -5
  257. package/dist/folders-user-data/index.d.ts +0 -4
  258. package/dist/folders-user-data/index.js +0 -2
  259. package/dist/form-draft/db/queries/cleanup.d.ts +1 -1
  260. package/dist/form-draft/feature.d.ts +0 -4
  261. package/dist/form-draft/feature.js +0 -2
  262. package/dist/form-draft/handlers/cleanup.job.d.ts +1 -1
  263. package/dist/form-draft/handlers/get.query.d.ts +1 -1
  264. package/dist/form-draft/index.d.ts +10 -10
  265. package/dist/form-draft/index.js +1 -1
  266. package/dist/form-draft/lookup.d.ts +1 -1
  267. package/dist/form-draft/release-file-refs.d.ts +1 -1
  268. package/dist/form-draft-user-data/index.d.ts +0 -4
  269. package/dist/form-draft-user-data/index.js +0 -2
  270. package/dist/foundation-shared/build-info-env.d.ts +7 -0
  271. package/dist/foundation-shared/build-info-env.js +15 -0
  272. package/dist/foundation-shared/demo-admin-env.d.ts +12 -0
  273. package/dist/foundation-shared/demo-admin-env.js +21 -0
  274. package/dist/foundation-shared/index.d.ts +5 -3
  275. package/dist/foundation-shared/index.js +2 -0
  276. package/dist/host-routing/constants.d.ts +8 -0
  277. package/dist/host-routing/constants.js +19 -0
  278. package/dist/host-routing/dispatch.d.ts +24 -0
  279. package/dist/host-routing/dispatch.js +102 -0
  280. package/dist/host-routing/feature.d.ts +3 -0
  281. package/dist/host-routing/feature.js +102 -0
  282. package/dist/host-routing/host.d.ts +14 -0
  283. package/dist/host-routing/host.js +37 -0
  284. package/dist/host-routing/index.d.ts +5 -0
  285. package/dist/host-routing/index.js +4 -0
  286. package/dist/host-routing/options.d.ts +27 -0
  287. package/dist/host-routing/options.js +1 -0
  288. package/dist/host-routing/validate-options.d.ts +2 -0
  289. package/dist/host-routing/validate-options.js +29 -0
  290. package/dist/inbound-mail-foundation/connect-routes.d.ts +2 -2
  291. package/dist/inbound-mail-foundation/feature.d.ts +0 -4
  292. package/dist/inbound-mail-foundation/feature.js +0 -2
  293. package/dist/inbound-mail-foundation/handlers/account-state.d.ts +1 -1
  294. package/dist/inbound-mail-foundation/index.d.ts +12 -12
  295. package/dist/inbound-mail-foundation/index.js +1 -1
  296. package/dist/inbound-mail-foundation/oauth-access-token.d.ts +1 -1
  297. package/dist/inbound-mail-foundation/provider-factory.d.ts +1 -1
  298. package/dist/inbound-mail-foundation/types.d.ts +1 -1
  299. package/dist/inbound-mail-foundation/watch-supervisor.d.ts +2 -2
  300. package/dist/inbound-provider-imap/feature.d.ts +1 -5
  301. package/dist/inbound-provider-imap/feature.js +0 -2
  302. package/dist/inbound-provider-imap/imap-client.d.ts +1 -1
  303. package/dist/inbound-provider-imap/index.d.ts +3 -3
  304. package/dist/inbound-provider-imap/index.js +1 -1
  305. package/dist/inbound-provider-inmemory/feature.d.ts +0 -4
  306. package/dist/inbound-provider-inmemory/feature.js +0 -2
  307. package/dist/inbound-provider-inmemory/index.d.ts +1 -1
  308. package/dist/inbound-provider-inmemory/index.js +1 -1
  309. package/dist/jobs/handlers/tenant-runs.query.d.ts +1 -1
  310. package/dist/jobs/index.d.ts +9 -9
  311. package/dist/jobs/web/index.d.ts +1 -1
  312. package/dist/ledger/feature.d.ts +0 -4
  313. package/dist/ledger/feature.js +0 -2
  314. package/dist/ledger/index.d.ts +10 -10
  315. package/dist/ledger/index.js +1 -1
  316. package/dist/ledger/recurring.d.ts +2 -2
  317. package/dist/ledger/reports.d.ts +2 -2
  318. package/dist/ledger/web/index.d.ts +3 -3
  319. package/dist/legal-pages/constants.d.ts +12 -0
  320. package/dist/legal-pages/constants.js +16 -0
  321. package/dist/legal-pages/feature.d.ts +6 -3
  322. package/dist/legal-pages/feature.js +5 -2
  323. package/dist/legal-pages/index.d.ts +5 -3
  324. package/dist/legal-pages/index.js +3 -1
  325. package/dist/legal-pages/layout.d.ts +10 -0
  326. package/dist/legal-pages/layout.js +32 -0
  327. package/dist/legal-pages/lib/boot-check.d.ts +1 -1
  328. package/dist/legal-pages/lib/validate-routes.d.ts +1 -1
  329. package/dist/legal-pages/markdown.d.ts +2 -2
  330. package/dist/legal-pages/seed.d.ts +12 -0
  331. package/dist/legal-pages/seed.js +38 -0
  332. package/dist/legal-pages/web/index.d.ts +1 -1
  333. package/dist/mail-foundation/feature.d.ts +0 -7
  334. package/dist/mail-foundation/feature.js +0 -2
  335. package/dist/mail-foundation/index.d.ts +1 -1
  336. package/dist/mail-foundation/index.js +1 -1
  337. package/dist/mail-transport-inmemory/feature.d.ts +0 -4
  338. package/dist/mail-transport-inmemory/feature.js +0 -2
  339. package/dist/mail-transport-inmemory/index.d.ts +1 -1
  340. package/dist/mail-transport-inmemory/index.js +1 -1
  341. package/dist/mail-transport-smtp/feature.d.ts +0 -16
  342. package/dist/mail-transport-smtp/feature.js +0 -2
  343. package/dist/mail-transport-smtp/index.d.ts +1 -1
  344. package/dist/mail-transport-smtp/index.js +1 -1
  345. package/dist/managed-pages/branding.d.ts +1 -1
  346. package/dist/managed-pages/feature.d.ts +1 -1
  347. package/dist/managed-pages/handlers/branding.query.d.ts +1 -1
  348. package/dist/managed-pages/index.d.ts +5 -5
  349. package/dist/managed-pages/web/index.d.ts +2 -2
  350. package/dist/metrics/compute.d.ts +2 -2
  351. package/dist/metrics/default-metrics.d.ts +9 -9
  352. package/dist/metrics/feature.d.ts +1 -1
  353. package/dist/metrics/filters.d.ts +1 -1
  354. package/dist/metrics/index.d.ts +5 -5
  355. package/dist/metrics/types.d.ts +1 -1
  356. package/dist/metrics/validate.d.ts +1 -1
  357. package/dist/metrics/window.d.ts +2 -2
  358. package/dist/notes-history/feature.d.ts +0 -4
  359. package/dist/notes-history/feature.js +0 -2
  360. package/dist/notes-history/handlers/add-note.write.d.ts +1 -1
  361. package/dist/notes-history/index.d.ts +6 -6
  362. package/dist/notes-history/index.js +1 -1
  363. package/dist/notes-history/web/index.d.ts +3 -3
  364. package/dist/notes-history-user-data/index.d.ts +1 -5
  365. package/dist/notes-history-user-data/index.js +0 -2
  366. package/dist/page-render/index.d.ts +7 -7
  367. package/dist/page-render/layout.d.ts +1 -1
  368. package/dist/page-render/web.d.ts +5 -5
  369. package/dist/personal-access-tokens/feature.d.ts +3 -3
  370. package/dist/personal-access-tokens/handlers/available-scopes.query.d.ts +1 -1
  371. package/dist/personal-access-tokens/i18n.d.ts +1 -1
  372. package/dist/personal-access-tokens/index.d.ts +13 -13
  373. package/dist/personal-access-tokens/resolver.d.ts +1 -1
  374. package/dist/personal-access-tokens/screens.d.ts +1 -1
  375. package/dist/presets/dsgvo-self-service.d.ts +3 -1
  376. package/dist/presets/dsgvo-self-service.js +2 -0
  377. package/dist/presets/index.d.ts +2 -2
  378. package/dist/presets/security-baseline.d.ts +2 -0
  379. package/dist/presets/security-baseline.js +2 -0
  380. package/dist/rate-limiting/index.d.ts +2 -2
  381. package/dist/readiness/feature.d.ts +0 -8
  382. package/dist/readiness/feature.js +0 -2
  383. package/dist/readiness/index.d.ts +3 -3
  384. package/dist/readiness/index.js +1 -1
  385. package/dist/renderer-foundation/api.d.ts +2 -2
  386. package/dist/renderer-foundation/constants.d.ts +2 -2
  387. package/dist/renderer-foundation/feature.d.ts +1 -1
  388. package/dist/renderer-foundation/index.d.ts +5 -5
  389. package/dist/renderer-foundation/types.d.ts +24 -2
  390. package/dist/renderer-pdf/feature.d.ts +1 -1
  391. package/dist/renderer-pdf/index.d.ts +2 -2
  392. package/dist/renderer-pdf/render-table-pdf.d.ts +1 -1
  393. package/dist/secrets/constants.d.ts +7 -0
  394. package/dist/secrets/constants.js +7 -0
  395. package/dist/secrets/db/queries/read.d.ts +1 -1
  396. package/dist/secrets/feature.d.ts +4 -3
  397. package/dist/secrets/feature.js +4 -2
  398. package/dist/secrets/handlers/delete.write.js +2 -2
  399. package/dist/secrets/handlers/rotate.job.d.ts +1 -1
  400. package/dist/secrets/handlers/set.write.js +2 -2
  401. package/dist/secrets/index.d.ts +7 -7
  402. package/dist/secrets/index.js +1 -1
  403. package/dist/secrets/secrets-context.d.ts +1 -1
  404. package/dist/seo/feature.d.ts +3 -3
  405. package/dist/seo/index.d.ts +6 -6
  406. package/dist/sessions/feature.d.ts +1 -1
  407. package/dist/sessions/index.d.ts +8 -8
  408. package/dist/sessions/session-callbacks.d.ts +1 -1
  409. package/dist/sessions/testing.d.ts +1 -1
  410. package/dist/shared/index.d.ts +31 -31
  411. package/dist/step-dispatcher/dispatch-payload.d.ts +2 -2
  412. package/dist/step-dispatcher/index.d.ts +3 -3
  413. package/dist/subscription-mollie/feature.d.ts +2 -2
  414. package/dist/subscription-mollie/index.d.ts +3 -3
  415. package/dist/subscription-mollie/verify-webhook.d.ts +1 -1
  416. package/dist/subscription-stripe/feature.d.ts +17 -1
  417. package/dist/subscription-stripe/feature.js +19 -1
  418. package/dist/subscription-stripe/index.d.ts +2 -2
  419. package/dist/subscription-stripe/index.js +1 -1
  420. package/dist/subscription-stripe/plugin-methods.d.ts +1 -1
  421. package/dist/subscription-stripe/verify-webhook.d.ts +1 -1
  422. package/dist/tags/feature.d.ts +0 -4
  423. package/dist/tags/feature.js +0 -2
  424. package/dist/tags/handlers/assign-tag.write.d.ts +1 -1
  425. package/dist/tags/handlers/remove-tag.write.d.ts +1 -1
  426. package/dist/tags/index.d.ts +11 -11
  427. package/dist/tags/index.js +1 -1
  428. package/dist/tags/web/index.d.ts +9 -9
  429. package/dist/template-resolver/api.d.ts +4 -4
  430. package/dist/template-resolver/constants.d.ts +1 -1
  431. package/dist/template-resolver/document-sanitizer.d.ts +1 -1
  432. package/dist/template-resolver/handlers/bundle-import.d.ts +3 -3
  433. package/dist/template-resolver/handlers/collection-shared.d.ts +2 -2
  434. package/dist/template-resolver/handlers/copy-locale.write.d.ts +1 -1
  435. package/dist/template-resolver/handlers/diff-to-system.query.d.ts +1 -1
  436. package/dist/template-resolver/handlers/find-by-id.query.d.ts +1 -1
  437. package/dist/template-resolver/handlers/import-bundle-system.write.d.ts +1 -1
  438. package/dist/template-resolver/handlers/import-bundle.write.d.ts +1 -1
  439. package/dist/template-resolver/handlers/layout-source.query.d.ts +3 -3
  440. package/dist/template-resolver/handlers/override-diff.d.ts +2 -2
  441. package/dist/template-resolver/handlers/overview.query.d.ts +3 -3
  442. package/dist/template-resolver/handlers/preview.query.d.ts +1 -1
  443. package/dist/template-resolver/handlers/resource-link-pdf.write.d.ts +1 -1
  444. package/dist/template-resolver/handlers/resource-upload.write.d.ts +1 -1
  445. package/dist/template-resolver/handlers/send-test.write.d.ts +1 -1
  446. package/dist/template-resolver/handlers/shared.d.ts +1 -1
  447. package/dist/template-resolver/handlers/template-gates.d.ts +4 -4
  448. package/dist/template-resolver/handlers/template-write.d.ts +4 -4
  449. package/dist/template-resolver/handlers/tenant-overrides.query.d.ts +1 -1
  450. package/dist/template-resolver/handlers/toggle-status.write.d.ts +1 -1
  451. package/dist/template-resolver/handlers/upsert-system.write.d.ts +1 -1
  452. package/dist/template-resolver/handlers/upsert-tenant.write.d.ts +1 -1
  453. package/dist/template-resolver/handlers/usage.query.d.ts +1 -1
  454. package/dist/template-resolver/handlers/validate.query.d.ts +3 -3
  455. package/dist/template-resolver/index.d.ts +25 -25
  456. package/dist/template-resolver/layout-appearance.d.ts +1 -1
  457. package/dist/template-resolver/layout-regions.d.ts +2 -2
  458. package/dist/template-resolver/linked-resources.d.ts +1 -1
  459. package/dist/template-resolver/preview-display-html.d.ts +1 -1
  460. package/dist/template-resolver/resource-image.d.ts +1 -1
  461. package/dist/template-resolver/seeding.d.ts +2 -2
  462. package/dist/template-resolver/store-template-resource.d.ts +1 -1
  463. package/dist/template-resolver/template-draft.d.ts +2 -2
  464. package/dist/template-resolver/template-meta.d.ts +2 -2
  465. package/dist/template-resolver/template-preview.d.ts +7 -6
  466. package/dist/template-resolver/template-preview.js +19 -12
  467. package/dist/template-resolver/template-resources.d.ts +1 -1
  468. package/dist/template-resolver/template-usage.d.ts +3 -1
  469. package/dist/template-resolver/template-usage.js +1 -0
  470. package/dist/template-resolver/template-validation.d.ts +1 -1
  471. package/dist/template-resolver/testing.d.ts +1 -1
  472. package/dist/template-resolver/user-content-table.d.ts +1 -1
  473. package/dist/template-resolver/web/document-editor-extensions.d.ts +1 -1
  474. package/dist/template-resolver/web/document-editor-extensions.js +6 -2
  475. package/dist/template-resolver/web/document-editor.d.ts +1 -1
  476. package/dist/template-resolver/web/document-tiptap-editor.d.ts +1 -1
  477. package/dist/template-resolver/web/document-tiptap-editor.js +13 -10
  478. package/dist/template-resolver/web/editor-handle.d.ts +1 -1
  479. package/dist/template-resolver/web/index.d.ts +7 -7
  480. package/dist/template-resolver/web/placeholder-line-editor-lazy.d.ts +2 -2
  481. package/dist/template-resolver/web/placeholder-line-editor.d.ts +1 -1
  482. package/dist/template-resolver-user-data/index.d.ts +0 -4
  483. package/dist/template-resolver-user-data/index.js +0 -2
  484. package/dist/tenant/feature.d.ts +1 -1
  485. package/dist/tenant/index.d.ts +10 -10
  486. package/dist/tenant/is-tenant-serving-public-content.d.ts +1 -1
  487. package/dist/tenant/testing.d.ts +1 -1
  488. package/dist/tenant/web/index.d.ts +3 -3
  489. package/dist/tenant-handover/feature.d.ts +1 -1
  490. package/dist/tenant-handover/index.d.ts +3 -3
  491. package/dist/tenant-handover/signup-handover-provider.d.ts +1 -1
  492. package/dist/tenant-lifecycle/feature.d.ts +2 -2
  493. package/dist/tenant-lifecycle/index.d.ts +3 -3
  494. package/dist/tenant-lifecycle/run-tenant-destroy.d.ts +1 -1
  495. package/dist/tenant-lifecycle/stages.d.ts +1 -1
  496. package/dist/tenant-lifecycle/testing.d.ts +1 -1
  497. package/dist/tenant-settings/feature.d.ts +1 -3
  498. package/dist/tenant-settings/feature.js +0 -2
  499. package/dist/tenant-settings/index.d.ts +4 -4
  500. package/dist/tenant-settings/index.js +1 -1
  501. package/dist/tier-engine/entity.d.ts +1 -1
  502. package/dist/tier-engine/feature.d.ts +2 -4
  503. package/dist/tier-engine/feature.js +0 -2
  504. package/dist/tier-engine/handlers/get-tenant-tier.query.d.ts +1 -1
  505. package/dist/tier-engine/i18n.d.ts +0 -2
  506. package/dist/tier-engine/i18n.js +4 -4
  507. package/dist/tier-engine/index.d.ts +8 -8
  508. package/dist/tier-engine/index.js +1 -1
  509. package/dist/tier-engine/tier-option-gate.d.ts +1 -1
  510. package/dist/tier-engine/tier-resolver.d.ts +1 -1
  511. package/dist/tier-engine/web/client-plugin.js +3 -2
  512. package/dist/tier-engine/web/index.d.ts +1 -1
  513. package/dist/user/index.d.ts +8 -8
  514. package/dist/user/invited-global-roles.d.ts +1 -1
  515. package/dist/user/principal-status.d.ts +1 -1
  516. package/dist/user/seeding.d.ts +1 -1
  517. package/dist/user/testing.d.ts +1 -1
  518. package/dist/user-data-rights/deletion-token.d.ts +1 -1
  519. package/dist/user-data-rights/feature.d.ts +5 -5
  520. package/dist/user-data-rights/handlers/request-deletion.write.d.ts +1 -1
  521. package/dist/user-data-rights/handlers/run-forget-cleanup.write.d.ts +3 -3
  522. package/dist/user-data-rights/index.d.ts +13 -13
  523. package/dist/user-data-rights/lib/default-mailers.d.ts +4 -4
  524. package/dist/user-data-rights/web/client-plugin.d.ts +1 -1
  525. package/dist/user-data-rights/web/index.d.ts +8 -8
  526. package/dist/user-data-rights-defaults/index.d.ts +11 -11
  527. package/dist/user-profile/index.d.ts +2 -2
  528. package/dist/user-profile/web/index.d.ts +2 -2
  529. package/dist/waitlist/constants.d.ts +9 -0
  530. package/dist/waitlist/constants.js +11 -0
  531. package/dist/waitlist/entity.d.ts +38 -6
  532. package/dist/waitlist/entity.js +4 -2
  533. package/dist/waitlist/entries-admin.d.ts +4 -0
  534. package/dist/waitlist/entries-admin.js +42 -0
  535. package/dist/waitlist/feature.d.ts +1 -1
  536. package/dist/waitlist/feature.js +16 -1
  537. package/dist/waitlist/handlers/export-purge.write.d.ts +12 -0
  538. package/dist/waitlist/handlers/export-purge.write.js +61 -0
  539. package/dist/waitlist/handlers/invite.write.d.ts +1 -1
  540. package/dist/waitlist/handlers/submit.write.d.ts +1 -1
  541. package/dist/waitlist/i18n.js +4 -0
  542. package/dist/waitlist/import.d.ts +24 -0
  543. package/dist/waitlist/import.js +51 -0
  544. package/dist/waitlist/index.d.ts +7 -5
  545. package/dist/waitlist/index.js +2 -0
  546. package/dist/waitlist/legacy-migrate.d.ts +27 -0
  547. package/dist/waitlist/legacy-migrate.js +173 -0
  548. package/dist/waitlist/lib.d.ts +2 -2
  549. package/dist/waitlist/link-on-signup.d.ts +3 -0
  550. package/dist/waitlist/link-on-signup.js +83 -0
  551. package/dist/waitlist/options.d.ts +11 -3
  552. package/dist/waitlist/payloads.d.ts +3 -0
  553. package/dist/waitlist/payloads.js +1 -0
  554. package/dist/workflow-runner/feature.d.ts +0 -4
  555. package/dist/workflow-runner/feature.js +0 -2
  556. package/dist/workflow-runner/index.d.ts +4 -4
  557. package/dist/workflow-runner/index.js +1 -1
  558. package/package.json +43 -27
  559. package/src/account-security/changes.json +8 -0
  560. package/src/auth-email-password/changes.json +6 -0
  561. package/src/auth-foundation/changes.json +14 -0
  562. package/src/auth-mfa/changes.json +6 -0
  563. package/src/auth-mfa-user-data/changes.json +10 -1
  564. package/src/billing-foundation/changes.json +14 -0
  565. package/src/cap-counter/changes.json +8 -0
  566. package/src/channel-email/changes.json +6 -0
  567. package/src/compliance-profiles-ops/changes.json +10 -0
  568. package/src/crypto-shredding/changes.json +6 -0
  569. package/src/custom-fields/changes.json +8 -0
  570. package/src/delivery/changes.json +13 -0
  571. package/src/derivatives-sharp/changes.json +8 -0
  572. package/src/document-ingest-foundation/changes.json +8 -0
  573. package/src/file-derivatives/changes.json +8 -0
  574. package/src/file-foundation/changes.json +8 -0
  575. package/src/file-provider-inmemory/changes.json +10 -1
  576. package/src/file-provider-s3/changes.json +28 -0
  577. package/src/folders/changes.json +8 -0
  578. package/src/folders-user-data/changes.json +10 -1
  579. package/src/form-draft/changes.json +8 -0
  580. package/src/form-draft-user-data/changes.json +10 -1
  581. package/src/foundation-shared/changes.json +8 -1
  582. package/src/host-routing/changes.json +8 -0
  583. package/src/inbound-mail-foundation/changes.json +8 -0
  584. package/src/inbound-provider-imap/changes.json +8 -0
  585. package/src/inbound-provider-inmemory/changes.json +10 -1
  586. package/src/ledger/changes.json +8 -0
  587. package/src/legal-pages/changes.json +6 -0
  588. package/src/mail-foundation/changes.json +10 -1
  589. package/src/mail-transport-inmemory/changes.json +10 -1
  590. package/src/mail-transport-smtp/changes.json +8 -0
  591. package/src/notes-history/changes.json +8 -0
  592. package/src/notes-history-user-data/changes.json +8 -0
  593. package/src/presets/changes.json +6 -0
  594. package/src/readiness/changes.json +10 -1
  595. package/src/secrets/changes.json +12 -0
  596. package/src/subscription-stripe/changes.json +6 -0
  597. package/src/tags/changes.json +8 -0
  598. package/src/template-resolver/changes.json +6 -0
  599. package/src/template-resolver-user-data/changes.json +10 -0
  600. package/src/tenant-settings/changes.json +10 -1
  601. package/src/tier-engine/changes.json +8 -0
  602. package/src/waitlist/changes.json +7 -0
  603. package/src/workflow-runner/changes.json +8 -0
  604. package/dist/file-provider-s3-env/index.d.ts +0 -8
  605. package/dist/file-provider-s3-env/index.js +0 -7
  606. package/dist/files-provider-s3/index.d.ts +0 -5
  607. package/dist/files-provider-s3/index.js +0 -5
  608. package/src/file-provider-s3-env/changes.json +0 -1
  609. package/src/files-provider-s3/changes.json +0 -1
@@ -1,5 +1,5 @@
1
- import type { CheckoutConsentRecordedPayload } from "../events.js";
2
- import { type ConsentLocale } from "./consent-text.js";
1
+ import type { CheckoutConsentRecordedPayload } from "../events.ts";
2
+ import { type ConsentLocale } from "./consent-text.ts";
3
3
  type ConfirmationLabels = {
4
4
  readonly subject: string;
5
5
  readonly intro: string;
@@ -1,6 +1,6 @@
1
1
  import { type HandlerContext } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
- import type { ConsumerProtectionOptions, ProviderPrice } from "../types.js";
3
+ import type { ConsumerProtectionOptions, ProviderPrice } from "../types.ts";
4
4
  export type CheckoutMode = "subscription" | "payment";
5
5
  export declare const consentPayloadSchema: z.ZodObject<{
6
6
  earlyPerformanceRequested: z.ZodBoolean;
@@ -1,5 +1,5 @@
1
- import type { ConsentLocale } from "./consent-locale.js";
2
- export { CONSENT_LOCALES, type ConsentLocale, FALLBACK_CONSENT_LOCALE, resolveConsentLocale, } from "./consent-locale.js";
1
+ import type { ConsentLocale } from "./consent-locale.ts";
2
+ export { CONSENT_LOCALES, type ConsentLocale, FALLBACK_CONSENT_LOCALE, resolveConsentLocale, } from "./consent-locale.ts";
3
3
  export type ConsentTexts = {
4
4
  readonly earlyPerformance: string;
5
5
  readonly withdrawalLoss: string;
@@ -1,6 +1,6 @@
1
1
  import { type WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
- import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.js";
3
+ import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.ts";
4
4
  export declare const issueContractConfirmationSchema: z.ZodObject<{
5
5
  consentId: z.ZodString;
6
6
  sourceAggregateId: z.ZodUUID;
@@ -1,3 +1,3 @@
1
1
  import type { FeatureRegistrar } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.js";
2
+ import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.ts";
3
3
  export declare function registerConsumerProtection(r: FeatureRegistrar, options: ResolvedBillingFoundationOptions, consumerProtection: ConsumerProtectionOptions): void;
@@ -1,3 +1,3 @@
1
1
  import type { FeatureRegistrar } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.js";
2
+ import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.ts";
3
3
  export declare function registerContractTermination(r: FeatureRegistrar, options: ResolvedBillingFoundationOptions, consumerProtection: ConsumerProtectionOptions): void;
@@ -1,6 +1,6 @@
1
- import type { ContractTerminationDeclarationType, ContractTerminationKind, ProviderCancelOutcome } from "../events.js";
2
- import type { ConsentLocale } from "./consent-text.js";
3
- import { type OperatorNoticeReason } from "./termination-texts.js";
1
+ import type { ContractTerminationDeclarationType, ContractTerminationKind, ProviderCancelOutcome } from "../events.ts";
2
+ import type { ConsentLocale } from "./consent-text.ts";
3
+ import { type OperatorNoticeReason } from "./termination-texts.ts";
4
4
  type TextRow = {
5
5
  readonly text: string;
6
6
  };
@@ -1,9 +1,9 @@
1
1
  import type { HandlerContext } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { ProviderCancelOutcome } from "../events.js";
3
- import type { ConsumerProtectionOptions } from "../types.js";
4
- import type { ConsentLocale } from "./consent-text.js";
5
- import { type OperatorNoticeDeclaration } from "./termination-mail.js";
6
- import type { OperatorNoticeReason } from "./termination-texts.js";
2
+ import type { ProviderCancelOutcome } from "../events.ts";
3
+ import type { ConsumerProtectionOptions } from "../types.ts";
4
+ import type { ConsentLocale } from "./consent-text.ts";
5
+ import { type OperatorNoticeDeclaration } from "./termination-mail.ts";
6
+ import type { OperatorNoticeReason } from "./termination-texts.ts";
7
7
  export type OperatorNoticePlan = {
8
8
  readonly locale: ConsentLocale;
9
9
  readonly requestId: string;
@@ -1,6 +1,6 @@
1
1
  import { type AnonymousExtraRoute } from "@cosmicdrift/kumiko-framework/api";
2
- import { type PublicPageWrapLayout } from "../../page-render/index.js";
3
- import type { ConsentLocale } from "./consent-text.js";
2
+ import { type PublicPageWrapLayout } from "../../page-render/index.ts";
3
+ import type { ConsentLocale } from "./consent-text.ts";
4
4
  export type ContractTerminationRoutesOptions = {
5
5
  readonly paths?: Readonly<Partial<Record<ConsentLocale, string>>>;
6
6
  /** Layout around every page (form, review, result, 429, error). Default:
@@ -1,8 +1,8 @@
1
1
  import { type QueryHandlerDef, type WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
- import { type ProviderCancelOutcome } from "../events.js";
4
- import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.js";
5
- import type { OperatorNoticeReason } from "./termination-texts.js";
3
+ import { type ProviderCancelOutcome } from "../events.ts";
4
+ import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.ts";
5
+ import type { OperatorNoticeReason } from "./termination-texts.ts";
6
6
  export declare const recordContractTerminationSchema: z.ZodObject<{
7
7
  requestId: z.ZodString;
8
8
  declarationType: z.ZodEnum<{
@@ -1,7 +1,7 @@
1
1
  import { type WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
- import { type ProviderCancelOutcome } from "../events.js";
4
- import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.js";
3
+ import { type ProviderCancelOutcome } from "../events.ts";
4
+ import type { ConsumerProtectionOptions, ResolvedBillingFoundationOptions } from "../types.ts";
5
5
  export declare const requestContractTerminationSchema: z.ZodObject<{
6
6
  declarationType: z.ZodEnum<{
7
7
  termination: "termination";
@@ -1,5 +1,5 @@
1
- import type { ContractTerminationDeclarationType, ContractTerminationKind } from "../events.js";
2
- import type { ConsentLocale } from "./consent-text.js";
1
+ import type { ContractTerminationDeclarationType, ContractTerminationKind } from "../events.ts";
2
+ import type { ConsentLocale } from "./consent-text.ts";
3
3
  export type TerminationTexts = {
4
4
  readonly declarationTypeLabel: Readonly<Record<ContractTerminationDeclarationType, string>>;
5
5
  readonly terminationKindLabel: Readonly<Record<ContractTerminationKind, string>>;
@@ -1,5 +1,3 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { BillingFoundationOptions } from "./types.js";
2
+ import type { BillingFoundationOptions } from "./types.ts";
3
3
  export declare function createBillingFoundationFeature<TTier extends string = string>(options?: BillingFoundationOptions<TTier>): FeatureDefinition;
4
- /** @deprecated Use createBillingFoundationFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
5
- export declare const billingFoundationFeature: FeatureDefinition;
@@ -219,5 +219,3 @@ export function createBillingFoundationFeature(options = {}) {
219
219
  });
220
220
  }, Object.keys(options).length === 0 ? { dedupeOptions: {} } : undefined);
221
221
  }
222
- /** @deprecated Use createBillingFoundationFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
223
- export const billingFoundationFeature = createBillingFoundationFeature();
@@ -1,3 +1,3 @@
1
1
  import type { QueryHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type BillingPlanCatalog, type ResolvedBillingFoundationOptions } from "../types.js";
2
+ import { type BillingPlanCatalog, type ResolvedBillingFoundationOptions } from "../types.ts";
3
3
  export declare function createBillingPlansQuery(options: ResolvedBillingFoundationOptions, catalog: BillingPlanCatalog): QueryHandlerDef;
@@ -1,3 +1,3 @@
1
1
  import type { WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { ResolvedBillingFoundationOptions } from "../types.js";
2
+ import type { ResolvedBillingFoundationOptions } from "../types.ts";
3
3
  export declare function createCheckoutSessionHandler(options: ResolvedBillingFoundationOptions): WriteHandlerDef;
@@ -1,3 +1,3 @@
1
1
  import type { WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { BillingFoundationOptions } from "../types.js";
2
+ import type { BillingFoundationOptions } from "../types.ts";
3
3
  export declare function createPortalSessionHandler(options: BillingFoundationOptions): WriteHandlerDef;
@@ -1,3 +1,3 @@
1
1
  import type { WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { BillingPlanCatalog, ResolvedBillingFoundationOptions } from "../types.js";
2
+ import type { BillingPlanCatalog, ResolvedBillingFoundationOptions } from "../types.ts";
3
3
  export declare function createStartPlanCheckoutHandler(options: ResolvedBillingFoundationOptions, catalog: BillingPlanCatalog): WriteHandlerDef;
@@ -1,3 +1,3 @@
1
1
  import type { WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { BillingFoundationOptions, BillingPlanCatalog } from "../types.js";
2
+ import type { BillingFoundationOptions, BillingPlanCatalog } from "../types.ts";
3
3
  export declare function createSwitchPlanHandler(options: BillingFoundationOptions, catalog: BillingPlanCatalog): WriteHandlerDef;
@@ -1,16 +1,16 @@
1
- export { paymentAggregateId, subscriptionAggregateId } from "./aggregate-id.js";
2
- export { type BillingInfo, type BillingInfoQueryDeps, createBillingInfoQueryConfig, } from "./billing-info-query.js";
3
- export { isBillingEnabled, type ResolvedProvider, resolveProviderPlugin, } from "./checkout-core.js";
4
- export { BILLING_FOUNDATION_FEATURE, BILLING_PLANS_PANEL_COMPONENT, BILLING_PLANS_SCREEN_ID, type BillingEventKind, BillingEventKinds, type BillingPlanAction, BillingPlanActions, DEFAULT_PURCHASE_ROLES, isSwitchableSubscriptionStatus, isTerminalSubscriptionStatus, parseProviderConsentId, SUBSCRIPTION_PROVIDER_EXTENSION, type SubscriptionCancelTiming, SubscriptionCancelTimings, type SubscriptionEventType, SubscriptionEventTypes, SubscriptionFoundationHandlers, SubscriptionFoundationQueries, type SubscriptionStatus, SubscriptionStatuses, } from "./constants.js";
5
- export { type ConsentPayload, consentPayloadSchema, type OrderItem, } from "./consumer-protection/consent-gate.js";
6
- export { CONSENT_LOCALES, type ConsentLocale, resolveConsentLocale, } from "./consumer-protection/consent-locale.js";
7
- export { type ContractTerminationRoutesOptions, createContractTerminationRoutes, } from "./consumer-protection/termination-pages.js";
8
- export { paymentEntity, subscriptionEntity } from "./entities.js";
9
- export { INVOICE_PAID_EVENT_QN, INVOICE_PAID_EVENT_SHORT, INVOICE_PAYMENT_FAILED_EVENT_QN, INVOICE_PAYMENT_FAILED_EVENT_SHORT, PAYMENT_AGGREGATE_TYPE, PAYMENT_RECEIVED_EVENT_QN, PAYMENT_RECEIVED_EVENT_SHORT, type PaymentEventHeaders, type PaymentEventPayload, paymentEventPayloadSchema, SUBSCRIPTION_AGGREGATE_TYPE, SUBSCRIPTION_CANCELED_EVENT_QN, SUBSCRIPTION_CANCELED_EVENT_SHORT, SUBSCRIPTION_CREATED_EVENT_QN, SUBSCRIPTION_CREATED_EVENT_SHORT, SUBSCRIPTION_UPDATED_EVENT_QN, SUBSCRIPTION_UPDATED_EVENT_SHORT, type SubscriptionEventHeaders, type SubscriptionEventPayload, subscriptionEventPayloadSchema, } from "./events.js";
10
- export { billingFoundationFeature, createBillingFoundationFeature } from "./feature.js";
11
- export { getSubscriptionForTenant, type SubscriptionView } from "./get-subscription-for-tenant.js";
12
- export { paymentsProjectionTable, subscriptionsProjectionTable } from "./projection.js";
13
- export { billingPlansPanel, createBillingPlansScreen } from "./screens.js";
14
- export { createSubscriptionTierSync, effectiveTierFromSubscription, SUBSCRIPTION_WEBHOOK_PATH, type SubscriptionTierSyncDeps, } from "./subscription-tier-sync.js";
15
- export { type BillingFoundationOptions, type BillingPlanBenefit, type BillingPlanCatalog, type BillingPlanPrice, type BillingPlansResult, type BillingPlanView, type ConsumerProtectionOptions, KNOWN_RECURRING_INTERVALS, type LegalLinkSet, type PaymentEvent, type ProviderPrice, type ProviderSubscriptionSnapshot, type RecurringInterval, type SubscriptionEvent, type SubscriptionProviderPlugin, } from "./types.js";
16
- export { createSubscriptionWebhookRoute, type SubscriptionWebhookRouteOptions, } from "./webhook-handler.js";
1
+ export { paymentAggregateId, subscriptionAggregateId } from "./aggregate-id.ts";
2
+ export { type BillingInfo, type BillingInfoQueryDeps, createBillingInfoQueryConfig, } from "./billing-info-query.ts";
3
+ export { isBillingEnabled, type ResolvedProvider, resolveProviderPlugin, } from "./checkout-core.ts";
4
+ export { BILLING_FOUNDATION_FEATURE, BILLING_PLANS_PANEL_COMPONENT, BILLING_PLANS_SCREEN_ID, type BillingEventKind, BillingEventKinds, type BillingPlanAction, BillingPlanActions, DEFAULT_PURCHASE_ROLES, isSwitchableSubscriptionStatus, isTerminalSubscriptionStatus, parseProviderConsentId, SUBSCRIPTION_PROVIDER_EXTENSION, type SubscriptionCancelTiming, SubscriptionCancelTimings, type SubscriptionEventType, SubscriptionEventTypes, SubscriptionFoundationHandlers, SubscriptionFoundationQueries, type SubscriptionStatus, SubscriptionStatuses, } from "./constants.ts";
5
+ export { type ConsentPayload, consentPayloadSchema, type OrderItem, } from "./consumer-protection/consent-gate.ts";
6
+ export { CONSENT_LOCALES, type ConsentLocale, resolveConsentLocale, } from "./consumer-protection/consent-locale.ts";
7
+ export { type ContractTerminationRoutesOptions, createContractTerminationRoutes, } from "./consumer-protection/termination-pages.ts";
8
+ export { paymentEntity, subscriptionEntity } from "./entities.ts";
9
+ export { INVOICE_PAID_EVENT_QN, INVOICE_PAID_EVENT_SHORT, INVOICE_PAYMENT_FAILED_EVENT_QN, INVOICE_PAYMENT_FAILED_EVENT_SHORT, PAYMENT_AGGREGATE_TYPE, PAYMENT_RECEIVED_EVENT_QN, PAYMENT_RECEIVED_EVENT_SHORT, type PaymentEventHeaders, type PaymentEventPayload, paymentEventPayloadSchema, SUBSCRIPTION_AGGREGATE_TYPE, SUBSCRIPTION_CANCELED_EVENT_QN, SUBSCRIPTION_CANCELED_EVENT_SHORT, SUBSCRIPTION_CREATED_EVENT_QN, SUBSCRIPTION_CREATED_EVENT_SHORT, SUBSCRIPTION_UPDATED_EVENT_QN, SUBSCRIPTION_UPDATED_EVENT_SHORT, type SubscriptionEventHeaders, type SubscriptionEventPayload, subscriptionEventPayloadSchema, } from "./events.ts";
10
+ export { createBillingFoundationFeature } from "./feature.ts";
11
+ export { getSubscriptionForTenant, type SubscriptionView } from "./get-subscription-for-tenant.ts";
12
+ export { paymentsProjectionTable, subscriptionsProjectionTable } from "./projection.ts";
13
+ export { billingPlansPanel, createBillingPlansScreen } from "./screens.ts";
14
+ export { createSubscriptionTierSync, effectiveTierFromSubscription, SUBSCRIPTION_WEBHOOK_PATH, type SubscriptionTierSyncDeps, type TierSyncResult, } from "./subscription-tier-sync.ts";
15
+ export { type BillingFoundationOptions, type BillingPlanBenefit, type BillingPlanCatalog, type BillingPlanPrice, type BillingPlansResult, type BillingPlanView, type ConsumerProtectionOptions, KNOWN_RECURRING_INTERVALS, type LegalLinkSet, type PaymentEvent, type ProviderPrice, type ProviderSubscriptionSnapshot, type RecurringInterval, type SubscriptionEvent, type SubscriptionProviderPlugin, } from "./types.ts";
16
+ export { createSubscriptionWebhookRoute, type SubscriptionWebhookRouteOptions, } from "./webhook-handler.ts";
@@ -8,7 +8,7 @@ export { CONSENT_LOCALES, resolveConsentLocale, } from "./consumer-protection/co
8
8
  export { createContractTerminationRoutes, } from "./consumer-protection/termination-pages.js";
9
9
  export { paymentEntity, subscriptionEntity } from "./entities.js";
10
10
  export { INVOICE_PAID_EVENT_QN, INVOICE_PAID_EVENT_SHORT, INVOICE_PAYMENT_FAILED_EVENT_QN, INVOICE_PAYMENT_FAILED_EVENT_SHORT, PAYMENT_AGGREGATE_TYPE, PAYMENT_RECEIVED_EVENT_QN, PAYMENT_RECEIVED_EVENT_SHORT, paymentEventPayloadSchema, SUBSCRIPTION_AGGREGATE_TYPE, SUBSCRIPTION_CANCELED_EVENT_QN, SUBSCRIPTION_CANCELED_EVENT_SHORT, SUBSCRIPTION_CREATED_EVENT_QN, SUBSCRIPTION_CREATED_EVENT_SHORT, SUBSCRIPTION_UPDATED_EVENT_QN, SUBSCRIPTION_UPDATED_EVENT_SHORT, subscriptionEventPayloadSchema, } from "./events.js";
11
- export { billingFoundationFeature, createBillingFoundationFeature } from "./feature.js";
11
+ export { createBillingFoundationFeature } from "./feature.js";
12
12
  export { getSubscriptionForTenant } from "./get-subscription-for-tenant.js";
13
13
  export { paymentsProjectionTable, subscriptionsProjectionTable } from "./projection.js";
14
14
  export { billingPlansPanel, createBillingPlansScreen } from "./screens.js";
@@ -1,5 +1,5 @@
1
1
  import type { HandlerContext } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { BillingPlanCatalog, BillingPlansResult, ProviderPrice, SubscriptionProviderPlugin } from "./types.js";
2
+ import type { BillingPlanCatalog, BillingPlansResult, ProviderPrice, SubscriptionProviderPlugin } from "./types.ts";
3
3
  /** `catalog?.purchaseRoles ?? DEFAULT_PURCHASE_ROLES` — the one place this
4
4
  * fallback is spelled out; plan-catalog.ts and the start-plan-checkout/
5
5
  * switch-plan/create-portal-session handlers all call this instead of
@@ -1,17 +1,36 @@
1
1
  import type { ExtraRouteDefinition, SignatureExtraRouteDeps } from "@cosmicdrift/kumiko-framework/api";
2
2
  import type { TenantId } from "@cosmicdrift/kumiko-framework/engine";
3
+ import type { PaymentEvent, SubscriptionEvent } from "./types.ts";
3
4
  export declare const SUBSCRIPTION_WEBHOOK_PATH = "/webhooks/subscription/:providerName";
4
5
  export type SubscriptionTierSyncDeps<TTier extends string> = {
5
6
  readonly isTierName: (value: string) => value is TTier;
6
7
  readonly defaultTier: TTier;
7
8
  readonly onSyncError?: "log" | "fail-webhook";
9
+ /** Runs after every webhook whose sync succeeded, also when the tier stayed the same
10
+ * (`changed: false`). Not called when the tenant has no subscription yet, when a
11
+ * manual grant was kept, or when the sync failed. A throw counts as a sync failure
12
+ * and follows `onSyncError`. */
13
+ readonly afterSync?: (result: TierSyncResult<TTier>) => Promise<void>;
14
+ };
15
+ export type TierSyncResult<TTier extends string> = {
16
+ readonly tenantId: TenantId;
17
+ /** The tier the subscription yields. */
18
+ readonly tier: TTier;
19
+ /** True when this sync created or updated the tenant's tier assignment. */
20
+ readonly changed: boolean;
21
+ readonly event: SubscriptionEvent | PaymentEvent;
22
+ };
23
+ type SyncError = {
24
+ code: string;
25
+ message: string;
8
26
  };
9
27
  export declare const TIER_SYNC_MANUAL_GRANT_SKIPPED = "tier_sync_manual_grant_skipped";
10
28
  export declare function effectiveTierFromSubscription<TTier extends string>(status: string | undefined, tier: string | undefined, isTierName: (value: string) => value is TTier, defaultTier: TTier): TTier;
11
29
  export declare function createSubscriptionTierSync<TTier extends string>(deps: SubscriptionTierSyncDeps<TTier>): {
12
- createWebhookRoute: () => ExtraRouteDefinition;
13
- syncTierFromSubscription: (tenantId: TenantId, routeDeps: Pick<SignatureExtraRouteDeps, "dispatchSystemQuery" | "dispatchSystemWrite">) => Promise<{
14
- code: string;
15
- message: string;
16
- } | null>;
30
+ createWebhookRoute: (options?: {
31
+ readonly path?: string;
32
+ }) => ExtraRouteDefinition;
33
+ syncTierFromSubscription: (tenantId: TenantId, routeDeps: Pick<SignatureExtraRouteDeps, "dispatchSystemQuery" | "dispatchSystemWrite">) => Promise<SyncError | null>;
34
+ syncAndNotify: (tenantId: TenantId, event: SubscriptionEvent | PaymentEvent, routeDeps: Pick<SignatureExtraRouteDeps, "dispatchSystemQuery" | "dispatchSystemWrite">) => Promise<SyncError | null>;
17
35
  };
36
+ export {};
@@ -41,7 +41,7 @@ function findTierAssignment(rows, tenantId) {
41
41
  };
42
42
  }
43
43
  export function createSubscriptionTierSync(deps) {
44
- async function syncTierFromSubscription(tenantId, routeDeps) {
44
+ async function runTierSync(tenantId, routeDeps) {
45
45
  try {
46
46
  const subscriptionId = subscriptionAggregateId(tenantId);
47
47
  const subscriptionRows = asRows(await routeDeps.dispatchSystemQuery({
@@ -51,7 +51,7 @@ export function createSubscriptionTierSync(deps) {
51
51
  }));
52
52
  const sub = subscriptionRows.find((row) => row["id"] === subscriptionId);
53
53
  if (!sub)
54
- return null;
54
+ return { error: null };
55
55
  const effective = effectiveTierFromSubscription(typeof sub["status"] === "string" ? sub["status"] : undefined, typeof sub["tier"] === "string" ? sub["tier"] : undefined, deps.isTierName, deps.defaultTier);
56
56
  const tierAssignmentRows = asRows(await routeDeps.dispatchSystemQuery({
57
57
  handlerQn: TierEngineQueries.list,
@@ -71,18 +71,23 @@ export function createSubscriptionTierSync(deps) {
71
71
  });
72
72
  if (!created.isSuccess) {
73
73
  return {
74
- code: "tier_sync_failed",
75
- message: `tier-engine create with "${effective}" failed: ${created.error?.code ?? "unknown"}`,
74
+ error: {
75
+ code: "tier_sync_failed",
76
+ message: `tier-engine create with "${effective}" failed: ${created.error?.code ?? "unknown"}`,
77
+ },
76
78
  };
77
79
  }
78
- return null;
80
+ return { error: null, applied: { tier: effective, changed: true } };
81
+ }
82
+ if (assignment.tier === effective) {
83
+ return { error: null, applied: { tier: effective, changed: false } };
79
84
  }
80
- if (assignment.tier === effective)
81
- return null;
82
85
  if (assignment.source === TierAssignmentSources.manual) {
83
86
  return {
84
- code: TIER_SYNC_MANUAL_GRANT_SKIPPED,
85
- message: `manual tier grant "${String(assignment.tier)}" kept although the subscription yields "${effective}"`,
87
+ error: {
88
+ code: TIER_SYNC_MANUAL_GRANT_SKIPPED,
89
+ message: `manual tier grant "${String(assignment.tier)}" kept although the subscription yields "${effective}"`,
90
+ },
86
91
  };
87
92
  }
88
93
  const result = await routeDeps.dispatchSystemWrite({
@@ -96,11 +101,13 @@ export function createSubscriptionTierSync(deps) {
96
101
  });
97
102
  if (!result.isSuccess) {
98
103
  return {
99
- code: "tier_sync_failed",
100
- message: `tier-engine update to "${effective}" failed: ${result.error?.code ?? "unknown"}`,
104
+ error: {
105
+ code: "tier_sync_failed",
106
+ message: `tier-engine update to "${effective}" failed: ${result.error?.code ?? "unknown"}`,
107
+ },
101
108
  };
102
109
  }
103
- return null;
110
+ return { error: null, applied: { tier: effective, changed: true } };
104
111
  }
105
112
  catch (error) {
106
113
  // dispatchSystemQuery throws (AccessDenied/NotFound/Validation) rather
@@ -109,16 +116,38 @@ export function createSubscriptionTierSync(deps) {
109
116
  // a failed dispatchSystemWrite instead of letting it bubble into the
110
117
  // webhook response as an unhandled 500.
111
118
  return {
112
- code: "tier_sync_failed",
113
- message: error instanceof Error ? error.message : "tier sync threw a non-Error value",
119
+ error: {
120
+ code: "tier_sync_failed",
121
+ message: error instanceof Error ? error.message : "tier sync threw a non-Error value",
122
+ },
123
+ };
124
+ }
125
+ }
126
+ async function syncTierFromSubscription(tenantId, routeDeps) {
127
+ return (await runTierSync(tenantId, routeDeps)).error;
128
+ }
129
+ async function syncAndNotify(tenantId, event, routeDeps) {
130
+ const outcome = await runTierSync(tenantId, routeDeps);
131
+ if (outcome.error !== null || outcome.applied === undefined || !deps.afterSync) {
132
+ return outcome.error;
133
+ }
134
+ try {
135
+ await deps.afterSync({ tenantId, event, ...outcome.applied });
136
+ return null;
137
+ }
138
+ catch (error) {
139
+ return {
140
+ code: "tier_sync_after_hook_failed",
141
+ message: error instanceof Error ? error.message : "afterSync threw a non-Error value",
114
142
  };
115
143
  }
116
144
  }
117
- function createWebhookRoute() {
145
+ // `path` must keep the `:providerName` param the webhook route resolves the provider from.
146
+ function createWebhookRoute(options = {}) {
118
147
  return createSubscriptionWebhookRoute({
119
- path: SUBSCRIPTION_WEBHOOK_PATH,
120
- afterDispatch: async (dispatched, tenantId, routeDeps) => {
121
- const syncError = await syncTierFromSubscription(tenantId, routeDeps);
148
+ path: options.path ?? SUBSCRIPTION_WEBHOOK_PATH,
149
+ afterDispatch: async (dispatched, tenantId, routeDeps, event) => {
150
+ const syncError = await syncAndNotify(tenantId, event, routeDeps);
122
151
  if (syncError) {
123
152
  // biome-ignore lint/suspicious/noConsole: operator visibility for a post-commit sync failure
124
153
  console.warn(`[subscription-tier-sync] tier sync for tenant ${tenantId} after successful webhook write: ${syncError.code} ${syncError.message}`);
@@ -139,5 +168,5 @@ export function createSubscriptionTierSync(deps) {
139
168
  },
140
169
  });
141
170
  }
142
- return { createWebhookRoute, syncTierFromSubscription };
171
+ return { createWebhookRoute, syncTierFromSubscription, syncAndNotify };
143
172
  }
@@ -2,9 +2,9 @@
2
2
  import type { TenantDb } from "@cosmicdrift/kumiko-framework/db";
3
3
  import type { HandlerContext, TenantId } from "@cosmicdrift/kumiko-framework/engine";
4
4
  import type { SecretsContext } from "@cosmicdrift/kumiko-framework/secrets";
5
- import { type BillingEventKinds, type BillingPlanAction, SUBSCRIPTION_PROVIDER_EXTENSION, type SubscriptionCancelTiming, type SubscriptionEventType, type SubscriptionStatus, type TerminationScope } from "./constants.js";
6
- import type { OrderItem } from "./consumer-protection/consent-gate.js";
7
- import type { ConsentLocale } from "./consumer-protection/consent-locale.js";
5
+ import { type BillingEventKinds, type BillingPlanAction, SUBSCRIPTION_PROVIDER_EXTENSION, type SubscriptionCancelTiming, type SubscriptionEventType, type SubscriptionStatus, type TerminationScope } from "./constants.ts";
6
+ import type { OrderItem } from "./consumer-protection/consent-gate.ts";
7
+ import type { ConsentLocale } from "./consumer-protection/consent-locale.ts";
8
8
  export type SubscriptionEvent = {
9
9
  /** Discriminator against PaymentEvent. Optional (instead of required) so
10
10
  * existing plugins like subscription-mollie, which don't set this field,
@@ -1,4 +1,4 @@
1
- import { type BillingFoundationOptions } from "./types.js";
1
+ import { type BillingFoundationOptions } from "./types.ts";
2
2
  /** Validates `options` and throws a plain `Error` with a clear message at
3
3
  * feature-definition time — same pattern as `createCapOverviewFeature`.
4
4
  * `createBillingFoundationFeature()` (no options) always succeeds; the
@@ -1,6 +1,6 @@
1
1
  import type { WriteResult } from "@cosmicdrift/kumiko-headless";
2
2
  import { type ReactNode } from "react";
3
- import type { BillingPlansResult } from "../types.js";
3
+ import type { BillingPlansResult } from "../types.ts";
4
4
  export declare const CONSENT_TEXT_OUTDATED_CODE = "consent_text_outdated";
5
5
  type ConsumerProtectionView = NonNullable<BillingPlansResult["consumerProtection"]>;
6
6
  export type CheckoutConsentPayload = {
@@ -1,6 +1,6 @@
1
- export { BILLING_PLANS_SCREEN_ID, type BillingPlanAction, BillingPlanActions, SubscriptionFoundationHandlers, SubscriptionFoundationQueries, type SubscriptionStatus, SubscriptionStatuses, } from "../constants.js";
2
- export { CONSENT_LOCALES, type ConsentLocale, resolveConsentLocale, } from "../consumer-protection/consent-locale.js";
3
- export type { BillingPlanBenefit, BillingPlanCatalog, BillingPlansResult, BillingPlanView, LegalLinkSet, } from "../types.js";
4
- export { BillingPlansPanel } from "./billing-plans-panel.js";
5
- export { CheckoutConsentDialog, type CheckoutConsentDialogProps, type CheckoutConsentPayload, CONSENT_TEXT_OUTDATED_CODE, } from "./checkout-consent-dialog.js";
6
- export { type BillingFoundationClientOptions, billingFoundationClient } from "./client-plugin.js";
1
+ export { BILLING_PLANS_SCREEN_ID, type BillingPlanAction, BillingPlanActions, SubscriptionFoundationHandlers, SubscriptionFoundationQueries, type SubscriptionStatus, SubscriptionStatuses, } from "../constants.ts";
2
+ export { CONSENT_LOCALES, type ConsentLocale, resolveConsentLocale, } from "../consumer-protection/consent-locale.ts";
3
+ export type { BillingPlanBenefit, BillingPlanCatalog, BillingPlansResult, BillingPlanView, LegalLinkSet, } from "../types.ts";
4
+ export { BillingPlansPanel } from "./billing-plans-panel.tsx";
5
+ export { CheckoutConsentDialog, type CheckoutConsentDialogProps, type CheckoutConsentPayload, CONSENT_TEXT_OUTDATED_CODE, } from "./checkout-consent-dialog.tsx";
6
+ export { type BillingFoundationClientOptions, billingFoundationClient } from "./client-plugin.tsx";
@@ -1,3 +1,4 @@
1
+ import type { PaymentEvent, SubscriptionEvent } from "./types.ts";
1
2
  export type SubscriptionWebhookRouteOptions = {
2
3
  /** Route path — MUST carry the `:providerName` path-param. Default
3
4
  * "/api/subscription/webhook/:providerName". */
@@ -7,7 +8,7 @@ export type SubscriptionWebhookRouteOptions = {
7
8
  * duplicating the provider-resolve/payload-mapping logic above. Returning
8
9
  * a failed WriteResult turns the response into the same 500 a dispatch
9
10
  * failure would produce. */
10
- readonly afterDispatch?: (dispatched: import("@cosmicdrift/kumiko-framework/engine").WriteResult, tenantId: import("@cosmicdrift/kumiko-framework/engine").TenantId, deps: import("@cosmicdrift/kumiko-framework/api").SignatureExtraRouteDeps) => Promise<import("@cosmicdrift/kumiko-framework/engine").WriteResult>;
11
+ readonly afterDispatch?: (dispatched: import("@cosmicdrift/kumiko-framework/engine").WriteResult, tenantId: import("@cosmicdrift/kumiko-framework/engine").TenantId, deps: import("@cosmicdrift/kumiko-framework/api").SignatureExtraRouteDeps, event: SubscriptionEvent | PaymentEvent) => Promise<import("@cosmicdrift/kumiko-framework/engine").WriteResult>;
11
12
  };
12
13
  /**
13
14
  * Builds the `entry:"signature"` extraRoute definition. Mount via
@@ -68,7 +68,7 @@ export function createSubscriptionWebhookRoute(options = {}) {
68
68
  },
69
69
  });
70
70
  return respondFromDispatch(c, dispatched.isSuccess && options.afterDispatch
71
- ? await options.afterDispatch(dispatched, tenantId, deps)
71
+ ? await options.afterDispatch(dispatched, tenantId, deps, parsed)
72
72
  : dispatched, "subscription_payment_webhook_processing_failed", "Internal error processing payment event");
73
73
  }
74
74
  const dispatched = await deps.dispatchSystemWrite({
@@ -88,7 +88,7 @@ export function createSubscriptionWebhookRoute(options = {}) {
88
88
  },
89
89
  });
90
90
  return respondFromDispatch(c, dispatched.isSuccess && options.afterDispatch
91
- ? await options.afterDispatch(dispatched, tenantId, deps)
91
+ ? await options.afterDispatch(dispatched, tenantId, deps, parsed)
92
92
  : dispatched, "subscription_webhook_processing_failed", "Internal error processing subscription event");
93
93
  },
94
94
  });
@@ -1,7 +1,7 @@
1
- import type { CapCounterContext } from "./book-cap-usage.js";
2
- import { type CalendarCapReservation } from "./cap-reservation.js";
3
- import { type SoftHitNotifier } from "./enforce-cap.js";
4
- import type { CalendarCapDef } from "./with-cap-enforcement.js";
1
+ import type { CapCounterContext } from "./book-cap-usage.ts";
2
+ import { type CalendarCapReservation } from "./cap-reservation.ts";
3
+ import { type SoftHitNotifier } from "./enforce-cap.ts";
4
+ import type { CalendarCapDef } from "./with-cap-enforcement.ts";
5
5
  export type CalendarCapUsageReservationSpec = Omit<CalendarCapDef, "amount" | "notify"> & {
6
6
  readonly amount: number;
7
7
  readonly notify?: SoftHitNotifier;
@@ -1,6 +1,6 @@
1
1
  import { UnprocessableError } from "@cosmicdrift/kumiko-framework/errors";
2
2
  import type { ReservationHandle } from "@cosmicdrift/kumiko-types/handlers";
3
- import { type BookCapUsageOptions, type CapCounterContext, type ReadRollingCapUsageOptions } from "./book-cap-usage.js";
3
+ import { type BookCapUsageOptions, type CapCounterContext, type ReadRollingCapUsageOptions } from "./book-cap-usage.ts";
4
4
  export type CalendarCapReservation = ReservationHandle & {
5
5
  readonly reservationId: string;
6
6
  readonly counterValue: number;
@@ -1,6 +1,6 @@
1
1
  import { KumikoError } from "@cosmicdrift/kumiko-framework/errors";
2
2
  import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
3
- import { type CapCounterContext } from "./book-cap-usage.js";
3
+ import { type CapCounterContext } from "./book-cap-usage.ts";
4
4
  /**
5
5
  * Cap-Toleranz-Profile — pro Cap-Typ asymmetrisch. Quelle: Memory
6
6
  * `project_pricing_byok_caps` §3 + `docs/plans/marketing/produkt/
@@ -1,7 +1,3 @@
1
1
  export declare function createCapCounterFeature(): import("@cosmicdrift/kumiko-types/feature").FeatureDefinition & {
2
2
  readonly exports: void;
3
3
  };
4
- /** @deprecated Use createCapCounterFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
5
- export declare const capCounterFeature: import("@cosmicdrift/kumiko-types/feature").FeatureDefinition & {
6
- readonly exports: void;
7
- };
@@ -125,5 +125,3 @@ export function createCapCounterFeature() {
125
125
  });
126
126
  }, { dedupeOptions: {} });
127
127
  }
128
- /** @deprecated Use createCapCounterFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
129
- export const capCounterFeature = createCapCounterFeature();
@@ -1,13 +1,13 @@
1
- export { capCounterAggregateId, rollingCapAggregateId } from "./aggregate-id.js";
2
- export { type BookCapUsageOptions, bookCapUsage, type MarkCapSoftWarnedOptions, markCapSoftWarned, type ReadRollingCapUsageOptions, readRollingCapUsage, } from "./book-cap-usage.js";
3
- export { type CalendarCapReservationHandle, type CalendarCapReservationHandleSpec, type CalendarCapUsageReservation, type CalendarCapUsageReservationSpec, calendarCapReservationHandle, reserveCalendarCapUsage, } from "./calendar-cap-usage-reservation.js";
4
- export { CapReservationOverConsumedError, CapReservationSettledError, CapSettleBelowConsumedError, } from "./cap-reservation.js";
5
- export { CAP_COUNTER_FEATURE, CAP_COUNTER_ROLLING_AGGREGATE_TYPE, CapCounterHandlers, CapCounterQueries, ROLLING_INCREMENTED_EVENT_QN, ROLLING_INCREMENTED_EVENT_SHORT, ROLLING_RELEASED_EVENT_QN, ROLLING_RELEASED_EVENT_SHORT, } from "./constants.js";
6
- export { CAP_TOLERANCES, CapExceededError, type CapToleranceProfile, type CapToleranceProfileName, calendarMonthPeriodEndIso, currentCalendarMonthStartIso, type EnforceCapResult, enforceCap, enforceCapAndMaybeNotify, enforceRollingCap, enforceRollingCapAndMaybeNotify, enforceStockCap, type SoftHitNotifier, type StockCapResult, } from "./enforce-cap.js";
7
- export { capCounterEntity } from "./entity.js";
8
- export { capCounterFeature, createCapCounterFeature } from "./feature.js";
9
- export { readPayloadField } from "./payload-field.js";
10
- export { type CapGuardContext, type CapLimitContext, createStockCapGuard, type StockCapGuard, type StockCapSpec, } from "./stock-cap-guard.js";
11
- export { capReservationsTable, capReservationsTableMeta } from "./tables.js";
12
- export { createValueCapGuard, type ValueCapGuard, type ValueCapSpec, } from "./value-cap-guard.js";
13
- export { type CalendarCapDef, type CalendarCapResolver, type RollingCapDef, type RollingCapResolver, withCapEnforcement, withRollingCapEnforcement, } from "./with-cap-enforcement.js";
1
+ export { capCounterAggregateId, rollingCapAggregateId } from "./aggregate-id.ts";
2
+ export { type BookCapUsageOptions, bookCapUsage, type MarkCapSoftWarnedOptions, markCapSoftWarned, type ReadRollingCapUsageOptions, readRollingCapUsage, } from "./book-cap-usage.ts";
3
+ export { type CalendarCapReservationHandle, type CalendarCapReservationHandleSpec, type CalendarCapUsageReservation, type CalendarCapUsageReservationSpec, calendarCapReservationHandle, reserveCalendarCapUsage, } from "./calendar-cap-usage-reservation.ts";
4
+ export { CapReservationOverConsumedError, CapReservationSettledError, CapSettleBelowConsumedError, } from "./cap-reservation.ts";
5
+ export { CAP_COUNTER_FEATURE, CAP_COUNTER_ROLLING_AGGREGATE_TYPE, CapCounterHandlers, CapCounterQueries, ROLLING_INCREMENTED_EVENT_QN, ROLLING_INCREMENTED_EVENT_SHORT, ROLLING_RELEASED_EVENT_QN, ROLLING_RELEASED_EVENT_SHORT, } from "./constants.ts";
6
+ export { CAP_TOLERANCES, CapExceededError, type CapToleranceProfile, type CapToleranceProfileName, calendarMonthPeriodEndIso, currentCalendarMonthStartIso, type EnforceCapResult, enforceCap, enforceCapAndMaybeNotify, enforceRollingCap, enforceRollingCapAndMaybeNotify, enforceStockCap, type SoftHitNotifier, type StockCapResult, } from "./enforce-cap.ts";
7
+ export { capCounterEntity } from "./entity.ts";
8
+ export { createCapCounterFeature } from "./feature.ts";
9
+ export { readPayloadField } from "./payload-field.ts";
10
+ export { type CapGuardContext, type CapLimitContext, createStockCapGuard, type StockCapGuard, type StockCapSpec, } from "./stock-cap-guard.ts";
11
+ export { capReservationsTable, capReservationsTableMeta } from "./tables.ts";
12
+ export { createValueCapGuard, type ValueCapGuard, type ValueCapSpec, } from "./value-cap-guard.ts";
13
+ export { type CalendarCapDef, type CalendarCapResolver, type RollingCapDef, type RollingCapResolver, withCapEnforcement, withRollingCapEnforcement, } from "./with-cap-enforcement.ts";
@@ -6,7 +6,7 @@ export { CapReservationOverConsumedError, CapReservationSettledError, CapSettleB
6
6
  export { CAP_COUNTER_FEATURE, CAP_COUNTER_ROLLING_AGGREGATE_TYPE, CapCounterHandlers, CapCounterQueries, ROLLING_INCREMENTED_EVENT_QN, ROLLING_INCREMENTED_EVENT_SHORT, ROLLING_RELEASED_EVENT_QN, ROLLING_RELEASED_EVENT_SHORT, } from "./constants.js";
7
7
  export { CAP_TOLERANCES, CapExceededError, calendarMonthPeriodEndIso, currentCalendarMonthStartIso, enforceCap, enforceCapAndMaybeNotify, enforceRollingCap, enforceRollingCapAndMaybeNotify, enforceStockCap, } from "./enforce-cap.js";
8
8
  export { capCounterEntity } from "./entity.js";
9
- export { capCounterFeature, createCapCounterFeature } from "./feature.js";
9
+ export { createCapCounterFeature } from "./feature.js";
10
10
  export { readPayloadField } from "./payload-field.js";
11
11
  export { createStockCapGuard, } from "./stock-cap-guard.js";
12
12
  export { capReservationsTable, capReservationsTableMeta } from "./tables.js";
@@ -1,7 +1,7 @@
1
1
  import type { TenantDb } from "@cosmicdrift/kumiko-framework/db";
2
2
  import type { WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import { type WriteFailure } from "@cosmicdrift/kumiko-framework/errors";
4
- import type { CapGuardContext, CapLimitContext } from "./stock-cap-guard.js";
4
+ import type { CapGuardContext, CapLimitContext } from "./stock-cap-guard.ts";
5
5
  export type ValueCapSpec<TCaps> = {
6
6
  readonly field: string;
7
7
  /** `undefined` = no lower bound for this tier. */
@@ -1,5 +1,5 @@
1
1
  import type { HandlerContext, WriteEvent, WriteHandlerDef } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type CapToleranceProfileName, type SoftHitNotifier } from "./enforce-cap.js";
2
+ import { type CapToleranceProfileName, type SoftHitNotifier } from "./enforce-cap.ts";
3
3
  /**
4
4
  * Pro-call dynamische Cap-Definition. Wird vor jedem Handler-Aufruf
5
5
  * neu evaluiert — typischer Caller liest hier den Tenant-Tier aus
@@ -1,5 +1,5 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { CapSpec } from "./types.js";
2
+ import type { CapSpec } from "./types.ts";
3
3
  export type CreateCapOverviewOptions = {
4
4
  readonly caps: readonly CapSpec[];
5
5
  /** Caps shown as columns on the platform-wide tenant-cap-list screen.
@@ -1,3 +1,3 @@
1
1
  import { type QueryHandlerDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { CapSpec } from "../types.js";
2
+ import type { CapSpec } from "../types.ts";
3
3
  export declare function createCapsUsageQuery(caps: readonly CapSpec[], usageRoles: readonly string[]): QueryHandlerDefinition;