@ankhorage/templates 8.0.0 → 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 +6 -0
- package/assets/templates/capability-proof/checker.svg +1 -0
- package/dist/catalog.d.ts +4 -3
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1 -1
- 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/generators/create-category-app.js +1 -1
- package/dist/generators/create-category-app.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.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/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.template.d.ts +3 -4
- package/dist/templates/starter/starter.template.d.ts.map +1 -1
- package/dist/templates/starter/starter.template.js +4 -2
- package/dist/templates/starter/starter.template.js.map +1 -1
- package/dist/templates/starter/starter.types.d.ts +3 -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 +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -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>
|
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
|
@@ -20,7 +20,7 @@ export function resolveTemplateCatalogEntry(selector) {
|
|
|
20
20
|
}
|
|
21
21
|
throw new Error(`Unknown template selector "${selector.selector}". Available selectors: ${availableSelectors.join(', ')}.`);
|
|
22
22
|
}
|
|
23
|
-
export function
|
|
23
|
+
export function createTemplateArtifactForSelector(args) {
|
|
24
24
|
const seed = createTemplateSeed({
|
|
25
25
|
category: args.selector.category,
|
|
26
26
|
displayName: args.displayName,
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-category-app.js","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAqB,MAAM,sBAAsB,CAAC;AAEhF,SAAS,qBAAqB,CAC5B,SAA2C,EAC3C,QAAwC,EACxC,QAAgB;IAEhB,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;IAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,QAAqB,EAAE,SAAgC;IAC9E,OAAO,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,QAAqB,EAAE,SAAgC;IAC9E,OAAO,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAgC;IAC1D,OAAO,SAAS,EAAE,aAAa,IAAI,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;AAClE,CAAC;AAED,MAAM,kBAAkB,GAGpB;IACF,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC7C,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/C,MAAM,cAAc,GAAG,2BAA2B,CAAC,QAAQ,EAAE;YAC3D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QAEH,OAAO,qBAAqB,CAAC;YAC3B,QAAQ;YACR,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC7C,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,qBAAqB,CACjC,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EACnC,cAAc,CAAC,YAAY,CAC5B;YACD,OAAO,EAAE,qBAAqB,CAC5B,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAC9B,cAAc,CAAC,OAAO,CACvB;YACD,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,WAAW;YAC3D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-category-app.js","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export { ACCENT_TONE_FAMILIES, ACCENT_TONE_TARGETS, type AccentToneFamily, FOUND
|
|
|
5
5
|
export { createOAuthFixtureManifest, listOAuthFixtures, OAUTH_CALLBACK_ROUTE, OAUTH_FIXTURE_IDS, type OAuthFixtureDefinition, type OAuthFixtureId, resolveOAuthFixture, } from './fixtures/oauth';
|
|
6
6
|
export { createCategoryAppManifest } from './generators/create-category-app';
|
|
7
7
|
export { CATEGORY_PRESET_RECONCILIATION, CATEGORY_PRESETS, type CategoryPreset, type CategoryPresetFieldReconciliation, type CategoryPresetReconciliationDecision, type CategoryPresetReconciliationReport, } from './presets/category-presets';
|
|
8
|
-
export { type CategoryStarterTemplateDefinition, createStarterTemplate, listStarterTemplates, listStarterTemplatesByCategory, listStarterTemplateSummaries, resolveStarterTemplate, type StarterTemplateFactory, type StarterTemplateId, type StarterTemplateOptions, type StarterTemplateSelection, type StarterTemplateSummary, TEMPLATE_KINDS, type TemplateKind, type TemplateSeed, } from './templates/starter';
|
|
8
|
+
export { type CategoryStarterTemplateDefinition, createStarterTemplate, createStarterTemplateArtifact, listStarterTemplates, listStarterTemplatesByCategory, listStarterTemplateSummaries, resolveStarterTemplate, type StarterTemplateArtifact, type StarterTemplateAsset, type StarterTemplateAssetSummary, type StarterTemplateFactory, type StarterTemplateId, type StarterTemplateOptions, type StarterTemplateResult, type StarterTemplateSelection, type StarterTemplateSummary, summarizeStarterTemplateAssets, TEMPLATE_IMAGE_CONTENT_TYPES, TEMPLATE_KINDS, type TemplateImageContentType, type TemplateKind, type TemplateSeed, validateStarterTemplateAssets, } from './templates/starter';
|
|
9
9
|
export { APP_CATEGORIES, type AppCategory, type SplashScreenResizeMode, type SplashScreenSpec, } from '@ankhorage/contracts';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,KAAK,8BAA8B,EACnC,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,2BAA2B,EAC3B,KAAK,4BAA4B,GAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,SAAS,EACd,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,iCAAiC,EACtC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,GACxC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,iCAAiC,EACtC,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,KAAK,8BAA8B,EACnC,0BAA0B,EAC1B,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,2BAA2B,EAC3B,KAAK,4BAA4B,GAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,SAAS,EACd,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,iCAAiC,EACtC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,GACxC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,iCAAiC,EACtC,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,6 @@ export { ACCENT_TONE_FAMILIES, ACCENT_TONE_TARGETS, FOUNDATION_TONE_FAMILIES, FO
|
|
|
5
5
|
export { createOAuthFixtureManifest, listOAuthFixtures, OAUTH_CALLBACK_ROUTE, OAUTH_FIXTURE_IDS, resolveOAuthFixture, } from './fixtures/oauth';
|
|
6
6
|
export { createCategoryAppManifest } from './generators/create-category-app';
|
|
7
7
|
export { CATEGORY_PRESET_RECONCILIATION, CATEGORY_PRESETS, } from './presets/category-presets';
|
|
8
|
-
export { createStarterTemplate, listStarterTemplates, listStarterTemplatesByCategory, listStarterTemplateSummaries, resolveStarterTemplate, TEMPLATE_KINDS, } from './templates/starter';
|
|
8
|
+
export { createStarterTemplate, createStarterTemplateArtifact, listStarterTemplates, listStarterTemplatesByCategory, listStarterTemplateSummaries, resolveStarterTemplate, summarizeStarterTemplateAssets, TEMPLATE_IMAGE_CONTENT_TYPES, TEMPLATE_KINDS, validateStarterTemplateAssets, } from './templates/starter';
|
|
9
9
|
export { APP_CATEGORIES, } from '@ankhorage/contracts';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE3B,0BAA0B,EAM1B,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAIL,qBAAqB,EAErB,2BAA2B,GAE5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,aAAa,GAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EAEnB,wBAAwB,EACxB,uBAAuB,EAEvB,eAAe,EAEf,iBAAiB,GAKlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAGjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GAKjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE3B,0BAA0B,EAM1B,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAIL,qBAAqB,EAErB,2BAA2B,GAE5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,aAAa,GAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EAEnB,wBAAwB,EACxB,uBAAuB,EAEvB,eAAe,EAEf,iBAAiB,GAKlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAGjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GAKjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EAUtB,8BAA8B,EAC9B,4BAA4B,EAC5B,cAAc,EAId,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,GAIf,MAAM,sBAAsB,CAAC"}
|
package/dist/projectSeed.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import type { AppCategory, AppManifest } from '@ankhorage/contracts';
|
|
3
|
+
import { type StarterTemplateAsset } from './templates/starter/starter.assets';
|
|
3
4
|
interface TemplateSeedMetadata {
|
|
4
5
|
readonly package: string;
|
|
5
6
|
readonly version: string;
|
|
@@ -15,13 +16,16 @@ export interface CreateProjectSeedRequest {
|
|
|
15
16
|
readonly readmeText: string;
|
|
16
17
|
readonly metadata: TemplateSeedMetadata;
|
|
17
18
|
readonly manifest: AppManifest;
|
|
19
|
+
readonly assets: readonly StarterTemplateAsset[];
|
|
18
20
|
}
|
|
19
21
|
export interface CreateProjectSeedResult {
|
|
20
22
|
readonly projectPath: string;
|
|
23
|
+
readonly createdFiles: readonly string[];
|
|
21
24
|
}
|
|
22
25
|
export interface ProjectSeedDependencies {
|
|
23
26
|
readonly mkdir: typeof mkdir;
|
|
24
27
|
readonly pathExists: (targetPath: string) => Promise<boolean>;
|
|
28
|
+
readonly readTemplateAsset: (asset: StarterTemplateAsset) => Promise<Uint8Array>;
|
|
25
29
|
readonly writeFile: typeof writeFile;
|
|
26
30
|
}
|
|
27
31
|
export declare function createProjectSeed(request: CreateProjectSeedRequest, dependencies?: Partial<ProjectSeedDependencies>): Promise<CreateProjectSeedResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectSeed.d.ts","sourceRoot":"","sources":["../src/projectSeed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectSeed.d.ts","sourceRoot":"","sources":["../src/projectSeed.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,EAA4B,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIrF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,oCAAoC,CAAC;AAK5C,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAOD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACjF,QAAQ,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC;CACtC;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,YAAY,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAClD,OAAO,CAAC,uBAAuB,CAAC,CA2BlC"}
|
package/dist/projectSeed.js
CHANGED
|
@@ -1,24 +1,94 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { lstat, mkdir, readFile, realpath, stat, writeFile } from 'node:fs/promises';
|
|
2
3
|
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { summarizeStarterTemplateAssets, validateStarterTemplateAssets, } from './templates/starter/starter.assets';
|
|
6
|
+
const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
7
|
+
const PACKAGED_TEMPLATE_ASSET_ROOT = path.join(PACKAGE_ROOT, 'assets', 'templates');
|
|
3
8
|
export async function createProjectSeed(request, dependencies = {}) {
|
|
4
9
|
const resolvedDependencies = createProjectSeedDependencies(dependencies);
|
|
5
10
|
const projectPath = path.resolve(request.cwd, request.projectSlug);
|
|
6
11
|
if (await resolvedDependencies.pathExists(projectPath)) {
|
|
7
12
|
throw new Error(`Project path already exists: ${projectPath}`);
|
|
8
13
|
}
|
|
14
|
+
const assets = validateStarterTemplateAssets(request.manifest, request.assets);
|
|
15
|
+
const materializedAssets = await materializeTemplateAssets(assets, resolvedDependencies.readTemplateAsset);
|
|
9
16
|
await resolvedDependencies.mkdir(projectPath, { recursive: false });
|
|
10
|
-
await
|
|
11
|
-
await
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
await writeProjectMetadata(projectPath, request, assets, resolvedDependencies.writeFile);
|
|
18
|
+
await writeMaterializedAssets(projectPath, materializedAssets, resolvedDependencies);
|
|
19
|
+
return {
|
|
20
|
+
projectPath,
|
|
21
|
+
createdFiles: [
|
|
22
|
+
'ankh.config.json',
|
|
23
|
+
'ankh.template.json',
|
|
24
|
+
'README.md',
|
|
25
|
+
...assets.map((asset) => asset.targetPath),
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/*** Write the manifest, template provenance, and readme for one generated project seed. */
|
|
30
|
+
async function writeProjectMetadata(projectPath, request, assets, writeProjectFile) {
|
|
31
|
+
await writeProjectFile(path.join(projectPath, 'ankh.config.json'), `${JSON.stringify(request.manifest, null, 2)}\n`, 'utf8');
|
|
32
|
+
await writeProjectFile(path.join(projectPath, 'ankh.template.json'), `${JSON.stringify({
|
|
33
|
+
...request.metadata,
|
|
34
|
+
assets: summarizeStarterTemplateAssets(assets),
|
|
35
|
+
}, null, 2)}\n`, 'utf8');
|
|
36
|
+
await writeProjectFile(path.join(projectPath, 'README.md'), request.readmeText, 'utf8');
|
|
37
|
+
}
|
|
38
|
+
/*** Write preverified template assets below their app-relative manifest paths. */
|
|
39
|
+
async function writeMaterializedAssets(projectPath, materializedAssets, dependencies) {
|
|
40
|
+
for (const materialized of materializedAssets) {
|
|
41
|
+
const targetPath = path.resolve(projectPath, materialized.asset.targetPath);
|
|
42
|
+
assertInside(projectPath, targetPath, 'Template asset target');
|
|
43
|
+
await dependencies.mkdir(path.dirname(targetPath), { recursive: true });
|
|
44
|
+
await dependencies.writeFile(targetPath, materialized.contents);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/*** Resolve and byte-verify every asset before project creation starts. */
|
|
48
|
+
async function materializeTemplateAssets(assets, readTemplateAsset) {
|
|
49
|
+
return Promise.all(assets.map(async (asset) => ({
|
|
50
|
+
asset,
|
|
51
|
+
contents: await readTemplateAsset(asset),
|
|
52
|
+
})));
|
|
14
53
|
}
|
|
15
54
|
function createProjectSeedDependencies(overrides) {
|
|
16
55
|
return {
|
|
17
56
|
mkdir: overrides.mkdir ?? mkdir,
|
|
18
57
|
pathExists: overrides.pathExists ?? pathExists,
|
|
58
|
+
readTemplateAsset: overrides.readTemplateAsset ?? readPackagedTemplateAsset,
|
|
19
59
|
writeFile: overrides.writeFile ?? writeFile,
|
|
20
60
|
};
|
|
21
61
|
}
|
|
62
|
+
/*** Read and verify one immutable image from the published Templates asset inventory. */
|
|
63
|
+
async function readPackagedTemplateAsset(asset) {
|
|
64
|
+
const sourcePath = path.resolve(PACKAGE_ROOT, asset.sourcePath);
|
|
65
|
+
assertInside(PACKAGED_TEMPLATE_ASSET_ROOT, sourcePath, 'Template asset source');
|
|
66
|
+
const sourceStats = await lstat(sourcePath);
|
|
67
|
+
if (!sourceStats.isFile() || sourceStats.isSymbolicLink()) {
|
|
68
|
+
throw new Error(`Template asset source must be a regular file: ${asset.sourcePath}`);
|
|
69
|
+
}
|
|
70
|
+
const canonicalSourcePath = await realpath(sourcePath);
|
|
71
|
+
assertInside(PACKAGED_TEMPLATE_ASSET_ROOT, canonicalSourcePath, 'Template asset source');
|
|
72
|
+
const contents = await readFile(canonicalSourcePath);
|
|
73
|
+
if (contents.byteLength !== asset.sizeBytes) {
|
|
74
|
+
throw new Error(`Template asset byte size does not match its descriptor: ${asset.sourcePath}`);
|
|
75
|
+
}
|
|
76
|
+
const sha256 = createHash('sha256').update(contents).digest('hex');
|
|
77
|
+
if (sha256 !== asset.sha256) {
|
|
78
|
+
throw new Error(`Template asset sha256 does not match its descriptor: ${asset.sourcePath}`);
|
|
79
|
+
}
|
|
80
|
+
return contents;
|
|
81
|
+
}
|
|
82
|
+
/*** Require a resolved path to remain strictly below its declared owner directory. */
|
|
83
|
+
function assertInside(parentPath, childPath, label) {
|
|
84
|
+
const relativePath = path.relative(parentPath, childPath);
|
|
85
|
+
if (relativePath === '' ||
|
|
86
|
+
relativePath === '..' ||
|
|
87
|
+
relativePath.startsWith(`..${path.sep}`) ||
|
|
88
|
+
path.isAbsolute(relativePath)) {
|
|
89
|
+
throw new Error(`${label} escapes its owner directory: ${childPath}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
22
92
|
async function pathExists(targetPath) {
|
|
23
93
|
try {
|
|
24
94
|
await stat(targetPath);
|
package/dist/projectSeed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectSeed.js","sourceRoot":"","sources":["../src/projectSeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"projectSeed.js","sourceRoot":"","sources":["../src/projectSeed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createStarterTemplateArtifact, type StarterTemplateArtifact, type StarterTemplateAsset, type StarterTemplateAssetSummary, summarizeStarterTemplateAssets, TEMPLATE_IMAGE_CONTENT_TYPES, type TemplateImageContentType, validateStarterTemplateAssets, } from './starter.assets';
|
|
2
|
+
export { createStarterTemplate, listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate, TEMPLATE_KINDS, type CategoryStarterTemplateDefinition, type StarterTemplateFactory, type StarterTemplateId, type StarterTemplateOptions, type StarterTemplateSelection, type StarterTemplateSummary, type StarterTemplateResult, type TemplateKind, type TemplateSeed, } from './starter.template';
|
|
2
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,wBAAwB,EAC7B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export { createStarterTemplateArtifact, summarizeStarterTemplateAssets, TEMPLATE_IMAGE_CONTENT_TYPES, validateStarterTemplateAssets, } from './starter.assets';
|
|
1
2
|
export { createStarterTemplate, listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate, TEMPLATE_KINDS, } from './starter.template';
|
|
2
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAI7B,8BAA8B,EAC9B,4BAA4B,EAE5B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,cAAc,GAUf,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AppManifest } from '@ankhorage/contracts';
|
|
2
|
+
export declare const TEMPLATE_IMAGE_CONTENT_TYPES: readonly ["image/avif", "image/gif", "image/jpeg", "image/png", "image/svg+xml", "image/webp"];
|
|
3
|
+
export type TemplateImageContentType = (typeof TEMPLATE_IMAGE_CONTENT_TYPES)[number];
|
|
4
|
+
export interface StarterTemplateAsset {
|
|
5
|
+
readonly sourcePath: string;
|
|
6
|
+
readonly targetPath: string;
|
|
7
|
+
readonly contentType: TemplateImageContentType;
|
|
8
|
+
readonly sizeBytes: number;
|
|
9
|
+
readonly sha256: string;
|
|
10
|
+
}
|
|
11
|
+
export type StarterTemplateAssetSummary = Omit<StarterTemplateAsset, 'sourcePath'>;
|
|
12
|
+
export interface StarterTemplateArtifact {
|
|
13
|
+
readonly manifest: AppManifest;
|
|
14
|
+
readonly assets: readonly StarterTemplateAsset[];
|
|
15
|
+
}
|
|
16
|
+
/*** Compose one canonical starter artifact from a manifest and its distributable image files. */
|
|
17
|
+
export declare function createStarterTemplateArtifact(manifest: AppManifest, assets?: readonly StarterTemplateAsset[]): StarterTemplateArtifact;
|
|
18
|
+
/*** Validate and deterministically order the bundled image files owned by one starter manifest. */
|
|
19
|
+
export declare function validateStarterTemplateAssets(manifest: AppManifest, assets: readonly StarterTemplateAsset[]): readonly StarterTemplateAsset[];
|
|
20
|
+
/*** Describe distributable image assets without exposing their package-internal source paths. */
|
|
21
|
+
export declare function summarizeStarterTemplateAssets(assets: readonly StarterTemplateAsset[]): readonly StarterTemplateAssetSummary[];
|
|
22
|
+
//# sourceMappingURL=starter.assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter.assets.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,sBAAsB,CAAC;AAEpE,eAAO,MAAM,4BAA4B,gGAO/B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAErF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAEnF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAWD,iGAAiG;AACjG,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,SAAS,oBAAoB,EAAO,GAC3C,uBAAuB,CAKzB;AAED,mGAAmG;AACnG,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS,oBAAoB,EAAE,GACtC,SAAS,oBAAoB,EAAE,CA+BjC;AAED,iGAAiG;AACjG,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,oBAAoB,EAAE,GACtC,SAAS,2BAA2B,EAAE,CAOxC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { posix } from 'node:path';
|
|
2
|
+
export const TEMPLATE_IMAGE_CONTENT_TYPES = [
|
|
3
|
+
'image/avif',
|
|
4
|
+
'image/gif',
|
|
5
|
+
'image/jpeg',
|
|
6
|
+
'image/png',
|
|
7
|
+
'image/svg+xml',
|
|
8
|
+
'image/webp',
|
|
9
|
+
];
|
|
10
|
+
const CONTENT_TYPE_EXTENSIONS = {
|
|
11
|
+
'image/avif': ['.avif'],
|
|
12
|
+
'image/gif': ['.gif'],
|
|
13
|
+
'image/jpeg': ['.jpeg', '.jpg'],
|
|
14
|
+
'image/png': ['.png'],
|
|
15
|
+
'image/svg+xml': ['.svg'],
|
|
16
|
+
'image/webp': ['.webp'],
|
|
17
|
+
};
|
|
18
|
+
/*** Compose one canonical starter artifact from a manifest and its distributable image files. */
|
|
19
|
+
export function createStarterTemplateArtifact(manifest, assets = []) {
|
|
20
|
+
return {
|
|
21
|
+
manifest,
|
|
22
|
+
assets: validateStarterTemplateAssets(manifest, assets),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/*** Validate and deterministically order the bundled image files owned by one starter manifest. */
|
|
26
|
+
export function validateStarterTemplateAssets(manifest, assets) {
|
|
27
|
+
const bundledMedia = collectBundledImageMedia(manifest);
|
|
28
|
+
const assetsByTarget = new Map();
|
|
29
|
+
const sourcePaths = new Set();
|
|
30
|
+
for (const asset of assets) {
|
|
31
|
+
validateAssetDescriptor(asset);
|
|
32
|
+
if (assetsByTarget.has(asset.targetPath)) {
|
|
33
|
+
throw new Error(`Starter template asset target is duplicated: ${asset.targetPath}`);
|
|
34
|
+
}
|
|
35
|
+
if (sourcePaths.has(asset.sourcePath)) {
|
|
36
|
+
throw new Error(`Starter template asset source is duplicated: ${asset.sourcePath}`);
|
|
37
|
+
}
|
|
38
|
+
assetsByTarget.set(asset.targetPath, asset);
|
|
39
|
+
sourcePaths.add(asset.sourcePath);
|
|
40
|
+
}
|
|
41
|
+
for (const [targetPath, mediaAsset] of bundledMedia) {
|
|
42
|
+
const asset = assetsByTarget.get(targetPath);
|
|
43
|
+
if (asset === undefined) {
|
|
44
|
+
throw new Error(`Bundled manifest image is missing its template asset: ${targetPath}`);
|
|
45
|
+
}
|
|
46
|
+
validateMediaMatchesAsset(mediaAsset, asset);
|
|
47
|
+
}
|
|
48
|
+
for (const targetPath of assetsByTarget.keys()) {
|
|
49
|
+
if (!bundledMedia.has(targetPath)) {
|
|
50
|
+
throw new Error(`Template asset is not referenced by bundled manifest media: ${targetPath}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return [...assets].sort((left, right) => left.targetPath.localeCompare(right.targetPath));
|
|
54
|
+
}
|
|
55
|
+
/*** Describe distributable image assets without exposing their package-internal source paths. */
|
|
56
|
+
export function summarizeStarterTemplateAssets(assets) {
|
|
57
|
+
return assets.map((asset) => ({
|
|
58
|
+
targetPath: asset.targetPath,
|
|
59
|
+
contentType: asset.contentType,
|
|
60
|
+
sizeBytes: asset.sizeBytes,
|
|
61
|
+
sha256: asset.sha256,
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
/*** Collect unique bundled image media by app-relative target path. */
|
|
65
|
+
function collectBundledImageMedia(manifest) {
|
|
66
|
+
const bundledMedia = new Map();
|
|
67
|
+
for (const mediaAsset of Object.values(manifest.media?.assets ?? {})) {
|
|
68
|
+
if (mediaAsset.source.kind !== 'bundled')
|
|
69
|
+
continue;
|
|
70
|
+
if (mediaAsset.kind !== 'image') {
|
|
71
|
+
throw new Error(`Starter template bundled media must be an image: ${mediaAsset.id}`);
|
|
72
|
+
}
|
|
73
|
+
validateRelativePath(mediaAsset.source.path, 'assets/', 'Bundled manifest image path');
|
|
74
|
+
if (bundledMedia.has(mediaAsset.source.path)) {
|
|
75
|
+
throw new Error(`Bundled manifest image path is duplicated: ${mediaAsset.source.path}`);
|
|
76
|
+
}
|
|
77
|
+
bundledMedia.set(mediaAsset.source.path, mediaAsset);
|
|
78
|
+
}
|
|
79
|
+
return bundledMedia;
|
|
80
|
+
}
|
|
81
|
+
/*** Validate one immutable packaged-source to generated-target image descriptor. */
|
|
82
|
+
function validateAssetDescriptor(asset) {
|
|
83
|
+
validateRelativePath(asset.sourcePath, 'assets/templates/', 'Template asset source path');
|
|
84
|
+
validateRelativePath(asset.targetPath, 'assets/', 'Template asset target path');
|
|
85
|
+
if (!isTemplateImageContentType(asset.contentType)) {
|
|
86
|
+
throw new Error(`Unsupported template image content type: ${String(asset.contentType)}`);
|
|
87
|
+
}
|
|
88
|
+
const extension = posix.extname(asset.targetPath).toLowerCase();
|
|
89
|
+
if (!CONTENT_TYPE_EXTENSIONS[asset.contentType].includes(extension)) {
|
|
90
|
+
throw new Error(`Template asset extension ${extension || '(missing)'} does not match ${asset.contentType}.`);
|
|
91
|
+
}
|
|
92
|
+
if (!Number.isSafeInteger(asset.sizeBytes) || asset.sizeBytes <= 0) {
|
|
93
|
+
throw new Error(`Template asset size must be a positive safe integer: ${asset.targetPath}`);
|
|
94
|
+
}
|
|
95
|
+
if (!/^[0-9a-f]{64}$/u.test(asset.sha256)) {
|
|
96
|
+
throw new Error(`Template asset sha256 must be 64 lowercase hex characters: ${asset.targetPath}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/*** Require manifest image metadata to describe the same immutable file as its bundle entry. */
|
|
100
|
+
function validateMediaMatchesAsset(mediaAsset, asset) {
|
|
101
|
+
if (mediaAsset.contentType !== asset.contentType) {
|
|
102
|
+
throw new Error(`Bundled manifest image content type differs from its asset: ${asset.targetPath}`);
|
|
103
|
+
}
|
|
104
|
+
if (mediaAsset.metadata?.sizeBytes !== asset.sizeBytes) {
|
|
105
|
+
throw new Error(`Bundled manifest image size differs from its asset: ${asset.targetPath}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/*** Require a normalized portable relative path below its canonical owned prefix. */
|
|
109
|
+
function validateRelativePath(value, prefix, label) {
|
|
110
|
+
const segments = value.split('/');
|
|
111
|
+
if (value === '' ||
|
|
112
|
+
value.startsWith('/') ||
|
|
113
|
+
value.includes('\\') ||
|
|
114
|
+
posix.normalize(value) !== value ||
|
|
115
|
+
!value.startsWith(prefix) ||
|
|
116
|
+
segments.some((segment) => segment === '' || segment === '.' || segment === '..')) {
|
|
117
|
+
throw new Error(`${label} must be a normalized relative path below ${prefix}: ${value}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/*** Narrow an unknown content type to the canonical template-image inventory. */
|
|
121
|
+
function isTemplateImageContentType(value) {
|
|
122
|
+
return TEMPLATE_IMAGE_CONTENT_TYPES.some((contentType) => contentType === value);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=starter.assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter.assets.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { AppManifest } from '@ankhorage/contracts';
|
|
2
1
|
import { listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate } from './starter.registry';
|
|
3
|
-
import { TEMPLATE_KINDS, type StarterTemplateOptions, type TemplateSeed } from './starter.types';
|
|
2
|
+
import { TEMPLATE_KINDS, type StarterTemplateOptions, type StarterTemplateResult, type TemplateSeed } from './starter.types';
|
|
4
3
|
export { TEMPLATE_KINDS };
|
|
5
4
|
export { listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate, };
|
|
6
|
-
export type { CategoryStarterTemplateDefinition, StarterTemplateFactory, StarterTemplateId, StarterTemplateOptions, StarterTemplateSelection, StarterTemplateSummary, TemplateKind, TemplateSeed, } from './starter.types';
|
|
7
|
-
export declare function createStarterTemplate(seed: TemplateSeed, options?: StarterTemplateOptions):
|
|
5
|
+
export type { CategoryStarterTemplateDefinition, StarterTemplateFactory, StarterTemplateId, StarterTemplateOptions, StarterTemplateSelection, StarterTemplateSummary, StarterTemplateResult, TemplateKind, TemplateSeed, } from './starter.types';
|
|
6
|
+
export declare function createStarterTemplate(seed: TemplateSeed, options?: StarterTemplateOptions): StarterTemplateResult;
|
|
8
7
|
//# sourceMappingURL=starter.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.template.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"starter.template.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,GACvB,CAAC;AACF,YAAY,EACV,iCAAiC,EACjC,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAMvB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { assertTemplateManifestReady, validateTemplateManifest, } from '../../authoring/compose-category-manifest';
|
|
2
|
+
import { createStarterTemplateArtifact } from './starter.assets';
|
|
2
3
|
import { listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate, } from './starter.registry';
|
|
3
|
-
import { TEMPLATE_KINDS } from './starter.types';
|
|
4
|
+
import { TEMPLATE_KINDS, } from './starter.types';
|
|
4
5
|
export { TEMPLATE_KINDS };
|
|
5
6
|
export { listStarterTemplateSummaries, listStarterTemplates, listStarterTemplatesByCategory, resolveStarterTemplate, };
|
|
6
7
|
export function createStarterTemplate(seed, options = {}) {
|
|
7
8
|
const template = resolveStarterTemplate(seed, options.templateId);
|
|
8
|
-
|
|
9
|
+
const manifest = assertTemplateManifestReady(validateTemplateManifest(template.create(seed, options)));
|
|
10
|
+
return createStarterTemplateArtifact(manifest, template.assets);
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=starter.template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.template.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"starter.template.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,GAIf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,GACvB,CAAC;AAaF,MAAM,UAAU,qBAAqB,CACnC,IAAkB,EAClB,UAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,2BAA2B,CAC1C,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACzD,CAAC;IACF,OAAO,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AppCategory, AppManifest, ThemeConfig } from '@ankhorage/contracts';
|
|
2
|
+
import type { StarterTemplateArtifact, StarterTemplateAsset } from './starter.assets';
|
|
2
3
|
export declare const TEMPLATE_KINDS: readonly ["starter"];
|
|
3
4
|
export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
|
|
4
5
|
export type StarterTemplateId = string;
|
|
@@ -35,5 +36,7 @@ export interface CategoryStarterTemplateDefinition {
|
|
|
35
36
|
label: string;
|
|
36
37
|
description: string;
|
|
37
38
|
create: StarterTemplateFactory;
|
|
39
|
+
assets?: readonly StarterTemplateAsset[];
|
|
38
40
|
}
|
|
41
|
+
export type StarterTemplateResult = StarterTemplateArtifact;
|
|
39
42
|
//# sourceMappingURL=starter.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.types.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAElF,eAAO,MAAM,cAAc,sBAAuB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,iBAAiB,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,WAAW,CAAC;AAEjB,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,iBAAiB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"starter.types.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,eAAO,MAAM,cAAc,sBAAuB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,iBAAiB,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,WAAW,CAAC;AAEjB,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,iBAAiB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.types.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"starter.types.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,CAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/templates",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Reusable Ankhorage app templates, presets, and manifest generators.",
|
|
5
5
|
"homepage": "https://github.com/ankhorage/templates#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
|
+
"assets",
|
|
33
34
|
"CHANGELOG.md"
|
|
34
35
|
],
|
|
35
36
|
"exports": {
|
|
@@ -80,7 +81,7 @@
|
|
|
80
81
|
},
|
|
81
82
|
"devDependencies": {
|
|
82
83
|
"@ankhorage/ankh": "^0.8.8",
|
|
83
|
-
"@ankhorage/devtools": "^1.
|
|
84
|
+
"@ankhorage/devtools": "^1.10.2",
|
|
84
85
|
"@ankhorage/doctor": "^0.10.6",
|
|
85
86
|
"@ankhorage/paradox": "^0.1.24",
|
|
86
87
|
"@types/bun": "^1.4.0",
|