xs-dev 0.19.3 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +13 -271
  2. package/build/commands/doctor.js +79 -0
  3. package/build/extensions/setup-extension.js +4 -1
  4. package/build/extensions/update-extension.js +4 -1
  5. package/build/toolbox/build/index.js +62 -4
  6. package/build/toolbox/prompt/devices.js +4 -1
  7. package/build/toolbox/setup/esp32/mac.js +33 -7
  8. package/build/toolbox/setup/esp32.js +4 -6
  9. package/build/toolbox/setup/esp8266/mac.js +28 -7
  10. package/build/toolbox/setup/esp8266/windows.js +2 -2
  11. package/build/toolbox/setup/esp8266.js +15 -25
  12. package/build/toolbox/setup/fontbm.js +23 -4
  13. package/build/toolbox/setup/homebrew.js +48 -0
  14. package/build/toolbox/setup/mac.js +25 -10
  15. package/build/toolbox/setup/moddable.js +43 -4
  16. package/build/toolbox/setup/pico/mac.js +18 -3
  17. package/build/toolbox/setup/pico.js +26 -15
  18. package/build/toolbox/setup/wasm.js +22 -8
  19. package/build/toolbox/setup/windows.js +11 -3
  20. package/build/toolbox/system/python.js +21 -0
  21. package/build/toolbox/update/mac.js +25 -11
  22. package/build/types/commands/doctor.d.ts +3 -0
  23. package/build/types/toolbox/setup/homebrew.d.ts +1 -0
  24. package/build/types/toolbox/setup/moddable.d.ts +4 -0
  25. package/build/types/toolbox/setup/pico/mac.d.ts +1 -1
  26. package/build/types/toolbox/system/python.d.ts +2 -0
  27. package/build/types/types.d.ts +1 -1
  28. package/docs/src/components/PageContent/PageContent.astro +30 -31
  29. package/docs/src/config.ts +1 -0
  30. package/docs/src/env.d.ts +1 -0
  31. package/docs/src/pages/en/features/doctor.md +42 -0
  32. package/docs/src/pages/en/introduction.md +13 -10
  33. package/package.json +11 -10
package/README.md CHANGED
@@ -2,27 +2,15 @@
2
2
 
3
3
  The Moddable SDK and associated dev board tooling is incredibly empowering for embedded JS hardware development, however the set up process can be tedious to follow when getting started. This project aims to streamline the install and environment configuration requirements across platforms in just a few commands.
4
4
 
5
- **This project is a work in progress and should be considered pre-1.0.**
5
+ [Check out the documentation!](https://hipsterbrown.github.io/xs-dev/)
6
6
 
7
- **Feature support:**
8
-
9
- - [X] [Moddable SDK install & setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md)
10
- - [X] [ESP32 SDK setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp32.md)
11
- - [X] [ESP8266 SDK setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp8266.md)
12
- - [X] [WASM simulator](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/wasm.md)
13
- - [X] [Raspberry Pi Pico](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/pico.md)
14
- - [X] Update Moddable SDK
15
- - [X] Project management, including dependencies
16
-
17
- **Platform support:**
18
-
19
- - [X] Mac
20
- - [X] Windows (Beta support)
21
- - [X] Linux
7
+ **This project is a work in progress and currently pre-1.0, so there may be breaking changes.**
22
8
 
23
9
  ## Requirements
24
10
 
25
- [Node.js >= v12](https://nodejs.org/en/)
11
+ [Node.js >= v14](https://nodejs.org/en/)
12
+
13
+ _If you've never installed Node.js before, check out the [getting started guide for xs-dev](https://hipsterbrown.github.io/xs-dev/en/guide/00-prepare#nodejs-package-manager-optional)._
26
14
 
27
15
  **On Linux:**
28
16
 
@@ -34,277 +22,31 @@ Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/bionic/ssh-as
34
22
  npm install -g xs-dev
35
23
  ```
36
24
 
37
- ## Update
38
-
39
- ```
40
- npm update -g xs-dev
41
- ```
42
-
43
- ## Features
44
-
45
- ### Moddable SDK setup / update / teardown
46
-
47
- This process mostly automates the instructions provided by Moddable's "Getting Started" documentation with a few exceptions:
48
-
49
- - it will not install XCode, just ensures the command line tools are available
50
- - the `moddable` git repo is cloned into `~/.local/share` instead of a new/existing `~/Projects` directory
51
- - a symlink for `xsbug.app` is created in `/Applications` for easy access through Launchpad (on Mac)
52
-
53
- Run script for initial setup:
54
-
55
- ```
56
- xs-dev setup
57
- ```
58
-
59
- Run script for updating SDK:
60
-
61
- ```
62
- xs-dev update
63
- ```
64
-
65
- Remove all setup and environment changes with teardown command:
66
-
67
- ```
68
- xs-dev teardown
69
- ```
70
-
71
- ### ESP32 SDK install / setup
72
-
73
- This process automates the instructions for downloading and building the esp-idf SDK tooling. This tooling will be placed in the `~/.local/share/esp32` directory, which will be created if it doesn't exist.
74
-
75
- Run script for platform setup:
76
-
77
- ```
78
- xs-dev setup --device=esp32
79
- ```
80
-
81
- Run script to confirm the setup:
82
-
83
- ```
84
- xs-dev run --example helloworld --device=esp32
85
- ```
86
-
87
- Flags:
88
-
89
- - `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
90
- - `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
91
-
92
- ### ESP8266 SDK install / setup
93
-
94
- This process automates the instructions for downloading all the dependencies for the ESP8266 RTOS SDK. These dependencies will be placed in the `~/.local/share/esp` directory, which will be created if it doesn't exist.
95
-
96
- Run script for platform setup:
97
-
98
- ```
99
- xs-dev setup --device=esp8266
100
- ```
101
-
102
- Run script to confirm the setup:
103
-
104
25
  ```
105
- xs-dev run --example helloworld --device=esp8266
26
+ pnpm install -g xs-dev
106
27
  ```
107
28
 
108
- Flags:
109
-
110
- - `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
111
- - `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
112
-
113
- ### Wasm Simulator install / setup
114
-
115
- This process automates the instructions for downloading all the dependencies for the [wasm simulator](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/wasm.md) and building the Moddable tooling. These dependencies will be placed in `~/.local/share/wasm`, which will be created if it doesn't exist.
116
-
117
- Run script for platform setup:
118
-
119
29
  ```
120
- xs-dev setup --device=wasm
30
+ yarn global add xs-dev
121
31
  ```
122
32
 
123
- _If there are issues building the Moddable wasm tools, please try running `eval $SHELL` or starting a new shell insance before running the setup script again._
124
-
33
+ ## Update to latest release
125
34
 
126
- Run script to confirm the setup:
127
-
128
- ```
129
- xs-dev run --example helloworld --device=wasm
130
35
  ```
131
-
132
- ### Raspberry Pi Pico SDK install / setup
133
-
134
- This process automates the instructions for downloading all the dependencies for the Pico SDK. These dependencies will be placed in the `~/.local/share/pico` directory, which will be created if it doesn't exist. It will also include the [`picotool` CLI](https://github.com/raspberrypi/picotool) to help with scanning for connected devices.
135
-
136
- Run script for platform setup:
137
-
138
- ```
139
- xs-dev setup --device=pico
140
- ```
141
-
142
- Run script to confirm the setup:
143
-
144
- ```
145
- xs-dev run --example helloworld --device=pico
146
- ```
147
-
148
- Flags:
149
-
150
- - `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
151
- - `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
152
-
153
- ### Run Moddable examples
154
-
155
- While it is still possible to run the Moddable example projects in the documented workflow:
156
-
157
- ```
158
- cd $MODDABLE/examples/<example directory>
159
- mcconfig -d -m -p <platform here>
160
- ```
161
-
162
- This tool aims to simplify that process.
163
-
164
- List available examples:
165
- ```
166
- xs-dev run --list-examples
167
- ```
168
-
169
- Run an example:
170
- ```
171
- xs-dev run --example helloworld
172
- ```
173
-
174
- Flags:
175
-
176
- - `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
177
- - `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
178
-
179
- ## Project management
180
-
181
- ### Start a project
182
-
183
-
184
- ```
185
- xs-dev init my-project
186
- ```
187
-
188
- Creates a `main.js` and minimally configured `manifest.json` for running in the simulator.
189
-
190
- Flags:
191
-
192
- - `typescript`: includes typings and creates `main.ts` (experimental)
193
- - `io`: includes [TC53 IO manifest](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/io/io.md)
194
- - `example`: use [Moddable example project](https://github.com/Moddable-OpenSource/moddable/tree/public/examples) as base for new project
195
- - `overwrite`: replace any existing directory of the same name
196
-
197
- For the example flag, it can be used as a boolean to select a project from a list:
198
-
199
- ```
200
- xs-dev init my-project --example
201
- ```
202
-
203
- Or select from a filtered list of projects:
204
-
205
- ```
206
- xs-dev init my-project --example http
207
- ```
208
-
209
- Or if the complete example name is passed, it will be selected by default:
210
-
211
- ```
212
- xs-dev init my-project --example network/mqtt/mqttbasic
213
- ```
214
-
215
- ### Build and run a project
216
-
217
- In the project directory:
218
-
219
- ```
220
- xs-dev run
221
- ```
222
-
223
- When not in the project directory:
224
-
225
- ```
226
- xs-dev run path/to/project
227
- ```
228
-
229
- Flags:
230
-
231
- - `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
232
- - `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
233
-
234
- ### Add a Moddable SDK module
235
-
236
- ```
237
- xs-dev include network/wifi
238
- ```
239
-
240
- Or select from available modules:
241
-
242
- ```
243
- xs-dev include
244
- xs-dev include files
245
- ```
246
-
247
- Updates the `manifest.json` to include the module.
248
-
249
- Flags:
250
-
251
- - `device`: When this flag is present, the module is added to the `platforms` section for the specified device. When `device` is not provided, the module is added to the global manifest section to be used for all devices. For example, the following adds the module for use on `esp32` devices only:
252
-
253
- ```
254
- xs-dev include files/flash --device esp32
255
- ```
256
-
257
- ### Scan for available devices
258
-
259
- If the default device discovery is having trouble finding the correct port when running a project, use this command to find available ports to pass through the `--port` flag:
260
-
261
- ```
262
- $ xs-dev scan
263
-
264
- ✔ Found the following available devices!
265
- Port Device Features
266
- /dev/cu.usbserial-0001 ESP8266EX WiFi
267
- /dev/cu.usbserial-DN02N5XK ESP32-D0WDQ6 (revision 0) WiFi, BT, Dual Core, Coding Scheme None
268
-
269
- $ xs-dev run --port /dev/cu.usbserial-0001 --device esp8266
270
- ```
271
-
272
-
273
- ### Add a remote dependency (Coming soon)
274
-
275
- ```
276
- xs-dev get dtex/j5e
277
- ```
278
-
279
- Assumes the dependency is a GitHub repo, clones it to `~/.local/share`, creates an environment variable with the name of the repo, and updates the `manifest.json` with the path to that dependency.
280
-
281
- To include a specific module for the installed dependency:
282
-
283
- ```
284
- xs-dev include j5e/lib/led
36
+ npm update -g xs-dev
285
37
  ```
286
38
 
287
- ### Remove a Moddable SDK module
288
-
289
39
  ```
290
- xs-dev remove network/wifi
40
+ pnpm update -g xs-dev
291
41
  ```
292
42
 
293
- Updates the `manifest.json` to remove the module.
294
-
295
- Or remove all modules that contain a string. This removes all modules that contain `"wifi"`.
296
-
297
43
  ```
298
- xs-dev remove wifi
44
+ yarn global upgrade xs-dev
299
45
  ```
300
46
 
301
- Flags:
302
-
303
- - `device`: When this flag is present, the module is removed from the `platforms` section for the specified device. When `device` is not provided, the module is removed from the global manifest section. For example, the following adds the module for use on `esp32` devices only:
47
+ ## Features & Usage
304
48
 
305
- ```
306
- xs-dev remove network/mqtt --device esp32
307
- ```
49
+ Check out the [docs](https://hipsterbrown.github.io/xs-dev/) to learn about using xs-dev and getting started with embedded JS development.
308
50
 
309
51
  ## Development
310
52
 
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const os_1 = __importDefault(require("os"));
7
+ const devices_1 = require("../toolbox/prompt/devices");
8
+ const moddable_1 = require("../toolbox/setup/moddable");
9
+ const python_1 = require("../toolbox/system/python");
10
+ const command = {
11
+ name: 'doctor',
12
+ alias: ['dr', 'info'],
13
+ description: 'Display the current environment setup information, including valid target devices.',
14
+ run: async ({ print, meta, filesystem, system }) => {
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
16
+ const supportedDevices = [];
17
+ if ((0, moddable_1.moddableExists)()) {
18
+ supportedDevices.push(devices_1.DEVICE_ALIAS[os_1.default.type().toLowerCase()]);
19
+ }
20
+ if (typeof process.env.IDF_PATH === 'string' &&
21
+ filesystem.exists(process.env.IDF_PATH) === 'dir') {
22
+ supportedDevices.push('esp32');
23
+ }
24
+ if (typeof process.env.ESP_BASE === 'string' &&
25
+ filesystem.exists(process.env.ESP_BASE) === 'dir' &&
26
+ filesystem.exists(filesystem.resolve(process.env.ESP_BASE, 'toolchain')) === 'dir' &&
27
+ filesystem.exists(filesystem.resolve(process.env.ESP_BASE, 'ESP8266_RTOS_SDK')) === 'dir' &&
28
+ filesystem.exists(filesystem.resolve(process.env.ESP_BASE, 'esp8266-2.3.0')) === 'dir') {
29
+ supportedDevices.push('esp8266');
30
+ }
31
+ if (((_a = process.env.PATH) !== null && _a !== void 0 ? _a : '').includes('binaryen') &&
32
+ filesystem.exists((_b = process.env.EMSDK) !== null && _b !== void 0 ? _b : '') === 'dir' &&
33
+ filesystem.exists((_c = process.env.EMSDK_NODE) !== null && _c !== void 0 ? _c : '') === 'file' &&
34
+ filesystem.exists((_d = process.env.EMSDK_PYTHON) !== null && _d !== void 0 ? _d : '') === 'file') {
35
+ supportedDevices.push('wasm');
36
+ }
37
+ if (typeof process.env.PICO_SDK_PATH === 'string' &&
38
+ filesystem.exists(process.env.PICO_SDK_PATH) === 'dir' &&
39
+ system.which('picotool') !== null &&
40
+ filesystem.exists((_e = process.env.PIOASM) !== null && _e !== void 0 ? _e : '') === 'file') {
41
+ supportedDevices.push('pico');
42
+ }
43
+ const pythonVersion = (_f = (await (0, python_1.getPythonVersion)())) !== null && _f !== void 0 ? _f : 'Unavailable';
44
+ const pythonPath = (_h = system.which((_g = (0, python_1.detectPython)()) !== null && _g !== void 0 ? _g : '')) !== null && _h !== void 0 ? _h : 'n/a';
45
+ const moddableVersion = (_j = (await (0, moddable_1.getModdableVersion)())) !== null && _j !== void 0 ? _j : 'Not found';
46
+ const moddablePath = (_k = process.env.MODDABLE) !== null && _k !== void 0 ? _k : 'n/a';
47
+ print.info('xs-dev environment info:');
48
+ print.table([
49
+ ['CLI Version', meta.version()],
50
+ ['OS', os_1.default.type()],
51
+ ['Arch', os_1.default.arch()],
52
+ [
53
+ 'NodeJS Version',
54
+ `${process.version} (${(_l = system.which('node')) !== null && _l !== void 0 ? _l : 'path not found'})`,
55
+ ],
56
+ ['Python Version', `${pythonVersion} (${pythonPath})`],
57
+ ['Moddable SDK Version', `${moddableVersion} (${moddablePath})`],
58
+ [
59
+ 'Supported target devices',
60
+ supportedDevices.length > 0 ? supportedDevices.join(', ') : 'None',
61
+ ],
62
+ supportedDevices.includes('esp32')
63
+ ? ['ESP32 IDF Directory', String(process.env.IDF_PATH)]
64
+ : [],
65
+ supportedDevices.includes('esp8266')
66
+ ? ['ESP8266 Base Directory', String(process.env.ESP_BASE)]
67
+ : [],
68
+ supportedDevices.includes('wasm')
69
+ ? ['Wasm EMSDK Directory', String(process.env.ESMDK)]
70
+ : [],
71
+ supportedDevices.includes('pico')
72
+ ? ['Pico SDK Directory', String(process.env.PICO_SDK_PATH)]
73
+ : [],
74
+ ].filter((tuple) => tuple.length !== 0));
75
+ print.highlight(`\nIf this is related to an error when using the CLI, please create an issue at "https://github.com/hipsterbrown/xs-dev/issues/new" with the above info.`);
76
+ },
77
+ };
78
+ exports.default = command;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDRDQUFtQjtBQUNuQix1REFBd0Q7QUFDeEQsd0RBQThFO0FBQzlFLHFEQUF5RTtBQUd6RSxNQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLFdBQVcsRUFDVCxvRkFBb0Y7SUFDdEYsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7O1FBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO1FBRTNCLElBQUksSUFBQSx5QkFBYyxHQUFFLEVBQUU7WUFDcEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHNCQUFZLENBQUMsWUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBWSxDQUFDLENBQUMsQ0FBQTtTQUN2RTtRQUVELElBQ0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRO1lBQ3hDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQ2pEO1lBQ0EsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9CO1FBQ0QsSUFDRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVE7WUFDeEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7WUFDakQsVUFBVSxDQUFDLE1BQU0sQ0FDZixVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUN0RCxLQUFLLEtBQUs7WUFDWCxVQUFVLENBQUMsTUFBTSxDQUNmLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FDN0QsS0FBSyxLQUFLO1lBQ1gsVUFBVSxDQUFDLE1BQU0sQ0FDZixVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUMxRCxLQUFLLEtBQUssRUFDWDtZQUNBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUNqQztRQUNELElBQ0UsQ0FBQyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssbUNBQUksRUFBRSxDQUFDLEtBQUssS0FBSztZQUNwRCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQyxLQUFLLE1BQU07WUFDMUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxtQ0FBSSxFQUFFLENBQUMsS0FBSyxNQUFNLEVBQzVEO1lBQ0EsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQzlCO1FBQ0QsSUFDRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLFFBQVE7WUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUs7WUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJO1lBQ2pDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDLEtBQUssTUFBTSxFQUN0RDtZQUNBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM5QjtRQUVELE1BQU0sYUFBYSxHQUFHLE1BQUEsQ0FBQyxNQUFNLElBQUEseUJBQWdCLEdBQUUsQ0FBQyxtQ0FBSSxhQUFhLENBQUE7UUFDakUsTUFBTSxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQUEsSUFBQSxxQkFBWSxHQUFFLG1DQUFJLEVBQUUsQ0FBQyxtQ0FBSSxLQUFLLENBQUE7UUFFOUQsTUFBTSxlQUFlLEdBQUcsTUFBQSxDQUFDLE1BQU0sSUFBQSw2QkFBa0IsR0FBRSxDQUFDLG1DQUFJLFdBQVcsQ0FBQTtRQUNuRSxNQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxtQ0FBSSxLQUFLLENBQUE7UUFFbEQsS0FBSyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLENBQ1Q7WUFDRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxJQUFJLEVBQUUsWUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLENBQUMsTUFBTSxFQUFFLFlBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQjtnQkFDRSxnQkFBZ0I7Z0JBQ2hCLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1DQUFJLGdCQUFnQixHQUFHO2FBQ25FO1lBQ0QsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsS0FBSyxVQUFVLEdBQUcsQ0FBQztZQUN0RCxDQUFDLHNCQUFzQixFQUFFLEdBQUcsZUFBZSxLQUFLLFlBQVksR0FBRyxDQUFDO1lBQ2hFO2dCQUNFLDBCQUEwQjtnQkFDMUIsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO2FBQ25FO1lBQ0QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxFQUFFO1lBQ04sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxFQUFFO1lBQ04sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxFQUFFO1lBQ04sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQ3hDLENBQUE7UUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLHlKQUF5SixDQUMxSixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==
@@ -13,8 +13,11 @@ const pico_1 = __importDefault(require("../toolbox/setup/pico"));
13
13
  exports.default = async (toolbox) => {
14
14
  toolbox.setup = {
15
15
  darwin: mac_1.default,
16
+ mac: mac_1.default,
16
17
  linux: linux_1.default,
18
+ lin: linux_1.default,
17
19
  windows_nt: windows_1.default,
20
+ win: windows_1.default,
18
21
  esp: esp8266_1.default,
19
22
  esp8266: esp8266_1.default,
20
23
  esp32: esp32_1.default,
@@ -22,4 +25,4 @@ exports.default = async (toolbox) => {
22
25
  pico: pico_1.default,
23
26
  };
24
27
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2V0dXAtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTJDO0FBQzNDLG1FQUErQztBQUMvQyx1RUFBbUQ7QUFDbkQsdUVBQW1EO0FBQ25ELG1FQUErQztBQUMvQyxpRUFBNkM7QUFDN0MsaUVBQTZDO0FBRTdDLGtCQUFlLEtBQUssRUFBRSxPQUFxQixFQUFpQixFQUFFO0lBQzVELE9BQU8sQ0FBQyxLQUFLLEdBQUc7UUFDZCxNQUFNLEVBQUUsYUFBUTtRQUNoQixLQUFLLEVBQUUsZUFBVTtRQUNqQixVQUFVLEVBQUUsaUJBQVk7UUFDeEIsR0FBRyxFQUFFLGlCQUFZO1FBQ2pCLE9BQU8sRUFBRSxpQkFBWTtRQUNyQixLQUFLLEVBQUUsZUFBVTtRQUNqQixJQUFJLEVBQUUsY0FBUztRQUNmLElBQUksRUFBRSxjQUFTO0tBQ2hCLENBQUE7QUFDSCxDQUFDLENBQUEifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2V0dXAtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTJDO0FBQzNDLG1FQUErQztBQUMvQyx1RUFBbUQ7QUFDbkQsdUVBQW1EO0FBQ25ELG1FQUErQztBQUMvQyxpRUFBNkM7QUFDN0MsaUVBQTZDO0FBRTdDLGtCQUFlLEtBQUssRUFBRSxPQUFxQixFQUFpQixFQUFFO0lBQzVELE9BQU8sQ0FBQyxLQUFLLEdBQUc7UUFDZCxNQUFNLEVBQUUsYUFBUTtRQUNoQixHQUFHLEVBQUUsYUFBUTtRQUNiLEtBQUssRUFBRSxlQUFVO1FBQ2pCLEdBQUcsRUFBRSxlQUFVO1FBQ2YsVUFBVSxFQUFFLGlCQUFZO1FBQ3hCLEdBQUcsRUFBRSxpQkFBWTtRQUNqQixHQUFHLEVBQUUsaUJBQVk7UUFDakIsT0FBTyxFQUFFLGlCQUFZO1FBQ3JCLEtBQUssRUFBRSxlQUFVO1FBQ2pCLElBQUksRUFBRSxjQUFTO1FBQ2YsSUFBSSxFQUFFLGNBQVM7S0FDaEIsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
@@ -13,8 +13,11 @@ const pico_1 = __importDefault(require("../toolbox/update/pico"));
13
13
  exports.default = async (toolbox) => {
14
14
  toolbox.update = {
15
15
  darwin: mac_1.default,
16
+ mac: mac_1.default,
16
17
  linux: linux_1.default,
18
+ lin: linux_1.default,
17
19
  windows_nt: windows_1.default,
20
+ win: windows_1.default,
18
21
  esp: esp8266_1.default,
19
22
  esp8266: esp8266_1.default,
20
23
  esp32: esp32_1.default,
@@ -22,4 +25,4 @@ exports.default = async (toolbox) => {
22
25
  pico: pico_1.default,
23
26
  };
24
27
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3VwZGF0ZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxnRUFBNkM7QUFDN0Msb0VBQWlEO0FBQ2pELHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsb0VBQWlEO0FBQ2pELGtFQUErQztBQUMvQyxrRUFBK0M7QUFFL0Msa0JBQWUsS0FBSyxFQUFFLE9BQXFCLEVBQWlCLEVBQUU7SUFDNUQsT0FBTyxDQUFDLE1BQU0sR0FBRztRQUNmLE1BQU0sRUFBRSxhQUFTO1FBQ2pCLEtBQUssRUFBRSxlQUFXO1FBQ2xCLFVBQVUsRUFBRSxpQkFBYTtRQUN6QixHQUFHLEVBQUUsaUJBQWE7UUFDbEIsT0FBTyxFQUFFLGlCQUFhO1FBQ3RCLEtBQUssRUFBRSxlQUFXO1FBQ2xCLElBQUksRUFBRSxjQUFVO1FBQ2hCLElBQUksRUFBRSxjQUFVO0tBQ2pCLENBQUE7QUFDSCxDQUFDLENBQUEifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3VwZGF0ZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxnRUFBNkM7QUFDN0Msb0VBQWlEO0FBQ2pELHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsb0VBQWlEO0FBQ2pELGtFQUErQztBQUMvQyxrRUFBK0M7QUFFL0Msa0JBQWUsS0FBSyxFQUFFLE9BQXFCLEVBQWlCLEVBQUU7SUFDNUQsT0FBTyxDQUFDLE1BQU0sR0FBRztRQUNmLE1BQU0sRUFBRSxhQUFTO1FBQ2pCLEdBQUcsRUFBRSxhQUFTO1FBQ2QsS0FBSyxFQUFFLGVBQVc7UUFDbEIsR0FBRyxFQUFFLGVBQVc7UUFDaEIsVUFBVSxFQUFFLGlCQUFhO1FBQ3pCLEdBQUcsRUFBRSxpQkFBYTtRQUNsQixHQUFHLEVBQUUsaUJBQWE7UUFDbEIsT0FBTyxFQUFFLGlCQUFhO1FBQ3RCLEtBQUssRUFBRSxlQUFXO1FBQ2xCLElBQUksRUFBRSxjQUFVO1FBQ2hCLElBQUksRUFBRSxjQUFVO0tBQ2pCLENBQUE7QUFDSCxDQUFDLENBQUEifQ==
@@ -4,12 +4,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.build = void 0;
7
+ const os_1 = require("os");
7
8
  const serve_handler_1 = __importDefault(require("serve-handler"));
8
9
  const http_1 = require("http");
9
10
  const gluegun_1 = require("gluegun");
10
11
  const choices_1 = require("../prompt/choices");
12
+ const moddable_1 = require("../setup/moddable");
13
+ const devices_1 = require("../prompt/devices");
11
14
  async function build({ listDevices, port, example, listExamples, projectPath, targetPlatform, mode, deployStatus, outputDir, }) {
12
- var _a;
15
+ var _a, _b, _c, _d, _e, _f;
16
+ const OS = (0, os_1.type)().toLowerCase();
17
+ if (!(0, moddable_1.moddableExists)()) {
18
+ gluegun_1.print.error(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
19
+ process.exit(1);
20
+ }
13
21
  if (listDevices) {
14
22
  const choices = [
15
23
  'esp',
@@ -22,10 +30,13 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
22
30
  'esp32/nodemcu',
23
31
  'esp32/m5stack',
24
32
  'esp32/m5stack_core2',
25
- 'esp32/m5stick_fire',
33
+ 'esp32/m5stack_fire',
34
+ 'esp32/m5stick_c',
35
+ 'esp32/m5stick_cplus',
26
36
  'esp32/m5atom_echo',
27
37
  'esp32/m5atom_lite',
28
38
  'esp32/m5atom_matrix',
39
+ 'esp32/m5atom_u',
29
40
  'esp32/m5paper',
30
41
  'esp32/m5core_ink',
31
42
  'esp32/heltec_wifi_kit_32',
@@ -35,11 +46,24 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
35
46
  'esp32/kaluga',
36
47
  'esp32/saola_wroom',
37
48
  'esp32/saola_wrover',
49
+ 'esp32/esp32s3',
50
+ 'esp32/esp32c3',
51
+ 'esp32/c3_32s_kit',
52
+ 'esp32/c3_32s_kit_2m',
38
53
  'wasm',
39
54
  'pico',
55
+ 'pico/pico_w',
40
56
  'pico/ili9341',
41
57
  'pico/pico_display',
42
58
  'pico/pico_display_2',
59
+ 'pico/pico_lcd_1.3',
60
+ 'pico/itsybitsy',
61
+ 'pico/lilygo_t_display',
62
+ 'pico/picosystem',
63
+ 'pico/qtpy',
64
+ 'pico/tiny2040',
65
+ 'pico/xiao_rp2040',
66
+ 'pico/pro_micro',
43
67
  'simulator/moddable_one',
44
68
  'simulator/moddable_two',
45
69
  'simulator/moddable_three',
@@ -65,9 +89,43 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
65
89
  process.exit(0);
66
90
  }
67
91
  }
92
+ if (targetPlatform !== '') {
93
+ if (targetPlatform.includes('esp32')) {
94
+ if (typeof process.env.IDF_PATH !== 'string' ||
95
+ gluegun_1.filesystem.exists(process.env.IDF_PATH) !== 'dir') {
96
+ 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.');
97
+ process.exit(1);
98
+ }
99
+ }
100
+ else if (targetPlatform.includes('esp')) {
101
+ if (typeof process.env.ESP_BASE !== 'string' ||
102
+ gluegun_1.filesystem.exists(process.env.ESP_BASE) !== 'dir') {
103
+ 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.');
104
+ process.exit(1);
105
+ }
106
+ }
107
+ if (targetPlatform.includes('wasm')) {
108
+ if (!((_a = process.env.PATH) !== null && _a !== void 0 ? _a : '').includes('binaryen') ||
109
+ gluegun_1.filesystem.exists((_b = process.env.EMSDK) !== null && _b !== void 0 ? _b : '') !== 'dir' ||
110
+ gluegun_1.filesystem.exists((_c = process.env.EMSDK_NODE) !== null && _c !== void 0 ? _c : '') !== 'file' ||
111
+ gluegun_1.filesystem.exists((_d = process.env.EMSDK_PYTHON) !== null && _d !== void 0 ? _d : '') !== 'file') {
112
+ 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.');
113
+ process.exit(1);
114
+ }
115
+ }
116
+ if (targetPlatform.includes('pico')) {
117
+ if (typeof process.env.PICO_SDK_PATH !== 'string' ||
118
+ gluegun_1.filesystem.exists(process.env.PICO_SDK_PATH) !== 'dir' ||
119
+ gluegun_1.system.which('picotool') === null ||
120
+ gluegun_1.filesystem.exists((_e = process.env.PIOASM) !== null && _e !== void 0 ? _e : '') !== 'file') {
121
+ 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.');
122
+ process.exit(1);
123
+ }
124
+ }
125
+ }
68
126
  if (listExamples) {
69
127
  const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples');
70
- const examples = (_a = gluegun_1.filesystem.inspectTree(exampleProjectPath)) === null || _a === void 0 ? void 0 : _a.children;
128
+ const examples = (_f = gluegun_1.filesystem.inspectTree(exampleProjectPath)) === null || _f === void 0 ? void 0 : _f.children;
71
129
  const choices = examples !== undefined
72
130
  ? examples.map((example) => (0, choices_1.collectChoicesFromTree)(example)).flat()
73
131
  : [];
@@ -142,4 +200,4 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
142
200
  }
143
201
  }
144
202
  exports.build = build;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrRUFBbUM7QUFDbkMsK0JBQW1DO0FBQ25DLHFDQUEyRDtBQUMzRCwrQ0FBMEQ7QUFnQm5ELEtBQUssVUFBVSxLQUFLLENBQUMsRUFDMUIsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFlBQVksRUFDWixTQUFTLEdBQ0M7O0lBQ1YsSUFBSSxXQUFXLEVBQUU7UUFDZixNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUs7WUFDTCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsT0FBTztZQUNQLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsTUFBTTtZQUNOLE1BQU07WUFDTixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix3QkFBd0I7WUFDeEIsd0JBQXdCO1lBQ3hCLDBCQUEwQjtZQUMxQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsMEJBQTBCO1NBQzNCLENBQUE7UUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sZ0JBQU0sQ0FBQyxHQUFHLENBQUM7WUFDbEQ7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxR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
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBeUM7QUFDekMsa0VBQW1DO0FBQ25DLCtCQUFtQztBQUNuQyxxQ0FBMkQ7QUFDM0QsK0NBQTBEO0FBQzFELGdEQUFrRDtBQUNsRCwrQ0FBZ0Q7QUFpQnpDLEtBQUssVUFBVSxLQUFLLENBQUMsRUFDMUIsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFlBQVksRUFDWixTQUFTLEdBQ0M7O0lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUVqRCxJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUU7UUFDckIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsSUFBSSxXQUFXLEVBQUU7UUFDZixNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUs7WUFDTCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsT0FBTztZQUNQLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixv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
@@ -4,11 +4,14 @@ exports.DEVICE_ALIAS = void 0;
4
4
  exports.DEVICE_ALIAS = Object.freeze({
5
5
  esp8266: 'esp',
6
6
  darwin: 'mac',
7
+ mac: 'mac',
7
8
  windows_nt: 'win',
9
+ win: 'win',
8
10
  linux: 'lin',
11
+ lin: 'lin',
9
12
  esp: 'esp',
10
13
  esp32: 'esp32',
11
14
  wasm: 'wasm',
12
15
  pico: 'pico',
13
16
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3Byb21wdC9kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsWUFBWSxHQUF1QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7SUFDYixVQUFVLEVBQUUsS0FBSztJQUNqQixLQUFLLEVBQUUsS0FBSztJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQyxDQUFBIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3Byb21wdC9kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsWUFBWSxHQUF1QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQyxDQUFBIn0=