xs-dev 0.25.13 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,9 +14,24 @@ The Moddable SDK and associated dev board tooling is incredibly empowering for e
14
14
 
15
15
  _If you've never installed Node.js before, check out the [getting started guide for xs-dev](https://hipsterbrown.github.io/xs-dev/guide/00-prepare#nodejs-package-manager-optional)._
16
16
 
17
+ [XZ utils](https://tukaani.org/xz/) are required to install the CLI due to a dependency for decompressing the ARM toolchain used for nrf52 development.
18
+
19
+ It can be installed with Homebrew on MacOS:
20
+
21
+ ```
22
+ brew install xz
23
+ ```
24
+
25
+ Or as `xz-utils` on Linux distributions like [Ubunutu](https://packages.ubuntu.com/search?keywords=xz-utils):
26
+
27
+ ```
28
+ apt-get install xz-utils
29
+ ```
30
+
17
31
  **On Linux:**
18
32
 
19
- Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/bionic/ssh-askpass) to prompt for permission when installing other tools and dependencies.
33
+ Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/focal/ssh-askpass) to prompt for permission when installing other tools and dependencies.
34
+
20
35
 
21
36
  ## Install
22
37
 
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const os_1 = require("os");
7
7
  const fontbm_1 = __importDefault(require("../toolbox/setup/fontbm"));
8
+ const ejectfix_1 = __importDefault(require("../toolbox/setup/ejectfix"));
8
9
  const devices_1 = require("../toolbox/prompt/devices");
9
10
  const constants_1 = require("../toolbox/setup/constants");
10
11
  const command = {
@@ -20,6 +21,7 @@ const command = {
20
21
  'esp32',
21
22
  'pico',
22
23
  'wasm',
24
+ 'nrf52',
23
25
  devices_1.DEVICE_ALIAS[currentPlatform],
24
26
  ];
25
27
  const { device: selectedDevice } = await prompt.ask([
@@ -39,11 +41,14 @@ const command = {
39
41
  }
40
42
  }
41
43
  if (tool !== undefined) {
42
- if (tool !== 'fontbm') {
44
+ if (!['fontbm', 'ejectfix'].includes(tool)) {
43
45
  print.warning(`Unknown tool ${tool}`);
44
- process.exit(0);
46
+ process.exit(1);
45
47
  }
46
- await (0, fontbm_1.default)();
48
+ if (tool === 'fontbm')
49
+ await (0, fontbm_1.default)();
50
+ if (tool === 'ejectfix')
51
+ await (0, ejectfix_1.default)();
47
52
  return;
48
53
  }
49
54
  const platformDevices = [
@@ -63,4 +68,4 @@ const command = {
63
68
  },
64
69
  };
65
70
  exports.default = command;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQkFBeUM7QUFFekMscUVBQWlEO0FBQ2pELHVEQUF3RDtBQUN4RCwwREFBMEQ7QUFXMUQsTUFBTSxPQUFPLEdBQWlDO0lBQzVDLElBQUksRUFBRSxPQUFPO0lBQ2IsV0FBVyxFQUNULGtFQUFrRTtJQUNwRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNsRCxNQUFNLGVBQWUsR0FBVyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEVBQ04sV0FBVyxHQUFHLEtBQUssRUFDbkIsSUFBSSxFQUNKLFlBQVksR0FBRyxnQkFBZ0IsRUFDL0IsVUFBVSxHQUFHLHlCQUFhLEdBQzNCLEdBQWlCLFVBQVUsQ0FBQyxPQUFPLENBQUE7UUFDcEMsSUFBSSxNQUFNLEdBQVcsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksZUFBZSxDQUFBO1FBRTlDLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxXQUFXLEVBQUU7WUFDdkMsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsU0FBUztnQkFDVCxPQUFPO2dCQUNQLE1BQU07Z0JBQ04sTUFBTTtnQkFDTixzQkFBWSxDQUFDLGVBQWUsQ0FBQzthQUM5QixDQUFBO1lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2xEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxPQUFPO2lCQUNSO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3pELE1BQU0sR0FBRyxjQUF3QixDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtZQUNELE1BQU0sSUFBQSxnQkFBVyxHQUFFLENBQUE7WUFDbkIsT0FBTTtTQUNQO1FBQ0QsTUFBTSxlQUFlLEdBQWE7WUFDaEMsS0FBSztZQUNMLFFBQVE7WUFDUixZQUFZO1lBQ1osS0FBSztZQUNMLEtBQUs7WUFDTCxPQUFPO1NBQ1IsQ0FBQTtRQUNELElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO1NBQ2xEO2FBQU07WUFDTCxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7U0FDdEM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQkFBeUM7QUFFekMscUVBQWlEO0FBQ2pELHlFQUFxRDtBQUNyRCx1REFBd0Q7QUFDeEQsMERBQTBEO0FBVzFELE1BQU0sT0FBTyxHQUFpQztJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLFdBQVcsRUFDVCxrRUFBa0U7SUFDcEUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbEQsTUFBTSxlQUFlLEdBQVcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxFQUNOLFdBQVcsR0FBRyxLQUFLLEVBQ25CLElBQUksRUFDSixZQUFZLEdBQUcsZ0JBQWdCLEVBQy9CLFVBQVUsR0FBRyx5QkFBYSxHQUMzQixHQUFpQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ3BDLElBQUksTUFBTSxHQUFXLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLGVBQWUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVM7Z0JBQ1QsT0FBTztnQkFDUCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxzQkFBWSxDQUFDLGVBQWUsQ0FBQzthQUM5QixDQUFBO1lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2xEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxPQUFPO2lCQUNSO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3pELE1BQU0sR0FBRyxjQUF3QixDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7WUFDRCxJQUFJLElBQUksS0FBSyxRQUFRO2dCQUFFLE1BQU0sSUFBQSxnQkFBVyxHQUFFLENBQUE7WUFDMUMsSUFBSSxJQUFJLEtBQUssVUFBVTtnQkFBRSxNQUFNLElBQUEsa0JBQWEsR0FBRSxDQUFBO1lBQzlDLE9BQU07U0FDUDtRQUNELE1BQU0sZUFBZSxHQUFhO1lBQ2hDLEtBQUs7WUFDTCxRQUFRO1lBQ1IsWUFBWTtZQUNaLEtBQUs7WUFDTCxLQUFLO1lBQ0wsT0FBTztTQUNSLENBQUE7UUFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQTtTQUNsRDthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ3RDO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==
@@ -6,6 +6,7 @@ const command = {
6
6
  name: 'teardown',
7
7
  description: 'Remove all installed git repos and toolchains, unset environment changes',
8
8
  run: async ({ print, filesystem, patching }) => {
9
+ var _a;
9
10
  const PROFILE_PATH = (0, constants_1.getProfilePath)();
10
11
  const spinner = print.spin();
11
12
  spinner.start('Tearing down Moddable tools and platform dependencies');
@@ -16,7 +17,13 @@ const command = {
16
17
  filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'esp'));
17
18
  filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'pico'));
18
19
  filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'fontbm'));
20
+ filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'nrf52'));
19
21
  if ((0, os_1.type)() === 'Darwin') {
22
+ const NC_PREFS_BACKUP = filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix', 'com.apple.ncprefs.plist');
23
+ if (filesystem.exists(NC_PREFS_BACKUP) === 'file') {
24
+ filesystem.copy(NC_PREFS_BACKUP, filesystem.resolve((_a = process.env.HOME) !== null && _a !== void 0 ? _a : '~', 'Library', 'Preferences', 'com.apple.ncprefs.plist'), { overwrite: true });
25
+ }
26
+ filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix'));
20
27
  filesystem.remove('/Applications/xsbug.app');
21
28
  }
22
29
  await patching.patch(PROFILE_PATH, {
@@ -26,4 +33,4 @@ const command = {
26
33
  },
27
34
  };
28
35
  exports.default = command;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBeUM7QUFFekMsMERBSW1DO0FBRW5DLE1BQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsVUFBVTtJQUNoQixXQUFXLEVBQ1QsMEVBQTBFO0lBQzVFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDN0MsTUFBTSxZQUFZLEdBQUcsSUFBQSwwQkFBYyxHQUFFLENBQUE7UUFDckMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQTtRQUV0RSxVQUFVLENBQUMsTUFBTSxDQUFDLDZCQUFpQixDQUFDLENBQUE7UUFDcEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUM5RCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzFELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDM0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN6RCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzFELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFFNUQsSUFBSSxJQUFBLFNBQVksR0FBRSxLQUFLLFFBQVEsRUFBRTtZQUMvQixVQUFVLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUE7U0FDN0M7UUFFRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxVQUFVLDZCQUFpQixFQUFFO1NBQ3RDLENBQUMsQ0FBQTtRQUVGLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBeUM7QUFFekMsMERBSW1DO0FBRW5DLE1BQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsVUFBVTtJQUNoQixXQUFXLEVBQ1QsMEVBQTBFO0lBQzVFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7O1FBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUEsMEJBQWMsR0FBRSxDQUFBO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFFdEUsVUFBVSxDQUFDLE1BQU0sQ0FBQyw2QkFBaUIsQ0FBQyxDQUFBO1FBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDOUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzNELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDekQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzVELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFM0QsSUFBSSxJQUFBLFNBQVksR0FBRSxLQUFLLFFBQVEsRUFBRTtZQUMvQixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUN4Qyx1QkFBVyxFQUNYLFVBQVUsRUFDVix5QkFBeUIsQ0FDMUIsQ0FBQTtZQUNELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxJQUFJLENBQ2IsZUFBZSxFQUNmLFVBQVUsQ0FBQyxPQUFPLENBQ2hCLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1DQUFJLEdBQUcsRUFDdkIsU0FBUyxFQUNULGFBQWEsRUFDYix5QkFBeUIsQ0FDMUIsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FDcEIsQ0FBQTthQUNGO1lBQ0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUM5RCxVQUFVLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUE7U0FDN0M7UUFFRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxVQUFVLDZCQUFpQixFQUFFO1NBQ3RDLENBQUMsQ0FBQTtRQUVGLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
@@ -10,6 +10,7 @@ const esp8266_1 = __importDefault(require("../toolbox/setup/esp8266"));
10
10
  const esp32_1 = __importDefault(require("../toolbox/setup/esp32"));
11
11
  const wasm_1 = __importDefault(require("../toolbox/setup/wasm"));
12
12
  const pico_1 = __importDefault(require("../toolbox/setup/pico"));
13
+ const nrf52_1 = __importDefault(require("../toolbox/setup/nrf52"));
13
14
  exports.default = async (toolbox) => {
14
15
  toolbox.setup = {
15
16
  darwin: mac_1.default,
@@ -23,6 +24,7 @@ exports.default = async (toolbox) => {
23
24
  esp32: esp32_1.default,
24
25
  wasm: wasm_1.default,
25
26
  pico: pico_1.default,
27
+ nrf52: nrf52_1.default,
26
28
  };
27
29
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2V0dXAtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTJDO0FBQzNDLG1FQUErQztBQUMvQyx1RUFBbUQ7QUFDbkQsdUVBQW1EO0FBQ25ELG1FQUErQztBQUMvQyxpRUFBNkM7QUFDN0MsaUVBQTZDO0FBRTdDLGtCQUFlLEtBQUssRUFBRSxPQUFxQixFQUFpQixFQUFFO0lBQzVELE9BQU8sQ0FBQyxLQUFLLEdBQUc7UUFDZCxNQUFNLEVBQUUsYUFBUTtRQUNoQixHQUFHLEVBQUUsYUFBUTtRQUNiLEtBQUssRUFBRSxlQUFVO1FBQ2pCLEdBQUcsRUFBRSxlQUFVO1FBQ2YsVUFBVSxFQUFFLGlCQUFZO1FBQ3hCLEdBQUcsRUFBRSxpQkFBWTtRQUNqQixHQUFHLEVBQUUsaUJBQVk7UUFDakIsT0FBTyxFQUFFLGlCQUFZO1FBQ3JCLEtBQUssRUFBRSxlQUFVO1FBQ2pCLElBQUksRUFBRSxjQUFTO1FBQ2YsSUFBSSxFQUFFLGNBQVM7S0FDaEIsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2V0dXAtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTJDO0FBQzNDLG1FQUErQztBQUMvQyx1RUFBbUQ7QUFDbkQsdUVBQW1EO0FBQ25ELG1FQUErQztBQUMvQyxpRUFBNkM7QUFDN0MsaUVBQTZDO0FBQzdDLG1FQUErQztBQUUvQyxrQkFBZSxLQUFLLEVBQUUsT0FBcUIsRUFBaUIsRUFBRTtJQUM1RCxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsTUFBTSxFQUFFLGFBQVE7UUFDaEIsR0FBRyxFQUFFLGFBQVE7UUFDYixLQUFLLEVBQUUsZUFBVTtRQUNqQixHQUFHLEVBQUUsZUFBVTtRQUNmLFVBQVUsRUFBRSxpQkFBWTtRQUN4QixHQUFHLEVBQUUsaUJBQVk7UUFDakIsR0FBRyxFQUFFLGlCQUFZO1FBQ2pCLE9BQU8sRUFBRSxpQkFBWTtRQUNyQixLQUFLLEVBQUUsZUFBVTtRQUNqQixJQUFJLEVBQUUsY0FBUztRQUNmLElBQUksRUFBRSxjQUFTO1FBQ2YsS0FBSyxFQUFFLGVBQVU7S0FDbEIsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
@@ -10,6 +10,7 @@ const esp8266_1 = __importDefault(require("../toolbox/update/esp8266"));
10
10
  const esp32_1 = __importDefault(require("../toolbox/update/esp32"));
11
11
  const wasm_1 = __importDefault(require("../toolbox/update/wasm"));
12
12
  const pico_1 = __importDefault(require("../toolbox/update/pico"));
13
+ const nrf52_1 = __importDefault(require("../toolbox/update/nrf52"));
13
14
  exports.default = async (toolbox) => {
14
15
  toolbox.update = {
15
16
  darwin: mac_1.default,
@@ -23,6 +24,7 @@ exports.default = async (toolbox) => {
23
24
  esp32: esp32_1.default,
24
25
  wasm: wasm_1.default,
25
26
  pico: pico_1.default,
27
+ nrf52: nrf52_1.default,
26
28
  };
27
29
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3VwZGF0ZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxnRUFBNkM7QUFDN0Msb0VBQWlEO0FBQ2pELHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsb0VBQWlEO0FBQ2pELGtFQUErQztBQUMvQyxrRUFBK0M7QUFFL0Msa0JBQWUsS0FBSyxFQUFFLE9BQXFCLEVBQWlCLEVBQUU7SUFDNUQsT0FBTyxDQUFDLE1BQU0sR0FBRztRQUNmLE1BQU0sRUFBRSxhQUFTO1FBQ2pCLEdBQUcsRUFBRSxhQUFTO1FBQ2QsS0FBSyxFQUFFLGVBQVc7UUFDbEIsR0FBRyxFQUFFLGVBQVc7UUFDaEIsVUFBVSxFQUFFLGlCQUFhO1FBQ3pCLEdBQUcsRUFBRSxpQkFBYTtRQUNsQixHQUFHLEVBQUUsaUJBQWE7UUFDbEIsT0FBTyxFQUFFLGlCQUFhO1FBQ3RCLEtBQUssRUFBRSxlQUFXO1FBQ2xCLElBQUksRUFBRSxjQUFVO1FBQ2hCLElBQUksRUFBRSxjQUFVO0tBQ2pCLENBQUE7QUFDSCxDQUFDLENBQUEifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3VwZGF0ZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxnRUFBNkM7QUFDN0Msb0VBQWlEO0FBQ2pELHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsb0VBQWlEO0FBQ2pELGtFQUErQztBQUMvQyxrRUFBK0M7QUFDL0Msb0VBQWlEO0FBRWpELGtCQUFlLEtBQUssRUFBRSxPQUFxQixFQUFpQixFQUFFO0lBQzVELE9BQU8sQ0FBQyxNQUFNLEdBQUc7UUFDZixNQUFNLEVBQUUsYUFBUztRQUNqQixHQUFHLEVBQUUsYUFBUztRQUNkLEtBQUssRUFBRSxlQUFXO1FBQ2xCLEdBQUcsRUFBRSxlQUFXO1FBQ2hCLFVBQVUsRUFBRSxpQkFBYTtRQUN6QixHQUFHLEVBQUUsaUJBQWE7UUFDbEIsR0FBRyxFQUFFLGlCQUFhO1FBQ2xCLE9BQU8sRUFBRSxpQkFBYTtRQUN0QixLQUFLLEVBQUUsZUFBVztRQUNsQixJQUFJLEVBQUUsY0FBVTtRQUNoQixJQUFJLEVBQUUsY0FBVTtRQUNoQixLQUFLLEVBQUUsZUFBVztLQUNuQixDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
@@ -14,7 +14,7 @@ const moddable_1 = require("../setup/moddable");
14
14
  const devices_1 = require("../prompt/devices");
15
15
  const exec_1 = require("../system/exec");
16
16
  async function build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }) {
17
- var _a, _b, _c, _d, _e, _f;
17
+ var _a, _b, _c, _d, _e, _f, _g;
18
18
  const OS = (0, node_os_1.type)().toLowerCase();
19
19
  await (0, exec_1.sourceEnvironment)();
20
20
  if (!(0, moddable_1.moddableExists)()) {
@@ -68,9 +68,16 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
68
68
  'pico/tiny2040',
69
69
  'pico/xiao_rp2040',
70
70
  'pico/pro_micro',
71
+ 'nrf52/moddable_four',
72
+ 'nrf52/dk',
73
+ 'nrf52/sparkfun',
74
+ 'nrf52/makerdiary',
75
+ 'nrf52/xiao',
76
+ 'nrf52/itsybitsy',
71
77
  'simulator/moddable_one',
72
78
  'simulator/moddable_two',
73
79
  'simulator/moddable_three',
80
+ 'simulator/moddable_four',
74
81
  'simulator/m5stickc',
75
82
  'simulator/m5paper',
76
83
  'simulator/nodemcu',
@@ -129,10 +136,14 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
129
136
  }
130
137
  if (listExamples) {
131
138
  const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples');
139
+ const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed');
132
140
  const examples = (_f = gluegun_1.filesystem.inspectTree(exampleProjectPath)) === null || _f === void 0 ? void 0 : _f.children;
141
+ const contributed = (_g = gluegun_1.filesystem.inspectTree(contributedProjectPath)) === null || _g === void 0 ? void 0 : _g.children;
133
142
  const choices = examples !== undefined
134
143
  ? examples.map((example) => (0, choices_1.collectChoicesFromTree)(example)).flat()
135
144
  : [];
145
+ if (contributed !== undefined)
146
+ choices.push(...contributed.map((project) => (0, choices_1.collectChoicesFromTree)(project)).flat());
136
147
  const { example: selectedExample } = await gluegun_1.prompt.ask([
137
148
  {
138
149
  type: 'autocomplete',
@@ -152,23 +163,29 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
152
163
  }
153
164
  if (example !== undefined) {
154
165
  const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples', example);
155
- if (gluegun_1.filesystem.exists(exampleProjectPath) === false) {
166
+ const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed', example);
167
+ if (gluegun_1.filesystem.exists(exampleProjectPath) === false &&
168
+ gluegun_1.filesystem.exists(contributedProjectPath) === false) {
156
169
  gluegun_1.print.error('Example project does not exist.');
157
170
  gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
158
171
  process.exit(1);
159
172
  }
160
- if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(exampleProjectPath, 'manifest.json')) === false) {
173
+ if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(exampleProjectPath, 'manifest.json')) === false &&
174
+ gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(contributedProjectPath, 'manifest.json')) === false) {
161
175
  gluegun_1.print.error('Example project must contain a manifest.json.');
162
176
  gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
163
177
  process.exit(1);
164
178
  }
165
- projectPath = exampleProjectPath;
179
+ projectPath =
180
+ gluegun_1.filesystem.exists(exampleProjectPath) === 'dir'
181
+ ? exampleProjectPath
182
+ : contributedProjectPath;
166
183
  }
167
184
  if (port !== undefined) {
168
185
  process.env.UPLOAD_PORT = port;
169
186
  }
170
187
  const spinner = gluegun_1.print.spin();
171
- spinner.start(`Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}`);
188
+ spinner.start(`Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}\n`);
172
189
  const configArgs = [
173
190
  '-m',
174
191
  `-p ${targetPlatform}`,
@@ -197,12 +214,21 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
197
214
  });
198
215
  }
199
216
  else {
200
- await gluegun_1.system.exec(`mcconfig ${configArgs.join(' ')}`, {
201
- cwd: projectPath,
202
- stdout: process.stdout,
203
- stdin: process.stdin,
204
- shell: true,
217
+ process.on('SIGINT', () => {
218
+ void gluegun_1.system.exec(`pkill serial2xsbug`);
205
219
  });
220
+ try {
221
+ await gluegun_1.system.exec(`mcconfig ${configArgs.join(' ')}`, {
222
+ cwd: projectPath,
223
+ stdio: 'inherit',
224
+ shell: true,
225
+ });
226
+ }
227
+ catch (error) {
228
+ if (error instanceof Error && !error.message.includes('exit code 2')) {
229
+ gluegun_1.print.error(error);
230
+ }
231
+ }
206
232
  if (deployStatus === 'push') {
207
233
  await gluegun_1.system.exec(`mcconfig -t deploy -p ${targetPlatform} -o ${outputDir}`, {
208
234
  cwd: projectPath,
@@ -225,4 +251,4 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
225
251
  }
226
252
  }
227
253
  exports.build = build;
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBMEM7QUFDMUMscUNBQThDO0FBQzlDLGtFQUFtQztBQUNuQywrQkFBbUM7QUFDbkMscUNBQTJEO0FBQzNELCtDQUEwRDtBQUMxRCxnREFBa0Q7QUFDbEQsK0NBQWdEO0FBRWhELHlDQUFrRDtBQWtCM0MsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUMxQixXQUFXLEVBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxZQUFZLEVBQ1osR0FBRyxHQUFHLEtBQUssRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FBRyxFQUFFLEdBQ0Q7O0lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBQSxjQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUVqRCxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUU7UUFDckIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLElBQVQsU0FBUyxHQUFLLG9CQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFBO0lBRXZFLElBQUksV0FBVyxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLO1lBQ0wsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLE9BQU87WUFDUCxvQkFBb0I7WUFD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
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBMEM7QUFDMUMscUNBQThDO0FBQzlDLGtFQUFtQztBQUNuQywrQkFBbUM7QUFDbkMscUNBQTJEO0FBQzNELCtDQUEwRDtBQUMxRCxnREFBa0Q7QUFDbEQsK0NBQWdEO0FBRWhELHlDQUFrRDtBQWtCM0MsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUMxQixXQUFXLEVBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxZQUFZLEVBQ1osR0FBRyxHQUFHLEtBQUssRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FBRyxFQUFFLEdBQ0Q7O0lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBQSxjQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUVqRCxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUU7UUFDckIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLElBQVQsU0FBUyxHQUFLLG9CQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFBO0lBRXZFLElBQUksV0FBVyxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLO1lBQ0wsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLE9BQU87WUFDUCxvQkFBb0I7WUFD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
@@ -13,5 +13,6 @@ exports.DEVICE_ALIAS = Object.freeze({
13
13
  esp32: 'esp32',
14
14
  wasm: 'wasm',
15
15
  pico: 'pico',
16
+ nrf52: 'nrf52',
16
17
  });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3Byb21wdC9kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsWUFBWSxHQUF1QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQyxDQUFBIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3Byb21wdC9kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsWUFBWSxHQUF1QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDLENBQUEifQ==
@@ -0,0 +1,62 @@
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 gluegun_1 = require("gluegun");
7
+ const constants_1 = require("./constants");
8
+ const os_1 = require("os");
9
+ const simple_plist_1 = __importDefault(require("simple-plist"));
10
+ const NC_PREFS_PLIST = 'com.apple.ncprefs.plist';
11
+ const DISK_AGENT_NC_PREF_ID = '_SYSTEM_CENTER_:com.apple.DiskArbitration.DiskArbitrationAgent';
12
+ async function default_1() {
13
+ var _a;
14
+ const spinner = gluegun_1.print.spin();
15
+ spinner.start('Beginning setup...');
16
+ const OS = (0, os_1.type)().toLowerCase();
17
+ if (OS !== 'darwin') {
18
+ gluegun_1.print.error(`OS "${OS}" not supported`);
19
+ process.exit(1);
20
+ }
21
+ const PREFS_DIR = gluegun_1.filesystem.resolve((_a = process.env.HOME) !== null && _a !== void 0 ? _a : '~', 'Library', 'Preferences');
22
+ const PREFS_BACKUP_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix');
23
+ const NC_PREFS_PATH = gluegun_1.filesystem.resolve(PREFS_DIR, NC_PREFS_PLIST);
24
+ gluegun_1.filesystem.dir(PREFS_BACKUP_DIR);
25
+ if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(PREFS_BACKUP_DIR, NC_PREFS_PLIST)) !==
26
+ false) {
27
+ spinner.info('A backup of your notification preferences already exists.');
28
+ const shouldContinue = await gluegun_1.prompt.confirm('Would you like to override this backup and continue?');
29
+ if (!shouldContinue) {
30
+ gluegun_1.print.info('Cancelling ejectfix setup.');
31
+ process.exit(0);
32
+ }
33
+ }
34
+ if (gluegun_1.filesystem.exists(NC_PREFS_PATH) === false) {
35
+ spinner.fail(`Cannot find notification preferences file: ${NC_PREFS_PATH}`);
36
+ process.exit(1);
37
+ }
38
+ try {
39
+ gluegun_1.filesystem.copy(NC_PREFS_PATH, gluegun_1.filesystem.resolve(PREFS_BACKUP_DIR, NC_PREFS_PLIST), { overwrite: true });
40
+ }
41
+ catch (error) {
42
+ spinner.fail(`Error copying notification preferences: ${String(error)}`);
43
+ process.exit(1);
44
+ }
45
+ try {
46
+ const prefs = simple_plist_1.default.readFileSync(NC_PREFS_PATH);
47
+ for (const app of prefs.apps) {
48
+ if (app['bundle-id'] === DISK_AGENT_NC_PREF_ID) {
49
+ app.flags = (Number(app.flags) & ~0b00010000) | 0b01001000;
50
+ }
51
+ }
52
+ simple_plist_1.default.writeBinaryFileSync(NC_PREFS_PATH, prefs);
53
+ }
54
+ catch (error) {
55
+ spinner.fail(`Unable to update notification preferences: ${String(error)}`);
56
+ process.exit(1);
57
+ }
58
+ await gluegun_1.system.exec('killall usernoted cfprefsd');
59
+ spinner.succeed('Successfully updated notification preferences for `DISK NOT EJECTED PROPERLY` warning!');
60
+ }
61
+ exports.default = default_1;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWplY3RmaXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9lamVjdGZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUEyRDtBQUMzRCwyQ0FBeUM7QUFDekMsMkJBQXlDO0FBQ3pDLGdFQUFnQztBQUVoQyxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQTtBQUNoRCxNQUFNLHFCQUFxQixHQUN6QixnRUFBZ0UsQ0FBQTtBQUVuRCxLQUFLOztJQUNsQixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBRW5DLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsSUFBSSxFQUFFLEtBQUssUUFBUSxFQUFFO1FBQ25CLGVBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQ0FBSSxHQUFHLEVBQ3ZCLFNBQVMsRUFDVCxhQUFhLENBQ2QsQ0FBQTtJQUNELE1BQU0sZ0JBQWdCLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUNwRSxNQUFNLGFBQWEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFbkUsb0JBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUVoQyxJQUNFLG9CQUFVLENBQUMsTUFBTSxDQUFDLG9CQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssRUFDTDtRQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQTtRQUN6RSxNQUFNLGNBQWMsR0FBRyxNQUFNLGdCQUFNLENBQUMsT0FBTyxDQUN6QyxzREFBc0QsQ0FDdkQsQ0FBQTtRQUNELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsZUFBSyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEI7S0FDRjtJQUNELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsOENBQThDLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELElBQUk7UUFDRixvQkFBVSxDQUFDLElBQUksQ0FDYixhQUFhLEVBQ2Isb0JBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQ3BELEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFBO0tBQ0Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELElBQUk7UUFDRixNQUFNLEtBQUssR0FDVCxzQkFBSyxDQUFDLFlBQVksQ0FFZixhQUFhLENBQUMsQ0FBQTtRQUNuQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUsscUJBQXFCLEVBQUU7Z0JBQzlDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFBO2FBQzNEO1NBQ0Y7UUFDRCxzQkFBSyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUNoRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQ2Isd0ZBQXdGLENBQ3pGLENBQUE7QUFDSCxDQUFDO0FBckVELDRCQXFFQyJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installPython = void 0;
4
+ const gluegun_1 = require("gluegun");
5
+ async function installPython(spinner) {
6
+ if (gluegun_1.system.which('python') === null) {
7
+ // For some reason, system.which does not work with winget. This is a workaround for now.
8
+ try {
9
+ await gluegun_1.system.exec('where winget');
10
+ }
11
+ catch (error) {
12
+ gluegun_1.print.error('Python 2.7 is required.');
13
+ gluegun_1.print.info('You can download and install Python from python.org/downloads');
14
+ gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
15
+ gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
16
+ gluegun_1.print.info('Please install either Python or winget, then launch a new Command Prompt and re-run this setup.');
17
+ throw new Error('Python is required');
18
+ }
19
+ spinner.start('Installing python from winget');
20
+ await gluegun_1.system.exec('winget install -e --id Python.Python.2 --silent');
21
+ spinner.succeed();
22
+ gluegun_1.print.info('Python successfully installed. Please close this window and launch a new Moddable Command Prompt to refresh environment variables, then re-run this setup.');
23
+ throw new Error('Command Prompt restart needed');
24
+ }
25
+ }
26
+ exports.installPython = installPython;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL25yZjUyL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFEO0FBRTlDLEtBQUssVUFBVSxhQUFhLENBQ2pDLE9BQXlDO0lBRXpDLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25DLHlGQUF5RjtRQUN6RixJQUFJO1lBQ0YsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUNsQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsZUFBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLGVBQUssQ0FBQyxJQUFJLENBQ1IsK0RBQStELENBQ2hFLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGtIQUFrSCxDQUNuSCxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUiw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsaUdBQWlHLENBQ2xHLENBQUE7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7U0FDdEM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDOUMsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNqQixlQUFLLENBQUMsSUFBSSxDQUNSLDRKQUE0SixDQUM3SixDQUFBO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0tBQ2pEO0FBQ0gsQ0FBQztBQWhDRCxzQ0FnQ0MifQ==
@@ -0,0 +1,125 @@
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 axios_1 = __importDefault(require("axios"));
7
+ const fs_1 = require("fs");
8
+ const gluegun_1 = require("gluegun");
9
+ const os_1 = require("os");
10
+ const stream_1 = require("stream");
11
+ const tar_fs_1 = require("tar-fs");
12
+ const util_1 = require("util");
13
+ const unzip_stream_1 = require("unzip-stream");
14
+ // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
15
+ // @ts-ignore
16
+ const node_liblzma_1 = require("node-liblzma");
17
+ const devices_1 = require("../prompt/devices");
18
+ const exec_1 = require("../system/exec");
19
+ const constants_1 = require("./constants");
20
+ const moddable_1 = require("./moddable");
21
+ const windows_1 = require("./windows");
22
+ const upsert_1 = __importDefault(require("../patching/upsert"));
23
+ const windows_2 = require("./nrf52/windows");
24
+ const finishedPromise = (0, util_1.promisify)(stream_1.finished);
25
+ const ARCH_ALIAS = {
26
+ darwin_arm64: 'darwin-arm64',
27
+ darwin_x64: 'darwin-x86_64',
28
+ linux_x64: 'x86_64',
29
+ windows_nt_x64: 'mingw-w64-i686',
30
+ };
31
+ async function default_1() {
32
+ const OS = (0, os_1.type)().toLowerCase();
33
+ const isWindows = OS === 'windows_nt';
34
+ const TOOLCHAIN = `arm-gnu-toolchain-12.2.rel1-${ARCH_ALIAS[`${OS}_${(0, os_1.arch)()}`]}-arm-none-eabi`;
35
+ const TOOLCHAIN_DOWNLOAD = `https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/${TOOLCHAIN}.${isWindows ? 'zip' : 'tar.xz'}`;
36
+ const ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD = 'https://github.com/Moddable-OpenSource/tools/releases/download/v1.0.0/uf2conv.py';
37
+ const NRF5_SDK = 'nRF5_SDK_17.0.2_d674dde';
38
+ const NRF5_SDK_DOWNLOAD = `https://github.com/Moddable-OpenSource/tools/releases/download/v1.0.0/${NRF5_SDK}-mod.zip`;
39
+ const NRF52_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'nrf52');
40
+ const TOOLCHAIN_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, TOOLCHAIN);
41
+ const UF2CONV_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, 'uf2conv.py');
42
+ const NRF5_SDK_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, NRF5_SDK);
43
+ await (0, exec_1.sourceEnvironment)();
44
+ const spinner = gluegun_1.print.spin();
45
+ spinner.start('Setting up nrf52 tools');
46
+ if (!(0, moddable_1.moddableExists)()) {
47
+ spinner.fail(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
48
+ process.exit(1);
49
+ }
50
+ if (isWindows) {
51
+ await (0, windows_1.ensureModdableCommandPrompt)(spinner);
52
+ }
53
+ spinner.info('Ensuring nrf52 directory');
54
+ gluegun_1.filesystem.dir(NRF52_DIR);
55
+ if (gluegun_1.filesystem.exists(TOOLCHAIN_PATH) === false) {
56
+ spinner.start('Downloading GNU Arm Embedded Toolchain');
57
+ const writer = isWindows
58
+ ? (0, unzip_stream_1.Extract)({ path: NRF52_DIR })
59
+ : (0, tar_fs_1.extract)(NRF52_DIR, { readable: true });
60
+ const unxz = (0, node_liblzma_1.createUnxz)();
61
+ const response = await axios_1.default.get(TOOLCHAIN_DOWNLOAD, {
62
+ responseType: 'stream',
63
+ });
64
+ const stream = isWindows ? response.data : response.data.pipe(unxz);
65
+ stream.pipe(writer);
66
+ await finishedPromise(writer);
67
+ spinner.succeed();
68
+ }
69
+ if (gluegun_1.filesystem.exists(UF2CONV_PATH) === false) {
70
+ spinner.start('Downloading Adafruit nRF52 Bootloader');
71
+ const writer = (0, fs_1.createWriteStream)(UF2CONV_PATH, { mode: 0o755 });
72
+ const response = await axios_1.default.get(ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD, {
73
+ responseType: 'stream',
74
+ });
75
+ response.data.pipe(writer);
76
+ await finishedPromise(writer);
77
+ spinner.succeed();
78
+ }
79
+ if (gluegun_1.filesystem.exists(NRF5_SDK_PATH) === false) {
80
+ spinner.start('Downloading nRF5 SDK');
81
+ const writer = (0, unzip_stream_1.Extract)({ path: NRF52_DIR });
82
+ const response = await axios_1.default.get(NRF5_SDK_DOWNLOAD, {
83
+ responseType: 'stream',
84
+ });
85
+ response.data.pipe(writer);
86
+ await finishedPromise(writer);
87
+ spinner.succeed();
88
+ }
89
+ if (OS === 'darwin' || OS === 'linux') {
90
+ if (process.env.NRF_ROOT === undefined ||
91
+ process.env.NRF_SDK_DIR === undefined) {
92
+ spinner.info('Configuring $NRF_ROOT and $NRF_SDK_DIR');
93
+ process.env.NRF_ROOT = NRF52_DIR;
94
+ process.env.NRF_SDK_DIR = NRF5_SDK_PATH;
95
+ await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export NRF_ROOT=${process.env.NRF_ROOT}\nexport NRF_SDK_DIR=${process.env.NRF_SDK_DIR}`);
96
+ }
97
+ }
98
+ else {
99
+ process.env.NRF_ROOT = NRF52_DIR;
100
+ process.env.NRF52_SDK_PATH = NRF5_SDK_PATH;
101
+ await (0, windows_1.setEnv)('NRF_ROOT', NRF52_DIR);
102
+ await (0, windows_1.setEnv)('NRF52_SDK_PATH', NRF5_SDK_PATH);
103
+ try {
104
+ await (0, windows_2.installPython)(spinner);
105
+ }
106
+ catch (error) {
107
+ // Command Prompt restart needed
108
+ process.exit(1);
109
+ }
110
+ }
111
+ if (OS === 'linux') {
112
+ try {
113
+ await (0, exec_1.execWithSudo)('adduser $USER dialout', { process });
114
+ }
115
+ catch (_error) {
116
+ gluegun_1.print.warning(`Unable to provide ttyUSB0 permission to the current user. Please run "sudo adduser <username> dialout" before trying to attempting to build projects for your nrf52 device.`);
117
+ }
118
+ }
119
+ spinner.succeed(`
120
+ Successfully set up nrf52 platform support for Moddable!
121
+ Test out the setup by starting a new ${isWindows ? 'Moddable Command Prompt' : 'terminal session'}, plugging in your device, and running: xs-dev run --example helloworld --device nrf52
122
+ `);
123
+ }
124
+ exports.default = default_1;
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ucmY1Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUF5QjtBQUN6QiwyQkFBc0M7QUFDdEMscUNBQTJDO0FBQzNDLDJCQUErQztBQUMvQyxtQ0FBaUM7QUFDakMsbUNBQWdDO0FBQ2hDLCtCQUFnQztBQUNoQywrQ0FBb0Q7QUFDcEQscUVBQXFFO0FBQ3JFLGFBQWE7QUFDYiwrQ0FBeUM7QUFFekMsK0NBQWdEO0FBQ2hELHlDQUFnRTtBQUNoRSwyQ0FBNEQ7QUFDNUQseUNBQTJDO0FBQzNDLHVDQUErRDtBQUMvRCxnRUFBdUM7QUFDdkMsNkNBQStDO0FBRS9DLE1BQU0sZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxpQkFBUSxDQUFDLENBQUE7QUFFM0MsTUFBTSxVQUFVLEdBQTJCO0lBQ3pDLFlBQVksRUFBRSxjQUFjO0lBQzVCLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLGNBQWMsRUFBRSxnQkFBZ0I7Q0FDakMsQ0FBQTtBQUNjLEtBQUs7SUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUNqRCxNQUFNLFNBQVMsR0FBRyxFQUFFLEtBQUssWUFBWSxDQUFBO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLCtCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksSUFBQSxTQUFJLEdBQUUsRUFBRSxDQUM5QixnQkFBZ0IsQ0FBQTtJQUNoQixNQUFNLGtCQUFrQixHQUFHLDBFQUEwRSxTQUFTLElBQzVHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUN0QixFQUFFLENBQUE7SUFDRixNQUFNLDBDQUEwQyxHQUM5QyxrRkFBa0YsQ0FBQTtJQUNwRixNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQTtJQUMxQyxNQUFN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
@@ -9,6 +9,7 @@ const constants_1 = require("./constants");
9
9
  const upsert_1 = __importDefault(require("../patching/upsert"));
10
10
  const windows_shortcuts_1 = __importDefault(require("windows-shortcuts"));
11
11
  const util_1 = require("util");
12
+ const moddable_1 = require("./moddable");
12
13
  const wsPromise = (0, util_1.promisify)(windows_shortcuts_1.default.create);
13
14
  const SHORTCUT = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'Moddable Command Prompt.lnk');
14
15
  async function setEnv(name, permanentValue, envValue) {
@@ -41,8 +42,10 @@ async function ensureModdableCommandPrompt(spinner) {
41
42
  }
42
43
  }
43
44
  exports.ensureModdableCommandPrompt = ensureModdableCommandPrompt;
44
- async function default_1({ sourceRepo, }) {
45
+ async function default_1({ sourceRepo, targetBranch, }) {
46
+ var _a;
45
47
  const BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'win', 'release');
48
+ const DEBUG_BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'win', 'debug');
46
49
  const BUILD_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'makefiles', 'win');
47
50
  gluegun_1.print.info(`Setting up Windows tools at ${constants_1.INSTALL_PATH}`);
48
51
  // 0. Check for Visual Studio CMD tools & Git
@@ -125,9 +128,29 @@ async function default_1({ sourceRepo, }) {
125
128
  }
126
129
  else {
127
130
  try {
128
- spinner.start(`Cloning ${sourceRepo} repo`);
129
- await gluegun_1.system.spawn(`git clone ${sourceRepo} ${constants_1.INSTALL_PATH}`);
130
- spinner.succeed();
131
+ if (targetBranch === 'latest-release') {
132
+ spinner.start(`Getting latest Moddable-OpenSource/moddable release`);
133
+ const release = await (0, moddable_1.fetchLatestRelease)();
134
+ await gluegun_1.system.spawn(`git clone ${sourceRepo} ${constants_1.INSTALL_PATH} --depth 1 --branch ${release.tag_name} --single-branch`);
135
+ gluegun_1.filesystem.dir(BIN_PATH);
136
+ gluegun_1.filesystem.dir(DEBUG_BIN_PATH);
137
+ spinner.info('Downloading release tools');
138
+ const assetName = `moddable-tools-win64.zip`;
139
+ await (0, moddable_1.downloadReleaseTools)({
140
+ writePath: BIN_PATH,
141
+ assetName,
142
+ release,
143
+ });
144
+ const tools = (_a = gluegun_1.filesystem.list(BIN_PATH)) !== null && _a !== void 0 ? _a : [];
145
+ await Promise.all(tools.map(async (tool) => {
146
+ await gluegun_1.filesystem.copyAsync(gluegun_1.filesystem.resolve(BIN_PATH, tool), gluegun_1.filesystem.resolve(DEBUG_BIN_PATH, tool));
147
+ }));
148
+ spinner.succeed();
149
+ }
150
+ else {
151
+ spinner.start(`Cloning ${sourceRepo} repo`);
152
+ await gluegun_1.system.spawn(`git clone ${sourceRepo} ${constants_1.INSTALL_PATH} --depth 1 --branch ${targetBranch} --single-branch`);
153
+ }
131
154
  }
132
155
  catch (error) {
133
156
  spinner.fail(`Error cloning moddable repo: ${String(error)}`);
@@ -145,15 +168,17 @@ async function default_1({ sourceRepo, }) {
145
168
  catch (error) {
146
169
  spinner.fail(error.toString());
147
170
  }
148
- // 3. build tools
149
- try {
150
- spinner.start(`Building Moddable SDK tools`);
151
- await gluegun_1.system.exec(`build.bat`, { cwd: BUILD_DIR, stdout: process.stdout });
152
- spinner.succeed();
153
- }
154
- catch (error) {
155
- spinner.fail(`Error building Moddable SDK tools: ${String(error)}`);
156
- process.exit(1);
171
+ // 3. build tools if needed
172
+ if (targetBranch !== 'latest-release') {
173
+ try {
174
+ spinner.start(`Building Moddable SDK tools`);
175
+ await gluegun_1.system.exec(`build.bat`, { cwd: BUILD_DIR, stdout: process.stdout });
176
+ spinner.succeed();
177
+ }
178
+ catch (error) {
179
+ spinner.fail(`Error building Moddable SDK tools: ${String(error)}`);
180
+ process.exit(1);
181
+ }
157
182
  }
158
183
  // 4. create Windows shortcut
159
184
  try {
@@ -182,4 +207,4 @@ async function default_1({ sourceRepo, }) {
182
207
  await openModdableCommandPrompt();
183
208
  }
184
209
  exports.default = default_1;
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQXlFO0FBQ3pFLDJDQUtvQjtBQUNwQixnRUFBdUM7QUFDdkMsMEVBQWtDO0FBQ2xDLCtCQUFnQztBQUdoQyxNQUFNLFNBQVMsR0FBRyxJQUFBLGdCQUFTLEVBQUMsMkJBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUV0QyxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLDZCQUE2QixDQUFDLENBQUE7QUFFeEUsS0FBSyxVQUFVLE1BQU0sQ0FDMUIsSUFBWSxFQUNaLGNBQXNCLEVBQ3RCLFFBQWlCO0lBRWpCLE1BQU0sSUFBQSxnQkFBTSxFQUFDLDZCQUFpQixFQUFFLFFBQVEsSUFBSSxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUE7SUFDbEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQTtBQUN4RSxDQUFDO0FBUEQsd0JBT0M7QUFFTSxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQVk7O0lBQzFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1DQUFJLEVBQUUsRUFBRSxDQUFBO0lBQ25ELE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ2pELENBQUM7QUFIRCw4QkFHQztBQUVNLEtBQUssVUFBVSx5QkFBeUI7SUFDN0MsZUFBSyxDQUFDLElBQUksQ0FBQyxxREFBcUQsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sZ0JBQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLFFBQVEsR0FBRyxD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
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQXlFO0FBQ3pFLDJDQUtvQjtBQUNwQixnRUFBdUM7QUFDdkMsMEVBQWtDO0FBQ2xDLCtCQUFnQztBQUVoQyx5Q0FBcUU7QUFFckUsTUFBTSxTQUFTLEdBQUcsSUFBQSxnQkFBUyxFQUFDLDJCQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFdEMsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSw2QkFBNkIsQ0FBQyxDQUFBO0FBRXhFLEtBQUssVUFBVSxNQUFNLENBQzFCLElBQVksRUFDWixjQUFzQixFQUN0QixRQUFpQjtJQUVqQixNQUFNLElBQUEsZ0JBQU0sRUFBQyw2QkFBaUIsRUFBRSxRQUFRLElBQUksSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFBO0lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUE7QUFDeEUsQ0FBQztBQVBELHdCQU9DO0FBRU0sS0FBSyxVQUFVLFNBQVMsQ0FBQyxJQUFZOztJQUMxQyxNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksSUFBSSxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQ0FBSSxFQUFFLEVBQUUsQ0FBQTtJQUNuRCxNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUNqRCxDQUFDO0FBSEQsOEJBR0M7QUFFTSxLQUFLLFVBQVUseUJBQXlCO0lBQzdDLGVBQUssQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQTtJQUNqRSxNQUFNLGdCQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFv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
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const gluegun_1 = require("gluegun");
4
+ async function default_1() {
5
+ gluegun_1.print.warning('nRF52 update is not currently supported');
6
+ }
7
+ exports.default = default_1;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC91cGRhdGUvbnJmNTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBK0I7QUFFaEIsS0FBSztJQUNsQixlQUFLLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUZELDRCQUVDIn0=
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { GluegunPrint } from 'gluegun';
2
+ export declare function installPython(spinner: ReturnType<GluegunPrint['spin']>): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -4,4 +4,4 @@ export declare function setEnv(name: string, permanentValue: string, envValue?:
4
4
  export declare function addToPath(path: string): Promise<void>;
5
5
  export declare function openModdableCommandPrompt(): Promise<void>;
6
6
  export declare function ensureModdableCommandPrompt(spinner: ReturnType<GluegunPrint['spin']>): Promise<void>;
7
- export default function ({ sourceRepo, }: PlatformSetupArgs): Promise<void>;
7
+ export default function ({ sourceRepo, targetBranch, }: PlatformSetupArgs): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -1,7 +1,7 @@
1
1
  import type { GluegunToolbox } from 'gluegun';
2
2
  import type { PlatformSetupArgs, SetupArgs } from './toolbox/setup/types';
3
3
  import type { BuildArgs } from './toolbox/build/index';
4
- export declare type Device = 'darwin' | 'mac' | 'linux' | 'lin' | 'windows_nt' | 'win' | 'esp' | 'esp8266' | 'esp32' | 'wasm' | 'pico';
4
+ export declare type Device = 'darwin' | 'mac' | 'linux' | 'lin' | 'windows_nt' | 'win' | 'esp' | 'esp8266' | 'esp32' | 'wasm' | 'pico' | 'nrf52';
5
5
  export interface XSDevToolbox extends GluegunToolbox {
6
6
  setup: Record<Device, (() => Promise<void>) | ((args: SetupArgs | PlatformSetupArgs) => Promise<void>)>;
7
7
  update: Record<Device, (() => Promise<void>) | ((args: SetupArgs) => Promise<void>)>;
@@ -19,6 +19,12 @@ This process mostly automates the instructions provided by [Moddable's "Getting
19
19
 
20
20
  [Homebrew](https://brew.sh/) is assumed to be installed.
21
21
 
22
+ [XZ utils](https://tukaani.org/xz/) are required to install the CLI due to a dependency for decompressing the ARM toolchain used for nrf52 development. It can be installed with homebrew:
23
+
24
+ ```
25
+ brew install xz
26
+ ```
27
+
22
28
  The [Xcode Command Line tools](https://developer.apple.com/xcode/) are required; `setup` will check for their existence before continuing.
23
29
 
24
30
  A symlink for [`xsbug.app`](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/xs/xsbug.md) is created in `/Applications` for easy access through Launchpad.
@@ -74,3 +80,9 @@ There are some utilities that are not included in the Moddable SDK or other plat
74
80
  ```
75
81
  xs-dev setup --tool fontbm
76
82
  ```
83
+
84
+ `ejectfix`: not a downloadable tool, rather a environment preference to disable the `DISK NOT EJECTED PROPERLY` notification while working with the nrf52 on MacOS. This will automate the process described by [the Adafruit blog](https://blog.adafruit.com/2021/05/11/how-to-tone-down-macos-big-surs-circuitpy-eject-notifications/):
85
+
86
+ ```
87
+ xs-dev setup --tool ejectfix
88
+ ```
@@ -61,7 +61,7 @@ Check out the [npm docs](https://docs.npmjs.com/resolving-eacces-permissions-err
61
61
 
62
62
  ## Linux Permissions
63
63
 
64
- Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/bionic/ssh-askpass) to prompt for permission when installing other tools and dependencies.
64
+ Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/focal/ssh-askpass) to prompt for permission when installing other tools and dependencies.
65
65
 
66
66
  ## Choose your hardware adventure
67
67
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "0.25.13",
3
+ "version": "0.27.0",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "types": "build/types/types.d.ts",
6
6
  "bin": {
@@ -44,9 +44,10 @@
44
44
  "@octokit/rest": "^19.0.3",
45
45
  "axios": "^1.2.1",
46
46
  "gluegun": "^5.1.2",
47
+ "node-liblzma": "^1.1.9",
47
48
  "serialport": "^10.3.0",
48
49
  "serve-handler": "^6.1.3",
49
- "solid-js": "^1.4.3",
50
+ "simple-plist": "^1.3.1",
50
51
  "tar-fs": "^2.1.1",
51
52
  "unzip-stream": "^0.3.1",
52
53
  "usb": "^2.2.0",
@@ -76,6 +77,7 @@
76
77
  "prettier": "^2.5.1",
77
78
  "release-it": "^15.11.0",
78
79
  "rollup": "^2.78.1",
80
+ "solid-js": "^1.4.3",
79
81
  "tailwindcss": "^3.0.24",
80
82
  "ts-jest": "^27.1.2",
81
83
  "ts-node": "^10.9.1",
@@ -101,7 +103,9 @@
101
103
  "ansi-regex@>=3.0.0 <3.0.1": ">=3.0.1",
102
104
  "ansi-regex@>=4.0.0 <4.1.1": ">=4.1.1",
103
105
  "minimatch@<3.0.5": ">=3.0.5",
104
- "conventional-changelog-conventionalcommits": ">=5.0.0"
106
+ "conventional-changelog-conventionalcommits": ">=5.0.0",
107
+ "string-width": "<5.0.0",
108
+ "ansi-regex": "<6.0.0"
105
109
  }
106
110
  },
107
111
  "release-it": {