@cosmicdrift/kumiko-bundled-features 0.392.2 → 0.394.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 (380) hide show
  1. package/dist/account-security/feature.d.ts +2 -0
  2. package/dist/account-security/feature.js +3 -1
  3. package/dist/audit/event-classification.js +1 -0
  4. package/dist/auth-email-password/handlers/change-password.write.d.ts +1 -1
  5. package/dist/auth-email-password/handlers/confirm-account-unlock.write.d.ts +1 -1
  6. package/dist/auth-email-password/handlers/invite-accept-with-login.write.d.ts +1 -1
  7. package/dist/auth-email-password/handlers/invite-accept.write.d.ts +1 -1
  8. package/dist/auth-email-password/handlers/invite-create.write.d.ts +2 -2
  9. package/dist/auth-email-password/handlers/invite-signup-complete.write.d.ts +1 -1
  10. package/dist/auth-email-password/handlers/login.write.d.ts +1 -1
  11. package/dist/auth-email-password/handlers/logout.write.d.ts +1 -1
  12. package/dist/auth-email-password/handlers/request-account-unlock.write.d.ts +1 -1
  13. package/dist/auth-email-password/handlers/request-email-verification.write.d.ts +1 -1
  14. package/dist/auth-email-password/handlers/request-password-reset.write.d.ts +1 -1
  15. package/dist/auth-email-password/handlers/reset-password.write.d.ts +1 -1
  16. package/dist/auth-email-password/handlers/signup-confirm.write.d.ts +1 -1
  17. package/dist/auth-email-password/handlers/signup-request.write.d.ts +1 -1
  18. package/dist/auth-email-password/handlers/switch-tenant-mfa-gate.write.d.ts +1 -1
  19. package/dist/auth-email-password/handlers/token-request-handler.d.ts +1 -1
  20. package/dist/auth-email-password/handlers/verify-email.write.d.ts +1 -1
  21. package/dist/auth-email-password/web/auth-client.d.ts +3 -7
  22. package/dist/auth-email-password/web/auth-client.js +3 -24
  23. package/dist/auth-email-password/web/auth-gate.d.ts +2 -4
  24. package/dist/auth-email-password/web/auth-redirect.d.ts +2 -2
  25. package/dist/auth-email-password/web/auth-redirect.js +3 -12
  26. package/dist/auth-email-password/web/index.d.ts +2 -1
  27. package/dist/auth-email-password/web/index.js +1 -0
  28. package/dist/auth-email-password/web/login-failure.d.ts +9 -0
  29. package/dist/auth-email-password/web/login-failure.js +32 -0
  30. package/dist/auth-email-password/web/login-url.d.ts +5 -0
  31. package/dist/auth-email-password/web/login-url.js +13 -0
  32. package/dist/auth-email-password/web/static-login.d.ts +42 -0
  33. package/dist/auth-email-password/web/static-login.js +122 -0
  34. package/dist/auth-mfa/handlers/disable.write.d.ts +1 -1
  35. package/dist/auth-mfa/handlers/enable-confirm-preauth.write.d.ts +1 -1
  36. package/dist/auth-mfa/handlers/enable-confirm.write.d.ts +1 -1
  37. package/dist/auth-mfa/handlers/enable-start-preauth.write.d.ts +1 -1
  38. package/dist/auth-mfa/handlers/enable-start.write.d.ts +1 -1
  39. package/dist/auth-mfa/handlers/regenerate-recovery.write.d.ts +1 -1
  40. package/dist/auth-mfa/handlers/verify.write.d.ts +1 -1
  41. package/dist/auth-mfa/web/mfa-client.js +4 -43
  42. package/dist/billing-foundation/checkout-core.d.ts +2 -1
  43. package/dist/billing-foundation/checkout-core.js +2 -11
  44. package/dist/billing-foundation/events.d.ts +1 -0
  45. package/dist/billing-foundation/events.js +2 -0
  46. package/dist/billing-foundation/feature.js +1 -1
  47. package/dist/billing-foundation/handlers/create-checkout-session.write.js +9 -2
  48. package/dist/billing-foundation/handlers/process-payment-event.write.d.ts +1 -0
  49. package/dist/billing-foundation/handlers/process-payment-event.write.js +2 -0
  50. package/dist/billing-foundation/index.d.ts +1 -1
  51. package/dist/billing-foundation/one-off-checkout-gate.d.ts +9 -0
  52. package/dist/billing-foundation/one-off-checkout-gate.js +30 -0
  53. package/dist/billing-foundation/one-off-customer.d.ts +6 -0
  54. package/dist/billing-foundation/one-off-customer.js +12 -0
  55. package/dist/billing-foundation/plan-catalog.js +1 -0
  56. package/dist/billing-foundation/types.d.ts +25 -0
  57. package/dist/billing-foundation/web/billing-plans-panel.js +1 -0
  58. package/dist/billing-foundation/web/plan-switch-confirm-dialog.js +7 -3
  59. package/dist/billing-foundation/web/plan-switch-recurring.d.ts +16 -0
  60. package/dist/billing-foundation/web/plan-switch-recurring.js +10 -0
  61. package/dist/billing-foundation/webhook-handler.js +1 -0
  62. package/dist/cap-overview/handlers/caps-usage.query.js +3 -3
  63. package/dist/cap-overview/types.d.ts +2 -0
  64. package/dist/channel-in-app/handlers/mark-all-read.write.d.ts +1 -1
  65. package/dist/channel-in-app/handlers/mark-read.write.d.ts +1 -1
  66. package/dist/compliance-profiles/handlers/set-profile.write.d.ts +1 -1
  67. package/dist/compliance-profiles/web/compliance-profile-catalog.js +8 -1
  68. package/dist/config/handlers/reset.write.d.ts +1 -1
  69. package/dist/config/handlers/set.write.d.ts +1 -1
  70. package/dist/crypto-shredding/handlers/forget-subject.write.d.ts +1 -1
  71. package/dist/delivery/handlers/resubscribe-address.write.d.ts +1 -1
  72. package/dist/delivery/handlers/resubscribe-user.write.d.ts +1 -1
  73. package/dist/delivery/handlers/set-preference.write.d.ts +1 -1
  74. package/dist/delivery/handlers/unsubscribe-address.write.d.ts +1 -1
  75. package/dist/delivery/handlers/unsubscribe-user.write.d.ts +1 -1
  76. package/dist/feature-toggles/handlers/set.write.d.ts +1 -1
  77. package/dist/file-foundation/read-file-ref-content.d.ts +2 -0
  78. package/dist/file-foundation/read-file-ref-content.js +9 -3
  79. package/dist/form-draft/handlers/discard.write.d.ts +1 -1
  80. package/dist/form-draft/handlers/save.write.d.ts +1 -1
  81. package/dist/inbound-mail-foundation/account-health.d.ts +17 -0
  82. package/dist/inbound-mail-foundation/account-health.js +101 -0
  83. package/dist/inbound-mail-foundation/account-poll-schedule.d.ts +19 -0
  84. package/dist/inbound-mail-foundation/account-poll-schedule.js +44 -0
  85. package/dist/inbound-mail-foundation/account-poll.d.ts +24 -0
  86. package/dist/inbound-mail-foundation/account-poll.js +157 -0
  87. package/dist/inbound-mail-foundation/account-record.d.ts +1 -0
  88. package/dist/inbound-mail-foundation/account-record.js +1 -0
  89. package/dist/inbound-mail-foundation/account-wake.d.ts +3 -0
  90. package/dist/inbound-mail-foundation/account-wake.js +17 -0
  91. package/dist/inbound-mail-foundation/connect-callback-verify.d.ts +10 -0
  92. package/dist/inbound-mail-foundation/connect-callback-verify.js +31 -0
  93. package/dist/inbound-mail-foundation/connect-route-responses.d.ts +13 -0
  94. package/dist/inbound-mail-foundation/connect-route-responses.js +16 -0
  95. package/dist/inbound-mail-foundation/connect-routes.js +52 -33
  96. package/dist/inbound-mail-foundation/constants.d.ts +50 -2
  97. package/dist/inbound-mail-foundation/constants.js +53 -3
  98. package/dist/inbound-mail-foundation/content-refetch.d.ts +14 -0
  99. package/dist/inbound-mail-foundation/content-refetch.js +93 -0
  100. package/dist/inbound-mail-foundation/describe-error.d.ts +1 -0
  101. package/dist/inbound-mail-foundation/describe-error.js +5 -0
  102. package/dist/inbound-mail-foundation/entities.d.ts +26 -0
  103. package/dist/inbound-mail-foundation/entities.js +43 -3
  104. package/dist/inbound-mail-foundation/events.d.ts +97 -0
  105. package/dist/inbound-mail-foundation/events.js +57 -2
  106. package/dist/inbound-mail-foundation/feature.d.ts +5 -2
  107. package/dist/inbound-mail-foundation/feature.js +122 -106
  108. package/dist/inbound-mail-foundation/file-storage-failure.d.ts +8 -0
  109. package/dist/inbound-mail-foundation/file-storage-failure.js +19 -0
  110. package/dist/inbound-mail-foundation/handlers/account-address.d.ts +16 -0
  111. package/dist/inbound-mail-foundation/handlers/account-address.js +51 -0
  112. package/dist/inbound-mail-foundation/handlers/acknowledge-quarantine.write.d.ts +8 -0
  113. package/dist/inbound-mail-foundation/handlers/acknowledge-quarantine.write.js +39 -0
  114. package/dist/inbound-mail-foundation/handlers/attach-message-content.write.d.ts +60 -0
  115. package/dist/inbound-mail-foundation/handlers/attach-message-content.write.js +128 -0
  116. package/dist/inbound-mail-foundation/handlers/connect-account.write.d.ts +3 -2
  117. package/dist/inbound-mail-foundation/handlers/connect-account.write.js +97 -56
  118. package/dist/inbound-mail-foundation/handlers/disconnect-account.write.d.ts +2 -1
  119. package/dist/inbound-mail-foundation/handlers/disconnect-account.write.js +55 -42
  120. package/dist/inbound-mail-foundation/handlers/ingest-message-prepare.d.ts +26 -0
  121. package/dist/inbound-mail-foundation/handlers/ingest-message-prepare.js +131 -0
  122. package/dist/inbound-mail-foundation/handlers/ingest-message-schema.d.ts +64 -0
  123. package/dist/inbound-mail-foundation/handlers/ingest-message-schema.js +39 -0
  124. package/dist/inbound-mail-foundation/handlers/ingest-message.write.d.ts +74 -21
  125. package/dist/inbound-mail-foundation/handlers/ingest-message.write.js +57 -134
  126. package/dist/inbound-mail-foundation/handlers/list-accounts.query.d.ts +2 -1
  127. package/dist/inbound-mail-foundation/handlers/list-accounts.query.js +60 -26
  128. package/dist/inbound-mail-foundation/handlers/list-messages.query.d.ts +2 -1
  129. package/dist/inbound-mail-foundation/handlers/list-messages.query.js +43 -29
  130. package/dist/inbound-mail-foundation/handlers/list-quarantine.query.d.ts +3 -0
  131. package/dist/inbound-mail-foundation/handlers/list-quarantine.query.js +75 -0
  132. package/dist/inbound-mail-foundation/handlers/mark-credential-stored.write.d.ts +7 -0
  133. package/dist/inbound-mail-foundation/handlers/mark-credential-stored.write.js +38 -0
  134. package/dist/inbound-mail-foundation/handlers/message-content.d.ts +70 -0
  135. package/dist/inbound-mail-foundation/handlers/message-content.js +137 -0
  136. package/dist/inbound-mail-foundation/handlers/message-content.query.d.ts +19 -0
  137. package/dist/inbound-mail-foundation/handlers/message-content.query.js +59 -0
  138. package/dist/inbound-mail-foundation/handlers/message-detail.query.d.ts +3 -0
  139. package/dist/inbound-mail-foundation/handlers/message-detail.query.js +23 -0
  140. package/dist/inbound-mail-foundation/handlers/reactivate-account.write.d.ts +8 -0
  141. package/dist/inbound-mail-foundation/handlers/reactivate-account.write.js +84 -0
  142. package/dist/inbound-mail-foundation/handlers/retry-quarantined-message.write.d.ts +8 -0
  143. package/dist/inbound-mail-foundation/handlers/retry-quarantined-message.write.js +34 -0
  144. package/dist/inbound-mail-foundation/handlers/scope-visibility.d.ts +10 -2
  145. package/dist/inbound-mail-foundation/handlers/scope-visibility.js +27 -8
  146. package/dist/inbound-mail-foundation/handlers/set-trusted-authserv-id.write.d.ts +13 -0
  147. package/dist/inbound-mail-foundation/handlers/set-trusted-authserv-id.write.js +54 -0
  148. package/dist/inbound-mail-foundation/handlers/thread-rollup.d.ts +24 -0
  149. package/dist/inbound-mail-foundation/handlers/thread-rollup.js +98 -0
  150. package/dist/inbound-mail-foundation/handlers/trusted-authserv-id.d.ts +3 -0
  151. package/dist/inbound-mail-foundation/handlers/trusted-authserv-id.js +3 -0
  152. package/dist/inbound-mail-foundation/handlers/update-account.write.d.ts +13 -3
  153. package/dist/inbound-mail-foundation/handlers/update-account.write.js +62 -46
  154. package/dist/inbound-mail-foundation/i18n.js +72 -2
  155. package/dist/inbound-mail-foundation/inbound-oauth-flow.d.ts +43 -0
  156. package/dist/inbound-mail-foundation/inbound-oauth-flow.js +1 -0
  157. package/dist/inbound-mail-foundation/index.d.ts +19 -6
  158. package/dist/inbound-mail-foundation/index.js +17 -6
  159. package/dist/inbound-mail-foundation/ingest-failures.d.ts +77 -0
  160. package/dist/inbound-mail-foundation/ingest-failures.js +79 -0
  161. package/dist/inbound-mail-foundation/ingest-payload.d.ts +7 -0
  162. package/dist/inbound-mail-foundation/ingest-payload.js +34 -0
  163. package/dist/inbound-mail-foundation/mail-roles.d.ts +21 -0
  164. package/dist/inbound-mail-foundation/mail-roles.js +83 -0
  165. package/dist/inbound-mail-foundation/normalize-inbound-message.d.ts +17 -0
  166. package/dist/inbound-mail-foundation/normalize-inbound-message.js +90 -0
  167. package/dist/inbound-mail-foundation/oauth-access-token.d.ts +3 -1
  168. package/dist/inbound-mail-foundation/oauth-access-token.js +13 -2
  169. package/dist/inbound-mail-foundation/outbound-attachment-access.d.ts +5 -0
  170. package/dist/inbound-mail-foundation/outbound-attachment-access.js +16 -0
  171. package/dist/inbound-mail-foundation/outbound-attachments.d.ts +18 -0
  172. package/dist/inbound-mail-foundation/outbound-attachments.js +77 -0
  173. package/dist/inbound-mail-foundation/outbound-mail.d.ts +15 -1
  174. package/dist/inbound-mail-foundation/outbound-mail.js +4 -0
  175. package/dist/inbound-mail-foundation/probe.js +1 -1
  176. package/dist/inbound-mail-foundation/projection.d.ts +28 -0
  177. package/dist/inbound-mail-foundation/projection.js +25 -3
  178. package/dist/inbound-mail-foundation/provider-errors.d.ts +28 -0
  179. package/dist/inbound-mail-foundation/provider-errors.js +66 -0
  180. package/dist/inbound-mail-foundation/quarantine-entities.d.ts +61 -0
  181. package/dist/inbound-mail-foundation/quarantine-entities.js +47 -0
  182. package/dist/inbound-mail-foundation/quarantine-header-import.d.ts +9 -0
  183. package/dist/inbound-mail-foundation/quarantine-header-import.js +53 -0
  184. package/dist/inbound-mail-foundation/quarantine-retry.d.ts +13 -0
  185. package/dist/inbound-mail-foundation/quarantine-retry.js +97 -0
  186. package/dist/inbound-mail-foundation/quarantine-screens.d.ts +4 -0
  187. package/dist/inbound-mail-foundation/quarantine-screens.js +57 -0
  188. package/dist/inbound-mail-foundation/quarantine.d.ts +13 -0
  189. package/dist/inbound-mail-foundation/quarantine.js +46 -0
  190. package/dist/inbound-mail-foundation/retention-job.d.ts +2 -0
  191. package/dist/inbound-mail-foundation/retention-job.js +62 -0
  192. package/dist/inbound-mail-foundation/retention-sweep.d.ts +4 -0
  193. package/dist/inbound-mail-foundation/retention-sweep.js +35 -8
  194. package/dist/inbound-mail-foundation/screens.d.ts +14 -2
  195. package/dist/inbound-mail-foundation/screens.js +217 -79
  196. package/dist/inbound-mail-foundation/send-from-account.d.ts +11 -1
  197. package/dist/inbound-mail-foundation/send-from-account.js +19 -2
  198. package/dist/inbound-mail-foundation/sender-auth.d.ts +63 -0
  199. package/dist/inbound-mail-foundation/sender-auth.js +198 -0
  200. package/dist/inbound-mail-foundation/supervisor-ingest.d.ts +43 -0
  201. package/dist/inbound-mail-foundation/supervisor-ingest.js +195 -0
  202. package/dist/inbound-mail-foundation/sync-account-now.d.ts +22 -0
  203. package/dist/inbound-mail-foundation/sync-account-now.js +29 -0
  204. package/dist/inbound-mail-foundation/sync-cursor-store.d.ts +9 -0
  205. package/dist/inbound-mail-foundation/sync-cursor-store.js +54 -0
  206. package/dist/inbound-mail-foundation/syncable-accounts.d.ts +16 -0
  207. package/dist/inbound-mail-foundation/syncable-accounts.js +79 -0
  208. package/dist/inbound-mail-foundation/tenant-destroy-hook.js +5 -1
  209. package/dist/inbound-mail-foundation/types.d.ts +61 -62
  210. package/dist/inbound-mail-foundation/types.js +0 -54
  211. package/dist/inbound-mail-foundation/wake-consumer.d.ts +2 -0
  212. package/dist/inbound-mail-foundation/wake-consumer.js +30 -0
  213. package/dist/inbound-mail-foundation/watch-catch-up.d.ts +19 -0
  214. package/dist/inbound-mail-foundation/watch-catch-up.js +33 -0
  215. package/dist/inbound-mail-foundation/watch-lease.d.ts +15 -0
  216. package/dist/inbound-mail-foundation/watch-lease.js +81 -0
  217. package/dist/inbound-mail-foundation/watch-supervisor-types.d.ts +83 -0
  218. package/dist/inbound-mail-foundation/watch-supervisor-types.js +1 -0
  219. package/dist/inbound-mail-foundation/watch-supervisor.d.ts +1 -53
  220. package/dist/inbound-mail-foundation/watch-supervisor.js +123 -290
  221. package/dist/inbound-mail-foundation/web/client-plugin.d.ts +14 -0
  222. package/dist/inbound-mail-foundation/web/client-plugin.js +40 -0
  223. package/dist/inbound-mail-foundation/web/constants.d.ts +5 -0
  224. package/dist/inbound-mail-foundation/web/constants.js +6 -0
  225. package/dist/inbound-mail-foundation/web/index.d.ts +1 -0
  226. package/dist/inbound-mail-foundation/web/index.js +1 -0
  227. package/dist/inbound-provider-imap/connect-mailbox.d.ts +28 -5
  228. package/dist/inbound-provider-imap/connect-mailbox.js +91 -41
  229. package/dist/inbound-provider-imap/connect-my-mailbox.d.ts +13 -0
  230. package/dist/inbound-provider-imap/connect-my-mailbox.js +25 -0
  231. package/dist/inbound-provider-imap/constants.d.ts +12 -1
  232. package/dist/inbound-provider-imap/constants.js +12 -1
  233. package/dist/inbound-provider-imap/credential-document.js +2 -2
  234. package/dist/inbound-provider-imap/download-batch.d.ts +6 -0
  235. package/dist/inbound-provider-imap/download-batch.js +24 -0
  236. package/dist/inbound-provider-imap/feature.d.ts +2 -2
  237. package/dist/inbound-provider-imap/feature.js +49 -32
  238. package/dist/inbound-provider-imap/fetch-content.d.ts +4 -0
  239. package/dist/inbound-provider-imap/fetch-content.js +68 -0
  240. package/dist/inbound-provider-imap/i18n.js +18 -2
  241. package/dist/inbound-provider-imap/imap-client.d.ts +27 -23
  242. package/dist/inbound-provider-imap/imap-client.js +30 -68
  243. package/dist/inbound-provider-imap/index.d.ts +2 -1
  244. package/dist/inbound-provider-imap/index.js +2 -1
  245. package/dist/inbound-provider-imap/mime-content.d.ts +11 -0
  246. package/dist/inbound-provider-imap/mime-content.js +66 -0
  247. package/dist/inbound-provider-imap/parse-message.d.ts +35 -0
  248. package/dist/inbound-provider-imap/parse-message.js +113 -0
  249. package/dist/inbound-provider-imap/reconnect-account.d.ts +17 -0
  250. package/dist/inbound-provider-imap/reconnect-account.js +18 -0
  251. package/dist/inbound-provider-imap/reconnect-mailbox.d.ts +14 -0
  252. package/dist/inbound-provider-imap/reconnect-mailbox.js +71 -0
  253. package/dist/inbound-provider-imap/reconnect-prefill.query.d.ts +3 -0
  254. package/dist/inbound-provider-imap/reconnect-prefill.query.js +34 -0
  255. package/dist/inbound-provider-imap/screens.d.ts +6 -1
  256. package/dist/inbound-provider-imap/screens.js +174 -41
  257. package/dist/inbound-provider-imap/send-mail.d.ts +2 -2
  258. package/dist/inbound-provider-imap/send-mail.js +8 -1
  259. package/dist/inbound-provider-imap/sender-auth-headers.d.ts +3 -0
  260. package/dist/inbound-provider-imap/sender-auth-headers.js +18 -0
  261. package/dist/inbound-provider-inmemory/feature.d.ts +15 -0
  262. package/dist/inbound-provider-inmemory/feature.js +57 -2
  263. package/dist/inbound-provider-inmemory/index.d.ts +1 -1
  264. package/dist/inbound-provider-inmemory/index.js +1 -1
  265. package/dist/jobs/handlers/consumer.write.d.ts +4 -4
  266. package/dist/jobs/handlers/retry.write.d.ts +1 -1
  267. package/dist/jobs/handlers/trigger.write.d.ts +1 -1
  268. package/dist/managed-pages/handlers/set.write.d.ts +1 -1
  269. package/dist/managed-pages/web/i18n.js +1 -0
  270. package/dist/personal-access-tokens/handlers/create.write.d.ts +1 -1
  271. package/dist/personal-access-tokens/handlers/revoke.write.d.ts +1 -1
  272. package/dist/readiness/handlers/run-probes.write.d.ts +1 -1
  273. package/dist/secrets/handlers/delete.write.d.ts +1 -1
  274. package/dist/secrets/handlers/set.write.d.ts +1 -1
  275. package/dist/sessions/handlers/revoke-all-for-user.write.d.ts +1 -1
  276. package/dist/sessions/handlers/revoke-all-others.write.d.ts +1 -1
  277. package/dist/sessions/handlers/revoke.write.d.ts +1 -1
  278. package/dist/subscription-paddle/checkout-config.query.d.ts +3 -0
  279. package/dist/subscription-paddle/checkout-config.query.js +14 -0
  280. package/dist/subscription-paddle/checkout-methods.d.ts +6 -0
  281. package/dist/subscription-paddle/checkout-methods.js +85 -0
  282. package/dist/subscription-paddle/checkout-page.d.ts +19 -0
  283. package/dist/subscription-paddle/checkout-page.js +126 -0
  284. package/dist/subscription-paddle/client.d.ts +24 -0
  285. package/dist/subscription-paddle/client.js +60 -0
  286. package/dist/subscription-paddle/constants.d.ts +16 -0
  287. package/dist/subscription-paddle/constants.js +25 -0
  288. package/dist/subscription-paddle/feature.d.ts +49 -0
  289. package/dist/subscription-paddle/feature.js +192 -0
  290. package/dist/subscription-paddle/index.d.ts +2 -0
  291. package/dist/subscription-paddle/index.js +4 -0
  292. package/dist/subscription-paddle/plan-switch-methods.d.ts +6 -0
  293. package/dist/subscription-paddle/plan-switch-methods.js +114 -0
  294. package/dist/subscription-paddle/price-methods.d.ts +15 -0
  295. package/dist/subscription-paddle/price-methods.js +105 -0
  296. package/dist/subscription-paddle/runtime.d.ts +42 -0
  297. package/dist/subscription-paddle/runtime.js +109 -0
  298. package/dist/subscription-paddle/subscription-state.d.ts +34 -0
  299. package/dist/subscription-paddle/subscription-state.js +48 -0
  300. package/dist/subscription-paddle/tenant-binding.d.ts +8 -0
  301. package/dist/subscription-paddle/tenant-binding.js +26 -0
  302. package/dist/subscription-paddle/verify-webhook.d.ts +4 -0
  303. package/dist/subscription-paddle/verify-webhook.js +55 -0
  304. package/dist/subscription-paddle/webhook-events.d.ts +9 -0
  305. package/dist/subscription-paddle/webhook-events.js +124 -0
  306. package/dist/template-resolver/handlers/collection-item.query.js +2 -2
  307. package/dist/template-resolver/handlers/collection-list.query.js +4 -2
  308. package/dist/template-resolver/handlers/collection-set.write.d.ts +1 -1
  309. package/dist/template-resolver/handlers/collection-shared.d.ts +11 -0
  310. package/dist/template-resolver/handlers/collection-shared.js +16 -0
  311. package/dist/template-resolver/handlers/copy-locale.write.d.ts +1 -1
  312. package/dist/template-resolver/handlers/discard-draft.write.d.ts +2 -2
  313. package/dist/template-resolver/handlers/import-bundle-system.write.d.ts +1 -1
  314. package/dist/template-resolver/handlers/import-bundle.write.d.ts +1 -1
  315. package/dist/template-resolver/handlers/patch-draft.write.d.ts +1 -1
  316. package/dist/template-resolver/handlers/reset-to-system.write.d.ts +1 -1
  317. package/dist/template-resolver/handlers/resource-link-pdf.write.d.ts +1 -1
  318. package/dist/template-resolver/handlers/resource-remove.write.d.ts +1 -1
  319. package/dist/template-resolver/handlers/resource-upload.write.d.ts +1 -1
  320. package/dist/template-resolver/handlers/send-test.write.d.ts +1 -1
  321. package/dist/template-resolver/handlers/set.write.d.ts +1 -1
  322. package/dist/template-resolver/handlers/toggle-status.write.d.ts +4 -4
  323. package/dist/template-resolver/handlers/upsert-system.write.d.ts +1 -1
  324. package/dist/template-resolver/handlers/upsert-tenant.write.d.ts +1 -1
  325. package/dist/template-resolver/web/client-plugin.d.ts +4 -0
  326. package/dist/template-resolver/web/client-plugin.js +134 -52
  327. package/dist/template-resolver/web/i18n.js +1 -1
  328. package/dist/tenant/handlers/add-member.write.d.ts +1 -1
  329. package/dist/tenant/handlers/cancel-invitation.write.d.ts +1 -1
  330. package/dist/tenant/handlers/create.write.d.ts +1 -1
  331. package/dist/tenant/handlers/remove-member.write.d.ts +1 -1
  332. package/dist/tenant/handlers/toggle-enabled.write.d.ts +2 -2
  333. package/dist/tenant/handlers/update-member-roles.write.d.ts +1 -1
  334. package/dist/tenant/handlers/update.write.d.ts +1 -1
  335. package/dist/tenant-handover/handlers/claim.write.d.ts +1 -1
  336. package/dist/tenant-lifecycle/handlers/cancel-destruction.write.d.ts +1 -1
  337. package/dist/tenant-lifecycle/handlers/request-destruction.write.d.ts +1 -1
  338. package/dist/tier-engine/handlers/set-tenant-tier.write.d.ts +1 -1
  339. package/dist/user/handlers/create.write.d.ts +1 -1
  340. package/dist/user/handlers/update.write.d.ts +1 -1
  341. package/dist/user-data-rights/handlers/cancel-deletion.write.d.ts +1 -1
  342. package/dist/user-data-rights/handlers/confirm-deletion-by-token.write.d.ts +1 -1
  343. package/dist/user-data-rights/handlers/lift-restriction.write.d.ts +1 -1
  344. package/dist/user-data-rights/handlers/request-deletion-by-email.write.d.ts +1 -1
  345. package/dist/user-data-rights/handlers/request-deletion.write.d.ts +1 -1
  346. package/dist/user-data-rights/handlers/request-export.write.d.ts +1 -1
  347. package/dist/user-data-rights/handlers/restrict-account.write.d.ts +1 -1
  348. package/dist/user-data-rights/handlers/run-forget-cleanup.write.d.ts +1 -1
  349. package/dist/user-data-rights-defaults/hooks/file-ref.userdata-hook.js +2 -1
  350. package/dist/user-profile/handlers/change-email.write.d.ts +1 -1
  351. package/dist/waitlist/handlers/export-purge.write.d.ts +2 -2
  352. package/dist/waitlist/handlers/invite.write.d.ts +1 -1
  353. package/dist/waitlist/handlers/reject.write.d.ts +1 -1
  354. package/dist/waitlist/handlers/submit.write.d.ts +1 -1
  355. package/package.json +33 -17
  356. package/src/account-security/changes.json +6 -0
  357. package/src/auth-email-password/changes.json +6 -0
  358. package/src/billing-foundation/changes.json +30 -0
  359. package/src/cap-overview/changes.json +6 -0
  360. package/src/files/changes.json +18 -0
  361. package/src/inbound-mail-foundation/changes.json +155 -0
  362. package/src/inbound-provider-imap/changes.json +42 -0
  363. package/src/jobs/changes.json +18 -0
  364. package/src/subscription-paddle/changes.json +15 -0
  365. package/src/template-resolver/changes.json +12 -0
  366. package/dist/subscription-dodo/client.d.ts +0 -17
  367. package/dist/subscription-dodo/client.js +0 -31
  368. package/dist/subscription-dodo/constants.d.ts +0 -12
  369. package/dist/subscription-dodo/constants.js +0 -19
  370. package/dist/subscription-dodo/feature.d.ts +0 -37
  371. package/dist/subscription-dodo/feature.js +0 -144
  372. package/dist/subscription-dodo/index.d.ts +0 -2
  373. package/dist/subscription-dodo/index.js +0 -4
  374. package/dist/subscription-dodo/plugin-methods.d.ts +0 -23
  375. package/dist/subscription-dodo/plugin-methods.js +0 -260
  376. package/dist/subscription-dodo/runtime.d.ts +0 -27
  377. package/dist/subscription-dodo/runtime.js +0 -89
  378. package/dist/subscription-dodo/verify-webhook.d.ts +0 -37
  379. package/dist/subscription-dodo/verify-webhook.js +0 -189
  380. package/src/subscription-dodo/changes.json +0 -14
@@ -0,0 +1,124 @@
1
+ // Paddle webhook: signature check, then mapping of Paddle's event envelope onto
2
+ // the foundation's normalized events. Events without a valid tenant binding are
3
+ // dropped (200 ignored): see tenant-binding.ts.
4
+ import { BillingEventKinds, SubscriptionEventTypes, } from "@cosmicdrift/kumiko-bundled-features/billing-foundation";
5
+ import { createFallbackLogger } from "@cosmicdrift/kumiko-framework/logging";
6
+ import { parseJsonOrThrow } from "@cosmicdrift/kumiko-framework/utils";
7
+ import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
8
+ import * as z from "zod";
9
+ import { PADDLE_PROVIDER_NAME } from "./constants.js";
10
+ import { mapPaddleSubscriptionState, paddleCustomDataSchema, paddleSubscriptionSchema, } from "./subscription-state.js";
11
+ import { boundTenantOf } from "./tenant-binding.js";
12
+ import { verifyPaddleSignature } from "./verify-webhook.js";
13
+ const PADDLE_SUBSCRIPTION_EVENT_TYPES = {
14
+ "subscription.created": SubscriptionEventTypes.created,
15
+ "subscription.activated": SubscriptionEventTypes.updated,
16
+ "subscription.updated": SubscriptionEventTypes.updated,
17
+ "subscription.trialing": SubscriptionEventTypes.updated,
18
+ "subscription.paused": SubscriptionEventTypes.updated,
19
+ "subscription.resumed": SubscriptionEventTypes.updated,
20
+ "subscription.past_due": SubscriptionEventTypes.invoicePaymentFailed,
21
+ "subscription.canceled": SubscriptionEventTypes.canceled,
22
+ };
23
+ const TRANSACTION_COMPLETED = "transaction.completed";
24
+ const envelopeSchema = z.object({
25
+ event_id: z.string().min(1),
26
+ event_type: z.string(),
27
+ occurred_at: z.iso.datetime({ offset: true }),
28
+ data: z.unknown(),
29
+ });
30
+ const paddleTransactionSchema = z.object({
31
+ id: z.string().min(1),
32
+ subscription_id: z.string().nullish(),
33
+ customer_id: z.string().min(1).nullish(),
34
+ custom_data: paddleCustomDataSchema,
35
+ items: z.array(z.object({
36
+ price: z.object({ id: z.string().min(1) }),
37
+ quantity: z.number().int().positive().optional(),
38
+ })),
39
+ });
40
+ function currentUnixSeconds() {
41
+ return Math.floor(Temporal.Now.instant().epochMilliseconds / 1000);
42
+ }
43
+ function parsePaymentEvent(providerEventId, data, bindingKey) {
44
+ const parsed = paddleTransactionSchema.safeParse(data);
45
+ if (!parsed.success)
46
+ return null;
47
+ const transaction = parsed.data;
48
+ // A subscription's own payments are covered by its subscription.* events.
49
+ if (transaction.subscription_id)
50
+ return null;
51
+ const priceId = transaction.items[0]?.price.id;
52
+ const quantity = transaction.items[0]?.quantity ?? 1;
53
+ const bound = boundTenantOf(transaction.custom_data, bindingKey);
54
+ if (!bound || !priceId || !transaction.customer_id)
55
+ return null;
56
+ return {
57
+ kind: BillingEventKinds.payment,
58
+ providerEventId,
59
+ providerName: PADDLE_PROVIDER_NAME,
60
+ tenantId: bound.tenantId,
61
+ ...(bound.consentId !== undefined && { consentId: bound.consentId }),
62
+ providerCheckoutId: transaction.id,
63
+ providerCustomerId: transaction.customer_id,
64
+ priceId,
65
+ quantity,
66
+ };
67
+ }
68
+ // Subscription prices are meant to be quantity 1; the tier is still set, but a
69
+ // different quantity is worth an operator's attention. Event id and quantity only.
70
+ function warnOnUnexpectedQuantity(providerEventId, items) {
71
+ for (const item of items) {
72
+ if (item.quantity !== undefined && item.quantity !== 1) {
73
+ createFallbackLogger("subscription-paddle").warn("paddle subscription item quantity is not 1; the tier is still set", { providerEventId, quantity: item.quantity });
74
+ }
75
+ }
76
+ }
77
+ function parseSubscriptionEvent(providerEventId, type, providerEventAt, data, options) {
78
+ const parsed = paddleSubscriptionSchema.safeParse(data);
79
+ if (!parsed.success)
80
+ return null;
81
+ const sub = parsed.data;
82
+ const bound = boundTenantOf(sub.custom_data, options.bindingKey);
83
+ const state = mapPaddleSubscriptionState(sub, options.priceToTier);
84
+ if (!bound || !state)
85
+ return null;
86
+ warnOnUnexpectedQuantity(providerEventId, sub.items);
87
+ return {
88
+ providerEventId,
89
+ providerName: PADDLE_PROVIDER_NAME,
90
+ type,
91
+ tenantId: bound.tenantId,
92
+ ...(bound.consentId !== undefined && { consentId: bound.consentId }),
93
+ providerCustomerId: sub.customer_id,
94
+ providerSubscriptionId: sub.id,
95
+ providerEventAt,
96
+ ...state,
97
+ };
98
+ }
99
+ export function verifyAndParsePaddleWebhook(runtime, options) {
100
+ const nowSeconds = options.nowSeconds ?? currentUnixSeconds;
101
+ return async (rawBody, headers, systemSecrets) => {
102
+ const secret = await runtime.resolveWebhookSecret(systemSecrets);
103
+ verifyPaddleSignature(rawBody, headers, secret, nowSeconds());
104
+ // After verification only: an unauthenticated request must not trigger a second secret read.
105
+ const bindingKey = await runtime.resolveTenantBindingKey(systemSecrets);
106
+ // Past verification the body is trusted to be Paddle's; a malformed shape is
107
+ // schema drift, so it is dropped (200 ignored) instead of answered with a 401.
108
+ const envelope = envelopeSchema.safeParse(parseJsonOrThrow(rawBody, "subscription-paddle webhook body"));
109
+ if (!envelope.success)
110
+ return null;
111
+ const { event_id: providerEventId, event_type: type, occurred_at, data } = envelope.data;
112
+ if (type === TRANSACTION_COMPLETED)
113
+ return parsePaymentEvent(providerEventId, data, bindingKey);
114
+ if (!Object.hasOwn(PADDLE_SUBSCRIPTION_EVENT_TYPES, type))
115
+ return null;
116
+ const normalizedType = PADDLE_SUBSCRIPTION_EVENT_TYPES[type];
117
+ if (!normalizedType)
118
+ return null;
119
+ return parseSubscriptionEvent(providerEventId, normalizedType, occurred_at, data, {
120
+ priceToTier: options.priceToTier,
121
+ bindingKey,
122
+ });
123
+ };
124
+ }
@@ -2,7 +2,7 @@ import { fetchOne } from "@cosmicdrift/kumiko-framework/db";
2
2
  import { defineQueryHandler, } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import * as z from "zod";
4
4
  import { DEFAULT_COLLECTION_ACCESS } from "../web/constants.js";
5
- import { collectionStore, toCollectionEntry, } from "./collection-shared.js";
5
+ import { collectionStore, readableCollectionEntry, } from "./collection-shared.js";
6
6
  // Single entry of one collection, for the editor behind a tree node. Same
7
7
  // per-collection construction as collection-list — see there for why.
8
8
  export function makeCollectionItemQuery(collection) {
@@ -31,7 +31,7 @@ export function makeCollectionItemQuery(collection) {
31
31
  });
32
32
  if (!row)
33
33
  return null;
34
- return toCollectionEntry(row);
34
+ return readableCollectionEntry(row, store, `${collection.id}-item`);
35
35
  },
36
36
  });
37
37
  }
@@ -2,7 +2,7 @@ import { castTenantRows, selectMany } from "@cosmicdrift/kumiko-framework/db";
2
2
  import { defineQueryHandler, } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import * as z from "zod";
4
4
  import { DEFAULT_COLLECTION_ACCESS } from "../web/constants.js";
5
- import { collectionStore, toCollectionEntry, } from "./collection-shared.js";
5
+ import { collectionStore, readableCollectionEntry, } from "./collection-shared.js";
6
6
  // One list handler per declared collection: `kind`, `ownership` and `access`
7
7
  // come from the declaration, never from the payload.
8
8
  //
@@ -31,7 +31,9 @@ export function makeCollectionListQuery(collection) {
31
31
  kind: collection.kind,
32
32
  ...store.scopeOf(query.user),
33
33
  }));
34
- return { blocks: rows.map(toCollectionEntry) };
34
+ return {
35
+ blocks: await Promise.all(rows.map((row) => readableCollectionEntry(row, store, `${collection.id}-list`))),
36
+ };
35
37
  },
36
38
  });
37
39
  }
@@ -18,4 +18,4 @@ export declare function makeCollectionSetWrite(collection: ContentCollectionDefi
18
18
  slug: string;
19
19
  locale: string;
20
20
  isNew: boolean;
21
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
21
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -21,8 +21,19 @@ export type CollectionStore = {
21
21
  scopeOf(user: SessionUser): Readonly<Record<string, unknown>>;
22
22
  /** Columns a create needs beyond the editable ones the payload carries. */
23
23
  createDefaults(tenantId: TenantId): Readonly<Record<string, unknown>>;
24
+ /** True when `content` is stored as PII ciphertext and must be decrypted on read. */
25
+ readonly contentIsPii: boolean;
24
26
  };
25
27
  export declare function collectionStore(collection: ContentCollectionDefinition): CollectionStore;
28
+ export declare function readableCollectionEntry(row: CollectionEntryRow, store: CollectionStore, fallbackRequestId: string): Promise<{
29
+ slug: string;
30
+ locale: string;
31
+ title: string | null;
32
+ content: string | null;
33
+ contentFormat: string;
34
+ folder: string | null;
35
+ modifiedAt: globalThis.Temporal.Instant | null;
36
+ }>;
26
37
  export declare function toCollectionEntry(row: CollectionEntryRow): {
27
38
  slug: string;
28
39
  locale: string;
@@ -1,3 +1,5 @@
1
+ import { requestContext } from "@cosmicdrift/kumiko-framework/api";
2
+ import { configuredPiiSubjectKms, decryptPiiFieldValues, } from "@cosmicdrift/kumiko-framework/crypto";
1
3
  import { createEventStoreExecutor } from "@cosmicdrift/kumiko-framework/db";
2
4
  import { SYSTEM_TENANT_ID } from "@cosmicdrift/kumiko-framework/engine";
3
5
  import { templateResourceEntity, templateResourcesTable } from "../table.js";
@@ -18,6 +20,7 @@ export function collectionStore(collection) {
18
20
  executor: userContentExecutor,
19
21
  scopeOf: (user) => ({ ownerId: user.id }),
20
22
  createDefaults: () => ({}),
23
+ contentIsPii: true,
21
24
  };
22
25
  }
23
26
  return {
@@ -31,8 +34,21 @@ export function collectionStore(collection) {
31
34
  parentTemplateId: null,
32
35
  status: "active",
33
36
  }),
37
+ contentIsPii: false,
34
38
  };
35
39
  }
40
+ // Raw reads return the stored column, which is ciphertext for a user-owned entry while a KMS
41
+ // is configured; the API's leak guard rejects any response that still carries it.
42
+ export async function readableCollectionEntry(row, store, fallbackRequestId) {
43
+ const kms = configuredPiiSubjectKms();
44
+ if (!store.contentIsPii || !kms || row.content === null)
45
+ return toCollectionEntry(row);
46
+ const decrypted = await decryptPiiFieldValues({ content: row.content }, ["content"], kms, {
47
+ requestId: requestContext.get()?.requestId ?? fallbackRequestId,
48
+ });
49
+ const content = decrypted["content"];
50
+ return toCollectionEntry({ ...row, content: typeof content === "string" ? content : null });
51
+ }
36
52
  export function toCollectionEntry(row) {
37
53
  return {
38
54
  slug: row.slug,
@@ -21,4 +21,4 @@ export declare function makeCopyLocaleWrite(policy: TemplateEditPolicy): import(
21
21
  sourceId: string | number;
22
22
  sourceVersion: number;
23
23
  copies: readonly import("../store-template-resource.ts").PreparedLinkedResourceCopy[];
24
- }>;
24
+ }, undefined>;
@@ -5,10 +5,10 @@ export declare function makeDiscardDraftWrite(policy: TemplateEditPolicy): impor
5
5
  }, z.core.$strip>, {
6
6
  id: string;
7
7
  discarded: boolean;
8
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
8
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
9
9
  export declare function makeDiscardDraftSystemWrite(policy: TemplateEditPolicy): import("@cosmicdrift/kumiko-types/define-handler").WriteHandlerDefinition<string, z.ZodObject<{
10
10
  id: z.ZodString;
11
11
  }, z.core.$strip>, {
12
12
  id: string;
13
13
  discarded: boolean;
14
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
14
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -37,4 +37,4 @@ export declare const importBundleSystemWrite: import("@cosmicdrift/kumiko-types/
37
37
  }, z.core.$strict>;
38
38
  }, z.core.$strip>, {
39
39
  ids: Record<string, string>;
40
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, import("./bundle-import.ts").PreparedBundleResources>;
40
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, import("./bundle-import.ts").PreparedBundleResources, undefined>;
@@ -39,4 +39,4 @@ export declare function makeImportBundleWrite(policy: TemplateEditPolicy): impor
39
39
  overwrite: z.ZodDefault<z.ZodBoolean>;
40
40
  }, z.core.$strip>, {
41
41
  ids: Record<string, string>;
42
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, import("./bundle-import.ts").PreparedBundleResources>;
42
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, import("./bundle-import.ts").PreparedBundleResources, undefined>;
@@ -64,4 +64,4 @@ export declare function makePatchDraftWrite(policy: TemplateEditPolicy): import(
64
64
  name: z.ZodString;
65
65
  definition: z.ZodNullable<z.ZodUnknown>;
66
66
  }, z.core.$strip>], "op">>;
67
- }, z.core.$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
67
+ }, z.core.$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -6,4 +6,4 @@ export declare function makeResetToSystemWrite(policy: TemplateEditPolicy): impo
6
6
  id: string;
7
7
  status: "archived";
8
8
  systemTemplateId: string;
9
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
9
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -6,4 +6,4 @@ export declare function makeResourceLinkPdfWrite(policy: TemplateEditPolicy): im
6
6
  templateSlug: z.ZodString;
7
7
  fileName: z.ZodString;
8
8
  tenantIdOverride: z.ZodOptional<z.ZodString>;
9
- }, z.core.$strip>, import("../store-template-resource.ts").LinkedTemplatePdfAttachment, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
9
+ }, z.core.$strip>, import("../store-template-resource.ts").LinkedTemplatePdfAttachment, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -7,4 +7,4 @@ export declare function makeResourceRemoveWrite(policy: TemplateEditPolicy): imp
7
7
  }, z.core.$strip>, {
8
8
  key: string;
9
9
  removed: boolean;
10
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
10
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -11,4 +11,4 @@ export declare function makeResourceUploadWrite(policy: TemplateEditPolicy): imp
11
11
  image: "image";
12
12
  }>>;
13
13
  fileName: z.ZodOptional<z.ZodString>;
14
- }, z.core.$strip>, StoredTemplateAttachment | StoredTemplateResource, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, PreparedTemplateFile>;
14
+ }, z.core.$strip>, StoredTemplateAttachment | StoredTemplateResource, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, PreparedTemplateFile, undefined>;
@@ -12,4 +12,4 @@ export declare function makeSendTestWrite(policy: TemplateEditPolicy): import("@
12
12
  }, z.core.$strip>, {
13
13
  subject: string;
14
14
  checks: readonly import("../template-preview.ts").PreviewCheck[];
15
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
15
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -28,4 +28,4 @@ export declare function makeSetWrite(policy: TemplateEditPolicy): import("@cosmi
28
28
  slug: string;
29
29
  locale: string;
30
30
  isNew: boolean;
31
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
31
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -17,23 +17,23 @@ export declare function makeArchiveWrite(policy: TemplateEditPolicy): import("@c
17
17
  }, z.core.$strip>, {
18
18
  id: string;
19
19
  status: TemplateStatus;
20
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
20
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
21
21
  export declare function makePublishWrite(policy: TemplateEditPolicy): import("@cosmicdrift/kumiko-types/define-handler").WriteHandlerDefinition<string, z.ZodObject<{
22
22
  id: z.ZodString;
23
23
  }, z.core.$strip>, {
24
24
  id: string;
25
25
  status: TemplateStatus;
26
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
26
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
27
27
  export declare function makeArchiveSystemWrite(policy: TemplateEditPolicy): import("@cosmicdrift/kumiko-types/define-handler").WriteHandlerDefinition<string, z.ZodObject<{
28
28
  id: z.ZodString;
29
29
  }, z.core.$strip>, {
30
30
  id: string;
31
31
  status: TemplateStatus;
32
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
32
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
33
33
  export declare function makePublishSystemWrite(policy: TemplateEditPolicy): import("@cosmicdrift/kumiko-types/define-handler").WriteHandlerDefinition<string, z.ZodObject<{
34
34
  id: z.ZodString;
35
35
  }, z.core.$strip>, {
36
36
  id: string;
37
37
  status: TemplateStatus;
38
- }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
38
+ }, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
39
39
  export {};
@@ -21,4 +21,4 @@ export declare const upsertSystemWrite: import("@cosmicdrift/kumiko-types/define
21
21
  parentTemplateId: import("zod").ZodOptional<import("zod").ZodString>;
22
22
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
23
23
  folder: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
24
- }, import("zod/v4/core").$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
24
+ }, import("zod/v4/core").$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -28,4 +28,4 @@ export declare function makeUpsertTenantWrite(policy: TemplateEditPolicy): impor
28
28
  active: "active";
29
29
  draft: "draft";
30
30
  }>>;
31
- }, z.core.$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined>;
31
+ }, z.core.$strip>, import("./template-write.ts").WrittenTemplateRow, import("@cosmicdrift/kumiko-types/event-type-map").KumikoEventTypeMap, undefined, undefined>;
@@ -1,4 +1,5 @@
1
1
  import type { TreeNode } from "@cosmicdrift/kumiko-framework/engine";
2
+ import { type FeatureSchema } from "@cosmicdrift/kumiko-renderer";
2
3
  import { type ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
3
4
  export type BlockSummary = {
4
5
  readonly slug: string;
@@ -9,8 +10,11 @@ export type BlockSummary = {
9
10
  readonly modifiedAt: string | null;
10
11
  };
11
12
  export declare function groupBlocksByFolder(blocks: readonly BlockSummary[], tenantIdOverride?: string, collectionId?: string): readonly TreeNode[];
13
+ type ContentCollectionSchema = NonNullable<FeatureSchema["contentCollections"]>[number];
14
+ export declare function canWriteContent(collection: Pick<ContentCollectionSchema, "access"> | undefined, roles: readonly string[] | undefined): boolean;
12
15
  export declare function resolveWriteContentFormat(collectionContentFormat: string | undefined, loadedContentFormat: string | undefined): string | undefined;
13
16
  export declare function textBlocksClient(opts?: {
14
17
  readonly navId?: string;
15
18
  readonly tenantId?: string;
16
19
  }): ClientFeatureDefinition;
20
+ export {};