@contentful/experience-design-system-cli 2.35.1-dev-build-657a08f3.0 → 2.35.1-dev-build-8f791e21.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 +39 -169
- package/dist/index.js +40 -184
- 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
|
];
|
|
@@ -769,7 +768,9 @@ async function readCredentials() {
|
|
|
769
768
|
spaceId: store.spaceId || "",
|
|
770
769
|
environmentId: store.environmentId || "",
|
|
771
770
|
cmaToken: store.cmaToken || "",
|
|
772
|
-
host: store.host || ""
|
|
771
|
+
host: store.host || "",
|
|
772
|
+
defaultComponentDir: store.defaultComponentDir || "",
|
|
773
|
+
defaultTokenFile: store.defaultTokenFile || ""
|
|
773
774
|
};
|
|
774
775
|
}
|
|
775
776
|
async function writeCredentials(config) {
|
|
@@ -786,20 +787,31 @@ async function writeCredentials(config) {
|
|
|
786
787
|
|
|
787
788
|
// packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
|
|
788
789
|
import { Fragment, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
789
|
-
var FIELD_ORDER = [
|
|
790
|
+
var FIELD_ORDER = [
|
|
791
|
+
"spaceId",
|
|
792
|
+
"environmentId",
|
|
793
|
+
"cmaToken",
|
|
794
|
+
"host",
|
|
795
|
+
"defaultComponentDir",
|
|
796
|
+
"defaultTokenFile"
|
|
797
|
+
];
|
|
790
798
|
function debugFields(config) {
|
|
791
799
|
return {
|
|
792
800
|
space_id: config?.spaceId ?? "",
|
|
793
801
|
environment_id: config?.environmentId ?? "",
|
|
794
802
|
cma_token: config?.cmaToken ?? "",
|
|
795
|
-
host: config?.host ?? ""
|
|
803
|
+
host: config?.host ?? "",
|
|
804
|
+
default_component_dir: config?.defaultComponentDir ?? "",
|
|
805
|
+
default_token_file: config?.defaultTokenFile ?? ""
|
|
796
806
|
};
|
|
797
807
|
}
|
|
798
808
|
var FIELD_LABELS = {
|
|
799
809
|
spaceId: "Space ID",
|
|
800
810
|
environmentId: "Environment ID",
|
|
801
811
|
cmaToken: "CMA Token",
|
|
802
|
-
host: "API Host (optional)"
|
|
812
|
+
host: "API Host (optional)",
|
|
813
|
+
defaultComponentDir: "Default component directory (optional)",
|
|
814
|
+
defaultTokenFile: "Default token file (optional)"
|
|
803
815
|
};
|
|
804
816
|
function ConfigurationScreen({ onDone }) {
|
|
805
817
|
const [stage, setStage] = useState6("loading");
|
|
@@ -1116,162 +1128,22 @@ function DebugModeScreen({ onDone }) {
|
|
|
1116
1128
|
] });
|
|
1117
1129
|
}
|
|
1118
1130
|
|
|
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
1131
|
// packages/experience-design-system-cli/app.tsx
|
|
1262
|
-
import { Fragment as
|
|
1132
|
+
import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
|
|
1263
1133
|
function App({ onLaunchImport, importExitCode }) {
|
|
1264
1134
|
const returnedFromImport = importExitCode !== void 0;
|
|
1265
|
-
const [screen, setScreen] =
|
|
1266
|
-
const [showImportResult, setShowImportResult] =
|
|
1267
|
-
const [projectPath, setProjectPath] =
|
|
1268
|
-
const [importDefaults, setImportDefaults] =
|
|
1269
|
-
|
|
1135
|
+
const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
|
|
1136
|
+
const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
|
|
1137
|
+
const [projectPath, setProjectPath] = useState10();
|
|
1138
|
+
const [importDefaults, setImportDefaults] = useState10();
|
|
1139
|
+
useEffect8(() => {
|
|
1270
1140
|
if (screen !== "import") {
|
|
1271
1141
|
setImportDefaults(void 0);
|
|
1272
1142
|
return;
|
|
1273
1143
|
}
|
|
1274
|
-
void
|
|
1144
|
+
void readCredentials().then(
|
|
1145
|
+
(saved) => setImportDefaults({ componentDir: saved.defaultComponentDir ?? "", tokenFile: saved.defaultTokenFile ?? "" })
|
|
1146
|
+
);
|
|
1275
1147
|
}, [screen]);
|
|
1276
1148
|
const goToStart = () => setScreen("start");
|
|
1277
1149
|
const goToSettings = () => setScreen("settings");
|
|
@@ -1286,12 +1158,12 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1286
1158
|
};
|
|
1287
1159
|
switch (screen) {
|
|
1288
1160
|
case "import":
|
|
1289
|
-
if (showImportResult) return /* @__PURE__ */
|
|
1290
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
1161
|
+
if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
1162
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
|
|
1291
1163
|
if (projectPath === void 0) {
|
|
1292
|
-
return /* @__PURE__ */
|
|
1164
|
+
return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
|
|
1293
1165
|
}
|
|
1294
|
-
return /* @__PURE__ */
|
|
1166
|
+
return /* @__PURE__ */ jsx11(
|
|
1295
1167
|
TokenInputScreen,
|
|
1296
1168
|
{
|
|
1297
1169
|
initialPath: importDefaults.tokenFile,
|
|
@@ -1301,27 +1173,25 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1301
1173
|
}
|
|
1302
1174
|
);
|
|
1303
1175
|
case "help":
|
|
1304
|
-
return /* @__PURE__ */
|
|
1176
|
+
return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
|
|
1305
1177
|
case "upgrade":
|
|
1306
|
-
return /* @__PURE__ */
|
|
1178
|
+
return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
|
|
1307
1179
|
case "settings":
|
|
1308
|
-
return /* @__PURE__ */
|
|
1180
|
+
return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1309
1181
|
case "settings-configuration":
|
|
1310
|
-
return /* @__PURE__ */
|
|
1182
|
+
return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
|
|
1311
1183
|
case "settings-opt-in-analytics":
|
|
1312
|
-
return /* @__PURE__ */
|
|
1184
|
+
return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1313
1185
|
case "settings-debug-mode":
|
|
1314
|
-
return /* @__PURE__ */
|
|
1315
|
-
case "settings-import-defaults":
|
|
1316
|
-
return /* @__PURE__ */ jsx12(ImportDefaultsScreen, { onDone: goToSettings });
|
|
1186
|
+
return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
|
|
1317
1187
|
case "start":
|
|
1318
|
-
return /* @__PURE__ */
|
|
1188
|
+
return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
|
|
1319
1189
|
}
|
|
1320
1190
|
}
|
|
1321
1191
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1322
1192
|
let requestedImport;
|
|
1323
1193
|
const instance = renderApp(
|
|
1324
|
-
/* @__PURE__ */
|
|
1194
|
+
/* @__PURE__ */ jsx11(
|
|
1325
1195
|
App,
|
|
1326
1196
|
{
|
|
1327
1197
|
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) {
|
|
@@ -938,7 +939,9 @@ function debugFields(config) {
|
|
|
938
939
|
space_id: config?.spaceId ?? "",
|
|
939
940
|
environment_id: config?.environmentId ?? "",
|
|
940
941
|
cma_token: config?.cmaToken ?? "",
|
|
941
|
-
host: config?.host ?? ""
|
|
942
|
+
host: config?.host ?? "",
|
|
943
|
+
default_component_dir: config?.defaultComponentDir ?? "",
|
|
944
|
+
default_token_file: config?.defaultTokenFile ?? ""
|
|
942
945
|
};
|
|
943
946
|
}
|
|
944
947
|
function ConfigurationScreen({ onDone }) {
|
|
@@ -1075,12 +1078,21 @@ var init_ContentfulConfigScreen = __esm({
|
|
|
1075
1078
|
init_home_theme();
|
|
1076
1079
|
init_config_store();
|
|
1077
1080
|
init_debug_store();
|
|
1078
|
-
FIELD_ORDER = [
|
|
1081
|
+
FIELD_ORDER = [
|
|
1082
|
+
"spaceId",
|
|
1083
|
+
"environmentId",
|
|
1084
|
+
"cmaToken",
|
|
1085
|
+
"host",
|
|
1086
|
+
"defaultComponentDir",
|
|
1087
|
+
"defaultTokenFile"
|
|
1088
|
+
];
|
|
1079
1089
|
FIELD_LABELS = {
|
|
1080
1090
|
spaceId: "Space ID",
|
|
1081
1091
|
environmentId: "Environment ID",
|
|
1082
1092
|
cmaToken: "CMA Token",
|
|
1083
|
-
host: "API Host (optional)"
|
|
1093
|
+
host: "API Host (optional)",
|
|
1094
|
+
defaultComponentDir: "Default component directory (optional)",
|
|
1095
|
+
defaultTokenFile: "Default token file (optional)"
|
|
1084
1096
|
};
|
|
1085
1097
|
}
|
|
1086
1098
|
});
|
|
@@ -1301,180 +1313,27 @@ var init_screen4 = __esm({
|
|
|
1301
1313
|
}
|
|
1302
1314
|
});
|
|
1303
1315
|
|
|
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
1316
|
// packages/experience-design-system-cli/app.tsx
|
|
1460
1317
|
var app_exports = {};
|
|
1461
1318
|
__export(app_exports, {
|
|
1462
1319
|
runApp: () => runApp
|
|
1463
1320
|
});
|
|
1464
|
-
import { useEffect as
|
|
1465
|
-
import { Fragment as
|
|
1321
|
+
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
1322
|
+
import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
|
|
1466
1323
|
function App({ onLaunchImport, importExitCode }) {
|
|
1467
1324
|
const returnedFromImport = importExitCode !== void 0;
|
|
1468
|
-
const [screen, setScreen] =
|
|
1469
|
-
const [showImportResult, setShowImportResult] =
|
|
1470
|
-
const [projectPath, setProjectPath] =
|
|
1471
|
-
const [importDefaults, setImportDefaults] =
|
|
1472
|
-
|
|
1325
|
+
const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
|
|
1326
|
+
const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
|
|
1327
|
+
const [projectPath, setProjectPath] = useState10();
|
|
1328
|
+
const [importDefaults, setImportDefaults] = useState10();
|
|
1329
|
+
useEffect8(() => {
|
|
1473
1330
|
if (screen !== "import") {
|
|
1474
1331
|
setImportDefaults(void 0);
|
|
1475
1332
|
return;
|
|
1476
1333
|
}
|
|
1477
|
-
void
|
|
1334
|
+
void readCredentials().then(
|
|
1335
|
+
(saved) => setImportDefaults({ componentDir: saved.defaultComponentDir ?? "", tokenFile: saved.defaultTokenFile ?? "" })
|
|
1336
|
+
);
|
|
1478
1337
|
}, [screen]);
|
|
1479
1338
|
const goToStart = () => setScreen("start");
|
|
1480
1339
|
const goToSettings = () => setScreen("settings");
|
|
@@ -1489,12 +1348,12 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1489
1348
|
};
|
|
1490
1349
|
switch (screen) {
|
|
1491
1350
|
case "import":
|
|
1492
|
-
if (showImportResult) return /* @__PURE__ */
|
|
1493
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
1351
|
+
if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
1352
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
|
|
1494
1353
|
if (projectPath === void 0) {
|
|
1495
|
-
return /* @__PURE__ */
|
|
1354
|
+
return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
|
|
1496
1355
|
}
|
|
1497
|
-
return /* @__PURE__ */
|
|
1356
|
+
return /* @__PURE__ */ jsx11(
|
|
1498
1357
|
TokenInputScreen,
|
|
1499
1358
|
{
|
|
1500
1359
|
initialPath: importDefaults.tokenFile,
|
|
@@ -1504,27 +1363,25 @@ function App({ onLaunchImport, importExitCode }) {
|
|
|
1504
1363
|
}
|
|
1505
1364
|
);
|
|
1506
1365
|
case "help":
|
|
1507
|
-
return /* @__PURE__ */
|
|
1366
|
+
return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
|
|
1508
1367
|
case "upgrade":
|
|
1509
|
-
return /* @__PURE__ */
|
|
1368
|
+
return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
|
|
1510
1369
|
case "settings":
|
|
1511
|
-
return /* @__PURE__ */
|
|
1370
|
+
return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
1512
1371
|
case "settings-configuration":
|
|
1513
|
-
return /* @__PURE__ */
|
|
1372
|
+
return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
|
|
1514
1373
|
case "settings-opt-in-analytics":
|
|
1515
|
-
return /* @__PURE__ */
|
|
1374
|
+
return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
1516
1375
|
case "settings-debug-mode":
|
|
1517
|
-
return /* @__PURE__ */
|
|
1518
|
-
case "settings-import-defaults":
|
|
1519
|
-
return /* @__PURE__ */ jsx12(ImportDefaultsScreen, { onDone: goToSettings });
|
|
1376
|
+
return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
|
|
1520
1377
|
case "start":
|
|
1521
|
-
return /* @__PURE__ */
|
|
1378
|
+
return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
|
|
1522
1379
|
}
|
|
1523
1380
|
}
|
|
1524
1381
|
async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
|
|
1525
1382
|
let requestedImport;
|
|
1526
1383
|
const instance = renderApp(
|
|
1527
|
-
/* @__PURE__ */
|
|
1384
|
+
/* @__PURE__ */ jsx11(
|
|
1528
1385
|
App,
|
|
1529
1386
|
{
|
|
1530
1387
|
importExitCode,
|
|
@@ -1562,8 +1419,7 @@ var init_app = __esm({
|
|
|
1562
1419
|
init_screen3();
|
|
1563
1420
|
init_PageContainer4();
|
|
1564
1421
|
init_screen4();
|
|
1565
|
-
|
|
1566
|
-
init_defaults_store();
|
|
1422
|
+
init_config_store();
|
|
1567
1423
|
}
|
|
1568
1424
|
});
|
|
1569
1425
|
|
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-8f791e21.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-8f791e21.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@tsconfig/node24": "^24.0.4",
|