@aphexcms/cms-core 0.2.3 → 2.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/AppSidebar.svelte.d.ts +8 -1
- package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts.map +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 +69 -36
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
function capitalizeFirst(str) {
|
|
2
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
3
|
+
}
|
|
4
|
+
function generateGraphQLField(field, schemaTypes, parentName = '') {
|
|
5
|
+
const nullability = isFieldRequired(field) ? '!' : '';
|
|
6
|
+
const fieldType = getGraphQLType(field, schemaTypes, parentName);
|
|
7
|
+
return ` ${field.name}: ${fieldType}${nullability}`;
|
|
8
|
+
}
|
|
9
|
+
function getGraphQLType(field, schemaTypes, parentName = '') {
|
|
10
|
+
switch (field.type) {
|
|
11
|
+
case 'string':
|
|
12
|
+
case 'text':
|
|
13
|
+
case 'slug':
|
|
14
|
+
return 'String';
|
|
15
|
+
case 'number':
|
|
16
|
+
return 'Float';
|
|
17
|
+
case 'boolean':
|
|
18
|
+
return 'Boolean';
|
|
19
|
+
case 'image':
|
|
20
|
+
return 'Image';
|
|
21
|
+
case 'array':
|
|
22
|
+
return handleArrayField(field, schemaTypes, parentName);
|
|
23
|
+
case 'object':
|
|
24
|
+
return handleObjectField(field, schemaTypes, parentName);
|
|
25
|
+
case 'reference':
|
|
26
|
+
return handleReferenceField(field);
|
|
27
|
+
default:
|
|
28
|
+
return 'String';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function handleArrayField(field, schemaTypes, parentName = '') {
|
|
32
|
+
if (!field.of || field.of.length === 0) {
|
|
33
|
+
return '[String]';
|
|
34
|
+
}
|
|
35
|
+
// Check if all referenced types exist in schemaTypes
|
|
36
|
+
const validTypes = field.of.filter((item) => schemaTypes.find((s) => s.name === item.type));
|
|
37
|
+
if (validTypes.length === 0) {
|
|
38
|
+
return '[String]'; // Fallback if no valid types found
|
|
39
|
+
}
|
|
40
|
+
// If array contains only one type
|
|
41
|
+
if (validTypes.length === 1) {
|
|
42
|
+
const itemType = validTypes[0];
|
|
43
|
+
return `[${capitalizeFirst(itemType.type)}]`;
|
|
44
|
+
}
|
|
45
|
+
// For multiple types in array, create union type with parent prefix
|
|
46
|
+
const unionName = `${capitalizeFirst(parentName)}${capitalizeFirst(field.name)}Item`;
|
|
47
|
+
return `[${unionName}]`;
|
|
48
|
+
}
|
|
49
|
+
function handleObjectField(field, _schemaTypes, parentName = '') {
|
|
50
|
+
if (field.fields && field.fields.length > 0) {
|
|
51
|
+
// Inline object - create a unique type name with parent prefix
|
|
52
|
+
return capitalizeFirst(`${parentName}${field.name}Object`);
|
|
53
|
+
}
|
|
54
|
+
return 'String'; // JSON string fallback
|
|
55
|
+
}
|
|
56
|
+
function handleReferenceField(field) {
|
|
57
|
+
if (field.to && field.to.length === 1) {
|
|
58
|
+
return capitalizeFirst(field.to[0].type);
|
|
59
|
+
}
|
|
60
|
+
return 'String'; // ID reference for MVP
|
|
61
|
+
}
|
|
62
|
+
function isFieldRequired(field) {
|
|
63
|
+
if (!field.validation)
|
|
64
|
+
return false;
|
|
65
|
+
// Simple check - in production you'd parse the validation rules properly
|
|
66
|
+
return field.validation.toString().includes('required');
|
|
67
|
+
}
|
|
68
|
+
function generateObjectType(schemaType, allSchemaTypes) {
|
|
69
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
70
|
+
const fields = schemaType.fields
|
|
71
|
+
.map((field) => generateGraphQLField(field, allSchemaTypes, schemaType.name))
|
|
72
|
+
.join('\n');
|
|
73
|
+
return `type ${typeName} {
|
|
74
|
+
${fields}
|
|
75
|
+
}`;
|
|
76
|
+
}
|
|
77
|
+
function generateDocumentType(schemaType, allSchemaTypes) {
|
|
78
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
79
|
+
const customFields = schemaType.fields
|
|
80
|
+
.map((field) => generateGraphQLField(field, allSchemaTypes, schemaType.name))
|
|
81
|
+
.join('\n');
|
|
82
|
+
return `type ${typeName} {
|
|
83
|
+
id: ID!
|
|
84
|
+
type: String!
|
|
85
|
+
status: String!
|
|
86
|
+
createdAt: String
|
|
87
|
+
updatedAt: String
|
|
88
|
+
publishedAt: String
|
|
89
|
+
${customFields}
|
|
90
|
+
}`;
|
|
91
|
+
}
|
|
92
|
+
function generateInlineObjectTypes(schemaTypes) {
|
|
93
|
+
const inlineTypes = [];
|
|
94
|
+
function processFields(fields, parentName) {
|
|
95
|
+
fields.forEach((field) => {
|
|
96
|
+
if (field.type === 'object' && field.fields) {
|
|
97
|
+
const objectField = field;
|
|
98
|
+
const typeName = capitalizeFirst(`${parentName}${field.name}Object`);
|
|
99
|
+
const fieldDefs = objectField.fields
|
|
100
|
+
.map((f) => generateGraphQLField(f, schemaTypes, `${parentName}${field.name}`))
|
|
101
|
+
.join('\n');
|
|
102
|
+
inlineTypes.push(`type ${typeName} {
|
|
103
|
+
${fieldDefs}
|
|
104
|
+
}`);
|
|
105
|
+
// Recursively process nested objects
|
|
106
|
+
processFields(objectField.fields, `${parentName}${field.name}`);
|
|
107
|
+
}
|
|
108
|
+
if (field.type === 'array') {
|
|
109
|
+
const arrayField = field;
|
|
110
|
+
if (arrayField.of && arrayField.of.length > 1) {
|
|
111
|
+
// Only create union for types that exist in schemaTypes
|
|
112
|
+
const validTypes = arrayField.of.filter((item) => schemaTypes.find((s) => s.name === item.type));
|
|
113
|
+
if (validTypes.length > 1) {
|
|
114
|
+
const unionName = `${capitalizeFirst(parentName)}${capitalizeFirst(field.name)}Item`;
|
|
115
|
+
const unionTypes = validTypes.map((item) => capitalizeFirst(item.type)).join(' | ');
|
|
116
|
+
inlineTypes.push(`union ${unionName} = ${unionTypes}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
schemaTypes.forEach((schemaType) => {
|
|
123
|
+
processFields(schemaType.fields, schemaType.name);
|
|
124
|
+
});
|
|
125
|
+
return inlineTypes.join('\n\n');
|
|
126
|
+
}
|
|
127
|
+
// Generate filter input types
|
|
128
|
+
function generateFilterInputTypes() {
|
|
129
|
+
return `# Filter operators for string fields
|
|
130
|
+
input StringFilter {
|
|
131
|
+
equals: String
|
|
132
|
+
not_equals: String
|
|
133
|
+
in: [String!]
|
|
134
|
+
not_in: [String!]
|
|
135
|
+
contains: String
|
|
136
|
+
starts_with: String
|
|
137
|
+
ends_with: String
|
|
138
|
+
like: String
|
|
139
|
+
exists: Boolean
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Filter operators for number fields
|
|
143
|
+
input NumberFilter {
|
|
144
|
+
equals: Float
|
|
145
|
+
not_equals: Float
|
|
146
|
+
in: [Float!]
|
|
147
|
+
not_in: [Float!]
|
|
148
|
+
greater_than: Float
|
|
149
|
+
greater_than_equal: Float
|
|
150
|
+
less_than: Float
|
|
151
|
+
less_than_equal: Float
|
|
152
|
+
exists: Boolean
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# Filter operators for boolean fields
|
|
156
|
+
input BooleanFilter {
|
|
157
|
+
equals: Boolean
|
|
158
|
+
not_equals: Boolean
|
|
159
|
+
exists: Boolean
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
# Filter operators for ID fields
|
|
163
|
+
input IDFilter {
|
|
164
|
+
equals: ID
|
|
165
|
+
not_equals: ID
|
|
166
|
+
in: [ID!]
|
|
167
|
+
not_in: [ID!]
|
|
168
|
+
exists: Boolean
|
|
169
|
+
}`;
|
|
170
|
+
}
|
|
171
|
+
// Generate where input type for a specific document type
|
|
172
|
+
function generateWhereInputType(schemaType, _allSchemaTypes) {
|
|
173
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
174
|
+
const whereTypeName = `${typeName}WhereInput`;
|
|
175
|
+
// Generate field filters
|
|
176
|
+
const fieldFilters = [];
|
|
177
|
+
schemaType.fields.forEach((field) => {
|
|
178
|
+
const filterType = getFilterType(field);
|
|
179
|
+
if (filterType) {
|
|
180
|
+
fieldFilters.push(` ${field.name}: ${filterType}`);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
// Add standard document fields
|
|
184
|
+
fieldFilters.unshift(' id: IDFilter', ' type: StringFilter', ' status: StringFilter', ' createdAt: StringFilter', ' updatedAt: StringFilter', ' publishedAt: StringFilter');
|
|
185
|
+
// Add logical operators
|
|
186
|
+
fieldFilters.push(` AND: [${whereTypeName}!]`, ` OR: [${whereTypeName}!]`);
|
|
187
|
+
return `input ${whereTypeName} {
|
|
188
|
+
${fieldFilters.join('\n')}
|
|
189
|
+
}`;
|
|
190
|
+
}
|
|
191
|
+
function getFilterType(field) {
|
|
192
|
+
switch (field.type) {
|
|
193
|
+
case 'string':
|
|
194
|
+
case 'text':
|
|
195
|
+
case 'slug':
|
|
196
|
+
return 'StringFilter';
|
|
197
|
+
case 'number':
|
|
198
|
+
return 'NumberFilter';
|
|
199
|
+
case 'boolean':
|
|
200
|
+
return 'BooleanFilter';
|
|
201
|
+
case 'reference':
|
|
202
|
+
return 'StringFilter'; // Reference IDs are strings
|
|
203
|
+
// Arrays, objects, and images don't have direct filters in GraphQL
|
|
204
|
+
default:
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Generate data input type for mutations
|
|
209
|
+
function generateDataInputType(schemaType, allSchemaTypes) {
|
|
210
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
211
|
+
const inputTypeName = `${typeName}DataInput`;
|
|
212
|
+
const fields = [];
|
|
213
|
+
schemaType.fields.forEach((field) => {
|
|
214
|
+
const inputFieldType = getInputFieldType(field, allSchemaTypes, schemaType.name);
|
|
215
|
+
if (inputFieldType) {
|
|
216
|
+
const required = isFieldRequired(field) ? '!' : '';
|
|
217
|
+
fields.push(` ${field.name}: ${inputFieldType}${required}`);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
return `input ${inputTypeName} {
|
|
221
|
+
${fields.join('\n')}
|
|
222
|
+
}`;
|
|
223
|
+
}
|
|
224
|
+
function getInputFieldType(field, _schemaTypes, _parentName) {
|
|
225
|
+
switch (field.type) {
|
|
226
|
+
case 'string':
|
|
227
|
+
case 'text':
|
|
228
|
+
case 'slug':
|
|
229
|
+
return 'String';
|
|
230
|
+
case 'number':
|
|
231
|
+
return 'Float';
|
|
232
|
+
case 'boolean':
|
|
233
|
+
return 'Boolean';
|
|
234
|
+
case 'reference':
|
|
235
|
+
return 'String'; // Reference IDs
|
|
236
|
+
case 'image':
|
|
237
|
+
return 'JSON'; // Images are complex objects
|
|
238
|
+
case 'array':
|
|
239
|
+
// For arrays, we'll use JSON for simplicity
|
|
240
|
+
// In a more advanced implementation, you'd create specific input types
|
|
241
|
+
return '[JSON]';
|
|
242
|
+
case 'object':
|
|
243
|
+
// For objects, we'll use JSON for simplicity
|
|
244
|
+
// In a more advanced implementation, you'd create specific input types
|
|
245
|
+
return 'JSON';
|
|
246
|
+
default:
|
|
247
|
+
return 'JSON';
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
function generateQueryFields(schemaTypes) {
|
|
251
|
+
const documentTypes = schemaTypes.filter((type) => type.type === 'document');
|
|
252
|
+
return documentTypes
|
|
253
|
+
.map((schemaType) => {
|
|
254
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
255
|
+
const whereInputType = `${typeName}WhereInput`;
|
|
256
|
+
return ` # Get a single ${schemaType.name} by ID
|
|
257
|
+
${schemaType.name}(id: ID!, perspective: String, depth: Int): ${typeName}
|
|
258
|
+
|
|
259
|
+
# Get all ${schemaType.name} documents with filtering
|
|
260
|
+
all${typeName}(
|
|
261
|
+
where: ${whereInputType}
|
|
262
|
+
perspective: String
|
|
263
|
+
limit: Int
|
|
264
|
+
offset: Int
|
|
265
|
+
sort: String
|
|
266
|
+
depth: Int
|
|
267
|
+
): [${typeName}!]!`;
|
|
268
|
+
})
|
|
269
|
+
.join('\n\n');
|
|
270
|
+
}
|
|
271
|
+
function generateMutationFields(schemaTypes) {
|
|
272
|
+
const documentTypes = schemaTypes.filter((type) => type.type === 'document');
|
|
273
|
+
return documentTypes
|
|
274
|
+
.map((schemaType) => {
|
|
275
|
+
const typeName = capitalizeFirst(schemaType.name);
|
|
276
|
+
const dataInputType = `${typeName}DataInput`;
|
|
277
|
+
return ` # Create a new ${schemaType.name}
|
|
278
|
+
create${typeName}(data: ${dataInputType}!, publish: Boolean): ${typeName}!
|
|
279
|
+
|
|
280
|
+
# Update an existing ${schemaType.name}
|
|
281
|
+
update${typeName}(id: ID!, data: JSON!, publish: Boolean): ${typeName}!
|
|
282
|
+
|
|
283
|
+
# Delete a ${schemaType.name}
|
|
284
|
+
delete${typeName}(id: ID!): DeleteResult!
|
|
285
|
+
|
|
286
|
+
# Publish a ${schemaType.name}
|
|
287
|
+
publish${typeName}(id: ID!): ${typeName}!
|
|
288
|
+
|
|
289
|
+
# Unpublish a ${schemaType.name}
|
|
290
|
+
unpublish${typeName}(id: ID!): ${typeName}!`;
|
|
291
|
+
})
|
|
292
|
+
.join('\n\n');
|
|
293
|
+
}
|
|
294
|
+
export function generateGraphQLSchema(schemaTypes) {
|
|
295
|
+
const documentTypes = schemaTypes.filter((type) => type.type === 'document');
|
|
296
|
+
const objectTypes = schemaTypes.filter((type) => type.type === 'object');
|
|
297
|
+
const documentTypeDefs = documentTypes
|
|
298
|
+
.map((schema) => generateDocumentType(schema, schemaTypes))
|
|
299
|
+
.join('\n\n');
|
|
300
|
+
const objectTypeDefs = objectTypes
|
|
301
|
+
.map((schema) => generateObjectType(schema, schemaTypes))
|
|
302
|
+
.join('\n\n');
|
|
303
|
+
const inlineTypeDefs = generateInlineObjectTypes(schemaTypes);
|
|
304
|
+
const filterInputTypes = generateFilterInputTypes();
|
|
305
|
+
const whereInputTypes = documentTypes
|
|
306
|
+
.map((schema) => generateWhereInputType(schema, schemaTypes))
|
|
307
|
+
.join('\n\n');
|
|
308
|
+
const dataInputTypes = documentTypes
|
|
309
|
+
.map((schema) => generateDataInputType(schema, schemaTypes))
|
|
310
|
+
.join('\n\n');
|
|
311
|
+
const queryFields = generateQueryFields(schemaTypes);
|
|
312
|
+
const mutationFields = generateMutationFields(schemaTypes);
|
|
313
|
+
const imageTypeDef = `type Image {
|
|
314
|
+
_type: String!
|
|
315
|
+
asset: ImageAsset
|
|
316
|
+
url: String
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
type ImageAsset {
|
|
320
|
+
_ref: String!
|
|
321
|
+
_type: String!
|
|
322
|
+
}`;
|
|
323
|
+
const scalarDefs = `# JSON scalar for flexible data
|
|
324
|
+
scalar JSON`;
|
|
325
|
+
const deleteResultType = `type DeleteResult {
|
|
326
|
+
success: Boolean!
|
|
327
|
+
}`;
|
|
328
|
+
const result = `
|
|
329
|
+
${scalarDefs}
|
|
330
|
+
|
|
331
|
+
type Query {
|
|
332
|
+
${queryFields}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
type Mutation {
|
|
336
|
+
${mutationFields}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
${deleteResultType}
|
|
340
|
+
|
|
341
|
+
${imageTypeDef}
|
|
342
|
+
|
|
343
|
+
${filterInputTypes}
|
|
344
|
+
|
|
345
|
+
${whereInputTypes}
|
|
346
|
+
|
|
347
|
+
${dataInputTypes}
|
|
348
|
+
|
|
349
|
+
${documentTypeDefs}
|
|
350
|
+
|
|
351
|
+
${objectTypeDefs}
|
|
352
|
+
|
|
353
|
+
${inlineTypeDefs}
|
|
354
|
+
`.trim();
|
|
355
|
+
return result;
|
|
356
|
+
}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { AssetService } from './services/asset-service.js';
|
|
|
5
5
|
import type { StorageAdapter } from './storage/interfaces/storage.js';
|
|
6
6
|
import type { EmailAdapter } from './email/index.js';
|
|
7
7
|
import type { AuthProvider } from './auth/provider.js';
|
|
8
|
+
import type { GraphQLSettings } from './graphql/index.js';
|
|
8
9
|
import { CMSEngine } from './engine.js';
|
|
9
10
|
import { type LocalAPI } from './local-api/index.js';
|
|
10
11
|
export interface CMSInstances {
|
|
@@ -16,6 +17,7 @@ export interface CMSInstances {
|
|
|
16
17
|
cmsEngine: CMSEngine;
|
|
17
18
|
localAPI: LocalAPI;
|
|
18
19
|
auth?: AuthProvider;
|
|
20
|
+
graphqlSettings?: GraphQLSettings | null;
|
|
19
21
|
pluginRoutes?: Map<string, {
|
|
20
22
|
handler: (event: any) => Promise<Response> | Response;
|
|
21
23
|
pluginName: string;
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlE,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,GAAG,CACjB,MAAM,EACN;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAC7E,CAAC;CACF;AAgFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA+LvD"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { handleAuthHook } from './auth/auth-hooks.js';
|
|
2
|
+
import { cmsLogger, setLogLevel } from './utils/logger.js';
|
|
2
3
|
import { createStorageAdapter as createStorageAdapterProvider } from './storage/providers/storage.js';
|
|
3
4
|
import { AssetService as AssetServiceClass } from './services/asset-service.js';
|
|
4
5
|
import { createCMS } from './engine.js';
|
|
@@ -69,12 +70,15 @@ async function resolvePlugin(pluginConfig) {
|
|
|
69
70
|
throw new Error(`Invalid plugin configuration: ${JSON.stringify(pluginConfig)}`);
|
|
70
71
|
}
|
|
71
72
|
export function createCMSHook(config) {
|
|
73
|
+
// Apply log level from config (if provided)
|
|
74
|
+
if (config.logLevel)
|
|
75
|
+
setLogLevel(config.logLevel);
|
|
72
76
|
return async ({ event, resolve }) => {
|
|
73
77
|
// Note: In dev mode, /storage/ might be accessible via Vite dev server
|
|
74
78
|
// In production, only /static/ folder is served - /storage/ is private
|
|
75
79
|
// Initialize CMS instances once at application startup
|
|
76
80
|
if (!cmsInstances) {
|
|
77
|
-
|
|
81
|
+
cmsLogger.info('[CMS]', 'Initializing...');
|
|
78
82
|
const databaseAdapter = config.database;
|
|
79
83
|
// Use the storage adapter from config, or create the default local one.
|
|
80
84
|
const storageAdapter = config.storage ?? createDefaultStorageAdapter();
|
|
@@ -88,7 +92,7 @@ export function createCMSHook(config) {
|
|
|
88
92
|
await cmsEngine.initialize();
|
|
89
93
|
}
|
|
90
94
|
catch (error) {
|
|
91
|
-
|
|
95
|
+
cmsLogger.error('[CMS]', 'Failed to initialize:', error);
|
|
92
96
|
schemaError = error instanceof Error ? error : new Error(String(error));
|
|
93
97
|
}
|
|
94
98
|
// Build plugin route map and install plugins (do this ONCE at startup)
|
|
@@ -99,7 +103,7 @@ export function createCMSHook(config) {
|
|
|
99
103
|
try {
|
|
100
104
|
// Resolve plugin config to actual CMSPlugin instance (may involve dynamic import)
|
|
101
105
|
const plugin = await resolvePlugin(pluginConfig);
|
|
102
|
-
|
|
106
|
+
cmsLogger.info('[CMS]', `Loading plugin: ${plugin.name}@${plugin.version}`);
|
|
103
107
|
// Build route map before installation
|
|
104
108
|
if (plugin.routes) {
|
|
105
109
|
for (const [path, handler] of Object.entries(plugin.routes)) {
|
|
@@ -119,15 +123,63 @@ export function createCMSHook(config) {
|
|
|
119
123
|
pluginRoutes
|
|
120
124
|
};
|
|
121
125
|
// Install the plugin
|
|
122
|
-
|
|
126
|
+
cmsLogger.info('[CMS]', `Installing plugin: ${plugin.name}`);
|
|
123
127
|
await plugin.install(tempInstances);
|
|
124
128
|
}
|
|
125
129
|
catch (error) {
|
|
126
|
-
|
|
130
|
+
cmsLogger.error('[CMS]', 'Failed to load/install plugin:', error);
|
|
127
131
|
throw error;
|
|
128
132
|
}
|
|
129
133
|
}
|
|
130
134
|
}
|
|
135
|
+
// Initialize built-in GraphQL (enabled by default, opt-out with graphql: false)
|
|
136
|
+
let graphqlSettings = null;
|
|
137
|
+
// Check if a plugin already registered the GraphQL route (backward compat)
|
|
138
|
+
const hasGraphQLPlugin = Array.from(pluginRoutes.values()).some((r) => r.pluginName === '@aphexcms/graphql-plugin');
|
|
139
|
+
if (config.graphql !== false && !hasGraphQLPlugin) {
|
|
140
|
+
try {
|
|
141
|
+
const { createGraphQLHandler } = await import('./graphql/index.js');
|
|
142
|
+
const graphqlConfig = typeof config.graphql === 'object' ? config.graphql : {};
|
|
143
|
+
const result = await createGraphQLHandler({
|
|
144
|
+
config,
|
|
145
|
+
databaseAdapter,
|
|
146
|
+
assetService,
|
|
147
|
+
storageAdapter,
|
|
148
|
+
emailAdapter,
|
|
149
|
+
cmsEngine,
|
|
150
|
+
localAPI,
|
|
151
|
+
auth: config.auth?.provider,
|
|
152
|
+
pluginRoutes
|
|
153
|
+
}, config.schemaTypes, graphqlConfig);
|
|
154
|
+
// Register GraphQL route (normalize path to always have leading /)
|
|
155
|
+
const rawPath = graphqlConfig.path ?? '/api/graphql';
|
|
156
|
+
const endpoint = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
|
|
157
|
+
pluginRoutes.set(endpoint, {
|
|
158
|
+
handler: result.handler,
|
|
159
|
+
pluginName: 'built-in:graphql'
|
|
160
|
+
});
|
|
161
|
+
graphqlSettings = result.settings;
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
cmsLogger.error('[CMS]', 'Failed to initialize GraphQL:', error);
|
|
165
|
+
// Non-fatal: CMS works without GraphQL
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (hasGraphQLPlugin) {
|
|
169
|
+
// Extract settings from the installed plugin for UI access
|
|
170
|
+
for (const pluginConfig of config.plugins || []) {
|
|
171
|
+
if (typeof pluginConfig === 'object' && 'config' in pluginConfig) {
|
|
172
|
+
const plugin = pluginConfig;
|
|
173
|
+
if (plugin.name === '@aphexcms/graphql-plugin' && plugin.config) {
|
|
174
|
+
graphqlSettings = {
|
|
175
|
+
endpoint: plugin.config.endpoint ?? '/api/graphql',
|
|
176
|
+
enableGraphiQL: plugin.config.enableGraphiQL ?? true
|
|
177
|
+
};
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
131
183
|
cmsInstances = {
|
|
132
184
|
config,
|
|
133
185
|
databaseAdapter: databaseAdapter,
|
|
@@ -137,20 +189,21 @@ export function createCMSHook(config) {
|
|
|
137
189
|
cmsEngine: cmsEngine,
|
|
138
190
|
localAPI: localAPI,
|
|
139
191
|
auth: config.auth?.provider,
|
|
192
|
+
graphqlSettings,
|
|
140
193
|
pluginRoutes
|
|
141
194
|
};
|
|
142
195
|
}
|
|
143
196
|
else if (checkSchemasDirty()) {
|
|
144
197
|
// HMR: Schemas changed, re-sync with database
|
|
145
198
|
try {
|
|
146
|
-
|
|
199
|
+
cmsLogger.info('[CMS]', 'Syncing changed schemas to database...');
|
|
147
200
|
cmsInstances.cmsEngine.updateConfig(config);
|
|
148
201
|
await cmsInstances.cmsEngine.initialize();
|
|
149
202
|
schemaError = null; // Clear any previous errors
|
|
150
|
-
|
|
203
|
+
cmsLogger.info('[CMS]', 'Schema sync complete');
|
|
151
204
|
}
|
|
152
205
|
catch (error) {
|
|
153
|
-
|
|
206
|
+
cmsLogger.error('[CMS]', 'Failed to sync schemas:', error);
|
|
154
207
|
schemaError = error instanceof Error ? error : new Error(String(error));
|
|
155
208
|
// Don't crash the app, just store the error
|
|
156
209
|
// The old schemas in DB will remain until the error is fixed
|
|
@@ -172,7 +225,7 @@ export function createCMSHook(config) {
|
|
|
172
225
|
if (cmsInstances.pluginRoutes && cmsInstances.pluginRoutes.size > 0) {
|
|
173
226
|
const pluginRoute = cmsInstances.pluginRoutes.get(event.url.pathname);
|
|
174
227
|
if (pluginRoute) {
|
|
175
|
-
|
|
228
|
+
cmsLogger.debug('[CMS]', `Plugin ${pluginRoute.pluginName} handling route: ${event.url.pathname}`);
|
|
176
229
|
return pluginRoute.handler(event);
|
|
177
230
|
}
|
|
178
231
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ApiResponse } from './types.js';
|
|
2
|
+
export interface ApiKey {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string | null;
|
|
5
|
+
key?: string;
|
|
6
|
+
permissions: ('read' | 'write')[];
|
|
7
|
+
createdAt: Date | null;
|
|
8
|
+
lastRequest: Date | null;
|
|
9
|
+
expiresAt: Date | null;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateApiKeyData {
|
|
12
|
+
name: string;
|
|
13
|
+
permissions: ('read' | 'write')[];
|
|
14
|
+
expiresInDays?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CreateApiKeyResponse {
|
|
17
|
+
apiKey: ApiKey & {
|
|
18
|
+
key: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare class ApiKeysApi {
|
|
22
|
+
/**
|
|
23
|
+
* Create a new API key
|
|
24
|
+
*/
|
|
25
|
+
static create(data: CreateApiKeyData): Promise<ApiResponse<CreateApiKeyResponse>>;
|
|
26
|
+
/**
|
|
27
|
+
* Delete an API key
|
|
28
|
+
*/
|
|
29
|
+
static remove(id: string): Promise<ApiResponse<{
|
|
30
|
+
success: boolean;
|
|
31
|
+
}>>;
|
|
32
|
+
}
|
|
33
|
+
export declare const apiKeys: {
|
|
34
|
+
create: typeof ApiKeysApi.create;
|
|
35
|
+
remove: typeof ApiKeysApi.remove;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACtB;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAIvF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAED,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// API Keys client - composable API key operations
|
|
2
|
+
import { apiClient } from './client.js';
|
|
3
|
+
export class ApiKeysApi {
|
|
4
|
+
/**
|
|
5
|
+
* Create a new API key
|
|
6
|
+
*/
|
|
7
|
+
static async create(data) {
|
|
8
|
+
return apiClient.post('/settings/api-keys', data);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Delete an API key
|
|
12
|
+
*/
|
|
13
|
+
static async remove(id) {
|
|
14
|
+
return apiClient.delete(`/settings/api-keys/${id}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export const apiKeys = {
|
|
18
|
+
create: ApiKeysApi.create.bind(ApiKeysApi),
|
|
19
|
+
remove: ApiKeysApi.remove.bind(ApiKeysApi)
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=api-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuBrC,MAAM,OAAO,UAAU;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAsB;QACzC,OAAO,SAAS,CAAC,IAAI,CAAuB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAU;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAuB,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;CAC1C,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Asset } from '../types/asset.js';
|
|
2
|
+
import type { ApiResponse } from './types.js';
|
|
3
|
+
export interface AssetFilters {
|
|
4
|
+
assetType?: 'image' | 'file';
|
|
5
|
+
mimeType?: string;
|
|
6
|
+
search?: string;
|
|
7
|
+
limit?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface AssetReference {
|
|
11
|
+
documentId: string;
|
|
12
|
+
type: string;
|
|
13
|
+
title: string;
|
|
14
|
+
status: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface UpdateAssetData {
|
|
17
|
+
title?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
alt?: string;
|
|
20
|
+
creditLine?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class AssetsApi {
|
|
23
|
+
/**
|
|
24
|
+
* List assets with optional filters
|
|
25
|
+
*/
|
|
26
|
+
static list(filters?: AssetFilters): Promise<ApiResponse<Asset[]>>;
|
|
27
|
+
/**
|
|
28
|
+
* Get asset by ID
|
|
29
|
+
*/
|
|
30
|
+
static getById(id: string): Promise<ApiResponse<Asset>>;
|
|
31
|
+
/**
|
|
32
|
+
* Upload a new asset (multipart/form-data)
|
|
33
|
+
* Note: Use FormData for file uploads
|
|
34
|
+
*/
|
|
35
|
+
static upload(formData: FormData): Promise<ApiResponse<Asset>>;
|
|
36
|
+
/**
|
|
37
|
+
* Update asset metadata
|
|
38
|
+
*/
|
|
39
|
+
static update(id: string, data: UpdateAssetData): Promise<ApiResponse<Asset>>;
|
|
40
|
+
/**
|
|
41
|
+
* Delete an asset
|
|
42
|
+
*/
|
|
43
|
+
static delete(id: string): Promise<ApiResponse<{
|
|
44
|
+
success: boolean;
|
|
45
|
+
}>>;
|
|
46
|
+
/**
|
|
47
|
+
* Bulk delete assets
|
|
48
|
+
*/
|
|
49
|
+
static deleteBulk(ids: string[]): Promise<ApiResponse<{
|
|
50
|
+
deleted: number;
|
|
51
|
+
failed: number;
|
|
52
|
+
}>>;
|
|
53
|
+
/**
|
|
54
|
+
* Get documents that reference a specific asset
|
|
55
|
+
*/
|
|
56
|
+
static getReferences(id: string): Promise<ApiResponse<{
|
|
57
|
+
references: AssetReference[];
|
|
58
|
+
total: number;
|
|
59
|
+
}>>;
|
|
60
|
+
/**
|
|
61
|
+
* Get reference counts for multiple assets in batch
|
|
62
|
+
*/
|
|
63
|
+
static getReferenceCounts(ids: string[]): Promise<ApiResponse<Record<string, number>>>;
|
|
64
|
+
}
|
|
65
|
+
export declare const assets: {
|
|
66
|
+
list: typeof AssetsApi.list;
|
|
67
|
+
getById: typeof AssetsApi.getById;
|
|
68
|
+
upload: typeof AssetsApi.upload;
|
|
69
|
+
update: typeof AssetsApi.update;
|
|
70
|
+
delete: typeof AssetsApi.delete;
|
|
71
|
+
deleteBulk: typeof AssetsApi.deleteBulk;
|
|
72
|
+
getReferences: typeof AssetsApi.getReferences;
|
|
73
|
+
getReferenceCounts: typeof AssetsApi.getReferenceCounts;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/lib/api/assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACrB;;OAEG;WACU,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAaxE;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAI7D;;;OAGG;WACU,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAIpE;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAInF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI3E;;OAEG;WACU,UAAU,CACtB,GAAG,EAAE,MAAM,EAAE,GACX,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI5D;;OAEG;WACU,aAAa,CACzB,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,WAAW,CAAC;QAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMxE;;OAEG;WACU,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAG5F;AAGD,eAAO,MAAM,MAAM;;;;;;;;;CASlB,CAAC"}
|