xs-dev 0.14.3 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/bin/xs-dev +3 -4
- package/build/commands/include.js +9 -7
- package/build/commands/remove.js +5 -5
- package/build/commands/setup.js +3 -3
- package/build/commands/update.js +3 -3
- package/build/toolbox/setup/esp32.js +2 -2
- package/build/toolbox/setup/fontbm.js +7 -3
- package/build/toolbox/setup/linux.js +45 -7
- package/build/toolbox/setup/mac.js +51 -12
- package/build/toolbox/setup/moddable.js +35 -2
- package/build/toolbox/setup/types.js +3 -0
- package/build/toolbox/setup/windows.js +2 -2
- package/build/toolbox/update/esp32.js +4 -4
- package/build/toolbox/update/linux.js +92 -31
- package/build/toolbox/update/mac.js +80 -26
- package/build/types/toolbox/setup/linux.d.ts +2 -1
- package/build/types/toolbox/setup/mac.d.ts +2 -1
- package/build/types/toolbox/setup/moddable.d.ts +11 -0
- package/build/types/toolbox/setup/types.d.ts +3 -0
- package/build/types/toolbox/setup/windows.d.ts +2 -1
- package/build/types/toolbox/update/linux.d.ts +2 -1
- package/build/types/toolbox/update/mac.d.ts +2 -1
- package/build/types/types.d.ts +3 -2
- package/docs/astro.config.mjs +13 -0
- package/docs/public/favicon.ico +0 -0
- package/docs/public/make-scrollable-code-focusable.js +3 -0
- package/docs/src/components/Footer/AvatarList.astro +149 -0
- package/docs/src/components/Footer/Footer.astro +16 -0
- package/docs/src/components/HeadCommon.astro +32 -0
- package/docs/src/components/HeadSEO.astro +28 -0
- package/docs/src/components/Header/Header.astro +133 -0
- package/docs/src/components/Header/LanguageSelect.css +47 -0
- package/docs/src/components/Header/LanguageSelect.tsx +49 -0
- package/docs/src/components/Header/Search.css +39 -0
- package/docs/src/components/Header/Search.tsx +65 -0
- package/docs/src/components/Header/SidebarToggle.tsx +44 -0
- package/docs/src/components/Header/SkipToContent.astro +22 -0
- package/docs/src/components/LeftSidebar/LeftSidebar.astro +118 -0
- package/docs/src/components/PageContent/PageContent.astro +41 -0
- package/docs/src/components/RightSidebar/MoreMenu.astro +70 -0
- package/docs/src/components/RightSidebar/RightSidebar.astro +27 -0
- package/docs/src/components/RightSidebar/TableOfContents.tsx +49 -0
- package/docs/src/components/RightSidebar/ThemeToggleButton.css +37 -0
- package/docs/src/components/RightSidebar/ThemeToggleButton.tsx +83 -0
- package/docs/src/config.ts +43 -0
- package/docs/src/languages.ts +10 -0
- package/docs/src/layouts/MainLayout.astro +122 -0
- package/docs/src/pages/en/features/include.md +48 -0
- package/docs/src/pages/en/features/init.md +57 -0
- package/docs/src/pages/en/features/run.md +63 -0
- package/docs/src/pages/en/features/scan.md +28 -0
- package/docs/src/pages/en/features/setup.md +67 -0
- package/docs/src/pages/en/features/teardown.md +13 -0
- package/docs/src/pages/en/features/update.md +37 -0
- package/docs/src/pages/en/introduction.md +68 -0
- package/docs/src/pages/index.astro +5 -0
- package/docs/src/pages/search-index.json.ts +18 -0
- package/docs/src/styles/index.css +382 -0
- package/docs/src/styles/theme.css +125 -0
- package/docs/tailwind.config.cjs +7 -0
- package/docs/tsconfig.json +16 -0
- package/package.json +23 -6
- package/docs/commands.md +0 -3
- package/docs/plugins.md +0 -47
package/README.md
CHANGED
|
@@ -334,3 +334,7 @@ To maintain the alias between shell sessions, for example I use zsh:
|
|
|
334
334
|
```
|
|
335
335
|
echo "alias local-xs-dev=$PWD/bin/xs-dev" >> ~/.zshrc
|
|
336
336
|
```
|
|
337
|
+
|
|
338
|
+
## Docs
|
|
339
|
+
|
|
340
|
+
The documentation site is built with [Astro](https://astro.build) and can be found in the `docs/` directory. When working on them locally, run `pnpm start:docs` to start the development server that watches for file changes and reloads the page.
|
package/bin/xs-dev
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
/* tslint:disable */
|
|
5
4
|
// check if we're running in dev mode
|
|
6
5
|
var devMode = require('fs').existsSync(`${__dirname}/../src`)
|
|
@@ -13,9 +12,9 @@ if (wantsCompiled || !devMode) {
|
|
|
13
12
|
} else {
|
|
14
13
|
// this runs from the typescript source (for dev only)
|
|
15
14
|
// hook into ts-node so we can run typescript on the fly
|
|
16
|
-
require('ts-node').register({
|
|
15
|
+
require('ts-node').register({
|
|
16
|
+
project: `${__dirname}/../tsconfig.json`,
|
|
17
|
+
})
|
|
17
18
|
// run the CLI with the current process arguments
|
|
18
19
|
require(`${__dirname}/../src/cli`).run(process.argv)
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
@@ -13,7 +13,7 @@ const command = {
|
|
|
13
13
|
}
|
|
14
14
|
const modulesPath = filesystem.resolve(String(process.env.MODDABLE), 'modules');
|
|
15
15
|
let moduleName = parameters.first;
|
|
16
|
-
const { device =
|
|
16
|
+
const { device = '' } = parameters.options;
|
|
17
17
|
if (moduleName === undefined ||
|
|
18
18
|
filesystem.exists(filesystem.resolve(modulesPath, moduleName, 'manifest.json')) === false) {
|
|
19
19
|
// prompt with choices from $MODDABLE/modules
|
|
@@ -21,13 +21,15 @@ const command = {
|
|
|
21
21
|
const choices = modules !== undefined
|
|
22
22
|
? modules.map((mod) => (0, choices_1.collectChoicesFromTree)(mod)).flat()
|
|
23
23
|
: [];
|
|
24
|
-
const filtered =
|
|
24
|
+
const filtered = moduleName !== undefined
|
|
25
|
+
? choices.filter((mod) => mod.includes(String(moduleName)))
|
|
26
|
+
: choices;
|
|
25
27
|
const { mod: selectedModule } = await prompt.ask([
|
|
26
28
|
{
|
|
27
29
|
type: 'autocomplete',
|
|
28
30
|
name: 'mod',
|
|
29
31
|
message: 'Here are the available modules:',
|
|
30
|
-
choices:
|
|
32
|
+
choices: filtered.length > 0 ? filtered : choices,
|
|
31
33
|
},
|
|
32
34
|
]);
|
|
33
35
|
moduleName = selectedModule;
|
|
@@ -38,14 +40,14 @@ const command = {
|
|
|
38
40
|
var _a, _b;
|
|
39
41
|
var _c;
|
|
40
42
|
let manifest = manifestIn;
|
|
41
|
-
if (device !==
|
|
43
|
+
if (device !== '') {
|
|
42
44
|
(_a = manifest.platforms) !== null && _a !== void 0 ? _a : (manifest.platforms = {});
|
|
43
45
|
(_b = (_c = manifest.platforms)[device]) !== null && _b !== void 0 ? _b : (_c[device] = {});
|
|
44
46
|
manifest = manifest.platforms[device];
|
|
45
47
|
}
|
|
46
|
-
if (!(
|
|
48
|
+
if (!('include' in manifest))
|
|
47
49
|
manifest.include = [];
|
|
48
|
-
if (typeof manifest.include ===
|
|
50
|
+
if (typeof manifest.include === 'string')
|
|
49
51
|
manifest.include = [manifest.include];
|
|
50
52
|
if (manifest.include.includes(modulePath) === false) {
|
|
51
53
|
manifest.include.push(modulePath);
|
|
@@ -58,4 +60,4 @@ const command = {
|
|
|
58
60
|
},
|
|
59
61
|
};
|
|
60
62
|
exports.default = command;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9pbmNsdWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsdURBQWtFO0FBTWxFLE1BQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsU0FBUztJQUNmLFdBQVcsRUFBRSwyREFBMkQ7SUFDeEUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFOztRQUNqRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUN2RSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQzdDLEtBQUssQ0FBQyxLQUFLLENBQ1Qsc0ZBQXNGLENBQ3ZGLENBQUE7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO1FBQ0QsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQzVCLFNBQVMsQ0FDVixDQUFBO1FBQ0QsSUFBSSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUNqQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxHQUFtQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBRTFELElBQ0UsVUFBVSxLQUFLLFNBQVM7WUFDeEIsVUFBVSxDQUFDLE1BQU0sQ0FDZixVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQzdELEtBQUssS0FBSyxFQUNYO1lBQ0EsNkNBQTZDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLE1BQUEsVUFBVSxDQUFDLFdBQVcsQ0FBQyxX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
|
package/build/commands/remove.js
CHANGED
|
@@ -10,7 +10,7 @@ const command = {
|
|
|
10
10
|
process.exit(1);
|
|
11
11
|
}
|
|
12
12
|
const moduleName = parameters.first;
|
|
13
|
-
const { device =
|
|
13
|
+
const { device = '' } = parameters.options;
|
|
14
14
|
if (moduleName === undefined) {
|
|
15
15
|
print.error('Module name is required');
|
|
16
16
|
process.exit(1);
|
|
@@ -20,14 +20,14 @@ const command = {
|
|
|
20
20
|
var _a, _b;
|
|
21
21
|
var _c;
|
|
22
22
|
let manifest = manifestIn;
|
|
23
|
-
if (device !==
|
|
23
|
+
if (device !== '') {
|
|
24
24
|
(_a = manifest.platforms) !== null && _a !== void 0 ? _a : (manifest.platforms = {});
|
|
25
25
|
(_b = (_c = manifest.platforms)[device]) !== null && _b !== void 0 ? _b : (_c[device] = {});
|
|
26
26
|
manifest = manifest.platforms[device];
|
|
27
27
|
}
|
|
28
|
-
if (!(
|
|
28
|
+
if (!('include' in manifest))
|
|
29
29
|
return;
|
|
30
|
-
if (typeof manifest.include ===
|
|
30
|
+
if (typeof manifest.include === 'string')
|
|
31
31
|
manifest.include = [manifest.include];
|
|
32
32
|
const length = manifest.include.length;
|
|
33
33
|
manifest.include = manifest.include.filter((mod) => {
|
|
@@ -48,4 +48,4 @@ const command = {
|
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
exports.default = command;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3JlbW92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLE1BQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsUUFBUTtJQUNkLFdBQVcsRUFBRSxnRUFBZ0U7SUFDN0UsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDdkUsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUM3QyxLQUFLLENBQUMsS0FBSyxDQUNULHNGQUFzRixDQUN2RixDQUFBO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNoQjtRQUNELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUE7UUFDbkMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsR0FBa0IsVUFBVSxDQUFDLE9BQU8sQ0FBQTtRQUV6RCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEI7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsTUFBTSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQ3JFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTs7O1lBQ2pELElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQTtZQUN6QixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7Z0JBQ2pCLE1BQUEsUUFBUSxDQUFDLFNBQVMsb0NBQWxCLFFBQVEsQ0FBQyxTQUFTLEdBQUssRUFBRSxFQUFBO2dCQUN6QixZQUFBLFFBQVEsQ0FBQyxTQUFTLEVBQUMsTUFBTSx3Q0FBTixNQUFNLElBQU0sRUFBRSxFQUFBO2dCQUNqQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUN0QztZQUVELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7Z0JBQUUsT0FBTTtZQUVwQyxJQUFJLE9BQU8sUUFBUSxDQUFDLE9BQU8sS0FBSyxRQUFRO2dCQUN0QyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBRXZDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFBO1lBQ3RDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDekQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO2dCQUN4QyxJQUFJLENBQUMsTUFBTTtvQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQTtnQkFFNUMsT0FBTyxNQUFNLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksTUFBTSxLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTTtnQkFDcEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsa0NBQWtDLENBQUMsQ0FBQTtZQUUvRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsUUFBUSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNwRSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFBO1lBRS9ELE9BQU8sVUFBVSxDQUFBO1FBQ25CLENBQUMsQ0FBQyxDQUFBO1FBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
package/build/commands/setup.js
CHANGED
|
@@ -11,7 +11,7 @@ const command = {
|
|
|
11
11
|
description: 'Download and build Moddable tooling for various platform targets',
|
|
12
12
|
run: async ({ parameters, setup, prompt, print }) => {
|
|
13
13
|
const currentPlatform = (0, os_1.type)().toLowerCase();
|
|
14
|
-
const { device, listDevices = false, tool, } = parameters.options;
|
|
14
|
+
const { device, listDevices = false, tool, targetBranch = 'latest-release', } = parameters.options;
|
|
15
15
|
let target = device !== null && device !== void 0 ? device : currentPlatform;
|
|
16
16
|
if (device === undefined && listDevices) {
|
|
17
17
|
const choices = [
|
|
@@ -45,8 +45,8 @@ const command = {
|
|
|
45
45
|
await (0, fontbm_1.default)();
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
await setup[target]();
|
|
48
|
+
await setup[target]({ targetBranch });
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
exports.default = command;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQkFBeUM7QUFFekMscUVBQWlEO0FBQ2pELHVEQUF3RDtBQVN4RCxNQUFNLE9BQU8sR0FBaUM7SUFDNUMsSUFBSSxFQUFFLE9BQU87SUFDYixXQUFXLEVBQ1Qsa0VBQWtFO0lBQ3BFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ2xELE1BQU0sZUFBZSxHQUFXLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sRUFDTixXQUFXLEdBQUcsS0FBSyxFQUNuQixJQUFJLEVBQ0osWUFBWSxHQUFHLGdCQUFnQixHQUNoQyxHQUFpQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ3BDLElBQUksTUFBTSxHQUFXLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLGVBQWUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVM7Z0JBQ1QsT0FBTztnQkFDUCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sc0JBQVksQ0FBQyxlQUFlLENBQUM7YUFDOUIsQ0FBQTtZQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUNsRDtvQkFDRSxJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsT0FBTyxFQUFFLHdDQUF3QztvQkFDakQsT0FBTztpQkFDUjthQUNGLENBQUMsQ0FBQTtZQUVGLElBQUksY0FBYyxLQUFLLEVBQUUsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFO2dCQUN6RCxNQUFNLEdBQUcsY0FBd0IsQ0FBQTthQUNsQztpQkFBTTtnQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUE7Z0JBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7U0FDRjtRQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7WUFDRCxNQUFNLElBQUEsZ0JBQVcsR0FBRSxDQUFBO1lBQ25CLE9BQU07U0FDUDtRQUVELE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
package/build/commands/update.js
CHANGED
|
@@ -6,9 +6,9 @@ const command = {
|
|
|
6
6
|
description: 'Check and update Moddable tooling for various platform targets',
|
|
7
7
|
run: async ({ parameters, update }) => {
|
|
8
8
|
const currentPlatform = (0, os_1.type)().toLowerCase();
|
|
9
|
-
const { device = currentPlatform } = parameters.options;
|
|
10
|
-
await update[device]();
|
|
9
|
+
const { device = currentPlatform, targetBranch = 'latest-release', } = parameters.options;
|
|
10
|
+
await update[device]({ targetBranch });
|
|
11
11
|
},
|
|
12
12
|
};
|
|
13
13
|
exports.default = command;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDJCQUF5QztBQVF6QyxNQUFNLE9BQU8sR0FBaUM7SUFDNUMsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsZ0VBQWdFO0lBQzdFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUNwQyxNQUFNLGVBQWUsR0FBVyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixZQUFZLEdBQUcsZ0JBQWdCLEdBQ2hDLEdBQWtCLFVBQVUsQ0FBQyxPQUFPLENBQUE7UUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7Q0FDRixDQUFBO0FBRUQsa0JBQWUsT0FBTyxDQUFBIn0=
|
|
@@ -13,7 +13,7 @@ const linux_1 = require("./esp32/linux");
|
|
|
13
13
|
async function default_1() {
|
|
14
14
|
const OS = (0, os_1.type)().toLowerCase();
|
|
15
15
|
const ESP_IDF_REPO = 'https://github.com/espressif/esp-idf.git';
|
|
16
|
-
const ESP_BRANCH = 'v4.4';
|
|
16
|
+
const ESP_BRANCH = 'v4.4.2';
|
|
17
17
|
const ESP32_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'esp32');
|
|
18
18
|
const IDF_PATH = gluegun_1.filesystem.resolve(ESP32_DIR, 'esp-idf');
|
|
19
19
|
const spinner = gluegun_1.print.spin();
|
|
@@ -67,4 +67,4 @@ async function default_1() {
|
|
|
67
67
|
`);
|
|
68
68
|
}
|
|
69
69
|
exports.default = default_1;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9lc3AzMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUFtRDtBQUNuRCwyQkFBeUM7QUFDekMsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyxnRUFBdUM7QUFDdkMscUNBQTJEO0FBQzNELHlDQUErRDtBQUVoRCxLQUFLO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsTUFBTSxZQUFZLEdBQUcsMENBQTBDLENBQUE7SUFDL0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFBO0lBQzNCLE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDMUQsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFFdkMsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxJQUFBLHlCQUFjLEdBQUUsRUFBRTtRQUNyQixPQUFPLENBQUMsSUFBSSxDQUNWLG9FQUFvRSxDQUNyRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELDJDQUEyQztJQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFDaEQsb0JBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekIscURBQXFEO0lBQ3JELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUNyQyxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixnQkFBZ0IsVUFBVSxnQkFBZ0IsWUFBWSxJQUFJLFFBQVEsRUFBRSxDQUNyRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0tBQ2xCO0lBRUQsd0NBQXdDO0lBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUU5QyxJQUFJLEVBQUUsS0FBSyxRQUFRLEVBQUU7UUFDbkIsTUFBTSxJQUFBLGlCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUE7S0FDOUI7SUFFRCxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUU7UUFDbEIsTUFBTSxJQUFBLG1CQUFnQixFQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ2hDO0lBRUQsaURBQWlEO0lBQ2pELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDL0IsTUFBTSxJQUFBLGdCQUFNLEVBQUMsNkJBQWlCLEVBQUUsbUJBQW1CLFFBQVEsRUFBRSxDQUFDLENBQUE7S0FDL0Q7SUFFRCxvQ0FBb0M7SUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQzNDLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ2hDLEdBQUcsRUFBRSxRQUFRO1FBQ2IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSztRQUN4QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLDBEQUEwRDtJQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFDNUMsTUFBTSxJQUFBLGdCQUFNLEVBQUMsNkJBQWlCLEVBQUUseUNBQXlDLENBQUMsQ0FBQTtJQUMxRSxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1FBQzlDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUs7S0FDekIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLE9BQU8sQ0FBQzs7OztHQUlmLENBQUMsQ0FBQTtBQUNKLENBQUM7QUF0RUQsNEJBc0VDIn0=
|
|
@@ -29,7 +29,9 @@ async function default_1() {
|
|
|
29
29
|
}
|
|
30
30
|
if (OS === 'linux') {
|
|
31
31
|
spinner.start('CMake required, installing with apt');
|
|
32
|
-
await (0, exec_1.execWithSudo)('apt-get install --yes build-essential cmake', {
|
|
32
|
+
await (0, exec_1.execWithSudo)('apt-get install --yes build-essential cmake', {
|
|
33
|
+
stdout: process.stdout,
|
|
34
|
+
});
|
|
33
35
|
spinner.succeed();
|
|
34
36
|
}
|
|
35
37
|
}
|
|
@@ -43,7 +45,9 @@ async function default_1() {
|
|
|
43
45
|
}
|
|
44
46
|
if (OS === 'linux') {
|
|
45
47
|
spinner.start('Installing libfreetype-dev');
|
|
46
|
-
await (0, exec_1.execWithSudo)('apt-get install --yes libfreetype-dev', {
|
|
48
|
+
await (0, exec_1.execWithSudo)('apt-get install --yes libfreetype-dev', {
|
|
49
|
+
stdout: process.stdout,
|
|
50
|
+
});
|
|
47
51
|
spinner.succeed();
|
|
48
52
|
}
|
|
49
53
|
// 3. clone fontbm
|
|
@@ -71,4 +75,4 @@ async function default_1() {
|
|
|
71
75
|
spinner.succeed('fontbm successfully set up!');
|
|
72
76
|
}
|
|
73
77
|
exports.default = default_1;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udGJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvZm9udGJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQW1EO0FBQ25ELDJDQUE0RDtBQUM1RCxnRUFBdUM7QUFDdkMsMkJBQXlDO0FBQ3pDLHFDQUE4QjtBQUM5Qix5Q0FBNkM7QUFFOUIsS0FBSztJQUNsQixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBRW5DLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsSUFBSSxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsS0FBSyxPQUFPLEVBQUU7UUFDckMsZUFBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQUN2QyxJQUFBLGNBQUksRUFBQyxDQUFDLENBQUMsQ0FBQTtLQUNSO0lBRUQsTUFBTSxXQUFXLEdBQUcsZ0RBQWdELENBQUE7SUFDcEUsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM1RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUE7SUFFM0IsbUJBQW1CO0lBQ25CLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xDLElBQUksRUFBRSxLQUFLLFFBQVEsRUFBRTtZQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7WUFDekQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUNsQjtRQUNELElBQUksRUFBRSxLQUFLLE9BQU8sRUFBRTtZQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7WUFDcEQsTUFBTSxJQUFBLG1CQUFZLEVBQUMsNkNBQTZDLEVBQUU7Z0JBQ2hFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTthQUN2QixDQUFDLENBQUE7WUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDbEI7S0FDRjtJQUVELHNCQUFzQjtJQUN0QixJQUFJLEVBQUUsS0FBSyxRQUFRLEVBQUU7UUFDbkIsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7WUFDNUQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUNsQjtLQUNGO0lBQ0QsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFO1FBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtRQUMzQyxNQUFNLElBQUEsbUJBQVksRUFBQyx1Q0FBdUMsRUFBRTtZQUMxRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0tBQ2xCO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLFVBQVUsSUFBSSxDQUFDLENBQUE7UUFDMUQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsYUFBYSxXQUFXLGFBQWEsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUNoRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0tBQ2xCO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNoQyxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUMzQixHQUFHLEVBQUUsVUFBVTtRQUNmLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDLENBQUE7SUFDRixNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN4QixHQUFHLEVBQUUsVUFBVTtRQUNmLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDLENBQUE7SUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFakIscUNBQXFDO0lBQ3JDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsVUFBVSxTQUFTLENBQUE7UUFDM0MsTUFBTSxJQUFBLGdCQUFNLEVBQUMsNkJBQWlCLEVBQUUsaUJBQWlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtLQUN2RTtJQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBMUVELDRCQTBFQyJ9
|
|
@@ -3,13 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const os_1 = __importDefault(require("os"));
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const fs_1 = require("fs");
|
|
6
9
|
const gluegun_1 = require("gluegun");
|
|
7
10
|
const constants_1 = require("./constants");
|
|
8
11
|
const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
9
12
|
const exec_1 = require("../system/exec");
|
|
10
|
-
|
|
13
|
+
const moddable_1 = require("./moddable");
|
|
14
|
+
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
15
|
+
async function default_1({ targetBranch }) {
|
|
16
|
+
var _a;
|
|
11
17
|
gluegun_1.print.info('Setting up Linux tools!');
|
|
12
18
|
const BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'lin', 'release');
|
|
19
|
+
const DEBUG_BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'lin', 'debug');
|
|
13
20
|
const BUILD_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'makefiles', 'lin');
|
|
14
21
|
const PROFILE_PATH = (0, constants_1.getProfilePath)();
|
|
15
22
|
const spinner = gluegun_1.print.spin();
|
|
@@ -32,8 +39,32 @@ async function default_1() {
|
|
|
32
39
|
spinner.info('Moddable repo already installed');
|
|
33
40
|
}
|
|
34
41
|
else {
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
if (targetBranch === 'latest-release') {
|
|
43
|
+
spinner.start('Getting latest Moddable-OpenSource/moddable release');
|
|
44
|
+
const release = await (0, moddable_1.fetchLatestRelease)();
|
|
45
|
+
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${release.tag_name} --single-branch`);
|
|
46
|
+
gluegun_1.filesystem.dir(BIN_PATH);
|
|
47
|
+
gluegun_1.filesystem.dir(DEBUG_BIN_PATH);
|
|
48
|
+
const isArm = os_1.default.arch() === 'arm64';
|
|
49
|
+
const assetName = isArm
|
|
50
|
+
? 'moddable-tools-lin64arm.zip'
|
|
51
|
+
: 'moddable-tools-lin64.zip';
|
|
52
|
+
spinner.info('Downloading release tools');
|
|
53
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
54
|
+
writePath: BIN_PATH,
|
|
55
|
+
assetName,
|
|
56
|
+
release,
|
|
57
|
+
});
|
|
58
|
+
const tools = (_a = gluegun_1.filesystem.list(BIN_PATH)) !== null && _a !== void 0 ? _a : [];
|
|
59
|
+
await Promise.all(tools.map(async (tool) => {
|
|
60
|
+
await chmodPromise(gluegun_1.filesystem.resolve(BIN_PATH, tool), 0o751);
|
|
61
|
+
await gluegun_1.filesystem.copyAsync(gluegun_1.filesystem.resolve(BIN_PATH, tool), gluegun_1.filesystem.resolve(DEBUG_BIN_PATH, tool));
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
if (targetBranch === 'public') {
|
|
65
|
+
spinner.start('Cloning Moddable-OpenSource/moddable repo');
|
|
66
|
+
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${targetBranch} --single-branch`);
|
|
67
|
+
}
|
|
37
68
|
spinner.succeed();
|
|
38
69
|
}
|
|
39
70
|
// 4. Setup the MODDABLE environment variable
|
|
@@ -43,11 +74,18 @@ async function default_1() {
|
|
|
43
74
|
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export MODDABLE=${process.env.MODDABLE}`);
|
|
44
75
|
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PATH="${BIN_PATH}:$PATH"`);
|
|
45
76
|
// 5. Build the Moddable command line tools, simulator, and debugger from the command line:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
77
|
+
if (targetBranch === 'public') {
|
|
78
|
+
spinner.start('Building platform tooling');
|
|
79
|
+
await gluegun_1.system.exec('make', { cwd: BUILD_DIR, stdout: process.stdout });
|
|
80
|
+
spinner.succeed();
|
|
81
|
+
}
|
|
49
82
|
// 6. Install the desktop simulator and xsbug debugger applications
|
|
50
83
|
spinner.start('Installing simulator');
|
|
84
|
+
if (targetBranch === 'latest-release') {
|
|
85
|
+
gluegun_1.filesystem.dir(gluegun_1.filesystem.resolve(BUILD_DIR, '..', '..', 'tmp', 'lin', 'debug', 'simulator'));
|
|
86
|
+
await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'xsbug', 'manifest.json')}`, { process });
|
|
87
|
+
await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'mcsim', 'manifest.json')}`, { process });
|
|
88
|
+
}
|
|
51
89
|
await (0, exec_1.execWithSudo)('make install', {
|
|
52
90
|
cwd: BUILD_DIR,
|
|
53
91
|
stdout: process.stdout,
|
|
@@ -57,4 +95,4 @@ async function default_1() {
|
|
|
57
95
|
gluegun_1.print.success('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
|
|
58
96
|
}
|
|
59
97
|
exports.default = default_1;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9saW51eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUFtQjtBQUNuQiwrQkFBZ0M7QUFDaEMsMkJBQTBCO0FBQzFCLHFDQUFtRDtBQUNuRCwyQ0FNb0I7QUFDcEIsZ0VBQXVDO0FBQ3ZDLHlDQUE2QztBQUU3Qyx5Q0FBcUU7QUFFckUsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBUyxFQUFDLFVBQUssQ0FBQyxDQUFBO0FBRXRCLEtBQUssb0JBQVcsRUFBRSxZQUFZLEVBQWE7O0lBQ3hELGVBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUVyQyxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDakMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FBQTtJQUNELE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUN2Qyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO0lBQ0QsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2xDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLENBQ04sQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsMEJBQWMsR0FBRSxDQUFBO0lBRXJDLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFbkMsK0VBQStFO0lBQy9FLG9CQUFVLENBQUMsR0FBRyxDQUFDLHVCQUFXLENBQUMsQ0FBQTtJQUUzQixNQUFNLElBQUEsZ0JBQU0sRUFBQyw2QkFBaUIsRUFBRSwyQkFBMkIsQ0FBQyxDQUFBO0lBRTVELHlEQUF5RDtJQUN6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
|
|
@@ -4,11 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const gluegun_1 = require("gluegun");
|
|
7
|
+
const os_1 = __importDefault(require("os"));
|
|
8
|
+
const util_1 = require("util");
|
|
9
|
+
const fs_1 = require("fs");
|
|
7
10
|
const constants_1 = require("./constants");
|
|
8
11
|
const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
9
|
-
|
|
12
|
+
const moddable_1 = require("./moddable");
|
|
13
|
+
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
14
|
+
async function default_1({ targetBranch }) {
|
|
15
|
+
var _a;
|
|
10
16
|
gluegun_1.print.info('Setting up the mac tools!');
|
|
11
17
|
const BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'mac', 'release');
|
|
18
|
+
const DEBUG_BIN_PATH = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'bin', 'mac', 'debug');
|
|
12
19
|
const BUILD_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'makefiles', 'mac');
|
|
13
20
|
const PROFILE_PATH = (0, constants_1.getProfilePath)();
|
|
14
21
|
// 0. ensure xcode command line tools are available (?)
|
|
@@ -35,8 +42,38 @@ async function default_1() {
|
|
|
35
42
|
}
|
|
36
43
|
else {
|
|
37
44
|
try {
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
if (targetBranch === 'latest-release') {
|
|
46
|
+
spinner.start('Getting latest Moddable-OpenSource/moddable release');
|
|
47
|
+
const release = await (0, moddable_1.fetchLatestRelease)();
|
|
48
|
+
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${release.tag_name} --single-branch`);
|
|
49
|
+
gluegun_1.filesystem.dir(BIN_PATH);
|
|
50
|
+
gluegun_1.filesystem.dir(DEBUG_BIN_PATH);
|
|
51
|
+
const isArm = os_1.default.arch() === 'arm64';
|
|
52
|
+
const assetName = isArm
|
|
53
|
+
? 'moddable-tools-mac64arm.zip'
|
|
54
|
+
: 'moddable-tools-mac64.zip';
|
|
55
|
+
spinner.info('Downloading release tools');
|
|
56
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
57
|
+
writePath: BIN_PATH,
|
|
58
|
+
assetName,
|
|
59
|
+
release,
|
|
60
|
+
});
|
|
61
|
+
const tools = (_a = gluegun_1.filesystem.list(BIN_PATH)) !== null && _a !== void 0 ? _a : [];
|
|
62
|
+
await Promise.all(tools.map(async (tool) => {
|
|
63
|
+
if (tool.endsWith('.app')) {
|
|
64
|
+
const mainPath = gluegun_1.filesystem.resolve(BIN_PATH, tool, 'Contents', 'MacOS', 'main');
|
|
65
|
+
await chmodPromise(mainPath, 0o751);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
await chmodPromise(gluegun_1.filesystem.resolve(BIN_PATH, tool), 0o751);
|
|
69
|
+
}
|
|
70
|
+
await gluegun_1.filesystem.copyAsync(gluegun_1.filesystem.resolve(BIN_PATH, tool), gluegun_1.filesystem.resolve(DEBUG_BIN_PATH, tool));
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
if (targetBranch === 'public') {
|
|
74
|
+
spinner.start('Cloning Moddable-OpenSource/moddable repo');
|
|
75
|
+
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${targetBranch} --single-branch`);
|
|
76
|
+
}
|
|
40
77
|
spinner.succeed();
|
|
41
78
|
}
|
|
42
79
|
catch (error) {
|
|
@@ -51,14 +88,16 @@ async function default_1() {
|
|
|
51
88
|
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export MODDABLE=${process.env.MODDABLE}`);
|
|
52
89
|
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PATH="${BIN_PATH}:$PATH"`);
|
|
53
90
|
// 3. cd into makefiles dir for platform, run `make`
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
91
|
+
if (targetBranch === 'public') {
|
|
92
|
+
try {
|
|
93
|
+
spinner.start('Building platform tooling');
|
|
94
|
+
await gluegun_1.system.exec('make', { cwd: BUILD_DIR, stdout: process.stdout });
|
|
95
|
+
spinner.succeed();
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
spinner.fail(`Error building mac tooling: ${String(error)}`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
62
101
|
}
|
|
63
102
|
// 4. symlink xsbug.app into user applications directory
|
|
64
103
|
try {
|
|
@@ -76,4 +115,4 @@ async function default_1() {
|
|
|
76
115
|
spinner.succeed('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
|
|
77
116
|
}
|
|
78
117
|
exports.default = default_1;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbWFjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQW1EO0FBQ25ELDRDQUFtQjtBQUNuQiwrQkFBZ0M7QUFDaEMsMkJBQTBCO0FBQzFCLDJDQU1vQjtBQUNwQixnRUFBdUM7QUFDdkMseUNBQXFFO0FBR3JFLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxVQUFLLENBQUMsQ0FBQTtBQUV0QixLQUFLLG9CQUFXLEVBQUUsWUFBWSxFQUFhOztJQUN4RCxlQUFLLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFdkMsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2pDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUE7SUFDRCxNQUFNLGNBQWMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDdkMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLENBQ1IsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUE7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLDBCQUFjLEdBQUUsQ0FBQTtJQUVyQyx1REFBdUQ7SUFDdkQsSUFBSTtRQUNGLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsZUFBSyxDQUFDLEtBQUssQ0FDVCw0RkFBNEYsQ0FDN0YsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFD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
|
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moddableExists = void 0;
|
|
6
|
+
exports.downloadReleaseTools = exports.fetchLatestRelease = exports.moddableExists = void 0;
|
|
7
|
+
const stream_1 = require("stream");
|
|
8
|
+
const util_1 = require("util");
|
|
4
9
|
const gluegun_1 = require("gluegun");
|
|
10
|
+
const rest_1 = require("@octokit/rest");
|
|
11
|
+
const unzip_stream_1 = require("unzip-stream");
|
|
12
|
+
const axios_1 = __importDefault(require("axios"));
|
|
13
|
+
const finishedPromise = (0, util_1.promisify)(stream_1.finished);
|
|
5
14
|
function moddableExists() {
|
|
6
15
|
return (process.env.MODDABLE !== undefined &&
|
|
7
16
|
gluegun_1.filesystem.exists(process.env.MODDABLE) === 'dir');
|
|
8
17
|
}
|
|
9
18
|
exports.moddableExists = moddableExists;
|
|
10
|
-
|
|
19
|
+
async function fetchLatestRelease() {
|
|
20
|
+
const octokit = new rest_1.Octokit();
|
|
21
|
+
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
22
|
+
owner: 'Moddable-OpenSource',
|
|
23
|
+
repo: 'moddable',
|
|
24
|
+
});
|
|
25
|
+
return latestRelease;
|
|
26
|
+
}
|
|
27
|
+
exports.fetchLatestRelease = fetchLatestRelease;
|
|
28
|
+
async function downloadReleaseTools({ writePath, assetName, release, }) {
|
|
29
|
+
const moddableTools = release.assets.find(({ name }) => name === assetName);
|
|
30
|
+
if (moddableTools === undefined) {
|
|
31
|
+
throw new Error(`Unable to find release asset matching ${assetName}`);
|
|
32
|
+
}
|
|
33
|
+
const zipWriter = (0, unzip_stream_1.Extract)({
|
|
34
|
+
path: writePath,
|
|
35
|
+
});
|
|
36
|
+
const response = await axios_1.default.get(moddableTools.browser_download_url, {
|
|
37
|
+
responseType: 'stream',
|
|
38
|
+
});
|
|
39
|
+
response.data.pipe(zipWriter);
|
|
40
|
+
await finishedPromise(zipWriter);
|
|
41
|
+
}
|
|
42
|
+
exports.downloadReleaseTools = downloadReleaseTools;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBaUM7QUFDakMsK0JBQWdDO0FBQ2hDLHFDQUFvQztBQUNwQyx3Q0FBZ0U7QUFDaEUsK0NBQW9EO0FBQ3BELGtEQUF5QjtBQUV6QixNQUFNLGVBQWUsR0FBRyxJQUFBLGdCQUFTLEVBQUMsaUJBQVEsQ0FBQyxDQUFBO0FBRTNDLFNBQWdCLGNBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVM7UUFDbEMsb0JBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLENBQ2xELENBQUE7QUFDSCxDQUFDO0FBTEQsd0NBS0M7QUFXTSxLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBTyxFQUFFLENBQUE7SUFDN0IsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQ3hFLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsSUFBSSxFQUFFLFVBQVU7S0FDakIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxhQUFhLENBQUE7QUFDdEIsQ0FBQztBQVBELGdEQU9DO0FBUU0sS0FBSyxVQUFVLG9CQUFvQixDQUFDLEVBQ3pDLFNBQVMsRUFDVCxTQUFTLEVBQ1QsT0FBTyxHQUNXO0lBQ2xCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFBO0lBRTNFLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxTQUFTLEVBQUUsQ0FBQyxDQUFBO0tBQ3RFO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQkFBVSxFQUFDO1FBQzNCLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQTtJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUU7UUFDbkUsWUFBWSxFQUFFLFFBQVE7S0FDdkIsQ0FBQyxDQUFBO0lBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDN0IsTUFBTSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQW5CRCxvREFtQkMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const gluegun_1 = require("gluegun");
|
|
4
|
-
async function default_1() {
|
|
4
|
+
async function default_1(_args) {
|
|
5
5
|
gluegun_1.print.warning('Windows setup is not currently supported');
|
|
6
6
|
}
|
|
7
7
|
exports.default = default_1;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBK0I7QUFHaEIsS0FBSyxvQkFBVyxLQUFnQjtJQUM3QyxlQUFLLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFDM0QsQ0FBQztBQUZELDRCQUVDIn0=
|
|
@@ -13,7 +13,7 @@ const linux_1 = require("../setup/esp32/linux");
|
|
|
13
13
|
async function default_1() {
|
|
14
14
|
var _a, _b;
|
|
15
15
|
const OS = (0, os_1.type)().toLowerCase();
|
|
16
|
-
const ESP_BRANCH = 'v4.4';
|
|
16
|
+
const ESP_BRANCH = 'v4.4.2';
|
|
17
17
|
const ESP32_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'esp32');
|
|
18
18
|
const IDF_PATH = gluegun_1.filesystem.resolve(ESP32_DIR, 'esp-idf');
|
|
19
19
|
const spinner = gluegun_1.print.spin();
|
|
@@ -56,7 +56,7 @@ async function default_1() {
|
|
|
56
56
|
}
|
|
57
57
|
// remove sourced IDF_PATH/export settings before install
|
|
58
58
|
// https://github.com/espressif/esp-idf/issues/8314#issuecomment-1024881587
|
|
59
|
-
await gluegun_1.patching.replace(constants_1.EXPORTS_FILE_PATH, `source $IDF_PATH/export.sh\n`, '');
|
|
59
|
+
await gluegun_1.patching.replace(constants_1.EXPORTS_FILE_PATH, `source $IDF_PATH/export.sh 1> /dev/null\n`, '');
|
|
60
60
|
await gluegun_1.system.exec(`source ${constants_1.EXPORTS_FILE_PATH}`, {
|
|
61
61
|
shell: process.env.SHELL,
|
|
62
62
|
});
|
|
@@ -70,7 +70,7 @@ async function default_1() {
|
|
|
70
70
|
spinner.succeed();
|
|
71
71
|
// 6. append 'source $IDF_PATH/export.sh' to shell profile
|
|
72
72
|
spinner.info('Sourcing esp-idf environment');
|
|
73
|
-
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `source $IDF_PATH/export.sh`);
|
|
73
|
+
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `source $IDF_PATH/export.sh 1> /dev/null\n`);
|
|
74
74
|
await gluegun_1.system.exec('source $IDF_PATH/export.sh', {
|
|
75
75
|
shell: process.env.SHELL,
|
|
76
76
|
});
|
|
@@ -86,4 +86,4 @@ async function default_1() {
|
|
|
86
86
|
`);
|
|
87
87
|
}
|
|
88
88
|
exports.default = default_1;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC91cGRhdGUvZXNwMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBNkQ7QUFDN0QsMkJBQXlDO0FBQ3pDLGtEQUFtRTtBQUNuRSxnREFBa0Q7QUFDbEQsZ0VBQXVDO0FBQ3ZDLDRDQUFrRTtBQUNsRSxnREFBc0U7QUFFdkQsS0FBSzs7SUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUN2QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUE7SUFDM0IsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFekQsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUV4Qyw0QkFBNEI7SUFDNUIsSUFBSSxDQUFDLElBQUEseUJBQWMsR0FBRSxFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysb0VBQW9FLENBQ3JFLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsMkNBQTJDO0lBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtJQUNoRCxJQUNFLG9CQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUs7UUFDdEMsb0JBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUNyQztRQUNBLE9BQU8sQ0FBQyxJQUFJLENBQ1YsZ0ZBQWdGLENBQ2pGLENBQUE7UUFDRCxPQUFPLENBQUMsSUFB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
|