xs-dev 0.37.1 → 0.38.1
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
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = default_1;
|
|
7
|
+
exports.getExpectedEspIdfVersion = getExpectedEspIdfVersion;
|
|
7
8
|
const gluegun_1 = require("gluegun");
|
|
8
9
|
const os_1 = require("os");
|
|
9
10
|
const constants_1 = require("./constants");
|
|
@@ -19,7 +20,7 @@ async function default_1() {
|
|
|
19
20
|
const isWindows = OS === 'windows_nt';
|
|
20
21
|
const ESP_IDF_REPO = 'https://github.com/espressif/esp-idf.git';
|
|
21
22
|
const ESP_BRANCH_V4 = 'v4.4.3';
|
|
22
|
-
const ESP_BRANCH_V5 = 'v5.
|
|
23
|
+
const ESP_BRANCH_V5 = 'v5.5';
|
|
23
24
|
const ESP32_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'esp32');
|
|
24
25
|
const IDF_PATH = gluegun_1.filesystem.resolve(ESP32_DIR, 'esp-idf');
|
|
25
26
|
await (0, exec_1.sourceEnvironment)();
|
|
@@ -40,10 +41,12 @@ async function default_1() {
|
|
|
40
41
|
if (gluegun_1.filesystem.exists(IDF_PATH) === false) {
|
|
41
42
|
spinner.start('Cloning esp-idf repo');
|
|
42
43
|
const moddableVersion = (await (0, moddable_1.getModdableVersion)()) ?? '';
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const expectedEspIdfVersion = await getExpectedEspIdfVersion();
|
|
45
|
+
const branch = expectedEspIdfVersion ??
|
|
46
|
+
(moddableVersion.includes('branch') ||
|
|
47
|
+
gluegun_1.semver.satisfies(moddableVersion ?? '', '>= 4.2.x')
|
|
48
|
+
? ESP_BRANCH_V5
|
|
49
|
+
: ESP_BRANCH_V4);
|
|
47
50
|
await gluegun_1.system.spawn(`git clone --depth 1 --single-branch -b ${branch} --recursive ${ESP_IDF_REPO} ${IDF_PATH}`);
|
|
48
51
|
spinner.succeed();
|
|
49
52
|
}
|
|
@@ -98,4 +101,11 @@ async function default_1() {
|
|
|
98
101
|
If there is trouble finding the correct port, pass the "--port" flag to the above command with the ${isWindows ? 'COM Port' : 'path to the /dev.cu.*'} that matches your device.
|
|
99
102
|
`);
|
|
100
103
|
}
|
|
101
|
-
|
|
104
|
+
async function getExpectedEspIdfVersion() {
|
|
105
|
+
if ((0, moddable_1.moddableExists)()) {
|
|
106
|
+
const es32DeviceManifest = gluegun_1.filesystem.read(gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'build', 'devices', 'esp32', 'manifest.json'), 'json');
|
|
107
|
+
return es32DeviceManifest?.build?.EXPECTED_ESP_IDF ?? null;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9lc3AzMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVdBLDRCQXlHQztBQUVELDREQWVDO0FBcklELHFDQUEyRDtBQUMzRCwyQkFBeUM7QUFDekMsMkNBQTBFO0FBQzFFLHlDQUErRDtBQUMvRCxnRUFBdUM7QUFDdkMscUNBQTJEO0FBQzNELHlDQUErRDtBQUMvRCw2Q0FBK0Q7QUFDL0QsdUNBQStEO0FBQy9ELHlDQUFrRDtBQUVuQyxLQUFLO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsTUFBTSxTQUFTLEdBQUcsRUFBRSxLQUFLLFlBQVksQ0FBQTtJQUNyQyxNQUFNLFlBQVksR0FBRywwQ0FBMEMsQ0FBQTtJQUMvRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUE7SUFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFBO0lBQzVCLE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDMUQsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sSUFBQSx3QkFBaUIsR0FBRSxDQUFBO0lBRXpCLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFFdkMsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxJQUFBLHlCQUFjLEdBQUUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysb0VBQW9FLENBQ3JFLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxJQUFJ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
|
|
@@ -11,11 +11,12 @@ const moddable_1 = require("../setup/moddable");
|
|
|
11
11
|
const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
12
12
|
const mac_1 = require("../setup/esp32/mac");
|
|
13
13
|
const linux_1 = require("../setup/esp32/linux");
|
|
14
|
+
const esp32_1 = require("../setup/esp32");
|
|
14
15
|
const exec_1 = require("../system/exec");
|
|
15
16
|
async function default_1() {
|
|
16
17
|
const OS = (0, os_1.type)().toLowerCase();
|
|
17
18
|
const ESP_BRANCH_V4 = 'v4.4.3';
|
|
18
|
-
const ESP_BRANCH_V5 = 'v5.
|
|
19
|
+
const ESP_BRANCH_V5 = 'v5.5';
|
|
19
20
|
const ESP32_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'esp32');
|
|
20
21
|
const IDF_PATH = gluegun_1.filesystem.resolve(ESP32_DIR, 'esp-idf');
|
|
21
22
|
await (0, exec_1.sourceEnvironment)();
|
|
@@ -37,10 +38,12 @@ async function default_1() {
|
|
|
37
38
|
if (gluegun_1.filesystem.exists(IDF_PATH) === 'dir') {
|
|
38
39
|
spinner.start('Updating esp-idf repo');
|
|
39
40
|
const moddableVersion = (await (0, moddable_1.getModdableVersion)()) ?? '';
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
const expectedEspIdfVersion = await (0, esp32_1.getExpectedEspIdfVersion)();
|
|
42
|
+
const branch = expectedEspIdfVersion ??
|
|
43
|
+
(moddableVersion.includes('branch') ||
|
|
44
|
+
gluegun_1.semver.satisfies(moddableVersion ?? '', '>= 4.2.x')
|
|
45
|
+
? ESP_BRANCH_V5
|
|
46
|
+
: ESP_BRANCH_V4);
|
|
44
47
|
if (branch === ESP_BRANCH_V5 &&
|
|
45
48
|
!gluegun_1.semver.satisfies(moddableVersion ?? '', '>= 4.3.8')) {
|
|
46
49
|
spinner.fail('Latest Moddable SDK is required before updating ESP-IDF. Run `xs-dev update` before trying again.');
|
|
@@ -98,4 +101,4 @@ async function default_1() {
|
|
|
98
101
|
If there is trouble finding the correct port, pass the "--port" flag to the above command with the path to the "/dev.cu.*" that matches your device.
|
|
99
102
|
`);
|
|
100
103
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC91cGRhdGUvZXNwMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSw0QkFnSUM7QUExSUQscUNBQXFFO0FBQ3JFLDJCQUF5QztBQUN6QyxrREFBbUU7QUFDbkUsZ0RBQXNFO0FBQ3RFLGdFQUF1QztBQUN2Qyw0Q0FBa0U7QUFDbEUsZ0RBQXNFO0FBQ3RFLDBDQUF5RDtBQUN6RCx5Q0FBa0Q7QUFFbkMsS0FBSztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3ZDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQTtJQUM5QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUE7SUFDNUIsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFekQsTUFBTSxJQUFBLHdCQUFpQixHQUFFLENBQUE7SUFFekIsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUV4Qyw0QkFBNEI7SUFDNUIsSUFBSSxDQUFDLElBQUEseUJBQWMsR0FBRSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FDVixvRUFBb0UsQ0FDckUsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFDaEQsSUFDRSxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFL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
|