xs-dev 1.7.1 → 1.7.2--canary.245.968fba7.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 (103) hide show
  1. package/build/package.json +1 -1
  2. package/build/src/commands/doctor.js +8 -2
  3. package/build/src/commands/setup.js +28 -7
  4. package/build/src/commands/teardown.js +35 -5
  5. package/build/src/commands/update.js +37 -5
  6. package/build/src/lib/toolchain.js +2 -0
  7. package/build/src/toolbox/build/index.js +24 -60
  8. package/build/src/toolbox/doctor/index.js +13 -51
  9. package/build/src/toolbox/scan/index.js +6 -21
  10. package/build/src/toolbox/setup/windows.js +3 -265
  11. package/build/src/toolbox/system/exec.js +8 -1
  12. package/build/src/toolbox/toolchains/context.js +19 -0
  13. package/build/src/toolbox/toolchains/esp32/index.js +397 -0
  14. package/build/src/toolbox/toolchains/esp32/linux.js +47 -0
  15. package/build/src/toolbox/{setup → toolchains}/esp32/mac.js +3 -3
  16. package/build/src/toolbox/toolchains/esp32/windows.js +47 -0
  17. package/build/src/toolbox/toolchains/esp8266.js +412 -0
  18. package/build/src/toolbox/toolchains/interface.js +2 -0
  19. package/build/src/toolbox/toolchains/moddable/index.js +98 -0
  20. package/build/src/toolbox/toolchains/moddable/lin.js +441 -0
  21. package/build/src/toolbox/toolchains/moddable/mac.js +433 -0
  22. package/build/src/toolbox/toolchains/moddable/windows.js +304 -0
  23. package/build/src/toolbox/toolchains/nrf52.js +267 -0
  24. package/build/src/toolbox/toolchains/pico.js +542 -0
  25. package/build/src/toolbox/toolchains/registry.js +25 -0
  26. package/build/src/toolbox/toolchains/wasm.js +279 -0
  27. package/build/src/toolbox/toolchains/zephyr.js +360 -0
  28. package/build/types/src/lib/toolchain.d.ts +24 -0
  29. package/build/types/src/toolbox/doctor/index.d.ts +5 -1
  30. package/build/types/src/toolbox/setup/types.d.ts +1 -1
  31. package/build/types/src/toolbox/setup/windows.d.ts +1 -4
  32. package/build/types/src/toolbox/system/exec.d.ts +5 -0
  33. package/build/types/src/toolbox/toolchains/context.d.ts +2 -0
  34. package/build/types/src/toolbox/toolchains/esp32/index.d.ts +3 -0
  35. package/build/types/src/toolbox/{setup → toolchains}/esp32/linux.d.ts +1 -1
  36. package/build/types/src/toolbox/{setup/pico → toolchains/esp32}/mac.d.ts +1 -1
  37. package/build/types/src/toolbox/{setup → toolchains}/esp32/windows.d.ts +1 -1
  38. package/build/types/src/toolbox/toolchains/esp8266.d.ts +2 -0
  39. package/build/types/src/toolbox/toolchains/interface.d.ts +1 -0
  40. package/build/types/src/toolbox/toolchains/moddable/index.d.ts +7 -0
  41. package/build/types/src/toolbox/toolchains/moddable/lin.d.ts +7 -0
  42. package/build/types/src/toolbox/toolchains/moddable/mac.d.ts +7 -0
  43. package/build/types/src/toolbox/toolchains/moddable/windows.d.ts +7 -0
  44. package/build/types/src/toolbox/toolchains/nrf52.d.ts +2 -0
  45. package/build/types/src/toolbox/toolchains/pico.d.ts +2 -0
  46. package/build/types/src/toolbox/toolchains/registry.d.ts +4 -0
  47. package/build/types/src/toolbox/toolchains/wasm.d.ts +2 -0
  48. package/build/types/src/toolbox/toolchains/zephyr.d.ts +2 -0
  49. package/package.json +1 -1
  50. package/build/src/toolbox/setup/esp32/linux.js +0 -47
  51. package/build/src/toolbox/setup/esp32/windows.js +0 -54
  52. package/build/src/toolbox/setup/esp32.js +0 -190
  53. package/build/src/toolbox/setup/esp8266/linux.js +0 -42
  54. package/build/src/toolbox/setup/esp8266/mac.js +0 -74
  55. package/build/src/toolbox/setup/esp8266/windows.js +0 -118
  56. package/build/src/toolbox/setup/esp8266.js +0 -163
  57. package/build/src/toolbox/setup/lin.js +0 -230
  58. package/build/src/toolbox/setup/mac.js +0 -204
  59. package/build/src/toolbox/setup/nrf52/windows.js +0 -40
  60. package/build/src/toolbox/setup/nrf52.js +0 -169
  61. package/build/src/toolbox/setup/pico/linux.js +0 -23
  62. package/build/src/toolbox/setup/pico/mac.js +0 -62
  63. package/build/src/toolbox/setup/pico.js +0 -267
  64. package/build/src/toolbox/setup/wasm.js +0 -223
  65. package/build/src/toolbox/setup/zephyr/linux.js +0 -25
  66. package/build/src/toolbox/setup/zephyr/mac.js +0 -36
  67. package/build/src/toolbox/setup/zephyr/windows.js +0 -29
  68. package/build/src/toolbox/setup/zephyr.js +0 -226
  69. package/build/src/toolbox/teardown/index.js +0 -37
  70. package/build/src/toolbox/update/esp32.js +0 -186
  71. package/build/src/toolbox/update/esp8266.js +0 -7
  72. package/build/src/toolbox/update/lin.js +0 -214
  73. package/build/src/toolbox/update/mac.js +0 -220
  74. package/build/src/toolbox/update/nrf52.js +0 -4
  75. package/build/src/toolbox/update/pico.js +0 -162
  76. package/build/src/toolbox/update/wasm.js +0 -4
  77. package/build/src/toolbox/update/windows.js +0 -7
  78. package/build/types/src/toolbox/setup/esp32/mac.d.ts +0 -3
  79. package/build/types/src/toolbox/setup/esp32.d.ts +0 -4
  80. package/build/types/src/toolbox/setup/esp8266/linux.d.ts +0 -3
  81. package/build/types/src/toolbox/setup/esp8266/mac.d.ts +0 -3
  82. package/build/types/src/toolbox/setup/esp8266/windows.d.ts +0 -3
  83. package/build/types/src/toolbox/setup/esp8266.d.ts +0 -3
  84. package/build/types/src/toolbox/setup/lin.d.ts +0 -4
  85. package/build/types/src/toolbox/setup/mac.d.ts +0 -4
  86. package/build/types/src/toolbox/setup/nrf52/windows.d.ts +0 -3
  87. package/build/types/src/toolbox/setup/nrf52.d.ts +0 -3
  88. package/build/types/src/toolbox/setup/pico/linux.d.ts +0 -3
  89. package/build/types/src/toolbox/setup/pico.d.ts +0 -3
  90. package/build/types/src/toolbox/setup/wasm.d.ts +0 -3
  91. package/build/types/src/toolbox/setup/zephyr/linux.d.ts +0 -3
  92. package/build/types/src/toolbox/setup/zephyr/mac.d.ts +0 -3
  93. package/build/types/src/toolbox/setup/zephyr/windows.d.ts +0 -3
  94. package/build/types/src/toolbox/setup/zephyr.d.ts +0 -3
  95. package/build/types/src/toolbox/teardown/index.d.ts +0 -1
  96. package/build/types/src/toolbox/update/esp32.d.ts +0 -3
  97. package/build/types/src/toolbox/update/esp8266.d.ts +0 -3
  98. package/build/types/src/toolbox/update/lin.d.ts +0 -3
  99. package/build/types/src/toolbox/update/mac.d.ts +0 -3
  100. package/build/types/src/toolbox/update/nrf52.d.ts +0 -3
  101. package/build/types/src/toolbox/update/pico.d.ts +0 -3
  102. package/build/types/src/toolbox/update/wasm.d.ts +0 -3
  103. package/build/types/src/toolbox/update/windows.d.ts +0 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "1.7.1",
3
+ "version": "1.7.2--canary.245.968fba7.0",
4
4
  "description": "CLI for automating the setup and usage of Moddable XS tools",
5
5
  "type": "module",
6
6
  "types": "build/types/types.d.ts",
@@ -1,5 +1,7 @@
1
1
  import { buildCommand } from '@stricli/core';
2
2
  import { gatherEnvironmentInfo } from '../toolbox/doctor/index.js';
3
+ import { toolchains } from '../toolbox/toolchains/registry.js';
4
+ import { getHostContext } from '../toolbox/toolchains/context.js';
3
5
  function printTable(rows, write) {
4
6
  const labelWidth = Math.max(...rows.map((r) => r[0]?.length ?? 0)) + 2;
5
7
  for (const [label, value] of rows) {
@@ -12,7 +14,11 @@ const command = buildCommand({
12
14
  const write = (s) => {
13
15
  proc.stdout.write(s);
14
16
  };
15
- const info = await gatherEnvironmentInfo(currentVersion);
17
+ const ctx = getHostContext();
18
+ const info = await gatherEnvironmentInfo(currentVersion, {
19
+ adapterList: Object.values(toolchains),
20
+ ctx,
21
+ });
16
22
  write('xs-dev environment info:\n');
17
23
  printTable([
18
24
  ['CLI Version', info.cliVersion],
@@ -65,4 +71,4 @@ const command = buildCommand({
65
71
  },
66
72
  });
67
73
  export default command;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLFNBQVMsVUFBVSxDQUFDLElBQWdCLEVBQUUsS0FBMEI7SUFDOUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEUsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtRQUM5QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RCLENBQUMsQ0FBQTtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0scUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFeEQsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDbkMsVUFBVSxD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
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxVQUFVLENBQUMsSUFBZ0IsRUFBRSxLQUEwQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2hFLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzNCLEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBUyxFQUFRLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEIsQ0FBQyxDQUFBO1FBRUQsTUFBTSxH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
@@ -3,16 +3,21 @@ import ora from 'ora';
3
3
  import { buildCommand } from '@stricli/core';
4
4
  import setupEjectfix from '../toolbox/setup/ejectfix.js';
5
5
  import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
6
- import { MODDABLE_REPO } from '../toolbox/setup/constants.js';
7
6
  import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
8
7
  import { handleEvent } from '../lib/renderer.js';
8
+ import { getToolchain } from '../toolbox/toolchains/registry.js';
9
+ import { getHostContext } from '../toolbox/toolchains/context.js';
10
+ function buildVersionString(release, branch, sourceRepo) {
11
+ const prefix = branch !== undefined ? `branch-${branch}` : `release-${release ?? 'latest'}`;
12
+ return sourceRepo !== undefined ? `${prefix}@${sourceRepo}` : prefix;
13
+ }
9
14
  const command = buildCommand({
10
15
  docs: {
11
16
  brief: 'Download and build Moddable tooling for various platform targets',
12
17
  },
13
18
  async func(flags) {
14
19
  const currentPlatform = platformType().toLowerCase();
15
- const { device, 'list-devices': listDevices = false, tool, branch, release = 'latest', 'source-repo': sourceRepo = MODDABLE_REPO, interactive = true, } = flags;
20
+ const { device, 'list-devices': listDevices = false, tool, branch, release = 'latest', 'source-repo': sourceRepo, interactive = true, } = flags;
16
21
  // Determine interactive mode and create prompter
17
22
  const prompter = isInteractive(interactive)
18
23
  ? createInteractivePrompter()
@@ -59,16 +64,32 @@ const command = buildCommand({
59
64
  'lin',
60
65
  'linux',
61
66
  ];
62
- const { default: setup } = await import(`../toolbox/setup/${target}.js`);
63
67
  const spinner = ora();
64
68
  if (platformDevices.includes(target)) {
65
- for await (const event of setup({ branch, release, sourceRepo }, prompter)) {
69
+ const toolchain = getToolchain('moddable');
70
+ if (toolchain === undefined) {
71
+ console.warn('Moddable toolchain not found');
72
+ process.exit(1);
73
+ }
74
+ const version = buildVersionString(release, branch, sourceRepo);
75
+ const ctx = { ...getHostContext(), version };
76
+ for await (const event of toolchain.install(ctx, prompter)) {
66
77
  handleEvent(event, spinner);
67
78
  }
68
79
  }
69
80
  else {
70
- for await (const event of setup({ branch, release }, prompter)) {
71
- handleEvent(event, spinner);
81
+ const toolchain = getToolchain(target);
82
+ if (toolchain !== undefined) {
83
+ const ctx = getHostContext();
84
+ for await (const event of toolchain.install(ctx, prompter)) {
85
+ handleEvent(event, spinner);
86
+ }
87
+ }
88
+ else {
89
+ handleEvent({
90
+ type: 'step:fail',
91
+ message: `No toolchain registered for device: ${target}`,
92
+ }, spinner);
72
93
  }
73
94
  }
74
95
  },
@@ -118,4 +139,4 @@ const command = buildCommand({
118
139
  },
119
140
  });
120
141
  export default command;
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsT0FBTyxhQUFhLE1BQU0sOEJBQThCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUU3RCxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixhQUFhLEdBQ2QsTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFhaEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzNCLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxrRUFBa0U7S0FDMUU7SUFDRCxLQUFLLENBQUMsSUFBSSxDQUFxQixLQUFtQjtRQUNoRCxNQUFNLGVBQWUsR0FBVyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxFQUNOLGNBQWMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUNuQyxJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FBRyxRQUFRLEVBQ2xCLGFBQWEsRUFBRSxVQUFVLEdBQUcsYUFBYSxFQUN6QyxXQUFXLEdBQUcsSUFBSSxHQUNuQixHQUFHLEtBQUssQ0FBQTtRQUVULGlEQUFpRDtRQUNqRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyx5QkFBeUIsRUFBRTtZQUM3QixDQUFDLENBQUMsNEJBQTRCLEVBQUUs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
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsT0FBTyxhQUFhLE1BQU0sOEJBQThCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTNELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRWpFLFNBQVMsa0JBQWtCLENBQ3pCLE9BQTJCLEVBQzNCLE1BQTBCLEVBQzFCLFVBQThCO0lBRTlCLE1BQU0sTUFBTSxHQUNWLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFBO0lBQzlFLE9BQU8sVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtBQUN0RSxDQUFDO0FBWUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzNCLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxrRUFBa0U7S0FDMUU7SUFDRCxLQUFLLENBQUMsSUFBSSxDQUFxQixLQUFtQjtRQUNoRCxNQUFNLGVBQWUs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
@@ -1,14 +1,44 @@
1
- import { buildCommand } from '@stricli/core';
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import { existsSync, rmSync } from 'node:fs';
3
+ import { join } from 'node:path';
2
4
  import ora from 'ora';
3
- import { teardown } from '../toolbox/teardown/index.js';
5
+ import { buildCommand } from '@stricli/core';
6
+ import { toolchains } from '../toolbox/toolchains/registry.js';
7
+ import { getHostContext } from '../toolbox/toolchains/context.js';
8
+ import { createNonInteractivePrompter } from '../lib/prompter.js';
9
+ import { handleEvent } from '../lib/renderer.js';
10
+ import { EXPORTS_FILE_PATH, INSTALL_DIR, getProfilePath, } from '../toolbox/setup/constants.js';
4
11
  const command = buildCommand({
5
12
  docs: {
6
13
  brief: 'Remove all installed git repos and toolchains, unset environment changes',
7
14
  },
8
15
  async func() {
9
16
  const spinner = ora();
10
- spinner.start('Tearing down Moddable tools and platform dependencies');
11
- await teardown();
17
+ const ctx = getHostContext();
18
+ const prompter = createNonInteractivePrompter();
19
+ spinner.start('Tearing down platform dependencies');
20
+ for (const toolchain of Object.values(toolchains)) {
21
+ if (toolchain.platforms.includes(ctx.platform)) {
22
+ for await (const event of toolchain.teardown(ctx, prompter)) {
23
+ handleEvent(event, spinner);
24
+ }
25
+ }
26
+ }
27
+ // Non-adapter cleanup: fontbm, exports file, shell profile
28
+ const remove = (path) => {
29
+ rmSync(path, { recursive: true, force: true });
30
+ };
31
+ remove(EXPORTS_FILE_PATH);
32
+ remove(join(INSTALL_DIR, 'fontbm'));
33
+ const profilePath = getProfilePath();
34
+ if (existsSync(profilePath)) {
35
+ const contents = await readFile(profilePath, 'utf8');
36
+ const patched = contents
37
+ .split('\n')
38
+ .filter((line) => line.trim() !== `source ${EXPORTS_FILE_PATH}`)
39
+ .join('\n');
40
+ await writeFile(profilePath, patched, 'utf8');
41
+ }
12
42
  spinner.succeed('Clean up complete!');
13
43
  },
14
44
  parameters: {
@@ -16,4 +46,4 @@ const command = buildCommand({
16
46
  },
17
47
  });
18
48
  export default command;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1QyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFFckIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRXZELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQ0gsMEVBQTBFO0tBQzdFO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFDdEUsTUFBTSxRQUFRLEVBQUUsQ0FBQTtRQUNoQixPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQTtBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLCtCQUErQixDQUFBO0FBRXRDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQ0gsMEVBQTBFO0tBQzdFO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixNQUFNLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtRQUM1QixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxDQUFBO1FBRS9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUVuRCxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUM1RCxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCwyREFBMkQ7UUFDM0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUE7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO1FBQ3BDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLFFBQVE7aUJBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ1gsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxpQkFBaUIsRUFBRSxDQUFDO2lCQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDYixNQUFNLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
@@ -4,6 +4,12 @@ import { buildCommand } from '@stricli/core';
4
4
  import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
5
5
  import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
6
6
  import { handleEvent } from '../lib/renderer.js';
7
+ import { getToolchain } from '../toolbox/toolchains/registry.js';
8
+ import { getHostContext } from '../toolbox/toolchains/context.js';
9
+ function buildVersionString(release, branch, sourceRepo) {
10
+ const prefix = branch !== undefined ? `branch-${branch}` : `release-${release ?? 'latest'}`;
11
+ return sourceRepo !== undefined ? `${prefix}@${sourceRepo}` : prefix;
12
+ }
7
13
  const command = buildCommand({
8
14
  docs: {
9
15
  brief: 'Check and update Moddable tooling for various platform targets',
@@ -14,10 +20,36 @@ const command = buildCommand({
14
20
  const prompter = isInteractive(interactive)
15
21
  ? createInteractivePrompter()
16
22
  : createNonInteractivePrompter();
17
- const { default: update } = await import(`../toolbox/update/${DEVICE_ALIAS[device]}.js`);
18
- const spinner = ora();
19
- for await (const event of update({ branch, release }, prompter)) {
20
- handleEvent(event, spinner);
23
+ const platformDevices = ['mac', 'lin', 'windows'];
24
+ const resolvedTarget = DEVICE_ALIAS[device];
25
+ if (platformDevices.includes(resolvedTarget)) {
26
+ const toolchain = getToolchain('moddable');
27
+ if (toolchain === undefined) {
28
+ console.warn('Moddable toolchain not found');
29
+ process.exit(1);
30
+ }
31
+ const version = buildVersionString(release, branch, undefined);
32
+ const ctx = { ...getHostContext(), version };
33
+ const spinner = ora();
34
+ for await (const event of toolchain.update(ctx, prompter)) {
35
+ handleEvent(event, spinner);
36
+ }
37
+ }
38
+ else {
39
+ const deviceToolchain = getToolchain(resolvedTarget);
40
+ const spinner = ora();
41
+ if (deviceToolchain !== undefined) {
42
+ const ctx = getHostContext();
43
+ for await (const event of deviceToolchain.update(ctx, prompter)) {
44
+ handleEvent(event, spinner);
45
+ }
46
+ }
47
+ else {
48
+ handleEvent({
49
+ type: 'step:fail',
50
+ message: `No toolchain registered for device: ${resolvedTarget}`,
51
+ }, spinner);
52
+ }
21
53
  }
22
54
  },
23
55
  parameters: {
@@ -49,4 +81,4 @@ const command = buildCommand({
49
81
  },
50
82
  });
51
83
  export default command;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBVWhELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsZ0VBQWdFO0tBQ3hFO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBcUIsS0FBb0I7UUFDakQsTUFBTSxlQUFlLEdBQVcsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLE1BQU0sRUFDTixPQUFPLEdBQUcsUUFBUSxFQUNsQixXQUFXLEdBQUcsSUFBSSxHQUNuQixHQUFHLEtBQUssQ0FBQTtRQUNULE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDekMsQ0FBQyxDQUFDLHlCQUF5QixFQUFFO1lBQzdCLENBQUMsQ0FBQyw0QkFBNEIsRUFBRSxDQUFBO1FBQ2xDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQ3RDLHFCQUFxQixZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDL0MsQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBRXJCLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FDOUIsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQ25CLFFBQVEsQ0FDeUIsRUFBRSxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEVBQUU7UUFDVixLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUEwQjtnQkFDMUQsS0FBSyxFQUNILGtGQUFrRjtnQkFDcEYsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQ0gsMEZBQTBGO2dCQUM1RixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFDSCxtRkFBbUY7Z0JBQ3JGLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUNILDJIQUEySDtnQkFDN0gsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxrQkFBa0IsQ0FDekIsT0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBOEI7SUFFOUIsTUFBTSxNQUFNLEdBQ1YsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUE7SUFDOUUsT0FBTyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3RFLENBQUM7QUFTRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLGdFQUFnRTtLQUN4RTtJQUNELEtBQUssQ0FBQyxJQUFJLENBQXFCLEtBQW9CO1FBQ2pELE1BQU0sZUFBZSxHQUFXLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBWSxD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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b29sY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -7,7 +7,9 @@ import { execaCommand } from 'execa';
7
7
  import { collectChoicesFromTree } from '../prompt/choices.js';
8
8
  import { moddableExists } from '../setup/moddable.js';
9
9
  import { DEVICE_ALIAS } from '../prompt/devices.js';
10
- import { sourceEnvironment, sourceIdfPythonEnv, which } from '../system/exec.js';
10
+ import { sourceEnvironment, which, sourceScript } from '../system/exec.js';
11
+ import { getHostContext } from '../toolchains/context.js';
12
+ import { resolveToolchain } from '../toolchains/registry.js';
11
13
  const DEPLOY_TARGET = Object.freeze({
12
14
  clean: 'clean',
13
15
  debug: 'xsbug',
@@ -46,6 +48,7 @@ async function* inspectTree(dirPath) {
46
48
  export default async function* build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }, prompter) {
47
49
  const OS = platformType().toLowerCase();
48
50
  await sourceEnvironment();
51
+ const ctx = getHostContext();
49
52
  if (!moddableExists()) {
50
53
  yield {
51
54
  type: 'step:fail',
@@ -86,64 +89,25 @@ export default async function* build({ listDevices, port, example, listExamples,
86
89
  }
87
90
  if (targetPlatform !== '') {
88
91
  const startsWithSimulator = targetPlatform.startsWith('simulator');
89
- if (targetPlatform.includes('esp32') && !startsWithSimulator) {
90
- if (!(typeof process.env.IDF_PATH === 'string')) {
91
- yield {
92
- type: 'step:fail',
93
- message: 'The current environment does not appear to be set up for the ESP32 build target. Please run `xs-dev setup --device esp32` before trying again.',
94
- };
95
- return;
96
- }
97
- await sourceIdfPythonEnv();
98
- }
99
- else if (targetPlatform.includes('esp') && !startsWithSimulator) {
100
- if (!(typeof process.env.ESP_BASE === 'string')) {
101
- yield {
102
- type: 'step:fail',
103
- message: 'The current environment does not appear to be set up for the ESP8266 build target. Please run `xs-dev setup --device esp8266` before trying again.',
104
- };
105
- return;
106
- }
107
- }
108
- if (targetPlatform.includes('wasm') && !startsWithSimulator) {
109
- if (!(process.env.PATH ?? '').includes('binaryen') ||
110
- typeof process.env.EMSDK !== 'string' ||
111
- typeof process.env.EMSDK_NODE !== 'string' ||
112
- typeof process.env.EMSDK_PYTHON !== 'string') {
113
- yield {
114
- type: 'step:fail',
115
- message: 'The current environment does not appear to be set up for the wasm build target. Please run `xs-dev setup --device wasm` before trying again.',
116
- };
117
- return;
118
- }
119
- }
120
- if (targetPlatform.includes('pico') && !startsWithSimulator) {
121
- if (!(typeof process.env.PICO_SDK_PATH === 'string') ||
122
- typeof process.env.PIOASM !== 'string') {
123
- yield {
124
- type: 'step:fail',
125
- message: 'The current environment does not appear to be set up for the pico build target. Please run `xs-dev setup --device pico` before trying again.',
126
- };
127
- return;
128
- }
129
- }
130
- if (targetPlatform.includes('nrf52') && !startsWithSimulator) {
131
- if (typeof process.env.NRF_ROOT !== 'string' ||
132
- typeof process.env.NRF_SDK_DIR !== 'string') {
133
- yield {
134
- type: 'step:fail',
135
- message: 'The current environment does not appear to be set up for the nrf52 build target. Please run `xs-dev setup --device nrf52` before trying again.',
136
- };
137
- return;
138
- }
139
- }
140
- if (targetPlatform.includes('zephyr') && !startsWithSimulator) {
141
- if (typeof process.env.ZEPHYR_BASE !== 'string') {
142
- yield {
143
- type: 'step:fail',
144
- message: 'The current environment does not appear to be set up for the zephyr build target. Please run `xs-dev setup --device zephyr` before trying again.',
145
- };
146
- return;
92
+ if (!startsWithSimulator) {
93
+ const toolchain = resolveToolchain(targetPlatform);
94
+ if (toolchain !== undefined) {
95
+ // Apply env vars from the toolchain so build tools are on PATH
96
+ Object.assign(process.env, toolchain.getEnvVars(ctx));
97
+ // Source activation script if toolchain provides one (e.g. ESP-IDF, Zephyr)
98
+ const script = toolchain.getActivationScript?.(ctx);
99
+ if (script !== undefined && script !== null) {
100
+ await sourceScript(script);
101
+ }
102
+ // Verify the toolchain is set up
103
+ const verifyResult = await toolchain.verify(ctx);
104
+ if (!verifyResult.ok) {
105
+ yield {
106
+ type: 'step:fail',
107
+ message: `The current environment does not appear to be set up for the ${toolchain.name} build target. Please run \`xs-dev setup --device ${toolchain.name}\` before trying again.`,
108
+ };
109
+ return;
110
+ }
147
111
  }
148
112
  }
149
113
  }
@@ -322,4 +286,4 @@ export default async function* build({ listDevices, port, example, listExamples,
322
286
  }).listen(8080);
323
287
  }
324
288
  }
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBSW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQWtCaEYsTUFBTSxhQUFhLEdBQTJDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUUsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE9BQU87SUFDYixHQUFHLEVBQUUsS0FBSztDQUNYLENBQUMsQ0FBQTtBQVFGLEtBQUssU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQWU7SUFDekMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxP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
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBSW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBa0I1RCxNQUFNLGFBQWEsR0FBMkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRSxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLEdBQUcsRUFBRSxLQUFLO0NBQ1gsQ0FBQyxDQUFBO0FBUUYsS0FBSyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBZTtJQUN6QyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxN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
@@ -1,57 +1,19 @@
1
1
  import os from 'node:os';
2
- import { existsSync, statSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { DEVICE_ALIAS } from '../prompt/devices.js';
5
- import { getModdableVersion, moddableExists } from '../setup/moddable.js';
6
- import { sourceEnvironment, which } from '../system/exec.js';
2
+ import { which } from '../system/exec.js';
3
+ import { getModdableVersion } from '../setup/moddable.js';
7
4
  import { detectPython, getPythonVersion } from '../system/python.js';
8
5
  import { unwrapOr } from '../system/errors.js';
9
- function isDir(path) {
10
- return existsSync(path) && statSync(path).isDirectory();
11
- }
12
- function isFile(path) {
13
- return existsSync(path) && statSync(path).isFile();
14
- }
15
- export async function gatherEnvironmentInfo(cliVersion) {
16
- await sourceEnvironment();
6
+ export async function gatherEnvironmentInfo(cliVersion, { adapterList, ctx }) {
17
7
  const supportedDevices = [];
18
- if (moddableExists()) {
19
- supportedDevices.push(DEVICE_ALIAS[os.type().toLowerCase()]);
20
- }
21
- if (typeof process.env.IDF_PATH === 'string' && isDir(process.env.IDF_PATH)) {
22
- supportedDevices.push('esp32');
23
- }
24
- if (typeof process.env.ESP_BASE === 'string' &&
25
- isDir(process.env.ESP_BASE) &&
26
- isDir(join(process.env.ESP_BASE, 'toolchain')) &&
27
- isDir(join(process.env.ESP_BASE, 'ESP8266_RTOS_SDK')) &&
28
- isDir(join(process.env.ESP_BASE, 'esp8266-2.3.0'))) {
29
- supportedDevices.push('esp8266');
30
- }
31
- if ((process.env.PATH ?? '').includes('binaryen') &&
32
- isDir(process.env.EMSDK ?? '') &&
33
- isFile(process.env.EMSDK_NODE ?? '') &&
34
- isFile(process.env.EMSDK_PYTHON ?? '')) {
35
- supportedDevices.push('wasm');
36
- }
37
- if (typeof process.env.PICO_SDK_PATH === 'string' &&
38
- isDir(process.env.PICO_SDK_PATH) &&
39
- which('picotool') !== null &&
40
- isFile(process.env.PIOASM ?? '')) {
41
- supportedDevices.push('pico');
42
- }
43
- if (typeof process.env.NRF_ROOT === 'string' &&
44
- isDir(process.env.NRF_ROOT) &&
45
- ((typeof process.env.NRF_SDK_DIR === 'string' &&
46
- isDir(process.env.NRF_SDK_DIR)) ||
47
- (typeof process.env.NRF52_SDK_PATH === 'string' &&
48
- isDir(process.env.NRF52_SDK_PATH)))) {
49
- supportedDevices.push('nrf52');
50
- }
51
- if (typeof process.env.ZEPHYR_BASE === 'string' &&
52
- isDir(process.env.ZEPHYR_BASE)) {
53
- supportedDevices.push('zephyr');
54
- }
8
+ await Promise.all(adapterList
9
+ .filter((toolchain) => toolchain.platforms.includes(ctx.platform))
10
+ .map(async (toolchain) => {
11
+ Object.assign(process.env, toolchain.getEnvVars(ctx));
12
+ const result = await toolchain.verify(ctx);
13
+ if (result.ok) {
14
+ supportedDevices.push(toolchain.name);
15
+ }
16
+ }));
55
17
  const pythonVersion = unwrapOr(await getPythonVersion(), 'Unavailable');
56
18
  const pythonPath = which(detectPython() ?? '') ?? 'n/a';
57
19
  const moddableVersion = unwrapOr(await getModdableVersion(), 'Not found');
@@ -70,4 +32,4 @@ export async function gatherEnvironmentInfo(cliVersion) {
70
32
  supportedDevices,
71
33
  };
72
34
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9kb2N0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUU5QyxTQUFTLEtBQUssQ0FBQyxJQUFZO0lBQ3pCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtBQUN6RCxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsSUFBWTtJQUMxQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7QUFDcEQsQ0FBQztBQWdCRCxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxVQUFrQjtJQUVsQixNQUFNLGlCQUFpQixFQUFFLENBQUE7SUFFekIsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUE7SUFFckMsSUFBSSxjQUFjLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLGdCQUFnQixDQUFDLElBQUksQ0FDbkIsWUFBWSxDQUFDLEVB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
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9kb2N0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBaUI5QyxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxVQUFrQixFQUNsQixFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQWtEO0lBRXBFLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFBO0lBRXJDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixXQUFXO1NBQ1IsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakUsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNkLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUNMLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUE7SUFDdkQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUE7SUFFbEQsT0FBTztRQUNMLFVBQVU7UUFDVixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNqQixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTO1FBQ3JDLFdBQVcsRUFBRSxPQUFPLENBQUMsT0FBTztRQUM1QixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQjtRQUMzQyxhQUFhO1FBQ2IsVUFBVTtRQUNWLGVBQWU7UUFDZixZQUFZO1FBQ1osZ0JBQWdCO0tBQ2pCLENBQUE7QUFDSCxDQUFDIn0=
@@ -1,29 +1,14 @@
1
1
  import { setTimeout as sleep } from 'node:timers/promises';
2
- import { existsSync, statSync } from 'node:fs';
3
2
  import { execSync } from 'node:child_process';
4
3
  import { SerialPort } from 'serialport';
5
4
  import { findBySerialNumber } from 'usb';
6
5
  import { parseScanResult } from './parse.js';
7
- import { sourceEnvironment, sourceIdf } from '../system/exec.js';
6
+ import { toolchains } from '../toolchains/registry.js';
7
+ import { getHostContext } from '../toolchains/context.js';
8
8
  export default async function* scanDevices() {
9
- const envResult = await sourceEnvironment();
10
- if (!envResult.success) {
11
- yield {
12
- type: 'warning',
13
- message: `Failed to source environment: ${envResult.error}`,
14
- };
15
- }
16
- if (typeof process.env.IDF_PATH === 'string' &&
17
- existsSync(process.env.IDF_PATH) &&
18
- statSync(process.env.IDF_PATH).isDirectory()) {
19
- yield { type: 'info', message: 'Found ESP_IDF, sourcing environment...' };
20
- const idfResult = await sourceIdf();
21
- if (!idfResult.success) {
22
- yield {
23
- type: 'warning',
24
- message: `Failed to source IDF environment: ${idfResult.error}`,
25
- };
26
- }
9
+ const ctx = getHostContext();
10
+ for (const toolchain of Object.values(toolchains).filter((a) => a.platforms.includes(ctx.platform))) {
11
+ Object.assign(process.env, toolchain.getEnvVars(ctx));
27
12
  }
28
13
  const esptoolPath = (() => {
29
14
  try {
@@ -114,4 +99,4 @@ export default async function* scanDevices() {
114
99
  }
115
100
  }
116
101
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zY2FuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLElBQUksS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhFLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxXQUFXO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLE1BQU0saUJBQWlCLEVBQUUsQ0FBQTtJQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLE1BQU07WUFDSixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxpQ0FBaUMsU0FBUyxDQUFDLEtBQUssRUFBRTtTQUM1RCxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQ0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQ3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFDNUMsQ0FBQztRQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxDQUFBO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNO2dCQUNKLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxxQ0FBcUMsU0FBUyxDQUFDLEtBQUssRUFBRTthQUNoRSxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN4RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUMxQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVKLElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU07WUFDSixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFDTCwySkFBMko7U0FDOUosQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN6QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN0RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUMxQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNKLE1BQU0sV0FBVyxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUE7SUFFekMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUM7WUFDSCxNQUFNO2dCQUNKLElBQUksRUFBRSxZQUFZO2dCQUNsQixPQUFPLEVBQUUsa0RBQWtEO2FBQzVELENBQUE7WUFDRCxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUMvQixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQixNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO1FBQzdCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBLENBQUMsd0NBQXdDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUE7SUFFaEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckMsTUFBTSxNQUFNLEdBRVIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNuQixLQUFLO1NBQ0YsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQztTQUNqRCxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2xCLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDaEUsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQXdCLENBQUE7Z0JBQ3RELENBQUM7Z0JBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtnQkFDNUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUNyQix1QkFBdUIsR0FBRyxjQUFjLE9BQU8sTUFBTSxDQUN0RCxDQUFBO2dCQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBcUIsQ0FBQTtZQUNoRCxDQUFDO1lBQ0QsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBd0IsQ0FBQTtZQUN0RCxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQTtZQUNsRSxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQXFCLENBQUE7UUFDaEQsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7UUFDVixPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMvQixDQUFDLENBQUMsQ0FDTCxDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDNUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDakMsQ0FBQyxDQUFDLENBQUE7SUFFRixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUE7SUFDbkUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNO1lBQ0osSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLHdDQUF3QztTQUNsRCxDQUFBO1FBQ0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUN6RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDOUQsQ0FBQTtRQUNELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDMUIsTUFBTTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsR0FBRztxQkFDVCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2QsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zY2FuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLElBQUksS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsV0FBVztJQUN4QyxNQUFNLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtJQUM1QixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDN0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUNuQyxFQUFFLENBQUM7UUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FB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