@cosmicdrift/kumiko-bundled-features 0.374.0 → 0.377.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/constants.d.ts +1 -0
- package/dist/account-security/constants.js +1 -0
- package/dist/account-security/index.d.ts +1 -1
- package/dist/account-security/index.js +1 -1
- package/dist/admin-shell/web/client-plugin.d.ts +1 -1
- package/dist/audit/web/client-plugin.d.ts +1 -1
- package/dist/auth-email-password/mail-notifications.js +1 -1
- package/dist/auth-email-password/web/auth-client.js +1 -1
- package/dist/auth-email-password/web/auth-form-primitives.js +1 -1
- package/dist/auth-email-password/web/default-topbar-actions.js +1 -1
- package/dist/auth-email-password/web/index.js +1 -1
- package/dist/auth-email-password/web/session.js +1 -1
- package/dist/auth-email-password/web/tenant-menu-items.js +1 -1
- package/dist/auth-email-password/web/tenant-switcher.js +1 -1
- package/dist/auth-email-password/web/user-menu.js +1 -1
- package/dist/auth-foundation/env.d.ts +9 -0
- package/dist/auth-foundation/env.js +21 -0
- package/dist/auth-foundation/index.d.ts +1 -0
- package/dist/auth-foundation/index.js +1 -0
- package/dist/auth-mfa/schema/user-mfa.d.ts +6 -6
- package/dist/billing-foundation/consumer-protection/confirmation-mail.js +1 -1
- package/dist/billing-foundation/consumer-protection/termination-pages.js +1 -1
- package/dist/billing-foundation/contact-card.d.ts +2 -0
- package/dist/billing-foundation/contact-card.js +16 -0
- package/dist/billing-foundation/entities.d.ts +8 -8
- package/dist/billing-foundation/handlers/billing-plans.query.js +1 -1
- package/dist/billing-foundation/index.d.ts +1 -1
- package/dist/billing-foundation/plan-catalog.js +1 -0
- package/dist/billing-foundation/projection.d.ts +8 -8
- package/dist/billing-foundation/types.d.ts +11 -0
- package/dist/billing-foundation/validate-options.js +13 -0
- package/dist/billing-foundation/web/billing-contact-plan.d.ts +5 -0
- package/dist/billing-foundation/web/billing-contact-plan.js +17 -0
- package/dist/billing-foundation/web/billing-plans-panel.js +5 -13
- package/dist/billing-foundation/web/cancel-contract-dialog.js +2 -2
- package/dist/billing-foundation/web/checkout-consent-dialog.d.ts +1 -1
- package/dist/billing-foundation/web/checkout-consent-dialog.js +1 -0
- package/dist/billing-foundation/web/client-plugin.d.ts +1 -1
- package/dist/billing-foundation/web/localized-params.d.ts +1 -0
- package/dist/billing-foundation/web/localized-params.js +11 -0
- package/dist/cap-counter/entity.d.ts +1 -1
- package/dist/cap-overview/web/cap-cards-panel.js +3 -3
- package/dist/cap-overview/web/client-plugin.d.ts +1 -1
- package/dist/channel-email/email-channel.d.ts +2 -1
- package/dist/compliance-profiles/web/client-plugin.d.ts +1 -1
- package/dist/config/feature.js +2 -2
- package/dist/config/table.d.ts +6 -6
- package/dist/custom-fields/entity.d.ts +4 -4
- package/dist/custom-fields/web/client-plugin.d.ts +1 -1
- package/dist/data-retention/schema/tenant-retention-override.d.ts +4 -4
- package/dist/delivery/tables.d.ts +6 -6
- package/dist/delivery/unsubscribe-page.js +1 -1
- package/dist/delivery/web/client-plugin.d.ts +1 -1
- package/dist/delivery/web/delivery-status-cell.js +1 -1
- package/dist/document-ingest-foundation/entity.d.ts +4 -4
- package/dist/feature-toggles/web/client-plugin.d.ts +1 -1
- package/dist/file-provider-s3/env-named-feature.d.ts +17 -0
- package/dist/file-provider-s3/env-named-feature.js +23 -0
- package/dist/file-provider-s3/env-schema.d.ts +7 -0
- package/dist/file-provider-s3/env-schema.js +15 -10
- package/dist/file-provider-s3/index.d.ts +1 -0
- package/dist/file-provider-s3/index.js +1 -0
- package/dist/folders/entity.d.ts +8 -8
- package/dist/folders/web/client-plugin.d.ts +1 -1
- package/dist/form-draft/entity.d.ts +2 -2
- package/dist/host-routing/constants.d.ts +2 -0
- package/dist/host-routing/constants.js +3 -0
- package/dist/host-routing/dispatch.d.ts +1 -1
- package/dist/host-routing/dispatch.js +35 -25
- package/dist/host-routing/feature.js +100 -27
- package/dist/host-routing/host.d.ts +9 -0
- package/dist/host-routing/host.js +24 -2
- package/dist/host-routing/index.d.ts +2 -1
- package/dist/host-routing/index.js +1 -0
- package/dist/host-routing/options.d.ts +14 -0
- package/dist/host-routing/redirects.d.ts +6 -0
- package/dist/host-routing/redirects.js +27 -0
- package/dist/host-routing/tenant-lookup.d.ts +7 -0
- package/dist/host-routing/tenant-lookup.js +39 -0
- package/dist/host-routing/validate-options.js +34 -1
- package/dist/inbound-mail-foundation/entities.d.ts +25 -25
- package/dist/inbound-mail-foundation/feature.js +7 -0
- package/dist/inbound-mail-foundation/i18n.d.ts +3 -0
- package/dist/inbound-mail-foundation/i18n.js +35 -0
- package/dist/inbound-mail-foundation/index.d.ts +1 -0
- package/dist/inbound-mail-foundation/index.js +1 -0
- package/dist/inbound-mail-foundation/projection.d.ts +20 -20
- package/dist/inbound-mail-foundation/screens.d.ts +7 -0
- package/dist/inbound-mail-foundation/screens.js +86 -0
- package/dist/inbound-mail-foundation/types.d.ts +2 -2
- package/dist/jobs/job-run-table.d.ts +6 -6
- package/dist/jobs/web/client-plugin.d.ts +1 -1
- package/dist/ledger/entity.d.ts +13 -13
- package/dist/legal-pages/feature.js +11 -1
- package/dist/legal-pages/layout.d.ts +2 -2
- package/dist/legal-pages/layout.js +4 -4
- package/dist/legal-pages/web/client-plugin.d.ts +1 -1
- package/dist/mail-foundation/feature.d.ts +20 -21
- package/dist/mail-foundation/feature.js +1 -1
- package/dist/managed-pages/table.d.ts +12 -12
- package/dist/managed-pages/web/client-plugin.d.ts +1 -1
- package/dist/notes-history/entity.d.ts +12 -12
- package/dist/notes-history/web/client-plugin.d.ts +1 -1
- package/dist/page-render/branding.js +1 -1
- package/dist/page-render/layout.d.ts +1 -1
- package/dist/page-render/layout.js +2 -2
- package/dist/page-render/markdown.js +1 -1
- package/dist/personal-access-tokens/i18n.js +1 -1
- package/dist/personal-access-tokens/schema/api-token.d.ts +6 -6
- package/dist/personal-access-tokens/screens.js +1 -1
- package/dist/secrets/feature.d.ts +1 -1
- package/dist/secrets/feature.js +3 -3
- package/dist/secrets/table.d.ts +1 -1
- package/dist/seo/sitemap.js +1 -1
- package/dist/sessions/schema/user-session.d.ts +4 -4
- package/dist/shared/mail-template-body.js +1 -1
- package/dist/shared/purge-files-reaching-subject.js +98 -3
- package/dist/tags/entity.d.ts +9 -9
- package/dist/tags/web/client-plugin.d.ts +1 -1
- package/dist/template-resolver/document-blocks.d.ts +5 -0
- package/dist/template-resolver/document-blocks.js +21 -0
- package/dist/template-resolver/document-ops.d.ts +167 -0
- package/dist/template-resolver/document-ops.js +390 -0
- package/dist/template-resolver/document-sanitizer.d.ts +3 -0
- package/dist/template-resolver/document-sanitizer.js +6 -0
- package/dist/template-resolver/feature.d.ts +2 -0
- package/dist/template-resolver/feature.js +4 -0
- package/dist/template-resolver/handlers/bundle-import.js +1 -0
- package/dist/template-resolver/handlers/document-base.d.ts +23 -0
- package/dist/template-resolver/handlers/document-base.js +55 -0
- package/dist/template-resolver/handlers/document-blocks.query.d.ts +22 -0
- package/dist/template-resolver/handlers/document-blocks.query.js +46 -0
- package/dist/template-resolver/handlers/export-bundle.query.d.ts +1 -0
- package/dist/template-resolver/handlers/export-bundle.query.js +9 -2
- package/dist/template-resolver/handlers/import-bundle-system.write.d.ts +1 -0
- package/dist/template-resolver/handlers/import-bundle.write.d.ts +1 -0
- package/dist/template-resolver/handlers/patch-draft.write.d.ts +66 -0
- package/dist/template-resolver/handlers/patch-draft.write.js +105 -0
- package/dist/template-resolver/handlers/preview.query.d.ts +1 -0
- package/dist/template-resolver/handlers/preview.query.js +2 -1
- package/dist/template-resolver/handlers/send-test.write.d.ts +1 -0
- package/dist/template-resolver/handlers/send-test.write.js +2 -1
- package/dist/template-resolver/handlers/template-write.d.ts +2 -0
- package/dist/template-resolver/handlers/template-write.js +14 -2
- package/dist/template-resolver/handlers/validate.query.d.ts +10 -4
- package/dist/template-resolver/handlers/validate.query.js +12 -7
- package/dist/template-resolver/{web/placeholder-text.js → placeholder-text.js} +1 -1
- package/dist/template-resolver/qualified-names.d.ts +2 -0
- package/dist/template-resolver/qualified-names.js +2 -0
- package/dist/template-resolver/seeding.d.ts +1 -0
- package/dist/template-resolver/seeding.js +2 -1
- package/dist/template-resolver/table.d.ts +10 -10
- package/dist/template-resolver/template-bundle.d.ts +1 -0
- package/dist/template-resolver/template-bundle.js +6 -1
- package/dist/template-resolver/template-preview.d.ts +4 -1
- package/dist/template-resolver/template-preview.js +16 -3
- package/dist/template-resolver/template-validation.d.ts +2 -1
- package/dist/template-resolver/template-validation.js +1 -1
- package/dist/template-resolver/user-content-table.d.ts +10 -10
- package/dist/template-resolver/web/client-plugin.d.ts +1 -1
- package/dist/template-resolver/web/client-plugin.js +3 -3
- package/dist/template-resolver/web/document-tiptap-editor.js +1 -1
- package/dist/template-resolver/web/document-toolbar-blocks.d.ts +2 -5
- package/dist/template-resolver/web/document-toolbar-blocks.js +1 -21
- package/dist/template-resolver/web/i18n.js +14 -0
- package/dist/template-resolver/web/placeholder-line-editor.js +2 -2
- package/dist/tenant/invitation-table.d.ts +6 -6
- package/dist/tenant/membership-table.d.ts +4 -4
- package/dist/tenant/schema/tenant.d.ts +6 -6
- package/dist/tenant/web/client-plugin.d.ts +1 -1
- package/dist/tenant/web/member-status-cell.js +1 -1
- package/dist/tier-engine/entity.d.ts +1 -1
- package/dist/tier-engine/tier-resolver.d.ts +1 -1
- package/dist/tier-engine/web/client-plugin.d.ts +1 -1
- package/dist/user/schema/user.d.ts +12 -12
- package/dist/user-data-rights/env.d.ts +5 -0
- package/dist/user-data-rights/env.js +11 -0
- package/dist/user-data-rights/feature.js +4 -2
- package/dist/user-data-rights/index.d.ts +1 -0
- package/dist/user-data-rights/index.js +1 -0
- package/dist/user-data-rights/lib/mail-transport-resolver.js +1 -1
- package/dist/user-data-rights/lib/storage-provider-resolver.js +1 -1
- package/dist/user-data-rights/mail-notifications.js +1 -1
- package/dist/user-data-rights/schema/download-attempt.d.ts +14 -14
- package/dist/user-data-rights/schema/download-token.d.ts +8 -8
- package/dist/user-data-rights/schema/export-job.d.ts +6 -6
- package/dist/user-data-rights/web/client-plugin.d.ts +1 -1
- package/dist/user-data-rights/web/privacy-center-screen.js +2 -2
- package/dist/waitlist/entity.d.ts +14 -14
- package/dist/waitlist/legacy-migrate.d.ts +2 -0
- package/dist/waitlist/legacy-migrate.js +38 -3
- package/package.json +16 -11
- package/src/account-security/changes.json +6 -0
- package/src/auth-foundation/changes.json +6 -0
- package/src/billing-foundation/changes.json +6 -0
- package/src/channel-email/changes.json +6 -0
- package/src/crypto-shredding/changes.json +6 -0
- package/src/file-provider-s3/changes.json +6 -0
- package/src/host-routing/changes.json +6 -0
- package/src/inbound-mail-foundation/changes.json +7 -0
- package/src/legal-pages/changes.json +6 -0
- package/src/template-resolver/changes.json +18 -0
- package/src/user-data-rights/changes.json +6 -0
- package/src/waitlist/changes.json +6 -0
- /package/dist/template-resolver/{web/placeholder-text.d.ts → placeholder-text.d.ts} +0 -0
|
@@ -16,7 +16,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
16
16
|
readonly sensitive?: boolean;
|
|
17
17
|
readonly writeOnly?: boolean;
|
|
18
18
|
readonly readAsInstruction?: boolean;
|
|
19
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
19
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
20
20
|
readonly default?: string;
|
|
21
21
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
22
22
|
readonly multiline?: boolean | {
|
|
@@ -39,7 +39,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
39
39
|
readonly sensitive?: boolean;
|
|
40
40
|
readonly writeOnly?: boolean;
|
|
41
41
|
readonly readAsInstruction?: boolean;
|
|
42
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
42
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
43
43
|
readonly default?: string;
|
|
44
44
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
45
45
|
readonly multiline?: boolean | {
|
|
@@ -62,7 +62,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
62
62
|
readonly sensitive?: boolean;
|
|
63
63
|
readonly writeOnly?: boolean;
|
|
64
64
|
readonly readAsInstruction?: boolean;
|
|
65
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
65
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
66
66
|
readonly default?: string;
|
|
67
67
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
68
68
|
readonly multiline?: boolean | {
|
|
@@ -85,7 +85,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
85
85
|
readonly sensitive?: boolean;
|
|
86
86
|
readonly writeOnly?: boolean;
|
|
87
87
|
readonly readAsInstruction?: boolean;
|
|
88
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
88
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
89
89
|
readonly default?: string;
|
|
90
90
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
91
91
|
readonly multiline?: boolean | {
|
|
@@ -108,7 +108,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
108
108
|
readonly sensitive?: boolean;
|
|
109
109
|
readonly writeOnly?: boolean;
|
|
110
110
|
readonly readAsInstruction?: boolean;
|
|
111
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
111
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
112
112
|
readonly default?: string;
|
|
113
113
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
114
114
|
readonly multiline?: boolean | {
|
|
@@ -199,7 +199,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
199
199
|
readonly sensitive?: boolean;
|
|
200
200
|
readonly writeOnly?: boolean;
|
|
201
201
|
readonly readAsInstruction?: boolean;
|
|
202
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
202
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
203
203
|
readonly default?: string;
|
|
204
204
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
205
205
|
readonly multiline?: boolean | {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
|
|
2
|
-
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer
|
|
2
|
+
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
|
|
3
3
|
export type JobsClientOptions = {
|
|
4
4
|
readonly translations?: TranslationsByLocale;
|
|
5
5
|
};
|
package/dist/ledger/entity.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
13
13
|
readonly sensitive?: boolean;
|
|
14
14
|
readonly writeOnly?: boolean;
|
|
15
15
|
readonly readAsInstruction?: boolean;
|
|
16
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
16
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
17
17
|
readonly default?: string;
|
|
18
18
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
19
19
|
readonly multiline?: boolean | {
|
|
@@ -61,7 +61,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
61
61
|
readonly sensitive?: boolean;
|
|
62
62
|
readonly writeOnly?: boolean;
|
|
63
63
|
readonly readAsInstruction?: boolean;
|
|
64
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
64
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
65
65
|
readonly default?: string;
|
|
66
66
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
67
67
|
readonly multiline?: boolean | {
|
|
@@ -84,7 +84,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
84
84
|
readonly sensitive?: boolean;
|
|
85
85
|
readonly writeOnly?: boolean;
|
|
86
86
|
readonly readAsInstruction?: boolean;
|
|
87
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
87
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
88
88
|
readonly default?: string;
|
|
89
89
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
90
90
|
readonly multiline?: boolean | {
|
|
@@ -123,7 +123,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
123
123
|
readonly sensitive?: boolean;
|
|
124
124
|
readonly writeOnly?: boolean;
|
|
125
125
|
readonly readAsInstruction?: boolean;
|
|
126
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
126
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
127
127
|
readonly default?: string;
|
|
128
128
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
129
129
|
readonly multiline?: boolean | {
|
|
@@ -146,7 +146,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
146
146
|
readonly sensitive?: boolean;
|
|
147
147
|
readonly writeOnly?: boolean;
|
|
148
148
|
readonly readAsInstruction?: boolean;
|
|
149
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
149
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
150
150
|
readonly default?: string;
|
|
151
151
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
152
152
|
readonly multiline?: boolean | {
|
|
@@ -207,7 +207,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
207
207
|
readonly sensitive?: boolean;
|
|
208
208
|
readonly writeOnly?: boolean;
|
|
209
209
|
readonly readAsInstruction?: boolean;
|
|
210
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
210
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
211
211
|
readonly default?: string;
|
|
212
212
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
213
213
|
readonly multiline?: boolean | {
|
|
@@ -230,7 +230,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
230
230
|
readonly sensitive?: boolean;
|
|
231
231
|
readonly writeOnly?: boolean;
|
|
232
232
|
readonly readAsInstruction?: boolean;
|
|
233
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
233
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
234
234
|
readonly default?: string;
|
|
235
235
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
236
236
|
readonly multiline?: boolean | {
|
|
@@ -255,7 +255,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
255
255
|
readonly sensitive?: boolean;
|
|
256
256
|
readonly writeOnly?: boolean;
|
|
257
257
|
readonly readAsInstruction?: boolean;
|
|
258
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
258
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
259
259
|
readonly default?: string;
|
|
260
260
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
261
261
|
readonly multiline?: boolean | {
|
|
@@ -346,7 +346,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
346
346
|
readonly sensitive?: boolean;
|
|
347
347
|
readonly writeOnly?: boolean;
|
|
348
348
|
readonly readAsInstruction?: boolean;
|
|
349
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
349
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
350
350
|
readonly default?: string;
|
|
351
351
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
352
352
|
readonly multiline?: boolean | {
|
|
@@ -369,7 +369,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
369
369
|
readonly sensitive?: boolean;
|
|
370
370
|
readonly writeOnly?: boolean;
|
|
371
371
|
readonly readAsInstruction?: boolean;
|
|
372
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
372
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
373
373
|
readonly default?: string;
|
|
374
374
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
375
375
|
readonly multiline?: boolean | {
|
|
@@ -392,7 +392,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
392
392
|
readonly sensitive?: boolean;
|
|
393
393
|
readonly writeOnly?: boolean;
|
|
394
394
|
readonly readAsInstruction?: boolean;
|
|
395
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
395
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
396
396
|
readonly default?: string;
|
|
397
397
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
398
398
|
readonly multiline?: boolean | {
|
|
@@ -415,7 +415,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
415
415
|
readonly sensitive?: boolean;
|
|
416
416
|
readonly writeOnly?: boolean;
|
|
417
417
|
readonly readAsInstruction?: boolean;
|
|
418
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
418
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
419
419
|
readonly default?: string;
|
|
420
420
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
421
421
|
readonly multiline?: boolean | {
|
|
@@ -438,7 +438,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
438
438
|
readonly sensitive?: boolean;
|
|
439
439
|
readonly writeOnly?: boolean;
|
|
440
440
|
readonly readAsInstruction?: boolean;
|
|
441
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
441
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
442
442
|
readonly default?: string;
|
|
443
443
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
444
444
|
readonly multiline?: boolean | {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { computeRevisionEtag, etagMatches } from "@cosmicdrift/kumiko-framework/api";
|
|
2
2
|
import { defineFeature, SYSTEM_TENANT_ID, } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
|
-
import { escapeHtml } from "@cosmicdrift/kumiko-headless";
|
|
3
|
+
import { escapeHtml } from "@cosmicdrift/kumiko-renderer/headless";
|
|
4
4
|
import { cachedSecurePageResponse, redirectToCanonicalPath, slashVariantOf, } from "../page-render/index.js";
|
|
5
5
|
import { LEGAL_REQUIRED_BLOCKS, LEGAL_ROUTES, LEGAL_TERMS_ROUTES, } from "./constants.js";
|
|
6
6
|
import { runLegalPagesBootCheck } from "./lib/boot-check.js";
|
|
@@ -17,6 +17,14 @@ export { runLegalPagesBootCheck } from "./lib/boot-check.js";
|
|
|
17
17
|
const TEXT_BLOCK_BY_SLUG_QN = "template-resolver:query:by-slug";
|
|
18
18
|
// 60s-shared-cache saves the origin-revalidate roundtrip; legal-content edits are live within 60s.
|
|
19
19
|
const PUBLIC_PAGE_CACHE = { kind: "revalidate", maxAgeSeconds: 60 };
|
|
20
|
+
// Only slugs served in more than one language get alternates.
|
|
21
|
+
function alternatesBySlugOf(routes) {
|
|
22
|
+
const bySlug = new Map();
|
|
23
|
+
for (const route of routes) {
|
|
24
|
+
bySlug.set(route.slug, { ...bySlug.get(route.slug), [route.lang]: route.path });
|
|
25
|
+
}
|
|
26
|
+
return new Map([...bySlug].filter(([, byLang]) => Object.keys(byLang).length > 1));
|
|
27
|
+
}
|
|
20
28
|
export function createLegalPagesFeature(opts = {}) {
|
|
21
29
|
const wrapLayout = opts.wrapLayout ?? wrapInLayout;
|
|
22
30
|
const routes = [
|
|
@@ -31,6 +39,7 @@ export function createLegalPagesFeature(opts = {}) {
|
|
|
31
39
|
throw new Error("legal-pages: custom `routes` without `requiredBlocks` — pass `requiredBlocks` explicitly (or `[]`)");
|
|
32
40
|
}
|
|
33
41
|
}
|
|
42
|
+
const alternatesBySlug = alternatesBySlugOf(routes);
|
|
34
43
|
return defineFeature("legal-pages", (r) => {
|
|
35
44
|
r.describe("Opt-in wrapper around `template-resolver` text-blocks that registers public HTML routes (default: `/legal/impressum`, `/legal/datenschutz`, `/legal/imprint`, `/legal/privacy`) with Markdown-to-HTML rendering and a boot-time job that hard-fails in production when the required blocks (default: `imprint/de`, `privacy/de`) are not seeded in `SYSTEM_TENANT`. Both are configurable via `routes`/`requiredBlocks` for apps with a different default language or additional pages. Requires `anonymousAccess: { defaultTenantId: SYSTEM_TENANT_ID }` and `extraContext.templateResolver` to be wired at app bootstrap; for per-tenant imprints or a custom layout call `template-resolver:query:by-slug` directly.");
|
|
36
45
|
r.uiHints({
|
|
@@ -98,6 +107,7 @@ export function createLegalPagesFeature(opts = {}) {
|
|
|
98
107
|
: renderedBody,
|
|
99
108
|
lang: route.lang,
|
|
100
109
|
slug: route.slug,
|
|
110
|
+
alternates: alternatesBySlug.get(route.slug),
|
|
101
111
|
});
|
|
102
112
|
return cachedSecurePageResponse(c.req.raw, {
|
|
103
113
|
body: html,
|
|
@@ -3,8 +3,8 @@ export type LegalPagesLayoutOptions = {
|
|
|
3
3
|
readonly siteName: string;
|
|
4
4
|
readonly css?: string;
|
|
5
5
|
readonly stylesheetHrefs?: readonly string[];
|
|
6
|
-
readonly headerHtml?: (lang: string) => string;
|
|
7
|
-
readonly footerHtml?: (lang: string) => string;
|
|
6
|
+
readonly headerHtml?: (lang: string, alternates?: Readonly<Record<string, string>>) => string;
|
|
7
|
+
readonly footerHtml?: (lang: string, alternates?: Readonly<Record<string, string>>) => string;
|
|
8
8
|
readonly contentClass?: string;
|
|
9
9
|
};
|
|
10
10
|
export declare function createLegalPagesLayout(options: LegalPagesLayoutOptions): PublicPageWrapLayout;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { escapeHtml, escapeHtmlAttr } from "@cosmicdrift/kumiko-headless";
|
|
1
|
+
import { escapeHtml, escapeHtmlAttr } from "@cosmicdrift/kumiko-renderer/headless";
|
|
2
2
|
import { TENANT_CONTENT_ATTR } from "../page-render/index.js";
|
|
3
3
|
export function createLegalPagesLayout(options) {
|
|
4
4
|
const stylesheets = (options.stylesheetHrefs ?? [])
|
|
@@ -9,9 +9,9 @@ export function createLegalPagesLayout(options) {
|
|
|
9
9
|
const contentClass = options.contentClass
|
|
10
10
|
? ` class="${escapeHtmlAttr(options.contentClass)}"`
|
|
11
11
|
: "";
|
|
12
|
-
return ({ title, bodyHtml, lang }) => {
|
|
13
|
-
const headerHtml = options.headerHtml?.(lang) ?? "";
|
|
14
|
-
const footerHtml = options.footerHtml?.(lang) ?? "";
|
|
12
|
+
return ({ title, bodyHtml, lang, alternates }) => {
|
|
13
|
+
const headerHtml = options.headerHtml?.(lang, alternates) ?? "";
|
|
14
|
+
const footerHtml = options.footerHtml?.(lang, alternates) ?? "";
|
|
15
15
|
return `<!doctype html>
|
|
16
16
|
<html lang="${escapeHtmlAttr(lang)}">
|
|
17
17
|
<head>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer
|
|
1
|
+
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
|
|
2
2
|
export declare function legalPagesClient(opts?: {
|
|
3
3
|
readonly navId?: string;
|
|
4
4
|
}): ClientFeatureDefinition;
|
|
@@ -2,34 +2,33 @@ import { type EmailTransport } from "@cosmicdrift/kumiko-bundled-features/channe
|
|
|
2
2
|
import { type ConfigAccessor, type Registry, type TenantId } from "@cosmicdrift/kumiko-framework/engine";
|
|
3
3
|
export declare const MAIL_TRANSPORT_EXTENSION: "mailTransport";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* read-Felder die fuer Tenant-Config + Secret-Lookup noetig sind.
|
|
5
|
+
* Narrow surface type for transport plugins, mirroring file-foundation's
|
|
6
|
+
* FileProviderContext. HandlerContext carries tx, actor, signal and more;
|
|
7
|
+
* plugins only get the read fields needed for tenant config and secret lookup.
|
|
9
8
|
*
|
|
10
|
-
* **
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* ConfigAccessor
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
9
|
+
* **Why not the full HandlerContext?** On the worker path (transport builds
|
|
10
|
+
* triggered by r.job, such as the user-data-rights forget/export cron) there
|
|
11
|
+
* is no per-request `config`/`tx`/`actor`; the wrapper builds the per-tenant
|
|
12
|
+
* ConfigAccessor from `ctx.configResolver`. A plugin reading `ctx.tx` or other
|
|
13
|
+
* request-only fields would break the worker path at runtime, and that would
|
|
14
|
+
* only show up with real SMTP in production. Casting
|
|
15
|
+
* `ctx as unknown as HandlerContext` satisfies the compiler but fails at
|
|
16
|
+
* runtime in the worker. A plugin that needs more extends MailTransportContext
|
|
17
|
+
* explicitly (a visible breaking change) instead of casting ctx.
|
|
19
18
|
*
|
|
20
|
-
* **
|
|
21
|
-
* config
|
|
22
|
-
* registry
|
|
23
|
-
* secrets
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
19
|
+
* **Fields:**
|
|
20
|
+
* config — tenant config reads (the plugin's host/port/from/...)
|
|
21
|
+
* registry — extension lookup in the factory (not plugin-internal)
|
|
22
|
+
* secrets — tenant secret reads (smtp.password)
|
|
23
|
+
* auditUserId — audit identity for secret reads. Handler path: the
|
|
24
|
+
* dispatcher sets the caller's user id; worker path: the
|
|
25
|
+
* r.job wrap sets a system identity.
|
|
27
26
|
*/
|
|
28
27
|
export type MailTransportContext = {
|
|
29
28
|
readonly config?: ConfigAccessor;
|
|
30
29
|
readonly registry?: Registry;
|
|
31
30
|
readonly secrets?: import("@cosmicdrift/kumiko-framework/secrets").SecretsContext;
|
|
32
|
-
readonly
|
|
31
|
+
readonly auditUserId?: string | undefined;
|
|
33
32
|
};
|
|
34
33
|
/**
|
|
35
34
|
* Mail-Transport-Plugin contract. Each provider-feature (mail-transport-
|
|
@@ -152,6 +152,6 @@ export function tenantMailTransport(scope) {
|
|
|
152
152
|
config: scope.config,
|
|
153
153
|
registry: scope.registry,
|
|
154
154
|
secrets: scope.secrets,
|
|
155
|
-
|
|
155
|
+
auditUserId: createSystemUser(scope.tenantId).id,
|
|
156
156
|
}, scope.tenantId, "channel-email");
|
|
157
157
|
}
|
|
@@ -13,7 +13,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
13
13
|
readonly sensitive?: boolean;
|
|
14
14
|
readonly writeOnly?: boolean;
|
|
15
15
|
readonly readAsInstruction?: boolean;
|
|
16
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
16
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
17
17
|
readonly default?: string;
|
|
18
18
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
19
19
|
readonly multiline?: boolean | {
|
|
@@ -36,7 +36,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
36
36
|
readonly sensitive?: boolean;
|
|
37
37
|
readonly writeOnly?: boolean;
|
|
38
38
|
readonly readAsInstruction?: boolean;
|
|
39
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
39
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
40
40
|
readonly default?: string;
|
|
41
41
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
42
42
|
readonly multiline?: boolean | {
|
|
@@ -59,7 +59,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
59
59
|
readonly sensitive?: boolean;
|
|
60
60
|
readonly writeOnly?: boolean;
|
|
61
61
|
readonly readAsInstruction?: boolean;
|
|
62
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
62
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
63
63
|
readonly default?: string;
|
|
64
64
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
65
65
|
readonly multiline?: boolean | {
|
|
@@ -82,7 +82,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
82
82
|
readonly sensitive?: boolean;
|
|
83
83
|
readonly writeOnly?: boolean;
|
|
84
84
|
readonly readAsInstruction?: boolean;
|
|
85
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
85
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
86
86
|
readonly default?: string;
|
|
87
87
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
88
88
|
readonly multiline?: boolean | {
|
|
@@ -105,7 +105,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
105
105
|
readonly sensitive?: boolean;
|
|
106
106
|
readonly writeOnly?: boolean;
|
|
107
107
|
readonly readAsInstruction?: boolean;
|
|
108
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
108
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
109
109
|
readonly default?: string;
|
|
110
110
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
111
111
|
readonly multiline?: boolean | {
|
|
@@ -128,7 +128,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
128
128
|
readonly sensitive?: boolean;
|
|
129
129
|
readonly writeOnly?: boolean;
|
|
130
130
|
readonly readAsInstruction?: boolean;
|
|
131
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
131
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
132
132
|
readonly default?: string;
|
|
133
133
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
134
134
|
readonly multiline?: boolean | {
|
|
@@ -157,7 +157,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
157
157
|
readonly sensitive?: boolean;
|
|
158
158
|
readonly writeOnly?: boolean;
|
|
159
159
|
readonly readAsInstruction?: boolean;
|
|
160
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
160
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
161
161
|
readonly default?: string;
|
|
162
162
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
163
163
|
readonly multiline?: boolean | {
|
|
@@ -180,7 +180,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
180
180
|
readonly sensitive?: boolean;
|
|
181
181
|
readonly writeOnly?: boolean;
|
|
182
182
|
readonly readAsInstruction?: boolean;
|
|
183
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
183
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
184
184
|
readonly default?: string;
|
|
185
185
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
186
186
|
readonly multiline?: boolean | {
|
|
@@ -203,7 +203,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
203
203
|
readonly sensitive?: boolean;
|
|
204
204
|
readonly writeOnly?: boolean;
|
|
205
205
|
readonly readAsInstruction?: boolean;
|
|
206
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
206
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
207
207
|
readonly default?: string;
|
|
208
208
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
209
209
|
readonly multiline?: boolean | {
|
|
@@ -226,7 +226,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
226
226
|
readonly sensitive?: boolean;
|
|
227
227
|
readonly writeOnly?: boolean;
|
|
228
228
|
readonly readAsInstruction?: boolean;
|
|
229
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
229
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
230
230
|
readonly default?: string;
|
|
231
231
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
232
232
|
readonly multiline?: boolean | {
|
|
@@ -249,7 +249,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
249
249
|
readonly sensitive?: boolean;
|
|
250
250
|
readonly writeOnly?: boolean;
|
|
251
251
|
readonly readAsInstruction?: boolean;
|
|
252
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
252
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
253
253
|
readonly default?: string;
|
|
254
254
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
255
255
|
readonly multiline?: boolean | {
|
|
@@ -272,7 +272,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
272
272
|
readonly sensitive?: boolean;
|
|
273
273
|
readonly writeOnly?: boolean;
|
|
274
274
|
readonly readAsInstruction?: boolean;
|
|
275
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
275
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
276
276
|
readonly default?: string;
|
|
277
277
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
278
278
|
readonly multiline?: boolean | {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type TranslationsByLocale } from "@cosmicdrift/kumiko-renderer";
|
|
2
|
-
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer
|
|
2
|
+
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
|
|
3
3
|
export type ManagedPagesClientOptions = {
|
|
4
4
|
/** Key-wise Overrides über die Default-Bundles (de/en). */
|
|
5
5
|
readonly translations?: TranslationsByLocale;
|
|
@@ -14,7 +14,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
14
14
|
readonly sensitive?: boolean;
|
|
15
15
|
readonly writeOnly?: boolean;
|
|
16
16
|
readonly readAsInstruction?: boolean;
|
|
17
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
17
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
18
18
|
readonly default?: string;
|
|
19
19
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
20
20
|
readonly multiline?: boolean | {
|
|
@@ -37,7 +37,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
37
37
|
readonly sensitive?: boolean;
|
|
38
38
|
readonly writeOnly?: boolean;
|
|
39
39
|
readonly readAsInstruction?: boolean;
|
|
40
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
40
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
41
41
|
readonly default?: string;
|
|
42
42
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
43
43
|
readonly multiline?: boolean | {
|
|
@@ -60,7 +60,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
60
60
|
readonly sensitive?: boolean;
|
|
61
61
|
readonly writeOnly?: boolean;
|
|
62
62
|
readonly readAsInstruction?: boolean;
|
|
63
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
63
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
64
64
|
readonly default?: string;
|
|
65
65
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
66
66
|
readonly multiline?: boolean | {
|
|
@@ -83,7 +83,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
83
83
|
readonly sensitive?: boolean;
|
|
84
84
|
readonly writeOnly?: boolean;
|
|
85
85
|
readonly readAsInstruction?: boolean;
|
|
86
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
86
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
87
87
|
readonly default?: string;
|
|
88
88
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
89
89
|
readonly multiline?: boolean | {
|
|
@@ -124,7 +124,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
124
124
|
readonly sensitive?: boolean;
|
|
125
125
|
readonly writeOnly?: boolean;
|
|
126
126
|
readonly readAsInstruction?: boolean;
|
|
127
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
127
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
128
128
|
readonly default?: string;
|
|
129
129
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
130
130
|
readonly multiline?: boolean | {
|
|
@@ -147,7 +147,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
147
147
|
readonly sensitive?: boolean;
|
|
148
148
|
readonly writeOnly?: boolean;
|
|
149
149
|
readonly readAsInstruction?: boolean;
|
|
150
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
150
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
151
151
|
readonly default?: string;
|
|
152
152
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
153
153
|
readonly multiline?: boolean | {
|
|
@@ -170,7 +170,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
170
170
|
readonly sensitive?: boolean;
|
|
171
171
|
readonly writeOnly?: boolean;
|
|
172
172
|
readonly readAsInstruction?: boolean;
|
|
173
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
173
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
174
174
|
readonly default?: string;
|
|
175
175
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
176
176
|
readonly multiline?: boolean | {
|
|
@@ -193,7 +193,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
193
193
|
readonly sensitive?: boolean;
|
|
194
194
|
readonly writeOnly?: boolean;
|
|
195
195
|
readonly readAsInstruction?: boolean;
|
|
196
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
196
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
197
197
|
readonly default?: string;
|
|
198
198
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
199
199
|
readonly multiline?: boolean | {
|
|
@@ -234,7 +234,7 @@ export declare function createNoteMentionEntity(): EntityDefinition<{
|
|
|
234
234
|
readonly sensitive?: boolean;
|
|
235
235
|
readonly writeOnly?: boolean;
|
|
236
236
|
readonly readAsInstruction?: boolean;
|
|
237
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
237
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
238
238
|
readonly default?: string;
|
|
239
239
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
240
240
|
readonly multiline?: boolean | {
|
|
@@ -257,7 +257,7 @@ export declare function createNoteMentionEntity(): EntityDefinition<{
|
|
|
257
257
|
readonly sensitive?: boolean;
|
|
258
258
|
readonly writeOnly?: boolean;
|
|
259
259
|
readonly readAsInstruction?: boolean;
|
|
260
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
260
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
261
261
|
readonly default?: string;
|
|
262
262
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
263
263
|
readonly multiline?: boolean | {
|
|
@@ -282,7 +282,7 @@ export declare const noteMentionEntity: EntityDefinition<{
|
|
|
282
282
|
readonly sensitive?: boolean;
|
|
283
283
|
readonly writeOnly?: boolean;
|
|
284
284
|
readonly readAsInstruction?: boolean;
|
|
285
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
285
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
286
286
|
readonly default?: string;
|
|
287
287
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
288
288
|
readonly multiline?: boolean | {
|
|
@@ -305,7 +305,7 @@ export declare const noteMentionEntity: EntityDefinition<{
|
|
|
305
305
|
readonly sensitive?: boolean;
|
|
306
306
|
readonly writeOnly?: boolean;
|
|
307
307
|
readonly readAsInstruction?: boolean;
|
|
308
|
-
readonly format?: "email" | "url" | "phone" | "password";
|
|
308
|
+
readonly format?: "email" | "url" | "phone" | "password" | "month";
|
|
309
309
|
readonly default?: string;
|
|
310
310
|
readonly access?: import("@cosmicdrift/kumiko-types/fields").FieldAccess;
|
|
311
311
|
readonly multiline?: boolean | {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer
|
|
1
|
+
import type { ClientFeatureDefinition } from "@cosmicdrift/kumiko-renderer/web";
|
|
2
2
|
export declare function notesHistoryClient(): ClientFeatureDefinition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ApexHead } from "@cosmicdrift/kumiko-headless/apex";
|
|
1
|
+
import { type ApexHead } from "@cosmicdrift/kumiko-renderer/headless/apex";
|
|
2
2
|
import { type BrandingTokens } from "./branding.ts";
|
|
3
3
|
export type SeoHeadInput = Omit<ApexHead, "title" | "description" | "lang">;
|
|
4
4
|
export type PublicPageWrapLayout = (opts: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { escapeHtml, escapeHtmlAttr } from "@cosmicdrift/kumiko-headless";
|
|
2
|
-
import { renderApexHeadTags } from "@cosmicdrift/kumiko-headless/apex";
|
|
1
|
+
import { escapeHtml, escapeHtmlAttr } from "@cosmicdrift/kumiko-renderer/headless";
|
|
2
|
+
import { renderApexHeadTags } from "@cosmicdrift/kumiko-renderer/headless/apex";
|
|
3
3
|
import { brandingHeaderHtml, brandingStyleBlock } from "./branding.js";
|
|
4
4
|
import { sanitizeTenantCss } from "./css-sanitize.js";
|
|
5
5
|
// Attribute marking the content container. The page body lives in
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { escapeHtml, isSafeHref } from "@cosmicdrift/kumiko-headless";
|
|
1
|
+
import { escapeHtml, isSafeHref } from "@cosmicdrift/kumiko-renderer/headless";
|
|
2
2
|
import { Marked } from "marked";
|
|
3
3
|
// Geteilter, gehärteter Markdown→HTML-Kern für server-gerenderte Public-
|
|
4
4
|
// Pages (legal-pages, managed-pages). Annahme: untrusted Tenant-Authoren.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ACTION_FORM_ENTITY } from "@cosmicdrift/kumiko-framework/ui-types";
|
|
2
|
-
import { fieldLabelKey, fieldOptionLabelKey } from "@cosmicdrift/kumiko-headless";
|
|
2
|
+
import { fieldLabelKey, fieldOptionLabelKey } from "@cosmicdrift/kumiko-renderer/headless";
|
|
3
3
|
import { PAT_FEATURE } from "./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);
|