xs-dev 1.2.4 → 1.2.5

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "types": "build/types/types.d.ts",
6
6
  "packageManager": "pnpm@10.29.2",
@@ -1,31 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const ora_1 = __importDefault(require("ora"));
27
9
  const core_1 = require("@stricli/core");
10
+ const build_1 = __importDefault(require("../toolbox/build"));
28
11
  const devices_1 = require("../toolbox/prompt/devices");
12
+ const prompter_1 = require("../lib/prompter");
13
+ const renderer_1 = require("../lib/renderer");
29
14
  const command = (0, core_1.buildCommand)({
30
15
  docs: {
31
16
  brief: 'Build project for release to target device',
@@ -33,18 +18,21 @@ const command = (0, core_1.buildCommand)({
33
18
  async func(flags,
34
19
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
35
20
  projectPath = '.') {
36
- const { filesystem } = this;
37
- const { build } = await Promise.resolve().then(() => __importStar(require('../toolbox/build/index')));
38
21
  const currentPlatform = (0, node_os_1.type)().toLowerCase();
39
22
  const { device = currentPlatform, deploy = false, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, mode = process.env.NODE_ENV ?? 'development', output, port, config = [], } = flags;
40
23
  const targetPlatform = devices_1.DEVICE_ALIAS[device] ?? device;
41
- projectPath = filesystem.resolve(projectPath);
24
+ projectPath = (0, node_path_1.resolve)(projectPath);
42
25
  const parsedConfig = config.reduce((result, setting) => {
43
26
  const [key, value] = setting.split('=');
44
27
  result[key] = value;
45
28
  return result;
46
29
  }, {});
47
- await build({
30
+ // Determine interactive mode
31
+ const prompter = (0, prompter_1.isInteractive)()
32
+ ? (0, prompter_1.createInteractivePrompter)()
33
+ : (0, prompter_1.createNonInteractivePrompter)();
34
+ const spinner = (0, ora_1.default)();
35
+ for await (const event of (0, build_1.default)({
48
36
  listExamples,
49
37
  listDevices,
50
38
  example,
@@ -55,7 +43,9 @@ const command = (0, core_1.buildCommand)({
55
43
  deployStatus: deploy ? 'push' : 'none',
56
44
  outputDir: output,
57
45
  config: parsedConfig,
58
- });
46
+ }, prompter)) {
47
+ (0, renderer_1.handleEvent)(event, spinner);
48
+ }
59
49
  },
60
50
  parameters: {
61
51
  positional: {
@@ -132,4 +122,4 @@ const command = (0, core_1.buildCommand)({
132
122
  },
133
123
  });
134
124
  exports.default = command;
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUE4QztBQUM5Qyx3Q0FBNEM7QUFHNUMsdURBQXdEO0FBZ0J4RCxNQUFNLE9BQU8sR0FBRyxJQUFBLG1CQUFZLEVBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLDRDQUE0QztLQUNwRDtJQUNELEtBQUssQ0FBQyxJQUFJLENBRVIsS0FBbUI7SUFDbkIsa0VBQWtFO0lBQ2xFLGNBQXNCLEdBQUc7UUFFekIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsd0RBQWEsd0JBQXdCLEdBQUMsQ0FBQTtRQUN4RCxNQUFNLGVBQWUsR0FBVyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixNQUFNLEdBQUcsS0FBSyxFQUNkLE9BQU8sRUFDUCxlQUFlLEVBQUUsWUFBWSxHQUFHLEtBQUssRUFDckMsY0FBYyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQ25DLElBQUksR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQWlCLElBQUksYUFBYSxFQUN0RCxNQUFNLEVBQ04sSUFBSSxFQUNKLE1BQU0sR0FBRyxFQUFFLEdBQ1osR0FBRyxLQUFLLENBQUE7UUFDVCxNQUFNLGNBQWMsR0FBVyxzQkFBWSxDQUFDLE1BQWdCLENBQUMsSUFBSSxNQUFNLENBQUE7UUFDdkUsV0FBVyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxD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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBOEM7QUFDOUMseUNBQW1DO0FBQ25DLDhDQUFxQjtBQUNyQix3Q0FBNEM7QUFHNUMsNkRBQW9DO0FBQ3BDLHVEQUF3RDtBQUN4RCw4Q0FJd0I7QUFDeEIsOENBQTZDO0FBZ0I3QyxNQUFNLE9BQU8sR0FBRyxJQUFBLG1CQUFZLEVBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLDRDQUE0QztLQUNwRDtJQUNELEtBQUssQ0FBQyxJQUFJLENBRVIsS0FBbUI7SUFDbkIsa0VBQWtFO0lBQ2xFLGNBQXNCLEdBQUc7UUFFekIsTUFBTSxlQUFlLEdBQVcsSUFBQSxjQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxHQUFHLGVBQWUsRUFDeEIsTUFBTSxHQUFHLEtBQUssRUFDZCxPQUFPLEVBQ1AsZUFBZSxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQ3JDLGNBQWMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUNuQyxJQUFJLEdBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixJQUFJLGFBQWEsRUFDdEQsTUFBTSxFQUNOLElBQUksRUFDSixNQUFNLEdBQUcsRUFBRSxHQUNaLEdBQUcsS0FBSyxDQUFBO1FBQ1QsTUFBTSxjQUFjLEdBQVcsc0JBQVksQ0FBQyxNQUFnQixDQUFDLElBQUksTUFBTSxDQUFBO1FBQ3ZFLFdBQVcsR0FBRyxJQUFBLG1CQUFPLEVBQUMsV0FBVyxDQUFDLENBQUE7UUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcs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
@@ -1,31 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const ora_1 = __importDefault(require("ora"));
27
9
  const core_1 = require("@stricli/core");
10
+ const build_1 = __importDefault(require("../toolbox/build"));
28
11
  const devices_1 = require("../toolbox/prompt/devices");
12
+ const prompter_1 = require("../lib/prompter");
13
+ const renderer_1 = require("../lib/renderer");
29
14
  const command = (0, core_1.buildCommand)({
30
15
  docs: {
31
16
  brief: 'Remove build artifacts for project',
@@ -33,18 +18,21 @@ const command = (0, core_1.buildCommand)({
33
18
  async func(flags,
34
19
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
35
20
  projectPath = '.') {
36
- const { filesystem } = this;
37
- const { build } = await Promise.resolve().then(() => __importStar(require('../toolbox/build/index')));
38
21
  const currentPlatform = (0, node_os_1.type)().toLowerCase();
39
22
  const { device = currentPlatform, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, mode = process.env.NODE_ENV ?? 'development', output, config = [], } = flags;
40
23
  const targetPlatform = devices_1.DEVICE_ALIAS[device] ?? device;
41
- projectPath = filesystem.resolve(projectPath);
24
+ projectPath = (0, node_path_1.resolve)(projectPath);
42
25
  const parsedConfig = config.reduce((result, setting) => {
43
26
  const [key, value] = setting.split('=');
44
27
  result[key] = value;
45
28
  return result;
46
29
  }, {});
47
- await build({
30
+ // Determine interactive mode
31
+ const prompter = (0, prompter_1.isInteractive)()
32
+ ? (0, prompter_1.createInteractivePrompter)()
33
+ : (0, prompter_1.createNonInteractivePrompter)();
34
+ const spinner = (0, ora_1.default)();
35
+ for await (const event of (0, build_1.default)({
48
36
  listExamples,
49
37
  listDevices,
50
38
  example,
@@ -54,7 +42,9 @@ const command = (0, core_1.buildCommand)({
54
42
  deployStatus: 'clean',
55
43
  outputDir: output,
56
44
  config: parsedConfig,
57
- });
45
+ }, prompter)) {
46
+ (0, renderer_1.handleEvent)(event, spinner);
47
+ }
58
48
  },
59
49
  parameters: {
60
50
  positional: {
@@ -120,4 +110,4 @@ const command = (0, core_1.buildCommand)({
120
110
  },
121
111
  });
122
112
  exports.default = command;
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY2xlYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUE4QztBQUM5Qyx3Q0FBNEM7QUFHNUMsdURBQXdEO0FBY3hELE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0NBQW9DO0tBQzVDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyx3REFBYSx3QkFBd0IsR0FBQyxDQUFBO1FBQ3hELE1BQU0sZUFBZSxHQUFXLElBQUEsY0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLE9BQU8sRUFDUCxlQUFlLEVBQUUsWUFBWSxHQUFHLEtBQUssRUFDckMsY0FBYyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQ25DLElBQUksR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQWlCLElBQUksYUFBYSxFQUN0RCxNQUFNLEVBQ04sTUFBTSxHQUFHLEVBQUUsR0FDWixHQUFHLEtBQUssQ0FBQTtRQUNULE1BQU0sY0FBYyxHQUFXLHNCQUFZLENBQUMsTUFBZ0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtRQUN2RSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUNuQixPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sS0FBSyxDQUFDO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxPQUFPO1lBQ1AsY0FBYztZQUNkLFdBQVc7WUFDWCxJQUFJO1lBQ0osWUFBWSxFQUFFLE9BQU87WUFDckIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFO2dCQUNWO29CQUNFLFdBQVcsRUFBRSxhQUFhO29CQUMxQixLQUFLLEVBQUUsZ0RBQWdEO29CQUN2RCxLQUFLLEVBQUUsTUFBTTtvQkFDYixPQUFPLEVBQUUsR0FBRztvQkFDWixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGO1NBQ0Y7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUNILGlJQUFpSTtnQkFDbkksUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsd0ZBQXdGO2dCQUMxRixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxvREFBb0Q7Z0JBQzNELFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLDZEQUE2RDtnQkFDcEUsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO2dCQUNyQyxLQUFLLEVBQUUsd0RBQXdEO2dCQUMvRCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFDSCwrRkFBK0Y7Z0JBQ2pHLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLGlEQUFpRDtnQkFDeEQsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxFQUFFLFFBQVE7WUFDWCxDQUFDLEVBQUUsTUFBTTtZQUNULENBQUMsRUFBRSxRQUFRO1NBQ1o7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLGtCQUFlLE9BQU8sQ0FBQSJ9
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY2xlYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBOEM7QUFDOUMseUNBQW1DO0FBQ25DLDhDQUFxQjtBQUNyQix3Q0FBNEM7QUFHNUMsNkRBQW9DO0FBQ3BDLHVEQUF3RDtBQUN4RCw4Q0FJd0I7QUFDeEIsOENBQTZDO0FBYzdDLE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0NBQW9DO0tBQzVDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLGVBQWUsR0FBVyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixPQUFPLEVBQ1AsZUFBZSxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQ3JDLGNBQWMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUNuQyxJQUFJLEdBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixJQUFJLGFBQWEsRUFDdEQsTUFBTSxFQUNOLE1BQU0sR0FBRyxFQUFFLEdBQ1osR0FBRyxLQUFLLENBQUE7UUFDVCxNQUFNLGNBQWMsR0FBVyxzQkFBWSxDQUFDLE1BQWdCLENBQUMsSUFBSSxNQUFNLENBQUE7UUFDdkUsV0FBVyxHQUFHLElBQUEsbUJBQU8sRUFBQyxXQUFXLENBQUMsQ0FBQTtRQUNsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDdkMsTUFBTSxDQUFDLEdBQUcs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
@@ -1,31 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const ora_1 = __importDefault(require("ora"));
27
9
  const core_1 = require("@stricli/core");
10
+ const build_1 = __importDefault(require("../toolbox/build"));
28
11
  const devices_1 = require("../toolbox/prompt/devices");
12
+ const prompter_1 = require("../lib/prompter");
13
+ const renderer_1 = require("../lib/renderer");
29
14
  const command = (0, core_1.buildCommand)({
30
15
  docs: {
31
16
  brief: 'Connect to running debugging session on target device or simulator',
@@ -33,13 +18,16 @@ const command = (0, core_1.buildCommand)({
33
18
  async func(flags,
34
19
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
35
20
  projectPath = '.') {
36
- const { filesystem } = this;
37
21
  const currentPlatform = (0, node_os_1.type)().toLowerCase();
38
22
  const { device = currentPlatform, port, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, log = false, mode = process.env.NODE_ENV ?? 'development', output, } = flags;
39
- const { build } = await Promise.resolve().then(() => __importStar(require('../toolbox/build/index')));
40
23
  const targetPlatform = devices_1.DEVICE_ALIAS[device] ?? device;
41
- projectPath = filesystem.resolve(projectPath);
42
- await build({
24
+ projectPath = (0, node_path_1.resolve)(projectPath);
25
+ // Determine interactive mode
26
+ const prompter = (0, prompter_1.isInteractive)()
27
+ ? (0, prompter_1.createInteractivePrompter)()
28
+ : (0, prompter_1.createNonInteractivePrompter)();
29
+ const spinner = (0, ora_1.default)();
30
+ for await (const event of (0, build_1.default)({
43
31
  port,
44
32
  listExamples,
45
33
  listDevices,
@@ -50,7 +38,9 @@ const command = (0, core_1.buildCommand)({
50
38
  mode,
51
39
  deployStatus: 'debug',
52
40
  outputDir: output,
53
- });
41
+ }, prompter)) {
42
+ (0, renderer_1.handleEvent)(event, spinner);
43
+ }
54
44
  },
55
45
  parameters: {
56
46
  positional: {
@@ -109,4 +99,4 @@ const command = (0, core_1.buildCommand)({
109
99
  },
110
100
  });
111
101
  exports.default = command;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUE4QztBQUM5Qyx3Q0FBNEM7QUFHNUMsdURBQXdEO0FBZXhELE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0VBQW9FO0tBQzVFO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLE1BQU0sZUFBZSxHQUFXLElBQUEsY0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLElBQUksRUFDSixPQUFPLEVBQ1AsZUFBZSxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQ3JDLGNBQWMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUNuQyxHQUFHLEdBQUcsS0FBSyxFQUNYLElBQUksR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQWlCLElBQUksYUFBYSxFQUN0RCxNQUFNLEdBQ1AsR0FBRyxLQUFLLENBQUE7UUFDVCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsd0RBQWEsd0JBQXdCLEdBQUMsQ0FBQTtRQUN4RCxNQUFNLGNBQWMsR0FBVyxzQkFBWSxDQUFDLE1BQWdCLENBQUMsSUFBSSxNQUFNLENBQUE7UUFDdkUsV0FBVyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFN0MsTUFBTSxLQUFLLENBQUM7WUFDVixJQUFJO1lBQ0osWUFBWTtZQUNaLFdBQVc7WUFDWCxHQUFHO1lBQ0gsT0FBTztZQUNQLGNBQWM7WUFDZCxXQUFXO1lBQ1gsSUFBSTtZQUNKLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxNQUFNO1NBQ2xCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxVQUFVLEVBQUU7UUFDVixVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsT0FBTztZQUNiLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxXQUFXLEVBQUUsYUFBYTtvQkFDMUIsS0FBSyxFQUFFLGdEQUFnRDtvQkFDdkQsS0FBSyxFQUFFLE1BQU07b0JBQ2IsT0FBTyxFQUFFLEdBQUc7b0JBQ1osUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFDSCxpSUFBaUk7Z0JBQ25JLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUNILHdGQUF3RjtnQkFDMUYsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsb0RBQW9EO2dCQUMzRCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSw2REFBNkQ7Z0JBQ3BFLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztnQkFDckMsS0FBSyxFQUFFLHdEQUF3RDtnQkFDL0QsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsK0ZBQStGO2dCQUNqRyxRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLEVBQUUsUUFBUTtZQUNYLENBQUMsRUFBRSxNQUFNO1lBQ1QsQ0FBQyxFQUFFLFFBQVE7U0FDWjtLQUNGO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsT0FBTyxDQUFBIn0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBOEM7QUFDOUMseUNBQW1DO0FBQ25DLDhDQUFxQjtBQUNyQix3Q0FBNEM7QUFHNUMsNkRBQW9DO0FBQ3BDLHVEQUF3RDtBQUN4RCw4Q0FJd0I7QUFDeEIsOENBQTZDO0FBZTdDLE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0VBQW9FO0tBQzVFO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLGVBQWUsR0FBVyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixJQUFJLEVBQ0osT0FBTyxFQUNQLGVBQWUsRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUNyQyxjQUFjLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFDbkMsR0FBRyxHQUFHLEtBQUssRUFDWCxJQUFJLEdBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixJQUFJLGFBQWEsRUFDdEQsTUFBTSxHQUNQLEdBQUcsS0FBSyxDQUFBO1FBQ1QsTUFBTSxjQUFjLEdBQVcsc0JBQVksQ0FBQyxNQUFnQixDQUFDLElBQUksTUFBTSxDQUFBO1FBQ3ZFLFdBQVcsR0FBRyxJQUFBLG1CQUFPLEVBQUMsV0FBVyxDQUFDLENBQUE7UUFFbEMsNkJBQTZCO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUEsd0JBQWEsR0FBRTtZQUM5QixDQUFDLENBQUMsSUFBQSxvQ0FBeUIsR0FBRTtZQUM3QixDQUFDLENBQUMsSUFBQSx1Q0FBNEIsR0FBRSxDQUFBO1FBRWxDLE1BQU0sT0FBTyxHQUFHLElBQUEsYUFBRyxHQUFFLENBQUE7UUFFckIsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksSUFBQSxlQUFLLEVBQzdCO1lBQ0UsSUFBSTtZQUNKLFlBQVk7WUFDWixXQUFXO1lBQ1gsR0FBRztZQUNILE9BQU87WUFDUCxjQUFjO1lBQ2QsV0FBVztZQUNYLElBQUk7WUFDSixZQUFZLEVBQUUsT0FBTztZQUNyQixTQUFTLEVBQUUsTUFBTTtTQUNsQixFQUNELFFBQVEsQ0FDVCxFQUFFLENBQUM7WUFDRixJQUFBLHNCQUFXLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE9BQU87WUFDYixVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsV0FBVyxFQUFFLGFBQWE7b0JBQzFCLEtBQUssRUFBRSxnREFBZ0Q7b0JBQ3ZELEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxHQUFHO29CQUNaLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7U0FDRjtRQUNELEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsaUlBQWlJO2dCQUNuSSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFDSCx3RkFBd0Y7Z0JBQzFGLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLG9EQUFvRDtnQkFDM0QsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELGNBQWMsRUFBRTtnQkFDZCxJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsNkRBQTZEO2dCQUNwRSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7Z0JBQ3JDLEtBQUssRUFBRSx3REFBd0Q7Z0JBQy9ELFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUNILCtGQUErRjtnQkFDakcsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxFQUFFLFFBQVE7WUFDWCxDQUFDLEVBQUUsTUFBTTtZQUNULENBQUMsRUFBRSxRQUFRO1NBQ1o7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLGtCQUFlLE9BQU8sQ0FBQSJ9
@@ -1,49 +1,36 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const ora_1 = __importDefault(require("ora"));
27
9
  const core_1 = require("@stricli/core");
10
+ const build_1 = __importDefault(require("../toolbox/build"));
28
11
  const devices_1 = require("../toolbox/prompt/devices");
12
+ const prompter_1 = require("../lib/prompter");
13
+ const renderer_1 = require("../lib/renderer");
29
14
  const command = (0, core_1.buildCommand)({
30
15
  docs: {
31
16
  brief: 'Build and launch project on target device or simulator',
32
17
  },
33
18
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
34
19
  async func(flags, projectPath = '.') {
35
- const { filesystem } = this;
36
- const { build } = await Promise.resolve().then(() => __importStar(require('../toolbox/build/index')));
37
20
  const currentPlatform = (0, node_os_1.type)().toLowerCase();
38
21
  const { device = currentPlatform, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, log = false, mode = process.env.NODE_ENV ?? 'development', output, port, config = [], } = flags;
39
22
  const targetPlatform = devices_1.DEVICE_ALIAS[device] ?? device;
40
- projectPath = filesystem.resolve(projectPath);
23
+ projectPath = (0, node_path_1.resolve)(projectPath);
41
24
  const parsedConfig = config.reduce((result, setting) => {
42
25
  const [key, value] = setting.split('=');
43
26
  result[key] = value;
44
27
  return result;
45
28
  }, {});
46
- await build({
29
+ const prompter = (0, prompter_1.isInteractive)()
30
+ ? (0, prompter_1.createInteractivePrompter)()
31
+ : (0, prompter_1.createNonInteractivePrompter)();
32
+ const spinner = (0, ora_1.default)();
33
+ for await (const event of (0, build_1.default)({
47
34
  listExamples,
48
35
  listDevices,
49
36
  log,
@@ -55,7 +42,9 @@ const command = (0, core_1.buildCommand)({
55
42
  deployStatus: 'run',
56
43
  outputDir: output,
57
44
  config: parsedConfig,
58
- });
45
+ }, prompter)) {
46
+ (0, renderer_1.handleEvent)(event, spinner);
47
+ }
59
48
  },
60
49
  parameters: {
61
50
  positional: {
@@ -132,4 +121,4 @@ const command = (0, core_1.buildCommand)({
132
121
  },
133
122
  });
134
123
  exports.default = command;
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQThDO0FBQzlDLHdDQUE0QztBQUc1Qyx1REFBd0Q7QUFnQnhELE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsd0RBQXdEO0tBQ2hFO0lBQ0Qsa0VBQWtFO0lBQ2xFLEtBQUssQ0FBQyxJQUFJLENBQXFCLEtBQWlCLEVBQUUsY0FBc0IsR0FBRztRQUN6RSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyx3REFBYSx3QkFBd0IsR0FBQyxDQUFBO1FBQ3hELE1BQU0sZUFBZSxHQUFXLElBQUEsY0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLE9BQU8sRUFDUCxlQUFlLEVBQUUsWUFBWSxHQUFHLEtBQUssRUFDckMsY0FBYyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQ25DLEdBQUcsR0FBRyxLQUFLLEVBQ1gsSUFBSSxHQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBaUIsSUFBSSxhQUFhLEVBQ3RELE1BQU0sRUFDTixJQUFJLEVBQ0osTUFBTSxHQUFHLEVBQUUsR0FDWixHQUFHLEtBQUssQ0FBQTtRQUNULE1BQU0sY0FBYyxHQUFXLHNCQUFZLENBQUMsTUFBZ0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtRQUN2RSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUNuQixPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sS0FBSyxDQUFDO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxHQUFHO1lBQ0gsT0FBTztZQUNQLGNBQWM7WUFDZCxJQUFJO1lBQ0osV0FBVztZQUNYLElBQUk7WUFDSixZQUFZLEVBQUUsS0FBSztZQUNuQixTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE9BQU87WUFDYixVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsV0FBVyxFQUFFLGFBQWE7b0JBQzFCLEtBQUssRUFBRSxnREFBZ0Q7b0JBQ3ZELEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxHQUFHO29CQUNaLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7U0FDRjtRQUNELEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsaUlBQWlJO2dCQUNuSSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFDSCx3RkFBd0Y7Z0JBQzFGLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLG9EQUFvRDtnQkFDM0QsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELGNBQWMsRUFBRTtnQkFDZCxJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsNkRBQTZEO2dCQUNwRSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSx5Q0FBeUM7Z0JBQ2hELFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztnQkFDckMsS0FBSyxFQUFFLHdEQUF3RDtnQkFDL0QsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsK0ZBQStGO2dCQUNqRyxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSwrQ0FBK0M7Z0JBQ3RELFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLGlEQUFpRDtnQkFDeEQsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxFQUFFLFFBQVE7WUFDWCxDQUFDLEVBQUUsTUFBTTtZQUNULENBQUMsRUFBRSxRQUFRO1NBQ1o7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLGtCQUFlLE9BQU8sQ0FBQSJ9
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUE4QztBQUM5Qyx5Q0FBbUM7QUFDbkMsOENBQXFCO0FBQ3JCLHdDQUE0QztBQUc1Qyw2REFBb0M7QUFDcEMsdURBQXdEO0FBQ3hELDhDQUl3QjtBQUN4Qiw4Q0FBNkM7QUFnQjdDLE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVksRUFBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsd0RBQXdEO0tBQ2hFO0lBQ0Qsa0VBQWtFO0lBQ2xFLEtBQUssQ0FBQyxJQUFJLENBQXFCLEtBQWlCLEVBQUUsY0FBc0IsR0FBRztRQUN6RSxNQUFNLGVBQWUsR0FBVyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixPQUFPLEVBQ1AsZUFBZSxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQ3JDLGNBQWMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUNuQyxHQUFHLEdBQUcsS0FBSyxFQUNYLElBQUksR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQWlCLElBQUksYUFBYSxFQUN0RCxNQUFNLEVBQ04sSUFBSSxFQUNKLE1BQU0sR0FBRyxFQUFFLEdBQ1osR0FBRyxLQUFLLENBQUE7UUFDVCxNQUFNLGNBQWMsR0FBVyxzQkFBWSxDQUFDLE1BQWdCLENBQUMsSUFBSSxNQUFNLENBQUE7UUFDdkUsV0FBVyxHQUFHLElBQUEsbUJBQU8sRUFBQyxXQUFXLENBQUMsQ0FBQTtRQUNsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.build = build;
7
- const node_child_process_1 = require("node:child_process");
6
+ exports.default = build;
8
7
  const node_os_1 = require("node:os");
9
- const serve_handler_1 = __importDefault(require("serve-handler"));
10
8
  const http_1 = require("http");
11
- const gluegun_1 = require("gluegun");
9
+ const promises_1 = require("node:fs/promises");
10
+ const node_path_1 = require("node:path");
11
+ const serve_handler_1 = __importDefault(require("serve-handler"));
12
+ const execa_js_1 = require("../system/execa.js");
12
13
  const choices_1 = require("../prompt/choices");
13
14
  const moddable_1 = require("../setup/moddable");
14
15
  const devices_1 = require("../prompt/devices");
@@ -20,160 +21,237 @@ const DEPLOY_TARGET = Object.freeze({
20
21
  push: 'build',
21
22
  run: 'all',
22
23
  });
23
- async function build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }) {
24
+ async function* inspectTree(dirPath) {
25
+ try {
26
+ const entries = await (0, promises_1.readdir)(dirPath, { withFileTypes: true });
27
+ const results = await Promise.all(entries.map(async (entry) => {
28
+ const stats = await (0, promises_1.stat)((0, node_path_1.resolve)(dirPath, entry.name));
29
+ const childNodes = [];
30
+ if (stats.isDirectory()) {
31
+ for await (const children of inspectTree((0, node_path_1.resolve)(dirPath, entry.name))) {
32
+ childNodes.push(...children);
33
+ }
34
+ }
35
+ const nodeType = stats.isDirectory()
36
+ ? 'dir'
37
+ : stats.isSymbolicLink()
38
+ ? 'symlink'
39
+ : 'file';
40
+ return {
41
+ name: entry.name,
42
+ type: nodeType,
43
+ children: childNodes,
44
+ };
45
+ }));
46
+ yield results.flat();
47
+ }
48
+ catch {
49
+ yield [];
50
+ }
51
+ }
52
+ async function* build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }, prompter) {
24
53
  const OS = (0, node_os_1.type)().toLowerCase();
25
54
  await (0, exec_1.sourceEnvironment)();
26
55
  if (!(0, moddable_1.moddableExists)()) {
27
- gluegun_1.print.error(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
28
- process.exit(1);
56
+ yield {
57
+ type: 'step:fail',
58
+ message: `Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`,
59
+ };
60
+ return;
29
61
  }
30
- outputDir ??= gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'build');
62
+ outputDir ??= (0, node_path_1.resolve)(String(process.env.MODDABLE), 'build');
31
63
  if (listDevices) {
32
- const deviceTargetsPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'build', 'devices');
33
- const simulatorsPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'build', 'simulators');
34
- const devices = gluegun_1.filesystem.inspectTree(deviceTargetsPath)?.children ?? [];
35
- const deviceTargets = devices.flatMap((dev) => {
36
- const targets = dev.children
37
- .filter((c) => c.name === 'targets')
38
- .flatMap((c) => c.children.flatMap((dir) => (0, choices_1.collectChoicesFromTree)(dir, [], `${dev.name}/`)));
39
- return [dev.name].concat(targets);
40
- });
41
- const simulators = gluegun_1.filesystem
42
- .inspectTree(simulatorsPath)
43
- ?.children?.flatMap((sim) => (0, choices_1.collectChoicesFromTree)(sim, [], `simulator/`)) ?? [];
44
- const choices = deviceTargets.concat(simulators, 'wasm', devices_1.DEVICE_ALIAS[OS]);
45
- const { device: selectedDevice } = await gluegun_1.prompt.ask([
46
- {
47
- type: 'autocomplete',
48
- name: 'device',
49
- message: 'Here are the available target devices:',
50
- choices,
51
- },
52
- ]);
64
+ const deviceTargetsPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'build', 'devices');
65
+ const simulatorsPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'build', 'simulators');
66
+ let deviceTargets = [];
67
+ for await (const devices of inspectTree(deviceTargetsPath)) {
68
+ deviceTargets = devices.flatMap((dev) => {
69
+ const targets = dev.children
70
+ .filter((c) => c.name === 'targets')
71
+ .flatMap((c) => c.children.flatMap((dir) => {
72
+ return (0, choices_1.collectChoicesFromTree)(dir, [], `${dev.name}/`);
73
+ }));
74
+ return [dev.name].concat(targets);
75
+ });
76
+ }
77
+ let simulators = [];
78
+ for await (const simDirs of inspectTree(simulatorsPath)) {
79
+ simulators = simDirs.flatMap((sim) => (0, choices_1.collectChoicesFromTree)(sim, [], `simulator/`));
80
+ }
81
+ const choices = deviceTargets
82
+ .concat(simulators, 'wasm', devices_1.DEVICE_ALIAS[OS])
83
+ .map((c) => ({ label: c, value: c }));
84
+ const selectedDevice = await prompter.select('Here are the available target devices:', choices);
53
85
  if (selectedDevice !== '' && selectedDevice !== undefined) {
54
86
  targetPlatform = selectedDevice;
55
87
  }
56
88
  else {
57
- gluegun_1.print.warning('Please select a target device to run');
58
- process.exit(0);
89
+ yield { type: 'warning', message: 'Please select a target device to run' };
90
+ return;
59
91
  }
60
92
  }
61
93
  if (targetPlatform !== '') {
62
94
  const startsWithSimulator = targetPlatform.startsWith('simulator');
63
95
  if (targetPlatform.includes('esp32') && !startsWithSimulator) {
64
- if (typeof process.env.IDF_PATH !== 'string' ||
65
- gluegun_1.filesystem.exists(process.env.IDF_PATH) !== 'dir') {
66
- gluegun_1.print.error('The current environment does not appear to be set up for the ESP32 build target. Please run `xs-dev setup --device esp32` before trying again.');
67
- process.exit(1);
68
- }
69
- else {
70
- await (0, exec_1.sourceIdfPythonEnv)();
96
+ if (!(typeof process.env.IDF_PATH === 'string')) {
97
+ yield {
98
+ type: 'step:fail',
99
+ message: 'The current environment does not appear to be set up for the ESP32 build target. Please run `xs-dev setup --device esp32` before trying again.',
100
+ };
101
+ return;
71
102
  }
103
+ await (0, exec_1.sourceIdfPythonEnv)();
72
104
  }
73
105
  else if (targetPlatform.includes('esp') && !startsWithSimulator) {
74
- if (typeof process.env.ESP_BASE !== 'string' ||
75
- gluegun_1.filesystem.exists(process.env.ESP_BASE) !== 'dir') {
76
- gluegun_1.print.error('The current environment does not appear to be set up for the ESP8266 build target. Please run `xs-dev setup --device esp8266` before trying again.');
77
- process.exit(1);
106
+ if (!(typeof process.env.ESP_BASE === 'string')) {
107
+ yield {
108
+ type: 'step:fail',
109
+ message: 'The current environment does not appear to be set up for the ESP8266 build target. Please run `xs-dev setup --device esp8266` before trying again.',
110
+ };
111
+ return;
78
112
  }
79
113
  }
80
114
  if (targetPlatform.includes('wasm') && !startsWithSimulator) {
81
115
  if (!(process.env.PATH ?? '').includes('binaryen') ||
82
- gluegun_1.filesystem.exists(process.env.EMSDK ?? '') !== 'dir' ||
83
- gluegun_1.filesystem.exists(process.env.EMSDK_NODE ?? '') !== 'file' ||
84
- gluegun_1.filesystem.exists(process.env.EMSDK_PYTHON ?? '') !== 'file') {
85
- gluegun_1.print.error('The current environment does not appear to be set up for the wasm build target. Please run `xs-dev setup --device wasm` before trying again.');
86
- process.exit(1);
116
+ typeof process.env.EMSDK !== 'string' ||
117
+ typeof process.env.EMSDK_NODE !== 'string' ||
118
+ typeof process.env.EMSDK_PYTHON !== 'string') {
119
+ yield {
120
+ type: 'step:fail',
121
+ message: 'The current environment does not appear to be set up for the wasm build target. Please run `xs-dev setup --device wasm` before trying again.',
122
+ };
123
+ return;
87
124
  }
88
125
  }
89
126
  if (targetPlatform.includes('pico') && !startsWithSimulator) {
90
- if (typeof process.env.PICO_SDK_PATH !== 'string' ||
91
- gluegun_1.filesystem.exists(process.env.PICO_SDK_PATH) !== 'dir' ||
92
- gluegun_1.system.which('picotool') === null ||
93
- gluegun_1.filesystem.exists(process.env.PIOASM ?? '') !== 'file') {
94
- gluegun_1.print.error('The current environment does not appear to be set up for the pico build target. Please run `xs-dev setup --device pico` before trying again.');
95
- process.exit(1);
127
+ if (!(typeof process.env.PICO_SDK_PATH === 'string') ||
128
+ typeof process.env.PIOASM !== 'string') {
129
+ yield {
130
+ type: 'step:fail',
131
+ message: 'The current environment does not appear to be set up for the pico build target. Please run `xs-dev setup --device pico` before trying again.',
132
+ };
133
+ return;
96
134
  }
97
135
  }
98
136
  if (targetPlatform.includes('nrf52') && !startsWithSimulator) {
99
137
  if (typeof process.env.NRF_ROOT !== 'string' ||
100
- typeof process.env.NRF_SDK_DIR !== 'string' ||
101
- gluegun_1.filesystem.exists(process.env.NRF_ROOT) !== 'dir' ||
102
- gluegun_1.filesystem.exists(process.env.NRF_SDK_DIR) !== 'dir') {
103
- gluegun_1.print.error('The current environment does not appear to be set up for the nrf52 build target. Please run `xs-dev setup --device nrf52` before trying again.');
104
- process.exit(1);
138
+ typeof process.env.NRF_SDK_DIR !== 'string') {
139
+ yield {
140
+ type: 'step:fail',
141
+ message: 'The current environment does not appear to be set up for the nrf52 build target. Please run `xs-dev setup --device nrf52` before trying again.',
142
+ };
143
+ return;
105
144
  }
106
145
  }
107
146
  if (targetPlatform.includes('zephyr') && !startsWithSimulator) {
108
- if (typeof process.env.ZEPHYR_BASE !== 'string' ||
109
- gluegun_1.filesystem.exists(process.env.ZEPHYR_BASE) !== 'dir') {
110
- gluegun_1.print.error('The current environment does not appear to be set up for the zephyr build target. Please run `xs-dev setup --device zephyr` before trying again.');
111
- process.exit(1);
147
+ if (typeof process.env.ZEPHYR_BASE !== 'string') {
148
+ yield {
149
+ type: 'step:fail',
150
+ message: 'The current environment does not appear to be set up for the zephyr build target. Please run `xs-dev setup --device zephyr` before trying again.',
151
+ };
152
+ return;
112
153
  }
113
154
  }
114
155
  }
115
156
  if (listExamples) {
116
- const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples');
117
- const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed');
118
- const examples = gluegun_1.filesystem.inspectTree(exampleProjectPath)?.children;
119
- const contributed = gluegun_1.filesystem.inspectTree(contributedProjectPath)?.children;
120
- const choices = examples !== undefined
121
- ? examples.map((example) => (0, choices_1.collectChoicesFromTree)(example)).flat()
122
- : [];
123
- if (contributed !== undefined) {
124
- choices.push(...contributed.flatMap((project) => (0, choices_1.collectChoicesFromTree)(project)));
125
- }
126
- const { example: selectedExample } = await gluegun_1.prompt.ask([
127
- {
128
- type: 'autocomplete',
129
- name: 'example',
130
- message: 'Here are the available examples:',
131
- choices,
132
- },
133
- ]);
157
+ const exampleProjectPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'examples');
158
+ const contributedProjectPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'contributed');
159
+ const choicesList = [];
160
+ for await (const examples of inspectTree(exampleProjectPath)) {
161
+ choicesList.push(...examples.flatMap((example) => (0, choices_1.collectChoicesFromTree)(example)));
162
+ }
163
+ for await (const contributed of inspectTree(contributedProjectPath)) {
164
+ choicesList.push(...contributed.flatMap((project) => (0, choices_1.collectChoicesFromTree)(project)));
165
+ }
166
+ const choices = choicesList.map((c) => ({
167
+ label: c,
168
+ value: c,
169
+ }));
170
+ const selectedExample = await prompter.select('Here are the available examples:', choices);
134
171
  if (selectedExample !== '' && selectedExample !== undefined) {
135
- gluegun_1.print.info(`Running the example: xs-dev run --example ${selectedExample}`);
136
- projectPath = gluegun_1.filesystem.resolve(exampleProjectPath, selectedExample);
172
+ yield {
173
+ type: 'info',
174
+ message: `Running the example: xs-dev run --example ${selectedExample}`,
175
+ };
176
+ projectPath = (0, node_path_1.resolve)(exampleProjectPath, selectedExample);
137
177
  }
138
178
  else {
139
- gluegun_1.print.warning('Please select an example to run.');
140
- process.exit(0);
179
+ yield { type: 'warning', message: 'Please select an example to run.' };
180
+ return;
141
181
  }
142
182
  }
143
183
  if (example !== undefined) {
144
- const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples', example);
145
- const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed', example);
146
- if (gluegun_1.filesystem.exists(exampleProjectPath) === false &&
147
- gluegun_1.filesystem.exists(contributedProjectPath) === false) {
148
- gluegun_1.print.error('Example project does not exist.');
149
- gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
150
- process.exit(1);
151
- }
152
- if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(exampleProjectPath, 'manifest.json')) === false &&
153
- gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(contributedProjectPath, 'manifest.json')) === false) {
154
- gluegun_1.print.error('Example project must contain a manifest.json.');
155
- gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
156
- process.exit(1);
157
- }
158
- projectPath =
159
- gluegun_1.filesystem.exists(exampleProjectPath) === 'dir'
160
- ? exampleProjectPath
161
- : contributedProjectPath;
184
+ const exampleProjectPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'examples', example);
185
+ const contributedProjectPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'contributed', example);
186
+ let exampleExists = false;
187
+ let exampleHasManifest = false;
188
+ let isExampleDir = false;
189
+ try {
190
+ const exampleStat = await (0, promises_1.stat)(exampleProjectPath);
191
+ exampleExists = true;
192
+ isExampleDir = exampleStat.isDirectory();
193
+ const manifestPath = (0, node_path_1.resolve)(exampleProjectPath, 'manifest.json');
194
+ try {
195
+ const manifestStat = await (0, promises_1.stat)(manifestPath);
196
+ exampleHasManifest = manifestStat.isFile();
197
+ }
198
+ catch {
199
+ // manifest doesn't exist
200
+ }
201
+ }
202
+ catch {
203
+ // example path doesn't exist
204
+ }
205
+ if (!exampleExists) {
206
+ try {
207
+ await (0, promises_1.stat)(contributedProjectPath);
208
+ }
209
+ catch {
210
+ yield {
211
+ type: 'step:fail',
212
+ message: 'Example project does not exist.',
213
+ };
214
+ yield {
215
+ type: 'info',
216
+ message: 'Lookup the available examples: xs-dev run --list-examples',
217
+ };
218
+ return;
219
+ }
220
+ }
221
+ if (!exampleHasManifest) {
222
+ try {
223
+ const manifestPath = (0, node_path_1.resolve)(contributedProjectPath, 'manifest.json');
224
+ await (0, promises_1.stat)(manifestPath);
225
+ }
226
+ catch {
227
+ yield {
228
+ type: 'step:fail',
229
+ message: 'Example project must contain a manifest.json.',
230
+ };
231
+ yield {
232
+ type: 'info',
233
+ message: 'Lookup the available examples: xs-dev run --list-examples',
234
+ };
235
+ return;
236
+ }
237
+ }
238
+ projectPath = isExampleDir ? exampleProjectPath : contributedProjectPath;
162
239
  }
163
240
  if (port !== undefined) {
164
241
  process.env.UPLOAD_PORT = port;
165
242
  }
166
- const spinner = gluegun_1.print.spin();
243
+ let statusMessage = '';
167
244
  switch (deployStatus) {
168
245
  case 'clean':
169
- spinner.start(`Cleaning up build artifacts for project ${projectPath} on ${targetPlatform}\n`);
246
+ statusMessage = `Cleaning up build artifacts for project ${projectPath} on ${targetPlatform}`;
170
247
  break;
171
248
  case 'debug':
172
- spinner.start(`Connecting to running debug session for ${projectPath} on ${targetPlatform}\n`);
249
+ statusMessage = `Connecting to running debug session for ${projectPath} on ${targetPlatform}`;
173
250
  break;
174
251
  default:
175
- spinner.start(`Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}\n`);
252
+ statusMessage = `Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}`;
176
253
  }
254
+ yield { type: 'step:start', message: statusMessage };
177
255
  const configArgs = [
178
256
  '-m',
179
257
  `-p ${targetPlatform}`,
@@ -192,61 +270,62 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
192
270
  Object.entries(config).forEach(([element, value]) => {
193
271
  configArgs.push(`${element}="${value}"`);
194
272
  });
195
- const canUseMCPack = gluegun_1.system.which('mcpack') !== null &&
196
- gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(projectPath, 'package.json')) ===
197
- 'file';
273
+ let canUseMCPack = false;
274
+ if ((0, exec_1.which)('mcpack') !== null) {
275
+ try {
276
+ await (0, promises_1.stat)((0, node_path_1.resolve)(projectPath, 'package.json'));
277
+ canUseMCPack = true;
278
+ }
279
+ catch {
280
+ canUseMCPack = false;
281
+ }
282
+ }
198
283
  let rootCommand = 'mcconfig';
199
284
  if (canUseMCPack) {
200
285
  rootCommand = 'mcpack';
201
286
  configArgs.unshift('mcconfig');
202
287
  }
203
- if (log) {
204
- const logOutput = (0, node_child_process_1.spawn)(rootCommand, configArgs, {
288
+ try {
289
+ const command = `${rootCommand} ${configArgs.join(' ')}`;
290
+ await (0, execa_js_1.execaCommand)(command, {
205
291
  cwd: projectPath,
206
292
  stdio: 'inherit',
207
293
  shell: true,
208
294
  });
209
- logOutput.on('close', (exitCode) => {
210
- if (exitCode !== null) {
211
- process.exit(exitCode);
212
- }
213
- });
214
295
  }
215
- else {
216
- process.on('SIGINT', () => {
217
- void gluegun_1.system.exec(`pkill serial2xsbug`);
218
- });
296
+ catch (error) {
297
+ if (error instanceof Error && !error.message.includes('exit code 2')) {
298
+ yield { type: 'step:fail', message: String(error) };
299
+ return;
300
+ }
301
+ }
302
+ if (deployStatus === 'push') {
219
303
  try {
220
- await gluegun_1.system.exec(`${rootCommand} ${configArgs.join(' ')}`, {
304
+ const deployCommand = `mcconfig -t deploy -p ${targetPlatform} -o ${outputDir}`;
305
+ await (0, execa_js_1.execaCommand)(deployCommand, {
221
306
  cwd: projectPath,
222
307
  stdio: 'inherit',
223
308
  shell: true,
224
309
  });
225
310
  }
226
311
  catch (error) {
227
- if (error instanceof Error && !error.message.includes('exit code 2')) {
228
- gluegun_1.print.error(error);
312
+ if (error instanceof Error) {
313
+ yield { type: 'step:fail', message: String(error) };
314
+ return;
229
315
  }
230
316
  }
231
- if (deployStatus === 'push') {
232
- await gluegun_1.system.exec(`mcconfig -t deploy -p ${targetPlatform} -o ${outputDir}`, {
233
- cwd: projectPath,
234
- process,
235
- });
236
- }
237
317
  }
238
- spinner.stop();
318
+ yield { type: 'step:done', message: 'Build completed' };
239
319
  if (deployStatus !== 'none' && targetPlatform === 'wasm') {
240
320
  const buildName = String(projectPath.split('/').pop());
241
- const debugPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'build', 'bin', 'wasm', 'debug', buildName);
321
+ const debugPath = (0, node_path_1.resolve)(String(process.env.MODDABLE), 'build', 'bin', 'wasm', 'debug', buildName);
322
+ yield {
323
+ type: 'info',
324
+ message: 'Started server on port 8080, go to http://localhost:8080 in your browser to view the simulator',
325
+ };
242
326
  (0, http_1.createServer)((req, res) => {
243
327
  void (0, serve_handler_1.default)(req, res, { public: debugPath });
244
- }).listen(8080, () => {
245
- gluegun_1.print.info('Started server on port 8080, go to http://localhost:8080 in your browser to view the simulator');
246
- });
247
- }
248
- else if (!log) {
249
- process.exit(0);
328
+ }).listen(8080);
250
329
  }
251
330
  }
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW1DQSxzQkF3VkM7QUEzWEQsMkRBQTBDO0FBQzFDLHFDQUE4QztBQUM5QyxrRUFBbUM7QUFDbkMsK0JBQW1DO0FBQ25DLHFDQUEyRDtBQUMzRCwrQ0FBMEQ7QUFDMUQsZ0RBQWtEO0FBQ2xELCtDQUFnRDtBQUVoRCx5Q0FBc0U7QUFrQnRFLE1BQU0sYUFBYSxHQUEyQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzFFLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsR0FBRyxFQUFFLEtBQUs7Q0FDWCxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQzFCLFdBQVcsRUFDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLFlBQVksRUFDWixHQUFHLEdBQUcsS0FBSyxFQUNYLFdBQVcsRUFDWCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUFHLEVBQUUsR0FDRDtJQUNWLE1BQU0sRUFBRSxHQUFHLElBQUEsY0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7SUFFakQsTUFBTSxJQUFBLHdCQUFpQixHQUFFLENBQUE7SUFFekIsSUFBSSxDQUFDLElBQUEseUJBQWMsR0FBRSxFQUFFLENBQUM7UUFDdEIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxTQUFTLEtBQUssb0JBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFB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
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTRFQSx3QkF1WEM7QUFuY0QscUNBQThDO0FBQzlDLCtCQUFtQztBQUNuQywrQ0FBZ0Q7QUFDaEQseUNBQW1DO0FBQ25DLGtFQUFtQztBQUNuQyxpREFBaUQ7QUFDakQsK0NBQTBEO0FBQzFELGdEQUFrRDtBQUNsRCwrQ0FBZ0Q7QUFJaEQseUNBQTZFO0FBa0I3RSxNQUFNLGFBQWEsR0FBMkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRSxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLEdBQUcsRUFBRSxLQUFLO0NBQ1gsQ0FBQyxDQUFBO0FBUUYsS0FBSyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBZTtJQUN6QyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsa0JBQU8sRUFBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxlQUFJLEVBQUMsSUFBQSxtQkFBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUN0RCxNQUFNLFVBQVUsR0FBZSxFQUFFLENBQUE7WUFDakMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLElBQUksV0FBVyxDQUN0QyxJQUFBLG1CQUFPLEVBQUMsT0FB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
@@ -5,52 +5,57 @@ exports.moddableExists = moddableExists;
5
5
  exports.getModdableVersion = getModdableVersion;
6
6
  exports.fetchRelease = fetchRelease;
7
7
  exports.downloadReleaseTools = downloadReleaseTools;
8
- const os_1 = require("os");
9
- const stream_1 = require("stream");
10
- const util_1 = require("util");
11
- const gluegun_1 = require("gluegun");
8
+ const node_os_1 = require("node:os");
9
+ const node_stream_1 = require("node:stream");
10
+ const node_util_1 = require("node:util");
11
+ const node_fs_1 = require("node:fs");
12
+ const node_path_1 = require("node:path");
13
+ const execa_js_1 = require("../system/execa.js");
12
14
  const rest_1 = require("@octokit/rest");
13
15
  const unzip_stream_1 = require("unzip-stream");
14
16
  const constants_1 = require("./constants");
15
17
  const devices_1 = require("../prompt/devices");
16
- const errors_1 = require("../system/errors");
17
18
  const fetch_1 = require("../system/fetch");
18
- const finishedPromise = (0, util_1.promisify)(stream_1.finished);
19
+ const errors_1 = require("../system/errors");
20
+ const finishedPromise = (0, node_util_1.promisify)(node_stream_1.finished);
19
21
  function moddableExists() {
20
- const OS = (0, os_1.type)().toLowerCase();
21
- const platformDir = devices_1.DEVICE_ALIAS[OS].substr(0, 3);
22
- const releaseTools = gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', platformDir, 'release'));
23
- const debugTools = gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', platformDir, 'debug'));
22
+ const OS = (0, node_os_1.type)().toLowerCase();
23
+ const platformDir = devices_1.DEVICE_ALIAS[OS].substring(0, 3);
24
+ const releaseToolsPath = (0, node_path_1.resolve)(constants_1.INSTALL_PATH, 'build', 'bin', platformDir, 'release');
25
+ const debugToolsPath = (0, node_path_1.resolve)(constants_1.INSTALL_PATH, 'build', 'bin', platformDir, 'debug');
26
+ const releaseTools = (0, node_fs_1.existsSync)(releaseToolsPath);
27
+ const debugTools = (0, node_fs_1.existsSync)(debugToolsPath);
24
28
  return (process.env.MODDABLE !== undefined &&
25
- gluegun_1.filesystem.exists(process.env.MODDABLE) === 'dir' &&
26
- (releaseTools === 'dir' || debugTools === 'dir'));
29
+ (0, node_fs_1.existsSync)(process.env.MODDABLE) &&
30
+ (releaseTools || debugTools));
27
31
  }
28
32
  function isGitRepo(path) {
29
- return gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(path, '.git')) === 'dir';
33
+ return (0, node_fs_1.existsSync)((0, node_path_1.resolve)(path, '.git'));
30
34
  }
31
35
  async function getModdableVersion() {
32
36
  if (!moddableExists() || !isGitRepo(process.env.MODDABLE ?? '')) {
33
- return (0, errors_1.failure)('Moddable not available on this system.');
37
+ return (0, errors_1.failure)('Moddable SDK not found or not a git repository');
34
38
  }
35
39
  return await (0, errors_1.wrapAsync)(async () => {
36
- const tags = await gluegun_1.system.run('git tag -l --sort=-taggerdate', {
40
+ const tagsResult = await (0, execa_js_1.execaCommand)('git tag -l --sort=-taggerdate', {
37
41
  cwd: process.env.MODDABLE,
38
42
  });
39
- const tag = tags.split('\n').shift();
40
- const latestCommit = await gluegun_1.system.run(`git rev-parse HEAD`, {
43
+ const tag = String(tagsResult.stdout).split('\n').shift();
44
+ const latestCommitResult = await (0, execa_js_1.execaCommand)('git rev-parse HEAD', {
41
45
  cwd: process.env.MODDABLE,
42
46
  });
47
+ const latestCommit = String(latestCommitResult.stdout);
43
48
  if (tag !== undefined && tag.length > 0) {
44
- const tagCommit = await gluegun_1.system.run(`git rev-list -n 1 ${tag}`, {
49
+ const tagCommitResult = await (0, execa_js_1.execaCommand)(`git rev-list -n 1 ${tag}`, {
45
50
  cwd: process.env.MODDABLE,
46
51
  });
47
- if (tagCommit === latestCommit)
52
+ if (String(tagCommitResult.stdout) === latestCommit)
48
53
  return tag;
49
54
  }
50
- const currentBranch = await gluegun_1.system.run(`git branch --show-current`, {
55
+ const currentBranchResult = await (0, execa_js_1.execaCommand)('git branch --show-current', {
51
56
  cwd: process.env.MODDABLE,
52
57
  });
53
- return `branch: ${currentBranch.trim()}, commit: ${latestCommit}`;
58
+ return `branch: ${String(currentBranchResult.stdout).trim()}, commit: ${String(latestCommit)}`;
54
59
  });
55
60
  }
56
61
  async function fetchRelease(release) {
@@ -82,15 +87,13 @@ exports.MissingReleaseAssetError = MissingReleaseAssetError;
82
87
  async function downloadReleaseTools({ writePath, assetName, release, }) {
83
88
  const moddableTools = release.assets.find(({ name }) => name === assetName);
84
89
  if (moddableTools === undefined) {
85
- return (0, errors_1.failure)(`Unable to find release asset matching ${assetName}`);
90
+ throw new MissingReleaseAssetError(assetName);
86
91
  }
87
- return await (0, errors_1.wrapAsync)(async () => {
88
- const zipWriter = (0, unzip_stream_1.Extract)({
89
- path: writePath,
90
- });
91
- const download = await (0, fetch_1.fetchStream)(moddableTools.browser_download_url);
92
- download.pipe(zipWriter);
93
- await finishedPromise(zipWriter);
92
+ const zipWriter = (0, unzip_stream_1.Extract)({
93
+ path: writePath,
94
94
  });
95
+ const download = await (0, fetch_1.fetchStream)(moddableTools.browser_download_url);
96
+ download.pipe(zipWriter);
97
+ await finishedPromise(zipWriter);
95
98
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQSx3Q0FjQztBQU1ELGdEQTBCQztBQVFELG9DQXNCQztBQWNELG9EQW1CQztBQTNIRCwyQkFBeUM7QUFDekMsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxxQ0FBNEM7QUFDNUMsd0NBQXFFO0FBQ3JFLCtDQUFvRDtBQUNwRCwyQ0FBMEM7QUFFMUMsK0NBQWdEO0FBQ2hELDZDQUFxRDtBQUNyRCwyQ0FBNkM7QUFFN0MsTUFBTSxlQUFlLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGlCQUFRLENBQUMsQ0FBQTtBQUUzQyxTQUFnQixjQUFjO0lBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7SUFDakQsTUFBTSxXQUFXLEdBQUcsc0JBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sWUFBWSxHQUFHLG9CQUFVLENBQUMsTUFBTSxDQUNwQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN6RSxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxNQUFNLENBQ2xDLG9CQUFVLENBQUMsT0FBTyxDQUFDLHdCQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQ3ZFLENBQUE7SUFDRCxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztRQUNsQyxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7UUFDakQsQ0FBQyxZQUFZ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
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQkEsd0NBMEJDO0FBTUQsZ0RBK0JDO0FBUUQsb0NBc0JDO0FBY0Qsb0RBaUJDO0FBNUlELHFDQUE4QztBQUM5Qyw2Q0FBc0M7QUFDdEMseUNBQXFDO0FBQ3JDLHFDQUFvQztBQUNwQyx5Q0FBbUM7QUFDbkMsaURBQWlEO0FBQ2pELHdDQUFxRTtBQUNyRSwrQ0FBb0Q7QUFDcEQsMkNBQTBDO0FBRTFDLCtDQUFnRDtBQUNoRCwyQ0FBNkM7QUFDN0MsNkNBQXFEO0FBRXJELE1BQU0sZUFBZSxHQUFHLElBQUEscUJBQVMsRUFBQyxzQkFBUSxDQUFDLENBQUE7QUFFM0MsU0FBZ0IsY0FBYztJQUM1QixNQUFNLEVBQUUsR0FBRyxJQUFBLGNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLHNCQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNwRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsbUJBQU8sRUFDOUIsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLENBQ1YsQ0FBQTtJQUNELE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU8sRUFDNUIsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLFdBQVcsRUFDWCxPQUFPLENBQ1IsQ0FBQTtJQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsb0JBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUEsb0JBQVUsRUFBQyxjQUFjLENBQUMsQ0FBQTtJQUU3QyxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztRQUNsQyxJQUFB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
@@ -1,3 +1,5 @@
1
+ import type { OperationEvent } from '../../lib/events';
2
+ import type { Prompter } from '../../lib/prompter';
1
3
  export type DeployStatus = 'none' | 'run' | 'push' | 'clean' | 'debug';
2
4
  export interface BuildArgs {
3
5
  port?: string;
@@ -12,4 +14,4 @@ export interface BuildArgs {
12
14
  outputDir?: string;
13
15
  config?: Record<string, string>;
14
16
  }
15
- export declare function build({ listDevices, port, example, listExamples, log, projectPath, targetPlatform, mode, deployStatus, outputDir, config, }: BuildArgs): Promise<void>;
17
+ export default function build({ listDevices, port, example, listExamples, log, projectPath, targetPlatform, mode, deployStatus, outputDir, config, }: BuildArgs, prompter: Prompter): AsyncGenerator<OperationEvent>;
@@ -13,5 +13,5 @@ interface DownloadToolsArgs {
13
13
  assetName: string;
14
14
  release: GitHubRelease;
15
15
  }
16
- export declare function downloadReleaseTools({ writePath, assetName, release, }: DownloadToolsArgs): Promise<Result<void>>;
16
+ export declare function downloadReleaseTools({ writePath, assetName, release, }: DownloadToolsArgs): Promise<void>;
17
17
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "types": "build/types/types.d.ts",
6
6
  "packageManager": "pnpm@10.29.2",