@ikas/component-cli 1.4.0-beta.21 → 1.4.0-beta.212
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-tools.d.ts +37 -0
- package/dist/build-tools.d.ts.map +1 -0
- package/dist/build-tools.js +36 -0
- package/dist/build-tools.js.map +1 -0
- package/dist/commands/add-sections-to-page.d.ts +3 -0
- package/dist/commands/add-sections-to-page.d.ts.map +1 -0
- package/dist/commands/add-sections-to-page.js +39 -0
- package/dist/commands/add-sections-to-page.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +11 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +5 -165
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/config.d.ts +35 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +1082 -147
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create-design-tokens.d.ts +24 -0
- package/dist/commands/create-design-tokens.d.ts.map +1 -0
- package/dist/commands/create-design-tokens.js +388 -0
- package/dist/commands/create-design-tokens.js.map +1 -0
- package/dist/commands/create-global-variable.d.ts +3 -0
- package/dist/commands/create-global-variable.d.ts.map +1 -0
- package/dist/commands/create-global-variable.js +73 -0
- package/dist/commands/create-global-variable.js.map +1 -0
- package/dist/commands/create-page.d.ts +3 -0
- package/dist/commands/create-page.d.ts.map +1 -0
- package/dist/commands/create-page.js +31 -0
- package/dist/commands/create-page.js.map +1 -0
- package/dist/commands/delete-page.d.ts +3 -0
- package/dist/commands/delete-page.d.ts.map +1 -0
- package/dist/commands/delete-page.js +28 -0
- package/dist/commands/delete-page.js.map +1 -0
- package/dist/commands/delete-theme-globals.d.ts +4 -0
- package/dist/commands/delete-theme-globals.d.ts.map +1 -0
- package/dist/commands/delete-theme-globals.js +48 -0
- package/dist/commands/delete-theme-globals.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +218 -31
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/enable-builtin-pages.d.ts +3 -0
- package/dist/commands/enable-builtin-pages.d.ts.map +1 -0
- package/dist/commands/enable-builtin-pages.js +27 -0
- package/dist/commands/enable-builtin-pages.js.map +1 -0
- package/dist/commands/get-component-props.d.ts +3 -0
- package/dist/commands/get-component-props.d.ts.map +1 -0
- package/dist/commands/get-component-props.js +32 -0
- package/dist/commands/get-component-props.js.map +1 -0
- package/dist/commands/get-page-by-type.d.ts +3 -0
- package/dist/commands/get-page-by-type.d.ts.map +1 -0
- package/dist/commands/get-page-by-type.js +25 -0
- package/dist/commands/get-page-by-type.js.map +1 -0
- package/dist/commands/get-section-values.d.ts +3 -0
- package/dist/commands/get-section-values.d.ts.map +1 -0
- package/dist/commands/get-section-values.js +39 -0
- package/dist/commands/get-section-values.js.map +1 -0
- package/dist/commands/list-builtin-pages.d.ts +3 -0
- package/dist/commands/list-builtin-pages.d.ts.map +1 -0
- package/dist/commands/list-builtin-pages.js +28 -0
- package/dist/commands/list-builtin-pages.js.map +1 -0
- package/dist/commands/list-entities.d.ts +3 -0
- package/dist/commands/list-entities.d.ts.map +1 -0
- package/dist/commands/list-entities.js +32 -0
- package/dist/commands/list-entities.js.map +1 -0
- package/dist/commands/list-page-sections.d.ts.map +1 -1
- package/dist/commands/list-page-sections.js +8 -2
- package/dist/commands/list-page-sections.js.map +1 -1
- package/dist/commands/list-theme-globals.d.ts +3 -0
- package/dist/commands/list-theme-globals.d.ts.map +1 -0
- package/dist/commands/list-theme-globals.js +22 -0
- package/dist/commands/list-theme-globals.js.map +1 -0
- package/dist/commands/move-page-section.d.ts +3 -0
- package/dist/commands/move-page-section.d.ts.map +1 -0
- package/dist/commands/move-page-section.js +62 -0
- package/dist/commands/move-page-section.js.map +1 -0
- package/dist/commands/publish-theme.d.ts +3 -0
- package/dist/commands/publish-theme.d.ts.map +1 -0
- package/dist/commands/publish-theme.js +29 -0
- package/dist/commands/publish-theme.js.map +1 -0
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +54 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/remove-page-section.d.ts +3 -0
- package/dist/commands/remove-page-section.d.ts.map +1 -0
- package/dist/commands/remove-page-section.js +40 -0
- package/dist/commands/remove-page-section.js.map +1 -0
- package/dist/commands/search-products.d.ts +3 -0
- package/dist/commands/search-products.d.ts.map +1 -0
- package/dist/commands/search-products.js +40 -0
- package/dist/commands/search-products.js.map +1 -0
- package/dist/commands/update-builtin-page-prop.d.ts +3 -0
- package/dist/commands/update-builtin-page-prop.d.ts.map +1 -0
- package/dist/commands/update-builtin-page-prop.js +49 -0
- package/dist/commands/update-builtin-page-prop.js.map +1 -0
- package/dist/commands/update-global-variable.d.ts +3 -0
- package/dist/commands/update-global-variable.d.ts.map +1 -0
- package/dist/commands/update-global-variable.js +70 -0
- package/dist/commands/update-global-variable.js.map +1 -0
- package/dist/commands/update-page-sections.d.ts +3 -0
- package/dist/commands/update-page-sections.d.ts.map +1 -0
- package/dist/commands/update-page-sections.js +39 -0
- package/dist/commands/update-page-sections.js.map +1 -0
- package/dist/commands/update-section-prop.d.ts.map +1 -1
- package/dist/commands/update-section-prop.js +25 -8
- package/dist/commands/update-section-prop.js.map +1 -1
- package/dist/commands/upload-image.d.ts.map +1 -1
- package/dist/commands/upload-image.js +5 -46
- package/dist/commands/upload-image.js.map +1 -1
- package/dist/commands/upload-images.d.ts +3 -0
- package/dist/commands/upload-images.d.ts.map +1 -0
- package/dist/commands/upload-images.js +48 -0
- package/dist/commands/upload-images.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/archive-project.d.ts +69 -0
- package/dist/utils/archive-project.d.ts.map +1 -0
- package/dist/utils/archive-project.js +202 -0
- package/dist/utils/archive-project.js.map +1 -0
- package/dist/utils/compile.d.ts +17 -2
- package/dist/utils/compile.d.ts.map +1 -1
- package/dist/utils/compile.js +750 -117
- package/dist/utils/compile.js.map +1 -1
- package/dist/utils/component-helpers.d.ts +167 -2
- package/dist/utils/component-helpers.d.ts.map +1 -1
- package/dist/utils/component-helpers.js +452 -29
- package/dist/utils/component-helpers.js.map +1 -1
- package/dist/utils/css-import-resolver.d.ts +4 -1
- package/dist/utils/css-import-resolver.d.ts.map +1 -1
- package/dist/utils/css-import-resolver.js +9 -1
- package/dist/utils/css-import-resolver.js.map +1 -1
- package/dist/utils/editor-action-client.d.ts +4 -3
- package/dist/utils/editor-action-client.d.ts.map +1 -1
- package/dist/utils/editor-action-client.js +55 -19
- package/dist/utils/editor-action-client.js.map +1 -1
- package/dist/utils/esm-transform.d.ts +30 -0
- package/dist/utils/esm-transform.d.ts.map +1 -1
- package/dist/utils/esm-transform.js +169 -2
- package/dist/utils/esm-transform.js.map +1 -1
- package/dist/utils/find-component-for-file.d.ts +12 -0
- package/dist/utils/find-component-for-file.d.ts.map +1 -0
- package/dist/utils/find-component-for-file.js +24 -0
- package/dist/utils/find-component-for-file.js.map +1 -0
- package/dist/utils/forbid-deep-imports.d.ts +3 -0
- package/dist/utils/forbid-deep-imports.d.ts.map +1 -0
- package/dist/utils/forbid-deep-imports.js +54 -0
- package/dist/utils/forbid-deep-imports.js.map +1 -0
- package/dist/utils/forbid-external-packages.d.ts +26 -0
- package/dist/utils/forbid-external-packages.d.ts.map +1 -0
- package/dist/utils/forbid-external-packages.js +99 -0
- package/dist/utils/forbid-external-packages.js.map +1 -0
- package/dist/utils/load-image.d.ts +16 -0
- package/dist/utils/load-image.d.ts.map +1 -0
- package/dist/utils/load-image.js +50 -0
- package/dist/utils/load-image.js.map +1 -0
- package/dist/utils/vendor-storefront.d.ts +13 -0
- package/dist/utils/vendor-storefront.d.ts.map +1 -0
- package/dist/utils/vendor-storefront.js +91 -0
- package/dist/utils/vendor-storefront.js.map +1 -0
- package/dist/utils/websocket-server.d.ts +119 -5
- package/dist/utils/websocket-server.d.ts.map +1 -1
- package/dist/utils/websocket-server.js +255 -44
- package/dist/utils/websocket-server.js.map +1 -1
- package/package.json +19 -2
- package/templates/add/section.css +11 -0
- package/dist/commands/create.d.ts +0 -4
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -228
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/proxy.d.ts +0 -39
- package/dist/commands/proxy.d.ts.map +0 -1
- package/dist/commands/proxy.js +0 -210
- package/dist/commands/proxy.js.map +0 -1
|
@@ -10,15 +10,26 @@ async function runUpdateSectionProp(options) {
|
|
|
10
10
|
if (!options.propId && !options.propName) {
|
|
11
11
|
printErrorAndExit(new Error("Provide --prop-id or --prop-name (see `ikas-component list-page-sections`)"));
|
|
12
12
|
}
|
|
13
|
-
if (options.value === undefined) {
|
|
14
|
-
printErrorAndExit(new Error("--value
|
|
13
|
+
if (options.value === undefined && !options.bindGlobal) {
|
|
14
|
+
printErrorAndExit(new Error("Provide --value (JSON, e.g. '{\"value\":\"Hello\"}') or --bind-global <name> to bind a global variable"));
|
|
15
15
|
}
|
|
16
16
|
let value;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
if (options.value !== undefined) {
|
|
18
|
+
try {
|
|
19
|
+
value = JSON.parse(options.value);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
printErrorAndExit(new Error(`--value must be valid JSON (e.g. '{"value":"Hello"}'). Received: ${options.value}`));
|
|
23
|
+
}
|
|
19
24
|
}
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
let listPath;
|
|
26
|
+
if (options.listPath !== undefined) {
|
|
27
|
+
try {
|
|
28
|
+
listPath = JSON.parse(options.listPath);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
printErrorAndExit(new Error(`--list-path must be valid JSON. Received: ${options.listPath}`));
|
|
32
|
+
}
|
|
22
33
|
}
|
|
23
34
|
const port = options.port ? parseInt(options.port, 10) : undefined;
|
|
24
35
|
try {
|
|
@@ -27,7 +38,9 @@ async function runUpdateSectionProp(options) {
|
|
|
27
38
|
elementId: options.elementId,
|
|
28
39
|
...(options.propId ? { propId: options.propId } : {}),
|
|
29
40
|
...(options.propName ? { propName: options.propName } : {}),
|
|
30
|
-
|
|
41
|
+
...(options.bindGlobal
|
|
42
|
+
? { bindGlobal: options.bindGlobal, ...(listPath ? { listPath } : {}) }
|
|
43
|
+
: { value }),
|
|
31
44
|
}, port ? { port } : {});
|
|
32
45
|
printResultAndExit(result);
|
|
33
46
|
}
|
|
@@ -46,12 +59,16 @@ export function createUpdateSectionPropCommand() {
|
|
|
46
59
|
" LINK = a single link object needing id + linkType + label + subLinks: PAGE = '{\"id\":\"<unique>\",\"linkType\":\"PAGE\",\"label\":\"Home\",\"pageId\":\"<id>\",\"pageType\":\"INDEX\",\"subLinks\":[]}'; EXTERNAL = '{\"id\":\"<unique>\",\"linkType\":\"EXTERNAL\",\"label\":\"Docs\",\"externalLink\":\"https://...\",\"subLinks\":[]}'. (pageId/pageType from `list-pages`.) LIST_OF_LINK = '{\"links\":[<link>,...]}'.",
|
|
47
60
|
" COMPONENT_LIST = '{\"components\":[{\"id\":\"<unique>\",\"codeComponentId\":\"<child-id>\",\"propValues\":{\"<childProp>\":<value>}}]}' (single COMPONENT = one such entry). Each entry needs a unique id and codeComponentId (or componentId); child propValues use the same per-type shapes recursively.",
|
|
48
61
|
" The value REPLACES the whole prop — to edit a COMPONENT_LIST, read the current value from `list-page-sections` and resend the entire array. Wrong shapes are rejected with an error, not stored silently.",
|
|
62
|
+
"COMMON (global) sections — the theme's header/footer — share ONE set of prop values across every page, stored on the INDEX (Home) page's placement: the write lands there whatever --page-id you pass and changes that section on ALL pages (the result's `common` block says so, and the echoed value is read back from that canonical placement). Read the current values first (`get-section-values`) and change only what you mean to; if the INDEX page has no placement of the section, add it there first — otherwise the write is rejected.",
|
|
63
|
+
"Instead of --value, use --bind-global <name> to bind the prop to a project GLOBAL variable (Theme Setting) as a live dynamic value — pass the global's `name` (variableName) from `ikas-component list-theme-globals`. Add --list-path to bind a prop of a COMPONENT_LIST child (then --prop-id is the child's prop id).",
|
|
49
64
|
].join("\n"))
|
|
50
65
|
.requiredOption("--page-id <id>", "Page id (from `ikas-component list-pages`)")
|
|
51
66
|
.requiredOption("--element-id <id>", "Placed section elementId (from `ikas-component list-page-sections`)")
|
|
52
67
|
.option("--prop-id <id>", "Blueprint prop id to update")
|
|
53
68
|
.option("--prop-name <name>", "Blueprint prop name to update (alternative to --prop-id)")
|
|
54
|
-
.
|
|
69
|
+
.option("--value <json>", 'JSON-encoded prop value, e.g. \'{"value":"Hello"}\' (omit when using --bind-global)')
|
|
70
|
+
.option("--bind-global <name>", "Bind the prop to a global variable (its name/variableName from list-theme-globals) instead of a static value")
|
|
71
|
+
.option("--list-path <json>", 'JSON [{ "propId", "index" }, ...] targeting a COMPONENT_LIST child when using --bind-global')
|
|
55
72
|
.option("--port <port>", "Dev server WebSocket port", "5201")
|
|
56
73
|
.action(runUpdateSectionProp);
|
|
57
74
|
return cmd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-section-prop.js","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"update-section-prop.js","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-image.d.ts","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"upload-image.d.ts","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC,wBAAgB,wBAAwB,IAAI,OAAO,CAYlD"}
|
|
@@ -1,54 +1,13 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { basename, extname } from "node:path";
|
|
4
2
|
import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
|
|
5
|
-
|
|
6
|
-
".png": "image/png",
|
|
7
|
-
".jpg": "image/jpeg",
|
|
8
|
-
".jpeg": "image/jpeg",
|
|
9
|
-
".webp": "image/webp",
|
|
10
|
-
".gif": "image/gif",
|
|
11
|
-
};
|
|
12
|
-
const VALID_IMAGE_TYPES = Object.values(MIME_BY_EXT);
|
|
13
|
-
const MAX_SIZE_BYTES = 10 * 1024 * 1024; // 10MB, mirrors the editor's IMAGE_UPLOAD_LIMIT_SIZE
|
|
14
|
-
async function loadImage(options) {
|
|
15
|
-
if (options.file && options.url) {
|
|
16
|
-
throw new Error("Provide only one of --file or --url, not both");
|
|
17
|
-
}
|
|
18
|
-
if (options.file) {
|
|
19
|
-
const buffer = await readFile(options.file);
|
|
20
|
-
const ext = extname(options.file).toLowerCase();
|
|
21
|
-
const mimeType = MIME_BY_EXT[ext];
|
|
22
|
-
if (!mimeType) {
|
|
23
|
-
throw new Error(`Unsupported image extension "${ext || "(none)"}". Supported: ${Object.keys(MIME_BY_EXT).join(", ")}`);
|
|
24
|
-
}
|
|
25
|
-
if (buffer.byteLength > MAX_SIZE_BYTES) {
|
|
26
|
-
throw new Error(`Image is ${(buffer.byteLength / 1024 / 1024).toFixed(1)}MB; the limit is 10MB`);
|
|
27
|
-
}
|
|
28
|
-
return { base64: buffer.toString("base64"), mimeType, fileName: basename(options.file) };
|
|
29
|
-
}
|
|
30
|
-
if (options.url) {
|
|
31
|
-
const res = await fetch(options.url);
|
|
32
|
-
if (!res.ok) {
|
|
33
|
-
throw new Error(`Failed to fetch image: ${res.status} ${res.statusText}`);
|
|
34
|
-
}
|
|
35
|
-
const mimeType = (res.headers.get("content-type") || "").split(";")[0].trim();
|
|
36
|
-
if (!VALID_IMAGE_TYPES.includes(mimeType)) {
|
|
37
|
-
throw new Error(`URL returned content-type "${mimeType || "(none)"}". Supported: ${VALID_IMAGE_TYPES.join(", ")}`);
|
|
38
|
-
}
|
|
39
|
-
const buffer = Buffer.from(await res.arrayBuffer());
|
|
40
|
-
if (buffer.byteLength > MAX_SIZE_BYTES) {
|
|
41
|
-
throw new Error(`Image is ${(buffer.byteLength / 1024 / 1024).toFixed(1)}MB; the limit is 10MB`);
|
|
42
|
-
}
|
|
43
|
-
const urlName = basename(new URL(options.url).pathname) || "image";
|
|
44
|
-
return { base64: buffer.toString("base64"), mimeType, fileName: urlName };
|
|
45
|
-
}
|
|
46
|
-
throw new Error("Provide --file <path> or --url <url>");
|
|
47
|
-
}
|
|
3
|
+
import { loadImageSource } from "../utils/load-image.js";
|
|
48
4
|
async function runUploadImage(options) {
|
|
49
5
|
const port = options.port ? parseInt(options.port, 10) : undefined;
|
|
6
|
+
if (!options.file && !options.url) {
|
|
7
|
+
printErrorAndExit(new Error("Provide --file <path> or --url <url>"));
|
|
8
|
+
}
|
|
50
9
|
try {
|
|
51
|
-
const { base64, mimeType, fileName } = await
|
|
10
|
+
const { base64, mimeType, fileName } = await loadImageSource({ file: options.file, url: options.url });
|
|
52
11
|
const result = await runEditorAction("upload-image", {
|
|
53
12
|
base64,
|
|
54
13
|
mimeType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-image.js","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"upload-image.js","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AASzD,KAAK,UAAU,cAAc,CAAC,OAA2B;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,iBAAiB,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,cAAc,EACd;YACE,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,KAAK;SACf;QACD,2EAA2E;QAC3E,yDAAyD;QACzD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,GAAG;SACA,WAAW,CACV,2UAA2U,CAC5U;SACA,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC;SACjF,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC;SAChD,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-images.d.ts","sourceRoot":"","sources":["../../src/commands/upload-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,wBAAgB,yBAAyB,IAAI,OAAO,CAanD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
|
|
3
|
+
import { loadImageSource } from "../utils/load-image.js";
|
|
4
|
+
async function runUploadImages(options) {
|
|
5
|
+
if (options.manifest === undefined) {
|
|
6
|
+
printErrorAndExit(new Error('--manifest is required: a JSON array, e.g. \'[{"file":"/a.png","alt":"A"},{"url":"https://...","alt":"B"}]\''));
|
|
7
|
+
}
|
|
8
|
+
let manifest;
|
|
9
|
+
try {
|
|
10
|
+
manifest = JSON.parse(options.manifest);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
printErrorAndExit(new Error(`--manifest must be valid JSON. Received: ${options.manifest}`));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!Array.isArray(manifest) || manifest.length === 0) {
|
|
17
|
+
printErrorAndExit(new Error("--manifest must be a non-empty JSON array of { file|url, alt? } objects."));
|
|
18
|
+
}
|
|
19
|
+
const port = options.port ? parseInt(options.port, 10) : undefined;
|
|
20
|
+
try {
|
|
21
|
+
// Read/encode all sources in parallel, then send one batch editor-action.
|
|
22
|
+
const images = await Promise.all(manifest.map(async (entry) => {
|
|
23
|
+
const { base64, mimeType, fileName } = await loadImageSource({ file: entry.file, url: entry.url });
|
|
24
|
+
return {
|
|
25
|
+
base64,
|
|
26
|
+
mimeType,
|
|
27
|
+
fileName,
|
|
28
|
+
...(entry.alt ? { altText: entry.alt } : {}),
|
|
29
|
+
isVideo: false,
|
|
30
|
+
};
|
|
31
|
+
}));
|
|
32
|
+
const result = await runEditorAction("upload-images", { images }, { ...(port ? { port } : {}), timeoutMs: 60_000 });
|
|
33
|
+
printResultAndExit(result);
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
printErrorAndExit(e);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function createUploadImagesCommand() {
|
|
40
|
+
const cmd = new Command("upload-images");
|
|
41
|
+
cmd
|
|
42
|
+
.description("Upload MANY images in one call (batch upload-image) and return their ids in order. --manifest is a JSON array of { file|url, alt? }. The host uploads them all in a single round-trip. Requires the editor embedded in the ikas admin panel.")
|
|
43
|
+
.requiredOption("--manifest <json>", 'JSON array, e.g. \'[{"file":"/a.png","alt":"A"},{"url":"https://x/b.jpg"}]\'')
|
|
44
|
+
.option("--port <port>", "Dev server WebSocket port", "5201")
|
|
45
|
+
.action(runUploadImages);
|
|
46
|
+
return cmd;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=upload-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-images.js","sourceRoot":"","sources":["../../src/commands/upload-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,KAAK,UAAU,eAAe,CAAC,OAA4B;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,iBAAiB,CACf,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAC1H,CAAC;IACJ,CAAC;IACD,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,CAAC,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,iBAAiB,CAAC,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACzB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnG,OAAO;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,eAAe,EACf,EAAE,MAAM,EAAE,EACV,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACzC,GAAG;SACA,WAAW,CACV,8OAA8O,CAC/O;SACA,cAAc,CACb,mBAAmB,EACnB,8EAA8E,CAC/E;SACA,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,eAAe,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
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,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyGpC,wBAAgB,GAAG,qBAElB;AAED,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import {
|
|
2
|
+
import { createAddSectionsToPageCommand } from "./commands/add-sections-to-page.js";
|
|
3
3
|
import { createAddToPageCommand } from "./commands/add-to-page.js";
|
|
4
|
+
import { createAddCommand } from "./commands/add.js";
|
|
4
5
|
import { createBuildCommand } from "./commands/build.js";
|
|
5
6
|
import { createCheckCommand } from "./commands/check.js";
|
|
6
7
|
import { createConfigCommand } from "./commands/config.js";
|
|
8
|
+
import { createCreateBreakpointCommand, createCreateColorCommand, createCreateColorSchemeCommand, createCreateKeyframeCommand, createCreateTextStyleCommand, createRenameColorSchemeSlotCommand, createUpdateBreakpointCommand, createUpdateColorCommand, createUpdateColorSchemeCommand, createUpdateKeyframeCommand, createUpdateTextStyleCommand, } from "./commands/create-design-tokens.js";
|
|
9
|
+
import { createCreateGlobalVariableCommand } from "./commands/create-global-variable.js";
|
|
10
|
+
import { createCreatePageCommand } from "./commands/create-page.js";
|
|
11
|
+
import { createDeletePageCommand } from "./commands/delete-page.js";
|
|
12
|
+
import { createDeleteDesignTokenCommand, createDeleteGlobalVariableCommand, } from "./commands/delete-theme-globals.js";
|
|
7
13
|
import { createDevCommand } from "./commands/dev.js";
|
|
14
|
+
import { createGetComponentPropsCommand } from "./commands/get-component-props.js";
|
|
15
|
+
import { createEnableBuiltinPagesCommand } from "./commands/enable-builtin-pages.js";
|
|
16
|
+
import { createGetPageByTypeCommand } from "./commands/get-page-by-type.js";
|
|
17
|
+
import { createListBuiltinPagesCommand } from "./commands/list-builtin-pages.js";
|
|
18
|
+
import { createUpdateBuiltinPagePropCommand } from "./commands/update-builtin-page-prop.js";
|
|
19
|
+
import { createGetSectionValuesCommand } from "./commands/get-section-values.js";
|
|
8
20
|
import { createImportCommand } from "./commands/import.js";
|
|
21
|
+
import { createListEntitiesCommand } from "./commands/list-entities.js";
|
|
9
22
|
import { createListImportedCommand } from "./commands/list-imported.js";
|
|
10
23
|
import { createListPageSectionsCommand } from "./commands/list-page-sections.js";
|
|
24
|
+
import { createMovePageSectionCommand } from "./commands/move-page-section.js";
|
|
25
|
+
import { createRemovePageSectionCommand } from "./commands/remove-page-section.js";
|
|
11
26
|
import { createListPagesCommand } from "./commands/list-pages.js";
|
|
27
|
+
import { createListThemeGlobalsCommand } from "./commands/list-theme-globals.js";
|
|
28
|
+
import { createPublishThemeCommand } from "./commands/publish-theme.js";
|
|
12
29
|
import { createPublishCommand } from "./commands/publish.js";
|
|
30
|
+
import { createSearchProductsCommand } from "./commands/search-products.js";
|
|
31
|
+
import { createUpdateGlobalVariableCommand } from "./commands/update-global-variable.js";
|
|
32
|
+
import { createUpdatePageSectionsCommand } from "./commands/update-page-sections.js";
|
|
13
33
|
import { createUpdateSectionPropCommand } from "./commands/update-section-prop.js";
|
|
14
34
|
import { createUploadImageCommand } from "./commands/upload-image.js";
|
|
35
|
+
import { createUploadImagesCommand } from "./commands/upload-images.js";
|
|
15
36
|
const program = new Command();
|
|
16
37
|
program
|
|
17
38
|
.name("ikas-component")
|
|
@@ -28,9 +49,41 @@ program.addCommand(createListPagesCommand());
|
|
|
28
49
|
program.addCommand(createListImportedCommand());
|
|
29
50
|
program.addCommand(createImportCommand());
|
|
30
51
|
program.addCommand(createAddToPageCommand());
|
|
52
|
+
program.addCommand(createListThemeGlobalsCommand());
|
|
53
|
+
program.addCommand(createCreateGlobalVariableCommand());
|
|
54
|
+
program.addCommand(createCreateColorCommand());
|
|
55
|
+
program.addCommand(createUpdateColorCommand());
|
|
56
|
+
program.addCommand(createCreateTextStyleCommand());
|
|
57
|
+
program.addCommand(createUpdateTextStyleCommand());
|
|
58
|
+
program.addCommand(createCreateBreakpointCommand());
|
|
59
|
+
program.addCommand(createUpdateBreakpointCommand());
|
|
60
|
+
program.addCommand(createCreateKeyframeCommand());
|
|
61
|
+
program.addCommand(createUpdateKeyframeCommand());
|
|
62
|
+
program.addCommand(createCreateColorSchemeCommand());
|
|
63
|
+
program.addCommand(createUpdateColorSchemeCommand());
|
|
64
|
+
program.addCommand(createRenameColorSchemeSlotCommand());
|
|
65
|
+
program.addCommand(createUpdateGlobalVariableCommand());
|
|
66
|
+
program.addCommand(createDeleteGlobalVariableCommand());
|
|
67
|
+
program.addCommand(createDeleteDesignTokenCommand());
|
|
68
|
+
program.addCommand(createAddSectionsToPageCommand());
|
|
31
69
|
program.addCommand(createListPageSectionsCommand());
|
|
70
|
+
program.addCommand(createMovePageSectionCommand());
|
|
71
|
+
program.addCommand(createRemovePageSectionCommand());
|
|
72
|
+
program.addCommand(createGetSectionValuesCommand());
|
|
73
|
+
program.addCommand(createGetComponentPropsCommand());
|
|
74
|
+
program.addCommand(createGetPageByTypeCommand());
|
|
75
|
+
program.addCommand(createListBuiltinPagesCommand());
|
|
76
|
+
program.addCommand(createUpdateBuiltinPagePropCommand());
|
|
77
|
+
program.addCommand(createEnableBuiltinPagesCommand());
|
|
78
|
+
program.addCommand(createCreatePageCommand());
|
|
79
|
+
program.addCommand(createDeletePageCommand());
|
|
80
|
+
program.addCommand(createPublishThemeCommand());
|
|
32
81
|
program.addCommand(createUpdateSectionPropCommand());
|
|
82
|
+
program.addCommand(createUpdatePageSectionsCommand());
|
|
33
83
|
program.addCommand(createUploadImageCommand());
|
|
84
|
+
program.addCommand(createUploadImagesCommand());
|
|
85
|
+
program.addCommand(createSearchProductsCommand());
|
|
86
|
+
program.addCommand(createListEntitiesCommand());
|
|
34
87
|
export function run() {
|
|
35
88
|
return program.parseAsync(process.argv);
|
|
36
89
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -43,6 +43,24 @@ export interface ComponentPropGroup {
|
|
|
43
43
|
name: string;
|
|
44
44
|
description?: string;
|
|
45
45
|
children?: ComponentPropGroup[];
|
|
46
|
+
/**
|
|
47
|
+
* Conditional visibility ("Koşullu Prop"). Names a BOOLEAN or ENUM prop on this component; the
|
|
48
|
+
* group and everything under it are drawn in the editor's settings panel only while that prop
|
|
49
|
+
* satisfies the condition, and a required prop hidden this way stops blocking a publish.
|
|
50
|
+
*
|
|
51
|
+
* A NAME, not an id — config props carry no id, the CLI mints those from position, and a name
|
|
52
|
+
* survives a reorder where an index would not.
|
|
53
|
+
*
|
|
54
|
+
* Nothing under a hidden group is dropped from the theme or from what renders; the controls come
|
|
55
|
+
* back with what they held.
|
|
56
|
+
*/
|
|
57
|
+
requiredProp?: string;
|
|
58
|
+
/** For a BOOLEAN gate — which state of `requiredProp` shows this group. Defaults to `true`. */
|
|
59
|
+
requiredPropValue?: boolean;
|
|
60
|
+
/** For an ENUM gate — the option's id. */
|
|
61
|
+
requiredEnumOptionId?: string;
|
|
62
|
+
/** For an ENUM gate — the option value `requiredProp` must hold. */
|
|
63
|
+
requiredEnumOptionValue?: string;
|
|
46
64
|
}
|
|
47
65
|
/**
|
|
48
66
|
* Prop definition for a component
|
|
@@ -60,6 +78,13 @@ export interface ComponentProp {
|
|
|
60
78
|
typeId?: string;
|
|
61
79
|
/** For ENUM props — the enum type ID from TypeStore (e.g. "@ikas/bp-storefront-models-FlexDirectionStyleType") */
|
|
62
80
|
enumTypeId?: string;
|
|
81
|
+
/** For NUMBER_RANGE props — slider config (min/max/interval/unit) */
|
|
82
|
+
numberRangeData?: {
|
|
83
|
+
min?: number;
|
|
84
|
+
max?: number;
|
|
85
|
+
interval?: number;
|
|
86
|
+
unit?: string;
|
|
87
|
+
};
|
|
63
88
|
/** For COMPONENT/COMPONENT_LIST props — map of variable keys to { id, typeId } */
|
|
64
89
|
privateVarMap?: Record<string, {
|
|
65
90
|
id: string;
|
|
@@ -67,6 +92,16 @@ export interface ComponentProp {
|
|
|
67
92
|
}>;
|
|
68
93
|
/** For COMPONENT/COMPONENT_LIST props — restrict which components can be selected */
|
|
69
94
|
filteredComponentIds?: string[];
|
|
95
|
+
/**
|
|
96
|
+
* Conditional visibility — see {@link ComponentPropGroup.requiredProp} for the full contract.
|
|
97
|
+
*/
|
|
98
|
+
requiredProp?: string;
|
|
99
|
+
/** For a BOOLEAN gate — which state of `requiredProp` shows this prop. Defaults to `true`. */
|
|
100
|
+
requiredPropValue?: boolean;
|
|
101
|
+
/** For an ENUM gate — the option's id. */
|
|
102
|
+
requiredEnumOptionId?: string;
|
|
103
|
+
/** For an ENUM gate — the option value `requiredProp` must hold. */
|
|
104
|
+
requiredEnumOptionValue?: string;
|
|
70
105
|
}
|
|
71
106
|
/**
|
|
72
107
|
* Result of component compilation
|
|
@@ -114,4 +149,20 @@ export interface SharedModuleData {
|
|
|
114
149
|
canvasClientJs: string;
|
|
115
150
|
compiledCss: string;
|
|
116
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Theme global-variable metadata carried over the dev-server `sync-types` protocol
|
|
154
|
+
* (name / displayName / type only — no value). Drives the generated `ThemeSettingName`
|
|
155
|
+
* union in the author's `src/global-types.ts`.
|
|
156
|
+
*/
|
|
157
|
+
export type ThemeSettingMeta = {
|
|
158
|
+
name: string;
|
|
159
|
+
displayName: string;
|
|
160
|
+
type: string;
|
|
161
|
+
/**
|
|
162
|
+
* ENUM only — id of the project enum the setting selects from. Types the setting's entry in
|
|
163
|
+
* the generated value map as that enum's union type, and forces the union to be emitted even
|
|
164
|
+
* when no component prop uses the enum.
|
|
165
|
+
*/
|
|
166
|
+
enumTypeId?: string;
|
|
167
|
+
};
|
|
117
168
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,cAAc,GACd,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,MAAM,GACN,MAAM,GACN,cAAc,GACd,OAAO,GACP,MAAM,GACN,SAAS,GACT,cAAc,GACd,mBAAmB,GACnB,wBAAwB,GACxB,UAAU,GACV,eAAe,GACf,OAAO,GACP,YAAY,GACZ,MAAM,GACN,WAAW,GACX,eAAe,GACf,oBAAoB,GACpB,MAAM,GACN,WAAW,GACX,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,yFAAyF;IACzF,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,wFAAwF;IACxF,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory / file names that never belong in a theme source archive.
|
|
3
|
+
* `node_modules` is the reason this module exists (a theme folder is a few MB
|
|
4
|
+
* without it and hundreds of MB with it); the rest are either machine-local
|
|
5
|
+
* noise or secrets that must not be copied to cloud storage.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEFAULT_ARCHIVE_EXCLUDES: string[];
|
|
8
|
+
export interface ArchiveProjectOptions {
|
|
9
|
+
/** Absolute path of the folder to archive (the theme project root). */
|
|
10
|
+
rootDir: string;
|
|
11
|
+
/** Extra exclude patterns (directory / file names, matched at every depth). */
|
|
12
|
+
exclude?: string[];
|
|
13
|
+
/** Where to write the zip; defaults to a unique file in the OS temp dir. */
|
|
14
|
+
outputPath?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Id table applied to the archived source text (see `rewriteIdsInText`).
|
|
17
|
+
* Only the zip gets the rewritten text; files on disk are never modified.
|
|
18
|
+
*/
|
|
19
|
+
rewriteIds?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
export interface ArchiveProjectResult {
|
|
22
|
+
zipPath: string;
|
|
23
|
+
size: number;
|
|
24
|
+
fileCount: number;
|
|
25
|
+
}
|
|
26
|
+
export interface UploadArchiveOptions {
|
|
27
|
+
zipPath: string;
|
|
28
|
+
uploadUrl: string;
|
|
29
|
+
/** HTTP method the upload URL was signed for; presigned PUT is the norm. */
|
|
30
|
+
method?: string;
|
|
31
|
+
/** Extra headers the signature requires (e.g. a Content-Type it was signed with). */
|
|
32
|
+
headers?: Record<string, string>;
|
|
33
|
+
}
|
|
34
|
+
export interface UploadArchiveResult {
|
|
35
|
+
status: number;
|
|
36
|
+
etag?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function isRewritableFile(rel: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Replace every occurrence of a table key with its value, longest key first so
|
|
41
|
+
* a full id (`<projectId>-hero-slider`) wins over its project-id root, which
|
|
42
|
+
* still covers everything derived from it (chunk ids, `cc_<projectId>_…`
|
|
43
|
+
* scopes). Plain substring semantics, same as the editor's publish rewrite.
|
|
44
|
+
*/
|
|
45
|
+
export declare function rewriteIdsInText(text: string, ids: Record<string, string>): string;
|
|
46
|
+
export declare function isExcluded(name: string, patterns: string[]): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Recursively list files under `rootDir`, skipping excluded names at every
|
|
49
|
+
* depth (a nested `node_modules` inside a workspace package is dropped too).
|
|
50
|
+
* Returns paths relative to `rootDir` with forward slashes, sorted for a
|
|
51
|
+
* deterministic archive.
|
|
52
|
+
*/
|
|
53
|
+
export declare function collectProjectFiles(rootDir: string, patterns: string[]): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Zip the project folder WITHOUT its node_modules (and the other excludes).
|
|
56
|
+
* The working tree is never modified — the archive is simply built without
|
|
57
|
+
* those entries, which yields the same zip as deleting them first would.
|
|
58
|
+
*/
|
|
59
|
+
export declare function archiveProject(options: ArchiveProjectOptions): Promise<ArchiveProjectResult>;
|
|
60
|
+
/**
|
|
61
|
+
* PUT the zip to a presigned URL (Cloudflare R2 / S3 style). The CLI holds no
|
|
62
|
+
* cloud credentials: the editor asks the ikas backend for a short-lived signed
|
|
63
|
+
* URL and hands it over, so the bytes go straight from the partner's machine
|
|
64
|
+
* to the bucket without passing through the browser or the websocket tunnel.
|
|
65
|
+
*/
|
|
66
|
+
export declare function uploadArchive(options: UploadArchiveOptions): Promise<UploadArchiveResult>;
|
|
67
|
+
/** Delete the zip; also drops the temp dir when it is one `archiveProject` created. */
|
|
68
|
+
export declare function removeArchive(zipPath: string): void;
|
|
69
|
+
//# sourceMappingURL=archive-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-project.d.ts","sourceRoot":"","sources":["../../src/utils/archive-project.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,UAUpC,CAAC;AAIF,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA0BD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAUR;AAUD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAkBV;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA2D/B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAqB9B;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAanD"}
|