@aphexcms/cms-core 0.1.11 → 0.1.13
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/LICENSE +21 -0
- package/dist/api/assets.d.ts +48 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +52 -0
- package/dist/api/client.d.ts +37 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +125 -0
- package/dist/api/documents.d.ts +57 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +85 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +5 -0
- package/dist/api/organizations.d.ts +101 -0
- package/dist/api/organizations.d.ts.map +1 -0
- package/dist/api/organizations.js +92 -0
- package/dist/api/types.d.ts +45 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +1 -0
- package/dist/auth/auth-errors.d.ts +7 -0
- package/dist/auth/auth-errors.d.ts.map +1 -0
- package/dist/auth/auth-errors.js +13 -0
- package/dist/auth/auth-hooks.d.ts +6 -0
- package/dist/auth/auth-hooks.d.ts.map +1 -0
- package/dist/auth/auth-hooks.js +122 -0
- package/dist/auth/provider.d.ts +17 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +1 -0
- package/dist/cli/generate-types.js +218 -0
- package/dist/cli/index.js +86 -0
- package/dist/client/index.d.ts +24 -0
- package/dist/client/index.d.ts.map +1 -0
- package/{src/lib/client/index.ts → dist/client/index.js} +7 -18
- package/{src/lib → dist}/components/AdminApp.svelte +26 -55
- package/dist/components/AdminApp.svelte.d.ts +24 -0
- package/dist/components/AdminApp.svelte.d.ts.map +1 -0
- package/dist/components/admin/AdminLayout.svelte.d.ts +15 -0
- package/dist/components/admin/AdminLayout.svelte.d.ts.map +1 -0
- package/{src/lib → dist}/components/admin/DocumentEditor.svelte +60 -14
- package/dist/components/admin/DocumentEditor.svelte.d.ts +18 -0
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -0
- package/dist/components/admin/DocumentTypesList.svelte.d.ts +14 -0
- package/dist/components/admin/DocumentTypesList.svelte.d.ts.map +1 -0
- package/dist/components/admin/ObjectModal.svelte.d.ts +15 -0
- package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -0
- package/dist/components/admin/SchemaField.svelte.d.ts +19 -0
- package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/ArrayField.svelte.d.ts +12 -0
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/BooleanField.svelte.d.ts +13 -0
- package/dist/components/admin/fields/BooleanField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/ImageField.svelte.d.ts +15 -0
- package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/NumberField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/NumberField.svelte.d.ts.map +1 -0
- package/{src/lib → dist}/components/admin/fields/ReferenceField.svelte +2 -3
- package/dist/components/admin/fields/ReferenceField.svelte.d.ts +12 -0
- package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/SlugField.svelte.d.ts +15 -0
- package/dist/components/admin/fields/SlugField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/StringField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/TextareaField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/TextareaField.svelte.d.ts.map +1 -0
- package/dist/components/fields/index.d.ts +9 -0
- package/dist/components/fields/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/{src/lib/components/index.ts → dist/components/index.js} +1 -5
- package/dist/components/layout/OrganizationSwitcher.svelte.d.ts +11 -0
- package/dist/components/layout/OrganizationSwitcher.svelte.d.ts.map +1 -0
- package/dist/components/layout/Sidebar.svelte.d.ts +14 -0
- package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -0
- package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts +11 -0
- package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts.map +1 -0
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts +19 -0
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -0
- package/dist/components/layout/sidebar/NavSecondary.svelte.d.ts +9 -0
- package/dist/components/layout/sidebar/NavSecondary.svelte.d.ts.map +1 -0
- package/dist/components/layout/sidebar/NavUser.svelte.d.ts +9 -0
- package/dist/components/layout/sidebar/NavUser.svelte.d.ts.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +15 -0
- package/dist/db/adapters/index.d.ts +1 -0
- package/dist/db/adapters/index.d.ts.map +1 -0
- package/{src/lib/db/adapters/index.ts → dist/db/adapters/index.js} +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -0
- package/{src/lib/db/index.ts → dist/db/index.js} +1 -2
- package/dist/db/interfaces/asset.d.ts +73 -0
- package/dist/db/interfaces/asset.d.ts.map +1 -0
- package/dist/db/interfaces/asset.js +1 -0
- package/dist/db/interfaces/document.d.ts +61 -0
- package/dist/db/interfaces/document.d.ts.map +1 -0
- package/dist/db/interfaces/document.js +1 -0
- package/dist/db/interfaces/index.d.ts +73 -0
- package/dist/db/interfaces/index.d.ts.map +1 -0
- package/dist/db/interfaces/index.js +1 -0
- package/dist/db/interfaces/organization.d.ts +27 -0
- package/dist/db/interfaces/organization.d.ts.map +1 -0
- package/dist/db/interfaces/organization.js +1 -0
- package/dist/db/interfaces/schema.d.ts +21 -0
- package/dist/db/interfaces/schema.d.ts.map +1 -0
- package/dist/db/interfaces/schema.js +1 -0
- package/dist/db/interfaces/user.d.ts +15 -0
- package/dist/db/interfaces/user.d.ts.map +1 -0
- package/dist/db/interfaces/user.js +1 -0
- package/dist/db/utils/reference-resolver.d.ts +18 -0
- package/dist/db/utils/reference-resolver.d.ts.map +1 -0
- package/dist/db/utils/reference-resolver.js +80 -0
- package/dist/define.d.ts +3 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +4 -0
- package/dist/email/index.d.ts +2 -0
- package/dist/email/index.d.ts.map +1 -0
- package/{src/lib/email/index.ts → dist/email/index.js} +1 -2
- package/dist/email/interfaces/email.d.ts +42 -0
- package/dist/email/interfaces/email.d.ts.map +1 -0
- package/dist/email/interfaces/email.js +1 -0
- package/dist/engine.d.ts +26 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +66 -0
- package/dist/field-validation/rule.d.ts +51 -0
- package/dist/field-validation/rule.d.ts.map +1 -0
- package/dist/field-validation/rule.js +221 -0
- package/dist/field-validation/utils.d.ts +39 -0
- package/dist/field-validation/utils.d.ts.map +1 -0
- package/dist/field-validation/utils.js +99 -0
- package/dist/hooks.d.ts +25 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +164 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/lib/index.ts → dist/index.js} +1 -2
- package/dist/is-mobile.svelte.d.ts +5 -0
- package/dist/is-mobile.svelte.d.ts.map +1 -0
- package/{src/lib/is-mobile.svelte.ts → dist/is-mobile.svelte.js} +3 -5
- package/dist/lib/auth/provider.js +1 -0
- package/dist/lib/db/index.js +4 -0
- package/dist/lib/db/interfaces/asset.js +1 -0
- package/dist/lib/db/interfaces/document.js +1 -0
- package/dist/lib/db/interfaces/index.js +1 -0
- package/dist/lib/db/interfaces/organization.js +1 -0
- package/dist/lib/db/interfaces/schema.js +1 -0
- package/dist/lib/db/interfaces/user.js +1 -0
- package/dist/lib/email/index.js +4 -0
- package/dist/lib/email/interfaces/email.js +1 -0
- package/dist/lib/field-validation/rule.js +221 -0
- package/dist/lib/field-validation/utils.js +99 -0
- package/dist/lib/storage/interfaces/index.js +2 -0
- package/dist/lib/storage/interfaces/storage.js +1 -0
- package/dist/lib/types/asset.js +2 -0
- package/dist/lib/types/auth.js +41 -0
- package/dist/lib/types/config.js +1 -0
- package/dist/lib/types/document.js +1 -0
- package/dist/lib/types/filters.js +5 -0
- package/dist/lib/types/index.js +9 -0
- package/dist/lib/types/organization.js +3 -0
- package/dist/lib/types/schemas.js +1 -0
- package/dist/lib/types/sidebar.js +1 -0
- package/dist/lib/types/user.js +1 -0
- package/dist/local-api/auth-helpers.d.ts +65 -0
- package/dist/local-api/auth-helpers.d.ts.map +1 -0
- package/dist/local-api/auth-helpers.js +102 -0
- package/dist/local-api/collection-api.d.ts +138 -0
- package/dist/local-api/collection-api.d.ts.map +1 -0
- package/dist/local-api/collection-api.js +276 -0
- package/dist/local-api/index.d.ts +108 -0
- package/dist/local-api/index.d.ts.map +1 -0
- package/dist/local-api/index.js +157 -0
- package/dist/local-api/permissions.d.ts +45 -0
- package/dist/local-api/permissions.d.ts.map +1 -0
- package/dist/local-api/permissions.js +117 -0
- package/dist/local-api/types.d.ts +65 -0
- package/dist/local-api/types.d.ts.map +1 -0
- package/dist/local-api/types.js +4 -0
- package/dist/routes/assets-by-id.d.ts +5 -0
- package/dist/routes/assets-by-id.d.ts.map +1 -0
- package/dist/routes/assets-by-id.js +138 -0
- package/dist/routes/assets-cdn.d.ts +3 -0
- package/dist/routes/assets-cdn.d.ts.map +1 -0
- package/dist/routes/assets-cdn.js +155 -0
- package/dist/routes/assets.d.ts +4 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +94 -0
- package/dist/routes/documents-by-id.d.ts +5 -0
- package/dist/routes/documents-by-id.d.ts.map +1 -0
- package/dist/routes/documents-by-id.js +163 -0
- package/dist/routes/documents-publish.d.ts +4 -0
- package/dist/routes/documents-publish.d.ts.map +1 -0
- package/dist/routes/documents-publish.js +136 -0
- package/dist/routes/documents-query.d.ts +24 -0
- package/dist/routes/documents-query.d.ts.map +1 -0
- package/dist/routes/documents-query.js +95 -0
- package/dist/routes/documents.d.ts +4 -0
- package/dist/routes/documents.d.ts.map +1 -0
- package/dist/routes/documents.js +136 -0
- package/dist/routes/index.d.ts +8 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +12 -0
- package/dist/routes/organizations-by-id.d.ts +5 -0
- package/dist/routes/organizations-by-id.d.ts.map +1 -0
- package/dist/routes/organizations-by-id.js +187 -0
- package/dist/routes/organizations-invitations.d.ts +4 -0
- package/dist/routes/organizations-invitations.d.ts.map +1 -0
- package/dist/routes/organizations-invitations.js +125 -0
- package/dist/routes/organizations-members.d.ts +5 -0
- package/dist/routes/organizations-members.d.ts.map +1 -0
- package/dist/routes/organizations-members.js +206 -0
- package/dist/routes/organizations-switch.d.ts +3 -0
- package/dist/routes/organizations-switch.d.ts.map +1 -0
- package/dist/routes/organizations-switch.js +53 -0
- package/dist/routes/organizations.d.ts +4 -0
- package/dist/routes/organizations.d.ts.map +1 -0
- package/dist/routes/organizations.js +109 -0
- package/dist/routes/schemas-by-type.d.ts +3 -0
- package/dist/routes/schemas-by-type.d.ts.map +1 -0
- package/dist/routes/schemas-by-type.js +25 -0
- package/dist/routes/schemas.d.ts +3 -0
- package/dist/routes/schemas.d.ts.map +1 -0
- package/dist/routes/schemas.js +11 -0
- package/dist/routes-exports.d.ts +14 -0
- package/dist/routes-exports.d.ts.map +1 -0
- package/dist/routes-exports.js +19 -0
- package/dist/schema-context.svelte.d.ts +10 -0
- package/dist/schema-context.svelte.d.ts.map +1 -0
- package/dist/schema-context.svelte.js +18 -0
- package/dist/schema-utils/cleanup.d.ts +21 -0
- package/dist/schema-utils/cleanup.d.ts.map +1 -0
- package/dist/schema-utils/cleanup.js +80 -0
- package/dist/schema-utils/index.d.ts +4 -0
- package/dist/schema-utils/index.d.ts.map +1 -0
- package/dist/schema-utils/index.js +4 -0
- package/dist/schema-utils/utils.d.ts +30 -0
- package/dist/schema-utils/utils.d.ts.map +1 -0
- package/dist/schema-utils/utils.js +37 -0
- package/dist/schema-utils/validator.d.ts +6 -0
- package/dist/schema-utils/validator.d.ts.map +1 -0
- package/dist/schema-utils/validator.js +45 -0
- package/dist/server/index.d.ts +17 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +30 -0
- package/dist/services/asset-service.d.ts +86 -0
- package/dist/services/asset-service.d.ts.map +1 -0
- package/dist/services/asset-service.js +187 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +4 -0
- package/dist/storage/adapters/index.d.ts +2 -0
- package/dist/storage/adapters/index.d.ts.map +1 -0
- package/dist/storage/adapters/index.js +2 -0
- package/dist/storage/adapters/local-storage-adapter.d.ts +54 -0
- package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -0
- package/dist/storage/adapters/local-storage-adapter.js +187 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/{src/lib/storage/index.ts → dist/storage/index.js} +2 -4
- package/dist/storage/interfaces/index.d.ts +2 -0
- package/dist/storage/interfaces/index.d.ts.map +1 -0
- package/dist/storage/interfaces/index.js +2 -0
- package/dist/storage/interfaces/storage.d.ts +91 -0
- package/dist/storage/interfaces/storage.d.ts.map +1 -0
- package/dist/storage/interfaces/storage.js +1 -0
- package/dist/storage/providers/storage.d.ts +43 -0
- package/dist/storage/providers/storage.d.ts.map +1 -0
- package/dist/storage/providers/storage.js +64 -0
- package/dist/types/asset.d.ts +73 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/asset.js +2 -0
- package/dist/types/auth.d.ts +50 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +41 -0
- package/dist/types/config.d.ts +64 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/document.d.ts +35 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +1 -0
- package/dist/types/filters.d.ts +173 -0
- package/dist/types/filters.d.ts.map +1 -0
- package/dist/types/filters.js +5 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/organization.d.ts +105 -0
- package/dist/types/organization.d.ts.map +1 -0
- package/dist/types/organization.js +3 -0
- package/dist/types/schemas.d.ts +114 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +1 -0
- package/dist/types/sidebar.d.ts +33 -0
- package/dist/types/sidebar.d.ts.map +1 -0
- package/dist/types/sidebar.js +1 -0
- package/dist/types/user.d.ts +14 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +1 -0
- package/dist/utils/content-hash.d.ts +22 -0
- package/dist/utils/content-hash.d.ts.map +1 -0
- package/dist/utils/content-hash.js +67 -0
- package/dist/utils/image-url.d.ts +88 -0
- package/dist/utils/image-url.d.ts.map +1 -0
- package/dist/utils/image-url.js +165 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/slug.d.ts +13 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +30 -0
- package/dist/utils.d.ts +13 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +5 -0
- package/package.json +101 -95
- package/src/lib/api/assets.ts +0 -75
- package/src/lib/api/client.ts +0 -150
- package/src/lib/api/documents.ts +0 -102
- package/src/lib/api/index.ts +0 -7
- package/src/lib/api/organizations.ts +0 -154
- package/src/lib/api/types.ts +0 -34
- package/src/lib/auth/auth-errors.ts +0 -23
- package/src/lib/auth/auth-hooks.ts +0 -132
- package/src/lib/auth/provider.ts +0 -25
- package/src/lib/config.ts +0 -18
- package/src/lib/db/interfaces/asset.ts +0 -61
- package/src/lib/db/interfaces/document.ts +0 -53
- package/src/lib/db/interfaces/index.ts +0 -98
- package/src/lib/db/interfaces/organization.ts +0 -51
- package/src/lib/db/interfaces/schema.ts +0 -13
- package/src/lib/db/interfaces/user.ts +0 -16
- package/src/lib/db/utils/reference-resolver.ts +0 -119
- package/src/lib/define.ts +0 -7
- package/src/lib/email/interfaces/email.ts +0 -45
- package/src/lib/engine.ts +0 -85
- package/src/lib/field-validation/rule.ts +0 -287
- package/src/lib/field-validation/utils.ts +0 -91
- package/src/lib/hooks.ts +0 -142
- package/src/lib/routes/assets-by-id.ts +0 -161
- package/src/lib/routes/assets-cdn.ts +0 -185
- package/src/lib/routes/assets.ts +0 -116
- package/src/lib/routes/documents-by-id.ts +0 -188
- package/src/lib/routes/documents-publish.ts +0 -211
- package/src/lib/routes/documents.ts +0 -172
- package/src/lib/routes/index.ts +0 -13
- package/src/lib/routes/organizations-by-id.ts +0 -258
- package/src/lib/routes/organizations-invitations.ts +0 -183
- package/src/lib/routes/organizations-members.ts +0 -301
- package/src/lib/routes/organizations-switch.ts +0 -74
- package/src/lib/routes/organizations.ts +0 -147
- package/src/lib/routes/schemas-by-type.ts +0 -35
- package/src/lib/routes/schemas.ts +0 -19
- package/src/lib/routes-exports.ts +0 -42
- package/src/lib/schema-context.svelte.ts +0 -24
- package/src/lib/schema-utils/cleanup.ts +0 -116
- package/src/lib/schema-utils/index.ts +0 -4
- package/src/lib/schema-utils/utils.ts +0 -47
- package/src/lib/schema-utils/validator.ts +0 -58
- package/src/lib/server/index.ts +0 -40
- package/src/lib/services/asset-service.ts +0 -256
- package/src/lib/services/index.ts +0 -6
- package/src/lib/storage/adapters/index.ts +0 -2
- package/src/lib/storage/adapters/local-storage-adapter.ts +0 -215
- package/src/lib/storage/interfaces/index.ts +0 -2
- package/src/lib/storage/interfaces/storage.ts +0 -114
- package/src/lib/storage/providers/storage.ts +0 -83
- package/src/lib/types/asset.ts +0 -81
- package/src/lib/types/auth.ts +0 -80
- package/src/lib/types/config.ts +0 -45
- package/src/lib/types/document.ts +0 -38
- package/src/lib/types/index.ts +0 -8
- package/src/lib/types/organization.ts +0 -119
- package/src/lib/types/schemas.ts +0 -156
- package/src/lib/types/sidebar.ts +0 -37
- package/src/lib/types/user.ts +0 -17
- package/src/lib/utils/content-hash.ts +0 -75
- package/src/lib/utils/image-url.ts +0 -204
- package/src/lib/utils/index.ts +0 -12
- package/src/lib/utils/slug.ts +0 -33
- package/src/lib/utils.ts +0 -13
- /package/{src/lib → dist}/app.d.ts +0 -0
- /package/{src/lib → dist}/auth/MULTI_TENANCY_PLAN.md +0 -0
- /package/{src/lib → dist}/components/admin/AdminLayout.svelte +0 -0
- /package/{src/lib → dist}/components/admin/DocumentTypesList.svelte +0 -0
- /package/{src/lib → dist}/components/admin/ObjectModal.svelte +0 -0
- /package/{src/lib → dist}/components/admin/SchemaField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/ArrayField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/BooleanField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/ImageField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/NumberField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/SlugField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/StringField.svelte +0 -0
- /package/{src/lib → dist}/components/admin/fields/TextareaField.svelte +0 -0
- /package/{src/lib/components/fields/index.ts → dist/components/fields/index.js} +0 -0
- /package/{src/lib → dist}/components/layout/OrganizationSwitcher.svelte +0 -0
- /package/{src/lib → dist}/components/layout/Sidebar.svelte +0 -0
- /package/{src/lib → dist}/components/layout/sidebar/AppSidebar.svelte +0 -0
- /package/{src/lib → dist}/components/layout/sidebar/NavMain.svelte +0 -0
- /package/{src/lib → dist}/components/layout/sidebar/NavSecondary.svelte +0 -0
- /package/{src/lib → dist}/components/layout/sidebar/NavUser.svelte +0 -0
- /package/{src/lib → dist}/plugins/README.md +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ImageValue, ImageAsset, Asset } from '../types/asset.js';
|
|
2
|
+
export interface ImageUrlBuilderOptions {
|
|
3
|
+
width?: number;
|
|
4
|
+
height?: number;
|
|
5
|
+
quality?: number;
|
|
6
|
+
format?: 'jpg' | 'jpeg' | 'png' | 'webp' | 'avif';
|
|
7
|
+
fit?: 'cover' | 'contain' | 'fill' | 'inside' | 'outside';
|
|
8
|
+
auto?: 'format';
|
|
9
|
+
}
|
|
10
|
+
export interface ImageUrlBuilderConfig {
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Function to sign asset URLs for secure, time-limited access
|
|
14
|
+
* Used for multi-tenant access without exposing API keys
|
|
15
|
+
*/
|
|
16
|
+
signAssetUrl?: (assetId: string) => string;
|
|
17
|
+
}
|
|
18
|
+
export declare class ImageUrlBuilder {
|
|
19
|
+
private _source;
|
|
20
|
+
private _options;
|
|
21
|
+
/**
|
|
22
|
+
* Set the image source
|
|
23
|
+
*/
|
|
24
|
+
image(source: ImageValue | ImageAsset | string | Asset | null | undefined): this;
|
|
25
|
+
/**
|
|
26
|
+
* Set width (for future dynamic image rendering)
|
|
27
|
+
*/
|
|
28
|
+
width(width: number): this;
|
|
29
|
+
/**
|
|
30
|
+
* Set height (for future dynamic image rendering)
|
|
31
|
+
*/
|
|
32
|
+
height(height: number): this;
|
|
33
|
+
/**
|
|
34
|
+
* Set both width and height (for future dynamic image rendering)
|
|
35
|
+
*/
|
|
36
|
+
size(width: number, height: number): this;
|
|
37
|
+
/**
|
|
38
|
+
* Set quality (for future dynamic image rendering)
|
|
39
|
+
*/
|
|
40
|
+
quality(quality: number): this;
|
|
41
|
+
/**
|
|
42
|
+
* Set format (for future dynamic image rendering)
|
|
43
|
+
*/
|
|
44
|
+
format(format: 'jpg' | 'jpeg' | 'png' | 'webp' | 'avif'): this;
|
|
45
|
+
/**
|
|
46
|
+
* Set fit mode (for future dynamic image rendering)
|
|
47
|
+
*/
|
|
48
|
+
fit(fit: 'cover' | 'contain' | 'fill' | 'inside' | 'outside'): this;
|
|
49
|
+
/**
|
|
50
|
+
* Enable automatic format selection (for future dynamic image rendering)
|
|
51
|
+
*/
|
|
52
|
+
auto(mode: 'format'): this;
|
|
53
|
+
/**
|
|
54
|
+
* Build the final URL
|
|
55
|
+
* Returns /api/assets/{id}?dl=1 which redirects to the actual S3/R2 URL
|
|
56
|
+
* Transformations (.width(), .quality(), etc) are stored but not yet applied
|
|
57
|
+
*
|
|
58
|
+
* For multi-tenant access, use signAssetUrl config to generate signed URLs
|
|
59
|
+
* TODO: Add dynamic image rendering support
|
|
60
|
+
*/
|
|
61
|
+
url(): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* Alias for url()
|
|
64
|
+
*/
|
|
65
|
+
toString(): string | null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Factory function to create an image URL builder
|
|
69
|
+
*
|
|
70
|
+
* Note: Currently returns direct S3/R2 URLs without transformations.
|
|
71
|
+
* The baseUrl parameter is accepted for future compatibility but not currently used
|
|
72
|
+
* since assets already contain their full public URLs.
|
|
73
|
+
*
|
|
74
|
+
* For multi-tenant access with API keys, provide a signAssetUrl function:
|
|
75
|
+
* const urlFor = imageUrlBuilder({
|
|
76
|
+
* signAssetUrl: (assetId) => `/api/assets/${assetId}?token=${generateToken(assetId)}`
|
|
77
|
+
* })
|
|
78
|
+
*
|
|
79
|
+
* Usage:
|
|
80
|
+
* const urlFor = imageUrlBuilder({ baseUrl: 'https://yourdomain.com' })
|
|
81
|
+
* const url = urlFor(image).url() // Returns asset.url directly
|
|
82
|
+
*
|
|
83
|
+
* Future usage with transformations:
|
|
84
|
+
* const url = urlFor(image).width(800).quality(80).url()
|
|
85
|
+
* // Will return transformed image once dynamic rendering is implemented
|
|
86
|
+
*/
|
|
87
|
+
export declare function imageUrlBuilder(): (source?: ImageValue | ImageAsset | string | Asset | null) => ImageUrlBuilder;
|
|
88
|
+
//# sourceMappingURL=image-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-url.d.ts","sourceRoot":"","sources":["../../src/lib/utils/image-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAClD,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AA8BD,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAA8B;IAE9C;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAKhF;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMzC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAK9D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI;IAKnE;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAK1B;;;;;;;OAOG;IACH,GAAG,IAAI,MAAM,GAAG,IAAI;IA0CpB;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;CAGzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,KACtB,SAAS,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,qBAOhE"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to extract URL from various image source types
|
|
3
|
+
* Works with GraphQL responses that include resolved asset data
|
|
4
|
+
*/
|
|
5
|
+
function extractUrl(source) {
|
|
6
|
+
if (!source)
|
|
7
|
+
return null;
|
|
8
|
+
// Direct URL string
|
|
9
|
+
if (typeof source === 'string') {
|
|
10
|
+
return source;
|
|
11
|
+
}
|
|
12
|
+
// Asset object with url property
|
|
13
|
+
if (typeof source === 'object' && 'url' in source && source.url) {
|
|
14
|
+
return source.url;
|
|
15
|
+
}
|
|
16
|
+
// ImageValue with resolved asset (from GraphQL)
|
|
17
|
+
if (typeof source === 'object' && 'asset' in source && source.asset) {
|
|
18
|
+
// Check if asset is resolved (has url property)
|
|
19
|
+
if (typeof source.asset === 'object' && 'url' in source.asset) {
|
|
20
|
+
return source.asset.url;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
export class ImageUrlBuilder {
|
|
26
|
+
_source = null;
|
|
27
|
+
_options = {};
|
|
28
|
+
/**
|
|
29
|
+
* Set the image source
|
|
30
|
+
*/
|
|
31
|
+
image(source) {
|
|
32
|
+
this._source = source;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Set width (for future dynamic image rendering)
|
|
37
|
+
*/
|
|
38
|
+
width(width) {
|
|
39
|
+
this._options.width = width;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set height (for future dynamic image rendering)
|
|
44
|
+
*/
|
|
45
|
+
height(height) {
|
|
46
|
+
this._options.height = height;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Set both width and height (for future dynamic image rendering)
|
|
51
|
+
*/
|
|
52
|
+
size(width, height) {
|
|
53
|
+
this._options.width = width;
|
|
54
|
+
this._options.height = height;
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Set quality (for future dynamic image rendering)
|
|
59
|
+
*/
|
|
60
|
+
quality(quality) {
|
|
61
|
+
this._options.quality = Math.max(1, Math.min(100, quality));
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Set format (for future dynamic image rendering)
|
|
66
|
+
*/
|
|
67
|
+
format(format) {
|
|
68
|
+
this._options.format = format;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Set fit mode (for future dynamic image rendering)
|
|
73
|
+
*/
|
|
74
|
+
fit(fit) {
|
|
75
|
+
this._options.fit = fit;
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Enable automatic format selection (for future dynamic image rendering)
|
|
80
|
+
*/
|
|
81
|
+
auto(mode) {
|
|
82
|
+
this._options.auto = mode;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build the final URL
|
|
87
|
+
* Returns /api/assets/{id}?dl=1 which redirects to the actual S3/R2 URL
|
|
88
|
+
* Transformations (.width(), .quality(), etc) are stored but not yet applied
|
|
89
|
+
*
|
|
90
|
+
* For multi-tenant access, use signAssetUrl config to generate signed URLs
|
|
91
|
+
* TODO: Add dynamic image rendering support
|
|
92
|
+
*/
|
|
93
|
+
url() {
|
|
94
|
+
console.log('[ImageUrlBuilder] url() called with source:', JSON.stringify(this._source));
|
|
95
|
+
if (!this._source) {
|
|
96
|
+
console.log('[ImageUrlBuilder] No source provided');
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
// First try to extract a direct URL (if asset was already resolved)
|
|
100
|
+
const directUrl = extractUrl(this._source);
|
|
101
|
+
if (directUrl) {
|
|
102
|
+
console.log('[ImageUrlBuilder] Using direct URL from resolved asset:', directUrl);
|
|
103
|
+
return directUrl;
|
|
104
|
+
}
|
|
105
|
+
// Otherwise, build an API URL from the asset reference
|
|
106
|
+
let assetId = null;
|
|
107
|
+
if (typeof this._source === 'string') {
|
|
108
|
+
console.log('[ImageUrlBuilder] Source is string:', this._source);
|
|
109
|
+
assetId = this._source;
|
|
110
|
+
}
|
|
111
|
+
else if (typeof this._source === 'object') {
|
|
112
|
+
console.log('[ImageUrlBuilder] Source is object, checking for asset._ref or _ref');
|
|
113
|
+
if ('asset' in this._source && this._source.asset?._ref) {
|
|
114
|
+
assetId = this._source.asset._ref;
|
|
115
|
+
console.log('[ImageUrlBuilder] Found asset._ref:', assetId);
|
|
116
|
+
}
|
|
117
|
+
else if ('_ref' in this._source) {
|
|
118
|
+
assetId = this._source._ref;
|
|
119
|
+
console.log('[ImageUrlBuilder] Found _ref:', assetId);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (!assetId) {
|
|
123
|
+
console.warn('[ImageUrlBuilder] Could not extract asset ID from source:', this._source);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const finalUrl = `/media/${assetId}/image`;
|
|
127
|
+
console.log('[ImageUrlBuilder] Building CDN URL:', finalUrl);
|
|
128
|
+
return finalUrl;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Alias for url()
|
|
132
|
+
*/
|
|
133
|
+
toString() {
|
|
134
|
+
return this.url();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Factory function to create an image URL builder
|
|
139
|
+
*
|
|
140
|
+
* Note: Currently returns direct S3/R2 URLs without transformations.
|
|
141
|
+
* The baseUrl parameter is accepted for future compatibility but not currently used
|
|
142
|
+
* since assets already contain their full public URLs.
|
|
143
|
+
*
|
|
144
|
+
* For multi-tenant access with API keys, provide a signAssetUrl function:
|
|
145
|
+
* const urlFor = imageUrlBuilder({
|
|
146
|
+
* signAssetUrl: (assetId) => `/api/assets/${assetId}?token=${generateToken(assetId)}`
|
|
147
|
+
* })
|
|
148
|
+
*
|
|
149
|
+
* Usage:
|
|
150
|
+
* const urlFor = imageUrlBuilder({ baseUrl: 'https://yourdomain.com' })
|
|
151
|
+
* const url = urlFor(image).url() // Returns asset.url directly
|
|
152
|
+
*
|
|
153
|
+
* Future usage with transformations:
|
|
154
|
+
* const url = urlFor(image).width(800).quality(80).url()
|
|
155
|
+
* // Will return transformed image once dynamic rendering is implemented
|
|
156
|
+
*/
|
|
157
|
+
export function imageUrlBuilder() {
|
|
158
|
+
return (source) => {
|
|
159
|
+
const builder = new ImageUrlBuilder();
|
|
160
|
+
if (source) {
|
|
161
|
+
builder.image(source);
|
|
162
|
+
}
|
|
163
|
+
return builder;
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/utils/index.ts"],"names":[],"mappings":"AAGA,cAAc,uBAAuB,CAAC;AAGtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Aphex CMS Utilities
|
|
2
|
+
// Schema utilities
|
|
3
|
+
export * from '../schema-utils/index.js';
|
|
4
|
+
// Validation utilities
|
|
5
|
+
export * from '../field-validation/utils.js';
|
|
6
|
+
// Other utilities
|
|
7
|
+
export * from './content-hash.js';
|
|
8
|
+
export * from './slug.js';
|
|
9
|
+
export * from './image-url.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a URL-friendly slug from a string
|
|
3
|
+
* @param text - The text to convert to a slug
|
|
4
|
+
* @returns A URL-safe slug string
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateSlug(text: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Validate if a string is a valid slug
|
|
9
|
+
* @param slug - The slug to validate
|
|
10
|
+
* @returns Boolean indicating if the slug is valid
|
|
11
|
+
*/
|
|
12
|
+
export declare function isValidSlug(slug: string): boolean;
|
|
13
|
+
//# sourceMappingURL=slug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../src/lib/utils/slug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAajD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a URL-friendly slug from a string
|
|
3
|
+
* @param text - The text to convert to a slug
|
|
4
|
+
* @returns A URL-safe slug string
|
|
5
|
+
*/
|
|
6
|
+
export function generateSlug(text) {
|
|
7
|
+
if (!text)
|
|
8
|
+
return '';
|
|
9
|
+
return (text
|
|
10
|
+
.toString()
|
|
11
|
+
.toLowerCase()
|
|
12
|
+
.trim()
|
|
13
|
+
// Replace spaces and multiple special characters with single hyphens
|
|
14
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
15
|
+
// Remove leading and trailing hyphens
|
|
16
|
+
.replace(/^-+|-+$/g, ''));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate if a string is a valid slug
|
|
20
|
+
* @param slug - The slug to validate
|
|
21
|
+
* @returns Boolean indicating if the slug is valid
|
|
22
|
+
*/
|
|
23
|
+
export function isValidSlug(slug) {
|
|
24
|
+
if (!slug)
|
|
25
|
+
return false;
|
|
26
|
+
// Valid slug: lowercase letters, numbers, and hyphens only
|
|
27
|
+
// Cannot start or end with hyphen
|
|
28
|
+
const slugPattern = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
29
|
+
return slugPattern.test(slug);
|
|
30
|
+
}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ClassValue } from 'clsx';
|
|
2
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
3
|
+
export type WithoutChild<T> = T extends {
|
|
4
|
+
child?: any;
|
|
5
|
+
} ? Omit<T, 'child'> : T;
|
|
6
|
+
export type WithoutChildren<T> = T extends {
|
|
7
|
+
children?: any;
|
|
8
|
+
} ? Omit<T, 'children'> : T;
|
|
9
|
+
export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
|
|
10
|
+
export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & {
|
|
11
|
+
ref?: U | null;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAE/E,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACxF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC"}
|
package/dist/utils.js
ADDED
package/package.json
CHANGED
|
@@ -1,96 +1,102 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
2
|
+
"name": "@aphexcms/cms-core",
|
|
3
|
+
"version": "0.1.13",
|
|
4
|
+
"description": "Aphex CMS Core - A Sanity-style CMS with ports and adapters architecture",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"svelte": "./dist/index.js",
|
|
9
|
+
"bin": {
|
|
10
|
+
"aphex": "./dist/cli/index.js"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"svelte": "./dist/index.js",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./server": {
|
|
19
|
+
"types": "./dist/server/index.d.ts",
|
|
20
|
+
"default": "./dist/server/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./client": {
|
|
23
|
+
"types": "./dist/client/index.d.ts",
|
|
24
|
+
"default": "./dist/client/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./routes/*": {
|
|
27
|
+
"types": "./dist/routes/*.d.ts",
|
|
28
|
+
"default": "./dist/routes/*.js"
|
|
29
|
+
},
|
|
30
|
+
"./*": {
|
|
31
|
+
"types": "./dist/*.d.ts",
|
|
32
|
+
"default": "./dist/*.js"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist",
|
|
37
|
+
"dist/cli"
|
|
38
|
+
],
|
|
39
|
+
"keywords": [
|
|
40
|
+
"cms",
|
|
41
|
+
"svelte",
|
|
42
|
+
"sveltekit",
|
|
43
|
+
"content-management",
|
|
44
|
+
"sanity-style",
|
|
45
|
+
"typescript",
|
|
46
|
+
"aphex"
|
|
47
|
+
],
|
|
48
|
+
"author": "Benjamin Sinidol",
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@lucide/svelte": "^0.544.0",
|
|
52
|
+
"@sveltejs/kit": "^2.22.0",
|
|
53
|
+
"bits-ui": "^2.11.1",
|
|
54
|
+
"clsx": "^2.1.1",
|
|
55
|
+
"lucide-svelte": "^0.544.0",
|
|
56
|
+
"mode-watcher": "^1.1.0",
|
|
57
|
+
"svelte": "^5.0.0",
|
|
58
|
+
"tailwind-merge": "^3.3.1",
|
|
59
|
+
"tailwind-variants": "^3.1.1",
|
|
60
|
+
"@aphexcms/ui": "0.1.6"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@clack/prompts": "^0.11.0",
|
|
64
|
+
"cac": "^6.7.14",
|
|
65
|
+
"esbuild": "^0.24.0",
|
|
66
|
+
"picocolors": "^1.1.1",
|
|
67
|
+
"s3mini": "^0.5.0",
|
|
68
|
+
"sharp": "^0.34.4"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@eslint/compat": "^1.2.5",
|
|
72
|
+
"@eslint/js": "^9.22.0",
|
|
73
|
+
"@internationalized/date": "^3.9.0",
|
|
74
|
+
"@sveltejs/adapter-auto": "^6.0.0",
|
|
75
|
+
"@sveltejs/kit": "^2.22.0",
|
|
76
|
+
"@sveltejs/package": "^2.5.4",
|
|
77
|
+
"@sveltejs/vite-plugin-svelte": "^6.0.0",
|
|
78
|
+
"@tailwindcss/vite": "^4.0.0",
|
|
79
|
+
"@types/node": "^22",
|
|
80
|
+
"eslint": "^9.22.0",
|
|
81
|
+
"eslint-config-prettier": "^10.0.1",
|
|
82
|
+
"eslint-plugin-svelte": "^3.0.0",
|
|
83
|
+
"globals": "^16.0.0",
|
|
84
|
+
"prettier": "^3.4.2",
|
|
85
|
+
"prettier-plugin-svelte": "^3.3.3",
|
|
86
|
+
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
87
|
+
"svelte": "^5.0.0",
|
|
88
|
+
"svelte-check": "^4.0.0",
|
|
89
|
+
"tailwindcss": "^4.0.0",
|
|
90
|
+
"typescript": "^5.0.0",
|
|
91
|
+
"typescript-eslint": "^8.20.0",
|
|
92
|
+
"vite": "^7.0.4"
|
|
93
|
+
},
|
|
94
|
+
"scripts": {
|
|
95
|
+
"build": "svelte-package && tsc src/cli/*.ts --outDir dist --module esnext --target esnext --moduleResolution bundler --skipLibCheck && node ../../scripts/fix-imports.js ./dist",
|
|
96
|
+
"check": "svelte-check --tsconfig ./tsconfig.json",
|
|
97
|
+
"format": "prettier --write .",
|
|
98
|
+
"lint": "prettier --check . && eslint .",
|
|
99
|
+
"package": "pnpm build && pnpm pack",
|
|
100
|
+
"dev:local": "node ../../scripts/swap-package-paths.js ./package.json src lib"
|
|
101
|
+
}
|
|
102
|
+
}
|
package/src/lib/api/assets.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// Assets API client - manage uploaded files and images
|
|
2
|
-
import { apiClient } from './client';
|
|
3
|
-
import type { Asset } from '../types/asset';
|
|
4
|
-
import type { ApiResponse } from './types';
|
|
5
|
-
|
|
6
|
-
export interface AssetFilters {
|
|
7
|
-
assetType?: 'image' | 'file';
|
|
8
|
-
mimeType?: string;
|
|
9
|
-
search?: string;
|
|
10
|
-
limit?: number;
|
|
11
|
-
offset?: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface UpdateAssetData {
|
|
15
|
-
title?: string;
|
|
16
|
-
description?: string;
|
|
17
|
-
alt?: string;
|
|
18
|
-
creditLine?: string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export class AssetsApi {
|
|
22
|
-
/**
|
|
23
|
-
* List assets with optional filters
|
|
24
|
-
*/
|
|
25
|
-
static async list(filters?: AssetFilters): Promise<ApiResponse<Asset[]>> {
|
|
26
|
-
const params = new URLSearchParams();
|
|
27
|
-
if (filters) {
|
|
28
|
-
Object.entries(filters).forEach(([key, value]) => {
|
|
29
|
-
if (value !== undefined) {
|
|
30
|
-
params.append(key, String(value));
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
const query = params.toString();
|
|
35
|
-
return apiClient.get<Asset[]>(`/assets${query ? `?${query}` : ''}`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Get asset by ID
|
|
40
|
-
*/
|
|
41
|
-
static async getById(id: string): Promise<ApiResponse<Asset>> {
|
|
42
|
-
return apiClient.get<Asset>(`/assets/${id}`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Upload a new asset (multipart/form-data)
|
|
47
|
-
* Note: Use FormData for file uploads
|
|
48
|
-
*/
|
|
49
|
-
static async upload(formData: FormData): Promise<ApiResponse<Asset>> {
|
|
50
|
-
return apiClient.post<Asset>('/assets', formData);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Update asset metadata
|
|
55
|
-
*/
|
|
56
|
-
static async update(id: string, data: UpdateAssetData): Promise<ApiResponse<Asset>> {
|
|
57
|
-
return apiClient.patch<Asset>(`/assets/${id}`, data);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Delete an asset
|
|
62
|
-
*/
|
|
63
|
-
static async delete(id: string): Promise<ApiResponse<{ success: boolean }>> {
|
|
64
|
-
return apiClient.delete<{ success: boolean }>(`/assets/${id}`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Export convenience functions for direct use
|
|
69
|
-
export const assets = {
|
|
70
|
-
list: AssetsApi.list.bind(AssetsApi),
|
|
71
|
-
getById: AssetsApi.getById.bind(AssetsApi),
|
|
72
|
-
upload: AssetsApi.upload.bind(AssetsApi),
|
|
73
|
-
update: AssetsApi.update.bind(AssetsApi),
|
|
74
|
-
delete: AssetsApi.delete.bind(AssetsApi)
|
|
75
|
-
};
|