@contentful/experience-design-system-cli 2.35.1-dev-build-657a08f3.0 → 2.35.1-dev-build-beaac232.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.d.ts +1 -1
- package/dist/app.js +62 -207
- package/dist/index.js +63 -222
- package/dist/package.json +1 -1
- package/dist/src/tui/settings/contentful-configuration/config-store.d.ts +2 -0
- package/legacy/package.json +1 -1
- package/package.json +2 -2
- package/dist/src/tui/settings/import-defaults/defaults-store.d.ts +0 -6
- package/dist/src/tui/settings/import-defaults/screen.d.ts +0 -4
package/dist/app.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export type Screen = 'start' | 'import' | 'help' | 'settings' | 'settings-configuration' | 'settings-opt-in-analytics' | 'settings-debug-mode' | '
|
|
2
|
+
export type Screen = 'start' | 'import' | 'help' | 'settings' | 'settings-configuration' | 'settings-opt-in-analytics' | 'settings-debug-mode' | 'upgrade';
|
|
3
3
|
interface AppInstance {
|
|
4
4
|
unmount: () => void;
|
|
5
5
|
waitUntilExit: () => Promise<unknown>;
|
package/dist/app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// packages/experience-design-system-cli/app.tsx
|
|
2
|
-
import { useEffect as
|
|
2
|
+
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
3
3
|
|
|
4
4
|
// packages/experience-design-system-cli/src/tui/home/home.tsx
|
|
5
5
|
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
@@ -718,7 +718,6 @@ function SettingsScreen({
|
|
|
718
718
|
const [focusIdx, setFocusIdx] = useState5(0);
|
|
719
719
|
const items = [
|
|
720
720
|
{ label: "Configuration", screen: "settings-configuration" },
|
|
721
|
-
{ label: "Import Defaults", screen: "settings-import-defaults" },
|
|
722
721
|
{ label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
|
|
723
722
|
{ label: "Debug Mode", screen: "settings-debug-mode" }
|
|
724
723
|
];
|
|
@@ -757,6 +756,7 @@ function SettingsScreen({
|
|
|
757
756
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
758
757
|
import { useEffect as useEffect4, useState as useState6 } from "react";
|
|
759
758
|
import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
|
|
759
|
+
import TextInput3 from "ink-text-input";
|
|
760
760
|
|
|
761
761
|
// packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts
|
|
762
762
|
var readV1Store = readSettings;
|
|
@@ -769,7 +769,9 @@ async function readCredentials() {
|
|
|
769
769
|
spaceId: store.spaceId || "",
|
|
770
770
|
environmentId: store.environmentId || "",
|
|
771
771
|
cmaToken: store.cmaToken || "",
|
|
772
|
-
host: store.host || ""
|
|
772
|
+
host: store.host || "",
|
|
773
|
+
defaultComponentDir: store.defaultComponentDir || "",
|
|
774
|
+
defaultTokenFile: store.defaultTokenFile || ""
|
|
773
775
|
};
|
|
774
776
|
}
|
|
775
777
|
async function writeCredentials(config) {
|
|
@@ -786,26 +788,39 @@ async function writeCredentials(config) {
|
|
|
786
788
|
|
|
787
789
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
788
790
|
import { Fragment, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
789
|
-
var FIELD_ORDER = [
|
|
791
|
+
var FIELD_ORDER = [
|
|
792
|
+
"spaceId",
|
|
793
|
+
"environmentId",
|
|
794
|
+
"cmaToken",
|
|
795
|
+
"host",
|
|
796
|
+
"defaultComponentDir",
|
|
797
|
+
"defaultTokenFile"
|
|
798
|
+
];
|
|
790
799
|
function debugFields(config) {
|
|
791
800
|
return {
|
|
792
801
|
space_id: config?.spaceId ?? "",
|
|
793
802
|
environment_id: config?.environmentId ?? "",
|
|
794
803
|
cma_token: config?.cmaToken ?? "",
|
|
795
|
-
host: config?.host ?? ""
|
|
804
|
+
host: config?.host ?? "",
|
|
805
|
+
default_component_dir: config?.defaultComponentDir ?? "",
|
|
806
|
+
default_token_file: config?.defaultTokenFile ?? ""
|
|
796
807
|
};
|
|
797
808
|
}
|
|
798
809
|
var FIELD_LABELS = {
|
|
799
810
|
spaceId: "Space ID",
|
|
800
811
|
environmentId: "Environment ID",
|
|
801
812
|
cmaToken: "CMA Token",
|
|
802
|
-
host: "API Host (optional)"
|
|
813
|
+
host: "API Host (optional)",
|
|
814
|
+
defaultComponentDir: "Default component directory (optional)",
|
|
815
|
+
defaultTokenFile: "Default token file (optional)"
|
|
803
816
|
};
|
|
804
817
|
function ConfigurationScreen({ onDone }) {
|
|
805
818
|
const [stage, setStage] = useState6("loading");
|
|
806
819
|
const [config, setConfig] = useState6(null);
|
|
807
820
|
const [activeField, setActiveField] = useState6("spaceId");
|
|
808
821
|
const [message, setMessage] = useState6(null);
|
|
822
|
+
const [editing, setEditing] = useState6(false);
|
|
823
|
+
const [valueBeforeEdit, setValueBeforeEdit] = useState6("");
|
|
809
824
|
useEffect4(() => {
|
|
810
825
|
readCredentials().then((cfg) => {
|
|
811
826
|
setConfig(cfg);
|
|
@@ -826,13 +841,13 @@ function ConfigurationScreen({ onDone }) {
|
|
|
826
841
|
if (!config) return;
|
|
827
842
|
setConfig({ ...config, [field]: value });
|
|
828
843
|
}
|
|
829
|
-
function
|
|
844
|
+
function saveAndLeave() {
|
|
830
845
|
if (!config) return;
|
|
831
846
|
setStage("saving");
|
|
832
847
|
setMessage(null);
|
|
833
848
|
writeCredentials(config).then(() => {
|
|
834
|
-
|
|
835
|
-
|
|
849
|
+
void finishDebugRun({ outputs: debugFields(config), status: "success", exitMethod: "saved" });
|
|
850
|
+
onDone();
|
|
836
851
|
}).catch((err) => {
|
|
837
852
|
setMessage(err instanceof Error ? err.message : "Failed to save");
|
|
838
853
|
setStage("form");
|
|
@@ -840,16 +855,15 @@ function ConfigurationScreen({ onDone }) {
|
|
|
840
855
|
}
|
|
841
856
|
useInput7((input, key) => {
|
|
842
857
|
if (stage === "loading" || stage === "saving") return;
|
|
843
|
-
if (
|
|
844
|
-
if (key.
|
|
845
|
-
|
|
846
|
-
|
|
858
|
+
if (editing) {
|
|
859
|
+
if (key.escape) {
|
|
860
|
+
setFieldValue(activeField, valueBeforeEdit);
|
|
861
|
+
setEditing(false);
|
|
847
862
|
}
|
|
848
863
|
return;
|
|
849
864
|
}
|
|
850
865
|
if (key.escape || input === "q") {
|
|
851
|
-
|
|
852
|
-
onDone();
|
|
866
|
+
saveAndLeave();
|
|
853
867
|
return;
|
|
854
868
|
}
|
|
855
869
|
if (key.tab || key.downArrow) {
|
|
@@ -863,21 +877,8 @@ function ConfigurationScreen({ onDone }) {
|
|
|
863
877
|
return;
|
|
864
878
|
}
|
|
865
879
|
if (key.return) {
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
setActiveField(FIELD_ORDER[idx + 1]);
|
|
869
|
-
} else {
|
|
870
|
-
handleSave();
|
|
871
|
-
}
|
|
872
|
-
return;
|
|
873
|
-
}
|
|
874
|
-
if (key.backspace || key.delete) {
|
|
875
|
-
const current = fieldValue(activeField);
|
|
876
|
-
setFieldValue(activeField, current.slice(0, -1));
|
|
877
|
-
return;
|
|
878
|
-
}
|
|
879
|
-
if (input && !key.ctrl && !key.meta) {
|
|
880
|
-
setFieldValue(activeField, fieldValue(activeField) + input);
|
|
880
|
+
setValueBeforeEdit(fieldValue(activeField));
|
|
881
|
+
setEditing(true);
|
|
881
882
|
}
|
|
882
883
|
});
|
|
883
884
|
if (stage === "loading") {
|
|
@@ -887,18 +888,6 @@ function ConfigurationScreen({ onDone }) {
|
|
|
887
888
|
/* @__PURE__ */ jsx7(Text7, { color: PALETTE.accent, children: "Loading..." })
|
|
888
889
|
] });
|
|
889
890
|
}
|
|
890
|
-
if (stage === "saved") {
|
|
891
|
-
return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
892
|
-
/* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
|
|
893
|
-
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
894
|
-
/* @__PURE__ */ jsxs7(Text7, { color: PALETTE.success, children: [
|
|
895
|
-
"\u2713 ",
|
|
896
|
-
message
|
|
897
|
-
] }),
|
|
898
|
-
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
899
|
-
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[Enter] Back to Settings" })
|
|
900
|
-
] });
|
|
901
|
-
}
|
|
902
891
|
return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
903
892
|
/* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
|
|
904
893
|
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
@@ -914,7 +903,15 @@ function ConfigurationScreen({ onDone }) {
|
|
|
914
903
|
FIELD_LABELS[field],
|
|
915
904
|
":"
|
|
916
905
|
] }),
|
|
917
|
-
|
|
906
|
+
isActive && editing ? /* @__PURE__ */ jsx7(
|
|
907
|
+
TextInput3,
|
|
908
|
+
{
|
|
909
|
+
value,
|
|
910
|
+
onChange: (next) => setFieldValue(field, next),
|
|
911
|
+
onSubmit: () => setEditing(false),
|
|
912
|
+
mask: field === "cmaToken" ? "\u2022" : void 0
|
|
913
|
+
}
|
|
914
|
+
) : /* @__PURE__ */ jsx7(Text7, { children: display || /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "(empty)" }) })
|
|
918
915
|
] }, field);
|
|
919
916
|
}) }),
|
|
920
917
|
message && /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
@@ -925,7 +922,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
925
922
|
] })
|
|
926
923
|
] }),
|
|
927
924
|
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
928
|
-
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[\u2191/\u2193] Switch field \xB7 [Enter]
|
|
925
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: editing ? "[type] Edit \xB7 [\u2190/\u2192] Move cursor \xB7 [Enter] Done \xB7 [Esc] Cancel edit" : "[\u2191/\u2193] Switch field \xB7 [Enter] Edit \xB7 [Esc/q] Save & back" })
|
|
929
926
|
] });
|
|
930
927
|
}
|
|
931
928
|
|
|
@@ -1116,162 +1113,22 @@ function DebugModeScreen({ onDone }) {
|
|
|
1116
1113
|
] });
|
|
1117
1114
|
}
|
|
1118
1115
|
|
|
1119
|
-
// packages/experience-design-system-cli/src/tui/settings/import-defaults/screen.tsx
|
|
1120
|
-
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
1121
|
-
import { Box as Box11, Text as Text11, useInput as useInput11 } from "ink";
|
|
1122
|
-
|
|
1123
|
-
// packages/experience-design-system-cli/src/tui/settings/import-defaults/defaults-store.ts
|
|
1124
|
-
async function readImportDefaults() {
|
|
1125
|
-
const { defaultComponentDir, defaultTokenFile } = await readSettings();
|
|
1126
|
-
return {
|
|
1127
|
-
componentDir: typeof defaultComponentDir === "string" ? defaultComponentDir : "",
|
|
1128
|
-
tokenFile: typeof defaultTokenFile === "string" ? defaultTokenFile : ""
|
|
1129
|
-
};
|
|
1130
|
-
}
|
|
1131
|
-
async function writeImportDefaults(defaults) {
|
|
1132
|
-
const current = await readSettings();
|
|
1133
|
-
const { defaultComponentDir: _dir, defaultTokenFile: _file, ...rest } = current;
|
|
1134
|
-
const componentDir = defaults.componentDir.trim();
|
|
1135
|
-
const tokenFile = defaults.tokenFile.trim();
|
|
1136
|
-
await writeSettings({
|
|
1137
|
-
...rest,
|
|
1138
|
-
...componentDir ? { defaultComponentDir: componentDir } : {},
|
|
1139
|
-
...tokenFile ? { defaultTokenFile: tokenFile } : {}
|
|
1140
|
-
});
|
|
1141
|
-
}
|
|
1142
|
-
|
|
1143
|
-
// packages/experience-design-system-cli/src/tui/settings/import-defaults/screen.tsx
|
|
1144
|
-
import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1145
|
-
var FIELD_ORDER2 = ["componentDir", "tokenFile"];
|
|
1146
|
-
var FIELD_LABELS2 = {
|
|
1147
|
-
componentDir: "Component directory",
|
|
1148
|
-
tokenFile: "Token file"
|
|
1149
|
-
};
|
|
1150
|
-
function ImportDefaultsScreen({ onDone }) {
|
|
1151
|
-
const [stage, setStage] = useState10("loading");
|
|
1152
|
-
const [defaults, setDefaults] = useState10({ componentDir: "", tokenFile: "" });
|
|
1153
|
-
const [activeField, setActiveField] = useState10("componentDir");
|
|
1154
|
-
const [message, setMessage] = useState10(null);
|
|
1155
|
-
useEffect8(() => {
|
|
1156
|
-
readImportDefaults().then((saved) => {
|
|
1157
|
-
setDefaults(saved);
|
|
1158
|
-
setStage("form");
|
|
1159
|
-
startDebugRun({
|
|
1160
|
-
flow: "settings/import-defaults",
|
|
1161
|
-
step: "01-import-defaults",
|
|
1162
|
-
menuOption: "Import Defaults",
|
|
1163
|
-
inputs: { ...saved }
|
|
1164
|
-
});
|
|
1165
|
-
});
|
|
1166
|
-
}, []);
|
|
1167
|
-
function handleSave() {
|
|
1168
|
-
setStage("saving");
|
|
1169
|
-
setMessage(null);
|
|
1170
|
-
writeImportDefaults(defaults).then(() => {
|
|
1171
|
-
setStage("saved");
|
|
1172
|
-
setMessage("Import defaults saved");
|
|
1173
|
-
}).catch((err) => {
|
|
1174
|
-
setMessage(err instanceof Error ? err.message : "Failed to save");
|
|
1175
|
-
setStage("form");
|
|
1176
|
-
});
|
|
1177
|
-
}
|
|
1178
|
-
useInput11((input, key) => {
|
|
1179
|
-
if (stage === "loading" || stage === "saving") return;
|
|
1180
|
-
if (stage === "saved") {
|
|
1181
|
-
if (key.return || key.escape || input === "q") {
|
|
1182
|
-
void finishDebugRun({ outputs: { ...defaults }, status: "success", exitMethod: "saved" });
|
|
1183
|
-
onDone();
|
|
1184
|
-
}
|
|
1185
|
-
return;
|
|
1186
|
-
}
|
|
1187
|
-
if (key.escape) {
|
|
1188
|
-
void finishDebugRun({ outputs: {}, status: "success", exitMethod: "discarded" });
|
|
1189
|
-
onDone();
|
|
1190
|
-
return;
|
|
1191
|
-
}
|
|
1192
|
-
const idx = FIELD_ORDER2.indexOf(activeField);
|
|
1193
|
-
if (key.tab || key.downArrow) {
|
|
1194
|
-
setActiveField(FIELD_ORDER2[(idx + 1) % FIELD_ORDER2.length]);
|
|
1195
|
-
return;
|
|
1196
|
-
}
|
|
1197
|
-
if (key.upArrow) {
|
|
1198
|
-
setActiveField(FIELD_ORDER2[(idx - 1 + FIELD_ORDER2.length) % FIELD_ORDER2.length]);
|
|
1199
|
-
return;
|
|
1200
|
-
}
|
|
1201
|
-
if (key.return) {
|
|
1202
|
-
if (idx < FIELD_ORDER2.length - 1) setActiveField(FIELD_ORDER2[idx + 1]);
|
|
1203
|
-
else handleSave();
|
|
1204
|
-
return;
|
|
1205
|
-
}
|
|
1206
|
-
if (key.backspace || key.delete) {
|
|
1207
|
-
setDefaults((d) => ({ ...d, [activeField]: d[activeField].slice(0, -1) }));
|
|
1208
|
-
return;
|
|
1209
|
-
}
|
|
1210
|
-
if (input && !key.ctrl && !key.meta) {
|
|
1211
|
-
setDefaults((d) => ({ ...d, [activeField]: d[activeField] + input }));
|
|
1212
|
-
}
|
|
1213
|
-
});
|
|
1214
|
-
if (stage === "loading") {
|
|
1215
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1216
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1217
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1218
|
-
/* @__PURE__ */ jsx11(Text11, { color: PALETTE.accent, children: "Loading..." })
|
|
1219
|
-
] });
|
|
1220
|
-
}
|
|
1221
|
-
if (stage === "saved") {
|
|
1222
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1223
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1224
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1225
|
-
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.success, children: [
|
|
1226
|
-
"\u2713 ",
|
|
1227
|
-
message
|
|
1228
|
-
] }),
|
|
1229
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1230
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "[Enter/Esc] Back" })
|
|
1231
|
-
] });
|
|
1232
|
-
}
|
|
1233
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1234
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1235
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "Pre-filled when you start an import. Leave a field empty for no default." }),
|
|
1236
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1237
|
-
/* @__PURE__ */ jsx11(Box11, { flexDirection: "column", children: FIELD_ORDER2.map((field) => {
|
|
1238
|
-
const isActive = activeField === field;
|
|
1239
|
-
const value = defaults[field];
|
|
1240
|
-
return /* @__PURE__ */ jsxs11(Box11, { gap: 1, children: [
|
|
1241
|
-
/* @__PURE__ */ jsx11(Text11, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
|
|
1242
|
-
/* @__PURE__ */ jsxs11(Text11, { bold: isActive, children: [
|
|
1243
|
-
FIELD_LABELS2[field],
|
|
1244
|
-
":"
|
|
1245
|
-
] }),
|
|
1246
|
-
/* @__PURE__ */ jsx11(Text11, { children: value || /* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "(empty)" }) })
|
|
1247
|
-
] }, field);
|
|
1248
|
-
}) }),
|
|
1249
|
-
message && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
1250
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1251
|
-
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.error, children: [
|
|
1252
|
-
"\u2717 ",
|
|
1253
|
-
message
|
|
1254
|
-
] })
|
|
1255
|
-
] }),
|
|
1256
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1257
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "[\u2191/\u2193] Switch field \xB7 [Enter] Save/Next \xB7 [Esc] Back" })
|
|
1258
|
-
] });
|
|
1259
|
-
}
|
|
1260
|
-
|
|
1261
1116
|
// packages/experience-design-system-cli/app.tsx
|
|
1262
|
-
import { Fragment as
|
|
1117
|
+
import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
|
|
1263
1118
|
function App({ onLaunchImport, importExitCode }) {
|
|
1264
1119
|
const returnedFromImport = importExitCode !== void 0;
|
|
1265
|
-
const [screen, setScreen] =
|
|
1266
|
-
const [showImportResult, setShowImportResult] =
|
|
1267
|
-
const [projectPath, setProjectPath] =
|
|
1268
|
-
const [importDefaults, setImportDefaults] =
|
|
1269
|
-
|
|
1120
|
+
const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
|
|
1121
|
+
const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
|
|
1122
|
+
const [projectPath, setProjectPath] = useState10();
|
|
1123
|
+
const [importDefaults, setImportDefaults] = useState10();
|
|
1124
|
+
useEffect8(() => {
|
|
1270
1125
|
if (screen !== "import") {
|
|
1271
1126
|
setImportDefaults(void 0);
|
|
1272
1127
|
return;
|
|
1273
1128
|
}
|
|
1274
|
-
void
|
|
1129
|
+
void readCredentials().then(
|
|
1130
|
+
(saved) => setImportDefaults({ componentDir: saved.defaultComponentDir ?? "", tokenFile: saved.defaultTokenFile ?? "" })
|
|
1131
|
+
);
|
|
1275
1132
|
}, [screen]);
|
|
1276
1133
|
const goToStart = () => setScreen("start");
|
|
1277
1134
|
const goToSettings = () => setScreen("settings");
|
|
@@ -1286,12 +1143,12 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1286
1143
|
};
|
|
1287
1144
|
switch (screen) {
|
|
1288
1145
|
case "import":
|
|
1289
|
-
if (showImportResult) return /* @__PURE__ */
|
|
1290
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
1146
|
+
if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
1147
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
|
|
1291
1148
|
if (projectPath === void 0) {
|
|
1292
|
-
return /* @__PURE__ */
|
|
1149
|
+
return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
|
|
1293
1150
|
}
|
|
1294
|
-
return /* @__PURE__ */
|
|
1151
|
+
return /* @__PURE__ */ jsx11(
|
|
1295
1152
|
TokenInputScreen,
|
|
1296
1153
|
{
|
|
1297
1154
|
initialPath: importDefaults.tokenFile,
|
|
@@ -1301,27 +1158,25 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1301
1158
|
}
|
|
1302
1159
|
);
|
|
1303
1160
|
case "help":
|
|
1304
|
-
return /* @__PURE__ */
|
|
1161
|
+
return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
|
|
1305
1162
|
case "upgrade":
|
|
1306
|
-
return /* @__PURE__ */
|
|
1163
|
+
return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
|
|
1307
1164
|
case "settings":
|
|
1308
|
-
return /* @__PURE__ */
|
|
1165
|
+
return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1309
1166
|
case "settings-configuration":
|
|
1310
|
-
return /* @__PURE__ */
|
|
1167
|
+
return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
|
|
1311
1168
|
case "settings-opt-in-analytics":
|
|
1312
|
-
return /* @__PURE__ */
|
|
1169
|
+
return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1313
1170
|
case "settings-debug-mode":
|
|
1314
|
-
return /* @__PURE__ */
|
|
1315
|
-
case "settings-import-defaults":
|
|
1316
|
-
return /* @__PURE__ */ jsx12(ImportDefaultsScreen, { onDone: goToSettings });
|
|
1171
|
+
return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
|
|
1317
1172
|
case "start":
|
|
1318
|
-
return /* @__PURE__ */
|
|
1173
|
+
return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
|
|
1319
1174
|
}
|
|
1320
1175
|
}
|
|
1321
1176
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1322
1177
|
let requestedImport;
|
|
1323
1178
|
const instance = renderApp(
|
|
1324
|
-
/* @__PURE__ */
|
|
1179
|
+
/* @__PURE__ */ jsx11(
|
|
1325
1180
|
App,
|
|
1326
1181
|
{
|
|
1327
1182
|
importExitCode,
|
package/dist/index.js
CHANGED
|
@@ -849,7 +849,6 @@ function SettingsScreen({
|
|
|
849
849
|
const [focusIdx, setFocusIdx] = useState5(0);
|
|
850
850
|
const items = [
|
|
851
851
|
{ label: "Configuration", screen: "settings-configuration" },
|
|
852
|
-
{ label: "Import Defaults", screen: "settings-import-defaults" },
|
|
853
852
|
{ label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
|
|
854
853
|
{ label: "Debug Mode", screen: "settings-debug-mode" }
|
|
855
854
|
];
|
|
@@ -908,7 +907,9 @@ async function readCredentials() {
|
|
|
908
907
|
spaceId: store.spaceId || "",
|
|
909
908
|
environmentId: store.environmentId || "",
|
|
910
909
|
cmaToken: store.cmaToken || "",
|
|
911
|
-
host: store.host || ""
|
|
910
|
+
host: store.host || "",
|
|
911
|
+
defaultComponentDir: store.defaultComponentDir || "",
|
|
912
|
+
defaultTokenFile: store.defaultTokenFile || ""
|
|
912
913
|
};
|
|
913
914
|
}
|
|
914
915
|
async function writeCredentials(config) {
|
|
@@ -932,13 +933,16 @@ var init_config_store = __esm({
|
|
|
932
933
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
933
934
|
import { useEffect as useEffect4, useState as useState6 } from "react";
|
|
934
935
|
import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
|
|
936
|
+
import TextInput3 from "ink-text-input";
|
|
935
937
|
import { Fragment, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
936
938
|
function debugFields(config) {
|
|
937
939
|
return {
|
|
938
940
|
space_id: config?.spaceId ?? "",
|
|
939
941
|
environment_id: config?.environmentId ?? "",
|
|
940
942
|
cma_token: config?.cmaToken ?? "",
|
|
941
|
-
host: config?.host ?? ""
|
|
943
|
+
host: config?.host ?? "",
|
|
944
|
+
default_component_dir: config?.defaultComponentDir ?? "",
|
|
945
|
+
default_token_file: config?.defaultTokenFile ?? ""
|
|
942
946
|
};
|
|
943
947
|
}
|
|
944
948
|
function ConfigurationScreen({ onDone }) {
|
|
@@ -946,6 +950,8 @@ function ConfigurationScreen({ onDone }) {
|
|
|
946
950
|
const [config, setConfig] = useState6(null);
|
|
947
951
|
const [activeField, setActiveField] = useState6("spaceId");
|
|
948
952
|
const [message, setMessage] = useState6(null);
|
|
953
|
+
const [editing, setEditing] = useState6(false);
|
|
954
|
+
const [valueBeforeEdit, setValueBeforeEdit] = useState6("");
|
|
949
955
|
useEffect4(() => {
|
|
950
956
|
readCredentials().then((cfg) => {
|
|
951
957
|
setConfig(cfg);
|
|
@@ -966,13 +972,13 @@ function ConfigurationScreen({ onDone }) {
|
|
|
966
972
|
if (!config) return;
|
|
967
973
|
setConfig({ ...config, [field]: value });
|
|
968
974
|
}
|
|
969
|
-
function
|
|
975
|
+
function saveAndLeave() {
|
|
970
976
|
if (!config) return;
|
|
971
977
|
setStage("saving");
|
|
972
978
|
setMessage(null);
|
|
973
979
|
writeCredentials(config).then(() => {
|
|
974
|
-
|
|
975
|
-
|
|
980
|
+
void finishDebugRun({ outputs: debugFields(config), status: "success", exitMethod: "saved" });
|
|
981
|
+
onDone();
|
|
976
982
|
}).catch((err) => {
|
|
977
983
|
setMessage(err instanceof Error ? err.message : "Failed to save");
|
|
978
984
|
setStage("form");
|
|
@@ -980,16 +986,15 @@ function ConfigurationScreen({ onDone }) {
|
|
|
980
986
|
}
|
|
981
987
|
useInput7((input, key) => {
|
|
982
988
|
if (stage === "loading" || stage === "saving") return;
|
|
983
|
-
if (
|
|
984
|
-
if (key.
|
|
985
|
-
|
|
986
|
-
|
|
989
|
+
if (editing) {
|
|
990
|
+
if (key.escape) {
|
|
991
|
+
setFieldValue(activeField, valueBeforeEdit);
|
|
992
|
+
setEditing(false);
|
|
987
993
|
}
|
|
988
994
|
return;
|
|
989
995
|
}
|
|
990
996
|
if (key.escape || input === "q") {
|
|
991
|
-
|
|
992
|
-
onDone();
|
|
997
|
+
saveAndLeave();
|
|
993
998
|
return;
|
|
994
999
|
}
|
|
995
1000
|
if (key.tab || key.downArrow) {
|
|
@@ -1003,21 +1008,8 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1003
1008
|
return;
|
|
1004
1009
|
}
|
|
1005
1010
|
if (key.return) {
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
setActiveField(FIELD_ORDER[idx + 1]);
|
|
1009
|
-
} else {
|
|
1010
|
-
handleSave();
|
|
1011
|
-
}
|
|
1012
|
-
return;
|
|
1013
|
-
}
|
|
1014
|
-
if (key.backspace || key.delete) {
|
|
1015
|
-
const current = fieldValue(activeField);
|
|
1016
|
-
setFieldValue(activeField, current.slice(0, -1));
|
|
1017
|
-
return;
|
|
1018
|
-
}
|
|
1019
|
-
if (input && !key.ctrl && !key.meta) {
|
|
1020
|
-
setFieldValue(activeField, fieldValue(activeField) + input);
|
|
1011
|
+
setValueBeforeEdit(fieldValue(activeField));
|
|
1012
|
+
setEditing(true);
|
|
1021
1013
|
}
|
|
1022
1014
|
});
|
|
1023
1015
|
if (stage === "loading") {
|
|
@@ -1027,18 +1019,6 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1027
1019
|
/* @__PURE__ */ jsx7(Text7, { color: PALETTE.accent, children: "Loading..." })
|
|
1028
1020
|
] });
|
|
1029
1021
|
}
|
|
1030
|
-
if (stage === "saved") {
|
|
1031
|
-
return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1032
|
-
/* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
|
|
1033
|
-
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
1034
|
-
/* @__PURE__ */ jsxs7(Text7, { color: PALETTE.success, children: [
|
|
1035
|
-
"\u2713 ",
|
|
1036
|
-
message
|
|
1037
|
-
] }),
|
|
1038
|
-
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
1039
|
-
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[Enter] Back to Settings" })
|
|
1040
|
-
] });
|
|
1041
|
-
}
|
|
1042
1022
|
return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1043
1023
|
/* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
|
|
1044
1024
|
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
@@ -1054,7 +1034,15 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1054
1034
|
FIELD_LABELS[field],
|
|
1055
1035
|
":"
|
|
1056
1036
|
] }),
|
|
1057
|
-
|
|
1037
|
+
isActive && editing ? /* @__PURE__ */ jsx7(
|
|
1038
|
+
TextInput3,
|
|
1039
|
+
{
|
|
1040
|
+
value,
|
|
1041
|
+
onChange: (next) => setFieldValue(field, next),
|
|
1042
|
+
onSubmit: () => setEditing(false),
|
|
1043
|
+
mask: field === "cmaToken" ? "\u2022" : void 0
|
|
1044
|
+
}
|
|
1045
|
+
) : /* @__PURE__ */ jsx7(Text7, { children: display || /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "(empty)" }) })
|
|
1058
1046
|
] }, field);
|
|
1059
1047
|
}) }),
|
|
1060
1048
|
message && /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
@@ -1065,7 +1053,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
1065
1053
|
] })
|
|
1066
1054
|
] }),
|
|
1067
1055
|
/* @__PURE__ */ jsx7(Text7, { children: " " }),
|
|
1068
|
-
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "[\u2191/\u2193] Switch field \xB7 [Enter]
|
|
1056
|
+
/* @__PURE__ */ jsx7(Text7, { dimColor: true, children: editing ? "[type] Edit \xB7 [\u2190/\u2192] Move cursor \xB7 [Enter] Done \xB7 [Esc] Cancel edit" : "[\u2191/\u2193] Switch field \xB7 [Enter] Edit \xB7 [Esc/q] Save & back" })
|
|
1069
1057
|
] });
|
|
1070
1058
|
}
|
|
1071
1059
|
var FIELD_ORDER, FIELD_LABELS;
|
|
@@ -1075,12 +1063,21 @@ var init_ContentfulConfigScreen = __esm({
|
|
|
1075
1063
|
init_home_theme();
|
|
1076
1064
|
init_config_store();
|
|
1077
1065
|
init_debug_store();
|
|
1078
|
-
FIELD_ORDER = [
|
|
1066
|
+
FIELD_ORDER = [
|
|
1067
|
+
"spaceId",
|
|
1068
|
+
"environmentId",
|
|
1069
|
+
"cmaToken",
|
|
1070
|
+
"host",
|
|
1071
|
+
"defaultComponentDir",
|
|
1072
|
+
"defaultTokenFile"
|
|
1073
|
+
];
|
|
1079
1074
|
FIELD_LABELS = {
|
|
1080
1075
|
spaceId: "Space ID",
|
|
1081
1076
|
environmentId: "Environment ID",
|
|
1082
1077
|
cmaToken: "CMA Token",
|
|
1083
|
-
host: "API Host (optional)"
|
|
1078
|
+
host: "API Host (optional)",
|
|
1079
|
+
defaultComponentDir: "Default component directory (optional)",
|
|
1080
|
+
defaultTokenFile: "Default token file (optional)"
|
|
1084
1081
|
};
|
|
1085
1082
|
}
|
|
1086
1083
|
});
|
|
@@ -1301,180 +1298,27 @@ var init_screen4 = __esm({
|
|
|
1301
1298
|
}
|
|
1302
1299
|
});
|
|
1303
1300
|
|
|
1304
|
-
// packages/experience-design-system-cli/src/tui/settings/import-defaults/defaults-store.ts
|
|
1305
|
-
async function readImportDefaults() {
|
|
1306
|
-
const { defaultComponentDir, defaultTokenFile } = await readSettings();
|
|
1307
|
-
return {
|
|
1308
|
-
componentDir: typeof defaultComponentDir === "string" ? defaultComponentDir : "",
|
|
1309
|
-
tokenFile: typeof defaultTokenFile === "string" ? defaultTokenFile : ""
|
|
1310
|
-
};
|
|
1311
|
-
}
|
|
1312
|
-
async function writeImportDefaults(defaults) {
|
|
1313
|
-
const current = await readSettings();
|
|
1314
|
-
const { defaultComponentDir: _dir, defaultTokenFile: _file, ...rest } = current;
|
|
1315
|
-
const componentDir = defaults.componentDir.trim();
|
|
1316
|
-
const tokenFile = defaults.tokenFile.trim();
|
|
1317
|
-
await writeSettings({
|
|
1318
|
-
...rest,
|
|
1319
|
-
...componentDir ? { defaultComponentDir: componentDir } : {},
|
|
1320
|
-
...tokenFile ? { defaultTokenFile: tokenFile } : {}
|
|
1321
|
-
});
|
|
1322
|
-
}
|
|
1323
|
-
var init_defaults_store = __esm({
|
|
1324
|
-
"packages/experience-design-system-cli/src/tui/settings/import-defaults/defaults-store.ts"() {
|
|
1325
|
-
"use strict";
|
|
1326
|
-
init_config();
|
|
1327
|
-
}
|
|
1328
|
-
});
|
|
1329
|
-
|
|
1330
|
-
// packages/experience-design-system-cli/src/tui/settings/import-defaults/screen.tsx
|
|
1331
|
-
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
1332
|
-
import { Box as Box11, Text as Text11, useInput as useInput11 } from "ink";
|
|
1333
|
-
import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1334
|
-
function ImportDefaultsScreen({ onDone }) {
|
|
1335
|
-
const [stage, setStage] = useState10("loading");
|
|
1336
|
-
const [defaults, setDefaults] = useState10({ componentDir: "", tokenFile: "" });
|
|
1337
|
-
const [activeField, setActiveField] = useState10("componentDir");
|
|
1338
|
-
const [message, setMessage] = useState10(null);
|
|
1339
|
-
useEffect8(() => {
|
|
1340
|
-
readImportDefaults().then((saved) => {
|
|
1341
|
-
setDefaults(saved);
|
|
1342
|
-
setStage("form");
|
|
1343
|
-
startDebugRun({
|
|
1344
|
-
flow: "settings/import-defaults",
|
|
1345
|
-
step: "01-import-defaults",
|
|
1346
|
-
menuOption: "Import Defaults",
|
|
1347
|
-
inputs: { ...saved }
|
|
1348
|
-
});
|
|
1349
|
-
});
|
|
1350
|
-
}, []);
|
|
1351
|
-
function handleSave() {
|
|
1352
|
-
setStage("saving");
|
|
1353
|
-
setMessage(null);
|
|
1354
|
-
writeImportDefaults(defaults).then(() => {
|
|
1355
|
-
setStage("saved");
|
|
1356
|
-
setMessage("Import defaults saved");
|
|
1357
|
-
}).catch((err) => {
|
|
1358
|
-
setMessage(err instanceof Error ? err.message : "Failed to save");
|
|
1359
|
-
setStage("form");
|
|
1360
|
-
});
|
|
1361
|
-
}
|
|
1362
|
-
useInput11((input, key) => {
|
|
1363
|
-
if (stage === "loading" || stage === "saving") return;
|
|
1364
|
-
if (stage === "saved") {
|
|
1365
|
-
if (key.return || key.escape || input === "q") {
|
|
1366
|
-
void finishDebugRun({ outputs: { ...defaults }, status: "success", exitMethod: "saved" });
|
|
1367
|
-
onDone();
|
|
1368
|
-
}
|
|
1369
|
-
return;
|
|
1370
|
-
}
|
|
1371
|
-
if (key.escape) {
|
|
1372
|
-
void finishDebugRun({ outputs: {}, status: "success", exitMethod: "discarded" });
|
|
1373
|
-
onDone();
|
|
1374
|
-
return;
|
|
1375
|
-
}
|
|
1376
|
-
const idx = FIELD_ORDER2.indexOf(activeField);
|
|
1377
|
-
if (key.tab || key.downArrow) {
|
|
1378
|
-
setActiveField(FIELD_ORDER2[(idx + 1) % FIELD_ORDER2.length]);
|
|
1379
|
-
return;
|
|
1380
|
-
}
|
|
1381
|
-
if (key.upArrow) {
|
|
1382
|
-
setActiveField(FIELD_ORDER2[(idx - 1 + FIELD_ORDER2.length) % FIELD_ORDER2.length]);
|
|
1383
|
-
return;
|
|
1384
|
-
}
|
|
1385
|
-
if (key.return) {
|
|
1386
|
-
if (idx < FIELD_ORDER2.length - 1) setActiveField(FIELD_ORDER2[idx + 1]);
|
|
1387
|
-
else handleSave();
|
|
1388
|
-
return;
|
|
1389
|
-
}
|
|
1390
|
-
if (key.backspace || key.delete) {
|
|
1391
|
-
setDefaults((d) => ({ ...d, [activeField]: d[activeField].slice(0, -1) }));
|
|
1392
|
-
return;
|
|
1393
|
-
}
|
|
1394
|
-
if (input && !key.ctrl && !key.meta) {
|
|
1395
|
-
setDefaults((d) => ({ ...d, [activeField]: d[activeField] + input }));
|
|
1396
|
-
}
|
|
1397
|
-
});
|
|
1398
|
-
if (stage === "loading") {
|
|
1399
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1400
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1401
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1402
|
-
/* @__PURE__ */ jsx11(Text11, { color: PALETTE.accent, children: "Loading..." })
|
|
1403
|
-
] });
|
|
1404
|
-
}
|
|
1405
|
-
if (stage === "saved") {
|
|
1406
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1407
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1408
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1409
|
-
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.success, children: [
|
|
1410
|
-
"\u2713 ",
|
|
1411
|
-
message
|
|
1412
|
-
] }),
|
|
1413
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1414
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "[Enter/Esc] Back" })
|
|
1415
|
-
] });
|
|
1416
|
-
}
|
|
1417
|
-
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
1418
|
-
/* @__PURE__ */ jsx11(Text11, { bold: true, children: "Import Defaults" }),
|
|
1419
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "Pre-filled when you start an import. Leave a field empty for no default." }),
|
|
1420
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1421
|
-
/* @__PURE__ */ jsx11(Box11, { flexDirection: "column", children: FIELD_ORDER2.map((field) => {
|
|
1422
|
-
const isActive = activeField === field;
|
|
1423
|
-
const value = defaults[field];
|
|
1424
|
-
return /* @__PURE__ */ jsxs11(Box11, { gap: 1, children: [
|
|
1425
|
-
/* @__PURE__ */ jsx11(Text11, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
|
|
1426
|
-
/* @__PURE__ */ jsxs11(Text11, { bold: isActive, children: [
|
|
1427
|
-
FIELD_LABELS2[field],
|
|
1428
|
-
":"
|
|
1429
|
-
] }),
|
|
1430
|
-
/* @__PURE__ */ jsx11(Text11, { children: value || /* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "(empty)" }) })
|
|
1431
|
-
] }, field);
|
|
1432
|
-
}) }),
|
|
1433
|
-
message && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
1434
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1435
|
-
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.error, children: [
|
|
1436
|
-
"\u2717 ",
|
|
1437
|
-
message
|
|
1438
|
-
] })
|
|
1439
|
-
] }),
|
|
1440
|
-
/* @__PURE__ */ jsx11(Text11, { children: " " }),
|
|
1441
|
-
/* @__PURE__ */ jsx11(Text11, { dimColor: true, children: "[\u2191/\u2193] Switch field \xB7 [Enter] Save/Next \xB7 [Esc] Back" })
|
|
1442
|
-
] });
|
|
1443
|
-
}
|
|
1444
|
-
var FIELD_ORDER2, FIELD_LABELS2;
|
|
1445
|
-
var init_screen5 = __esm({
|
|
1446
|
-
"packages/experience-design-system-cli/src/tui/settings/import-defaults/screen.tsx"() {
|
|
1447
|
-
"use strict";
|
|
1448
|
-
init_home_theme();
|
|
1449
|
-
init_debug_store();
|
|
1450
|
-
init_defaults_store();
|
|
1451
|
-
FIELD_ORDER2 = ["componentDir", "tokenFile"];
|
|
1452
|
-
FIELD_LABELS2 = {
|
|
1453
|
-
componentDir: "Component directory",
|
|
1454
|
-
tokenFile: "Token file"
|
|
1455
|
-
};
|
|
1456
|
-
}
|
|
1457
|
-
});
|
|
1458
|
-
|
|
1459
1301
|
// packages/experience-design-system-cli/app.tsx
|
|
1460
1302
|
var app_exports = {};
|
|
1461
1303
|
__export(app_exports, {
|
|
1462
1304
|
runApp: () => runApp
|
|
1463
1305
|
});
|
|
1464
|
-
import { useEffect as
|
|
1465
|
-
import { Fragment as
|
|
1306
|
+
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
1307
|
+
import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
|
|
1466
1308
|
function App({ onLaunchImport, importExitCode }) {
|
|
1467
1309
|
const returnedFromImport = importExitCode !== void 0;
|
|
1468
|
-
const [screen, setScreen] =
|
|
1469
|
-
const [showImportResult, setShowImportResult] =
|
|
1470
|
-
const [projectPath, setProjectPath] =
|
|
1471
|
-
const [importDefaults, setImportDefaults] =
|
|
1472
|
-
|
|
1310
|
+
const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
|
|
1311
|
+
const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
|
|
1312
|
+
const [projectPath, setProjectPath] = useState10();
|
|
1313
|
+
const [importDefaults, setImportDefaults] = useState10();
|
|
1314
|
+
useEffect8(() => {
|
|
1473
1315
|
if (screen !== "import") {
|
|
1474
1316
|
setImportDefaults(void 0);
|
|
1475
1317
|
return;
|
|
1476
1318
|
}
|
|
1477
|
-
void
|
|
1319
|
+
void readCredentials().then(
|
|
1320
|
+
(saved) => setImportDefaults({ componentDir: saved.defaultComponentDir ?? "", tokenFile: saved.defaultTokenFile ?? "" })
|
|
1321
|
+
);
|
|
1478
1322
|
}, [screen]);
|
|
1479
1323
|
const goToStart = () => setScreen("start");
|
|
1480
1324
|
const goToSettings = () => setScreen("settings");
|
|
@@ -1489,12 +1333,12 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1489
1333
|
};
|
|
1490
1334
|
switch (screen) {
|
|
1491
1335
|
case "import":
|
|
1492
|
-
if (showImportResult) return /* @__PURE__ */
|
|
1493
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
1336
|
+
if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
1337
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
|
|
1494
1338
|
if (projectPath === void 0) {
|
|
1495
|
-
return /* @__PURE__ */
|
|
1339
|
+
return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
|
|
1496
1340
|
}
|
|
1497
|
-
return /* @__PURE__ */
|
|
1341
|
+
return /* @__PURE__ */ jsx11(
|
|
1498
1342
|
TokenInputScreen,
|
|
1499
1343
|
{
|
|
1500
1344
|
initialPath: importDefaults.tokenFile,
|
|
@@ -1504,27 +1348,25 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1504
1348
|
}
|
|
1505
1349
|
);
|
|
1506
1350
|
case "help":
|
|
1507
|
-
return /* @__PURE__ */
|
|
1351
|
+
return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
|
|
1508
1352
|
case "upgrade":
|
|
1509
|
-
return /* @__PURE__ */
|
|
1353
|
+
return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
|
|
1510
1354
|
case "settings":
|
|
1511
|
-
return /* @__PURE__ */
|
|
1355
|
+
return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1512
1356
|
case "settings-configuration":
|
|
1513
|
-
return /* @__PURE__ */
|
|
1357
|
+
return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
|
|
1514
1358
|
case "settings-opt-in-analytics":
|
|
1515
|
-
return /* @__PURE__ */
|
|
1359
|
+
return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1516
1360
|
case "settings-debug-mode":
|
|
1517
|
-
return /* @__PURE__ */
|
|
1518
|
-
case "settings-import-defaults":
|
|
1519
|
-
return /* @__PURE__ */ jsx12(ImportDefaultsScreen, { onDone: goToSettings });
|
|
1361
|
+
return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
|
|
1520
1362
|
case "start":
|
|
1521
|
-
return /* @__PURE__ */
|
|
1363
|
+
return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
|
|
1522
1364
|
}
|
|
1523
1365
|
}
|
|
1524
1366
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1525
1367
|
let requestedImport;
|
|
1526
1368
|
const instance = renderApp(
|
|
1527
|
-
/* @__PURE__ */
|
|
1369
|
+
/* @__PURE__ */ jsx11(
|
|
1528
1370
|
App,
|
|
1529
1371
|
{
|
|
1530
1372
|
importExitCode,
|
|
@@ -1562,8 +1404,7 @@ var init_app = __esm({
|
|
|
1562
1404
|
init_screen3();
|
|
1563
1405
|
init_PageContainer4();
|
|
1564
1406
|
init_screen4();
|
|
1565
|
-
|
|
1566
|
-
init_defaults_store();
|
|
1407
|
+
init_config_store();
|
|
1567
1408
|
}
|
|
1568
1409
|
});
|
|
1569
1410
|
|
package/dist/package.json
CHANGED
package/legacy/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/experience-design-system-cli",
|
|
3
|
-
"version": "2.35.1-dev-build-
|
|
3
|
+
"version": "2.35.1-dev-build-beaac232.0",
|
|
4
4
|
"description": "Contentful Experiences design system import CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"svelte": "^5.56.4",
|
|
43
43
|
"ts-morph": "^27.0.2",
|
|
44
44
|
"typescript": "^5.9.3",
|
|
45
|
-
"@contentful/experience-design-system-types": "2.35.1-dev-build-
|
|
45
|
+
"@contentful/experience-design-system-types": "2.35.1-dev-build-beaac232.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@tsconfig/node24": "^24.0.4",
|