@superblocksteam/sdk 2.0.6-next.0 → 2.0.6-next.10
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/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.js +140 -77
- package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
- package/package.json +3 -3
- package/src/cli-replacement/automatic-upgrades.ts +163 -97
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAEvF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AASzC,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8CD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwBxE;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,YAAY,GACf,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAoBzC;AAqHD,wBAAsB,iCAAiC,IAAI,OAAO,CAChE,kBAAkB,GAAG,SAAS,CAC/B,CAeA;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,iBAAiB,iBA0K3B"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as child_process from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { isNativeError } from "node:util/types";
|
|
4
|
+
import { traceFunction } from "@superblocksteam/shared";
|
|
4
5
|
import { resolveCommand } from "package-manager-detector";
|
|
5
6
|
import { detect } from "package-manager-detector/detect";
|
|
6
7
|
import gt from "semver/functions/gt.js";
|
|
7
8
|
import valid from "semver/functions/valid.js";
|
|
8
9
|
import { getLogger } from "../dev-utils/dev-logger.mjs";
|
|
10
|
+
import tracer from "../dev-utils/dev-tracer.js";
|
|
9
11
|
export const AUTO_UPGRADE_EXIT_CODE = 99;
|
|
10
12
|
const exec = promisify(child_process.exec);
|
|
11
13
|
const logger = getLogger();
|
|
@@ -179,86 +181,147 @@ export async function getCurrentLibraryVersionWithoutPM() {
|
|
|
179
181
|
return await getCurrentLibraryVersion(pm);
|
|
180
182
|
}
|
|
181
183
|
export async function checkVersionsAndUpgrade(lockService, config) {
|
|
182
|
-
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
184
|
+
const cliUpdated = false;
|
|
185
|
+
const libraryUpdated = false;
|
|
186
|
+
let hasFailedToUpgrade = false;
|
|
187
|
+
await traceFunction({
|
|
188
|
+
name: "checkVersionsAndUpgrade",
|
|
189
|
+
tracer,
|
|
190
|
+
fn: async () => {
|
|
191
|
+
// Detect package manager
|
|
192
|
+
const pm = await traceFunction({
|
|
193
|
+
name: "detectPackageManager",
|
|
194
|
+
tracer,
|
|
195
|
+
fn: async () => {
|
|
196
|
+
return await detect({
|
|
197
|
+
strategies: [
|
|
198
|
+
"packageManager-field",
|
|
199
|
+
"lockfile",
|
|
200
|
+
"install-metadata",
|
|
201
|
+
"devEngines-field",
|
|
202
|
+
],
|
|
203
|
+
cwd: process.cwd(),
|
|
204
|
+
});
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
if (!pm || !config?.id)
|
|
208
|
+
return;
|
|
209
|
+
// Get current versions
|
|
210
|
+
const currentCliVersion = await traceFunction({
|
|
211
|
+
name: "getCurrentCliVersion",
|
|
212
|
+
tracer,
|
|
213
|
+
fn: async () => {
|
|
214
|
+
return await getCurrentCliVersion();
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
const currentLibraryInfo = await traceFunction({
|
|
218
|
+
name: "getCurrentLibraryVersion",
|
|
219
|
+
tracer,
|
|
220
|
+
fn: async () => {
|
|
221
|
+
return await getCurrentLibraryVersion(pm);
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
// Skip if we're in local development
|
|
225
|
+
if (!currentCliVersion ||
|
|
226
|
+
!valid(currentCliVersion) ||
|
|
227
|
+
currentCliVersion.startsWith("file:") ||
|
|
228
|
+
currentCliVersion.startsWith("link:") ||
|
|
229
|
+
!currentLibraryInfo ||
|
|
230
|
+
!valid(currentLibraryInfo.version) ||
|
|
231
|
+
currentLibraryInfo.version.startsWith("file:") ||
|
|
232
|
+
currentLibraryInfo.version.startsWith("link:")) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
// Get target versions from server
|
|
236
|
+
const targetVersions = await traceFunction({
|
|
237
|
+
name: "getRemoteVersions",
|
|
238
|
+
tracer,
|
|
239
|
+
fn: async () => {
|
|
240
|
+
return await getRemoteVersions(config);
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
if (!targetVersions)
|
|
244
|
+
return;
|
|
245
|
+
let cliNeedsUpgrade;
|
|
246
|
+
let libraryNeedsUpgrade;
|
|
247
|
+
try {
|
|
248
|
+
// If version is latest, then semver can throw an error
|
|
249
|
+
// Check if CLI needs upgrade
|
|
250
|
+
cliNeedsUpgrade =
|
|
251
|
+
targetVersions.cli && gt(targetVersions.cli, currentCliVersion);
|
|
252
|
+
// Check if library needs upgrade
|
|
253
|
+
libraryNeedsUpgrade =
|
|
254
|
+
targetVersions.library &&
|
|
255
|
+
gt(targetVersions.library, currentLibraryInfo.version);
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
console.warn("Error checking versions to upgrade, releasing lock and exiting", error);
|
|
259
|
+
await traceFunction({
|
|
260
|
+
name: "shutdownLockService",
|
|
261
|
+
tracer,
|
|
262
|
+
fn: async () => {
|
|
263
|
+
await lockService.shutdown({
|
|
264
|
+
serverInitiated: false,
|
|
265
|
+
});
|
|
266
|
+
},
|
|
267
|
+
});
|
|
268
|
+
hasFailedToUpgrade = true;
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
|
|
272
|
+
return; // Everything is up to date
|
|
273
|
+
}
|
|
274
|
+
let cliUpdated = false;
|
|
275
|
+
let libraryUpdated = false;
|
|
276
|
+
// Upgrade CLI if needed
|
|
277
|
+
if (cliNeedsUpgrade) {
|
|
278
|
+
const oclifUpgradeSucceeded = await traceFunction({
|
|
279
|
+
name: "upgradeCliWithOclif",
|
|
280
|
+
tracer,
|
|
281
|
+
fn: async () => {
|
|
282
|
+
return await upgradeCliWithOclif(targetVersions.cli);
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
if (!oclifUpgradeSucceeded) {
|
|
286
|
+
// Fall back to package manager upgrade
|
|
287
|
+
await traceFunction({
|
|
288
|
+
name: "upgradePackageWithPackageManager",
|
|
289
|
+
tracer,
|
|
290
|
+
fn: async () => {
|
|
291
|
+
await upgradePackageWithPackageManager(pm, "cli", targetVersions.cli);
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
cliUpdated = true;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Upgrade library if needed
|
|
298
|
+
if (libraryNeedsUpgrade) {
|
|
299
|
+
await traceFunction({
|
|
300
|
+
name: "upgradePackageWithPackageManager",
|
|
301
|
+
tracer,
|
|
302
|
+
fn: async () => {
|
|
303
|
+
await upgradePackageWithPackageManager(pm, "library", targetVersions.library, currentLibraryInfo.alias);
|
|
304
|
+
},
|
|
305
|
+
});
|
|
306
|
+
libraryUpdated = true;
|
|
307
|
+
}
|
|
308
|
+
// Log what was updated
|
|
309
|
+
if (cliUpdated && libraryUpdated) {
|
|
310
|
+
logger.info("@superblocksteam/cli and @superblocksteam/library have been updated.");
|
|
311
|
+
}
|
|
312
|
+
else if (cliUpdated) {
|
|
313
|
+
logger.info("@superblocksteam/cli has been updated.");
|
|
314
|
+
}
|
|
315
|
+
else if (libraryUpdated) {
|
|
316
|
+
logger.info("@superblocksteam/library has been updated.");
|
|
317
|
+
}
|
|
318
|
+
},
|
|
191
319
|
});
|
|
192
|
-
if
|
|
193
|
-
|
|
194
|
-
// Get current versions
|
|
195
|
-
const currentCliVersion = await getCurrentCliVersion();
|
|
196
|
-
const currentLibraryInfo = await getCurrentLibraryVersion(pm);
|
|
197
|
-
// Skip if we're in local development
|
|
198
|
-
if (!currentCliVersion ||
|
|
199
|
-
!valid(currentCliVersion) ||
|
|
200
|
-
currentCliVersion.startsWith("file:") ||
|
|
201
|
-
currentCliVersion.startsWith("link:") ||
|
|
202
|
-
!currentLibraryInfo ||
|
|
203
|
-
!valid(currentLibraryInfo.version) ||
|
|
204
|
-
currentLibraryInfo.version.startsWith("file:") ||
|
|
205
|
-
currentLibraryInfo.version.startsWith("link:")) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
// Get target versions from server
|
|
209
|
-
const targetVersions = await getRemoteVersions(config);
|
|
210
|
-
if (!targetVersions)
|
|
211
|
-
return;
|
|
212
|
-
let cliNeedsUpgrade;
|
|
213
|
-
let libraryNeedsUpgrade;
|
|
214
|
-
try {
|
|
215
|
-
// If version is latest, then semver can throw an error
|
|
216
|
-
// Check if CLI needs upgrade
|
|
217
|
-
cliNeedsUpgrade =
|
|
218
|
-
targetVersions.cli && gt(targetVersions.cli, currentCliVersion);
|
|
219
|
-
// Check if library needs upgrade
|
|
220
|
-
libraryNeedsUpgrade =
|
|
221
|
-
targetVersions.library &&
|
|
222
|
-
gt(targetVersions.library, currentLibraryInfo.version);
|
|
223
|
-
}
|
|
224
|
-
catch (error) {
|
|
225
|
-
console.warn("Error checking versions to upgrade, releasing lock and exiting", error);
|
|
226
|
-
await lockService.shutdown({
|
|
227
|
-
serverInitiated: false,
|
|
228
|
-
});
|
|
320
|
+
// Restart CLI if anything was updated
|
|
321
|
+
if (hasFailedToUpgrade) {
|
|
229
322
|
process.exit(1);
|
|
230
323
|
}
|
|
231
|
-
if (
|
|
232
|
-
return; // Everything is up to date
|
|
233
|
-
}
|
|
234
|
-
let cliUpdated = false;
|
|
235
|
-
let libraryUpdated = false;
|
|
236
|
-
// Upgrade CLI if needed
|
|
237
|
-
if (cliNeedsUpgrade) {
|
|
238
|
-
const oclifUpgradeSucceeded = await upgradeCliWithOclif(targetVersions.cli);
|
|
239
|
-
if (!oclifUpgradeSucceeded) {
|
|
240
|
-
// Fall back to package manager upgrade
|
|
241
|
-
await upgradePackageWithPackageManager(pm, "cli", targetVersions.cli);
|
|
242
|
-
cliUpdated = true;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
// Upgrade library if needed
|
|
246
|
-
if (libraryNeedsUpgrade) {
|
|
247
|
-
await upgradePackageWithPackageManager(pm, "library", targetVersions.library, currentLibraryInfo.alias);
|
|
248
|
-
libraryUpdated = true;
|
|
249
|
-
}
|
|
250
|
-
// Log what was updated
|
|
251
|
-
if (cliUpdated && libraryUpdated) {
|
|
252
|
-
logger.info("@superblocksteam/cli and @superblocksteam/library have been updated.");
|
|
253
|
-
}
|
|
254
|
-
else if (cliUpdated) {
|
|
255
|
-
logger.info("@superblocksteam/cli has been updated.");
|
|
256
|
-
}
|
|
257
|
-
else if (libraryUpdated) {
|
|
258
|
-
logger.info("@superblocksteam/library has been updated.");
|
|
259
|
-
}
|
|
260
|
-
// Restart CLI if anything was updated
|
|
261
|
-
if (cliUpdated || libraryUpdated) {
|
|
324
|
+
else if (cliUpdated || libraryUpdated) {
|
|
262
325
|
logger.info("Restarting the CLI…");
|
|
263
326
|
await lockService.releaseLock();
|
|
264
327
|
process.exit(AUTO_UPGRADE_EXIT_CODE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxC,OAAO,KAAK,MAAM,2BAA2B,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxC,OAAO,KAAK,MAAM,2BAA2B,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAKhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAoB3B,KAAK,UAAU,iBAAiB,CAC9B,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,GAAG,CACL,uBAAuB,EAAE,uBAAuB,EAChD,kBAAkB,CACnB,EACD;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiC,CAAC;YACrE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;YACpE,OAAO,CAAC,GAAG,CACT,qCAAqC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAEvC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAC1C,GAAG,eAAe,iBAAiB,CACpC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA2B,CAAC;QACjE,qIAAqI;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CACtC,sCAAsC,EACtC,EAAE,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAgB;IAEhB,IAAI,CAAC;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,OAAO,MAAM,oBAAoB,EAAE,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,MAAM,qBAAqB,EAAE,CAAC;YACvC;gBACE,OAAO,CAAC,KAAK,CACX,GAAG,EAAE,CAAC,KAAK,qDAAqD,CACjE,CAAC;gBACF,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,wEAAwE,CACzE,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,0CAA0C,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,GACf,MAAM,CAAC,YAAY,EAAE,CAAC,0BAA0B,CAAC;QACjD,MAAM,CAAC,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAW,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAE5C,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,KAAK,EAAE,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,qBAAqB;IAGlC,sCAAsC;IACtC,IAAI,WAAgB,CAAC;IAErB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2CAA2C,EAAE;YACrE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,WAAW;YACT,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBACrD,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAC5B,qDAAqD,EACrD,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CACvB,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnD,WAAW;gBACT,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1D,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAE5C,2DAA2D;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CACzC,GAAG,eAAe,qBAAqB,aAAa,EAAE,CACvD,CAAC;QACF,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,EAAgB,EAChB,WAAmB,EACnB,aAAqB,EACrB,KAAc;IAEd,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,oBAAoB,WAAW,QAAQ,KAAK,IAAI,aAAa,EAAE;QACjE,CAAC,CAAC,oBAAoB,WAAW,IAAI,aAAa,EAAE,CAAC;IAEvD,MAAM,cAAc,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;IACzC,MAAM,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC;IAGrD,yBAAyB;IACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,UAAU,EAAE;YACV,sBAAsB;YACtB,UAAU;YACV,kBAAkB;YAClB,kBAAkB;SACnB;QACD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,OAAO,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,MAA0B;IAE1B,MAAM,UAAU,GAAG,KAAK,CAAC;IACzB,MAAM,cAAc,GAAG,KAAK,CAAC;IAC7B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,MAAM,aAAa,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,MAAM;QACN,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,yBAAyB;YACzB,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC;gBAC7B,IAAI,EAAE,sBAAsB;gBAC5B,MAAM;gBACN,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,OAAO,MAAM,MAAM,CAAC;wBAClB,UAAU,EAAE;4BACV,sBAAsB;4BACtB,UAAU;4BACV,kBAAkB;4BAClB,kBAAkB;yBACnB;wBACD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;qBACnB,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE;gBAAE,OAAO;YAE/B,uBAAuB;YACvB,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC;gBAC5C,IAAI,EAAE,sBAAsB;gBAC5B,MAAM;gBACN,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,OAAO,MAAM,oBAAoB,EAAE,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC;gBAC7C,IAAI,EAAE,0BAA0B;gBAChC,MAAM;gBACN,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,OAAO,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC;aACF,CAAC,CAAC;YAEH,qCAAqC;YACrC,IACE,CAAC,iBAAiB;gBAClB,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACzB,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC;gBACrC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC;gBACrC,CAAC,kBAAkB;gBACnB,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBAClC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9C,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAC9C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC;gBACzC,IAAI,EAAE,mBAAmB;gBACzB,MAAM;gBACN,EAAE,EAAE,KAAK,IAAI,EAAE;oBACb,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;aACF,CAAC,CAAC;YACH,IAAI,CAAC,cAAc;gBAAE,OAAO;YAE5B,IAAI,eAAiC,CAAC;YACtC,IAAI,mBAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,uDAAuD;gBACvD,6BAA6B;gBAC7B,eAAe;oBACb,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;gBAElE,iCAAiC;gBACjC,mBAAmB;oBACjB,cAAc,CAAC,OAAO;wBACtB,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,gEAAgE,EAChE,KAAK,CACN,CAAC;gBACF,MAAM,aAAa,CAAC;oBAClB,IAAI,EAAE,qBAAqB;oBAC3B,MAAM;oBACN,EAAE,EAAE,KAAK,IAAI,EAAE;wBACb,MAAM,WAAW,CAAC,QAAQ,CAAC;4BACzB,eAAe,EAAE,KAAK;yBACvB,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;gBACH,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,OAAO,CAAC,2BAA2B;YACrC,CAAC;YAED,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,wBAAwB;YACxB,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,qBAAqB,GAAG,MAAM,aAAa,CAAC;oBAChD,IAAI,EAAE,qBAAqB;oBAC3B,MAAM;oBACN,EAAE,EAAE,KAAK,IAAI,EAAE;wBACb,OAAO,MAAM,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBACvD,CAAC;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,uCAAuC;oBACvC,MAAM,aAAa,CAAC;wBAClB,IAAI,EAAE,kCAAkC;wBACxC,MAAM;wBACN,EAAE,EAAE,KAAK,IAAI,EAAE;4BACb,MAAM,gCAAgC,CACpC,EAAE,EACF,KAAK,EACL,cAAc,CAAC,GAAG,CACnB,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;oBACH,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,aAAa,CAAC;oBAClB,IAAI,EAAE,kCAAkC;oBACxC,MAAM;oBACN,EAAE,EAAE,KAAK,IAAI,EAAE;wBACb,MAAM,gCAAgC,CACpC,EAAE,EACF,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,kBAAkB,CAAC,KAAK,CACzB,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;gBACH,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,uBAAuB;YACvB,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,sEAAsE,CACvE,CAAC;YACJ,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,cAAc,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/sdk",
|
|
3
|
-
"version": "2.0.6-next.
|
|
3
|
+
"version": "2.0.6-next.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Superblocks JS SDK",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"@rollup/wasm-node": "^4.35.0",
|
|
32
32
|
"@superblocksteam/bucketeer-sdk": "0.5.0",
|
|
33
33
|
"@superblocksteam/shared": "0.9160.0",
|
|
34
|
-
"@superblocksteam/util": "2.0.6-next.
|
|
35
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.6-next.
|
|
34
|
+
"@superblocksteam/util": "2.0.6-next.10",
|
|
35
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.6-next.10",
|
|
36
36
|
"@vitejs/plugin-react": "^4.3.4",
|
|
37
37
|
"axios": "^1.4.0",
|
|
38
38
|
"chokidar": "^4.0.3",
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as child_process from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { isNativeError } from "node:util/types";
|
|
4
|
+
import { traceFunction } from "@superblocksteam/shared";
|
|
4
5
|
import { resolveCommand, type DetectResult } from "package-manager-detector";
|
|
5
6
|
import { detect } from "package-manager-detector/detect";
|
|
6
7
|
import gt from "semver/functions/gt.js";
|
|
7
8
|
import valid from "semver/functions/valid.js";
|
|
8
9
|
import { getLogger } from "../dev-utils/dev-logger.mjs";
|
|
10
|
+
import tracer from "../dev-utils/dev-tracer.js";
|
|
9
11
|
import type { ResponseMeta } from "../socket/handlers.js";
|
|
10
12
|
import type { ApplicationConfig } from "../types/common.js";
|
|
11
13
|
import type { LockService } from "@superblocksteam/vite-plugin-file-sync/lock-service";
|
|
@@ -256,106 +258,170 @@ export async function checkVersionsAndUpgrade(
|
|
|
256
258
|
lockService: LockService,
|
|
257
259
|
config?: ApplicationConfig,
|
|
258
260
|
) {
|
|
259
|
-
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
261
|
+
const cliUpdated = false;
|
|
262
|
+
const libraryUpdated = false;
|
|
263
|
+
let hasFailedToUpgrade = false;
|
|
264
|
+
|
|
265
|
+
await traceFunction({
|
|
266
|
+
name: "checkVersionsAndUpgrade",
|
|
267
|
+
tracer,
|
|
268
|
+
fn: async () => {
|
|
269
|
+
// Detect package manager
|
|
270
|
+
const pm = await traceFunction({
|
|
271
|
+
name: "detectPackageManager",
|
|
272
|
+
tracer,
|
|
273
|
+
fn: async () => {
|
|
274
|
+
return await detect({
|
|
275
|
+
strategies: [
|
|
276
|
+
"packageManager-field",
|
|
277
|
+
"lockfile",
|
|
278
|
+
"install-metadata",
|
|
279
|
+
"devEngines-field",
|
|
280
|
+
],
|
|
281
|
+
cwd: process.cwd(),
|
|
282
|
+
});
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
if (!pm || !config?.id) return;
|
|
287
|
+
|
|
288
|
+
// Get current versions
|
|
289
|
+
const currentCliVersion = await traceFunction({
|
|
290
|
+
name: "getCurrentCliVersion",
|
|
291
|
+
tracer,
|
|
292
|
+
fn: async () => {
|
|
293
|
+
return await getCurrentCliVersion();
|
|
294
|
+
},
|
|
295
|
+
});
|
|
296
|
+
const currentLibraryInfo = await traceFunction({
|
|
297
|
+
name: "getCurrentLibraryVersion",
|
|
298
|
+
tracer,
|
|
299
|
+
fn: async () => {
|
|
300
|
+
return await getCurrentLibraryVersion(pm);
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
// Skip if we're in local development
|
|
305
|
+
if (
|
|
306
|
+
!currentCliVersion ||
|
|
307
|
+
!valid(currentCliVersion) ||
|
|
308
|
+
currentCliVersion.startsWith("file:") ||
|
|
309
|
+
currentCliVersion.startsWith("link:") ||
|
|
310
|
+
!currentLibraryInfo ||
|
|
311
|
+
!valid(currentLibraryInfo.version) ||
|
|
312
|
+
currentLibraryInfo.version.startsWith("file:") ||
|
|
313
|
+
currentLibraryInfo.version.startsWith("link:")
|
|
314
|
+
) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// Get target versions from server
|
|
319
|
+
const targetVersions = await traceFunction({
|
|
320
|
+
name: "getRemoteVersions",
|
|
321
|
+
tracer,
|
|
322
|
+
fn: async () => {
|
|
323
|
+
return await getRemoteVersions(config);
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
if (!targetVersions) return;
|
|
327
|
+
|
|
328
|
+
let cliNeedsUpgrade: boolean | string;
|
|
329
|
+
let libraryNeedsUpgrade: boolean | string;
|
|
330
|
+
try {
|
|
331
|
+
// If version is latest, then semver can throw an error
|
|
332
|
+
// Check if CLI needs upgrade
|
|
333
|
+
cliNeedsUpgrade =
|
|
334
|
+
targetVersions.cli && gt(targetVersions.cli, currentCliVersion);
|
|
335
|
+
|
|
336
|
+
// Check if library needs upgrade
|
|
337
|
+
libraryNeedsUpgrade =
|
|
338
|
+
targetVersions.library &&
|
|
339
|
+
gt(targetVersions.library, currentLibraryInfo.version);
|
|
340
|
+
} catch (error) {
|
|
341
|
+
console.warn(
|
|
342
|
+
"Error checking versions to upgrade, releasing lock and exiting",
|
|
343
|
+
error,
|
|
344
|
+
);
|
|
345
|
+
await traceFunction({
|
|
346
|
+
name: "shutdownLockService",
|
|
347
|
+
tracer,
|
|
348
|
+
fn: async () => {
|
|
349
|
+
await lockService.shutdown({
|
|
350
|
+
serverInitiated: false,
|
|
351
|
+
});
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
hasFailedToUpgrade = true;
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
|
|
359
|
+
return; // Everything is up to date
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
let cliUpdated = false;
|
|
363
|
+
let libraryUpdated = false;
|
|
364
|
+
|
|
365
|
+
// Upgrade CLI if needed
|
|
366
|
+
if (cliNeedsUpgrade) {
|
|
367
|
+
const oclifUpgradeSucceeded = await traceFunction({
|
|
368
|
+
name: "upgradeCliWithOclif",
|
|
369
|
+
tracer,
|
|
370
|
+
fn: async () => {
|
|
371
|
+
return await upgradeCliWithOclif(targetVersions.cli);
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
if (!oclifUpgradeSucceeded) {
|
|
375
|
+
// Fall back to package manager upgrade
|
|
376
|
+
await traceFunction({
|
|
377
|
+
name: "upgradePackageWithPackageManager",
|
|
378
|
+
tracer,
|
|
379
|
+
fn: async () => {
|
|
380
|
+
await upgradePackageWithPackageManager(
|
|
381
|
+
pm,
|
|
382
|
+
"cli",
|
|
383
|
+
targetVersions.cli,
|
|
384
|
+
);
|
|
385
|
+
},
|
|
386
|
+
});
|
|
387
|
+
cliUpdated = true;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// Upgrade library if needed
|
|
392
|
+
if (libraryNeedsUpgrade) {
|
|
393
|
+
await traceFunction({
|
|
394
|
+
name: "upgradePackageWithPackageManager",
|
|
395
|
+
tracer,
|
|
396
|
+
fn: async () => {
|
|
397
|
+
await upgradePackageWithPackageManager(
|
|
398
|
+
pm,
|
|
399
|
+
"library",
|
|
400
|
+
targetVersions.library,
|
|
401
|
+
currentLibraryInfo.alias,
|
|
402
|
+
);
|
|
403
|
+
},
|
|
404
|
+
});
|
|
405
|
+
libraryUpdated = true;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Log what was updated
|
|
409
|
+
if (cliUpdated && libraryUpdated) {
|
|
410
|
+
logger.info(
|
|
411
|
+
"@superblocksteam/cli and @superblocksteam/library have been updated.",
|
|
412
|
+
);
|
|
413
|
+
} else if (cliUpdated) {
|
|
414
|
+
logger.info("@superblocksteam/cli has been updated.");
|
|
415
|
+
} else if (libraryUpdated) {
|
|
416
|
+
logger.info("@superblocksteam/library has been updated.");
|
|
417
|
+
}
|
|
418
|
+
},
|
|
268
419
|
});
|
|
269
420
|
|
|
270
|
-
if (!pm || !config?.id) return;
|
|
271
|
-
|
|
272
|
-
// Get current versions
|
|
273
|
-
const currentCliVersion = await getCurrentCliVersion();
|
|
274
|
-
const currentLibraryInfo = await getCurrentLibraryVersion(pm);
|
|
275
|
-
|
|
276
|
-
// Skip if we're in local development
|
|
277
|
-
if (
|
|
278
|
-
!currentCliVersion ||
|
|
279
|
-
!valid(currentCliVersion) ||
|
|
280
|
-
currentCliVersion.startsWith("file:") ||
|
|
281
|
-
currentCliVersion.startsWith("link:") ||
|
|
282
|
-
!currentLibraryInfo ||
|
|
283
|
-
!valid(currentLibraryInfo.version) ||
|
|
284
|
-
currentLibraryInfo.version.startsWith("file:") ||
|
|
285
|
-
currentLibraryInfo.version.startsWith("link:")
|
|
286
|
-
) {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// Get target versions from server
|
|
291
|
-
const targetVersions = await getRemoteVersions(config);
|
|
292
|
-
if (!targetVersions) return;
|
|
293
|
-
|
|
294
|
-
let cliNeedsUpgrade: boolean | string;
|
|
295
|
-
let libraryNeedsUpgrade: boolean | string;
|
|
296
|
-
try {
|
|
297
|
-
// If version is latest, then semver can throw an error
|
|
298
|
-
// Check if CLI needs upgrade
|
|
299
|
-
cliNeedsUpgrade =
|
|
300
|
-
targetVersions.cli && gt(targetVersions.cli, currentCliVersion);
|
|
301
|
-
|
|
302
|
-
// Check if library needs upgrade
|
|
303
|
-
libraryNeedsUpgrade =
|
|
304
|
-
targetVersions.library &&
|
|
305
|
-
gt(targetVersions.library, currentLibraryInfo.version);
|
|
306
|
-
} catch (error) {
|
|
307
|
-
console.warn(
|
|
308
|
-
"Error checking versions to upgrade, releasing lock and exiting",
|
|
309
|
-
error,
|
|
310
|
-
);
|
|
311
|
-
await lockService.shutdown({
|
|
312
|
-
serverInitiated: false,
|
|
313
|
-
});
|
|
314
|
-
process.exit(1);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
|
|
318
|
-
return; // Everything is up to date
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
let cliUpdated = false;
|
|
322
|
-
let libraryUpdated = false;
|
|
323
|
-
|
|
324
|
-
// Upgrade CLI if needed
|
|
325
|
-
if (cliNeedsUpgrade) {
|
|
326
|
-
const oclifUpgradeSucceeded = await upgradeCliWithOclif(targetVersions.cli);
|
|
327
|
-
|
|
328
|
-
if (!oclifUpgradeSucceeded) {
|
|
329
|
-
// Fall back to package manager upgrade
|
|
330
|
-
await upgradePackageWithPackageManager(pm, "cli", targetVersions.cli);
|
|
331
|
-
cliUpdated = true;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// Upgrade library if needed
|
|
336
|
-
if (libraryNeedsUpgrade) {
|
|
337
|
-
await upgradePackageWithPackageManager(
|
|
338
|
-
pm,
|
|
339
|
-
"library",
|
|
340
|
-
targetVersions.library,
|
|
341
|
-
currentLibraryInfo.alias,
|
|
342
|
-
);
|
|
343
|
-
libraryUpdated = true;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
// Log what was updated
|
|
347
|
-
if (cliUpdated && libraryUpdated) {
|
|
348
|
-
logger.info(
|
|
349
|
-
"@superblocksteam/cli and @superblocksteam/library have been updated.",
|
|
350
|
-
);
|
|
351
|
-
} else if (cliUpdated) {
|
|
352
|
-
logger.info("@superblocksteam/cli has been updated.");
|
|
353
|
-
} else if (libraryUpdated) {
|
|
354
|
-
logger.info("@superblocksteam/library has been updated.");
|
|
355
|
-
}
|
|
356
|
-
|
|
357
421
|
// Restart CLI if anything was updated
|
|
358
|
-
if (
|
|
422
|
+
if (hasFailedToUpgrade) {
|
|
423
|
+
process.exit(1);
|
|
424
|
+
} else if (cliUpdated || libraryUpdated) {
|
|
359
425
|
logger.info("Restarting the CLI…");
|
|
360
426
|
await lockService.releaseLock();
|
|
361
427
|
process.exit(AUTO_UPGRADE_EXIT_CODE);
|