@contentful/experience-design-system-cli 2.35.1-dev-build-215f38d1.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 -265
- package/dist/index.js +131 -292
- package/dist/package.json +1 -1
- package/dist/src/tui/import/spawn-v1-import.d.ts +0 -2
- 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/import/command.d.ts +1 -1
- package/legacy/dist/src/import/tui/WizardApp.d.ts +1 -2
- package/legacy/dist/src/index.js +2685 -2252
- 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,12 +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
|
-
if (options.skipTokenPrompt) {
|
|
550
|
-
args.push("--skip-token-prompt");
|
|
551
|
-
}
|
|
552
406
|
return args;
|
|
553
407
|
}
|
|
554
408
|
async function spawnV1Import(options = {}) {
|
|
@@ -578,7 +432,7 @@ function getTerminalHandle() {
|
|
|
578
432
|
return process.stdin._handle;
|
|
579
433
|
}
|
|
580
434
|
async function stopReadingTerminal() {
|
|
581
|
-
await new Promise((
|
|
435
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
582
436
|
const handle = getTerminalHandle();
|
|
583
437
|
if (!handle?.readStop) return;
|
|
584
438
|
handle.reading = false;
|
|
@@ -782,8 +636,8 @@ var init_debug_store = __esm({
|
|
|
782
636
|
|
|
783
637
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
784
638
|
import { useEffect as useEffect3 } from "react";
|
|
785
|
-
import { Box as
|
|
786
|
-
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";
|
|
787
641
|
function HelpScreen({ onDone }) {
|
|
788
642
|
useEffect3(() => {
|
|
789
643
|
startDebugRun({ flow: "help", step: "01-help", menuOption: "Help", inputs: {} });
|
|
@@ -792,7 +646,7 @@ function HelpScreen({ onDone }) {
|
|
|
792
646
|
void finishDebugRun({ outputs: {}, status: "success", exitMethod });
|
|
793
647
|
onDone();
|
|
794
648
|
};
|
|
795
|
-
|
|
649
|
+
useInput4((input, key) => {
|
|
796
650
|
if (key.return) {
|
|
797
651
|
leave("saved");
|
|
798
652
|
return;
|
|
@@ -802,12 +656,12 @@ function HelpScreen({ onDone }) {
|
|
|
802
656
|
return;
|
|
803
657
|
}
|
|
804
658
|
});
|
|
805
|
-
return /* @__PURE__ */
|
|
806
|
-
/* @__PURE__ */
|
|
807
|
-
/* @__PURE__ */
|
|
808
|
-
/* @__PURE__ */
|
|
809
|
-
/* @__PURE__ */
|
|
810
|
-
/* @__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" })
|
|
811
665
|
] });
|
|
812
666
|
}
|
|
813
667
|
var init_PageContainer2 = __esm({
|
|
@@ -818,20 +672,20 @@ var init_PageContainer2 = __esm({
|
|
|
818
672
|
});
|
|
819
673
|
|
|
820
674
|
// packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
|
|
821
|
-
import { useState as
|
|
822
|
-
import { Box as
|
|
823
|
-
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";
|
|
824
678
|
function SettingsScreen({
|
|
825
679
|
onNavigate,
|
|
826
680
|
onBack
|
|
827
681
|
}) {
|
|
828
|
-
const [focusIdx, setFocusIdx] =
|
|
682
|
+
const [focusIdx, setFocusIdx] = useState4(0);
|
|
829
683
|
const items = [
|
|
830
684
|
{ label: "Configuration", screen: "settings-configuration" },
|
|
831
685
|
{ label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
|
|
832
686
|
{ label: "Debug Mode", screen: "settings-debug-mode" }
|
|
833
687
|
];
|
|
834
|
-
|
|
688
|
+
useInput5((input, key) => {
|
|
835
689
|
if (key.upArrow) {
|
|
836
690
|
setFocusIdx((i) => (i - 1 + items.length) % items.length);
|
|
837
691
|
return;
|
|
@@ -851,15 +705,15 @@ function SettingsScreen({
|
|
|
851
705
|
onBack();
|
|
852
706
|
}
|
|
853
707
|
});
|
|
854
|
-
return /* @__PURE__ */
|
|
855
|
-
/* @__PURE__ */
|
|
856
|
-
/* @__PURE__ */
|
|
857
|
-
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: [
|
|
858
712
|
i === focusIdx ? "> " : " ",
|
|
859
713
|
item.label
|
|
860
714
|
] }, item.label)),
|
|
861
|
-
/* @__PURE__ */
|
|
862
|
-
/* @__PURE__ */
|
|
715
|
+
/* @__PURE__ */ jsx5(Text5, { children: " " }),
|
|
716
|
+
/* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "[\u2191/\u2193] Navigate [Enter] Select [Esc/q] Back to Start" })
|
|
863
717
|
] });
|
|
864
718
|
}
|
|
865
719
|
var init_PageContainer3 = __esm({
|
|
@@ -871,7 +725,7 @@ var init_PageContainer3 = __esm({
|
|
|
871
725
|
// packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts
|
|
872
726
|
import { readFile as readFile2, writeFile as writeFile3, mkdir as mkdir3 } from "node:fs/promises";
|
|
873
727
|
import { join as join6 } from "node:path";
|
|
874
|
-
import { homedir
|
|
728
|
+
import { homedir } from "node:os";
|
|
875
729
|
async function readV1Store() {
|
|
876
730
|
try {
|
|
877
731
|
const raw = await readFile2(V1_STORE_PATH, "utf8");
|
|
@@ -881,7 +735,7 @@ async function readV1Store() {
|
|
|
881
735
|
}
|
|
882
736
|
}
|
|
883
737
|
async function writeV1Store(data) {
|
|
884
|
-
await mkdir3(join6(
|
|
738
|
+
await mkdir3(join6(homedir(), ".config", "experiences"), { recursive: true });
|
|
885
739
|
await writeFile3(V1_STORE_PATH, `${JSON.stringify(data, null, 2)}
|
|
886
740
|
`, { mode: 384 });
|
|
887
741
|
}
|
|
@@ -889,7 +743,7 @@ var V1_STORE_PATH;
|
|
|
889
743
|
var init_v1_store = __esm({
|
|
890
744
|
"packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts"() {
|
|
891
745
|
"use strict";
|
|
892
|
-
V1_STORE_PATH = join6(
|
|
746
|
+
V1_STORE_PATH = join6(homedir(), ".config", "experiences", "credentials.json");
|
|
893
747
|
}
|
|
894
748
|
});
|
|
895
749
|
|
|
@@ -922,9 +776,9 @@ var init_config_store = __esm({
|
|
|
922
776
|
});
|
|
923
777
|
|
|
924
778
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
925
|
-
import { useEffect as useEffect4, useState as
|
|
926
|
-
import { Box as
|
|
927
|
-
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";
|
|
928
782
|
function debugFields(config) {
|
|
929
783
|
return {
|
|
930
784
|
space_id: config?.spaceId ?? "",
|
|
@@ -934,10 +788,10 @@ function debugFields(config) {
|
|
|
934
788
|
};
|
|
935
789
|
}
|
|
936
790
|
function ConfigurationScreen({ onDone }) {
|
|
937
|
-
const [stage, setStage] =
|
|
938
|
-
const [config, setConfig] =
|
|
939
|
-
const [activeField, setActiveField] =
|
|
940
|
-
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);
|
|
941
795
|
useEffect4(() => {
|
|
942
796
|
readCredentials().then((cfg) => {
|
|
943
797
|
setConfig(cfg);
|
|
@@ -970,7 +824,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
970
824
|
setStage("form");
|
|
971
825
|
});
|
|
972
826
|
}
|
|
973
|
-
|
|
827
|
+
useInput6((input, key) => {
|
|
974
828
|
if (stage === "loading" || stage === "saving") return;
|
|
975
829
|
if (stage === "saved") {
|
|
976
830
|
if (key.return || key.escape || input === "q") {
|
|
@@ -1013,51 +867,51 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1013
867
|
}
|
|
1014
868
|
});
|
|
1015
869
|
if (stage === "loading") {
|
|
1016
|
-
return /* @__PURE__ */
|
|
1017
|
-
/* @__PURE__ */
|
|
1018
|
-
/* @__PURE__ */
|
|
1019
|
-
/* @__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..." })
|
|
1020
874
|
] });
|
|
1021
875
|
}
|
|
1022
876
|
if (stage === "saved") {
|
|
1023
|
-
return /* @__PURE__ */
|
|
1024
|
-
/* @__PURE__ */
|
|
1025
|
-
/* @__PURE__ */
|
|
1026
|
-
/* @__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: [
|
|
1027
881
|
"\u2713 ",
|
|
1028
882
|
message
|
|
1029
883
|
] }),
|
|
1030
|
-
/* @__PURE__ */
|
|
1031
|
-
/* @__PURE__ */
|
|
884
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
885
|
+
/* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[Enter] Back to Settings" })
|
|
1032
886
|
] });
|
|
1033
887
|
}
|
|
1034
|
-
return /* @__PURE__ */
|
|
1035
|
-
/* @__PURE__ */
|
|
1036
|
-
/* @__PURE__ */
|
|
1037
|
-
/* @__PURE__ */
|
|
1038
|
-
/* @__PURE__ */
|
|
1039
|
-
/* @__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) => {
|
|
1040
894
|
const isActive = activeField === field;
|
|
1041
895
|
const value = fieldValue(field);
|
|
1042
896
|
const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
|
|
1043
|
-
return /* @__PURE__ */
|
|
1044
|
-
/* @__PURE__ */
|
|
1045
|
-
/* @__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: [
|
|
1046
900
|
FIELD_LABELS[field],
|
|
1047
901
|
":"
|
|
1048
902
|
] }),
|
|
1049
|
-
/* @__PURE__ */
|
|
903
|
+
/* @__PURE__ */ jsx6(Text6, { children: display || /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "(empty)" }) })
|
|
1050
904
|
] }, field);
|
|
1051
905
|
}) }),
|
|
1052
|
-
message && /* @__PURE__ */
|
|
1053
|
-
/* @__PURE__ */
|
|
1054
|
-
/* @__PURE__ */
|
|
906
|
+
message && /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
907
|
+
/* @__PURE__ */ jsx6(Text6, { children: " " }),
|
|
908
|
+
/* @__PURE__ */ jsxs6(Text6, { color: PALETTE.error, children: [
|
|
1055
909
|
"\u2717 ",
|
|
1056
910
|
message
|
|
1057
911
|
] })
|
|
1058
912
|
] }),
|
|
1059
|
-
/* @__PURE__ */
|
|
1060
|
-
/* @__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" })
|
|
1061
915
|
] });
|
|
1062
916
|
}
|
|
1063
917
|
var FIELD_ORDER, FIELD_LABELS;
|
|
@@ -1099,12 +953,12 @@ var init_analytics_store = __esm({
|
|
|
1099
953
|
});
|
|
1100
954
|
|
|
1101
955
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
1102
|
-
import { useEffect as useEffect5, useState as
|
|
1103
|
-
import { Box as
|
|
1104
|
-
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";
|
|
1105
959
|
function OptInAnalyticsScreen({ onDone }) {
|
|
1106
|
-
const [loading, setLoading] =
|
|
1107
|
-
const [enabled, setEnabled] =
|
|
960
|
+
const [loading, setLoading] = useState6(true);
|
|
961
|
+
const [enabled, setEnabled] = useState6(true);
|
|
1108
962
|
useEffect5(() => {
|
|
1109
963
|
readAnalyticsSetting().then((setting) => {
|
|
1110
964
|
setEnabled(setting.enabled);
|
|
@@ -1117,7 +971,7 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
1117
971
|
});
|
|
1118
972
|
});
|
|
1119
973
|
}, []);
|
|
1120
|
-
|
|
974
|
+
useInput7((input, key) => {
|
|
1121
975
|
if (loading) return;
|
|
1122
976
|
if (key.return || input === " ") {
|
|
1123
977
|
setEnabled((current) => {
|
|
@@ -1132,24 +986,24 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
1132
986
|
onDone();
|
|
1133
987
|
}
|
|
1134
988
|
});
|
|
1135
|
-
return /* @__PURE__ */
|
|
1136
|
-
/* @__PURE__ */
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
loading ? /* @__PURE__ */
|
|
1139
|
-
/* @__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: [
|
|
1140
994
|
"Share anonymous usage data:",
|
|
1141
995
|
" ",
|
|
1142
|
-
/* @__PURE__ */
|
|
996
|
+
/* @__PURE__ */ jsx7(Text7, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
1143
997
|
] }),
|
|
1144
|
-
/* @__PURE__ */
|
|
1145
|
-
/* @__PURE__ */
|
|
1146
|
-
/* @__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." })
|
|
1147
1001
|
] }),
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1002
|
+
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
1003
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
|
|
1150
1004
|
] });
|
|
1151
1005
|
}
|
|
1152
|
-
var
|
|
1006
|
+
var init_screen2 = __esm({
|
|
1153
1007
|
"packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx"() {
|
|
1154
1008
|
"use strict";
|
|
1155
1009
|
init_home_theme();
|
|
@@ -1159,11 +1013,11 @@ var init_screen3 = __esm({
|
|
|
1159
1013
|
});
|
|
1160
1014
|
|
|
1161
1015
|
// packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
|
|
1162
|
-
import { useEffect as useEffect6, useState as
|
|
1163
|
-
import { Box as
|
|
1164
|
-
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";
|
|
1165
1019
|
function UpgradeScreen({ onDone }) {
|
|
1166
|
-
const [upgradeCheck, setUpgradeCheck] =
|
|
1020
|
+
const [upgradeCheck, setUpgradeCheck] = useState7();
|
|
1167
1021
|
useEffect6(() => {
|
|
1168
1022
|
startDebugRun({
|
|
1169
1023
|
flow: "upgrade",
|
|
@@ -1173,7 +1027,7 @@ function UpgradeScreen({ onDone }) {
|
|
|
1173
1027
|
});
|
|
1174
1028
|
checkForUpgrade().then(setUpgradeCheck).catch(() => setUpgradeCheck({ status: "error" }));
|
|
1175
1029
|
}, []);
|
|
1176
|
-
|
|
1030
|
+
useInput8((_input, key) => {
|
|
1177
1031
|
if (key.return) {
|
|
1178
1032
|
void finishDebugRun({
|
|
1179
1033
|
outputs: upgradeCheck ?? {},
|
|
@@ -1184,12 +1038,12 @@ function UpgradeScreen({ onDone }) {
|
|
|
1184
1038
|
return;
|
|
1185
1039
|
}
|
|
1186
1040
|
});
|
|
1187
|
-
return /* @__PURE__ */
|
|
1188
|
-
/* @__PURE__ */
|
|
1189
|
-
/* @__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: " " }),
|
|
1190
1044
|
renderBody(upgradeCheck),
|
|
1191
|
-
/* @__PURE__ */
|
|
1192
|
-
/* @__PURE__ */
|
|
1045
|
+
/* @__PURE__ */ jsx8(Text8, { children: " " }),
|
|
1046
|
+
/* @__PURE__ */ jsxs8(Text8, { bold: true, color: PALETTE.accent, children: [
|
|
1193
1047
|
FOCUS_MARKER,
|
|
1194
1048
|
" Go Back"
|
|
1195
1049
|
] })
|
|
@@ -1197,34 +1051,34 @@ function UpgradeScreen({ onDone }) {
|
|
|
1197
1051
|
}
|
|
1198
1052
|
function renderBody(upgradeCheck) {
|
|
1199
1053
|
if (!upgradeCheck) {
|
|
1200
|
-
return /* @__PURE__ */
|
|
1054
|
+
return /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: "Checking for updates\u2026" });
|
|
1201
1055
|
}
|
|
1202
1056
|
if (upgradeCheck.status === "error") {
|
|
1203
|
-
return /* @__PURE__ */
|
|
1057
|
+
return /* @__PURE__ */ jsx8(Text8, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
|
|
1204
1058
|
}
|
|
1205
1059
|
if (upgradeCheck.status === "up-to-date") {
|
|
1206
|
-
return /* @__PURE__ */
|
|
1060
|
+
return /* @__PURE__ */ jsxs8(Text8, { color: PALETTE.success, children: [
|
|
1207
1061
|
"You're already on the latest version (v",
|
|
1208
1062
|
upgradeCheck.current,
|
|
1209
1063
|
")."
|
|
1210
1064
|
] });
|
|
1211
1065
|
}
|
|
1212
|
-
return /* @__PURE__ */
|
|
1213
|
-
/* @__PURE__ */
|
|
1214
|
-
/* @__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: [
|
|
1215
1069
|
"v",
|
|
1216
1070
|
upgradeCheck.latest
|
|
1217
1071
|
] }),
|
|
1218
1072
|
" ",
|
|
1219
1073
|
"is available (you're on ",
|
|
1220
|
-
/* @__PURE__ */
|
|
1074
|
+
/* @__PURE__ */ jsxs8(Text8, { bold: true, children: [
|
|
1221
1075
|
"v",
|
|
1222
1076
|
upgradeCheck.current
|
|
1223
1077
|
] }),
|
|
1224
1078
|
"). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
|
|
1225
1079
|
] }),
|
|
1226
|
-
/* @__PURE__ */
|
|
1227
|
-
/* @__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)) })
|
|
1228
1082
|
] });
|
|
1229
1083
|
}
|
|
1230
1084
|
var UPGRADE_COMMANDS;
|
|
@@ -1239,12 +1093,12 @@ var init_PageContainer4 = __esm({
|
|
|
1239
1093
|
});
|
|
1240
1094
|
|
|
1241
1095
|
// packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
|
|
1242
|
-
import { useEffect as useEffect7, useState as
|
|
1243
|
-
import { Box as
|
|
1244
|
-
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";
|
|
1245
1099
|
function DebugModeScreen({ onDone }) {
|
|
1246
|
-
const [loading, setLoading] =
|
|
1247
|
-
const [enabled, setEnabled] =
|
|
1100
|
+
const [loading, setLoading] = useState8(true);
|
|
1101
|
+
const [enabled, setEnabled] = useState8(true);
|
|
1248
1102
|
useEffect7(() => {
|
|
1249
1103
|
readDebugModeSetting().then((setting) => {
|
|
1250
1104
|
setEnabled(setting.enabled);
|
|
@@ -1257,7 +1111,7 @@ function DebugModeScreen({ onDone }) {
|
|
|
1257
1111
|
});
|
|
1258
1112
|
});
|
|
1259
1113
|
}, []);
|
|
1260
|
-
|
|
1114
|
+
useInput9((input, key) => {
|
|
1261
1115
|
if (loading) return;
|
|
1262
1116
|
if (key.return || input === " ") {
|
|
1263
1117
|
setEnabled((current) => {
|
|
@@ -1272,19 +1126,19 @@ function DebugModeScreen({ onDone }) {
|
|
|
1272
1126
|
onDone();
|
|
1273
1127
|
}
|
|
1274
1128
|
});
|
|
1275
|
-
return /* @__PURE__ */
|
|
1276
|
-
/* @__PURE__ */
|
|
1277
|
-
/* @__PURE__ */
|
|
1278
|
-
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: [
|
|
1279
1133
|
"Debug logging:",
|
|
1280
1134
|
" ",
|
|
1281
|
-
/* @__PURE__ */
|
|
1135
|
+
/* @__PURE__ */ jsx9(Text9, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
1282
1136
|
] }),
|
|
1283
|
-
/* @__PURE__ */
|
|
1284
|
-
/* @__PURE__ */
|
|
1137
|
+
/* @__PURE__ */ jsx9(Text9, { children: " " }),
|
|
1138
|
+
/* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
|
|
1285
1139
|
] });
|
|
1286
1140
|
}
|
|
1287
|
-
var
|
|
1141
|
+
var init_screen3 = __esm({
|
|
1288
1142
|
"packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx"() {
|
|
1289
1143
|
"use strict";
|
|
1290
1144
|
init_home_theme();
|
|
@@ -1298,61 +1152,46 @@ var app_exports = {};
|
|
|
1298
1152
|
__export(app_exports, {
|
|
1299
1153
|
runApp: () => runApp
|
|
1300
1154
|
});
|
|
1301
|
-
import { useState as
|
|
1302
|
-
import { jsx as
|
|
1155
|
+
import { useState as useState9 } from "react";
|
|
1156
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1303
1157
|
function App({ onLaunchImport, importExitCode }) {
|
|
1304
1158
|
const returnedFromImport = importExitCode !== void 0;
|
|
1305
|
-
const [screen, setScreen] =
|
|
1306
|
-
const [showImportResult, setShowImportResult] =
|
|
1307
|
-
const [projectPath, setProjectPath] = useState10();
|
|
1159
|
+
const [screen, setScreen] = useState9(returnedFromImport ? "import" : "start");
|
|
1160
|
+
const [showImportResult, setShowImportResult] = useState9(returnedFromImport);
|
|
1308
1161
|
const goToStart = () => setScreen("start");
|
|
1309
1162
|
const goToSettings = () => setScreen("settings");
|
|
1310
1163
|
const finishImportResult = () => {
|
|
1311
1164
|
setShowImportResult(false);
|
|
1312
|
-
setProjectPath(void 0);
|
|
1313
|
-
goToStart();
|
|
1314
|
-
};
|
|
1315
|
-
const leaveImport = () => {
|
|
1316
|
-
setProjectPath(void 0);
|
|
1317
1165
|
goToStart();
|
|
1318
1166
|
};
|
|
1319
1167
|
switch (screen) {
|
|
1320
1168
|
case "import":
|
|
1321
|
-
|
|
1322
|
-
if (projectPath === void 0) return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport });
|
|
1323
|
-
return /* @__PURE__ */ jsx11(
|
|
1324
|
-
TokenInputScreen,
|
|
1325
|
-
{
|
|
1326
|
-
onConfirm: (tokens) => onLaunchImport?.({ project: projectPath, tokens }),
|
|
1327
|
-
onSkip: () => onLaunchImport?.({ project: projectPath, skipTokenPrompt: true }),
|
|
1328
|
-
onBack: () => setProjectPath(void 0)
|
|
1329
|
-
}
|
|
1330
|
-
);
|
|
1169
|
+
return showImportResult ? /* @__PURE__ */ jsx10(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult }) : /* @__PURE__ */ jsx10(WelcomeScreen, { onContinue: (projectPath) => onLaunchImport?.(projectPath), onQuit: goToStart });
|
|
1331
1170
|
case "help":
|
|
1332
|
-
return /* @__PURE__ */
|
|
1171
|
+
return /* @__PURE__ */ jsx10(HelpScreen, { onDone: goToStart });
|
|
1333
1172
|
case "upgrade":
|
|
1334
|
-
return /* @__PURE__ */
|
|
1173
|
+
return /* @__PURE__ */ jsx10(UpgradeScreen, { onDone: goToStart });
|
|
1335
1174
|
case "settings":
|
|
1336
|
-
return /* @__PURE__ */
|
|
1175
|
+
return /* @__PURE__ */ jsx10(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1337
1176
|
case "settings-configuration":
|
|
1338
|
-
return /* @__PURE__ */
|
|
1177
|
+
return /* @__PURE__ */ jsx10(ConfigurationScreen, { onDone: goToSettings });
|
|
1339
1178
|
case "settings-opt-in-analytics":
|
|
1340
|
-
return /* @__PURE__ */
|
|
1179
|
+
return /* @__PURE__ */ jsx10(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1341
1180
|
case "settings-debug-mode":
|
|
1342
|
-
return /* @__PURE__ */
|
|
1181
|
+
return /* @__PURE__ */ jsx10(DebugModeScreen, { onDone: goToSettings });
|
|
1343
1182
|
case "start":
|
|
1344
|
-
return /* @__PURE__ */
|
|
1183
|
+
return /* @__PURE__ */ jsx10(HomeScreen, { onNavigate: setScreen });
|
|
1345
1184
|
}
|
|
1346
1185
|
}
|
|
1347
1186
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1348
|
-
let
|
|
1187
|
+
let requestedProjectPath;
|
|
1349
1188
|
const instance = renderApp(
|
|
1350
|
-
/* @__PURE__ */
|
|
1189
|
+
/* @__PURE__ */ jsx10(
|
|
1351
1190
|
App,
|
|
1352
1191
|
{
|
|
1353
1192
|
importExitCode,
|
|
1354
|
-
onLaunchImport: (
|
|
1355
|
-
|
|
1193
|
+
onLaunchImport: (projectPath) => {
|
|
1194
|
+
requestedProjectPath = projectPath;
|
|
1356
1195
|
instance.unmount();
|
|
1357
1196
|
}
|
|
1358
1197
|
}
|
|
@@ -1360,15 +1199,15 @@ async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
|
1360
1199
|
);
|
|
1361
1200
|
await instance.waitUntilExit();
|
|
1362
1201
|
await stopReadingTerminal();
|
|
1363
|
-
return
|
|
1202
|
+
return requestedProjectPath;
|
|
1364
1203
|
}
|
|
1365
1204
|
async function runApp(renderApp) {
|
|
1366
1205
|
let importExitCode;
|
|
1367
|
-
let
|
|
1368
|
-
while (
|
|
1369
|
-
importExitCode = (await spawnV1Import(
|
|
1206
|
+
let projectPath = await renderUntilImportRequestedOrExit(renderApp, importExitCode);
|
|
1207
|
+
while (projectPath !== void 0) {
|
|
1208
|
+
importExitCode = (await spawnV1Import({ project: projectPath })).exitCode;
|
|
1370
1209
|
startReadingTerminal();
|
|
1371
|
-
|
|
1210
|
+
projectPath = await renderUntilImportRequestedOrExit(renderApp, importExitCode);
|
|
1372
1211
|
}
|
|
1373
1212
|
}
|
|
1374
1213
|
var init_app = __esm({
|
|
@@ -1382,9 +1221,9 @@ var init_app = __esm({
|
|
|
1382
1221
|
init_PageContainer2();
|
|
1383
1222
|
init_PageContainer3();
|
|
1384
1223
|
init_ContentfulConfigScreen();
|
|
1385
|
-
|
|
1224
|
+
init_screen2();
|
|
1386
1225
|
init_PageContainer4();
|
|
1387
|
-
|
|
1226
|
+
init_screen3();
|
|
1388
1227
|
}
|
|
1389
1228
|
});
|
|
1390
1229
|
|