@cosmicdrift/kumiko-samples 0.378.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 (506) hide show
  1. package/package.json +1 -1
  2. package/packages/bundled-features/package.json +18 -17
  3. package/packages/bundled-features/src/account-security/feature.ts +2 -2
  4. package/packages/bundled-features/src/account-security/index.ts +8 -8
  5. package/packages/bundled-features/src/account-security/{constants.ts → web/constants.ts} +0 -2
  6. package/packages/bundled-features/src/account-security/{i18n.ts → web/i18n.ts} +0 -1
  7. package/packages/bundled-features/src/admin-shell/feature.ts +10 -9
  8. package/packages/bundled-features/src/admin-shell/index.ts +8 -8
  9. package/packages/bundled-features/src/admin-shell/web/client-plugin.tsx +2 -3
  10. package/packages/bundled-features/src/admin-shell/{constants.ts → web/constants.ts} +0 -1
  11. package/packages/bundled-features/src/admin-shell/web/default-translations.ts +10 -0
  12. package/packages/bundled-features/src/admin-shell/web/i18n.ts +51 -9
  13. package/packages/bundled-features/src/admin-shell/web/index.ts +0 -1
  14. package/packages/bundled-features/src/audit/changes.json +7 -0
  15. package/packages/bundled-features/src/audit/feature.ts +72 -64
  16. package/packages/bundled-features/src/audit/handlers/audit-events.ts +153 -0
  17. package/packages/bundled-features/src/audit/handlers/audit-system-db.ts +13 -0
  18. package/packages/bundled-features/src/audit/handlers/details-all-tenants.query.ts +26 -0
  19. package/packages/bundled-features/src/audit/handlers/details.query.ts +11 -39
  20. package/packages/bundled-features/src/audit/handlers/list-all-tenants.query.ts +47 -0
  21. package/packages/bundled-features/src/audit/handlers/list.query.ts +16 -123
  22. package/packages/bundled-features/src/audit/handlers/resolve-audit-tenant.ts +21 -7
  23. package/packages/bundled-features/src/audit/index.ts +1 -1
  24. package/packages/bundled-features/src/audit/run-escape-hatch-retention.ts +4 -4
  25. package/packages/bundled-features/src/audit/screens.ts +82 -0
  26. package/packages/bundled-features/src/audit/web/client-plugin.tsx +2 -3
  27. package/packages/bundled-features/src/audit/{constants.ts → web/constants.ts} +11 -1
  28. package/packages/bundled-features/src/audit/web/default-translations.ts +7 -0
  29. package/packages/bundled-features/src/audit/web/i18n.ts +33 -7
  30. package/packages/bundled-features/src/audit/web/index.ts +0 -2
  31. package/packages/bundled-features/src/auth-email-password/bootstrap.ts +6 -6
  32. package/packages/bundled-features/src/auth-email-password/changes.json +6 -0
  33. package/packages/bundled-features/src/auth-email-password/errors.ts +1 -1
  34. package/packages/bundled-features/src/auth-email-password/feature.ts +2 -2
  35. package/packages/bundled-features/src/auth-email-password/handlers/confirm-account-unlock.write.ts +1 -1
  36. package/packages/bundled-features/src/auth-email-password/handlers/invite-accept-with-login.write.ts +4 -4
  37. package/packages/bundled-features/src/auth-email-password/handlers/invite-create.write.ts +3 -3
  38. package/packages/bundled-features/src/auth-email-password/handlers/invite-info.query.ts +1 -1
  39. package/packages/bundled-features/src/auth-email-password/handlers/login.write.ts +38 -4
  40. package/packages/bundled-features/src/auth-email-password/handlers/request-account-unlock.write.ts +1 -1
  41. package/packages/bundled-features/src/auth-email-password/handlers/request-email-verification.write.ts +1 -1
  42. package/packages/bundled-features/src/auth-email-password/handlers/request-password-reset.write.ts +1 -1
  43. package/packages/bundled-features/src/auth-email-password/handlers/reset-password.write.ts +1 -1
  44. package/packages/bundled-features/src/auth-email-password/handlers/verify-email.write.ts +1 -1
  45. package/packages/bundled-features/src/auth-email-password/index.ts +6 -1
  46. package/packages/bundled-features/src/auth-email-password/mail-notifications.ts +1 -1
  47. package/packages/bundled-features/src/auth-email-password/signup-activation.ts +1 -1
  48. package/packages/bundled-features/src/auth-email-password/web/auth-client.ts +0 -1
  49. package/packages/bundled-features/src/auth-email-password/web/auth-form-logic.ts +0 -1
  50. package/packages/bundled-features/src/auth-email-password/web/auth-form-primitives.tsx +0 -1
  51. package/packages/bundled-features/src/auth-email-password/web/auth-gate.tsx +0 -1
  52. package/packages/bundled-features/src/auth-email-password/web/auth-redirect.ts +0 -1
  53. package/packages/bundled-features/src/auth-email-password/web/client-actions.ts +0 -1
  54. package/packages/bundled-features/src/auth-email-password/web/client-plugin.ts +1 -2
  55. package/packages/bundled-features/src/auth-email-password/web/confirm-account-unlock-screen.tsx +0 -1
  56. package/packages/bundled-features/src/auth-email-password/{constants.ts → web/constants.ts} +3 -6
  57. package/packages/bundled-features/src/auth-email-password/web/default-topbar-actions.tsx +0 -1
  58. package/packages/bundled-features/src/auth-email-password/web/forgot-password-screen.tsx +0 -1
  59. package/packages/bundled-features/src/auth-email-password/{i18n.ts → web/i18n.ts} +3 -4
  60. package/packages/bundled-features/src/auth-email-password/web/index.ts +1 -2
  61. package/packages/bundled-features/src/auth-email-password/web/invite-accept-screen.tsx +2 -3
  62. package/packages/bundled-features/src/auth-email-password/web/login-screen.tsx +0 -1
  63. package/packages/bundled-features/src/auth-email-password/{mail-i18n.ts → web/mail-i18n.ts} +0 -1
  64. package/packages/bundled-features/src/auth-email-password/web/request-account-unlock-screen.tsx +0 -1
  65. package/packages/bundled-features/src/auth-email-password/web/reset-password-screen.tsx +0 -1
  66. package/packages/bundled-features/src/auth-email-password/web/session-bootstrap-error.tsx +0 -1
  67. package/packages/bundled-features/src/auth-email-password/web/session.tsx +0 -1
  68. package/packages/bundled-features/src/auth-email-password/web/signup-complete-screen.tsx +2 -3
  69. package/packages/bundled-features/src/auth-email-password/web/signup-screen.tsx +0 -1
  70. package/packages/bundled-features/src/auth-email-password/web/tenant-menu-items.tsx +0 -1
  71. package/packages/bundled-features/src/auth-email-password/web/tenant-switcher.tsx +0 -1
  72. package/packages/bundled-features/src/auth-email-password/web/use-shell-user.ts +0 -1
  73. package/packages/bundled-features/src/auth-email-password/web/user-menu.tsx +0 -1
  74. package/packages/bundled-features/src/auth-email-password/web/verify-email-screen.tsx +0 -1
  75. package/packages/bundled-features/src/auth-mfa/changes.json +6 -0
  76. package/packages/bundled-features/src/auth-mfa/errors.ts +2 -2
  77. package/packages/bundled-features/src/auth-mfa/handlers/enable-confirm-preauth.write.ts +1 -1
  78. package/packages/bundled-features/src/auth-mfa/handlers/enable-start-preauth.write.ts +1 -1
  79. package/packages/bundled-features/src/auth-mfa/handlers/enable-start.write.ts +1 -1
  80. package/packages/bundled-features/src/auth-mfa/handlers/verify.write.ts +1 -1
  81. package/packages/bundled-features/src/auth-mfa/index.ts +8 -8
  82. package/packages/bundled-features/src/auth-mfa/mfa-status-checker.ts +4 -4
  83. package/packages/bundled-features/src/auth-mfa/screens.ts +1 -1
  84. package/packages/bundled-features/src/auth-mfa/web/client-plugin.ts +0 -1
  85. package/packages/bundled-features/src/auth-mfa/{constants.ts → web/constants.ts} +0 -1
  86. package/packages/bundled-features/src/auth-mfa/web/i18n.ts +0 -1
  87. package/packages/bundled-features/src/auth-mfa/web/index.ts +0 -1
  88. package/packages/bundled-features/src/auth-mfa/web/mfa-client.ts +0 -1
  89. package/packages/bundled-features/src/auth-mfa/web/mfa-disable-dialog.tsx +1 -2
  90. package/packages/bundled-features/src/auth-mfa/web/mfa-recovery-codes-reveal.tsx +0 -1
  91. package/packages/bundled-features/src/auth-mfa/web/mfa-regenerate-recovery-dialog.tsx +1 -2
  92. package/packages/bundled-features/src/auth-mfa/web/mfa-setup-preauth-screen.tsx +21 -23
  93. package/packages/bundled-features/src/auth-mfa/web/mfa-verify-screen.tsx +0 -1
  94. package/packages/bundled-features/src/billing-foundation/changes.json +18 -0
  95. package/packages/bundled-features/src/billing-foundation/checkout-core.ts +3 -3
  96. package/packages/bundled-features/src/billing-foundation/consumer-protection/consent-text.ts +2 -2
  97. package/packages/bundled-features/src/billing-foundation/consumer-protection/issue-confirmation.ts +11 -3
  98. package/packages/bundled-features/src/billing-foundation/consumer-protection/mail-notifications.ts +11 -1
  99. package/packages/bundled-features/src/billing-foundation/consumer-protection/register-consent.ts +1 -1
  100. package/packages/bundled-features/src/billing-foundation/consumer-protection/register-termination.ts +12 -1
  101. package/packages/bundled-features/src/billing-foundation/consumer-protection/stored-user-email.ts +12 -0
  102. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-mail.ts +6 -1
  103. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-notify.ts +1 -1
  104. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-pages.ts +167 -28
  105. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-record.ts +102 -3
  106. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-request.ts +43 -12
  107. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-revoke.ts +202 -0
  108. package/packages/bundled-features/src/billing-foundation/consumer-protection/termination-texts.ts +70 -0
  109. package/packages/bundled-features/src/billing-foundation/events.ts +20 -2
  110. package/packages/bundled-features/src/billing-foundation/feature.ts +5 -5
  111. package/packages/bundled-features/src/billing-foundation/handlers/process-event.write.ts +82 -9
  112. package/packages/bundled-features/src/billing-foundation/handlers/switch-plan.write.ts +1 -1
  113. package/packages/bundled-features/src/billing-foundation/handlers/sync-subscription.write.ts +1 -1
  114. package/packages/bundled-features/src/billing-foundation/index.ts +27 -27
  115. package/packages/bundled-features/src/billing-foundation/plan-catalog.ts +7 -7
  116. package/packages/bundled-features/src/billing-foundation/screens.ts +1 -1
  117. package/packages/bundled-features/src/billing-foundation/subscription-tier-sync.ts +1 -1
  118. package/packages/bundled-features/src/billing-foundation/types.ts +17 -3
  119. package/packages/bundled-features/src/billing-foundation/validate-options.ts +3 -3
  120. package/packages/bundled-features/src/billing-foundation/web/billing-contact-plan.tsx +1 -3
  121. package/packages/bundled-features/src/billing-foundation/web/billing-plans-panel.tsx +5 -7
  122. package/packages/bundled-features/src/billing-foundation/web/cancel-contract-dialog.tsx +1 -3
  123. package/packages/bundled-features/src/billing-foundation/web/checkout-consent-dialog.tsx +1 -3
  124. package/packages/bundled-features/src/billing-foundation/web/client-plugin.tsx +1 -2
  125. package/packages/bundled-features/src/billing-foundation/{constants.ts → web/constants.ts} +37 -31
  126. package/packages/bundled-features/src/billing-foundation/{consumer-protection → web/consumer-protection}/consent-locale.ts +0 -1
  127. package/packages/bundled-features/src/billing-foundation/{contact-card.ts → web/contact-card.ts} +0 -2
  128. package/packages/bundled-features/src/billing-foundation/web/index.ts +14 -15
  129. package/packages/bundled-features/src/billing-foundation/web/localized-params.ts +0 -2
  130. package/packages/bundled-features/src/billing-foundation/webhook-handler.ts +5 -2
  131. package/packages/bundled-features/src/cap-overview/feature.ts +1 -1
  132. package/packages/bundled-features/src/cap-overview/handlers/caps-usage.query.ts +1 -1
  133. package/packages/bundled-features/src/cap-overview/handlers/tenant-caps-list.query.ts +2 -2
  134. package/packages/bundled-features/src/cap-overview/index.ts +9 -9
  135. package/packages/bundled-features/src/cap-overview/screens.ts +2 -2
  136. package/packages/bundled-features/src/cap-overview/web/cap-cards-panel.tsx +1 -2
  137. package/packages/bundled-features/src/cap-overview/web/cap-usage-bar.tsx +1 -2
  138. package/packages/bundled-features/src/cap-overview/web/cap-usage-cell.tsx +0 -2
  139. package/packages/bundled-features/src/cap-overview/web/client-plugin.tsx +3 -4
  140. package/packages/bundled-features/src/cap-overview/{constants.ts → web/constants.ts} +0 -1
  141. package/packages/bundled-features/src/cap-overview/web/index.ts +0 -1
  142. package/packages/bundled-features/src/cap-overview/{usage-math.ts → web/usage-math.ts} +1 -2
  143. package/packages/bundled-features/src/compliance-profiles/feature.ts +5 -5
  144. package/packages/bundled-features/src/compliance-profiles/index.ts +6 -6
  145. package/packages/bundled-features/src/compliance-profiles/web/client-plugin.tsx +2 -3
  146. package/packages/bundled-features/src/compliance-profiles/web/compliance-profile-catalog.tsx +1 -2
  147. package/packages/bundled-features/src/compliance-profiles/{constants.ts → web/constants.ts} +0 -1
  148. package/packages/bundled-features/src/compliance-profiles/web/i18n.ts +0 -1
  149. package/packages/bundled-features/src/compliance-profiles/web/index.ts +0 -1
  150. package/packages/bundled-features/src/config/index.ts +6 -6
  151. package/packages/bundled-features/src/config/web/client-plugin.ts +1 -2
  152. package/packages/bundled-features/src/config/{constants.ts → web/constants.ts} +0 -1
  153. package/packages/bundled-features/src/config/web/i18n.ts +0 -1
  154. package/packages/bundled-features/src/config/web/index.ts +1 -3
  155. package/packages/bundled-features/src/config/write-helpers.ts +1 -1
  156. package/packages/bundled-features/src/custom-fields/feature.ts +8 -8
  157. package/packages/bundled-features/src/custom-fields/handlers/clear-custom-field.write.ts +1 -1
  158. package/packages/bundled-features/src/custom-fields/handlers/define-tenant-field.write.ts +1 -1
  159. package/packages/bundled-features/src/custom-fields/handlers/delete-system-field.write.ts +1 -1
  160. package/packages/bundled-features/src/custom-fields/handlers/delete-tenant-field.write.ts +4 -4
  161. package/packages/bundled-features/src/custom-fields/handlers/set-custom-field.write.ts +1 -1
  162. package/packages/bundled-features/src/custom-fields/handlers/update-tenant-field.write.ts +1 -1
  163. package/packages/bundled-features/src/custom-fields/index.ts +8 -8
  164. package/packages/bundled-features/src/custom-fields/lib/value-schema.ts +1 -1
  165. package/packages/bundled-features/src/custom-fields/schemas.ts +1 -1
  166. package/packages/bundled-features/src/custom-fields/web/client-plugin.tsx +1 -2
  167. package/packages/bundled-features/src/custom-fields/{constants.ts → web/constants.ts} +18 -19
  168. package/packages/bundled-features/src/custom-fields/web/custom-fields-form-section.tsx +1 -2
  169. package/packages/bundled-features/src/custom-fields/web/i18n.ts +0 -1
  170. package/packages/bundled-features/src/custom-fields/web/index.ts +2 -3
  171. package/packages/bundled-features/src/custom-fields/wire-for-entity.ts +1 -2
  172. package/packages/bundled-features/src/delivery/address-opt-out.ts +1 -1
  173. package/packages/bundled-features/src/delivery/attempt-log-retention.ts +24 -8
  174. package/packages/bundled-features/src/delivery/changes.json +6 -0
  175. package/packages/bundled-features/src/delivery/constants.ts +2 -2
  176. package/packages/bundled-features/src/delivery/i18n.ts +1 -1
  177. package/packages/bundled-features/src/delivery/unsubscribe-page.ts +1 -1
  178. package/packages/bundled-features/src/delivery/web/client-plugin.tsx +6 -7
  179. package/packages/bundled-features/src/delivery/web/delivery-channel-cell.tsx +0 -1
  180. package/packages/bundled-features/src/delivery/web/delivery-error-cell.tsx +0 -1
  181. package/packages/bundled-features/src/delivery/web/delivery-status-cell.tsx +1 -2
  182. package/packages/bundled-features/src/delivery/web/delivery-time-cell.tsx +0 -1
  183. package/packages/bundled-features/src/delivery/web/delivery-type-cell.tsx +0 -1
  184. package/packages/bundled-features/src/delivery/web/index.ts +0 -1
  185. package/packages/bundled-features/src/delivery/{public-names.ts → web/public-names.ts} +0 -1
  186. package/packages/bundled-features/src/document-ingest-foundation/changes.json +6 -0
  187. package/packages/bundled-features/src/document-ingest-foundation/events.ts +4 -0
  188. package/packages/bundled-features/src/document-ingest-foundation/executor.ts +2 -1
  189. package/packages/bundled-features/src/document-ingest-foundation/feature.ts +18 -4
  190. package/packages/bundled-features/src/document-ingest-foundation/index.ts +1 -0
  191. package/packages/bundled-features/src/feature-toggles/feature.ts +7 -7
  192. package/packages/bundled-features/src/feature-toggles/handlers/list.query.ts +1 -1
  193. package/packages/bundled-features/src/feature-toggles/handlers/registered.query.ts +1 -1
  194. package/packages/bundled-features/src/feature-toggles/handlers/set.write.ts +3 -3
  195. package/packages/bundled-features/src/feature-toggles/index.ts +6 -6
  196. package/packages/bundled-features/src/feature-toggles/web/client-plugin.tsx +1 -2
  197. package/packages/bundled-features/src/feature-toggles/{constants.ts → web/constants.ts} +0 -1
  198. package/packages/bundled-features/src/feature-toggles/web/i18n.ts +0 -1
  199. package/packages/bundled-features/src/feature-toggles/web/index.ts +0 -1
  200. package/packages/bundled-features/src/files/changes.json +7 -0
  201. package/packages/bundled-features/src/folders/feature.ts +1 -1
  202. package/packages/bundled-features/src/folders/handlers/clear-folder.write.ts +1 -1
  203. package/packages/bundled-features/src/folders/handlers/delete-folder.write.ts +1 -1
  204. package/packages/bundled-features/src/folders/handlers/set-folder.write.ts +1 -1
  205. package/packages/bundled-features/src/folders/index.ts +8 -8
  206. package/packages/bundled-features/src/folders/web/client-plugin.tsx +1 -3
  207. package/packages/bundled-features/src/folders/{constants.ts → web/constants.ts} +0 -1
  208. package/packages/bundled-features/src/folders/web/folder-manager.tsx +1 -2
  209. package/packages/bundled-features/src/folders/web/folder-section.tsx +1 -2
  210. package/packages/bundled-features/src/folders/web/i18n.ts +0 -1
  211. package/packages/bundled-features/src/folders/web/index.ts +1 -2
  212. package/packages/bundled-features/src/folders/web/tree.ts +0 -1
  213. package/packages/bundled-features/src/form-draft/changes.json +7 -0
  214. package/packages/bundled-features/src/form-draft/db/queries/cleanup.ts +25 -11
  215. package/packages/bundled-features/src/form-draft/decrypt-draft.ts +24 -0
  216. package/packages/bundled-features/src/form-draft/entity.ts +6 -9
  217. package/packages/bundled-features/src/form-draft/feature.ts +1 -1
  218. package/packages/bundled-features/src/form-draft/handlers/cleanup.job.ts +26 -5
  219. package/packages/bundled-features/src/form-draft/handlers/discard.write.ts +1 -1
  220. package/packages/bundled-features/src/form-draft/handlers/get.query.ts +6 -7
  221. package/packages/bundled-features/src/form-draft/handlers/list.query.ts +13 -7
  222. package/packages/bundled-features/src/form-draft/handlers/save.write.ts +5 -5
  223. package/packages/bundled-features/src/form-draft/index.ts +8 -8
  224. package/packages/bundled-features/src/form-draft/lookup.ts +10 -4
  225. package/packages/bundled-features/src/form-draft/schemas.ts +1 -1
  226. package/packages/bundled-features/src/form-draft/{constants.ts → web/constants.ts} +0 -1
  227. package/packages/bundled-features/src/form-draft-user-data/hooks.ts +2 -2
  228. package/packages/bundled-features/src/inbound-mail-foundation/retention-sweep.ts +10 -10
  229. package/packages/bundled-features/src/jobs/feature.ts +7 -7
  230. package/packages/bundled-features/src/jobs/handlers/retry.write.ts +1 -1
  231. package/packages/bundled-features/src/jobs/handlers/trigger.write.ts +1 -1
  232. package/packages/bundled-features/src/jobs/index.ts +1 -1
  233. package/packages/bundled-features/src/jobs/web/client-plugin.tsx +2 -3
  234. package/packages/bundled-features/src/jobs/{constants.ts → web/constants.ts} +0 -1
  235. package/packages/bundled-features/src/jobs/web/default-translations.ts +7 -0
  236. package/packages/bundled-features/src/jobs/web/i18n.ts +53 -7
  237. package/packages/bundled-features/src/jobs/web/index.ts +0 -1
  238. package/packages/bundled-features/src/ledger/changes.json +7 -0
  239. package/packages/bundled-features/src/ledger/entity.ts +1 -1
  240. package/packages/bundled-features/src/ledger/feature.ts +1 -1
  241. package/packages/bundled-features/src/ledger/handlers/confirm-schedule-period.write.ts +2 -10
  242. package/packages/bundled-features/src/ledger/handlers/create-transaction.write.ts +1 -1
  243. package/packages/bundled-features/src/ledger/handlers/reports.query.ts +1 -1
  244. package/packages/bundled-features/src/ledger/handlers/reverse-transaction.write.ts +1 -1
  245. package/packages/bundled-features/src/ledger/index.ts +13 -13
  246. package/packages/bundled-features/src/ledger/recurring.ts +1 -1
  247. package/packages/bundled-features/src/ledger/reports.ts +1 -1
  248. package/packages/bundled-features/src/ledger/schemas.ts +1 -1
  249. package/packages/bundled-features/src/ledger/{constants.ts → web/constants.ts} +0 -1
  250. package/packages/bundled-features/src/ledger/web/index.ts +11 -12
  251. package/packages/bundled-features/src/legal-pages/README.md +1 -1
  252. package/packages/bundled-features/src/legal-pages/feature.ts +5 -5
  253. package/packages/bundled-features/src/legal-pages/index.ts +11 -11
  254. package/packages/bundled-features/src/legal-pages/lib/boot-check.ts +1 -1
  255. package/packages/bundled-features/src/legal-pages/lib/validate-routes.ts +1 -1
  256. package/packages/bundled-features/src/legal-pages/web/client-plugin.ts +1 -2
  257. package/packages/bundled-features/src/legal-pages/{constants.ts → web/constants.ts} +6 -8
  258. package/packages/bundled-features/src/legal-pages/web/index.ts +0 -1
  259. package/packages/bundled-features/src/managed-pages/feature.ts +1 -1
  260. package/packages/bundled-features/src/managed-pages/web/client-plugin.tsx +1 -2
  261. package/packages/bundled-features/src/managed-pages/web/default-translations.ts +17 -0
  262. package/packages/bundled-features/src/managed-pages/web/i18n.ts +59 -16
  263. package/packages/bundled-features/src/managed-pages/web/index.ts +1 -2
  264. package/packages/bundled-features/src/metrics/compute.ts +1 -1
  265. package/packages/bundled-features/src/metrics/feature.ts +6 -6
  266. package/packages/bundled-features/src/metrics/index.ts +8 -8
  267. package/packages/bundled-features/src/metrics/types.ts +1 -1
  268. package/packages/bundled-features/src/metrics/validate.ts +1 -1
  269. package/packages/bundled-features/src/metrics/{constants.ts → web/constants.ts} +0 -1
  270. package/packages/bundled-features/src/metrics/window.ts +1 -1
  271. package/packages/bundled-features/src/notes-history/feature.ts +1 -1
  272. package/packages/bundled-features/src/notes-history/handlers/add-note.write.ts +1 -1
  273. package/packages/bundled-features/src/notes-history/index.ts +8 -8
  274. package/packages/bundled-features/src/notes-history/web/client-plugin.tsx +1 -3
  275. package/packages/bundled-features/src/notes-history/{constants.ts → web/constants.ts} +0 -1
  276. package/packages/bundled-features/src/notes-history/web/i18n.ts +0 -1
  277. package/packages/bundled-features/src/notes-history/web/index.ts +2 -3
  278. package/packages/bundled-features/src/notes-history/web/notes-section.tsx +2 -3
  279. package/packages/bundled-features/src/personal-access-tokens/feature.ts +12 -10
  280. package/packages/bundled-features/src/personal-access-tokens/handlers/available-scopes.query.ts +1 -1
  281. package/packages/bundled-features/src/personal-access-tokens/handlers/create.write.ts +1 -1
  282. package/packages/bundled-features/src/personal-access-tokens/handlers/revoke.write.ts +1 -1
  283. package/packages/bundled-features/src/personal-access-tokens/hash.ts +1 -1
  284. package/packages/bundled-features/src/personal-access-tokens/i18n.ts +2 -2
  285. package/packages/bundled-features/src/personal-access-tokens/index.ts +5 -5
  286. package/packages/bundled-features/src/personal-access-tokens/resolver.ts +1 -1
  287. package/packages/bundled-features/src/personal-access-tokens/schema/api-token.ts +1 -1
  288. package/packages/bundled-features/src/personal-access-tokens/screens.ts +2 -2
  289. package/packages/bundled-features/src/personal-access-tokens/{constants.ts → web/constants.ts} +0 -1
  290. package/packages/bundled-features/src/personal-access-tokens/{scopes.ts → web/scopes.ts} +0 -1
  291. package/packages/bundled-features/src/presets/changes.json +7 -0
  292. package/packages/bundled-features/src/presets/index.ts +0 -1
  293. package/packages/bundled-features/src/presets/security-baseline.ts +1 -1
  294. package/packages/bundled-features/src/renderer-foundation/types.ts +1 -1
  295. package/packages/bundled-features/src/secrets/feature.ts +1 -1
  296. package/packages/bundled-features/src/secrets/handlers/delete.write.ts +1 -1
  297. package/packages/bundled-features/src/secrets/handlers/list.query.ts +1 -1
  298. package/packages/bundled-features/src/secrets/handlers/set.write.ts +1 -1
  299. package/packages/bundled-features/src/secrets/i18n.ts +1 -1
  300. package/packages/bundled-features/src/secrets/index.ts +8 -8
  301. package/packages/bundled-features/src/secrets/{constants.ts → web/constants.ts} +0 -1
  302. package/packages/bundled-features/src/secrets/write-gate.ts +1 -1
  303. package/packages/bundled-features/src/sessions/feature.ts +7 -4
  304. package/packages/bundled-features/src/sessions/{i18n.ts → web/i18n.ts} +0 -1
  305. package/packages/bundled-features/src/shared/index.ts +6 -1
  306. package/packages/bundled-features/src/shared/purge-files-reaching-subject.ts +10 -2
  307. package/packages/bundled-features/src/shared/web/translate-or-raw.ts +0 -1
  308. package/packages/bundled-features/src/subscription-stripe/feature.ts +2 -0
  309. package/packages/bundled-features/src/subscription-stripe/plugin-methods.ts +19 -0
  310. package/packages/bundled-features/src/subscription-stripe/verify-webhook.ts +1 -0
  311. package/packages/bundled-features/src/tags/changes.json +6 -0
  312. package/packages/bundled-features/src/tags/feature.ts +1 -1
  313. package/packages/bundled-features/src/tags/handlers/assign-tag.write.ts +11 -7
  314. package/packages/bundled-features/src/tags/handlers/create-tag.write.ts +1 -1
  315. package/packages/bundled-features/src/tags/handlers/delete-tag.write.ts +4 -1
  316. package/packages/bundled-features/src/tags/handlers/remove-tag.write.ts +1 -1
  317. package/packages/bundled-features/src/tags/handlers/update-tag.write.ts +1 -1
  318. package/packages/bundled-features/src/tags/index.ts +12 -12
  319. package/packages/bundled-features/src/tags/screens.ts +1 -1
  320. package/packages/bundled-features/src/tags/web/client-plugin.tsx +1 -3
  321. package/packages/bundled-features/src/tags/{constants.ts → web/constants.ts} +4 -1
  322. package/packages/bundled-features/src/tags/web/entity-tags.tsx +1 -2
  323. package/packages/bundled-features/src/tags/web/i18n.ts +2 -2
  324. package/packages/bundled-features/src/tags/web/index.ts +2 -3
  325. package/packages/bundled-features/src/tags/web/tag-chip.tsx +0 -1
  326. package/packages/bundled-features/src/tags/web/tag-filter.tsx +1 -2
  327. package/packages/bundled-features/src/tags/web/tag-manager.tsx +5 -4
  328. package/packages/bundled-features/src/tags/web/tag-picker.tsx +0 -1
  329. package/packages/bundled-features/src/tags/web/tag-section.tsx +1 -2
  330. package/packages/bundled-features/src/tags/web/tags-cell.tsx +1 -2
  331. package/packages/bundled-features/src/template-resolver/README.md +1 -1
  332. package/packages/bundled-features/src/template-resolver/api.ts +75 -28
  333. package/packages/bundled-features/src/template-resolver/changes.json +43 -0
  334. package/packages/bundled-features/src/template-resolver/compile-document-body.ts +1 -1
  335. package/packages/bundled-features/src/template-resolver/compile-steps-block.ts +2 -2
  336. package/packages/bundled-features/src/template-resolver/document-ops.ts +5 -5
  337. package/packages/bundled-features/src/template-resolver/document-sanitizer.ts +4 -4
  338. package/packages/bundled-features/src/template-resolver/feature.ts +13 -4
  339. package/packages/bundled-features/src/template-resolver/handlers/by-slug.query.ts +6 -1
  340. package/packages/bundled-features/src/template-resolver/handlers/by-tenant.query.ts +6 -2
  341. package/packages/bundled-features/src/template-resolver/handlers/collection-item.query.ts +1 -1
  342. package/packages/bundled-features/src/template-resolver/handlers/collection-list.query.ts +1 -1
  343. package/packages/bundled-features/src/template-resolver/handlers/collection-set.write.ts +19 -2
  344. package/packages/bundled-features/src/template-resolver/handlers/copy-locale.write.ts +2 -2
  345. package/packages/bundled-features/src/template-resolver/handlers/diff-to-system.query.ts +7 -1
  346. package/packages/bundled-features/src/template-resolver/handlers/discard-draft.write.ts +1 -1
  347. package/packages/bundled-features/src/template-resolver/handlers/document-base.ts +8 -2
  348. package/packages/bundled-features/src/template-resolver/handlers/document-blocks.query.ts +2 -2
  349. package/packages/bundled-features/src/template-resolver/handlers/export-bundle.query.ts +5 -2
  350. package/packages/bundled-features/src/template-resolver/handlers/find-by-id.query.ts +4 -2
  351. package/packages/bundled-features/src/template-resolver/handlers/layout-source.query.ts +10 -5
  352. package/packages/bundled-features/src/template-resolver/handlers/list.query.ts +5 -2
  353. package/packages/bundled-features/src/template-resolver/handlers/overview.query.ts +68 -10
  354. package/packages/bundled-features/src/template-resolver/handlers/patch-draft.write.ts +1 -1
  355. package/packages/bundled-features/src/template-resolver/handlers/resource-shared.ts +1 -1
  356. package/packages/bundled-features/src/template-resolver/handlers/resource-upload.write.ts +1 -1
  357. package/packages/bundled-features/src/template-resolver/handlers/send-test.write.ts +2 -2
  358. package/packages/bundled-features/src/template-resolver/handlers/set.write.ts +1 -1
  359. package/packages/bundled-features/src/template-resolver/handlers/shared.ts +1 -1
  360. package/packages/bundled-features/src/template-resolver/handlers/template-gates.ts +6 -6
  361. package/packages/bundled-features/src/template-resolver/handlers/template-write.ts +2 -2
  362. package/packages/bundled-features/src/template-resolver/handlers/usage.query.ts +8 -2
  363. package/packages/bundled-features/src/template-resolver/handlers/validate.query.ts +4 -2
  364. package/packages/bundled-features/src/template-resolver/i18n.ts +25 -0
  365. package/packages/bundled-features/src/template-resolver/index.ts +60 -59
  366. package/packages/bundled-features/src/template-resolver/layout-appearance.ts +1 -1
  367. package/packages/bundled-features/src/template-resolver/layout-regions.ts +1 -1
  368. package/packages/bundled-features/src/template-resolver/seeding.ts +16 -7
  369. package/packages/bundled-features/src/template-resolver/store-template-resource.ts +2 -2
  370. package/packages/bundled-features/src/template-resolver/table.ts +1 -1
  371. package/packages/bundled-features/src/template-resolver/template-bundle.ts +2 -2
  372. package/packages/bundled-features/src/template-resolver/template-delivery-policy.ts +82 -0
  373. package/packages/bundled-features/src/template-resolver/template-draft.ts +1 -1
  374. package/packages/bundled-features/src/template-resolver/template-edit-policy.ts +2 -2
  375. package/packages/bundled-features/src/template-resolver/template-meta.ts +2 -2
  376. package/packages/bundled-features/src/template-resolver/template-preview.ts +14 -10
  377. package/packages/bundled-features/src/template-resolver/template-usage.ts +1 -1
  378. package/packages/bundled-features/src/template-resolver/template-validation.ts +2 -2
  379. package/packages/bundled-features/src/template-resolver/testing.ts +2 -2
  380. package/packages/bundled-features/src/template-resolver/user-content-table.ts +1 -1
  381. package/packages/bundled-features/src/template-resolver/web/client-plugin.tsx +4 -5
  382. package/packages/bundled-features/src/template-resolver/{constants.ts → web/constants.ts} +7 -10
  383. package/packages/bundled-features/src/template-resolver/{document-blocks.ts → web/document-blocks.ts} +0 -1
  384. package/packages/bundled-features/src/template-resolver/web/document-editor-extensions.ts +2 -3
  385. package/packages/bundled-features/src/template-resolver/web/document-editor.tsx +0 -1
  386. package/packages/bundled-features/src/template-resolver/{document-images.ts → web/document-images.ts} +0 -1
  387. package/packages/bundled-features/src/template-resolver/{document-schema.ts → web/document-schema.ts} +0 -1
  388. package/packages/bundled-features/src/template-resolver/{document-steps.ts → web/document-steps.ts} +0 -1
  389. package/packages/bundled-features/src/template-resolver/web/document-tiptap-editor.tsx +6 -7
  390. package/packages/bundled-features/src/template-resolver/web/document-toolbar-blocks.ts +2 -3
  391. package/packages/bundled-features/src/template-resolver/web/editor-handle.ts +1 -2
  392. package/packages/bundled-features/src/template-resolver/web/i18n.ts +2 -1
  393. package/packages/bundled-features/src/template-resolver/web/index.ts +13 -14
  394. package/packages/bundled-features/src/template-resolver/{mail-constants.ts → web/mail-constants.ts} +0 -1
  395. package/packages/bundled-features/src/template-resolver/{pdf-constants.ts → web/pdf-constants.ts} +0 -1
  396. package/packages/bundled-features/src/template-resolver/web/placeholder-line-editor-lazy.tsx +0 -1
  397. package/packages/bundled-features/src/template-resolver/web/placeholder-line-editor.tsx +5 -4
  398. package/packages/bundled-features/src/template-resolver/{placeholder-text.ts → web/placeholder-text.ts} +0 -1
  399. package/packages/bundled-features/src/template-resolver/{qualified-names.ts → web/qualified-names.ts} +0 -1
  400. package/packages/bundled-features/src/template-resolver/web/use-stable-by-key.ts +0 -1
  401. package/packages/bundled-features/src/tenant/handlers/add-member.write.ts +1 -1
  402. package/packages/bundled-features/src/tenant/index.ts +7 -7
  403. package/packages/bundled-features/src/tenant/invitation-table.ts +1 -1
  404. package/packages/bundled-features/src/tenant/invited-membership.ts +1 -1
  405. package/packages/bundled-features/src/tenant/last-tenant-admin.ts +1 -1
  406. package/packages/bundled-features/src/tenant/member-role-options.ts +1 -1
  407. package/packages/bundled-features/src/tenant/screens.ts +2 -2
  408. package/packages/bundled-features/src/tenant/web/client-plugin.tsx +1 -2
  409. package/packages/bundled-features/src/tenant/{constants.ts → web/constants.ts} +3 -6
  410. package/packages/bundled-features/src/tenant/web/index.ts +0 -1
  411. package/packages/bundled-features/src/tenant/web/member-roles-cell.tsx +0 -1
  412. package/packages/bundled-features/src/tenant/web/member-status-cell.tsx +0 -1
  413. package/packages/bundled-features/src/tenant-lifecycle/stages.ts +2 -2
  414. package/packages/bundled-features/src/tier-engine/entity.ts +1 -1
  415. package/packages/bundled-features/src/tier-engine/feature.ts +7 -7
  416. package/packages/bundled-features/src/tier-engine/handlers/set-tenant-tier.write.ts +1 -1
  417. package/packages/bundled-features/src/tier-engine/index.ts +8 -8
  418. package/packages/bundled-features/src/tier-engine/web/client-plugin.tsx +2 -3
  419. package/packages/bundled-features/src/tier-engine/{constants.ts → web/constants.ts} +2 -3
  420. package/packages/bundled-features/src/tier-engine/{i18n.ts → web/i18n.ts} +0 -1
  421. package/packages/bundled-features/src/tier-engine/web/index.ts +0 -1
  422. package/packages/bundled-features/src/user/handlers/create.write.ts +1 -1
  423. package/packages/bundled-features/src/user/handlers/update-roles.ts +1 -1
  424. package/packages/bundled-features/src/user/handlers/update.write.ts +1 -1
  425. package/packages/bundled-features/src/user/index.ts +1 -1
  426. package/packages/bundled-features/src/user/invited-global-roles.ts +1 -1
  427. package/packages/bundled-features/src/user/schema/user.ts +1 -1
  428. package/packages/bundled-features/src/user/{constants.ts → web/constants.ts} +0 -1
  429. package/packages/bundled-features/src/user-data-rights/changes.json +14 -0
  430. package/packages/bundled-features/src/user-data-rights/env.ts +1 -1
  431. package/packages/bundled-features/src/user-data-rights/feature.ts +9 -9
  432. package/packages/bundled-features/src/user-data-rights/index.ts +1 -1
  433. package/packages/bundled-features/src/user-data-rights/lib/resolve-tenant-model.ts +1 -1
  434. package/packages/bundled-features/src/user-data-rights/mail-notifications.ts +1 -1
  435. package/packages/bundled-features/src/user-data-rights/web/client-plugin.tsx +2 -3
  436. package/packages/bundled-features/src/user-data-rights/web/confirm-deletion-screen.tsx +0 -1
  437. package/packages/bundled-features/src/user-data-rights/{constants.ts → web/constants.ts} +11 -12
  438. package/packages/bundled-features/src/user-data-rights/web/default-translations.ts +91 -0
  439. package/packages/bundled-features/src/user-data-rights/web/i18n.ts +41 -91
  440. package/packages/bundled-features/src/user-data-rights/web/index.ts +1 -2
  441. package/packages/bundled-features/src/user-data-rights/web/privacy-center-screen.tsx +1 -2
  442. package/packages/bundled-features/src/user-data-rights/web/public-deletion-gate.tsx +0 -1
  443. package/packages/bundled-features/src/user-data-rights/web/request-deletion-screen.tsx +0 -1
  444. package/packages/bundled-features/src/user-data-rights-defaults/hooks/file-ref.userdata-hook.ts +10 -1
  445. package/packages/bundled-features/src/user-profile/feature.ts +2 -2
  446. package/packages/bundled-features/src/user-profile/handlers/change-email.write.ts +1 -1
  447. package/packages/bundled-features/src/user-profile/index.ts +3 -2
  448. package/packages/bundled-features/src/user-profile/web/client-plugin.ts +2 -3
  449. package/packages/bundled-features/src/user-profile/{constants.ts → web/constants.ts} +0 -1
  450. package/packages/bundled-features/src/user-profile/{i18n.ts → web/i18n.ts} +0 -1
  451. package/packages/bundled-features/src/user-profile/web/profile-screen.tsx +2 -3
  452. package/packages/bundled-features/src/waitlist/changes.json +6 -0
  453. package/packages/bundled-features/src/waitlist/entity.ts +1 -1
  454. package/packages/bundled-features/src/waitlist/feature.ts +5 -5
  455. package/packages/bundled-features/src/waitlist/handlers/export-purge.write.ts +3 -3
  456. package/packages/bundled-features/src/waitlist/handlers/invite.write.ts +5 -1
  457. package/packages/bundled-features/src/waitlist/handlers/reject.write.ts +1 -1
  458. package/packages/bundled-features/src/waitlist/handlers/submit.write.ts +3 -3
  459. package/packages/bundled-features/src/waitlist/import.ts +1 -1
  460. package/packages/bundled-features/src/waitlist/index.ts +11 -11
  461. package/packages/bundled-features/src/waitlist/legacy-migrate.ts +1 -1
  462. package/packages/bundled-features/src/waitlist/link-on-signup.ts +1 -1
  463. package/packages/bundled-features/src/waitlist/mail.ts +7 -6
  464. package/packages/bundled-features/src/waitlist/payloads.ts +1 -1
  465. package/packages/bundled-features/src/waitlist/screens.ts +1 -1
  466. package/packages/bundled-features/src/waitlist/{constants.ts → web/constants.ts} +0 -1
  467. package/samples/apps/styleguide/src/features/content/web.tsx +0 -1
  468. package/samples/apps/ui-walkthrough/src/app/client.tsx +2 -0
  469. package/samples/apps/ui-walkthrough/src/app/seed-rental.ts +17 -1
  470. package/samples/apps/ui-walkthrough/src/app/seed-templates.ts +11 -0
  471. package/samples/apps/ui-walkthrough/src/app/server.ts +2 -1
  472. package/samples/apps/ui-walkthrough/src/features/billing/feature.ts +35 -7
  473. package/samples/apps/ui-walkthrough/src/features/billing/i18n.ts +6 -0
  474. package/samples/apps/ui-walkthrough/src/features/rental/entities.ts +27 -0
  475. package/samples/apps/ui-walkthrough/src/features/rental/feature.ts +61 -7
  476. package/samples/apps/ui-walkthrough/src/features/rental/i18n.ts +48 -24
  477. package/samples/apps/ui-walkthrough/src/features/rental/invoice-receive.ts +0 -1
  478. package/samples/apps/ui-walkthrough/src/features/rental/lease-support.ts +17 -1
  479. package/samples/apps/ui-walkthrough/src/features/rental/qualified-names.ts +3 -0
  480. package/samples/apps/ui-walkthrough/src/features/rental/receipts-upload.ts +70 -0
  481. package/samples/apps/ui-walkthrough/src/features/rental/screens.ts +90 -13
  482. package/samples/apps/ui-walkthrough/src/features/rental/web/index.ts +0 -2
  483. package/samples/apps/ui-walkthrough/src/features/subscription-plans/feature.ts +103 -0
  484. package/samples/apps/ui-walkthrough/src/features/subscription-plans/i18n.ts +36 -0
  485. package/samples/apps/ui-walkthrough/src/features/subscription-plans/index.ts +2 -0
  486. package/samples/apps/ui-walkthrough/src/features/subscription-plans/seed.ts +21 -0
  487. package/samples/apps/ui-walkthrough/src/run-config.ts +11 -0
  488. package/samples/apps/use-all-bundled/e2e-billing-gallery/server.ts +1 -1
  489. package/samples/apps/use-all-bundled/feature-manifest.json +4 -4
  490. package/samples/apps/use-all-bundled/scripts/check-coverage.ts +1 -1
  491. package/samples/apps/use-all-bundled/src/app/dev-app-options.ts +3 -1
  492. package/samples/recipes/compose-stacks/README.md +1 -2
  493. package/samples/recipes/embedded/README.md +5 -5
  494. package/samples/recipes/embedded/src/handlers/invoice-receive.write.ts +0 -1
  495. package/samples/recipes/embedded/src/screens/invoice-receive.screen.ts +9 -12
  496. package/samples/recipes/legal-pages/README.md +2 -2
  497. package/samples/recipes/legal-pages/src/feature.ts +1 -1
  498. package/samples/recipes/reference-data/src/feature.ts +3 -7
  499. package/packages/bundled-features/src/admin-shell/i18n.ts +0 -54
  500. package/packages/bundled-features/src/audit/i18n.ts +0 -25
  501. package/packages/bundled-features/src/auth-mfa/web/qrcode-browser.d.ts +0 -11
  502. package/packages/bundled-features/src/jobs/i18n.ts +0 -55
  503. package/packages/bundled-features/src/managed-pages/i18n.ts +0 -63
  504. package/packages/bundled-features/src/presets/dsgvo-self-service.ts +0 -35
  505. package/packages/bundled-features/src/user-data-rights/i18n.ts +0 -44
  506. package/samples/apps/ui-walkthrough/src/features/rental/web/upload-standard-layout.tsx +0 -61
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Feature name + qualified handler/query names (QN: scope:type:name).
3
2
  export const TEMPLATE_RESOLVER_FEATURE = "template-resolver" as const;
4
3
 
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  import { useState } from "react";
3
2
 
4
3
  // Callers often pass fresh object literals every render; this keeps the first
@@ -12,9 +12,9 @@ import {
12
12
  writeFailure,
13
13
  } from "@cosmicdrift/kumiko-framework/errors";
14
14
  import * as z from "zod";
15
- import { TenantErrors } from "../constants.ts";
16
15
  import { findForbiddenMembershipRole, reservedMembershipRoleError } from "../membership-roles.ts";
17
16
  import { tenantMembershipEntity, tenantMembershipsTable } from "../membership-table.ts";
17
+ import { TenantErrors } from "../web/constants.ts";
18
18
 
19
19
  const executor = createEventStoreExecutor(tenantMembershipsTable, tenantMembershipEntity, {
20
20
  entityName: "tenant-membership",
@@ -1,12 +1,5 @@
1
1
  export { cancelPendingInvitation } from "./cancel-pending-invitation.ts";
2
2
  export { TenantCommandSchemas } from "./command-schemas.ts";
3
- export {
4
- OWNER_INVITE_ROLE_OPTIONS,
5
- TENANT_FEATURE,
6
- TenantErrors,
7
- TenantHandlers,
8
- TenantQueries,
9
- } from "./constants.ts";
10
3
  export { decryptTenantNames } from "./decrypt-tenant-names.ts";
11
4
  export { collectAssignableAppRoles, createTenantFeature } from "./feature.ts";
12
5
  export type { InvitationStatus } from "./invitation-table.ts";
@@ -24,3 +17,10 @@ export {
24
17
  tenantEntity,
25
18
  tenantTable,
26
19
  } from "./schema/tenant.ts";
20
+ export {
21
+ OWNER_INVITE_ROLE_OPTIONS,
22
+ TENANT_FEATURE,
23
+ TenantErrors,
24
+ TenantHandlers,
25
+ TenantQueries,
26
+ } from "./web/constants.ts";
@@ -32,7 +32,7 @@ import {
32
32
  createTimestampField,
33
33
  } from "@cosmicdrift/kumiko-framework/engine";
34
34
  // kumiko-lint-ignore cross-feature-import global-role options are owned by the user feature
35
- import { GLOBAL_ROLE_OPTIONS } from "../user/constants.ts";
35
+ import { GLOBAL_ROLE_OPTIONS } from "../user/web/constants.ts";
36
36
 
37
37
  // Status-const-Object damit Handler-Code keine Magic-Strings nutzt.
38
38
  // Bei rename (z.B. "cancelled" → "revoked") fällt jeder caller auf
@@ -9,10 +9,10 @@ import { createSystemUser, type TenantId } from "@cosmicdrift/kumiko-framework/e
9
9
  import { ConflictError, writeFailure } from "@cosmicdrift/kumiko-framework/errors";
10
10
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
11
11
  import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
12
- import { TenantErrors } from "./constants.ts";
13
12
  import { findForbiddenMembershipRole, reservedMembershipRoleError } from "./membership-roles.ts";
14
13
  import { tenantMembershipEntity, tenantMembershipsTable } from "./membership-table.ts";
15
14
  import { seedTenantMembership } from "./seeding.ts";
15
+ import { TenantErrors } from "./web/constants.ts";
16
16
 
17
17
  const membershipExecutor = createEventStoreExecutor(
18
18
  tenantMembershipsTable,
@@ -1,8 +1,8 @@
1
1
  import { acquireNamespacedAdvisoryLock, selectMany } from "@cosmicdrift/kumiko-framework/db";
2
2
  import { ConflictError, writeFailure } from "@cosmicdrift/kumiko-framework/errors";
3
3
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
4
- import { TenantErrors } from "./constants.ts";
5
4
  import { tenantMembershipsTable } from "./membership-table.ts";
5
+ import { TenantErrors } from "./web/constants.ts";
6
6
 
7
7
  // Serializes last-TenantAdmin demotion/removal checks per tenant inside the write TX
8
8
  // (dispatcher batch wraps handlers in transaction — xact lock holds through update).
@@ -1,5 +1,5 @@
1
1
  import type { AssignableAppRoles } from "@cosmicdrift/kumiko-framework/engine";
2
- import { OWNER_INVITE_ROLE_OPTIONS } from "./constants.ts";
2
+ import { OWNER_INVITE_ROLE_OPTIONS } from "./web/constants.ts";
3
3
 
4
4
  export function memberRoleOptions(assignableAppRoles: AssignableAppRoles): readonly string[] {
5
5
  return [...OWNER_INVITE_ROLE_OPTIONS, ...assignableAppRoles.keys()];
@@ -8,6 +8,7 @@ import {
8
8
  isAssignableByRole,
9
9
  type ScreenDefinition,
10
10
  } from "@cosmicdrift/kumiko-framework/engine";
11
+ import { memberRoleOptions } from "./member-role-options.ts";
11
12
  import {
12
13
  DEFAULT_INVITE_ROLE_OPTIONS,
13
14
  INVITE_CREATE_SCREEN_ID,
@@ -17,8 +18,7 @@ import {
17
18
  MEMBERS_SCREEN_ID,
18
19
  TenantHandlers,
19
20
  TenantQueries,
20
- } from "./constants.ts";
21
- import { memberRoleOptions } from "./member-role-options.ts";
21
+ } from "./web/constants.ts";
22
22
 
23
23
  // Cross-tenant SystemAdmin platform view of the tenants themselves. The tenant
24
24
  // feature runs with `r.systemScope()`, so the entityList returns every tenant.
@@ -1,11 +1,10 @@
1
- // @runtime client
2
1
  import { mergeTranslations, type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
3
2
  import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
4
3
  import {
5
4
  MEMBER_ROLES_CELL_COMPONENT,
6
5
  MEMBER_STATUS_CELL_COMPONENT,
7
6
  TENANT_FEATURE,
8
- } from "../constants.ts";
7
+ } from "./constants.ts";
9
8
  import { MemberRolesCell } from "./member-roles-cell.tsx";
10
9
  import { MemberStatusCell } from "./member-status-cell.tsx";
11
10
 
@@ -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
 
7
4
  // Feature name
8
5
  export const TENANT_FEATURE = "tenant" as const;
@@ -64,7 +61,7 @@ export const TenantQueries = {
64
61
  tenantDirectory: "tenant:query:tenant-directory",
65
62
  activeTenantIds: "tenant:query:active-tenant-ids",
66
63
  resolveUserIds: "tenant:query:resolve-user-ids",
67
- // Pending Invitations für den aktuellen Tenant (Admin-UI-Liste).
64
+ // Pending invitations of the current tenant (admin UI list).
68
65
  invitations: "tenant:query:invitations",
69
66
  // Combined active-members + pending-invitations list backing /members.
70
67
  teamList: "tenant:query:team:list",
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  export { type TenantClientOptions, tenantClient } from "./client-plugin.tsx";
3
2
  export { MemberRolesCell } from "./member-roles-cell.tsx";
4
3
  export { MemberStatusCell } from "./member-status-cell.tsx";
@@ -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,4 +1,3 @@
1
- // @runtime client
2
1
  // Column-renderer for the /members screen's status column, registered via
3
2
  // `tenantClient()`'s `columnRenderers` map (screen.columns[].renderer in
4
3
  // screens.ts). The list frame itself is the generic declarative
@@ -5,6 +5,7 @@ import {
5
5
  } from "@cosmicdrift/kumiko-framework/crypto";
6
6
  import {
7
7
  createEventStoreExecutor,
8
+ createTenantDataDestroyDb,
8
9
  createTenantDb,
9
10
  type DbRunner,
10
11
  selectMany,
@@ -143,10 +144,9 @@ async function runTenantDataHooks(ctx: DestructionStageCtx): Promise<StageRunOut
143
144
  log: ctx.escapeHatchAuditLog ?? createFallbackLogger("tenant-lifecycle"),
144
145
  });
145
146
  const hookCtx: TenantDataHookCtx = {
146
- db: createTenantDb({
147
+ db: createTenantDataDestroyDb({
147
148
  db: ctx.db,
148
149
  tenantId: ctx.tenantId,
149
- mode: "tenant",
150
150
  grants: {
151
151
  unsafeRaw: reason !== undefined ? { reason } : undefined,
152
152
  report,
@@ -3,7 +3,7 @@ import {
3
3
  createSelectField,
4
4
  createTextField,
5
5
  } from "@cosmicdrift/kumiko-framework/engine";
6
- import { type TierAssignmentSource, TierAssignmentSources } from "./constants.ts";
6
+ import { type TierAssignmentSource, TierAssignmentSources } from "./web/constants.ts";
7
7
 
8
8
  // tier-assignment — pro Plattform-Tenant genau ein Aggregat. Aggregate-ID
9
9
  // wird deterministisch aus tenantId abgeleitet (uuidv5, siehe aggregate-id.ts).
@@ -76,18 +76,18 @@ import * as z from "zod";
76
76
  import { tenantTable } from "../tenant/index.ts";
77
77
  import { tierAssignmentAggregateId } from "./aggregate-id.ts";
78
78
  import type { TierMap } from "./compose-app.ts";
79
- import {
80
- TIER_ADMIN_SCREEN_ID,
81
- TIER_ENGINE_FEATURE,
82
- TierAssignmentSources,
83
- TierEngineHandlers,
84
- } from "./constants.ts";
85
79
  import { tierAssignmentEntity } from "./entity.ts";
86
80
  import { getActiveTierQuery } from "./handlers/active-tier.query.ts";
87
81
  import { getTenantTierQuery } from "./handlers/get-tenant-tier.query.ts";
88
82
  import { createSetTenantTierWrite } from "./handlers/set-tenant-tier.write.ts";
89
- import { TIER_ENGINE_I18N } from "./i18n.ts";
90
83
  import { isTrialActive, type TrialPolicy } from "./trial.ts";
84
+ import {
85
+ TIER_ADMIN_SCREEN_ID,
86
+ TIER_ENGINE_FEATURE,
87
+ TierAssignmentSources,
88
+ TierEngineHandlers,
89
+ } from "./web/constants.ts";
90
+ import { TIER_ENGINE_I18N } from "./web/i18n.ts";
91
91
 
92
92
  // Drizzle-table for the tier-assignment-entity. Built once at module-load
93
93
  // from the entity definition — same shape buildEntityTable would produce
@@ -7,8 +7,8 @@ import { defineWriteHandler, type TenantId } from "@cosmicdrift/kumiko-framework
7
7
  import * as z from "zod";
8
8
  import { requireForTenant } from "../../shared/index.ts";
9
9
  import { tierAssignmentAggregateId } from "../aggregate-id.ts";
10
- import { type TierAssignmentSource, TierAssignmentSources } from "../constants.ts";
11
10
  import { type TierAssignmentRow, tierAssignmentEntity } from "../entity.ts";
11
+ import { type TierAssignmentSource, TierAssignmentSources } from "../web/constants.ts";
12
12
 
13
13
  // SystemAdmin setzt das Tier eines BELIEBIGEN Tenants — manueller Grant ohne
14
14
  // Billing. Cross-tenant, daher SystemAdmin-only (kein TenantAdmin: sonst
@@ -17,14 +17,6 @@ export {
17
17
  type TierDefinition,
18
18
  type TierMap,
19
19
  } from "./compose-app.ts";
20
- export {
21
- isTierAssignmentSource,
22
- TIER_ENGINE_FEATURE,
23
- type TierAssignmentSource,
24
- TierAssignmentSources,
25
- TierEngineHandlers,
26
- TierEngineQueries,
27
- } from "./constants.ts";
28
20
  export { tierAssignmentEntity } from "./entity.ts";
29
21
  export {
30
22
  type CreateTierEngineOptions,
@@ -43,3 +35,11 @@ export {
43
35
  type TierResolverDeps,
44
36
  } from "./tier-resolver.ts";
45
37
  export { isTrialActive, type TrialPolicy } from "./trial.ts";
38
+ export {
39
+ isTierAssignmentSource,
40
+ TIER_ENGINE_FEATURE,
41
+ type TierAssignmentSource,
42
+ TierAssignmentSources,
43
+ TierEngineHandlers,
44
+ TierEngineQueries,
45
+ } from "./web/constants.ts";
@@ -1,4 +1,3 @@
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.
@@ -9,8 +8,8 @@ import {
9
8
  translationsByLocaleFromKeys,
10
9
  } from "@cosmicdrift/kumiko-renderer";
11
10
  import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
12
- import { TIER_ENGINE_FEATURE } from "../constants.ts";
13
- import { TIER_ENGINE_I18N } from "../i18n.ts";
11
+ import { TIER_ENGINE_FEATURE } from "./constants.ts";
12
+ import { TIER_ENGINE_I18N } from "./i18n.ts";
14
13
 
15
14
  const defaultTranslations: TranslationsByLocale = translationsByLocaleFromKeys(TIER_ENGINE_I18N);
16
15
 
@@ -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
@@ -39,6 +38,6 @@ export const TierEngineQueries = {
39
38
  tierOptions: "tier-engine:query:tier-options",
40
39
  } as const;
41
40
 
42
- // Screen-id für den manuellen Tier-Grant-Screen. Apps referenzieren ihn
43
- // qualifiziert in r.nav: `tier-engine:screen:tier-admin`.
41
+ // Screen id of the manual tier-grant screen. Apps reference it qualified in
42
+ // r.nav: `tier-engine:screen:tier-admin`.
44
43
  export const TIER_ADMIN_SCREEN_ID = "tier-admin" as const;
@@ -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
@@ -14,9 +14,9 @@ import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-fra
14
14
  import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
15
15
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
16
16
  import * as z from "zod";
17
- import { UserErrors } from "../constants.ts";
18
17
  import { rolesInputSchema } from "../roles-input-schema.ts";
19
18
  import { userEntity, userTable } from "../schema/user.ts";
19
+ import { UserErrors } from "../web/constants.ts";
20
20
 
21
21
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
22
22
 
@@ -22,8 +22,8 @@ import {
22
22
  writeFailure,
23
23
  } from "@cosmicdrift/kumiko-framework/errors";
24
24
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
25
- import { UserErrors } from "../constants.ts";
26
25
  import { USER_STATUS, userEntity, userTable } from "../schema/user.ts";
26
+ import { UserErrors } from "../web/constants.ts";
27
27
 
28
28
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
29
29
 
@@ -8,9 +8,9 @@ import {
8
8
  import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-framework/i18n";
9
9
  import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
10
10
  import * as z from "zod";
11
- import { UserErrors } from "../constants.ts";
12
11
  import { rolesInputSchema } from "../roles-input-schema.ts";
13
12
  import { userEntity, userTable } from "../schema/user.ts";
13
+ import { UserErrors } from "../web/constants.ts";
14
14
  import { applyUserRolesUpdate } from "./update-roles.ts";
15
15
 
16
16
  const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
@@ -1,5 +1,4 @@
1
1
  export { UserCommandSchemas } from "./command-schemas.ts";
2
- export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./constants.ts";
3
2
  export {
4
3
  backfillUserStreamTenants,
5
4
  type UserStreamBackfillResult,
@@ -22,3 +21,4 @@ export {
22
21
  userEntity,
23
22
  userTable,
24
23
  } from "./schema/user.ts";
24
+ export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./web/constants.ts";
@@ -7,8 +7,8 @@ import {
7
7
  import { createSystemUser, SYSTEM_TENANT_ID } from "@cosmicdrift/kumiko-framework/engine";
8
8
  import { NotFoundError, writeFailure } from "@cosmicdrift/kumiko-framework/errors";
9
9
  import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
10
- import { GLOBAL_ROLE_OPTIONS, type GlobalRole } from "./constants.ts";
11
10
  import { userEntity, userTable } from "./schema/user.ts";
11
+ import { GLOBAL_ROLE_OPTIONS, type GlobalRole } from "./web/constants.ts";
12
12
 
13
13
  const userExecutor = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
14
14
 
@@ -10,7 +10,7 @@ import {
10
10
  createTimestampField,
11
11
  createTzField,
12
12
  } from "@cosmicdrift/kumiko-framework/engine";
13
- import { GLOBAL_ROLE_OPTIONS } from "../constants.ts";
13
+ import { GLOBAL_ROLE_OPTIONS } from "../web/constants.ts";
14
14
 
15
15
  /**
16
16
  * User-Lifecycle-Status (S2.U1). Single source of truth — Auth-Middleware
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Feature name
3
2
  export const USER_FEATURE = "user" as const;
4
3
 
@@ -1,4 +1,18 @@
1
1
  [
2
+ {
3
+ "version": "0.379.0",
4
+ "type": "improvement",
5
+ "title": "Client files of a feature live under web/",
6
+ "detail": "Files that carried a runtime-client marker moved into <feature>/web/ (constants.ts, i18n.ts, qualified-names and similar), so the runtime-isolation guard reads the runtime from the path. Export subpaths such as ./tenant/constants are unchanged; only relative imports into the old file locations break. The web-side translation glue of user-data-rights, managed-pages, admin-shell, audit, jobs and the document designer is now web/default-translations.ts.",
7
+ "migration": "Run bun kumiko-upgrade --apply, or bun kumiko codemod feature-layout . --write. It moves every file marked as runtime client from src/features/<feature>/ into src/features/<feature>/web/, rewrites the relative imports and drops the marker. Add --check to list what is left.",
8
+ "codemod": "scripts/codemod/feature-layout.ts"
9
+ },
10
+ {
11
+ "version": "0.379.0",
12
+ "type": "fix",
13
+ "title": "DELETION_TOKEN_SECRET description corrected",
14
+ "detail": "The env description no longer claims a fallback to JWT_SECRET; without the secret the anonymous deletion-confirmation flow stays off."
15
+ },
2
16
  {
3
17
  "version": "0.376.0",
4
18
  "type": "improvement",
@@ -9,7 +9,7 @@ export const deletionTokenSecretEnvSchema = z.object({
9
9
  .min(MIN_DELETION_TOKEN_SECRET_LENGTH)
10
10
  .optional()
11
11
  .describe(
12
- "Dedicated HMAC secret for the anonymous deletion-confirmation links. Unset: derived from JWT_SECRET.",
12
+ "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.",
13
13
  )
14
14
  .meta({ kumiko: { pulumi: { generator: "openssl rand -hex 24", secret: true } } }),
15
15
  });
@@ -18,13 +18,6 @@ import {
18
18
  import { isPlainObject } from "@cosmicdrift/kumiko-types/type-guards";
19
19
  import { createConfigAccessor } from "../config/index.ts";
20
20
  import { validateGdprHookCompleteness, validateGdprPiiHookCoverage } from "./boot-checks.ts";
21
- import {
22
- EXPORT_SECTION_EXTENSION_NAME,
23
- PRIVACY_CENTER_SCREEN_ID,
24
- STATUS_OPTION_KEY_PREFIX,
25
- USER_ME_QUERY,
26
- UserDataRightsHandlers,
27
- } from "./constants.ts";
28
21
  import { deletionTokenSecretEnvSchema } from "./env.ts";
29
22
  import { cancelDeletionWrite } from "./handlers/cancel-deletion.write.ts";
30
23
  import { createConfirmDeletionByTokenHandler } from "./handlers/confirm-deletion-by-token.write.ts";
@@ -48,7 +41,6 @@ import {
48
41
  import { requestExportWrite } from "./handlers/request-export.write.ts";
49
42
  import { restrictAccountWrite } from "./handlers/restrict-account.write.ts";
50
43
  import { createRunForgetCleanupHandler } from "./handlers/run-forget-cleanup.write.ts";
51
- import { USER_DATA_RIGHTS_I18N } from "./i18n.ts";
52
44
  import {
53
45
  type GdprMailDefaults,
54
46
  isGdprMailDeliveryAvailable,
@@ -82,6 +74,14 @@ import {
82
74
  exportJobDetailScreen,
83
75
  exportJobListScreen,
84
76
  } from "./screens.ts";
77
+ import {
78
+ EXPORT_SECTION_EXTENSION_NAME,
79
+ PRIVACY_CENTER_SCREEN_ID,
80
+ STATUS_OPTION_KEY_PREFIX,
81
+ USER_ME_QUERY,
82
+ UserDataRightsHandlers,
83
+ } from "./web/constants.ts";
84
+ import { USER_DATA_RIGHTS_I18N } from "./web/i18n.ts";
85
85
 
86
86
  // user-data-rights — DSGVO Art. 15 (Auskunft) + Art. 17 (Löschung) +
87
87
  // Art. 18 (Restriction) + Art. 20 (Portabilität) als Core-Feature.
@@ -343,7 +343,7 @@ export function createUserDataRightsFeature(opts: UserDataRightsOptions = {}): F
343
343
  r.translations({ keys: USER_DATA_RIGHTS_I18N });
344
344
  registerGdprMails(r);
345
345
  // Privacy-center dot-form labels (i18nKey()-marked below), duplicated in
346
- // web/i18n.ts's client bundle since privacy-center-screen.tsx renders
346
+ // web/default-translations.ts's client bundle since privacy-center-screen.tsx renders
347
347
  // them client-side.
348
348
  r.translations({
349
349
  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";
@@ -34,3 +33,4 @@ export {
34
33
  exportJobEntity,
35
34
  exportJobsTable,
36
35
  } from "./schema/export-job.ts";
36
+ export { TENANT_MODEL_CONFIG_KEY } from "./web/constants.ts";
@@ -12,7 +12,7 @@ import {
12
12
  type TenantUserModel,
13
13
  } from "@cosmicdrift/kumiko-framework/engine";
14
14
  import { createConfigAccessor } from "../../config/index.ts";
15
- import { TENANT_MODEL_CONFIG_KEY } from "../constants.ts";
15
+ import { TENANT_MODEL_CONFIG_KEY } from "../web/constants.ts";
16
16
 
17
17
  export async function resolveAppTenantModel(args: {
18
18
  readonly registry: Registry;
@@ -14,7 +14,7 @@ import {
14
14
  } from "@cosmicdrift/kumiko-framework/i18n";
15
15
  import { escapeHtml } from "@cosmicdrift/kumiko-renderer/headless";
16
16
  import { mailParagraph } from "../shared/index.ts";
17
- import { USER_DATA_RIGHTS_FEATURE } from "./constants.ts";
17
+ import { USER_DATA_RIGHTS_FEATURE } from "./web/constants.ts";
18
18
 
19
19
  const ALL_GDPR_MAIL_KINDS = [
20
20
  "exportReady",
@@ -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
@@ -17,8 +16,8 @@
17
16
 
18
17
  import { mergeTranslations, type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
19
18
  import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
20
- import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "../constants.ts";
21
- import { defaultTranslations } from "./i18n.ts";
19
+ import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "./constants.ts";
20
+ import { defaultTranslations } from "./default-translations.ts";
22
21
  import { ExportSection } from "./privacy-center-screen.tsx";
23
22
  import { makePublicDeletionGate, type PublicDeletionRoutes } from "./public-deletion-gate.tsx";
24
23
 
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // ConfirmAccountDeletionScreen — anonymer Apex-Screen Schritt 2. Liest das
3
2
  // Token aus dem URL-Fragment (`#token=…`, nie an den Server gesendet — landet
4
3
  // 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
 
7
6
  export const USER_DATA_RIGHTS_FEATURE = "user-data-rights" as const;
8
7
 
@@ -44,15 +43,15 @@ export const UserDataRightsHandlers = {
44
43
  restrictAccount: "user-data-rights:write:restrict-account",
45
44
  } as const;
46
45
 
47
- // Fremde QN: der Lifecycle-Status (active / deletionRequested / restricted)
48
- // kommt aus dem user-Feature. Lokal gepinnt statt das user-runtime-Barrel zu
49
- // importieren (Runtime-Isolation, wie user-profile). Drift-Schutz: der
50
- // Screen-Test vergleicht gegen UserQueries.me.
46
+ // Foreign QN: the lifecycle status (active / deletionRequested / restricted)
47
+ // comes from the user feature. Pinned locally instead of importing the user
48
+ // runtime barrel (runtime isolation, like user-profile). Drift protection: the
49
+ // screen test compares against UserQueries.me.
51
50
  export const USER_ME_QUERY = "user:query:user:me" as const;
52
51
 
53
- // Client-safe Mirror von EXPORT_JOB_STATUS (schema/export-job.ts ist
54
- // server-only via Drizzle-Import). Drift-Schutz: der Screen-Test vergleicht
55
- // gegen die Schema-Originale.
52
+ // Client-safe mirror of EXPORT_JOB_STATUS (schema/export-job.ts is server-only
53
+ // via its Drizzle import). Drift protection: the screen test compares against
54
+ // the schema original.
56
55
  export const EXPORT_JOB_STATUS = {
57
56
  Pending: "pending",
58
57
  Running: "running",