xs-dev 0.38.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +1 -1
  2. package/build/package.json +13 -3
  3. package/build/src/commands/doctor.js +4 -3
  4. package/build/src/commands/init.js +3 -3
  5. package/build/src/commands/remove.js +2 -2
  6. package/build/src/commands/setup.js +21 -7
  7. package/build/src/toolbox/setup/ejectfix.js +29 -26
  8. package/build/src/toolbox/setup/esp32/linux.js +7 -3
  9. package/build/src/toolbox/setup/esp32/mac.js +5 -3
  10. package/build/src/toolbox/setup/esp32/windows.js +4 -2
  11. package/build/src/toolbox/setup/esp32.js +18 -8
  12. package/build/src/toolbox/setup/esp8266/linux.js +10 -4
  13. package/build/src/toolbox/setup/esp8266/mac.js +5 -3
  14. package/build/src/toolbox/setup/esp8266/windows.js +10 -9
  15. package/build/src/toolbox/setup/esp8266.js +16 -10
  16. package/build/src/toolbox/setup/lin.js +19 -7
  17. package/build/src/toolbox/setup/mac.js +14 -9
  18. package/build/src/toolbox/setup/moddable.js +35 -28
  19. package/build/src/toolbox/setup/nrf52/windows.js +5 -3
  20. package/build/src/toolbox/setup/nrf52.js +12 -10
  21. package/build/src/toolbox/setup/pico/linux.js +6 -2
  22. package/build/src/toolbox/setup/pico/mac.js +4 -2
  23. package/build/src/toolbox/setup/pico.js +10 -4
  24. package/build/src/toolbox/setup/wasm.js +7 -5
  25. package/build/src/toolbox/setup/windows.js +21 -14
  26. package/build/src/toolbox/system/__tests__/errors.test.js +163 -0
  27. package/build/src/toolbox/system/__tests__/exec.test.js +130 -0
  28. package/build/src/toolbox/system/errors.js +106 -0
  29. package/build/src/toolbox/system/exec.js +34 -28
  30. package/build/src/toolbox/system/packages.js +29 -26
  31. package/build/src/toolbox/system/python.js +11 -4
  32. package/build/src/toolbox/update/esp32.js +6 -4
  33. package/build/src/toolbox/update/lin.js +8 -2
  34. package/build/src/toolbox/update/mac.js +8 -2
  35. package/build/types/src/toolbox/setup/ejectfix.d.ts +2 -1
  36. package/build/types/src/toolbox/setup/esp32/linux.d.ts +2 -1
  37. package/build/types/src/toolbox/setup/esp32/mac.d.ts +2 -1
  38. package/build/types/src/toolbox/setup/esp32/windows.d.ts +2 -1
  39. package/build/types/src/toolbox/setup/esp32.d.ts +2 -1
  40. package/build/types/src/toolbox/setup/esp8266/linux.d.ts +2 -1
  41. package/build/types/src/toolbox/setup/esp8266/mac.d.ts +2 -1
  42. package/build/types/src/toolbox/setup/esp8266/windows.d.ts +3 -2
  43. package/build/types/src/toolbox/setup/esp8266.d.ts +2 -1
  44. package/build/types/src/toolbox/setup/lin.d.ts +2 -1
  45. package/build/types/src/toolbox/setup/mac.d.ts +2 -1
  46. package/build/types/src/toolbox/setup/moddable.d.ts +4 -3
  47. package/build/types/src/toolbox/setup/nrf52/windows.d.ts +2 -1
  48. package/build/types/src/toolbox/setup/nrf52.d.ts +2 -1
  49. package/build/types/src/toolbox/setup/pico/linux.d.ts +2 -1
  50. package/build/types/src/toolbox/setup/pico/mac.d.ts +2 -1
  51. package/build/types/src/toolbox/setup/pico.d.ts +2 -1
  52. package/build/types/src/toolbox/setup/wasm.d.ts +2 -1
  53. package/build/types/src/toolbox/setup/windows.d.ts +3 -2
  54. package/build/types/src/toolbox/system/__tests__/errors.test.d.ts +1 -0
  55. package/build/types/src/toolbox/system/__tests__/exec.test.d.ts +1 -0
  56. package/build/types/src/toolbox/system/errors.d.ts +51 -0
  57. package/build/types/src/toolbox/system/exec.d.ts +6 -5
  58. package/build/types/src/toolbox/system/packages.d.ts +3 -2
  59. package/build/types/src/toolbox/system/python.d.ts +2 -1
  60. package/build/types/src/types.d.ts +10 -0
  61. package/package.json +13 -3
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.installDeps = installDeps;
4
4
  const gluegun_1 = require("gluegun");
5
5
  const homebrew_1 = require("../homebrew");
6
+ const errors_1 = require("../../system/errors");
6
7
  async function installDeps(spinner) {
7
8
  try {
8
9
  await (0, homebrew_1.ensureHomebrew)();
@@ -10,7 +11,7 @@ async function installDeps(spinner) {
10
11
  catch (error) {
11
12
  if (error instanceof Error) {
12
13
  gluegun_1.print.info(`${error.message} python`);
13
- process.exit(1);
14
+ return (0, errors_1.failure)(`${error.message} python`);
14
15
  }
15
16
  }
16
17
  if (gluegun_1.system.which('python') === null) {
@@ -24,7 +25,7 @@ async function installDeps(spinner) {
24
25
  catch (error) {
25
26
  if (error instanceof Error && error.message.includes('xcode-select')) {
26
27
  spinner.fail('Apple Command Line Tools must be installed in order to install python from Homebrew. Please run `xcode-select --install` before trying again.');
27
- process.exit(1);
28
+ return (0, errors_1.failure)('Apple Command Line Tools must be installed in order to install python from Homebrew. Please run `xcode-select --install` before trying again.');
28
29
  }
29
30
  }
30
31
  }
@@ -37,5 +38,6 @@ async function installDeps(spinner) {
37
38
  spinner.start('Installing pyserial through pip');
38
39
  await gluegun_1.system.exec('python3 -m pip install pyserial');
39
40
  spinner.succeed();
41
+ return (0, errors_1.successVoid)();
40
42
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvZXNwODI2Ni9tYWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxrQ0F3Q0M7QUE1Q0QscUNBQXVDO0FBRXZDLDBDQUE0QztBQUVyQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixPQUF5QztJQUV6QyxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEseUJBQWMsR0FBRSxDQUFBO0lBQ3hCLENBQUM7SUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzNCLGVBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQTtZQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLGdCQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWhELElBQUksT0FBTyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7WUFDaEQsSUFBSSxDQUFDO2dCQUNILE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUN0RSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDbkIsQ0FBQztZQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO29CQUNyRSxPQUFPLENBQUMsSUFBSSxDQUNWLCtJQUErSSxDQUNoSixDQUFBO29CQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7UUFDakQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0lBQ2hELE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtJQUNwRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDbkIsQ0FBQyJ9
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvZXNwODI2Ni9tYWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxrQ0E0Q0M7QUFsREQscUNBQXVDO0FBRXZDLDBDQUE0QztBQUM1QyxnREFBMEQ7QUFHbkQsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsT0FBeUM7SUFFekMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFBLHlCQUFjLEdBQUUsQ0FBQTtJQUN4QixDQUFDO0lBQUMsT0FBTyxLQUFjLEVBQUUsQ0FBQztRQUN4QixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQixlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUE7WUFDckMsT0FBTyxJQUFBLGdCQUFPLEVBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQTtRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVoRCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1lBQ2hELElBQUksQ0FBQztnQkFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtnQkFDdEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ25CLENBQUM7WUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsT0FBTyxDQUFDLElBQUksQ0FDViwrSUFBK0ksQ0FDaEosQ0FBQTtvQkFDRCxPQUFPLElBQUEsZ0JBQU8sRUFDWiwrSUFBK0ksQ0FDaEosQ0FBQTtnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNoRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtJQUNoRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDcEQsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLE9BQU8sSUFBQSxvQkFBVyxHQUFFLENBQUE7QUFDdEIsQ0FBQyJ9
@@ -12,6 +12,7 @@ const unzip_stream_1 = require("unzip-stream");
12
12
  const util_1 = require("util");
13
13
  const windows_1 = require("../windows");
14
14
  const constants_1 = require("../constants");
15
+ const errors_1 = require("../../system/errors");
15
16
  const finishedPromise = (0, util_1.promisify)(stream_1.finished);
16
17
  const ESP_TOOL = 'https://github.com/igrr/esptool-ck/releases/download/0.4.13/esptool-0.4.13-win32.zip';
17
18
  const ESP_TOOL_VERSION = 'esptool-0.4.13-win32';
@@ -28,14 +29,15 @@ async function installPython(spinner) {
28
29
  gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
29
30
  gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
30
31
  gluegun_1.print.info('Please install either Python or winget, then launch a new Command Prompt and re-run this setup.');
31
- throw new Error('Python is required');
32
+ return (0, errors_1.failure)('Python is required');
32
33
  }
33
34
  spinner.start('Installing python from winget');
34
35
  await gluegun_1.system.exec('winget install -e --id Python.Python.3 --silent');
35
36
  spinner.succeed();
36
37
  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.');
37
- throw new Error('Command Prompt restart needed');
38
+ return (0, errors_1.failure)('Command Prompt restart needed');
38
39
  }
40
+ return (0, errors_1.successVoid)();
39
41
  }
40
42
  async function installDeps(spinner, ESP_DIR) {
41
43
  const ESP_TOOL_DIR = gluegun_1.filesystem.resolve(ESP_DIR, ESP_TOOL_VERSION);
@@ -64,12 +66,10 @@ async function installDeps(spinner, ESP_DIR) {
64
66
  await (0, windows_1.setEnv)('BASE_DIR', constants_1.INSTALL_DIR);
65
67
  await (0, windows_1.addToPath)(CYGWIN_BIN);
66
68
  spinner.succeed();
67
- try {
68
- await installPython(spinner);
69
- }
70
- catch (error) {
71
- // Command Prompt restart needed
72
- process.exit(1);
69
+ const pythonResult = await installPython(spinner);
70
+ if (!pythonResult.success) {
71
+ // Command Prompt restart needed or Python is required
72
+ return pythonResult;
73
73
  }
74
74
  if (gluegun_1.system.which('pip') === null) {
75
75
  spinner.start('Installing pip through ensurepip');
@@ -79,5 +79,6 @@ async function installDeps(spinner, ESP_DIR) {
79
79
  spinner.start('Installing pyserial through pip');
80
80
  await gluegun_1.system.exec('python -m pip install pyserial');
81
81
  spinner.succeed();
82
+ return (0, errors_1.successVoid)();
82
83
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYvd2luZG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSxzQ0FnQ0M7QUFFRCxrQ0FrREM7QUFwR0QscUNBQW1EO0FBQ25ELG1DQUFpQztBQUNqQyxrREFBeUI7QUFFekIsK0NBQW9EO0FBQ3BELCtCQUFnQztBQUNoQyx3Q0FBOEM7QUFDOUMsNENBQTBDO0FBRTFDLE1BQU0sZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxpQkFBUSxDQUFDLENBQUE7QUFFM0MsTUFBTSxRQUFRLEdBQ1osc0ZBQXNGLENBQUE7QUFDeEYsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUMvQyxNQUFNLE1BQU0sR0FBRyx3RkFBd0YsQ0FBQTtBQUVoRyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUF5QztJQUV6QyxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BDLHlGQUF5RjtRQUN6RixJQUFJLENBQUM7WUFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBSyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQ2xDLGVBQUssQ0FBQyxJQUFJLENBQ1IsK0RBQStELENBQ2hFLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGtIQUFrSCxDQUNuSCxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUiw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsaUdBQWlHLENBQ2xHLENBQUE7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUVELE9BQU8sQ0FB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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYvd2luZG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSxzQ0FrQ0M7QUFFRCxrQ0FtREM7QUF6R0QscUNBQW1EO0FBQ25ELG1DQUFpQztBQUNqQyxrREFBeUI7QUFFekIsK0NBQW9EO0FBQ3BELCtCQUFnQztBQUNoQyx3Q0FBOEM7QUFDOUMsNENBQTBDO0FBQzFDLGdEQUEwRDtBQUcxRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGdCQUFTLEVBQUMsaUJBQVEsQ0FBQyxDQUFBO0FBRTNDLE1BQU0sUUFBUSxHQUNaLHNGQUFzRixDQUFBO0FBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUE7QUFDL0MsTUFBTSxNQUFNLEdBQUcsd0ZBQXdGLENBQUE7QUFFaEcsS0FBSyxVQUFVLGFBQWEsQ0FDakMsT0FBeUM7SUFFekMsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyx5RkFBeUY7UUFDekYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNuQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQUssQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUNsQyxlQUFLLENBQUMsSUFBSSxDQUNSLCtEQUErRCxDQUNoRSxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUixrSEFBa0gsQ0FDbkgsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsOEVBQThFLENBQy9FLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGlHQUFpRyxDQUNsRyxDQUFBO1lBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUN0QyxDQUFD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
@@ -21,6 +21,7 @@ const windows_1 = require("./esp8266/windows");
21
21
  const windows_2 = require("./windows");
22
22
  const devices_1 = require("../prompt/devices");
23
23
  const exec_1 = require("../system/exec");
24
+ const errors_1 = require("../system/errors");
24
25
  const finishedPromise = (0, util_1.promisify)(stream_1.finished);
25
26
  async function default_1() {
26
27
  const OS = (0, os_1.type)().toLowerCase();
@@ -39,10 +40,12 @@ async function default_1() {
39
40
  // 0. ensure Moddable exists
40
41
  if (!(0, moddable_1.moddableExists)()) {
41
42
  spinner.fail(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
42
- process.exit(1);
43
+ return (0, errors_1.failure)(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
43
44
  }
44
45
  if (isWindows) {
45
- await (0, windows_2.ensureModdableCommandPrompt)(spinner);
46
+ const result = await (0, windows_2.ensureModdableCommandPrompt)(spinner);
47
+ if ((0, errors_1.isFailure)(result))
48
+ return result;
46
49
  }
47
50
  // 1. ensure ~/.local/share/esp directory
48
51
  spinner.info('Ensuring esp8266 directory');
@@ -88,18 +91,20 @@ async function default_1() {
88
91
  }
89
92
  // 5. ensure python, pip, and pyserial are installed
90
93
  if (OS === 'darwin') {
91
- await (0, mac_1.installDeps)(spinner);
94
+ const result = await (0, mac_1.installDeps)(spinner);
95
+ if ((0, errors_1.isFailure)(result))
96
+ return result;
92
97
  }
93
98
  if (OS === 'linux') {
94
- await (0, linux_1.installDeps)(spinner);
99
+ const result = await (0, linux_1.installDeps)(spinner);
100
+ if ((0, errors_1.isFailure)(result))
101
+ return result;
95
102
  }
96
103
  if (isWindows) {
97
- try {
98
- await (0, windows_1.installDeps)(spinner, ESP_DIR);
99
- }
100
- catch (error) {
104
+ const result = await (0, windows_1.installDeps)(spinner, ESP_DIR);
105
+ if ((0, errors_1.isFailure)(result)) {
101
106
  gluegun_1.print.error(`Windows dependencies failed to install. Please review the information above.`);
102
- process.exit(1);
107
+ return result;
103
108
  }
104
109
  }
105
110
  // 7. create ESP_BASE env export in shell profile
@@ -115,5 +120,6 @@ async function default_1() {
115
120
  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 esp8266
116
121
  If there is trouble finding the correct port, pass the "--port" flag to the above command with the path to the "/dev.cu.*" that matches your device.
117
122
  `);
123
+ return (0, errors_1.successVoid)();
118
124
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwODI2Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxQkEsNEJBZ0hDO0FBcklELHFDQUFtRDtBQUNuRCxrREFBeUI7QUFDekIsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxtQ0FBZ0M7QUFDaEMsK0JBQW1DO0FBQ25DLCtDQUFvRDtBQUNwRCwyQkFBeUM7QUFDekMsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyxnRUFBdUM7QUFDdkMsdUNBQTZEO0FBQzdELDJDQUFpRTtBQUNqRSwrQ0FBcUU7QUFDckUsdUNBQXVEO0FBQ3ZELCtDQUFnRDtBQUVoRCx5Q0FBa0Q7QUFFbEQsTUFBTSxlQUFlLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGlCQUFRLENBQUMsQ0FBQTtBQUU1QixLQUFLO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7SUFDakQsTUFBTSxTQUFTLEdBQUcsRUFBRSxLQUFLLFlBQVksQ0FBQTtJQUNyQyxNQUFNLFNBQVMsR0FBRywyRkFBMkYsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDcEssTUFBTSxZQUFZLEdBQ2hCLDhFQUE4RSxDQUFBO0lBQ2hGLE1BQU0sYUFBYSxHQUFHLG1EQUFtRCxDQUFBO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQTtJQUNqQyxNQUFNLE9BQU8sR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3RELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUMvRCxNQUFNLGlCQUFpQixHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUV0RSxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6QixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBRXpDLDRCQUE0QjtJQUM1QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUNWLHlEQUF5RCxzQkFBWSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FDbEcsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUEscUNBQTJCLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUE7SUFDMUMsb0JBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFdkIseUNBQXlDO0lBQ3pDLElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO1FBRTdDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFVLEVBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO2dCQUMxQyxZQUFZLEVBQUUsUUFBUTthQUN2QixDQUFDLENBQUE7WUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLElBQUEsZ0JBQU8sRUFBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO2dCQUMxQyxZQUFZLEVBQUUsUUFBUTthQUN2QixDQUFDLENBQUE7WUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdkMsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsaURBQWlEO0lBQ2pELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7UUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBQSxzQkFBVSxFQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRTtZQUM3QyxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUE7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixJQUFJLG9CQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtRQUM5QyxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQiwwQ0FBMEMsVUFBVSxJQUFJLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FDckYsQ0FBQTtRQUNELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELElBQUksRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBQSxpQkFBYyxFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUEsbUJBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUEscUJBQWtCLEVBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBSyxDQUFDLEtBQUssQ0FDVCw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxpREFBaUQ7SUFDakQsSUFBSSxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN0QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7WUFDOUIsTUFBTSxJQUFBLGdCQUFNLEVBQUMsNkJBQWlCLEVBQUUsbUJBQW1CLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM1RSxDQUFDO0lBQ0gsQ0FBQyxDQUFDLGtEQUFrRDtJQUVwRCxPQUFPLENBQUMsT0FBTyxDQUFDOzt5Q0FFdUIsU0FBUyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsa0JBQWtCOztHQUVoRyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwODI2Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFzQkEsNEJBc0hDO0FBNUlELHFDQUFtRDtBQUNuRCxrREFBeUI7QUFDekIsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxtQ0FBZ0M7QUFDaEMsK0JBQW1DO0FBQ25DLCtDQUFvRDtBQUNwRCwyQkFBeUM7QUFDekMsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyxnRUFBdUM7QUFDdkMsdUNBQTZEO0FBQzdELDJDQUFpRTtBQUNqRSwrQ0FBcUU7QUFDckUsdUNBQXVEO0FBQ3ZELCtDQUFnRDtBQUVoRCx5Q0FBa0Q7QUFDbEQsNkNBQWtFO0FBRWxFLE1BQU0sZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxpQkFBUSxDQUFDLENBQUE7QUFFNUIsS0FBSztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLEVBQUUsS0FBSyxZQUFZLENBQUE7SUFDckMsTUFBTSxTQUFTLEdBQUcsMkZBQTJGLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3BLLE1BQU0sWUFBWSxHQUNoQiw4RUFBOEUsQ0FBQTtJQUNoRixNQUFNLGFBQWEsR0FBRyxtREFBbUQsQ0FBQTtJQUN6RSxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUE7SUFDakMsTUFBTSxPQUFPLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN0RCxNQUFNLFNBQVMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENB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
@@ -13,6 +13,7 @@ const upsert_1 = __importDefault(require("../patching/upsert"));
13
13
  const exec_1 = require("../system/exec");
14
14
  const packages_1 = require("../system/packages");
15
15
  const moddable_1 = require("./moddable");
16
+ const errors_1 = require("../system/errors");
16
17
  const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
17
18
  async function default_1({ sourceRepo, branch, release, interactive, }) {
18
19
  gluegun_1.print.info('Setting up Linux tools!');
@@ -36,11 +37,15 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
36
37
  { name: 'gtk+-3.0', packageName: 'libgtk-3-dev', type: 'library' },
37
38
  ];
38
39
  spinner.start('Checking for missing dependencies...');
39
- const missingDependencies = await (0, packages_1.findMissingDependencies)(dependencies);
40
+ const missingDependenciesResult = await (0, packages_1.findMissingDependencies)(dependencies);
41
+ if ((0, errors_1.isFailure)(missingDependenciesResult))
42
+ return missingDependenciesResult;
40
43
  // 1. Install or update the packages required to compile:
41
44
  spinner.start('Attempting to install dependencies...');
42
- if (missingDependencies.length !== 0) {
43
- await (0, packages_1.installPackages)(missingDependencies);
45
+ if (missingDependenciesResult.data.length !== 0) {
46
+ const result = await (0, packages_1.installPackages)(missingDependenciesResult.data);
47
+ if ((0, errors_1.isFailure)(result))
48
+ return result;
44
49
  }
45
50
  spinner.succeed();
46
51
  // 3. Download the Moddable repository, or use the git command line tool as follows:
@@ -50,7 +55,11 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
50
55
  else {
51
56
  if (release !== undefined && (branch === undefined || branch === null)) {
52
57
  spinner.start('Getting latest Moddable-OpenSource/moddable release');
53
- const remoteRelease = await (0, moddable_1.fetchRelease)(release);
58
+ const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
59
+ if ((0, errors_1.isFailure)(remoteReleaseResult)) {
60
+ throw new Error(remoteReleaseResult.error);
61
+ }
62
+ const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
54
63
  if (remoteRelease.assets.length === 0) {
55
64
  spinner.stop();
56
65
  gluegun_1.print.warning(`Moddable release ${release} does not have any pre-built assets.`);
@@ -59,7 +68,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
59
68
  (await gluegun_1.prompt.confirm('Would you like to continue setting up and build the SDK locally?', true));
60
69
  if (!buildTools) {
61
70
  gluegun_1.print.info('Please select another release version with pre-built assets: https://github.com/Moddable-OpenSource/moddable/releases');
62
- process.exit(0);
71
+ return (0, errors_1.successVoid)();
63
72
  }
64
73
  spinner.start();
65
74
  }
@@ -110,10 +119,12 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
110
119
  await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'xsbug', 'manifest.json')}`, { process });
111
120
  await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'mcsim', 'manifest.json')}`, { process });
112
121
  }
113
- await (0, exec_1.execWithSudo)('make install', {
122
+ const installResult = await (0, exec_1.execWithSudo)('make install', {
114
123
  cwd: BUILD_DIR,
115
124
  stdout: process.stdout,
116
125
  });
126
+ if ((0, errors_1.isFailure)(installResult))
127
+ return installResult;
117
128
  spinner.succeed();
118
129
  if (gluegun_1.system.which('npm') !== null) {
119
130
  spinner.start('Installing xsbug-log dependencies');
@@ -122,5 +133,6 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
122
133
  }
123
134
  // 7. Profit?
124
135
  gluegun_1.print.success('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
136
+ return (0, errors_1.successVoid)();
125
137
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBbUJBLDRCQThMQztBQWpORCw0Q0FBbUI7QUFDbkIsK0JBQWdDO0FBQ2hDLDJCQUEwQjtBQUMxQixxQ0FBMkQ7QUFDM0QsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FBNkM7QUFDN0MsaURBQTZFO0FBRzdFLHlDQUErRDtBQUUvRCxNQUFNLFlBQVksR0FBRyxJQUFBLGdCQUFTLEVBQUMsVUFBSyxDQUFDLENBQUE7QUFFdEIsS0FBSyxvQkFBVyxFQUM3QixVQUFVLEVBQ1YsTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEdBQ087SUFDbEIsZUFBSyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBRXJDLE1BQU0sUUFBUSxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNqQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsQ0FDVixDQUFBO0lBQ0QsTUFBTSxjQUFjLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ3ZDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsT0FBTyxDQUNSLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDbEMsd0JBQVksRUFDWixPQUFPLEVBQ1AsV0FBVyxFQUNYLEtBQUssQ0FDTixDQUFBO0lBRUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFbkMsb0JBQVUsQ0FBQyxHQUFHLENBQUMsdUJBQVcsQ0FBQyxDQUFBO0lBRTNCLHNEQUFzRDtJQUN0RCxNQUFNLFlBQVksR0FBaUI7UUFDakMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtRQUN2RCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1FBQ3JELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7UUFDbkQsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtRQUNuRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1FBQ3ZELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7UUFDckQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtRQUNyRCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7UUFDbkUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUNuRSxDQUFBO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0lBQ3JELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLGtDQUF1QixFQUFDLFlBQVksQ0FBQyxDQUFBO0lBRXZFLHlEQUF5RDtJQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUE7SUFDdEQsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFBLDBCQUFlLEVBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLG9GQUFvRjtJQUNwRixJQUFJLG9CQUFVLENBQUMsTUFBTSxDQUFDLHdCQUFZLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDakQsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQTtZQUNwRSxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUEsdUJBQVksRUFBQyxPQUFPLENBQUMsQ0FBQTtZQUVqRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQ2QsZUFBSyxDQUFDLE9BQU8sQ0FDWCxvQkFBb0IsT0FBTyxzQ0FBc0MsQ0FDbEUsQ0FBQTtnQkFDRCxVQUFVO29CQUNSLENBQUMsV0FBVzt3QkFDWixDQUFDLE1BQU0sZ0JBQU0sQ0FBQyxPQUFPLENBQ25CLGtFQUFrRSxFQUNsRSxJQUFJLENBQ0wsQ0FBQyxDQUFBO2dCQUVKLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsZUFBSyxDQUFDLElBQUksQ0FDUix1SEFBdUgsQ0FDeEgsQ0FBQTtvQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUNqQixDQUFDO2dCQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNqQixDQUFDO1lBRUQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsYUFBYSxVQUFVLElBQUksd0JBQVksdUJBQXVCLGFBQWEsQ0FBQyxRQUFRLGtCQUFrQixDQUN2RyxDQUFBO1lBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoQixvQkFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDeEIsb0JBQVUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7Z0JBRTlCLE1BQU0sS0FBSyxHQUFHLFlBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxPQUFPLENBQUE7Z0JBQ25DLE1BQU0sU0FBUyxHQUFHLEtBQUs7b0JBQ3JCLENBQUMsQ0FBQyw2QkFBNkI7b0JBQy9CLENBQUMsQ0FBQywwQkFBMEIsQ0FBQTtnQkFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO2dCQUN6QyxNQUFNLElBQUEsK0JBQW9CLEVBQUM7b0JBQ3pCLFNBQVMsRUFBRSxRQUFRO29CQUNuQixTQUFTO29CQUNULE9BQU8sRUFBRSxhQUFhO2lCQUN2QixDQUFDLENBQUE7Z0JBQ0YsTUFBTSxLQUFLLEdBQUcsb0JBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUM3QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ3ZCLE1BQU0sWUFBWSxDQUFDLG9CQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtvQkFDN0QsTUFBTSxvQkFBVSxDQUFDLFNBQVMsQ0FDeEIsb0JBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUNsQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQ3pDLENBQUE7Z0JBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxVQUFVLE9BQU8sQ0FBQyxDQUFBO1lBQzNDLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLGFBQWEsVUFBVSxJQUFJLHdCQUFZLHVCQUF1QixNQUFNLGtCQUFrQixDQUN2RixDQUFBO1lBQ0QsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUNuQixDQUFDO1FBQ0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsd0JBQVksQ0FBQTtJQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFBO0lBRTVELE1BQU0sSUFBQSxnQkFBTSxFQUFDLDZCQUFpQixFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDNUQsTUFBTSxJQUFBLGdCQUFNLEVBQUMsNkJBQWlCLEVBQUUsbUJBQW1CLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMxRSxNQUFNLElBQUEsZ0JBQU0sRUFBQyw2QkFBaUIsRUFBRSxnQkFBZ0IsUUFBUSxTQUFTLENBQUMsQ0FBQTtJQUVsRSwyRkFBMkY7SUFDM0YsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUMxQyxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3JFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUNyQyxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLG9CQUFVLENBQUMsR0FBRyxDQUNaLG9CQUFVLENBQUMsT0FBTyxDQUNoQixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FDRixDQUFBO1FBQ0QsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FDZix3QkFBd0Isb0JBQVUsQ0FBQyxPQUFPLENBQ3hDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLE9BQU8sRUFDUCxlQUFlLENBQ2hCLEVBQUUsRUFDSCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUE7UUFDRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUNmLHdCQUF3QixvQkFBVSxDQUFDLE9BQU8sQ0FDeEMsd0JBQVksRUFDWixPQUFPLEVBQ1AsT0FBTyxFQUNQLGVBQWUsQ0FDaEIsRUFBRSxFQUNILEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLElBQUEsbUJBQVksRUFBQyxjQUFjLEVBQUU7UUFDakMsR0FBRyxFQUFFLFNBQVM7UUFDZCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ2xELE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUFjLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsYUFBYTtJQUNiLGVBQUssQ0FBQyxPQUFPLENBQ1gsa0lBQWtJLENBQ25JLENBQUE7QUFDSCxDQUFDIn0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcUJBLDRCQXVNQztBQTVORCw0Q0FBbUI7QUFDbkIsK0JBQWdDO0FBQ2hDLDJCQUEwQjtBQUMxQixxQ0FBMkQ7QUFDM0QsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FBNkM7QUFDN0MsaURBQTZFO0FBRzdFLHlDQUErRDtBQUMvRCw2Q0FBaUU7QUFHakUsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBUyxFQUFDLFVBQUssQ0FBQyxDQUFBO0FBRXRCLEtBQUssb0JBQVcsRUFDN0IsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxHQUNPO0lBQ2xCLGVBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUVyQyxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDakMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FBQTtJQUNELE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUN2Qyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO0lBQ0QsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2xDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLENBQ04sQ0FBQTtJQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN0QixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBRW5DLG9CQUFVLENBQUMsR0FBRyxDQUFDLHVCQUFXLENBQUMsQ0FBQTtJQUUzQixzREFBc0Q7SUFDdEQsTUFBTSxZQUFZ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
@@ -11,6 +11,7 @@ const fs_1 = require("fs");
11
11
  const constants_1 = require("./constants");
12
12
  const upsert_1 = __importDefault(require("../patching/upsert"));
13
13
  const moddable_1 = require("./moddable");
14
+ const errors_1 = require("../system/errors");
14
15
  const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
15
16
  async function default_1({ sourceRepo, branch, release, interactive, }) {
16
17
  gluegun_1.print.info('Setting up the mac tools!');
@@ -22,8 +23,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
22
23
  await gluegun_1.system.exec('xcode-select -p');
23
24
  }
24
25
  catch (error) {
25
- gluegun_1.print.error('Xcode command line tools are required to build the SDK: https://developer.apple.com/xcode/');
26
- process.exit(1);
26
+ return (0, errors_1.failure)('Xcode command line tools are required to build the SDK: https://developer.apple.com/xcode/');
27
27
  }
28
28
  let buildTools = false;
29
29
  const spinner = gluegun_1.print.spin();
@@ -35,7 +35,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
35
35
  }
36
36
  catch (error) {
37
37
  spinner.fail(`Error setting up install directory: ${String(error)}`);
38
- process.exit(1);
38
+ return (0, errors_1.failure)(`Error setting up install directory: ${String(error)}`);
39
39
  }
40
40
  if (gluegun_1.filesystem.exists(constants_1.INSTALL_PATH) !== false) {
41
41
  spinner.info('Moddable repo already installed');
@@ -44,7 +44,11 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
44
44
  try {
45
45
  if (release !== undefined && (branch === undefined || branch === null)) {
46
46
  spinner.start('Getting latest Moddable-OpenSource/moddable release');
47
- const remoteRelease = await (0, moddable_1.fetchRelease)(release);
47
+ const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
48
+ if ((0, errors_1.isFailure)(remoteReleaseResult)) {
49
+ throw new Error(remoteReleaseResult.error);
50
+ }
51
+ const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
48
52
  if (remoteRelease.assets.length === 0) {
49
53
  spinner.stop();
50
54
  gluegun_1.print.warning(`Moddable release ${release} does not have any pre-built assets.`);
@@ -53,7 +57,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
53
57
  (await gluegun_1.prompt.confirm('Would you like to continue setting up and build the SDK locally?', true));
54
58
  if (!buildTools) {
55
59
  gluegun_1.print.info('Please select another release version with pre-built assets: https://github.com/Moddable-OpenSource/moddable/releases');
56
- process.exit(0);
60
+ return (0, errors_1.successVoid)();
57
61
  }
58
62
  spinner.start();
59
63
  }
@@ -108,7 +112,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
108
112
  }
109
113
  catch (error) {
110
114
  spinner.fail(`Error cloning moddable repo: ${String(error)}`);
111
- process.exit(1);
115
+ return (0, errors_1.failure)(`Error cloning moddable repo: ${String(error)}`);
112
116
  }
113
117
  }
114
118
  // 2. configure MODDABLE env variable, add release binaries dir to PATH
@@ -125,7 +129,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
125
129
  }
126
130
  catch (error) {
127
131
  spinner.fail(`Error building mac tooling: ${String(error)}`);
128
- process.exit(1);
132
+ return (0, errors_1.failure)(`Error building mac tooling: ${String(error)}`);
129
133
  }
130
134
  }
131
135
  // 4. symlink xsbug.app into user applications directory
@@ -135,7 +139,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
135
139
  catch (error) {
136
140
  if (!String(error).includes('exists')) {
137
141
  spinner.fail(`Issue creating symlink for xsbug.app: ${String(error)}`);
138
- process.exit(1);
142
+ return (0, errors_1.failure)(`Issue creating symlink for xsbug.app: ${String(error)}`);
139
143
  }
140
144
  else {
141
145
  spinner.info('xsbug.app symlink already exists');
@@ -148,5 +152,6 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
148
152
  spinner.succeed();
149
153
  }
150
154
  spinner.succeed('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
155
+ return (0, errors_1.successVoid)();
151
156
  }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbWFjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0JBLDRCQWtNQztBQXRORCxxQ0FBMkQ7QUFDM0QsNENBQW1CO0FBQ25CLCtCQUFnQztBQUNoQywyQkFBMEI7QUFDMUIsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FJbUI7QUFHbkIsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBUyxFQUFDLFVBQUssQ0FBQyxDQUFBO0FBRXRCLEtBQUssb0JBQVcsRUFDN0IsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxHQUNPO0lBQ2xCLGVBQUssQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUV2QyxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDakMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FBQTtJQUNELE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUN2Qyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO0lBQ0QsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2xDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLENBQ04sQ0FBQTtJQUVELHVEQUF1RDtJQUN2RCxJQUFJLENBQUM7UUFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixlQUFLLENBQUMsS0FBSyxDQUNULDRGQUE0RixDQUM3RixDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQUcsS0FB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
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbWFjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBc0JBLDRCQXNNQztBQTVORCxxQ0FBMkQ7QUFDM0QsNENBQW1CO0FBQ25CLCtCQUFnQztBQUNoQywyQkFBMEI7QUFDMUIsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FJbUI7QUFFbkIsNkNBQTBFO0FBRzFFLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxVQUFLLENBQUMsQ0FBQTtBQUV0QixLQUFLLG9CQUFXLEVBQzdCLFVBQVUsRUFDVixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsR0FDTztJQUNsQixlQUFLLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFdkMsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2pDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUE7SUFDRCxNQUFNLGNBQWMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDdkMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLENBQ1IsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUE7SUFFRCx1REFBdUQ7SUFDdkQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFBLGdCQUFPLEVBQ1osNEZBQTRGLENBQzdGLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBRXRCLE1BQU0sT0FBTyxHQUFH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
@@ -17,6 +17,7 @@ const unzip_stream_1 = require("unzip-stream");
17
17
  const axios_1 = __importDefault(require("axios"));
18
18
  const constants_1 = require("./constants");
19
19
  const devices_1 = require("../prompt/devices");
20
+ const errors_1 = require("../system/errors");
20
21
  const finishedPromise = (0, util_1.promisify)(stream_1.finished);
21
22
  function moddableExists() {
22
23
  const OS = (0, os_1.type)().toLowerCase();
@@ -31,7 +32,10 @@ function isGitRepo(path) {
31
32
  return gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(path, '.git')) === 'dir';
32
33
  }
33
34
  async function getModdableVersion() {
34
- if (moddableExists() && isGitRepo(process.env.MODDABLE ?? '')) {
35
+ if (!moddableExists() || !isGitRepo(process.env.MODDABLE ?? '')) {
36
+ return (0, errors_1.failure)('Moddable not available on this system.');
37
+ }
38
+ return await (0, errors_1.wrapAsync)(async () => {
35
39
  const tags = await gluegun_1.system.run('git tag -l --sort=-taggerdate', {
36
40
  cwd: process.env.MODDABLE,
37
41
  });
@@ -50,26 +54,27 @@ async function getModdableVersion() {
50
54
  cwd: process.env.MODDABLE,
51
55
  });
52
56
  return `branch: ${currentBranch.trim()}, commit: ${latestCommit}`;
53
- }
54
- return null;
57
+ });
55
58
  }
56
59
  async function fetchRelease(release) {
57
- const octokit = new rest_1.Octokit();
58
- if (release === 'latest') {
59
- const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
60
- owner: 'Moddable-OpenSource',
61
- repo: 'moddable',
62
- });
63
- return latestRelease;
64
- }
65
- else {
66
- const { data: taggedRelease } = await octokit.rest.repos.getReleaseByTag({
67
- owner: 'Moddable-OpenSource',
68
- repo: 'moddable',
69
- tag: release,
70
- });
71
- return taggedRelease;
72
- }
60
+ return await (0, errors_1.wrapAsync)(async () => {
61
+ const octokit = new rest_1.Octokit();
62
+ if (release === 'latest') {
63
+ const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
64
+ owner: 'Moddable-OpenSource',
65
+ repo: 'moddable',
66
+ });
67
+ return latestRelease;
68
+ }
69
+ else {
70
+ const { data: taggedRelease } = await octokit.rest.repos.getReleaseByTag({
71
+ owner: 'Moddable-OpenSource',
72
+ repo: 'moddable',
73
+ tag: release,
74
+ });
75
+ return taggedRelease;
76
+ }
77
+ });
73
78
  }
74
79
  class MissingReleaseAssetError extends Error {
75
80
  constructor(assetName) {
@@ -80,15 +85,17 @@ exports.MissingReleaseAssetError = MissingReleaseAssetError;
80
85
  async function downloadReleaseTools({ writePath, assetName, release, }) {
81
86
  const moddableTools = release.assets.find(({ name }) => name === assetName);
82
87
  if (moddableTools === undefined) {
83
- throw new MissingReleaseAssetError(assetName);
88
+ return (0, errors_1.failure)(`Unable to find release asset matching ${assetName}`);
84
89
  }
85
- const zipWriter = (0, unzip_stream_1.Extract)({
86
- path: writePath,
87
- });
88
- const response = await axios_1.default.get(moddableTools.browser_download_url, {
89
- responseType: 'stream',
90
+ return await (0, errors_1.wrapAsync)(async () => {
91
+ const zipWriter = (0, unzip_stream_1.Extract)({
92
+ path: writePath,
93
+ });
94
+ const response = await axios_1.default.get(moddableTools.browser_download_url, {
95
+ responseType: 'stream',
96
+ });
97
+ response.data.pipe(zipWriter);
98
+ await finishedPromise(zipWriter);
90
99
  });
91
- response.data.pipe(zipWriter);
92
- await finishedPromise(zipWriter);
93
100
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFhQSx3Q0FjQztBQU1ELGdEQXVCQztBQVFELG9DQWtCQztBQWNELG9EQW1CQztBQW5IRCwyQkFBeUM7QUFDekMsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxxQ0FBNEM7QUFDNUMsd0NBQXFFO0FBQ3JFLCtDQUFvRDtBQUNwRCxrREFBeUI7QUFDekIsMkNBQTBDO0FBRTFDLCtDQUFnRDtBQUVoRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGdCQUFTLEVBQUMsaUJBQVEsQ0FBQyxDQUFBO0FBRTNDLFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUNqRCxNQUFNLFdBQVcsR0FBRyxzQkFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDakQsTUFBTSxZQUFZLEdBQUcsb0JBQVUsQ0FBQyxNQUFNLENBQ3BDLG9CQUFVLENBQUMsT0FBTyxDQUFDLHdCQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQ3pFLENBQUE7SUFDRCxNQUFNLFVBQVUsR0FBRyxvQkFBVSxDQUFDLE1BQU0sQ0FDbEMsb0JBQVUsQ0FBQyxPQUFPLENBQUMsd0JBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FDdkUsQ0FBQTtJQUNELE9BQU8sQ0FDTCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxTQUFTO1FBQ2xDLG9CQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSztRQUNqRCxDQUFDLFlBQVksS0FBSyxLQUFLLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUNqRCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQVk7SUFDN0IsT0FBTyxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUE7QUFDdEUsQ0FBQztBQUVNLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsSUFBSSxjQUFjLEVBQUUsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFO1lBQzdELEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNwQyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFO1lBQzFELEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLEVBQUU7Z0JBQzdELEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7YUFDMUIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxTQUFTLEtBQUssWUFBWTtnQkFBRSxPQUFPLEdBQUcsQ0FBQTtRQUM1QyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQkFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRTtZQUNsRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQTtRQUNGLE9BQU8sV0FBVyxhQUFhLENBQUMsSUFBSSxFQUFFLGFBQWEsWUFBWSxFQUFFLENBQUE7SUFDbkUsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQVFNLEtBQUssVUFBVSxZQUFZLENBQ2hDLE9BQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBTyxFQUFFLENBQUE7SUFDN0IsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBQ3hFLEtBQUssRUFBRSxxQkFBcUI7WUFDNUIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxhQUFhLENBQUE7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQ3ZFLEtBQUssRUFBRSxxQkFBcUI7WUFDNUIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsR0FBRyxFQUFFLE9BQU87U0FDYixDQUFDLENBQUE7UUFDRixPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQWEsd0JBQXlCLFNBQVEsS0FBSztJQUNqRCxZQUFZLFNBQWlCO1FBQzNCLEtBQUssQ0FBQyx5Q0FBeUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0NBQ0Y7QUFKRCw0REFJQztBQVFNLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxFQUN6QyxTQUFTLEVBQ1QsU0FBUyxFQUNULE9BQU8sR0FDVztJQUNsQixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQTtJQUUzRSxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsc0JBQVUsRUFBQztRQUMzQixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUE7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFO1FBQ25FLFlBQVksRUFBRSxRQUFRO0tBQ3ZCLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdCLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ2xDLENBQUMifQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSx3Q0FjQztBQU1ELGdEQTBCQztBQVFELG9DQXNCQztBQWNELG9EQXFCQztBQTdIRCwyQkFBeUM7QUFDekMsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxxQ0FBNEM7QUFDNUMsd0NBQXFFO0FBQ3JFLCtDQUFvRDtBQUNwRCxrREFBeUI7QUFDekIsMkNBQTBDO0FBRTFDLCtDQUFnRDtBQUNoRCw2Q0FBcUQ7QUFFckQsTUFBTSxlQUFlLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGlCQUFRLENBQUMsQ0FBQTtBQUUzQyxTQUFnQixjQUFjO0lBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7SUFDakQsTUFBTSxXQUFXLEdBQUcsc0JBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sWUFBWSxHQUFHLG9CQUFVLENBQUMsTUFBTSxDQUNwQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN6RSxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxNQUFNLENBQ2xDLG9CQUFVLENBQUMsT0FBTyxDQUFDLHdCQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQ3ZFLENBQUE7SUFDRCxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztRQUNsQyxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7UUFDakQsQ0FBQyxZ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
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.installPython = installPython;
4
4
  const gluegun_1 = require("gluegun");
5
+ const errors_1 = require("../../system/errors");
5
6
  async function installPython(spinner) {
6
7
  if (gluegun_1.system.which('python') === null) {
7
8
  // For some reason, system.which does not work with winget. This is a workaround for now.
@@ -14,13 +15,14 @@ async function installPython(spinner) {
14
15
  gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
15
16
  gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
16
17
  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
+ return (0, errors_1.failure)('Python is required');
18
19
  }
19
20
  spinner.start('Installing python from winget');
20
21
  await gluegun_1.system.exec('winget install -e --id Python.Python.2 --silent');
21
22
  spinner.succeed();
22
23
  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
+ return (0, errors_1.failure)('Command Prompt restart needed');
24
25
  }
26
+ return (0, errors_1.successVoid)();
25
27
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL25yZjUyL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxzQ0FnQ0M7QUFsQ0QscUNBQTBEO0FBRW5ELEtBQUssVUFBVSxhQUFhLENBQ2pDLE9BQXlDO0lBRXpDLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEMseUZBQXlGO1FBQ3pGLElBQUksQ0FBQztZQUNILE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixlQUFLLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7WUFDdEMsZUFBSyxDQUFDLElBQUksQ0FDUiwrREFBK0QsQ0FDaEUsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1Isa0hBQWtILENBQ25ILENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLDhFQUE4RSxDQUMvRSxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUixpR0FBaUcsQ0FDbEcsQ0FBQTtZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO1FBQzlDLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUNwRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDakIsZUFBSyxDQUFDLElBQUksQ0FDUiw0SkFBNEosQ0FDN0osQ0FBQTtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0FBQ0gsQ0FBQyJ9
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL25yZjUyL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQ0FrQ0M7QUF0Q0QscUNBQTBEO0FBQzFELGdEQUEwRDtBQUduRCxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUF5QztJQUV6QyxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BDLHlGQUF5RjtRQUN6RixJQUFJLENBQUM7WUFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLGVBQUssQ0FBQyxJQUFJLENBQ1IsK0RBQStELENBQ2hFLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGtIQUFrSCxDQUNuSCxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUiw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsaUdBQWlHLENBQ2xHLENBQUE7WUFDRCxPQUFPLElBQUEsZ0JBQU8sRUFBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDOUMsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNqQixlQUFLLENBQUMsSUFBSSxDQUNSLDRKQUE0SixDQUM3SixDQUFBO1FBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFBLG9CQUFXLEdBQUUsQ0FBQTtBQUN0QixDQUFDIn0=