@contentful/experience-design-system-cli 2.35.1-dev-build-fa950e44.0 → 2.35.1-dev-build-236b6909.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/dist/app.js +127 -262
- package/dist/index.js +131 -289
- package/dist/package.json +1 -1
- package/dist/src/tui/import/spawn-v1-import.d.ts +0 -1
- package/dist/src/tui/import/steps/index.d.ts +0 -1
- package/legacy/dist/src/analyze/controller/run-analyze-extract.d.ts +12 -0
- package/legacy/dist/src/analyze/extract-command.d.ts +2 -5
- package/legacy/dist/src/analyze/helpers/resolve-composition-agent.d.ts +9 -0
- package/legacy/dist/src/analyze/helpers/resolve-no-cache.d.ts +4 -0
- package/legacy/dist/src/analyze/helpers/resolve-unreachable-mode.d.ts +1 -0
- package/legacy/dist/src/analyze/helpers/retry-db-write.d.ts +1 -0
- package/legacy/dist/src/analyze/orchestrator/execute-analyze-extract.d.ts +21 -0
- package/legacy/dist/src/analyze/services/collect-source-files.d.ts +1 -0
- package/legacy/dist/src/analyze/services/extract-with-cache.d.ts +17 -0
- package/legacy/dist/src/analyze/services/persist-extract-results.d.ts +11 -0
- package/legacy/dist/src/analyze/services/resolve-composition-mapping.d.ts +22 -0
- package/legacy/dist/src/analyze/services/resolve-source-directory.d.ts +1 -0
- package/legacy/dist/src/apply/command.d.ts +3 -41
- package/legacy/dist/src/apply/controller/run-apply.d.ts +1 -0
- package/legacy/dist/src/apply/helpers/build-apply-output.d.ts +55 -0
- package/legacy/dist/src/apply/helpers/has-breaking-changes.d.ts +2 -0
- package/legacy/dist/src/apply/helpers/poll-apply-operation.d.ts +9 -0
- package/legacy/dist/src/apply/helpers/read-token-files.d.ts +7 -0
- package/legacy/dist/src/apply/helpers/slot-validation.d.ts +20 -0
- package/legacy/dist/src/apply/services/apply-interactive.d.ts +13 -0
- package/legacy/dist/src/apply/services/apply-non-interactive.d.ts +10 -0
- package/legacy/dist/src/apply/services/resolve-apply-inputs.d.ts +14 -0
- package/legacy/dist/src/generate/command.d.ts +18 -0
- package/legacy/dist/src/generate/controller/run-generate-components.d.ts +2 -0
- package/legacy/dist/src/generate/controller/run-generate-tokens.d.ts +2 -0
- package/legacy/dist/src/generate/helpers/assert-file-exists.d.ts +1 -0
- package/legacy/dist/src/generate/helpers/normalize-component-for-cache.d.ts +6 -0
- package/legacy/dist/src/generate/helpers/parse-precomputed-cached-names.d.ts +1 -0
- package/legacy/dist/src/generate/helpers/print-fallback-instructions.d.ts +6 -0
- package/legacy/dist/src/generate/helpers/read-file-inline.d.ts +1 -0
- package/legacy/dist/src/generate/services/invoke-all-component-agents.d.ts +6 -0
- package/legacy/dist/src/generate/services/invoke-component-agent.d.ts +36 -0
- package/legacy/dist/src/generate/services/load-accepted-names.d.ts +1 -0
- package/legacy/dist/src/generate/services/resolve-component-cache.d.ts +13 -0
- package/legacy/dist/src/generate/services/resolve-generate-agent.d.ts +9 -0
- package/legacy/dist/src/generate/services/show-generate-view.d.ts +2 -0
- package/legacy/dist/src/generate/services/verify-agent-binary.d.ts +2 -0
- package/legacy/dist/src/index.js +2683 -2245
- package/legacy/dist/src/lib/pluralize.d.ts +1 -0
- package/legacy/dist/src/map-tokens/controller/run-map-tokens.d.ts +12 -0
- package/legacy/dist/src/map-tokens/services/render-map-tokens-result.d.ts +2 -0
- package/legacy/dist/src/map-tokens/services/resolve-token-name-paths.d.ts +8 -0
- package/legacy/package.json +1 -1
- package/package.json +2 -2
- package/dist/src/tui/import/steps/02-token-input/controls.d.ts +0 -11
- package/dist/src/tui/import/steps/02-token-input/logic.d.ts +0 -9
- package/dist/src/tui/import/steps/02-token-input/screen.d.ts +0 -8
- package/dist/src/tui/import/steps/02-token-input/validate-path.d.ts +0 -12
package/dist/index.js
CHANGED
|
@@ -388,151 +388,11 @@ var init_screen = __esm({
|
|
|
388
388
|
}
|
|
389
389
|
});
|
|
390
390
|
|
|
391
|
-
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/logic.ts
|
|
392
|
-
function isPlainKeyOnEmptyField(value, input, key, expected) {
|
|
393
|
-
return value === "" && input === expected && !key.ctrl && !key.meta;
|
|
394
|
-
}
|
|
395
|
-
function shouldGoBack(value, input, key) {
|
|
396
|
-
return key.escape || isPlainKeyOnEmptyField(value, input, key, "q");
|
|
397
|
-
}
|
|
398
|
-
function shouldSkip(value, input, key) {
|
|
399
|
-
return isPlainKeyOnEmptyField(value, input, key, "s");
|
|
400
|
-
}
|
|
401
|
-
function toTokenPath(value) {
|
|
402
|
-
const tokenPath = value.trim();
|
|
403
|
-
return tokenPath === "" ? null : tokenPath;
|
|
404
|
-
}
|
|
405
|
-
var init_logic2 = __esm({
|
|
406
|
-
"packages/experience-design-system-cli/src/tui/import/steps/02-token-input/logic.ts"() {
|
|
407
|
-
"use strict";
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
|
|
411
|
-
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/controls.ts
|
|
412
|
-
import { useInput as useInput4 } from "ink";
|
|
413
|
-
function useTokenInputControls(tokenPath, onSkip, onBack) {
|
|
414
|
-
useInput4((input, key) => {
|
|
415
|
-
if (shouldGoBack(tokenPath, input, key)) onBack();
|
|
416
|
-
else if (shouldSkip(tokenPath, input, key)) onSkip();
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
var TOKEN_INPUT_CONTROLS;
|
|
420
|
-
var init_controls2 = __esm({
|
|
421
|
-
"packages/experience-design-system-cli/src/tui/import/steps/02-token-input/controls.ts"() {
|
|
422
|
-
"use strict";
|
|
423
|
-
init_logic2();
|
|
424
|
-
TOKEN_INPUT_CONTROLS = [
|
|
425
|
-
{ keys: "Enter", label: "Continue (skips if empty)" },
|
|
426
|
-
{ keys: "s", label: "Skip" },
|
|
427
|
-
{ keys: "Esc/q", label: "Back" }
|
|
428
|
-
];
|
|
429
|
-
}
|
|
430
|
-
});
|
|
431
|
-
|
|
432
|
-
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/validate-path.ts
|
|
433
|
-
import { statSync } from "node:fs";
|
|
434
|
-
import { homedir } from "node:os";
|
|
435
|
-
import { resolve } from "node:path";
|
|
436
|
-
function stripQuotes(value) {
|
|
437
|
-
const quoted = value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'");
|
|
438
|
-
return value.length >= 2 && quoted ? value.slice(1, -1) : value;
|
|
439
|
-
}
|
|
440
|
-
function expandHome(value) {
|
|
441
|
-
return value === "~" || value.startsWith("~/") || value.startsWith("~\\") ? homedir() + value.slice(1) : value;
|
|
442
|
-
}
|
|
443
|
-
function validateTokenPath(rawPath) {
|
|
444
|
-
const path = resolve(expandHome(stripQuotes(rawPath.trim())));
|
|
445
|
-
let stats;
|
|
446
|
-
try {
|
|
447
|
-
stats = statSync(path);
|
|
448
|
-
} catch {
|
|
449
|
-
return { ok: false, error: `Path not found: ${path}`, resolvedPath: path };
|
|
450
|
-
}
|
|
451
|
-
if (stats.isDirectory()) {
|
|
452
|
-
return {
|
|
453
|
-
ok: false,
|
|
454
|
-
error: "That's a directory \u2014 provide a path to a token file (e.g. tokens.json), not a folder.",
|
|
455
|
-
resolvedPath: path
|
|
456
|
-
};
|
|
457
|
-
}
|
|
458
|
-
if (!stats.isFile()) {
|
|
459
|
-
return { ok: false, error: `Not a regular file: ${path}`, resolvedPath: path };
|
|
460
|
-
}
|
|
461
|
-
return { ok: true, path };
|
|
462
|
-
}
|
|
463
|
-
var init_validate_path = __esm({
|
|
464
|
-
"packages/experience-design-system-cli/src/tui/import/steps/02-token-input/validate-path.ts"() {
|
|
465
|
-
"use strict";
|
|
466
|
-
}
|
|
467
|
-
});
|
|
468
|
-
|
|
469
|
-
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
|
|
470
|
-
import { useState as useState4 } from "react";
|
|
471
|
-
import { Box as Box4, Text as Text4 } from "ink";
|
|
472
|
-
import TextInput2 from "ink-text-input";
|
|
473
|
-
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
474
|
-
function TokenInputScreen({ onConfirm, onSkip, onBack }) {
|
|
475
|
-
const [tokenPath, setTokenPath] = useState4("");
|
|
476
|
-
const [failure, setFailure] = useState4(null);
|
|
477
|
-
useTokenInputControls(tokenPath, onSkip, onBack);
|
|
478
|
-
const change = (value) => {
|
|
479
|
-
setTokenPath(value);
|
|
480
|
-
setFailure(null);
|
|
481
|
-
};
|
|
482
|
-
const submit = (value) => {
|
|
483
|
-
const rawPath = toTokenPath(value);
|
|
484
|
-
if (!rawPath) {
|
|
485
|
-
onSkip();
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
const check = validateTokenPath(rawPath);
|
|
489
|
-
if (check.ok) onConfirm(check.path);
|
|
490
|
-
else setFailure({ error: check.error, resolvedPath: check.resolvedPath });
|
|
491
|
-
};
|
|
492
|
-
return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
|
|
493
|
-
/* @__PURE__ */ jsx4(Text4, { bold: true, children: "Design tokens" }),
|
|
494
|
-
/* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "Point me to your raw token file (e.g. ~/design-tokens/tokens.json). You can use ~, relative, or absolute paths. Claude will map it to DTCG format." }),
|
|
495
|
-
/* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", marginTop: 1, children: [
|
|
496
|
-
/* @__PURE__ */ jsxs4(Box4, { gap: 1, children: [
|
|
497
|
-
/* @__PURE__ */ jsx4(Text4, { color: PALETTE.accent, children: "?" }),
|
|
498
|
-
/* @__PURE__ */ jsx4(Text4, { children: "Token path:" }),
|
|
499
|
-
/* @__PURE__ */ jsx4(TextInput2, { value: tokenPath, onChange: change, onSubmit: submit })
|
|
500
|
-
] }),
|
|
501
|
-
failure && /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", children: [
|
|
502
|
-
/* @__PURE__ */ jsxs4(Text4, { color: PALETTE.error, children: [
|
|
503
|
-
"\u2717 ",
|
|
504
|
-
failure.error
|
|
505
|
-
] }),
|
|
506
|
-
/* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
|
|
507
|
-
" Resolved to: ",
|
|
508
|
-
failure.resolvedPath
|
|
509
|
-
] })
|
|
510
|
-
] })
|
|
511
|
-
] }),
|
|
512
|
-
/* @__PURE__ */ jsx4(Box4, { marginTop: 1, gap: 3, children: TOKEN_INPUT_CONTROLS.map((control) => /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
|
|
513
|
-
"[",
|
|
514
|
-
control.keys,
|
|
515
|
-
"] ",
|
|
516
|
-
control.label
|
|
517
|
-
] }, control.keys)) })
|
|
518
|
-
] });
|
|
519
|
-
}
|
|
520
|
-
var init_screen2 = __esm({
|
|
521
|
-
"packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx"() {
|
|
522
|
-
"use strict";
|
|
523
|
-
init_home_theme();
|
|
524
|
-
init_controls2();
|
|
525
|
-
init_logic2();
|
|
526
|
-
init_validate_path();
|
|
527
|
-
}
|
|
528
|
-
});
|
|
529
|
-
|
|
530
391
|
// packages/experience-design-system-cli/src/tui/import/steps/index.ts
|
|
531
392
|
var init_steps = __esm({
|
|
532
393
|
"packages/experience-design-system-cli/src/tui/import/steps/index.ts"() {
|
|
533
394
|
"use strict";
|
|
534
395
|
init_screen();
|
|
535
|
-
init_screen2();
|
|
536
396
|
}
|
|
537
397
|
});
|
|
538
398
|
|
|
@@ -543,9 +403,6 @@ function buildArgs(options) {
|
|
|
543
403
|
if (options.project) {
|
|
544
404
|
args.push("--project", options.project);
|
|
545
405
|
}
|
|
546
|
-
if (options.tokens) {
|
|
547
|
-
args.push("--tokens", options.tokens);
|
|
548
|
-
}
|
|
549
406
|
return args;
|
|
550
407
|
}
|
|
551
408
|
async function spawnV1Import(options = {}) {
|
|
@@ -575,7 +432,7 @@ function getTerminalHandle() {
|
|
|
575
432
|
return process.stdin._handle;
|
|
576
433
|
}
|
|
577
434
|
async function stopReadingTerminal() {
|
|
578
|
-
await new Promise((
|
|
435
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
579
436
|
const handle = getTerminalHandle();
|
|
580
437
|
if (!handle?.readStop) return;
|
|
581
438
|
handle.reading = false;
|
|
@@ -779,8 +636,8 @@ var init_debug_store = __esm({
|
|
|
779
636
|
|
|
780
637
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
781
638
|
import { useEffect as useEffect3 } from "react";
|
|
782
|
-
import { Box as
|
|
783
|
-
import { jsx as
|
|
639
|
+
import { Box as Box4, Text as Text4, useInput as useInput4 } from "ink";
|
|
640
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
784
641
|
function HelpScreen({ onDone }) {
|
|
785
642
|
useEffect3(() => {
|
|
786
643
|
startDebugRun({ flow: "help", step: "01-help", menuOption: "Help", inputs: {} });
|
|
@@ -789,7 +646,7 @@ function HelpScreen({ onDone }) {
|
|
|
789
646
|
void finishDebugRun({ outputs: {}, status: "success", exitMethod });
|
|
790
647
|
onDone();
|
|
791
648
|
};
|
|
792
|
-
|
|
649
|
+
useInput4((input, key) => {
|
|
793
650
|
if (key.return) {
|
|
794
651
|
leave("saved");
|
|
795
652
|
return;
|
|
@@ -799,12 +656,12 @@ function HelpScreen({ onDone }) {
|
|
|
799
656
|
return;
|
|
800
657
|
}
|
|
801
658
|
});
|
|
802
|
-
return /* @__PURE__ */
|
|
803
|
-
/* @__PURE__ */
|
|
804
|
-
/* @__PURE__ */
|
|
805
|
-
/* @__PURE__ */
|
|
806
|
-
/* @__PURE__ */
|
|
807
|
-
/* @__PURE__ */
|
|
659
|
+
return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
660
|
+
/* @__PURE__ */ jsx4(Text4, { bold: true, children: "Help" }),
|
|
661
|
+
/* @__PURE__ */ jsx4(Text4, { children: " " }),
|
|
662
|
+
/* @__PURE__ */ jsx4(Text4, { children: "This is a placeholder screen for v2 help content." }),
|
|
663
|
+
/* @__PURE__ */ jsx4(Text4, { children: " " }),
|
|
664
|
+
/* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "[Enter] Complete [Esc/q] Exit \u2014 both return to Start" })
|
|
808
665
|
] });
|
|
809
666
|
}
|
|
810
667
|
var init_PageContainer2 = __esm({
|
|
@@ -815,20 +672,20 @@ var init_PageContainer2 = __esm({
|
|
|
815
672
|
});
|
|
816
673
|
|
|
817
674
|
// packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
|
|
818
|
-
import { useState as
|
|
819
|
-
import { Box as
|
|
820
|
-
import { jsx as
|
|
675
|
+
import { useState as useState4 } from "react";
|
|
676
|
+
import { Box as Box5, Text as Text5, useInput as useInput5 } from "ink";
|
|
677
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
821
678
|
function SettingsScreen({
|
|
822
679
|
onNavigate,
|
|
823
680
|
onBack
|
|
824
681
|
}) {
|
|
825
|
-
const [focusIdx, setFocusIdx] =
|
|
682
|
+
const [focusIdx, setFocusIdx] = useState4(0);
|
|
826
683
|
const items = [
|
|
827
684
|
{ label: "Configuration", screen: "settings-configuration" },
|
|
828
685
|
{ label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
|
|
829
686
|
{ label: "Debug Mode", screen: "settings-debug-mode" }
|
|
830
687
|
];
|
|
831
|
-
|
|
688
|
+
useInput5((input, key) => {
|
|
832
689
|
if (key.upArrow) {
|
|
833
690
|
setFocusIdx((i) => (i - 1 + items.length) % items.length);
|
|
834
691
|
return;
|
|
@@ -848,15 +705,15 @@ function SettingsScreen({
|
|
|
848
705
|
onBack();
|
|
849
706
|
}
|
|
850
707
|
});
|
|
851
|
-
return /* @__PURE__ */
|
|
852
|
-
/* @__PURE__ */
|
|
853
|
-
/* @__PURE__ */
|
|
854
|
-
items.map((item, i) => /* @__PURE__ */
|
|
708
|
+
return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
709
|
+
/* @__PURE__ */ jsx5(Text5, { bold: true, children: "Settings" }),
|
|
710
|
+
/* @__PURE__ */ jsx5(Text5, { children: " " }),
|
|
711
|
+
items.map((item, i) => /* @__PURE__ */ jsxs5(Text5, { color: i === focusIdx ? "cyan" : void 0, children: [
|
|
855
712
|
i === focusIdx ? "> " : " ",
|
|
856
713
|
item.label
|
|
857
714
|
] }, item.label)),
|
|
858
|
-
/* @__PURE__ */
|
|
859
|
-
/* @__PURE__ */
|
|
715
|
+
/* @__PURE__ */ jsx5(Text5, { children: " " }),
|
|
716
|
+
/* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "[\u2191/\u2193] Navigate [Enter] Select [Esc/q] Back to Start" })
|
|
860
717
|
] });
|
|
861
718
|
}
|
|
862
719
|
var init_PageContainer3 = __esm({
|
|
@@ -868,7 +725,7 @@ var init_PageContainer3 = __esm({
|
|
|
868
725
|
// packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts
|
|
869
726
|
import { readFile as readFile2, writeFile as writeFile3, mkdir as mkdir3 } from "node:fs/promises";
|
|
870
727
|
import { join as join6 } from "node:path";
|
|
871
|
-
import { homedir
|
|
728
|
+
import { homedir } from "node:os";
|
|
872
729
|
async function readV1Store() {
|
|
873
730
|
try {
|
|
874
731
|
const raw = await readFile2(V1_STORE_PATH, "utf8");
|
|
@@ -878,7 +735,7 @@ async function readV1Store() {
|
|
|
878
735
|
}
|
|
879
736
|
}
|
|
880
737
|
async function writeV1Store(data) {
|
|
881
|
-
await mkdir3(join6(
|
|
738
|
+
await mkdir3(join6(homedir(), ".config", "experiences"), { recursive: true });
|
|
882
739
|
await writeFile3(V1_STORE_PATH, `${JSON.stringify(data, null, 2)}
|
|
883
740
|
`, { mode: 384 });
|
|
884
741
|
}
|
|
@@ -886,7 +743,7 @@ var V1_STORE_PATH;
|
|
|
886
743
|
var init_v1_store = __esm({
|
|
887
744
|
"packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts"() {
|
|
888
745
|
"use strict";
|
|
889
|
-
V1_STORE_PATH = join6(
|
|
746
|
+
V1_STORE_PATH = join6(homedir(), ".config", "experiences", "credentials.json");
|
|
890
747
|
}
|
|
891
748
|
});
|
|
892
749
|
|
|
@@ -919,9 +776,9 @@ var init_config_store = __esm({
|
|
|
919
776
|
});
|
|
920
777
|
|
|
921
778
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
922
|
-
import { useEffect as useEffect4, useState as
|
|
923
|
-
import { Box as
|
|
924
|
-
import { Fragment, jsx as
|
|
779
|
+
import { useEffect as useEffect4, useState as useState5 } from "react";
|
|
780
|
+
import { Box as Box6, Text as Text6, useInput as useInput6 } from "ink";
|
|
781
|
+
import { Fragment, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
925
782
|
function debugFields(config) {
|
|
926
783
|
return {
|
|
927
784
|
space_id: config?.spaceId ?? "",
|
|
@@ -931,10 +788,10 @@ function debugFields(config) {
|
|
|
931
788
|
};
|
|
932
789
|
}
|
|
933
790
|
function ConfigurationScreen({ onDone }) {
|
|
934
|
-
const [stage, setStage] =
|
|
935
|
-
const [config, setConfig] =
|
|
936
|
-
const [activeField, setActiveField] =
|
|
937
|
-
const [message, setMessage] =
|
|
791
|
+
const [stage, setStage] = useState5("loading");
|
|
792
|
+
const [config, setConfig] = useState5(null);
|
|
793
|
+
const [activeField, setActiveField] = useState5("spaceId");
|
|
794
|
+
const [message, setMessage] = useState5(null);
|
|
938
795
|
useEffect4(() => {
|
|
939
796
|
readCredentials().then((cfg) => {
|
|
940
797
|
setConfig(cfg);
|
|
@@ -967,7 +824,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
967
824
|
setStage("form");
|
|
968
825
|
});
|
|
969
826
|
}
|
|
970
|
-
|
|
827
|
+
useInput6((input, key) => {
|
|
971
828
|
if (stage === "loading" || stage === "saving") return;
|
|
972
829
|
if (stage === "saved") {
|
|
973
830
|
if (key.return || key.escape || input === "q") {
|
|
@@ -1010,51 +867,51 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1010
867
|
}
|
|
1011
868
|
});
|
|
1012
869
|
if (stage === "loading") {
|
|
1013
|
-
return /* @__PURE__ */
|
|
1014
|
-
/* @__PURE__ */
|
|
1015
|
-
/* @__PURE__ */
|
|
1016
|
-
/* @__PURE__ */
|
|
870
|
+
return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
871
|
+
/* @__PURE__ */ jsx6(Text6, { bold: true, children: "Configuration" }),
|
|
872
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
873
|
+
/* @__PURE__ */ jsx6(Text6, { color: PALETTE.accent, children: "Loading..." })
|
|
1017
874
|
] });
|
|
1018
875
|
}
|
|
1019
876
|
if (stage === "saved") {
|
|
1020
|
-
return /* @__PURE__ */
|
|
1021
|
-
/* @__PURE__ */
|
|
1022
|
-
/* @__PURE__ */
|
|
1023
|
-
/* @__PURE__ */
|
|
877
|
+
return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
878
|
+
/* @__PURE__ */ jsx6(Text6, { bold: true, children: "Configuration" }),
|
|
879
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
880
|
+
/* @__PURE__ */ jsxs6(Text6, { color: PALETTE.success, children: [
|
|
1024
881
|
"\u2713 ",
|
|
1025
882
|
message
|
|
1026
883
|
] }),
|
|
1027
|
-
/* @__PURE__ */
|
|
1028
|
-
/* @__PURE__ */
|
|
884
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
885
|
+
/* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[Enter] Back to Settings" })
|
|
1029
886
|
] });
|
|
1030
887
|
}
|
|
1031
|
-
return /* @__PURE__ */
|
|
1032
|
-
/* @__PURE__ */
|
|
1033
|
-
/* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
1035
|
-
/* @__PURE__ */
|
|
1036
|
-
/* @__PURE__ */
|
|
888
|
+
return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
889
|
+
/* @__PURE__ */ jsx6(Text6, { bold: true, children: "Configuration" }),
|
|
890
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
891
|
+
/* @__PURE__ */ jsx6(Text6, { children: "Contentful API Credentials" }),
|
|
892
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
893
|
+
/* @__PURE__ */ jsx6(Box6, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
|
|
1037
894
|
const isActive = activeField === field;
|
|
1038
895
|
const value = fieldValue(field);
|
|
1039
896
|
const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
|
|
1040
|
-
return /* @__PURE__ */
|
|
1041
|
-
/* @__PURE__ */
|
|
1042
|
-
/* @__PURE__ */
|
|
897
|
+
return /* @__PURE__ */ jsxs6(Box6, { gap: 1, children: [
|
|
898
|
+
/* @__PURE__ */ jsx6(Text6, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
|
|
899
|
+
/* @__PURE__ */ jsxs6(Text6, { bold: isActive, children: [
|
|
1043
900
|
FIELD_LABELS[field],
|
|
1044
901
|
":"
|
|
1045
902
|
] }),
|
|
1046
|
-
/* @__PURE__ */
|
|
903
|
+
/* @__PURE__ */ jsx6(Text6, { children: display || /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "(empty)" }) })
|
|
1047
904
|
] }, field);
|
|
1048
905
|
}) }),
|
|
1049
|
-
message && /* @__PURE__ */
|
|
1050
|
-
/* @__PURE__ */
|
|
1051
|
-
/* @__PURE__ */
|
|
906
|
+
message && /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
907
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
908
|
+
/* @__PURE__ */ jsxs6(Text6, { color: PALETTE.error, children: [
|
|
1052
909
|
"\u2717 ",
|
|
1053
910
|
message
|
|
1054
911
|
] })
|
|
1055
912
|
] }),
|
|
1056
|
-
/* @__PURE__ */
|
|
1057
|
-
/* @__PURE__ */
|
|
913
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
914
|
+
/* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[\u2191/\u2193] Switch field \xB7 [Enter] Save/Next \xB7 [Esc/q] Back" })
|
|
1058
915
|
] });
|
|
1059
916
|
}
|
|
1060
917
|
var FIELD_ORDER, FIELD_LABELS;
|
|
@@ -1096,12 +953,12 @@ var init_analytics_store = __esm({
|
|
|
1096
953
|
});
|
|
1097
954
|
|
|
1098
955
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
1099
|
-
import { useEffect as useEffect5, useState as
|
|
1100
|
-
import { Box as
|
|
1101
|
-
import { Fragment as Fragment2, jsx as
|
|
956
|
+
import { useEffect as useEffect5, useState as useState6 } from "react";
|
|
957
|
+
import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
|
|
958
|
+
import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1102
959
|
function OptInAnalyticsScreen({ onDone }) {
|
|
1103
|
-
const [loading, setLoading] =
|
|
1104
|
-
const [enabled, setEnabled] =
|
|
960
|
+
const [loading, setLoading] = useState6(true);
|
|
961
|
+
const [enabled, setEnabled] = useState6(true);
|
|
1105
962
|
useEffect5(() => {
|
|
1106
963
|
readAnalyticsSetting().then((setting) => {
|
|
1107
964
|
setEnabled(setting.enabled);
|
|
@@ -1114,7 +971,7 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
1114
971
|
});
|
|
1115
972
|
});
|
|
1116
973
|
}, []);
|
|
1117
|
-
|
|
974
|
+
useInput7((input, key) => {
|
|
1118
975
|
if (loading) return;
|
|
1119
976
|
if (key.return || input === " ") {
|
|
1120
977
|
setEnabled((current) => {
|
|
@@ -1129,24 +986,24 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
1129
986
|
onDone();
|
|
1130
987
|
}
|
|
1131
988
|
});
|
|
1132
|
-
return /* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
/* @__PURE__ */
|
|
1135
|
-
loading ? /* @__PURE__ */
|
|
1136
|
-
/* @__PURE__ */
|
|
989
|
+
return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
990
|
+
/* @__PURE__ */ jsx7(Text7, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
|
|
991
|
+
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
992
|
+
loading ? /* @__PURE__ */ jsx7(Text7, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
993
|
+
/* @__PURE__ */ jsxs7(Text7, { children: [
|
|
1137
994
|
"Share anonymous usage data:",
|
|
1138
995
|
" ",
|
|
1139
|
-
/* @__PURE__ */
|
|
996
|
+
/* @__PURE__ */ jsx7(Text7, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
1140
997
|
] }),
|
|
1141
|
-
/* @__PURE__ */
|
|
1142
|
-
/* @__PURE__ */
|
|
1143
|
-
/* @__PURE__ */
|
|
998
|
+
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
999
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
|
|
1000
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
|
|
1144
1001
|
] }),
|
|
1145
|
-
/* @__PURE__ */
|
|
1146
|
-
/* @__PURE__ */
|
|
1002
|
+
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
1003
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
|
|
1147
1004
|
] });
|
|
1148
1005
|
}
|
|
1149
|
-
var
|
|
1006
|
+
var init_screen2 = __esm({
|
|
1150
1007
|
"packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx"() {
|
|
1151
1008
|
"use strict";
|
|
1152
1009
|
init_home_theme();
|
|
@@ -1156,11 +1013,11 @@ var init_screen3 = __esm({
|
|
|
1156
1013
|
});
|
|
1157
1014
|
|
|
1158
1015
|
// packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
|
|
1159
|
-
import { useEffect as useEffect6, useState as
|
|
1160
|
-
import { Box as
|
|
1161
|
-
import { jsx as
|
|
1016
|
+
import { useEffect as useEffect6, useState as useState7 } from "react";
|
|
1017
|
+
import { Box as Box8, Text as Text8, useInput as useInput8 } from "ink";
|
|
1018
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1162
1019
|
function UpgradeScreen({ onDone }) {
|
|
1163
|
-
const [upgradeCheck, setUpgradeCheck] =
|
|
1020
|
+
const [upgradeCheck, setUpgradeCheck] = useState7();
|
|
1164
1021
|
useEffect6(() => {
|
|
1165
1022
|
startDebugRun({
|
|
1166
1023
|
flow: "upgrade",
|
|
@@ -1170,7 +1027,7 @@ function UpgradeScreen({ onDone }) {
|
|
|
1170
1027
|
});
|
|
1171
1028
|
checkForUpgrade().then(setUpgradeCheck).catch(() => setUpgradeCheck({ status: "error" }));
|
|
1172
1029
|
}, []);
|
|
1173
|
-
|
|
1030
|
+
useInput8((_input, key) => {
|
|
1174
1031
|
if (key.return) {
|
|
1175
1032
|
void finishDebugRun({
|
|
1176
1033
|
outputs: upgradeCheck ?? {},
|
|
@@ -1181,12 +1038,12 @@ function UpgradeScreen({ onDone }) {
|
|
|
1181
1038
|
return;
|
|
1182
1039
|
}
|
|
1183
1040
|
});
|
|
1184
|
-
return /* @__PURE__ */
|
|
1185
|
-
/* @__PURE__ */
|
|
1186
|
-
/* @__PURE__ */
|
|
1041
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1042
|
+
/* @__PURE__ */ jsx8(Text8, { bold: true, children: "Upgrade" }),
|
|
1043
|
+
/* @__PURE__ */ jsx8(Text8, { children: " " }),
|
|
1187
1044
|
renderBody(upgradeCheck),
|
|
1188
|
-
/* @__PURE__ */
|
|
1189
|
-
/* @__PURE__ */
|
|
1045
|
+
/* @__PURE__ */ jsx8(Text8, { children: " " }),
|
|
1046
|
+
/* @__PURE__ */ jsxs8(Text8, { bold: true, color: PALETTE.accent, children: [
|
|
1190
1047
|
FOCUS_MARKER,
|
|
1191
1048
|
" Go Back"
|
|
1192
1049
|
] })
|
|
@@ -1194,34 +1051,34 @@ function UpgradeScreen({ onDone }) {
|
|
|
1194
1051
|
}
|
|
1195
1052
|
function renderBody(upgradeCheck) {
|
|
1196
1053
|
if (!upgradeCheck) {
|
|
1197
|
-
return /* @__PURE__ */
|
|
1054
|
+
return /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: "Checking for updates\u2026" });
|
|
1198
1055
|
}
|
|
1199
1056
|
if (upgradeCheck.status === "error") {
|
|
1200
|
-
return /* @__PURE__ */
|
|
1057
|
+
return /* @__PURE__ */ jsx8(Text8, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
|
|
1201
1058
|
}
|
|
1202
1059
|
if (upgradeCheck.status === "up-to-date") {
|
|
1203
|
-
return /* @__PURE__ */
|
|
1060
|
+
return /* @__PURE__ */ jsxs8(Text8, { color: PALETTE.success, children: [
|
|
1204
1061
|
"You're already on the latest version (v",
|
|
1205
1062
|
upgradeCheck.current,
|
|
1206
1063
|
")."
|
|
1207
1064
|
] });
|
|
1208
1065
|
}
|
|
1209
|
-
return /* @__PURE__ */
|
|
1210
|
-
/* @__PURE__ */
|
|
1211
|
-
/* @__PURE__ */
|
|
1066
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", children: [
|
|
1067
|
+
/* @__PURE__ */ jsxs8(Text8, { color: PALETTE.muted, children: [
|
|
1068
|
+
/* @__PURE__ */ jsxs8(Text8, { bold: true, color: PALETTE.success, children: [
|
|
1212
1069
|
"v",
|
|
1213
1070
|
upgradeCheck.latest
|
|
1214
1071
|
] }),
|
|
1215
1072
|
" ",
|
|
1216
1073
|
"is available (you're on ",
|
|
1217
|
-
/* @__PURE__ */
|
|
1074
|
+
/* @__PURE__ */ jsxs8(Text8, { bold: true, children: [
|
|
1218
1075
|
"v",
|
|
1219
1076
|
upgradeCheck.current
|
|
1220
1077
|
] }),
|
|
1221
1078
|
"). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
|
|
1222
1079
|
] }),
|
|
1223
|
-
/* @__PURE__ */
|
|
1224
|
-
/* @__PURE__ */
|
|
1080
|
+
/* @__PURE__ */ jsx8(Text8, { children: " " }),
|
|
1081
|
+
/* @__PURE__ */ jsx8(Box8, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.border, paddingX: 1, children: UPGRADE_COMMANDS.map((cmd) => /* @__PURE__ */ jsx8(Text8, { bold: true, children: cmd }, cmd)) })
|
|
1225
1082
|
] });
|
|
1226
1083
|
}
|
|
1227
1084
|
var UPGRADE_COMMANDS;
|
|
@@ -1236,12 +1093,12 @@ var init_PageContainer4 = __esm({
|
|
|
1236
1093
|
});
|
|
1237
1094
|
|
|
1238
1095
|
// packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
|
|
1239
|
-
import { useEffect as useEffect7, useState as
|
|
1240
|
-
import { Box as
|
|
1241
|
-
import { jsx as
|
|
1096
|
+
import { useEffect as useEffect7, useState as useState8 } from "react";
|
|
1097
|
+
import { Box as Box9, Text as Text9, useInput as useInput9 } from "ink";
|
|
1098
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1242
1099
|
function DebugModeScreen({ onDone }) {
|
|
1243
|
-
const [loading, setLoading] =
|
|
1244
|
-
const [enabled, setEnabled] =
|
|
1100
|
+
const [loading, setLoading] = useState8(true);
|
|
1101
|
+
const [enabled, setEnabled] = useState8(true);
|
|
1245
1102
|
useEffect7(() => {
|
|
1246
1103
|
readDebugModeSetting().then((setting) => {
|
|
1247
1104
|
setEnabled(setting.enabled);
|
|
@@ -1254,7 +1111,7 @@ function DebugModeScreen({ onDone }) {
|
|
|
1254
1111
|
});
|
|
1255
1112
|
});
|
|
1256
1113
|
}, []);
|
|
1257
|
-
|
|
1114
|
+
useInput9((input, key) => {
|
|
1258
1115
|
if (loading) return;
|
|
1259
1116
|
if (key.return || input === " ") {
|
|
1260
1117
|
setEnabled((current) => {
|
|
@@ -1269,19 +1126,19 @@ function DebugModeScreen({ onDone }) {
|
|
|
1269
1126
|
onDone();
|
|
1270
1127
|
}
|
|
1271
1128
|
});
|
|
1272
|
-
return /* @__PURE__ */
|
|
1273
|
-
/* @__PURE__ */
|
|
1274
|
-
/* @__PURE__ */
|
|
1275
|
-
loading ? /* @__PURE__ */
|
|
1129
|
+
return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1130
|
+
/* @__PURE__ */ jsx9(Text9, { bold: true, children: "Settings \u203A Debug Mode" }),
|
|
1131
|
+
/* @__PURE__ */ jsx9(Text9, { children: " " }),
|
|
1132
|
+
loading ? /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs9(Text9, { children: [
|
|
1276
1133
|
"Debug logging:",
|
|
1277
1134
|
" ",
|
|
1278
|
-
/* @__PURE__ */
|
|
1135
|
+
/* @__PURE__ */ jsx9(Text9, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
1279
1136
|
] }),
|
|
1280
|
-
/* @__PURE__ */
|
|
1281
|
-
/* @__PURE__ */
|
|
1137
|
+
/* @__PURE__ */ jsx9(Text9, { children: " " }),
|
|
1138
|
+
/* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
|
|
1282
1139
|
] });
|
|
1283
1140
|
}
|
|
1284
|
-
var
|
|
1141
|
+
var init_screen3 = __esm({
|
|
1285
1142
|
"packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx"() {
|
|
1286
1143
|
"use strict";
|
|
1287
1144
|
init_home_theme();
|
|
@@ -1295,61 +1152,46 @@ var app_exports = {};
|
|
|
1295
1152
|
__export(app_exports, {
|
|
1296
1153
|
runApp: () => runApp
|
|
1297
1154
|
});
|
|
1298
|
-
import { useState as
|
|
1299
|
-
import { jsx as
|
|
1155
|
+
import { useState as useState9 } from "react";
|
|
1156
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1300
1157
|
function App({ onLaunchImport, importExitCode }) {
|
|
1301
1158
|
const returnedFromImport = importExitCode !== void 0;
|
|
1302
|
-
const [screen, setScreen] =
|
|
1303
|
-
const [showImportResult, setShowImportResult] =
|
|
1304
|
-
const [projectPath, setProjectPath] = useState10();
|
|
1159
|
+
const [screen, setScreen] = useState9(returnedFromImport ? "import" : "start");
|
|
1160
|
+
const [showImportResult, setShowImportResult] = useState9(returnedFromImport);
|
|
1305
1161
|
const goToStart = () => setScreen("start");
|
|
1306
1162
|
const goToSettings = () => setScreen("settings");
|
|
1307
1163
|
const finishImportResult = () => {
|
|
1308
1164
|
setShowImportResult(false);
|
|
1309
|
-
setProjectPath(void 0);
|
|
1310
|
-
goToStart();
|
|
1311
|
-
};
|
|
1312
|
-
const leaveImport = () => {
|
|
1313
|
-
setProjectPath(void 0);
|
|
1314
1165
|
goToStart();
|
|
1315
1166
|
};
|
|
1316
1167
|
switch (screen) {
|
|
1317
1168
|
case "import":
|
|
1318
|
-
|
|
1319
|
-
if (projectPath === void 0) return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport });
|
|
1320
|
-
return /* @__PURE__ */ jsx11(
|
|
1321
|
-
TokenInputScreen,
|
|
1322
|
-
{
|
|
1323
|
-
onConfirm: (tokens) => onLaunchImport?.({ project: projectPath, tokens }),
|
|
1324
|
-
onSkip: () => onLaunchImport?.({ project: projectPath }),
|
|
1325
|
-
onBack: () => setProjectPath(void 0)
|
|
1326
|
-
}
|
|
1327
|
-
);
|
|
1169
|
+
return showImportResult ? /* @__PURE__ */ jsx10(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult }) : /* @__PURE__ */ jsx10(WelcomeScreen, { onContinue: (projectPath) => onLaunchImport?.(projectPath), onQuit: goToStart });
|
|
1328
1170
|
case "help":
|
|
1329
|
-
return /* @__PURE__ */
|
|
1171
|
+
return /* @__PURE__ */ jsx10(HelpScreen, { onDone: goToStart });
|
|
1330
1172
|
case "upgrade":
|
|
1331
|
-
return /* @__PURE__ */
|
|
1173
|
+
return /* @__PURE__ */ jsx10(UpgradeScreen, { onDone: goToStart });
|
|
1332
1174
|
case "settings":
|
|
1333
|
-
return /* @__PURE__ */
|
|
1175
|
+
return /* @__PURE__ */ jsx10(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1334
1176
|
case "settings-configuration":
|
|
1335
|
-
return /* @__PURE__ */
|
|
1177
|
+
return /* @__PURE__ */ jsx10(ConfigurationScreen, { onDone: goToSettings });
|
|
1336
1178
|
case "settings-opt-in-analytics":
|
|
1337
|
-
return /* @__PURE__ */
|
|
1179
|
+
return /* @__PURE__ */ jsx10(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1338
1180
|
case "settings-debug-mode":
|
|
1339
|
-
return /* @__PURE__ */
|
|
1181
|
+
return /* @__PURE__ */ jsx10(DebugModeScreen, { onDone: goToSettings });
|
|
1340
1182
|
case "start":
|
|
1341
|
-
return /* @__PURE__ */
|
|
1183
|
+
return /* @__PURE__ */ jsx10(HomeScreen, { onNavigate: setScreen });
|
|
1342
1184
|
}
|
|
1343
1185
|
}
|
|
1344
1186
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1345
|
-
let
|
|
1187
|
+
let requestedProjectPath;
|
|
1346
1188
|
const instance = renderApp(
|
|
1347
|
-
/* @__PURE__ */
|
|
1189
|
+
/* @__PURE__ */ jsx10(
|
|
1348
1190
|
App,
|
|
1349
1191
|
{
|
|
1350
1192
|
importExitCode,
|
|
1351
|
-
onLaunchImport: (
|
|
1352
|
-
|
|
1193
|
+
onLaunchImport: (projectPath) => {
|
|
1194
|
+
requestedProjectPath = projectPath;
|
|
1353
1195
|
instance.unmount();
|
|
1354
1196
|
}
|
|
1355
1197
|
}
|
|
@@ -1357,15 +1199,15 @@ async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
|
1357
1199
|
);
|
|
1358
1200
|
await instance.waitUntilExit();
|
|
1359
1201
|
await stopReadingTerminal();
|
|
1360
|
-
return
|
|
1202
|
+
return requestedProjectPath;
|
|
1361
1203
|
}
|
|
1362
1204
|
async function runApp(renderApp) {
|
|
1363
1205
|
let importExitCode;
|
|
1364
|
-
let
|
|
1365
|
-
while (
|
|
1366
|
-
importExitCode = (await spawnV1Import(
|
|
1206
|
+
let projectPath = await renderUntilImportRequestedOrExit(renderApp, importExitCode);
|
|
1207
|
+
while (projectPath !== void 0) {
|
|
1208
|
+
importExitCode = (await spawnV1Import({ project: projectPath })).exitCode;
|
|
1367
1209
|
startReadingTerminal();
|
|
1368
|
-
|
|
1210
|
+
projectPath = await renderUntilImportRequestedOrExit(renderApp, importExitCode);
|
|
1369
1211
|
}
|
|
1370
1212
|
}
|
|
1371
1213
|
var init_app = __esm({
|
|
@@ -1379,9 +1221,9 @@ var init_app = __esm({
|
|
|
1379
1221
|
init_PageContainer2();
|
|
1380
1222
|
init_PageContainer3();
|
|
1381
1223
|
init_ContentfulConfigScreen();
|
|
1382
|
-
|
|
1224
|
+
init_screen2();
|
|
1383
1225
|
init_PageContainer4();
|
|
1384
|
-
|
|
1226
|
+
init_screen3();
|
|
1385
1227
|
}
|
|
1386
1228
|
});
|
|
1387
1229
|
|