@cosmicdrift/kumiko-samples 0.378.0 → 0.380.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 (509) 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/global-feature-state-table.ts +14 -13
  193. package/packages/bundled-features/src/feature-toggles/handlers/list.query.ts +1 -1
  194. package/packages/bundled-features/src/feature-toggles/handlers/registered.query.ts +1 -1
  195. package/packages/bundled-features/src/feature-toggles/handlers/set.write.ts +3 -3
  196. package/packages/bundled-features/src/feature-toggles/index.ts +6 -6
  197. package/packages/bundled-features/src/feature-toggles/web/client-plugin.tsx +1 -2
  198. package/packages/bundled-features/src/feature-toggles/{constants.ts → web/constants.ts} +0 -1
  199. package/packages/bundled-features/src/feature-toggles/web/i18n.ts +0 -1
  200. package/packages/bundled-features/src/feature-toggles/web/index.ts +0 -1
  201. package/packages/bundled-features/src/files/changes.json +7 -0
  202. package/packages/bundled-features/src/folders/feature.ts +1 -1
  203. package/packages/bundled-features/src/folders/handlers/clear-folder.write.ts +1 -1
  204. package/packages/bundled-features/src/folders/handlers/delete-folder.write.ts +1 -1
  205. package/packages/bundled-features/src/folders/handlers/set-folder.write.ts +1 -1
  206. package/packages/bundled-features/src/folders/index.ts +8 -8
  207. package/packages/bundled-features/src/folders/web/client-plugin.tsx +1 -3
  208. package/packages/bundled-features/src/folders/{constants.ts → web/constants.ts} +0 -1
  209. package/packages/bundled-features/src/folders/web/folder-manager.tsx +1 -2
  210. package/packages/bundled-features/src/folders/web/folder-section.tsx +1 -2
  211. package/packages/bundled-features/src/folders/web/i18n.ts +0 -1
  212. package/packages/bundled-features/src/folders/web/index.ts +1 -2
  213. package/packages/bundled-features/src/folders/web/tree.ts +0 -1
  214. package/packages/bundled-features/src/form-draft/changes.json +7 -0
  215. package/packages/bundled-features/src/form-draft/db/queries/cleanup.ts +25 -11
  216. package/packages/bundled-features/src/form-draft/decrypt-draft.ts +24 -0
  217. package/packages/bundled-features/src/form-draft/entity.ts +6 -9
  218. package/packages/bundled-features/src/form-draft/feature.ts +1 -1
  219. package/packages/bundled-features/src/form-draft/handlers/cleanup.job.ts +26 -5
  220. package/packages/bundled-features/src/form-draft/handlers/discard.write.ts +1 -1
  221. package/packages/bundled-features/src/form-draft/handlers/get.query.ts +6 -7
  222. package/packages/bundled-features/src/form-draft/handlers/list.query.ts +13 -7
  223. package/packages/bundled-features/src/form-draft/handlers/save.write.ts +5 -5
  224. package/packages/bundled-features/src/form-draft/index.ts +8 -8
  225. package/packages/bundled-features/src/form-draft/lookup.ts +10 -4
  226. package/packages/bundled-features/src/form-draft/schemas.ts +1 -1
  227. package/packages/bundled-features/src/form-draft/{constants.ts → web/constants.ts} +0 -1
  228. package/packages/bundled-features/src/form-draft-user-data/hooks.ts +2 -2
  229. package/packages/bundled-features/src/inbound-mail-foundation/retention-sweep.ts +10 -10
  230. package/packages/bundled-features/src/jobs/feature.ts +7 -7
  231. package/packages/bundled-features/src/jobs/handlers/retry.write.ts +1 -1
  232. package/packages/bundled-features/src/jobs/handlers/trigger.write.ts +1 -1
  233. package/packages/bundled-features/src/jobs/index.ts +1 -1
  234. package/packages/bundled-features/src/jobs/job-run-table.ts +4 -3
  235. package/packages/bundled-features/src/jobs/web/client-plugin.tsx +2 -3
  236. package/packages/bundled-features/src/jobs/{constants.ts → web/constants.ts} +0 -1
  237. package/packages/bundled-features/src/jobs/web/default-translations.ts +7 -0
  238. package/packages/bundled-features/src/jobs/web/i18n.ts +53 -7
  239. package/packages/bundled-features/src/jobs/web/index.ts +0 -1
  240. package/packages/bundled-features/src/ledger/changes.json +7 -0
  241. package/packages/bundled-features/src/ledger/entity.ts +1 -1
  242. package/packages/bundled-features/src/ledger/feature.ts +1 -1
  243. package/packages/bundled-features/src/ledger/handlers/confirm-schedule-period.write.ts +2 -10
  244. package/packages/bundled-features/src/ledger/handlers/create-transaction.write.ts +1 -1
  245. package/packages/bundled-features/src/ledger/handlers/reports.query.ts +1 -1
  246. package/packages/bundled-features/src/ledger/handlers/reverse-transaction.write.ts +1 -1
  247. package/packages/bundled-features/src/ledger/index.ts +13 -13
  248. package/packages/bundled-features/src/ledger/recurring.ts +1 -1
  249. package/packages/bundled-features/src/ledger/reports.ts +1 -1
  250. package/packages/bundled-features/src/ledger/schemas.ts +1 -1
  251. package/packages/bundled-features/src/ledger/{constants.ts → web/constants.ts} +0 -1
  252. package/packages/bundled-features/src/ledger/web/index.ts +11 -12
  253. package/packages/bundled-features/src/legal-pages/README.md +1 -1
  254. package/packages/bundled-features/src/legal-pages/feature.ts +5 -5
  255. package/packages/bundled-features/src/legal-pages/index.ts +11 -11
  256. package/packages/bundled-features/src/legal-pages/lib/boot-check.ts +1 -1
  257. package/packages/bundled-features/src/legal-pages/lib/validate-routes.ts +1 -1
  258. package/packages/bundled-features/src/legal-pages/web/client-plugin.ts +1 -2
  259. package/packages/bundled-features/src/legal-pages/{constants.ts → web/constants.ts} +6 -8
  260. package/packages/bundled-features/src/legal-pages/web/index.ts +0 -1
  261. package/packages/bundled-features/src/managed-pages/feature.ts +1 -1
  262. package/packages/bundled-features/src/managed-pages/web/client-plugin.tsx +1 -2
  263. package/packages/bundled-features/src/managed-pages/web/default-translations.ts +17 -0
  264. package/packages/bundled-features/src/managed-pages/web/i18n.ts +59 -16
  265. package/packages/bundled-features/src/managed-pages/web/index.ts +1 -2
  266. package/packages/bundled-features/src/metrics/compute.ts +1 -1
  267. package/packages/bundled-features/src/metrics/feature.ts +6 -6
  268. package/packages/bundled-features/src/metrics/index.ts +8 -8
  269. package/packages/bundled-features/src/metrics/types.ts +1 -1
  270. package/packages/bundled-features/src/metrics/validate.ts +1 -1
  271. package/packages/bundled-features/src/metrics/{constants.ts → web/constants.ts} +0 -1
  272. package/packages/bundled-features/src/metrics/window.ts +1 -1
  273. package/packages/bundled-features/src/notes-history/feature.ts +1 -1
  274. package/packages/bundled-features/src/notes-history/handlers/add-note.write.ts +1 -1
  275. package/packages/bundled-features/src/notes-history/index.ts +8 -8
  276. package/packages/bundled-features/src/notes-history/web/client-plugin.tsx +1 -3
  277. package/packages/bundled-features/src/notes-history/{constants.ts → web/constants.ts} +0 -1
  278. package/packages/bundled-features/src/notes-history/web/i18n.ts +0 -1
  279. package/packages/bundled-features/src/notes-history/web/index.ts +2 -3
  280. package/packages/bundled-features/src/notes-history/web/notes-section.tsx +2 -3
  281. package/packages/bundled-features/src/personal-access-tokens/feature.ts +12 -10
  282. package/packages/bundled-features/src/personal-access-tokens/handlers/available-scopes.query.ts +1 -1
  283. package/packages/bundled-features/src/personal-access-tokens/handlers/create.write.ts +1 -1
  284. package/packages/bundled-features/src/personal-access-tokens/handlers/revoke.write.ts +1 -1
  285. package/packages/bundled-features/src/personal-access-tokens/hash.ts +1 -1
  286. package/packages/bundled-features/src/personal-access-tokens/i18n.ts +2 -2
  287. package/packages/bundled-features/src/personal-access-tokens/index.ts +5 -5
  288. package/packages/bundled-features/src/personal-access-tokens/resolver.ts +1 -1
  289. package/packages/bundled-features/src/personal-access-tokens/schema/api-token.ts +3 -3
  290. package/packages/bundled-features/src/personal-access-tokens/screens.ts +2 -2
  291. package/packages/bundled-features/src/personal-access-tokens/{constants.ts → web/constants.ts} +0 -1
  292. package/packages/bundled-features/src/personal-access-tokens/{scopes.ts → web/scopes.ts} +0 -1
  293. package/packages/bundled-features/src/presets/changes.json +7 -0
  294. package/packages/bundled-features/src/presets/index.ts +0 -1
  295. package/packages/bundled-features/src/presets/security-baseline.ts +1 -1
  296. package/packages/bundled-features/src/renderer-foundation/types.ts +1 -1
  297. package/packages/bundled-features/src/secrets/feature.ts +1 -1
  298. package/packages/bundled-features/src/secrets/handlers/delete.write.ts +1 -1
  299. package/packages/bundled-features/src/secrets/handlers/list.query.ts +1 -1
  300. package/packages/bundled-features/src/secrets/handlers/set.write.ts +1 -1
  301. package/packages/bundled-features/src/secrets/i18n.ts +1 -1
  302. package/packages/bundled-features/src/secrets/index.ts +8 -8
  303. package/packages/bundled-features/src/secrets/{constants.ts → web/constants.ts} +0 -1
  304. package/packages/bundled-features/src/secrets/write-gate.ts +1 -1
  305. package/packages/bundled-features/src/sessions/feature.ts +7 -4
  306. package/packages/bundled-features/src/sessions/schema/user-session.ts +2 -3
  307. package/packages/bundled-features/src/sessions/{i18n.ts → web/i18n.ts} +0 -1
  308. package/packages/bundled-features/src/shared/index.ts +6 -1
  309. package/packages/bundled-features/src/shared/purge-files-reaching-subject.ts +10 -2
  310. package/packages/bundled-features/src/shared/web/translate-or-raw.ts +0 -1
  311. package/packages/bundled-features/src/subscription-stripe/feature.ts +2 -0
  312. package/packages/bundled-features/src/subscription-stripe/plugin-methods.ts +19 -0
  313. package/packages/bundled-features/src/subscription-stripe/verify-webhook.ts +1 -0
  314. package/packages/bundled-features/src/tags/changes.json +6 -0
  315. package/packages/bundled-features/src/tags/feature.ts +1 -1
  316. package/packages/bundled-features/src/tags/handlers/assign-tag.write.ts +11 -7
  317. package/packages/bundled-features/src/tags/handlers/create-tag.write.ts +1 -1
  318. package/packages/bundled-features/src/tags/handlers/delete-tag.write.ts +4 -1
  319. package/packages/bundled-features/src/tags/handlers/remove-tag.write.ts +1 -1
  320. package/packages/bundled-features/src/tags/handlers/update-tag.write.ts +1 -1
  321. package/packages/bundled-features/src/tags/index.ts +12 -12
  322. package/packages/bundled-features/src/tags/screens.ts +1 -1
  323. package/packages/bundled-features/src/tags/web/client-plugin.tsx +1 -3
  324. package/packages/bundled-features/src/tags/{constants.ts → web/constants.ts} +4 -1
  325. package/packages/bundled-features/src/tags/web/entity-tags.tsx +1 -2
  326. package/packages/bundled-features/src/tags/web/i18n.ts +2 -2
  327. package/packages/bundled-features/src/tags/web/index.ts +2 -3
  328. package/packages/bundled-features/src/tags/web/tag-chip.tsx +0 -1
  329. package/packages/bundled-features/src/tags/web/tag-filter.tsx +1 -2
  330. package/packages/bundled-features/src/tags/web/tag-manager.tsx +5 -4
  331. package/packages/bundled-features/src/tags/web/tag-picker.tsx +0 -1
  332. package/packages/bundled-features/src/tags/web/tag-section.tsx +1 -2
  333. package/packages/bundled-features/src/tags/web/tags-cell.tsx +1 -2
  334. package/packages/bundled-features/src/template-resolver/README.md +1 -1
  335. package/packages/bundled-features/src/template-resolver/api.ts +75 -28
  336. package/packages/bundled-features/src/template-resolver/changes.json +43 -0
  337. package/packages/bundled-features/src/template-resolver/compile-document-body.ts +1 -1
  338. package/packages/bundled-features/src/template-resolver/compile-steps-block.ts +2 -2
  339. package/packages/bundled-features/src/template-resolver/document-ops.ts +5 -5
  340. package/packages/bundled-features/src/template-resolver/document-sanitizer.ts +4 -4
  341. package/packages/bundled-features/src/template-resolver/feature.ts +13 -4
  342. package/packages/bundled-features/src/template-resolver/handlers/by-slug.query.ts +6 -1
  343. package/packages/bundled-features/src/template-resolver/handlers/by-tenant.query.ts +6 -2
  344. package/packages/bundled-features/src/template-resolver/handlers/collection-item.query.ts +1 -1
  345. package/packages/bundled-features/src/template-resolver/handlers/collection-list.query.ts +1 -1
  346. package/packages/bundled-features/src/template-resolver/handlers/collection-set.write.ts +19 -2
  347. package/packages/bundled-features/src/template-resolver/handlers/copy-locale.write.ts +2 -2
  348. package/packages/bundled-features/src/template-resolver/handlers/diff-to-system.query.ts +7 -1
  349. package/packages/bundled-features/src/template-resolver/handlers/discard-draft.write.ts +1 -1
  350. package/packages/bundled-features/src/template-resolver/handlers/document-base.ts +8 -2
  351. package/packages/bundled-features/src/template-resolver/handlers/document-blocks.query.ts +2 -2
  352. package/packages/bundled-features/src/template-resolver/handlers/export-bundle.query.ts +5 -2
  353. package/packages/bundled-features/src/template-resolver/handlers/find-by-id.query.ts +4 -2
  354. package/packages/bundled-features/src/template-resolver/handlers/layout-source.query.ts +10 -5
  355. package/packages/bundled-features/src/template-resolver/handlers/list.query.ts +5 -2
  356. package/packages/bundled-features/src/template-resolver/handlers/overview.query.ts +68 -10
  357. package/packages/bundled-features/src/template-resolver/handlers/patch-draft.write.ts +1 -1
  358. package/packages/bundled-features/src/template-resolver/handlers/resource-shared.ts +1 -1
  359. package/packages/bundled-features/src/template-resolver/handlers/resource-upload.write.ts +1 -1
  360. package/packages/bundled-features/src/template-resolver/handlers/send-test.write.ts +2 -2
  361. package/packages/bundled-features/src/template-resolver/handlers/set.write.ts +1 -1
  362. package/packages/bundled-features/src/template-resolver/handlers/shared.ts +1 -1
  363. package/packages/bundled-features/src/template-resolver/handlers/template-gates.ts +6 -6
  364. package/packages/bundled-features/src/template-resolver/handlers/template-write.ts +2 -2
  365. package/packages/bundled-features/src/template-resolver/handlers/usage.query.ts +8 -2
  366. package/packages/bundled-features/src/template-resolver/handlers/validate.query.ts +4 -2
  367. package/packages/bundled-features/src/template-resolver/i18n.ts +25 -0
  368. package/packages/bundled-features/src/template-resolver/index.ts +60 -59
  369. package/packages/bundled-features/src/template-resolver/layout-appearance.ts +1 -1
  370. package/packages/bundled-features/src/template-resolver/layout-regions.ts +1 -1
  371. package/packages/bundled-features/src/template-resolver/seeding.ts +16 -7
  372. package/packages/bundled-features/src/template-resolver/store-template-resource.ts +2 -2
  373. package/packages/bundled-features/src/template-resolver/table.ts +1 -1
  374. package/packages/bundled-features/src/template-resolver/template-bundle.ts +2 -2
  375. package/packages/bundled-features/src/template-resolver/template-delivery-policy.ts +82 -0
  376. package/packages/bundled-features/src/template-resolver/template-draft.ts +1 -1
  377. package/packages/bundled-features/src/template-resolver/template-edit-policy.ts +2 -2
  378. package/packages/bundled-features/src/template-resolver/template-meta.ts +2 -2
  379. package/packages/bundled-features/src/template-resolver/template-preview.ts +14 -10
  380. package/packages/bundled-features/src/template-resolver/template-usage.ts +1 -1
  381. package/packages/bundled-features/src/template-resolver/template-validation.ts +2 -2
  382. package/packages/bundled-features/src/template-resolver/testing.ts +2 -2
  383. package/packages/bundled-features/src/template-resolver/user-content-table.ts +1 -1
  384. package/packages/bundled-features/src/template-resolver/web/client-plugin.tsx +4 -5
  385. package/packages/bundled-features/src/template-resolver/{constants.ts → web/constants.ts} +7 -10
  386. package/packages/bundled-features/src/template-resolver/{document-blocks.ts → web/document-blocks.ts} +0 -1
  387. package/packages/bundled-features/src/template-resolver/web/document-editor-extensions.ts +2 -3
  388. package/packages/bundled-features/src/template-resolver/web/document-editor.tsx +0 -1
  389. package/packages/bundled-features/src/template-resolver/{document-images.ts → web/document-images.ts} +0 -1
  390. package/packages/bundled-features/src/template-resolver/{document-schema.ts → web/document-schema.ts} +0 -1
  391. package/packages/bundled-features/src/template-resolver/{document-steps.ts → web/document-steps.ts} +0 -1
  392. package/packages/bundled-features/src/template-resolver/web/document-tiptap-editor.tsx +6 -7
  393. package/packages/bundled-features/src/template-resolver/web/document-toolbar-blocks.ts +2 -3
  394. package/packages/bundled-features/src/template-resolver/web/editor-handle.ts +1 -2
  395. package/packages/bundled-features/src/template-resolver/web/i18n.ts +2 -1
  396. package/packages/bundled-features/src/template-resolver/web/index.ts +13 -14
  397. package/packages/bundled-features/src/template-resolver/{mail-constants.ts → web/mail-constants.ts} +0 -1
  398. package/packages/bundled-features/src/template-resolver/{pdf-constants.ts → web/pdf-constants.ts} +0 -1
  399. package/packages/bundled-features/src/template-resolver/web/placeholder-line-editor-lazy.tsx +0 -1
  400. package/packages/bundled-features/src/template-resolver/web/placeholder-line-editor.tsx +5 -4
  401. package/packages/bundled-features/src/template-resolver/{placeholder-text.ts → web/placeholder-text.ts} +0 -1
  402. package/packages/bundled-features/src/template-resolver/{qualified-names.ts → web/qualified-names.ts} +0 -1
  403. package/packages/bundled-features/src/template-resolver/web/use-stable-by-key.ts +0 -1
  404. package/packages/bundled-features/src/tenant/handlers/add-member.write.ts +1 -1
  405. package/packages/bundled-features/src/tenant/index.ts +7 -7
  406. package/packages/bundled-features/src/tenant/invitation-table.ts +1 -1
  407. package/packages/bundled-features/src/tenant/invited-membership.ts +1 -1
  408. package/packages/bundled-features/src/tenant/last-tenant-admin.ts +1 -1
  409. package/packages/bundled-features/src/tenant/member-role-options.ts +1 -1
  410. package/packages/bundled-features/src/tenant/screens.ts +2 -2
  411. package/packages/bundled-features/src/tenant/web/client-plugin.tsx +1 -2
  412. package/packages/bundled-features/src/tenant/{constants.ts → web/constants.ts} +3 -6
  413. package/packages/bundled-features/src/tenant/web/index.ts +0 -1
  414. package/packages/bundled-features/src/tenant/web/member-roles-cell.tsx +0 -1
  415. package/packages/bundled-features/src/tenant/web/member-status-cell.tsx +0 -1
  416. package/packages/bundled-features/src/tenant-lifecycle/stages.ts +2 -2
  417. package/packages/bundled-features/src/tier-engine/entity.ts +1 -1
  418. package/packages/bundled-features/src/tier-engine/feature.ts +7 -7
  419. package/packages/bundled-features/src/tier-engine/handlers/set-tenant-tier.write.ts +1 -1
  420. package/packages/bundled-features/src/tier-engine/index.ts +8 -8
  421. package/packages/bundled-features/src/tier-engine/web/client-plugin.tsx +2 -3
  422. package/packages/bundled-features/src/tier-engine/{constants.ts → web/constants.ts} +2 -3
  423. package/packages/bundled-features/src/tier-engine/{i18n.ts → web/i18n.ts} +0 -1
  424. package/packages/bundled-features/src/tier-engine/web/index.ts +0 -1
  425. package/packages/bundled-features/src/user/handlers/create.write.ts +1 -1
  426. package/packages/bundled-features/src/user/handlers/update-roles.ts +1 -1
  427. package/packages/bundled-features/src/user/handlers/update.write.ts +1 -1
  428. package/packages/bundled-features/src/user/index.ts +1 -1
  429. package/packages/bundled-features/src/user/invited-global-roles.ts +1 -1
  430. package/packages/bundled-features/src/user/schema/user.ts +1 -1
  431. package/packages/bundled-features/src/user/{constants.ts → web/constants.ts} +0 -1
  432. package/packages/bundled-features/src/user-data-rights/changes.json +14 -0
  433. package/packages/bundled-features/src/user-data-rights/env.ts +1 -1
  434. package/packages/bundled-features/src/user-data-rights/feature.ts +9 -9
  435. package/packages/bundled-features/src/user-data-rights/index.ts +1 -1
  436. package/packages/bundled-features/src/user-data-rights/lib/resolve-tenant-model.ts +1 -1
  437. package/packages/bundled-features/src/user-data-rights/mail-notifications.ts +1 -1
  438. package/packages/bundled-features/src/user-data-rights/web/client-plugin.tsx +2 -3
  439. package/packages/bundled-features/src/user-data-rights/web/confirm-deletion-screen.tsx +0 -1
  440. package/packages/bundled-features/src/user-data-rights/{constants.ts → web/constants.ts} +11 -12
  441. package/packages/bundled-features/src/user-data-rights/web/default-translations.ts +91 -0
  442. package/packages/bundled-features/src/user-data-rights/web/i18n.ts +41 -91
  443. package/packages/bundled-features/src/user-data-rights/web/index.ts +1 -2
  444. package/packages/bundled-features/src/user-data-rights/web/privacy-center-screen.tsx +1 -2
  445. package/packages/bundled-features/src/user-data-rights/web/public-deletion-gate.tsx +0 -1
  446. package/packages/bundled-features/src/user-data-rights/web/request-deletion-screen.tsx +0 -1
  447. package/packages/bundled-features/src/user-data-rights-defaults/hooks/file-ref.userdata-hook.ts +10 -1
  448. package/packages/bundled-features/src/user-profile/feature.ts +2 -2
  449. package/packages/bundled-features/src/user-profile/handlers/change-email.write.ts +1 -1
  450. package/packages/bundled-features/src/user-profile/index.ts +3 -2
  451. package/packages/bundled-features/src/user-profile/web/client-plugin.ts +2 -3
  452. package/packages/bundled-features/src/user-profile/{constants.ts → web/constants.ts} +0 -1
  453. package/packages/bundled-features/src/user-profile/{i18n.ts → web/i18n.ts} +0 -1
  454. package/packages/bundled-features/src/user-profile/web/profile-screen.tsx +2 -3
  455. package/packages/bundled-features/src/waitlist/changes.json +6 -0
  456. package/packages/bundled-features/src/waitlist/entity.ts +1 -1
  457. package/packages/bundled-features/src/waitlist/feature.ts +5 -5
  458. package/packages/bundled-features/src/waitlist/handlers/export-purge.write.ts +3 -3
  459. package/packages/bundled-features/src/waitlist/handlers/invite.write.ts +5 -1
  460. package/packages/bundled-features/src/waitlist/handlers/reject.write.ts +1 -1
  461. package/packages/bundled-features/src/waitlist/handlers/submit.write.ts +3 -3
  462. package/packages/bundled-features/src/waitlist/import.ts +1 -1
  463. package/packages/bundled-features/src/waitlist/index.ts +11 -11
  464. package/packages/bundled-features/src/waitlist/legacy-migrate.ts +1 -1
  465. package/packages/bundled-features/src/waitlist/link-on-signup.ts +1 -1
  466. package/packages/bundled-features/src/waitlist/mail.ts +7 -6
  467. package/packages/bundled-features/src/waitlist/payloads.ts +1 -1
  468. package/packages/bundled-features/src/waitlist/screens.ts +1 -1
  469. package/packages/bundled-features/src/waitlist/{constants.ts → web/constants.ts} +0 -1
  470. package/samples/apps/styleguide/src/features/content/web.tsx +0 -1
  471. package/samples/apps/ui-walkthrough/src/app/client.tsx +2 -0
  472. package/samples/apps/ui-walkthrough/src/app/seed-rental.ts +17 -1
  473. package/samples/apps/ui-walkthrough/src/app/seed-templates.ts +11 -0
  474. package/samples/apps/ui-walkthrough/src/app/server.ts +2 -1
  475. package/samples/apps/ui-walkthrough/src/features/billing/feature.ts +35 -7
  476. package/samples/apps/ui-walkthrough/src/features/billing/i18n.ts +6 -0
  477. package/samples/apps/ui-walkthrough/src/features/rental/entities.ts +27 -0
  478. package/samples/apps/ui-walkthrough/src/features/rental/feature.ts +61 -7
  479. package/samples/apps/ui-walkthrough/src/features/rental/i18n.ts +48 -24
  480. package/samples/apps/ui-walkthrough/src/features/rental/invoice-receive.ts +0 -1
  481. package/samples/apps/ui-walkthrough/src/features/rental/lease-support.ts +17 -1
  482. package/samples/apps/ui-walkthrough/src/features/rental/qualified-names.ts +3 -0
  483. package/samples/apps/ui-walkthrough/src/features/rental/receipts-upload.ts +70 -0
  484. package/samples/apps/ui-walkthrough/src/features/rental/screens.ts +90 -13
  485. package/samples/apps/ui-walkthrough/src/features/rental/web/index.ts +0 -2
  486. package/samples/apps/ui-walkthrough/src/features/subscription-plans/feature.ts +103 -0
  487. package/samples/apps/ui-walkthrough/src/features/subscription-plans/i18n.ts +36 -0
  488. package/samples/apps/ui-walkthrough/src/features/subscription-plans/index.ts +2 -0
  489. package/samples/apps/ui-walkthrough/src/features/subscription-plans/seed.ts +21 -0
  490. package/samples/apps/ui-walkthrough/src/run-config.ts +11 -0
  491. package/samples/apps/use-all-bundled/e2e-billing-gallery/server.ts +1 -1
  492. package/samples/apps/use-all-bundled/feature-manifest.json +4 -4
  493. package/samples/apps/use-all-bundled/scripts/check-coverage.ts +1 -1
  494. package/samples/apps/use-all-bundled/src/app/dev-app-options.ts +3 -1
  495. package/samples/recipes/compose-stacks/README.md +1 -2
  496. package/samples/recipes/embedded/README.md +5 -5
  497. package/samples/recipes/embedded/src/handlers/invoice-receive.write.ts +0 -1
  498. package/samples/recipes/embedded/src/screens/invoice-receive.screen.ts +9 -12
  499. package/samples/recipes/legal-pages/README.md +2 -2
  500. package/samples/recipes/legal-pages/src/feature.ts +1 -1
  501. package/samples/recipes/reference-data/src/feature.ts +3 -7
  502. package/packages/bundled-features/src/admin-shell/i18n.ts +0 -54
  503. package/packages/bundled-features/src/audit/i18n.ts +0 -25
  504. package/packages/bundled-features/src/auth-mfa/web/qrcode-browser.d.ts +0 -11
  505. package/packages/bundled-features/src/jobs/i18n.ts +0 -55
  506. package/packages/bundled-features/src/managed-pages/i18n.ts +0 -63
  507. package/packages/bundled-features/src/presets/dsgvo-self-service.ts +0 -35
  508. package/packages/bundled-features/src/user-data-rights/i18n.ts +0 -44
  509. package/samples/apps/ui-walkthrough/src/features/rental/web/upload-standard-layout.tsx +0 -61
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-samples",
3
- "version": "0.378.0",
3
+ "version": "0.380.0",
4
4
  "description": "Source trees of the Kumiko sample recipes, sample apps and bundled features in repo layout, for tooling such as few-shot corpus builds.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-bundled-features",
3
- "version": "0.378.0",
3
+ "version": "0.380.0",
4
4
  "description": "Built-in features — tenant, user, auth, delivery. The stuff you'd rewrite anyway, already typed.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -86,7 +86,7 @@
86
86
  "./user-data-rights/email-templates": "./src/user-data-rights/email-templates.ts",
87
87
  "./user-data-rights-defaults": "./src/user-data-rights-defaults/index.ts",
88
88
  "./tenant": "./src/tenant/index.ts",
89
- "./tenant/constants": "./src/tenant/constants.ts",
89
+ "./tenant/constants": "./src/tenant/web/constants.ts",
90
90
  "./tenant/web": "./src/tenant/web/index.ts",
91
91
  "./tenant/seeding": "./src/tenant/seeding.ts",
92
92
  "./tenant-lifecycle": "./src/tenant-lifecycle/index.ts",
@@ -99,7 +99,7 @@
99
99
  "./user-profile": "./src/user-profile/index.ts",
100
100
  "./user-profile/web": "./src/user-profile/web/index.ts",
101
101
  "./auth-email-password": "./src/auth-email-password/index.ts",
102
- "./auth-email-password/constants": "./src/auth-email-password/constants.ts",
102
+ "./auth-email-password/constants": "./src/auth-email-password/web/constants.ts",
103
103
  "./auth-email-password/email-templates": "./src/auth-email-password/email-templates.ts",
104
104
  "./auth-email-password/seeding": "./src/auth-email-password/seeding.ts",
105
105
  "./auth-email-password/testing": "./src/auth-email-password/testing.ts",
@@ -131,16 +131,16 @@
131
131
  "./feature-toggles": "./src/feature-toggles/index.ts",
132
132
  "./feature-toggles/web": "./src/feature-toggles/web/index.ts",
133
133
  "./template-resolver": "./src/template-resolver/index.ts",
134
- "./template-resolver/document-schema": "./src/template-resolver/document-schema.ts",
134
+ "./template-resolver/document-schema": "./src/template-resolver/web/document-schema.ts",
135
135
  "./template-resolver/seeding": "./src/template-resolver/seeding.ts",
136
136
  "./template-resolver/testing": "./src/template-resolver/testing.ts",
137
137
  "./template-resolver/web": "./src/template-resolver/web/index.ts",
138
138
  "./renderer-foundation": "./src/renderer-foundation/index.ts",
139
139
  "./account-security": "./src/account-security/index.ts",
140
- "./account-security/constants": "./src/account-security/constants.ts",
140
+ "./account-security/constants": "./src/account-security/web/constants.ts",
141
141
  "./host-routing": "./src/host-routing/index.ts",
142
142
  "./legal-pages": "./src/legal-pages/index.ts",
143
- "./legal-pages/constants": "./src/legal-pages/constants.ts",
143
+ "./legal-pages/constants": "./src/legal-pages/web/constants.ts",
144
144
  "./legal-pages/web": "./src/legal-pages/web/index.ts",
145
145
  "./waitlist": "./src/waitlist/index.ts",
146
146
  "./page-render": "./src/page-render/index.ts",
@@ -451,8 +451,8 @@
451
451
  "default": "./dist/tenant/index.js"
452
452
  },
453
453
  "./tenant/constants": {
454
- "types": "./dist/tenant/constants.d.ts",
455
- "default": "./dist/tenant/constants.js"
454
+ "types": "./dist/tenant/web/constants.d.ts",
455
+ "default": "./dist/tenant/web/constants.js"
456
456
  },
457
457
  "./tenant/web": {
458
458
  "types": "./dist/tenant/web/index.d.ts",
@@ -507,8 +507,8 @@
507
507
  "default": "./dist/auth-email-password/email-templates.js"
508
508
  },
509
509
  "./auth-email-password/constants": {
510
- "types": "./dist/auth-email-password/constants.d.ts",
511
- "default": "./dist/auth-email-password/constants.js"
510
+ "types": "./dist/auth-email-password/web/constants.d.ts",
511
+ "default": "./dist/auth-email-password/web/constants.js"
512
512
  },
513
513
  "./auth-email-password/seeding": {
514
514
  "types": "./dist/auth-email-password/seeding.d.ts",
@@ -631,8 +631,8 @@
631
631
  "default": "./dist/template-resolver/index.js"
632
632
  },
633
633
  "./template-resolver/document-schema": {
634
- "types": "./dist/template-resolver/document-schema.d.ts",
635
- "default": "./dist/template-resolver/document-schema.js"
634
+ "types": "./dist/template-resolver/web/document-schema.d.ts",
635
+ "default": "./dist/template-resolver/web/document-schema.js"
636
636
  },
637
637
  "./template-resolver/seeding": {
638
638
  "types": "./dist/template-resolver/seeding.d.ts",
@@ -655,8 +655,8 @@
655
655
  "default": "./dist/account-security/index.js"
656
656
  },
657
657
  "./account-security/constants": {
658
- "types": "./dist/account-security/constants.d.ts",
659
- "default": "./dist/account-security/constants.js"
658
+ "types": "./dist/account-security/web/constants.d.ts",
659
+ "default": "./dist/account-security/web/constants.js"
660
660
  },
661
661
  "./host-routing": {
662
662
  "types": "./dist/host-routing/index.d.ts",
@@ -667,8 +667,8 @@
667
667
  "default": "./dist/legal-pages/index.js"
668
668
  },
669
669
  "./legal-pages/constants": {
670
- "types": "./dist/legal-pages/constants.d.ts",
671
- "default": "./dist/legal-pages/constants.js"
670
+ "types": "./dist/legal-pages/web/constants.d.ts",
671
+ "default": "./dist/legal-pages/web/constants.js"
672
672
  },
673
673
  "./legal-pages/web": {
674
674
  "types": "./dist/legal-pages/web/index.d.ts",
@@ -714,6 +714,7 @@
714
714
  },
715
715
  "files": [
716
716
  "dist",
717
+ "kumiko-es-tables.json",
717
718
  "src/*/changes.json",
718
719
  "README.md",
719
720
  "LICENSE"
@@ -728,7 +729,7 @@
728
729
  "@cosmicdrift/kumiko-testing": "workspace:*"
729
730
  },
730
731
  "peerDependencies": {
731
- "@cosmicdrift/kumiko-testing": ">=0.366.0 <1.0.0"
732
+ "@cosmicdrift/kumiko-testing": "workspace:*"
732
733
  },
733
734
  "peerDependenciesMeta": {
734
735
  "@cosmicdrift/kumiko-testing": {
@@ -15,8 +15,8 @@ import {
15
15
  ACCOUNT_SECURITY_NAV_LABEL,
16
16
  ACCOUNT_SECURITY_SCREEN_ID,
17
17
  ACCOUNT_SECURITY_SCREEN_QN,
18
- } from "./constants.ts";
19
- import { ACCOUNT_SECURITY_I18N } from "./i18n.ts";
18
+ } from "./web/constants.ts";
19
+ import { ACCOUNT_SECURITY_I18N } from "./web/i18n.ts";
20
20
 
21
21
  export interface AccountSecurityNavOptions {
22
22
  readonly order?: number;
@@ -1,14 +1,14 @@
1
- export {
2
- ACCOUNT_SECURITY_FEATURE,
3
- ACCOUNT_SECURITY_NAV_LABEL,
4
- ACCOUNT_SECURITY_SCREEN_ID,
5
- ACCOUNT_SECURITY_SCREEN_QN,
6
- ACCOUNT_SECURITY_SCREEN_TITLE_KEY,
7
- } from "./constants.ts";
8
1
  export {
9
2
  type AccountSecurityFeatureOptions,
10
3
  type AccountSecurityNavOptions,
11
4
  accountSecurityMfaStatusVisibility,
12
5
  createAccountSecurityFeature,
13
6
  } from "./feature.ts";
14
- export { ACCOUNT_SECURITY_I18N } from "./i18n.ts";
7
+ export {
8
+ ACCOUNT_SECURITY_FEATURE,
9
+ ACCOUNT_SECURITY_NAV_LABEL,
10
+ ACCOUNT_SECURITY_SCREEN_ID,
11
+ ACCOUNT_SECURITY_SCREEN_QN,
12
+ ACCOUNT_SECURITY_SCREEN_TITLE_KEY,
13
+ } from "./web/constants.ts";
14
+ export { ACCOUNT_SECURITY_I18N } from "./web/i18n.ts";
@@ -1,5 +1,3 @@
1
- // @runtime client
2
-
3
1
  export const ACCOUNT_SECURITY_FEATURE = "account-security";
4
2
  export const ACCOUNT_SECURITY_SCREEN_ID = "account-security";
5
3
  export const ACCOUNT_SECURITY_SCREEN_QN = `${ACCOUNT_SECURITY_FEATURE}:screen:${ACCOUNT_SECURITY_SCREEN_ID}`;
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  // Server-registered so the framework projects these keys into the client bundle.
3
2
 
4
3
  type LocalizedString = { readonly de: string; readonly en: string };
@@ -8,14 +8,6 @@ import {
8
8
  type FeatureDefinition,
9
9
  } from "@cosmicdrift/kumiko-framework/engine";
10
10
  import { DEFAULT_METRICS, type MetricDefinition } from "../metrics/index.ts";
11
- import {
12
- ADMIN_SHELL_FEATURE,
13
- DEFAULT_PLATFORM_WORKSPACE_ID,
14
- DEFAULT_TENANT_WORKSPACE_ID,
15
- PLATFORM_OVERVIEW_SCREEN_ID,
16
- TENANT_OVERVIEW_SCREEN_ID,
17
- } from "./constants.ts";
18
- import { ADMIN_SHELL_I18N } from "./i18n.ts";
19
11
  import {
20
12
  OVERVIEW_TIME_RANGE,
21
13
  PLATFORM_SCOPE,
@@ -23,6 +15,14 @@ import {
23
15
  platformOverviewPanels,
24
16
  tenantOverviewPanels,
25
17
  } from "./overview-panels.ts";
18
+ import {
19
+ ADMIN_SHELL_FEATURE,
20
+ DEFAULT_PLATFORM_WORKSPACE_ID,
21
+ DEFAULT_TENANT_WORKSPACE_ID,
22
+ PLATFORM_OVERVIEW_SCREEN_ID,
23
+ TENANT_OVERVIEW_SCREEN_ID,
24
+ } from "./web/constants.ts";
25
+ import { ADMIN_SHELL_I18N } from "./web/i18n.ts";
26
26
 
27
27
  export type CreateAdminShellOptions = {
28
28
  /** Short workspace id for tenant operators (URL segment). Default `tenant-admin`. */
@@ -58,7 +58,7 @@ export function createAdminShellFeature(options: CreateAdminShellOptions = {}):
58
58
 
59
59
  return defineFeature(ADMIN_SHELL_FEATURE, (r) => {
60
60
  r.describe(
61
- "Registers tenant-admin and platform-admin workspaces with provider nav into owner-feature screens (`tenant:screen:members`, `audit:screen:audit-log`, `tenant:screen:tenant-list`, `jobs:screen:job-runs`, optional `tier-engine:screen:tier-admin`, optional `cap-overview:screen:my-caps`/`cap-overview:screen:tenant-cap-list`, optional `document-designer` template navs) and the two overview dashboards, built from the metrics list (`metrics` option, default DEFAULT_METRICS). Mount after user, tenant, audit, jobs, metrics and metrics-system; pass `workspaceIds` to match app URL conventions (e.g. Studio `d`/`s`, PublicStatus `admin`/`sysadmin`). Client: `adminShellClient()`, `tenantClient()`, `auditClient()`, `jobsClient()`, optional `tierEngineClient()`.",
61
+ "Registers tenant-admin and platform-admin workspaces with provider nav into owner-feature screens (`tenant:screen:members`, `audit:screen:audit-log`, `audit:screen:audit-log-all-tenants`, `tenant:screen:tenant-list`, `jobs:screen:job-runs`, optional `tier-engine:screen:tier-admin`, optional `cap-overview:screen:my-caps`/`cap-overview:screen:tenant-cap-list`, optional `document-designer` template navs) and the two overview dashboards, built from the metrics list (`metrics` option, default DEFAULT_METRICS). Mount after user, tenant, audit, jobs, metrics and metrics-system; pass `workspaceIds` to match app URL conventions (e.g. Studio `d`/`s`, PublicStatus `admin`/`sysadmin`). Client: `adminShellClient()`, `tenantClient()`, `auditClient()`, `jobsClient()`, optional `tierEngineClient()`.",
62
62
  );
63
63
  r.uiHints({
64
64
  displayLabel: "Admin Shell",
@@ -88,6 +88,7 @@ export function createAdminShellFeature(options: CreateAdminShellOptions = {}):
88
88
  "admin-shell:nav:platform-overview",
89
89
  "admin-shell:nav:tenants",
90
90
  ...(includeCapOverview ? (["admin-shell:nav:tenant-caps"] as const) : []),
91
+ "audit:nav:audit-log-all-tenants",
91
92
  "jobs:nav:job-runs",
92
93
  ...(includeDocumentDesigner ? (["document-designer:nav:platform-templates"] as const) : []),
93
94
  ...(includeTierAdmin ? (["admin-shell:nav:tier-admin"] as const) : []),
@@ -1,12 +1,4 @@
1
- export {
2
- ADMIN_SHELL_FEATURE,
3
- DEFAULT_PLATFORM_WORKSPACE_ID,
4
- DEFAULT_TENANT_WORKSPACE_ID,
5
- PLATFORM_OVERVIEW_SCREEN_ID,
6
- TENANT_OVERVIEW_SCREEN_ID,
7
- } from "./constants.ts";
8
1
  export { type CreateAdminShellOptions, createAdminShellFeature } from "./feature.ts";
9
- export { ADMIN_SHELL_I18N } from "./i18n.ts";
10
2
  export {
11
3
  isOverviewQueryAllowed,
12
4
  type OverviewWorkspaceKind,
@@ -15,3 +7,11 @@ export {
15
7
  TENANT_OVERVIEW_ALLOWED_QUERIES,
16
8
  TENANT_OVERVIEW_FORBIDDEN_QUERIES,
17
9
  } from "./overview-allowlist.ts";
10
+ export {
11
+ ADMIN_SHELL_FEATURE,
12
+ DEFAULT_PLATFORM_WORKSPACE_ID,
13
+ DEFAULT_TENANT_WORKSPACE_ID,
14
+ PLATFORM_OVERVIEW_SCREEN_ID,
15
+ TENANT_OVERVIEW_SCREEN_ID,
16
+ } from "./web/constants.ts";
17
+ export { ADMIN_SHELL_I18N } from "./web/i18n.ts";
@@ -1,8 +1,7 @@
1
- // @runtime client
2
1
  import { mergeTranslations, type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
3
2
  import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
4
- import { ADMIN_SHELL_FEATURE } from "../constants.ts";
5
- import { defaultTranslations } from "./i18n.ts";
3
+ import { ADMIN_SHELL_FEATURE } from "./constants.ts";
4
+ import { defaultTranslations } from "./default-translations.ts";
6
5
 
7
6
  export type AdminShellClientOptions = {
8
7
  readonly translations?: TranslationsByLocale;
@@ -1,4 +1,3 @@
1
- // @runtime client
2
1
  export const ADMIN_SHELL_FEATURE = "admin-shell" as const;
3
2
 
4
3
  export const DEFAULT_TENANT_WORKSPACE_ID = "tenant-admin" as const;
@@ -0,0 +1,10 @@
1
+ // Client pivot of ADMIN_SHELL_I18N — same keys as server r.translations bundle.
2
+
3
+ import {
4
+ type TranslationsByLocale,
5
+ translationsByLocaleFromKeys,
6
+ } from "@cosmicdrift/kumiko-renderer";
7
+ import { ADMIN_SHELL_I18N } from "./i18n.ts";
8
+
9
+ export const defaultTranslations: TranslationsByLocale =
10
+ translationsByLocaleFromKeys(ADMIN_SHELL_I18N);
@@ -1,11 +1,53 @@
1
- // @runtime client
2
- // Client pivot of ADMIN_SHELL_I18N — same keys as server r.translations bundle.
1
+ // Pure-Data i18n keys for admin-shell (server r.translations + client pivot).
2
+ // Without these keys nav labels and workspace tabs render raw QNs in the shell.
3
3
 
4
- import {
5
- type TranslationsByLocale,
6
- translationsByLocaleFromKeys,
7
- } from "@cosmicdrift/kumiko-renderer";
8
- import { ADMIN_SHELL_I18N } from "../i18n.ts";
4
+ type LocalizedString = { readonly en: string };
9
5
 
10
- export const defaultTranslations: TranslationsByLocale =
11
- translationsByLocaleFromKeys(ADMIN_SHELL_I18N);
6
+ export const ADMIN_SHELL_I18N: Readonly<Record<string, LocalizedString>> = {
7
+ "screen:tenant-overview.title": { en: "Overview" },
8
+ "screen:platform-overview.title": { en: "Overview" },
9
+ "admin-shell.screen.tenant-overview.subtitle": {
10
+ en: "Activity, failed jobs and deliveries, quotas and open admin tasks of this tenant.",
11
+ },
12
+ "admin-shell.screen.platform-overview.subtitle": {
13
+ en: "Tenant, user, job and delivery health across the whole installation.",
14
+ },
15
+ "admin-shell:workspace.tenant": { en: "Administration" },
16
+ "admin-shell:workspace.platform": { en: "Platform" },
17
+ "admin-shell:nav.tenantOverview": { en: "Overview" },
18
+ "admin-shell:nav.platformOverview": { en: "Overview" },
19
+ "admin-shell:nav.tenants": { en: "Tenants" },
20
+ "admin-shell:nav.tierAdmin": { en: "Assign tier" },
21
+ "admin-shell:nav.myCaps": { en: "Plans & Caps" },
22
+ "admin-shell:nav.tenantCaps": { en: "Plans & Caps" },
23
+ "admin-shell:overview.kpi.activeTenants": { en: "Active tenants" },
24
+ "admin-shell:overview.kpi.activeUsers7d": { en: "Active users, 7 days" },
25
+ "admin-shell:overview.kpi.activeMembers7d": { en: "Active members, 7 days" },
26
+ "admin-shell:overview.kpi.failedJobs24h": { en: "Failed jobs, 24 h" },
27
+ "admin-shell:overview.kpi.failedDeliveries24h": { en: "Failed deliveries, 24 h" },
28
+ "admin-shell:overview.chart.jobRunsByStatus": { en: "Job runs by status" },
29
+ "admin-shell:overview.chart.deliveriesByChannel": { en: "Deliveries by channel" },
30
+ "admin-shell:overview.chart.auditWrites": { en: "Changes per day" },
31
+ "admin-shell:overview.chart.auditWritesSubtitle": { en: "Audit log, 14 days" },
32
+ "admin-shell:overview.list.recentFailures": { en: "Recent failures" },
33
+ "admin-shell:overview.list.recentFailuresEmpty": { en: "No failed jobs" },
34
+ "admin-shell:overview.list.quotas": { en: "Quotas" },
35
+ "admin-shell:overview.list.quotasEmpty": { en: "No quotas configured" },
36
+ "admin-shell:overview.col.job": { en: "Job" },
37
+ "admin-shell:overview.col.startedAt": { en: "Started" },
38
+ "admin-shell:overview.col.failedAt": { en: "Failed at" },
39
+ "admin-shell:overview.col.reason": { en: "Reason" },
40
+ "admin-shell:overview.col.quota": { en: "Quota" },
41
+ "admin-shell:overview.col.used": { en: "Used" },
42
+ "admin-shell:overview.col.limit": { en: "Limit" },
43
+ "admin-shell:overview.col.usage": { en: "Usage" },
44
+ "admin-shell:overview.range.24h": { en: "24 hours" },
45
+ "admin-shell:overview.range.7d": { en: "7 days" },
46
+ "admin-shell:overview.range.30d": { en: "30 days" },
47
+ "admin-shell:overview.scope.badge": { en: "All tenants" },
48
+ "admin-shell:overview.scope.notice": {
49
+ en: "You are viewing data of all tenants. Cross-tenant queries are recorded in the audit log.",
50
+ },
51
+ "admin-shell:overview.filter.tenant": { en: "Tenant" },
52
+ "admin-shell:overview.filter.allTenants": { en: "All tenants" },
53
+ };
@@ -1,2 +1 @@
1
- // @runtime client
2
1
  export { type AdminShellClientOptions, adminShellClient } from "./client-plugin.tsx";
@@ -1,4 +1,11 @@
1
1
  [
2
+ {
3
+ "version": "0.379.0",
4
+ "type": "improvement",
5
+ "title": "SystemAdmin audit log across all tenants",
6
+ "detail": "New queries audit:query:list-all-tenants and audit:query:details-all-tenants (SystemAdmin only) return the audit trail of every tenant, each row with its tenantId, filterable by tenant. Screens audit-log-all-tenants and audit-log-all-tenants-detail show the tenant name; the admin-shell platform workspace lists the new nav audit:nav:audit-log-all-tenants. Events of the system tenant are not included. The audit feature now declares r.systemScope(), so its handlers read through ctx.systemDb instead of ctx.db, and list and details rows carry tenantId too. A targetless cross-tenant read (acknowledgeCrossTenant or cross-tenant-read) is now recorded at most once per actor, handler, tenant and reason per hour, so the reference lookups of a SystemAdmin list no longer flood the trail on every page load; all other escape-hatch kinds keep the 60 s window. The audit events keep metadata free of PII ciphertext, a cursor or id beyond bigint is a 422 and the all-tenants tenant filter takes at most 100 ids. Applies to every user:user reference column and read-only reference field in all apps, not only the audit screens: an actor without a visible row no longer shows the raw id but reads \"Unknown\" (kumiko.reference.unknown-user), once the lookup finished without error (while it loads or after it failed the cell keeps a placeholder), and the \"system\" createdBy literal reads \"System\". The audit screen descriptions are now short user-facing sentences.",
7
+ "migration": "Apps with their own platform workspace add the nav `audit:nav:audit-log-all-tenants` (screen `audit:screen:audit-log-all-tenants`) to its navs; apps using the admin-shell platform workspace get it automatically."
8
+ },
2
9
  {
3
10
  "version": "0.365.0",
4
11
  "type": "fix",
@@ -6,17 +6,30 @@ import {
6
6
  i18nKey,
7
7
  SYSTEM_USER_ID,
8
8
  } from "@cosmicdrift/kumiko-framework/engine";
9
+ import { escapeHatchUsedSchema } from "./escape-hatch-audit-sink.ts";
10
+ import { detailsQuery } from "./handlers/details.query.ts";
11
+ import { detailsAllTenantsQuery } from "./handlers/details-all-tenants.query.ts";
12
+ import { listQuery } from "./handlers/list.query.ts";
13
+ import { listAllTenantsQuery } from "./handlers/list-all-tenants.query.ts";
14
+ import { runEscapeHatchRetention } from "./run-escape-hatch-retention.ts";
15
+ import {
16
+ AUDIT_LOG_ALL_TENANTS_COLUMNS,
17
+ AUDIT_LOG_COLUMNS,
18
+ AUDIT_LOG_DATE_RANGE_FACET,
19
+ AUDIT_LOG_DETAIL_FIELD_LABELS,
20
+ AUDIT_LOG_TENANT_FACET,
21
+ auditLogDetailLayout,
22
+ } from "./screens.ts";
9
23
  import {
24
+ AUDIT_LOG_ALL_TENANTS_DETAIL_SCREEN_ID,
25
+ AUDIT_LOG_ALL_TENANTS_NAV_ID,
26
+ AUDIT_LOG_ALL_TENANTS_SCREEN_ID,
10
27
  AUDIT_LOG_DETAIL_SCREEN_ID,
11
28
  AUDIT_LOG_SCREEN_ID,
12
29
  AuditQueries,
13
30
  DEFAULT_ESCAPE_HATCH_RETENTION_DAYS,
14
- } from "./constants.ts";
15
- import { escapeHatchUsedSchema } from "./escape-hatch-audit-sink.ts";
16
- import { detailsQuery } from "./handlers/details.query.ts";
17
- import { listQuery } from "./handlers/list.query.ts";
18
- import { AUDIT_I18N } from "./i18n.ts";
19
- import { runEscapeHatchRetention } from "./run-escape-hatch-retention.ts";
31
+ } from "./web/constants.ts";
32
+ import { AUDIT_I18N } from "./web/i18n.ts";
20
33
 
21
34
  // Audit feature — exposes a filtered read over the framework's event log.
22
35
  //
@@ -36,7 +49,7 @@ export function createAuditFeature(): FeatureDefinition {
36
49
  "audit",
37
50
  (r) => {
38
51
  r.describe(
39
- "Exposes the framework's event store as a paginated, filterable audit log via the `audit:query:list` handler (accessible to `Admin` and `SystemAdmin` roles). No separate table or projection \u2014 the event store is the audit trail by construction: every entity write already records who, when, what entity, and the event payload with PII stripped. A SystemAdmin can pass `scope: \"system\"` to read the app-instance system events such as `app.started`. Filter by `aggregateType`, `aggregateId`, `eventType`, `userId`, or time range. Also records `audit:event:escape-hatch-used` whenever a handler uses one of the framework's escape hatches (unsafeRaw, acknowledgeCrossTenant, db.global() writes, or a granted identity switch).",
52
+ "Exposes the framework's event store as a paginated, filterable audit log via the `audit:query:list` handler (accessible to `Admin` and `SystemAdmin` roles). No separate table or projection \u2014 the event store is the audit trail by construction: every entity write already records who, when, what entity, and the event payload with PII stripped. A SystemAdmin can pass `scope: \"system\"` to read the app-instance system events such as `app.started`, and reads the events of every tenant (system tenant excluded) through `audit:query:list-all-tenants` and the `audit-log-all-tenants` screen. Filter by `aggregateType`, `aggregateId`, `eventType`, `userId`, or time range. Also records `audit:event:escape-hatch-used` whenever a handler uses one of the framework's escape hatches (unsafeRaw, acknowledgeCrossTenant, db.global() writes, or a granted identity switch).",
40
53
  );
41
54
  r.uiHints({
42
55
  displayLabel: "Audit Log",
@@ -44,6 +57,9 @@ export function createAuditFeature(): FeatureDefinition {
44
57
  recommended: false,
45
58
  });
46
59
  r.translations({ keys: AUDIT_I18N });
60
+ // The all-tenants queries read through ctx.systemDb.acknowledgeCrossTenant; the own-tenant
61
+ // queries use assertTenantMatch on the same handle.
62
+ r.systemScope();
47
63
  r.requires({ features: ["tenant", "user", "config"] });
48
64
 
49
65
  // Registered so ops tools/MSPs can discover the type — escape-hatch-audit-sink.ts appends it via the low-level event-store API.
@@ -84,36 +100,18 @@ export function createAuditFeature(): FeatureDefinition {
84
100
  const queries = {
85
101
  list: r.queryHandler(listQuery),
86
102
  details: r.queryHandler(detailsQuery),
103
+ listAllTenants: r.queryHandler(listAllTenantsQuery),
104
+ detailsAllTenants: r.queryHandler(detailsAllTenantsQuery),
87
105
  };
88
106
 
89
107
  r.screen({
90
108
  id: AUDIT_LOG_SCREEN_ID,
91
109
  type: "projectionList",
92
110
  query: AuditQueries.list,
93
- columns: [
94
- {
95
- field: "createdAt",
96
- label: i18nKey("audit.log.col.when"),
97
- renderer: { format: "timestamp" },
98
- },
99
- { field: "type", label: i18nKey("audit.log.col.type") },
100
- {
101
- field: "createdBy",
102
- label: i18nKey("audit.log.col.actor"),
103
- refEntity: "user:user",
104
- refLabelField: "displayName",
105
- },
106
- ],
111
+ columns: AUDIT_LOG_COLUMNS,
107
112
  searchable: true,
108
113
  defaultSort: { field: "createdAt", dir: "desc" },
109
- facets: [
110
- {
111
- type: "dateRange",
112
- field: "createdAt",
113
- label: i18nKey("audit.log.col.when"),
114
- params: { from: "from", to: "to" },
115
- },
116
- ],
114
+ facets: [AUDIT_LOG_DATE_RANGE_FACET],
117
115
  rowActions: [
118
116
  {
119
117
  kind: "navigate",
@@ -125,8 +123,7 @@ export function createAuditFeature(): FeatureDefinition {
125
123
  },
126
124
  ],
127
125
  pagination: "infinite",
128
- description:
129
- "Admin table of the tenant's audit-trail events with actor names and event-type/date filters; open it to browse recent changes and drill into a single event.",
126
+ description: "audit.log.description",
130
127
  access: { roles: access.admin },
131
128
  });
132
129
  r.screen({
@@ -134,43 +131,47 @@ export function createAuditFeature(): FeatureDefinition {
134
131
  type: "projectionDetail",
135
132
  query: AuditQueries.details,
136
133
  idParam: "id",
137
- fieldLabels: {
138
- type: i18nKey("audit.log.col.type"),
139
- createdAt: i18nKey("audit.log.col.when"),
140
- aggregateType: i18nKey("audit.log.col.aggregateType"),
141
- aggregateId: i18nKey("audit.log.col.aggregateId"),
142
- createdBy: i18nKey("audit.log.col.actor"),
143
- id: i18nKey("audit.log.detail.field.id"),
144
- payload: i18nKey("audit.log.detail.payload"),
145
- metadata: i18nKey("audit.log.detail.metadata"),
146
- },
147
- layout: {
148
- sections: [
149
- {
150
- fields: [
151
- "type",
152
- { field: "createdAt", renderer: { format: "timestamp" } },
153
- "aggregateType",
154
- "aggregateId",
155
- { field: "createdBy", refEntity: "user:user", refLabelField: "displayName" },
156
- "id",
157
- ],
158
- },
159
- // No section `title` here (fw#2312 label-dedup fix): each section
160
- // holds exactly one field, so a title would repeat the field's own
161
- // label (rendered by RenderField as the Field's heading) verbatim.
162
- {
163
- fields: [{ field: "payload", renderer: { format: "json" } }],
164
- },
165
- {
166
- fields: [{ field: "metadata", renderer: { format: "json" } }],
167
- },
168
- ],
169
- },
134
+ fieldLabels: AUDIT_LOG_DETAIL_FIELD_LABELS,
135
+ layout: auditLogDetailLayout({ withTenant: false }),
170
136
  description: "audit.log.detail.subtitle",
171
137
  listScreenId: AUDIT_LOG_SCREEN_ID,
172
138
  access: { roles: access.admin },
173
139
  });
140
+ r.screen({
141
+ id: AUDIT_LOG_ALL_TENANTS_SCREEN_ID,
142
+ type: "projectionList",
143
+ query: AuditQueries.listAllTenants,
144
+ columns: AUDIT_LOG_ALL_TENANTS_COLUMNS,
145
+ defaultSort: { field: "createdAt", dir: "desc" },
146
+ facets: [AUDIT_LOG_DATE_RANGE_FACET, AUDIT_LOG_TENANT_FACET],
147
+ rowActions: [
148
+ {
149
+ kind: "navigate",
150
+ id: "details",
151
+ label: i18nKey("audit.log.details"),
152
+ screen: AUDIT_LOG_ALL_TENANTS_DETAIL_SCREEN_ID,
153
+ entityId: "id",
154
+ rowClick: true,
155
+ },
156
+ ],
157
+ pagination: "infinite",
158
+ description: "audit.log.allTenants.description",
159
+ access: { roles: access.systemAdmin },
160
+ });
161
+ r.screen({
162
+ id: AUDIT_LOG_ALL_TENANTS_DETAIL_SCREEN_ID,
163
+ type: "projectionDetail",
164
+ query: AuditQueries.detailsAllTenants,
165
+ idParam: "id",
166
+ fieldLabels: {
167
+ ...AUDIT_LOG_DETAIL_FIELD_LABELS,
168
+ tenantId: i18nKey("audit.log.col.tenant"),
169
+ },
170
+ layout: auditLogDetailLayout({ withTenant: true }),
171
+ description: "audit.log.detail.subtitle",
172
+ listScreenId: AUDIT_LOG_ALL_TENANTS_SCREEN_ID,
173
+ access: { roles: access.systemAdmin },
174
+ });
174
175
  r.nav({
175
176
  id: "audit-log",
176
177
  label: "audit:nav.auditLog",
@@ -178,6 +179,13 @@ export function createAuditFeature(): FeatureDefinition {
178
179
  screen: "audit:screen:audit-log",
179
180
  order: 30,
180
181
  });
182
+ r.nav({
183
+ id: AUDIT_LOG_ALL_TENANTS_NAV_ID,
184
+ label: "audit:nav.auditLogAllTenants",
185
+ icon: "file",
186
+ screen: "audit:screen:audit-log-all-tenants",
187
+ order: 31,
188
+ });
181
189
 
182
190
  return { queries };
183
191
  },