@ankhorage/templates 7.0.3 → 9.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/CHANGELOG.md +16 -0
- package/assets/templates/capability-proof/checker.svg +1 -0
- package/dist/authoring/compose-category-manifest.d.ts +40 -0
- package/dist/authoring/compose-category-manifest.d.ts.map +1 -0
- package/dist/authoring/compose-category-manifest.js +150 -0
- package/dist/authoring/compose-category-manifest.js.map +1 -0
- package/dist/catalog.d.ts +4 -3
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +6 -3
- package/dist/catalog.js.map +1 -1
- package/dist/commands.d.ts +4 -6
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +16 -14
- package/dist/commands.js.map +1 -1
- package/dist/design/category-source.d.ts +557 -0
- package/dist/design/category-source.d.ts.map +1 -0
- package/dist/design/category-source.js +578 -0
- package/dist/design/category-source.js.map +1 -0
- package/dist/design/category-theme.d.ts +44 -0
- package/dist/design/category-theme.d.ts.map +1 -0
- package/dist/design/category-theme.js +146 -0
- package/dist/design/category-theme.js.map +1 -0
- package/dist/design/category-types.d.ts +73 -0
- package/dist/design/category-types.d.ts.map +1 -0
- package/dist/design/category-types.js +3 -0
- package/dist/design/category-types.js.map +1 -0
- package/dist/design/tone-catalog.d.ts +29 -0
- package/dist/design/tone-catalog.d.ts.map +1 -0
- package/dist/design/tone-catalog.js +254 -0
- package/dist/design/tone-catalog.js.map +1 -0
- package/dist/generators/create-category-app.d.ts.map +1 -1
- package/dist/generators/create-category-app.js +9 -3
- package/dist/generators/create-category-app.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/presets/category-presets.d.ts +4 -10
- package/dist/presets/category-presets.d.ts.map +1 -1
- package/dist/presets/category-presets.js +101 -209
- package/dist/presets/category-presets.js.map +1 -1
- package/dist/projectSeed.d.ts +4 -0
- package/dist/projectSeed.d.ts.map +1 -1
- package/dist/projectSeed.js +75 -5
- package/dist/projectSeed.js.map +1 -1
- package/dist/templates/shared/create-theme.d.ts +1 -0
- package/dist/templates/shared/create-theme.d.ts.map +1 -1
- package/dist/templates/shared/create-theme.js +2 -0
- package/dist/templates/shared/create-theme.js.map +1 -1
- package/dist/templates/starter/index.d.ts +2 -1
- package/dist/templates/starter/index.d.ts.map +1 -1
- package/dist/templates/starter/index.js +1 -0
- package/dist/templates/starter/index.js.map +1 -1
- package/dist/templates/starter/starter.assets.d.ts +22 -0
- package/dist/templates/starter/starter.assets.d.ts.map +1 -0
- package/dist/templates/starter/starter.assets.js +124 -0
- package/dist/templates/starter/starter.assets.js.map +1 -0
- package/dist/templates/starter/starter.registry.d.ts.map +1 -1
- package/dist/templates/starter/starter.registry.js +6 -11
- package/dist/templates/starter/starter.registry.js.map +1 -1
- package/dist/templates/starter/starter.template.d.ts +3 -4
- package/dist/templates/starter/starter.template.d.ts.map +1 -1
- package/dist/templates/starter/starter.template.js +5 -2
- package/dist/templates/starter/starter.template.js.map +1 -1
- package/dist/templates/starter/starter.types.d.ts +4 -0
- package/dist/templates/starter/starter.types.d.ts.map +1 -1
- package/dist/templates/starter/starter.types.js.map +1 -1
- package/package.json +5 -3
- package/dist/templates/starter/categories/fallback/default.template.d.ts +0 -4
- package/dist/templates/starter/categories/fallback/default.template.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/default.template.js +0 -17
- package/dist/templates/starter/categories/fallback/default.template.js.map +0 -1
- package/dist/templates/starter/categories/fallback/index.d.ts +0 -8
- package/dist/templates/starter/categories/fallback/index.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/index.js +0 -10
- package/dist/templates/starter/categories/fallback/index.js.map +0 -1
- package/dist/templates/starter/categories/fallback/routes.d.ts +0 -9
- package/dist/templates/starter/categories/fallback/routes.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/routes.js +0 -20
- package/dist/templates/starter/categories/fallback/routes.js.map +0 -1
- package/dist/templates/starter/categories/fallback/screens.d.ts +0 -5
- package/dist/templates/starter/categories/fallback/screens.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/screens.js +0 -133
- package/dist/templates/starter/categories/fallback/screens.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @ankhorage/templates
|
|
2
2
|
|
|
3
|
+
## 9.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 0dcc320: Return starter-template artifacts with verified bundled image descriptors and materialize their bytes into generated projects.
|
|
8
|
+
|
|
9
|
+
## 8.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- 407303f: Make Templates the canonical owner of reconciled category design presets, the exhaustive mode-aware tone-pair catalog, ZORA-compiled category theme resolution, and deterministic manifest authoring diagnostics. Replace the former singular `primaryColor` and `harmony` preset fields with ordered reviewed recommendations, add durable intent/font/density/shape direction, and remove the invalid unknown-category fallback.
|
|
14
|
+
|
|
15
|
+
CHANGE REQUIRED: update `@ankhorage/zora` from `^3.3.3` to `^4.0.0` and add the direct `@ankhorage/color-theory` dependency used to construct branded compiler contrast inputs. Templates now consumes the ZORA 4 theme compiler and canonical MissingElement metadata.
|
|
16
|
+
|
|
17
|
+
VERIFIED: NO CHANGE REQUIRED for ZORA 3.3.4; that release only refreshed Surface and introduced no Templates API migration beyond the ZORA 4 compiler adoption above.
|
|
18
|
+
|
|
3
19
|
## 7.0.3
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="2" height="2" viewBox="0 0 2 2"><path fill="#7c3aed" d="M0 0h1v1H0zM1 1h1v1H1z"/></svg>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AppCategory, type AppManifest, type ComponentDataBindingRegistry, type DataSourceRegistry, type NavigatorSpec, type ScreenSpec } from '@ankhorage/contracts';
|
|
2
|
+
import { type CategoryDesignOverrides } from '../design/category-theme';
|
|
3
|
+
export type TemplateAuthoringState = 'draft' | 'release';
|
|
4
|
+
export type TemplateCompositionStatus = 'blocked' | 'ready';
|
|
5
|
+
export type TemplateCompositionDiagnosticCode = 'invalid-manifest' | 'missing-element' | 'missing-route-screen' | 'theme-compilation-error' | 'theme-intent-warning';
|
|
6
|
+
export interface TemplateCompositionDiagnostic {
|
|
7
|
+
readonly code: TemplateCompositionDiagnosticCode;
|
|
8
|
+
readonly severity: 'error' | 'warning';
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
readonly nodeId?: string;
|
|
12
|
+
readonly requestedCapability?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ComposeCategoryAppManifestInput {
|
|
15
|
+
readonly category: AppCategory;
|
|
16
|
+
readonly name?: string;
|
|
17
|
+
readonly slug?: string;
|
|
18
|
+
readonly version?: string;
|
|
19
|
+
readonly navigator: NavigatorSpec;
|
|
20
|
+
readonly screens: Readonly<Record<string, ScreenSpec>>;
|
|
21
|
+
readonly dataSources?: DataSourceRegistry;
|
|
22
|
+
readonly dataBindings?: ComponentDataBindingRegistry;
|
|
23
|
+
readonly modules?: readonly string[];
|
|
24
|
+
readonly modulesConfig?: Readonly<Record<string, unknown>>;
|
|
25
|
+
readonly theme?: CategoryDesignOverrides;
|
|
26
|
+
readonly authoringState?: TemplateAuthoringState;
|
|
27
|
+
}
|
|
28
|
+
export interface CategoryAppManifestComposition {
|
|
29
|
+
readonly manifest: AppManifest;
|
|
30
|
+
readonly diagnostics: readonly TemplateCompositionDiagnostic[];
|
|
31
|
+
readonly status: TemplateCompositionStatus;
|
|
32
|
+
readonly authoringState: TemplateAuthoringState;
|
|
33
|
+
}
|
|
34
|
+
/*** Validate one canonical manifest for catalog registration or release finalization. */
|
|
35
|
+
export declare function validateTemplateManifest(manifest: AppManifest, authoringState?: TemplateAuthoringState): CategoryAppManifestComposition;
|
|
36
|
+
/*** Compose canonical manifest inputs with a category/theme shell and explicit diagnostics. */
|
|
37
|
+
export declare function composeCategoryAppManifest(input: ComposeCategoryAppManifestInput): CategoryAppManifestComposition;
|
|
38
|
+
/*** Fail catalog registration or release finalization while any blocker remains. */
|
|
39
|
+
export declare function assertTemplateManifestReady(composition: CategoryAppManifestComposition): AppManifest;
|
|
40
|
+
//# sourceMappingURL=compose-category-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-category-manifest.d.ts","sourceRoot":"","sources":["../../src/authoring/compose-category-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,0BAA0B,CAAC;AAI/F,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,iCAAiC,GACzC,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,4BAA4B,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;CAClD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CACjD;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EACrB,cAAc,GAAE,sBAAkC,GACjD,8BAA8B,CAsBhC;AA+FD,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,8BAA8B,CAmChC;AAED,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,8BAA8B,GAC1C,WAAW,CAUb"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { parseAppManifest, } from '@ankhorage/contracts';
|
|
2
|
+
import { ZORA_COMPONENT_META } from '@ankhorage/zora/metadata';
|
|
3
|
+
import { compileCategoryDesign } from '../design/category-theme';
|
|
4
|
+
import { BASE_INFRA, BASE_SETTINGS, DEFAULT_TEMPLATE_VERSION } from '../internal/defaults';
|
|
5
|
+
import { createManifestShell } from '../templates/shared/create-manifest-shell';
|
|
6
|
+
/*** Validate one canonical manifest for catalog registration or release finalization. */
|
|
7
|
+
export function validateTemplateManifest(manifest, authoringState = 'release') {
|
|
8
|
+
const parsed = parseAppManifest(manifest);
|
|
9
|
+
const diagnostics = [
|
|
10
|
+
...collectRouteDiagnostics(manifest.navigator, manifest.screens),
|
|
11
|
+
...collectMissingElementDiagnostics(manifest.screens),
|
|
12
|
+
...(parsed.ok
|
|
13
|
+
? []
|
|
14
|
+
: [
|
|
15
|
+
{
|
|
16
|
+
code: 'invalid-manifest',
|
|
17
|
+
severity: 'error',
|
|
18
|
+
path: 'manifest',
|
|
19
|
+
message: parsed.message,
|
|
20
|
+
},
|
|
21
|
+
]),
|
|
22
|
+
];
|
|
23
|
+
return {
|
|
24
|
+
manifest,
|
|
25
|
+
diagnostics,
|
|
26
|
+
status: diagnostics.some((diagnostic) => diagnostic.severity === 'error') ? 'blocked' : 'ready',
|
|
27
|
+
authoringState,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/*** Read a manifest string prop without treating arbitrary values as valid authoring metadata. */
|
|
31
|
+
function resolveStringProp(node, key) {
|
|
32
|
+
const value = Reflect.get(node.props ?? {}, key);
|
|
33
|
+
return typeof value === 'string' && value.trim() ? value : undefined;
|
|
34
|
+
}
|
|
35
|
+
/*** Ask ZORA metadata whether a manifest node is the canonical draft placeholder. */
|
|
36
|
+
function isMissingElement(node) {
|
|
37
|
+
const metadata = ZORA_COMPONENT_META.MissingElement;
|
|
38
|
+
if (!metadata)
|
|
39
|
+
throw new Error('ZORA metadata does not expose MissingElement.');
|
|
40
|
+
return node.type === metadata.name;
|
|
41
|
+
}
|
|
42
|
+
/*** Visit every manifest child branch, including repeat empty-state nodes. */
|
|
43
|
+
function visitNode(node, path, visitor) {
|
|
44
|
+
visitor(node, path);
|
|
45
|
+
node.children?.forEach((child, index) => visitNode(child, `${path}.children[${index}]`, visitor));
|
|
46
|
+
node.repeat?.empty?.forEach((child, index) => visitNode(child, `${path}.repeat.empty[${index}]`, visitor));
|
|
47
|
+
}
|
|
48
|
+
/*** Report every canonical ZORA MissingElement with its requested capability and location. */
|
|
49
|
+
function collectMissingElementDiagnostics(screens) {
|
|
50
|
+
const diagnostics = [];
|
|
51
|
+
for (const [screenId, screen] of Object.entries(screens)) {
|
|
52
|
+
visitNode(screen.root, `screens.${screenId}.root`, (node, path) => {
|
|
53
|
+
if (!isMissingElement(node))
|
|
54
|
+
return;
|
|
55
|
+
const requestedCapability = resolveStringProp(node, 'requestedCapability') ?? 'Unspecified interface capability';
|
|
56
|
+
diagnostics.push({
|
|
57
|
+
code: 'missing-element',
|
|
58
|
+
severity: 'error',
|
|
59
|
+
path,
|
|
60
|
+
nodeId: node.id,
|
|
61
|
+
requestedCapability,
|
|
62
|
+
message: `Node "${node.id}" requires missing capability "${requestedCapability}".`,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return diagnostics;
|
|
67
|
+
}
|
|
68
|
+
/*** Validate every route target recursively against the canonical screen registry. */
|
|
69
|
+
function collectRouteDiagnostics(navigator, screens, path = 'navigator') {
|
|
70
|
+
return navigator.routes.flatMap((route, index) => {
|
|
71
|
+
const routePath = `${path}.routes[${index}]`;
|
|
72
|
+
const own = route.screenId && !Reflect.has(screens, route.screenId)
|
|
73
|
+
? [
|
|
74
|
+
{
|
|
75
|
+
code: 'missing-route-screen',
|
|
76
|
+
severity: 'error',
|
|
77
|
+
path: `${routePath}.screenId`,
|
|
78
|
+
message: `Route "${route.name}" references unknown screen "${route.screenId}".`,
|
|
79
|
+
},
|
|
80
|
+
]
|
|
81
|
+
: [];
|
|
82
|
+
return route.navigator
|
|
83
|
+
? [...own, ...collectRouteDiagnostics(route.navigator, screens, `${routePath}.navigator`)]
|
|
84
|
+
: own;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/*** Convert owner theme evidence into template composition diagnostics. */
|
|
88
|
+
function collectThemeDiagnostics(design) {
|
|
89
|
+
const intent = design.diagnostics.map((diagnostic) => ({
|
|
90
|
+
code: 'theme-intent-warning',
|
|
91
|
+
severity: diagnostic.severity,
|
|
92
|
+
path: `theme.${diagnostic.path}`,
|
|
93
|
+
message: diagnostic.message,
|
|
94
|
+
}));
|
|
95
|
+
const compilation = design.computedTheme.diagnostics.map((diagnostic) => ({
|
|
96
|
+
code: 'theme-compilation-error',
|
|
97
|
+
severity: 'error',
|
|
98
|
+
path: `theme.${diagnostic.path}`,
|
|
99
|
+
message: diagnostic.message,
|
|
100
|
+
}));
|
|
101
|
+
return [...intent, ...compilation];
|
|
102
|
+
}
|
|
103
|
+
/*** Compose canonical manifest inputs with a category/theme shell and explicit diagnostics. */
|
|
104
|
+
export function composeCategoryAppManifest(input) {
|
|
105
|
+
const design = compileCategoryDesign(input.category, input.theme);
|
|
106
|
+
const { preset } = design;
|
|
107
|
+
const manifest = {
|
|
108
|
+
...createManifestShell({
|
|
109
|
+
seed: {
|
|
110
|
+
category: input.category,
|
|
111
|
+
appName: input.name ?? preset.defaultName,
|
|
112
|
+
slug: input.slug ?? preset.defaultSlug,
|
|
113
|
+
},
|
|
114
|
+
theme: design.themeConfig,
|
|
115
|
+
version: input.version ?? DEFAULT_TEMPLATE_VERSION,
|
|
116
|
+
navigator: input.navigator,
|
|
117
|
+
screens: { ...input.screens },
|
|
118
|
+
}),
|
|
119
|
+
infra: {
|
|
120
|
+
...structuredClone(BASE_INFRA),
|
|
121
|
+
modules: [...(input.modules ?? [])],
|
|
122
|
+
...(input.modulesConfig ? { modulesConfig: structuredClone(input.modulesConfig) } : {}),
|
|
123
|
+
},
|
|
124
|
+
settings: structuredClone(BASE_SETTINGS),
|
|
125
|
+
...(input.dataSources ? { dataSources: structuredClone(input.dataSources) } : {}),
|
|
126
|
+
...(input.dataBindings ? { dataBindings: structuredClone(input.dataBindings) } : {}),
|
|
127
|
+
};
|
|
128
|
+
const validation = validateTemplateManifest(manifest, input.authoringState);
|
|
129
|
+
const diagnostics = [
|
|
130
|
+
...collectThemeDiagnostics(design),
|
|
131
|
+
...validation.diagnostics,
|
|
132
|
+
];
|
|
133
|
+
return {
|
|
134
|
+
manifest,
|
|
135
|
+
diagnostics,
|
|
136
|
+
status: diagnostics.some((diagnostic) => diagnostic.severity === 'error') ? 'blocked' : 'ready',
|
|
137
|
+
authoringState: validation.authoringState,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/*** Fail catalog registration or release finalization while any blocker remains. */
|
|
141
|
+
export function assertTemplateManifestReady(composition) {
|
|
142
|
+
if (composition.status === 'blocked' || composition.authoringState !== 'release') {
|
|
143
|
+
const reasons = composition.diagnostics
|
|
144
|
+
.filter((diagnostic) => diagnostic.severity === 'error')
|
|
145
|
+
.map((diagnostic) => `${diagnostic.path}: ${diagnostic.message}`);
|
|
146
|
+
throw new Error(`Template manifest is not release-ready.${reasons.length ? ` ${reasons.join(' ')}` : ''}`);
|
|
147
|
+
}
|
|
148
|
+
return composition.manifest;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=compose-category-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-category-manifest.js","sourceRoot":"","sources":["../../src/authoring/compose-category-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AppCategory
|
|
1
|
+
import type { AppCategory } from '@ankhorage/contracts';
|
|
2
|
+
import { type StarterTemplateArtifact } from './templates/starter/index.js';
|
|
2
3
|
import type { ParsedTemplateSelector } from './templateSelector.js';
|
|
3
4
|
export interface TemplateCatalogEntry {
|
|
4
5
|
readonly selector: string;
|
|
@@ -9,9 +10,9 @@ export interface TemplateCatalogEntry {
|
|
|
9
10
|
}
|
|
10
11
|
export declare function listTemplateCatalog(category?: AppCategory): readonly TemplateCatalogEntry[];
|
|
11
12
|
export declare function resolveTemplateCatalogEntry(selector: ParsedTemplateSelector): TemplateCatalogEntry;
|
|
12
|
-
export declare function
|
|
13
|
+
export declare function createTemplateArtifactForSelector(args: {
|
|
13
14
|
readonly selector: ParsedTemplateSelector;
|
|
14
15
|
readonly projectSlug: string;
|
|
15
16
|
readonly displayName: string;
|
|
16
|
-
}):
|
|
17
|
+
}): StarterTemplateArtifact;
|
|
17
18
|
//# sourceMappingURL=catalog.d.ts.map
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAGL,KAAK,uBAAuB,EAG7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,oBAAoB,EAAE,CAQ3F;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,sBAAsB,GAC/B,oBAAoB,CAoBtB;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GAAG,uBAAuB,CAU1B"}
|
package/dist/catalog.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveCategoryDesignPreset } from './design/category-theme.js';
|
|
1
2
|
import { CATEGORY_PRESETS } from './presets/category-presets.js';
|
|
2
3
|
import { createStarterTemplate, listStarterTemplateSummaries, } from './templates/starter/index.js';
|
|
3
4
|
import { createTemplateSelector } from './templateSelector.js';
|
|
@@ -19,7 +20,7 @@ export function resolveTemplateCatalogEntry(selector) {
|
|
|
19
20
|
}
|
|
20
21
|
throw new Error(`Unknown template selector "${selector.selector}". Available selectors: ${availableSelectors.join(', ')}.`);
|
|
21
22
|
}
|
|
22
|
-
export function
|
|
23
|
+
export function createTemplateArtifactForSelector(args) {
|
|
23
24
|
const seed = createTemplateSeed({
|
|
24
25
|
category: args.selector.category,
|
|
25
26
|
displayName: args.displayName,
|
|
@@ -43,6 +44,7 @@ function createTemplateCatalogEntry(summary) {
|
|
|
43
44
|
}
|
|
44
45
|
function createTemplateSeed(args) {
|
|
45
46
|
const preset = CATEGORY_PRESETS[args.category];
|
|
47
|
+
const design = resolveCategoryDesignPreset(args.category);
|
|
46
48
|
return {
|
|
47
49
|
category: args.category,
|
|
48
50
|
categoryLabel: preset.label,
|
|
@@ -50,8 +52,9 @@ function createTemplateSeed(args) {
|
|
|
50
52
|
slug: args.projectSlug,
|
|
51
53
|
summary: preset.summary,
|
|
52
54
|
focusAreas: preset.focusAreas,
|
|
53
|
-
primaryColor:
|
|
54
|
-
harmony:
|
|
55
|
+
primaryColor: design.primaryColor,
|
|
56
|
+
harmony: design.harmony,
|
|
57
|
+
theme: design.themeConfig,
|
|
55
58
|
};
|
|
56
59
|
}
|
|
57
60
|
//# sourceMappingURL=catalog.js.map
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { AppCategory } from '@ankhorage/contracts';
|
|
2
2
|
import type { AnkhCapabilityId } from '@ankhorage/contracts/cli';
|
|
3
|
-
import {
|
|
3
|
+
import { createTemplateArtifactForSelector, resolveTemplateCatalogEntry, type TemplateCatalogEntry } from './catalog.js';
|
|
4
4
|
import type { TemplatesCommandContext, TemplatesCommandRunResult } from './commandContext.js';
|
|
5
|
-
import { type CreateProjectSeedRequest, type ProjectSeedDependencies } from './projectSeed.js';
|
|
5
|
+
import { type CreateProjectSeedRequest, type CreateProjectSeedResult, type ProjectSeedDependencies } from './projectSeed.js';
|
|
6
6
|
type TemplatesCommandName = 'create' | 'inspect' | 'list';
|
|
7
7
|
interface TemplatesCommandRunRequest {
|
|
8
8
|
readonly context: TemplatesCommandContext;
|
|
@@ -21,10 +21,8 @@ export interface TemplatesCommandInvocation {
|
|
|
21
21
|
readonly context: TemplatesCommandContext;
|
|
22
22
|
}
|
|
23
23
|
interface TemplatesCommandServices {
|
|
24
|
-
readonly
|
|
25
|
-
readonly createProjectSeed: (request: CreateProjectSeedRequest, dependencies?: Partial<ProjectSeedDependencies>) => Promise<
|
|
26
|
-
readonly projectPath: string;
|
|
27
|
-
}>;
|
|
24
|
+
readonly createTemplateArtifactForSelector: typeof createTemplateArtifactForSelector;
|
|
25
|
+
readonly createProjectSeed: (request: CreateProjectSeedRequest, dependencies?: Partial<ProjectSeedDependencies>) => Promise<CreateProjectSeedResult>;
|
|
28
26
|
readonly listTemplateCatalog: (category?: AppCategory) => readonly TemplateCatalogEntry[];
|
|
29
27
|
readonly resolveTemplateCatalogEntry: typeof resolveTemplateCatalogEntry;
|
|
30
28
|
}
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createTemplateArtifactForSelector, listTemplateCatalog, resolveTemplateCatalogEntry, } from './catalog.js';
|
|
2
2
|
import { TEMPLATES_CAPABILITIES, TEMPLATES_COMMAND_CATEGORY, TEMPLATES_PACKAGE_NAME, TEMPLATES_PACKAGE_VERSION, } from './packageMetadata.js';
|
|
3
3
|
import { createProjectSeed, } from './projectSeed.js';
|
|
4
|
+
import { summarizeStarterTemplateAssets } from './templates/starter/index.js';
|
|
4
5
|
import { deriveDisplayNameFromSlug, parseProjectSlug, parseTemplateCategory, parseTemplateSelector, } from './templateSelector.js';
|
|
5
6
|
const COMMAND_CAPABILITIES = {
|
|
6
7
|
list: TEMPLATES_CAPABILITIES[0],
|
|
@@ -103,7 +104,7 @@ function renderCommandHelp(command) {
|
|
|
103
104
|
}
|
|
104
105
|
function createTemplatesCommandServices(overrides = {}) {
|
|
105
106
|
return {
|
|
106
|
-
|
|
107
|
+
createTemplateArtifactForSelector: overrides.createTemplateArtifactForSelector ?? createTemplateArtifactForSelector,
|
|
107
108
|
createProjectSeed: overrides.createProjectSeed ?? createProjectSeed,
|
|
108
109
|
listTemplateCatalog: overrides.listTemplateCatalog ?? listTemplateCatalog,
|
|
109
110
|
resolveTemplateCatalogEntry: overrides.resolveTemplateCatalogEntry ?? resolveTemplateCatalogEntry,
|
|
@@ -118,19 +119,19 @@ function runListCommand(request, services, argv) {
|
|
|
118
119
|
function runInspectCommand(request, services, argv) {
|
|
119
120
|
const selector = parseInspectArguments(argv);
|
|
120
121
|
const entry = services.resolveTemplateCatalogEntry(selector);
|
|
121
|
-
const
|
|
122
|
+
const artifact = services.createTemplateArtifactForSelector({
|
|
122
123
|
selector,
|
|
123
124
|
projectSlug: 'template-preview',
|
|
124
125
|
displayName: 'Template Preview',
|
|
125
126
|
});
|
|
126
|
-
request.context.writeStdout(renderTemplateInspection(entry,
|
|
127
|
+
request.context.writeStdout(renderTemplateInspection(entry, artifact));
|
|
127
128
|
return Promise.resolve({ exitCode: 0 });
|
|
128
129
|
}
|
|
129
130
|
async function runCreateCommand(request, services, argv) {
|
|
130
131
|
const { projectSlug, selector } = parseCreateArguments(argv);
|
|
131
132
|
const entry = services.resolveTemplateCatalogEntry(selector);
|
|
132
133
|
const displayName = deriveDisplayNameFromSlug(projectSlug);
|
|
133
|
-
const
|
|
134
|
+
const artifact = services.createTemplateArtifactForSelector({
|
|
134
135
|
selector,
|
|
135
136
|
projectSlug,
|
|
136
137
|
displayName,
|
|
@@ -153,9 +154,10 @@ async function runCreateCommand(request, services, argv) {
|
|
|
153
154
|
templateId: entry.templateId,
|
|
154
155
|
selector: entry.selector,
|
|
155
156
|
},
|
|
156
|
-
manifest,
|
|
157
|
+
manifest: artifact.manifest,
|
|
158
|
+
assets: artifact.assets,
|
|
157
159
|
});
|
|
158
|
-
request.context.writeStdout(renderCreateSuccess(result.projectPath));
|
|
160
|
+
request.context.writeStdout(renderCreateSuccess(result.projectPath, result.createdFiles));
|
|
159
161
|
return { exitCode: 0 };
|
|
160
162
|
}
|
|
161
163
|
function parseListArguments(argv) {
|
|
@@ -190,25 +192,25 @@ function renderTemplateList(entries) {
|
|
|
190
192
|
const lines = entries.map((entry) => ` ${entry.selector} - ${entry.label}: ${entry.description}`);
|
|
191
193
|
return ['Available templates:', '', ...lines, ''].join('\n');
|
|
192
194
|
}
|
|
193
|
-
function renderTemplateInspection(entry,
|
|
195
|
+
function renderTemplateInspection(entry, artifact) {
|
|
194
196
|
return `${JSON.stringify({
|
|
195
197
|
selector: entry.selector,
|
|
196
198
|
category: entry.category,
|
|
197
199
|
templateId: entry.templateId,
|
|
198
200
|
label: entry.label,
|
|
199
201
|
description: entry.description,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
+
assetCount: artifact.assets.length,
|
|
203
|
+
assets: summarizeStarterTemplateAssets(artifact.assets),
|
|
204
|
+
manifestVersion: artifact.manifest.metadata.version,
|
|
205
|
+
manifest: artifact.manifest,
|
|
202
206
|
}, null, 2)}\n`;
|
|
203
207
|
}
|
|
204
|
-
function renderCreateSuccess(projectPath) {
|
|
208
|
+
function renderCreateSuccess(projectPath, createdFiles) {
|
|
205
209
|
return [
|
|
206
210
|
`Created manifest-first project seed at ${projectPath}`,
|
|
207
211
|
'',
|
|
208
212
|
'Files:',
|
|
209
|
-
|
|
210
|
-
' ankh.template.json',
|
|
211
|
-
' README.md',
|
|
213
|
+
...createdFiles.map((filePath) => ` ${filePath}`),
|
|
212
214
|
'',
|
|
213
215
|
].join('\n');
|
|
214
216
|
}
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|