xs-dev 1.2.7 → 1.2.8--canary.238.f790b26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +2 -1
- package/build/src/app.js +33 -38
- package/build/src/cli.js +9 -13
- package/build/src/commands/build.js +20 -25
- package/build/src/commands/clean.js +20 -25
- package/build/src/commands/debug.js +20 -25
- package/build/src/commands/doctor.js +27 -32
- package/build/src/commands/include.js +26 -61
- package/build/src/commands/init.js +25 -60
- package/build/src/commands/remove.js +14 -49
- package/build/src/commands/run.js +20 -25
- package/build/src/commands/scan.js +27 -65
- package/build/src/commands/setup.js +26 -64
- package/build/src/commands/teardown.js +31 -36
- package/build/src/commands/update.js +17 -55
- package/build/src/lib/events.js +1 -2
- package/build/src/lib/output.js +5 -11
- package/build/src/lib/prompter.js +7 -12
- package/build/src/lib/renderer.js +2 -5
- package/build/src/toolbox/build/index.js +46 -52
- package/build/src/toolbox/init/templates.js +10 -16
- package/build/src/toolbox/patching/replace.js +7 -10
- package/build/src/toolbox/patching/upsert.js +7 -10
- package/build/src/toolbox/prompt/choices.js +2 -5
- package/build/src/toolbox/prompt/devices.js +2 -5
- package/build/src/toolbox/scan/parse.js +2 -5
- package/build/src/toolbox/setup/constants.js +19 -23
- package/build/src/toolbox/setup/ejectfix.js +22 -27
- package/build/src/toolbox/setup/esp32/linux.js +7 -10
- package/build/src/toolbox/setup/esp32/mac.js +18 -21
- package/build/src/toolbox/setup/esp32/windows.js +16 -20
- package/build/src/toolbox/setup/esp32.js +39 -46
- package/build/src/toolbox/setup/esp8266/linux.js +8 -11
- package/build/src/toolbox/setup/esp8266/mac.js +12 -15
- package/build/src/toolbox/setup/esp8266/windows.js +32 -35
- package/build/src/toolbox/setup/esp8266.js +46 -52
- package/build/src/toolbox/setup/homebrew.js +15 -22
- package/build/src/toolbox/setup/lin.js +48 -54
- package/build/src/toolbox/setup/mac.js +48 -54
- package/build/src/toolbox/setup/moddable.js +37 -45
- package/build/src/toolbox/setup/nrf52/windows.js +7 -10
- package/build/src/toolbox/setup/nrf52.js +48 -87
- package/build/src/toolbox/setup/pico/linux.js +6 -9
- package/build/src/toolbox/setup/pico/mac.js +12 -15
- package/build/src/toolbox/setup/pico.js +63 -69
- package/build/src/toolbox/setup/types.js +1 -2
- package/build/src/toolbox/setup/wasm.js +37 -43
- package/build/src/toolbox/setup/windows.js +47 -55
- package/build/src/toolbox/setup/zephyr/linux.js +6 -9
- package/build/src/toolbox/setup/zephyr/mac.js +6 -9
- package/build/src/toolbox/setup/zephyr/windows.js +5 -8
- package/build/src/toolbox/setup/zephyr.js +42 -48
- package/build/src/toolbox/system/errors.js +12 -25
- package/build/src/toolbox/system/exec.js +27 -35
- package/build/src/toolbox/system/execa.js +7 -44
- package/build/src/toolbox/system/fetch.js +4 -7
- package/build/src/toolbox/system/packages.js +14 -18
- package/build/src/toolbox/system/python.js +11 -15
- package/build/src/toolbox/system/types.js +1 -2
- package/build/src/toolbox/update/esp32.js +40 -46
- package/build/src/toolbox/update/esp8266.js +2 -5
- package/build/src/toolbox/update/lin.js +41 -47
- package/build/src/toolbox/update/mac.js +42 -48
- package/build/src/toolbox/update/nrf52.js +2 -5
- package/build/src/toolbox/update/pico.js +52 -91
- package/build/src/toolbox/update/wasm.js +2 -5
- package/build/src/toolbox/update/windows.js +2 -5
- package/build/src/types.js +1 -2
- package/build/types/src/commands/build.d.ts +1 -1
- package/build/types/src/commands/clean.d.ts +1 -1
- package/build/types/src/commands/debug.d.ts +1 -1
- package/build/types/src/commands/doctor.d.ts +1 -1
- package/build/types/src/commands/include.d.ts +1 -1
- package/build/types/src/commands/init.d.ts +1 -1
- package/build/types/src/commands/remove.d.ts +1 -1
- package/build/types/src/commands/run.d.ts +1 -1
- package/build/types/src/commands/scan.d.ts +1 -1
- package/build/types/src/commands/setup.d.ts +1 -1
- package/build/types/src/commands/teardown.d.ts +1 -1
- package/build/types/src/commands/update.d.ts +1 -1
- package/build/types/src/toolbox/build/index.d.ts +2 -2
- package/build/types/src/toolbox/prompt/devices.d.ts +1 -1
- package/build/types/src/toolbox/setup/lin.d.ts +1 -1
- package/build/types/src/toolbox/setup/mac.d.ts +1 -1
- package/build/types/src/toolbox/setup/moddable.d.ts +1 -1
- package/build/types/src/toolbox/setup/windows.d.ts +1 -1
- package/build/types/src/toolbox/system/errors.d.ts +1 -1
- package/build/types/src/toolbox/system/exec.d.ts +1 -1
- package/build/types/src/toolbox/system/packages.d.ts +2 -2
- package/build/types/src/toolbox/system/python.d.ts +1 -1
- package/package.json +2 -1
- package/tsconfig.json +2 -3
package/build/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xs-dev",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.8--canary.238.f790b26.0",
|
|
4
4
|
"description": "CLI for automating the setup and usage of Moddable XS tools",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"types": "build/types/types.d.ts",
|
|
6
7
|
"packageManager": "pnpm@10.29.2",
|
|
7
8
|
"engines": {
|
package/build/src/app.js
CHANGED
|
@@ -1,50 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const scan_1 = __importDefault(require("./commands/scan"));
|
|
18
|
-
const setup_1 = __importDefault(require("./commands/setup"));
|
|
19
|
-
const teardown_1 = __importDefault(require("./commands/teardown"));
|
|
20
|
-
const update_1 = __importDefault(require("./commands/update"));
|
|
21
|
-
const commands = (0, core_1.buildRouteMap)({
|
|
1
|
+
import { buildApplication, buildRouteMap, } from '@stricli/core';
|
|
2
|
+
import build from './commands/build.js';
|
|
3
|
+
import clean from './commands/clean.js';
|
|
4
|
+
import debug from './commands/debug.js';
|
|
5
|
+
import doctor from './commands/doctor.js';
|
|
6
|
+
import include from './commands/include.js';
|
|
7
|
+
import init from './commands/init.js';
|
|
8
|
+
import remove from './commands/remove.js';
|
|
9
|
+
import run from './commands/run.js';
|
|
10
|
+
import scan from './commands/scan.js';
|
|
11
|
+
import setup from './commands/setup.js';
|
|
12
|
+
import teardown from './commands/teardown.js';
|
|
13
|
+
import update from './commands/update.js';
|
|
14
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
15
|
+
const { description, version, name } = packageJson;
|
|
16
|
+
const commands = buildRouteMap({
|
|
22
17
|
routes: {
|
|
23
|
-
build
|
|
24
|
-
clean
|
|
25
|
-
debug
|
|
26
|
-
doctor
|
|
27
|
-
include
|
|
28
|
-
init
|
|
29
|
-
remove
|
|
30
|
-
run
|
|
31
|
-
scan
|
|
32
|
-
setup
|
|
33
|
-
teardown
|
|
34
|
-
update
|
|
18
|
+
build,
|
|
19
|
+
clean,
|
|
20
|
+
debug,
|
|
21
|
+
doctor,
|
|
22
|
+
include,
|
|
23
|
+
init,
|
|
24
|
+
remove,
|
|
25
|
+
run,
|
|
26
|
+
scan,
|
|
27
|
+
setup,
|
|
28
|
+
teardown,
|
|
29
|
+
update,
|
|
35
30
|
},
|
|
36
31
|
aliases: {
|
|
37
32
|
dr: 'doctor',
|
|
38
33
|
info: 'doctor',
|
|
39
34
|
},
|
|
40
35
|
docs: {
|
|
41
|
-
brief:
|
|
36
|
+
brief: description,
|
|
42
37
|
},
|
|
43
38
|
});
|
|
44
|
-
|
|
45
|
-
name
|
|
39
|
+
export const app = buildApplication(commands, {
|
|
40
|
+
name,
|
|
46
41
|
versionInfo: {
|
|
47
|
-
currentVersion:
|
|
42
|
+
currentVersion: version,
|
|
48
43
|
},
|
|
49
44
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FFZCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQTtBQUN2QyxPQUFPLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQUN6QyxPQUFPLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQTtBQUMzQyxPQUFPLElBQUksTUFBTSxvQkFBb0IsQ0FBQTtBQUNyQyxPQUFPLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQUN6QyxPQUFPLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuQyxPQUFPLElBQUksTUFBTSxvQkFBb0IsQ0FBQTtBQUNyQyxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQTtBQUN2QyxPQUFPLFFBQVEsTUFBTSx3QkFBd0IsQ0FBQTtBQUM3QyxPQUFPLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQUN6QyxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtBQUMvRCxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUE7QUFNbEQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDO0lBQzdCLE1BQU0sRUFBRTtRQUNOLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLE1BQU07UUFDTixPQUFPO1FBQ1AsSUFBSTtRQUNKLE1BQU07UUFDTixHQUFHO1FBQ0gsSUFBSTtRQUNKLEtBQUs7UUFDTCxRQUFRO1FBQ1IsTUFBTTtLQUNQO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsRUFBRSxFQUFFLFFBQVE7UUFDWixJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0QsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLFdBQVc7S0FDbkI7Q0FDRixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQWUsUUFBUSxFQUFFO0lBQzFELElBQUk7SUFDSixXQUFXLEVBQUU7UUFDWCxjQUFjLEVBQUUsT0FBTztLQUN4QjtDQUNGLENBQUMsQ0FBQSJ9
|
package/build/src/cli.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
const node_process_1 = __importDefault(require("node:process"));
|
|
8
|
-
const core_1 = require("@stricli/core");
|
|
9
|
-
const package_json_1 = require("../package.json");
|
|
10
|
-
const app_1 = require("./app");
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { run as runApp } from '@stricli/core';
|
|
4
|
+
import { app } from './app.js';
|
|
5
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
6
|
+
const { version } = packageJson;
|
|
11
7
|
/**
|
|
12
8
|
* Create the cli and kick it off
|
|
13
9
|
*/
|
|
14
|
-
(
|
|
15
|
-
process
|
|
16
|
-
currentVersion:
|
|
10
|
+
runApp(app, process.argv.slice(2), {
|
|
11
|
+
process,
|
|
12
|
+
currentVersion: version,
|
|
17
13
|
}).catch(console.error);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLElBQUksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDOUIsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUE7QUFDL0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsQ0FBQTtBQUUvQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDakMsT0FBTztJQUNQLGNBQWMsRUFBRSxPQUFPO0NBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBIn0=
|
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const build_1 = __importDefault(require("../toolbox/build"));
|
|
11
|
-
const devices_1 = require("../toolbox/prompt/devices");
|
|
12
|
-
const prompter_1 = require("../lib/prompter");
|
|
13
|
-
const renderer_1 = require("../lib/renderer");
|
|
14
|
-
const command = (0, core_1.buildCommand)({
|
|
1
|
+
import { type as platformType } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { buildCommand } from '@stricli/core';
|
|
5
|
+
import build from '../toolbox/build/index.js';
|
|
6
|
+
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
7
|
+
import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
|
|
8
|
+
import { handleEvent } from '../lib/renderer.js';
|
|
9
|
+
const command = buildCommand({
|
|
15
10
|
docs: {
|
|
16
11
|
brief: 'Build project for release to target device',
|
|
17
12
|
},
|
|
18
13
|
async func(flags,
|
|
19
14
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
20
15
|
projectPath = '.') {
|
|
21
|
-
const currentPlatform = (
|
|
16
|
+
const currentPlatform = platformType().toLowerCase();
|
|
22
17
|
const { device = currentPlatform, deploy = false, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, mode = process.env.NODE_ENV ?? 'development', output, port, config = [], } = flags;
|
|
23
|
-
const targetPlatform =
|
|
24
|
-
projectPath =
|
|
18
|
+
const targetPlatform = DEVICE_ALIAS[device] ?? device;
|
|
19
|
+
projectPath = resolve(projectPath);
|
|
25
20
|
const parsedConfig = config.reduce((result, setting) => {
|
|
26
21
|
const [key, value] = setting.split('=');
|
|
27
22
|
result[key] = value;
|
|
28
23
|
return result;
|
|
29
24
|
}, {});
|
|
30
25
|
// Determine interactive mode
|
|
31
|
-
const prompter =
|
|
32
|
-
?
|
|
33
|
-
:
|
|
34
|
-
const spinner = (
|
|
35
|
-
for await (const event of (
|
|
26
|
+
const prompter = isInteractive()
|
|
27
|
+
? createInteractivePrompter()
|
|
28
|
+
: createNonInteractivePrompter();
|
|
29
|
+
const spinner = ora();
|
|
30
|
+
for await (const event of build({
|
|
36
31
|
listExamples,
|
|
37
32
|
listDevices,
|
|
38
33
|
example,
|
|
@@ -44,7 +39,7 @@ const command = (0, core_1.buildCommand)({
|
|
|
44
39
|
outputDir: output,
|
|
45
40
|
config: parsedConfig,
|
|
46
41
|
}, prompter)) {
|
|
47
|
-
|
|
42
|
+
handleEvent(event, spinner);
|
|
48
43
|
}
|
|
49
44
|
},
|
|
50
45
|
parameters: {
|
|
@@ -121,5 +116,5 @@ const command = (0, core_1.buildCommand)({
|
|
|
121
116
|
},
|
|
122
117
|
},
|
|
123
118
|
});
|
|
124
|
-
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
export default command;
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEtBQUssTUFBTSwyQkFBMkIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBZ0JoRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLDRDQUE0QztLQUNwRDtJQUNELEtBQUssQ0FBQyxJQUFJLENBRVIsS0FBbUI7SUFDbkIsa0VBQWtFO0lBQ2xFLGNBQXNCLEdBQUc7UUFFekIsTUFBTSxlQUFlLEdBQVcsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLE1BQU0sR0FBRyxLQUFLLEVBQ2QsT0FBTyxFQUNQLGVBQWUsRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUNyQyxjQUFjLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFDbkMsSUFBSSxHQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBaUIsSUFBSSxhQUFhLEVBQ3RELE1BQU0sRUFDTixJQUFJLEVBQ0osTUFBTSxHQUFHLEVBQUUsR0FDWixHQUFHLEtBQUssQ0FBQTtRQUNULE1BQU0s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
|
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const build_1 = __importDefault(require("../toolbox/build"));
|
|
11
|
-
const devices_1 = require("../toolbox/prompt/devices");
|
|
12
|
-
const prompter_1 = require("../lib/prompter");
|
|
13
|
-
const renderer_1 = require("../lib/renderer");
|
|
14
|
-
const command = (0, core_1.buildCommand)({
|
|
1
|
+
import { type as platformType } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { buildCommand } from '@stricli/core';
|
|
5
|
+
import build from '../toolbox/build/index.js';
|
|
6
|
+
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
7
|
+
import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
|
|
8
|
+
import { handleEvent } from '../lib/renderer.js';
|
|
9
|
+
const command = buildCommand({
|
|
15
10
|
docs: {
|
|
16
11
|
brief: 'Remove build artifacts for project',
|
|
17
12
|
},
|
|
18
13
|
async func(flags,
|
|
19
14
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
20
15
|
projectPath = '.') {
|
|
21
|
-
const currentPlatform = (
|
|
16
|
+
const currentPlatform = platformType().toLowerCase();
|
|
22
17
|
const { device = currentPlatform, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, mode = process.env.NODE_ENV ?? 'development', output, config = [], } = flags;
|
|
23
|
-
const targetPlatform =
|
|
24
|
-
projectPath =
|
|
18
|
+
const targetPlatform = DEVICE_ALIAS[device] ?? device;
|
|
19
|
+
projectPath = resolve(projectPath);
|
|
25
20
|
const parsedConfig = config.reduce((result, setting) => {
|
|
26
21
|
const [key, value] = setting.split('=');
|
|
27
22
|
result[key] = value;
|
|
28
23
|
return result;
|
|
29
24
|
}, {});
|
|
30
25
|
// Determine interactive mode
|
|
31
|
-
const prompter =
|
|
32
|
-
?
|
|
33
|
-
:
|
|
34
|
-
const spinner = (
|
|
35
|
-
for await (const event of (
|
|
26
|
+
const prompter = isInteractive()
|
|
27
|
+
? createInteractivePrompter()
|
|
28
|
+
: createNonInteractivePrompter();
|
|
29
|
+
const spinner = ora();
|
|
30
|
+
for await (const event of build({
|
|
36
31
|
listExamples,
|
|
37
32
|
listDevices,
|
|
38
33
|
example,
|
|
@@ -43,7 +38,7 @@ const command = (0, core_1.buildCommand)({
|
|
|
43
38
|
outputDir: output,
|
|
44
39
|
config: parsedConfig,
|
|
45
40
|
}, prompter)) {
|
|
46
|
-
|
|
41
|
+
handleEvent(event, spinner);
|
|
47
42
|
}
|
|
48
43
|
},
|
|
49
44
|
parameters: {
|
|
@@ -109,5 +104,5 @@ const command = (0, core_1.buildCommand)({
|
|
|
109
104
|
},
|
|
110
105
|
},
|
|
111
106
|
});
|
|
112
|
-
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
export default command;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY2xlYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEtBQUssTUFBTSwyQkFBMkIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBY2hELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0NBQW9DO0tBQzVDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLGVBQWUsR0FBVyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxHQUFHLGVBQWUsRUFDeEIsT0FBTyxFQUNQLGVBQWUsRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUNyQyxjQUFjLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFDbkMsSUFBSSxHQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBaUIsSUFBSSxhQUFhLEVBQ3RELE1BQU0sRUFDTixNQUFNLEdBQUcsRUFBRSxHQUNaLEdBQUcsS0FBSyxDQUFBO1FBQ1QsTUFBTSxjQUFjLEdBQVcsWUFBWSxDQUFDLE1BQWdCLENBQUMs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
|
|
@@ -1,33 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const build_1 = __importDefault(require("../toolbox/build"));
|
|
11
|
-
const devices_1 = require("../toolbox/prompt/devices");
|
|
12
|
-
const prompter_1 = require("../lib/prompter");
|
|
13
|
-
const renderer_1 = require("../lib/renderer");
|
|
14
|
-
const command = (0, core_1.buildCommand)({
|
|
1
|
+
import { type as platformType } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { buildCommand } from '@stricli/core';
|
|
5
|
+
import build from '../toolbox/build/index.js';
|
|
6
|
+
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
7
|
+
import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
|
|
8
|
+
import { handleEvent } from '../lib/renderer.js';
|
|
9
|
+
const command = buildCommand({
|
|
15
10
|
docs: {
|
|
16
11
|
brief: 'Connect to running debugging session on target device or simulator',
|
|
17
12
|
},
|
|
18
13
|
async func(flags,
|
|
19
14
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
20
15
|
projectPath = '.') {
|
|
21
|
-
const currentPlatform = (
|
|
16
|
+
const currentPlatform = platformType().toLowerCase();
|
|
22
17
|
const { device = currentPlatform, port, example, 'list-examples': listExamples = false, 'list-devices': listDevices = false, log = false, mode = process.env.NODE_ENV ?? 'development', output, } = flags;
|
|
23
|
-
const targetPlatform =
|
|
24
|
-
projectPath =
|
|
18
|
+
const targetPlatform = DEVICE_ALIAS[device] ?? device;
|
|
19
|
+
projectPath = resolve(projectPath);
|
|
25
20
|
// Determine interactive mode
|
|
26
|
-
const prompter =
|
|
27
|
-
?
|
|
28
|
-
:
|
|
29
|
-
const spinner = (
|
|
30
|
-
for await (const event of (
|
|
21
|
+
const prompter = isInteractive()
|
|
22
|
+
? createInteractivePrompter()
|
|
23
|
+
: createNonInteractivePrompter();
|
|
24
|
+
const spinner = ora();
|
|
25
|
+
for await (const event of build({
|
|
31
26
|
port,
|
|
32
27
|
listExamples,
|
|
33
28
|
listDevices,
|
|
@@ -39,7 +34,7 @@ const command = (0, core_1.buildCommand)({
|
|
|
39
34
|
deployStatus: 'debug',
|
|
40
35
|
outputDir: output,
|
|
41
36
|
}, prompter)) {
|
|
42
|
-
|
|
37
|
+
handleEvent(event, spinner);
|
|
43
38
|
}
|
|
44
39
|
},
|
|
45
40
|
parameters: {
|
|
@@ -109,5 +104,5 @@ const command = (0, core_1.buildCommand)({
|
|
|
109
104
|
},
|
|
110
105
|
},
|
|
111
106
|
});
|
|
112
|
-
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
export default command;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEtBQUssTUFBTSwyQkFBMkIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBZWhELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsb0VBQW9FO0tBQzVFO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FFUixLQUFtQjtJQUNuQixrRUFBa0U7SUFDbEUsY0FBc0IsR0FBRztRQUV6QixNQUFNLGVBQWUsR0FBVyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxHQUFHLGVBQWUsRUFDeEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxlQUFlLEVBQUUsWUFBWSxHQUFHLEtBQUssRUFDckMsY0FBYyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQ25DLEdBQUcsR0FBRyxLQUFLLEVBQ1gsSUFBSSxHQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBaUIsSUFBSSxhQUFhLEVBQ3RELE1BQU0sR0FDUCxHQUFHLEtBQUssQ0FBQTtRQUNULE1BQU0sY0FBYyxHQUFXLFlBQVksQ0FBQyxN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
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const devices_1 = require("../toolbox/prompt/devices");
|
|
11
|
-
const moddable_1 = require("../toolbox/setup/moddable");
|
|
12
|
-
const exec_1 = require("../toolbox/system/exec");
|
|
13
|
-
const python_1 = require("../toolbox/system/python");
|
|
14
|
-
const errors_1 = require("../toolbox/system/errors");
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import { existsSync, statSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { buildCommand } from '@stricli/core';
|
|
5
|
+
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
6
|
+
import { getModdableVersion, moddableExists, } from '../toolbox/setup/moddable.js';
|
|
7
|
+
import { sourceEnvironment, which } from '../toolbox/system/exec.js';
|
|
8
|
+
import { detectPython, getPythonVersion } from '../toolbox/system/python.js';
|
|
9
|
+
import { unwrapOr } from '../toolbox/system/errors.js';
|
|
15
10
|
function isDir(path) {
|
|
16
|
-
return
|
|
11
|
+
return existsSync(path) && statSync(path).isDirectory();
|
|
17
12
|
}
|
|
18
13
|
function isFile(path) {
|
|
19
|
-
return
|
|
14
|
+
return existsSync(path) && statSync(path).isFile();
|
|
20
15
|
}
|
|
21
16
|
function printTable(rows, write) {
|
|
22
17
|
const labelWidth = Math.max(...rows.map((r) => r[0]?.length ?? 0)) + 2;
|
|
@@ -24,16 +19,16 @@ function printTable(rows, write) {
|
|
|
24
19
|
write(` ${(label ?? '').padEnd(labelWidth)}${value ?? ''}\n`);
|
|
25
20
|
}
|
|
26
21
|
}
|
|
27
|
-
const command =
|
|
22
|
+
const command = buildCommand({
|
|
28
23
|
async func() {
|
|
29
24
|
const { currentVersion, process: proc } = this;
|
|
30
25
|
const write = (s) => {
|
|
31
26
|
proc.stdout.write(s);
|
|
32
27
|
};
|
|
33
|
-
await
|
|
28
|
+
await sourceEnvironment();
|
|
34
29
|
const supportedDevices = [];
|
|
35
|
-
if (
|
|
36
|
-
supportedDevices.push(
|
|
30
|
+
if (moddableExists()) {
|
|
31
|
+
supportedDevices.push(DEVICE_ALIAS[os.type().toLowerCase()]);
|
|
37
32
|
}
|
|
38
33
|
if (typeof process.env.IDF_PATH === 'string' &&
|
|
39
34
|
isDir(process.env.IDF_PATH)) {
|
|
@@ -41,9 +36,9 @@ const command = (0, core_1.buildCommand)({
|
|
|
41
36
|
}
|
|
42
37
|
if (typeof process.env.ESP_BASE === 'string' &&
|
|
43
38
|
isDir(process.env.ESP_BASE) &&
|
|
44
|
-
isDir(
|
|
45
|
-
isDir(
|
|
46
|
-
isDir(
|
|
39
|
+
isDir(join(process.env.ESP_BASE, 'toolchain')) &&
|
|
40
|
+
isDir(join(process.env.ESP_BASE, 'ESP8266_RTOS_SDK')) &&
|
|
41
|
+
isDir(join(process.env.ESP_BASE, 'esp8266-2.3.0'))) {
|
|
47
42
|
supportedDevices.push('esp8266');
|
|
48
43
|
}
|
|
49
44
|
if ((process.env.PATH ?? '').includes('binaryen') &&
|
|
@@ -54,7 +49,7 @@ const command = (0, core_1.buildCommand)({
|
|
|
54
49
|
}
|
|
55
50
|
if (typeof process.env.PICO_SDK_PATH === 'string' &&
|
|
56
51
|
isDir(process.env.PICO_SDK_PATH) &&
|
|
57
|
-
|
|
52
|
+
which('picotool') !== null &&
|
|
58
53
|
isFile(process.env.PIOASM ?? '')) {
|
|
59
54
|
supportedDevices.push('pico');
|
|
60
55
|
}
|
|
@@ -70,19 +65,19 @@ const command = (0, core_1.buildCommand)({
|
|
|
70
65
|
isDir(process.env.ZEPHYR_BASE)) {
|
|
71
66
|
supportedDevices.push('zephyr');
|
|
72
67
|
}
|
|
73
|
-
const pythonVersion =
|
|
74
|
-
const pythonPath =
|
|
75
|
-
const moddableVersion =
|
|
68
|
+
const pythonVersion = unwrapOr(await getPythonVersion(), 'Unavailable');
|
|
69
|
+
const pythonPath = which(detectPython() ?? '') ?? 'n/a';
|
|
70
|
+
const moddableVersion = unwrapOr(await getModdableVersion(), 'Not found');
|
|
76
71
|
const moddablePath = process.env.MODDABLE ?? 'n/a';
|
|
77
72
|
write('xs-dev environment info:\n');
|
|
78
73
|
printTable([
|
|
79
74
|
['CLI Version', currentVersion],
|
|
80
|
-
['OS',
|
|
81
|
-
['Arch',
|
|
75
|
+
['OS', os.type()],
|
|
76
|
+
['Arch', os.arch()],
|
|
82
77
|
['Shell', process.env.SHELL ?? 'Unknown'],
|
|
83
78
|
[
|
|
84
79
|
'NodeJS Version',
|
|
85
|
-
`${process.version} (${
|
|
80
|
+
`${process.version} (${which('node') ?? 'path not found'})`,
|
|
86
81
|
],
|
|
87
82
|
['Python Version', `${pythonVersion} (${pythonPath})`],
|
|
88
83
|
['Moddable SDK Version', `${moddableVersion} (${moddablePath})`],
|
|
@@ -123,5 +118,5 @@ const command = (0, core_1.buildCommand)({
|
|
|
123
118
|
flags: {},
|
|
124
119
|
},
|
|
125
120
|
});
|
|
126
|
-
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
export default command;
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMzRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXRELFNBQVMsS0FBSyxDQUFDLElBQVk7SUFDekIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ3pELENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxJQUFZO0lBQzFCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtBQUNwRCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBZ0IsRUFBRSxLQUEwQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMs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
|