gazetta 0.1.4 → 0.3.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/admin-dist/assets/index-C-xOOPUK.js +604 -0
- package/admin-dist/assets/index-CKOOkleR.css +1 -0
- package/admin-dist/assets/rolldown-runtime-COnpUsM8.js +1 -0
- package/admin-dist/assets/vendor-primevue-BNJTiXAs.js +1670 -0
- package/admin-dist/assets/vendor-react-BipDVGow.js +9 -0
- package/admin-dist/assets/vendor-rjsf-HKBAjOmQ.js +32 -0
- package/admin-dist/assets/vendor-tiptap-IyO99U4R.js +142 -0
- package/admin-dist/assets/vendor-vue-GhBrpzPN.js +1 -0
- package/admin-dist/index.html +8 -7
- package/dist/admin-api/index.js +2 -2
- package/dist/admin-api/index.js.map +1 -1
- package/dist/admin-api/routes/compare.d.ts +4 -0
- package/dist/admin-api/routes/compare.d.ts.map +1 -0
- package/dist/admin-api/routes/compare.js +51 -0
- package/dist/admin-api/routes/compare.js.map +1 -0
- package/dist/admin-api/routes/fragments.d.ts.map +1 -1
- package/dist/admin-api/routes/fragments.js +3 -5
- package/dist/admin-api/routes/fragments.js.map +1 -1
- package/dist/admin-api/routes/pages.d.ts.map +1 -1
- package/dist/admin-api/routes/pages.js +3 -6
- package/dist/admin-api/routes/pages.js.map +1 -1
- package/dist/admin-api/routes/preview.js +4 -2
- package/dist/admin-api/routes/preview.js.map +1 -1
- package/dist/admin-api/routes/publish.d.ts.map +1 -1
- package/dist/admin-api/routes/publish.js +22 -3
- package/dist/admin-api/routes/publish.js.map +1 -1
- package/dist/cli/index.js +87 -47
- package/dist/cli/index.js.map +1 -1
- package/dist/compare.d.ts +37 -0
- package/dist/compare.d.ts.map +1 -0
- package/dist/compare.js +86 -0
- package/dist/compare.js.map +1 -0
- package/dist/hash.d.ts +16 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +57 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +1 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +40 -18
- package/dist/manifest.js.map +1 -1
- package/dist/publish-rendered.d.ts +3 -5
- package/dist/publish-rendered.d.ts.map +1 -1
- package/dist/publish-rendered.js +46 -14
- package/dist/publish-rendered.js.map +1 -1
- package/dist/publish.js +23 -22
- package/dist/publish.js.map +1 -1
- package/dist/resolver.d.ts +2 -2
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +50 -39
- package/dist/resolver.js.map +1 -1
- package/dist/scope.d.ts +0 -4
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +0 -5
- package/dist/scope.js.map +1 -1
- package/dist/site-loader.js +2 -2
- package/dist/targets.d.ts +0 -2
- package/dist/targets.d.ts.map +1 -1
- package/dist/targets.js +0 -4
- package/dist/targets.js.map +1 -1
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +10 -13
- package/dist/template-loader.js.map +1 -1
- package/dist/templates-scan-worker.d.ts +2 -0
- package/dist/templates-scan-worker.d.ts.map +1 -0
- package/dist/templates-scan-worker.js +42 -0
- package/dist/templates-scan-worker.js.map +1 -0
- package/dist/templates-scan.d.ts +35 -0
- package/dist/templates-scan.d.ts.map +1 -0
- package/dist/templates-scan.js +146 -0
- package/dist/templates-scan.js.map +1 -0
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -8
- package/admin-dist/assets/index-41Z6lGTc.js +0 -617
- package/admin-dist/assets/index-Bny-fIrv.css +0 -1
- package/admin-dist/assets/vendor-primevue-zs1PFA6i.js +0 -1597
- package/admin-dist/assets/vendor-react-CqfEBl6C.js +0 -49
- package/admin-dist/assets/vendor-rjsf-Ci-RPpeZ.js +0 -40
- package/admin-dist/assets/vendor-tiptap-yFEgrmP-.js +0 -158
- package/admin-dist/assets/vendor-vue-CeoltKL-.js +0 -29
- package/dist/admin-api/routes/components.d.ts +0 -4
- package/dist/admin-api/routes/components.d.ts.map +0 -1
- package/dist/admin-api/routes/components.js +0 -49
- package/dist/admin-api/routes/components.js.map +0 -1
package/dist/resolver.js
CHANGED
|
@@ -1,53 +1,64 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { parseComponentManifest } from './manifest.js';
|
|
3
1
|
import { loadTemplate } from './template-loader.js';
|
|
4
2
|
import { processContent } from './content.js';
|
|
5
|
-
export async function resolveComponent(
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export async function resolveComponent(entry, ctx) {
|
|
4
|
+
if (typeof entry === 'string') {
|
|
5
|
+
if (!entry.startsWith('@')) {
|
|
6
|
+
throw new Error(`Invalid component entry "${entry}" — string entries must be fragment references starting with @.\n` +
|
|
7
|
+
` Referenced in: ${ctx.path.join(' → ') || 'page root'}`);
|
|
8
|
+
}
|
|
9
|
+
const fragmentName = entry.slice(1);
|
|
10
|
+
return resolveFragmentRef(fragmentName, ctx);
|
|
11
|
+
}
|
|
12
|
+
return resolveInlineComponent(entry, ctx);
|
|
13
|
+
}
|
|
14
|
+
async function resolveFragmentRef(fragmentName, ctx) {
|
|
15
|
+
const key = `@${fragmentName}`;
|
|
8
16
|
if (ctx.visited.has(key)) {
|
|
9
17
|
throw new Error(`Circular reference detected: ${key}\n` +
|
|
10
|
-
` Resolution path: ${ctx.path.join(' → ')} → ${
|
|
18
|
+
` Resolution path: ${ctx.path.join(' → ')} → ${key}`);
|
|
11
19
|
}
|
|
12
20
|
ctx.visited.add(key);
|
|
13
|
-
ctx.path.push(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
throw new Error(`Fragment "@${fragmentName}" not found.\n` +
|
|
23
|
-
` Referenced in: ${ctx.path.slice(0, -1).join(' → ') || 'page root'}\n` +
|
|
24
|
-
` Available fragments: ${available.length > 0 ? available.join(', ') : '(none)'}`);
|
|
25
|
-
}
|
|
26
|
-
manifest = fragment;
|
|
27
|
-
componentDir = fragment.dir;
|
|
21
|
+
ctx.path.push(key);
|
|
22
|
+
const fragment = ctx.site.fragments.get(fragmentName);
|
|
23
|
+
if (!fragment) {
|
|
24
|
+
const available = [...ctx.site.fragments.keys()];
|
|
25
|
+
ctx.path.pop();
|
|
26
|
+
ctx.visited.delete(key);
|
|
27
|
+
throw new Error(`Fragment "@${fragmentName}" not found.\n` +
|
|
28
|
+
` Referenced in: ${ctx.path.join(' → ') || 'page root'}\n` +
|
|
29
|
+
` Available fragments: ${available.length > 0 ? available.join(', ') : '(none)'}`);
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
` Referenced in: ${ctx.path.slice(0, -1).join(' → ') || 'page root'}\n` +
|
|
35
|
-
` Parent directory: ${parentDir}`);
|
|
31
|
+
const loaded = await loadTemplate(ctx.site.storage, ctx.templatesDir, fragment.template);
|
|
32
|
+
const children = [];
|
|
33
|
+
if (fragment.components) {
|
|
34
|
+
for (const child of fragment.components) {
|
|
35
|
+
children.push(await resolveComponent(child, ctx));
|
|
36
36
|
}
|
|
37
|
-
manifest = await parseComponentManifest(storage, manifestPath);
|
|
38
37
|
}
|
|
39
|
-
const
|
|
38
|
+
const treePath = ctx.path.slice(1).join('/');
|
|
39
|
+
ctx.path.pop();
|
|
40
|
+
ctx.visited.delete(key);
|
|
41
|
+
return { template: loaded.render, content: processContent(fragment.content, loaded.schema), children, path: fragment.dir, treePath };
|
|
42
|
+
}
|
|
43
|
+
async function resolveInlineComponent(comp, ctx) {
|
|
44
|
+
const key = comp.name;
|
|
45
|
+
if (ctx.visited.has(key)) {
|
|
46
|
+
throw new Error(`Circular reference detected: ${key}\n` +
|
|
47
|
+
` Resolution path: ${ctx.path.join(' → ')} → ${key}`);
|
|
48
|
+
}
|
|
49
|
+
ctx.visited.add(key);
|
|
50
|
+
ctx.path.push(comp.name);
|
|
51
|
+
const loaded = await loadTemplate(ctx.site.storage, ctx.templatesDir, comp.template);
|
|
40
52
|
const children = [];
|
|
41
|
-
if (
|
|
42
|
-
for (const
|
|
43
|
-
children.push(await resolveComponent(
|
|
53
|
+
if (comp.components) {
|
|
54
|
+
for (const child of comp.components) {
|
|
55
|
+
children.push(await resolveComponent(child, ctx));
|
|
44
56
|
}
|
|
45
57
|
}
|
|
46
|
-
// Tree path is the component's position relative to the page (excluding the page name)
|
|
47
58
|
const treePath = ctx.path.slice(1).join('/');
|
|
48
59
|
ctx.path.pop();
|
|
49
60
|
ctx.visited.delete(key);
|
|
50
|
-
return { template: loaded.render, content: processContent(
|
|
61
|
+
return { template: loaded.render, content: processContent(comp.content, loaded.schema), children, treePath };
|
|
51
62
|
}
|
|
52
63
|
export async function resolveFragment(fragmentName, site) {
|
|
53
64
|
const fragment = site.fragments.get(fragmentName);
|
|
@@ -61,8 +72,8 @@ export async function resolveFragment(fragmentName, site) {
|
|
|
61
72
|
const loaded = await loadTemplate(site.storage, templatesDir, fragment.template);
|
|
62
73
|
const children = [];
|
|
63
74
|
if (fragment.components) {
|
|
64
|
-
for (const
|
|
65
|
-
children.push(await resolveComponent(
|
|
75
|
+
for (const child of fragment.components) {
|
|
76
|
+
children.push(await resolveComponent(child, ctx));
|
|
66
77
|
}
|
|
67
78
|
}
|
|
68
79
|
return { template: loaded.render, content: processContent(fragment.content, loaded.schema), children, path: fragment.dir, treePath: '' };
|
|
@@ -79,8 +90,8 @@ export async function resolvePage(pageName, site) {
|
|
|
79
90
|
const loaded = await loadTemplate(site.storage, templatesDir, page.template);
|
|
80
91
|
const children = [];
|
|
81
92
|
if (page.components) {
|
|
82
|
-
for (const
|
|
83
|
-
children.push(await resolveComponent(
|
|
93
|
+
for (const child of page.components) {
|
|
94
|
+
children.push(await resolveComponent(child, ctx));
|
|
84
95
|
}
|
|
85
96
|
}
|
|
86
97
|
return { template: loaded.render, content: processContent(page.content, loaded.schema), children, path: page.dir, treePath: '' };
|
package/dist/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/scope.d.ts
CHANGED
|
@@ -12,8 +12,4 @@ export declare function scopeHtml(html: string, scopeId: string): string;
|
|
|
12
12
|
* Prefixes CSS selectors with a scope attribute selector using PostCSS.
|
|
13
13
|
*/
|
|
14
14
|
export declare function scopeCss(css: string, scopeId: string): string;
|
|
15
|
-
/** @deprecated Use hashPath instead */
|
|
16
|
-
export declare function generateScopeId(): string;
|
|
17
|
-
/** @deprecated No longer needed — scope IDs are deterministic */
|
|
18
|
-
export declare function resetScopeCounter(): void;
|
|
19
15
|
//# sourceMappingURL=scope.d.ts.map
|
package/dist/scope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS7D
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS7D"}
|
package/dist/scope.js
CHANGED
|
@@ -34,9 +34,4 @@ export function scopeCss(css, scopeId) {
|
|
|
34
34
|
]).process(css).css;
|
|
35
35
|
return result;
|
|
36
36
|
}
|
|
37
|
-
// Legacy exports for backwards compatibility
|
|
38
|
-
/** @deprecated Use hashPath instead */
|
|
39
|
-
export function generateScopeId() { return hashPath(String(Date.now())); }
|
|
40
|
-
/** @deprecated No longer needed — scope IDs are deterministic */
|
|
41
|
-
export function resetScopeCounter() { }
|
|
42
37
|
//# sourceMappingURL=scope.js.map
|
package/dist/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,kDAAkD;AAClD,OAAO,QAAQ,MAAM,yBAAyB,CAAA;AAE9C;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAC3B,OAAO,iBAAiB,OAAO,KAAK,IAAI,QAAQ,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAe;IACnD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAE1B,MAAM,MAAM,GAAG,aAAa,OAAO,IAAI,CAAA;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAe,EAAE,QAAgB,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC;KAChG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;IAEnB,OAAO,MAAM,CAAA;AACf,CAAC
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,kDAAkD;AAClD,OAAO,QAAQ,MAAM,yBAAyB,CAAA;AAE9C;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAC3B,OAAO,iBAAiB,OAAO,KAAK,IAAI,QAAQ,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAe;IACnD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAE1B,MAAM,MAAM,GAAG,aAAa,OAAO,IAAI,CAAA;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAe,EAAE,QAAgB,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC;KAChG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;IAEnB,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/site-loader.js
CHANGED
|
@@ -18,7 +18,7 @@ async function discoverPages(storage, pagesDir, pages = new Map(), prefix = '')
|
|
|
18
18
|
continue;
|
|
19
19
|
const dir = join(pagesDir, entry.name);
|
|
20
20
|
const name = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
21
|
-
const manifestPath = join(dir, 'page.
|
|
21
|
+
const manifestPath = join(dir, 'page.json');
|
|
22
22
|
if (await storage.exists(manifestPath)) {
|
|
23
23
|
try {
|
|
24
24
|
const manifest = await parsePageManifest(storage, manifestPath);
|
|
@@ -45,7 +45,7 @@ async function discoverFragments(storage, fragmentsDir) {
|
|
|
45
45
|
if (!entry.isDirectory)
|
|
46
46
|
continue;
|
|
47
47
|
const fragDir = join(fragmentsDir, entry.name);
|
|
48
|
-
const manifestPath = join(fragDir, 'fragment.
|
|
48
|
+
const manifestPath = join(fragDir, 'fragment.json');
|
|
49
49
|
if (!await storage.exists(manifestPath))
|
|
50
50
|
continue;
|
|
51
51
|
try {
|
package/dist/targets.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { StorageProvider, TargetConfig, StorageConfig } from './types.js';
|
|
2
2
|
export declare function resolveEnvVars(value: string | undefined): string | undefined;
|
|
3
3
|
export declare function createStorageProvider(config: StorageConfig, siteDir: string): Promise<StorageProvider>;
|
|
4
|
-
/** @deprecated Use createStorageProvider */
|
|
5
|
-
export declare function createTargetProvider(config: TargetConfig, siteDir: string): Promise<StorageProvider>;
|
|
6
4
|
export declare function createTargetRegistry(targets: Record<string, TargetConfig>, siteDir: string): Promise<Map<string, StorageProvider>>;
|
|
7
5
|
//# sourceMappingURL=targets.d.ts.map
|
package/dist/targets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyE5G;AAED,
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyE5G;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAcxI"}
|
package/dist/targets.js
CHANGED
|
@@ -90,10 +90,6 @@ export async function createStorageProvider(config, siteDir) {
|
|
|
90
90
|
throw new Error(`Unknown storage type: ${config.type}`);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
/** @deprecated Use createStorageProvider */
|
|
94
|
-
export async function createTargetProvider(config, siteDir) {
|
|
95
|
-
return createStorageProvider(config.storage, siteDir);
|
|
96
|
-
}
|
|
97
93
|
export async function createTargetRegistry(targets, siteDir) {
|
|
98
94
|
const registry = new Map();
|
|
99
95
|
for (const [name, config] of Object.entries(targets)) {
|
package/dist/targets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnE,UAAU,cAAc;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;CAChB;AA8BD,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2ChI;AAED,0DAA0D;AAC1D,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxH;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
package/dist/template-loader.js
CHANGED
|
@@ -59,21 +59,18 @@ export async function loadTemplate(storage, templatesDir, templateName) {
|
|
|
59
59
|
cache.set(templateName, loaded);
|
|
60
60
|
return loaded;
|
|
61
61
|
}
|
|
62
|
-
const EDITOR_FILES = ['editor.ts', 'editor.tsx'];
|
|
63
62
|
/** Check if a custom editor file exists for a template */
|
|
64
63
|
export async function hasEditorFile(storage, editorsDir, templateName) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
64
|
+
// Flat: admin/editors/hero.ts(x)
|
|
65
|
+
if (await storage.exists(join(editorsDir, `${templateName}.ts`)))
|
|
66
|
+
return true;
|
|
67
|
+
if (await storage.exists(join(editorsDir, `${templateName}.tsx`)))
|
|
68
|
+
return true;
|
|
69
|
+
// Directory: admin/editors/hero/index.ts(x)
|
|
70
|
+
if (await storage.exists(join(editorsDir, templateName, 'index.ts')))
|
|
71
|
+
return true;
|
|
72
|
+
if (await storage.exists(join(editorsDir, templateName, 'index.tsx')))
|
|
73
|
+
return true;
|
|
77
74
|
return false;
|
|
78
75
|
}
|
|
79
76
|
export function invalidateTemplate(templateName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAQjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;AAC/C,iGAAiG;AACjG,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;AAEvC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAEhD,KAAK,UAAU,gBAAgB,CAAC,OAAwB,EAAE,YAAoB,EAAE,YAAoB;IAClG,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACnD,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IAC7C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,YAAoB;IAChD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC/B,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACxE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAA4B,CAAA;QACnE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;IACjG,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAA4B,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAwB,EAAE,YAAoB,EAAE,YAAoB;IACrG,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;IAChF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,kDAAkD,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI;YAC/G,gCAAgC,YAAY,EAAE,CAC/C,CAAA;IACH,CAAC;IAED,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8BAA8B,YAAY,UAAU,YAAY,KAAM,GAAa,CAAC,OAAO,EAAE,CAC9F,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAA2B,CAAA;IAC9C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,QAAQ,YAAY,uCAAuC;YACpF,OAAO,OAAO,MAAM,kEAAkE,CACvF,CAAA;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,QAAQ,YAAY,6BAA6B;YAC1E,yDAAyD,CAC1D,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAmB;QAC7B,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAA;IAED,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAQjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAA;AAC/C,iGAAiG;AACjG,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;AAEvC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAEhD,KAAK,UAAU,gBAAgB,CAAC,OAAwB,EAAE,YAAoB,EAAE,YAAoB;IAClG,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACnD,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IAC7C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,YAAoB;IAChD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC/B,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACxE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAA4B,CAAA;QACnE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;IACjG,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAA4B,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAwB,EAAE,YAAoB,EAAE,YAAoB;IACrG,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;IAChF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,kDAAkD,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI;YAC/G,gCAAgC,YAAY,EAAE,CAC/C,CAAA;IACH,CAAC;IAED,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8BAA8B,YAAY,UAAU,YAAY,KAAM,GAAa,CAAC,OAAO,EAAE,CAC9F,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAA2B,CAAA;IAC9C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,QAAQ,YAAY,uCAAuC;YACpF,OAAO,OAAO,MAAM,kEAAkE,CACvF,CAAA;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,QAAQ,YAAY,6BAA6B;YAC1E,yDAAyD,CAC1D,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAmB;QAC7B,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAA;IAED,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB,EAAE,UAAkB,EAAE,YAAoB;IACpG,iCAAiC;IACjC,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7E,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9E,4CAA4C;IAC5C,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACjF,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAClF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,KAAK,CAAC,KAAK,EAAE,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-scan-worker.d.ts","sourceRoot":"","sources":["../src/templates-scan-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { parentPort, workerData } from 'node:worker_threads';
|
|
2
|
+
import { createJiti } from 'jiti';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
|
+
import { createHash } from 'node:crypto';
|
|
6
|
+
import { relative } from 'node:path';
|
|
7
|
+
async function scan(input) {
|
|
8
|
+
const { entry, projectRoot } = input;
|
|
9
|
+
const jiti = createJiti(pathToFileURL(entry).href, { jsx: true, moduleCache: true });
|
|
10
|
+
let mod;
|
|
11
|
+
try {
|
|
12
|
+
mod = await jiti.import(entry);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
return { valid: false, hash: '', errors: [`import failed: ${err.message}`], files: [] };
|
|
16
|
+
}
|
|
17
|
+
const errors = [];
|
|
18
|
+
if (typeof mod.default !== 'function')
|
|
19
|
+
errors.push('no default export (render function)');
|
|
20
|
+
if (!mod.schema)
|
|
21
|
+
errors.push('no `schema` export');
|
|
22
|
+
const files = Object.keys(jiti.cache)
|
|
23
|
+
.filter(p => !p.includes('/node_modules/'))
|
|
24
|
+
.sort();
|
|
25
|
+
const h = createHash('md5');
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
const rel = relative(projectRoot, file);
|
|
28
|
+
h.update(rel + '\0');
|
|
29
|
+
h.update(await readFile(file));
|
|
30
|
+
h.update('\0');
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
valid: errors.length === 0,
|
|
34
|
+
hash: h.digest('hex').slice(0, 8),
|
|
35
|
+
errors,
|
|
36
|
+
files: files.map(f => relative(projectRoot, f)),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (!parentPort)
|
|
40
|
+
throw new Error('templates-scan-worker must be run as a worker_thread');
|
|
41
|
+
scan(workerData).then(r => parentPort.postMessage(r));
|
|
42
|
+
//# sourceMappingURL=templates-scan-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-scan-worker.js","sourceRoot":"","sources":["../src/templates-scan-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAcpC,KAAK,UAAU,IAAI,CAAC,KAAkB;IACpC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpF,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAA4B,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IACpG,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACzF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAElD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAgC,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SAC1C,IAAI,EAAE,CAAA;IAET,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAChD,CAAA;AACH,CAAC;AAED,IAAI,CAAC,UAAU;IAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;AAExF,IAAI,CAAC,UAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface TemplateInfo {
|
|
2
|
+
/** Template name, e.g. "hero" or "buttons/primary" */
|
|
3
|
+
name: string;
|
|
4
|
+
/** 8-char MD5 of all source files contributing to this template; '' if invalid */
|
|
5
|
+
hash: string;
|
|
6
|
+
valid: boolean;
|
|
7
|
+
errors: string[];
|
|
8
|
+
/** Files (relative to projectRoot) that contributed to the hash */
|
|
9
|
+
files: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validate and hash every template under `templatesDir`. Each template runs in
|
|
13
|
+
* its own worker thread for cache isolation.
|
|
14
|
+
*
|
|
15
|
+
* Templates are validated by importing them via jiti and checking for a default
|
|
16
|
+
* export (render function) and a `schema` export. Hashing covers the full
|
|
17
|
+
* relative-import graph (including `_shared/` imports), excluding `node_modules`.
|
|
18
|
+
*
|
|
19
|
+
* `projectRoot` makes hashes stable across machines (paths are relative to it).
|
|
20
|
+
*/
|
|
21
|
+
export declare function scanTemplates(templatesDir: string, projectRoot: string): Promise<TemplateInfo[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Re-scan a single template by name. Useful for the file watcher.
|
|
24
|
+
*/
|
|
25
|
+
export declare function scanTemplate(templatesDir: string, projectRoot: string, name: string): Promise<TemplateInfo>;
|
|
26
|
+
/**
|
|
27
|
+
* Build a `Map<templateName, hash>` from scan results, excluding invalid templates
|
|
28
|
+
* (which have hash = ''). Used by `hashManifest` and consumers.
|
|
29
|
+
*/
|
|
30
|
+
export declare function templateHashesFrom(infos: TemplateInfo[]): Map<string, string>;
|
|
31
|
+
/**
|
|
32
|
+
* Format scan errors for CLI output. Returns the number of invalid templates.
|
|
33
|
+
*/
|
|
34
|
+
export declare function reportTemplateErrors(infos: TemplateInfo[]): number;
|
|
35
|
+
//# sourceMappingURL=templates-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-scan.d.ts","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAmFD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAYvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CASlE"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Worker } from 'node:worker_threads';
|
|
2
|
+
import { readdir } from 'node:fs/promises';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { join, dirname, resolve } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
const TEMPLATE_FILES = ['index.tsx', 'index.ts', 'index.jsx', 'index.js'];
|
|
7
|
+
async function findEntry(dir) {
|
|
8
|
+
for (const f of TEMPLATE_FILES) {
|
|
9
|
+
const p = join(dir, f);
|
|
10
|
+
if (existsSync(p))
|
|
11
|
+
return p;
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Discover all template names in a directory. Templates are subdirectories
|
|
17
|
+
* with an index.{ts,tsx,jsx,js} entry. Subdirectories starting with "_" are excluded
|
|
18
|
+
* (convention for shared code, see operations.md).
|
|
19
|
+
*
|
|
20
|
+
* Recursively descends into directories without an entry to find nested templates
|
|
21
|
+
* like `buttons/primary`.
|
|
22
|
+
*/
|
|
23
|
+
async function discoverTemplates(templatesDir, prefix = '') {
|
|
24
|
+
const out = [];
|
|
25
|
+
let entries;
|
|
26
|
+
try {
|
|
27
|
+
entries = await readdir(templatesDir, { withFileTypes: true });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
for (const e of entries) {
|
|
33
|
+
if (!e.isDirectory() || e.name.startsWith('_'))
|
|
34
|
+
continue;
|
|
35
|
+
const dir = join(templatesDir, e.name);
|
|
36
|
+
const name = prefix ? `${prefix}/${e.name}` : e.name;
|
|
37
|
+
const entry = await findEntry(dir);
|
|
38
|
+
if (entry) {
|
|
39
|
+
out.push({ name, entry });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// No entry — recurse to find nested templates (e.g. buttons/primary)
|
|
43
|
+
const nested = await discoverTemplates(dir, name);
|
|
44
|
+
out.push(...nested);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return out;
|
|
48
|
+
}
|
|
49
|
+
let cachedWorkerPath = null;
|
|
50
|
+
function workerPath() {
|
|
51
|
+
if (cachedWorkerPath)
|
|
52
|
+
return cachedWorkerPath;
|
|
53
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
54
|
+
// When loaded from dist/ at runtime, the worker is dist/templates-scan-worker.js.
|
|
55
|
+
// When loaded from src/ via vitest/tsx, the .js sibling won't exist — fall back
|
|
56
|
+
// to dist/, which is where it'll be after a build.
|
|
57
|
+
const sibling = resolve(here, './templates-scan-worker.js');
|
|
58
|
+
if (existsSync(sibling)) {
|
|
59
|
+
cachedWorkerPath = sibling;
|
|
60
|
+
return cachedWorkerPath;
|
|
61
|
+
}
|
|
62
|
+
// Source context (tests, dev): walk up to packages/gazetta and use dist/
|
|
63
|
+
const distFallback = resolve(here, '../dist/templates-scan-worker.js');
|
|
64
|
+
cachedWorkerPath = distFallback;
|
|
65
|
+
return cachedWorkerPath;
|
|
66
|
+
}
|
|
67
|
+
function scanOne(entry, projectRoot) {
|
|
68
|
+
return new Promise((resolveP, rejectP) => {
|
|
69
|
+
const w = new Worker(workerPath(), { workerData: { entry, projectRoot } });
|
|
70
|
+
w.once('message', (msg) => {
|
|
71
|
+
w.terminate();
|
|
72
|
+
resolveP(msg);
|
|
73
|
+
});
|
|
74
|
+
w.once('error', (err) => {
|
|
75
|
+
w.terminate();
|
|
76
|
+
rejectP(err);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Validate and hash every template under `templatesDir`. Each template runs in
|
|
82
|
+
* its own worker thread for cache isolation.
|
|
83
|
+
*
|
|
84
|
+
* Templates are validated by importing them via jiti and checking for a default
|
|
85
|
+
* export (render function) and a `schema` export. Hashing covers the full
|
|
86
|
+
* relative-import graph (including `_shared/` imports), excluding `node_modules`.
|
|
87
|
+
*
|
|
88
|
+
* `projectRoot` makes hashes stable across machines (paths are relative to it).
|
|
89
|
+
*/
|
|
90
|
+
export async function scanTemplates(templatesDir, projectRoot) {
|
|
91
|
+
const templates = await discoverTemplates(templatesDir);
|
|
92
|
+
return Promise.all(templates.map(async (t) => {
|
|
93
|
+
try {
|
|
94
|
+
const out = await scanOne(t.entry, projectRoot);
|
|
95
|
+
return { name: t.name, ...out };
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
return { name: t.name, hash: '', valid: false, errors: [`worker error: ${err.message}`], files: [] };
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Re-scan a single template by name. Useful for the file watcher.
|
|
104
|
+
*/
|
|
105
|
+
export async function scanTemplate(templatesDir, projectRoot, name) {
|
|
106
|
+
const dir = join(templatesDir, name);
|
|
107
|
+
const entry = await findEntry(dir);
|
|
108
|
+
if (!entry) {
|
|
109
|
+
return { name, hash: '', valid: false, errors: ['no index.{ts,tsx,jsx,js} found'], files: [] };
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const out = await scanOne(entry, projectRoot);
|
|
113
|
+
return { name, ...out };
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
return { name, hash: '', valid: false, errors: [`worker error: ${err.message}`], files: [] };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Build a `Map<templateName, hash>` from scan results, excluding invalid templates
|
|
121
|
+
* (which have hash = ''). Used by `hashManifest` and consumers.
|
|
122
|
+
*/
|
|
123
|
+
export function templateHashesFrom(infos) {
|
|
124
|
+
const m = new Map();
|
|
125
|
+
for (const t of infos) {
|
|
126
|
+
if (t.valid)
|
|
127
|
+
m.set(t.name, t.hash);
|
|
128
|
+
}
|
|
129
|
+
return m;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Format scan errors for CLI output. Returns the number of invalid templates.
|
|
133
|
+
*/
|
|
134
|
+
export function reportTemplateErrors(infos) {
|
|
135
|
+
const invalid = infos.filter(t => !t.valid);
|
|
136
|
+
if (!invalid.length)
|
|
137
|
+
return 0;
|
|
138
|
+
for (const t of invalid) {
|
|
139
|
+
console.error(`✗ Template "${t.name}" has errors:`);
|
|
140
|
+
for (const e of t.errors)
|
|
141
|
+
console.error(` · ${e}`);
|
|
142
|
+
}
|
|
143
|
+
console.error(`\n${invalid.length} of ${infos.length} templates have errors.`);
|
|
144
|
+
return invalid.length;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=templates-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-scan.js","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -38,11 +38,20 @@ export interface TemplateModule {
|
|
|
38
38
|
default: TemplateFunction;
|
|
39
39
|
schema: unknown;
|
|
40
40
|
}
|
|
41
|
+
/** Inline component — nested within a page or fragment manifest */
|
|
42
|
+
export interface InlineComponent {
|
|
43
|
+
name: string;
|
|
44
|
+
template: string;
|
|
45
|
+
content?: Record<string, unknown>;
|
|
46
|
+
components?: ComponentEntry[];
|
|
47
|
+
}
|
|
48
|
+
/** A component entry is either a fragment reference string ("@header") or an inline component object */
|
|
49
|
+
export type ComponentEntry = string | InlineComponent;
|
|
41
50
|
/** Component manifest (base) */
|
|
42
51
|
export interface ComponentManifest {
|
|
43
52
|
template: string;
|
|
44
53
|
content?: Record<string, unknown>;
|
|
45
|
-
components?:
|
|
54
|
+
components?: ComponentEntry[];
|
|
46
55
|
}
|
|
47
56
|
/** Fragment manifest (shared component) */
|
|
48
57
|
export interface FragmentManifest extends ComponentManifest {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;IACnG,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAE1C,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;QACpD,uEAAuE;QACvE,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GAAG,IAAI,CAAA;IACR,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;CAC/B;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAC5B,KAAK,EAAE,OAAO,CAAA;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;QACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KACnC,GAAG,IAAI,CAAA;IACR,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA0HA,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AACjE,CAAC"}
|