@12ui/design 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -6
- package/dist/cli-capabilities.d.ts +47 -0
- package/dist/cli-capabilities.d.ts.map +1 -0
- package/dist/cli-capabilities.js +28 -0
- package/dist/cli-capabilities.js.map +1 -0
- package/dist/cli-export-command.d.ts.map +1 -1
- package/dist/cli-export-command.js +11 -9
- package/dist/cli-export-command.js.map +1 -1
- package/dist/cli-export-output-directory.d.ts +5 -0
- package/dist/cli-export-output-directory.d.ts.map +1 -0
- package/dist/cli-export-output-directory.js +34 -0
- package/dist/cli-export-output-directory.js.map +1 -0
- package/dist/cli-image-command.d.ts.map +1 -1
- package/dist/cli-image-command.js +4 -1
- package/dist/cli-image-command.js.map +1 -1
- package/dist/cli-persistence.d.ts +9 -0
- package/dist/cli-persistence.d.ts.map +1 -1
- package/dist/cli-persistence.js +75 -2
- package/dist/cli-persistence.js.map +1 -1
- package/dist/cli-skill-command.d.ts.map +1 -1
- package/dist/cli-skill-command.js +6 -2
- package/dist/cli-skill-command.js.map +1 -1
- package/dist/cli.js +6 -20
- package/dist/cli.js.map +1 -1
- package/dist/conversion-client.d.ts +5 -1
- package/dist/conversion-client.d.ts.map +1 -1
- package/dist/conversion-client.js +1 -1
- package/dist/conversion-client.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/legacy-cli-cleanup.d.ts +11 -0
- package/dist/legacy-cli-cleanup.d.ts.map +1 -0
- package/dist/legacy-cli-cleanup.js +97 -0
- package/dist/legacy-cli-cleanup.js.map +1 -0
- package/dist/legacy-skill-catalog.d.ts +1 -0
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +38 -1
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/project-profiles.d.ts +23 -0
- package/dist/project-profiles.d.ts.map +1 -1
- package/dist/project-profiles.js +19 -1
- package/dist/project-profiles.js.map +1 -1
- package/dist/skill-installer.d.ts.map +1 -1
- package/dist/skill-installer.js +5 -5
- package/dist/skill-installer.js.map +1 -1
- package/package.json +1 -1
- package/skills/design/SKILL.md +9 -4
- package/skills/design-convert/SKILL.md +44 -13
package/README.md
CHANGED
|
@@ -72,11 +72,19 @@ then `OPENAI_API_KEY` from the process or exactly `<project-root>/.env`. It
|
|
|
72
72
|
refuses a Git-tracked `.env`, never stores or prints the key, persists attempt
|
|
73
73
|
evidence, and never switches providers after dispatch. Choose `--aspect`
|
|
74
74
|
explicitly for the target interface; it defaults to `landscape` for
|
|
75
|
-
compatibility.
|
|
75
|
+
compatibility. Generated candidates are always PNG bytes, and `--out` must end
|
|
76
|
+
in `.png`.
|
|
76
77
|
|
|
77
78
|
`export` downloads one successful base LayerDoc once and dispatches the chosen
|
|
78
79
|
formats in parallel. Project exports require exact web/native profiles; image
|
|
79
|
-
extraction is not repeated.
|
|
80
|
+
extraction is not repeated. The command creates parent directories as needed
|
|
81
|
+
and accepts an existing destination directory, but refuses before any API
|
|
82
|
+
request when a selected output, its asset directory, or
|
|
83
|
+
`export-manifest.json` already exists.
|
|
84
|
+
|
|
85
|
+
`capabilities --json` reports the exact `projectProfileSchema`, including the
|
|
86
|
+
required fields and `version: 1` constraint, beside the supported
|
|
87
|
+
`projectProfiles` combinations.
|
|
80
88
|
|
|
81
89
|
## Design Corpus retrieval
|
|
82
90
|
|
|
@@ -217,8 +225,26 @@ signed raster artifact beside the requested result. Set `TWELVE_UI_ORIGIN` to
|
|
|
217
225
|
override `https://12ui.com`; waits default to the operation expiry and can be
|
|
218
226
|
bounded explicitly with `--timeout-ms`.
|
|
219
227
|
|
|
220
|
-
|
|
221
|
-
|
|
228
|
+
For a detached conversion, omit `--out` from `convert`, capture its JSON stdout,
|
|
229
|
+
and pass the returned ID plus both `--output` and `--out` to `resume`. The
|
|
230
|
+
detached create does not materialize the output file:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
set -o pipefail
|
|
234
|
+
12ui convert ./screen.png \
|
|
235
|
+
--output layerdoc \
|
|
236
|
+
--model standard \
|
|
237
|
+
--idempotency-key screen-layerdoc-v1 \
|
|
238
|
+
--detach | tee ./screen.operation.json
|
|
239
|
+
12ui resume conversion-id --output layerdoc --out ./screen.layerdoc.json
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
If create fails before emitting an operation ID, `resume` is not possible.
|
|
243
|
+
Repeat the exact create request with the same explicit `--idempotency-key` so
|
|
244
|
+
the service can return the original operation without repeating completed paid
|
|
245
|
+
work. When the key is omitted, the client generates a new UUID. The CLI prints
|
|
246
|
+
operation/result metadata to stdout; persist it when durable local evidence is
|
|
247
|
+
required.
|
|
222
248
|
|
|
223
249
|
Image conversions accept `--model fast|standard|pro`; omission selects
|
|
224
250
|
`standard`. In `layerdoc-worker-v148`, Fast, Standard, and Pro all use
|
|
@@ -249,8 +275,9 @@ option is not accepted for LayerDoc input or `resume`.
|
|
|
249
275
|
LayerDoc input accepts the public v2 JSON downloaded from the API. Its signed
|
|
250
276
|
raster references must still be valid and must belong to the same authenticated
|
|
251
277
|
account. The service resolves those owned artifacts directly; it does not fetch
|
|
252
|
-
arbitrary remote URLs. LayerDoc input produces `layerdoc`, `html`,
|
|
253
|
-
`
|
|
278
|
+
arbitrary remote URLs. LayerDoc input produces `layerdoc`, `html`,
|
|
279
|
+
`html_fixed`, `svg`, `png`, `jpg` (JPEG), `webp`, `pdf`, `psd`, `pptx`,
|
|
280
|
+
`sketch`, `web_project`, or `app_project`. Project outputs require
|
|
254
281
|
`--profile <json|file>`; the CLI also accepts `--profile @file.json`.
|
|
255
282
|
|
|
256
283
|
## LayerDoc to downstream formats
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const CLI_CAPABILITIES: {
|
|
2
|
+
readonly inputs: readonly ["image/png", "image/jpeg", "image/webp", "application/vnd.12ui.layerdoc+json;version=2"];
|
|
3
|
+
readonly outputs: readonly ["layerdoc", "html", "html_fixed", "svg", "png", "jpg", "webp", "pdf", "psd", "pptx", "sketch", "web_project", "app_project"];
|
|
4
|
+
readonly imageModels: readonly ["fast", "standard", "pro"];
|
|
5
|
+
readonly imageOutputWidth: {
|
|
6
|
+
readonly flag: "--width";
|
|
7
|
+
readonly minimum: 1;
|
|
8
|
+
readonly maximum: 8192;
|
|
9
|
+
readonly description: "Set the native output canvas width by proportionally resizing image input up or down.";
|
|
10
|
+
};
|
|
11
|
+
readonly responsiveQualities: readonly ["standard", "pro"];
|
|
12
|
+
readonly projectProfileSchema: {
|
|
13
|
+
readonly required: readonly ["version", "framework", "styling", "language", "packaging"];
|
|
14
|
+
readonly additionalProperties: false;
|
|
15
|
+
readonly properties: {
|
|
16
|
+
readonly version: {
|
|
17
|
+
readonly type: "integer";
|
|
18
|
+
readonly const: 1;
|
|
19
|
+
};
|
|
20
|
+
readonly framework: {
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
};
|
|
23
|
+
readonly styling: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
};
|
|
26
|
+
readonly language: {
|
|
27
|
+
readonly type: "string";
|
|
28
|
+
};
|
|
29
|
+
readonly packaging: {
|
|
30
|
+
readonly type: "string";
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
readonly projectProfiles: {
|
|
35
|
+
readonly web_project: Readonly<Record<"html" | "react" | "next" | "vue" | "nuxt" | "svelte" | "sveltekit" | "angular" | "astro" | "lit", {
|
|
36
|
+
styling: readonly ("css" | "scss" | "css_modules" | "tailwind" | "bootstrap" | "mui" | "chakra" | "antd" | "shadcn")[];
|
|
37
|
+
language: readonly ("html" | "javascript" | "typescript")[];
|
|
38
|
+
packaging: readonly ("component" | "page" | "project")[];
|
|
39
|
+
}>>;
|
|
40
|
+
readonly app_project: Readonly<Record<"expo" | "react_native" | "flutter" | "ionic_capacitor" | "swiftui" | "uikit" | "jetpack_compose" | "android_views" | "compose_multiplatform", {
|
|
41
|
+
styling: readonly ("css" | "native")[];
|
|
42
|
+
language: readonly ("typescript" | "dart" | "swift" | "kotlin")[];
|
|
43
|
+
packaging: readonly ("project" | "screen")[];
|
|
44
|
+
}>>;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=cli-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-capabilities.d.ts","sourceRoot":"","sources":["../src/cli-capabilities.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBnB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CONVERSION_MODELS } from './conversion-models.js';
|
|
2
|
+
import { CONVERSION_OUTPUT_MEDIA_TYPES, CONVERSION_OUTPUTS, } from './conversion-outputs.js';
|
|
3
|
+
import { MAX_IMAGE_OUTPUT_WIDTH } from './image-output-width.js';
|
|
4
|
+
import { APP_PROJECT_CAPABILITIES, PROJECT_PROFILE_SCHEMA, WEB_PROJECT_CAPABILITIES, } from './project-profiles.js';
|
|
5
|
+
import { RESPONSIVE_CONVERSION_QUALITIES } from './responsive-quality.js';
|
|
6
|
+
export const CLI_CAPABILITIES = {
|
|
7
|
+
inputs: [
|
|
8
|
+
'image/png',
|
|
9
|
+
'image/jpeg',
|
|
10
|
+
'image/webp',
|
|
11
|
+
CONVERSION_OUTPUT_MEDIA_TYPES.layerdoc,
|
|
12
|
+
],
|
|
13
|
+
outputs: CONVERSION_OUTPUTS,
|
|
14
|
+
imageModels: CONVERSION_MODELS,
|
|
15
|
+
imageOutputWidth: {
|
|
16
|
+
flag: '--width',
|
|
17
|
+
minimum: 1,
|
|
18
|
+
maximum: MAX_IMAGE_OUTPUT_WIDTH,
|
|
19
|
+
description: 'Set the native output canvas width by proportionally resizing image input up or down.',
|
|
20
|
+
},
|
|
21
|
+
responsiveQualities: RESPONSIVE_CONVERSION_QUALITIES,
|
|
22
|
+
projectProfileSchema: PROJECT_PROFILE_SCHEMA,
|
|
23
|
+
projectProfiles: {
|
|
24
|
+
web_project: WEB_PROJECT_CAPABILITIES,
|
|
25
|
+
app_project: APP_PROJECT_CAPABILITIES,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=cli-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-capabilities.js","sourceRoot":"","sources":["../src/cli-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE;QACN,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,6BAA6B,CAAC,QAAQ;KACvC;IACD,OAAO,EAAE,kBAAkB;IAC3B,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,sBAAsB;QAC/B,WAAW,EAAE,uFAAuF;KACrG;IACD,mBAAmB,EAAE,+BAA+B;IACpD,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE;QACf,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,wBAAwB;KACtC;CACO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-export-command.d.ts","sourceRoot":"","sources":["../src/cli-export-command.ts"],"names":[],"mappings":"AAQA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-export-command.d.ts","sourceRoot":"","sources":["../src/cli-export-command.ts"],"names":[],"mappings":"AAQA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA8N/D,eAAO,MAAM,gBAAgB,GAC3B,oBAAoB,MAAM,GAAG,SAAS,EACtC,OAAO,QAAQ,KACd,OAAO,CAAC,IAAI,CAyFd,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import {
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { materializeConversionArtifacts, } from './artifact-materializer.js';
|
|
5
5
|
import { stringFlag } from './cli-arguments.js';
|
|
6
|
+
import { exportManifestPath, exportOutputFilePath, prepareExportOutputDirectory, } from './cli-export-output-directory.js';
|
|
6
7
|
import { TwelveUiConversionClient, } from './conversion-client.js';
|
|
7
|
-
import {
|
|
8
|
+
import { isConversionOutput, } from './conversion-outputs.js';
|
|
8
9
|
import { readConversionConfig } from './config.js';
|
|
9
10
|
import { normalizeOptionalIdempotencyKey } from './idempotency-key.js';
|
|
10
11
|
import { parseConversionOutputProfile, } from './project-profiles.js';
|
|
@@ -83,11 +84,7 @@ const waitForSuccess = async (client, operation, timeoutMs) => {
|
|
|
83
84
|
});
|
|
84
85
|
};
|
|
85
86
|
const exportOne = async (args) => {
|
|
86
|
-
const outFile =
|
|
87
|
-
? 'export.responsive.html'
|
|
88
|
-
: args.plan.output === 'html_fixed'
|
|
89
|
-
? 'export.fixed.html'
|
|
90
|
-
: `export.${CONVERSION_OUTPUT_FILENAME_SUFFIXES[args.plan.output]}`);
|
|
87
|
+
const outFile = exportOutputFilePath(args.outDir, args.plan.output);
|
|
91
88
|
if (args.plan.output === 'layerdoc') {
|
|
92
89
|
await writeFile(outFile, args.baseLayerDoc, { flag: 'wx' });
|
|
93
90
|
return {
|
|
@@ -105,6 +102,8 @@ const exportOne = async (args) => {
|
|
|
105
102
|
};
|
|
106
103
|
const input = args.plan.output === 'html'
|
|
107
104
|
? {
|
|
105
|
+
layerdoc: args.baseLayerDoc,
|
|
106
|
+
filename: `${args.source.id}.layerdoc.json`,
|
|
108
107
|
sourceConversionId: args.source.id,
|
|
109
108
|
output: 'html',
|
|
110
109
|
responsiveQuality: args.plan.request.responsiveQuality,
|
|
@@ -115,6 +114,7 @@ const exportOne = async (args) => {
|
|
|
115
114
|
? {
|
|
116
115
|
layerdoc: args.baseLayerDoc,
|
|
117
116
|
filename: `${args.source.id}.layerdoc.json`,
|
|
117
|
+
sourceConversionId: args.source.id,
|
|
118
118
|
output: 'web_project',
|
|
119
119
|
profile: args.plan.request.profile,
|
|
120
120
|
idempotencyKey: shared.idempotencyKey,
|
|
@@ -124,6 +124,7 @@ const exportOne = async (args) => {
|
|
|
124
124
|
? {
|
|
125
125
|
layerdoc: args.baseLayerDoc,
|
|
126
126
|
filename: `${args.source.id}.layerdoc.json`,
|
|
127
|
+
sourceConversionId: args.source.id,
|
|
127
128
|
output: 'app_project',
|
|
128
129
|
profile: args.plan.request.profile,
|
|
129
130
|
idempotencyKey: shared.idempotencyKey,
|
|
@@ -132,6 +133,7 @@ const exportOne = async (args) => {
|
|
|
132
133
|
: {
|
|
133
134
|
layerdoc: args.baseLayerDoc,
|
|
134
135
|
filename: `${args.source.id}.layerdoc.json`,
|
|
136
|
+
sourceConversionId: args.source.id,
|
|
135
137
|
output: args.plan.output,
|
|
136
138
|
idempotencyKey: shared.idempotencyKey,
|
|
137
139
|
waitSeconds: shared.waitSeconds,
|
|
@@ -171,6 +173,7 @@ export const runExportCommand = async (sourceConversionId, flags) => {
|
|
|
171
173
|
? readProfile('app_project', stringFlag(flags, 'app-profile'))
|
|
172
174
|
: undefined,
|
|
173
175
|
]);
|
|
176
|
+
await prepareExportOutputDirectory(outDir, outputs);
|
|
174
177
|
const client = new TwelveUiConversionClient(readConversionConfig({
|
|
175
178
|
origin: stringFlag(flags, 'origin'),
|
|
176
179
|
apiKey: stringFlag(flags, 'api-key'),
|
|
@@ -181,7 +184,6 @@ export const runExportCommand = async (sourceConversionId, flags) => {
|
|
|
181
184
|
+ ` found ${source.status} ${source.output}`);
|
|
182
185
|
}
|
|
183
186
|
const baseLayerDoc = (await client.downloadResult(source.id, 'layerdoc')).bytes;
|
|
184
|
-
await mkdir(outDir, { recursive: false });
|
|
185
187
|
const timeoutValue = stringFlag(flags, 'timeout-ms');
|
|
186
188
|
const timeoutMs = timeoutValue === undefined ? undefined : Number(timeoutValue);
|
|
187
189
|
if (timeoutMs !== undefined && (!Number.isFinite(timeoutMs) || timeoutMs < 1_000)) {
|
|
@@ -210,7 +212,7 @@ export const runExportCommand = async (sourceConversionId, flags) => {
|
|
|
210
212
|
error: result.reason instanceof Error ? result.reason.message : String(result.reason),
|
|
211
213
|
}]
|
|
212
214
|
: []);
|
|
213
|
-
const manifestPath =
|
|
215
|
+
const manifestPath = exportManifestPath(outDir);
|
|
214
216
|
await writeFile(manifestPath, `${JSON.stringify({
|
|
215
217
|
schemaVersion: 2,
|
|
216
218
|
sourceConversionId: source.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-export-command.js","sourceRoot":"","sources":["../src/cli-export-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-export-command.js","sourceRoot":"","sources":["../src/cli-export-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,8BAA8B,GAE/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,wBAAwB,GAGzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EACL,4BAA4B,GAI7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,6BAA6B,GAE9B,MAAM,yBAAyB,CAAC;AAsBjC,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,CAC5C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC1D,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAuB,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,MAAqC,EACrC,KAAyB,EACS,EAAE;IACpC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,cAAc;cAC3E,mBAAmB,MAAM,EAAE,CAC9B,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,IAAY,EACZ,MAAwB,EACxB,kBAA0B,EAClB,EAAE;IACV,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAK1B,EAAc,EAAE;IACf,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM;QACzC,CAAC,CAAC;YACA,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C;QACD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa;YAC9D,CAAC,CAAC;gBACA,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;YACD,CAAC,CAAC;gBACA,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;IACN,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE;YACP,cAAc,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU;gBACxC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;YAC9E,kBAAkB;YAClB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;gBACxB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa;gBAChE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBAC3B,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,MAAgC,EAChC,SAA8B,EAC9B,SAA6B,EACC,EAAE;IAChC,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE;QAC5C,SAAS,EAAE,SAAS,CAAC,UAAU;QAC/B,SAAS;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EAAE,IAOxB,EAAyB,EAAE;IAC1B,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO;YACP,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAe;QACjD,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,MAAM,KAAK,GAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAC9D,CAAC,CAAC;YACA,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB;YAC3C,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAkB;YACvD,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;QACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;YAClC,CAAC,CAAC;gBACA,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB;gBAC3C,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAClC,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAA8B;gBACzD,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;YACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;gBAClC,CAAC,CAAC;oBACA,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAC3B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB;oBAC3C,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAA8B;oBACzD,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC;gBACD,CAAC,CAAC;oBACA,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAC3B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB;oBAC3C,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACxB,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;IACR,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,IAAI,CAAC,MAAM,EACX,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,SAAS,CACf,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,YAAY,EAAE,SAAS,CAAC,EAAE;QAC1B,OAAO;QACP,gBAAgB,EAAE,MAAM,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QACvF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,kBAAsC,EACtC,KAAe,EACA,EAAE;IACjB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,+BAA+B,CACpD,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,EACpC,mBAAmB,CACpB,CAAC;IACF,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,IAAI,UAAU,CAAC;IAC9E,IAAI,CAAC,6BAA6B,CAAC,eAAe,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAC9D,CAAC,CAAC,SAAS;QACb,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAC9D,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,MAAM,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,oBAAoB,CAAC;QAC/D,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;QACnC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;KACrC,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,4CAA4C;cACvE,UAAU,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAC7C,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IAChF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC;QACtD,cAAc;QACd,MAAM;QACN,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAClG,iBAAiB,EAAE,eAAe;KACnC,CAAC,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC;QACrE,YAAY;QACZ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,SAAS;KACV,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU;QAC9E,CAAC,CAAC,CAAC;gBACD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;gBAC3B,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO;gBAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aACtF,CAAC;QACF,CAAC,CAAC,EAAE,CAAC,CAAC;IACR,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9C,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,MAAM,CAAC,EAAE;QAC7B,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC;QAC1C,cAAc;QACd,UAAU;QACV,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,OAAO;QACP,QAAQ;KACT,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,kDAAkD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC1E,GAAG,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE,CACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,YAAY,EAAE,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC,EAAE;QAC7B,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC;QAC1C,YAAY;QACZ,OAAO;KACR,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ConversionOutput } from './conversion-outputs.js';
|
|
2
|
+
export declare const exportOutputFilePath: (outDir: string, output: ConversionOutput) => string;
|
|
3
|
+
export declare const exportManifestPath: (outDir: string) => string;
|
|
4
|
+
export declare const prepareExportOutputDirectory: (outDir: string, outputs: readonly ConversionOutput[]) => Promise<void>;
|
|
5
|
+
//# sourceMappingURL=cli-export-output-directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-export-output-directory.d.ts","sourceRoot":"","sources":["../src/cli-export-output-directory.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,QAAQ,gBAAgB,KACvB,MAOF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,MAEnD,CAAC;AAYF,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,SAAS,SAAS,gBAAgB,EAAE,KACnC,OAAO,CAAC,IAAI,CAkBd,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { lstat, mkdir } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { CONVERSION_OUTPUT_FILENAME_SUFFIXES, } from './conversion-outputs.js';
|
|
4
|
+
export const exportOutputFilePath = (outDir, output) => path.join(outDir, output === 'html'
|
|
5
|
+
? 'export.responsive.html'
|
|
6
|
+
: output === 'html_fixed'
|
|
7
|
+
? 'export.fixed.html'
|
|
8
|
+
: `export.${CONVERSION_OUTPUT_FILENAME_SUFFIXES[output]}`);
|
|
9
|
+
export const exportManifestPath = (outDir) => (path.join(outDir, 'export-manifest.json'));
|
|
10
|
+
const pathExists = async (target) => {
|
|
11
|
+
try {
|
|
12
|
+
await lstat(target);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
if (error.code === 'ENOENT')
|
|
17
|
+
return false;
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const prepareExportOutputDirectory = async (outDir, outputs) => {
|
|
22
|
+
await mkdir(outDir, { recursive: true });
|
|
23
|
+
const outputFiles = outputs.map((output) => exportOutputFilePath(outDir, output));
|
|
24
|
+
const reservedPaths = [
|
|
25
|
+
exportManifestPath(outDir),
|
|
26
|
+
...outputFiles,
|
|
27
|
+
...outputFiles.flatMap((outputFile, index) => (outputs[index] === 'layerdoc' ? [] : [`${outputFile}.assets`])),
|
|
28
|
+
];
|
|
29
|
+
const conflicts = (await Promise.all(reservedPaths.map(async (target) => (await pathExists(target) ? target : null)))).filter((target) => target !== null);
|
|
30
|
+
if (conflicts.length > 0) {
|
|
31
|
+
throw new Error(`Refusing export because destination path already exists: ${conflicts.join(', ')}`);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=cli-export-output-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-export-output-directory.js","sourceRoot":"","sources":["../src/cli-export-output-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,mCAAmC,GAEpC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,MAAwB,EAChB,EAAE,CAAC,IAAI,CAAC,IAAI,CACpB,MAAM,EACN,MAAM,KAAK,MAAM;IACf,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,MAAM,KAAK,YAAY;QACvB,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,UAAU,mCAAmC,CAAC,MAAM,CAAC,EAAE,CAC9D,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,CAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAC1C,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,MAAc,EAAoB,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,MAAc,EACd,OAAoC,EACrB,EAAE;IACjB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG;QACpB,kBAAkB,CAAC,MAAM,CAAC;QAC1B,GAAG,WAAW;QACd,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAC9D,CAAC;KACH,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CACvE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,4DAA4D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-image-command.d.ts","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAM/D,OAAO,EAGL,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAgEvC,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc;IACZ,QAAQ,CAAC,EAAE,OAAO,aAAa,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACtC,KACL,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"cli-image-command.d.ts","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAM/D,OAAO,EAGL,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAgEvC,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc;IACZ,QAAQ,CAAC,EAAE,OAAO,aAAa,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACtC,KACL,OAAO,CAAC,IAAI,CAiJd,CAAC"}
|
|
@@ -62,7 +62,7 @@ export const runImageCommand = async (action, flags, dependencies = {}) => {
|
|
|
62
62
|
if (action !== 'generate') {
|
|
63
63
|
throw new Error('Usage: 12ui image generate --prompt-file <file> --reference-1 <file>'
|
|
64
64
|
+ ' --reference-2 <file> --reference-3 <file> --reference-4 <file>'
|
|
65
|
-
+ ' --out <file> --aspect landscape|portrait|square'
|
|
65
|
+
+ ' --out <file.png> --aspect landscape|portrait|square'
|
|
66
66
|
+ ' --provider auto|codex|openai --project-root <directory>'
|
|
67
67
|
+ ' --idempotency-key <key>');
|
|
68
68
|
}
|
|
@@ -75,6 +75,9 @@ export const runImageCommand = async (action, flags, dependencies = {}) => {
|
|
|
75
75
|
throw new Error('--out is required');
|
|
76
76
|
if (!stringFlag(flags, 'project-root'))
|
|
77
77
|
throw new Error('--project-root is required');
|
|
78
|
+
if (path.extname(outputPath).toLowerCase() !== '.png') {
|
|
79
|
+
throw new Error('--out must end in .png because image generate always writes PNG bytes');
|
|
80
|
+
}
|
|
78
81
|
const attemptFile = imageAttemptPath(outputPath);
|
|
79
82
|
if (await pathExists(outputPath)) {
|
|
80
83
|
throw new Error(`Refusing to dispatch because output already exists at ${outputPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-image-command.js","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-image-command.js","sourceRoot":"","sources":["../src/cli-image-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
import { retireRecognizedLegacyCli, type RetiredLegacyCli } from './legacy-cli-cleanup.js';
|
|
1
2
|
type NpmInstallInvocation = {
|
|
2
3
|
executable: 'npm' | 'npm.cmd';
|
|
3
4
|
arguments: string[];
|
|
4
5
|
environment: NodeJS.ProcessEnv;
|
|
5
6
|
};
|
|
6
7
|
type NpmInstallRunner = (invocation: NpmInstallInvocation) => Promise<void>;
|
|
8
|
+
type LauncherCheckRunner = (args: {
|
|
9
|
+
environment: NodeJS.ProcessEnv;
|
|
10
|
+
launcher: string;
|
|
11
|
+
version: string;
|
|
12
|
+
}) => Promise<void>;
|
|
7
13
|
export type CliPersistenceResult = {
|
|
8
14
|
source: 'bundle' | 'npm';
|
|
9
15
|
version: string;
|
|
10
16
|
dataRoot: string;
|
|
11
17
|
launcher: string;
|
|
18
|
+
retiredLegacyCli?: RetiredLegacyCli;
|
|
12
19
|
};
|
|
13
20
|
export declare const resolveCliInstallLayout: (environment?: NodeJS.ProcessEnv, homeDirectory?: string, platform?: NodeJS.Platform) => {
|
|
14
21
|
dataRoot: string;
|
|
@@ -19,6 +26,8 @@ export declare const persistCurrentCli: (args?: {
|
|
|
19
26
|
homeDirectory?: string;
|
|
20
27
|
platform?: NodeJS.Platform;
|
|
21
28
|
runNpmInstall?: NpmInstallRunner;
|
|
29
|
+
runLauncherCheck?: LauncherCheckRunner;
|
|
30
|
+
retireLegacyCli?: typeof retireRecognizedLegacyCli;
|
|
22
31
|
}) => Promise<CliPersistenceResult>;
|
|
23
32
|
export declare const runningPackageRoot: () => string;
|
|
24
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-persistence.d.ts","sourceRoot":"","sources":["../src/cli-persistence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-persistence.d.ts","sourceRoot":"","sources":["../src/cli-persistence.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,yBAAyB,EACzB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAIjC,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC,UAAU,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5E,KAAK,mBAAmB,GAAG,CAAC,IAAI,EAAE;IAChC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAmCpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAsLF,eAAO,MAAM,uBAAuB,GAClC,cAAa,MAAM,CAAC,UAAwB,EAC5C,sBAA4B,EAC5B,WAAU,MAAM,CAAC,QAA2B,KAC3C;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAuBlB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,OAAM;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,yBAAyB,CAAC;CAC/C,KAAG,OAAO,CAAC,oBAAoB,CAiLpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAErC,CAAC"}
|
package/dist/cli-persistence.js
CHANGED
|
@@ -5,6 +5,7 @@ import os from 'node:os';
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
7
|
import { promisify } from 'node:util';
|
|
8
|
+
import { retireRecognizedLegacyCli, } from './legacy-cli-cleanup.js';
|
|
8
9
|
const execFileAsync = promisify(execFile);
|
|
9
10
|
const runNpmInstall = async (invocation) => {
|
|
10
11
|
await execFileAsync(invocation.executable, invocation.arguments, {
|
|
@@ -14,6 +15,19 @@ const runNpmInstall = async (invocation) => {
|
|
|
14
15
|
env: invocation.environment,
|
|
15
16
|
});
|
|
16
17
|
};
|
|
18
|
+
const runLauncherCheck = async (args) => {
|
|
19
|
+
const result = await execFileAsync(args.launcher, ['--version'], {
|
|
20
|
+
encoding: 'utf8',
|
|
21
|
+
timeout: 30_000,
|
|
22
|
+
windowsHide: true,
|
|
23
|
+
env: args.environment,
|
|
24
|
+
shell: process.platform === 'win32',
|
|
25
|
+
});
|
|
26
|
+
if (result.stdout.trim() !== args.version) {
|
|
27
|
+
throw new Error(`Managed 12ui launcher reported ${result.stdout.trim() || 'no version'},`
|
|
28
|
+
+ ` expected ${args.version}`);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
17
31
|
const packageIdentity = async () => {
|
|
18
32
|
const parsed = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
|
|
19
33
|
if (parsed.name !== '@12ui/design' || typeof parsed.version !== 'string') {
|
|
@@ -42,6 +56,14 @@ const readLinkOrNull = async (target) => {
|
|
|
42
56
|
throw error;
|
|
43
57
|
}
|
|
44
58
|
};
|
|
59
|
+
const snapshotPath = async (target) => {
|
|
60
|
+
if (!(await exists(target)))
|
|
61
|
+
return { kind: 'missing' };
|
|
62
|
+
const link = await readLinkOrNull(target);
|
|
63
|
+
if (link !== null)
|
|
64
|
+
return { kind: 'symlink', target: link };
|
|
65
|
+
return { kind: 'file', source: await readFile(target, 'utf8') };
|
|
66
|
+
};
|
|
45
67
|
const assertManagedLauncherCollision = async (launcher, dataRoot, homeDirectory, platform) => {
|
|
46
68
|
if (!(await exists(launcher)))
|
|
47
69
|
return;
|
|
@@ -122,6 +144,16 @@ const writeExecutableAtomic = async (target, source, platform) => {
|
|
|
122
144
|
await rm(temporary, { force: true });
|
|
123
145
|
}
|
|
124
146
|
};
|
|
147
|
+
const restoreSnapshot = async (target, snapshot, platform) => {
|
|
148
|
+
await rm(target, { recursive: true, force: true });
|
|
149
|
+
if (snapshot.kind === 'missing')
|
|
150
|
+
return;
|
|
151
|
+
if (snapshot.kind === 'symlink') {
|
|
152
|
+
await symlink(snapshot.target, target, target.endsWith('.cmd') ? 'file' : 'dir');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
await writeExecutableAtomic(target, snapshot.source, platform);
|
|
156
|
+
};
|
|
125
157
|
export const resolveCliInstallLayout = (environment = process.env, homeDirectory = os.homedir(), platform = process.platform) => {
|
|
126
158
|
if (platform === 'win32') {
|
|
127
159
|
const configuredLocalAppData = environment.LOCALAPPDATA?.trim();
|
|
@@ -201,12 +233,16 @@ export const persistCurrentCli = async (args = {}) => {
|
|
|
201
233
|
}
|
|
202
234
|
}
|
|
203
235
|
await verifyInstalledVersion(versionRoot, identity);
|
|
236
|
+
const current = path.join(layout.dataRoot, 'current');
|
|
237
|
+
const [launcherSnapshot, currentSnapshot] = await Promise.all([
|
|
238
|
+
snapshotPath(layout.launcher),
|
|
239
|
+
platform === 'win32' ? Promise.resolve({ kind: 'missing' }) : snapshotPath(current),
|
|
240
|
+
]);
|
|
204
241
|
let cliPath;
|
|
205
242
|
if (platform === 'win32') {
|
|
206
243
|
cliPath = path.join(versionRoot, 'node_modules', '@12ui', 'design', 'dist', 'cli.js');
|
|
207
244
|
}
|
|
208
245
|
else {
|
|
209
|
-
const current = path.join(layout.dataRoot, 'current');
|
|
210
246
|
const currentTemporary = path.join(layout.dataRoot, `.current-${randomUUID()}.tmp`);
|
|
211
247
|
await symlink(path.relative(layout.dataRoot, versionRoot), currentTemporary, 'dir');
|
|
212
248
|
try {
|
|
@@ -241,12 +277,49 @@ export const persistCurrentCli = async (args = {}) => {
|
|
|
241
277
|
const launcher = platform === 'win32'
|
|
242
278
|
? `@echo off\r\n"${process.execPath.replaceAll('%', '%%')}" "${cliPath.replaceAll('%', '%%')}" %*\r\n`
|
|
243
279
|
: `#!/bin/sh\nexec "${process.execPath}" "${cliPath}" "$@"\n`;
|
|
244
|
-
|
|
280
|
+
let retiredLegacyCli = null;
|
|
281
|
+
try {
|
|
282
|
+
await writeExecutableAtomic(layout.launcher, launcher, platform);
|
|
283
|
+
await (args.runLauncherCheck ?? runLauncherCheck)({
|
|
284
|
+
environment,
|
|
285
|
+
launcher: layout.launcher,
|
|
286
|
+
version: identity.version,
|
|
287
|
+
});
|
|
288
|
+
retiredLegacyCli = await (args.retireLegacyCli ?? retireRecognizedLegacyCli)({
|
|
289
|
+
dataRoot: layout.dataRoot,
|
|
290
|
+
homeDirectory,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
const rollbackErrors = [];
|
|
295
|
+
try {
|
|
296
|
+
await restoreSnapshot(layout.launcher, launcherSnapshot, platform);
|
|
297
|
+
}
|
|
298
|
+
catch (rollbackError) {
|
|
299
|
+
rollbackErrors.push(rollbackError instanceof Error ? rollbackError : new Error(String(rollbackError)));
|
|
300
|
+
}
|
|
301
|
+
if (platform !== 'win32') {
|
|
302
|
+
try {
|
|
303
|
+
await restoreSnapshot(current, currentSnapshot, platform);
|
|
304
|
+
}
|
|
305
|
+
catch (rollbackError) {
|
|
306
|
+
rollbackErrors.push(rollbackError instanceof Error ? rollbackError : new Error(String(rollbackError)));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (rollbackErrors.length > 0) {
|
|
310
|
+
throw new AggregateError([
|
|
311
|
+
error instanceof Error ? error : new Error(String(error)),
|
|
312
|
+
...rollbackErrors,
|
|
313
|
+
], '12UI launcher migration failed and the prior installation could not be restored');
|
|
314
|
+
}
|
|
315
|
+
throw error;
|
|
316
|
+
}
|
|
245
317
|
return {
|
|
246
318
|
source: 'npm',
|
|
247
319
|
version: identity.version,
|
|
248
320
|
dataRoot: layout.dataRoot,
|
|
249
321
|
launcher: layout.launcher,
|
|
322
|
+
...(retiredLegacyCli ? { retiredLegacyCli } : {}),
|
|
250
323
|
};
|
|
251
324
|
};
|
|
252
325
|
export const runningPackageRoot = () => (path.dirname(path.dirname(fileURLToPath(import.meta.url))));
|