@aphexcms/cms-core 0.1.3 → 0.1.4
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/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 +56 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +77 -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 +23 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +1 -0
- package/dist/app.d.ts +19 -0
- package/dist/auth/MULTI_TENANCY_PLAN.md +1183 -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 +108 -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/client/index.d.ts +24 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +31 -0
- package/dist/components/AdminApp.svelte +1077 -0
- 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 +115 -0
- package/dist/components/admin/AdminLayout.svelte.d.ts +15 -0
- package/dist/components/admin/AdminLayout.svelte.d.ts.map +1 -0
- package/dist/components/admin/DocumentEditor.svelte +795 -0
- 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 +97 -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 +135 -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 +171 -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 +266 -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 +35 -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 +284 -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 +82 -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/dist/components/admin/fields/ReferenceField.svelte +260 -0
- 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 +74 -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 +40 -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 +40 -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/fields/index.js +9 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +12 -0
- package/dist/components/layout/OrganizationSwitcher.svelte +218 -0
- 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 +88 -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 +63 -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 +95 -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 +69 -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 +85 -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/dist/db/adapters/index.js +4 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +4 -0
- package/dist/db/interfaces/asset.d.ts +51 -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 +36 -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/dist/email/index.js +4 -0
- 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 +21 -0
- package/dist/field-validation/utils.d.ts.map +1 -0
- package/dist/field-validation/utils.js +66 -0
- package/dist/hooks.d.ts +23 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +96 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/plugins/README.md +154 -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 +142 -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 +151 -0
- package/dist/routes/documents.d.ts +4 -0
- package/dist/routes/documents.d.ts.map +1 -0
- package/dist/routes/documents.js +131 -0
- package/dist/routes/index.d.ts +6 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +10 -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 +108 -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 +16 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +28 -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/dist/storage/index.js +6 -0
- 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 +47 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/document.d.ts +34 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -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/package.json +11 -41
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AuthUser } from '../types/user';
|
|
2
|
+
/**
|
|
3
|
+
* Document type - represents a CMS document
|
|
4
|
+
*/
|
|
5
|
+
export interface Document {
|
|
6
|
+
id: string;
|
|
7
|
+
type: string;
|
|
8
|
+
status: 'draft' | 'published' | null;
|
|
9
|
+
draftData: any;
|
|
10
|
+
publishedData: any;
|
|
11
|
+
publishedHash: string | null;
|
|
12
|
+
createdBy: string | AuthUser | null;
|
|
13
|
+
updatedBy: string | null;
|
|
14
|
+
publishedAt: Date | null;
|
|
15
|
+
createdAt: Date | null;
|
|
16
|
+
updatedAt: Date | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* New document input type
|
|
20
|
+
*/
|
|
21
|
+
export interface NewDocument {
|
|
22
|
+
id?: string;
|
|
23
|
+
type: string;
|
|
24
|
+
status?: 'draft' | 'published' | null;
|
|
25
|
+
draftData?: any;
|
|
26
|
+
publishedData?: any;
|
|
27
|
+
publishedHash?: string | null;
|
|
28
|
+
createdBy?: string | null;
|
|
29
|
+
updatedBy?: string | null;
|
|
30
|
+
publishedAt?: Date | null;
|
|
31
|
+
createdAt?: Date | null;
|
|
32
|
+
updatedAt?: Date | null;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/lib/types/document.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './asset.js';
|
|
2
|
+
export * from './auth.js';
|
|
3
|
+
export * from './document.js';
|
|
4
|
+
export * from './schemas.js';
|
|
5
|
+
export * from './config.js';
|
|
6
|
+
export * from './user.js';
|
|
7
|
+
export * from './sidebar.js';
|
|
8
|
+
export * from './organization.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
export type OrganizationRole = 'owner' | 'admin' | 'editor' | 'viewer';
|
|
2
|
+
export interface Organization {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
parentOrganizationId: string | null;
|
|
7
|
+
metadata: {
|
|
8
|
+
logo?: string;
|
|
9
|
+
theme?: {
|
|
10
|
+
primaryColor: string;
|
|
11
|
+
fontFamily: string;
|
|
12
|
+
logoUrl: string;
|
|
13
|
+
};
|
|
14
|
+
website?: string;
|
|
15
|
+
settings?: Record<string, any>;
|
|
16
|
+
} | null;
|
|
17
|
+
createdBy: string;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
updatedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface NewOrganization {
|
|
22
|
+
name: string;
|
|
23
|
+
slug: string;
|
|
24
|
+
createdBy: string;
|
|
25
|
+
id?: string;
|
|
26
|
+
parentOrganizationId?: string | null;
|
|
27
|
+
metadata?: {
|
|
28
|
+
logo?: string;
|
|
29
|
+
theme?: {
|
|
30
|
+
primaryColor: string;
|
|
31
|
+
fontFamily: string;
|
|
32
|
+
logoUrl: string;
|
|
33
|
+
};
|
|
34
|
+
website?: string;
|
|
35
|
+
settings?: Record<string, any>;
|
|
36
|
+
} | null;
|
|
37
|
+
createdAt?: Date;
|
|
38
|
+
updatedAt?: Date;
|
|
39
|
+
}
|
|
40
|
+
export interface OrganizationMember {
|
|
41
|
+
id: string;
|
|
42
|
+
createdAt: Date;
|
|
43
|
+
updatedAt: Date;
|
|
44
|
+
organizationId: string;
|
|
45
|
+
userId: string;
|
|
46
|
+
role: OrganizationRole;
|
|
47
|
+
preferences: Record<string, any> | null;
|
|
48
|
+
invitationId: string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface NewOrganizationMember {
|
|
51
|
+
organizationId: string;
|
|
52
|
+
userId: string;
|
|
53
|
+
role: OrganizationRole;
|
|
54
|
+
id?: string;
|
|
55
|
+
createdAt?: Date;
|
|
56
|
+
updatedAt?: Date;
|
|
57
|
+
preferences?: Record<string, any> | null;
|
|
58
|
+
invitationId?: string | null;
|
|
59
|
+
}
|
|
60
|
+
export interface Invitation {
|
|
61
|
+
id: string;
|
|
62
|
+
createdAt: Date;
|
|
63
|
+
organizationId: string;
|
|
64
|
+
role: OrganizationRole;
|
|
65
|
+
invitedBy: string;
|
|
66
|
+
email: string;
|
|
67
|
+
token: string;
|
|
68
|
+
expiresAt: Date;
|
|
69
|
+
acceptedAt: Date | null;
|
|
70
|
+
}
|
|
71
|
+
export interface NewInvitation {
|
|
72
|
+
organizationId: string;
|
|
73
|
+
role: OrganizationRole;
|
|
74
|
+
invitedBy: string;
|
|
75
|
+
email: string;
|
|
76
|
+
token: string;
|
|
77
|
+
expiresAt: Date;
|
|
78
|
+
id?: string;
|
|
79
|
+
createdAt?: Date;
|
|
80
|
+
acceptedAt?: Date | null;
|
|
81
|
+
}
|
|
82
|
+
export interface UserSession {
|
|
83
|
+
updatedAt: Date;
|
|
84
|
+
userId: string;
|
|
85
|
+
activeOrganizationId: string | null;
|
|
86
|
+
}
|
|
87
|
+
export interface NewUserSession {
|
|
88
|
+
userId: string;
|
|
89
|
+
updatedAt?: Date;
|
|
90
|
+
activeOrganizationId?: string | null;
|
|
91
|
+
}
|
|
92
|
+
export interface OrganizationMembership {
|
|
93
|
+
organization: Organization;
|
|
94
|
+
member: OrganizationMember;
|
|
95
|
+
}
|
|
96
|
+
export interface OrganizationMemberWithUser {
|
|
97
|
+
member: OrganizationMember;
|
|
98
|
+
user: {
|
|
99
|
+
id: string;
|
|
100
|
+
email: string;
|
|
101
|
+
name: string | null;
|
|
102
|
+
image: string | null;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=organization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/lib/types/organization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { Rule } from '../field-validation/rule.js';
|
|
2
|
+
export type FieldType = 'string' | 'text' | 'number' | 'boolean' | 'slug' | 'image' | 'array' | 'object' | 'reference';
|
|
3
|
+
export interface BaseField {
|
|
4
|
+
name: string;
|
|
5
|
+
type: FieldType;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
validation?: ((rule: Rule) => Rule) | Array<(rule: Rule) => Rule>;
|
|
9
|
+
}
|
|
10
|
+
export interface StringField extends BaseField {
|
|
11
|
+
type: 'string';
|
|
12
|
+
maxLength?: number;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface TextField extends BaseField {
|
|
16
|
+
type: 'text';
|
|
17
|
+
rows?: number;
|
|
18
|
+
maxLength?: number;
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface NumberField extends BaseField {
|
|
22
|
+
type: 'number';
|
|
23
|
+
min?: number;
|
|
24
|
+
max?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface BooleanField extends BaseField {
|
|
27
|
+
type: 'boolean';
|
|
28
|
+
initialValue?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface SlugField extends BaseField {
|
|
31
|
+
type: 'slug';
|
|
32
|
+
source?: string;
|
|
33
|
+
maxLength?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface ImageField extends BaseField {
|
|
36
|
+
type: 'image';
|
|
37
|
+
accept?: string;
|
|
38
|
+
hotspot?: boolean;
|
|
39
|
+
metadata?: string[];
|
|
40
|
+
fields?: Field[];
|
|
41
|
+
private?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface TypeReference {
|
|
44
|
+
type: string;
|
|
45
|
+
title?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ArrayField extends BaseField {
|
|
48
|
+
type: 'array';
|
|
49
|
+
of: TypeReference[];
|
|
50
|
+
max?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface ObjectField extends BaseField {
|
|
53
|
+
type: 'object';
|
|
54
|
+
fields: Field[];
|
|
55
|
+
}
|
|
56
|
+
export interface ReferenceField extends BaseField {
|
|
57
|
+
type: 'reference';
|
|
58
|
+
to: Array<{
|
|
59
|
+
type: string;
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
export type Field = StringField | TextField | NumberField | BooleanField | SlugField | ImageField | ArrayField | ObjectField | ReferenceField;
|
|
63
|
+
export interface PreviewConfig {
|
|
64
|
+
select?: {
|
|
65
|
+
title?: string;
|
|
66
|
+
subtitle?: string;
|
|
67
|
+
media?: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface DocumentType {
|
|
71
|
+
id: string;
|
|
72
|
+
type: 'document';
|
|
73
|
+
name: string;
|
|
74
|
+
title: string;
|
|
75
|
+
description?: string;
|
|
76
|
+
fields: Field[];
|
|
77
|
+
preview?: PreviewConfig;
|
|
78
|
+
createdAt: Date | null;
|
|
79
|
+
updatedAt: Date | null;
|
|
80
|
+
}
|
|
81
|
+
export interface ObjectType {
|
|
82
|
+
type: 'object';
|
|
83
|
+
name: string;
|
|
84
|
+
title: string;
|
|
85
|
+
description?: string;
|
|
86
|
+
fields: Field[];
|
|
87
|
+
preview?: PreviewConfig;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Schema type - represents document and object type definitions stored in the DB
|
|
91
|
+
*/
|
|
92
|
+
export interface SchemaType {
|
|
93
|
+
id?: string;
|
|
94
|
+
type: 'document' | 'object';
|
|
95
|
+
name: string;
|
|
96
|
+
title: string;
|
|
97
|
+
description?: string;
|
|
98
|
+
fields: Field[];
|
|
99
|
+
preview?: PreviewConfig;
|
|
100
|
+
createdAt?: Date | null;
|
|
101
|
+
updatedAt?: Date | null;
|
|
102
|
+
}
|
|
103
|
+
export interface NewSchemaType {
|
|
104
|
+
id?: string;
|
|
105
|
+
type: 'document' | 'object';
|
|
106
|
+
name: string;
|
|
107
|
+
title: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
fields: Field[];
|
|
110
|
+
preview?: PreviewConfig;
|
|
111
|
+
createdAt?: Date | null;
|
|
112
|
+
updatedAt?: Date | null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/types/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface SidebarUser {
|
|
2
|
+
id: string;
|
|
3
|
+
email: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
image?: string;
|
|
6
|
+
role?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SidebarNavItem {
|
|
9
|
+
href: string;
|
|
10
|
+
label: string;
|
|
11
|
+
icon?: string;
|
|
12
|
+
badge?: string | number;
|
|
13
|
+
}
|
|
14
|
+
export interface SidebarBranding {
|
|
15
|
+
title?: string;
|
|
16
|
+
logo?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SidebarOrganization {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
slug: string;
|
|
22
|
+
role: 'owner' | 'admin' | 'editor' | 'viewer';
|
|
23
|
+
isActive: boolean;
|
|
24
|
+
metadata?: any;
|
|
25
|
+
}
|
|
26
|
+
export interface SidebarData {
|
|
27
|
+
user: SidebarUser;
|
|
28
|
+
branding?: SidebarBranding;
|
|
29
|
+
navItems?: SidebarNavItem[];
|
|
30
|
+
organizations?: SidebarOrganization[];
|
|
31
|
+
activeOrganization?: SidebarOrganization;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/lib/types/sidebar.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UserProfile {
|
|
2
|
+
userId: string;
|
|
3
|
+
role: 'super_admin' | 'admin' | 'editor' | 'viewer';
|
|
4
|
+
preferences?: Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export interface AuthUser {
|
|
7
|
+
id: string;
|
|
8
|
+
email: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
image?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CMSUser extends AuthUser, Omit<UserProfile, 'userId'> {
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/lib/types/user.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAGD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,OAAQ,SAAQ,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content hashing utilities for document version tracking
|
|
3
|
+
* Includes timestamp for proper change detection and UX
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create a content hash including timestamp for change tracking
|
|
7
|
+
* This matches Sanity's behavior where any interaction creates a publishable state
|
|
8
|
+
*/
|
|
9
|
+
export declare function createContentHash(data: any, includeTimestamp?: boolean): string;
|
|
10
|
+
/**
|
|
11
|
+
* Create a hash from published data (no timestamp needed as it's already stable)
|
|
12
|
+
*/
|
|
13
|
+
export declare function createPublishedHash(data: any): string;
|
|
14
|
+
/**
|
|
15
|
+
* Compare if current draft differs from published version
|
|
16
|
+
*/
|
|
17
|
+
export declare function hasUnpublishedChanges(draftData: any, publishedHash: string | null): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Utility to create a clean published hash when publishing
|
|
20
|
+
*/
|
|
21
|
+
export declare function createHashForPublishing(draftData: any): string;
|
|
22
|
+
//# sourceMappingURL=content-hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-hash.d.ts","sourceRoot":"","sources":["../../src/lib/utils/content-hash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,gBAAgB,UAAO,GAAG,MAAM,CAU5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK3F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,CAE9D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content hashing utilities for document version tracking
|
|
3
|
+
* Includes timestamp for proper change detection and UX
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Recursively sort object keys for stable JSON serialization
|
|
7
|
+
*/
|
|
8
|
+
function sortObject(item) {
|
|
9
|
+
if (item === null || typeof item !== 'object')
|
|
10
|
+
return item;
|
|
11
|
+
if (Array.isArray(item)) {
|
|
12
|
+
return item.map(sortObject);
|
|
13
|
+
}
|
|
14
|
+
const sortedKeys = Object.keys(item).sort();
|
|
15
|
+
const sortedObj = {};
|
|
16
|
+
for (const key of sortedKeys) {
|
|
17
|
+
sortedObj[key] = sortObject(item[key]);
|
|
18
|
+
}
|
|
19
|
+
return sortedObj;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create a stable hash from any object using a simple hash algorithm
|
|
23
|
+
*/
|
|
24
|
+
function simpleHash(str) {
|
|
25
|
+
let hash = 0;
|
|
26
|
+
for (let i = 0; i < str.length; i++) {
|
|
27
|
+
const char = str.charCodeAt(i);
|
|
28
|
+
hash = (hash << 5) - hash + char;
|
|
29
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
30
|
+
}
|
|
31
|
+
return Math.abs(hash).toString(36); // Base36 for shorter string
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a content hash including timestamp for change tracking
|
|
35
|
+
* This matches Sanity's behavior where any interaction creates a publishable state
|
|
36
|
+
*/
|
|
37
|
+
export function createContentHash(data, includeTimestamp = true) {
|
|
38
|
+
const hashData = includeTimestamp
|
|
39
|
+
? {
|
|
40
|
+
...data,
|
|
41
|
+
_lastModified: new Date().toISOString()
|
|
42
|
+
}
|
|
43
|
+
: data;
|
|
44
|
+
const stableJson = JSON.stringify(sortObject(hashData));
|
|
45
|
+
return simpleHash(stableJson);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a hash from published data (no timestamp needed as it's already stable)
|
|
49
|
+
*/
|
|
50
|
+
export function createPublishedHash(data) {
|
|
51
|
+
return createContentHash(data, false);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compare if current draft differs from published version
|
|
55
|
+
*/
|
|
56
|
+
export function hasUnpublishedChanges(draftData, publishedHash) {
|
|
57
|
+
if (!publishedHash)
|
|
58
|
+
return true; // No published version = has changes
|
|
59
|
+
const publishedDataHash = createPublishedHash(draftData);
|
|
60
|
+
return publishedDataHash !== publishedHash;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Utility to create a clean published hash when publishing
|
|
64
|
+
*/
|
|
65
|
+
export function createHashForPublishing(draftData) {
|
|
66
|
+
return createPublishedHash(draftData);
|
|
67
|
+
}
|
|
@@ -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,mBAAmB,CAAC;AAEvE,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"}
|