xs-dev 1.8.0 → 1.8.1--canary.1b1fce4.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.8.0",
3
+ "version": "1.8.1--canary.1b1fce4.0",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "type": "module",
6
6
  "types": "build/types/types.d.ts",
@@ -60,6 +60,7 @@
60
60
  "serialport": "^13.0.0",
61
61
  "serve-handler": "^6.1.3",
62
62
  "simple-plist": "1.4.0-0",
63
+ "streaming-iterables": "^8.0.1",
63
64
  "tar-fs": "^3.1.2",
64
65
  "unzip-stream": "^0.3.1",
65
66
  "usb": "^2.2.0",
@@ -87,10 +87,7 @@ const command = buildCommand({
87
87
  }
88
88
  }
89
89
  else {
90
- handleEvent({
91
- type: 'step:fail',
92
- message: `No toolchain registered for device: ${target}`,
93
- }, spinner);
90
+ output.error(`No toolchain registered for device: ${target}`);
94
91
  }
95
92
  }
96
93
  },
@@ -140,4 +137,4 @@ const command = buildCommand({
140
137
  },
141
138
  });
142
139
  export default command;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsT0FBTyxhQUFhLE1BQU0sOEJBQThCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTNELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxrQkFBa0IsQ0FDekIsT0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBOEI7SUFFOUIsTUFBTSxNQUFNLEdBQ1YsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUE7SUFDOUUsT0FBTyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3RFLENBQUM7QUFZRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLGtFQUFrRTtLQUMxRTtJQUNELEtBQUssQ0FBQyxJQUFJLENBQXFCLEtBQW1CO1FBQ2hELE1BQU0sZUFBZSxHQUFXLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEVBQ04sY0FBYyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQ25DLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxHQUFHLFFBQVEsRUFDbEIsYUFBYSxFQUFFLFVBQVUsRUFDekIsV0FBVyxHQUFHLElBQUksR0FDbkIsR0FBRyxLQUFLLENBQUE7UUFFVCxpREFBaUQ7UUFDakQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUN6QyxDQUFDLENBQUMseUJBQXlCLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLDRCQUE0QixFQUFFLENBQUE7UUFFbEMsSUFBSSxNQUFNLEdBQ1IsWUFBWSxDQUFDLE1BQU0sSUFBSyxFQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFekUsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVM7Z0JBQ1QsT0FBTztnQkFDUCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2dCQUNSLFlBQVksQ0FBQyxlQUFlLENBQUM7YUFDOUIsQ0FBQTtZQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FDMUMsd0NBQXdDLEVBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzdDLENBQUE7WUFFRCxJQUFJLGNBQWMsS0FBSyxFQUFFLElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMxRCxNQUFNLEdBQUcsY0FBd0IsQ0FBQTtZQUNuQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO2dCQUNuRCxPQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNqQixDQUFDO1lBQ0QsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFBO2dCQUNyQixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxhQUFhLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3RELFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBYTtZQUNoQyxLQUFLO1lBQ0wsUUFBUTtZQUNSLFlBQVk7WUFDWixTQUFTO1lBQ1QsS0FBSztZQUNMLEtBQUs7WUFDTCxPQUFPO1NBQ1IsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBRXJCLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMxQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO2dCQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2pCLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQy9ELE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtZQUM1QyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzdCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN0QyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxHQUFHLEdBQUcsY0FBYyxFQUFFLENBQUE7Z0JBQzVCLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzNELFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sV0FBVyxDQUNUO29CQUNFLElBQUksRUFBRSxXQUFXO29CQUNqQixPQUFPLEVBQUUsdUNBQXVDLE1BQU0sRUFBRTtpQkFDekQsRUFDRCxPQUFPLENBQ1IsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQTBCO2dCQUMxRCxLQUFLLEVBQ0gsZ0lBQWdJO2dCQUNsSSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFDSCwrRUFBK0U7Z0JBQ2pGLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUNwQixLQUFLLEVBQUUsZ0VBQWdFO2dCQUN2RSxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxnRUFBZ0U7Z0JBQ3ZFLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUNILG9GQUFvRjtnQkFDdEYsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsa0dBQWtHO2dCQUNwRyxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFDSCwySEFBMkg7Z0JBQzdILFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsZUFBZSxPQUFPLENBQUEifQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsT0FBTyxhQUFhLE1BQU0sOEJBQThCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTNELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxrQkFBa0IsQ0FDekIsT0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBOEI7SUFFOUIsTUFBTSxNQUFNLEdBQ1YsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUE7SUFDOUUsT0FBTyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3RFLENBQUM7QUFZRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLGtFQUFrRTtLQUMxRTtJQUNELEtBQUss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
@@ -8,6 +8,7 @@ import { getHostContext } from '../toolbox/toolchains/context.js';
8
8
  import { createNonInteractivePrompter } from '../lib/prompter.js';
9
9
  import { handleEvent } from '../lib/renderer.js';
10
10
  import { EXPORTS_FILE_PATH, INSTALL_DIR, getProfilePath, } from '../toolbox/setup/constants.js';
11
+ import { parallelMerge } from 'streaming-iterables';
11
12
  const command = buildCommand({
12
13
  docs: {
13
14
  brief: 'Remove all installed git repos and toolchains, unset environment changes',
@@ -17,12 +18,10 @@ const command = buildCommand({
17
18
  const ctx = getHostContext();
18
19
  const prompter = createNonInteractivePrompter();
19
20
  spinner.start('Tearing down platform dependencies');
20
- for (const toolchain of Object.values(toolchains)) {
21
- if (toolchain.platforms.includes(ctx.platform)) {
22
- for await (const event of toolchain.teardown(ctx, prompter)) {
23
- handleEvent(event, spinner);
24
- }
25
- }
21
+ const removableToolchains = Object.values(toolchains).filter((toolchain) => toolchain.platforms.includes(ctx.platform));
22
+ const tasks = removableToolchains.map((toolchain) => toolchain.teardown(ctx, prompter));
23
+ for await (const event of parallelMerge(...tasks)) {
24
+ handleEvent(event, spinner);
26
25
  }
27
26
  // Non-toolchain cleanup: fontbm, exports file, shell profile
28
27
  const remove = (path) => {
@@ -46,4 +45,4 @@ const command = buildCommand({
46
45
  },
47
46
  });
48
47
  export default command;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQTtBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLCtCQUErQixDQUFBO0FBRXRDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQ0gsMEVBQTBFO0tBQzdFO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixNQUFNLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtRQUM1QixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxDQUFBO1FBRS9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUVuRCxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUM1RCxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCw2REFBNkQ7UUFDN0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUE7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO1FBQ3BDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLFFBQVE7aUJBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ1gsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxpQkFBaUIsRUFBRSxDQUFDO2lCQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDYixNQUFNLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQTtBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLCtCQUErQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUNILDBFQUEwRTtLQUM3RTtJQUNELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUE7UUFDckIsTUFBTSxHQUFHLEdBQUcsY0FBYyxFQUFFLENBQUE7UUFDNUIsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQTtRQUUvQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7UUFFbkQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ3pFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FDM0MsQ0FBQTtRQUNELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ2xELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUNsQyxDQUFBO1FBQ0QsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLENBQUM7UUFFRCw2REFBNkQ7UUFDN0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUE7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO1FBQ3BDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLFFBQVE7aUJBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ1gsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxpQkFBaUIsRUFBRSxDQUFDO2lCQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDYixNQUFNLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
@@ -1,8 +1,10 @@
1
1
  import os from 'node:os';
2
+ import { debuglog } from 'node:util';
2
3
  import { execaCommand } from 'execa';
3
4
  import { existsSync } from 'node:fs';
4
5
  import upsert from '../patching/upsert.js';
5
6
  import { getProfilePath } from './constants.js';
7
+ const debug = debuglog('xs-dev:homebrew');
6
8
  function getBrewPath() {
7
9
  if (os.arch() === 'arm64')
8
10
  return '/opt/homebrew/bin';
@@ -17,7 +19,7 @@ export async function* ensureHomebrew(prompter) {
17
19
  const homebrewEval = `eval "$(${brewPath}/brew shellenv)"`;
18
20
  if (existsSync(brewPath)) {
19
21
  process.env.PATH = `${brewPath}:${String(process.env.PATH)}`;
20
- yield { type: 'info', message: 'Homebrew found in PATH' };
22
+ debug('Homebrew found in PATH');
21
23
  return;
22
24
  }
23
25
  const shouldInstallBrew = await prompter.confirm(`The "brew" command is not available. Homebrew is required to install necessary dependencies. Would you like to setup Homebrew automatically?`);
@@ -53,9 +55,8 @@ export async function* ensureHomebrew(prompter) {
53
55
  type: 'step:fail',
54
56
  message: `Visit https://brew.sh/ to learn more about installing Homebrew. If you don't want to use Homebrew, please install the following packages manually before trying this command again.`,
55
57
  };
56
- return;
57
58
  }
58
- yield { type: 'info', message: 'Homebrew is available' };
59
+ // yield { type: 'info', message: 'Homebrew is available' }
59
60
  }
60
61
  catch (error) {
61
62
  const message = error instanceof Error ? error.message : String(error);
@@ -77,4 +78,4 @@ export async function formulaeExists(formulae) {
77
78
  return false;
78
79
  }
79
80
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWJyZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ob21lYnJldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUkvQyxTQUFTLFdBQVc7SUFDbEIsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssT0FBTztRQUFFLE9BQU8sbUJBQW1CLENBQUE7SUFDckQsT0FBTyxnQkFBZ0IsQ0FBQTtBQUN6QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsY0FBYyxDQUNuQyxRQUFrQjtJQUVsQixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQTtRQUV4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUE7WUFDOUIsTUFBTSxZQUFZLEdBQUcsV0FBVyxRQUFRLGtCQUFrQixDQUFBO1lBRTFELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7Z0JBQzVELE1BQU0sRUFBRSxJ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
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWJyZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ob21lYnJldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDcEMsT0FBTyxNQUFNLE1BQU0sdUJBQXVCLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSS9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0FBRXpDLFNBQVMsV0FBVztJQUNsQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxPQUFPO1FBQUUsT0FBTyxtQkFBbUIsQ0FBQTtJQUNyRCxPQUFPLGdCQUFnQixDQUFBO0FBQ3pCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQ25DLFFBQWtCO0lBRWxCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFBO1FBRXhDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQTtZQUM5QixNQUFNLFlBQVksR0FBRyxXQUFXLFFBQVEsa0JBQWtCLENBQUE7WUFFMUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJ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
@@ -0,0 +1,32 @@
1
+ import { stat } from 'node:fs/promises';
2
+ export async function exists(filePath) {
3
+ try {
4
+ await stat(filePath);
5
+ return true;
6
+ }
7
+ catch (error) {
8
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
9
+ return false;
10
+ }
11
+ if (error instanceof Error)
12
+ throw error;
13
+ throw new Error(`Unable to check existence of file path: ${filePath}`);
14
+ }
15
+ }
16
+ export async function isDir(path) {
17
+ try {
18
+ return (await stat(path)).isDirectory();
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ export async function isFile(path) {
25
+ try {
26
+ return (await stat(path)).isFile();
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3N5c3RlbS9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUV2QyxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxRQUFnQjtJQUMzQyxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6RSxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFDRCxJQUFJLEtBQUssWUFBWSxLQUFLO1lBQUUsTUFBTSxLQUFLLENBQUE7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsS0FBSyxDQUFDLElBQVk7SUFDdEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDekMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFZO0lBQ3ZDLElBQUksQ0FBQztRQUNILE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7QUFDSCxDQUFDIn0=
@@ -1,6 +1,6 @@
1
- import { mkdir, readFile } from 'node:fs/promises';
2
- import { existsSync, rmSync } from 'node:fs';
1
+ import { mkdir, readFile, rm } from 'node:fs/promises';
3
2
  import { resolve, join } from 'node:path';
3
+ import { debuglog } from 'node:util';
4
4
  import { execaCommand, execa } from 'execa';
5
5
  import { INSTALL_DIR, EXPORTS_FILE_PATH, INSTALL_PATH, } from '../../setup/constants.js';
6
6
  import { moddableExists, getModdableVersion } from '../../setup/moddable.js';
@@ -11,7 +11,9 @@ import { installLinuxDeps } from './linux.js';
11
11
  import { installWinDeps } from './windows.js';
12
12
  import { setEnv } from '../../setup/windows.js';
13
13
  import { sourceEnvironment } from '../../system/exec.js';
14
+ import { exists } from '../../system/filesystem.js';
14
15
  import { unwrapOr } from '../../system/errors.js';
16
+ const debug = debuglog('xs-dev:toolchains:esp32');
15
17
  function getVersionSatisfies(version, range) {
16
18
  const major = parseInt(version.split('.')[0], 10);
17
19
  if (range === '>= 4.2.x')
@@ -29,7 +31,7 @@ export async function getExpectedEspIdfVersion() {
29
31
  if (moddableExists()) {
30
32
  try {
31
33
  const manifestPath = resolve(INSTALL_PATH, 'build', 'devices', 'esp32', 'manifest.json');
32
- if (existsSync(manifestPath)) {
34
+ if (await exists(manifestPath)) {
33
35
  const content = await readFile(manifestPath, 'utf-8');
34
36
  const parsed = JSON.parse(content);
35
37
  return parsed.build?.EXPECTED_ESP_IDF ?? null;
@@ -53,17 +55,16 @@ export const esp32Toolchain = {
53
55
  const ESP32_DIR = resolve(INSTALL_DIR, 'esp32');
54
56
  const IDF_PATH = resolve(ESP32_DIR, 'esp-idf');
55
57
  await sourceEnvironment();
56
- // 0. ensure Moddable exists
57
58
  if (!moddableExists()) {
58
59
  yield {
59
60
  type: 'step:fail',
60
- message: 'Moddable tooling required. Run `xs-dev setup` before trying again.',
61
+ message: 'Moddable platform tooling required. Run `xs-dev setup` before trying again.',
61
62
  };
62
63
  return;
63
64
  }
64
65
  // 1. ensure ~/.local/share/esp32 directory
65
66
  try {
66
- yield { type: 'info', message: 'Ensuring esp32 install directory' };
67
+ debug('Ensuring esp32 install directory');
67
68
  await mkdir(ESP32_DIR, { recursive: true });
68
69
  }
69
70
  catch (error) {
@@ -74,9 +75,9 @@ export const esp32Toolchain = {
74
75
  return;
75
76
  }
76
77
  // 2. clone esp-idf into ~/.local/share/esp32/esp-idf
77
- if (!existsSync(IDF_PATH)) {
78
+ if (!(await exists(IDF_PATH))) {
78
79
  try {
79
- yield { type: 'step:start', message: 'Cloning esp-idf repo' };
80
+ debug('Cloning esp-idf repo');
80
81
  const moddableVersionResult = await getModdableVersion();
81
82
  const moddableVersion = unwrapOr(moddableVersionResult, '');
82
83
  const expectedEspIdfVersion = await getExpectedEspIdfVersion();
@@ -85,8 +86,8 @@ export const esp32Toolchain = {
85
86
  getVersionSatisfies(moddableVersion, '>= 4.2.x')
86
87
  ? ESP_BRANCH_V5
87
88
  : ESP_BRANCH_V4);
88
- await execaCommand(`git clone --depth 1 --single-branch -b ${branch} --recursive ${ESP_IDF_REPO} ${IDF_PATH}`);
89
- yield { type: 'step:done' };
89
+ await execaCommand(`git clone --depth 1 --single-branch -b ${branch} --recurse-submodules --shallow-submodules ${ESP_IDF_REPO} ${IDF_PATH}`);
90
+ debug('ESP-IDF repo cloned');
90
91
  }
91
92
  catch (error) {
92
93
  yield {
@@ -98,7 +99,7 @@ export const esp32Toolchain = {
98
99
  }
99
100
  // 3. Install build and run dependencies
100
101
  try {
101
- yield { type: 'step:start', message: 'Installing build dependencies' };
102
+ debug('Installing build dependencies');
102
103
  if (ctx.platform === 'mac') {
103
104
  for await (const event of installMacDeps(prompter)) {
104
105
  yield event;
@@ -114,7 +115,7 @@ export const esp32Toolchain = {
114
115
  yield event;
115
116
  }
116
117
  }
117
- yield { type: 'step:done' };
118
+ debug('Dependencies installed');
118
119
  }
119
120
  catch (error) {
120
121
  yield {
@@ -126,16 +127,13 @@ export const esp32Toolchain = {
126
127
  // 4. append IDF_PATH env export to shell profile
127
128
  try {
128
129
  if (isWindows) {
129
- yield {
130
- type: 'info',
131
- message: 'Configuring IDF_PATH environment variable',
132
- };
130
+ debug('Configuring IDF_PATH environment variable');
133
131
  await setEnv('IDF_PATH', IDF_PATH);
134
132
  }
135
133
  else {
136
134
  if (typeof process.env.IDF_PATH !== 'string' ||
137
135
  process.env.IDF_PATH.length === 0) {
138
- yield { type: 'info', message: 'Configuring $IDF_PATH' };
136
+ debug('Configuring $IDF_PATH');
139
137
  process.env.IDF_PATH = IDF_PATH;
140
138
  await upsert(EXPORTS_FILE_PATH, `export IDF_PATH=${IDF_PATH}`);
141
139
  }
@@ -151,24 +149,19 @@ export const esp32Toolchain = {
151
149
  // 5. cd to IDF_PATH, run install.sh
152
150
  try {
153
151
  if (isWindows) {
154
- yield {
155
- type: 'step:start',
156
- message: 'Running ESP-IDF Tools install.bat',
157
- };
152
+ debug('Running ESP-IDF Tools install.bat');
158
153
  await execaCommand(`${IDF_PATH}\\install.bat`, {
159
154
  cwd: IDF_PATH,
160
- stdio: 'inherit',
161
155
  });
162
- yield { type: 'step:done' };
156
+ debug('ESP-IDF tools installed');
163
157
  }
164
158
  else {
165
- yield { type: 'step:start', message: 'Installing esp-idf tooling' };
159
+ debug('Installing esp-idf tooling');
166
160
  await execaCommand('./install.sh', {
167
161
  cwd: IDF_PATH,
168
162
  shell: process.env.SHELL ?? '/bin/bash',
169
- stdio: 'inherit',
170
163
  });
171
- yield { type: 'step:done' };
164
+ debug('ESP-IDF tools installed');
172
165
  }
173
166
  }
174
167
  catch (error) {
@@ -204,18 +197,17 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
204
197
  const ESP32_DIR = resolve(INSTALL_DIR, 'esp32');
205
198
  const IDF_PATH = resolve(ESP32_DIR, 'esp-idf');
206
199
  await sourceEnvironment();
207
- yield { type: 'step:start', message: 'Updating esp32 tools' };
208
- // 0. ensure Moddable exists
209
200
  if (!moddableExists()) {
210
201
  yield {
211
202
  type: 'step:fail',
212
- message: 'Moddable tooling required. Run `xs-dev setup` before trying again.',
203
+ message: 'Moddable platform tooling required. Run `xs-dev setup` before trying again.',
213
204
  };
214
205
  return;
215
206
  }
207
+ yield { type: 'step:start', message: 'Updating esp32 tools' };
216
208
  // 1. ensure esp32 directories exist
217
- yield { type: 'info', message: 'Ensuring esp32 install directory' };
218
- if (!existsSync(ESP32_DIR) || !existsSync(IDF_PATH)) {
209
+ debug('Ensuring esp32 install directory');
210
+ if (!(await exists(ESP32_DIR)) || !(await exists(IDF_PATH))) {
219
211
  yield {
220
212
  type: 'step:fail',
221
213
  message: 'ESP32 tooling required. Run `xs-dev setup --device esp32` before trying again.',
@@ -224,7 +216,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
224
216
  }
225
217
  // 2. update local esp-idf repo
226
218
  try {
227
- yield { type: 'step:start', message: 'Updating esp-idf repo' };
219
+ debug('Updating esp-idf repo');
228
220
  const moddableVersionResult = await getModdableVersion();
229
221
  const moddableVersion = unwrapOr(moddableVersionResult, '');
230
222
  const expectedEspIdfVersion = await getExpectedEspIdfVersion();
@@ -246,7 +238,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
246
238
  await execaCommand('git submodule update --init --recursive', {
247
239
  cwd: IDF_PATH,
248
240
  });
249
- yield { type: 'step:done' };
241
+ debug('esp-idf repo updated');
250
242
  }
251
243
  catch (error) {
252
244
  yield {
@@ -257,7 +249,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
257
249
  }
258
250
  // 3. Install build and run dependencies
259
251
  try {
260
- yield { type: 'step:start', message: 'Installing build dependencies' };
252
+ debug('Installing build dependencies');
261
253
  if (ctx.platform === 'mac') {
262
254
  for await (const event of installMacDeps(prompter)) {
263
255
  yield event;
@@ -268,7 +260,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
268
260
  yield event;
269
261
  }
270
262
  }
271
- yield { type: 'step:done' };
263
+ debug('Dependencies rebuilt');
272
264
  }
273
265
  catch (error) {
274
266
  yield {
@@ -280,7 +272,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
280
272
  // 4. append IDF_PATH env export to shell profile
281
273
  try {
282
274
  if (process.env.IDF_PATH === undefined || process.env.IDF_PATH === '') {
283
- yield { type: 'info', message: 'Configuring $IDF_PATH' };
275
+ debug('Configuring $IDF_PATH');
284
276
  process.env.IDF_PATH = IDF_PATH;
285
277
  await upsert(EXPORTS_FILE_PATH, `export IDF_PATH=${IDF_PATH}`);
286
278
  }
@@ -302,19 +294,18 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
302
294
  }
303
295
  catch (error) {
304
296
  yield {
305
- type: 'info',
297
+ type: 'warning',
306
298
  message: `Note: Could not remove old IDF_PATH source: ${String(error)}`,
307
299
  };
308
300
  }
309
301
  // 5. cd to IDF_PATH, run install.sh
310
302
  try {
311
- yield { type: 'step:start', message: 'Rebuilding esp-idf tooling' };
303
+ debug('Rebuilding esp-idf tooling');
312
304
  await execaCommand('./install.sh', {
313
305
  cwd: IDF_PATH,
314
306
  shell: process.env.SHELL ?? '/bin/bash',
315
- stdio: 'inherit',
316
307
  });
317
- yield { type: 'step:done' };
308
+ debug('esp-idf tooling rebuilt successfully');
318
309
  }
319
310
  catch (error) {
320
311
  yield {
@@ -325,14 +316,14 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
325
316
  }
326
317
  // 6. append 'source $IDF_PATH/export.sh' to shell profile
327
318
  try {
328
- yield { type: 'info', message: 'Sourcing esp-idf environment' };
319
+ debug('Sourcing esp-idf environment');
329
320
  await upsert(EXPORTS_FILE_PATH, `source $IDF_PATH/export.sh 1> /dev/null\n`);
330
321
  await execaCommand('source $IDF_PATH/export.sh', {
331
322
  shell: process.env.SHELL ?? '/bin/bash',
332
323
  });
333
324
  }
334
325
  catch (error) {
335
- yield { type: 'info', message: `Note: ${String(error)}` };
326
+ yield { type: 'warning', message: `Note: ${String(error)}` };
336
327
  }
337
328
  // 7. Remove existing build output directories
338
329
  try {
@@ -343,7 +334,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
343
334
  }
344
335
  catch (error) {
345
336
  yield {
346
- type: 'info',
337
+ type: 'warning',
347
338
  message: `Note: Could not clean build dirs: ${String(error)}`,
348
339
  };
349
340
  }
@@ -356,10 +347,9 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
356
347
  },
357
348
  async *teardown(_ctx, _prompter) {
358
349
  try {
359
- yield { type: 'step:start', message: 'Removing esp32 tooling' };
360
- rmSync(join(INSTALL_DIR, 'esp32'), { recursive: true, force: true });
361
- rmSync(join(INSTALL_DIR, 'esp'), { recursive: true, force: true });
362
- yield { type: 'step:done' };
350
+ debug('Removing esp32 tooling');
351
+ await rm(join(INSTALL_DIR, 'esp32'), { recursive: true, force: true });
352
+ debug('esp32 toolchain removed');
363
353
  }
364
354
  catch (error) {
365
355
  yield {
@@ -373,7 +363,7 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
373
363
  if (process.env.IDF_PATH === undefined || process.env.IDF_PATH === '') {
374
364
  missing.push('IDF_PATH env var not set');
375
365
  }
376
- else if (!existsSync(process.env.IDF_PATH)) {
366
+ else if (!(await exists(process.env.IDF_PATH))) {
377
367
  missing.push(`IDF_PATH path does not exist: ${process.env.IDF_PATH}`);
378
368
  }
379
369
  if (missing.length > 0) {
@@ -394,4 +384,4 @@ If there is trouble finding the correct port, pass the "--port" flag to the abov
394
384
  return resolve(idfPath, 'export.sh');
395
385
  },
396
386
  };
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdG9vbGJveC90b29sY2hhaW5zL2VzcDMyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0MsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBS2pELFNBQVMsbUJBQW1CLENBQUMsT0FBZSxFQUFFLEtBQWE7SUFDekQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxD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
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdG9vbGJveC90b29sY2hhaW5zL2VzcDMyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0MsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUtqRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUVq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