@aphexcms/cms-core 0.2.3 → 1.0.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/api/api-keys.d.ts +37 -0
- package/dist/api/api-keys.d.ts.map +1 -0
- package/dist/api/api-keys.js +20 -0
- package/dist/api/assets.d.ts +27 -0
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +22 -1
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -0
- package/dist/api/instance.d.ts +17 -0
- package/dist/api/instance.d.ts.map +1 -0
- package/dist/api/instance.js +21 -0
- package/dist/api/invitations.d.ts +37 -0
- package/dist/api/invitations.d.ts.map +1 -0
- package/dist/api/invitations.js +27 -0
- package/dist/api/organizations.d.ts +7 -0
- package/dist/api/organizations.d.ts.map +1 -1
- package/dist/api/organizations.js +7 -0
- package/dist/api/types.d.ts +1 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/user.d.ts +23 -0
- package/dist/api/user.d.ts.map +1 -0
- package/dist/api/user.js +20 -0
- package/dist/auth/auth-errors.d.ts +1 -1
- package/dist/auth/auth-errors.d.ts.map +1 -1
- package/dist/auth/auth-hooks.d.ts.map +1 -1
- package/dist/auth/auth-hooks.js +39 -23
- package/dist/auth/provider.d.ts +2 -2
- package/dist/auth/provider.d.ts.map +1 -1
- package/dist/cli/generate-types.d.ts +14 -0
- package/dist/cli/generate-types.d.ts.map +1 -0
- package/dist/cli/generate-types.js +15 -7
- package/dist/cli/generate-types.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/components/AdminApp.svelte +160 -63
- package/dist/components/AdminApp.svelte.d.ts +1 -1
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/AdminLayout.svelte.d.ts +3 -3
- package/dist/components/admin/AssetBrowserModal.svelte +66 -0
- package/dist/components/admin/AssetBrowserModal.svelte.d.ts +15 -0
- package/dist/components/admin/AssetBrowserModal.svelte.d.ts.map +1 -0
- package/dist/components/admin/DocumentEditor.svelte +137 -69
- package/dist/components/admin/DocumentEditor.svelte.d.ts +1 -1
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentsSkeleton.svelte +40 -0
- package/dist/components/admin/DocumentsSkeleton.svelte.d.ts +7 -0
- package/dist/components/admin/DocumentsSkeleton.svelte.d.ts.map +1 -0
- package/dist/components/admin/MediaBrowser.svelte +1398 -0
- package/dist/components/admin/MediaBrowser.svelte.d.ts +23 -0
- package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -0
- package/dist/components/admin/ObjectModal.svelte +3 -4
- package/dist/components/admin/ObjectModal.svelte.d.ts +1 -1
- package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -1
- package/dist/components/admin/SchemaField.svelte +109 -81
- package/dist/components/admin/SchemaField.svelte.d.ts +1 -1
- package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ArrayField.svelte +611 -277
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/DateField.svelte +3 -2
- package/dist/components/admin/fields/DateField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/DateTimeField.svelte +3 -2
- package/dist/components/admin/fields/DateTimeField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ImageField.svelte +217 -120
- package/dist/components/admin/fields/ImageField.svelte.d.ts +1 -0
- package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ReferenceField.svelte +11 -6
- package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/StringField.svelte +2 -1
- package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/layout/OrganizationSwitcher.svelte +109 -45
- package/dist/components/layout/OrganizationSwitcher.svelte.d.ts.map +1 -1
- package/dist/components/layout/Sidebar.svelte +36 -14
- package/dist/components/layout/Sidebar.svelte.d.ts +2 -1
- package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -1
- package/dist/components/layout/sidebar/AppSidebar.svelte +1 -1
- package/dist/components/layout/sidebar/NavMain.svelte +1 -1
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts +1 -1
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
- package/dist/components/layout/sidebar/NavSecondary.svelte +3 -3
- package/dist/components/layout/sidebar/NavUser.svelte +22 -10
- package/dist/components/layout/sidebar/NavUser.svelte.d.ts +2 -2
- package/dist/components/layout/sidebar/NavUser.svelte.d.ts.map +1 -1
- package/dist/db/interfaces/document.d.ts +20 -0
- package/dist/db/interfaces/document.d.ts.map +1 -1
- package/dist/db/interfaces/index.d.ts +3 -1
- package/dist/db/interfaces/index.d.ts.map +1 -1
- package/dist/db/interfaces/instance.d.ts +7 -0
- package/dist/db/interfaces/instance.d.ts.map +1 -0
- package/dist/db/interfaces/instance.js +1 -0
- package/dist/db/interfaces/organization.d.ts +1 -0
- package/dist/db/interfaces/organization.d.ts.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +4 -3
- package/dist/field-validation/date-utils.d.ts.map +1 -1
- package/dist/field-validation/date-utils.js +12 -11
- package/dist/field-validation/rule.d.ts.map +1 -1
- package/dist/field-validation/rule.js +11 -10
- package/dist/field-validation/utils.d.ts.map +1 -1
- package/dist/field-validation/utils.js +16 -15
- package/dist/graphql/index.d.ts +23 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +85 -0
- package/dist/graphql/resolvers.d.ts +4 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +542 -0
- package/dist/graphql/schema.d.ts +3 -0
- package/dist/graphql/schema.d.ts.map +1 -0
- package/dist/graphql/schema.js +356 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +62 -9
- package/dist/lib/api/api-keys.d.ts +37 -0
- package/dist/lib/api/api-keys.d.ts.map +1 -0
- package/dist/lib/api/api-keys.js +21 -0
- package/dist/lib/api/api-keys.js.map +1 -0
- package/dist/lib/api/assets.d.ts +75 -0
- package/dist/lib/api/assets.d.ts.map +1 -0
- package/dist/lib/api/assets.js +74 -0
- package/dist/lib/api/assets.js.map +1 -0
- package/dist/lib/api/client.d.ts +37 -0
- package/dist/lib/api/client.d.ts.map +1 -0
- package/dist/lib/api/client.js +132 -0
- package/dist/lib/api/client.js.map +1 -0
- package/dist/lib/api/documents.d.ts +57 -0
- package/dist/lib/api/documents.d.ts.map +1 -0
- package/dist/lib/api/documents.js +86 -0
- package/dist/lib/api/documents.js.map +1 -0
- package/dist/lib/api/index.d.ts +15 -0
- package/dist/lib/api/index.d.ts.map +1 -0
- package/dist/lib/api/index.js +10 -0
- package/dist/lib/api/index.js.map +1 -0
- package/dist/lib/api/instance.d.ts +17 -0
- package/dist/lib/api/instance.d.ts.map +1 -0
- package/dist/lib/api/instance.js +22 -0
- package/dist/lib/api/instance.js.map +1 -0
- package/dist/lib/api/invitations.d.ts +37 -0
- package/dist/lib/api/invitations.d.ts.map +1 -0
- package/dist/lib/api/invitations.js +28 -0
- package/dist/lib/api/invitations.js.map +1 -0
- package/dist/lib/api/organizations.d.ts +108 -0
- package/dist/lib/api/organizations.d.ts.map +1 -0
- package/dist/lib/api/organizations.js +100 -0
- package/dist/lib/api/organizations.js.map +1 -0
- package/dist/lib/api/types.d.ts +47 -0
- package/dist/lib/api/types.d.ts.map +1 -0
- package/dist/lib/api/types.js +2 -0
- package/dist/lib/api/types.js.map +1 -0
- package/dist/lib/api/user.d.ts +23 -0
- package/dist/lib/api/user.d.ts.map +1 -0
- package/dist/lib/api/user.js +21 -0
- package/dist/lib/api/user.js.map +1 -0
- package/dist/lib/auth/auth-errors.d.ts +7 -0
- package/dist/lib/auth/auth-errors.d.ts.map +1 -0
- package/dist/lib/auth/auth-errors.js +14 -0
- package/dist/lib/auth/auth-errors.js.map +1 -0
- package/dist/lib/auth/auth-hooks.d.ts +6 -0
- package/dist/lib/auth/auth-hooks.d.ts.map +1 -0
- package/dist/lib/auth/auth-hooks.js +139 -0
- package/dist/lib/auth/auth-hooks.js.map +1 -0
- package/dist/lib/auth/provider.d.ts +17 -0
- package/dist/lib/auth/provider.d.ts.map +1 -0
- package/dist/lib/auth/provider.js +1 -0
- package/dist/lib/auth/provider.js.map +1 -0
- package/dist/lib/client/index.d.ts +24 -0
- package/dist/lib/client/index.d.ts.map +1 -0
- package/dist/lib/client/index.js +33 -0
- package/dist/lib/client/index.js.map +1 -0
- package/dist/lib/components/fields/index.d.ts +9 -0
- package/dist/lib/components/fields/index.d.ts.map +1 -0
- package/dist/lib/components/fields/index.js +10 -0
- package/dist/lib/components/fields/index.js.map +1 -0
- package/dist/lib/components/index.d.ts +8 -0
- package/dist/lib/components/index.d.ts.map +1 -0
- package/dist/lib/components/index.js +14 -0
- package/dist/lib/components/index.js.map +1 -0
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +16 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/db/adapters/index.d.ts +1 -0
- package/dist/lib/db/adapters/index.d.ts.map +1 -0
- package/dist/lib/db/adapters/index.js +5 -0
- package/dist/lib/db/adapters/index.js.map +1 -0
- package/dist/lib/db/index.d.ts +2 -0
- package/dist/lib/db/index.d.ts.map +1 -0
- package/dist/lib/db/index.js +1 -0
- package/dist/lib/db/index.js.map +1 -0
- package/dist/lib/db/interfaces/asset.d.ts +73 -0
- package/dist/lib/db/interfaces/asset.d.ts.map +1 -0
- package/dist/lib/db/interfaces/asset.js +1 -0
- package/dist/lib/db/interfaces/asset.js.map +1 -0
- package/dist/lib/db/interfaces/document.d.ts +79 -0
- package/dist/lib/db/interfaces/document.d.ts.map +1 -0
- package/dist/lib/db/interfaces/document.js +1 -0
- package/dist/lib/db/interfaces/document.js.map +1 -0
- package/dist/lib/db/interfaces/index.d.ts +76 -0
- package/dist/lib/db/interfaces/index.d.ts.map +1 -0
- package/dist/lib/db/interfaces/index.js +1 -0
- package/dist/lib/db/interfaces/index.js.map +1 -0
- package/dist/lib/db/interfaces/instance.d.ts +7 -0
- package/dist/lib/db/interfaces/instance.d.ts.map +1 -0
- package/dist/lib/db/interfaces/instance.js +2 -0
- package/dist/lib/db/interfaces/instance.js.map +1 -0
- package/dist/lib/db/interfaces/organization.d.ts +28 -0
- package/dist/lib/db/interfaces/organization.d.ts.map +1 -0
- package/dist/lib/db/interfaces/organization.js +1 -0
- package/dist/lib/db/interfaces/organization.js.map +1 -0
- package/dist/lib/db/interfaces/schema.d.ts +21 -0
- package/dist/lib/db/interfaces/schema.d.ts.map +1 -0
- package/dist/lib/db/interfaces/schema.js +1 -0
- package/dist/lib/db/interfaces/schema.js.map +1 -0
- package/dist/lib/db/interfaces/user.d.ts +17 -0
- package/dist/lib/db/interfaces/user.d.ts.map +1 -0
- package/dist/lib/db/interfaces/user.js +1 -0
- package/dist/lib/db/interfaces/user.js.map +1 -0
- package/dist/lib/db/utils/reference-resolver.d.ts +18 -0
- package/dist/lib/db/utils/reference-resolver.d.ts.map +1 -0
- package/dist/lib/db/utils/reference-resolver.js +81 -0
- package/dist/lib/db/utils/reference-resolver.js.map +1 -0
- package/dist/lib/define.d.ts +3 -0
- package/dist/lib/define.d.ts.map +1 -0
- package/dist/lib/define.js +5 -0
- package/dist/lib/define.js.map +1 -0
- package/dist/lib/email/index.d.ts +2 -0
- package/dist/lib/email/index.d.ts.map +1 -0
- package/dist/lib/email/index.js +1 -0
- package/dist/lib/email/index.js.map +1 -0
- package/dist/lib/email/interfaces/email.d.ts +42 -0
- package/dist/lib/email/interfaces/email.d.ts.map +1 -0
- package/dist/lib/email/interfaces/email.js +1 -0
- package/dist/lib/email/interfaces/email.js.map +1 -0
- package/dist/lib/engine.d.ts +26 -0
- package/dist/lib/engine.d.ts.map +1 -0
- package/dist/lib/engine.js +71 -0
- package/dist/lib/engine.js.map +1 -0
- package/dist/lib/field-validation/date-utils.d.ts +30 -0
- package/dist/lib/field-validation/date-utils.d.ts.map +1 -0
- package/dist/lib/field-validation/date-utils.js +13 -11
- package/dist/lib/field-validation/date-utils.js.map +1 -0
- package/dist/lib/field-validation/rule.d.ts +55 -0
- package/dist/lib/field-validation/rule.d.ts.map +1 -0
- package/dist/lib/field-validation/rule.js +12 -10
- package/dist/lib/field-validation/rule.js.map +1 -0
- package/dist/lib/field-validation/utils.d.ts +43 -0
- package/dist/lib/field-validation/utils.d.ts.map +1 -0
- package/dist/lib/field-validation/utils.js +17 -15
- package/dist/lib/field-validation/utils.js.map +1 -0
- package/dist/lib/graphql/index.d.ts +23 -0
- package/dist/lib/graphql/index.d.ts.map +1 -0
- package/dist/lib/graphql/index.js +86 -0
- package/dist/lib/graphql/index.js.map +1 -0
- package/dist/lib/graphql/resolvers.d.ts +4 -0
- package/dist/lib/graphql/resolvers.d.ts.map +1 -0
- package/dist/lib/graphql/resolvers.js +543 -0
- package/dist/lib/graphql/resolvers.js.map +1 -0
- package/dist/lib/graphql/schema.d.ts +3 -0
- package/dist/lib/graphql/schema.d.ts.map +1 -0
- package/dist/lib/graphql/schema.js +357 -0
- package/dist/lib/graphql/schema.js.map +1 -0
- package/dist/lib/hooks.d.ts +27 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +235 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/is-mobile.svelte.d.ts +5 -0
- package/dist/lib/is-mobile.svelte.d.ts.map +1 -0
- package/dist/lib/is-mobile.svelte.js +8 -0
- package/dist/lib/is-mobile.svelte.js.map +1 -0
- package/dist/lib/local-api/auth-helpers.d.ts +65 -0
- package/dist/lib/local-api/auth-helpers.d.ts.map +1 -0
- package/dist/lib/local-api/auth-helpers.js +103 -0
- package/dist/lib/local-api/auth-helpers.js.map +1 -0
- package/dist/lib/local-api/collection-api.d.ts +150 -0
- package/dist/lib/local-api/collection-api.d.ts.map +1 -0
- package/dist/lib/local-api/collection-api.js +311 -0
- package/dist/lib/local-api/collection-api.js.map +1 -0
- package/dist/lib/local-api/index.d.ts +108 -0
- package/dist/lib/local-api/index.d.ts.map +1 -0
- package/dist/lib/local-api/index.js +158 -0
- package/dist/lib/local-api/index.js.map +1 -0
- package/dist/lib/local-api/permissions.d.ts +45 -0
- package/dist/lib/local-api/permissions.d.ts.map +1 -0
- package/dist/lib/local-api/permissions.js +117 -0
- package/dist/lib/local-api/permissions.js.map +1 -0
- package/dist/lib/local-api/types.d.ts +65 -0
- package/dist/lib/local-api/types.d.ts.map +1 -0
- package/dist/lib/local-api/types.js +5 -0
- package/dist/lib/local-api/types.js.map +1 -0
- package/dist/lib/routes/assets-bulk.d.ts +3 -0
- package/dist/lib/routes/assets-bulk.d.ts.map +1 -0
- package/dist/lib/routes/assets-bulk.js +49 -0
- package/dist/lib/routes/assets-bulk.js.map +1 -0
- package/dist/lib/routes/assets-by-id.d.ts +5 -0
- package/dist/lib/routes/assets-by-id.d.ts.map +1 -0
- package/dist/lib/routes/assets-by-id.js +106 -0
- package/dist/lib/routes/assets-by-id.js.map +1 -0
- package/dist/lib/routes/assets-cdn.d.ts +3 -0
- package/dist/lib/routes/assets-cdn.d.ts.map +1 -0
- package/dist/lib/routes/assets-cdn.js +125 -0
- package/dist/lib/routes/assets-cdn.js.map +1 -0
- package/dist/lib/routes/assets-references-counts.d.ts +7 -0
- package/dist/lib/routes/assets-references-counts.d.ts.map +1 -0
- package/dist/lib/routes/assets-references-counts.js +32 -0
- package/dist/lib/routes/assets-references-counts.js.map +1 -0
- package/dist/lib/routes/assets-references.d.ts +7 -0
- package/dist/lib/routes/assets-references.d.ts.map +1 -0
- package/dist/lib/routes/assets-references.js +35 -0
- package/dist/lib/routes/assets-references.js.map +1 -0
- package/dist/lib/routes/assets.d.ts +4 -0
- package/dist/lib/routes/assets.d.ts.map +1 -0
- package/dist/lib/routes/assets.js +121 -0
- package/dist/lib/routes/assets.js.map +1 -0
- package/dist/lib/routes/documents-by-id.d.ts +5 -0
- package/dist/lib/routes/documents-by-id.d.ts.map +1 -0
- package/dist/lib/routes/documents-by-id.js +176 -0
- package/dist/lib/routes/documents-by-id.js.map +1 -0
- package/dist/lib/routes/documents-publish.d.ts +4 -0
- package/dist/lib/routes/documents-publish.d.ts.map +1 -0
- package/dist/lib/routes/documents-publish.js +138 -0
- package/dist/lib/routes/documents-publish.js.map +1 -0
- package/dist/lib/routes/documents-query.d.ts +26 -0
- package/dist/lib/routes/documents-query.d.ts.map +1 -0
- package/dist/lib/routes/documents-query.js +101 -0
- package/dist/lib/routes/documents-query.js.map +1 -0
- package/dist/lib/routes/documents.d.ts +4 -0
- package/dist/lib/routes/documents.d.ts.map +1 -0
- package/dist/lib/routes/documents.js +154 -0
- package/dist/lib/routes/documents.js.map +1 -0
- package/dist/lib/routes/index.d.ts +9 -0
- package/dist/lib/routes/index.d.ts.map +1 -0
- package/dist/lib/routes/index.js +15 -0
- package/dist/lib/routes/index.js.map +1 -0
- package/dist/lib/routes/organizations-by-id.d.ts +5 -0
- package/dist/lib/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/lib/routes/organizations-by-id.js +189 -0
- package/dist/lib/routes/organizations-by-id.js.map +1 -0
- package/dist/lib/routes/organizations-invitations.d.ts +4 -0
- package/dist/lib/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/lib/routes/organizations-invitations.js +127 -0
- package/dist/lib/routes/organizations-invitations.js.map +1 -0
- package/dist/lib/routes/organizations-members.d.ts +5 -0
- package/dist/lib/routes/organizations-members.d.ts.map +1 -0
- package/dist/lib/routes/organizations-members.js +208 -0
- package/dist/lib/routes/organizations-members.js.map +1 -0
- package/dist/lib/routes/organizations-switch.d.ts +3 -0
- package/dist/lib/routes/organizations-switch.d.ts.map +1 -0
- package/dist/lib/routes/organizations-switch.js +55 -0
- package/dist/lib/routes/organizations-switch.js.map +1 -0
- package/dist/lib/routes/organizations.d.ts +4 -0
- package/dist/lib/routes/organizations.d.ts.map +1 -0
- package/dist/lib/routes/organizations.js +111 -0
- package/dist/lib/routes/organizations.js.map +1 -0
- package/dist/lib/routes/schemas-by-type.d.ts +3 -0
- package/dist/lib/routes/schemas-by-type.d.ts.map +1 -0
- package/dist/lib/routes/schemas-by-type.js +27 -0
- package/dist/lib/routes/schemas-by-type.js.map +1 -0
- package/dist/lib/routes/schemas.d.ts +3 -0
- package/dist/lib/routes/schemas.d.ts.map +1 -0
- package/dist/lib/routes/schemas.js +12 -0
- package/dist/lib/routes/schemas.js.map +1 -0
- package/dist/lib/routes/user-preferences.d.ts +4 -0
- package/dist/lib/routes/user-preferences.d.ts.map +1 -0
- package/dist/lib/routes/user-preferences.js +79 -0
- package/dist/lib/routes/user-preferences.js.map +1 -0
- package/dist/lib/routes-exports.d.ts +17 -0
- package/dist/lib/routes-exports.d.ts.map +1 -0
- package/dist/lib/routes-exports.js +23 -0
- package/dist/lib/routes-exports.js.map +1 -0
- package/dist/lib/schema/index.d.ts +6 -0
- package/dist/lib/schema/index.d.ts.map +1 -0
- package/dist/lib/schema/index.js +12 -0
- package/dist/lib/schema/index.js.map +1 -0
- package/dist/lib/schema-context.svelte.d.ts +10 -0
- package/dist/lib/schema-context.svelte.d.ts.map +1 -0
- package/dist/lib/schema-context.svelte.js +19 -0
- package/dist/lib/schema-context.svelte.js.map +1 -0
- package/dist/lib/schema-utils/cleanup.d.ts +21 -0
- package/dist/lib/schema-utils/cleanup.d.ts.map +1 -0
- package/dist/lib/schema-utils/cleanup.js +81 -0
- package/dist/lib/schema-utils/cleanup.js.map +1 -0
- package/dist/lib/schema-utils/index.d.ts +4 -0
- package/dist/lib/schema-utils/index.d.ts.map +1 -0
- package/dist/lib/schema-utils/index.js +5 -0
- package/dist/lib/schema-utils/index.js.map +1 -0
- package/dist/lib/schema-utils/utils.d.ts +34 -0
- package/dist/lib/schema-utils/utils.d.ts.map +1 -0
- package/dist/lib/schema-utils/utils.js +59 -0
- package/dist/lib/schema-utils/utils.js.map +1 -0
- package/dist/lib/schema-utils/validator.d.ts +10 -0
- package/dist/lib/schema-utils/validator.d.ts.map +1 -0
- package/dist/lib/schema-utils/validator.js +167 -0
- package/dist/lib/schema-utils/validator.js.map +1 -0
- package/dist/lib/server/index.d.ts +19 -0
- package/dist/lib/server/index.d.ts.map +1 -0
- package/dist/lib/server/index.js +35 -0
- package/dist/lib/server/index.js.map +1 -0
- package/dist/lib/services/asset-service.d.ts +86 -0
- package/dist/lib/services/asset-service.d.ts.map +1 -0
- package/dist/lib/services/asset-service.js +189 -0
- package/dist/lib/services/asset-service.js.map +1 -0
- package/dist/lib/services/index.d.ts +3 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/lib/services/index.js +5 -0
- package/dist/lib/services/index.js.map +1 -0
- package/dist/lib/storage/adapters/index.d.ts +2 -0
- package/dist/lib/storage/adapters/index.d.ts.map +1 -0
- package/dist/lib/storage/adapters/index.js +3 -0
- package/dist/lib/storage/adapters/index.js.map +1 -0
- package/dist/lib/storage/adapters/local-storage-adapter.d.ts +54 -0
- package/dist/lib/storage/adapters/local-storage-adapter.d.ts.map +1 -0
- package/dist/lib/storage/adapters/local-storage-adapter.js +189 -0
- package/dist/lib/storage/adapters/local-storage-adapter.js.map +1 -0
- package/dist/lib/storage/index.d.ts +3 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +7 -0
- package/dist/lib/storage/index.js.map +1 -0
- package/dist/lib/storage/interfaces/index.d.ts +2 -0
- package/dist/lib/storage/interfaces/index.d.ts.map +1 -0
- package/dist/lib/storage/interfaces/index.js +1 -0
- package/dist/lib/storage/interfaces/index.js.map +1 -0
- package/dist/lib/storage/interfaces/storage.d.ts +91 -0
- package/dist/lib/storage/interfaces/storage.d.ts.map +1 -0
- package/dist/lib/storage/interfaces/storage.js +1 -0
- package/dist/lib/storage/interfaces/storage.js.map +1 -0
- package/dist/lib/storage/providers/storage.d.ts +43 -0
- package/dist/lib/storage/providers/storage.d.ts.map +1 -0
- package/dist/lib/storage/providers/storage.js +65 -0
- package/dist/lib/storage/providers/storage.js.map +1 -0
- package/dist/lib/types/asset.d.ts +73 -0
- package/dist/lib/types/asset.d.ts.map +1 -0
- package/dist/lib/types/asset.js +1 -0
- package/dist/lib/types/asset.js.map +1 -0
- package/dist/lib/types/auth.d.ts +62 -0
- package/dist/lib/types/auth.d.ts.map +1 -0
- package/dist/lib/types/auth.js +7 -5
- package/dist/lib/types/auth.js.map +1 -0
- package/dist/lib/types/config.d.ts +77 -0
- package/dist/lib/types/config.d.ts.map +1 -0
- package/dist/lib/types/config.js +1 -0
- package/dist/lib/types/config.js.map +1 -0
- package/dist/lib/types/document.d.ts +35 -0
- package/dist/lib/types/document.d.ts.map +1 -0
- package/dist/lib/types/document.js +1 -0
- package/dist/lib/types/document.js.map +1 -0
- package/dist/lib/types/filters.d.ts +186 -0
- package/dist/lib/types/filters.d.ts.map +1 -0
- package/dist/lib/types/filters.js +1 -0
- package/dist/lib/types/filters.js.map +1 -0
- package/dist/lib/types/index.d.ts +11 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/types/index.js +2 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/instance.d.ts +5 -0
- package/dist/lib/types/instance.d.ts.map +1 -0
- package/dist/lib/types/instance.js +3 -0
- package/dist/lib/types/instance.js.map +1 -0
- package/dist/lib/types/organization.d.ts +108 -0
- package/dist/lib/types/organization.d.ts.map +1 -0
- package/dist/lib/types/organization.js +1 -0
- package/dist/lib/types/organization.js.map +1 -0
- package/dist/lib/types/schemas.d.ts +179 -0
- package/dist/lib/types/schemas.d.ts.map +1 -0
- package/dist/lib/types/schemas.js +1 -0
- package/dist/lib/types/schemas.js.map +1 -0
- package/dist/lib/types/sidebar.d.ts +34 -0
- package/dist/lib/types/sidebar.d.ts.map +1 -0
- package/dist/lib/types/sidebar.js +1 -0
- package/dist/lib/types/sidebar.js.map +1 -0
- package/dist/lib/types/user.d.ts +14 -0
- package/dist/lib/types/user.d.ts.map +1 -0
- package/dist/lib/types/user.js +1 -0
- package/dist/lib/types/user.js.map +1 -0
- package/dist/lib/utils/asset-actions.d.ts +9 -0
- package/dist/lib/utils/asset-actions.d.ts.map +1 -0
- package/dist/lib/utils/asset-actions.js +28 -0
- package/dist/lib/utils/asset-actions.js.map +1 -0
- package/dist/lib/utils/content-hash.d.ts +22 -0
- package/dist/lib/utils/content-hash.d.ts.map +1 -0
- package/dist/lib/utils/content-hash.js +68 -0
- package/dist/lib/utils/content-hash.js.map +1 -0
- package/dist/lib/utils/default-orderings.d.ts +10 -0
- package/dist/lib/utils/default-orderings.d.ts.map +1 -0
- package/dist/lib/utils/default-orderings.js +64 -0
- package/dist/lib/utils/default-orderings.js.map +1 -0
- package/dist/lib/utils/element-events.d.ts +15 -0
- package/dist/lib/utils/element-events.d.ts.map +1 -0
- package/dist/lib/utils/element-events.js +17 -0
- package/dist/lib/utils/element-events.js.map +1 -0
- package/dist/lib/utils/field-defaults.d.ts +8 -0
- package/dist/lib/utils/field-defaults.d.ts.map +1 -0
- package/dist/lib/utils/field-defaults.js +21 -0
- package/dist/lib/utils/field-defaults.js.map +1 -0
- package/dist/lib/utils/image-url.d.ts +88 -0
- package/dist/lib/utils/image-url.d.ts.map +1 -0
- package/dist/lib/utils/image-url.js +167 -0
- package/dist/lib/utils/image-url.js.map +1 -0
- package/dist/lib/utils/index.d.ts +8 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +13 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/initial-value-helpers.d.ts +50 -0
- package/dist/lib/utils/initial-value-helpers.d.ts.map +1 -0
- package/dist/lib/utils/initial-value-helpers.js +71 -0
- package/dist/lib/utils/initial-value-helpers.js.map +1 -0
- package/dist/lib/utils/logger.d.ts +9 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +30 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/slug.d.ts +13 -0
- package/dist/lib/utils/slug.d.ts.map +1 -0
- package/dist/lib/utils/slug.js +31 -0
- package/dist/lib/utils/slug.js.map +1 -0
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/local-api/index.d.ts.map +1 -1
- package/dist/local-api/permissions.d.ts.map +1 -1
- package/dist/local-api/permissions.js +3 -4
- package/dist/routes/assets-bulk.d.ts +3 -0
- package/dist/routes/assets-bulk.d.ts.map +1 -0
- package/dist/routes/assets-bulk.js +48 -0
- package/dist/routes/assets-by-id.d.ts.map +1 -1
- package/dist/routes/assets-by-id.js +22 -55
- package/dist/routes/assets-cdn.d.ts.map +1 -1
- package/dist/routes/assets-cdn.js +12 -50
- package/dist/routes/assets-references-counts.d.ts +7 -0
- package/dist/routes/assets-references-counts.d.ts.map +1 -0
- package/dist/routes/assets-references-counts.js +31 -0
- package/dist/routes/assets-references.d.ts +7 -0
- package/dist/routes/assets-references.d.ts.map +1 -0
- package/dist/routes/assets-references.js +34 -0
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +27 -6
- package/dist/routes/documents-by-id.d.ts.map +1 -1
- package/dist/routes/documents-by-id.js +4 -3
- package/dist/routes/documents-publish.d.ts.map +1 -1
- package/dist/routes/documents-publish.js +3 -2
- package/dist/routes/documents-query.d.ts.map +1 -1
- package/dist/routes/documents-query.js +2 -1
- package/dist/routes/documents.d.ts.map +1 -1
- package/dist/routes/documents.js +3 -2
- package/dist/routes/organizations-by-id.d.ts.map +1 -1
- package/dist/routes/organizations-by-id.js +4 -3
- package/dist/routes/organizations-invitations.d.ts.map +1 -1
- package/dist/routes/organizations-invitations.js +5 -4
- package/dist/routes/organizations-members.d.ts.map +1 -1
- package/dist/routes/organizations-members.js +7 -6
- package/dist/routes/organizations-switch.d.ts.map +1 -1
- package/dist/routes/organizations-switch.js +2 -1
- package/dist/routes/organizations.d.ts.map +1 -1
- package/dist/routes/organizations.js +3 -2
- package/dist/routes/schemas-by-type.d.ts.map +1 -1
- package/dist/routes/schemas-by-type.js +3 -2
- package/dist/routes/user-preferences.d.ts.map +1 -1
- package/dist/routes/user-preferences.js +3 -2
- package/dist/routes-exports.d.ts +3 -0
- package/dist/routes-exports.d.ts.map +1 -1
- package/dist/routes-exports.js +3 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +11 -0
- package/dist/schema-utils/validator.d.ts.map +1 -1
- package/dist/schema-utils/validator.js +4 -3
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -0
- package/dist/services/asset-service.d.ts.map +1 -1
- package/dist/services/asset-service.js +8 -7
- package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
- package/dist/storage/adapters/local-storage-adapter.js +5 -4
- package/dist/types/auth.d.ts +13 -1
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/auth.js +6 -5
- package/dist/types/config.d.ts +14 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/document.d.ts +1 -1
- package/dist/types/document.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/instance.d.ts +5 -0
- package/dist/types/instance.d.ts.map +1 -0
- package/dist/types/instance.js +2 -0
- package/dist/types/schemas.d.ts +1 -1
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/sidebar.d.ts +1 -0
- package/dist/types/sidebar.d.ts.map +1 -1
- package/dist/utils/asset-actions.d.ts +9 -0
- package/dist/utils/asset-actions.d.ts.map +1 -0
- package/dist/utils/asset-actions.js +27 -0
- package/dist/utils/element-events.d.ts +15 -0
- package/dist/utils/element-events.d.ts.map +1 -0
- package/dist/utils/element-events.js +16 -0
- package/dist/utils/image-url.d.ts.map +1 -1
- package/dist/utils/image-url.js +10 -9
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +29 -0
- package/package.json +132 -103
- package/LICENSE +0 -21
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively resolves reference fields in a document
|
|
3
|
+
* @param document - The document to resolve references for
|
|
4
|
+
* @param adapter - Document adapter for fetching referenced documents
|
|
5
|
+
* @param organizationId - Organization ID for filtering referenced documents
|
|
6
|
+
* @param options - Resolution options (depth, tracking)
|
|
7
|
+
* @returns Document with resolved references
|
|
8
|
+
*/
|
|
9
|
+
export async function resolveReferences(document, adapter, organizationId, options) {
|
|
10
|
+
const { depth, currentDepth = 0, visited = new Set() } = options;
|
|
11
|
+
// Base case: no more depth to resolve or already visited (circular reference)
|
|
12
|
+
if (currentDepth >= depth || visited.has(document.id)) {
|
|
13
|
+
return document;
|
|
14
|
+
}
|
|
15
|
+
// Mark as visited
|
|
16
|
+
visited.add(document.id);
|
|
17
|
+
// Clone the document to avoid mutations
|
|
18
|
+
const resolvedDocument = { ...document };
|
|
19
|
+
// Resolve references in draftData
|
|
20
|
+
if (document.draftData) {
|
|
21
|
+
resolvedDocument.draftData = await resolveDataReferences(document.draftData, adapter, organizationId, {
|
|
22
|
+
depth,
|
|
23
|
+
currentDepth: currentDepth + 1,
|
|
24
|
+
visited
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
// Resolve references in publishedData
|
|
28
|
+
if (document.publishedData) {
|
|
29
|
+
resolvedDocument.publishedData = await resolveDataReferences(document.publishedData, adapter, organizationId, {
|
|
30
|
+
depth,
|
|
31
|
+
currentDepth: currentDepth + 1,
|
|
32
|
+
visited
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return resolvedDocument;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolves references within document data (recursive)
|
|
39
|
+
*/
|
|
40
|
+
async function resolveDataReferences(data, adapter, organizationId, options) {
|
|
41
|
+
if (!data || typeof data !== 'object') {
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
44
|
+
// Handle arrays
|
|
45
|
+
if (Array.isArray(data)) {
|
|
46
|
+
return Promise.all(data.map((item) => resolveDataReferences(item, adapter, organizationId, options)));
|
|
47
|
+
}
|
|
48
|
+
// Clone object
|
|
49
|
+
const resolved = {};
|
|
50
|
+
for (const [key, value] of Object.entries(data)) {
|
|
51
|
+
// Check if this looks like a reference field (string ID)
|
|
52
|
+
if (typeof value === 'string' && key !== '_type' && key !== '_key') {
|
|
53
|
+
// Try to fetch the referenced document
|
|
54
|
+
try {
|
|
55
|
+
const referencedDoc = await adapter.findByDocIdAdvanced(organizationId, value);
|
|
56
|
+
if (referencedDoc) {
|
|
57
|
+
// Recursively resolve nested references
|
|
58
|
+
resolved[key] = await resolveReferences(referencedDoc, adapter, organizationId, options);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Reference not found, keep the ID
|
|
62
|
+
resolved[key] = value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
// On error, keep the original value
|
|
67
|
+
resolved[key] = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (value && typeof value === 'object') {
|
|
71
|
+
// Recursively resolve nested objects/arrays
|
|
72
|
+
resolved[key] = await resolveDataReferences(value, adapter, organizationId, options);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Primitive value, keep as is
|
|
76
|
+
resolved[key] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return resolved;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=reference-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-resolver.js","sourceRoot":"","sources":["../../../../src/lib/db/utils/reference-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/lib/define.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAE5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/lib/define.ts"],"names":[],"mappings":"AAGA,oBAAoB;AACpB,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/email/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC"}
|
package/dist/lib/email/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/email/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,kDAAkD;AAElD,aAAa;AACb,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface EmailAddress {
|
|
2
|
+
email: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SendEmailOptions {
|
|
6
|
+
from: string;
|
|
7
|
+
to: string | string[];
|
|
8
|
+
subject: string;
|
|
9
|
+
html?: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
cc?: string | string[];
|
|
12
|
+
bcc?: string | string[];
|
|
13
|
+
replyTo?: string;
|
|
14
|
+
tags?: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
value: string;
|
|
17
|
+
}>;
|
|
18
|
+
attachments?: Array<{
|
|
19
|
+
filename: string;
|
|
20
|
+
content: Buffer | string;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface SendEmailResult {
|
|
24
|
+
id: string;
|
|
25
|
+
error?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface EmailAdapter {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
send(options: SendEmailOptions): Promise<SendEmailResult>;
|
|
30
|
+
sendBatch?(emails: SendEmailOptions[]): Promise<SendEmailResult[]>;
|
|
31
|
+
}
|
|
32
|
+
export interface EmailProvider {
|
|
33
|
+
name: string;
|
|
34
|
+
createAdapter(config: EmailConfig): EmailAdapter;
|
|
35
|
+
}
|
|
36
|
+
export interface EmailConfig {
|
|
37
|
+
apiKey?: string;
|
|
38
|
+
options?: {
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../../src/lib/email/interfaces/email.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE1D,SAAS,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../../src/lib/email/interfaces/email.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CMSConfig } from './types/config.js';
|
|
2
|
+
import type { SchemaType } from './types/schemas.js';
|
|
3
|
+
import type { DatabaseAdapter } from './db/interfaces/index.js';
|
|
4
|
+
export declare class CMSEngine {
|
|
5
|
+
private db;
|
|
6
|
+
config: CMSConfig;
|
|
7
|
+
constructor(config: CMSConfig, dbAdapter: DatabaseAdapter);
|
|
8
|
+
updateConfig(newConfig: CMSConfig): void;
|
|
9
|
+
initialize(): Promise<void>;
|
|
10
|
+
getSchemaType(name: string): Promise<SchemaType | null>;
|
|
11
|
+
listSchemas(): Promise<SchemaType[]>;
|
|
12
|
+
getSchemaTypeByName(name: string): SchemaType | null;
|
|
13
|
+
listDocumentTypes(): Promise<Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
title: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
}>>;
|
|
18
|
+
listObjectTypes(): Promise<Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
}>>;
|
|
23
|
+
}
|
|
24
|
+
export declare function createCMS(config: CMSConfig, dbAdapter: DatabaseAdapter): CMSEngine;
|
|
25
|
+
export declare function getCMS(): CMSEngine;
|
|
26
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,qBAAa,SAAS;IACrB,OAAO,CAAC,EAAE,CAAkB;IACrB,MAAM,EAAE,SAAS,CAAC;gBAEb,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe;IAMzD,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAUlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIvD,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI1C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI9C,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI1F,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAG9F;AAKD,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,GAAG,SAAS,CAKlF;AAED,wBAAgB,MAAM,IAAI,SAAS,CAKlC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { validateSchemaReferences } from './schema-utils/validator.js';
|
|
2
|
+
import { cmsLogger } from './utils/logger.js';
|
|
3
|
+
export class CMSEngine {
|
|
4
|
+
db;
|
|
5
|
+
config;
|
|
6
|
+
constructor(config, dbAdapter) {
|
|
7
|
+
this.config = config;
|
|
8
|
+
this.db = dbAdapter;
|
|
9
|
+
}
|
|
10
|
+
// Update config dynamically (for schema hot-reloading)
|
|
11
|
+
updateConfig(newConfig) {
|
|
12
|
+
this.config = newConfig;
|
|
13
|
+
cmsLogger.info('[CMS]', 'Config updated:', {
|
|
14
|
+
schemaTypes: newConfig.schemaTypes.length,
|
|
15
|
+
documents: newConfig.schemaTypes.filter((t) => t.type === 'document').length,
|
|
16
|
+
objects: newConfig.schemaTypes.filter((t) => t.type === 'object').length
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
// Initialize CMS - register schema types in database
|
|
20
|
+
async initialize() {
|
|
21
|
+
cmsLogger.info('[CMS]', 'Initializing...');
|
|
22
|
+
// Validate schemas before syncing to database
|
|
23
|
+
validateSchemaReferences(this.config.schemaTypes);
|
|
24
|
+
// Get existing schemas from database
|
|
25
|
+
const existingSchemas = await this.db.listSchemas();
|
|
26
|
+
const existingNames = new Set(existingSchemas.map((s) => s.name));
|
|
27
|
+
const currentNames = new Set(this.config.schemaTypes.map((s) => s.name));
|
|
28
|
+
// Delete schemas that are no longer in config
|
|
29
|
+
for (const existingName of existingNames) {
|
|
30
|
+
if (!currentNames.has(existingName)) {
|
|
31
|
+
await this.db.deleteSchemaType(existingName);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Register all schema types (updates if exists, creates if new)
|
|
35
|
+
for (const schemaType of this.config.schemaTypes) {
|
|
36
|
+
await this.db.registerSchemaType(schemaType);
|
|
37
|
+
}
|
|
38
|
+
cmsLogger.info('[CMS]', 'Initialized successfully');
|
|
39
|
+
}
|
|
40
|
+
// Schema Type utility methods
|
|
41
|
+
async getSchemaType(name) {
|
|
42
|
+
return this.db.getSchemaType(name);
|
|
43
|
+
}
|
|
44
|
+
async listSchemas() {
|
|
45
|
+
return this.db.listSchemas();
|
|
46
|
+
}
|
|
47
|
+
getSchemaTypeByName(name) {
|
|
48
|
+
return this.config.schemaTypes.find((s) => s.name === name) || null;
|
|
49
|
+
}
|
|
50
|
+
async listDocumentTypes() {
|
|
51
|
+
return this.db.listDocumentTypes();
|
|
52
|
+
}
|
|
53
|
+
async listObjectTypes() {
|
|
54
|
+
return this.db.listObjectTypes();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Global CMS instance
|
|
58
|
+
let cmsInstance = null;
|
|
59
|
+
export function createCMS(config, dbAdapter) {
|
|
60
|
+
if (!cmsInstance) {
|
|
61
|
+
cmsInstance = new CMSEngine(config, dbAdapter);
|
|
62
|
+
}
|
|
63
|
+
return cmsInstance;
|
|
64
|
+
}
|
|
65
|
+
export function getCMS() {
|
|
66
|
+
if (!cmsInstance) {
|
|
67
|
+
throw new Error('CMS not initialized. Call createCMS() first.');
|
|
68
|
+
}
|
|
69
|
+
return cmsInstance;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SchemaType } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Convert a date value to user format for validation
|
|
4
|
+
* Handles both ISO format and user format inputs
|
|
5
|
+
*/
|
|
6
|
+
export declare function convertDateToUserFormat(value: string, userFormat: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Convert a date value to ISO format for storage
|
|
9
|
+
* Returns ISO if already valid, or original value if invalid
|
|
10
|
+
*/
|
|
11
|
+
export declare function convertDateToISO(value: string, userFormat: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Convert a datetime value to user format for validation
|
|
14
|
+
* Handles both ISO datetime and user format inputs
|
|
15
|
+
*/
|
|
16
|
+
export declare function convertDateTimeToUserFormat(value: string, dateFormat: string, timeFormat?: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Convert a datetime value to ISO UTC format for storage
|
|
19
|
+
* Returns ISO UTC if already valid, or original value if invalid
|
|
20
|
+
*/
|
|
21
|
+
export declare function convertDateTimeToISO(value: string, dateFormat: string, timeFormat?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Normalize date fields in data object
|
|
24
|
+
* Converts dates to ISO for storage and creates a parallel object with user-formatted dates for validation
|
|
25
|
+
*/
|
|
26
|
+
export declare function normalizeDateFields(data: Record<string, any>, schema: SchemaType): {
|
|
27
|
+
normalizedData: Record<string, any>;
|
|
28
|
+
dataForValidation: Record<string, any>;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=date-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/field-validation/date-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA4B,MAAM,gBAAgB,CAAC;AAS3E;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBjF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB1E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAgB,GAC1B,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAgB,GAC1B,MAAM,CA6BR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,MAAM,EAAE,UAAU,GAChB;IACF,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC,CA8DA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
|
|
3
3
|
import utc from 'dayjs/plugin/utc.js';
|
|
4
|
+
import { cmsLogger } from '../utils/logger.js';
|
|
4
5
|
dayjs.extend(customParseFormat);
|
|
5
6
|
dayjs.extend(utc);
|
|
6
7
|
/**
|
|
@@ -70,13 +71,13 @@ export function convertDateTimeToUserFormat(value, dateFormat, timeFormat = 'HH:
|
|
|
70
71
|
*/
|
|
71
72
|
export function convertDateTimeToISO(value, dateFormat, timeFormat = 'HH:mm') {
|
|
72
73
|
const userFormat = `${dateFormat} ${timeFormat}`;
|
|
73
|
-
|
|
74
|
+
cmsLogger.debug('[convertDateTimeToISO]', { value, userFormat });
|
|
74
75
|
// Try parsing as user format first (for API consumers)
|
|
75
76
|
// Use strict mode to reject invalid dates like Feb 31st
|
|
76
77
|
const parsedUser = dayjs(value, userFormat, true);
|
|
77
78
|
if (parsedUser.isValid()) {
|
|
78
79
|
const result = parsedUser.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
|
|
79
|
-
|
|
80
|
+
cmsLogger.debug('[convertDateTimeToISO] User format parse successful, converting to UTC:', result);
|
|
80
81
|
return result;
|
|
81
82
|
}
|
|
82
83
|
// Try parsing as ISO datetime (for DateTimeField component)
|
|
@@ -84,11 +85,11 @@ export function convertDateTimeToISO(value, dateFormat, timeFormat = 'HH:mm') {
|
|
|
84
85
|
const parsedISO = dayjs(value, 'YYYY-MM-DDTHH:mm:ss[Z]', true);
|
|
85
86
|
if (parsedISO.isValid()) {
|
|
86
87
|
const result = parsedISO.utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
|
|
87
|
-
|
|
88
|
+
cmsLogger.debug('[convertDateTimeToISO] ISO parse successful:', result);
|
|
88
89
|
return result;
|
|
89
90
|
}
|
|
90
91
|
// Invalid datetime - return as-is
|
|
91
|
-
|
|
92
|
+
cmsLogger.debug('[convertDateTimeToISO] Invalid - returning as-is');
|
|
92
93
|
return value;
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
@@ -98,21 +99,21 @@ export function convertDateTimeToISO(value, dateFormat, timeFormat = 'HH:mm') {
|
|
|
98
99
|
export function normalizeDateFields(data, schema) {
|
|
99
100
|
const normalizedData = { ...data };
|
|
100
101
|
const dataForValidation = { ...data };
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
cmsLogger.debug('[normalizeDateFields] Starting normalization...');
|
|
103
|
+
cmsLogger.debug('[normalizeDateFields] Input data:', data);
|
|
103
104
|
for (const field of schema.fields) {
|
|
104
105
|
if (field.type === 'date' && normalizedData[field.name]) {
|
|
105
106
|
const dateField = field;
|
|
106
107
|
const userFormat = dateField.options?.dateFormat || 'YYYY-MM-DD';
|
|
107
108
|
const dateValue = normalizedData[field.name];
|
|
108
|
-
|
|
109
|
+
cmsLogger.debug(`[normalizeDateFields] Processing DATE field "${field.name}"`, {
|
|
109
110
|
originalValue: dateValue,
|
|
110
111
|
userFormat
|
|
111
112
|
});
|
|
112
113
|
if (typeof dateValue === 'string') {
|
|
113
114
|
normalizedData[field.name] = convertDateToISO(dateValue, userFormat);
|
|
114
115
|
dataForValidation[field.name] = convertDateToUserFormat(dateValue, userFormat);
|
|
115
|
-
|
|
116
|
+
cmsLogger.debug(`[normalizeDateFields] Converted DATE field "${field.name}"`, {
|
|
116
117
|
normalizedValue: normalizedData[field.name],
|
|
117
118
|
validationValue: dataForValidation[field.name]
|
|
118
119
|
});
|
|
@@ -123,7 +124,7 @@ export function normalizeDateFields(data, schema) {
|
|
|
123
124
|
const dateFormat = dateTimeField.options?.dateFormat || 'YYYY-MM-DD';
|
|
124
125
|
const timeFormat = dateTimeField.options?.timeFormat || 'HH:mm';
|
|
125
126
|
const dateTimeValue = normalizedData[field.name];
|
|
126
|
-
|
|
127
|
+
cmsLogger.debug(`[normalizeDateFields] Processing DATETIME field "${field.name}"`, {
|
|
127
128
|
originalValue: dateTimeValue,
|
|
128
129
|
dateFormat,
|
|
129
130
|
timeFormat,
|
|
@@ -132,16 +133,17 @@ export function normalizeDateFields(data, schema) {
|
|
|
132
133
|
if (typeof dateTimeValue === 'string') {
|
|
133
134
|
normalizedData[field.name] = convertDateTimeToISO(dateTimeValue, dateFormat, timeFormat);
|
|
134
135
|
dataForValidation[field.name] = convertDateTimeToUserFormat(dateTimeValue, dateFormat, timeFormat);
|
|
135
|
-
|
|
136
|
+
cmsLogger.debug(`[normalizeDateFields] Converted DATETIME field "${field.name}"`, {
|
|
136
137
|
normalizedValue: normalizedData[field.name],
|
|
137
138
|
validationValue: dataForValidation[field.name]
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
+
cmsLogger.debug('[normalizeDateFields] Final result:', {
|
|
143
144
|
normalizedData,
|
|
144
145
|
dataForValidation
|
|
145
146
|
});
|
|
146
147
|
return { normalizedData, dataForValidation };
|
|
147
148
|
}
|
|
149
|
+
//# sourceMappingURL=date-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-utils.js","sourceRoot":"","sources":["../../../src/lib/field-validation/date-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface ValidationMarker {
|
|
2
|
+
level: 'error' | 'warning' | 'info';
|
|
3
|
+
message: string;
|
|
4
|
+
path?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationContext {
|
|
7
|
+
document?: any;
|
|
8
|
+
parent?: any;
|
|
9
|
+
path?: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface CustomValidator<T = unknown> {
|
|
12
|
+
(value: T, context: ValidationContext): ValidationMarker[] | string | boolean | Promise<ValidationMarker[] | string | boolean>;
|
|
13
|
+
}
|
|
14
|
+
export interface FieldReference {
|
|
15
|
+
__fieldReference: true;
|
|
16
|
+
path: string | string[];
|
|
17
|
+
}
|
|
18
|
+
export declare class Rule {
|
|
19
|
+
private _required;
|
|
20
|
+
private _rules;
|
|
21
|
+
private _level;
|
|
22
|
+
private _message?;
|
|
23
|
+
static FIELD_REF: symbol;
|
|
24
|
+
static valueOfField(path: string | string[]): FieldReference;
|
|
25
|
+
valueOfField(path: string | string[]): FieldReference;
|
|
26
|
+
required(): Rule;
|
|
27
|
+
optional(): Rule;
|
|
28
|
+
min(len: number | string | FieldReference): Rule;
|
|
29
|
+
max(len: number | string | FieldReference): Rule;
|
|
30
|
+
length(len: number | FieldReference): Rule;
|
|
31
|
+
unique(): Rule;
|
|
32
|
+
email(): Rule;
|
|
33
|
+
uri(options?: {
|
|
34
|
+
scheme?: RegExp[];
|
|
35
|
+
allowRelative?: boolean;
|
|
36
|
+
}): Rule;
|
|
37
|
+
regex(pattern: RegExp, name?: string): Rule;
|
|
38
|
+
positive(): Rule;
|
|
39
|
+
negative(): Rule;
|
|
40
|
+
integer(): Rule;
|
|
41
|
+
greaterThan(num: number | FieldReference): Rule;
|
|
42
|
+
lessThan(num: number | FieldReference): Rule;
|
|
43
|
+
date(format?: string): Rule;
|
|
44
|
+
datetime(dateFormat?: string, timeFormat?: string): Rule;
|
|
45
|
+
custom<T = unknown>(fn: CustomValidator<T>): Rule;
|
|
46
|
+
error(message?: string): Rule;
|
|
47
|
+
warning(message?: string): Rule;
|
|
48
|
+
info(message?: string): Rule;
|
|
49
|
+
clone(): Rule;
|
|
50
|
+
validate(value: unknown, context?: ValidationContext): Promise<ValidationMarker[]>;
|
|
51
|
+
private validateRule;
|
|
52
|
+
isRequired(): boolean;
|
|
53
|
+
private normalizeForComparison;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/lib/field-validation/rule.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAEjC,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC3C,CACC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,GACxB,gBAAgB,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC1F;AAED,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAE,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,IAAI;IAChB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO,CAAC,MAAM,CAAmE;IACjF,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B,MAAM,CAAC,SAAS,SAA4B;IAE5C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc;IAO5D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc;IAIrD,QAAQ,IAAI,IAAI;IAMhB,QAAQ,IAAI,IAAI;IAMhB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI;IAMhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI;IAMhD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAM1C,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAMb,GAAG,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAMnE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3C,QAAQ,IAAI,IAAI;IAMhB,QAAQ,IAAI,IAAI;IAMhB,OAAO,IAAI,IAAI;IAMf,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAM/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAM5C,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxD,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAMjD,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAO7B,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAO/B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAO5B,KAAK,IAAI,IAAI;IASP,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAwC9E,YAAY;IAgO1B,UAAU,IAAI,OAAO;IAKrB,OAAO,CAAC,sBAAsB;CAkB9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Sanity-style validation Rule implementation
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
|
|
4
|
+
import { cmsLogger } from '../utils/logger.js';
|
|
4
5
|
// Enable strict parsing
|
|
5
6
|
dayjs.extend(customParseFormat);
|
|
6
7
|
export class Rule {
|
|
@@ -297,52 +298,52 @@ export class Rule {
|
|
|
297
298
|
case 'date': {
|
|
298
299
|
if (typeof value === 'string') {
|
|
299
300
|
const format = rule.constraint || 'YYYY-MM-DD';
|
|
300
|
-
|
|
301
|
+
cmsLogger.debug('[Rule.validate] DATE validation', { value, format });
|
|
301
302
|
// Parse with strict mode
|
|
302
303
|
const parsed = dayjs(value, format, true);
|
|
303
|
-
|
|
304
|
+
cmsLogger.debug('[Rule.validate] DATE parsed', {
|
|
304
305
|
isValid: parsed.isValid(),
|
|
305
306
|
parsed: parsed.format()
|
|
306
307
|
});
|
|
307
308
|
if (!parsed.isValid()) {
|
|
308
|
-
|
|
309
|
+
cmsLogger.debug('[Rule.validate] DATE validation FAILED - invalid format');
|
|
309
310
|
return `Invalid date format. Expected: ${format}`;
|
|
310
311
|
}
|
|
311
312
|
// Verify the parsed date matches the input (catches invalid dates like 2025-02-31)
|
|
312
313
|
if (parsed.format(format) !== value) {
|
|
313
|
-
|
|
314
|
+
cmsLogger.debug('[Rule.validate] DATE validation FAILED - format mismatch', {
|
|
314
315
|
expected: value,
|
|
315
316
|
got: parsed.format(format)
|
|
316
317
|
});
|
|
317
318
|
return `Invalid date. Expected format: ${format}`;
|
|
318
319
|
}
|
|
319
|
-
|
|
320
|
+
cmsLogger.debug('[Rule.validate] DATE validation PASSED');
|
|
320
321
|
}
|
|
321
322
|
break;
|
|
322
323
|
}
|
|
323
324
|
case 'datetime': {
|
|
324
325
|
if (typeof value === 'string') {
|
|
325
326
|
const format = rule.constraint || 'YYYY-MM-DD HH:mm';
|
|
326
|
-
|
|
327
|
+
cmsLogger.debug('[Rule.validate] DATETIME validation', { value, format });
|
|
327
328
|
// Parse with strict mode
|
|
328
329
|
const parsed = dayjs(value, format, true);
|
|
329
|
-
|
|
330
|
+
cmsLogger.debug('[Rule.validate] DATETIME parsed', {
|
|
330
331
|
isValid: parsed.isValid(),
|
|
331
332
|
parsed: parsed.format()
|
|
332
333
|
});
|
|
333
334
|
if (!parsed.isValid()) {
|
|
334
|
-
|
|
335
|
+
cmsLogger.debug('[Rule.validate] DATETIME validation FAILED - invalid format');
|
|
335
336
|
return `Invalid datetime format. Expected: ${format}`;
|
|
336
337
|
}
|
|
337
338
|
// Verify the parsed datetime matches the input (catches invalid dates like 2025-02-31 23:59)
|
|
338
339
|
if (parsed.format(format) !== value) {
|
|
339
|
-
|
|
340
|
+
cmsLogger.debug('[Rule.validate] DATETIME validation FAILED - format mismatch', {
|
|
340
341
|
expected: value,
|
|
341
342
|
got: parsed.format(format)
|
|
342
343
|
});
|
|
343
344
|
return `Invalid datetime. Expected format: ${format}`;
|
|
344
345
|
}
|
|
345
|
-
|
|
346
|
+
cmsLogger.debug('[Rule.validate] DATETIME validation PASSED');
|
|
346
347
|
}
|
|
347
348
|
break;
|
|
348
349
|
}
|
|
@@ -385,3 +386,4 @@ export class Rule {
|
|
|
385
386
|
return value;
|
|
386
387
|
}
|
|
387
388
|
}
|
|
389
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/lib/field-validation/rule.ts"],"names":[],"mappings":"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"}
|