@aphexcms/cms-core 9.2.0 → 9.2.2
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/cli/generate-types.d.ts.map +1 -1
- package/dist/cli/generate-types.js +21 -3
- package/dist/cli/generate-types.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -0
- package/dist/components/AdminApp.svelte +27 -11
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/AdminLayout.svelte.d.ts +3 -3
- package/dist/components/admin/DocumentEditor.svelte +548 -21
- package/dist/components/admin/DocumentEditor.svelte.d.ts +6 -0
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/SchemaField.svelte +1 -1
- package/dist/components/admin/fields/ArrayField.svelte +2 -2
- package/dist/components/admin/fields/ImageField.svelte +85 -27
- package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/NumberField.svelte +61 -16
- package/dist/components/admin/fields/NumberField.svelte.d.ts +2 -2
- package/dist/components/admin/fields/NumberField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/StringField.svelte +26 -2
- package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/richtext/ImageBlockModal.svelte +133 -0
- package/dist/components/admin/fields/richtext/ImageBlockModal.svelte.d.ts +14 -0
- package/dist/components/admin/fields/richtext/ImageBlockModal.svelte.d.ts.map +1 -0
- package/dist/components/admin/fields/richtext/PortableTextImageView.svelte +2 -2
- package/dist/components/admin/fields/richtext/RichtextField.svelte +164 -13
- package/dist/components/admin/fields/richtext/RichtextField.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/richtext/portable-text-serializer.d.ts.map +1 -1
- package/dist/components/admin/fields/richtext/portable-text-serializer.js +6 -4
- package/dist/components/admin/fields/richtext/svelte-node-view.d.ts.map +1 -1
- package/dist/components/admin/fields/richtext/svelte-node-view.js +11 -0
- package/dist/lib/client/index.d.ts +1 -0
- package/dist/lib/client/index.d.ts.map +1 -1
- package/dist/lib/client/index.js +4 -0
- package/dist/lib/client/index.js.map +1 -1
- package/dist/lib/components/admin/fields/richtext/portable-text-serializer.d.ts.map +1 -1
- package/dist/lib/components/admin/fields/richtext/portable-text-serializer.js +6 -4
- package/dist/lib/components/admin/fields/richtext/portable-text-serializer.js.map +1 -1
- package/dist/lib/components/admin/fields/richtext/svelte-node-view.d.ts.map +1 -1
- package/dist/lib/components/admin/fields/richtext/svelte-node-view.js +11 -0
- package/dist/lib/components/admin/fields/richtext/svelte-node-view.js.map +1 -1
- package/dist/lib/preview/assets.d.ts +19 -0
- package/dist/lib/preview/assets.d.ts.map +1 -0
- package/dist/lib/preview/assets.js +60 -0
- package/dist/lib/preview/assets.js.map +1 -0
- package/dist/lib/preview/perspective.d.ts +20 -0
- package/dist/lib/preview/perspective.d.ts.map +1 -0
- package/dist/lib/preview/perspective.js +21 -0
- package/dist/lib/preview/perspective.js.map +1 -0
- package/dist/lib/preview/stega.d.ts +25 -0
- package/dist/lib/preview/stega.d.ts.map +1 -0
- package/dist/lib/preview/stega.js +168 -0
- package/dist/lib/preview/stega.js.map +1 -0
- package/dist/lib/richtext-context.svelte.d.ts +18 -0
- package/dist/lib/richtext-context.svelte.d.ts.map +1 -0
- package/dist/lib/richtext-context.svelte.js +13 -0
- package/dist/lib/richtext-context.svelte.js.map +1 -0
- package/dist/lib/server/index.d.ts +1 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +2 -0
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/services/asset-service.d.ts +12 -0
- package/dist/lib/services/asset-service.d.ts.map +1 -1
- package/dist/lib/services/asset-service.js +32 -0
- package/dist/lib/services/asset-service.js.map +1 -1
- package/dist/lib/types/asset.d.ts +15 -0
- package/dist/lib/types/asset.d.ts.map +1 -1
- package/dist/lib/types/config.d.ts +7 -0
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/types/schemas.d.ts +30 -1
- package/dist/lib/types/schemas.d.ts.map +1 -1
- package/dist/lib/types/schemas.js.map +1 -1
- package/dist/lib/utils/preview.d.ts +4 -0
- package/dist/lib/utils/preview.d.ts.map +1 -1
- package/dist/lib/utils/preview.js +7 -0
- package/dist/lib/utils/preview.js.map +1 -1
- package/dist/lib/vite/index.d.ts +12 -1
- package/dist/lib/vite/index.d.ts.map +1 -1
- package/dist/lib/vite/index.js +89 -1
- package/dist/lib/vite/index.js.map +1 -1
- package/dist/preview/assets.d.ts +19 -0
- package/dist/preview/assets.d.ts.map +1 -0
- package/dist/preview/assets.js +59 -0
- package/dist/preview/perspective.d.ts +20 -0
- package/dist/preview/perspective.d.ts.map +1 -0
- package/dist/preview/perspective.js +20 -0
- package/dist/preview/stega.d.ts +25 -0
- package/dist/preview/stega.d.ts.map +1 -0
- package/dist/preview/stega.js +167 -0
- package/dist/richtext-context.svelte.d.ts +18 -0
- package/dist/richtext-context.svelte.d.ts.map +1 -0
- package/dist/richtext-context.svelte.js +12 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/services/asset-service.d.ts +12 -0
- package/dist/services/asset-service.d.ts.map +1 -1
- package/dist/services/asset-service.js +32 -0
- package/dist/types/asset.d.ts +15 -0
- package/dist/types/asset.d.ts.map +1 -1
- package/dist/types/config.d.ts +7 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/schemas.d.ts +30 -1
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/utils/preview.d.ts +4 -0
- package/dist/utils/preview.d.ts.map +1 -1
- package/dist/utils/preview.js +7 -0
- package/dist/vite/index.d.ts +12 -1
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +89 -1
- package/package.json +3 -2
|
@@ -40,6 +40,18 @@ export declare class AssetService {
|
|
|
40
40
|
* Find asset by ID
|
|
41
41
|
*/
|
|
42
42
|
findAssetById(organizationId: string, id: string): Promise<Asset | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Hydrate one or more documents in place so their images are renderable: every
|
|
45
|
+
* `{ asset: { _ref } }` reachable in the docs gets its `url` (and default `alt`)
|
|
46
|
+
* injected. This is what a public route's `load` calls before returning a document —
|
|
47
|
+
* the frontend then reads `image.asset.url` directly, with no side-channel map. The
|
|
48
|
+
* live editor preview performs the identical injection client-side, so SSR and preview
|
|
49
|
+
* documents share one shape.
|
|
50
|
+
*
|
|
51
|
+
* Mutates the passed documents (they're request-scoped query results). Refs are
|
|
52
|
+
* resolved once and de-duped across all docs in a single batch.
|
|
53
|
+
*/
|
|
54
|
+
injectAssetUrls(organizationId: string, ...docs: unknown[]): Promise<void>;
|
|
43
55
|
/**
|
|
44
56
|
* Find asset by ID globally (bypasses organization filter for public asset access)
|
|
45
57
|
* Only available on PostgreSQL adapter with RLS bypass
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-service.d.ts","sourceRoot":"","sources":["../../src/lib/services/asset-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-service.d.ts","sourceRoot":"","sources":["../../src/lib/services/asset-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACnB,CAAC;CACF;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAY;IAEvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;gBADR,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe;IAGlC;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAsFhF;;OAEG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAI9E;;;;;;;;;;OAUG;IACG,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhF;;;OAGG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAmB5D;;OAEG;IACG,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItF;;;;;OAKG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BvE;;OAEG;IACG,mBAAmB,CACxB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GACC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAIxB;;OAEG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QACpD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IAeF;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;KAClB,CAAC;CAWF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Asset service - orchestrates storage and database operations
|
|
2
2
|
import sharp from 'sharp';
|
|
3
3
|
import { cmsLogger } from '../utils/logger.js';
|
|
4
|
+
import { collectAssetRefs, injectAssetData } from '../preview/assets.js';
|
|
4
5
|
/**
|
|
5
6
|
* Asset service - coordinates storage and database operations
|
|
6
7
|
* Maintains separation of concerns while providing unified asset management
|
|
@@ -99,6 +100,37 @@ export class AssetService {
|
|
|
99
100
|
async findAssetById(organizationId, id) {
|
|
100
101
|
return await this.database.findAssetById(organizationId, id);
|
|
101
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Hydrate one or more documents in place so their images are renderable: every
|
|
105
|
+
* `{ asset: { _ref } }` reachable in the docs gets its `url` (and default `alt`)
|
|
106
|
+
* injected. This is what a public route's `load` calls before returning a document —
|
|
107
|
+
* the frontend then reads `image.asset.url` directly, with no side-channel map. The
|
|
108
|
+
* live editor preview performs the identical injection client-side, so SSR and preview
|
|
109
|
+
* documents share one shape.
|
|
110
|
+
*
|
|
111
|
+
* Mutates the passed documents (they're request-scoped query results). Refs are
|
|
112
|
+
* resolved once and de-duped across all docs in a single batch.
|
|
113
|
+
*/
|
|
114
|
+
async injectAssetUrls(organizationId, ...docs) {
|
|
115
|
+
const refs = new Set();
|
|
116
|
+
for (const doc of docs)
|
|
117
|
+
collectAssetRefs(doc, refs);
|
|
118
|
+
if (refs.size === 0)
|
|
119
|
+
return;
|
|
120
|
+
const resolved = new Map();
|
|
121
|
+
await Promise.all([...refs].map(async (ref) => {
|
|
122
|
+
try {
|
|
123
|
+
const asset = await this.findAssetById(organizationId, ref);
|
|
124
|
+
if (asset?.url)
|
|
125
|
+
resolved.set(ref, { url: asset.url, alt: asset.alt ?? undefined });
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Missing/erroring asset — leave it unresolved; the image simply won't render.
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
for (const doc of docs)
|
|
132
|
+
injectAssetData(doc, resolved);
|
|
133
|
+
}
|
|
102
134
|
/**
|
|
103
135
|
* Find asset by ID globally (bypasses organization filter for public asset access)
|
|
104
136
|
* Only available on PostgreSQL adapter with RLS bypass
|
package/dist/types/asset.d.ts
CHANGED
|
@@ -50,6 +50,15 @@ export interface NewAsset {
|
|
|
50
50
|
export interface ImageAsset {
|
|
51
51
|
_type: 'reference';
|
|
52
52
|
_ref: string;
|
|
53
|
+
/**
|
|
54
|
+
* Resolved public URL. NOT part of stored data — it's injected at render time
|
|
55
|
+
* (by `AssetService.injectAssetUrls` server-side, and by the editor's live preview
|
|
56
|
+
* client-side) so the frontend can read `image.asset.url` directly. Absent until then.
|
|
57
|
+
*/
|
|
58
|
+
url?: string;
|
|
59
|
+
/** The asset's default alt text, injected alongside `url`. Per-placement overrides live
|
|
60
|
+
* on `ImageValue.alt`; render precedence is `value.alt || asset.alt`. */
|
|
61
|
+
alt?: string;
|
|
53
62
|
}
|
|
54
63
|
export interface ImageCrop {
|
|
55
64
|
top: number;
|
|
@@ -68,6 +77,12 @@ export interface ImageValue {
|
|
|
68
77
|
asset: ImageAsset;
|
|
69
78
|
crop?: ImageCrop;
|
|
70
79
|
hotspot?: ImageHotspot;
|
|
80
|
+
/**
|
|
81
|
+
* Per-placement alt text — the single source of truth for this image's
|
|
82
|
+
* description. Edited on the image field (not the asset), and the string that
|
|
83
|
+
* carries visual-editing stega so the rendered <img alt> becomes click-to-edit.
|
|
84
|
+
*/
|
|
85
|
+
alt?: string;
|
|
71
86
|
[key: string]: any;
|
|
72
87
|
}
|
|
73
88
|
export interface FileAsset {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/lib/types/asset.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,KAAK;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAGD,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/lib/types/asset.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -67,6 +67,13 @@ export interface CMSConfig {
|
|
|
67
67
|
versioning?: {
|
|
68
68
|
maxVersions?: number;
|
|
69
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Live preview configuration.
|
|
72
|
+
* - `stega`: Enable stega encoding in preview data pushes so field overlays work automatically. Default: true.
|
|
73
|
+
*/
|
|
74
|
+
preview?: {
|
|
75
|
+
stega?: boolean;
|
|
76
|
+
};
|
|
70
77
|
security?: {
|
|
71
78
|
/**
|
|
72
79
|
* Secret key for signing asset URLs (enables multi-tenant access without exposing API keys)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/types/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,SAAS;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE;YACV,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,KAAK,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC/B,CAAC;KACF,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACV;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACpC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/types/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,SAAS;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE;YACV,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,KAAK,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC/B,CAAC;KACF,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE;QACV;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACpC"}
|
package/dist/types/schemas.d.ts
CHANGED
|
@@ -75,6 +75,7 @@ export interface DependentList {
|
|
|
75
75
|
options: Record<string, Array<string | {
|
|
76
76
|
title: string;
|
|
77
77
|
value: string;
|
|
78
|
+
icon?: typeof LucideIcon;
|
|
78
79
|
}>>;
|
|
79
80
|
}
|
|
80
81
|
export interface StringField extends BaseField {
|
|
@@ -85,9 +86,11 @@ export interface StringField extends BaseField {
|
|
|
85
86
|
list?: Array<string | {
|
|
86
87
|
title: string;
|
|
87
88
|
value: string;
|
|
89
|
+
icon?: typeof LucideIcon;
|
|
88
90
|
}> | DependentList;
|
|
89
91
|
options?: {
|
|
90
|
-
|
|
92
|
+
/** `'tabs'` renders a segmented control (great for alignment-style pickers with `icon`s). */
|
|
93
|
+
layout?: 'dropdown' | 'radio' | 'tabs';
|
|
91
94
|
direction?: 'horizontal' | 'vertical';
|
|
92
95
|
};
|
|
93
96
|
}
|
|
@@ -102,7 +105,16 @@ export interface NumberField extends BaseField {
|
|
|
102
105
|
type: 'number';
|
|
103
106
|
min?: number;
|
|
104
107
|
max?: number;
|
|
108
|
+
/** Increment for the slider / number input. Defaults to 1 for sliders. */
|
|
109
|
+
step?: number;
|
|
105
110
|
initialValue?: number | (() => number | Promise<number>);
|
|
111
|
+
options?: {
|
|
112
|
+
/** `'slider'` renders a drag slider instead of a number input. Uses `min`/`max`
|
|
113
|
+
* (default 0–100) and `step` (default 1). Defaults to `'input'`. */
|
|
114
|
+
layout?: 'input' | 'slider';
|
|
115
|
+
/** Unit suffix shown in the value label, e.g. `'px'`, `'%'`, `'rem'`. */
|
|
116
|
+
unit?: string;
|
|
117
|
+
};
|
|
106
118
|
}
|
|
107
119
|
export interface BooleanField extends BaseField {
|
|
108
120
|
type: 'boolean';
|
|
@@ -254,6 +266,19 @@ export interface DocumentType {
|
|
|
254
266
|
* and the admin UI hides Create/Delete affordances. Ignored on object types.
|
|
255
267
|
*/
|
|
256
268
|
singleton?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* URL (or resolver) for the live preview iframe in presentation mode.
|
|
271
|
+
* A string is used as-is (good for singletons like '/about').
|
|
272
|
+
* A function receives the current draft data and should return a URL
|
|
273
|
+
* string, or null/undefined when the document isn't previewable yet
|
|
274
|
+
* (e.g. no slug). The presentation mode button only appears when this
|
|
275
|
+
* field is defined and the resolved value is non-null.
|
|
276
|
+
*
|
|
277
|
+
* Relative paths (e.g. '/blog/my-post?aphex-preview=1') resolve against the
|
|
278
|
+
* studio's own origin — the common case where the public site is served by
|
|
279
|
+
* the same app. Return an absolute URL to preview a separate public origin.
|
|
280
|
+
*/
|
|
281
|
+
previewUrl?: string | ((doc: Record<string, unknown>, orgId: string | null) => string | null | undefined);
|
|
257
282
|
createdAt?: Date | null;
|
|
258
283
|
updatedAt?: Date | null;
|
|
259
284
|
}
|
|
@@ -284,6 +309,8 @@ export interface SchemaType {
|
|
|
284
309
|
access?: SchemaAccess;
|
|
285
310
|
/** Document-only: single global instance with id === name. */
|
|
286
311
|
singleton?: boolean;
|
|
312
|
+
/** See DocumentType.previewUrl for full docs. */
|
|
313
|
+
previewUrl?: string | ((doc: Record<string, unknown>, orgId: string | null) => string | null | undefined);
|
|
287
314
|
createdAt?: Date | null;
|
|
288
315
|
updatedAt?: Date | null;
|
|
289
316
|
}
|
|
@@ -300,6 +327,8 @@ export interface NewSchemaType {
|
|
|
300
327
|
preview?: PreviewConfig;
|
|
301
328
|
orderings?: Ordering[];
|
|
302
329
|
access?: SchemaAccess;
|
|
330
|
+
/** See DocumentType.previewUrl for full docs. */
|
|
331
|
+
previewUrl?: string | ((doc: Record<string, unknown>, orgId: string | null) => string | null | undefined);
|
|
303
332
|
createdAt?: Date | null;
|
|
304
333
|
updatedAt?: Date | null;
|
|
305
334
|
}
|
|
@@ -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,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;GAOG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,OAAO,QAAQ,EAAE,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,YAAY,EAAE,QAAQ,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GACnB,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GACvC,CAAC,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,SAAS,CAAC,EAAE,UAAU,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;CACjD;AAGD,MAAM,MAAM,SAAS,GAClB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,GACX,MAAM,GACN,UAAU,CAAC;AAEd,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,UAAU,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/types/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/preview.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ import type { SchemaType } from '../types/schemas.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Walk a dot-path (e.g. `seo.title`) through an object. Returns the
|
|
4
4
|
* terminal value, or `undefined` if any segment along the way is missing.
|
|
5
|
+
*
|
|
6
|
+
* Quoted strings (single or double) are treated as literals and returned
|
|
7
|
+
* as-is, e.g. `'"My Title"'` → `'My Title'`. Useful for singletons or
|
|
8
|
+
* any schema that needs a static preview title.
|
|
5
9
|
*/
|
|
6
10
|
export declare function readPath(item: any, path: string): unknown;
|
|
7
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/lib/utils/preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/lib/utils/preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAUzD;AA2CD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACrC,gBAAgB,CAAC,EAAE,MAAM,GACvB,MAAM,CAkBR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAMf"}
|
package/dist/utils/preview.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Walk a dot-path (e.g. `seo.title`) through an object. Returns the
|
|
3
3
|
* terminal value, or `undefined` if any segment along the way is missing.
|
|
4
|
+
*
|
|
5
|
+
* Quoted strings (single or double) are treated as literals and returned
|
|
6
|
+
* as-is, e.g. `'"My Title"'` → `'My Title'`. Useful for singletons or
|
|
7
|
+
* any schema that needs a static preview title.
|
|
4
8
|
*/
|
|
5
9
|
export function readPath(item, path) {
|
|
10
|
+
const match = path.match(/^(['"])(.+)\1$/);
|
|
11
|
+
if (match)
|
|
12
|
+
return match[2];
|
|
6
13
|
let current = item;
|
|
7
14
|
for (const segment of path.split('.')) {
|
|
8
15
|
if (current == null)
|
package/dist/vite/index.d.ts
CHANGED
|
@@ -27,9 +27,19 @@ export interface AphexHMROptions {
|
|
|
27
27
|
*/
|
|
28
28
|
mode?: 'swap' | 'restart';
|
|
29
29
|
}
|
|
30
|
+
export interface AphexTypegenOptions {
|
|
31
|
+
/** Schema entry passed to `aphex generate:types`. Default `src/lib/schemaTypes/index.ts`. */
|
|
32
|
+
schema?: string;
|
|
33
|
+
/** Output file for the generated types. Default `src/lib/generated-types.ts`. */
|
|
34
|
+
output?: string;
|
|
35
|
+
/** Regenerate once when the dev server starts (catches edits made while it was down). Default `true`. */
|
|
36
|
+
runOnStart?: boolean;
|
|
37
|
+
}
|
|
30
38
|
export interface AphexOptions {
|
|
31
39
|
/** HMR plugin options. Pass `false` to disable schema HMR. */
|
|
32
40
|
hmr?: AphexHMROptions | false;
|
|
41
|
+
/** Auto type-generation options. Pass `false` to disable regenerating types on schema change. */
|
|
42
|
+
typegen?: AphexTypegenOptions | false;
|
|
33
43
|
/** Disable the dayjs ESM alias redirect. */
|
|
34
44
|
dayjs?: boolean;
|
|
35
45
|
/** Disable the SSR noExternal/external defaults for cms-core/ui packages. */
|
|
@@ -62,7 +72,8 @@ export declare function aphexHMR(options?: AphexHMROptions): Plugin;
|
|
|
62
72
|
/**
|
|
63
73
|
* One-stop Vite plugin for AphexCMS apps. Bundles:
|
|
64
74
|
*
|
|
65
|
-
* - schema HMR (
|
|
75
|
+
* - schema HMR (hot-swap the engine config on change)
|
|
76
|
+
* - auto type-generation (regenerate generated-types.ts when a schema file changes)
|
|
66
77
|
* - dayjs ESM alias redirect
|
|
67
78
|
* - SSR noExternal/external defaults for cms-core/ui packages
|
|
68
79
|
* - optimizeDeps tuning so first-render isn't slowed by lazy dep discovery
|
package/dist/vite/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/vite/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/vite/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,GAAG,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC9B,iGAAiG;IACjG,OAAO,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACtC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAiF9D;AAuOD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM,EAAE,CAuB1D"}
|
package/dist/vite/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
2
5
|
const require = createRequire(import.meta.url);
|
|
3
6
|
/**
|
|
4
7
|
* Watches the CMS config and schema files in dev. When any of them change,
|
|
@@ -228,10 +231,92 @@ function aphexWatchUnfilter() {
|
|
|
228
231
|
}
|
|
229
232
|
};
|
|
230
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Regenerates `generated-types.ts` whenever a schema file changes in dev — so the typed
|
|
236
|
+
* `localAPI.collections.*`, generated document interfaces, etc. stay in sync without a manual
|
|
237
|
+
* `aphex generate:types`. Dev-only (`apply: 'serve'`); production builds expect types to already
|
|
238
|
+
* be committed.
|
|
239
|
+
*
|
|
240
|
+
* Runs the project's local `aphex generate:types` bin in a child process (the same command the
|
|
241
|
+
* `generate:types` package script runs), debounced and coalesced so rapid saves collapse into one
|
|
242
|
+
* run and overlapping runs don't pile up.
|
|
243
|
+
*/
|
|
244
|
+
function aphexTypegen(options = {}) {
|
|
245
|
+
const schema = options.schema ?? 'src/lib/schemaTypes/index.ts';
|
|
246
|
+
const output = options.output ?? 'src/lib/generated-types.ts';
|
|
247
|
+
const runOnStart = options.runOnStart ?? true;
|
|
248
|
+
const schemaDir = '/schemaTypes/';
|
|
249
|
+
return {
|
|
250
|
+
name: 'aphex:typegen',
|
|
251
|
+
apply: 'serve',
|
|
252
|
+
configureServer(server) {
|
|
253
|
+
const root = server.config.root;
|
|
254
|
+
let pending = null;
|
|
255
|
+
let running = false;
|
|
256
|
+
let rerun = false;
|
|
257
|
+
function regenerate(reason) {
|
|
258
|
+
if (running) {
|
|
259
|
+
rerun = true; // a change landed mid-run — schedule one more pass after it finishes
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
running = true;
|
|
263
|
+
const binName = process.platform === 'win32' ? 'aphex.cmd' : 'aphex';
|
|
264
|
+
const localBin = join(root, 'node_modules', '.bin', binName);
|
|
265
|
+
const useLocal = existsSync(localBin);
|
|
266
|
+
const cmd = useLocal ? localBin : process.platform === 'win32' ? 'npx.cmd' : 'npx';
|
|
267
|
+
const args = useLocal
|
|
268
|
+
? ['generate:types', schema, output]
|
|
269
|
+
: ['--no-install', 'aphex', 'generate:types', schema, output];
|
|
270
|
+
const child = spawn(cmd, args, { cwd: root, stdio: 'pipe' });
|
|
271
|
+
let stderr = '';
|
|
272
|
+
child.stderr?.on('data', (d) => (stderr += d));
|
|
273
|
+
child.on('error', (err) => {
|
|
274
|
+
running = false;
|
|
275
|
+
console.error('[aphex:typegen] failed to run generate:types:', err.message);
|
|
276
|
+
});
|
|
277
|
+
child.on('close', (code) => {
|
|
278
|
+
running = false;
|
|
279
|
+
if (code === 0) {
|
|
280
|
+
console.log(`🧬 [aphex] regenerated ${output} (${reason})`);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
console.error(`[aphex:typegen] generate:types exited with code ${code}\n${stderr}`);
|
|
284
|
+
}
|
|
285
|
+
if (rerun) {
|
|
286
|
+
rerun = false;
|
|
287
|
+
regenerate('coalesced change');
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
function schedule(reason) {
|
|
292
|
+
if (pending)
|
|
293
|
+
clearTimeout(pending);
|
|
294
|
+
pending = setTimeout(() => {
|
|
295
|
+
pending = null;
|
|
296
|
+
regenerate(reason);
|
|
297
|
+
}, 250);
|
|
298
|
+
}
|
|
299
|
+
if (runOnStart)
|
|
300
|
+
schedule('startup');
|
|
301
|
+
for (const event of ['change', 'add', 'unlink']) {
|
|
302
|
+
server.watcher.on(event, (file) => {
|
|
303
|
+
const normalized = file.replace(/\\/g, '/');
|
|
304
|
+
// Only react to schema files — never to the generated output (which would loop).
|
|
305
|
+
if (normalized.includes(schemaDir) &&
|
|
306
|
+
normalized.endsWith('.ts') &&
|
|
307
|
+
!normalized.endsWith('generated-types.ts')) {
|
|
308
|
+
schedule(`schema change: ${normalized.split('/').pop()}`);
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
}
|
|
231
315
|
/**
|
|
232
316
|
* One-stop Vite plugin for AphexCMS apps. Bundles:
|
|
233
317
|
*
|
|
234
|
-
* - schema HMR (
|
|
318
|
+
* - schema HMR (hot-swap the engine config on change)
|
|
319
|
+
* - auto type-generation (regenerate generated-types.ts when a schema file changes)
|
|
235
320
|
* - dayjs ESM alias redirect
|
|
236
321
|
* - SSR noExternal/external defaults for cms-core/ui packages
|
|
237
322
|
* - optimizeDeps tuning so first-render isn't slowed by lazy dep discovery
|
|
@@ -256,6 +341,9 @@ export function aphex(options = {}) {
|
|
|
256
341
|
if (options.hmr !== false) {
|
|
257
342
|
plugins.push(aphexHMR(options.hmr ?? {}));
|
|
258
343
|
}
|
|
344
|
+
if (options.typegen !== false) {
|
|
345
|
+
plugins.push(aphexTypegen(options.typegen ?? {}));
|
|
346
|
+
}
|
|
259
347
|
if (options.dayjs !== false) {
|
|
260
348
|
plugins.push(aphexDayjsAlias());
|
|
261
349
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aphexcms/cms-core",
|
|
3
|
-
"version": "9.2.
|
|
3
|
+
"version": "9.2.2",
|
|
4
4
|
"description": "Aphex CMS Core - A Sanity-style CMS with ports and adapters architecture",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"svelte": "^5.44.0",
|
|
82
82
|
"tailwind-merge": "^3.4.0",
|
|
83
83
|
"tailwind-variants": "^3.2.2",
|
|
84
|
-
"@aphexcms/ui": "^0.8.
|
|
84
|
+
"@aphexcms/ui": "^0.8.1"
|
|
85
85
|
},
|
|
86
86
|
"peerDependenciesMeta": {
|
|
87
87
|
"graphql": {
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
"@tiptap/extension-underline": "^3.23.4",
|
|
108
108
|
"@tiptap/pm": "^3.23.4",
|
|
109
109
|
"@tiptap/starter-kit": "^3.23.4",
|
|
110
|
+
"@vercel/stega": "^1.1.0",
|
|
110
111
|
"cac": "^6.7.14",
|
|
111
112
|
"dayjs": "^1.11.19",
|
|
112
113
|
"esbuild": "^0.27.0",
|