@cosmicdrift/kumiko-bundled-features 0.377.0 → 0.379.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 (669) hide show
  1. package/dist/account-security/feature.js +2 -2
  2. package/dist/account-security/index.d.ts +2 -2
  3. package/dist/account-security/index.js +2 -2
  4. package/dist/account-security/{constants.js → web/constants.js} +0 -1
  5. package/dist/account-security/{i18n.js → web/i18n.js} +0 -1
  6. package/dist/admin-shell/feature.js +4 -3
  7. package/dist/admin-shell/index.d.ts +2 -2
  8. package/dist/admin-shell/index.js +2 -2
  9. package/dist/admin-shell/web/client-plugin.js +2 -3
  10. package/dist/admin-shell/{constants.js → web/constants.js} +0 -1
  11. package/dist/admin-shell/web/default-translations.d.ts +2 -0
  12. package/dist/admin-shell/web/default-translations.js +4 -0
  13. package/dist/admin-shell/web/i18n.d.ts +5 -2
  14. package/dist/admin-shell/web/i18n.js +50 -5
  15. package/dist/admin-shell/web/index.js +0 -1
  16. package/dist/audit/feature.js +58 -59
  17. package/dist/audit/handlers/audit-events.d.ts +102 -0
  18. package/dist/audit/handlers/audit-events.js +112 -0
  19. package/dist/audit/handlers/audit-system-db.d.ts +1 -0
  20. package/dist/audit/handlers/audit-system-db.js +9 -0
  21. package/dist/audit/handlers/details-all-tenants.query.d.ts +15 -0
  22. package/dist/audit/handlers/details-all-tenants.query.js +20 -0
  23. package/dist/audit/handlers/details.query.d.ts +2 -1
  24. package/dist/audit/handlers/details.query.js +8 -24
  25. package/dist/audit/handlers/list-all-tenants.query.d.ts +41 -0
  26. package/dist/audit/handlers/list-all-tenants.query.js +32 -0
  27. package/dist/audit/handlers/list.query.d.ts +2 -1
  28. package/dist/audit/handlers/list.query.js +9 -99
  29. package/dist/audit/handlers/resolve-audit-tenant.d.ts +3 -1
  30. package/dist/audit/handlers/resolve-audit-tenant.js +21 -7
  31. package/dist/audit/index.d.ts +1 -1
  32. package/dist/audit/index.js +1 -1
  33. package/dist/audit/run-escape-hatch-retention.js +1 -1
  34. package/dist/audit/screens.d.ts +65 -0
  35. package/dist/audit/screens.js +73 -0
  36. package/dist/audit/web/client-plugin.js +2 -3
  37. package/dist/audit/{constants.d.ts → web/constants.d.ts} +8 -0
  38. package/dist/audit/{constants.js → web/constants.js} +8 -1
  39. package/dist/audit/web/default-translations.d.ts +2 -0
  40. package/dist/audit/web/default-translations.js +3 -0
  41. package/dist/audit/web/i18n.d.ts +5 -2
  42. package/dist/audit/web/i18n.js +31 -4
  43. package/dist/audit/web/index.js +0 -1
  44. package/dist/auth-email-password/bootstrap.d.ts +1 -1
  45. package/dist/auth-email-password/bootstrap.js +4 -4
  46. package/dist/auth-email-password/errors.js +1 -1
  47. package/dist/auth-email-password/feature.js +2 -2
  48. package/dist/auth-email-password/handlers/confirm-account-unlock.write.js +1 -1
  49. package/dist/auth-email-password/handlers/invite-accept-with-login.write.js +1 -1
  50. package/dist/auth-email-password/handlers/invite-create.write.d.ts +1 -1
  51. package/dist/auth-email-password/handlers/invite-create.write.js +3 -3
  52. package/dist/auth-email-password/handlers/invite-info.query.js +1 -1
  53. package/dist/auth-email-password/handlers/login.write.d.ts +1 -0
  54. package/dist/auth-email-password/handlers/login.write.js +26 -1
  55. package/dist/auth-email-password/handlers/request-account-unlock.write.js +1 -1
  56. package/dist/auth-email-password/handlers/request-email-verification.write.js +1 -1
  57. package/dist/auth-email-password/handlers/request-password-reset.write.js +1 -1
  58. package/dist/auth-email-password/handlers/reset-password.write.js +1 -1
  59. package/dist/auth-email-password/handlers/verify-email.write.js +1 -1
  60. package/dist/auth-email-password/index.d.ts +1 -1
  61. package/dist/auth-email-password/index.js +1 -1
  62. package/dist/auth-email-password/mail-notifications.js +1 -1
  63. package/dist/auth-email-password/signup-activation.js +1 -1
  64. package/dist/auth-email-password/web/auth-client.js +0 -1
  65. package/dist/auth-email-password/web/auth-form-logic.js +0 -1
  66. package/dist/auth-email-password/web/auth-form-primitives.js +0 -1
  67. package/dist/auth-email-password/web/auth-gate.js +0 -1
  68. package/dist/auth-email-password/web/auth-redirect.js +0 -1
  69. package/dist/auth-email-password/web/client-actions.js +0 -1
  70. package/dist/auth-email-password/web/client-plugin.js +1 -2
  71. package/dist/auth-email-password/web/confirm-account-unlock-screen.js +0 -1
  72. package/dist/auth-email-password/{constants.js → web/constants.js} +3 -6
  73. package/dist/auth-email-password/web/default-topbar-actions.js +0 -1
  74. package/dist/auth-email-password/web/forgot-password-screen.js +0 -1
  75. package/dist/auth-email-password/{i18n.js → web/i18n.js} +3 -4
  76. package/dist/auth-email-password/web/index.d.ts +1 -1
  77. package/dist/auth-email-password/web/index.js +1 -2
  78. package/dist/auth-email-password/web/invite-accept-screen.d.ts +2 -2
  79. package/dist/auth-email-password/web/invite-accept-screen.js +0 -1
  80. package/dist/auth-email-password/web/login-screen.js +0 -1
  81. package/dist/auth-email-password/{mail-i18n.js → web/mail-i18n.js} +0 -1
  82. package/dist/auth-email-password/web/request-account-unlock-screen.js +0 -1
  83. package/dist/auth-email-password/web/reset-password-screen.js +0 -1
  84. package/dist/auth-email-password/web/session-bootstrap-error.js +0 -1
  85. package/dist/auth-email-password/web/session.js +0 -1
  86. package/dist/auth-email-password/web/signup-complete-screen.d.ts +2 -2
  87. package/dist/auth-email-password/web/signup-complete-screen.js +0 -1
  88. package/dist/auth-email-password/web/signup-screen.js +0 -1
  89. package/dist/auth-email-password/web/tenant-menu-items.js +0 -1
  90. package/dist/auth-email-password/web/tenant-switcher.js +0 -1
  91. package/dist/auth-email-password/web/use-shell-user.js +0 -1
  92. package/dist/auth-email-password/web/user-menu.js +0 -1
  93. package/dist/auth-email-password/web/verify-email-screen.js +0 -1
  94. package/dist/auth-mfa/errors.d.ts +1 -1
  95. package/dist/auth-mfa/errors.js +2 -2
  96. package/dist/auth-mfa/handlers/enable-confirm-preauth.write.js +1 -1
  97. package/dist/auth-mfa/handlers/enable-start-preauth.write.js +1 -1
  98. package/dist/auth-mfa/handlers/enable-start.write.js +1 -1
  99. package/dist/auth-mfa/handlers/verify.write.js +1 -1
  100. package/dist/auth-mfa/index.d.ts +1 -1
  101. package/dist/auth-mfa/index.js +1 -1
  102. package/dist/auth-mfa/mfa-status-checker.js +1 -1
  103. package/dist/auth-mfa/screens.js +1 -1
  104. package/dist/auth-mfa/web/client-plugin.js +0 -1
  105. package/dist/auth-mfa/{constants.js → web/constants.js} +0 -1
  106. package/dist/auth-mfa/web/i18n.js +0 -1
  107. package/dist/auth-mfa/web/index.js +0 -1
  108. package/dist/auth-mfa/web/mfa-client.js +0 -1
  109. package/dist/auth-mfa/web/mfa-disable-dialog.js +1 -2
  110. package/dist/auth-mfa/web/mfa-recovery-codes-reveal.js +0 -1
  111. package/dist/auth-mfa/web/mfa-regenerate-recovery-dialog.js +1 -2
  112. package/dist/auth-mfa/web/mfa-setup-preauth-screen.js +11 -18
  113. package/dist/auth-mfa/web/mfa-verify-screen.js +0 -1
  114. package/dist/billing-foundation/checkout-core.js +1 -1
  115. package/dist/billing-foundation/consumer-protection/consent-text.d.ts +2 -2
  116. package/dist/billing-foundation/consumer-protection/consent-text.js +1 -1
  117. package/dist/billing-foundation/consumer-protection/issue-confirmation.js +7 -3
  118. package/dist/billing-foundation/consumer-protection/mail-notifications.js +3 -1
  119. package/dist/billing-foundation/consumer-protection/register-consent.js +1 -1
  120. package/dist/billing-foundation/consumer-protection/register-termination.js +8 -2
  121. package/dist/billing-foundation/consumer-protection/stored-user-email.d.ts +1 -0
  122. package/dist/billing-foundation/consumer-protection/stored-user-email.js +8 -0
  123. package/dist/billing-foundation/consumer-protection/termination-mail.d.ts +5 -1
  124. package/dist/billing-foundation/consumer-protection/termination-mail.js +3 -1
  125. package/dist/billing-foundation/consumer-protection/termination-notify.js +1 -1
  126. package/dist/billing-foundation/consumer-protection/termination-pages.js +109 -15
  127. package/dist/billing-foundation/consumer-protection/termination-record.d.ts +8 -1
  128. package/dist/billing-foundation/consumer-protection/termination-record.js +76 -3
  129. package/dist/billing-foundation/consumer-protection/termination-request.js +33 -6
  130. package/dist/billing-foundation/consumer-protection/termination-revoke.d.ts +28 -0
  131. package/dist/billing-foundation/consumer-protection/termination-revoke.js +149 -0
  132. package/dist/billing-foundation/consumer-protection/termination-texts.d.ts +17 -1
  133. package/dist/billing-foundation/consumer-protection/termination-texts.js +39 -0
  134. package/dist/billing-foundation/events.d.ts +9 -0
  135. package/dist/billing-foundation/events.js +14 -2
  136. package/dist/billing-foundation/feature.js +1 -1
  137. package/dist/billing-foundation/handlers/process-event.write.d.ts +5 -1
  138. package/dist/billing-foundation/handlers/process-event.write.js +57 -3
  139. package/dist/billing-foundation/handlers/switch-plan.write.js +1 -1
  140. package/dist/billing-foundation/handlers/sync-subscription.write.js +1 -1
  141. package/dist/billing-foundation/index.d.ts +2 -2
  142. package/dist/billing-foundation/index.js +2 -2
  143. package/dist/billing-foundation/plan-catalog.js +1 -1
  144. package/dist/billing-foundation/screens.js +1 -1
  145. package/dist/billing-foundation/subscription-tier-sync.js +1 -1
  146. package/dist/billing-foundation/types.d.ts +14 -2
  147. package/dist/billing-foundation/types.js +1 -1
  148. package/dist/billing-foundation/validate-options.js +3 -3
  149. package/dist/billing-foundation/web/billing-contact-plan.js +1 -2
  150. package/dist/billing-foundation/web/billing-plans-panel.js +1 -2
  151. package/dist/billing-foundation/web/cancel-contract-dialog.js +1 -2
  152. package/dist/billing-foundation/web/checkout-consent-dialog.js +1 -2
  153. package/dist/billing-foundation/web/client-plugin.js +1 -1
  154. package/dist/billing-foundation/{constants.d.ts → web/constants.d.ts} +21 -14
  155. package/dist/billing-foundation/{constants.js → web/constants.js} +35 -31
  156. package/dist/billing-foundation/{consumer-protection → web/consumer-protection}/consent-locale.js +0 -1
  157. package/dist/billing-foundation/{contact-card.js → web/contact-card.js} +0 -1
  158. package/dist/billing-foundation/web/index.d.ts +2 -2
  159. package/dist/billing-foundation/web/index.js +2 -3
  160. package/dist/billing-foundation/web/localized-params.js +0 -1
  161. package/dist/billing-foundation/webhook-handler.js +4 -1
  162. package/dist/cap-counter/stock-cap-guard.js +8 -0
  163. package/dist/cap-overview/feature.js +1 -1
  164. package/dist/cap-overview/handlers/caps-usage.query.js +1 -1
  165. package/dist/cap-overview/handlers/tenant-caps-list.query.js +2 -2
  166. package/dist/cap-overview/index.d.ts +2 -2
  167. package/dist/cap-overview/index.js +2 -2
  168. package/dist/cap-overview/screens.js +1 -1
  169. package/dist/cap-overview/web/cap-cards-panel.js +1 -1
  170. package/dist/cap-overview/web/cap-usage-bar.js +1 -2
  171. package/dist/cap-overview/web/client-plugin.js +1 -1
  172. package/dist/cap-overview/{constants.js → web/constants.js} +0 -1
  173. package/dist/cap-overview/web/index.js +0 -1
  174. package/dist/cap-overview/{usage-math.d.ts → web/usage-math.d.ts} +1 -1
  175. package/dist/compliance-profiles/feature.js +1 -1
  176. package/dist/compliance-profiles/index.d.ts +1 -1
  177. package/dist/compliance-profiles/index.js +1 -1
  178. package/dist/compliance-profiles/web/client-plugin.js +1 -2
  179. package/dist/compliance-profiles/web/compliance-profile-catalog.js +1 -2
  180. package/dist/compliance-profiles/{constants.js → web/constants.js} +0 -1
  181. package/dist/compliance-profiles/web/index.js +0 -1
  182. package/dist/config/index.d.ts +1 -1
  183. package/dist/config/index.js +1 -1
  184. package/dist/config/web/client-plugin.d.ts +1 -1
  185. package/dist/config/web/client-plugin.js +1 -2
  186. package/dist/config/{constants.js → web/constants.js} +0 -1
  187. package/dist/config/web/i18n.js +1 -1
  188. package/dist/config/web/index.d.ts +1 -1
  189. package/dist/config/web/index.js +1 -2
  190. package/dist/config/write-helpers.js +1 -1
  191. package/dist/custom-fields/feature.js +1 -1
  192. package/dist/custom-fields/handlers/clear-custom-field.write.js +1 -1
  193. package/dist/custom-fields/handlers/define-tenant-field.write.js +1 -1
  194. package/dist/custom-fields/handlers/delete-system-field.write.js +1 -1
  195. package/dist/custom-fields/handlers/delete-tenant-field.write.js +1 -1
  196. package/dist/custom-fields/handlers/set-custom-field.write.js +1 -1
  197. package/dist/custom-fields/handlers/update-tenant-field.write.js +1 -1
  198. package/dist/custom-fields/index.d.ts +1 -1
  199. package/dist/custom-fields/index.js +1 -1
  200. package/dist/custom-fields/lib/value-schema.js +1 -1
  201. package/dist/custom-fields/schemas.js +1 -1
  202. package/dist/custom-fields/web/client-plugin.js +1 -2
  203. package/dist/custom-fields/{constants.js → web/constants.js} +18 -19
  204. package/dist/custom-fields/web/custom-fields-form-section.js +1 -2
  205. package/dist/custom-fields/web/i18n.js +0 -1
  206. package/dist/custom-fields/web/index.d.ts +1 -1
  207. package/dist/custom-fields/web/index.js +1 -2
  208. package/dist/custom-fields/wire-for-entity.js +1 -1
  209. package/dist/delivery/address-opt-out.js +1 -1
  210. package/dist/delivery/attempt-log-retention.js +21 -3
  211. package/dist/delivery/constants.d.ts +1 -1
  212. package/dist/delivery/constants.js +2 -2
  213. package/dist/delivery/i18n.js +1 -1
  214. package/dist/delivery/unsubscribe-page.js +1 -1
  215. package/dist/delivery/web/client-plugin.js +1 -1
  216. package/dist/delivery/web/delivery-channel-cell.js +0 -1
  217. package/dist/delivery/web/delivery-error-cell.js +0 -1
  218. package/dist/delivery/web/delivery-status-cell.js +1 -2
  219. package/dist/delivery/web/delivery-time-cell.js +0 -1
  220. package/dist/delivery/web/delivery-type-cell.js +0 -1
  221. package/dist/delivery/web/index.js +0 -1
  222. package/dist/delivery/{public-names.js → web/public-names.js} +0 -1
  223. package/dist/document-ingest-foundation/events.d.ts +1 -0
  224. package/dist/document-ingest-foundation/events.js +3 -0
  225. package/dist/document-ingest-foundation/executor.js +2 -1
  226. package/dist/document-ingest-foundation/feature.js +16 -5
  227. package/dist/document-ingest-foundation/index.d.ts +1 -1
  228. package/dist/document-ingest-foundation/index.js +1 -1
  229. package/dist/feature-toggles/feature.d.ts +1 -1
  230. package/dist/feature-toggles/feature.js +2 -2
  231. package/dist/feature-toggles/handlers/list.query.js +1 -1
  232. package/dist/feature-toggles/handlers/registered.query.js +1 -1
  233. package/dist/feature-toggles/handlers/set.write.js +1 -1
  234. package/dist/feature-toggles/index.d.ts +1 -1
  235. package/dist/feature-toggles/index.js +1 -1
  236. package/dist/feature-toggles/web/client-plugin.js +1 -2
  237. package/dist/feature-toggles/{constants.js → web/constants.js} +0 -1
  238. package/dist/feature-toggles/web/index.js +0 -1
  239. package/dist/folders/feature.js +1 -1
  240. package/dist/folders/handlers/clear-folder.write.js +1 -1
  241. package/dist/folders/handlers/delete-folder.write.js +1 -1
  242. package/dist/folders/handlers/set-folder.write.js +1 -1
  243. package/dist/folders/index.d.ts +1 -1
  244. package/dist/folders/index.js +1 -1
  245. package/dist/folders/web/client-plugin.js +1 -2
  246. package/dist/folders/{constants.js → web/constants.js} +0 -1
  247. package/dist/folders/web/folder-manager.js +1 -2
  248. package/dist/folders/web/folder-section.js +1 -2
  249. package/dist/folders/web/i18n.js +0 -1
  250. package/dist/folders/web/index.d.ts +1 -1
  251. package/dist/folders/web/index.js +1 -2
  252. package/dist/folders/web/tree.js +0 -1
  253. package/dist/form-draft/db/queries/cleanup.d.ts +3 -2
  254. package/dist/form-draft/db/queries/cleanup.js +18 -9
  255. package/dist/form-draft/decrypt-draft.d.ts +2 -0
  256. package/dist/form-draft/decrypt-draft.js +19 -0
  257. package/dist/form-draft/entity.js +6 -9
  258. package/dist/form-draft/feature.js +1 -1
  259. package/dist/form-draft/handlers/cleanup.job.d.ts +1 -0
  260. package/dist/form-draft/handlers/cleanup.job.js +17 -4
  261. package/dist/form-draft/handlers/discard.write.js +1 -1
  262. package/dist/form-draft/handlers/get.query.js +6 -7
  263. package/dist/form-draft/handlers/list.query.js +11 -7
  264. package/dist/form-draft/handlers/save.write.js +1 -1
  265. package/dist/form-draft/index.d.ts +1 -1
  266. package/dist/form-draft/index.js +1 -1
  267. package/dist/form-draft/lookup.d.ts +2 -2
  268. package/dist/form-draft/lookup.js +7 -2
  269. package/dist/form-draft/schemas.js +1 -1
  270. package/dist/form-draft/{constants.js → web/constants.js} +0 -1
  271. package/dist/form-draft-user-data/hooks.js +2 -2
  272. package/dist/inbound-mail-foundation/handlers/list-accounts.query.d.ts +1 -1
  273. package/dist/inbound-mail-foundation/handlers/list-accounts.query.js +11 -3
  274. package/dist/inbound-mail-foundation/retention-sweep.js +7 -5
  275. package/dist/jobs/feature.js +2 -2
  276. package/dist/jobs/handlers/retry.write.js +1 -1
  277. package/dist/jobs/handlers/trigger.write.js +1 -1
  278. package/dist/jobs/index.d.ts +1 -1
  279. package/dist/jobs/index.js +1 -1
  280. package/dist/jobs/web/client-plugin.js +2 -3
  281. package/dist/jobs/{constants.js → web/constants.js} +0 -1
  282. package/dist/jobs/web/default-translations.d.ts +2 -0
  283. package/dist/jobs/web/default-translations.js +3 -0
  284. package/dist/jobs/web/i18n.d.ts +5 -2
  285. package/dist/jobs/web/i18n.js +51 -4
  286. package/dist/jobs/web/index.js +0 -1
  287. package/dist/ledger/entity.d.ts +1 -1
  288. package/dist/ledger/entity.js +1 -1
  289. package/dist/ledger/feature.js +1 -1
  290. package/dist/ledger/handlers/confirm-schedule-period.write.js +2 -5
  291. package/dist/ledger/handlers/create-transaction.write.js +1 -1
  292. package/dist/ledger/handlers/reports.query.js +1 -1
  293. package/dist/ledger/handlers/reverse-transaction.write.js +1 -1
  294. package/dist/ledger/index.d.ts +1 -1
  295. package/dist/ledger/index.js +1 -1
  296. package/dist/ledger/recurring.d.ts +1 -1
  297. package/dist/ledger/reports.d.ts +1 -1
  298. package/dist/ledger/schemas.js +1 -1
  299. package/dist/ledger/{constants.js → web/constants.js} +0 -1
  300. package/dist/ledger/web/index.d.ts +1 -1
  301. package/dist/ledger/web/index.js +1 -2
  302. package/dist/legal-pages/feature.d.ts +1 -1
  303. package/dist/legal-pages/feature.js +1 -1
  304. package/dist/legal-pages/index.d.ts +1 -1
  305. package/dist/legal-pages/index.js +1 -1
  306. package/dist/legal-pages/lib/boot-check.d.ts +1 -1
  307. package/dist/legal-pages/lib/boot-check.js +1 -1
  308. package/dist/legal-pages/lib/validate-routes.d.ts +1 -1
  309. package/dist/legal-pages/web/client-plugin.js +1 -2
  310. package/dist/legal-pages/{constants.js → web/constants.js} +6 -8
  311. package/dist/legal-pages/web/index.js +0 -1
  312. package/dist/mail-foundation/i18n.d.ts +5 -2
  313. package/dist/mail-foundation/i18n.js +3 -2
  314. package/dist/mail-transport-smtp/i18n.d.ts +1 -1
  315. package/dist/mail-transport-smtp/i18n.js +1 -1
  316. package/dist/managed-pages/feature.js +1 -1
  317. package/dist/managed-pages/web/client-plugin.js +1 -2
  318. package/dist/managed-pages/web/default-translations.d.ts +2 -0
  319. package/dist/managed-pages/web/default-translations.js +11 -0
  320. package/dist/managed-pages/web/i18n.d.ts +5 -2
  321. package/dist/managed-pages/web/i18n.js +53 -12
  322. package/dist/managed-pages/web/index.d.ts +1 -1
  323. package/dist/managed-pages/web/index.js +1 -2
  324. package/dist/metrics/compute.d.ts +1 -1
  325. package/dist/metrics/compute.js +1 -1
  326. package/dist/metrics/feature.js +1 -1
  327. package/dist/metrics/index.d.ts +1 -1
  328. package/dist/metrics/index.js +1 -1
  329. package/dist/metrics/types.d.ts +1 -1
  330. package/dist/metrics/validate.js +1 -1
  331. package/dist/metrics/{constants.js → web/constants.js} +0 -1
  332. package/dist/metrics/window.d.ts +1 -1
  333. package/dist/notes-history/feature.js +1 -1
  334. package/dist/notes-history/handlers/add-note.write.js +1 -1
  335. package/dist/notes-history/index.d.ts +1 -1
  336. package/dist/notes-history/index.js +1 -1
  337. package/dist/notes-history/web/client-plugin.js +1 -2
  338. package/dist/notes-history/{constants.js → web/constants.js} +0 -1
  339. package/dist/notes-history/web/i18n.js +0 -1
  340. package/dist/notes-history/web/index.d.ts +1 -1
  341. package/dist/notes-history/web/index.js +1 -2
  342. package/dist/notes-history/web/notes-section.js +2 -3
  343. package/dist/personal-access-tokens/feature.d.ts +2 -2
  344. package/dist/personal-access-tokens/feature.js +6 -4
  345. package/dist/personal-access-tokens/handlers/available-scopes.query.d.ts +1 -1
  346. package/dist/personal-access-tokens/handlers/create.write.js +1 -1
  347. package/dist/personal-access-tokens/handlers/revoke.write.js +1 -1
  348. package/dist/personal-access-tokens/hash.js +1 -1
  349. package/dist/personal-access-tokens/i18n.d.ts +1 -1
  350. package/dist/personal-access-tokens/i18n.js +1 -1
  351. package/dist/personal-access-tokens/index.d.ts +5 -5
  352. package/dist/personal-access-tokens/index.js +3 -3
  353. package/dist/personal-access-tokens/resolver.d.ts +1 -1
  354. package/dist/personal-access-tokens/resolver.js +1 -1
  355. package/dist/personal-access-tokens/schema/api-token.js +1 -1
  356. package/dist/personal-access-tokens/screens.d.ts +1 -1
  357. package/dist/personal-access-tokens/screens.js +1 -1
  358. package/dist/personal-access-tokens/{constants.js → web/constants.js} +0 -1
  359. package/dist/presets/index.d.ts +0 -1
  360. package/dist/presets/index.js +0 -1
  361. package/dist/presets/security-baseline.d.ts +1 -1
  362. package/dist/presets/security-baseline.js +1 -1
  363. package/dist/secrets/feature.js +1 -1
  364. package/dist/secrets/handlers/delete.write.js +1 -1
  365. package/dist/secrets/handlers/list.query.js +1 -1
  366. package/dist/secrets/handlers/set.write.js +1 -1
  367. package/dist/secrets/i18n.js +1 -1
  368. package/dist/secrets/index.d.ts +1 -1
  369. package/dist/secrets/index.js +1 -1
  370. package/dist/secrets/{constants.js → web/constants.js} +0 -1
  371. package/dist/secrets/write-gate.js +1 -1
  372. package/dist/sessions/feature.js +7 -4
  373. package/dist/sessions/{i18n.js → web/i18n.js} +0 -1
  374. package/dist/shared/index.d.ts +1 -1
  375. package/dist/shared/index.js +1 -1
  376. package/dist/shared/purge-files-reaching-subject.js +7 -3
  377. package/dist/subscription-stripe/feature.js +2 -1
  378. package/dist/subscription-stripe/plugin-methods.d.ts +3 -0
  379. package/dist/subscription-stripe/plugin-methods.js +14 -0
  380. package/dist/subscription-stripe/verify-webhook.js +1 -0
  381. package/dist/tags/feature.js +1 -1
  382. package/dist/tags/handlers/assign-tag.write.js +11 -7
  383. package/dist/tags/handlers/create-tag.write.js +1 -1
  384. package/dist/tags/handlers/delete-tag.write.js +4 -1
  385. package/dist/tags/handlers/remove-tag.write.js +1 -1
  386. package/dist/tags/handlers/update-tag.write.js +1 -1
  387. package/dist/tags/index.d.ts +1 -1
  388. package/dist/tags/index.js +1 -1
  389. package/dist/tags/screens.js +1 -1
  390. package/dist/tags/web/client-plugin.js +1 -2
  391. package/dist/tags/{constants.d.ts → web/constants.d.ts} +1 -0
  392. package/dist/tags/{constants.js → web/constants.js} +3 -1
  393. package/dist/tags/web/entity-tags.js +1 -2
  394. package/dist/tags/web/i18n.js +2 -2
  395. package/dist/tags/web/index.d.ts +1 -1
  396. package/dist/tags/web/index.js +1 -2
  397. package/dist/tags/web/tag-filter.js +1 -2
  398. package/dist/tags/web/tag-manager.js +5 -4
  399. package/dist/tags/web/tag-picker.js +0 -1
  400. package/dist/tags/web/tag-section.js +1 -2
  401. package/dist/tags/web/tags-cell.js +1 -2
  402. package/dist/template-resolver/api.d.ts +21 -23
  403. package/dist/template-resolver/api.js +34 -6
  404. package/dist/template-resolver/compile-document-body.d.ts +3 -0
  405. package/dist/template-resolver/compile-document-body.js +51 -4
  406. package/dist/template-resolver/compile-steps-block.js +2 -2
  407. package/dist/template-resolver/document-ops.d.ts +1 -1
  408. package/dist/template-resolver/document-ops.js +3 -3
  409. package/dist/template-resolver/document-sanitizer.d.ts +2 -2
  410. package/dist/template-resolver/document-sanitizer.js +23 -3
  411. package/dist/template-resolver/feature.d.ts +11 -0
  412. package/dist/template-resolver/feature.js +68 -35
  413. package/dist/template-resolver/handlers/by-slug.query.js +6 -1
  414. package/dist/template-resolver/handlers/by-tenant.query.js +6 -2
  415. package/dist/template-resolver/handlers/collection-item.query.js +2 -1
  416. package/dist/template-resolver/handlers/collection-list.query.js +2 -1
  417. package/dist/template-resolver/handlers/collection-set.write.d.ts +2 -1
  418. package/dist/template-resolver/handlers/collection-set.write.js +15 -3
  419. package/dist/template-resolver/handlers/collection-shared.d.ts +1 -2
  420. package/dist/template-resolver/handlers/collection-shared.js +0 -4
  421. package/dist/template-resolver/handlers/copy-locale.write.d.ts +2 -1
  422. package/dist/template-resolver/handlers/copy-locale.write.js +69 -65
  423. package/dist/template-resolver/handlers/diff-to-system.query.js +5 -1
  424. package/dist/template-resolver/handlers/discard-draft.write.d.ts +3 -2
  425. package/dist/template-resolver/handlers/discard-draft.write.js +19 -7
  426. package/dist/template-resolver/handlers/document-base.d.ts +1 -1
  427. package/dist/template-resolver/handlers/document-base.js +6 -1
  428. package/dist/template-resolver/handlers/document-blocks.query.d.ts +1 -1
  429. package/dist/template-resolver/handlers/document-blocks.query.js +2 -2
  430. package/dist/template-resolver/handlers/export-bundle.query.js +5 -2
  431. package/dist/template-resolver/handlers/find-by-id.query.js +4 -2
  432. package/dist/template-resolver/handlers/import-bundle.write.d.ts +2 -1
  433. package/dist/template-resolver/handlers/import-bundle.write.js +30 -25
  434. package/dist/template-resolver/handlers/layout-source.query.js +5 -5
  435. package/dist/template-resolver/handlers/list.query.js +5 -2
  436. package/dist/template-resolver/handlers/overview.query.d.ts +12 -3
  437. package/dist/template-resolver/handlers/overview.query.js +87 -51
  438. package/dist/template-resolver/handlers/patch-draft.write.d.ts +2 -1
  439. package/dist/template-resolver/handlers/patch-draft.write.js +93 -87
  440. package/dist/template-resolver/handlers/reset-to-system.write.d.ts +2 -1
  441. package/dist/template-resolver/handlers/reset-to-system.write.js +51 -44
  442. package/dist/template-resolver/handlers/resource-link-pdf.write.d.ts +2 -1
  443. package/dist/template-resolver/handlers/resource-link-pdf.write.js +34 -28
  444. package/dist/template-resolver/handlers/resource-remove.write.d.ts +2 -1
  445. package/dist/template-resolver/handlers/resource-remove.write.js +39 -33
  446. package/dist/template-resolver/handlers/resource-shared.js +1 -1
  447. package/dist/template-resolver/handlers/resource-upload.write.d.ts +2 -1
  448. package/dist/template-resolver/handlers/resource-upload.write.js +105 -97
  449. package/dist/template-resolver/handlers/send-test-shared.d.ts +5 -0
  450. package/dist/template-resolver/handlers/send-test-shared.js +19 -0
  451. package/dist/template-resolver/handlers/send-test-status.query.d.ts +9 -0
  452. package/dist/template-resolver/handlers/send-test-status.query.js +18 -0
  453. package/dist/template-resolver/handlers/send-test.write.d.ts +2 -1
  454. package/dist/template-resolver/handlers/send-test.write.js +89 -91
  455. package/dist/template-resolver/handlers/set.write.d.ts +2 -1
  456. package/dist/template-resolver/handlers/set.write.js +95 -91
  457. package/dist/template-resolver/handlers/shared.js +1 -1
  458. package/dist/template-resolver/handlers/template-gates.d.ts +1 -1
  459. package/dist/template-resolver/handlers/template-gates.js +1 -1
  460. package/dist/template-resolver/handlers/template-write.d.ts +1 -1
  461. package/dist/template-resolver/handlers/template-write.js +1 -1
  462. package/dist/template-resolver/handlers/toggle-status.write.d.ts +6 -7
  463. package/dist/template-resolver/handlers/toggle-status.write.js +28 -10
  464. package/dist/template-resolver/handlers/upsert-tenant.write.d.ts +2 -1
  465. package/dist/template-resolver/handlers/upsert-tenant.write.js +30 -24
  466. package/dist/template-resolver/handlers/usage.query.js +3 -2
  467. package/dist/template-resolver/handlers/validate.query.d.ts +1 -1
  468. package/dist/template-resolver/handlers/validate.query.js +3 -1
  469. package/dist/template-resolver/i18n.d.ts +3 -0
  470. package/dist/template-resolver/i18n.js +24 -0
  471. package/dist/template-resolver/index.d.ts +8 -5
  472. package/dist/template-resolver/index.js +6 -4
  473. package/dist/template-resolver/layout-appearance.js +1 -1
  474. package/dist/template-resolver/layout-regions.d.ts +1 -1
  475. package/dist/template-resolver/seeding.d.ts +4 -1
  476. package/dist/template-resolver/seeding.js +13 -7
  477. package/dist/template-resolver/store-template-resource.js +2 -2
  478. package/dist/template-resolver/table.js +1 -1
  479. package/dist/template-resolver/template-bundle.js +2 -2
  480. package/dist/template-resolver/template-delivery-policy.d.ts +22 -0
  481. package/dist/template-resolver/template-delivery-policy.js +40 -0
  482. package/dist/template-resolver/template-draft.d.ts +1 -1
  483. package/dist/template-resolver/template-draft.js +1 -1
  484. package/dist/template-resolver/template-edit-policy.d.ts +22 -0
  485. package/dist/template-resolver/template-edit-policy.js +45 -0
  486. package/dist/template-resolver/template-meta.d.ts +2 -2
  487. package/dist/template-resolver/template-meta.js +2 -2
  488. package/dist/template-resolver/template-preview.d.ts +1 -1
  489. package/dist/template-resolver/template-preview.js +15 -6
  490. package/dist/template-resolver/template-usage.d.ts +1 -1
  491. package/dist/template-resolver/template-usage.js +1 -1
  492. package/dist/template-resolver/template-validation.js +34 -14
  493. package/dist/template-resolver/testing.js +1 -1
  494. package/dist/template-resolver/user-content-table.js +1 -1
  495. package/dist/template-resolver/web/client-plugin.js +1 -2
  496. package/dist/template-resolver/{constants.d.ts → web/constants.d.ts} +4 -1
  497. package/dist/template-resolver/{constants.js → web/constants.js} +9 -10
  498. package/dist/template-resolver/{document-blocks.d.ts → web/document-blocks.d.ts} +2 -2
  499. package/dist/template-resolver/{document-blocks.js → web/document-blocks.js} +1 -0
  500. package/dist/template-resolver/web/document-editor-extensions.d.ts +1 -0
  501. package/dist/template-resolver/web/document-editor-extensions.js +22 -2
  502. package/dist/template-resolver/web/document-editor.js +0 -1
  503. package/dist/template-resolver/web/document-images.d.ts +2 -0
  504. package/dist/template-resolver/web/document-images.js +27 -0
  505. package/dist/template-resolver/{document-schema.d.ts → web/document-schema.d.ts} +2 -1
  506. package/dist/template-resolver/{document-schema.js → web/document-schema.js} +4 -1
  507. package/dist/template-resolver/{document-steps.js → web/document-steps.js} +0 -1
  508. package/dist/template-resolver/web/document-tiptap-editor.d.ts +1 -1
  509. package/dist/template-resolver/web/document-tiptap-editor.js +24 -9
  510. package/dist/template-resolver/web/document-toolbar-blocks.d.ts +4 -2
  511. package/dist/template-resolver/web/document-toolbar-blocks.js +1 -1
  512. package/dist/template-resolver/web/editor-handle.js +1 -1
  513. package/dist/template-resolver/web/i18n.js +5 -1
  514. package/dist/template-resolver/web/index.d.ts +3 -3
  515. package/dist/template-resolver/web/index.js +3 -4
  516. package/dist/template-resolver/{mail-constants.js → web/mail-constants.js} +0 -1
  517. package/dist/template-resolver/{pdf-constants.js → web/pdf-constants.js} +0 -1
  518. package/dist/template-resolver/web/placeholder-line-editor-lazy.js +0 -1
  519. package/dist/template-resolver/web/placeholder-line-editor.js +6 -4
  520. package/dist/template-resolver/{qualified-names.d.ts → web/qualified-names.d.ts} +2 -0
  521. package/dist/template-resolver/{qualified-names.js → web/qualified-names.js} +2 -1
  522. package/dist/template-resolver/web/use-stable-by-key.js +0 -1
  523. package/dist/tenant/handlers/add-member.write.js +1 -1
  524. package/dist/tenant/index.d.ts +1 -1
  525. package/dist/tenant/index.js +1 -1
  526. package/dist/tenant/invitation-table.js +1 -1
  527. package/dist/tenant/invited-membership.js +1 -1
  528. package/dist/tenant/last-tenant-admin.js +1 -1
  529. package/dist/tenant/member-role-options.js +1 -1
  530. package/dist/tenant/screens.js +1 -1
  531. package/dist/tenant/web/client-plugin.js +1 -2
  532. package/dist/tenant/{constants.js → web/constants.js} +3 -6
  533. package/dist/tenant/web/index.js +0 -1
  534. package/dist/tenant/web/member-roles-cell.js +0 -1
  535. package/dist/tenant/web/member-status-cell.js +0 -1
  536. package/dist/tenant-lifecycle/stages.js +2 -3
  537. package/dist/tier-engine/entity.d.ts +1 -1
  538. package/dist/tier-engine/entity.js +1 -1
  539. package/dist/tier-engine/feature.js +2 -2
  540. package/dist/tier-engine/handlers/set-tenant-tier.write.js +1 -1
  541. package/dist/tier-engine/index.d.ts +1 -1
  542. package/dist/tier-engine/index.js +1 -1
  543. package/dist/tier-engine/web/client-plugin.js +2 -3
  544. package/dist/tier-engine/{constants.js → web/constants.js} +2 -3
  545. package/dist/tier-engine/{i18n.js → web/i18n.js} +0 -1
  546. package/dist/tier-engine/web/index.js +0 -1
  547. package/dist/user/handlers/create.write.js +1 -1
  548. package/dist/user/handlers/update-roles.js +1 -1
  549. package/dist/user/handlers/update.write.js +1 -1
  550. package/dist/user/index.d.ts +1 -1
  551. package/dist/user/index.js +1 -1
  552. package/dist/user/invited-global-roles.d.ts +1 -1
  553. package/dist/user/invited-global-roles.js +1 -1
  554. package/dist/user/schema/user.js +1 -1
  555. package/dist/user/{constants.js → web/constants.js} +0 -1
  556. package/dist/user-data-rights/env.js +1 -1
  557. package/dist/user-data-rights/feature.js +3 -3
  558. package/dist/user-data-rights/index.d.ts +1 -1
  559. package/dist/user-data-rights/index.js +1 -1
  560. package/dist/user-data-rights/lib/resolve-tenant-model.js +1 -1
  561. package/dist/user-data-rights/mail-notifications.js +1 -1
  562. package/dist/user-data-rights/web/client-plugin.js +2 -3
  563. package/dist/user-data-rights/web/confirm-deletion-screen.js +0 -1
  564. package/dist/user-data-rights/{constants.js → web/constants.js} +11 -12
  565. package/dist/user-data-rights/web/default-translations.d.ts +2 -0
  566. package/dist/user-data-rights/web/default-translations.js +59 -0
  567. package/dist/user-data-rights/web/i18n.d.ts +5 -2
  568. package/dist/user-data-rights/web/i18n.js +37 -59
  569. package/dist/user-data-rights/web/index.d.ts +1 -1
  570. package/dist/user-data-rights/web/index.js +1 -2
  571. package/dist/user-data-rights/web/privacy-center-screen.js +1 -2
  572. package/dist/user-data-rights/web/request-deletion-screen.js +0 -1
  573. package/dist/user-data-rights-defaults/hooks/file-ref.userdata-hook.js +6 -1
  574. package/dist/user-profile/feature.js +1 -1
  575. package/dist/user-profile/handlers/change-email.write.js +1 -1
  576. package/dist/user-profile/index.d.ts +1 -1
  577. package/dist/user-profile/index.js +1 -1
  578. package/dist/user-profile/web/client-plugin.js +2 -3
  579. package/dist/user-profile/{constants.js → web/constants.js} +0 -1
  580. package/dist/user-profile/{i18n.js → web/i18n.js} +0 -1
  581. package/dist/user-profile/web/profile-screen.js +2 -3
  582. package/dist/waitlist/entity.js +1 -1
  583. package/dist/waitlist/feature.js +1 -1
  584. package/dist/waitlist/handlers/export-purge.write.js +1 -1
  585. package/dist/waitlist/handlers/invite.write.js +1 -1
  586. package/dist/waitlist/handlers/reject.write.js +1 -1
  587. package/dist/waitlist/handlers/submit.write.js +4 -3
  588. package/dist/waitlist/import.d.ts +1 -1
  589. package/dist/waitlist/index.d.ts +1 -1
  590. package/dist/waitlist/index.js +1 -1
  591. package/dist/waitlist/legacy-migrate.js +1 -1
  592. package/dist/waitlist/link-on-signup.js +1 -1
  593. package/dist/waitlist/mail.d.ts +0 -1
  594. package/dist/waitlist/mail.js +6 -4
  595. package/dist/waitlist/payloads.js +1 -1
  596. package/dist/waitlist/screens.js +1 -1
  597. package/dist/waitlist/{constants.js → web/constants.js} +0 -1
  598. package/kumiko-es-tables.json +102 -0
  599. package/package.json +30 -29
  600. package/src/audit/changes.json +7 -0
  601. package/src/auth-email-password/changes.json +6 -0
  602. package/src/auth-mfa/changes.json +6 -0
  603. package/src/billing-foundation/changes.json +18 -0
  604. package/src/cap-counter/changes.json +12 -0
  605. package/src/delivery/changes.json +6 -0
  606. package/src/document-ingest-foundation/changes.json +6 -0
  607. package/src/files/changes.json +7 -0
  608. package/src/form-draft/changes.json +7 -0
  609. package/src/inbound-mail-foundation/changes.json +6 -0
  610. package/src/ledger/changes.json +7 -0
  611. package/src/mail-foundation/changes.json +6 -0
  612. package/src/presets/changes.json +7 -0
  613. package/src/tags/changes.json +6 -0
  614. package/src/template-resolver/changes.json +63 -0
  615. package/src/user-data-rights/changes.json +14 -0
  616. package/src/waitlist/changes.json +6 -0
  617. package/dist/admin-shell/i18n.d.ts +0 -5
  618. package/dist/admin-shell/i18n.js +0 -51
  619. package/dist/audit/i18n.d.ts +0 -5
  620. package/dist/audit/i18n.js +0 -22
  621. package/dist/jobs/i18n.d.ts +0 -5
  622. package/dist/jobs/i18n.js +0 -52
  623. package/dist/managed-pages/i18n.d.ts +0 -5
  624. package/dist/managed-pages/i18n.js +0 -55
  625. package/dist/presets/dsgvo-self-service.d.ts +0 -10
  626. package/dist/presets/dsgvo-self-service.js +0 -24
  627. package/dist/user-data-rights/i18n.d.ts +0 -5
  628. package/dist/user-data-rights/i18n.js +0 -39
  629. /package/dist/account-security/{constants.d.ts → web/constants.d.ts} +0 -0
  630. /package/dist/account-security/{i18n.d.ts → web/i18n.d.ts} +0 -0
  631. /package/dist/admin-shell/{constants.d.ts → web/constants.d.ts} +0 -0
  632. /package/dist/auth-email-password/{constants.d.ts → web/constants.d.ts} +0 -0
  633. /package/dist/auth-email-password/{i18n.d.ts → web/i18n.d.ts} +0 -0
  634. /package/dist/auth-email-password/{mail-i18n.d.ts → web/mail-i18n.d.ts} +0 -0
  635. /package/dist/auth-mfa/{constants.d.ts → web/constants.d.ts} +0 -0
  636. /package/dist/billing-foundation/{consumer-protection → web/consumer-protection}/consent-locale.d.ts +0 -0
  637. /package/dist/billing-foundation/{contact-card.d.ts → web/contact-card.d.ts} +0 -0
  638. /package/dist/cap-overview/{constants.d.ts → web/constants.d.ts} +0 -0
  639. /package/dist/cap-overview/{usage-math.js → web/usage-math.js} +0 -0
  640. /package/dist/compliance-profiles/{constants.d.ts → web/constants.d.ts} +0 -0
  641. /package/dist/config/{constants.d.ts → web/constants.d.ts} +0 -0
  642. /package/dist/custom-fields/{constants.d.ts → web/constants.d.ts} +0 -0
  643. /package/dist/delivery/{public-names.d.ts → web/public-names.d.ts} +0 -0
  644. /package/dist/feature-toggles/{constants.d.ts → web/constants.d.ts} +0 -0
  645. /package/dist/folders/{constants.d.ts → web/constants.d.ts} +0 -0
  646. /package/dist/form-draft/{constants.d.ts → web/constants.d.ts} +0 -0
  647. /package/dist/jobs/{constants.d.ts → web/constants.d.ts} +0 -0
  648. /package/dist/ledger/{constants.d.ts → web/constants.d.ts} +0 -0
  649. /package/dist/legal-pages/{constants.d.ts → web/constants.d.ts} +0 -0
  650. /package/dist/metrics/{constants.d.ts → web/constants.d.ts} +0 -0
  651. /package/dist/notes-history/{constants.d.ts → web/constants.d.ts} +0 -0
  652. /package/dist/personal-access-tokens/{constants.d.ts → web/constants.d.ts} +0 -0
  653. /package/dist/personal-access-tokens/{scopes.d.ts → web/scopes.d.ts} +0 -0
  654. /package/dist/personal-access-tokens/{scopes.js → web/scopes.js} +0 -0
  655. /package/dist/secrets/{constants.d.ts → web/constants.d.ts} +0 -0
  656. /package/dist/sessions/{i18n.d.ts → web/i18n.d.ts} +0 -0
  657. /package/dist/template-resolver/{document-steps.d.ts → web/document-steps.d.ts} +0 -0
  658. /package/dist/template-resolver/{mail-constants.d.ts → web/mail-constants.d.ts} +0 -0
  659. /package/dist/template-resolver/{pdf-constants.d.ts → web/pdf-constants.d.ts} +0 -0
  660. /package/dist/template-resolver/{placeholder-text.d.ts → web/placeholder-text.d.ts} +0 -0
  661. /package/dist/template-resolver/{placeholder-text.js → web/placeholder-text.js} +0 -0
  662. /package/dist/tenant/{constants.d.ts → web/constants.d.ts} +0 -0
  663. /package/dist/tier-engine/{constants.d.ts → web/constants.d.ts} +0 -0
  664. /package/dist/tier-engine/{i18n.d.ts → web/i18n.d.ts} +0 -0
  665. /package/dist/user/{constants.d.ts → web/constants.d.ts} +0 -0
  666. /package/dist/user-data-rights/{constants.d.ts → web/constants.d.ts} +0 -0
  667. /package/dist/user-profile/{constants.d.ts → web/constants.d.ts} +0 -0
  668. /package/dist/user-profile/{i18n.d.ts → web/i18n.d.ts} +0 -0
  669. /package/dist/waitlist/{constants.d.ts → web/constants.d.ts} +0 -0
@@ -1,8 +1,5 @@
1
- // @runtime client
2
- // Pure string constants — `@runtime client` so browser code (e.g. the
3
- // MemberStatusCell column renderer) can import them too (see
4
- // auth-email-password/constants.ts for the rationale). Runtime imports
5
- // client → server can keep using them as well.
1
+ // Pure string constants, client-safe because they live under web/ (see
2
+ // auth-email-password/web/constants.ts); server code may import them too.
6
3
  // Feature name
7
4
  export const TENANT_FEATURE = "tenant";
8
5
  export const MEMBERS_SCREEN_ID = "members";
@@ -55,7 +52,7 @@ export const TenantQueries = {
55
52
  tenantDirectory: "tenant:query:tenant-directory",
56
53
  activeTenantIds: "tenant:query:active-tenant-ids",
57
54
  resolveUserIds: "tenant:query:resolve-user-ids",
58
- // Pending Invitations für den aktuellen Tenant (Admin-UI-Liste).
55
+ // Pending invitations of the current tenant (admin UI list).
59
56
  invitations: "tenant:query:invitations",
60
57
  // Combined active-members + pending-invitations list backing /members.
61
58
  teamList: "tenant:query:team:list",
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  export { tenantClient } from "./client-plugin.js";
3
2
  export { MemberRolesCell } from "./member-roles-cell.js";
4
3
  export { MemberStatusCell } from "./member-status-cell.js";
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Column-renderer for the /members screen's roles column — `roles` is a
3
2
  // `readonly string[]` on TeamRow (see team-list.query.ts), and DataTable has
4
3
  // no default array-to-cell formatting, so this joins it into one string.
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- // @runtime client
3
2
  // Column-renderer for the /members screen's status column, registered via
4
3
  // `tenantClient()`'s `columnRenderers` map (screen.columns[].renderer in
5
4
  // screens.ts). The list frame itself is the generic declarative
@@ -1,5 +1,5 @@
1
1
  import { configuredPiiSubjectKms, subjectIdToKey, } from "@cosmicdrift/kumiko-framework/crypto";
2
- import { createEventStoreExecutor, createTenantDb, selectMany, WritePurposes, } from "@cosmicdrift/kumiko-framework/db";
2
+ import { createEventStoreExecutor, createTenantDataDestroyDb, createTenantDb, selectMany, WritePurposes, } from "@cosmicdrift/kumiko-framework/db";
3
3
  import { createSystemUser, EXT_EXTERNAL_RESOURCE, EXT_INFRA_RESOURCE, EXT_SEARCH_ADAPTER, EXT_STORAGE_PROVIDER, EXT_TENANT_DATA, extensionUsageEscapeHatchReason, isTenantDataExtensionHooks, isTenantResourceExtensionHooks, } from "@cosmicdrift/kumiko-framework/engine";
4
4
  import { createFallbackLogger } from "@cosmicdrift/kumiko-framework/logging";
5
5
  import { createEscapeHatchReporter, UNATTRIBUTED_ACTOR, } from "@cosmicdrift/kumiko-framework/pipeline";
@@ -55,10 +55,9 @@ async function runTenantDataHooks(ctx) {
55
55
  log: ctx.escapeHatchAuditLog ?? createFallbackLogger("tenant-lifecycle"),
56
56
  });
57
57
  const hookCtx = {
58
- db: createTenantDb({
58
+ db: createTenantDataDestroyDb({
59
59
  db: ctx.db,
60
60
  tenantId: ctx.tenantId,
61
- mode: "tenant",
62
61
  grants: {
63
62
  unsafeRaw: reason !== undefined ? { reason } : undefined,
64
63
  report,
@@ -1,4 +1,4 @@
1
- import { type TierAssignmentSource } from "./constants.ts";
1
+ import { type TierAssignmentSource } from "./web/constants.ts";
2
2
  export declare const tierAssignmentEntity: import("@cosmicdrift/kumiko-types/fields").EntityDefinition<{
3
3
  readonly tier: {
4
4
  readonly type: "text";
@@ -1,5 +1,5 @@
1
1
  import { createEntity, createSelectField, createTextField, } from "@cosmicdrift/kumiko-framework/engine";
2
- import { TierAssignmentSources } from "./constants.js";
2
+ import { TierAssignmentSources } from "./web/constants.js";
3
3
  // tier-assignment — pro Plattform-Tenant genau ein Aggregat. Aggregate-ID
4
4
  // wird deterministisch aus tenantId abgeleitet (uuidv5, siehe aggregate-id.ts).
5
5
  //
@@ -49,13 +49,13 @@ import { getTemporal } from "@cosmicdrift/kumiko-framework/time";
49
49
  import * as z from "zod";
50
50
  import { tenantTable } from "../tenant/index.js";
51
51
  import { tierAssignmentAggregateId } from "./aggregate-id.js";
52
- import { TIER_ADMIN_SCREEN_ID, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, } from "./constants.js";
53
52
  import { tierAssignmentEntity } from "./entity.js";
54
53
  import { getActiveTierQuery } from "./handlers/active-tier.query.js";
55
54
  import { getTenantTierQuery } from "./handlers/get-tenant-tier.query.js";
56
55
  import { createSetTenantTierWrite } from "./handlers/set-tenant-tier.write.js";
57
- import { TIER_ENGINE_I18N } from "./i18n.js";
58
56
  import { isTrialActive } from "./trial.js";
57
+ import { TIER_ADMIN_SCREEN_ID, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, } from "./web/constants.js";
58
+ import { TIER_ENGINE_I18N } from "./web/i18n.js";
59
59
  // Drizzle-table for the tier-assignment-entity. Built once at module-load
60
60
  // from the entity definition — same shape buildEntityTable would produce
61
61
  // in the App's drizzle/schema.generated.ts.
@@ -3,8 +3,8 @@ import { defineWriteHandler } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import * as z from "zod";
4
4
  import { requireForTenant } from "../../shared/index.js";
5
5
  import { tierAssignmentAggregateId } from "../aggregate-id.js";
6
- import { TierAssignmentSources } from "../constants.js";
7
6
  import { tierAssignmentEntity } from "../entity.js";
7
+ import { TierAssignmentSources } from "../web/constants.js";
8
8
  // SystemAdmin setzt das Tier eines BELIEBIGEN Tenants — manueller Grant ohne
9
9
  // Billing. Cross-tenant, daher SystemAdmin-only (kein TenantAdmin: sonst
10
10
  // Gratis-Self-Upgrade).
@@ -1,8 +1,8 @@
1
1
  export { tierAssignmentAggregateId } from "./aggregate-id.ts";
2
2
  export { type AddOnDefinition, type AddOnMap, type ComposeAppInput, type ComposedApp, composeApp, type TierDefinition, type TierMap, } from "./compose-app.ts";
3
- export { isTierAssignmentSource, TIER_ENGINE_FEATURE, type TierAssignmentSource, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./constants.ts";
4
3
  export { tierAssignmentEntity } from "./entity.ts";
5
4
  export { type CreateTierEngineOptions, createTierEngineFeature, } from "./feature.ts";
6
5
  export { createTierOptionGate, type TierOptionAvailability, type TierOptionGate, type TierOptionGateDeps, type TierOptionSpec, } from "./tier-option-gate.ts";
7
6
  export { createTierResolver, type TierResolver, type TierResolverDeps, } from "./tier-resolver.ts";
8
7
  export { isTrialActive, type TrialPolicy } from "./trial.ts";
8
+ export { isTierAssignmentSource, TIER_ENGINE_FEATURE, type TierAssignmentSource, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./web/constants.ts";
@@ -8,9 +8,9 @@
8
8
  // - `TierEngineHandlers` / `TierEngineQueries` — qualified handler names
9
9
  export { tierAssignmentAggregateId } from "./aggregate-id.js";
10
10
  export { composeApp, } from "./compose-app.js";
11
- export { isTierAssignmentSource, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./constants.js";
12
11
  export { tierAssignmentEntity } from "./entity.js";
13
12
  export { createTierEngineFeature, } from "./feature.js";
14
13
  export { createTierOptionGate, } from "./tier-option-gate.js";
15
14
  export { createTierResolver, } from "./tier-resolver.js";
16
15
  export { isTrialActive } from "./trial.js";
16
+ export { isTierAssignmentSource, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./web/constants.js";
@@ -1,10 +1,9 @@
1
- // @runtime client
2
1
  // Client-feature factory for tier-engine. Supplies the default translations
3
2
  // for the declarative tier-admin actionForm (registered server-side via
4
3
  // r.screen in the feature); the app places the screen only via r.nav.
5
4
  import { mergeTranslations, translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
6
- import { TIER_ENGINE_FEATURE } from "../constants.js";
7
- import { TIER_ENGINE_I18N } from "../i18n.js";
5
+ import { TIER_ENGINE_FEATURE } from "./constants.js";
6
+ import { TIER_ENGINE_I18N } from "./i18n.js";
8
7
  const defaultTranslations = translationsByLocaleFromKeys(TIER_ENGINE_I18N);
9
8
  export function tierEngineClient(options) {
10
9
  return {
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Pure string-literal QNs/ids — imported by both server (feature.ts) and
3
2
  // client (web/client-plugin.tsx). Marked `client`, the most permissive
4
3
  // category in the kumiko isolation model (runtime may import client, client
@@ -30,6 +29,6 @@ export const TierEngineQueries = {
30
29
  getTenantTier: "tier-engine:query:get-tenant-tier",
31
30
  tierOptions: "tier-engine:query:tier-options",
32
31
  };
33
- // Screen-id für den manuellen Tier-Grant-Screen. Apps referenzieren ihn
34
- // qualifiziert in r.nav: `tier-engine:screen:tier-admin`.
32
+ // Screen id of the manual tier-grant screen. Apps reference it qualified in
33
+ // r.nav: `tier-engine:screen:tier-admin`.
35
34
  export const TIER_ADMIN_SCREEN_ID = "tier-admin";
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Server + client i18n for the tier-admin actionForm. Single source of
3
2
  // truth: r.translations({ keys: TIER_ENGINE_I18N }) registers these
4
3
  // server-side, web/client-plugin derives the client-side locale bundle
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Public exports für die Browser-Seite des tier-engine Features. Konsumiert
3
2
  // über `@cosmicdrift/kumiko-bundled-features/tier-engine/web` — die
4
3
  // Server-Seite (createTierEngineFeature) lebt unter
@@ -5,9 +5,9 @@ import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-fra
5
5
  import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
6
6
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
7
7
  import * as z from "zod";
8
- import { UserErrors } from "../constants.js";
9
8
  import { rolesInputSchema } from "../roles-input-schema.js";
10
9
  import { userEntity, userTable } from "../schema/user.js";
10
+ import { UserErrors } from "../web/constants.js";
11
11
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
12
12
  // Only the Auth features (running as SYSTEM) or a SystemAdmin may create users.
13
13
  //
@@ -2,8 +2,8 @@ import { acquireNamespacedAdvisoryLock, createEventStoreExecutor, fetchOne, sele
2
2
  import { createSystemUser, findForbiddenRoleAssignment, SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import { AccessDeniedError, ConflictError, InternalError, NotFoundError, writeFailure, } from "@cosmicdrift/kumiko-framework/errors";
4
4
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
5
- import { UserErrors } from "../constants.js";
6
5
  import { USER_STATUS, userEntity, userTable } from "../schema/user.js";
6
+ import { UserErrors } from "../web/constants.js";
7
7
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
8
8
  const REVOKE_ALL_SESSIONS_QN = "sessions:write:user-session:revoke-all-for-user";
9
9
  // Serializes last-SystemAdmin demotion checks globally inside the write TX
@@ -4,9 +4,9 @@ import { AccessDeniedError, InternalError, writeFailure, } from "@cosmicdrift/ku
4
4
  import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-framework/i18n";
5
5
  import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
6
6
  import * as z from "zod";
7
- import { UserErrors } from "../constants.js";
8
7
  import { rolesInputSchema } from "../roles-input-schema.js";
9
8
  import { userEntity, userTable } from "../schema/user.js";
9
+ import { UserErrors } from "../web/constants.js";
10
10
  import { applyUserRolesUpdate } from "./update-roles.js";
11
11
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
12
12
  const SYSTEM_ADMIN_DEMOTION_COUNT_REASON = "on a SystemAdmin demotion, a jsonb @> prefilter over the global users table counts remaining active SystemAdmins";
@@ -1,8 +1,8 @@
1
1
  export { UserCommandSchemas } from "./command-schemas.ts";
2
- export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./constants.ts";
3
2
  export { backfillUserStreamTenants, type UserStreamBackfillResult, } from "./db/queries/stream-tenant-backfill.ts";
4
3
  export { createUserFeature } from "./feature.ts";
5
4
  export { isPrincipalBlocked, isPrincipalRowBlocked, principalStatusPlugin, } from "./principal-status.ts";
6
5
  export { resolveUserDisplayNames } from "./resolve-display-names.ts";
7
6
  export type { UserStatus } from "./schema/user.ts";
8
7
  export { USER_ANONYMIZED_DISPLAY_NAME, USER_ANONYMIZED_EMAIL_DOMAIN, USER_ANONYMIZED_EMAIL_PREFIX, USER_DELETED_DISPLAY_NAME, USER_DELETED_EMAIL_PREFIX, USER_STATUS, userEntity, userTable, } from "./schema/user.ts";
8
+ export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./web/constants.ts";
@@ -1,7 +1,7 @@
1
1
  export { UserCommandSchemas } from "./command-schemas.js";
2
- export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./constants.js";
3
2
  export { backfillUserStreamTenants, } from "./db/queries/stream-tenant-backfill.js";
4
3
  export { createUserFeature } from "./feature.js";
5
4
  export { isPrincipalBlocked, isPrincipalRowBlocked, principalStatusPlugin, } from "./principal-status.js";
6
5
  export { resolveUserDisplayNames } from "./resolve-display-names.js";
7
6
  export { USER_ANONYMIZED_DISPLAY_NAME, USER_ANONYMIZED_EMAIL_DOMAIN, USER_ANONYMIZED_EMAIL_PREFIX, USER_DELETED_DISPLAY_NAME, USER_DELETED_EMAIL_PREFIX, USER_STATUS, userEntity, userTable, } from "./schema/user.js";
7
+ export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./web/constants.js";
@@ -1,5 +1,5 @@
1
1
  import { type DbRunner } from "@cosmicdrift/kumiko-framework/db";
2
- import { type GlobalRole } from "./constants.ts";
2
+ import { type GlobalRole } from "./web/constants.ts";
3
3
  export declare function parseInvitedGlobalRoles(raw: unknown): readonly GlobalRole[];
4
4
  export declare function grantInvitedGlobalRoles(db: DbRunner, options: {
5
5
  readonly userId: string;
@@ -2,8 +2,8 @@ import { createEventStoreExecutor, createTenantDb, fetchOne, } from "@cosmicdrif
2
2
  import { createSystemUser, SYSTEM_TENANT_ID } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import { NotFoundError, writeFailure } from "@cosmicdrift/kumiko-framework/errors";
4
4
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
5
- import { GLOBAL_ROLE_OPTIONS } from "./constants.js";
6
5
  import { userEntity, userTable } from "./schema/user.js";
6
+ import { GLOBAL_ROLE_OPTIONS } from "./web/constants.js";
7
7
  const userExecutor = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
8
8
  function isGlobalRole(role) {
9
9
  return GLOBAL_ROLE_OPTIONS.some((option) => option === role);
@@ -1,6 +1,6 @@
1
1
  import { buildEntityTable } from "@cosmicdrift/kumiko-framework/db";
2
2
  import { access, createBooleanField, createDerivedField, createEntity, createMultiSelectField, createSelectField, createTextField, createTimestampField, createTzField, } from "@cosmicdrift/kumiko-framework/engine";
3
- import { GLOBAL_ROLE_OPTIONS } from "../constants.js";
3
+ import { GLOBAL_ROLE_OPTIONS } from "../web/constants.js";
4
4
  /**
5
5
  * User-Lifecycle-Status (S2.U1). Single source of truth — Auth-Middleware
6
6
  * (S2.U6), Forget-Job (S2.U5) und Restriction-Handler nutzen diese
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Feature name
3
2
  export const USER_FEATURE = "user";
4
3
  /** Assignable global (cross-tenant) roles on user.roles — SystemAdmin is the
@@ -6,6 +6,6 @@ export const deletionTokenSecretEnvSchema = z.object({
6
6
  .string()
7
7
  .min(MIN_DELETION_TOKEN_SECRET_LENGTH)
8
8
  .optional()
9
- .describe("Dedicated HMAC secret for the anonymous deletion-confirmation links. Unset: derived from JWT_SECRET.")
9
+ .describe("Dedicated HMAC secret for the anonymous deletion-confirmation links. At least 32 characters. Unset: the anonymous deletion-confirmation flow stays off; there is no fallback to JWT_SECRET.")
10
10
  .meta({ kumiko: { pulumi: { generator: "openssl rand -hex 24", secret: true } } }),
11
11
  });
@@ -6,7 +6,6 @@ import { createMetricsHandle, createNoopMetricsHandle, } from "@cosmicdrift/kumi
6
6
  import { isPlainObject } from "@cosmicdrift/kumiko-types/type-guards";
7
7
  import { createConfigAccessor } from "../config/index.js";
8
8
  import { validateGdprHookCompleteness, validateGdprPiiHookCoverage } from "./boot-checks.js";
9
- import { EXPORT_SECTION_EXTENSION_NAME, PRIVACY_CENTER_SCREEN_ID, STATUS_OPTION_KEY_PREFIX, USER_ME_QUERY, UserDataRightsHandlers, } from "./constants.js";
10
9
  import { deletionTokenSecretEnvSchema } from "./env.js";
11
10
  import { cancelDeletionWrite } from "./handlers/cancel-deletion.write.js";
12
11
  import { createConfirmDeletionByTokenHandler } from "./handlers/confirm-deletion-by-token.write.js";
@@ -24,7 +23,6 @@ import { createRequestDeletionByEmailHandler, } from "./handlers/request-deletio
24
23
  import { requestExportWrite } from "./handlers/request-export.write.js";
25
24
  import { restrictAccountWrite } from "./handlers/restrict-account.write.js";
26
25
  import { createRunForgetCleanupHandler } from "./handlers/run-forget-cleanup.write.js";
27
- import { USER_DATA_RIGHTS_I18N } from "./i18n.js";
28
26
  import { isGdprMailDeliveryAvailable, isMailRendererAvailable, isMailTransportAvailable, makeDefaultDeletionExecutedEmail, makeDefaultExportFailedEmail, makeDefaultExportReadyEmail, } from "./lib/default-mailers.js";
29
27
  import { makeTenantMailTransportResolver } from "./lib/mail-transport-resolver.js";
30
28
  import { resolveAppTenantModel } from "./lib/resolve-tenant-model.js";
@@ -36,6 +34,8 @@ import { downloadAttemptEntity } from "./schema/download-attempt.js";
36
34
  import { exportDownloadTokenEntity } from "./schema/download-token.js";
37
35
  import { exportJobEntity } from "./schema/export-job.js";
38
36
  import { downloadAttemptListScreen, exportJobDetailScreen, exportJobListScreen, } from "./screens.js";
37
+ import { EXPORT_SECTION_EXTENSION_NAME, PRIVACY_CENTER_SCREEN_ID, STATUS_OPTION_KEY_PREFIX, USER_ME_QUERY, UserDataRightsHandlers, } from "./web/constants.js";
38
+ import { USER_DATA_RIGHTS_I18N } from "./web/i18n.js";
39
39
  function isMailTransportMountedWithoutDelivery(features) {
40
40
  const names = new Set(features.map((feature) => feature.name));
41
41
  const hasTransport = [...names].some((name) => name.startsWith("mail-transport-"));
@@ -169,7 +169,7 @@ export function createUserDataRightsFeature(opts = {}) {
169
169
  r.translations({ keys: USER_DATA_RIGHTS_I18N });
170
170
  registerGdprMails(r);
171
171
  // Privacy-center dot-form labels (i18nKey()-marked below), duplicated in
172
- // web/i18n.ts's client bundle since privacy-center-screen.tsx renders
172
+ // web/default-translations.ts's client bundle since privacy-center-screen.tsx renders
173
173
  // them client-side.
174
174
  r.translations({
175
175
  keys: {
@@ -1,4 +1,3 @@
1
- export { TENANT_MODEL_CONFIG_KEY } from "./constants.ts";
2
1
  export { deletionTokenSecretEnvSchema } from "./env.ts";
3
2
  export { createUserDataRightsFeature, type UserDataRightsOptions } from "./feature.ts";
4
3
  export type { SendDeletionVerificationEmailFn } from "./handlers/request-deletion-by-email.write.ts";
@@ -12,3 +11,4 @@ export type { UserExportBundle } from "./run-user-export.ts";
12
11
  export { runUserExport } from "./run-user-export.ts";
13
12
  export { downloadAttemptEntity, downloadAttemptsTable } from "./schema/download-attempt.ts";
14
13
  export { ACTIVE_JOB_CONSTRAINT, EXPORT_JOB_STATUS, type ExportJobStatus, exportJobEntity, exportJobsTable, } from "./schema/export-job.ts";
14
+ export { TENANT_MODEL_CONFIG_KEY } from "./web/constants.ts";
@@ -1,4 +1,3 @@
1
- export { TENANT_MODEL_CONFIG_KEY } from "./constants.js";
2
1
  export { deletionTokenSecretEnvSchema } from "./env.js";
3
2
  export { createUserDataRightsFeature } from "./feature.js";
4
3
  export { denyIfTargetOutsideAdminTenant, TARGET_USER_NOT_IN_ADMIN_TENANT, } from "./lib/deny-if-target-outside-admin-tenant.js";
@@ -18,3 +17,4 @@ export { policyToStrategy, runForgetCleanup } from "./run-forget-cleanup.js";
18
17
  export { runUserExport } from "./run-user-export.js";
19
18
  export { downloadAttemptEntity, downloadAttemptsTable } from "./schema/download-attempt.js";
20
19
  export { ACTIVE_JOB_CONSTRAINT, EXPORT_JOB_STATUS, exportJobEntity, exportJobsTable, } from "./schema/export-job.js";
20
+ export { TENANT_MODEL_CONFIG_KEY } from "./web/constants.js";
@@ -5,7 +5,7 @@
5
5
  // SYSTEM_TENANT_ID reads the system/appOverride value.
6
6
  import { SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
7
7
  import { createConfigAccessor } from "../../config/index.js";
8
- import { TENANT_MODEL_CONFIG_KEY } from "../constants.js";
8
+ import { TENANT_MODEL_CONFIG_KEY } from "../web/constants.js";
9
9
  export async function resolveAppTenantModel(args) {
10
10
  // No resolver (e.g. a unit context) → safe default: never erase tenant-scoped data.
11
11
  if (!args.configResolver)
@@ -2,7 +2,7 @@ import { QnTypes, qn, templateVariable, } from "@cosmicdrift/kumiko-framework/en
2
2
  import { hasMailTranslationKey, listMailLocales, mailT, resolveMailLocale, } from "@cosmicdrift/kumiko-framework/i18n";
3
3
  import { escapeHtml } from "@cosmicdrift/kumiko-renderer/headless";
4
4
  import { mailParagraph } from "../shared/index.js";
5
- import { USER_DATA_RIGHTS_FEATURE } from "./constants.js";
5
+ import { USER_DATA_RIGHTS_FEATURE } from "./web/constants.js";
6
6
  const ALL_GDPR_MAIL_KINDS = [
7
7
  "exportReady",
8
8
  "exportFailed",
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Client-feature factory for user-data-rights. Provides the ExportSection
3
2
  // extension component for the privacy-center screen (registered server-side
4
3
  // declaratively as `type: "projectionDetail"`, see feature.ts — restriction
@@ -15,8 +14,8 @@
15
14
  // ../feature.ts) — BREAKING, consumers with `showDeletion: false` (e.g.
16
15
  // money-horse) must carry the option over at feature setup.
17
16
  import { mergeTranslations } from "@cosmicdrift/kumiko-renderer";
18
- import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "../constants.js";
19
- import { defaultTranslations } from "./i18n.js";
17
+ import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "./constants.js";
18
+ import { defaultTranslations } from "./default-translations.js";
20
19
  import { ExportSection } from "./privacy-center-screen.js";
21
20
  import { makePublicDeletionGate } from "./public-deletion-gate.js";
22
21
  export function userDataRightsClient(options) {
@@ -1,5 +1,4 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // @runtime client
3
2
  // ConfirmAccountDeletionScreen — anonymer Apex-Screen Schritt 2. Liest das
4
3
  // Token aus dem URL-Fragment (`#token=…`, nie an den Server gesendet — landet
5
4
  // so nicht in Proxy-/Access-Logs, fw#1554) und dispatcht beim Bestätigen
@@ -1,8 +1,7 @@
1
- // @runtime client
2
- // Reine String-Konstanten — client-markiert, damit web/ (z.B. ExportSection)
3
- // sie importieren darf, ohne das runtime-Barrel des Features (und damit
4
- // dessen Server-/DOM-freien Code) zu ziehen. Runtime-Code (feature.ts) darf
5
- // client-Dateien ohnehin importieren.
1
+ // Pure string constants, client-marked so web/ (e.g. ExportSection) may
2
+ // import them without pulling the feature's runtime barrel (and with it its
3
+ // server/DOM-free code). Runtime code (feature.ts) may import client files
4
+ // anyway.
6
5
  export const USER_DATA_RIGHTS_FEATURE = "user-data-rights";
7
6
  // Registered without r.nav — apps place it via their own r.nav. Qualified:
8
7
  // `user-data-rights:screen:privacy-center`.
@@ -35,14 +34,14 @@ export const UserDataRightsHandlers = {
35
34
  cancelDeletion: "user-data-rights:write:cancel-deletion",
36
35
  restrictAccount: "user-data-rights:write:restrict-account",
37
36
  };
38
- // Fremde QN: der Lifecycle-Status (active / deletionRequested / restricted)
39
- // kommt aus dem user-Feature. Lokal gepinnt statt das user-runtime-Barrel zu
40
- // importieren (Runtime-Isolation, wie user-profile). Drift-Schutz: der
41
- // Screen-Test vergleicht gegen UserQueries.me.
37
+ // Foreign QN: the lifecycle status (active / deletionRequested / restricted)
38
+ // comes from the user feature. Pinned locally instead of importing the user
39
+ // runtime barrel (runtime isolation, like user-profile). Drift protection: the
40
+ // screen test compares against UserQueries.me.
42
41
  export const USER_ME_QUERY = "user:query:user:me";
43
- // Client-safe Mirror von EXPORT_JOB_STATUS (schema/export-job.ts ist
44
- // server-only via Drizzle-Import). Drift-Schutz: der Screen-Test vergleicht
45
- // gegen die Schema-Originale.
42
+ // Client-safe mirror of EXPORT_JOB_STATUS (schema/export-job.ts is server-only
43
+ // via its Drizzle import). Drift protection: the screen test compares against
44
+ // the schema original.
46
45
  export const EXPORT_JOB_STATUS = {
47
46
  Pending: "pending",
48
47
  Running: "running",
@@ -0,0 +1,2 @@
1
+ import { type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
2
+ export declare const defaultTranslations: TranslationsByLocale;
@@ -0,0 +1,59 @@
1
+ // Default bundle for the apex deletion screens. Apps attach it as a fallback
2
+ // bundle in the LocaleProvider (createPublicSurface clientFeatures or directly)
3
+ // and may override single keys. Keys: `userDataRights.deletion.<step>.<slug>`.
4
+ import { mergeTranslations, translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
5
+ import { USER_DATA_RIGHTS_I18N } from "./i18n.js";
6
+ const apexTranslations = {
7
+ en: {
8
+ "userDataRights.deletion.request.title": "Request account deletion",
9
+ "userDataRights.deletion.request.intro": "Enter the email address of your account. If an account exists, we'll send you a confirmation link to delete it.",
10
+ "userDataRights.deletion.request.email": "Email",
11
+ "userDataRights.deletion.request.submit": "Request confirmation link",
12
+ "userDataRights.deletion.request.submitting": "…",
13
+ "userDataRights.deletion.request.successTitle": "Email sent",
14
+ "userDataRights.deletion.request.successBody": "If the email exists in our system, a message with a confirmation link is on its way. Please check your inbox.",
15
+ "userDataRights.deletion.request.error": "Something went wrong. Please try again.",
16
+ "userDataRights.deletion.confirm.title": "Confirm account deletion",
17
+ "userDataRights.deletion.confirm.intro": "Confirming starts the deletion grace period. Until it ends you can cancel the deletion from your logged-in account.",
18
+ "userDataRights.deletion.confirm.submit": "Confirm deletion",
19
+ "userDataRights.deletion.confirm.submitting": "…",
20
+ "userDataRights.deletion.confirm.successTitle": "Deletion scheduled",
21
+ "userDataRights.deletion.confirm.successBody": "Your account will be deleted after the grace period. You can cancel the deletion from your logged-in account until then.",
22
+ "userDataRights.deletion.confirm.invalidToken": "The link is invalid or expired. Please request a new one.",
23
+ "userDataRights.deletion.confirm.missingToken": "No token found in the link. Please open the link from the email again.",
24
+ "userDataRights.deletion.confirm.error": "Something went wrong. Please try again.",
25
+ "userDataRights.privacyCenter.errors.generic": "Something went wrong. Please try again.",
26
+ "userDataRights.privacyCenter.field.status": "Account status",
27
+ "userDataRights.privacyCenter.field.gracePeriodEnd": "Scheduled deletion date",
28
+ "userDataRights.privacyCenter.field.status.option.active": "Active",
29
+ "userDataRights.privacyCenter.field.status.option.restricted": "Restricted",
30
+ "userDataRights.privacyCenter.field.status.option.deletionRequested": "Deletion requested",
31
+ "userDataRights.privacyCenter.field.status.option.deleted": "Deleted",
32
+ "userDataRights.privacyCenter.export.title": "Export your data (Art. 20)",
33
+ "userDataRights.privacyCenter.export.intro": "Request a copy of your data. It is prepared in the background; once ready you can download it here.",
34
+ "userDataRights.privacyCenter.export.request": "Request data export",
35
+ "userDataRights.privacyCenter.export.requesting": "Requesting …",
36
+ "userDataRights.privacyCenter.export.pending": "Your export is being prepared. Please check back later.",
37
+ "userDataRights.privacyCenter.export.failed": "The last export failed to build. You can try again.",
38
+ "userDataRights.privacyCenter.export.ready": "Your export is ready.",
39
+ "userDataRights.privacyCenter.export.download": "Download export",
40
+ "userDataRights.privacyCenter.export.availableUntil": "Available until {date}",
41
+ "userDataRights.privacyCenter.export.requestNew": "Request a new export",
42
+ "userDataRights.privacyCenter.restriction.title": "Restrict processing (Art. 18)",
43
+ "userDataRights.privacyCenter.restriction.explainer": "Freeze your account: processing of your data is paused and you are signed out. Lifting the restriction afterwards is only possible via support.",
44
+ "userDataRights.privacyCenter.restriction.restrict": "Restrict account",
45
+ "userDataRights.privacyCenter.restriction.dialogTitle": "Restrict your account?",
46
+ "userDataRights.privacyCenter.restriction.dialogDescription": "You will be signed out immediately and cannot sign in again until support lifts the restriction.",
47
+ "userDataRights.privacyCenter.deletion.title": "Delete account (Art. 17)",
48
+ "userDataRights.privacyCenter.deletion.explainer": "Request deletion of your account. Until the grace period ends you can cancel the deletion.",
49
+ "userDataRights.privacyCenter.deletion.delete": "Delete account",
50
+ "userDataRights.privacyCenter.deletion.cancel": "Cancel deletion",
51
+ "userDataRights.privacyCenter.deletion.dialogTitle": "Delete your account?",
52
+ "userDataRights.privacyCenter.deletion.dialogDescription": "Confirming starts the deletion grace period. You can cancel the deletion until it ends.",
53
+ "userDataRights.errors.download.notFound": "The download link is invalid or belongs to a different account.",
54
+ "userDataRights.errors.download.expired": "Your download has expired. Please request a new export.",
55
+ "userDataRights.errors.download.unavailable": "The export is not yet ready or has failed. Please check the status endpoint.",
56
+ "userDataRights.errors.download.signedUrlNotSupported": "The download is currently unavailable due to a server configuration issue. The operator has been notified.",
57
+ },
58
+ };
59
+ export const defaultTranslations = mergeTranslations(translationsByLocaleFromKeys(USER_DATA_RIGHTS_I18N), apexTranslations);
@@ -1,2 +1,5 @@
1
- import { type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
2
- export declare const defaultTranslations: TranslationsByLocale;
1
+ type LocalizedString = {
2
+ readonly en: string;
3
+ };
4
+ export declare const USER_DATA_RIGHTS_I18N: Readonly<Record<string, LocalizedString>>;
5
+ export {};
@@ -1,61 +1,39 @@
1
- // @runtime client
2
- // Default-Bundle für die Apex-Deletion-Screens. Apps hängen es als
3
- // Fallback-Bundle in den LocaleProvider (createPublicSurface clientFeatures
4
- // oder direkt) und können einzelne Keys überschreiben. Keys: `userDataRights.
5
- // deletion.<step>.<slug>`.
6
- import { mergeTranslations, translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
7
- import { USER_DATA_RIGHTS_I18N } from "../i18n.js";
8
- const apexTranslations = {
9
- en: {
10
- "userDataRights.deletion.request.title": "Request account deletion",
11
- "userDataRights.deletion.request.intro": "Enter the email address of your account. If an account exists, we'll send you a confirmation link to delete it.",
12
- "userDataRights.deletion.request.email": "Email",
13
- "userDataRights.deletion.request.submit": "Request confirmation link",
14
- "userDataRights.deletion.request.submitting": "…",
15
- "userDataRights.deletion.request.successTitle": "Email sent",
16
- "userDataRights.deletion.request.successBody": "If the email exists in our system, a message with a confirmation link is on its way. Please check your inbox.",
17
- "userDataRights.deletion.request.error": "Something went wrong. Please try again.",
18
- "userDataRights.deletion.confirm.title": "Confirm account deletion",
19
- "userDataRights.deletion.confirm.intro": "Confirming starts the deletion grace period. Until it ends you can cancel the deletion from your logged-in account.",
20
- "userDataRights.deletion.confirm.submit": "Confirm deletion",
21
- "userDataRights.deletion.confirm.submitting": "…",
22
- "userDataRights.deletion.confirm.successTitle": "Deletion scheduled",
23
- "userDataRights.deletion.confirm.successBody": "Your account will be deleted after the grace period. You can cancel the deletion from your logged-in account until then.",
24
- "userDataRights.deletion.confirm.invalidToken": "The link is invalid or expired. Please request a new one.",
25
- "userDataRights.deletion.confirm.missingToken": "No token found in the link. Please open the link from the email again.",
26
- "userDataRights.deletion.confirm.error": "Something went wrong. Please try again.",
27
- "userDataRights.privacyCenter.errors.generic": "Something went wrong. Please try again.",
28
- "userDataRights.privacyCenter.field.status": "Account status",
29
- "userDataRights.privacyCenter.field.gracePeriodEnd": "Scheduled deletion date",
30
- "userDataRights.privacyCenter.field.status.option.active": "Active",
31
- "userDataRights.privacyCenter.field.status.option.restricted": "Restricted",
32
- "userDataRights.privacyCenter.field.status.option.deletionRequested": "Deletion requested",
33
- "userDataRights.privacyCenter.field.status.option.deleted": "Deleted",
34
- "userDataRights.privacyCenter.export.title": "Export your data (Art. 20)",
35
- "userDataRights.privacyCenter.export.intro": "Request a copy of your data. It is prepared in the background; once ready you can download it here.",
36
- "userDataRights.privacyCenter.export.request": "Request data export",
37
- "userDataRights.privacyCenter.export.requesting": "Requesting …",
38
- "userDataRights.privacyCenter.export.pending": "Your export is being prepared. Please check back later.",
39
- "userDataRights.privacyCenter.export.failed": "The last export failed to build. You can try again.",
40
- "userDataRights.privacyCenter.export.ready": "Your export is ready.",
41
- "userDataRights.privacyCenter.export.download": "Download export",
42
- "userDataRights.privacyCenter.export.availableUntil": "Available until {date}",
43
- "userDataRights.privacyCenter.export.requestNew": "Request a new export",
44
- "userDataRights.privacyCenter.restriction.title": "Restrict processing (Art. 18)",
45
- "userDataRights.privacyCenter.restriction.explainer": "Freeze your account: processing of your data is paused and you are signed out. Lifting the restriction afterwards is only possible via support.",
46
- "userDataRights.privacyCenter.restriction.restrict": "Restrict account",
47
- "userDataRights.privacyCenter.restriction.dialogTitle": "Restrict your account?",
48
- "userDataRights.privacyCenter.restriction.dialogDescription": "You will be signed out immediately and cannot sign in again until support lifts the restriction.",
49
- "userDataRights.privacyCenter.deletion.title": "Delete account (Art. 17)",
50
- "userDataRights.privacyCenter.deletion.explainer": "Request deletion of your account. Until the grace period ends you can cancel the deletion.",
51
- "userDataRights.privacyCenter.deletion.delete": "Delete account",
52
- "userDataRights.privacyCenter.deletion.cancel": "Cancel deletion",
53
- "userDataRights.privacyCenter.deletion.dialogTitle": "Delete your account?",
54
- "userDataRights.privacyCenter.deletion.dialogDescription": "Confirming starts the deletion grace period. You can cancel the deletion until it ends.",
55
- "userDataRights.errors.download.notFound": "The download link is invalid or belongs to a different account.",
56
- "userDataRights.errors.download.expired": "Your download has expired. Please request a new export.",
57
- "userDataRights.errors.download.unavailable": "The export is not yet ready or has failed. Please check the status endpoint.",
58
- "userDataRights.errors.download.signedUrlNotSupported": "The download is currently unavailable due to a server configuration issue. The operator has been notified.",
1
+ export const USER_DATA_RIGHTS_I18N = {
2
+ "user-data-rights:feature.label": { en: "Privacy" },
3
+ "user-data-rights:notify.export-ready.label": { en: "Data export ready" },
4
+ "user-data-rights:notify.export-failed.label": { en: "Data export failed" },
5
+ "user-data-rights:notify.deletion-requested.label": { en: "Deletion requested" },
6
+ "user-data-rights:notify.deletion-executed.label": { en: "Deletion completed" },
7
+ "user-data-rights:nav.exportJobs": { en: "GDPR exports" },
8
+ "screen:export-job-list.title": { en: "GDPR exports" },
9
+ "screen:export-job-detail.title": { en: "Export job" },
10
+ "screen:download-attempt-list.title": { en: "Download attempts" },
11
+ "screen:privacy-center.title": { en: "Privacy" },
12
+ "userDataRights.privacyCenter.subtitle": {
13
+ en: "Logged-in GDPR self-service page where a user requests and downloads a data export (Art. 20), restricts processing of their account (Art. 18) and requests its deletion (Art. 17).",
59
14
  },
15
+ "user-data-rights:entity:export-job:field:userId": { en: "User" },
16
+ "user-data-rights:entity:export-job:field:status": { en: "Status" },
17
+ "user-data-rights:entity:export-job:field:requestedAt": { en: "Requested" },
18
+ "user-data-rights:entity:export-job:field:completedAt": { en: "Completed" },
19
+ "user-data-rights:entity:export-job:field:expiresAt": { en: "Expires" },
20
+ "user-data-rights:entity:export-job:field:requestedFromTenantId": {
21
+ en: "Tenant",
22
+ },
23
+ "user-data-rights:entity:export-job:field:startedAt": { en: "Started" },
24
+ "user-data-rights:entity:export-job:field:downloadStorageKey": {
25
+ en: "Storage key",
26
+ },
27
+ "user-data-rights:entity:export-job:field:bytesWritten": { en: "Bytes" },
28
+ "user-data-rights:entity:export-job:field:errorMessage": { en: "Error" },
29
+ "user-data-rights:entity:download-attempt:field:attemptedAt": {
30
+ en: "Attempted at",
31
+ },
32
+ "user-data-rights:entity:download-attempt:field:result": { en: "Result" },
33
+ "user-data-rights:entity:download-attempt:field:via": { en: "Via" },
34
+ "user-data-rights:entity:download-attempt:field:ip": { en: "IP" },
35
+ "user-data-rights:entity:download-attempt:field:attemptedByUserId": {
36
+ en: "User",
37
+ },
38
+ "user-data-rights:entity:download-attempt:field:jobId": { en: "Job" },
60
39
  };
61
- export const defaultTranslations = mergeTranslations(translationsByLocaleFromKeys(USER_DATA_RIGHTS_I18N), apexTranslations);
@@ -1,7 +1,7 @@
1
1
  export { type UserDataRightsClientOptions, userDataRightsClient } from "./client-plugin.tsx";
2
2
  export type { ConfirmAccountDeletionScreenProps } from "./confirm-deletion-screen.tsx";
3
3
  export { ConfirmAccountDeletionScreen } from "./confirm-deletion-screen.tsx";
4
- export { defaultTranslations } from "./i18n.ts";
4
+ export { defaultTranslations } from "./default-translations.ts";
5
5
  export { formatDate } from "./privacy-center-screen.tsx";
6
6
  export { makePublicDeletionGate, type PublicDeletionRoutes } from "./public-deletion-gate.tsx";
7
7
  export type { RequestAccountDeletionScreenProps } from "./request-deletion-screen.tsx";