@aphexcms/cms-core 6.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/documents.d.ts +19 -0
- package/dist/api/documents.d.ts.map +1 -1
- package/dist/api/documents.js +21 -0
- package/dist/api/schemas/documents.d.ts +3 -0
- package/dist/api/schemas/documents.d.ts.map +1 -1
- package/dist/api/schemas/documents.js +12 -0
- package/dist/cli/generate-types.d.ts.map +1 -1
- package/dist/cli/generate-types.js +133 -19
- package/dist/cli/generate-types.js.map +1 -1
- package/dist/components/AdminApp.svelte +74 -47
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentEditor.svelte +65 -2
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/confirm-dialog/ConfirmDialogHost.svelte +8 -6
- package/dist/components/admin/confirm-dialog/ConfirmDialogHost.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ArrayField.svelte +149 -2
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ReferenceField.svelte +198 -125
- package/dist/components/admin/fields/ReferenceField.svelte.d.ts +9 -2
- package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
- package/dist/components/layout/Sidebar.svelte +1 -1
- package/dist/components/layout/sidebar/AppSidebar.svelte +2 -1
- package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts.map +1 -1
- package/dist/components/layout/sidebar/NavMain.svelte +9 -2
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts +2 -0
- package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
- package/dist/db/interfaces/index.d.ts +3 -1
- package/dist/db/interfaces/index.d.ts.map +1 -1
- package/dist/db/interfaces/reference.d.ts +43 -0
- package/dist/db/interfaces/reference.d.ts.map +1 -0
- package/dist/db/interfaces/reference.js +4 -0
- package/dist/db/utils/reference-resolver.d.ts +4 -6
- package/dist/db/utils/reference-resolver.d.ts.map +1 -1
- package/dist/db/utils/reference-resolver.js +33 -31
- package/dist/document-refresh.svelte.d.ts +3 -0
- package/dist/document-refresh.svelte.d.ts.map +1 -0
- package/dist/document-refresh.svelte.js +21 -0
- package/dist/graphql/resolvers.d.ts.map +1 -1
- package/dist/graphql/resolvers.js +61 -1
- package/dist/graphql/schema.d.ts.map +1 -1
- package/dist/graphql/schema.js +10 -0
- package/dist/lib/api/documents.d.ts +19 -0
- package/dist/lib/api/documents.d.ts.map +1 -1
- package/dist/lib/api/documents.js +21 -0
- package/dist/lib/api/documents.js.map +1 -1
- package/dist/lib/api/schemas/documents.d.ts +3 -0
- package/dist/lib/api/schemas/documents.d.ts.map +1 -1
- package/dist/lib/api/schemas/documents.js +12 -0
- package/dist/lib/api/schemas/documents.js.map +1 -1
- package/dist/lib/db/interfaces/index.d.ts +3 -1
- package/dist/lib/db/interfaces/index.d.ts.map +1 -1
- package/dist/lib/db/interfaces/reference.d.ts +43 -0
- package/dist/lib/db/interfaces/reference.d.ts.map +1 -0
- package/dist/lib/db/interfaces/reference.js +5 -0
- package/dist/lib/db/interfaces/reference.js.map +1 -0
- package/dist/lib/db/utils/reference-resolver.d.ts +4 -6
- package/dist/lib/db/utils/reference-resolver.d.ts.map +1 -1
- package/dist/lib/db/utils/reference-resolver.js +33 -31
- package/dist/lib/db/utils/reference-resolver.js.map +1 -1
- package/dist/lib/document-refresh.svelte.d.ts +3 -0
- package/dist/lib/document-refresh.svelte.d.ts.map +1 -0
- package/dist/lib/document-refresh.svelte.js +22 -0
- package/dist/lib/document-refresh.svelte.js.map +1 -0
- package/dist/lib/graphql/resolvers.d.ts.map +1 -1
- package/dist/lib/graphql/resolvers.js +61 -1
- package/dist/lib/graphql/resolvers.js.map +1 -1
- package/dist/lib/graphql/schema.d.ts.map +1 -1
- package/dist/lib/graphql/schema.js +10 -0
- package/dist/lib/graphql/schema.js.map +1 -1
- package/dist/lib/local-api/collection-api.d.ts +10 -1
- package/dist/lib/local-api/collection-api.d.ts.map +1 -1
- package/dist/lib/local-api/collection-api.js +39 -1
- package/dist/lib/local-api/collection-api.js.map +1 -1
- package/dist/lib/local-api/index.d.ts +29 -0
- package/dist/lib/local-api/index.d.ts.map +1 -1
- package/dist/lib/local-api/index.js +66 -2
- package/dist/lib/local-api/index.js.map +1 -1
- package/dist/lib/routes/assets-cdn.d.ts.map +1 -1
- package/dist/lib/routes/assets-cdn.js +14 -1
- package/dist/lib/routes/assets-cdn.js.map +1 -1
- package/dist/lib/schema-utils/validator.js +21 -11
- package/dist/lib/schema-utils/validator.js.map +1 -1
- package/dist/lib/server/api/index.d.ts.map +1 -1
- package/dist/lib/server/api/index.js +3 -1
- package/dist/lib/server/api/index.js.map +1 -1
- package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents-by-id.js +23 -0
- package/dist/lib/server/api/routes/documents-by-id.js.map +1 -1
- package/dist/lib/server/api/routes/documents.d.ts.map +1 -1
- package/dist/lib/server/api/routes/documents.js +29 -1
- package/dist/lib/server/api/routes/documents.js.map +1 -1
- package/dist/lib/services/references-service.d.ts +35 -0
- package/dist/lib/services/references-service.d.ts.map +1 -0
- package/dist/lib/services/references-service.js +60 -0
- package/dist/lib/services/references-service.js.map +1 -0
- package/dist/lib/types/schemas.d.ts +8 -0
- package/dist/lib/types/schemas.d.ts.map +1 -1
- package/dist/lib/utils/preview.d.ts +2 -3
- package/dist/lib/utils/preview.d.ts.map +1 -1
- package/dist/lib/utils/preview.js +35 -8
- package/dist/lib/utils/preview.js.map +1 -1
- package/dist/lib/utils/reference-walk.d.ts +8 -0
- package/dist/lib/utils/reference-walk.d.ts.map +1 -0
- package/dist/lib/utils/reference-walk.js +39 -0
- package/dist/lib/utils/reference-walk.js.map +1 -0
- package/dist/local-api/collection-api.d.ts +10 -1
- package/dist/local-api/collection-api.d.ts.map +1 -1
- package/dist/local-api/collection-api.js +39 -1
- package/dist/local-api/index.d.ts +29 -0
- package/dist/local-api/index.d.ts.map +1 -1
- package/dist/local-api/index.js +66 -2
- package/dist/routes/assets-cdn.d.ts.map +1 -1
- package/dist/routes/assets-cdn.js +14 -1
- package/dist/schema-utils/validator.js +21 -11
- package/dist/server/api/index.d.ts.map +1 -1
- package/dist/server/api/index.js +3 -1
- package/dist/server/api/routes/documents-by-id.d.ts.map +1 -1
- package/dist/server/api/routes/documents-by-id.js +23 -0
- package/dist/server/api/routes/documents.d.ts.map +1 -1
- package/dist/server/api/routes/documents.js +29 -1
- package/dist/services/references-service.d.ts +35 -0
- package/dist/services/references-service.d.ts.map +1 -0
- package/dist/services/references-service.js +59 -0
- package/dist/types/schemas.d.ts +8 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/utils/preview.d.ts +2 -3
- package/dist/utils/preview.d.ts.map +1 -1
- package/dist/utils/preview.js +35 -8
- package/dist/utils/reference-walk.d.ts +8 -0
- package/dist/utils/reference-walk.d.ts.map +1 -0
- package/dist/utils/reference-walk.js +38 -0
- package/package.json +3 -3
package/dist/api/documents.d.ts
CHANGED
|
@@ -11,6 +11,23 @@ export declare class DocumentsApi {
|
|
|
11
11
|
* Get document by ID
|
|
12
12
|
*/
|
|
13
13
|
static getById(id: string): Promise<ApiResponse<DocumentDTO>>;
|
|
14
|
+
/**
|
|
15
|
+
* Find all documents that reference the given document. Used by the
|
|
16
|
+
* unpublish flow to warn the user that taking this doc down will leave
|
|
17
|
+
* dangling references in the published perspective of any back-referrers.
|
|
18
|
+
*/
|
|
19
|
+
static getBackReferences(id: string): Promise<ApiResponse<Array<{
|
|
20
|
+
id: string;
|
|
21
|
+
type: string;
|
|
22
|
+
status: string | null;
|
|
23
|
+
}>>>;
|
|
24
|
+
/**
|
|
25
|
+
* Batch fetch — one HTTP call per N IDs. Server fans out and returns the
|
|
26
|
+
* docs that exist (missing/forbidden IDs are silently dropped). Use this
|
|
27
|
+
* when you have a known set of references to hydrate; for filtered or
|
|
28
|
+
* paginated lists use `list()`.
|
|
29
|
+
*/
|
|
30
|
+
static getMany(ids: string[]): Promise<ApiResponse<DocumentDTO[]>>;
|
|
14
31
|
/**
|
|
15
32
|
* Create new document
|
|
16
33
|
*/
|
|
@@ -61,6 +78,8 @@ export declare class DocumentsApi {
|
|
|
61
78
|
export declare const documents: {
|
|
62
79
|
list: typeof DocumentsApi.list;
|
|
63
80
|
getById: typeof DocumentsApi.getById;
|
|
81
|
+
getMany: typeof DocumentsApi.getMany;
|
|
82
|
+
getBackReferences: typeof DocumentsApi.getBackReferences;
|
|
64
83
|
create: typeof DocumentsApi.create;
|
|
65
84
|
updateById: typeof DocumentsApi.updateById;
|
|
66
85
|
publish: typeof DocumentsApi.publish;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAUvF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInF;;;;OAIG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,qBAAqB,GACzB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIpC;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIrE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAI1C;;OAEG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAIxC;;OAEG;WACU,cAAc,CAC1B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;CAGpC;AAGD,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAUvF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;;;OAIG;WACU,iBAAiB,CAC7B,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAMnF;;;;;OAKG;WACU,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAKxE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInF;;;;OAIG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,qBAAqB,GACzB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIpC;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIrE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAI1C;;OAEG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAIxC;;OAEG;WACU,cAAc,CAC1B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;CAGpC;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAgBrB,CAAC"}
|
package/dist/api/documents.js
CHANGED
|
@@ -19,6 +19,25 @@ export class DocumentsApi {
|
|
|
19
19
|
static async getById(id) {
|
|
20
20
|
return apiClient.get(`/documents/${id}`);
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Find all documents that reference the given document. Used by the
|
|
24
|
+
* unpublish flow to warn the user that taking this doc down will leave
|
|
25
|
+
* dangling references in the published perspective of any back-referrers.
|
|
26
|
+
*/
|
|
27
|
+
static async getBackReferences(id) {
|
|
28
|
+
return apiClient.get(`/documents/${id}/back-references`);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Batch fetch — one HTTP call per N IDs. Server fans out and returns the
|
|
32
|
+
* docs that exist (missing/forbidden IDs are silently dropped). Use this
|
|
33
|
+
* when you have a known set of references to hydrate; for filtered or
|
|
34
|
+
* paginated lists use `list()`.
|
|
35
|
+
*/
|
|
36
|
+
static async getMany(ids) {
|
|
37
|
+
if (ids.length === 0)
|
|
38
|
+
return { success: true, data: [] };
|
|
39
|
+
return apiClient.get('/documents/by-ids', { ids: ids.join(',') });
|
|
40
|
+
}
|
|
22
41
|
/**
|
|
23
42
|
* Create new document
|
|
24
43
|
*/
|
|
@@ -92,6 +111,8 @@ export class DocumentsApi {
|
|
|
92
111
|
export const documents = {
|
|
93
112
|
list: DocumentsApi.list.bind(DocumentsApi),
|
|
94
113
|
getById: DocumentsApi.getById.bind(DocumentsApi),
|
|
114
|
+
getMany: DocumentsApi.getMany.bind(DocumentsApi),
|
|
115
|
+
getBackReferences: DocumentsApi.getBackReferences.bind(DocumentsApi),
|
|
95
116
|
create: DocumentsApi.create.bind(DocumentsApi),
|
|
96
117
|
updateById: DocumentsApi.updateById.bind(DocumentsApi),
|
|
97
118
|
publish: DocumentsApi.publish.bind(DocumentsApi),
|
|
@@ -85,6 +85,9 @@ export declare const listDocumentsResponse: z.ZodObject<{
|
|
|
85
85
|
hasPrevPage: z.ZodBoolean;
|
|
86
86
|
}, z.core.$strip>;
|
|
87
87
|
}, z.core.$strip>;
|
|
88
|
+
export declare const getDocumentsByIdsQuery: z.ZodObject<{
|
|
89
|
+
ids: z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>;
|
|
90
|
+
}, z.core.$strip>;
|
|
88
91
|
export declare const createDocumentRequest: z.ZodObject<{
|
|
89
92
|
type: z.ZodString;
|
|
90
93
|
draftData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/documents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,18 @@ export const listDocumentsResponse = z.object({
|
|
|
54
54
|
data: z.array(documentSchema),
|
|
55
55
|
pagination: paginationMetaSchema
|
|
56
56
|
});
|
|
57
|
+
// ---------- GET /documents/by-ids (batch lookup) ----------
|
|
58
|
+
// Fetch many docs in one round-trip. Used by the publish-guard reference
|
|
59
|
+
// check and by ArrayField row hydration so an array of N references costs
|
|
60
|
+
// one HTTP call instead of N. Caller passes ids as a comma-separated list.
|
|
61
|
+
export const getDocumentsByIdsQuery = z.object({
|
|
62
|
+
ids: z
|
|
63
|
+
.string()
|
|
64
|
+
.transform((v) => v.split(',').filter(Boolean))
|
|
65
|
+
.refine((arr) => arr.length > 0 && arr.length <= 100, {
|
|
66
|
+
message: 'ids must contain between 1 and 100 entries'
|
|
67
|
+
})
|
|
68
|
+
});
|
|
57
69
|
// ---------- POST /documents (create) ----------
|
|
58
70
|
export const createDocumentRequest = z
|
|
59
71
|
.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/cli/generate-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,sBAAsB,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/cli/generate-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,sBAAsB,CAAC;AA+R9D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAwF3D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Ff"}
|
|
@@ -2,7 +2,8 @@ import { isFieldRequired } from '../lib/field-validation/utils.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Map Aphex field types to TypeScript types
|
|
4
4
|
*/
|
|
5
|
-
function mapFieldTypeToTS(field, schemaMap,
|
|
5
|
+
function mapFieldTypeToTS(field, schemaMap, opts = {}) {
|
|
6
|
+
const { inArray = false, resolved = false } = opts;
|
|
6
7
|
switch (field.type) {
|
|
7
8
|
case 'string':
|
|
8
9
|
case 'text':
|
|
@@ -30,16 +31,41 @@ function mapFieldTypeToTS(field, schemaMap, inArray = false) {
|
|
|
30
31
|
// ArrayField for stable DnD ordering; reflect that in the type.
|
|
31
32
|
const types = field.of
|
|
32
33
|
.map((item) => {
|
|
33
|
-
//
|
|
34
|
+
// Reference array item: stored as { _type: 'reference', _ref, _key }.
|
|
35
|
+
// Raw mode → Reference<Target>; resolved mode → Target (the raw
|
|
36
|
+
// target — at depth=1 the resolver doesn't recurse into the
|
|
37
|
+
// fetched docs, so their inner refs stay raw).
|
|
38
|
+
if (item.type === 'reference') {
|
|
39
|
+
const to = item.to;
|
|
40
|
+
const targets = to
|
|
41
|
+
?.map((t) => {
|
|
42
|
+
const target = schemaMap.get(t.type);
|
|
43
|
+
return target ? pascalCase(t.type) : null;
|
|
44
|
+
})
|
|
45
|
+
.filter((s) => !!s) ?? [];
|
|
46
|
+
if (targets.length === 0) {
|
|
47
|
+
return resolved ? 'unknown' : 'Reference<unknown>';
|
|
48
|
+
}
|
|
49
|
+
const union = targets.join(' | ');
|
|
50
|
+
if (resolved) {
|
|
51
|
+
return targets.length === 1 ? targets[0] : `(${union})`;
|
|
52
|
+
}
|
|
53
|
+
return targets.length === 1
|
|
54
|
+
? `Reference<${targets[0]}>`
|
|
55
|
+
: `Reference<${union}>`;
|
|
56
|
+
}
|
|
57
|
+
// Named object schema — refs inside it are part of the same
|
|
58
|
+
// document tree, so in resolved mode point at the *Resolved
|
|
59
|
+
// variant (only if it actually has refs; otherwise no Resolved
|
|
60
|
+
// variant was emitted).
|
|
34
61
|
const refSchema = schemaMap.get(item.type);
|
|
35
62
|
if (refSchema && refSchema.type === 'object') {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return `(${
|
|
63
|
+
const useResolved = resolved && hasReferences(refSchema, schemaMap);
|
|
64
|
+
const name = pascalCase(item.type) + (useResolved ? 'Resolved' : '');
|
|
65
|
+
return `(${name} & { _key?: string })`;
|
|
39
66
|
}
|
|
40
|
-
// Inline object or primitive — recurse
|
|
41
|
-
|
|
42
|
-
return mapFieldTypeToTS(item, schemaMap, true);
|
|
67
|
+
// Inline object or primitive — recurse, propagating resolved.
|
|
68
|
+
return mapFieldTypeToTS(item, schemaMap, { inArray: true, resolved });
|
|
43
69
|
})
|
|
44
70
|
.filter((t) => t !== 'unknown');
|
|
45
71
|
if (types.length === 0) {
|
|
@@ -57,7 +83,7 @@ function mapFieldTypeToTS(field, schemaMap, inArray = false) {
|
|
|
57
83
|
const arrayMeta = inArray ? ' _key?: string;\n _type?: string;\n' : '';
|
|
58
84
|
const props = field.fields
|
|
59
85
|
.map((f) => {
|
|
60
|
-
const tsType = mapFieldTypeToTS(f, schemaMap);
|
|
86
|
+
const tsType = mapFieldTypeToTS(f, schemaMap, { resolved });
|
|
61
87
|
const optional = isFieldOptional(f) ? '?' : '';
|
|
62
88
|
return ` ${f.name}${optional}: ${tsType};`;
|
|
63
89
|
})
|
|
@@ -65,8 +91,21 @@ function mapFieldTypeToTS(field, schemaMap, inArray = false) {
|
|
|
65
91
|
return `{\n${arrayMeta}${props}\n}`;
|
|
66
92
|
}
|
|
67
93
|
case 'reference': {
|
|
68
|
-
|
|
69
|
-
|
|
94
|
+
const to = field.to;
|
|
95
|
+
const targets = to
|
|
96
|
+
?.map((t) => (schemaMap.get(t.type) ? pascalCase(t.type) : null))
|
|
97
|
+
.filter((s) => !!s) ?? [];
|
|
98
|
+
if (resolved) {
|
|
99
|
+
// At depth=1 the ref is replaced with the full target doc (raw shape).
|
|
100
|
+
if (targets.length === 0)
|
|
101
|
+
return 'unknown';
|
|
102
|
+
return targets.length === 1 ? targets[0] : targets.join(' | ');
|
|
103
|
+
}
|
|
104
|
+
// Raw: stored as { _type: 'reference', _ref } — same shape as array items.
|
|
105
|
+
if (targets.length === 0)
|
|
106
|
+
return 'Reference<unknown>';
|
|
107
|
+
const union = targets.join(' | ');
|
|
108
|
+
return targets.length === 1 ? `Reference<${targets[0]}>` : `Reference<${union}>`;
|
|
70
109
|
}
|
|
71
110
|
default:
|
|
72
111
|
return 'unknown';
|
|
@@ -88,17 +127,20 @@ function isFieldOptional(field) {
|
|
|
88
127
|
return !isFieldRequired(field);
|
|
89
128
|
}
|
|
90
129
|
/**
|
|
91
|
-
* Generate TypeScript interface for a schema type
|
|
130
|
+
* Generate TypeScript interface for a schema type. When `resolved` is true,
|
|
131
|
+
* emits the depth=1 shape (refs swapped for their targets) under the name
|
|
132
|
+
* `<Name>Resolved`.
|
|
92
133
|
*/
|
|
93
|
-
function generateInterface(schema, schemaMap) {
|
|
94
|
-
const interfaceName = pascalCase(schema.name);
|
|
134
|
+
function generateInterface(schema, schemaMap, resolved = false) {
|
|
135
|
+
const interfaceName = pascalCase(schema.name) + (resolved ? 'Resolved' : '');
|
|
95
136
|
const fields = schema.fields
|
|
96
137
|
.map((field) => {
|
|
97
|
-
const tsType = mapFieldTypeToTS(field, schemaMap);
|
|
138
|
+
const tsType = mapFieldTypeToTS(field, schemaMap, { resolved });
|
|
98
139
|
const optional = isFieldOptional(field) ? '?' : '';
|
|
99
140
|
// Build comment with description and format information
|
|
100
141
|
let comment = '';
|
|
101
|
-
|
|
142
|
+
const needsComment = field.description || field.type === 'date' || field.type === 'datetime';
|
|
143
|
+
if (needsComment) {
|
|
102
144
|
const parts = [];
|
|
103
145
|
if (field.description) {
|
|
104
146
|
parts.push(field.description);
|
|
@@ -114,7 +156,9 @@ function generateInterface(schema, schemaMap) {
|
|
|
114
156
|
const timeFormat = dateTimeField.options?.timeFormat || 'HH:mm';
|
|
115
157
|
parts.push(`@format ISO datetime string in UTC (YYYY-MM-DDTHH:mm:ssZ) - displays as ${dateFormat} ${timeFormat}`);
|
|
116
158
|
}
|
|
117
|
-
|
|
159
|
+
if (parts.length > 0) {
|
|
160
|
+
comment = ` /**\n * ${parts.join('\n * ')}\n */\n`;
|
|
161
|
+
}
|
|
118
162
|
}
|
|
119
163
|
return `${comment} ${field.name}${optional}: ${tsType};`;
|
|
120
164
|
})
|
|
@@ -147,6 +191,35 @@ ${fields}`;
|
|
|
147
191
|
}
|
|
148
192
|
return `export interface ${interfaceName} {\n${finalFields}\n}`;
|
|
149
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* True if the schema (or any object schema reachable from it) contains a
|
|
196
|
+
* reference field. Used to skip emitting `*Resolved` variants for schemas
|
|
197
|
+
* that have nothing to resolve.
|
|
198
|
+
*/
|
|
199
|
+
function hasReferences(schema, schemaMap, visited = new Set()) {
|
|
200
|
+
if (visited.has(schema.name))
|
|
201
|
+
return false;
|
|
202
|
+
visited.add(schema.name);
|
|
203
|
+
return schema.fields.some((f) => fieldHasReferences(f, schemaMap, visited));
|
|
204
|
+
}
|
|
205
|
+
function fieldHasReferences(field, schemaMap, visited) {
|
|
206
|
+
if (field.type === 'reference')
|
|
207
|
+
return true;
|
|
208
|
+
if (field.type === 'array' && 'of' in field && field.of) {
|
|
209
|
+
return field.of.some((item) => {
|
|
210
|
+
if (item.type === 'reference')
|
|
211
|
+
return true;
|
|
212
|
+
const named = schemaMap.get(item.type);
|
|
213
|
+
if (named && named.type === 'object')
|
|
214
|
+
return hasReferences(named, schemaMap, visited);
|
|
215
|
+
return fieldHasReferences(item, schemaMap, visited);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (field.type === 'object' && 'fields' in field && field.fields) {
|
|
219
|
+
return field.fields.some((f) => fieldHasReferences(f, schemaMap, visited));
|
|
220
|
+
}
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
150
223
|
/**
|
|
151
224
|
* Generate the Collections interface augmentation. Singleton-flagged schemas
|
|
152
225
|
* are typed as `SingletonCollection<T>` (a narrowed pick exposing only
|
|
@@ -179,13 +252,41 @@ export function generateTypes(schemas) {
|
|
|
179
252
|
// Separate document and object types
|
|
180
253
|
const documentSchemas = schemas.filter((s) => s.type === 'document');
|
|
181
254
|
const objectSchemas = schemas.filter((s) => s.type === 'object');
|
|
182
|
-
//
|
|
255
|
+
// Raw shape (storage / depth=0)
|
|
183
256
|
const objectInterfaces = objectSchemas.map((s) => generateInterface(s, schemaMap)).join('\n\n');
|
|
184
257
|
const documentInterfaces = documentSchemas
|
|
185
258
|
.map((s) => generateInterface(s, schemaMap))
|
|
186
259
|
.join('\n\n');
|
|
260
|
+
// Resolved shape (depth=1) — only for schemas that actually contain refs.
|
|
261
|
+
const objectResolvedInterfaces = objectSchemas
|
|
262
|
+
.filter((s) => hasReferences(s, schemaMap))
|
|
263
|
+
.map((s) => generateInterface(s, schemaMap, true))
|
|
264
|
+
.join('\n\n');
|
|
265
|
+
const documentResolvedInterfaces = documentSchemas
|
|
266
|
+
.filter((s) => hasReferences(s, schemaMap))
|
|
267
|
+
.map((s) => generateInterface(s, schemaMap, true))
|
|
268
|
+
.join('\n\n');
|
|
269
|
+
const hasResolved = !!(objectResolvedInterfaces || documentResolvedInterfaces);
|
|
187
270
|
// Generate Collections interface augmentation
|
|
188
271
|
const collectionsAugmentation = generateCollectionsAugmentation(documentSchemas);
|
|
272
|
+
const resolvedSection = hasResolved
|
|
273
|
+
? `
|
|
274
|
+
|
|
275
|
+
// ============================================================================
|
|
276
|
+
// Resolved Types (depth=1) — refs swapped for their target docs
|
|
277
|
+
// ============================================================================
|
|
278
|
+
//
|
|
279
|
+
// Use these when reading with \`depth: 1\`. The local API and HTTP routes default
|
|
280
|
+
// to depth=0 (raw IDs); pass \`{ depth: 1 }\` to get the resolved shape:
|
|
281
|
+
//
|
|
282
|
+
// const menu = (await cms.collections.menu.get(id, { depth: 1 })) as MenuResolved;
|
|
283
|
+
//
|
|
284
|
+
// At depth=1 only the outer document's refs resolve — refs inside the resolved
|
|
285
|
+
// targets stay raw, which is why \`MenuResolved.items\` is \`MenuItem[]\` (not
|
|
286
|
+
// \`MenuItemResolved[]\`).
|
|
287
|
+
|
|
288
|
+
${objectResolvedInterfaces ? objectResolvedInterfaces + '\n\n' : ''}${documentResolvedInterfaces}`
|
|
289
|
+
: '';
|
|
189
290
|
// Build the complete file
|
|
190
291
|
const output = `/**
|
|
191
292
|
* Generated types for Aphex CMS
|
|
@@ -193,6 +294,19 @@ export function generateTypes(schemas) {
|
|
|
193
294
|
*/
|
|
194
295
|
import type { CollectionAPI, SingletonCollection } from '@aphexcms/cms-core/server';
|
|
195
296
|
|
|
297
|
+
/**
|
|
298
|
+
* A reference to another document, stored as \`{ _type: 'reference', _ref }\`
|
|
299
|
+
* inside arrays. At depth=0 (default) this is the raw shape; at depth=1 the
|
|
300
|
+
* field is replaced with the target document — see the \`*Resolved\` variants.
|
|
301
|
+
*/
|
|
302
|
+
export interface Reference<T = unknown> {
|
|
303
|
+
_type: 'reference';
|
|
304
|
+
_ref: string;
|
|
305
|
+
_key?: string;
|
|
306
|
+
/** Phantom — present only in the type, used for inferring the target. */
|
|
307
|
+
__targetType?: T;
|
|
308
|
+
}
|
|
309
|
+
|
|
196
310
|
// ============================================================================
|
|
197
311
|
// Object Types (nested in documents)
|
|
198
312
|
// ============================================================================
|
|
@@ -203,7 +317,7 @@ ${objectInterfaces}
|
|
|
203
317
|
// Document Types (collections)
|
|
204
318
|
// ============================================================================
|
|
205
319
|
|
|
206
|
-
${documentInterfaces}
|
|
320
|
+
${documentInterfaces}${resolvedSection}
|
|
207
321
|
|
|
208
322
|
// ============================================================================
|
|
209
323
|
// Module Augmentation - Extends Collections interface globally
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/cli/generate-types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;GAEG;AACH,SAAS,gBAAgB,CACxB,KAAY,EACZ,SAAkC,EAClC,OAAO,GAAG,KAAK;IAEf,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACT,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,SAAS;YACb,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM;YACV,oDAAoD;YACpD,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU;YACd,6EAA6E;YAC7E,OAAO,QAAQ,CAAC;QACjB,KAAK,OAAO;YACX,wCAAwC;YACxC,OAAO,QAAQ,CAAC,CAAC,WAAW;QAC7B,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,OAAO,WAAW,CAAC;YACpB,CAAC;YACD,qEAAqE;YACrE,gEAAgE;YAChE,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE;iBACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,qDAAqD;gBACrD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9C,wDAAwD;oBACxD,0CAA0C;oBAC1C,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;gBACzD,CAAC;gBACD,4DAA4D;gBAC5D,oDAAoD;gBACpD,OAAO,gBAAgB,CAAC,IAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,WAAW,CAAC;YACpB,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7E,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3C,OAAO,yBAAyB,CAAC;YAClC,CAAC;YACD,mEAAmE;YACnE,6DAA6D;YAC7D,gCAAgC;YAChC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC;QACrC,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YAClB,yCAAyC;YACzC,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC9B,OAAO,GAAG;SACR,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAY;IACpC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAkB,EAAE,SAAkC;IAChF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnD,wDAAwD;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,KAAY,CAAC;gBAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,IAAI,YAAY,CAAC;gBAC7D,KAAK,CAAC,IAAI,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,KAAY,CAAC;gBACnC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,IAAI,YAAY,CAAC;gBACrE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC;gBAChE,KAAK,CAAC,IAAI,CACT,2EAA2E,UAAU,IAAI,UAAU,EAAE,CACrG,CAAC;YACH,CAAC;YAED,OAAO,GAAG,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAC3D,CAAC;QAED,OAAO,GAAG,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC;IAC3D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,qEAAqE;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;IAC9C,IAAI,WAAmB,CAAC;IACxB,IAAI,UAAU,EAAE,CAAC;QAChB,WAAW,GAAG;;EAEd,MAAM;;;;;;;;;;;;KAYH,CAAC;IACL,CAAC;SAAM,CAAC;QACP,2DAA2D;QAC3D,WAAW,GAAG;;EAEd,MAAM,EAAE,CAAC;IACV,CAAC;IAED,OAAO,oBAAoB,aAAa,OAAO,WAAW,KAAK,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,+BAA+B,CAAC,eAA6B;IACrE,MAAM,QAAQ,GAAG,eAAe;SAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS;YACtC,CAAC,CAAC,uBAAuB,aAAa,GAAG;YACzC,CAAC,CAAC,iBAAiB,aAAa,GAAG,CAAC;QACrC,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,cAAc,GAAG,CAAC;IACjD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;;EAEN,QAAQ;;EAER,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IAClD,gCAAgC;IAChC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAqB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,qCAAqC;IACrC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAEjE,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChG,MAAM,kBAAkB,GAAG,eAAe;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SAC3C,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,8CAA8C;IAC9C,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAEjF,0BAA0B;IAC1B,MAAM,MAAM,GAAG;;;;;;;;;;EAUd,gBAAgB;;;;;;EAMhB,kBAAkB;;;;;;EAMlB,uBAAuB;CACxB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,UAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC;QACJ,sDAAsD;QACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAEnE,kEAAkE;QAClE,IAAI,gBAAgB,GAAG,kBAAkB,CAAC;QAC1C,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEpF,MAAM,KAAK,CAAC;gBACX,WAAW,EAAE,CAAC,kBAAkB,CAAC;gBACjC,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;gBACzB,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,cAAc;wBACpB,KAAK,CAAC,KAAK;4BACV,8DAA8D;4BAC9D,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gCACxD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;4BACtD,CAAC,CAAC,CAAC;4BAEH,uCAAuC;4BACvC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE;gCAC7D,OAAO;oCACN,QAAQ,EAAE,mBAAmB;oCAC7B,MAAM,EAAE,IAAI;iCACZ,CAAC;4BACH,CAAC,CAAC,CAAC;4BAEH,yDAAyD;4BACzD,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gCACrD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gCAEtD,8EAA8E;gCAC9E,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gCAExE,OAAO;oCACN,QAAQ,EAAE,WAAW;oCACrB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;iCAC/C,CAAC;4BACH,CAAC,CAAC,CAAC;wBACJ,CAAC;qBACD;iBACD;aACD,CAAC,CAAC;YAEH,gBAAgB,GAAG,WAAW,CAAC;YAC/B,QAAQ,GAAG,WAAW,CAAC;QACxB,CAAC;QAED,kCAAkC;QAClC,wCAAwC;QACxC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC;QAEjE,gCAAgC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACR,wBAAwB;YACzB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9C,uBAAuB;QACvB,MAAM,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,sCAAsC,kBAAkB,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/cli/generate-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -279,8 +279,11 @@
|
|
|
279
279
|
|
|
280
280
|
let layoutConfig = $derived.by(() => {
|
|
281
281
|
const start = performance.now();
|
|
282
|
+
// Only ever 1 stacked panel rendered (the last entry), so count it as 0 or 1
|
|
282
283
|
const totalEditors =
|
|
283
|
-
(currentView === 'editor' ? 1 : 0) +
|
|
284
|
+
(currentView === 'editor' ? 1 : 0) +
|
|
285
|
+
(editorStack.length > 0 ? 1 : 0) +
|
|
286
|
+
(showVersionPanel ? 1 : 0);
|
|
284
287
|
|
|
285
288
|
if (totalEditors === 0) {
|
|
286
289
|
return {
|
|
@@ -367,19 +370,20 @@
|
|
|
367
370
|
let remainingWidth = windowWidth - typesWidth - docsWidth;
|
|
368
371
|
let maxExpandedEditors = Math.floor(remainingWidth / MIN_EDITOR_WIDTH);
|
|
369
372
|
|
|
370
|
-
// If we can't fit all editors, start collapsing panels
|
|
373
|
+
// If we can't fit all editors, start collapsing panels.
|
|
374
|
+
// Types sidebar collapses first — the docs list is more useful when
|
|
375
|
+
// actively editing (shows siblings in the same collection).
|
|
371
376
|
if (maxExpandedEditors < totalEditors) {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
docsExpanded = false;
|
|
377
|
+
typesWidth = COLLAPSED_WIDTH;
|
|
378
|
+
typesExpanded = false;
|
|
375
379
|
remainingWidth = windowWidth - typesWidth - docsWidth;
|
|
376
380
|
maxExpandedEditors = Math.floor(remainingWidth / MIN_EDITOR_WIDTH);
|
|
377
381
|
}
|
|
378
382
|
|
|
379
|
-
// If still not enough space, collapse
|
|
383
|
+
// If still not enough space, collapse docs list too
|
|
380
384
|
if (maxExpandedEditors < totalEditors) {
|
|
381
|
-
|
|
382
|
-
|
|
385
|
+
docsWidth = selectedDocumentType ? COLLAPSED_WIDTH : 0;
|
|
386
|
+
docsExpanded = false;
|
|
383
387
|
remainingWidth = windowWidth - typesWidth - docsWidth;
|
|
384
388
|
maxExpandedEditors = Math.floor(remainingWidth / MIN_EDITOR_WIDTH);
|
|
385
389
|
}
|
|
@@ -488,6 +492,12 @@
|
|
|
488
492
|
|
|
489
493
|
if (currentView !== 'editor') return { visible: false, expanded: false };
|
|
490
494
|
|
|
495
|
+
// In focus mode, only the active editor shows — if active is a stacked
|
|
496
|
+
// editor, the primary hides.
|
|
497
|
+
if (focusModeOn && activeEditorIndex !== 0) {
|
|
498
|
+
return { visible: true, expanded: false };
|
|
499
|
+
}
|
|
500
|
+
|
|
491
501
|
const primaryIndex = 0;
|
|
492
502
|
const isExpanded = layoutConfig.expandedIndices.includes(primaryIndex);
|
|
493
503
|
|
|
@@ -717,7 +727,7 @@
|
|
|
717
727
|
if (fromDocId && fromDocType) {
|
|
718
728
|
// Navigate back to the document we came from
|
|
719
729
|
await navigateToEditDocument(fromDocId, fromDocType, false);
|
|
720
|
-
} else if (selectedDocumentType) {
|
|
730
|
+
} else if (selectedDocumentType && !currentTypeIsSingleton) {
|
|
721
731
|
// Navigate back to document list
|
|
722
732
|
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
723
733
|
params.set('docType', selectedDocumentType);
|
|
@@ -785,38 +795,40 @@
|
|
|
785
795
|
return;
|
|
786
796
|
}
|
|
787
797
|
|
|
788
|
-
// On desktop
|
|
798
|
+
// On desktop — push onto the reference history stack. The UI only ever
|
|
799
|
+
// shows one stacked panel (the last entry). The back button pops the
|
|
800
|
+
// stack instead of closing, so you can walk back through the chain.
|
|
789
801
|
if (editingDocumentId === documentId) {
|
|
790
|
-
// Already open as the primary editor — just focus it
|
|
791
802
|
activeEditorIndex = 0;
|
|
792
803
|
return;
|
|
793
804
|
}
|
|
794
|
-
const existingIndex = editorStack.findIndex((item) => item.documentId === documentId);
|
|
795
|
-
if (existingIndex !== -1) {
|
|
796
|
-
// Already open in the stack — focus that editor (stack index 0 = activeEditorIndex 1)
|
|
797
|
-
activeEditorIndex = existingIndex + 1;
|
|
798
|
-
return;
|
|
799
|
-
}
|
|
800
805
|
|
|
801
|
-
const
|
|
806
|
+
const newEntry = { documentId, documentType, isCreating: false };
|
|
802
807
|
|
|
803
|
-
//
|
|
804
|
-
|
|
808
|
+
// If clicking a ref from the primary editor (activeEditorIndex === 0)
|
|
809
|
+
// and a stack already exists, the user is picking a different ref from
|
|
810
|
+
// the same array — replace the whole stack with the new pick.
|
|
811
|
+
// If clicking from within the stacked panel, push deeper.
|
|
812
|
+
const newStack =
|
|
813
|
+
activeEditorIndex === 0 && editorStack.length > 0
|
|
814
|
+
? [newEntry]
|
|
815
|
+
: [...editorStack, newEntry];
|
|
805
816
|
|
|
806
|
-
//
|
|
817
|
+
// URL tracks the full chain for refresh support
|
|
818
|
+
const stackParam = newStack.map((item) => `${item.documentType}:${item.documentId}`).join(',');
|
|
807
819
|
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
808
820
|
params.set('stack', stackParam);
|
|
809
821
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
810
822
|
|
|
811
|
-
//
|
|
812
|
-
activeEditorIndex =
|
|
823
|
+
// The stacked panel is always index 1 (only one panel rendered)
|
|
824
|
+
activeEditorIndex = 1;
|
|
813
825
|
}
|
|
814
826
|
|
|
815
|
-
//
|
|
816
|
-
|
|
817
|
-
|
|
827
|
+
// Back button on the stacked panel — pop one level. If the stack
|
|
828
|
+
// becomes empty, the panel closes entirely.
|
|
829
|
+
async function handleStackedEditorBack() {
|
|
830
|
+
const newStack = editorStack.slice(0, -1);
|
|
818
831
|
|
|
819
|
-
// Update URL
|
|
820
832
|
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
821
833
|
if (newStack.length > 0) {
|
|
822
834
|
const stackParam = newStack
|
|
@@ -828,8 +840,15 @@
|
|
|
828
840
|
}
|
|
829
841
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
830
842
|
|
|
831
|
-
|
|
832
|
-
|
|
843
|
+
activeEditorIndex = newStack.length > 0 ? 1 : 0;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
// Hard close — removes the stacked panel entirely (used by delete action)
|
|
847
|
+
async function handleCloseStackedEditor(_index: number) {
|
|
848
|
+
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
849
|
+
params.delete('stack');
|
|
850
|
+
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
851
|
+
activeEditorIndex = 0;
|
|
833
852
|
}
|
|
834
853
|
|
|
835
854
|
// Set active editor when clicking on a strip
|
|
@@ -1592,7 +1611,7 @@
|
|
|
1592
1611
|
{isReadOnly}
|
|
1593
1612
|
/>
|
|
1594
1613
|
</div>
|
|
1595
|
-
{#if !primaryEditorState.expanded}
|
|
1614
|
+
{#if !primaryEditorState.expanded && !focusModeOn}
|
|
1596
1615
|
<!-- Collapsed Primary Editor Strip -->
|
|
1597
1616
|
<button
|
|
1598
1617
|
onclick={() => setActiveEditor(0)}
|
|
@@ -1613,25 +1632,33 @@
|
|
|
1613
1632
|
{/if}
|
|
1614
1633
|
{/if}
|
|
1615
1634
|
|
|
1616
|
-
<!-- Stacked Reference
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1635
|
+
<!-- Stacked Reference Panel — only the last entry in the stack
|
|
1636
|
+
is rendered. Back button pops the stack (walks back through
|
|
1637
|
+
the ref chain); closing entirely on the last pop. -->
|
|
1638
|
+
{#if editorStack.length > 0}
|
|
1639
|
+
{@const currentRef = editorStack[editorStack.length - 1]!}
|
|
1640
|
+
{@const isExpanded = focusModeOn
|
|
1641
|
+
? activeEditorIndex === 1
|
|
1642
|
+
: layoutConfig.expandedIndices.includes(1)}
|
|
1620
1643
|
|
|
1621
1644
|
{#if isExpanded}
|
|
1622
1645
|
<div
|
|
1623
1646
|
class="border-rule h-full flex-1 overflow-x-hidden overflow-y-auto border-l transition-all duration-200"
|
|
1624
|
-
style="min-width: 0;"
|
|
1647
|
+
style="min-width: 0;{focusModeOn ? '' : ' max-width: 50%;'}"
|
|
1625
1648
|
>
|
|
1626
1649
|
<DocumentEditor
|
|
1627
1650
|
{schemas}
|
|
1628
|
-
documentType={
|
|
1629
|
-
documentId={
|
|
1630
|
-
isCreating={
|
|
1631
|
-
onBack={
|
|
1651
|
+
documentType={currentRef.documentType}
|
|
1652
|
+
documentId={currentRef.documentId}
|
|
1653
|
+
isCreating={currentRef.isCreating}
|
|
1654
|
+
onBack={handleStackedEditorBack}
|
|
1632
1655
|
onOpenReference={handleOpenReference}
|
|
1633
1656
|
onOpenVersionHistory={handleOpenVersionHistory}
|
|
1634
|
-
|
|
1657
|
+
onToggleFocus={() => {
|
|
1658
|
+
activeEditorIndex = 1;
|
|
1659
|
+
toggleFocusMode();
|
|
1660
|
+
}}
|
|
1661
|
+
externalVersionPreview={versionPanelDocId === currentRef.documentId
|
|
1635
1662
|
? versionPreviewData
|
|
1636
1663
|
: null}
|
|
1637
1664
|
onSaved={async () => {}}
|
|
@@ -1655,29 +1682,29 @@
|
|
|
1655
1682
|
}
|
|
1656
1683
|
}}
|
|
1657
1684
|
onDeleted={async () => {
|
|
1658
|
-
handleCloseStackedEditor(
|
|
1685
|
+
handleCloseStackedEditor(0);
|
|
1659
1686
|
}}
|
|
1660
1687
|
{isReadOnly}
|
|
1661
1688
|
/>
|
|
1662
1689
|
</div>
|
|
1663
|
-
{:else}
|
|
1690
|
+
{:else if !focusModeOn}
|
|
1664
1691
|
<!-- Collapsed Stacked Editor Strip -->
|
|
1665
1692
|
<button
|
|
1666
|
-
onclick={() => setActiveEditor(
|
|
1693
|
+
onclick={() => setActiveEditor(1)}
|
|
1667
1694
|
class="border-rule hover:bg-muted/50 flex h-full w-[60px] cursor-pointer flex-col border-l transition-colors"
|
|
1668
|
-
title="Click to expand {
|
|
1695
|
+
title="Click to expand {currentRef.documentType}"
|
|
1669
1696
|
>
|
|
1670
1697
|
<div class="flex h-full flex-1 items-start justify-center p-2 pt-8 text-left">
|
|
1671
1698
|
<div
|
|
1672
1699
|
class="text-foreground text-sm font-medium whitespace-nowrap [writing-mode:vertical-rl]"
|
|
1673
1700
|
>
|
|
1674
|
-
{
|
|
1675
|
-
|
|
1701
|
+
{currentRef.documentType.charAt(0).toUpperCase() +
|
|
1702
|
+
currentRef.documentType.slice(1)}
|
|
1676
1703
|
</div>
|
|
1677
1704
|
</div>
|
|
1678
1705
|
</button>
|
|
1679
1706
|
{/if}
|
|
1680
|
-
{/
|
|
1707
|
+
{/if}
|
|
1681
1708
|
{/if}
|
|
1682
1709
|
|
|
1683
1710
|
<!-- Version History Panel -->
|