@cosmicdrift/kumiko-bundled-features 0.377.0 → 0.379.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-security/feature.js +2 -2
- package/dist/account-security/index.d.ts +2 -2
- package/dist/account-security/index.js +2 -2
- package/dist/account-security/{constants.js → web/constants.js} +0 -1
- package/dist/account-security/{i18n.js → web/i18n.js} +0 -1
- package/dist/admin-shell/feature.js +4 -3
- package/dist/admin-shell/index.d.ts +2 -2
- package/dist/admin-shell/index.js +2 -2
- package/dist/admin-shell/web/client-plugin.js +2 -3
- package/dist/admin-shell/{constants.js → web/constants.js} +0 -1
- package/dist/admin-shell/web/default-translations.d.ts +2 -0
- package/dist/admin-shell/web/default-translations.js +4 -0
- package/dist/admin-shell/web/i18n.d.ts +5 -2
- package/dist/admin-shell/web/i18n.js +50 -5
- package/dist/admin-shell/web/index.js +0 -1
- package/dist/audit/feature.js +58 -59
- package/dist/audit/handlers/audit-events.d.ts +102 -0
- package/dist/audit/handlers/audit-events.js +112 -0
- package/dist/audit/handlers/audit-system-db.d.ts +1 -0
- package/dist/audit/handlers/audit-system-db.js +9 -0
- package/dist/audit/handlers/details-all-tenants.query.d.ts +15 -0
- package/dist/audit/handlers/details-all-tenants.query.js +20 -0
- package/dist/audit/handlers/details.query.d.ts +2 -1
- package/dist/audit/handlers/details.query.js +8 -24
- package/dist/audit/handlers/list-all-tenants.query.d.ts +41 -0
- package/dist/audit/handlers/list-all-tenants.query.js +32 -0
- package/dist/audit/handlers/list.query.d.ts +2 -1
- package/dist/audit/handlers/list.query.js +9 -99
- package/dist/audit/handlers/resolve-audit-tenant.d.ts +3 -1
- package/dist/audit/handlers/resolve-audit-tenant.js +21 -7
- package/dist/audit/index.d.ts +1 -1
- package/dist/audit/index.js +1 -1
- package/dist/audit/run-escape-hatch-retention.js +1 -1
- package/dist/audit/screens.d.ts +65 -0
- package/dist/audit/screens.js +73 -0
- package/dist/audit/web/client-plugin.js +2 -3
- package/dist/audit/{constants.d.ts → web/constants.d.ts} +8 -0
- package/dist/audit/{constants.js → web/constants.js} +8 -1
- package/dist/audit/web/default-translations.d.ts +2 -0
- package/dist/audit/web/default-translations.js +3 -0
- package/dist/audit/web/i18n.d.ts +5 -2
- package/dist/audit/web/i18n.js +31 -4
- package/dist/audit/web/index.js +0 -1
- package/dist/auth-email-password/bootstrap.d.ts +1 -1
- package/dist/auth-email-password/bootstrap.js +4 -4
- package/dist/auth-email-password/errors.js +1 -1
- package/dist/auth-email-password/feature.js +2 -2
- package/dist/auth-email-password/handlers/confirm-account-unlock.write.js +1 -1
- package/dist/auth-email-password/handlers/invite-accept-with-login.write.js +1 -1
- package/dist/auth-email-password/handlers/invite-create.write.d.ts +1 -1
- package/dist/auth-email-password/handlers/invite-create.write.js +3 -3
- package/dist/auth-email-password/handlers/invite-info.query.js +1 -1
- package/dist/auth-email-password/handlers/login.write.d.ts +1 -0
- package/dist/auth-email-password/handlers/login.write.js +26 -1
- package/dist/auth-email-password/handlers/request-account-unlock.write.js +1 -1
- package/dist/auth-email-password/handlers/request-email-verification.write.js +1 -1
- package/dist/auth-email-password/handlers/request-password-reset.write.js +1 -1
- package/dist/auth-email-password/handlers/reset-password.write.js +1 -1
- package/dist/auth-email-password/handlers/verify-email.write.js +1 -1
- package/dist/auth-email-password/index.d.ts +1 -1
- package/dist/auth-email-password/index.js +1 -1
- package/dist/auth-email-password/mail-notifications.js +1 -1
- package/dist/auth-email-password/signup-activation.js +1 -1
- package/dist/auth-email-password/web/auth-client.js +0 -1
- package/dist/auth-email-password/web/auth-form-logic.js +0 -1
- package/dist/auth-email-password/web/auth-form-primitives.js +0 -1
- package/dist/auth-email-password/web/auth-gate.js +0 -1
- package/dist/auth-email-password/web/auth-redirect.js +0 -1
- package/dist/auth-email-password/web/client-actions.js +0 -1
- package/dist/auth-email-password/web/client-plugin.js +1 -2
- package/dist/auth-email-password/web/confirm-account-unlock-screen.js +0 -1
- package/dist/auth-email-password/{constants.js → web/constants.js} +3 -6
- package/dist/auth-email-password/web/default-topbar-actions.js +0 -1
- package/dist/auth-email-password/web/forgot-password-screen.js +0 -1
- package/dist/auth-email-password/{i18n.js → web/i18n.js} +3 -4
- package/dist/auth-email-password/web/index.d.ts +1 -1
- package/dist/auth-email-password/web/index.js +1 -2
- package/dist/auth-email-password/web/invite-accept-screen.d.ts +2 -2
- package/dist/auth-email-password/web/invite-accept-screen.js +0 -1
- package/dist/auth-email-password/web/login-screen.js +0 -1
- package/dist/auth-email-password/{mail-i18n.js → web/mail-i18n.js} +0 -1
- package/dist/auth-email-password/web/request-account-unlock-screen.js +0 -1
- package/dist/auth-email-password/web/reset-password-screen.js +0 -1
- package/dist/auth-email-password/web/session-bootstrap-error.js +0 -1
- package/dist/auth-email-password/web/session.js +0 -1
- package/dist/auth-email-password/web/signup-complete-screen.d.ts +2 -2
- package/dist/auth-email-password/web/signup-complete-screen.js +0 -1
- package/dist/auth-email-password/web/signup-screen.js +0 -1
- package/dist/auth-email-password/web/tenant-menu-items.js +0 -1
- package/dist/auth-email-password/web/tenant-switcher.js +0 -1
- package/dist/auth-email-password/web/use-shell-user.js +0 -1
- package/dist/auth-email-password/web/user-menu.js +0 -1
- package/dist/auth-email-password/web/verify-email-screen.js +0 -1
- package/dist/auth-mfa/errors.d.ts +1 -1
- package/dist/auth-mfa/errors.js +2 -2
- package/dist/auth-mfa/handlers/enable-confirm-preauth.write.js +1 -1
- package/dist/auth-mfa/handlers/enable-start-preauth.write.js +1 -1
- package/dist/auth-mfa/handlers/enable-start.write.js +1 -1
- package/dist/auth-mfa/handlers/verify.write.js +1 -1
- package/dist/auth-mfa/index.d.ts +1 -1
- package/dist/auth-mfa/index.js +1 -1
- package/dist/auth-mfa/mfa-status-checker.js +1 -1
- package/dist/auth-mfa/screens.js +1 -1
- package/dist/auth-mfa/web/client-plugin.js +0 -1
- package/dist/auth-mfa/{constants.js → web/constants.js} +0 -1
- package/dist/auth-mfa/web/i18n.js +0 -1
- package/dist/auth-mfa/web/index.js +0 -1
- package/dist/auth-mfa/web/mfa-client.js +0 -1
- package/dist/auth-mfa/web/mfa-disable-dialog.js +1 -2
- package/dist/auth-mfa/web/mfa-recovery-codes-reveal.js +0 -1
- package/dist/auth-mfa/web/mfa-regenerate-recovery-dialog.js +1 -2
- package/dist/auth-mfa/web/mfa-setup-preauth-screen.js +11 -18
- package/dist/auth-mfa/web/mfa-verify-screen.js +0 -1
- package/dist/billing-foundation/checkout-core.js +1 -1
- package/dist/billing-foundation/consumer-protection/consent-text.d.ts +2 -2
- package/dist/billing-foundation/consumer-protection/consent-text.js +1 -1
- package/dist/billing-foundation/consumer-protection/issue-confirmation.js +7 -3
- package/dist/billing-foundation/consumer-protection/mail-notifications.js +3 -1
- package/dist/billing-foundation/consumer-protection/register-consent.js +1 -1
- package/dist/billing-foundation/consumer-protection/register-termination.js +8 -2
- package/dist/billing-foundation/consumer-protection/stored-user-email.d.ts +1 -0
- package/dist/billing-foundation/consumer-protection/stored-user-email.js +8 -0
- package/dist/billing-foundation/consumer-protection/termination-mail.d.ts +5 -1
- package/dist/billing-foundation/consumer-protection/termination-mail.js +3 -1
- package/dist/billing-foundation/consumer-protection/termination-notify.js +1 -1
- package/dist/billing-foundation/consumer-protection/termination-pages.js +109 -15
- package/dist/billing-foundation/consumer-protection/termination-record.d.ts +8 -1
- package/dist/billing-foundation/consumer-protection/termination-record.js +76 -3
- package/dist/billing-foundation/consumer-protection/termination-request.js +33 -6
- package/dist/billing-foundation/consumer-protection/termination-revoke.d.ts +28 -0
- package/dist/billing-foundation/consumer-protection/termination-revoke.js +149 -0
- package/dist/billing-foundation/consumer-protection/termination-texts.d.ts +17 -1
- package/dist/billing-foundation/consumer-protection/termination-texts.js +39 -0
- package/dist/billing-foundation/events.d.ts +9 -0
- package/dist/billing-foundation/events.js +14 -2
- package/dist/billing-foundation/feature.js +1 -1
- package/dist/billing-foundation/handlers/process-event.write.d.ts +5 -1
- package/dist/billing-foundation/handlers/process-event.write.js +57 -3
- package/dist/billing-foundation/handlers/switch-plan.write.js +1 -1
- package/dist/billing-foundation/handlers/sync-subscription.write.js +1 -1
- package/dist/billing-foundation/index.d.ts +2 -2
- package/dist/billing-foundation/index.js +2 -2
- package/dist/billing-foundation/plan-catalog.js +1 -1
- package/dist/billing-foundation/screens.js +1 -1
- package/dist/billing-foundation/subscription-tier-sync.js +1 -1
- package/dist/billing-foundation/types.d.ts +14 -2
- package/dist/billing-foundation/types.js +1 -1
- package/dist/billing-foundation/validate-options.js +3 -3
- package/dist/billing-foundation/web/billing-contact-plan.js +1 -2
- package/dist/billing-foundation/web/billing-plans-panel.js +1 -2
- package/dist/billing-foundation/web/cancel-contract-dialog.js +1 -2
- package/dist/billing-foundation/web/checkout-consent-dialog.js +1 -2
- package/dist/billing-foundation/web/client-plugin.js +1 -1
- package/dist/billing-foundation/{constants.d.ts → web/constants.d.ts} +21 -14
- package/dist/billing-foundation/{constants.js → web/constants.js} +35 -31
- package/dist/billing-foundation/{consumer-protection → web/consumer-protection}/consent-locale.js +0 -1
- package/dist/billing-foundation/{contact-card.js → web/contact-card.js} +0 -1
- package/dist/billing-foundation/web/index.d.ts +2 -2
- package/dist/billing-foundation/web/index.js +2 -3
- package/dist/billing-foundation/web/localized-params.js +0 -1
- package/dist/billing-foundation/webhook-handler.js +4 -1
- package/dist/cap-counter/stock-cap-guard.js +8 -0
- package/dist/cap-overview/feature.js +1 -1
- package/dist/cap-overview/handlers/caps-usage.query.js +1 -1
- package/dist/cap-overview/handlers/tenant-caps-list.query.js +2 -2
- package/dist/cap-overview/index.d.ts +2 -2
- package/dist/cap-overview/index.js +2 -2
- package/dist/cap-overview/screens.js +1 -1
- package/dist/cap-overview/web/cap-cards-panel.js +1 -1
- package/dist/cap-overview/web/cap-usage-bar.js +1 -2
- package/dist/cap-overview/web/client-plugin.js +1 -1
- package/dist/cap-overview/{constants.js → web/constants.js} +0 -1
- package/dist/cap-overview/web/index.js +0 -1
- package/dist/cap-overview/{usage-math.d.ts → web/usage-math.d.ts} +1 -1
- package/dist/compliance-profiles/feature.js +1 -1
- package/dist/compliance-profiles/index.d.ts +1 -1
- package/dist/compliance-profiles/index.js +1 -1
- package/dist/compliance-profiles/web/client-plugin.js +1 -2
- package/dist/compliance-profiles/web/compliance-profile-catalog.js +1 -2
- package/dist/compliance-profiles/{constants.js → web/constants.js} +0 -1
- package/dist/compliance-profiles/web/index.js +0 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/web/client-plugin.d.ts +1 -1
- package/dist/config/web/client-plugin.js +1 -2
- package/dist/config/{constants.js → web/constants.js} +0 -1
- package/dist/config/web/i18n.js +1 -1
- package/dist/config/web/index.d.ts +1 -1
- package/dist/config/web/index.js +1 -2
- package/dist/config/write-helpers.js +1 -1
- package/dist/custom-fields/feature.js +1 -1
- package/dist/custom-fields/handlers/clear-custom-field.write.js +1 -1
- package/dist/custom-fields/handlers/define-tenant-field.write.js +1 -1
- package/dist/custom-fields/handlers/delete-system-field.write.js +1 -1
- package/dist/custom-fields/handlers/delete-tenant-field.write.js +1 -1
- package/dist/custom-fields/handlers/set-custom-field.write.js +1 -1
- package/dist/custom-fields/handlers/update-tenant-field.write.js +1 -1
- package/dist/custom-fields/index.d.ts +1 -1
- package/dist/custom-fields/index.js +1 -1
- package/dist/custom-fields/lib/value-schema.js +1 -1
- package/dist/custom-fields/schemas.js +1 -1
- package/dist/custom-fields/web/client-plugin.js +1 -2
- package/dist/custom-fields/{constants.js → web/constants.js} +18 -19
- package/dist/custom-fields/web/custom-fields-form-section.js +1 -2
- package/dist/custom-fields/web/i18n.js +0 -1
- package/dist/custom-fields/web/index.d.ts +1 -1
- package/dist/custom-fields/web/index.js +1 -2
- package/dist/custom-fields/wire-for-entity.js +1 -1
- package/dist/delivery/address-opt-out.js +1 -1
- package/dist/delivery/attempt-log-retention.js +21 -3
- package/dist/delivery/constants.d.ts +1 -1
- package/dist/delivery/constants.js +2 -2
- package/dist/delivery/i18n.js +1 -1
- package/dist/delivery/unsubscribe-page.js +1 -1
- package/dist/delivery/web/client-plugin.js +1 -1
- package/dist/delivery/web/delivery-channel-cell.js +0 -1
- package/dist/delivery/web/delivery-error-cell.js +0 -1
- package/dist/delivery/web/delivery-status-cell.js +1 -2
- package/dist/delivery/web/delivery-time-cell.js +0 -1
- package/dist/delivery/web/delivery-type-cell.js +0 -1
- package/dist/delivery/web/index.js +0 -1
- package/dist/delivery/{public-names.js → web/public-names.js} +0 -1
- package/dist/document-ingest-foundation/events.d.ts +1 -0
- package/dist/document-ingest-foundation/events.js +3 -0
- package/dist/document-ingest-foundation/executor.js +2 -1
- package/dist/document-ingest-foundation/feature.js +16 -5
- package/dist/document-ingest-foundation/index.d.ts +1 -1
- package/dist/document-ingest-foundation/index.js +1 -1
- package/dist/feature-toggles/feature.d.ts +1 -1
- package/dist/feature-toggles/feature.js +2 -2
- package/dist/feature-toggles/handlers/list.query.js +1 -1
- package/dist/feature-toggles/handlers/registered.query.js +1 -1
- package/dist/feature-toggles/handlers/set.write.js +1 -1
- package/dist/feature-toggles/index.d.ts +1 -1
- package/dist/feature-toggles/index.js +1 -1
- package/dist/feature-toggles/web/client-plugin.js +1 -2
- package/dist/feature-toggles/{constants.js → web/constants.js} +0 -1
- package/dist/feature-toggles/web/index.js +0 -1
- package/dist/folders/feature.js +1 -1
- package/dist/folders/handlers/clear-folder.write.js +1 -1
- package/dist/folders/handlers/delete-folder.write.js +1 -1
- package/dist/folders/handlers/set-folder.write.js +1 -1
- package/dist/folders/index.d.ts +1 -1
- package/dist/folders/index.js +1 -1
- package/dist/folders/web/client-plugin.js +1 -2
- package/dist/folders/{constants.js → web/constants.js} +0 -1
- package/dist/folders/web/folder-manager.js +1 -2
- package/dist/folders/web/folder-section.js +1 -2
- package/dist/folders/web/i18n.js +0 -1
- package/dist/folders/web/index.d.ts +1 -1
- package/dist/folders/web/index.js +1 -2
- package/dist/folders/web/tree.js +0 -1
- package/dist/form-draft/db/queries/cleanup.d.ts +3 -2
- package/dist/form-draft/db/queries/cleanup.js +18 -9
- package/dist/form-draft/decrypt-draft.d.ts +2 -0
- package/dist/form-draft/decrypt-draft.js +19 -0
- package/dist/form-draft/entity.js +6 -9
- package/dist/form-draft/feature.js +1 -1
- package/dist/form-draft/handlers/cleanup.job.d.ts +1 -0
- package/dist/form-draft/handlers/cleanup.job.js +17 -4
- package/dist/form-draft/handlers/discard.write.js +1 -1
- package/dist/form-draft/handlers/get.query.js +6 -7
- package/dist/form-draft/handlers/list.query.js +11 -7
- package/dist/form-draft/handlers/save.write.js +1 -1
- package/dist/form-draft/index.d.ts +1 -1
- package/dist/form-draft/index.js +1 -1
- package/dist/form-draft/lookup.d.ts +2 -2
- package/dist/form-draft/lookup.js +7 -2
- package/dist/form-draft/schemas.js +1 -1
- package/dist/form-draft/{constants.js → web/constants.js} +0 -1
- package/dist/form-draft-user-data/hooks.js +2 -2
- package/dist/inbound-mail-foundation/handlers/list-accounts.query.d.ts +1 -1
- package/dist/inbound-mail-foundation/handlers/list-accounts.query.js +11 -3
- package/dist/inbound-mail-foundation/retention-sweep.js +7 -5
- package/dist/jobs/feature.js +2 -2
- package/dist/jobs/handlers/retry.write.js +1 -1
- package/dist/jobs/handlers/trigger.write.js +1 -1
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.js +1 -1
- package/dist/jobs/web/client-plugin.js +2 -3
- package/dist/jobs/{constants.js → web/constants.js} +0 -1
- package/dist/jobs/web/default-translations.d.ts +2 -0
- package/dist/jobs/web/default-translations.js +3 -0
- package/dist/jobs/web/i18n.d.ts +5 -2
- package/dist/jobs/web/i18n.js +51 -4
- package/dist/jobs/web/index.js +0 -1
- package/dist/ledger/entity.d.ts +1 -1
- package/dist/ledger/entity.js +1 -1
- package/dist/ledger/feature.js +1 -1
- package/dist/ledger/handlers/confirm-schedule-period.write.js +2 -5
- package/dist/ledger/handlers/create-transaction.write.js +1 -1
- package/dist/ledger/handlers/reports.query.js +1 -1
- package/dist/ledger/handlers/reverse-transaction.write.js +1 -1
- package/dist/ledger/index.d.ts +1 -1
- package/dist/ledger/index.js +1 -1
- package/dist/ledger/recurring.d.ts +1 -1
- package/dist/ledger/reports.d.ts +1 -1
- package/dist/ledger/schemas.js +1 -1
- package/dist/ledger/{constants.js → web/constants.js} +0 -1
- package/dist/ledger/web/index.d.ts +1 -1
- package/dist/ledger/web/index.js +1 -2
- package/dist/legal-pages/feature.d.ts +1 -1
- package/dist/legal-pages/feature.js +1 -1
- package/dist/legal-pages/index.d.ts +1 -1
- package/dist/legal-pages/index.js +1 -1
- package/dist/legal-pages/lib/boot-check.d.ts +1 -1
- package/dist/legal-pages/lib/boot-check.js +1 -1
- package/dist/legal-pages/lib/validate-routes.d.ts +1 -1
- package/dist/legal-pages/web/client-plugin.js +1 -2
- package/dist/legal-pages/{constants.js → web/constants.js} +6 -8
- package/dist/legal-pages/web/index.js +0 -1
- package/dist/mail-foundation/i18n.d.ts +5 -2
- package/dist/mail-foundation/i18n.js +3 -2
- package/dist/mail-transport-smtp/i18n.d.ts +1 -1
- package/dist/mail-transport-smtp/i18n.js +1 -1
- package/dist/managed-pages/feature.js +1 -1
- package/dist/managed-pages/web/client-plugin.js +1 -2
- package/dist/managed-pages/web/default-translations.d.ts +2 -0
- package/dist/managed-pages/web/default-translations.js +11 -0
- package/dist/managed-pages/web/i18n.d.ts +5 -2
- package/dist/managed-pages/web/i18n.js +53 -12
- package/dist/managed-pages/web/index.d.ts +1 -1
- package/dist/managed-pages/web/index.js +1 -2
- package/dist/metrics/compute.d.ts +1 -1
- package/dist/metrics/compute.js +1 -1
- package/dist/metrics/feature.js +1 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/metrics/types.d.ts +1 -1
- package/dist/metrics/validate.js +1 -1
- package/dist/metrics/{constants.js → web/constants.js} +0 -1
- package/dist/metrics/window.d.ts +1 -1
- package/dist/notes-history/feature.js +1 -1
- package/dist/notes-history/handlers/add-note.write.js +1 -1
- package/dist/notes-history/index.d.ts +1 -1
- package/dist/notes-history/index.js +1 -1
- package/dist/notes-history/web/client-plugin.js +1 -2
- package/dist/notes-history/{constants.js → web/constants.js} +0 -1
- package/dist/notes-history/web/i18n.js +0 -1
- package/dist/notes-history/web/index.d.ts +1 -1
- package/dist/notes-history/web/index.js +1 -2
- package/dist/notes-history/web/notes-section.js +2 -3
- package/dist/personal-access-tokens/feature.d.ts +2 -2
- package/dist/personal-access-tokens/feature.js +6 -4
- package/dist/personal-access-tokens/handlers/available-scopes.query.d.ts +1 -1
- package/dist/personal-access-tokens/handlers/create.write.js +1 -1
- package/dist/personal-access-tokens/handlers/revoke.write.js +1 -1
- package/dist/personal-access-tokens/hash.js +1 -1
- package/dist/personal-access-tokens/i18n.d.ts +1 -1
- package/dist/personal-access-tokens/i18n.js +1 -1
- package/dist/personal-access-tokens/index.d.ts +5 -5
- package/dist/personal-access-tokens/index.js +3 -3
- package/dist/personal-access-tokens/resolver.d.ts +1 -1
- package/dist/personal-access-tokens/resolver.js +1 -1
- package/dist/personal-access-tokens/schema/api-token.js +1 -1
- package/dist/personal-access-tokens/screens.d.ts +1 -1
- package/dist/personal-access-tokens/screens.js +1 -1
- package/dist/personal-access-tokens/{constants.js → web/constants.js} +0 -1
- package/dist/presets/index.d.ts +0 -1
- package/dist/presets/index.js +0 -1
- package/dist/presets/security-baseline.d.ts +1 -1
- package/dist/presets/security-baseline.js +1 -1
- package/dist/secrets/feature.js +1 -1
- package/dist/secrets/handlers/delete.write.js +1 -1
- package/dist/secrets/handlers/list.query.js +1 -1
- package/dist/secrets/handlers/set.write.js +1 -1
- package/dist/secrets/i18n.js +1 -1
- package/dist/secrets/index.d.ts +1 -1
- package/dist/secrets/index.js +1 -1
- package/dist/secrets/{constants.js → web/constants.js} +0 -1
- package/dist/secrets/write-gate.js +1 -1
- package/dist/sessions/feature.js +7 -4
- package/dist/sessions/{i18n.js → web/i18n.js} +0 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/purge-files-reaching-subject.js +7 -3
- package/dist/subscription-stripe/feature.js +2 -1
- package/dist/subscription-stripe/plugin-methods.d.ts +3 -0
- package/dist/subscription-stripe/plugin-methods.js +14 -0
- package/dist/subscription-stripe/verify-webhook.js +1 -0
- package/dist/tags/feature.js +1 -1
- package/dist/tags/handlers/assign-tag.write.js +11 -7
- package/dist/tags/handlers/create-tag.write.js +1 -1
- package/dist/tags/handlers/delete-tag.write.js +4 -1
- package/dist/tags/handlers/remove-tag.write.js +1 -1
- package/dist/tags/handlers/update-tag.write.js +1 -1
- package/dist/tags/index.d.ts +1 -1
- package/dist/tags/index.js +1 -1
- package/dist/tags/screens.js +1 -1
- package/dist/tags/web/client-plugin.js +1 -2
- package/dist/tags/{constants.d.ts → web/constants.d.ts} +1 -0
- package/dist/tags/{constants.js → web/constants.js} +3 -1
- package/dist/tags/web/entity-tags.js +1 -2
- package/dist/tags/web/i18n.js +2 -2
- package/dist/tags/web/index.d.ts +1 -1
- package/dist/tags/web/index.js +1 -2
- package/dist/tags/web/tag-filter.js +1 -2
- package/dist/tags/web/tag-manager.js +5 -4
- package/dist/tags/web/tag-picker.js +0 -1
- package/dist/tags/web/tag-section.js +1 -2
- package/dist/tags/web/tags-cell.js +1 -2
- package/dist/template-resolver/api.d.ts +21 -23
- package/dist/template-resolver/api.js +34 -6
- package/dist/template-resolver/compile-document-body.d.ts +3 -0
- package/dist/template-resolver/compile-document-body.js +51 -4
- package/dist/template-resolver/compile-steps-block.js +2 -2
- package/dist/template-resolver/document-ops.d.ts +1 -1
- package/dist/template-resolver/document-ops.js +3 -3
- package/dist/template-resolver/document-sanitizer.d.ts +2 -2
- package/dist/template-resolver/document-sanitizer.js +23 -3
- package/dist/template-resolver/feature.d.ts +11 -0
- package/dist/template-resolver/feature.js +68 -35
- package/dist/template-resolver/handlers/by-slug.query.js +6 -1
- package/dist/template-resolver/handlers/by-tenant.query.js +6 -2
- package/dist/template-resolver/handlers/collection-item.query.js +2 -1
- package/dist/template-resolver/handlers/collection-list.query.js +2 -1
- package/dist/template-resolver/handlers/collection-set.write.d.ts +2 -1
- package/dist/template-resolver/handlers/collection-set.write.js +15 -3
- package/dist/template-resolver/handlers/collection-shared.d.ts +1 -2
- package/dist/template-resolver/handlers/collection-shared.js +0 -4
- package/dist/template-resolver/handlers/copy-locale.write.d.ts +2 -1
- package/dist/template-resolver/handlers/copy-locale.write.js +69 -65
- package/dist/template-resolver/handlers/diff-to-system.query.js +5 -1
- package/dist/template-resolver/handlers/discard-draft.write.d.ts +3 -2
- package/dist/template-resolver/handlers/discard-draft.write.js +19 -7
- package/dist/template-resolver/handlers/document-base.d.ts +1 -1
- package/dist/template-resolver/handlers/document-base.js +6 -1
- package/dist/template-resolver/handlers/document-blocks.query.d.ts +1 -1
- package/dist/template-resolver/handlers/document-blocks.query.js +2 -2
- package/dist/template-resolver/handlers/export-bundle.query.js +5 -2
- package/dist/template-resolver/handlers/find-by-id.query.js +4 -2
- package/dist/template-resolver/handlers/import-bundle.write.d.ts +2 -1
- package/dist/template-resolver/handlers/import-bundle.write.js +30 -25
- package/dist/template-resolver/handlers/layout-source.query.js +5 -5
- package/dist/template-resolver/handlers/list.query.js +5 -2
- package/dist/template-resolver/handlers/overview.query.d.ts +12 -3
- package/dist/template-resolver/handlers/overview.query.js +87 -51
- package/dist/template-resolver/handlers/patch-draft.write.d.ts +2 -1
- package/dist/template-resolver/handlers/patch-draft.write.js +93 -87
- package/dist/template-resolver/handlers/reset-to-system.write.d.ts +2 -1
- package/dist/template-resolver/handlers/reset-to-system.write.js +51 -44
- package/dist/template-resolver/handlers/resource-link-pdf.write.d.ts +2 -1
- package/dist/template-resolver/handlers/resource-link-pdf.write.js +34 -28
- package/dist/template-resolver/handlers/resource-remove.write.d.ts +2 -1
- package/dist/template-resolver/handlers/resource-remove.write.js +39 -33
- package/dist/template-resolver/handlers/resource-shared.js +1 -1
- package/dist/template-resolver/handlers/resource-upload.write.d.ts +2 -1
- package/dist/template-resolver/handlers/resource-upload.write.js +105 -97
- package/dist/template-resolver/handlers/send-test-shared.d.ts +5 -0
- package/dist/template-resolver/handlers/send-test-shared.js +19 -0
- package/dist/template-resolver/handlers/send-test-status.query.d.ts +9 -0
- package/dist/template-resolver/handlers/send-test-status.query.js +18 -0
- package/dist/template-resolver/handlers/send-test.write.d.ts +2 -1
- package/dist/template-resolver/handlers/send-test.write.js +89 -91
- package/dist/template-resolver/handlers/set.write.d.ts +2 -1
- package/dist/template-resolver/handlers/set.write.js +95 -91
- package/dist/template-resolver/handlers/shared.js +1 -1
- package/dist/template-resolver/handlers/template-gates.d.ts +1 -1
- package/dist/template-resolver/handlers/template-gates.js +1 -1
- package/dist/template-resolver/handlers/template-write.d.ts +1 -1
- package/dist/template-resolver/handlers/template-write.js +1 -1
- package/dist/template-resolver/handlers/toggle-status.write.d.ts +6 -7
- package/dist/template-resolver/handlers/toggle-status.write.js +28 -10
- package/dist/template-resolver/handlers/upsert-tenant.write.d.ts +2 -1
- package/dist/template-resolver/handlers/upsert-tenant.write.js +30 -24
- package/dist/template-resolver/handlers/usage.query.js +3 -2
- package/dist/template-resolver/handlers/validate.query.d.ts +1 -1
- package/dist/template-resolver/handlers/validate.query.js +3 -1
- package/dist/template-resolver/i18n.d.ts +3 -0
- package/dist/template-resolver/i18n.js +24 -0
- package/dist/template-resolver/index.d.ts +8 -5
- package/dist/template-resolver/index.js +6 -4
- package/dist/template-resolver/layout-appearance.js +1 -1
- package/dist/template-resolver/layout-regions.d.ts +1 -1
- package/dist/template-resolver/seeding.d.ts +4 -1
- package/dist/template-resolver/seeding.js +13 -7
- package/dist/template-resolver/store-template-resource.js +2 -2
- package/dist/template-resolver/table.js +1 -1
- package/dist/template-resolver/template-bundle.js +2 -2
- package/dist/template-resolver/template-delivery-policy.d.ts +22 -0
- package/dist/template-resolver/template-delivery-policy.js +40 -0
- package/dist/template-resolver/template-draft.d.ts +1 -1
- package/dist/template-resolver/template-draft.js +1 -1
- package/dist/template-resolver/template-edit-policy.d.ts +22 -0
- package/dist/template-resolver/template-edit-policy.js +45 -0
- package/dist/template-resolver/template-meta.d.ts +2 -2
- package/dist/template-resolver/template-meta.js +2 -2
- package/dist/template-resolver/template-preview.d.ts +1 -1
- package/dist/template-resolver/template-preview.js +15 -6
- package/dist/template-resolver/template-usage.d.ts +1 -1
- package/dist/template-resolver/template-usage.js +1 -1
- package/dist/template-resolver/template-validation.js +34 -14
- package/dist/template-resolver/testing.js +1 -1
- package/dist/template-resolver/user-content-table.js +1 -1
- package/dist/template-resolver/web/client-plugin.js +1 -2
- package/dist/template-resolver/{constants.d.ts → web/constants.d.ts} +4 -1
- package/dist/template-resolver/{constants.js → web/constants.js} +9 -10
- package/dist/template-resolver/{document-blocks.d.ts → web/document-blocks.d.ts} +2 -2
- package/dist/template-resolver/{document-blocks.js → web/document-blocks.js} +1 -0
- package/dist/template-resolver/web/document-editor-extensions.d.ts +1 -0
- package/dist/template-resolver/web/document-editor-extensions.js +22 -2
- package/dist/template-resolver/web/document-editor.js +0 -1
- package/dist/template-resolver/web/document-images.d.ts +2 -0
- package/dist/template-resolver/web/document-images.js +27 -0
- package/dist/template-resolver/{document-schema.d.ts → web/document-schema.d.ts} +2 -1
- package/dist/template-resolver/{document-schema.js → web/document-schema.js} +4 -1
- package/dist/template-resolver/{document-steps.js → web/document-steps.js} +0 -1
- package/dist/template-resolver/web/document-tiptap-editor.d.ts +1 -1
- package/dist/template-resolver/web/document-tiptap-editor.js +24 -9
- package/dist/template-resolver/web/document-toolbar-blocks.d.ts +4 -2
- package/dist/template-resolver/web/document-toolbar-blocks.js +1 -1
- package/dist/template-resolver/web/editor-handle.js +1 -1
- package/dist/template-resolver/web/i18n.js +5 -1
- package/dist/template-resolver/web/index.d.ts +3 -3
- package/dist/template-resolver/web/index.js +3 -4
- package/dist/template-resolver/{mail-constants.js → web/mail-constants.js} +0 -1
- package/dist/template-resolver/{pdf-constants.js → web/pdf-constants.js} +0 -1
- package/dist/template-resolver/web/placeholder-line-editor-lazy.js +0 -1
- package/dist/template-resolver/web/placeholder-line-editor.js +6 -4
- package/dist/template-resolver/{qualified-names.d.ts → web/qualified-names.d.ts} +2 -0
- package/dist/template-resolver/{qualified-names.js → web/qualified-names.js} +2 -1
- package/dist/template-resolver/web/use-stable-by-key.js +0 -1
- package/dist/tenant/handlers/add-member.write.js +1 -1
- package/dist/tenant/index.d.ts +1 -1
- package/dist/tenant/index.js +1 -1
- package/dist/tenant/invitation-table.js +1 -1
- package/dist/tenant/invited-membership.js +1 -1
- package/dist/tenant/last-tenant-admin.js +1 -1
- package/dist/tenant/member-role-options.js +1 -1
- package/dist/tenant/screens.js +1 -1
- package/dist/tenant/web/client-plugin.js +1 -2
- package/dist/tenant/{constants.js → web/constants.js} +3 -6
- package/dist/tenant/web/index.js +0 -1
- package/dist/tenant/web/member-roles-cell.js +0 -1
- package/dist/tenant/web/member-status-cell.js +0 -1
- package/dist/tenant-lifecycle/stages.js +2 -3
- package/dist/tier-engine/entity.d.ts +1 -1
- package/dist/tier-engine/entity.js +1 -1
- package/dist/tier-engine/feature.js +2 -2
- package/dist/tier-engine/handlers/set-tenant-tier.write.js +1 -1
- package/dist/tier-engine/index.d.ts +1 -1
- package/dist/tier-engine/index.js +1 -1
- package/dist/tier-engine/web/client-plugin.js +2 -3
- package/dist/tier-engine/{constants.js → web/constants.js} +2 -3
- package/dist/tier-engine/{i18n.js → web/i18n.js} +0 -1
- package/dist/tier-engine/web/index.js +0 -1
- package/dist/user/handlers/create.write.js +1 -1
- package/dist/user/handlers/update-roles.js +1 -1
- package/dist/user/handlers/update.write.js +1 -1
- package/dist/user/index.d.ts +1 -1
- package/dist/user/index.js +1 -1
- package/dist/user/invited-global-roles.d.ts +1 -1
- package/dist/user/invited-global-roles.js +1 -1
- package/dist/user/schema/user.js +1 -1
- package/dist/user/{constants.js → web/constants.js} +0 -1
- package/dist/user-data-rights/env.js +1 -1
- package/dist/user-data-rights/feature.js +3 -3
- package/dist/user-data-rights/index.d.ts +1 -1
- package/dist/user-data-rights/index.js +1 -1
- package/dist/user-data-rights/lib/resolve-tenant-model.js +1 -1
- package/dist/user-data-rights/mail-notifications.js +1 -1
- package/dist/user-data-rights/web/client-plugin.js +2 -3
- package/dist/user-data-rights/web/confirm-deletion-screen.js +0 -1
- package/dist/user-data-rights/{constants.js → web/constants.js} +11 -12
- package/dist/user-data-rights/web/default-translations.d.ts +2 -0
- package/dist/user-data-rights/web/default-translations.js +59 -0
- package/dist/user-data-rights/web/i18n.d.ts +5 -2
- package/dist/user-data-rights/web/i18n.js +37 -59
- package/dist/user-data-rights/web/index.d.ts +1 -1
- package/dist/user-data-rights/web/index.js +1 -2
- package/dist/user-data-rights/web/privacy-center-screen.js +1 -2
- package/dist/user-data-rights/web/request-deletion-screen.js +0 -1
- package/dist/user-data-rights-defaults/hooks/file-ref.userdata-hook.js +6 -1
- package/dist/user-profile/feature.js +1 -1
- package/dist/user-profile/handlers/change-email.write.js +1 -1
- package/dist/user-profile/index.d.ts +1 -1
- package/dist/user-profile/index.js +1 -1
- package/dist/user-profile/web/client-plugin.js +2 -3
- package/dist/user-profile/{constants.js → web/constants.js} +0 -1
- package/dist/user-profile/{i18n.js → web/i18n.js} +0 -1
- package/dist/user-profile/web/profile-screen.js +2 -3
- package/dist/waitlist/entity.js +1 -1
- package/dist/waitlist/feature.js +1 -1
- package/dist/waitlist/handlers/export-purge.write.js +1 -1
- package/dist/waitlist/handlers/invite.write.js +1 -1
- package/dist/waitlist/handlers/reject.write.js +1 -1
- package/dist/waitlist/handlers/submit.write.js +4 -3
- package/dist/waitlist/import.d.ts +1 -1
- package/dist/waitlist/index.d.ts +1 -1
- package/dist/waitlist/index.js +1 -1
- package/dist/waitlist/legacy-migrate.js +1 -1
- package/dist/waitlist/link-on-signup.js +1 -1
- package/dist/waitlist/mail.d.ts +0 -1
- package/dist/waitlist/mail.js +6 -4
- package/dist/waitlist/payloads.js +1 -1
- package/dist/waitlist/screens.js +1 -1
- package/dist/waitlist/{constants.js → web/constants.js} +0 -1
- package/kumiko-es-tables.json +102 -0
- package/package.json +30 -29
- package/src/audit/changes.json +7 -0
- package/src/auth-email-password/changes.json +6 -0
- package/src/auth-mfa/changes.json +6 -0
- package/src/billing-foundation/changes.json +18 -0
- package/src/cap-counter/changes.json +12 -0
- package/src/delivery/changes.json +6 -0
- package/src/document-ingest-foundation/changes.json +6 -0
- package/src/files/changes.json +7 -0
- package/src/form-draft/changes.json +7 -0
- package/src/inbound-mail-foundation/changes.json +6 -0
- package/src/ledger/changes.json +7 -0
- package/src/mail-foundation/changes.json +6 -0
- package/src/presets/changes.json +7 -0
- package/src/tags/changes.json +6 -0
- package/src/template-resolver/changes.json +63 -0
- package/src/user-data-rights/changes.json +14 -0
- package/src/waitlist/changes.json +6 -0
- package/dist/admin-shell/i18n.d.ts +0 -5
- package/dist/admin-shell/i18n.js +0 -51
- package/dist/audit/i18n.d.ts +0 -5
- package/dist/audit/i18n.js +0 -22
- package/dist/jobs/i18n.d.ts +0 -5
- package/dist/jobs/i18n.js +0 -52
- package/dist/managed-pages/i18n.d.ts +0 -5
- package/dist/managed-pages/i18n.js +0 -55
- package/dist/presets/dsgvo-self-service.d.ts +0 -10
- package/dist/presets/dsgvo-self-service.js +0 -24
- package/dist/user-data-rights/i18n.d.ts +0 -5
- package/dist/user-data-rights/i18n.js +0 -39
- /package/dist/account-security/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/account-security/{i18n.d.ts → web/i18n.d.ts} +0 -0
- /package/dist/admin-shell/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/auth-email-password/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/auth-email-password/{i18n.d.ts → web/i18n.d.ts} +0 -0
- /package/dist/auth-email-password/{mail-i18n.d.ts → web/mail-i18n.d.ts} +0 -0
- /package/dist/auth-mfa/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/billing-foundation/{consumer-protection → web/consumer-protection}/consent-locale.d.ts +0 -0
- /package/dist/billing-foundation/{contact-card.d.ts → web/contact-card.d.ts} +0 -0
- /package/dist/cap-overview/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/cap-overview/{usage-math.js → web/usage-math.js} +0 -0
- /package/dist/compliance-profiles/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/config/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/custom-fields/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/delivery/{public-names.d.ts → web/public-names.d.ts} +0 -0
- /package/dist/feature-toggles/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/folders/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/form-draft/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/jobs/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/ledger/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/legal-pages/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/metrics/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/notes-history/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/personal-access-tokens/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/personal-access-tokens/{scopes.d.ts → web/scopes.d.ts} +0 -0
- /package/dist/personal-access-tokens/{scopes.js → web/scopes.js} +0 -0
- /package/dist/secrets/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/sessions/{i18n.d.ts → web/i18n.d.ts} +0 -0
- /package/dist/template-resolver/{document-steps.d.ts → web/document-steps.d.ts} +0 -0
- /package/dist/template-resolver/{mail-constants.d.ts → web/mail-constants.d.ts} +0 -0
- /package/dist/template-resolver/{pdf-constants.d.ts → web/pdf-constants.d.ts} +0 -0
- /package/dist/template-resolver/{placeholder-text.d.ts → web/placeholder-text.d.ts} +0 -0
- /package/dist/template-resolver/{placeholder-text.js → web/placeholder-text.js} +0 -0
- /package/dist/tenant/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/tier-engine/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/tier-engine/{i18n.d.ts → web/i18n.d.ts} +0 -0
- /package/dist/user/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/user-data-rights/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/user-profile/{constants.d.ts → web/constants.d.ts} +0 -0
- /package/dist/user-profile/{i18n.d.ts → web/i18n.d.ts} +0 -0
- /package/dist/waitlist/{constants.d.ts → web/constants.d.ts} +0 -0
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
// MemberStatusCell column renderer) can import them too (see
|
|
4
|
-
// auth-email-password/constants.ts for the rationale). Runtime imports
|
|
5
|
-
// client → server can keep using them as well.
|
|
1
|
+
// Pure string constants, client-safe because they live under web/ (see
|
|
2
|
+
// auth-email-password/web/constants.ts); server code may import them too.
|
|
6
3
|
// Feature name
|
|
7
4
|
export const TENANT_FEATURE = "tenant";
|
|
8
5
|
export const MEMBERS_SCREEN_ID = "members";
|
|
@@ -55,7 +52,7 @@ export const TenantQueries = {
|
|
|
55
52
|
tenantDirectory: "tenant:query:tenant-directory",
|
|
56
53
|
activeTenantIds: "tenant:query:active-tenant-ids",
|
|
57
54
|
resolveUserIds: "tenant:query:resolve-user-ids",
|
|
58
|
-
// Pending
|
|
55
|
+
// Pending invitations of the current tenant (admin UI list).
|
|
59
56
|
invitations: "tenant:query:invitations",
|
|
60
57
|
// Combined active-members + pending-invitations list backing /members.
|
|
61
58
|
teamList: "tenant:query:team:list",
|
package/dist/tenant/web/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
// @runtime client
|
|
3
2
|
// Column-renderer for the /members screen's status column, registered via
|
|
4
3
|
// `tenantClient()`'s `columnRenderers` map (screen.columns[].renderer in
|
|
5
4
|
// screens.ts). The list frame itself is the generic declarative
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { configuredPiiSubjectKms, subjectIdToKey, } from "@cosmicdrift/kumiko-framework/crypto";
|
|
2
|
-
import { createEventStoreExecutor, createTenantDb, selectMany, WritePurposes, } from "@cosmicdrift/kumiko-framework/db";
|
|
2
|
+
import { createEventStoreExecutor, createTenantDataDestroyDb, createTenantDb, selectMany, WritePurposes, } from "@cosmicdrift/kumiko-framework/db";
|
|
3
3
|
import { createSystemUser, EXT_EXTERNAL_RESOURCE, EXT_INFRA_RESOURCE, EXT_SEARCH_ADAPTER, EXT_STORAGE_PROVIDER, EXT_TENANT_DATA, extensionUsageEscapeHatchReason, isTenantDataExtensionHooks, isTenantResourceExtensionHooks, } from "@cosmicdrift/kumiko-framework/engine";
|
|
4
4
|
import { createFallbackLogger } from "@cosmicdrift/kumiko-framework/logging";
|
|
5
5
|
import { createEscapeHatchReporter, UNATTRIBUTED_ACTOR, } from "@cosmicdrift/kumiko-framework/pipeline";
|
|
@@ -55,10 +55,9 @@ async function runTenantDataHooks(ctx) {
|
|
|
55
55
|
log: ctx.escapeHatchAuditLog ?? createFallbackLogger("tenant-lifecycle"),
|
|
56
56
|
});
|
|
57
57
|
const hookCtx = {
|
|
58
|
-
db:
|
|
58
|
+
db: createTenantDataDestroyDb({
|
|
59
59
|
db: ctx.db,
|
|
60
60
|
tenantId: ctx.tenantId,
|
|
61
|
-
mode: "tenant",
|
|
62
61
|
grants: {
|
|
63
62
|
unsafeRaw: reason !== undefined ? { reason } : undefined,
|
|
64
63
|
report,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TierAssignmentSource } from "./constants.ts";
|
|
1
|
+
import { type TierAssignmentSource } from "./web/constants.ts";
|
|
2
2
|
export declare const tierAssignmentEntity: import("@cosmicdrift/kumiko-types/fields").EntityDefinition<{
|
|
3
3
|
readonly tier: {
|
|
4
4
|
readonly type: "text";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createEntity, createSelectField, createTextField, } from "@cosmicdrift/kumiko-framework/engine";
|
|
2
|
-
import { TierAssignmentSources } from "./constants.js";
|
|
2
|
+
import { TierAssignmentSources } from "./web/constants.js";
|
|
3
3
|
// tier-assignment — pro Plattform-Tenant genau ein Aggregat. Aggregate-ID
|
|
4
4
|
// wird deterministisch aus tenantId abgeleitet (uuidv5, siehe aggregate-id.ts).
|
|
5
5
|
//
|
|
@@ -49,13 +49,13 @@ import { getTemporal } from "@cosmicdrift/kumiko-framework/time";
|
|
|
49
49
|
import * as z from "zod";
|
|
50
50
|
import { tenantTable } from "../tenant/index.js";
|
|
51
51
|
import { tierAssignmentAggregateId } from "./aggregate-id.js";
|
|
52
|
-
import { TIER_ADMIN_SCREEN_ID, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, } from "./constants.js";
|
|
53
52
|
import { tierAssignmentEntity } from "./entity.js";
|
|
54
53
|
import { getActiveTierQuery } from "./handlers/active-tier.query.js";
|
|
55
54
|
import { getTenantTierQuery } from "./handlers/get-tenant-tier.query.js";
|
|
56
55
|
import { createSetTenantTierWrite } from "./handlers/set-tenant-tier.write.js";
|
|
57
|
-
import { TIER_ENGINE_I18N } from "./i18n.js";
|
|
58
56
|
import { isTrialActive } from "./trial.js";
|
|
57
|
+
import { TIER_ADMIN_SCREEN_ID, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, } from "./web/constants.js";
|
|
58
|
+
import { TIER_ENGINE_I18N } from "./web/i18n.js";
|
|
59
59
|
// Drizzle-table for the tier-assignment-entity. Built once at module-load
|
|
60
60
|
// from the entity definition — same shape buildEntityTable would produce
|
|
61
61
|
// in the App's drizzle/schema.generated.ts.
|
|
@@ -3,8 +3,8 @@ import { defineWriteHandler } from "@cosmicdrift/kumiko-framework/engine";
|
|
|
3
3
|
import * as z from "zod";
|
|
4
4
|
import { requireForTenant } from "../../shared/index.js";
|
|
5
5
|
import { tierAssignmentAggregateId } from "../aggregate-id.js";
|
|
6
|
-
import { TierAssignmentSources } from "../constants.js";
|
|
7
6
|
import { tierAssignmentEntity } from "../entity.js";
|
|
7
|
+
import { TierAssignmentSources } from "../web/constants.js";
|
|
8
8
|
// SystemAdmin setzt das Tier eines BELIEBIGEN Tenants — manueller Grant ohne
|
|
9
9
|
// Billing. Cross-tenant, daher SystemAdmin-only (kein TenantAdmin: sonst
|
|
10
10
|
// Gratis-Self-Upgrade).
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { tierAssignmentAggregateId } from "./aggregate-id.ts";
|
|
2
2
|
export { type AddOnDefinition, type AddOnMap, type ComposeAppInput, type ComposedApp, composeApp, type TierDefinition, type TierMap, } from "./compose-app.ts";
|
|
3
|
-
export { isTierAssignmentSource, TIER_ENGINE_FEATURE, type TierAssignmentSource, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./constants.ts";
|
|
4
3
|
export { tierAssignmentEntity } from "./entity.ts";
|
|
5
4
|
export { type CreateTierEngineOptions, createTierEngineFeature, } from "./feature.ts";
|
|
6
5
|
export { createTierOptionGate, type TierOptionAvailability, type TierOptionGate, type TierOptionGateDeps, type TierOptionSpec, } from "./tier-option-gate.ts";
|
|
7
6
|
export { createTierResolver, type TierResolver, type TierResolverDeps, } from "./tier-resolver.ts";
|
|
8
7
|
export { isTrialActive, type TrialPolicy } from "./trial.ts";
|
|
8
|
+
export { isTierAssignmentSource, TIER_ENGINE_FEATURE, type TierAssignmentSource, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./web/constants.ts";
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// - `TierEngineHandlers` / `TierEngineQueries` — qualified handler names
|
|
9
9
|
export { tierAssignmentAggregateId } from "./aggregate-id.js";
|
|
10
10
|
export { composeApp, } from "./compose-app.js";
|
|
11
|
-
export { isTierAssignmentSource, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./constants.js";
|
|
12
11
|
export { tierAssignmentEntity } from "./entity.js";
|
|
13
12
|
export { createTierEngineFeature, } from "./feature.js";
|
|
14
13
|
export { createTierOptionGate, } from "./tier-option-gate.js";
|
|
15
14
|
export { createTierResolver, } from "./tier-resolver.js";
|
|
16
15
|
export { isTrialActive } from "./trial.js";
|
|
16
|
+
export { isTierAssignmentSource, TIER_ENGINE_FEATURE, TierAssignmentSources, TierEngineHandlers, TierEngineQueries, } from "./web/constants.js";
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Client-feature factory for tier-engine. Supplies the default translations
|
|
3
2
|
// for the declarative tier-admin actionForm (registered server-side via
|
|
4
3
|
// r.screen in the feature); the app places the screen only via r.nav.
|
|
5
4
|
import { mergeTranslations, translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
|
|
6
|
-
import { TIER_ENGINE_FEATURE } from "
|
|
7
|
-
import { TIER_ENGINE_I18N } from "
|
|
5
|
+
import { TIER_ENGINE_FEATURE } from "./constants.js";
|
|
6
|
+
import { TIER_ENGINE_I18N } from "./i18n.js";
|
|
8
7
|
const defaultTranslations = translationsByLocaleFromKeys(TIER_ENGINE_I18N);
|
|
9
8
|
export function tierEngineClient(options) {
|
|
10
9
|
return {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Pure string-literal QNs/ids — imported by both server (feature.ts) and
|
|
3
2
|
// client (web/client-plugin.tsx). Marked `client`, the most permissive
|
|
4
3
|
// category in the kumiko isolation model (runtime may import client, client
|
|
@@ -30,6 +29,6 @@ export const TierEngineQueries = {
|
|
|
30
29
|
getTenantTier: "tier-engine:query:get-tenant-tier",
|
|
31
30
|
tierOptions: "tier-engine:query:tier-options",
|
|
32
31
|
};
|
|
33
|
-
// Screen
|
|
34
|
-
//
|
|
32
|
+
// Screen id of the manual tier-grant screen. Apps reference it qualified in
|
|
33
|
+
// r.nav: `tier-engine:screen:tier-admin`.
|
|
35
34
|
export const TIER_ADMIN_SCREEN_ID = "tier-admin";
|
|
@@ -5,9 +5,9 @@ import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-fra
|
|
|
5
5
|
import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
|
|
6
6
|
import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
|
|
7
7
|
import * as z from "zod";
|
|
8
|
-
import { UserErrors } from "../constants.js";
|
|
9
8
|
import { rolesInputSchema } from "../roles-input-schema.js";
|
|
10
9
|
import { userEntity, userTable } from "../schema/user.js";
|
|
10
|
+
import { UserErrors } from "../web/constants.js";
|
|
11
11
|
const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
|
|
12
12
|
// Only the Auth features (running as SYSTEM) or a SystemAdmin may create users.
|
|
13
13
|
//
|
|
@@ -2,8 +2,8 @@ import { acquireNamespacedAdvisoryLock, createEventStoreExecutor, fetchOne, sele
|
|
|
2
2
|
import { createSystemUser, findForbiddenRoleAssignment, SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
3
|
import { AccessDeniedError, ConflictError, InternalError, NotFoundError, writeFailure, } from "@cosmicdrift/kumiko-framework/errors";
|
|
4
4
|
import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
|
|
5
|
-
import { UserErrors } from "../constants.js";
|
|
6
5
|
import { USER_STATUS, userEntity, userTable } from "../schema/user.js";
|
|
6
|
+
import { UserErrors } from "../web/constants.js";
|
|
7
7
|
const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
|
|
8
8
|
const REVOKE_ALL_SESSIONS_QN = "sessions:write:user-session:revoke-all-for-user";
|
|
9
9
|
// Serializes last-SystemAdmin demotion checks globally inside the write TX
|
|
@@ -4,9 +4,9 @@ import { AccessDeniedError, InternalError, writeFailure, } from "@cosmicdrift/ku
|
|
|
4
4
|
import { canonicalizeLocaleTag, isValidLocaleTag } from "@cosmicdrift/kumiko-framework/i18n";
|
|
5
5
|
import { isValidIanaTimeZone } from "@cosmicdrift/kumiko-framework/time";
|
|
6
6
|
import * as z from "zod";
|
|
7
|
-
import { UserErrors } from "../constants.js";
|
|
8
7
|
import { rolesInputSchema } from "../roles-input-schema.js";
|
|
9
8
|
import { userEntity, userTable } from "../schema/user.js";
|
|
9
|
+
import { UserErrors } from "../web/constants.js";
|
|
10
10
|
import { applyUserRolesUpdate } from "./update-roles.js";
|
|
11
11
|
const crud = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
|
|
12
12
|
const SYSTEM_ADMIN_DEMOTION_COUNT_REASON = "on a SystemAdmin demotion, a jsonb @> prefilter over the global users table counts remaining active SystemAdmins";
|
package/dist/user/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { UserCommandSchemas } from "./command-schemas.ts";
|
|
2
|
-
export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./constants.ts";
|
|
3
2
|
export { backfillUserStreamTenants, type UserStreamBackfillResult, } from "./db/queries/stream-tenant-backfill.ts";
|
|
4
3
|
export { createUserFeature } from "./feature.ts";
|
|
5
4
|
export { isPrincipalBlocked, isPrincipalRowBlocked, principalStatusPlugin, } from "./principal-status.ts";
|
|
6
5
|
export { resolveUserDisplayNames } from "./resolve-display-names.ts";
|
|
7
6
|
export type { UserStatus } from "./schema/user.ts";
|
|
8
7
|
export { USER_ANONYMIZED_DISPLAY_NAME, USER_ANONYMIZED_EMAIL_DOMAIN, USER_ANONYMIZED_EMAIL_PREFIX, USER_DELETED_DISPLAY_NAME, USER_DELETED_EMAIL_PREFIX, USER_STATUS, userEntity, userTable, } from "./schema/user.ts";
|
|
8
|
+
export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./web/constants.ts";
|
package/dist/user/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { UserCommandSchemas } from "./command-schemas.js";
|
|
2
|
-
export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./constants.js";
|
|
3
2
|
export { backfillUserStreamTenants, } from "./db/queries/stream-tenant-backfill.js";
|
|
4
3
|
export { createUserFeature } from "./feature.js";
|
|
5
4
|
export { isPrincipalBlocked, isPrincipalRowBlocked, principalStatusPlugin, } from "./principal-status.js";
|
|
6
5
|
export { resolveUserDisplayNames } from "./resolve-display-names.js";
|
|
7
6
|
export { USER_ANONYMIZED_DISPLAY_NAME, USER_ANONYMIZED_EMAIL_DOMAIN, USER_ANONYMIZED_EMAIL_PREFIX, USER_DELETED_DISPLAY_NAME, USER_DELETED_EMAIL_PREFIX, USER_STATUS, userEntity, userTable, } from "./schema/user.js";
|
|
7
|
+
export { USER_FEATURE, UserErrors, UserHandlers, UserQueries } from "./web/constants.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DbRunner } from "@cosmicdrift/kumiko-framework/db";
|
|
2
|
-
import { type GlobalRole } from "./constants.ts";
|
|
2
|
+
import { type GlobalRole } from "./web/constants.ts";
|
|
3
3
|
export declare function parseInvitedGlobalRoles(raw: unknown): readonly GlobalRole[];
|
|
4
4
|
export declare function grantInvitedGlobalRoles(db: DbRunner, options: {
|
|
5
5
|
readonly userId: string;
|
|
@@ -2,8 +2,8 @@ import { createEventStoreExecutor, createTenantDb, fetchOne, } from "@cosmicdrif
|
|
|
2
2
|
import { createSystemUser, SYSTEM_TENANT_ID } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
3
|
import { NotFoundError, writeFailure } from "@cosmicdrift/kumiko-framework/errors";
|
|
4
4
|
import { parseRoles } from "@cosmicdrift/kumiko-framework/utils";
|
|
5
|
-
import { GLOBAL_ROLE_OPTIONS } from "./constants.js";
|
|
6
5
|
import { userEntity, userTable } from "./schema/user.js";
|
|
6
|
+
import { GLOBAL_ROLE_OPTIONS } from "./web/constants.js";
|
|
7
7
|
const userExecutor = createEventStoreExecutor(userTable, userEntity, { entityName: "user" });
|
|
8
8
|
function isGlobalRole(role) {
|
|
9
9
|
return GLOBAL_ROLE_OPTIONS.some((option) => option === role);
|
package/dist/user/schema/user.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildEntityTable } from "@cosmicdrift/kumiko-framework/db";
|
|
2
2
|
import { access, createBooleanField, createDerivedField, createEntity, createMultiSelectField, createSelectField, createTextField, createTimestampField, createTzField, } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
|
-
import { GLOBAL_ROLE_OPTIONS } from "../constants.js";
|
|
3
|
+
import { GLOBAL_ROLE_OPTIONS } from "../web/constants.js";
|
|
4
4
|
/**
|
|
5
5
|
* User-Lifecycle-Status (S2.U1). Single source of truth — Auth-Middleware
|
|
6
6
|
* (S2.U6), Forget-Job (S2.U5) und Restriction-Handler nutzen diese
|
|
@@ -6,6 +6,6 @@ export const deletionTokenSecretEnvSchema = z.object({
|
|
|
6
6
|
.string()
|
|
7
7
|
.min(MIN_DELETION_TOKEN_SECRET_LENGTH)
|
|
8
8
|
.optional()
|
|
9
|
-
.describe("Dedicated HMAC secret for the anonymous deletion-confirmation links. Unset:
|
|
9
|
+
.describe("Dedicated HMAC secret for the anonymous deletion-confirmation links. At least 32 characters. Unset: the anonymous deletion-confirmation flow stays off; there is no fallback to JWT_SECRET.")
|
|
10
10
|
.meta({ kumiko: { pulumi: { generator: "openssl rand -hex 24", secret: true } } }),
|
|
11
11
|
});
|
|
@@ -6,7 +6,6 @@ import { createMetricsHandle, createNoopMetricsHandle, } from "@cosmicdrift/kumi
|
|
|
6
6
|
import { isPlainObject } from "@cosmicdrift/kumiko-types/type-guards";
|
|
7
7
|
import { createConfigAccessor } from "../config/index.js";
|
|
8
8
|
import { validateGdprHookCompleteness, validateGdprPiiHookCoverage } from "./boot-checks.js";
|
|
9
|
-
import { EXPORT_SECTION_EXTENSION_NAME, PRIVACY_CENTER_SCREEN_ID, STATUS_OPTION_KEY_PREFIX, USER_ME_QUERY, UserDataRightsHandlers, } from "./constants.js";
|
|
10
9
|
import { deletionTokenSecretEnvSchema } from "./env.js";
|
|
11
10
|
import { cancelDeletionWrite } from "./handlers/cancel-deletion.write.js";
|
|
12
11
|
import { createConfirmDeletionByTokenHandler } from "./handlers/confirm-deletion-by-token.write.js";
|
|
@@ -24,7 +23,6 @@ import { createRequestDeletionByEmailHandler, } from "./handlers/request-deletio
|
|
|
24
23
|
import { requestExportWrite } from "./handlers/request-export.write.js";
|
|
25
24
|
import { restrictAccountWrite } from "./handlers/restrict-account.write.js";
|
|
26
25
|
import { createRunForgetCleanupHandler } from "./handlers/run-forget-cleanup.write.js";
|
|
27
|
-
import { USER_DATA_RIGHTS_I18N } from "./i18n.js";
|
|
28
26
|
import { isGdprMailDeliveryAvailable, isMailRendererAvailable, isMailTransportAvailable, makeDefaultDeletionExecutedEmail, makeDefaultExportFailedEmail, makeDefaultExportReadyEmail, } from "./lib/default-mailers.js";
|
|
29
27
|
import { makeTenantMailTransportResolver } from "./lib/mail-transport-resolver.js";
|
|
30
28
|
import { resolveAppTenantModel } from "./lib/resolve-tenant-model.js";
|
|
@@ -36,6 +34,8 @@ import { downloadAttemptEntity } from "./schema/download-attempt.js";
|
|
|
36
34
|
import { exportDownloadTokenEntity } from "./schema/download-token.js";
|
|
37
35
|
import { exportJobEntity } from "./schema/export-job.js";
|
|
38
36
|
import { downloadAttemptListScreen, exportJobDetailScreen, exportJobListScreen, } from "./screens.js";
|
|
37
|
+
import { EXPORT_SECTION_EXTENSION_NAME, PRIVACY_CENTER_SCREEN_ID, STATUS_OPTION_KEY_PREFIX, USER_ME_QUERY, UserDataRightsHandlers, } from "./web/constants.js";
|
|
38
|
+
import { USER_DATA_RIGHTS_I18N } from "./web/i18n.js";
|
|
39
39
|
function isMailTransportMountedWithoutDelivery(features) {
|
|
40
40
|
const names = new Set(features.map((feature) => feature.name));
|
|
41
41
|
const hasTransport = [...names].some((name) => name.startsWith("mail-transport-"));
|
|
@@ -169,7 +169,7 @@ export function createUserDataRightsFeature(opts = {}) {
|
|
|
169
169
|
r.translations({ keys: USER_DATA_RIGHTS_I18N });
|
|
170
170
|
registerGdprMails(r);
|
|
171
171
|
// Privacy-center dot-form labels (i18nKey()-marked below), duplicated in
|
|
172
|
-
// web/
|
|
172
|
+
// web/default-translations.ts's client bundle since privacy-center-screen.tsx renders
|
|
173
173
|
// them client-side.
|
|
174
174
|
r.translations({
|
|
175
175
|
keys: {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { TENANT_MODEL_CONFIG_KEY } from "./constants.ts";
|
|
2
1
|
export { deletionTokenSecretEnvSchema } from "./env.ts";
|
|
3
2
|
export { createUserDataRightsFeature, type UserDataRightsOptions } from "./feature.ts";
|
|
4
3
|
export type { SendDeletionVerificationEmailFn } from "./handlers/request-deletion-by-email.write.ts";
|
|
@@ -12,3 +11,4 @@ export type { UserExportBundle } from "./run-user-export.ts";
|
|
|
12
11
|
export { runUserExport } from "./run-user-export.ts";
|
|
13
12
|
export { downloadAttemptEntity, downloadAttemptsTable } from "./schema/download-attempt.ts";
|
|
14
13
|
export { ACTIVE_JOB_CONSTRAINT, EXPORT_JOB_STATUS, type ExportJobStatus, exportJobEntity, exportJobsTable, } from "./schema/export-job.ts";
|
|
14
|
+
export { TENANT_MODEL_CONFIG_KEY } from "./web/constants.ts";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { TENANT_MODEL_CONFIG_KEY } from "./constants.js";
|
|
2
1
|
export { deletionTokenSecretEnvSchema } from "./env.js";
|
|
3
2
|
export { createUserDataRightsFeature } from "./feature.js";
|
|
4
3
|
export { denyIfTargetOutsideAdminTenant, TARGET_USER_NOT_IN_ADMIN_TENANT, } from "./lib/deny-if-target-outside-admin-tenant.js";
|
|
@@ -18,3 +17,4 @@ export { policyToStrategy, runForgetCleanup } from "./run-forget-cleanup.js";
|
|
|
18
17
|
export { runUserExport } from "./run-user-export.js";
|
|
19
18
|
export { downloadAttemptEntity, downloadAttemptsTable } from "./schema/download-attempt.js";
|
|
20
19
|
export { ACTIVE_JOB_CONSTRAINT, EXPORT_JOB_STATUS, exportJobEntity, exportJobsTable, } from "./schema/export-job.js";
|
|
20
|
+
export { TENANT_MODEL_CONFIG_KEY } from "./web/constants.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// SYSTEM_TENANT_ID reads the system/appOverride value.
|
|
6
6
|
import { SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
|
|
7
7
|
import { createConfigAccessor } from "../../config/index.js";
|
|
8
|
-
import { TENANT_MODEL_CONFIG_KEY } from "../constants.js";
|
|
8
|
+
import { TENANT_MODEL_CONFIG_KEY } from "../web/constants.js";
|
|
9
9
|
export async function resolveAppTenantModel(args) {
|
|
10
10
|
// No resolver (e.g. a unit context) → safe default: never erase tenant-scoped data.
|
|
11
11
|
if (!args.configResolver)
|
|
@@ -2,7 +2,7 @@ import { QnTypes, qn, templateVariable, } from "@cosmicdrift/kumiko-framework/en
|
|
|
2
2
|
import { hasMailTranslationKey, listMailLocales, mailT, resolveMailLocale, } from "@cosmicdrift/kumiko-framework/i18n";
|
|
3
3
|
import { escapeHtml } from "@cosmicdrift/kumiko-renderer/headless";
|
|
4
4
|
import { mailParagraph } from "../shared/index.js";
|
|
5
|
-
import { USER_DATA_RIGHTS_FEATURE } from "./constants.js";
|
|
5
|
+
import { USER_DATA_RIGHTS_FEATURE } from "./web/constants.js";
|
|
6
6
|
const ALL_GDPR_MAIL_KINDS = [
|
|
7
7
|
"exportReady",
|
|
8
8
|
"exportFailed",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Client-feature factory for user-data-rights. Provides the ExportSection
|
|
3
2
|
// extension component for the privacy-center screen (registered server-side
|
|
4
3
|
// declaratively as `type: "projectionDetail"`, see feature.ts — restriction
|
|
@@ -15,8 +14,8 @@
|
|
|
15
14
|
// ../feature.ts) — BREAKING, consumers with `showDeletion: false` (e.g.
|
|
16
15
|
// money-horse) must carry the option over at feature setup.
|
|
17
16
|
import { mergeTranslations } from "@cosmicdrift/kumiko-renderer";
|
|
18
|
-
import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "
|
|
19
|
-
import { defaultTranslations } from "./
|
|
17
|
+
import { EXPORT_SECTION_EXTENSION_NAME, USER_DATA_RIGHTS_FEATURE } from "./constants.js";
|
|
18
|
+
import { defaultTranslations } from "./default-translations.js";
|
|
20
19
|
import { ExportSection } from "./privacy-center-screen.js";
|
|
21
20
|
import { makePublicDeletionGate } from "./public-deletion-gate.js";
|
|
22
21
|
export function userDataRightsClient(options) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
// @runtime client
|
|
3
2
|
// ConfirmAccountDeletionScreen — anonymer Apex-Screen Schritt 2. Liest das
|
|
4
3
|
// Token aus dem URL-Fragment (`#token=…`, nie an den Server gesendet — landet
|
|
5
4
|
// so nicht in Proxy-/Access-Logs, fw#1554) und dispatcht beim Bestätigen
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// client-Dateien ohnehin importieren.
|
|
1
|
+
// Pure string constants, client-marked so web/ (e.g. ExportSection) may
|
|
2
|
+
// import them without pulling the feature's runtime barrel (and with it its
|
|
3
|
+
// server/DOM-free code). Runtime code (feature.ts) may import client files
|
|
4
|
+
// anyway.
|
|
6
5
|
export const USER_DATA_RIGHTS_FEATURE = "user-data-rights";
|
|
7
6
|
// Registered without r.nav — apps place it via their own r.nav. Qualified:
|
|
8
7
|
// `user-data-rights:screen:privacy-center`.
|
|
@@ -35,14 +34,14 @@ export const UserDataRightsHandlers = {
|
|
|
35
34
|
cancelDeletion: "user-data-rights:write:cancel-deletion",
|
|
36
35
|
restrictAccount: "user-data-rights:write:restrict-account",
|
|
37
36
|
};
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
37
|
+
// Foreign QN: the lifecycle status (active / deletionRequested / restricted)
|
|
38
|
+
// comes from the user feature. Pinned locally instead of importing the user
|
|
39
|
+
// runtime barrel (runtime isolation, like user-profile). Drift protection: the
|
|
40
|
+
// screen test compares against UserQueries.me.
|
|
42
41
|
export const USER_ME_QUERY = "user:query:user:me";
|
|
43
|
-
// Client-safe
|
|
44
|
-
//
|
|
45
|
-
//
|
|
42
|
+
// Client-safe mirror of EXPORT_JOB_STATUS (schema/export-job.ts is server-only
|
|
43
|
+
// via its Drizzle import). Drift protection: the screen test compares against
|
|
44
|
+
// the schema original.
|
|
46
45
|
export const EXPORT_JOB_STATUS = {
|
|
47
46
|
Pending: "pending",
|
|
48
47
|
Running: "running",
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Default bundle for the apex deletion screens. Apps attach it as a fallback
|
|
2
|
+
// bundle in the LocaleProvider (createPublicSurface clientFeatures or directly)
|
|
3
|
+
// and may override single keys. Keys: `userDataRights.deletion.<step>.<slug>`.
|
|
4
|
+
import { mergeTranslations, translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
|
|
5
|
+
import { USER_DATA_RIGHTS_I18N } from "./i18n.js";
|
|
6
|
+
const apexTranslations = {
|
|
7
|
+
en: {
|
|
8
|
+
"userDataRights.deletion.request.title": "Request account deletion",
|
|
9
|
+
"userDataRights.deletion.request.intro": "Enter the email address of your account. If an account exists, we'll send you a confirmation link to delete it.",
|
|
10
|
+
"userDataRights.deletion.request.email": "Email",
|
|
11
|
+
"userDataRights.deletion.request.submit": "Request confirmation link",
|
|
12
|
+
"userDataRights.deletion.request.submitting": "…",
|
|
13
|
+
"userDataRights.deletion.request.successTitle": "Email sent",
|
|
14
|
+
"userDataRights.deletion.request.successBody": "If the email exists in our system, a message with a confirmation link is on its way. Please check your inbox.",
|
|
15
|
+
"userDataRights.deletion.request.error": "Something went wrong. Please try again.",
|
|
16
|
+
"userDataRights.deletion.confirm.title": "Confirm account deletion",
|
|
17
|
+
"userDataRights.deletion.confirm.intro": "Confirming starts the deletion grace period. Until it ends you can cancel the deletion from your logged-in account.",
|
|
18
|
+
"userDataRights.deletion.confirm.submit": "Confirm deletion",
|
|
19
|
+
"userDataRights.deletion.confirm.submitting": "…",
|
|
20
|
+
"userDataRights.deletion.confirm.successTitle": "Deletion scheduled",
|
|
21
|
+
"userDataRights.deletion.confirm.successBody": "Your account will be deleted after the grace period. You can cancel the deletion from your logged-in account until then.",
|
|
22
|
+
"userDataRights.deletion.confirm.invalidToken": "The link is invalid or expired. Please request a new one.",
|
|
23
|
+
"userDataRights.deletion.confirm.missingToken": "No token found in the link. Please open the link from the email again.",
|
|
24
|
+
"userDataRights.deletion.confirm.error": "Something went wrong. Please try again.",
|
|
25
|
+
"userDataRights.privacyCenter.errors.generic": "Something went wrong. Please try again.",
|
|
26
|
+
"userDataRights.privacyCenter.field.status": "Account status",
|
|
27
|
+
"userDataRights.privacyCenter.field.gracePeriodEnd": "Scheduled deletion date",
|
|
28
|
+
"userDataRights.privacyCenter.field.status.option.active": "Active",
|
|
29
|
+
"userDataRights.privacyCenter.field.status.option.restricted": "Restricted",
|
|
30
|
+
"userDataRights.privacyCenter.field.status.option.deletionRequested": "Deletion requested",
|
|
31
|
+
"userDataRights.privacyCenter.field.status.option.deleted": "Deleted",
|
|
32
|
+
"userDataRights.privacyCenter.export.title": "Export your data (Art. 20)",
|
|
33
|
+
"userDataRights.privacyCenter.export.intro": "Request a copy of your data. It is prepared in the background; once ready you can download it here.",
|
|
34
|
+
"userDataRights.privacyCenter.export.request": "Request data export",
|
|
35
|
+
"userDataRights.privacyCenter.export.requesting": "Requesting …",
|
|
36
|
+
"userDataRights.privacyCenter.export.pending": "Your export is being prepared. Please check back later.",
|
|
37
|
+
"userDataRights.privacyCenter.export.failed": "The last export failed to build. You can try again.",
|
|
38
|
+
"userDataRights.privacyCenter.export.ready": "Your export is ready.",
|
|
39
|
+
"userDataRights.privacyCenter.export.download": "Download export",
|
|
40
|
+
"userDataRights.privacyCenter.export.availableUntil": "Available until {date}",
|
|
41
|
+
"userDataRights.privacyCenter.export.requestNew": "Request a new export",
|
|
42
|
+
"userDataRights.privacyCenter.restriction.title": "Restrict processing (Art. 18)",
|
|
43
|
+
"userDataRights.privacyCenter.restriction.explainer": "Freeze your account: processing of your data is paused and you are signed out. Lifting the restriction afterwards is only possible via support.",
|
|
44
|
+
"userDataRights.privacyCenter.restriction.restrict": "Restrict account",
|
|
45
|
+
"userDataRights.privacyCenter.restriction.dialogTitle": "Restrict your account?",
|
|
46
|
+
"userDataRights.privacyCenter.restriction.dialogDescription": "You will be signed out immediately and cannot sign in again until support lifts the restriction.",
|
|
47
|
+
"userDataRights.privacyCenter.deletion.title": "Delete account (Art. 17)",
|
|
48
|
+
"userDataRights.privacyCenter.deletion.explainer": "Request deletion of your account. Until the grace period ends you can cancel the deletion.",
|
|
49
|
+
"userDataRights.privacyCenter.deletion.delete": "Delete account",
|
|
50
|
+
"userDataRights.privacyCenter.deletion.cancel": "Cancel deletion",
|
|
51
|
+
"userDataRights.privacyCenter.deletion.dialogTitle": "Delete your account?",
|
|
52
|
+
"userDataRights.privacyCenter.deletion.dialogDescription": "Confirming starts the deletion grace period. You can cancel the deletion until it ends.",
|
|
53
|
+
"userDataRights.errors.download.notFound": "The download link is invalid or belongs to a different account.",
|
|
54
|
+
"userDataRights.errors.download.expired": "Your download has expired. Please request a new export.",
|
|
55
|
+
"userDataRights.errors.download.unavailable": "The export is not yet ready or has failed. Please check the status endpoint.",
|
|
56
|
+
"userDataRights.errors.download.signedUrlNotSupported": "The download is currently unavailable due to a server configuration issue. The operator has been notified.",
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export const defaultTranslations = mergeTranslations(translationsByLocaleFromKeys(USER_DATA_RIGHTS_I18N), apexTranslations);
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type LocalizedString = {
|
|
2
|
+
readonly en: string;
|
|
3
|
+
};
|
|
4
|
+
export declare const USER_DATA_RIGHTS_I18N: Readonly<Record<string, LocalizedString>>;
|
|
5
|
+
export {};
|
|
@@ -1,61 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
en:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"userDataRights.deletion.request.submitting": "…",
|
|
15
|
-
"userDataRights.deletion.request.successTitle": "Email sent",
|
|
16
|
-
"userDataRights.deletion.request.successBody": "If the email exists in our system, a message with a confirmation link is on its way. Please check your inbox.",
|
|
17
|
-
"userDataRights.deletion.request.error": "Something went wrong. Please try again.",
|
|
18
|
-
"userDataRights.deletion.confirm.title": "Confirm account deletion",
|
|
19
|
-
"userDataRights.deletion.confirm.intro": "Confirming starts the deletion grace period. Until it ends you can cancel the deletion from your logged-in account.",
|
|
20
|
-
"userDataRights.deletion.confirm.submit": "Confirm deletion",
|
|
21
|
-
"userDataRights.deletion.confirm.submitting": "…",
|
|
22
|
-
"userDataRights.deletion.confirm.successTitle": "Deletion scheduled",
|
|
23
|
-
"userDataRights.deletion.confirm.successBody": "Your account will be deleted after the grace period. You can cancel the deletion from your logged-in account until then.",
|
|
24
|
-
"userDataRights.deletion.confirm.invalidToken": "The link is invalid or expired. Please request a new one.",
|
|
25
|
-
"userDataRights.deletion.confirm.missingToken": "No token found in the link. Please open the link from the email again.",
|
|
26
|
-
"userDataRights.deletion.confirm.error": "Something went wrong. Please try again.",
|
|
27
|
-
"userDataRights.privacyCenter.errors.generic": "Something went wrong. Please try again.",
|
|
28
|
-
"userDataRights.privacyCenter.field.status": "Account status",
|
|
29
|
-
"userDataRights.privacyCenter.field.gracePeriodEnd": "Scheduled deletion date",
|
|
30
|
-
"userDataRights.privacyCenter.field.status.option.active": "Active",
|
|
31
|
-
"userDataRights.privacyCenter.field.status.option.restricted": "Restricted",
|
|
32
|
-
"userDataRights.privacyCenter.field.status.option.deletionRequested": "Deletion requested",
|
|
33
|
-
"userDataRights.privacyCenter.field.status.option.deleted": "Deleted",
|
|
34
|
-
"userDataRights.privacyCenter.export.title": "Export your data (Art. 20)",
|
|
35
|
-
"userDataRights.privacyCenter.export.intro": "Request a copy of your data. It is prepared in the background; once ready you can download it here.",
|
|
36
|
-
"userDataRights.privacyCenter.export.request": "Request data export",
|
|
37
|
-
"userDataRights.privacyCenter.export.requesting": "Requesting …",
|
|
38
|
-
"userDataRights.privacyCenter.export.pending": "Your export is being prepared. Please check back later.",
|
|
39
|
-
"userDataRights.privacyCenter.export.failed": "The last export failed to build. You can try again.",
|
|
40
|
-
"userDataRights.privacyCenter.export.ready": "Your export is ready.",
|
|
41
|
-
"userDataRights.privacyCenter.export.download": "Download export",
|
|
42
|
-
"userDataRights.privacyCenter.export.availableUntil": "Available until {date}",
|
|
43
|
-
"userDataRights.privacyCenter.export.requestNew": "Request a new export",
|
|
44
|
-
"userDataRights.privacyCenter.restriction.title": "Restrict processing (Art. 18)",
|
|
45
|
-
"userDataRights.privacyCenter.restriction.explainer": "Freeze your account: processing of your data is paused and you are signed out. Lifting the restriction afterwards is only possible via support.",
|
|
46
|
-
"userDataRights.privacyCenter.restriction.restrict": "Restrict account",
|
|
47
|
-
"userDataRights.privacyCenter.restriction.dialogTitle": "Restrict your account?",
|
|
48
|
-
"userDataRights.privacyCenter.restriction.dialogDescription": "You will be signed out immediately and cannot sign in again until support lifts the restriction.",
|
|
49
|
-
"userDataRights.privacyCenter.deletion.title": "Delete account (Art. 17)",
|
|
50
|
-
"userDataRights.privacyCenter.deletion.explainer": "Request deletion of your account. Until the grace period ends you can cancel the deletion.",
|
|
51
|
-
"userDataRights.privacyCenter.deletion.delete": "Delete account",
|
|
52
|
-
"userDataRights.privacyCenter.deletion.cancel": "Cancel deletion",
|
|
53
|
-
"userDataRights.privacyCenter.deletion.dialogTitle": "Delete your account?",
|
|
54
|
-
"userDataRights.privacyCenter.deletion.dialogDescription": "Confirming starts the deletion grace period. You can cancel the deletion until it ends.",
|
|
55
|
-
"userDataRights.errors.download.notFound": "The download link is invalid or belongs to a different account.",
|
|
56
|
-
"userDataRights.errors.download.expired": "Your download has expired. Please request a new export.",
|
|
57
|
-
"userDataRights.errors.download.unavailable": "The export is not yet ready or has failed. Please check the status endpoint.",
|
|
58
|
-
"userDataRights.errors.download.signedUrlNotSupported": "The download is currently unavailable due to a server configuration issue. The operator has been notified.",
|
|
1
|
+
export const USER_DATA_RIGHTS_I18N = {
|
|
2
|
+
"user-data-rights:feature.label": { en: "Privacy" },
|
|
3
|
+
"user-data-rights:notify.export-ready.label": { en: "Data export ready" },
|
|
4
|
+
"user-data-rights:notify.export-failed.label": { en: "Data export failed" },
|
|
5
|
+
"user-data-rights:notify.deletion-requested.label": { en: "Deletion requested" },
|
|
6
|
+
"user-data-rights:notify.deletion-executed.label": { en: "Deletion completed" },
|
|
7
|
+
"user-data-rights:nav.exportJobs": { en: "GDPR exports" },
|
|
8
|
+
"screen:export-job-list.title": { en: "GDPR exports" },
|
|
9
|
+
"screen:export-job-detail.title": { en: "Export job" },
|
|
10
|
+
"screen:download-attempt-list.title": { en: "Download attempts" },
|
|
11
|
+
"screen:privacy-center.title": { en: "Privacy" },
|
|
12
|
+
"userDataRights.privacyCenter.subtitle": {
|
|
13
|
+
en: "Logged-in GDPR self-service page where a user requests and downloads a data export (Art. 20), restricts processing of their account (Art. 18) and requests its deletion (Art. 17).",
|
|
59
14
|
},
|
|
15
|
+
"user-data-rights:entity:export-job:field:userId": { en: "User" },
|
|
16
|
+
"user-data-rights:entity:export-job:field:status": { en: "Status" },
|
|
17
|
+
"user-data-rights:entity:export-job:field:requestedAt": { en: "Requested" },
|
|
18
|
+
"user-data-rights:entity:export-job:field:completedAt": { en: "Completed" },
|
|
19
|
+
"user-data-rights:entity:export-job:field:expiresAt": { en: "Expires" },
|
|
20
|
+
"user-data-rights:entity:export-job:field:requestedFromTenantId": {
|
|
21
|
+
en: "Tenant",
|
|
22
|
+
},
|
|
23
|
+
"user-data-rights:entity:export-job:field:startedAt": { en: "Started" },
|
|
24
|
+
"user-data-rights:entity:export-job:field:downloadStorageKey": {
|
|
25
|
+
en: "Storage key",
|
|
26
|
+
},
|
|
27
|
+
"user-data-rights:entity:export-job:field:bytesWritten": { en: "Bytes" },
|
|
28
|
+
"user-data-rights:entity:export-job:field:errorMessage": { en: "Error" },
|
|
29
|
+
"user-data-rights:entity:download-attempt:field:attemptedAt": {
|
|
30
|
+
en: "Attempted at",
|
|
31
|
+
},
|
|
32
|
+
"user-data-rights:entity:download-attempt:field:result": { en: "Result" },
|
|
33
|
+
"user-data-rights:entity:download-attempt:field:via": { en: "Via" },
|
|
34
|
+
"user-data-rights:entity:download-attempt:field:ip": { en: "IP" },
|
|
35
|
+
"user-data-rights:entity:download-attempt:field:attemptedByUserId": {
|
|
36
|
+
en: "User",
|
|
37
|
+
},
|
|
38
|
+
"user-data-rights:entity:download-attempt:field:jobId": { en: "Job" },
|
|
60
39
|
};
|
|
61
|
-
export const defaultTranslations = mergeTranslations(translationsByLocaleFromKeys(USER_DATA_RIGHTS_I18N), apexTranslations);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { type UserDataRightsClientOptions, userDataRightsClient } from "./client-plugin.tsx";
|
|
2
2
|
export type { ConfirmAccountDeletionScreenProps } from "./confirm-deletion-screen.tsx";
|
|
3
3
|
export { ConfirmAccountDeletionScreen } from "./confirm-deletion-screen.tsx";
|
|
4
|
-
export { defaultTranslations } from "./
|
|
4
|
+
export { defaultTranslations } from "./default-translations.ts";
|
|
5
5
|
export { formatDate } from "./privacy-center-screen.tsx";
|
|
6
6
|
export { makePublicDeletionGate, type PublicDeletionRoutes } from "./public-deletion-gate.tsx";
|
|
7
7
|
export type { RequestAccountDeletionScreenProps } from "./request-deletion-screen.tsx";
|