@cosmicdrift/kumiko-bundled-features 0.369.0 → 0.370.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 (606) hide show
  1. package/dist/account-security/constants.d.ts +4 -0
  2. package/dist/account-security/constants.js +5 -0
  3. package/dist/account-security/feature.d.ts +14 -0
  4. package/dist/account-security/feature.js +62 -0
  5. package/dist/account-security/i18n.d.ts +6 -0
  6. package/dist/account-security/i18n.js +6 -0
  7. package/dist/account-security/index.d.ts +3 -0
  8. package/dist/account-security/index.js +3 -0
  9. package/dist/admin-shell/feature.d.ts +1 -1
  10. package/dist/admin-shell/index.d.ts +4 -4
  11. package/dist/admin-shell/overview-panels.d.ts +1 -1
  12. package/dist/admin-shell/web/index.d.ts +1 -1
  13. package/dist/agent-tools/agent-manifest.d.ts +1 -1
  14. package/dist/agent-tools/index.d.ts +8 -8
  15. package/dist/agent-tools/manifest-deny-qns.d.ts +1 -1
  16. package/dist/agent-tools/tool-catalog.d.ts +1 -1
  17. package/dist/agent-tools/tool-dispatch.d.ts +1 -1
  18. package/dist/audit/handlers/resolve-audit-tenant.d.ts +1 -1
  19. package/dist/audit/index.d.ts +3 -3
  20. package/dist/audit/web/index.d.ts +1 -1
  21. package/dist/auth-email-password/bootstrap.d.ts +1 -1
  22. package/dist/auth-email-password/feature.d.ts +7 -6
  23. package/dist/auth-email-password/feature.js +3 -1
  24. package/dist/auth-email-password/handlers/confirm-token-flow.d.ts +1 -1
  25. package/dist/auth-email-password/handlers/invite-accept-with-login.write.d.ts +1 -1
  26. package/dist/auth-email-password/handlers/invite-create.write.d.ts +2 -2
  27. package/dist/auth-email-password/handlers/invite-signup-complete.write.d.ts +1 -1
  28. package/dist/auth-email-password/handlers/login.write.d.ts +1 -1
  29. package/dist/auth-email-password/handlers/request-account-unlock.write.d.ts +1 -1
  30. package/dist/auth-email-password/handlers/request-email-verification.write.d.ts +1 -1
  31. package/dist/auth-email-password/handlers/request-password-reset.write.d.ts +1 -1
  32. package/dist/auth-email-password/handlers/signup-confirm.write.d.ts +1 -1
  33. package/dist/auth-email-password/handlers/signup-request.write.d.ts +1 -1
  34. package/dist/auth-email-password/handlers/switch-tenant-mfa-gate.write.d.ts +1 -1
  35. package/dist/auth-email-password/handlers/token-request-handler.d.ts +2 -2
  36. package/dist/auth-email-password/index.d.ts +13 -13
  37. package/dist/auth-email-password/lockout-store.d.ts +1 -1
  38. package/dist/auth-email-password/magic-link-mail.d.ts +1 -1
  39. package/dist/auth-email-password/seeding.d.ts +3 -3
  40. package/dist/auth-email-password/signed-token.d.ts +1 -1
  41. package/dist/auth-email-password/signup-token-store.d.ts +1 -1
  42. package/dist/auth-email-password/testing.d.ts +1 -1
  43. package/dist/auth-email-password/web/auth-gate.d.ts +1 -1
  44. package/dist/auth-email-password/web/client-plugin.d.ts +2 -2
  45. package/dist/auth-email-password/web/index.d.ts +42 -42
  46. package/dist/auth-email-password/web/session-bootstrap-error.d.ts +1 -1
  47. package/dist/auth-email-password/web/session.d.ts +1 -1
  48. package/dist/auth-email-password/web/signup-complete-screen.d.ts +1 -1
  49. package/dist/auth-foundation/feature.d.ts +2 -6
  50. package/dist/auth-foundation/feature.js +0 -2
  51. package/dist/auth-foundation/index.d.ts +3 -3
  52. package/dist/auth-foundation/index.js +1 -1
  53. package/dist/auth-foundation/resolve-anonymous-access.d.ts +1 -1
  54. package/dist/auth-mfa/env.d.ts +13 -0
  55. package/dist/auth-mfa/env.js +24 -0
  56. package/dist/auth-mfa/errors.d.ts +1 -1
  57. package/dist/auth-mfa/feature-exports.d.ts +12 -0
  58. package/dist/auth-mfa/feature-exports.js +72 -0
  59. package/dist/auth-mfa/feature.d.ts +6 -12
  60. package/dist/auth-mfa/feature.js +53 -70
  61. package/dist/auth-mfa/handlers/reencrypt.job.d.ts +1 -1
  62. package/dist/auth-mfa/index.d.ts +12 -9
  63. package/dist/auth-mfa/index.js +4 -2
  64. package/dist/auth-mfa/mfa-challenge-token.d.ts +1 -1
  65. package/dist/auth-mfa/mfa-preauth-setup-token.d.ts +1 -1
  66. package/dist/auth-mfa/mfa-status-checker.d.ts +1 -1
  67. package/dist/auth-mfa/mfa-verify-attempts.d.ts +1 -1
  68. package/dist/auth-mfa/testing.d.ts +1 -1
  69. package/dist/auth-mfa/token-secrets.d.ts +7 -0
  70. package/dist/auth-mfa/token-secrets.js +13 -0
  71. package/dist/auth-mfa/verify-factor.d.ts +1 -1
  72. package/dist/auth-mfa/web/index.d.ts +15 -15
  73. package/dist/auth-mfa/web/mfa-client.d.ts +1 -1
  74. package/dist/auth-mfa-user-data/index.d.ts +0 -4
  75. package/dist/auth-mfa-user-data/index.js +0 -2
  76. package/dist/billing-foundation/checkout-core.d.ts +2 -2
  77. package/dist/billing-foundation/consumer-protection/confirmation-mail.d.ts +2 -2
  78. package/dist/billing-foundation/consumer-protection/consent-gate.d.ts +1 -1
  79. package/dist/billing-foundation/consumer-protection/consent-text.d.ts +2 -2
  80. package/dist/billing-foundation/consumer-protection/issue-confirmation.d.ts +1 -1
  81. package/dist/billing-foundation/consumer-protection/register-consent.d.ts +1 -1
  82. package/dist/billing-foundation/consumer-protection/register-termination.d.ts +1 -1
  83. package/dist/billing-foundation/consumer-protection/termination-mail.d.ts +3 -3
  84. package/dist/billing-foundation/consumer-protection/termination-notify.d.ts +5 -5
  85. package/dist/billing-foundation/consumer-protection/termination-pages.d.ts +2 -2
  86. package/dist/billing-foundation/consumer-protection/termination-record.d.ts +3 -3
  87. package/dist/billing-foundation/consumer-protection/termination-request.d.ts +2 -2
  88. package/dist/billing-foundation/consumer-protection/termination-texts.d.ts +2 -2
  89. package/dist/billing-foundation/feature.d.ts +1 -3
  90. package/dist/billing-foundation/feature.js +0 -2
  91. package/dist/billing-foundation/handlers/billing-plans.query.d.ts +1 -1
  92. package/dist/billing-foundation/handlers/create-checkout-session.write.d.ts +1 -1
  93. package/dist/billing-foundation/handlers/create-portal-session.write.d.ts +1 -1
  94. package/dist/billing-foundation/handlers/start-plan-checkout.write.d.ts +1 -1
  95. package/dist/billing-foundation/handlers/switch-plan.write.d.ts +1 -1
  96. package/dist/billing-foundation/index.d.ts +16 -16
  97. package/dist/billing-foundation/index.js +1 -1
  98. package/dist/billing-foundation/plan-catalog.d.ts +1 -1
  99. package/dist/billing-foundation/subscription-tier-sync.d.ts +3 -1
  100. package/dist/billing-foundation/subscription-tier-sync.js +3 -2
  101. package/dist/billing-foundation/types.d.ts +3 -3
  102. package/dist/billing-foundation/validate-options.d.ts +1 -1
  103. package/dist/billing-foundation/web/checkout-consent-dialog.d.ts +1 -1
  104. package/dist/billing-foundation/web/index.d.ts +6 -6
  105. package/dist/cap-counter/calendar-cap-usage-reservation.d.ts +4 -4
  106. package/dist/cap-counter/cap-reservation.d.ts +1 -1
  107. package/dist/cap-counter/enforce-cap.d.ts +1 -1
  108. package/dist/cap-counter/feature.d.ts +0 -4
  109. package/dist/cap-counter/feature.js +0 -2
  110. package/dist/cap-counter/index.d.ts +13 -13
  111. package/dist/cap-counter/index.js +1 -1
  112. package/dist/cap-counter/value-cap-guard.d.ts +1 -1
  113. package/dist/cap-counter/with-cap-enforcement.d.ts +1 -1
  114. package/dist/cap-overview/feature.d.ts +1 -1
  115. package/dist/cap-overview/handlers/caps-usage.query.d.ts +1 -1
  116. package/dist/cap-overview/handlers/tenant-caps-list.query.d.ts +1 -1
  117. package/dist/cap-overview/index.d.ts +6 -6
  118. package/dist/cap-overview/screens.d.ts +1 -1
  119. package/dist/cap-overview/types.d.ts +1 -1
  120. package/dist/cap-overview/usage-math.d.ts +1 -1
  121. package/dist/cap-overview/web/cap-usage-bar.d.ts +1 -1
  122. package/dist/cap-overview/web/index.d.ts +4 -4
  123. package/dist/channel-discord/discord-channel.d.ts +1 -1
  124. package/dist/channel-discord/feature.d.ts +1 -1
  125. package/dist/channel-discord/index.d.ts +2 -2
  126. package/dist/channel-email/email-channel.d.ts +2 -2
  127. package/dist/channel-email/env.d.ts +14 -0
  128. package/dist/channel-email/env.js +27 -0
  129. package/dist/channel-email/feature.d.ts +14 -3
  130. package/dist/channel-email/feature.js +5 -1
  131. package/dist/channel-email/index.d.ts +6 -5
  132. package/dist/channel-email/index.js +1 -0
  133. package/dist/channel-email/pii-guard.d.ts +1 -1
  134. package/dist/channel-email/smtp-transport.d.ts +1 -1
  135. package/dist/channel-email/types.d.ts +1 -1
  136. package/dist/channel-in-app/in-app-channel.d.ts +1 -1
  137. package/dist/channel-in-app/index.d.ts +4 -4
  138. package/dist/channel-push/feature.d.ts +1 -1
  139. package/dist/channel-push/index.d.ts +3 -3
  140. package/dist/channel-push/push-channel.d.ts +2 -2
  141. package/dist/channel-slack/feature.d.ts +1 -1
  142. package/dist/channel-slack/index.d.ts +2 -2
  143. package/dist/channel-slack/slack-channel.d.ts +1 -1
  144. package/dist/channel-teams/feature.d.ts +1 -1
  145. package/dist/channel-teams/index.d.ts +2 -2
  146. package/dist/channel-teams/teams-channel.d.ts +1 -1
  147. package/dist/channel-telegram/feature.d.ts +1 -1
  148. package/dist/channel-telegram/index.d.ts +2 -2
  149. package/dist/channel-telegram/telegram-channel.d.ts +1 -1
  150. package/dist/compliance-profiles/feature.d.ts +1 -1
  151. package/dist/compliance-profiles/index.d.ts +3 -3
  152. package/dist/compliance-profiles/web/index.d.ts +2 -2
  153. package/dist/compliance-profiles-ops/index.d.ts +0 -8
  154. package/dist/compliance-profiles-ops/index.js +0 -2
  155. package/dist/config/feature.d.ts +1 -1
  156. package/dist/config/handlers/reencrypt.job.d.ts +1 -1
  157. package/dist/config/index.d.ts +8 -8
  158. package/dist/config/web/client-plugin.d.ts +1 -1
  159. package/dist/config/web/index.d.ts +2 -2
  160. package/dist/crypto-shredding/env/index.d.ts +21 -0
  161. package/dist/crypto-shredding/env/index.js +78 -0
  162. package/dist/crypto-shredding/feature.d.ts +17 -2
  163. package/dist/crypto-shredding/feature.js +5 -1
  164. package/dist/crypto-shredding/index.d.ts +4 -3
  165. package/dist/crypto-shredding/index.js +1 -0
  166. package/dist/custom-fields/feature.d.ts +0 -17
  167. package/dist/custom-fields/feature.js +0 -2
  168. package/dist/custom-fields/index.d.ts +10 -10
  169. package/dist/custom-fields/index.js +1 -1
  170. package/dist/custom-fields/lib/define-or-resurrect.d.ts +2 -2
  171. package/dist/custom-fields/lib/field-access.d.ts +1 -1
  172. package/dist/custom-fields/lib/field-definition-row.d.ts +1 -1
  173. package/dist/custom-fields/lib/quota.d.ts +1 -1
  174. package/dist/custom-fields/web/index.d.ts +3 -3
  175. package/dist/data-retention/_internal/parse-override.d.ts +1 -1
  176. package/dist/data-retention/feature.d.ts +7 -7
  177. package/dist/data-retention/handlers/policy-for.query.d.ts +1 -1
  178. package/dist/data-retention/index.d.ts +3 -3
  179. package/dist/data-retention/resolve-for-tenant.d.ts +2 -2
  180. package/dist/data-retention/resolve-tenant-preset.d.ts +1 -1
  181. package/dist/data-retention/resolver.d.ts +1 -1
  182. package/dist/data-retention/run-retention-cleanup.d.ts +2 -2
  183. package/dist/delivery/attachment-ref.d.ts +1 -1
  184. package/dist/delivery/attempt-log.d.ts +1 -1
  185. package/dist/delivery/channel-context.d.ts +2 -2
  186. package/dist/delivery/chat-webhook-channel.d.ts +2 -2
  187. package/dist/delivery/constants.d.ts +1 -1
  188. package/dist/delivery/delivery-service.d.ts +2 -2
  189. package/dist/delivery/feature.js +2 -0
  190. package/dist/delivery/handlers/log.query.d.ts +1 -1
  191. package/dist/delivery/handlers/unsubscribe-page-chrome.query.d.ts +5 -0
  192. package/dist/delivery/handlers/unsubscribe-page-chrome.query.js +44 -0
  193. package/dist/delivery/index.d.ts +20 -20
  194. package/dist/delivery/notify-factory.d.ts +1 -1
  195. package/dist/delivery/public-names.d.ts +1 -0
  196. package/dist/delivery/public-names.js +1 -0
  197. package/dist/delivery/testing.d.ts +3 -3
  198. package/dist/delivery/types.d.ts +3 -3
  199. package/dist/delivery/unsubscribe-link.d.ts +1 -1
  200. package/dist/delivery/unsubscribe-page-strings.d.ts +4 -0
  201. package/dist/delivery/unsubscribe-page-strings.js +4 -0
  202. package/dist/delivery/unsubscribe-page.d.ts +27 -0
  203. package/dist/delivery/unsubscribe-page.js +192 -0
  204. package/dist/delivery/unsubscribe.d.ts +11 -3
  205. package/dist/delivery/unsubscribe.js +146 -64
  206. package/dist/delivery/web/index.d.ts +2 -2
  207. package/dist/derivatives-sharp/feature.d.ts +0 -4
  208. package/dist/derivatives-sharp/feature.js +0 -2
  209. package/dist/derivatives-sharp/index.d.ts +2 -2
  210. package/dist/derivatives-sharp/index.js +1 -1
  211. package/dist/document-ingest-foundation/feature.d.ts +0 -7
  212. package/dist/document-ingest-foundation/feature.js +0 -2
  213. package/dist/document-ingest-foundation/index.d.ts +7 -7
  214. package/dist/document-ingest-foundation/index.js +1 -1
  215. package/dist/document-ingest-foundation/pages.d.ts +1 -1
  216. package/dist/document-ingest-foundation/providers.d.ts +1 -1
  217. package/dist/document-ingest-foundation/write-document-extract.d.ts +1 -1
  218. package/dist/feature-toggles/compose-tier-resolver.d.ts +1 -1
  219. package/dist/feature-toggles/feature.d.ts +5 -5
  220. package/dist/feature-toggles/handlers/set.write.d.ts +1 -1
  221. package/dist/feature-toggles/index.d.ts +3 -3
  222. package/dist/feature-toggles/toggle-sync-signal.d.ts +1 -1
  223. package/dist/feature-toggles/web/index.d.ts +1 -1
  224. package/dist/file-derivatives/feature.d.ts +0 -2
  225. package/dist/file-derivatives/feature.js +0 -2
  226. package/dist/file-derivatives/index.d.ts +4 -4
  227. package/dist/file-derivatives/index.js +1 -1
  228. package/dist/file-foundation/feature.d.ts +0 -6
  229. package/dist/file-foundation/feature.js +0 -2
  230. package/dist/file-foundation/index.d.ts +2 -2
  231. package/dist/file-foundation/index.js +1 -1
  232. package/dist/file-provider-inmemory/feature.d.ts +0 -4
  233. package/dist/file-provider-inmemory/feature.js +0 -2
  234. package/dist/file-provider-inmemory/index.d.ts +1 -1
  235. package/dist/file-provider-inmemory/index.js +1 -1
  236. package/dist/file-provider-s3/env-feature.d.ts +12 -2
  237. package/dist/file-provider-s3/env-feature.js +9 -6
  238. package/dist/file-provider-s3/env-schema.d.ts +38 -0
  239. package/dist/file-provider-s3/env-schema.js +51 -0
  240. package/dist/file-provider-s3/feature.d.ts +1 -14
  241. package/dist/file-provider-s3/feature.js +0 -2
  242. package/dist/file-provider-s3/index.d.ts +2 -1
  243. package/dist/file-provider-s3/index.js +2 -1
  244. package/dist/file-provider-s3/lib/env-helper.d.ts +1 -1
  245. package/dist/file-provider-s3/lib/index.d.ts +3 -3
  246. package/dist/files/index.d.ts +1 -1
  247. package/dist/files-tenant-data/index.d.ts +2 -2
  248. package/dist/folders/feature.d.ts +0 -4
  249. package/dist/folders/feature.js +0 -2
  250. package/dist/folders/index.d.ts +7 -7
  251. package/dist/folders/index.js +1 -1
  252. package/dist/folders/web/folder-manager.d.ts +1 -1
  253. package/dist/folders/web/index.d.ts +5 -5
  254. package/dist/folders-user-data/index.d.ts +0 -4
  255. package/dist/folders-user-data/index.js +0 -2
  256. package/dist/form-draft/db/queries/cleanup.d.ts +1 -1
  257. package/dist/form-draft/feature.d.ts +0 -4
  258. package/dist/form-draft/feature.js +0 -2
  259. package/dist/form-draft/handlers/cleanup.job.d.ts +1 -1
  260. package/dist/form-draft/handlers/get.query.d.ts +1 -1
  261. package/dist/form-draft/index.d.ts +10 -10
  262. package/dist/form-draft/index.js +1 -1
  263. package/dist/form-draft/lookup.d.ts +1 -1
  264. package/dist/form-draft/release-file-refs.d.ts +1 -1
  265. package/dist/form-draft-user-data/index.d.ts +0 -4
  266. package/dist/form-draft-user-data/index.js +0 -2
  267. package/dist/foundation-shared/build-info-env.d.ts +7 -0
  268. package/dist/foundation-shared/build-info-env.js +15 -0
  269. package/dist/foundation-shared/demo-admin-env.d.ts +12 -0
  270. package/dist/foundation-shared/demo-admin-env.js +21 -0
  271. package/dist/foundation-shared/index.d.ts +5 -3
  272. package/dist/foundation-shared/index.js +2 -0
  273. package/dist/host-routing/constants.d.ts +8 -0
  274. package/dist/host-routing/constants.js +19 -0
  275. package/dist/host-routing/dispatch.d.ts +24 -0
  276. package/dist/host-routing/dispatch.js +102 -0
  277. package/dist/host-routing/feature.d.ts +3 -0
  278. package/dist/host-routing/feature.js +102 -0
  279. package/dist/host-routing/host.d.ts +14 -0
  280. package/dist/host-routing/host.js +37 -0
  281. package/dist/host-routing/index.d.ts +5 -0
  282. package/dist/host-routing/index.js +4 -0
  283. package/dist/host-routing/options.d.ts +27 -0
  284. package/dist/host-routing/options.js +1 -0
  285. package/dist/host-routing/validate-options.d.ts +2 -0
  286. package/dist/host-routing/validate-options.js +29 -0
  287. package/dist/inbound-mail-foundation/connect-routes.d.ts +2 -2
  288. package/dist/inbound-mail-foundation/feature.d.ts +0 -4
  289. package/dist/inbound-mail-foundation/feature.js +0 -2
  290. package/dist/inbound-mail-foundation/handlers/account-state.d.ts +1 -1
  291. package/dist/inbound-mail-foundation/index.d.ts +12 -12
  292. package/dist/inbound-mail-foundation/index.js +1 -1
  293. package/dist/inbound-mail-foundation/oauth-access-token.d.ts +1 -1
  294. package/dist/inbound-mail-foundation/provider-factory.d.ts +1 -1
  295. package/dist/inbound-mail-foundation/types.d.ts +1 -1
  296. package/dist/inbound-mail-foundation/watch-supervisor.d.ts +2 -2
  297. package/dist/inbound-provider-imap/feature.d.ts +1 -5
  298. package/dist/inbound-provider-imap/feature.js +0 -2
  299. package/dist/inbound-provider-imap/imap-client.d.ts +1 -1
  300. package/dist/inbound-provider-imap/index.d.ts +3 -3
  301. package/dist/inbound-provider-imap/index.js +1 -1
  302. package/dist/inbound-provider-inmemory/feature.d.ts +0 -4
  303. package/dist/inbound-provider-inmemory/feature.js +0 -2
  304. package/dist/inbound-provider-inmemory/index.d.ts +1 -1
  305. package/dist/inbound-provider-inmemory/index.js +1 -1
  306. package/dist/jobs/handlers/tenant-runs.query.d.ts +1 -1
  307. package/dist/jobs/index.d.ts +9 -9
  308. package/dist/jobs/web/index.d.ts +1 -1
  309. package/dist/ledger/feature.d.ts +0 -4
  310. package/dist/ledger/feature.js +0 -2
  311. package/dist/ledger/index.d.ts +10 -10
  312. package/dist/ledger/index.js +1 -1
  313. package/dist/ledger/recurring.d.ts +2 -2
  314. package/dist/ledger/reports.d.ts +2 -2
  315. package/dist/ledger/web/index.d.ts +3 -3
  316. package/dist/legal-pages/constants.d.ts +12 -0
  317. package/dist/legal-pages/constants.js +16 -0
  318. package/dist/legal-pages/feature.d.ts +6 -3
  319. package/dist/legal-pages/feature.js +5 -2
  320. package/dist/legal-pages/index.d.ts +5 -3
  321. package/dist/legal-pages/index.js +3 -1
  322. package/dist/legal-pages/layout.d.ts +10 -0
  323. package/dist/legal-pages/layout.js +32 -0
  324. package/dist/legal-pages/lib/boot-check.d.ts +1 -1
  325. package/dist/legal-pages/lib/validate-routes.d.ts +1 -1
  326. package/dist/legal-pages/markdown.d.ts +2 -2
  327. package/dist/legal-pages/seed.d.ts +12 -0
  328. package/dist/legal-pages/seed.js +38 -0
  329. package/dist/legal-pages/web/index.d.ts +1 -1
  330. package/dist/mail-foundation/feature.d.ts +0 -7
  331. package/dist/mail-foundation/feature.js +0 -2
  332. package/dist/mail-foundation/index.d.ts +1 -1
  333. package/dist/mail-foundation/index.js +1 -1
  334. package/dist/mail-transport-inmemory/feature.d.ts +0 -4
  335. package/dist/mail-transport-inmemory/feature.js +0 -2
  336. package/dist/mail-transport-inmemory/index.d.ts +1 -1
  337. package/dist/mail-transport-inmemory/index.js +1 -1
  338. package/dist/mail-transport-smtp/feature.d.ts +0 -16
  339. package/dist/mail-transport-smtp/feature.js +0 -2
  340. package/dist/mail-transport-smtp/index.d.ts +1 -1
  341. package/dist/mail-transport-smtp/index.js +1 -1
  342. package/dist/managed-pages/branding.d.ts +1 -1
  343. package/dist/managed-pages/feature.d.ts +1 -1
  344. package/dist/managed-pages/handlers/branding.query.d.ts +1 -1
  345. package/dist/managed-pages/index.d.ts +5 -5
  346. package/dist/managed-pages/web/index.d.ts +2 -2
  347. package/dist/metrics/compute.d.ts +2 -2
  348. package/dist/metrics/default-metrics.d.ts +9 -9
  349. package/dist/metrics/feature.d.ts +1 -1
  350. package/dist/metrics/filters.d.ts +1 -1
  351. package/dist/metrics/index.d.ts +5 -5
  352. package/dist/metrics/types.d.ts +1 -1
  353. package/dist/metrics/validate.d.ts +1 -1
  354. package/dist/metrics/window.d.ts +2 -2
  355. package/dist/notes-history/feature.d.ts +0 -4
  356. package/dist/notes-history/feature.js +0 -2
  357. package/dist/notes-history/handlers/add-note.write.d.ts +1 -1
  358. package/dist/notes-history/index.d.ts +6 -6
  359. package/dist/notes-history/index.js +1 -1
  360. package/dist/notes-history/web/index.d.ts +3 -3
  361. package/dist/notes-history-user-data/index.d.ts +1 -5
  362. package/dist/notes-history-user-data/index.js +0 -2
  363. package/dist/page-render/index.d.ts +7 -7
  364. package/dist/page-render/layout.d.ts +1 -1
  365. package/dist/page-render/web.d.ts +5 -5
  366. package/dist/personal-access-tokens/feature.d.ts +3 -3
  367. package/dist/personal-access-tokens/handlers/available-scopes.query.d.ts +1 -1
  368. package/dist/personal-access-tokens/i18n.d.ts +1 -1
  369. package/dist/personal-access-tokens/index.d.ts +13 -13
  370. package/dist/personal-access-tokens/resolver.d.ts +1 -1
  371. package/dist/personal-access-tokens/screens.d.ts +1 -1
  372. package/dist/presets/dsgvo-self-service.d.ts +3 -1
  373. package/dist/presets/dsgvo-self-service.js +2 -0
  374. package/dist/presets/index.d.ts +2 -2
  375. package/dist/presets/security-baseline.d.ts +2 -0
  376. package/dist/presets/security-baseline.js +2 -0
  377. package/dist/rate-limiting/index.d.ts +2 -2
  378. package/dist/readiness/feature.d.ts +0 -8
  379. package/dist/readiness/feature.js +0 -2
  380. package/dist/readiness/index.d.ts +3 -3
  381. package/dist/readiness/index.js +1 -1
  382. package/dist/renderer-foundation/api.d.ts +2 -2
  383. package/dist/renderer-foundation/constants.d.ts +2 -2
  384. package/dist/renderer-foundation/feature.d.ts +1 -1
  385. package/dist/renderer-foundation/index.d.ts +5 -5
  386. package/dist/renderer-foundation/types.d.ts +24 -2
  387. package/dist/renderer-pdf/feature.d.ts +1 -1
  388. package/dist/renderer-pdf/index.d.ts +2 -2
  389. package/dist/renderer-pdf/render-table-pdf.d.ts +1 -1
  390. package/dist/secrets/constants.d.ts +7 -0
  391. package/dist/secrets/constants.js +7 -0
  392. package/dist/secrets/db/queries/read.d.ts +1 -1
  393. package/dist/secrets/feature.d.ts +4 -3
  394. package/dist/secrets/feature.js +4 -2
  395. package/dist/secrets/handlers/delete.write.js +2 -2
  396. package/dist/secrets/handlers/rotate.job.d.ts +1 -1
  397. package/dist/secrets/handlers/set.write.js +2 -2
  398. package/dist/secrets/index.d.ts +7 -7
  399. package/dist/secrets/index.js +1 -1
  400. package/dist/secrets/secrets-context.d.ts +1 -1
  401. package/dist/seo/feature.d.ts +3 -3
  402. package/dist/seo/index.d.ts +6 -6
  403. package/dist/sessions/feature.d.ts +1 -1
  404. package/dist/sessions/index.d.ts +8 -8
  405. package/dist/sessions/session-callbacks.d.ts +1 -1
  406. package/dist/sessions/testing.d.ts +1 -1
  407. package/dist/shared/index.d.ts +31 -31
  408. package/dist/step-dispatcher/dispatch-payload.d.ts +2 -2
  409. package/dist/step-dispatcher/index.d.ts +3 -3
  410. package/dist/subscription-mollie/feature.d.ts +2 -2
  411. package/dist/subscription-mollie/index.d.ts +3 -3
  412. package/dist/subscription-mollie/verify-webhook.d.ts +1 -1
  413. package/dist/subscription-stripe/feature.d.ts +17 -1
  414. package/dist/subscription-stripe/feature.js +19 -1
  415. package/dist/subscription-stripe/index.d.ts +2 -2
  416. package/dist/subscription-stripe/index.js +1 -1
  417. package/dist/subscription-stripe/plugin-methods.d.ts +1 -1
  418. package/dist/subscription-stripe/verify-webhook.d.ts +1 -1
  419. package/dist/tags/feature.d.ts +0 -4
  420. package/dist/tags/feature.js +0 -2
  421. package/dist/tags/handlers/assign-tag.write.d.ts +1 -1
  422. package/dist/tags/handlers/remove-tag.write.d.ts +1 -1
  423. package/dist/tags/index.d.ts +11 -11
  424. package/dist/tags/index.js +1 -1
  425. package/dist/tags/web/index.d.ts +9 -9
  426. package/dist/template-resolver/api.d.ts +4 -4
  427. package/dist/template-resolver/constants.d.ts +1 -1
  428. package/dist/template-resolver/document-sanitizer.d.ts +1 -1
  429. package/dist/template-resolver/handlers/bundle-import.d.ts +3 -3
  430. package/dist/template-resolver/handlers/collection-shared.d.ts +2 -2
  431. package/dist/template-resolver/handlers/copy-locale.write.d.ts +1 -1
  432. package/dist/template-resolver/handlers/diff-to-system.query.d.ts +1 -1
  433. package/dist/template-resolver/handlers/find-by-id.query.d.ts +1 -1
  434. package/dist/template-resolver/handlers/import-bundle-system.write.d.ts +1 -1
  435. package/dist/template-resolver/handlers/import-bundle.write.d.ts +1 -1
  436. package/dist/template-resolver/handlers/layout-source.query.d.ts +3 -3
  437. package/dist/template-resolver/handlers/override-diff.d.ts +2 -2
  438. package/dist/template-resolver/handlers/overview.query.d.ts +3 -3
  439. package/dist/template-resolver/handlers/preview.query.d.ts +1 -1
  440. package/dist/template-resolver/handlers/resource-link-pdf.write.d.ts +1 -1
  441. package/dist/template-resolver/handlers/resource-upload.write.d.ts +1 -1
  442. package/dist/template-resolver/handlers/send-test.write.d.ts +1 -1
  443. package/dist/template-resolver/handlers/shared.d.ts +1 -1
  444. package/dist/template-resolver/handlers/template-gates.d.ts +4 -4
  445. package/dist/template-resolver/handlers/template-write.d.ts +4 -4
  446. package/dist/template-resolver/handlers/tenant-overrides.query.d.ts +1 -1
  447. package/dist/template-resolver/handlers/toggle-status.write.d.ts +1 -1
  448. package/dist/template-resolver/handlers/upsert-system.write.d.ts +1 -1
  449. package/dist/template-resolver/handlers/upsert-tenant.write.d.ts +1 -1
  450. package/dist/template-resolver/handlers/usage.query.d.ts +1 -1
  451. package/dist/template-resolver/handlers/validate.query.d.ts +3 -3
  452. package/dist/template-resolver/index.d.ts +25 -25
  453. package/dist/template-resolver/layout-appearance.d.ts +1 -1
  454. package/dist/template-resolver/layout-regions.d.ts +2 -2
  455. package/dist/template-resolver/linked-resources.d.ts +1 -1
  456. package/dist/template-resolver/preview-display-html.d.ts +1 -1
  457. package/dist/template-resolver/resource-image.d.ts +1 -1
  458. package/dist/template-resolver/seeding.d.ts +2 -2
  459. package/dist/template-resolver/store-template-resource.d.ts +1 -1
  460. package/dist/template-resolver/template-draft.d.ts +2 -2
  461. package/dist/template-resolver/template-meta.d.ts +2 -2
  462. package/dist/template-resolver/template-preview.d.ts +7 -6
  463. package/dist/template-resolver/template-preview.js +19 -12
  464. package/dist/template-resolver/template-resources.d.ts +1 -1
  465. package/dist/template-resolver/template-usage.d.ts +3 -1
  466. package/dist/template-resolver/template-usage.js +1 -0
  467. package/dist/template-resolver/template-validation.d.ts +1 -1
  468. package/dist/template-resolver/testing.d.ts +1 -1
  469. package/dist/template-resolver/user-content-table.d.ts +1 -1
  470. package/dist/template-resolver/web/document-editor-extensions.d.ts +1 -1
  471. package/dist/template-resolver/web/document-editor-extensions.js +6 -2
  472. package/dist/template-resolver/web/document-editor.d.ts +1 -1
  473. package/dist/template-resolver/web/document-tiptap-editor.d.ts +1 -1
  474. package/dist/template-resolver/web/document-tiptap-editor.js +13 -10
  475. package/dist/template-resolver/web/editor-handle.d.ts +1 -1
  476. package/dist/template-resolver/web/index.d.ts +7 -7
  477. package/dist/template-resolver/web/placeholder-line-editor-lazy.d.ts +2 -2
  478. package/dist/template-resolver/web/placeholder-line-editor.d.ts +1 -1
  479. package/dist/template-resolver-user-data/index.d.ts +0 -4
  480. package/dist/template-resolver-user-data/index.js +0 -2
  481. package/dist/tenant/feature.d.ts +1 -1
  482. package/dist/tenant/index.d.ts +10 -10
  483. package/dist/tenant/is-tenant-serving-public-content.d.ts +1 -1
  484. package/dist/tenant/testing.d.ts +1 -1
  485. package/dist/tenant/web/index.d.ts +3 -3
  486. package/dist/tenant-handover/feature.d.ts +1 -1
  487. package/dist/tenant-handover/index.d.ts +3 -3
  488. package/dist/tenant-handover/signup-handover-provider.d.ts +1 -1
  489. package/dist/tenant-lifecycle/feature.d.ts +2 -2
  490. package/dist/tenant-lifecycle/index.d.ts +3 -3
  491. package/dist/tenant-lifecycle/run-tenant-destroy.d.ts +1 -1
  492. package/dist/tenant-lifecycle/stages.d.ts +1 -1
  493. package/dist/tenant-lifecycle/testing.d.ts +1 -1
  494. package/dist/tenant-settings/feature.d.ts +1 -3
  495. package/dist/tenant-settings/feature.js +0 -2
  496. package/dist/tenant-settings/index.d.ts +4 -4
  497. package/dist/tenant-settings/index.js +1 -1
  498. package/dist/tier-engine/entity.d.ts +1 -1
  499. package/dist/tier-engine/feature.d.ts +2 -4
  500. package/dist/tier-engine/feature.js +0 -2
  501. package/dist/tier-engine/handlers/get-tenant-tier.query.d.ts +1 -1
  502. package/dist/tier-engine/i18n.d.ts +0 -2
  503. package/dist/tier-engine/i18n.js +4 -4
  504. package/dist/tier-engine/index.d.ts +8 -8
  505. package/dist/tier-engine/index.js +1 -1
  506. package/dist/tier-engine/tier-option-gate.d.ts +1 -1
  507. package/dist/tier-engine/tier-resolver.d.ts +1 -1
  508. package/dist/tier-engine/web/client-plugin.js +3 -2
  509. package/dist/tier-engine/web/index.d.ts +1 -1
  510. package/dist/user/index.d.ts +8 -8
  511. package/dist/user/invited-global-roles.d.ts +1 -1
  512. package/dist/user/principal-status.d.ts +1 -1
  513. package/dist/user/seeding.d.ts +1 -1
  514. package/dist/user/testing.d.ts +1 -1
  515. package/dist/user-data-rights/deletion-token.d.ts +1 -1
  516. package/dist/user-data-rights/feature.d.ts +5 -5
  517. package/dist/user-data-rights/handlers/request-deletion.write.d.ts +1 -1
  518. package/dist/user-data-rights/handlers/run-forget-cleanup.write.d.ts +3 -3
  519. package/dist/user-data-rights/index.d.ts +13 -13
  520. package/dist/user-data-rights/lib/default-mailers.d.ts +4 -4
  521. package/dist/user-data-rights/web/client-plugin.d.ts +1 -1
  522. package/dist/user-data-rights/web/index.d.ts +8 -8
  523. package/dist/user-data-rights-defaults/index.d.ts +11 -11
  524. package/dist/user-profile/index.d.ts +2 -2
  525. package/dist/user-profile/web/index.d.ts +2 -2
  526. package/dist/waitlist/constants.d.ts +9 -0
  527. package/dist/waitlist/constants.js +11 -0
  528. package/dist/waitlist/entity.d.ts +38 -6
  529. package/dist/waitlist/entity.js +4 -2
  530. package/dist/waitlist/entries-admin.d.ts +4 -0
  531. package/dist/waitlist/entries-admin.js +42 -0
  532. package/dist/waitlist/feature.d.ts +1 -1
  533. package/dist/waitlist/feature.js +16 -1
  534. package/dist/waitlist/handlers/export-purge.write.d.ts +12 -0
  535. package/dist/waitlist/handlers/export-purge.write.js +61 -0
  536. package/dist/waitlist/handlers/invite.write.d.ts +1 -1
  537. package/dist/waitlist/handlers/submit.write.d.ts +1 -1
  538. package/dist/waitlist/i18n.js +4 -0
  539. package/dist/waitlist/import.d.ts +24 -0
  540. package/dist/waitlist/import.js +51 -0
  541. package/dist/waitlist/index.d.ts +7 -5
  542. package/dist/waitlist/index.js +2 -0
  543. package/dist/waitlist/legacy-migrate.d.ts +27 -0
  544. package/dist/waitlist/legacy-migrate.js +173 -0
  545. package/dist/waitlist/lib.d.ts +2 -2
  546. package/dist/waitlist/link-on-signup.d.ts +3 -0
  547. package/dist/waitlist/link-on-signup.js +83 -0
  548. package/dist/waitlist/options.d.ts +11 -3
  549. package/dist/waitlist/payloads.d.ts +3 -0
  550. package/dist/waitlist/payloads.js +1 -0
  551. package/dist/workflow-runner/feature.d.ts +0 -4
  552. package/dist/workflow-runner/feature.js +0 -2
  553. package/dist/workflow-runner/index.d.ts +4 -4
  554. package/dist/workflow-runner/index.js +1 -1
  555. package/package.json +43 -27
  556. package/src/account-security/changes.json +8 -0
  557. package/src/auth-email-password/changes.json +6 -0
  558. package/src/auth-foundation/changes.json +8 -0
  559. package/src/auth-mfa/changes.json +6 -0
  560. package/src/auth-mfa-user-data/changes.json +10 -1
  561. package/src/billing-foundation/changes.json +8 -0
  562. package/src/cap-counter/changes.json +8 -0
  563. package/src/channel-email/changes.json +6 -0
  564. package/src/compliance-profiles-ops/changes.json +10 -0
  565. package/src/crypto-shredding/changes.json +6 -0
  566. package/src/custom-fields/changes.json +8 -0
  567. package/src/delivery/changes.json +6 -0
  568. package/src/derivatives-sharp/changes.json +8 -0
  569. package/src/document-ingest-foundation/changes.json +8 -0
  570. package/src/file-derivatives/changes.json +8 -0
  571. package/src/file-foundation/changes.json +8 -0
  572. package/src/file-provider-inmemory/changes.json +10 -1
  573. package/src/file-provider-s3/changes.json +22 -0
  574. package/src/folders/changes.json +8 -0
  575. package/src/folders-user-data/changes.json +10 -1
  576. package/src/form-draft/changes.json +8 -0
  577. package/src/form-draft-user-data/changes.json +10 -1
  578. package/src/foundation-shared/changes.json +8 -1
  579. package/src/host-routing/changes.json +8 -0
  580. package/src/inbound-mail-foundation/changes.json +8 -0
  581. package/src/inbound-provider-imap/changes.json +8 -0
  582. package/src/inbound-provider-inmemory/changes.json +10 -1
  583. package/src/ledger/changes.json +8 -0
  584. package/src/legal-pages/changes.json +6 -0
  585. package/src/mail-foundation/changes.json +10 -1
  586. package/src/mail-transport-inmemory/changes.json +10 -1
  587. package/src/mail-transport-smtp/changes.json +8 -0
  588. package/src/notes-history/changes.json +8 -0
  589. package/src/notes-history-user-data/changes.json +8 -0
  590. package/src/presets/changes.json +6 -0
  591. package/src/readiness/changes.json +10 -1
  592. package/src/secrets/changes.json +12 -0
  593. package/src/subscription-stripe/changes.json +6 -0
  594. package/src/tags/changes.json +8 -0
  595. package/src/template-resolver/changes.json +6 -0
  596. package/src/template-resolver-user-data/changes.json +10 -0
  597. package/src/tenant-settings/changes.json +10 -1
  598. package/src/tier-engine/changes.json +8 -0
  599. package/src/waitlist/changes.json +7 -0
  600. package/src/workflow-runner/changes.json +8 -0
  601. package/dist/file-provider-s3-env/index.d.ts +0 -8
  602. package/dist/file-provider-s3-env/index.js +0 -7
  603. package/dist/files-provider-s3/index.d.ts +0 -5
  604. package/dist/files-provider-s3/index.js +0 -5
  605. package/src/file-provider-s3-env/changes.json +0 -1
  606. package/src/files-provider-s3/changes.json +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type ProjectionListScreenDefinition, type SecretMintScreenDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import type { PatScopeConfig } from "./scopes.js";
2
+ import type { PatScopeConfig } from "./scopes.ts";
3
3
  export declare const patListScreen: ProjectionListScreenDefinition;
4
4
  export declare function patGrantOptions(scopes: PatScopeConfig): string[];
5
5
  export declare function createPatMintScreen(scopes: PatScopeConfig): SecretMintScreenDefinition;
@@ -1,8 +1,10 @@
1
1
  import type { FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type UserDataRightsOptions } from "../user-data-rights/index.js";
2
+ import { type UserDataRightsOptions } from "../user-data-rights/index.ts";
3
3
  export type DsgvoSelfServiceOptions = {
4
4
  /** Passed through to createUserDataRightsFeature — export/deletion mail
5
5
  * callbacks + Apex deletion HMAC. Default {} (no-op mail side). */
6
6
  readonly userDataRights?: UserDataRightsOptions;
7
7
  };
8
+ /** @deprecated Removed in the next release. Use `composeGdprStack({ selfService: { userDataRights } })`
9
+ * from `@cosmicdrift/kumiko-dev-server/compose-stacks`. */
8
10
  export declare function dsgvoSelfServiceFeatures(opts?: DsgvoSelfServiceOptions): FeatureDefinition[];
@@ -11,6 +11,8 @@ import { createUserProfileFeature } from "../user-profile/index.js";
11
11
  // comment. text-content + legal-pages stay out deliberately — legal-pages
12
12
  // has an app-specific wrapLayout, text-content is a standalone foundation;
13
13
  // both are spread in by the app itself.
14
+ /** @deprecated Removed in the next release. Use `composeGdprStack({ selfService: { userDataRights } })`
15
+ * from `@cosmicdrift/kumiko-dev-server/compose-stacks`. */
14
16
  export function dsgvoSelfServiceFeatures(opts = {}) {
15
17
  return [
16
18
  createDataRetentionFeature(),
@@ -1,2 +1,2 @@
1
- export { type DsgvoSelfServiceOptions, dsgvoSelfServiceFeatures } from "./dsgvo-self-service.js";
2
- export { type SecurityBaselineOptions, securityBaselineFeatures } from "./security-baseline.js";
1
+ export { type DsgvoSelfServiceOptions, dsgvoSelfServiceFeatures } from "./dsgvo-self-service.ts";
2
+ export { type SecurityBaselineOptions, securityBaselineFeatures } from "./security-baseline.ts";
@@ -2,4 +2,6 @@ import type { FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
2
  export type SecurityBaselineOptions = {
3
3
  readonly includeSessions?: boolean;
4
4
  };
5
+ /** @deprecated Removed in the next release. Use `composeSecurityStack({ includeSessions })`
6
+ * from `@cosmicdrift/kumiko-dev-server/compose-stacks`. */
5
7
  export declare function securityBaselineFeatures(opts?: SecurityBaselineOptions): FeatureDefinition[];
@@ -3,6 +3,8 @@ import { createCryptoShreddingFeature } from "../crypto-shredding/index.js";
3
3
  import { createRateLimitingFeature } from "../rate-limiting/index.js";
4
4
  import { createSessionsFeature } from "../sessions/index.js";
5
5
  // Host app must mount user, tenant, auth-foundation (sessions/audit requires).
6
+ /** @deprecated Removed in the next release. Use `composeSecurityStack({ includeSessions })`
7
+ * from `@cosmicdrift/kumiko-dev-server/compose-stacks`. */
6
8
  export function securityBaselineFeatures(opts = {}) {
7
9
  return [
8
10
  ...(opts.includeSessions !== false ? [createSessionsFeature()] : []),
@@ -1,2 +1,2 @@
1
- export { RATE_LIMITING_FEATURE, RateLimitErrors, RateLimitQueries } from "./constants.js";
2
- export { createRateLimitingFeature } from "./feature.js";
1
+ export { RATE_LIMITING_FEATURE, RateLimitErrors, RateLimitQueries } from "./constants.ts";
2
+ export { createRateLimitingFeature } from "./feature.ts";
@@ -5,11 +5,3 @@ export declare function createReadinessFeature(): import("@cosmicdrift/kumiko-ty
5
5
  };
6
6
  };
7
7
  };
8
- /** @deprecated Use createReadinessFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
9
- export declare const readinessFeature: import("@cosmicdrift/kumiko-types/feature").FeatureDefinition & {
10
- readonly exports: {
11
- queries: {
12
- status: import("@cosmicdrift/kumiko-types/handlers").HandlerRef;
13
- };
14
- };
15
- };
@@ -25,5 +25,3 @@ export function createReadinessFeature() {
25
25
  return { queries };
26
26
  }, { dedupeOptions: {} });
27
27
  }
28
- /** @deprecated Use createReadinessFeature(). Run `bun kumiko-upgrade --apply`. Removed in the first release after 2026-10-29. */
29
- export const readinessFeature = createReadinessFeature();
@@ -1,3 +1,3 @@
1
- export { READINESS_FEATURE, ReadinessQueries } from "./constants.js";
2
- export { createReadinessFeature, readinessFeature } from "./feature.js";
3
- export type { ReadinessMissingSecret } from "./handlers/status.query.js";
1
+ export { READINESS_FEATURE, ReadinessQueries } from "./constants.ts";
2
+ export { createReadinessFeature } from "./feature.ts";
3
+ export type { ReadinessMissingSecret } from "./handlers/status.query.ts";
@@ -1,2 +1,2 @@
1
1
  export { READINESS_FEATURE, ReadinessQueries } from "./constants.js";
2
- export { createReadinessFeature, readinessFeature } from "./feature.js";
2
+ export { createReadinessFeature } from "./feature.js";
@@ -1,6 +1,6 @@
1
1
  import type { TenantId } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type RenderKind } from "./constants.js";
3
- import { type RendererPlugin } from "./types.js";
2
+ import { type RenderKind } from "./constants.ts";
3
+ import { type RendererPlugin } from "./types.ts";
4
4
  export type RendererFoundationApi = {
5
5
  /**
6
6
  * Selects + returns a RendererPlugin for (tenantId × kind). Callers
@@ -1,4 +1,4 @@
1
- import type { RenderKind as RenderKindLocal } from "../template-resolver/index.js";
1
+ import type { RenderKind as RenderKindLocal } from "../template-resolver/index.ts";
2
2
  export declare const RENDERER_EXTENSION: "renderer";
3
- export { CONTENT_FORMATS, type ContentFormat, RENDER_KINDS, type RenderKind, } from "../template-resolver/index.js";
3
+ export { CONTENT_FORMATS, type ContentFormat, RENDER_KINDS, type RenderKind, } from "../template-resolver/index.ts";
4
4
  export declare const DEFAULT_PLUGIN_BY_KIND: Readonly<Record<RenderKindLocal, string>>;
@@ -1,5 +1,5 @@
1
1
  import { type Registry } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type RendererPlugin } from "./types.js";
2
+ import { type RendererPlugin } from "./types.ts";
3
3
  export declare function createRendererFoundationFeature(): import("@cosmicdrift/kumiko-types/feature").FeatureDefinition & {
4
4
  readonly exports: {};
5
5
  };
@@ -1,5 +1,5 @@
1
- export { attachmentFileNameSchema } from "../shared/index.js";
2
- export { createRendererFoundationApi, type RendererFoundationApi, requireRendererFoundation, } from "./api.js";
3
- export { CONTENT_FORMATS, type ContentFormat, DEFAULT_PLUGIN_BY_KIND, RENDER_KINDS, RENDERER_EXTENSION, type RenderKind, } from "./constants.js";
4
- export { collectRendererPlugins, createRendererFoundationFeature } from "./feature.js";
5
- export { type DocumentPayload, type DocumentPdfDraft, type DocumentPdfPayload, type DocumentPreview, type DocumentPreviewRequest, type FileAttachmentRef, type ImageOptions, type InlineAttachmentRef, isRendererRegistrationPlugin, type MailAttachmentRef, type MailDraft, type MailPayload, type PdfOptions, type RenderedPdfAttachmentRef, type RenderedTemplateRef, type RendererContext, RendererError, type RendererPlugin, type RendererRegistrationPlugin, type RenderProvenance, type RenderRequest, type RenderResponse, } from "./types.js";
1
+ export { attachmentFileNameSchema } from "../shared/index.ts";
2
+ export { createRendererFoundationApi, type RendererFoundationApi, requireRendererFoundation, } from "./api.ts";
3
+ export { CONTENT_FORMATS, type ContentFormat, DEFAULT_PLUGIN_BY_KIND, RENDER_KINDS, RENDERER_EXTENSION, type RenderKind, } from "./constants.ts";
4
+ export { collectRendererPlugins, createRendererFoundationFeature } from "./feature.ts";
5
+ export { type DocumentPayload, type DocumentPdfDraft, type DocumentPdfPayload, type DocumentPreview, type DocumentPreviewRequest, type FileAttachmentRef, type ImageOptions, type InlineAttachmentRef, isRendererRegistrationPlugin, type MailAttachmentRef, type MailChrome, type MailChromeLink, type MailChromeRequest, type MailDraft, type MailPayload, type PdfOptions, type RenderedPdfAttachmentRef, type RenderedTemplateRef, type RendererContext, RendererError, type RendererPlugin, type RendererRegistrationPlugin, type RenderProvenance, type RenderRequest, type RenderResponse, } from "./types.ts";
@@ -1,8 +1,8 @@
1
1
  import type { DbRunner, TenantDb } from "@cosmicdrift/kumiko-framework/db";
2
2
  import type { ConfigAccessor, Registry, TenantId } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import type { FileContext } from "@cosmicdrift/kumiko-framework/files";
4
- import type { LinkedResourceEntry, MailTemplateMeta, PdfPageFormat, PdfTemplateMeta, TemplateScope } from "../template-resolver/index.js";
5
- import { type ContentFormat, RENDERER_EXTENSION, type RenderKind } from "./constants.js";
4
+ import type { LinkedResourceEntry, MailTemplateMeta, PdfPageFormat, PdfTemplateMeta, TemplateScope } from "../template-resolver/index.ts";
5
+ import { type ContentFormat, RENDERER_EXTENSION, type RenderKind } from "./constants.ts";
6
6
  export type RenderRequest = {
7
7
  kind: "mail";
8
8
  payload: MailPayload;
@@ -142,12 +142,34 @@ export type RendererContext = {
142
142
  /** Only plugins that embed resource bytes (PDF) need it; without it images are dropped. */
143
143
  readonly filesForTenant?: (tenantId: string) => FileContext | undefined;
144
144
  };
145
+ export type MailChromeLink = {
146
+ readonly label: string;
147
+ readonly url: string;
148
+ };
149
+ /** The tenant's mail look with every text resolved for one locale, for pages a
150
+ * recipient reaches from a mail link. URLs are http(s) only, the logo https only,
151
+ * the accent color a #rrggbb hex. */
152
+ export type MailChrome = {
153
+ readonly tenantName: string;
154
+ readonly brandSuffix: string;
155
+ readonly logoUrl?: string;
156
+ readonly accentColor?: string;
157
+ readonly siteUrl?: string;
158
+ readonly footerText?: string;
159
+ readonly imprint?: MailChromeLink;
160
+ readonly privacy?: MailChromeLink;
161
+ };
162
+ export type MailChromeRequest = {
163
+ readonly locale: string;
164
+ };
145
165
  export type RendererPlugin = {
146
166
  readonly name: string;
147
167
  readonly kinds: ReadonlyArray<RenderKind>;
148
168
  render(req: RenderRequest, ctx: RendererContext): Promise<RenderResponse>;
149
169
  /** Optional: plugins that print documents offer a preview that never reaches the print service. */
150
170
  previewDocument?(req: DocumentPreviewRequest, ctx: RendererContext): Promise<DocumentPreview>;
171
+ /** Optional: mail plugins hand out their brand row and footer for pages outside a mail. */
172
+ readMailChrome?(req: MailChromeRequest, ctx: RendererContext): Promise<MailChrome>;
151
173
  };
152
174
  export declare class RendererError extends Error {
153
175
  readonly code: "no_plugin_for_kind" | "invalid_payload" | "unavailable" | "other";
@@ -1,4 +1,4 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type RenderRequest, type RenderResponse } from "../renderer-foundation/index.js";
2
+ import { type RenderRequest, type RenderResponse } from "../renderer-foundation/index.ts";
3
3
  export declare function renderTablePdfRequest(req: RenderRequest): Promise<RenderResponse>;
4
4
  export declare function createRendererPdfFeature(): FeatureDefinition;
@@ -1,2 +1,2 @@
1
- export { createRendererPdfFeature } from "./feature.js";
2
- export { type PdfTableColumn, type PdfTableDocument, type PdfTableOptions, type PdfTableResult, pdfTableDocumentSchema, renderTablePdf, } from "./render-table-pdf.js";
1
+ export { createRendererPdfFeature } from "./feature.ts";
2
+ export { type PdfTableColumn, type PdfTableDocument, type PdfTableOptions, type PdfTableResult, pdfTableDocumentSchema, renderTablePdf, } from "./render-table-pdf.ts";
@@ -1,5 +1,5 @@
1
1
  import * as z from "zod";
2
- import type { PdfPageFormat } from "../template-resolver/index.js";
2
+ import type { PdfPageFormat } from "../template-resolver/index.ts";
3
3
  declare const pdfTableColumnSchema: z.ZodReadonly<z.ZodObject<{
4
4
  header: z.ZodString;
5
5
  weight: z.ZodOptional<z.ZodNumber>;
@@ -6,4 +6,11 @@ export declare const SECRETS_ERROR_KEYS: {
6
6
  readonly writeDenied: "secrets.errors.writeDenied";
7
7
  readonly invalidValue: "secrets.errors.invalidValue";
8
8
  };
9
+ export declare const SecretsHandlers: {
10
+ readonly set: "secrets:write:set";
11
+ readonly delete: "secrets:write:delete";
12
+ };
13
+ export declare const SecretsQueries: {
14
+ readonly list: "secrets:query:list";
15
+ };
9
16
  export declare const INVALID_SECRET_VALUE_CODE: "invalid_secret_value";
@@ -14,4 +14,11 @@ export const SECRETS_ERROR_KEYS = {
14
14
  writeDenied: "secrets.errors.writeDenied",
15
15
  invalidValue: "secrets.errors.invalidValue",
16
16
  };
17
+ export const SecretsHandlers = {
18
+ set: "secrets:write:set",
19
+ delete: "secrets:write:delete",
20
+ };
21
+ export const SecretsQueries = {
22
+ list: "secrets:query:list",
23
+ };
17
24
  export const INVALID_SECRET_VALUE_CODE = "invalid_secret_value";
@@ -1,4 +1,4 @@
1
1
  import type { DbRunner } from "@cosmicdrift/kumiko-framework/db";
2
2
  import type { TenantId } from "@cosmicdrift/kumiko-framework/engine";
3
- import type { StoredEnvelope } from "../../table.js";
3
+ import type { StoredEnvelope } from "../../table.ts";
4
4
  export declare function selectTenantSecretEnvelope(db: DbRunner, tenantId: TenantId, key: string): Promise<StoredEnvelope | undefined>;
@@ -1,4 +1,5 @@
1
1
  import { type AccessRule, type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
+ import { type FeatureWithEnvSchema } from "@cosmicdrift/kumiko-framework/env";
2
3
  import type { SecretsContext } from "@cosmicdrift/kumiko-framework/secrets";
3
4
  import * as z from "zod";
4
5
  /**
@@ -20,8 +21,8 @@ export declare const secretsEnvSchema: z.ZodObject<{
20
21
  KUMIKO_SECRETS_MASTER_KEY_V1: z.ZodString;
21
22
  KUMIKO_SECRETS_MASTER_KEY_CURRENT_VERSION: z.ZodDefault<z.ZodString>;
22
23
  }, z.core.$strip>;
23
- export { createSecretsContext, type SecretsContext, type SecretsContextOptions, TENANT_SECRET_READ_EVENT, } from "./secrets-context.js";
24
- export { type StoredEnvelope, type StoredMetadata, tenantSecretsTable } from "./table.js";
24
+ export { createSecretsContext, type SecretsContext, type SecretsContextOptions, TENANT_SECRET_READ_EVENT, } from "./secrets-context.ts";
25
+ export { type StoredEnvelope, type StoredMetadata, tenantSecretsTable } from "./table.ts";
25
26
  export declare const JOIN_REQUEST_TRANSACTION_REASON = "the secret write runs on the request transaction so a failing batch rolls it back together with the config writes";
26
27
  export declare function requireSecretsContext(ctx: {
27
28
  readonly secrets?: SecretsContext;
@@ -43,4 +44,4 @@ export type SecretsFeatureOptions = {
43
44
  /** Shorthand for { access: { roles } }. Mutually exclusive with `access`. */
44
45
  readonly roles?: readonly string[];
45
46
  };
46
- export declare function createSecretsFeature(opts?: SecretsFeatureOptions): FeatureDefinition;
47
+ export declare function createSecretsFeature(opts?: SecretsFeatureOptions): FeatureWithEnvSchema<FeatureDefinition, typeof secretsEnvSchema.shape>;
@@ -1,4 +1,5 @@
1
1
  import { defineFeature, SYSTEM_ROLE, } from "@cosmicdrift/kumiko-framework/engine";
2
+ import { featureWithEnvSchema } from "@cosmicdrift/kumiko-framework/env";
2
3
  import { InternalError } from "@cosmicdrift/kumiko-framework/errors";
3
4
  import { SETTINGS_HUB_I18N } from "@cosmicdrift/kumiko-framework/i18n";
4
5
  import * as z from "zod";
@@ -104,8 +105,8 @@ function withSystemWriter(rule) {
104
105
  export function createSecretsFeature(opts = {}) {
105
106
  const access = resolveSecretsAccess(opts);
106
107
  const writeAccess = withSystemWriter(access);
107
- return defineFeature(SECRETS_FEATURE_NAME, (r) => {
108
- r.describe('Stores arbitrary per-tenant secrets (API keys, tokens, credentials) encrypted at rest using AES-256 with a KEK loaded from `KUMIKO_SECRETS_MASTER_KEY_V1` (and successive versions for rotation). Read a secret in handlers via `ctx.secrets.get(tenantId, handle)`, which automatically appends a `tenantSecretRead` audit event so every access is traceable. A `rotate` job re-encrypts all envelopes after a KEK version bump. The `set`/`delete`/`list` handlers share one access rule — default { roles: ["TenantAdmin"] }; adopt the host\'s role vocabulary with createSecretsFeature({ roles }) or open it to every authenticated tenant user with { access: { openToAll: { reason } } } (larger blast radius: any tenant member can then read secret previews and write/delete secrets, not just admins). Server-side code writes a tenant secret with `dispatchSystemWrite({ handlerQn: "secrets:write:set", payload, tenantId })`: set and delete also admit the in-process system identity, so such writes pass the same declared-key and value checks.');
108
+ const feature = defineFeature(SECRETS_FEATURE_NAME, (r) => {
109
+ r.describe('Stores arbitrary per-tenant secrets (API keys, tokens, credentials) encrypted at rest using AES-256 with a KEK loaded from `KUMIKO_SECRETS_MASTER_KEY_V1` (and successive versions for rotation). Read a secret in handlers via `ctx.secrets.get(tenantId, handle)`, which automatically appends a `tenantSecretRead` audit event so every access is traceable. A `rotate` job re-encrypts all envelopes after a KEK version bump. The `set`/`delete`/`list` handlers share one access rule — default { roles: ["TenantAdmin"] }; adopt the host\'s role vocabulary with createSecretsFeature({ roles }) or open it to every authenticated tenant user with { access: { openToAll: { reason } } } (larger blast radius: any tenant member can then read secret previews and write/delete secrets, not just admins). Server-side code writes a tenant secret with `dispatchSystemWrite({ handlerQn: SecretsHandlers.set, payload, tenantId })`: set and delete also admit the in-process system identity, so such writes pass the same declared-key and value checks.');
109
110
  r.uiHints({
110
111
  displayLabel: "Tenant Secrets",
111
112
  category: "infrastructure",
@@ -161,4 +162,5 @@ export function createSecretsFeature(opts = {}) {
161
162
  // ops-tool (see docs/plans/architecture/event-dispatcher.md §retention).
162
163
  // No per-feature retention-job anymore.
163
164
  });
165
+ return featureWithEnvSchema(feature, secretsEnvSchema);
164
166
  }
@@ -2,7 +2,7 @@ import { defineWriteHandler } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import { failNotFound } from "@cosmicdrift/kumiko-framework/errors";
3
3
  import * as z from "zod";
4
4
  import { announceSecretChange } from "../announce-secret-change.js";
5
- import { DEFAULT_SECRETS_ACCESS } from "../constants.js";
5
+ import { DEFAULT_SECRETS_ACCESS, SecretsHandlers } from "../constants.js";
6
6
  import { JOIN_REQUEST_TRANSACTION_REASON, requireSecretsContext } from "../feature.js";
7
7
  import { checkSecretKeyWrite } from "../write-gate.js";
8
8
  export function createDeleteHandler(access = DEFAULT_SECRETS_ACCESS) {
@@ -16,7 +16,7 @@ export function createDeleteHandler(access = DEFAULT_SECRETS_ACCESS) {
16
16
  access,
17
17
  escapeHatch: { grants: ["unsafeRaw"], reason: JOIN_REQUEST_TRANSACTION_REASON },
18
18
  handler: async (event, ctx) => {
19
- const secrets = requireSecretsContext(ctx, "secrets:write:delete").withRunner(ctx.db.unsafeRaw());
19
+ const secrets = requireSecretsContext(ctx, SecretsHandlers.delete).withRunner(ctx.db.unsafeRaw());
20
20
  const gate = checkSecretKeyWrite(ctx.registry, event.user.roles, event.payload.key, {
21
21
  allowUndeclared: true,
22
22
  });
@@ -1,6 +1,6 @@
1
1
  import { type DbConnection } from "@cosmicdrift/kumiko-framework/db";
2
2
  import type { JobContext } from "@cosmicdrift/kumiko-framework/engine";
3
- import { type ChunkedMigrationStopReason } from "../../shared/index.js";
3
+ import { type ChunkedMigrationStopReason } from "../../shared/index.ts";
4
4
  export type RotateJobPayload = {
5
5
  readonly batchSize?: number;
6
6
  readonly maxDurationMs?: number;
@@ -1,7 +1,7 @@
1
1
  import { defineWriteHandler } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
3
  import { announceSecretChange } from "../announce-secret-change.js";
4
- import { DEFAULT_SECRETS_ACCESS } from "../constants.js";
4
+ import { DEFAULT_SECRETS_ACCESS, SecretsHandlers } from "../constants.js";
5
5
  import { JOIN_REQUEST_TRANSACTION_REASON, requireSecretsContext } from "../feature.js";
6
6
  import { checkSecretKeyWrite, checkSecretValue } from "../write-gate.js";
7
7
  export function createSetHandler(access = DEFAULT_SECRETS_ACCESS) {
@@ -23,7 +23,7 @@ export function createSetHandler(access = DEFAULT_SECRETS_ACCESS) {
23
23
  access,
24
24
  escapeHatch: { grants: ["unsafeRaw"], reason: JOIN_REQUEST_TRANSACTION_REASON },
25
25
  handler: async (event, ctx) => {
26
- const secrets = requireSecretsContext(ctx, "secrets:write:set").withRunner(ctx.db.unsafeRaw());
26
+ const secrets = requireSecretsContext(ctx, SecretsHandlers.set).withRunner(ctx.db.unsafeRaw());
27
27
  const { key, value, redactedPreview, hint } = event.payload;
28
28
  // Preview-priority: explicit payload param > feature-declared redact
29
29
  // (via r.secret()) > generic default. A feature that declared a
@@ -1,7 +1,7 @@
1
- export { DEFAULT_SECRETS_ACCESS, DEFAULT_SECRETS_ROLES, INVALID_SECRET_VALUE_CODE, SECRETS_ERROR_KEYS, } from "./constants.js";
2
- export { createSecretsContext, createSecretsFeature, requireSecretsContext, SECRETS_FEATURE_NAME, SECRETS_MASTER_KEK_ENV_KEYS, type SecretsContext, type SecretsContextOptions, type SecretsFeatureOptions, type StoredEnvelope, type StoredMetadata, secretsEnvSchema, TENANT_SECRET_READ_EVENT, tenantSecretsTable, } from "./feature.js";
3
- export { createDeleteHandler } from "./handlers/delete.write.js";
4
- export { createListHandler } from "./handlers/list.query.js";
5
- export { type RotateJobPayload, type RotateJobResult, rotateJob, } from "./handlers/rotate.job.js";
6
- export { createSetHandler } from "./handlers/set.write.js";
7
- export { isInvalidSecretValueError } from "./write-gate.js";
1
+ export { DEFAULT_SECRETS_ACCESS, DEFAULT_SECRETS_ROLES, INVALID_SECRET_VALUE_CODE, SECRETS_ERROR_KEYS, SecretsHandlers, SecretsQueries, } from "./constants.ts";
2
+ export { createSecretsContext, createSecretsFeature, requireSecretsContext, SECRETS_FEATURE_NAME, SECRETS_MASTER_KEK_ENV_KEYS, type SecretsContext, type SecretsContextOptions, type SecretsFeatureOptions, type StoredEnvelope, type StoredMetadata, secretsEnvSchema, TENANT_SECRET_READ_EVENT, tenantSecretsTable, } from "./feature.ts";
3
+ export { createDeleteHandler } from "./handlers/delete.write.ts";
4
+ export { createListHandler } from "./handlers/list.query.ts";
5
+ export { type RotateJobPayload, type RotateJobResult, rotateJob, } from "./handlers/rotate.job.ts";
6
+ export { createSetHandler } from "./handlers/set.write.ts";
7
+ export { isInvalidSecretValueError } from "./write-gate.ts";
@@ -1,4 +1,4 @@
1
- export { DEFAULT_SECRETS_ACCESS, DEFAULT_SECRETS_ROLES, INVALID_SECRET_VALUE_CODE, SECRETS_ERROR_KEYS, } from "./constants.js";
1
+ export { DEFAULT_SECRETS_ACCESS, DEFAULT_SECRETS_ROLES, INVALID_SECRET_VALUE_CODE, SECRETS_ERROR_KEYS, SecretsHandlers, SecretsQueries, } from "./constants.js";
2
2
  export { createSecretsContext, createSecretsFeature, requireSecretsContext, SECRETS_FEATURE_NAME, SECRETS_MASTER_KEK_ENV_KEYS, secretsEnvSchema, TENANT_SECRET_READ_EVENT, tenantSecretsTable, } from "./feature.js";
3
3
  export { createDeleteHandler } from "./handlers/delete.write.js";
4
4
  export { createListHandler } from "./handlers/list.query.js";
@@ -1,7 +1,7 @@
1
1
  import { type DbConnection } from "@cosmicdrift/kumiko-framework/db";
2
2
  import { type DekCache, type MasterKeyProvider, type SecretsContext } from "@cosmicdrift/kumiko-framework/secrets";
3
3
  import * as z from "zod";
4
- import { type SecretValueSchemaSource } from "./write-gate.js";
4
+ import { type SecretValueSchemaSource } from "./write-gate.ts";
5
5
  export type { Secret, SecretsContext } from "@cosmicdrift/kumiko-framework/secrets";
6
6
  export type SecretsContextOptions = {
7
7
  readonly db: DbConnection;
@@ -1,7 +1,7 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import { SEO_DEFAULT_PATHS } from "./constants.js";
3
- import { type RobotsPolicy } from "./robots-txt.js";
4
- import { type SitemapEntry } from "./sitemap.js";
2
+ import { SEO_DEFAULT_PATHS } from "./constants.ts";
3
+ import { type RobotsPolicy } from "./robots-txt.ts";
4
+ import { type SitemapEntry } from "./sitemap.ts";
5
5
  export type ManagedPagesDiscoveryOptions = {
6
6
  /** Same per-host tenant resolver the app already passes to
7
7
  * createManagedPagesFeature — needed to X-Tenant-scope the anonymous
@@ -1,6 +1,6 @@
1
- export { SEO_CONFIG_KEYS, SEO_CONFIG_QN, SEO_DEFAULT_PATHS, SEO_FEATURE } from "./constants.js";
2
- export { createSeoFeature, type ManagedPagesDiscoveryOptions, runSeoBootCheck, type SeoBootCheckCtx, type SeoOptions, } from "./feature.js";
3
- export { buildLlmsTxt, type LlmsTxtInput, type LlmsTxtLink, type LlmsTxtSection, } from "./llms-txt.js";
4
- export { buildRobotsTxt, type RobotsPolicy } from "./robots-txt.js";
5
- export { type FaqItem, faqPageSchema, type OrganizationSchemaInput, organizationSchema, type WebPageSchemaInput, webPageSchema, } from "./schema-builders.js";
6
- export { buildSitemapXml, type SitemapEntry } from "./sitemap.js";
1
+ export { SEO_CONFIG_KEYS, SEO_CONFIG_QN, SEO_DEFAULT_PATHS, SEO_FEATURE } from "./constants.ts";
2
+ export { createSeoFeature, type ManagedPagesDiscoveryOptions, runSeoBootCheck, type SeoBootCheckCtx, type SeoOptions, } from "./feature.ts";
3
+ export { buildLlmsTxt, type LlmsTxtInput, type LlmsTxtLink, type LlmsTxtSection, } from "./llms-txt.ts";
4
+ export { buildRobotsTxt, type RobotsPolicy } from "./robots-txt.ts";
5
+ export { type FaqItem, faqPageSchema, type OrganizationSchemaInput, organizationSchema, type WebPageSchemaInput, webPageSchema, } from "./schema-builders.ts";
6
+ export { buildSitemapXml, type SitemapEntry } from "./sitemap.ts";
@@ -1,5 +1,5 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
- import { type SessionAllOthersRevoker, type SessionMassRevoker } from "./session-callbacks.js";
2
+ import { type SessionAllOthersRevoker, type SessionMassRevoker } from "./session-callbacks.ts";
3
3
  export type SessionsFeatureOptions = {
4
4
  readonly autoRevokeOnPasswordChange?: SessionMassRevoker;
5
5
  readonly expiresInMs?: number;
@@ -1,8 +1,8 @@
1
- export { DEFAULT_SESSION_CACHE_TTL_MS, DEFAULT_SESSION_EXPIRY_MS, SESSION_MINE_SCREEN_ID, SESSIONS_FEATURE, SessionErrors, SessionHandlers, SessionQueries, } from "./constants.js";
2
- export type { BindAutoRevokeOnPasswordChange, SessionsFeatureOptions } from "./feature.js";
3
- export { bindAutoRevokeFromFeature, createSessionsFeature } from "./feature.js";
4
- export { userSessionEntity, userSessionTable } from "./schema/user-session.js";
5
- export type { SessionCallbacks, SessionCallbacksOptions, SessionMassRevoker, } from "./session-callbacks.js";
6
- export { createSessionCallbacks, isPrincipalBlocked } from "./session-callbacks.js";
7
- export type { SessionRevokedPayload } from "./session-revoked-event.js";
8
- export { SESSION_REVOKED_AGGREGATE_TYPE, SESSION_REVOKED_EVENT_QN, SESSION_REVOKED_EVENT_SHORT, sessionRevokedSchema, } from "./session-revoked-event.js";
1
+ export { DEFAULT_SESSION_CACHE_TTL_MS, DEFAULT_SESSION_EXPIRY_MS, SESSION_MINE_SCREEN_ID, SESSIONS_FEATURE, SessionErrors, SessionHandlers, SessionQueries, } from "./constants.ts";
2
+ export type { BindAutoRevokeOnPasswordChange, SessionsFeatureOptions } from "./feature.ts";
3
+ export { bindAutoRevokeFromFeature, createSessionsFeature } from "./feature.ts";
4
+ export { userSessionEntity, userSessionTable } from "./schema/user-session.ts";
5
+ export type { SessionCallbacks, SessionCallbacksOptions, SessionMassRevoker, } from "./session-callbacks.ts";
6
+ export { createSessionCallbacks, isPrincipalBlocked } from "./session-callbacks.ts";
7
+ export type { SessionRevokedPayload } from "./session-revoked-event.ts";
8
+ export { SESSION_REVOKED_AGGREGATE_TYPE, SESSION_REVOKED_EVENT_QN, SESSION_REVOKED_EVENT_SHORT, sessionRevokedSchema, } from "./session-revoked-event.ts";
@@ -1,7 +1,7 @@
1
1
  import type { SessionChecker, SessionCreator, SessionMassRevoker, SessionRevoker } from "@cosmicdrift/kumiko-framework/api";
2
2
  export type { SessionMassRevoker } from "@cosmicdrift/kumiko-framework/api";
3
3
  import type { DbConnection } from "@cosmicdrift/kumiko-framework/db";
4
- import { isPrincipalBlocked } from "../user/index.js";
4
+ import { isPrincipalBlocked } from "../user/index.ts";
5
5
  export { isPrincipalBlocked };
6
6
  export type SessionAllOthersRevoker = (userId: string, currentSid: string | undefined) => Promise<number>;
7
7
  export type SessionCallbacksOptions = {
@@ -1,7 +1,7 @@
1
1
  import type { AuthRoutesConfig, SessionCreator } from "@cosmicdrift/kumiko-framework/api";
2
2
  import type { SessionUser } from "@cosmicdrift/kumiko-framework/engine";
3
3
  import type { LateBoundHolder } from "@cosmicdrift/kumiko-testing/helpers";
4
- import type { SessionCallbacks, SessionMassRevoker } from "./session-callbacks.js";
4
+ import type { SessionCallbacks, SessionMassRevoker } from "./session-callbacks.ts";
5
5
  export type BoundSessionCallbacks = {
6
6
  /** auth-config fragment: creator + revoker + checker, all late-bound. */
7
7
  asAuthConfig(): Pick<AuthRoutesConfig, "sessionCreator" | "sessionRevoker" | "sessionChecker">;
@@ -1,31 +1,31 @@
1
- export { collectErasureFailure, throwIfErasureFailed } from "./assert-erased.js";
2
- export { assertNoWhereRuleInOwnershipWrite } from "./assert-no-where-rule-in-ownership-write.js";
3
- export { attachmentFileNameSchema, sanitizePdfAttachmentFileName, } from "./attachment-file-name.js";
4
- export { type ChunkedMigrationOptions, type ChunkedMigrationResult, type ChunkedMigrationStopReason, type MigrationRowOutcome, runChunkedMigration, } from "./chunked-entity-migration.js";
5
- export { classifyStoredEnvelope, type StoredEnvelopeClassification, } from "./classify-stored-envelope.js";
6
- export { decryptStoredPii } from "./decrypt-stored-pii.js";
7
- export { encryptForDirectWrite } from "./encrypt-for-direct-write.js";
8
- export { entitiesOf } from "./entities-of.js";
9
- export { isWithinGracePeriod } from "./grace-period.js";
10
- export { isIdentityV3Hash, verifyIdentityV3Hash } from "./identity-v3-hash.js";
11
- export { isTenantDb } from "./is-tenant-db.js";
12
- export { createLockoutCounter, type LockoutCounterState } from "./lockout-counter.js";
13
- export { mailHeading, mailParagraph, mailRepeatedRows } from "./mail-template-body.js";
14
- export { mapWithConcurrency } from "./map-with-concurrency.js";
15
- export { denyUnlessJoinRowParentVisible, hostRowIsGone, joinRowParentIsVisible, parentRowIsVisible, } from "./parent-visibility.js";
16
- export { hashPassword, verifyDummyPassword, verifyPassword } from "./password-hashing.js";
17
- export { rateLimitedTextResponse } from "./rate-limited-text-response.js";
18
- export { redactBotTokens, redactEmailAddresses, redactErrorText, redactUrls, } from "./redact.js";
19
- export { REDACTED_PII_PLACEHOLDER, redactPiiCiphertext } from "./redact-pii-ciphertext.js";
20
- export { requireForTenant } from "./require-for-tenant.js";
21
- export { extensionForResourceContentType, isResourceImageContentType, isResourceImageFormat, RESOURCE_IMAGE_FORMATS, type ResourceImageContentType, type ResourceImageFormat, } from "./resource-image-formats.js";
22
- export { type RowBoundGrantResult, redeemRowBoundGrant, signRowBoundGrant, } from "./row-bound-grant.js";
23
- export { runInSubTransaction } from "./run-in-sub-transaction.js";
24
- export { registrationLocaleFromRequest, sessionLocaleField } from "./session-locale-field.js";
25
- export { sessionTimezoneField } from "./session-timezone-field.js";
26
- export { assertNotSvg, MAX_INPUT_PIXELS, SHARP_INPUT_OPTIONS } from "./sharp-input-limits.js";
27
- export { peekTokenSubject, signToken, TokenPurpose, type VerifyResult, verifyToken, } from "./signed-token.js";
28
- export { EXT_SIGNUP_HANDOVER, findSignupHandoverProvider, isSignupHandoverProvider, SIGNUP_HANDOVER_BENIGN_CLAIM_REJECTION_CODE, type SignupHandoverBinding, type SignupHandoverProvider, } from "./signup-handover.js";
29
- export { createSingleUseTokenStore, hashSingleUseToken } from "./single-use-token-store.js";
30
- export type { SystemQueryFn } from "./system-query.js";
31
- export { type BurnResult, burnToken, unburnToken } from "./token-burn-store.js";
1
+ export { collectErasureFailure, throwIfErasureFailed } from "./assert-erased.ts";
2
+ export { assertNoWhereRuleInOwnershipWrite } from "./assert-no-where-rule-in-ownership-write.ts";
3
+ export { attachmentFileNameSchema, sanitizePdfAttachmentFileName, } from "./attachment-file-name.ts";
4
+ export { type ChunkedMigrationOptions, type ChunkedMigrationResult, type ChunkedMigrationStopReason, type MigrationRowOutcome, runChunkedMigration, } from "./chunked-entity-migration.ts";
5
+ export { classifyStoredEnvelope, type StoredEnvelopeClassification, } from "./classify-stored-envelope.ts";
6
+ export { decryptStoredPii } from "./decrypt-stored-pii.ts";
7
+ export { encryptForDirectWrite } from "./encrypt-for-direct-write.ts";
8
+ export { entitiesOf } from "./entities-of.ts";
9
+ export { isWithinGracePeriod } from "./grace-period.ts";
10
+ export { isIdentityV3Hash, verifyIdentityV3Hash } from "./identity-v3-hash.ts";
11
+ export { isTenantDb } from "./is-tenant-db.ts";
12
+ export { createLockoutCounter, type LockoutCounterState } from "./lockout-counter.ts";
13
+ export { mailHeading, mailParagraph, mailRepeatedRows } from "./mail-template-body.ts";
14
+ export { mapWithConcurrency } from "./map-with-concurrency.ts";
15
+ export { denyUnlessJoinRowParentVisible, hostRowIsGone, joinRowParentIsVisible, parentRowIsVisible, } from "./parent-visibility.ts";
16
+ export { hashPassword, verifyDummyPassword, verifyPassword } from "./password-hashing.ts";
17
+ export { rateLimitedTextResponse } from "./rate-limited-text-response.ts";
18
+ export { redactBotTokens, redactEmailAddresses, redactErrorText, redactUrls, } from "./redact.ts";
19
+ export { REDACTED_PII_PLACEHOLDER, redactPiiCiphertext } from "./redact-pii-ciphertext.ts";
20
+ export { requireForTenant } from "./require-for-tenant.ts";
21
+ export { extensionForResourceContentType, isResourceImageContentType, isResourceImageFormat, RESOURCE_IMAGE_FORMATS, type ResourceImageContentType, type ResourceImageFormat, } from "./resource-image-formats.ts";
22
+ export { type RowBoundGrantResult, redeemRowBoundGrant, signRowBoundGrant, } from "./row-bound-grant.ts";
23
+ export { runInSubTransaction } from "./run-in-sub-transaction.ts";
24
+ export { registrationLocaleFromRequest, sessionLocaleField } from "./session-locale-field.ts";
25
+ export { sessionTimezoneField } from "./session-timezone-field.ts";
26
+ export { assertNotSvg, MAX_INPUT_PIXELS, SHARP_INPUT_OPTIONS } from "./sharp-input-limits.ts";
27
+ export { peekTokenSubject, signToken, TokenPurpose, type VerifyResult, verifyToken, } from "./signed-token.ts";
28
+ export { EXT_SIGNUP_HANDOVER, findSignupHandoverProvider, isSignupHandoverProvider, SIGNUP_HANDOVER_BENIGN_CLAIM_REJECTION_CODE, type SignupHandoverBinding, type SignupHandoverProvider, } from "./signup-handover.ts";
29
+ export { createSingleUseTokenStore, hashSingleUseToken } from "./single-use-token-store.ts";
30
+ export type { SystemQueryFn } from "./system-query.ts";
31
+ export { type BurnResult, burnToken, unburnToken } from "./token-burn-store.ts";
@@ -1,6 +1,6 @@
1
1
  import * as z from "zod";
2
- import { type MailSpec } from "./mail-runner.js";
3
- import { type WebhookSpec } from "./webhook-runner.js";
2
+ import { type MailSpec } from "./mail-runner.ts";
3
+ import { type WebhookSpec } from "./webhook-runner.ts";
4
4
  export declare const dispatchRequestedPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5
5
  stepKind: z.ZodLiteral<"webhook.send">;
6
6
  url: z.ZodString;
@@ -1,3 +1,3 @@
1
- export { createStepDispatcherFeature, STEP_DISPATCH_AGGREGATE_TYPE, stepDispatcherEnvSchema, } from "./feature.js";
2
- export { type MailDispatchResult, type MailSpec, mailSpecSchema, performMailDispatch, setMailRunner, } from "./mail-runner.js";
3
- export { performWebhookDispatch, readAllowedPrivateWebhookHostsFromEnv, setWebhookFetch, setWebhookHostLookup, WEBHOOK_ALLOWED_PRIVATE_HOSTS_ENV_VAR, WEBHOOK_AUTH_SECRET_KEY_PREFIX, type WebhookDispatchDeps, type WebhookDispatchResult, type WebhookSpec, webhookAuthSecretKey, webhookSpecSchema, } from "./webhook-runner.js";
1
+ export { createStepDispatcherFeature, STEP_DISPATCH_AGGREGATE_TYPE, stepDispatcherEnvSchema, } from "./feature.ts";
2
+ export { type MailDispatchResult, type MailSpec, mailSpecSchema, performMailDispatch, setMailRunner, } from "./mail-runner.ts";
3
+ export { performWebhookDispatch, readAllowedPrivateWebhookHostsFromEnv, setWebhookFetch, setWebhookHostLookup, WEBHOOK_ALLOWED_PRIVATE_HOSTS_ENV_VAR, WEBHOOK_AUTH_SECRET_KEY_PREFIX, type WebhookDispatchDeps, type WebhookDispatchResult, type WebhookSpec, webhookAuthSecretKey, webhookSpecSchema, } from "./webhook-runner.ts";
@@ -1,7 +1,7 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
2
  import * as z from "zod";
3
- import { type MolliePriceConfig } from "./plugin-methods.js";
4
- import { type MollieClientShape } from "./verify-webhook.js";
3
+ import { type MolliePriceConfig } from "./plugin-methods.ts";
4
+ import { type MollieClientShape } from "./verify-webhook.ts";
5
5
  /**
6
6
  * Env-vars contract for the `subscription-mollie` feature.
7
7
  * Apps load `MOLLIE_API_KEY` from env and forward it to
@@ -1,3 +1,3 @@
1
- export { MOLLIE_PROVIDER_NAME, SUBSCRIPTION_MOLLIE_FEATURE } from "./constants.js";
2
- export { createSubscriptionMollieFeature, type SubscriptionMollieOptions, subscriptionMollieEnvSchema, } from "./feature.js";
3
- export type { MolliePriceConfig } from "./plugin-methods.js";
1
+ export { MOLLIE_PROVIDER_NAME, SUBSCRIPTION_MOLLIE_FEATURE } from "./constants.ts";
2
+ export { createSubscriptionMollieFeature, type SubscriptionMollieOptions, subscriptionMollieEnvSchema, } from "./feature.ts";
3
+ export type { MolliePriceConfig } from "./plugin-methods.ts";
@@ -1,6 +1,6 @@
1
1
  import { type SubscriptionEvent, type SubscriptionEventType, type SubscriptionStatus } from "@cosmicdrift/kumiko-bundled-features/billing-foundation";
2
2
  import type { Payment as MolliePayment, Subscription as MollieSubscription } from "@mollie/api-client";
3
- import type { MolliePriceConfig } from "./plugin-methods.js";
3
+ import type { MolliePriceConfig } from "./plugin-methods.ts";
4
4
  /** Minimal-Subset des Mollie-Clients, das der Plugin nutzt — separat
5
5
  * damit Tests ohne den vollen MollieClient mocken können. Adapter in
6
6
  * feature.ts bridged das gegen den echten SDK. */
@@ -1,4 +1,5 @@
1
1
  import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
2
+ import { type FeatureWithEnvSchema } from "@cosmicdrift/kumiko-framework/env";
2
3
  import * as z from "zod";
3
4
  /**
4
5
  * Env-vars contract for the `subscription-stripe` feature — now a **bridge
@@ -12,6 +13,20 @@ export declare const subscriptionStripeEnvSchema: z.ZodObject<{
12
13
  STRIPE_WEBHOOK_SECRET: z.ZodOptional<z.ZodString>;
13
14
  STRIPE_API_KEY: z.ZodOptional<z.ZodString>;
14
15
  }, z.core.$strip>;
16
+ type StripePriceEnvShape<TPrice extends string> = {
17
+ [Key in `STRIPE_PRICE_${TPrice}`]: z.ZodOptional<z.ZodString>;
18
+ };
19
+ /** Stripe env block plus one `STRIPE_PRICE_<NAME>` slot per price the app
20
+ * maps to a tier, e.g. `stripeEnvSchema({ prices: ["PRO", "TEAM"] })`.
21
+ * Shares its bridge fields with `subscriptionStripeEnvSchema`, so spreading
22
+ * it into `composeEnvSchema({ extend })` next to the mounted feature is no
23
+ * key clash. */
24
+ export declare function stripeEnvSchema<const TPrice extends string>(options: {
25
+ readonly prices: readonly TPrice[];
26
+ }): z.ZodObject<{
27
+ STRIPE_WEBHOOK_SECRET: z.ZodOptional<z.ZodString>;
28
+ STRIPE_API_KEY: z.ZodOptional<z.ZodString>;
29
+ } & StripePriceEnvShape<TPrice> extends infer T ? { -readonly [P in keyof T]: T[P]; } : never, z.core.$strip>;
15
30
  export type SubscriptionStripeOptions = {
16
31
  /** Bridge-fallback webhook-secret. Optional: v2 liest aus dem
17
32
  * `subscription-stripe:config:webhook-secret`-Key (backing:"secrets").
@@ -47,4 +62,5 @@ export type SubscriptionStripeOptions = {
47
62
  * registriert den Plugin gegen billing-foundation's "subscriptionProvider"-
48
63
  * extension unter entityName "stripe".
49
64
  */
50
- export declare function createSubscriptionStripeFeature(options?: SubscriptionStripeOptions): FeatureDefinition;
65
+ export declare function createSubscriptionStripeFeature(options?: SubscriptionStripeOptions): FeatureWithEnvSchema<FeatureDefinition, typeof subscriptionStripeEnvSchema.shape>;
66
+ export {};