@madebyseed/seed-cli-tools 3.0.0 → 4.0.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.
Files changed (81) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/__fixtures__/legacy-js-min/baseline/theme.dev.js +13 -0
  3. package/__fixtures__/legacy-js-min/baseline/theme.prod.js +1 -0
  4. package/__fixtures__/legacy-js-min/dist/assets/theme.js +13 -0
  5. package/__fixtures__/legacy-js-min/package.json +9 -0
  6. package/__fixtures__/legacy-js-min/src/scripts/components/sample.js +4 -0
  7. package/__fixtures__/legacy-js-min/src/scripts/theme.js +9 -0
  8. package/__fixtures__/legacy-js-min/src/scripts/vendor/lib.js +7 -0
  9. package/__fixtures__/legacy-js-min/src/scripts/vendor.js +3 -0
  10. package/__fixtures__/legacy-js-min/verify.sh +34 -0
  11. package/__fixtures__/module-js-min/dist/assets/components-greeter.js +6 -0
  12. package/__fixtures__/module-js-min/dist/assets/components-greeter.js.map +1 -0
  13. package/__fixtures__/module-js-min/dist/assets/components-items.js +5 -0
  14. package/__fixtures__/module-js-min/dist/assets/components-items.js.map +1 -0
  15. package/__fixtures__/module-js-min/dist/assets/header.js +20 -0
  16. package/__fixtures__/module-js-min/dist/assets/header.js.map +1 -0
  17. package/__fixtures__/module-js-min/dist/assets/sections-cart-items.js +8 -0
  18. package/__fixtures__/module-js-min/dist/assets/sections-cart-items.js.map +1 -0
  19. package/__fixtures__/module-js-min/dist/assets/vendor-lib.js +4 -0
  20. package/__fixtures__/module-js-min/dist/assets/vendor-lib.js.map +1 -0
  21. package/__fixtures__/module-js-min/package.json +9 -0
  22. package/__fixtures__/module-js-min/seed.project.json +15 -0
  23. package/__fixtures__/module-js-min/src/scripts/components/greeter.js +4 -0
  24. package/__fixtures__/module-js-min/src/scripts/components/items.js +3 -0
  25. package/__fixtures__/module-js-min/src/scripts/header.js +18 -0
  26. package/__fixtures__/module-js-min/src/scripts/sections/cart/items.js +6 -0
  27. package/__fixtures__/module-js-min/src/scripts/vendor/lib.js +2 -0
  28. package/__fixtures__/module-js-min/verify.sh +58 -0
  29. package/lib/commands/watch.js +55 -7
  30. package/lib/commands/watch.js.map +1 -1
  31. package/lib/shopify-bin.d.ts +14 -0
  32. package/lib/shopify-bin.js +18 -0
  33. package/lib/shopify-bin.js.map +1 -0
  34. package/lib/tasks/build-js-module.d.ts +2 -0
  35. package/lib/tasks/build-js-module.js +93 -0
  36. package/lib/tasks/build-js-module.js.map +1 -0
  37. package/lib/tasks/build-js.js +13 -1
  38. package/lib/tasks/build-js.js.map +1 -1
  39. package/lib/tasks/includes/config.d.ts +2 -0
  40. package/lib/tasks/includes/config.js +3 -0
  41. package/lib/tasks/includes/config.js.map +1 -1
  42. package/lib/tasks/includes/js-mode.d.ts +12 -0
  43. package/lib/tasks/includes/js-mode.js +42 -0
  44. package/lib/tasks/includes/js-mode.js.map +1 -0
  45. package/lib/tasks/watch-tui/App.d.ts +8 -0
  46. package/lib/tasks/watch-tui/App.js +337 -0
  47. package/lib/tasks/watch-tui/App.js.map +1 -0
  48. package/lib/tasks/watch-tui/classify.d.ts +39 -0
  49. package/lib/tasks/watch-tui/classify.js +84 -0
  50. package/lib/tasks/watch-tui/classify.js.map +1 -0
  51. package/lib/tasks/watch-tui/index.d.ts +30 -0
  52. package/lib/tasks/watch-tui/index.js +299 -0
  53. package/lib/tasks/watch-tui/index.js.map +1 -0
  54. package/lib/tasks/watch-tui/shopify-parse.d.ts +24 -0
  55. package/lib/tasks/watch-tui/shopify-parse.js +87 -0
  56. package/lib/tasks/watch-tui/shopify-parse.js.map +1 -0
  57. package/lib/tasks/watch-tui/state.d.ts +68 -0
  58. package/lib/tasks/watch-tui/state.js +61 -0
  59. package/lib/tasks/watch-tui/state.js.map +1 -0
  60. package/lib/tasks/watch-tui/theme-info.d.ts +10 -0
  61. package/lib/tasks/watch-tui/theme-info.js +79 -0
  62. package/lib/tasks/watch-tui/theme-info.js.map +1 -0
  63. package/lib/utils.js +63 -88
  64. package/lib/utils.js.map +1 -1
  65. package/package.json +11 -2
  66. package/src/commands/watch.ts +70 -20
  67. package/src/shopify-bin.ts +21 -0
  68. package/src/tasks/build-js-module.ts +92 -0
  69. package/src/tasks/build-js.ts +13 -1
  70. package/src/tasks/includes/config.ts +5 -0
  71. package/src/tasks/includes/js-mode.ts +48 -0
  72. package/src/tasks/watch-tui/App.tsx +486 -0
  73. package/src/tasks/watch-tui/classify.ts +120 -0
  74. package/src/tasks/watch-tui/index.ts +342 -0
  75. package/src/tasks/watch-tui/shopify-parse.ts +103 -0
  76. package/src/tasks/watch-tui/state.ts +113 -0
  77. package/src/tasks/watch-tui/theme-info.ts +109 -0
  78. package/src/types/declarations.d.ts +19 -1
  79. package/src/utils.ts +64 -94
  80. package/tsconfig.json +3 -2
  81. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TuiStore = void 0;
4
+ const events_1 = require("events");
5
+ const MAX_LOGS = 5000;
6
+ /**
7
+ * Flag-based state machine — same model the original draft used. Any
8
+ * meaningful event flips the state directly; no in-flight counter to get
9
+ * stuck. The Outcome line in App.tsx is just a translation of (state,
10
+ * lastBuild, lastError) into one line.
11
+ */
12
+ class TuiStore extends events_1.EventEmitter {
13
+ constructor(opts = {}) {
14
+ super();
15
+ this.state = "starting";
16
+ this.logs = [];
17
+ this.shopify = {};
18
+ this.startedAt = Date.now();
19
+ this.seq = 0;
20
+ this.sourceLabel = opts.sourceLabel;
21
+ this.themeInfo = opts.themeInfo;
22
+ }
23
+ pushLog(kind, text) {
24
+ const entry = {
25
+ id: ++this.seq,
26
+ ts: Date.now(),
27
+ kind,
28
+ text,
29
+ };
30
+ this.logs.push(entry);
31
+ if (this.logs.length > MAX_LOGS)
32
+ this.logs.shift();
33
+ this.emit("change");
34
+ return entry;
35
+ }
36
+ setState(next) {
37
+ if (this.state === next)
38
+ return;
39
+ this.state = next;
40
+ this.emit("change");
41
+ }
42
+ setLastBuild(build) {
43
+ this.lastBuild = build;
44
+ this.emit("change");
45
+ }
46
+ setLastError(err) {
47
+ this.lastError = err;
48
+ this.state = "error";
49
+ this.emit("change");
50
+ }
51
+ clearLastError() {
52
+ this.lastError = undefined;
53
+ this.emit("change");
54
+ }
55
+ updateShopify(patch) {
56
+ this.shopify = { ...this.shopify, ...patch };
57
+ this.emit("change");
58
+ }
59
+ }
60
+ exports.TuiStore = TuiStore;
61
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/tasks/watch-tui/state.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAgDtC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,qBAAY;IAWxC,YAAY,OAAwD,EAAE;QACpE,KAAK,EAAE,CAAC;QAXV,UAAK,GAAe,UAAU,CAAC;QAG/B,SAAI,GAAe,EAAE,CAAC;QAEtB,YAAO,GAAkB,EAAE,CAAC;QAE5B,cAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,QAAG,GAAG,CAAC,CAAC;QAId,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,IAAe,EAAE,IAAY;QACnC,MAAM,KAAK,GAAa;YACtB,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI;YACJ,IAAI;SACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,IAAgB;QACvB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,KAAgB;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,GAAc;QACzB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,KAA6B;QACzC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;CACF;AAxDD,4BAwDC"}
@@ -0,0 +1,10 @@
1
+ import type { ThemeInfo } from "./state";
2
+ /**
3
+ * Build dashboard info from whatever config files exist. Precedence:
4
+ * 1. seed.context.json (active context) — full info
5
+ * 2. seed.project.json (newer project config) — store domain only
6
+ * 3. seed.config.js (legacy) — store domain only
7
+ * Returns an empty object if nothing is present; the dashboard renders
8
+ * whatever fields are populated.
9
+ */
10
+ export declare function loadThemeInfo(cwd: string, storeKey?: string): ThemeInfo;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadThemeInfo = loadThemeInfo;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ /**
7
+ * Build dashboard info from whatever config files exist. Precedence:
8
+ * 1. seed.context.json (active context) — full info
9
+ * 2. seed.project.json (newer project config) — store domain only
10
+ * 3. seed.config.js (legacy) — store domain only
11
+ * Returns an empty object if nothing is present; the dashboard renders
12
+ * whatever fields are populated.
13
+ */
14
+ function loadThemeInfo(cwd, storeKey = "main") {
15
+ const info = {};
16
+ const context = loadContext(cwd);
17
+ if (context)
18
+ Object.assign(info, context);
19
+ if (!info.storeDomain) {
20
+ info.storeDomain =
21
+ loadProjectStore(cwd, storeKey) ?? loadLegacyStore(cwd, storeKey);
22
+ }
23
+ return info;
24
+ }
25
+ function loadContext(cwd) {
26
+ const file = (0, path_1.join)(cwd, "seed.context.json");
27
+ if (!(0, fs_1.existsSync)(file))
28
+ return null;
29
+ try {
30
+ const parsed = JSON.parse((0, fs_1.readFileSync)(file, "utf-8"));
31
+ const id = parsed.activeContext;
32
+ if (!id || !parsed.contexts?.[id])
33
+ return null;
34
+ const ctx = parsed.contexts[id];
35
+ return {
36
+ contextName: ctx.name,
37
+ contextStatus: ctx.status,
38
+ branch: ctx.git?.branch,
39
+ baseBranch: ctx.git?.baseBranch,
40
+ storeDomain: ctx.shopify?.storeDomain,
41
+ previewThemeName: ctx.shopify?.previewThemeName,
42
+ previewThemeId: ctx.shopify?.previewThemeId,
43
+ previewUrl: ctx.shopify?.previewUrl,
44
+ customizerUrl: ctx.shopify?.customizerUrl,
45
+ asanaTaskUrl: ctx.asana?.taskUrl,
46
+ prUrl: ctx.github?.prUrl,
47
+ };
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ function loadProjectStore(cwd, storeKey) {
54
+ const file = (0, path_1.join)(cwd, "seed.project.json");
55
+ if (!(0, fs_1.existsSync)(file))
56
+ return undefined;
57
+ try {
58
+ const parsed = JSON.parse((0, fs_1.readFileSync)(file, "utf-8"));
59
+ return parsed.stores?.[storeKey]?.domain;
60
+ }
61
+ catch {
62
+ return undefined;
63
+ }
64
+ }
65
+ function loadLegacyStore(cwd, storeKey) {
66
+ const file = (0, path_1.join)(cwd, "seed.config.js");
67
+ if (!(0, fs_1.existsSync)(file))
68
+ return undefined;
69
+ try {
70
+ // require() caches; delete first so dev-edits to seed.config.js show up.
71
+ delete require.cache[require.resolve(file)];
72
+ const legacy = require(file);
73
+ return legacy.stores?.[storeKey]?.domain || legacy.store;
74
+ }
75
+ catch {
76
+ return undefined;
77
+ }
78
+ }
79
+ //# sourceMappingURL=theme-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-info.js","sourceRoot":"","sources":["../../../src/tasks/watch-tui/theme-info.ts"],"names":[],"mappings":"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"}
package/lib/utils.js CHANGED
@@ -24,6 +24,7 @@ const cross_spawn_1 = __importDefault(require("cross-spawn"));
24
24
  const path_1 = require("path");
25
25
  const fs_1 = require("fs");
26
26
  const config_1 = __importDefault(require("./config"));
27
+ const shopify_bin_1 = require("./shopify-bin");
27
28
  /**
28
29
  * Get seed.project.json from project root dir
29
30
  *
@@ -31,7 +32,6 @@ const config_1 = __importDefault(require("./config"));
31
32
  * @returns {SeedProjectConfig | null} - project config object or null if not found
32
33
  */
33
34
  function getProjectConfig(themeRoot) {
34
- console.log(require((0, path_1.join)(themeRoot, "seed.project.json")));
35
35
  return require((0, path_1.join)(themeRoot, "seed.project.json"));
36
36
  }
37
37
  /**
@@ -83,135 +83,110 @@ function getStorePassword(themeRoot, store) {
83
83
  * @namespace seed-cli.shopifyCLI
84
84
  * @memberof seed-cli
85
85
  */
86
+ // All shopify spawn calls go through `shopifyCommand` so they pick up the
87
+ // bundled `@shopify/cli` binary advertised by seed-cli via SEED_SHOPIFY_BIN.
88
+ // PATH `shopify` is the fallback for when seed-tools is invoked outside the
89
+ // seed-cli wrapper (e.g. running gulp directly).
86
90
  exports.shopifyCLI = {
87
- /**
88
- * shopify login
89
- *
90
- * @memberof seed-cli.shopifyCLI
91
- * @param {string} store - store's myshopify domain name
92
- * @returns {object} - spawnSync object or, node's <ChildProcess> object if async
93
- */
94
91
  login: (store) => {
95
- const args = ["switch", "--store", store];
96
- const options = {
92
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)([
93
+ "switch",
94
+ "--store",
95
+ store,
96
+ ]);
97
+ return cross_spawn_1.default.sync(command, args, {
97
98
  env: process.env,
98
99
  stdio: "inherit",
99
- shell: true,
100
- };
101
- return cross_spawn_1.default.sync("shopify", args, options);
100
+ shell,
101
+ });
102
102
  },
103
- /**
104
- * shopify theme serve
105
- *
106
- * @memberof seed-cli.shopifyCLI
107
- * @param {string} store - store's myshopify domain name
108
- * @param {object} options - node spawn options
109
- * @returns {object} - node's ChildProcess
110
- */
111
103
  serve: (store, options = {}) => {
112
- return (0, cross_spawn_1.default)("shopify theme", ["dev", "--store", store, "--path", "dist"], {
104
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)([
105
+ "theme",
106
+ "dev",
107
+ "--store",
108
+ store,
109
+ "--path",
110
+ "dist",
111
+ ]);
112
+ return (0, cross_spawn_1.default)(command, args, {
113
113
  env: process.env,
114
114
  stdio: "inherit",
115
- shell: true,
115
+ shell,
116
116
  ...options,
117
117
  });
118
118
  },
119
- /**
120
- * shopify theme pull
121
- *
122
- * @memberof seed-cli.shopifyCLI
123
- * @param {string} store - store's myshopify domain name
124
- * @param {string} themeId - shopify theme id to pull from
125
- * @param {string} dir - directory to pull into
126
- * @param {boolean} [nodelete = true] - run command with --no-delete flag
127
- * @returns {object} - node's ChildProcess
128
- */
129
119
  pull: (store, themeId, dir = "./src", nodelete = true) => {
130
- let args = ["pull", "--store", store];
120
+ const sub = ["theme", "pull", "--store", store];
131
121
  if (themeId)
132
- args = args.concat(["--theme", themeId, "--path", dir]);
122
+ sub.push("--theme", themeId, "--path", dir);
133
123
  if (nodelete)
134
- args.push("--nodelete");
135
- return (0, cross_spawn_1.default)("shopify theme", args, {
124
+ sub.push("--nodelete");
125
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)(sub);
126
+ return (0, cross_spawn_1.default)(command, args, {
136
127
  env: process.env,
137
128
  stdio: "inherit",
138
- shell: true,
129
+ shell,
139
130
  });
140
131
  },
141
- /**
142
- * shopify theme push
143
- *
144
- * @memberof seed-cli.shopifyCLI
145
- * @param {string} store - store's myshopify domain name
146
- * @param {string} themeId - shopify theme id to push into
147
- * @param {boolean} [nodelete = true] - run command with --no-delete flag
148
- * @returns {ChildProcess} - node's ChildProcess
149
- */
150
132
  push: (store, themeId, nodelete = true) => {
151
- let args = ["push", "--store", store, "--path", "dist"];
133
+ const sub = ["theme", "push", "--store", store, "--path", "dist"];
152
134
  if (themeId)
153
- args = args.concat(["--theme", themeId]);
135
+ sub.push("--theme", themeId);
154
136
  if (nodelete)
155
- args.push("--nodelete");
156
- return (0, cross_spawn_1.default)("shopify theme", args, {
137
+ sub.push("--nodelete");
138
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)(sub);
139
+ return (0, cross_spawn_1.default)(command, args, {
157
140
  env: process.env,
158
141
  stdio: "inherit",
159
- shell: true,
142
+ shell,
160
143
  });
161
144
  },
162
- /**
163
- * shopify theme package
164
- *
165
- * @memberof seed-cli.shopifyCLI
166
- * @returns {ChildProcess} - node's ChildProcess
167
- */
168
145
  package: () => {
169
- return (0, cross_spawn_1.default)("shopify theme", ["package", "--path", "dist"], {
146
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)([
147
+ "theme",
148
+ "package",
149
+ "--path",
150
+ "dist",
151
+ ]);
152
+ return (0, cross_spawn_1.default)(command, args, {
170
153
  env: process.env,
171
154
  stdio: "inherit",
172
- shell: true,
155
+ shell,
173
156
  });
174
157
  },
175
- /**
176
- * shopify theme list
177
- *
178
- * @memberof seed-cli.shopifyCLI
179
- * @param {string} store - store's myshopify domain name
180
- * @param {object} options - additional options (role, json, etc.)
181
- * @returns {ChildProcess} - node's ChildProcess
182
- */
183
158
  list: (store, options = {}) => {
184
- let args = ["list", "--store", store];
159
+ const sub = ["theme", "list", "--store", store];
185
160
  if (options.role)
186
- args = args.concat(["--role", options.role]);
161
+ sub.push("--role", options.role);
187
162
  if (options.json)
188
- args.push("--json");
189
- return (0, cross_spawn_1.default)("shopify theme", args, {
163
+ sub.push("--json");
164
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)(sub);
165
+ return (0, cross_spawn_1.default)(command, args, {
190
166
  env: process.env,
191
167
  stdio: options.json ? "pipe" : "inherit",
192
- shell: true,
168
+ shell,
193
169
  });
194
170
  },
195
- /**
196
- * shopify theme duplicate
197
- *
198
- * @memberof seed-cli.shopifyCLI
199
- * @param {string} store - store's myshopify domain name
200
- * @param {string} themeId - theme ID to duplicate
201
- * @param {string} [name] - optional name for the duplicated theme
202
- * @param {boolean} [json] - return JSON output
203
- * @returns {ChildProcess} - node's ChildProcess
204
- */
205
171
  duplicate: (store, themeId, name, json = false) => {
206
- let args = ["duplicate", "--store", store, "--theme", themeId, "--force"];
172
+ const sub = [
173
+ "theme",
174
+ "duplicate",
175
+ "--store",
176
+ store,
177
+ "--theme",
178
+ themeId,
179
+ "--force",
180
+ ];
207
181
  if (name)
208
- args = args.concat(["--name", name]);
182
+ sub.push("--name", name);
209
183
  if (json)
210
- args.push("--json");
211
- return (0, cross_spawn_1.default)("shopify theme", args, {
184
+ sub.push("--json");
185
+ const { command, args, shell } = (0, shopify_bin_1.shopifyCommand)(sub);
186
+ return (0, cross_spawn_1.default)(command, args, {
212
187
  env: process.env,
213
188
  stdio: json ? "pipe" : "inherit",
214
- shell: true,
189
+ shell,
215
190
  });
216
191
  },
217
192
  };
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAgBA,4CAGC;AAQD,sCAEC;AASD,oCAkBC;AASD,4CAOC;AA0HD,wCAqCC;AAKD,wCAqCC;AAKD,8CAOC;AAUD,gCASC;AAQD,sCAEC;AASD,wCAIC;AAOD,sDAIC;AAOD,sCAMC;AASD,sBAsBC;AAOD,8CAwBC;AA7ZD,iCAAoC;AACpC,sDAA8B;AAC9B,8DAAgC;AAEhC,+BAA4B;AAC5B,2BAA6D;AAC7D,sDAA8B;AAC9B,+CAA+C;AAG/C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,SAAiB;IAEhD,OAAO,OAAO,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO,OAAO,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,SAAiB,EACjB,KAAc;IAEd,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;IAEjC,uCAAuC;IACvC,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;QACnC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,SAAiB,EACjB,KAAc;IAEd,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,OAAO,aAAa,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,0EAA0E;AAC1E,6EAA6E;AAC7E,4EAA4E;AAC5E,iDAAiD;AACpC,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE;QACvB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC;YAC9C,QAAQ;YACR,SAAS;YACT,KAAK;SACN,CAAC,CAAC;QACH,OAAO,qBAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAkB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,EAAE,CAAC,KAAa,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QACrC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC;YAC9C,OAAO;YACP,KAAK;YACL,SAAS;YACT,KAAK;YACL,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QACH,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAkB;YACzB,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,KAAa,EAAE,OAAgB,EAAE,GAAG,GAAG,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;QACxE,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAkB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,KAAa,EAAE,OAAgB,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAkB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,GAAG,EAAE;QACZ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC;YAC9C,OAAO;YACP,SAAS;YACT,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QACH,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAkB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,KAAa,EAAE,UAA6C,EAAE,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,SAAmB;YACnD,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,SAAS,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,IAAa,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE;QACzE,MAAM,GAAG,GAAG;YACV,OAAO;YACP,WAAW;YACX,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO;YACP,SAAS;SACV,CAAC;QACF,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,SAAmB;YAC3C,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,kBAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC9C,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CACrC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CACtC,CAAC;gBAEF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,aAAqB,EACrB,IAAa;IAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,gBAAgB,GAAG,kBAAU,CAAC,SAAS,CAC3C,KAAK,EACL,aAAa,EACb,IAAI,EACJ,IAAI,CACL,CAAC;QACF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACnD,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACnD,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;YAC5C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,IAAa;IAEb,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CACxB,SAAiB,EACjB,WAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAAqB;IACzD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,gBAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CACtE,gBAAM,CAAC,mBAAmB,CAC3B,CAAC;IACF,IAAI,CAAC,CAAC,CAAC,GAAG,8BAA8B,OAAO,GAAG,GAAG,MAAM,CAAC;IAC5D,IAAA,kBAAa,EAAC,gBAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAErD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAA,cAAM,EAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,kBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EACD,KAAK,iBAAO,CAAC,KAAK,wBAAwB,MAAM,kDAAkD,CACnG,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EACD,eAAe,KAAK,wDAAwD,CAC7E,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,wGAAwG,CACzG,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EACD,KAAK,iBAAO,CAAC,KAAK,+DAA+D,CAClF,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,qGAAqG,CACtG,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madebyseed/seed-cli-tools",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Seed CLI Tools",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -25,11 +25,15 @@
25
25
  "@types/gulp-if": "^3.0.5",
26
26
  "@types/gulp-plumber": "^0.0.37",
27
27
  "@types/gulp-postcss": "^8.0.6",
28
+ "@types/gulp-rename": "^2.0.7",
28
29
  "@types/gulp-sass": "^5.0.4",
29
30
  "@types/gulp-size": "^4.0.3",
31
+ "@types/gulp-sourcemaps": "^0.0.38",
30
32
  "@types/gulp-uglify": "^3.0.11",
31
33
  "@types/lodash": "^4.17.20",
34
+ "@types/minimist": "^1.2.5",
32
35
  "@types/node": "^20.11.24",
36
+ "@types/react": "^18.3.28",
33
37
  "@types/sass": "^1.45.0",
34
38
  "@types/uglify-js": "^3.17.5",
35
39
  "@types/vinyl-paths": "^5.0.0",
@@ -62,15 +66,20 @@
62
66
  "gulp-include": "^2.4.1",
63
67
  "gulp-plumber": "^1.2.1",
64
68
  "gulp-postcss": "^9.0.0",
69
+ "gulp-rename": "^2.1.0",
65
70
  "gulp-sass": "^5.0.0",
66
71
  "gulp-size": "^4.0.1",
72
+ "gulp-sourcemaps": "^3.0.0",
73
+ "gulp-terser": "^2.1.0",
67
74
  "gulp-uglify": "^3.0.2",
75
+ "ink": "^3.2.0",
68
76
  "lodash": "^4.17.21",
69
77
  "minimist": "^1.2.5",
70
78
  "postcss": "^8.3.6",
71
79
  "postcss-import": "^14.0.2",
72
80
  "postcss-pxtorem": "^6.0.0",
73
81
  "postcss-reporter": "^7.0.5",
82
+ "react": "^18.3.1",
74
83
  "require-directory": "^2.1.1",
75
84
  "sass": "^1.36.0",
76
85
  "tailwindcss": "^3.1.4",
@@ -78,5 +87,5 @@
78
87
  "vinyl-paths": "^3.0.1",
79
88
  "yargs": "^17.0.1"
80
89
  },
81
- "gitHead": "a3abcf2a46754db6a52c4e61f566a7cbe34a2c71"
90
+ "gitHead": "4ada9de9c0d943af873dd565575744aaa0512e41"
82
91
  }
@@ -1,7 +1,9 @@
1
1
  import spawn from "cross-spawn";
2
+ import readline from "readline";
2
3
  import debug from "debug";
3
4
  import { Command } from "commander";
4
5
  import config from "../config";
6
+ import { WatchTui } from "../tasks/watch-tui";
5
7
 
6
8
  const logger = debug("seed-tools:watch");
7
9
 
@@ -10,6 +12,8 @@ interface WatchOptions {
10
12
  storePassword?: string | false;
11
13
  optimize?: boolean;
12
14
  env?: string;
15
+ raw?: boolean;
16
+ verbose?: boolean;
13
17
  }
14
18
 
15
19
  export default function (program: Command): void {
@@ -35,38 +39,84 @@ export default function (program: Command): void {
35
39
  "Optimizes assets by compressing, minifying and purging.",
36
40
  false,
37
41
  )
42
+ .option("--raw", "Disable the TUI and stream raw gulp/shopify output.", false)
43
+ .option("--verbose", "Show all child-process output (TUI only).", false)
38
44
  .action((options: WatchOptions = {}) => {
39
45
  logger(`--gulpfile ${config.gulpFile}`);
40
46
  logger(`--cwd ${config.themeRoot}`);
41
47
 
42
48
  const args = ["watch"];
43
49
 
44
- if (options.store) {
45
- args.push("--store", options.store);
46
- }
47
-
48
- if (options.storePassword) {
50
+ if (options.store) args.push("--store", options.store);
51
+ if (options.storePassword)
49
52
  args.push("--store-password", options.storePassword);
50
- }
51
-
52
53
  if (!options.optimize) args.push("--skip-optimizations");
53
54
 
54
55
  process.env.NODE_ENV = options.optimize ? "production" : "development";
55
56
 
56
- spawn(
57
- config.gulp,
58
- args.concat([
59
- "--gulpfile",
60
- config.gulpFile,
61
- "--cwd",
62
- config.themeRoot,
63
- "--environment",
64
- options.env || "development",
65
- ]),
66
- {
57
+ const gulpArgs = args.concat([
58
+ "--gulpfile",
59
+ config.gulpFile,
60
+ "--cwd",
61
+ config.themeRoot,
62
+ "--environment",
63
+ options.env || "development",
64
+ ]);
65
+
66
+ const useTui = !options.raw && process.stdout.isTTY;
67
+
68
+ if (!useTui) {
69
+ spawn(config.gulp, gulpArgs, {
67
70
  detached: false,
68
71
  stdio: "inherit",
72
+ });
73
+ return;
74
+ }
75
+
76
+ const child = spawn(config.gulp, gulpArgs, {
77
+ detached: false,
78
+ // Ink owns stdin for keyboard nav; child runs without a tty on stdin.
79
+ stdio: ["ignore", "pipe", "pipe"],
80
+ });
81
+
82
+ const tui = new WatchTui({
83
+ verbose: options.verbose,
84
+ sourceLabel:
85
+ typeof options.store === "string" ? options.store : undefined,
86
+ storeKey: typeof options.store === "string" ? options.store : undefined,
87
+ cwd: config.themeRoot,
88
+ onQuit: () => {
89
+ if (!child.killed) child.kill("SIGINT");
69
90
  },
70
- );
91
+ });
92
+
93
+ tui.start();
94
+
95
+ if (child.stdout) {
96
+ readline.createInterface({ input: child.stdout }).on("line", (line) => {
97
+ tui.ingest(line, false);
98
+ });
99
+ }
100
+ if (child.stderr) {
101
+ readline.createInterface({ input: child.stderr }).on("line", (line) => {
102
+ tui.ingest(line, true);
103
+ });
104
+ }
105
+
106
+ let exited = false;
107
+ const shutdown = (code?: number | null): void => {
108
+ if (exited) return;
109
+ exited = true;
110
+ tui.stop(code);
111
+ // Ink leaves stdin in raw mode with handlers attached even after
112
+ // unmount, which keeps the event loop alive. Force-exit so the user
113
+ // gets back to the shell on q / Ctrl+C without a second keypress.
114
+ // setImmediate gives the final-summary write one tick to flush.
115
+ setImmediate(() => process.exit(code ?? 0));
116
+ };
117
+
118
+ child.on("exit", (code) => shutdown(code));
119
+ process.on("SIGINT", () => shutdown(130));
120
+ process.on("SIGTERM", () => shutdown(143));
71
121
  });
72
- }
122
+ }
@@ -0,0 +1,21 @@
1
+ export interface ShopifyCommand {
2
+ command: string;
3
+ args: string[];
4
+ /** Whether the spawn call should set `shell: true`. */
5
+ shell: boolean;
6
+ }
7
+
8
+ /**
9
+ * Build the (command, args) tuple to spawn the shopify cli with the given
10
+ * subcommand args. Prefers the bundled binary advertised by seed-cli via the
11
+ * `SEED_SHOPIFY_BIN` env var. Falls back to PATH `shopify` if the env var
12
+ * isn't set (e.g. someone running seed-tools' gulpfile directly without the
13
+ * seed-cli wrapper).
14
+ */
15
+ export function shopifyCommand(subArgs: string[]): ShopifyCommand {
16
+ const bin = process.env.SEED_SHOPIFY_BIN;
17
+ if (bin) {
18
+ return { command: process.execPath, args: [bin, ...subArgs], shell: false };
19
+ }
20
+ return { command: "shopify", args: subArgs, shell: true };
21
+ }