@cosmicdrift/kumiko-bundled-features 0.378.0 → 0.379.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-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 +0 -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/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/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.js +1 -1
- 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 +1 -1
- package/dist/template-resolver/document-sanitizer.js +3 -3
- package/dist/template-resolver/feature.d.ts +2 -0
- package/dist/template-resolver/feature.js +12 -4
- 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 +1 -1
- package/dist/template-resolver/handlers/collection-list.query.js +1 -1
- package/dist/template-resolver/handlers/collection-set.write.d.ts +2 -1
- package/dist/template-resolver/handlers/collection-set.write.js +14 -2
- package/dist/template-resolver/handlers/copy-locale.write.js +2 -2
- package/dist/template-resolver/handlers/diff-to-system.query.js +5 -1
- package/dist/template-resolver/handlers/discard-draft.write.js +1 -1
- 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/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 +10 -2
- package/dist/template-resolver/handlers/overview.query.js +44 -12
- package/dist/template-resolver/handlers/patch-draft.write.js +1 -1
- package/dist/template-resolver/handlers/resource-shared.js +1 -1
- package/dist/template-resolver/handlers/resource-upload.write.js +1 -1
- package/dist/template-resolver/handlers/send-test.write.js +2 -2
- package/dist/template-resolver/handlers/set.write.js +1 -1
- 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/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 +4 -3
- package/dist/template-resolver/index.js +3 -3
- 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 +1 -1
- package/dist/template-resolver/template-edit-policy.js +1 -1
- 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 +8 -4
- 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 +1 -1
- 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} +1 -1
- package/dist/template-resolver/{constants.js → web/constants.js} +7 -10
- package/dist/template-resolver/web/document-editor-extensions.js +2 -2
- package/dist/template-resolver/web/document-editor.js +0 -1
- package/dist/template-resolver/{document-images.js → web/document-images.js} +0 -1
- package/dist/template-resolver/{document-schema.js → web/document-schema.js} +0 -1
- package/dist/template-resolver/{document-steps.js → web/document-steps.js} +0 -1
- package/dist/template-resolver/web/document-tiptap-editor.js +2 -3
- package/dist/template-resolver/web/document-toolbar-blocks.d.ts +2 -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 +1 -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.js → web/qualified-names.js} +0 -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/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/ledger/changes.json +7 -0
- package/src/presets/changes.json +7 -0
- package/src/tags/changes.json +6 -0
- package/src/template-resolver/changes.json +43 -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-blocks.d.ts → web/document-blocks.d.ts} +0 -0
- /package/dist/template-resolver/{document-blocks.js → web/document-blocks.js} +0 -0
- /package/dist/template-resolver/{document-images.d.ts → web/document-images.d.ts} +0 -0
- /package/dist/template-resolver/{document-schema.d.ts → web/document-schema.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/template-resolver/{qualified-names.d.ts → web/qualified-names.d.ts} +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
package/dist/ledger/web/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Client-safe ledger surface: QN constants, the pure recurring helpers
|
|
3
2
|
// (projection + Soll/Ist merge), and the Zod payload schemas (for client-side
|
|
4
3
|
// pre-validation before dispatch) — nothing else. The full `../ledger` entry
|
|
@@ -6,6 +5,6 @@
|
|
|
6
5
|
// browser bundle that imports from there fails on Node builtins. A client screen
|
|
7
6
|
// (e.g. a rent-cashflow view) imports the dispatch QNs + the pure forecast/merge
|
|
8
7
|
// from HERE, then dispatches via the renderer's useDispatcher.
|
|
9
|
-
export { ACCOUNT_TYPES, LEDGER_FEATURE_NAME, LedgerHandlers, LedgerQueries, SCHEDULE_INTERVALS, TRANSACTION_STATUS, } from "../constants.js";
|
|
10
8
|
export { mergeScheduleActuals, projectSchedule, scheduleReference, } from "../recurring.js";
|
|
11
9
|
export { confirmSchedulePeriodPayloadSchema, postingSchema, } from "../schemas.js";
|
|
10
|
+
export { ACCOUNT_TYPES, LEDGER_FEATURE_NAME, LedgerHandlers, LedgerQueries, SCHEDULE_INTERVALS, TRANSACTION_STATUS, } from "./constants.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
|
|
2
2
|
import { type PublicPageWrapLayout } from "../page-render/index.ts";
|
|
3
|
-
import { type LegalPageRoute, type LegalRequiredBlock } from "./constants.ts";
|
|
3
|
+
import { type LegalPageRoute, type LegalRequiredBlock } from "./web/constants.ts";
|
|
4
4
|
export { type LegalPagesBootCheckCtx, runLegalPagesBootCheck } from "./lib/boot-check.ts";
|
|
5
5
|
export type LegalPagesWrapLayout = PublicPageWrapLayout;
|
|
6
6
|
export type LegalPagesOptions = {
|
|
@@ -2,10 +2,10 @@ import { computeRevisionEtag, etagMatches } from "@cosmicdrift/kumiko-framework/
|
|
|
2
2
|
import { defineFeature, SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
3
|
import { escapeHtml } from "@cosmicdrift/kumiko-renderer/headless";
|
|
4
4
|
import { cachedSecurePageResponse, redirectToCanonicalPath, slashVariantOf, } from "../page-render/index.js";
|
|
5
|
-
import { LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, } from "./constants.js";
|
|
6
5
|
import { runLegalPagesBootCheck } from "./lib/boot-check.js";
|
|
7
6
|
import { validateRoutes } from "./lib/validate-routes.js";
|
|
8
7
|
import { renderMarkdownToHtml, wrapInLayout } from "./markdown.js";
|
|
8
|
+
import { LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, } from "./web/constants.js";
|
|
9
9
|
export { runLegalPagesBootCheck } from "./lib/boot-check.js";
|
|
10
10
|
// QN-Konstante als dokumentierter Public-Contract des template-resolver-
|
|
11
11
|
// Features. Ein magic-string statt eines Code-Imports ist hier explizit
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { LEGAL_OPTIONAL_BLOCKS, LEGAL_PAGES_FEATURE, LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, type LegalPageRoute, LegalPagesErrors, type LegalRequiredBlock, legalPagePath, } from "./constants.ts";
|
|
2
1
|
export { createLegalPagesFeature, type LegalPagesBootCheckCtx, type LegalPagesOptions, runLegalPagesBootCheck, } from "./feature.ts";
|
|
3
2
|
export { createLegalPagesLayout, type LegalPagesLayoutOptions } from "./layout.ts";
|
|
4
3
|
export { renderMarkdownToHtml, wrapInLayout } from "./markdown.ts";
|
|
5
4
|
export { type LegalContentBlock, type LegalContentSeedFn, type LegalContentSeedSource, legalContentSeed, } from "./seed.ts";
|
|
5
|
+
export { LEGAL_OPTIONAL_BLOCKS, LEGAL_PAGES_FEATURE, LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, type LegalPageRoute, LegalPagesErrors, type LegalRequiredBlock, legalPagePath, } from "./web/constants.ts";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { LEGAL_OPTIONAL_BLOCKS, LEGAL_PAGES_FEATURE, LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, LegalPagesErrors, legalPagePath, } from "./constants.js";
|
|
2
1
|
export { createLegalPagesFeature, runLegalPagesBootCheck, } from "./feature.js";
|
|
3
2
|
export { createLegalPagesLayout } from "./layout.js";
|
|
4
3
|
export { renderMarkdownToHtml, wrapInLayout } from "./markdown.js";
|
|
5
4
|
export { legalContentSeed, } from "./seed.js";
|
|
5
|
+
export { LEGAL_OPTIONAL_BLOCKS, LEGAL_PAGES_FEATURE, LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, LegalPagesErrors, legalPagePath, } from "./web/constants.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type TemplateResolverApi } from "@cosmicdrift/kumiko-bundled-features/template-resolver";
|
|
2
|
-
import { type LegalRequiredBlock } from "../constants.ts";
|
|
2
|
+
import { type LegalRequiredBlock } from "../web/constants.ts";
|
|
3
3
|
export type LegalPagesBootCheckCtx = {
|
|
4
4
|
readonly templateResolver?: TemplateResolverApi;
|
|
5
5
|
readonly log?: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { requireTemplateResolver, TEXT_BLOCK_KIND, } from "@cosmicdrift/kumiko-bundled-features/template-resolver";
|
|
2
2
|
import { SYSTEM_TENANT_ID } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
|
-
import { LEGAL_REQUIRED_BLOCKS } from "../constants.js";
|
|
3
|
+
import { LEGAL_REQUIRED_BLOCKS } from "../web/constants.js";
|
|
4
4
|
// Missing required blocks fail the boot only in production; elsewhere they warn,
|
|
5
5
|
// so a dev setup without seeded legal texts still starts. A complete set logs
|
|
6
6
|
// info on purpose, so a skipped check is visible.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LegalPageRoute } from "../constants.ts";
|
|
1
|
+
import type { LegalPageRoute } from "../web/constants.ts";
|
|
2
2
|
export declare function validateRoutes(routes: readonly LegalPageRoute[]): void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Client-Feature-Factory für legal-pages Visual-Tree. Liefert statische
|
|
3
2
|
// Tree-Knoten für die DACH-Compliance-Blöcke (imprint, privacy in de/en).
|
|
4
3
|
// Jeder Knoten linkt auf text-content's edit-Action — reines Cross-Feature-
|
|
@@ -15,7 +14,7 @@
|
|
|
15
14
|
// leer (Provider-Author-Hinweis dass Block existiert aber befüllt werden
|
|
16
15
|
// muss). Aktuell ist legal-pages's Boot-Check der primäre Wächter für
|
|
17
16
|
// fehlende Pflicht-Blocks.
|
|
18
|
-
import { LEGAL_OPTIONAL_BLOCKS, LEGAL_REQUIRED_BLOCKS } from "
|
|
17
|
+
import { LEGAL_OPTIONAL_BLOCKS, LEGAL_REQUIRED_BLOCKS } from "./constants.js";
|
|
19
18
|
const treeProvider = () => (emit) => {
|
|
20
19
|
// V.1.5d Slug-first Verschachtelung (Variante C):
|
|
21
20
|
// 📁 Legal
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Feature name
|
|
3
2
|
export const LEGAL_PAGES_FEATURE = "legal-pages";
|
|
4
3
|
// Required slugs that must exist as text-blocks for production-boot.
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// One mandatory slug per language; anyone who wants more languages extends
|
|
5
|
+
// the list, the boot check is generated dynamically from it.
|
|
7
6
|
export const LEGAL_REQUIRED_BLOCKS = [
|
|
8
7
|
{ slug: "imprint", lang: "de" },
|
|
9
8
|
{ slug: "privacy", lang: "de" },
|
|
10
9
|
];
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// "nice-to-have".
|
|
10
|
+
// Optional blocks that are NOT boot-fail relevant, but whose routes are
|
|
11
|
+
// served when present. EN versions are often only nice-to-have in DACH apps.
|
|
14
12
|
export const LEGAL_OPTIONAL_BLOCKS = [
|
|
15
13
|
{ slug: "imprint", lang: "en" },
|
|
16
14
|
{ slug: "privacy", lang: "en" },
|
|
17
15
|
];
|
|
18
|
-
// Public
|
|
19
|
-
//
|
|
16
|
+
// Public route mapping: URL path -> (slug, lang). DE uses the German
|
|
17
|
+
// standard names, EN the English ones.
|
|
20
18
|
export const LEGAL_ROUTES = [
|
|
21
19
|
{ path: "/legal/impressum", slug: "imprint", lang: "de", titleFallback: "Impressum" },
|
|
22
20
|
{
|
|
@@ -9,10 +9,10 @@ import { bySlugQuery } from "./handlers/by-slug.query.js";
|
|
|
9
9
|
import { byTenantPublishedQuery } from "./handlers/by-tenant-published.query.js";
|
|
10
10
|
import { pageCrudQueries, pageCrudWrites } from "./handlers/page-crud.js";
|
|
11
11
|
import { setWrite } from "./handlers/set.write.js";
|
|
12
|
-
import { MANAGED_PAGES_I18N } from "./i18n.js";
|
|
13
12
|
import { createBrandingSettingsScreen } from "./screens/branding-screen.js";
|
|
14
13
|
import { pageEditScreen, pageListScreen } from "./screens/page-screens.js";
|
|
15
14
|
import { pageEntity } from "./table.js";
|
|
15
|
+
import { MANAGED_PAGES_I18N } from "./web/i18n.js";
|
|
16
16
|
// 60s-shared-cache saves the origin-revalidate roundtrip; CMS edits are live within 60s.
|
|
17
17
|
const PUBLIC_PAGE_CACHE = { kind: "revalidate", maxAgeSeconds: 60 };
|
|
18
18
|
// QN-Konstante als dokumentierter Public-Contract — der Render-Pfad ruft
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
// @runtime client
|
|
2
1
|
// Client-Feature-Factory für managed-pages. Bringt NUR die Übersetzungen mit —
|
|
3
2
|
// die Screens (page-list/page-edit/branding-settings) sind schema-driven
|
|
4
3
|
// (entityList/entityEdit/configEdit), also keine custom-React-Components zu
|
|
5
4
|
// registrieren. Apps mounten es in createKumikoApp({ clientFeatures:
|
|
6
5
|
// [managedPagesClient()] }), damit die Admin-Labels übersetzt rendern.
|
|
7
6
|
import { mergeTranslations } from "@cosmicdrift/kumiko-renderer";
|
|
8
|
-
import { defaultTranslations } from "./
|
|
7
|
+
import { defaultTranslations } from "./default-translations.js";
|
|
9
8
|
export function managedPagesClient(options) {
|
|
10
9
|
return {
|
|
11
10
|
name: "managed-pages",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Client i18n bundle for the managed-pages admin screens. The browser renderer
|
|
2
|
+
// builds its fallback locale store ONLY from clientFeatures[].translations; the
|
|
3
|
+
// server-side r.translations bundle (feature.ts) never reaches it. To render the
|
|
4
|
+
// configEdit/entityEdit labels translated instead of raw, we mirror the same keys here.
|
|
5
|
+
//
|
|
6
|
+
// Single source: pivots MANAGED_PAGES_I18N (key-first { key: {de,en} }, server
|
|
7
|
+
// form) into the locale-first TranslationsByLocale form the client expects, so
|
|
8
|
+
// there is no key duplication and no drift.
|
|
9
|
+
import { translationsByLocaleFromKeys, } from "@cosmicdrift/kumiko-renderer";
|
|
10
|
+
import { MANAGED_PAGES_I18N } from "./i18n.js";
|
|
11
|
+
export const defaultTranslations = translationsByLocaleFromKeys(MANAGED_PAGES_I18N);
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type LocalizedString = {
|
|
2
|
+
readonly en: string;
|
|
3
|
+
};
|
|
4
|
+
export declare const MANAGED_PAGES_I18N: Readonly<Record<string, LocalizedString>>;
|
|
5
|
+
export {};
|
|
@@ -1,13 +1,54 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// server-seitige r.translations-Bundle (feature.ts) erreicht ihn nie. Damit die
|
|
5
|
-
// configEdit/entityEdit-Labels im Client übersetzt rendern statt roh, spiegeln
|
|
6
|
-
// wir hier dieselben Keys.
|
|
1
|
+
// Pure data (i18n keys) that lives under web/ so the web bundle may pivot it into
|
|
2
|
+
// the browser store; feature.ts (server) imports it as well (the server may import
|
|
3
|
+
// client-safe pure data, like PAT constants.ts).
|
|
7
4
|
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
// Translation bundle for the managed-pages admin screens. Without these keys the
|
|
6
|
+
// UI renders the raw i18n keys (screen:*.title, entity:*:field:*, section
|
|
7
|
+
// headers). Once a feature calls r.translations, the boot validator
|
|
8
|
+
// (required-surface-keys) demands the COMPLETE required-surface set in de+en;
|
|
9
|
+
// this file covers every screen/field/section key managed-pages registers. The
|
|
10
|
+
// two customCss keys are always supplied (harmless with allowCustomCss:false, but
|
|
11
|
+
// required for consumers that enable it).
|
|
12
|
+
export const MANAGED_PAGES_I18N = {
|
|
13
|
+
// Screen titles (global/unprefixed, screenTitleKey = screen:<id>.title)
|
|
14
|
+
"screen:page-list.title": { en: "Pages" },
|
|
15
|
+
"screen:page-edit.title": { en: "Edit page" },
|
|
16
|
+
"screen:branding-settings.title": { en: "Branding" },
|
|
17
|
+
// Page-Entity Feld-Labels (managed-pages:entity:page:field:*)
|
|
18
|
+
"managed-pages:entity:page:field:slug": { en: "Slug" },
|
|
19
|
+
"managed-pages:entity:page:field:lang": { en: "Language" },
|
|
20
|
+
"managed-pages:entity:page:field:title": { en: "Title" },
|
|
21
|
+
"managed-pages:entity:page:field:published": { en: "Published" },
|
|
22
|
+
"managed-pages:entity:page:field:published:option:true": {
|
|
23
|
+
en: "Published",
|
|
24
|
+
},
|
|
25
|
+
"managed-pages:entity:page:field:published:option:false": { en: "Draft" },
|
|
26
|
+
"managed-pages:entity:page:field:description": { en: "Description" },
|
|
27
|
+
"managed-pages:entity:page:field:ogImage": { en: "OG image" },
|
|
28
|
+
"managed-pages:entity:page:field:body": { en: "Content" },
|
|
29
|
+
// Config-Edit Feld-Labels (managed-pages:entity:__config-edit__:field:*, camelCase Form-Keys)
|
|
30
|
+
"managed-pages:entity:__config-edit__:field:title": { en: "Site title" },
|
|
31
|
+
"managed-pages:entity:__config-edit__:field:description": {
|
|
32
|
+
en: "Description",
|
|
33
|
+
},
|
|
34
|
+
"managed-pages:entity:__config-edit__:field:siteUrl": { en: "Site URL" },
|
|
35
|
+
"managed-pages:entity:__config-edit__:field:accentColor": {
|
|
36
|
+
en: "Accent color",
|
|
37
|
+
},
|
|
38
|
+
"managed-pages:entity:__config-edit__:field:logoUrl": { en: "Logo URL" },
|
|
39
|
+
"managed-pages:entity:__config-edit__:field:logoFile": { en: "Logo file" },
|
|
40
|
+
"managed-pages:entity:__config-edit__:field:layoutPreset": { en: "Layout" },
|
|
41
|
+
// Section-Header
|
|
42
|
+
"managed-pages:section.meta": { en: "Metadata" },
|
|
43
|
+
"managed-pages:section.body": { en: "Content" },
|
|
44
|
+
"managed-pages:branding.section.identity": { en: "Identity" },
|
|
45
|
+
// Row-Actions + Confirm (pageListScreen)
|
|
46
|
+
"managed-pages:actions.edit": { en: "Edit" },
|
|
47
|
+
"managed-pages:actions.delete": { en: "Delete" },
|
|
48
|
+
"managed-pages:confirms.page-delete": {
|
|
49
|
+
en: "Delete this page?",
|
|
50
|
+
},
|
|
51
|
+
// Nur bei allowCustomCss:true im Screen — unconditional geliefert
|
|
52
|
+
"managed-pages:entity:__config-edit__:field:customCss": { en: "Custom CSS" },
|
|
53
|
+
"managed-pages:branding.section.custom-css": { en: "Custom CSS" },
|
|
54
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { type ManagedPagesClientOptions, managedPagesClient } from "./client-plugin.tsx";
|
|
2
|
-
export { defaultTranslations } from "./
|
|
2
|
+
export { defaultTranslations } from "./default-translations.ts";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { WhereObject } from "@cosmicdrift/kumiko-framework/db";
|
|
2
2
|
import type { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
3
3
|
import type { TenantDb } from "@cosmicdrift/kumiko-types/tenant-db-types";
|
|
4
|
-
import { type MetricRange } from "./constants.ts";
|
|
5
4
|
import type { MetricDefinition, MetricResult } from "./types.ts";
|
|
5
|
+
import { type MetricRange } from "./web/constants.ts";
|
|
6
6
|
export type MetricRunParams = {
|
|
7
7
|
readonly range: MetricRange;
|
|
8
8
|
readonly timeZone: string;
|
package/dist/metrics/compute.js
CHANGED
package/dist/metrics/feature.js
CHANGED
|
@@ -3,10 +3,10 @@ import { InternalError, ValidationError } from "@cosmicdrift/kumiko-framework/er
|
|
|
3
3
|
import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
4
4
|
import * as z from "zod";
|
|
5
5
|
import { runMetric } from "./compute.js";
|
|
6
|
-
import { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, } from "./constants.js";
|
|
7
6
|
import { metricFilterPayloadShape, metricFilterWhere, resolveMetricFilterWhere, } from "./filters.js";
|
|
8
7
|
import { METRICS_I18N } from "./i18n.js";
|
|
9
8
|
import { metricHasTenantColumn, validateMetrics } from "./validate.js";
|
|
9
|
+
import { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, } from "./web/constants.js";
|
|
10
10
|
import { isValidTimeZone } from "./window.js";
|
|
11
11
|
const DEFAULT_RANGE = "7d";
|
|
12
12
|
const DEFAULT_TIME_ZONE = "UTC";
|
package/dist/metrics/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, type MetricRange, type MetricScope, metricQueryName, } from "./constants.ts";
|
|
2
1
|
export { activeTenantsMetric, activeUsersMetric, auditWritesMetric, DEFAULT_METRICS, deliveriesByChannelMetric, failedDeliveriesMetric, failedJobRunsMetric, jobRunsByStatusMetric, tenantJobFailuresMetric, } from "./default-metrics.ts";
|
|
3
2
|
export { createMetricsFeature, createSystemMetricsFeature } from "./feature.ts";
|
|
4
3
|
export { METRICS_I18N } from "./i18n.ts";
|
|
5
4
|
export { defineMetric, type MetricDefinition, type MetricFilterResolver, type MetricPoint, type MetricResult, type MetricRow, type MetricSegment, type MetricSeries, type MetricsFeatureOptions, } from "./types.ts";
|
|
5
|
+
export { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, type MetricRange, type MetricScope, metricQueryName, } from "./web/constants.ts";
|
package/dist/metrics/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Public API of the metrics bundled-feature.
|
|
2
|
-
export { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, metricQueryName, } from "./constants.js";
|
|
3
2
|
export { activeTenantsMetric, activeUsersMetric, auditWritesMetric, DEFAULT_METRICS, deliveriesByChannelMetric, failedDeliveriesMetric, failedJobRunsMetric, jobRunsByStatusMetric, tenantJobFailuresMetric, } from "./default-metrics.js";
|
|
4
3
|
export { createMetricsFeature, createSystemMetricsFeature } from "./feature.js";
|
|
5
4
|
export { METRICS_I18N } from "./i18n.js";
|
|
6
5
|
export { defineMetric, } from "./types.js";
|
|
6
|
+
export { METRIC_RANGES, METRICS_FEATURE, METRICS_SYSTEM_FEATURE, metricQueryName, } from "./web/constants.js";
|
package/dist/metrics/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { AggregateMeasure, AggregateTimeBucket } from "@cosmicdrift/kumiko-
|
|
|
4
4
|
import type { SchemaTable } from "@cosmicdrift/kumiko-types/schema-table-types";
|
|
5
5
|
import type { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
6
6
|
import type { WhereObject } from "@cosmicdrift/kumiko-types/where-clause-types";
|
|
7
|
-
import type { MetricRange, MetricScope } from "./constants.ts";
|
|
7
|
+
import type { MetricRange, MetricScope } from "./web/constants.ts";
|
|
8
8
|
/** Maps a payload value (e.g. a folder id) to the values `column` may have (e.g. the folder and its subfolders' loan ids). Runs with the tenant handler context, so reads stay tenant-scoped; the result only narrows. An empty result yields no rows. */
|
|
9
9
|
export type MetricFilterResolver = {
|
|
10
10
|
readonly column: string;
|
package/dist/metrics/validate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extractTableInfo, isTimestamptzType } from "@cosmicdrift/kumiko-framework/db";
|
|
2
|
-
import { METRIC_RANGES } from "./constants.js";
|
|
3
2
|
import { filterValueKindOf, metricFilterEntries, RESERVED_PAYLOAD_KEYS } from "./filters.js";
|
|
3
|
+
import { METRIC_RANGES } from "./web/constants.js";
|
|
4
4
|
const KEBAB_ID = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
|
|
5
5
|
const FILTER_PAYLOAD_KEY = /^[a-z][a-zA-Z0-9]*$/;
|
|
6
6
|
const TENANT_ID_FIELD = "tenantId";
|
package/dist/metrics/window.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AggregateTimeBucket } from "@cosmicdrift/kumiko-types/aggregate-types";
|
|
2
2
|
import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
3
|
-
import type { MetricRange } from "./constants.ts";
|
|
4
3
|
import type { MetricDefinition } from "./types.ts";
|
|
4
|
+
import type { MetricRange } from "./web/constants.ts";
|
|
5
5
|
export type MetricWindow = {
|
|
6
6
|
readonly start: Temporal.Instant;
|
|
7
7
|
readonly end: Temporal.Instant;
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
// erasure without a delete path.
|
|
15
15
|
import { defineEntityListHandler, defineFeature, } from "@cosmicdrift/kumiko-framework/engine";
|
|
16
16
|
import { assertNoWhereRuleInOwnershipWrite } from "../shared/index.js";
|
|
17
|
-
import { DEFAULT_NOTES_HISTORY_ACCESS, NOTES_HISTORY_FEATURE_NAME } from "./constants.js";
|
|
18
17
|
import { createNoteEntryEntity, noteMentionEntity } from "./entity.js";
|
|
19
18
|
import { createNoteEntryExecutor } from "./executor.js";
|
|
20
19
|
import { createAddNoteHandler } from "./handlers/add-note.write.js";
|
|
21
20
|
import { NOTES_HISTORY_FEATURE_I18N } from "./i18n.js";
|
|
21
|
+
import { DEFAULT_NOTES_HISTORY_ACCESS, NOTES_HISTORY_FEATURE_NAME } from "./web/constants.js";
|
|
22
22
|
function registerNotesHistory(r, access, ownership, parents) {
|
|
23
23
|
r.describe("Generic, host-agnostic, append-only note history for any entity. Owns one event-sourced entity, `note-entry` (`read_note_entries`), keyed by (entityType, entityId) — so attaching notes adds NO column to the host entity and needs no relational pivot or JOIN. Provides a `create` write-handler (author stamped server-side from the caller, never client-supplied) and a `list` query filterable on entityId. Deliberately append-only: no update or delete handler is registered — a correction is a new entry, not an edit, so who-said-what-when stays reconstructable. Every path uses one access rule — adopt the host's model with createNotesHistoryFeature({ access: { openToAll: { reason } } }) or pin roles with createNotesHistoryFeature({ roles }).");
|
|
24
24
|
r.uiHints({
|
|
@@ -3,9 +3,9 @@ import { ValidationError, writeFailure } from "@cosmicdrift/kumiko-framework/err
|
|
|
3
3
|
import { decryptStoredPii, denyUnlessJoinRowParentVisible } from "../../shared/index.js";
|
|
4
4
|
import { tenantMembershipsTable } from "../../tenant/index.js";
|
|
5
5
|
import { userTable } from "../../user/index.js";
|
|
6
|
-
import { DEFAULT_NOTES_HISTORY_ACCESS } from "../constants.js";
|
|
7
6
|
import { noteEntryExecutor, noteMentionExecutor } from "../executor.js";
|
|
8
7
|
import { addNotePayloadSchema } from "../schemas.js";
|
|
8
|
+
import { DEFAULT_NOTES_HISTORY_ACCESS } from "../web/constants.js";
|
|
9
9
|
const READ_AUTHOR_DISPLAY_NAME_REASON = "reads the author's displayName from the global users table inside a savepoint so a missing user feature cannot poison the note transaction";
|
|
10
10
|
// add-note — appends a note-entry to (entityType, entityId). authorId is
|
|
11
11
|
// NEVER read from the payload: it is always the authenticated caller
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { DEFAULT_NOTES_HISTORY_ACCESS, DEFAULT_NOTES_HISTORY_ROLES, NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./constants.ts";
|
|
2
1
|
export { noteEntryEntity, noteMentionEntity } from "./entity.ts";
|
|
3
2
|
export { noteEntryExecutor, noteEntryTable, noteMentionExecutor, noteMentionTable, } from "./executor.ts";
|
|
4
3
|
export { createNotesHistoryFeature, type NotesHistoryFeatureOptions, } from "./feature.ts";
|
|
5
4
|
export { addNoteHandler, createAddNoteHandler, } from "./handlers/add-note.write.ts";
|
|
6
5
|
export { type AddNotePayload, addNotePayloadSchema } from "./schemas.ts";
|
|
6
|
+
export { DEFAULT_NOTES_HISTORY_ACCESS, DEFAULT_NOTES_HISTORY_ROLES, NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./web/constants.ts";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { DEFAULT_NOTES_HISTORY_ACCESS, DEFAULT_NOTES_HISTORY_ROLES, NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./constants.js";
|
|
2
1
|
export { noteEntryEntity, noteMentionEntity } from "./entity.js";
|
|
3
2
|
export { noteEntryExecutor, noteEntryTable, noteMentionExecutor, noteMentionTable, } from "./executor.js";
|
|
4
3
|
export { createNotesHistoryFeature, } from "./feature.js";
|
|
5
4
|
export { addNoteHandler, createAddNoteHandler, } from "./handlers/add-note.write.js";
|
|
6
5
|
export { addNotePayloadSchema } from "./schemas.js";
|
|
6
|
+
export { DEFAULT_NOTES_HISTORY_ACCESS, DEFAULT_NOTES_HISTORY_ROLES, NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./web/constants.js";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME } from "../constants.js";
|
|
1
|
+
import { NOTES_HISTORY_FEATURE_NAME, NOTES_SECTION_EXTENSION_NAME } from "./constants.js";
|
|
3
2
|
import { defaultTranslations } from "./i18n.js";
|
|
4
3
|
import { NotesSection } from "./notes-section.js";
|
|
5
4
|
export function notesHistoryClient() {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "../constants.ts";
|
|
2
1
|
export { notesHistoryClient } from "./client-plugin.tsx";
|
|
2
|
+
export { NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./constants.ts";
|
|
3
3
|
export { NotesSection } from "./notes-section.tsx";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @runtime client
|
|
2
|
-
export { NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "../constants.js";
|
|
3
1
|
export { notesHistoryClient } from "./client-plugin.js";
|
|
2
|
+
export { NOTES_SECTION_EXTENSION_NAME, NotesHistoryHandlers, NotesHistoryQueries, } from "./constants.js";
|
|
4
3
|
export { NotesSection } from "./notes-section.js";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
// @runtime client
|
|
3
2
|
// NotesSection — drop-in note history for ANY entity. Shows every note
|
|
4
3
|
// chronologically (newest first) with author + timestamp, plus a textarea to
|
|
5
4
|
// append a new one. Append-only: there is no edit/delete affordance because
|
|
@@ -13,9 +12,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
12
|
// (RenderEdit passes { entityName, entityId }).
|
|
14
13
|
import { formatWhen, useDispatcher, usePrimitives, useQuery, useTranslation, } from "@cosmicdrift/kumiko-renderer";
|
|
15
14
|
import { useState } from "react";
|
|
16
|
-
import { NotesHistoryHandlers, NotesHistoryQueries } from "
|
|
15
|
+
import { NotesHistoryHandlers, NotesHistoryQueries } from "./constants.js";
|
|
17
16
|
// Matches @cosmicdrift/kumiko-framework/crypto PII_ERASED_SENTINEL — cannot
|
|
18
|
-
// import that module from
|
|
17
|
+
// import that module from client code (runtime-isolation).
|
|
19
18
|
const PII_ERASED_SENTINEL = "[[erased]]";
|
|
20
19
|
function displayAuthorName(authorName, unknownLabel) {
|
|
21
20
|
return authorName && authorName !== PII_ERASED_SENTINEL ? authorName : unknownLabel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type FeatureDefinition, type ProjectionListScreenDefinition } from "@cosmicdrift/kumiko-framework/engine";
|
|
2
|
-
import { type PatRateLimit } from "./constants.ts";
|
|
3
2
|
import { type CreatePatOptions } from "./handlers/create.write.ts";
|
|
4
|
-
import type
|
|
3
|
+
import { type PatRateLimit } from "./web/constants.ts";
|
|
4
|
+
import type { PatScopeConfig } from "./web/scopes.ts";
|
|
5
5
|
export type BindPatAutoRevokeOnPasswordChange = (revoker: (userId: string) => Promise<number>) => void;
|
|
6
6
|
export declare function bindPatAutoRevokeOnPasswordChangeFromFeature(feature: FeatureDefinition): BindPatAutoRevokeOnPasswordChange | undefined;
|
|
7
7
|
export type PersonalAccessTokensOptions = {
|
|
@@ -2,7 +2,6 @@ import { EXT_TOKEN_VERIFIER, } from "@cosmicdrift/kumiko-bundled-features/auth-f
|
|
|
2
2
|
import { PAT_TOKEN_PREFIX } from "@cosmicdrift/kumiko-framework/api";
|
|
3
3
|
import { deriveEntityTableMeta } from "@cosmicdrift/kumiko-framework/db";
|
|
4
4
|
import { defineFeature, } from "@cosmicdrift/kumiko-framework/engine";
|
|
5
|
-
import { API_TOKEN_ENTITY_NAME, PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, } from "./constants.js";
|
|
6
5
|
import { availabilityQuery } from "./handlers/availability.query.js";
|
|
7
6
|
import { buildAvailableScopesQuery } from "./handlers/available-scopes.query.js";
|
|
8
7
|
import { createPatCreateHandler } from "./handlers/create.write.js";
|
|
@@ -13,6 +12,7 @@ import { PAT_REVOKED_EVENT_SHORT, patRevokedSchema } from "./pat-revoked-event.j
|
|
|
13
12
|
import { createPatResolver } from "./resolver.js";
|
|
14
13
|
import { apiTokenEntity } from "./schema/api-token.js";
|
|
15
14
|
import { createPatMintScreen, patListScreen } from "./screens.js";
|
|
15
|
+
import { API_TOKEN_ENTITY_NAME, PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, } from "./web/constants.js";
|
|
16
16
|
// Password-change is the only field-level trigger — see the postSave hook
|
|
17
17
|
// below. MFA-enable/disable is wired separately (auth-mfa's
|
|
18
18
|
// revokeAllPatTokens callback, late-bound at app-composition time) since
|
|
@@ -82,11 +82,14 @@ export function createPersonalAccessTokensFeature(options) {
|
|
|
82
82
|
// is r.systemScope()'d (the user aggregate is a systemStream, framework
|
|
83
83
|
// #497), so a postSave hook on "user" gets a poisoned ctx.db here. The
|
|
84
84
|
// concrete revoker is bound once run{Prod,Dev}App has a real db handle.
|
|
85
|
-
|
|
85
|
+
// Explicit option wins; the runtime binding is replaceable so a second boot of the same
|
|
86
|
+
// feature instance binds its own database.
|
|
87
|
+
let boundAutoRevoke;
|
|
86
88
|
r.hook({
|
|
87
89
|
type: "postSave",
|
|
88
90
|
target: { allOf: "user" },
|
|
89
91
|
handler: async (result) => {
|
|
92
|
+
const autoRevokeOnPasswordChange = options.autoRevokeOnPasswordChange ?? boundAutoRevoke;
|
|
90
93
|
// skip: nothing bound — same late-bind pattern as sessions/feature.ts
|
|
91
94
|
if (!autoRevokeOnPasswordChange)
|
|
92
95
|
return;
|
|
@@ -101,8 +104,7 @@ export function createPersonalAccessTokensFeature(options) {
|
|
|
101
104
|
},
|
|
102
105
|
});
|
|
103
106
|
const bindAutoRevokeOnPasswordChange = (revoker) => {
|
|
104
|
-
|
|
105
|
-
autoRevokeOnPasswordChange ??= revoker;
|
|
107
|
+
boundAutoRevoke = revoker;
|
|
106
108
|
};
|
|
107
109
|
const handlers = {
|
|
108
110
|
create: r.writeHandler(createPatCreateHandler({ mfaVerifier: options.mfaVerifier })),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
|
-
import type { PatScopeConfig } from "../scopes.ts";
|
|
2
|
+
import type { PatScopeConfig } from "../web/scopes.ts";
|
|
3
3
|
export declare function buildAvailableScopesQuery(scopes: PatScopeConfig): import("@cosmicdrift/kumiko-types/define-handler").QueryHandlerDefinition<"available-scopes", z.ZodObject<{}, z.core.$strip>, {
|
|
4
4
|
name: string;
|
|
5
5
|
label: string;
|
|
@@ -6,9 +6,9 @@ import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
|
6
6
|
import * as z from "zod";
|
|
7
7
|
import { encryptForDirectWrite, verifyPassword } from "../../shared/index.js";
|
|
8
8
|
import { UserQueries } from "../../user/index.js";
|
|
9
|
-
import { API_TOKEN_ENTITY_NAME, PAT_DEFAULT_EXPIRES_IN_DAYS, PatErrors } from "../constants.js";
|
|
10
9
|
import { mintPatToken } from "../hash.js";
|
|
11
10
|
import { apiTokenEntity, apiTokenTable } from "../schema/api-token.js";
|
|
11
|
+
import { API_TOKEN_ENTITY_NAME, PAT_DEFAULT_EXPIRES_IN_DAYS, PatErrors } from "../web/constants.js";
|
|
12
12
|
// @wrapper-known error-helper
|
|
13
13
|
function reauthFailed() {
|
|
14
14
|
return writeFailure(new UnprocessableError(PatErrors.reauthRequired, {
|
|
@@ -4,9 +4,9 @@ import { UnprocessableError, writeFailure } from "@cosmicdrift/kumiko-framework/
|
|
|
4
4
|
import { generateId } from "@cosmicdrift/kumiko-framework/utils";
|
|
5
5
|
import { Temporal } from "@cosmicdrift/kumiko-types/temporal";
|
|
6
6
|
import * as z from "zod";
|
|
7
|
-
import { API_TOKEN_ENTITY_NAME, PatErrors } from "../constants.js";
|
|
8
7
|
import { PAT_REVOKED_AGGREGATE_TYPE, PAT_REVOKED_EVENT_QN } from "../pat-revoked-event.js";
|
|
9
8
|
import { apiTokenTable } from "../schema/api-token.js";
|
|
9
|
+
import { API_TOKEN_ENTITY_NAME, PatErrors } from "../web/constants.js";
|
|
10
10
|
// Revoke one of the caller's own tokens. Ownership is enforced in the WHERE
|
|
11
11
|
// (userId = caller), so a caller can't revoke another user's token and a miss
|
|
12
12
|
// is a uniform ownership error with no existence oracle. isNull(revokedAt)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { generateToken, PAT_TOKEN_PREFIX } from "@cosmicdrift/kumiko-framework/api";
|
|
3
|
-
import { PAT_PREFIX_DISPLAY_LENGTH } from "./constants.js";
|
|
3
|
+
import { PAT_PREFIX_DISPLAY_LENGTH } from "./web/constants.js";
|
|
4
4
|
// A PAT is high-entropy (32 random bytes from generateToken). A single SHA-256
|
|
5
5
|
// is the right hash here: fast on the per-request auth path, and there's no
|
|
6
6
|
// brute-force surface that would justify argon2 (that's for low-entropy
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ACTION_FORM_ENTITY } from "@cosmicdrift/kumiko-framework/ui-types";
|
|
2
2
|
import { fieldLabelKey, fieldOptionLabelKey } from "@cosmicdrift/kumiko-renderer/headless";
|
|
3
|
-
import { PAT_FEATURE } from "./constants.js";
|
|
3
|
+
import { PAT_FEATURE } from "./web/constants.js";
|
|
4
4
|
const mintFieldKey = (field) => fieldLabelKey(PAT_FEATURE, ACTION_FORM_ENTITY, field);
|
|
5
5
|
const scopeOptionKey = (grant) => fieldOptionLabelKey(PAT_FEATURE, ACTION_FORM_ENTITY, "scopes", grant);
|
|
6
6
|
export const PAT_FEATURE_I18N = {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { FeatureDefinition } from "@cosmicdrift/kumiko-framework/engine";
|
|
2
|
-
import { type PatRateLimit } from "./constants.ts";
|
|
3
|
-
export type { PatRateLimit } from "./constants.ts";
|
|
4
|
-
export { PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, PatHandlers, PatQueries } from "./constants.ts";
|
|
2
|
+
import { type PatRateLimit } from "./web/constants.ts";
|
|
5
3
|
export type { BindPatAutoRevokeOnPasswordChange, PersonalAccessTokensOptions } from "./feature.ts";
|
|
6
4
|
export { bindPatAutoRevokeOnPasswordChangeFromFeature, createPersonalAccessTokensFeature, } from "./feature.ts";
|
|
7
5
|
export type { CreatePatOptions, PatMfaVerifyResult } from "./handlers/create.write.ts";
|
|
@@ -10,6 +8,8 @@ export { PAT_REVOKED_AGGREGATE_TYPE, PAT_REVOKED_EVENT_QN, PAT_REVOKED_EVENT_SHO
|
|
|
10
8
|
export { createPatResolver } from "./resolver.ts";
|
|
11
9
|
export { revokeAllPatTokensForUser } from "./revoke-for-user.ts";
|
|
12
10
|
export { apiTokenEntity, apiTokenTable } from "./schema/api-token.ts";
|
|
13
|
-
export type {
|
|
14
|
-
export {
|
|
11
|
+
export type { PatRateLimit } from "./web/constants.ts";
|
|
12
|
+
export { PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, PatHandlers, PatQueries } from "./web/constants.ts";
|
|
13
|
+
export type { PatScopeConfig, PatScopeDef } from "./web/scopes.ts";
|
|
14
|
+
export { expandScopes } from "./web/scopes.ts";
|
|
15
15
|
export declare function patRateLimitFromFeature(feature: FeatureDefinition): PatRateLimit;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { PAT_DEFAULT_RATE_LIMIT } from "./constants.js";
|
|
2
|
-
export { PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, PatHandlers, PatQueries } from "./constants.js";
|
|
1
|
+
import { PAT_DEFAULT_RATE_LIMIT } from "./web/constants.js";
|
|
3
2
|
export { bindPatAutoRevokeOnPasswordChangeFromFeature, createPersonalAccessTokensFeature, } from "./feature.js";
|
|
4
3
|
export { hashPatToken, mintPatToken } from "./hash.js";
|
|
5
4
|
export { PAT_REVOKED_AGGREGATE_TYPE, PAT_REVOKED_EVENT_QN, PAT_REVOKED_EVENT_SHORT, patRevokedSchema, } from "./pat-revoked-event.js";
|
|
6
5
|
export { createPatResolver } from "./resolver.js";
|
|
7
6
|
export { revokeAllPatTokensForUser } from "./revoke-for-user.js";
|
|
8
7
|
export { apiTokenEntity, apiTokenTable } from "./schema/api-token.js";
|
|
9
|
-
export {
|
|
8
|
+
export { PAT_DEFAULT_RATE_LIMIT, PAT_FEATURE, PatHandlers, PatQueries } from "./web/constants.js";
|
|
9
|
+
export { expandScopes } from "./web/scopes.js";
|
|
10
10
|
// Reads the per-token rate-limit config off a mounted PAT feature's exports.
|
|
11
11
|
// Falls back to the default when absent. run-prod-app uses this to build the
|
|
12
12
|
// limiter from the same declaration the feature was given.
|