@aphexcms/cms-core 0.1.17 → 0.2.1
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/client.d.ts.map +1 -1
- package/dist/api/client.js +7 -1
- package/dist/api/types.d.ts +2 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli/generate-types.js +59 -16
- package/dist/cli/index.js +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -1
- package/dist/components/AdminApp.svelte +278 -45
- package/dist/components/AdminApp.svelte.d.ts +2 -0
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentEditor.svelte +60 -13
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/ObjectModal.svelte +15 -4
- package/dist/components/admin/ObjectModal.svelte.d.ts +1 -0
- package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -1
- package/dist/components/admin/SchemaField.svelte +64 -5
- package/dist/components/admin/SchemaField.svelte.d.ts +1 -0
- package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ArrayField.svelte +72 -17
- package/dist/components/admin/fields/ArrayField.svelte.d.ts +1 -0
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/DateField.svelte +145 -0
- package/dist/components/admin/fields/DateField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/DateField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/DateTimeField.svelte +225 -0
- package/dist/components/admin/fields/DateTimeField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/DateTimeField.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/ImageField.svelte +20 -7
- 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 +1 -1
- package/dist/components/admin/fields/SlugField.svelte +1 -3
- package/dist/components/admin/fields/SlugField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/StringField.svelte +156 -12
- package/dist/components/admin/fields/StringField.svelte.d.ts +3 -2
- package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/URLField.svelte +41 -0
- package/dist/components/admin/fields/URLField.svelte.d.ts +14 -0
- package/dist/components/admin/fields/URLField.svelte.d.ts.map +1 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/db/interfaces/document.d.ts +0 -2
- package/dist/db/interfaces/document.d.ts.map +1 -1
- package/dist/db/interfaces/index.d.ts +2 -1
- package/dist/db/interfaces/index.d.ts.map +1 -1
- package/dist/db/interfaces/user.d.ts +2 -0
- package/dist/db/interfaces/user.d.ts.map +1 -1
- package/dist/db/utils/reference-resolver.js +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +3 -0
- package/dist/field-validation/date-utils.d.ts +30 -0
- package/dist/field-validation/date-utils.d.ts.map +1 -0
- package/dist/field-validation/date-utils.js +147 -0
- package/dist/field-validation/rule.d.ts +4 -0
- package/dist/field-validation/rule.d.ts.map +1 -1
- package/dist/field-validation/rule.js +170 -4
- package/dist/field-validation/utils.d.ts +7 -3
- package/dist/field-validation/utils.d.ts.map +1 -1
- package/dist/field-validation/utils.js +129 -35
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +38 -21
- package/dist/lib/field-validation/date-utils.js +147 -0
- package/dist/lib/field-validation/rule.js +170 -4
- package/dist/lib/field-validation/utils.js +129 -35
- package/dist/local-api/collection-api.d.ts +16 -4
- package/dist/local-api/collection-api.d.ts.map +1 -1
- package/dist/local-api/collection-api.js +51 -17
- package/dist/local-api/index.d.ts +1 -1
- package/dist/local-api/index.d.ts.map +1 -1
- package/dist/routes/assets-cdn.d.ts.map +1 -1
- package/dist/routes/assets-cdn.js +14 -7
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +6 -1
- package/dist/routes/documents-by-id.d.ts.map +1 -1
- package/dist/routes/documents-by-id.js +18 -7
- package/dist/routes/documents-publish.js +2 -2
- package/dist/routes/documents-query.d.ts +3 -1
- package/dist/routes/documents-query.d.ts.map +1 -1
- package/dist/routes/documents-query.js +6 -2
- package/dist/routes/documents.d.ts.map +1 -1
- package/dist/routes/documents.js +20 -4
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +2 -0
- package/dist/routes/user-preferences.d.ts +4 -0
- package/dist/routes/user-preferences.d.ts.map +1 -0
- package/dist/routes/user-preferences.js +77 -0
- package/dist/schema-utils/utils.d.ts +4 -0
- package/dist/schema-utils/utils.d.ts.map +1 -1
- package/dist/schema-utils/utils.js +23 -2
- package/dist/schema-utils/validator.d.ts +4 -0
- package/dist/schema-utils/validator.d.ts.map +1 -1
- package/dist/schema-utils/validator.js +120 -0
- package/dist/types/filters.d.ts +13 -0
- package/dist/types/filters.d.ts.map +1 -1
- package/dist/types/organization.d.ts +3 -0
- package/dist/types/organization.d.ts.map +1 -1
- package/dist/types/schemas.d.ts +67 -7
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/utils/default-orderings.d.ts +10 -0
- package/dist/utils/default-orderings.d.ts.map +1 -0
- package/dist/utils/default-orderings.js +63 -0
- package/dist/utils/field-defaults.d.ts +8 -0
- package/dist/utils/field-defaults.d.ts.map +1 -0
- package/dist/utils/field-defaults.js +20 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/initial-value-helpers.d.ts +50 -0
- package/dist/utils/initial-value-helpers.d.ts.map +1 -0
- package/dist/utils/initial-value-helpers.js +70 -0
- package/package.json +6 -4
- package/dist/components/admin/DocumentTypesList.svelte +0 -97
- package/dist/components/admin/DocumentTypesList.svelte.d.ts +0 -14
- package/dist/components/admin/DocumentTypesList.svelte.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AASpD,eAAO,MAAM,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AASpD,eAAO,MAAM,GAAG,EAAE,cAwGjB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,cAmFlB,CAAC"}
|
package/dist/routes/documents.js
CHANGED
|
@@ -18,6 +18,11 @@ export const GET = async ({ url, locals }) => {
|
|
|
18
18
|
const depthParam = url.searchParams.get('depth');
|
|
19
19
|
const sortParam = url.searchParams.get('sort');
|
|
20
20
|
const perspective = url.searchParams.get('perspective') || 'draft';
|
|
21
|
+
const includeChildOrganizations = url.searchParams.get('includeChildOrganizations') === 'true';
|
|
22
|
+
const filterOrganizationIds = url.searchParams
|
|
23
|
+
.get('filterOrganizationIds')
|
|
24
|
+
?.split(',')
|
|
25
|
+
.filter(Boolean);
|
|
21
26
|
// Parse pagination
|
|
22
27
|
const page = pageParam ? Math.max(1, parseInt(pageParam)) : DEFAULT_PAGE;
|
|
23
28
|
const pageSize = pageSizeParam ? parseInt(pageSizeParam) : DEFAULT_PAGE_SIZE;
|
|
@@ -52,7 +57,9 @@ export const GET = async ({ url, locals }) => {
|
|
|
52
57
|
offset: offset,
|
|
53
58
|
depth: depth,
|
|
54
59
|
sort: sortParam || undefined,
|
|
55
|
-
perspective
|
|
60
|
+
perspective,
|
|
61
|
+
includeChildOrganizations,
|
|
62
|
+
filterOrganizationIds
|
|
56
63
|
});
|
|
57
64
|
return json({
|
|
58
65
|
success: true,
|
|
@@ -109,13 +116,14 @@ export const POST = async ({ request, locals }) => {
|
|
|
109
116
|
message: `Collection '${documentType}' not found. Available: ${localAPI.getCollectionNames().join(', ')}`
|
|
110
117
|
}, { status: 400 });
|
|
111
118
|
}
|
|
112
|
-
// Create via LocalAPI (permission checks happen inside)
|
|
113
|
-
const
|
|
119
|
+
// Create via LocalAPI (permission checks and validation happen inside)
|
|
120
|
+
const result = await collection.create(context, documentData, {
|
|
114
121
|
publish: shouldPublish
|
|
115
122
|
});
|
|
116
123
|
return json({
|
|
117
124
|
success: true,
|
|
118
|
-
data:
|
|
125
|
+
data: result.document,
|
|
126
|
+
validation: result.validation
|
|
119
127
|
}, { status: 201 });
|
|
120
128
|
}
|
|
121
129
|
catch (error) {
|
|
@@ -127,6 +135,14 @@ export const POST = async ({ request, locals }) => {
|
|
|
127
135
|
message: error.message
|
|
128
136
|
}, { status: 403 });
|
|
129
137
|
}
|
|
138
|
+
// Validation errors from publish attempts
|
|
139
|
+
if (error instanceof Error && error.message.includes('validation errors')) {
|
|
140
|
+
return json({
|
|
141
|
+
success: false,
|
|
142
|
+
error: 'Validation failed',
|
|
143
|
+
message: error.message
|
|
144
|
+
}, { status: 400 });
|
|
145
|
+
}
|
|
130
146
|
return json({
|
|
131
147
|
success: false,
|
|
132
148
|
error: 'Failed to create document',
|
package/dist/routes/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export * as documentsPublish from './documents-publish.js';
|
|
|
5
5
|
export * as assets from './assets.js';
|
|
6
6
|
export * as schemas from './schemas.js';
|
|
7
7
|
export * as schemasByType from './schemas-by-type.js';
|
|
8
|
+
export * as userPreferences from './user-preferences.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC"}
|
package/dist/routes/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-preferences.d.ts","sourceRoot":"","sources":["../../src/lib/routes/user-preferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,GAAG,EAAE,cAiCjB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,cAkEnB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Aphex CMS User Preferences API Handler
|
|
2
|
+
import { json } from '@sveltejs/kit';
|
|
3
|
+
// GET /api/user/preferences - Get user preferences
|
|
4
|
+
export const GET = async ({ locals }) => {
|
|
5
|
+
try {
|
|
6
|
+
const { databaseAdapter } = locals.aphexCMS;
|
|
7
|
+
const auth = locals.auth;
|
|
8
|
+
if (!auth || auth.type !== 'session') {
|
|
9
|
+
return json({
|
|
10
|
+
success: false,
|
|
11
|
+
error: 'Unauthorized',
|
|
12
|
+
message: 'Session authentication required'
|
|
13
|
+
}, { status: 401 });
|
|
14
|
+
}
|
|
15
|
+
const userProfile = await databaseAdapter.findUserProfileById(auth.user.id);
|
|
16
|
+
return json({
|
|
17
|
+
success: true,
|
|
18
|
+
data: userProfile?.preferences || {}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error('Failed to get user preferences:', error);
|
|
23
|
+
return json({
|
|
24
|
+
success: false,
|
|
25
|
+
error: 'Failed to get user preferences',
|
|
26
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
27
|
+
}, { status: 500 });
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
// PATCH /api/user/preferences - Update user preferences (partial update)
|
|
31
|
+
export const PATCH = async ({ request, locals }) => {
|
|
32
|
+
try {
|
|
33
|
+
const { databaseAdapter } = locals.aphexCMS;
|
|
34
|
+
const auth = locals.auth;
|
|
35
|
+
if (!auth || auth.type !== 'session') {
|
|
36
|
+
return json({
|
|
37
|
+
success: false,
|
|
38
|
+
error: 'Unauthorized',
|
|
39
|
+
message: 'Session authentication required'
|
|
40
|
+
}, { status: 401 });
|
|
41
|
+
}
|
|
42
|
+
const body = (await request.json());
|
|
43
|
+
// Validate the preferences object
|
|
44
|
+
if (typeof body !== 'object' || body === null) {
|
|
45
|
+
return json({
|
|
46
|
+
success: false,
|
|
47
|
+
error: 'Invalid request body',
|
|
48
|
+
message: 'Expected an object with preference values'
|
|
49
|
+
}, { status: 400 });
|
|
50
|
+
}
|
|
51
|
+
// Validate individual preference types
|
|
52
|
+
if (body.includeChildOrganizations !== undefined &&
|
|
53
|
+
typeof body.includeChildOrganizations !== 'boolean') {
|
|
54
|
+
return json({
|
|
55
|
+
success: false,
|
|
56
|
+
error: 'Invalid preference value',
|
|
57
|
+
message: 'includeChildOrganizations must be a boolean'
|
|
58
|
+
}, { status: 400 });
|
|
59
|
+
}
|
|
60
|
+
// Update preferences
|
|
61
|
+
await databaseAdapter.updateUserPreferences(auth.user.id, body);
|
|
62
|
+
// Get updated profile
|
|
63
|
+
const userProfile = await databaseAdapter.findUserProfileById(auth.user.id);
|
|
64
|
+
return json({
|
|
65
|
+
success: true,
|
|
66
|
+
data: userProfile?.preferences || {}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error('Failed to update user preferences:', error);
|
|
71
|
+
return json({
|
|
72
|
+
success: false,
|
|
73
|
+
error: 'Failed to update user preferences',
|
|
74
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
75
|
+
}, { status: 500 });
|
|
76
|
+
}
|
|
77
|
+
};
|
|
@@ -21,10 +21,14 @@ export declare function getDocumentTypes(schemas: SchemaType[]): SchemaType[];
|
|
|
21
21
|
export declare function schemaExists(schemas: SchemaType[], name: string): boolean;
|
|
22
22
|
/**
|
|
23
23
|
* Get the available types for an array field
|
|
24
|
+
* Supports both schema references and inline object definitions
|
|
24
25
|
*/
|
|
25
26
|
export declare function getArrayTypes(schemas: SchemaType[], arrayField: {
|
|
26
27
|
of?: Array<{
|
|
27
28
|
type: string;
|
|
29
|
+
name?: string;
|
|
30
|
+
title?: string;
|
|
31
|
+
fields?: any[];
|
|
28
32
|
}>;
|
|
29
33
|
}): SchemaType[];
|
|
30
34
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/schema-utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEtF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAElE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/schema-utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEtF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAElE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE;IAAE,EAAE,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,GACzF,UAAU,EAAE,CA0Bd"}
|
|
@@ -28,10 +28,31 @@ export function schemaExists(schemas, name) {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Get the available types for an array field
|
|
31
|
+
* Supports both schema references and inline object definitions
|
|
31
32
|
*/
|
|
32
33
|
export function getArrayTypes(schemas, arrayField) {
|
|
33
34
|
if (!arrayField.of)
|
|
34
35
|
return [];
|
|
35
|
-
const
|
|
36
|
-
|
|
36
|
+
const availableTypes = [];
|
|
37
|
+
arrayField.of.forEach((item) => {
|
|
38
|
+
// Check if this is an inline object definition
|
|
39
|
+
if (item.fields) {
|
|
40
|
+
// Create a temporary SchemaType from inline definition
|
|
41
|
+
const schemaName = item.name || item.type;
|
|
42
|
+
availableTypes.push({
|
|
43
|
+
type: 'object',
|
|
44
|
+
name: schemaName,
|
|
45
|
+
title: item.title || item.name || item.type,
|
|
46
|
+
fields: item.fields
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Look it up in the schema registry
|
|
51
|
+
const schema = schemas.find((s) => s.name === item.type);
|
|
52
|
+
if (schema) {
|
|
53
|
+
availableTypes.push(schema);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return availableTypes;
|
|
37
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/lib/schema-utils/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/lib/schema-utils/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AAkB1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAoMpE"}
|
|
@@ -1,13 +1,69 @@
|
|
|
1
|
+
// Reserved field names that conflict with system properties
|
|
2
|
+
const RESERVED_FIELD_NAMES = [
|
|
3
|
+
'id',
|
|
4
|
+
'type',
|
|
5
|
+
'status',
|
|
6
|
+
'organizationId',
|
|
7
|
+
'createdBy',
|
|
8
|
+
'updatedBy',
|
|
9
|
+
'createdAt',
|
|
10
|
+
'updatedAt',
|
|
11
|
+
'publishedAt',
|
|
12
|
+
'draftData',
|
|
13
|
+
'publishedData',
|
|
14
|
+
'publishedHash'
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* Check if a field name is reserved
|
|
18
|
+
*/
|
|
19
|
+
export function isReservedFieldName(fieldName) {
|
|
20
|
+
return RESERVED_FIELD_NAMES.includes(fieldName);
|
|
21
|
+
}
|
|
1
22
|
/**
|
|
2
23
|
* Validate all schema references to ensure they exist
|
|
3
24
|
*/
|
|
4
25
|
export function validateSchemaReferences(schemas) {
|
|
5
26
|
const schemaNames = new Set(schemas.map((schema) => schema.name));
|
|
6
27
|
const errors = [];
|
|
28
|
+
// Primitive field types that don't need schema validation
|
|
29
|
+
const primitiveTypes = [
|
|
30
|
+
'string',
|
|
31
|
+
'text',
|
|
32
|
+
'number',
|
|
33
|
+
'boolean',
|
|
34
|
+
'slug',
|
|
35
|
+
'url',
|
|
36
|
+
'image',
|
|
37
|
+
'date',
|
|
38
|
+
'datetime',
|
|
39
|
+
'reference'
|
|
40
|
+
];
|
|
41
|
+
const validFieldTypes = [...primitiveTypes, 'array', 'object'];
|
|
7
42
|
function validateField(field, parentSchema) {
|
|
43
|
+
// Check that field has a valid type (cast to any to access name property)
|
|
44
|
+
if (!field.type) {
|
|
45
|
+
errors.push(`Schema "${parentSchema}" field "${field.name || 'unknown'}" is missing required "type" property`);
|
|
46
|
+
return; // Skip further validation if type is missing
|
|
47
|
+
}
|
|
48
|
+
if (!validFieldTypes.includes(field.type)) {
|
|
49
|
+
errors.push(`Schema "${parentSchema}" field "${field.name}" has invalid type "${field.type}". Valid types: ${validFieldTypes.join(', ')}`);
|
|
50
|
+
}
|
|
51
|
+
// Check for reserved field names
|
|
52
|
+
if (isReservedFieldName(field.name)) {
|
|
53
|
+
errors.push(`Schema "${parentSchema}" uses reserved field name "${field.name}". Reserved names: ${RESERVED_FIELD_NAMES.join(', ')}`);
|
|
54
|
+
}
|
|
8
55
|
// Check array field references
|
|
9
56
|
if (field.type === 'array' && field.of) {
|
|
10
57
|
for (const arrayType of field.of) {
|
|
58
|
+
// Skip validation for primitive types and inline objects
|
|
59
|
+
if (primitiveTypes.includes(arrayType.type)) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// Skip inline object definitions (has fields property)
|
|
63
|
+
if (arrayType.type === 'object' && arrayType.fields) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// Only validate if it's a reference to another schema
|
|
11
67
|
if (!schemaNames.has(arrayType.type)) {
|
|
12
68
|
errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown type "${arrayType.type}"`);
|
|
13
69
|
}
|
|
@@ -19,6 +75,14 @@ export function validateSchemaReferences(schemas) {
|
|
|
19
75
|
errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown object type "${field.fields}"`);
|
|
20
76
|
}
|
|
21
77
|
}
|
|
78
|
+
// Check reference field targets
|
|
79
|
+
if (field.type === 'reference' && 'to' in field && field.to) {
|
|
80
|
+
for (const target of field.to) {
|
|
81
|
+
if (!schemaNames.has(target.type)) {
|
|
82
|
+
errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown document type "${target.type}"`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
22
86
|
// Recursively check nested fields -- cast type later or something. cba
|
|
23
87
|
if ('fields' in field && Array.isArray(field.fields)) {
|
|
24
88
|
for (const nestedField of field.fields) {
|
|
@@ -28,11 +92,67 @@ export function validateSchemaReferences(schemas) {
|
|
|
28
92
|
}
|
|
29
93
|
// Validate each schema
|
|
30
94
|
for (const schema of schemas) {
|
|
95
|
+
// Validate schema type
|
|
96
|
+
if (schema.type !== 'document' && schema.type !== 'object') {
|
|
97
|
+
errors.push(`Schema "${schema.name}" has invalid type "${schema.type}". Must be "document" or "object"`);
|
|
98
|
+
}
|
|
31
99
|
if (schema.fields) {
|
|
32
100
|
for (const field of schema.fields) {
|
|
33
101
|
validateField(field, schema.name);
|
|
34
102
|
}
|
|
35
103
|
}
|
|
104
|
+
// Validate preview config references
|
|
105
|
+
if (schema.preview?.select) {
|
|
106
|
+
const fieldNames = new Set(schema.fields?.map((f) => f.name) || []);
|
|
107
|
+
// Validate title field reference
|
|
108
|
+
if (schema.preview.select.title && !fieldNames.has(schema.preview.select.title)) {
|
|
109
|
+
errors.push(`Schema "${schema.name}" preview.select.title references unknown field "${schema.preview.select.title}"`);
|
|
110
|
+
}
|
|
111
|
+
// Validate subtitle field reference
|
|
112
|
+
if (schema.preview.select.subtitle && !fieldNames.has(schema.preview.select.subtitle)) {
|
|
113
|
+
errors.push(`Schema "${schema.name}" preview.select.subtitle references unknown field "${schema.preview.select.subtitle}"`);
|
|
114
|
+
}
|
|
115
|
+
// Validate media field reference
|
|
116
|
+
if (schema.preview.select.media && !fieldNames.has(schema.preview.select.media)) {
|
|
117
|
+
errors.push(`Schema "${schema.name}" preview.select.media references unknown field "${schema.preview.select.media}"`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Validate orderings
|
|
121
|
+
if (schema.orderings && schema.orderings.length > 0) {
|
|
122
|
+
const fieldNames = new Set(schema.fields?.map((f) => f.name) || []);
|
|
123
|
+
// Add meta fields that are always available
|
|
124
|
+
fieldNames.add('createdAt');
|
|
125
|
+
fieldNames.add('updatedAt');
|
|
126
|
+
for (const ordering of schema.orderings) {
|
|
127
|
+
// Validate ordering has required properties
|
|
128
|
+
if (!ordering.name) {
|
|
129
|
+
errors.push(`Schema "${schema.name}" has an ordering without a "name" property`);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (!ordering.title) {
|
|
133
|
+
errors.push(`Schema "${schema.name}" ordering "${ordering.name}" is missing required "title" property`);
|
|
134
|
+
}
|
|
135
|
+
if (!ordering.by || ordering.by.length === 0) {
|
|
136
|
+
errors.push(`Schema "${schema.name}" ordering "${ordering.name}" is missing required "by" array`);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
// Validate each field in the ordering
|
|
140
|
+
for (const orderItem of ordering.by) {
|
|
141
|
+
if (!orderItem.field) {
|
|
142
|
+
errors.push(`Schema "${schema.name}" ordering "${ordering.name}" has an item without a "field" property`);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (!fieldNames.has(orderItem.field)) {
|
|
146
|
+
errors.push(`Schema "${schema.name}" ordering "${ordering.name}" references unknown field "${orderItem.field}"`);
|
|
147
|
+
}
|
|
148
|
+
if (orderItem.direction &&
|
|
149
|
+
orderItem.direction !== 'asc' &&
|
|
150
|
+
orderItem.direction !== 'desc') {
|
|
151
|
+
errors.push(`Schema "${schema.name}" ordering "${ordering.name}" field "${orderItem.field}" has invalid direction "${orderItem.direction}". Must be "asc" or "desc"`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
36
156
|
}
|
|
37
157
|
// Throw error if any validation issues found
|
|
38
158
|
if (errors.length > 0) {
|
package/dist/types/filters.d.ts
CHANGED
|
@@ -131,6 +131,19 @@ export interface FindOptions<T = unknown> {
|
|
|
131
131
|
* @default 'draft'
|
|
132
132
|
*/
|
|
133
133
|
perspective?: 'draft' | 'published';
|
|
134
|
+
/**
|
|
135
|
+
* Include documents from child organizations
|
|
136
|
+
* - Only applies when hierarchyEnabled is true
|
|
137
|
+
* @default false
|
|
138
|
+
*/
|
|
139
|
+
includeChildOrganizations?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Filter to specific organization IDs
|
|
142
|
+
* - Overrides the default single organizationId filter
|
|
143
|
+
* - Useful for multi-org queries (e.g., parent + children)
|
|
144
|
+
* - RLS will still enforce access control
|
|
145
|
+
*/
|
|
146
|
+
filterOrganizationIds?: string[];
|
|
134
147
|
}
|
|
135
148
|
/**
|
|
136
149
|
* Result from find operations with pagination metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/lib/types/filters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/lib/types/filters.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IAEvC,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACT,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IAGb,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,YAAY,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3D,kBAAkB,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACjE,SAAS,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAG9D,IAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,SAAS,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,OAAO;IAEjC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAIhB,CAAC,KAAK,EAAE,MAAM,GACX,WAAW,CAAC,OAAO,CAAC,GACpB,WAAW,GACX,WAAW,CAAC,OAAO,CAAC,EAAE,GACtB,KAAK,CAAC,CAAC,CAAC,EAAE,GACV,SAAS,CAAC;CACb;AAED;;;GAGG;AACH,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GACpD,KAAK,GACL,CAAC,SAAS,MAAM,GACf;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GACnB,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAClB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GACtB,KAAK,GACL,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GACrC,KAAK,CAAC;CACX,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAClB,KAAK,CAAC;AAEV,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhC;;;GAGG;AACH,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GACxD,CAAC,SAAS,MAAM,CAAC,GAChB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GACrB,OAAO,GACR,CAAC,SAAS,MAAM,CAAC,GAChB,CAAC,CAAC,CAAC,CAAC,GACJ,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,GAAG;KAGF,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW;CACvF,GAAG;IAEH,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;CAClF,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAEpC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IAEV;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/lib/types/organization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/lib/types/organization.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE;YACP,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE;YACP,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACtC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAGD,MAAM,WAAW,sBAAsB;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;CAC3B;AAGD,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;CACF"}
|
package/dist/types/schemas.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Rule } from '../field-validation/rule.js';
|
|
2
2
|
import type { Icon as LucideIcon } from 'lucide-svelte';
|
|
3
|
-
export type FieldType = 'string' | 'text' | 'number' | 'boolean' | 'slug' | 'image' | 'array' | 'object' | 'reference';
|
|
3
|
+
export type FieldType = 'string' | 'text' | 'number' | 'boolean' | 'slug' | 'url' | 'image' | 'array' | 'object' | 'reference' | 'date' | 'datetime';
|
|
4
4
|
export interface BaseField {
|
|
5
5
|
name: string;
|
|
6
6
|
type: FieldType;
|
|
@@ -8,30 +8,54 @@ export interface BaseField {
|
|
|
8
8
|
description?: string;
|
|
9
9
|
validation?: ((rule: Rule) => Rule) | Array<(rule: Rule) => Rule>;
|
|
10
10
|
}
|
|
11
|
+
export interface DependentList {
|
|
12
|
+
dependsOn: string;
|
|
13
|
+
options: Record<string, Array<string | {
|
|
14
|
+
title: string;
|
|
15
|
+
value: string;
|
|
16
|
+
}>>;
|
|
17
|
+
}
|
|
11
18
|
export interface StringField extends BaseField {
|
|
12
19
|
type: 'string';
|
|
13
20
|
maxLength?: number;
|
|
14
21
|
placeholder?: string;
|
|
22
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
23
|
+
list?: Array<string | {
|
|
24
|
+
title: string;
|
|
25
|
+
value: string;
|
|
26
|
+
}> | DependentList;
|
|
27
|
+
options?: {
|
|
28
|
+
layout?: 'dropdown' | 'radio';
|
|
29
|
+
direction?: 'horizontal' | 'vertical';
|
|
30
|
+
};
|
|
15
31
|
}
|
|
16
32
|
export interface TextField extends BaseField {
|
|
17
33
|
type: 'text';
|
|
18
34
|
rows?: number;
|
|
19
35
|
maxLength?: number;
|
|
20
36
|
placeholder?: string;
|
|
37
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
21
38
|
}
|
|
22
39
|
export interface NumberField extends BaseField {
|
|
23
40
|
type: 'number';
|
|
24
41
|
min?: number;
|
|
25
42
|
max?: number;
|
|
43
|
+
initialValue?: number | (() => number | Promise<number>);
|
|
26
44
|
}
|
|
27
45
|
export interface BooleanField extends BaseField {
|
|
28
46
|
type: 'boolean';
|
|
29
|
-
initialValue?: boolean;
|
|
47
|
+
initialValue?: boolean | (() => boolean | Promise<boolean>);
|
|
30
48
|
}
|
|
31
49
|
export interface SlugField extends BaseField {
|
|
32
50
|
type: 'slug';
|
|
33
51
|
source?: string;
|
|
34
52
|
maxLength?: number;
|
|
53
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
54
|
+
}
|
|
55
|
+
export interface URLField extends BaseField {
|
|
56
|
+
type: 'url';
|
|
57
|
+
placeholder?: string;
|
|
58
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
35
59
|
}
|
|
36
60
|
export interface ImageField extends BaseField {
|
|
37
61
|
type: 'image';
|
|
@@ -40,27 +64,51 @@ export interface ImageField extends BaseField {
|
|
|
40
64
|
metadata?: string[];
|
|
41
65
|
fields?: Field[];
|
|
42
66
|
private?: boolean;
|
|
67
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
43
68
|
}
|
|
44
69
|
export interface TypeReference {
|
|
45
70
|
type: string;
|
|
46
71
|
title?: string;
|
|
72
|
+
name?: string;
|
|
73
|
+
fields?: Field[];
|
|
47
74
|
}
|
|
48
75
|
export interface ArrayField extends BaseField {
|
|
49
76
|
type: 'array';
|
|
50
77
|
of: TypeReference[];
|
|
51
|
-
|
|
78
|
+
initialValue?: any[] | (() => any[] | Promise<any[]>);
|
|
52
79
|
}
|
|
53
80
|
export interface ObjectField extends BaseField {
|
|
54
81
|
type: 'object';
|
|
55
82
|
fields: Field[];
|
|
83
|
+
initialValue?: Record<string, any> | (() => Record<string, any> | Promise<Record<string, any>>);
|
|
84
|
+
}
|
|
85
|
+
export interface DateField extends BaseField {
|
|
86
|
+
type: 'date';
|
|
87
|
+
options?: {
|
|
88
|
+
dateFormat?: string;
|
|
89
|
+
calendarTodayLabel?: string;
|
|
90
|
+
};
|
|
91
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
92
|
+
}
|
|
93
|
+
export interface DateTimeField extends BaseField {
|
|
94
|
+
type: 'datetime';
|
|
95
|
+
options?: {
|
|
96
|
+
dateFormat?: string;
|
|
97
|
+
timeFormat?: string;
|
|
98
|
+
timeStep?: number;
|
|
99
|
+
allowTimeZoneSwitch?: boolean;
|
|
100
|
+
displayTimeZone?: string;
|
|
101
|
+
};
|
|
102
|
+
initialValue?: string | (() => string | Promise<string>);
|
|
56
103
|
}
|
|
57
104
|
export interface ReferenceField extends BaseField {
|
|
58
105
|
type: 'reference';
|
|
59
106
|
to: Array<{
|
|
60
107
|
type: string;
|
|
61
108
|
}>;
|
|
109
|
+
initialValue?: any | (() => any | Promise<any>);
|
|
62
110
|
}
|
|
63
|
-
export type Field = StringField | TextField | NumberField | BooleanField | SlugField | ImageField | ArrayField | ObjectField | ReferenceField;
|
|
111
|
+
export type Field = StringField | TextField | NumberField | BooleanField | SlugField | URLField | ImageField | ArrayField | ObjectField | DateField | DateTimeField | ReferenceField;
|
|
64
112
|
export interface PreviewConfig {
|
|
65
113
|
select?: {
|
|
66
114
|
title?: string;
|
|
@@ -68,8 +116,17 @@ export interface PreviewConfig {
|
|
|
68
116
|
media?: string;
|
|
69
117
|
};
|
|
70
118
|
}
|
|
119
|
+
export interface OrderingItem {
|
|
120
|
+
field: string;
|
|
121
|
+
direction: 'asc' | 'desc';
|
|
122
|
+
}
|
|
123
|
+
export interface Ordering {
|
|
124
|
+
title: string;
|
|
125
|
+
name: string;
|
|
126
|
+
by: OrderingItem[];
|
|
127
|
+
}
|
|
71
128
|
export interface DocumentType {
|
|
72
|
-
id
|
|
129
|
+
id?: string;
|
|
73
130
|
type: 'document';
|
|
74
131
|
name: string;
|
|
75
132
|
title: string;
|
|
@@ -77,8 +134,9 @@ export interface DocumentType {
|
|
|
77
134
|
icon?: typeof LucideIcon;
|
|
78
135
|
fields: Field[];
|
|
79
136
|
preview?: PreviewConfig;
|
|
80
|
-
|
|
81
|
-
|
|
137
|
+
orderings?: Ordering[];
|
|
138
|
+
createdAt?: Date | null;
|
|
139
|
+
updatedAt?: Date | null;
|
|
82
140
|
}
|
|
83
141
|
export interface ObjectType {
|
|
84
142
|
type: 'object';
|
|
@@ -101,6 +159,7 @@ export interface SchemaType {
|
|
|
101
159
|
icon?: typeof LucideIcon;
|
|
102
160
|
fields: Field[];
|
|
103
161
|
preview?: PreviewConfig;
|
|
162
|
+
orderings?: Ordering[];
|
|
104
163
|
createdAt?: Date | null;
|
|
105
164
|
updatedAt?: Date | null;
|
|
106
165
|
}
|
|
@@ -113,6 +172,7 @@ export interface NewSchemaType {
|
|
|
113
172
|
icon?: typeof LucideIcon;
|
|
114
173
|
fields: Field[];
|
|
115
174
|
preview?: PreviewConfig;
|
|
175
|
+
orderings?: Ordering[];
|
|
116
176
|
createdAt?: Date | null;
|
|
117
177
|
updatedAt?: Date | null;
|
|
118
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/types/schemas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,SAAS,GAClB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/types/schemas.ts"],"names":[],"mappings":"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"}
|