@superblocksteam/sdk 2.0.6 → 2.0.7
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/application-build.mjs +6 -2
- package/dist/application-build.mjs.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.d.ts +5 -2
- package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.js +221 -93
- package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
- package/dist/cli-replacement/dev.d.mts +1 -2
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.mjs +57 -32
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/client.d.ts +34 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +92 -1
- package/dist/client.js.map +1 -1
- package/dist/dev-utils/dev-logger.d.mts +17 -7
- package/dist/dev-utils/dev-logger.d.mts.map +1 -1
- package/dist/dev-utils/dev-logger.mjs +50 -9
- package/dist/dev-utils/dev-logger.mjs.map +1 -1
- package/dist/dev-utils/dev-server.d.mts.map +1 -1
- package/dist/dev-utils/dev-server.mjs +8 -12
- package/dist/dev-utils/dev-server.mjs.map +1 -1
- package/dist/dev-utils/dev-tracer.d.ts +2 -0
- package/dist/dev-utils/dev-tracer.d.ts.map +1 -1
- package/dist/dev-utils/dev-tracer.js +42 -35
- package/dist/dev-utils/dev-tracer.js.map +1 -1
- package/dist/dev-utils/vite-plugin-build-manifest-stub.d.mts +10 -0
- package/dist/dev-utils/vite-plugin-build-manifest-stub.d.mts.map +1 -0
- package/dist/dev-utils/vite-plugin-build-manifest-stub.mjs +27 -0
- package/dist/dev-utils/vite-plugin-build-manifest-stub.mjs.map +1 -0
- package/dist/dev-utils/vite-plugin-sb-cdn.d.mts.map +1 -1
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs +13 -3
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/vite-plugin-generate-build-manifest.d.mts +21 -0
- package/dist/vite-plugin-generate-build-manifest.d.mts.map +1 -0
- package/dist/vite-plugin-generate-build-manifest.mjs +130 -0
- package/dist/vite-plugin-generate-build-manifest.mjs.map +1 -0
- package/dist/vite-plugin-inject-sb-ids-transform.mjs +1 -1
- package/dist/vite-plugin-inject-sb-ids-transform.mjs.map +1 -1
- package/package.json +6 -4
- package/src/application-build.mts +6 -3
- package/src/cli-replacement/automatic-upgrades.ts +278 -113
- package/src/cli-replacement/dev.mts +77 -43
- package/src/client.ts +115 -0
- package/src/dev-utils/dev-logger.mts +94 -20
- package/src/dev-utils/dev-server.mts +10 -12
- package/src/dev-utils/dev-tracer.ts +48 -37
- package/src/dev-utils/vite-plugin-build-manifest-stub.mts +30 -0
- package/src/dev-utils/vite-plugin-sb-cdn.mts +14 -3
- package/src/index.ts +4 -0
- package/src/vite-plugin-generate-build-manifest.mts +192 -0
- package/src/vite-plugin-inject-sb-ids-transform.mts +1 -1
- package/test/clients.test.mts +120 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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
|
-
import { getLogger } from "../dev-utils/dev-logger.mjs";
|
|
9
|
+
import { getErrorMeta, 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";
|
|
@@ -55,7 +57,7 @@ async function getRemoteVersions(
|
|
|
55
57
|
return data.data;
|
|
56
58
|
} else {
|
|
57
59
|
const error = (await response.json()) as CheckVersionsErrorResponse;
|
|
58
|
-
|
|
60
|
+
logger.error(
|
|
59
61
|
`Could not get latest CLI version: ${error.responseMeta.message}`,
|
|
60
62
|
);
|
|
61
63
|
}
|
|
@@ -68,7 +70,9 @@ async function getRemoteVersions(
|
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
export async function getCurrentCliVersion(): Promise<
|
|
73
|
+
export async function getCurrentCliVersion(): Promise<
|
|
74
|
+
PackageVersionInfo | undefined
|
|
75
|
+
> {
|
|
72
76
|
try {
|
|
73
77
|
const command = process.platform === "win32" ? "where" : "which";
|
|
74
78
|
const { stdout } = await exec(`${command} superblocks`);
|
|
@@ -85,7 +89,16 @@ export async function getCurrentCliVersion(): Promise<string | undefined> {
|
|
|
85
89
|
/@superblocksteam\/cli(-ephemeral)?\//,
|
|
86
90
|
"",
|
|
87
91
|
);
|
|
88
|
-
|
|
92
|
+
|
|
93
|
+
const aliasMatch = json.cliVersion?.match(/@superblocksteam\/([^\/]+)/);
|
|
94
|
+
if (aliasMatch && aliasMatch[1] !== "cli") {
|
|
95
|
+
return {
|
|
96
|
+
version: version,
|
|
97
|
+
alias: `@superblocksteam/${aliasMatch[1]}`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return { version };
|
|
89
102
|
} catch (error) {
|
|
90
103
|
if (isNativeError(error)) {
|
|
91
104
|
logger.error(`Error getting CLI version: ${error.message}`);
|
|
@@ -104,16 +117,16 @@ export async function getCurrentLibraryVersion(
|
|
|
104
117
|
case "pnpm":
|
|
105
118
|
return await getPnpmLibraryVersion();
|
|
106
119
|
default:
|
|
107
|
-
|
|
120
|
+
logger.error(
|
|
108
121
|
`${pm.agent} is currently not supported for automatic upgrades.`,
|
|
109
122
|
);
|
|
110
123
|
return undefined;
|
|
111
124
|
}
|
|
112
125
|
} catch (error) {
|
|
113
|
-
|
|
126
|
+
logger.error(
|
|
114
127
|
"Could not resolve current library version. Skipping automatic upgrade.",
|
|
128
|
+
getErrorMeta(error),
|
|
115
129
|
);
|
|
116
|
-
console.error(error);
|
|
117
130
|
return undefined;
|
|
118
131
|
}
|
|
119
132
|
}
|
|
@@ -200,10 +213,10 @@ async function upgradeCliWithOclif(targetVersion: string): Promise<boolean> {
|
|
|
200
213
|
|
|
201
214
|
if (!superblocksPath) return false;
|
|
202
215
|
|
|
203
|
-
const { stdout: updateOutput } = await exec(
|
|
216
|
+
const { stdout: updateOutput, stderr: updateErrorOutput } = await exec(
|
|
204
217
|
`${superblocksPath} update --version=${targetVersion}`,
|
|
205
218
|
);
|
|
206
|
-
return !updateOutput.includes("not updatable");
|
|
219
|
+
return !(updateOutput + updateErrorOutput).includes("not updatable");
|
|
207
220
|
} catch (error) {
|
|
208
221
|
if (isNativeError(error)) {
|
|
209
222
|
logger.error(`Error checking CLI updatability: ${error.message}`);
|
|
@@ -216,21 +229,70 @@ async function upgradePackageWithPackageManager(
|
|
|
216
229
|
pm: DetectResult,
|
|
217
230
|
packageName: string,
|
|
218
231
|
targetVersion: string,
|
|
219
|
-
|
|
232
|
+
{
|
|
233
|
+
alias,
|
|
234
|
+
global,
|
|
235
|
+
}: {
|
|
236
|
+
alias?: string;
|
|
237
|
+
global?: boolean;
|
|
238
|
+
},
|
|
220
239
|
): Promise<void> {
|
|
221
240
|
const packageSpec = alias
|
|
222
241
|
? `@superblocksteam/${packageName}@npm:${alias}@${targetVersion}`
|
|
223
242
|
: `@superblocksteam/${packageName}@${targetVersion}`;
|
|
224
243
|
|
|
225
|
-
|
|
244
|
+
// --prefer-offline will skip some staleness checks that are slow
|
|
245
|
+
const installArgs = [packageSpec, "--fund=false"];
|
|
246
|
+
if (pm.agent === "npm") {
|
|
247
|
+
installArgs.push("--audit=false");
|
|
248
|
+
}
|
|
249
|
+
if (packageName === "cli") {
|
|
250
|
+
installArgs.push("--force");
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const installCommand = resolveCommand(
|
|
254
|
+
pm.agent,
|
|
255
|
+
global ? "global" : "install",
|
|
256
|
+
installArgs,
|
|
257
|
+
);
|
|
226
258
|
|
|
227
259
|
if (!installCommand) {
|
|
228
|
-
|
|
260
|
+
logger.error("Could not determine how to upgrade Superblocks packages.");
|
|
229
261
|
return;
|
|
230
262
|
}
|
|
231
263
|
|
|
232
264
|
const { command, args } = installCommand;
|
|
233
|
-
|
|
265
|
+
logger.info(
|
|
266
|
+
`Running ${command} ${args.join(" ")} to upgrade ${packageName}...`,
|
|
267
|
+
);
|
|
268
|
+
let resolver: (value: void | PromiseLike<void>) => void;
|
|
269
|
+
let rejecter: (reason?: any) => void;
|
|
270
|
+
const promise = new Promise<void>((resolve, reject) => {
|
|
271
|
+
resolver = resolve;
|
|
272
|
+
rejecter = reject;
|
|
273
|
+
});
|
|
274
|
+
const cp = child_process.exec(
|
|
275
|
+
`${command} ${args.join(" ")}`,
|
|
276
|
+
{
|
|
277
|
+
cwd: process.cwd(),
|
|
278
|
+
},
|
|
279
|
+
(error) => {
|
|
280
|
+
if (error) {
|
|
281
|
+
logger.error(`Failed to upgrade ${packageName} to ${targetVersion}`);
|
|
282
|
+
rejecter(error);
|
|
283
|
+
} else {
|
|
284
|
+
logger.info(`Successfully upgraded ${packageName} to ${targetVersion}`);
|
|
285
|
+
resolver();
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
);
|
|
289
|
+
cp.stdout?.on("data", (data) => {
|
|
290
|
+
logger.info(data);
|
|
291
|
+
});
|
|
292
|
+
cp.stderr?.on("data", (data) => {
|
|
293
|
+
logger.warn(data);
|
|
294
|
+
});
|
|
295
|
+
return promise;
|
|
234
296
|
}
|
|
235
297
|
|
|
236
298
|
export async function getCurrentLibraryVersionWithoutPM(): Promise<
|
|
@@ -255,109 +317,212 @@ export async function getCurrentLibraryVersionWithoutPM(): Promise<
|
|
|
255
317
|
export async function checkVersionsAndUpgrade(
|
|
256
318
|
lockService: LockService,
|
|
257
319
|
config?: ApplicationConfig,
|
|
258
|
-
) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
320
|
+
): Promise<{
|
|
321
|
+
cliUpdated: boolean;
|
|
322
|
+
libraryUpdated: boolean;
|
|
323
|
+
}> {
|
|
324
|
+
const cliUpdated = false;
|
|
325
|
+
const libraryUpdated = false;
|
|
326
|
+
let hasFailedToUpgrade = false;
|
|
327
|
+
|
|
328
|
+
logger.info("Checking versions");
|
|
329
|
+
|
|
330
|
+
await traceFunction({
|
|
331
|
+
name: "checkVersionsAndUpgrade",
|
|
332
|
+
tracer,
|
|
333
|
+
fn: async () => {
|
|
334
|
+
// Detect package manager
|
|
335
|
+
const pm = await traceFunction({
|
|
336
|
+
name: "detectPackageManager",
|
|
337
|
+
tracer,
|
|
338
|
+
fn: async () => {
|
|
339
|
+
return await detect({
|
|
340
|
+
strategies: [
|
|
341
|
+
"packageManager-field",
|
|
342
|
+
"lockfile",
|
|
343
|
+
"install-metadata",
|
|
344
|
+
"devEngines-field",
|
|
345
|
+
],
|
|
346
|
+
cwd: process.cwd(),
|
|
347
|
+
});
|
|
348
|
+
},
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
if (!pm || !config?.id) return;
|
|
352
|
+
|
|
353
|
+
// Get current versions
|
|
354
|
+
const currentCliInfo = await traceFunction({
|
|
355
|
+
name: "getCurrentCliVersion",
|
|
356
|
+
tracer,
|
|
357
|
+
fn: async () => {
|
|
358
|
+
return await getCurrentCliVersion();
|
|
359
|
+
},
|
|
360
|
+
});
|
|
361
|
+
const currentLibraryInfo = await traceFunction({
|
|
362
|
+
name: "getCurrentLibraryVersion",
|
|
363
|
+
tracer,
|
|
364
|
+
fn: async () => {
|
|
365
|
+
return await getCurrentLibraryVersion(pm);
|
|
366
|
+
},
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
// Skip if we're in local development
|
|
370
|
+
if (
|
|
371
|
+
!currentCliInfo ||
|
|
372
|
+
!valid(currentCliInfo.version) ||
|
|
373
|
+
currentCliInfo.version.startsWith("file:") ||
|
|
374
|
+
currentCliInfo.version.startsWith("link:") ||
|
|
375
|
+
!currentLibraryInfo ||
|
|
376
|
+
!valid(currentLibraryInfo.version) ||
|
|
377
|
+
currentLibraryInfo.version.startsWith("file:") ||
|
|
378
|
+
currentLibraryInfo.version.startsWith("link:")
|
|
379
|
+
) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Get target versions from server
|
|
384
|
+
const targetVersions = await traceFunction({
|
|
385
|
+
name: "getRemoteVersions",
|
|
386
|
+
tracer,
|
|
387
|
+
fn: async () => {
|
|
388
|
+
return await getRemoteVersions(config);
|
|
389
|
+
},
|
|
390
|
+
});
|
|
391
|
+
if (!targetVersions) return;
|
|
392
|
+
|
|
393
|
+
let cliNeedsUpgrade: boolean | string;
|
|
394
|
+
let libraryNeedsUpgrade: boolean | string;
|
|
395
|
+
try {
|
|
396
|
+
// If version is latest, then semver can throw an error
|
|
397
|
+
// Check if CLI needs upgrade
|
|
398
|
+
cliNeedsUpgrade =
|
|
399
|
+
targetVersions.cli && gt(targetVersions.cli, currentCliInfo.version);
|
|
400
|
+
|
|
401
|
+
// Check if library needs upgrade
|
|
402
|
+
libraryNeedsUpgrade =
|
|
403
|
+
targetVersions.library &&
|
|
404
|
+
gt(targetVersions.library, currentLibraryInfo.version);
|
|
405
|
+
} catch (error) {
|
|
406
|
+
logger.error(
|
|
407
|
+
"Error checking versions to upgrade, releasing lock and exiting",
|
|
408
|
+
getErrorMeta(error),
|
|
409
|
+
);
|
|
410
|
+
await traceFunction({
|
|
411
|
+
name: "shutdownLockService",
|
|
412
|
+
tracer,
|
|
413
|
+
fn: async () => {
|
|
414
|
+
await lockService.shutdown({
|
|
415
|
+
serverInitiated: false,
|
|
416
|
+
});
|
|
417
|
+
},
|
|
418
|
+
});
|
|
419
|
+
hasFailedToUpgrade = true;
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
|
|
424
|
+
return; // Everything is up to date
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
let cliUpdated = false;
|
|
428
|
+
let libraryUpdated = false;
|
|
429
|
+
|
|
430
|
+
try {
|
|
431
|
+
const upgradePromises = [];
|
|
432
|
+
|
|
433
|
+
if (cliNeedsUpgrade) {
|
|
434
|
+
const cliUpgradePromise = traceFunction({
|
|
435
|
+
name: "upgradeCli",
|
|
436
|
+
tracer,
|
|
437
|
+
fn: async () => {
|
|
438
|
+
logger.info(
|
|
439
|
+
`Beginning CLI upgrade from ${currentCliInfo.version} to ${targetVersions.cli}`,
|
|
440
|
+
);
|
|
441
|
+
const oclifUpgradeSucceeded = await traceFunction({
|
|
442
|
+
name: "upgradeCliWithOclif",
|
|
443
|
+
tracer,
|
|
444
|
+
fn: async () => {
|
|
445
|
+
return await upgradeCliWithOclif(targetVersions.cli);
|
|
446
|
+
},
|
|
447
|
+
});
|
|
448
|
+
if (!oclifUpgradeSucceeded) {
|
|
449
|
+
logger.info(`Falling back to package manager upgrade for CLI`);
|
|
450
|
+
// Fall back to package manager upgrade
|
|
451
|
+
await traceFunction({
|
|
452
|
+
name: "upgradePackageWithPackageManager - cli",
|
|
453
|
+
tracer,
|
|
454
|
+
fn: async () => {
|
|
455
|
+
await upgradePackageWithPackageManager(
|
|
456
|
+
pm,
|
|
457
|
+
"cli",
|
|
458
|
+
targetVersions.cli,
|
|
459
|
+
{
|
|
460
|
+
alias: currentCliInfo.alias,
|
|
461
|
+
global: true,
|
|
462
|
+
},
|
|
463
|
+
);
|
|
464
|
+
},
|
|
465
|
+
});
|
|
466
|
+
cliUpdated = true;
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
});
|
|
470
|
+
upgradePromises.push(cliUpgradePromise);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
if (libraryNeedsUpgrade) {
|
|
474
|
+
const libraryUpgradePromise = traceFunction({
|
|
475
|
+
name: "upgradePackageWithPackageManager - library",
|
|
476
|
+
tracer,
|
|
477
|
+
fn: async () => {
|
|
478
|
+
logger.info(
|
|
479
|
+
`Beginning library upgrade from ${currentLibraryInfo.version} to ${targetVersions.library}`,
|
|
480
|
+
);
|
|
481
|
+
await upgradePackageWithPackageManager(
|
|
482
|
+
pm,
|
|
483
|
+
"library",
|
|
484
|
+
targetVersions.library,
|
|
485
|
+
{
|
|
486
|
+
alias: currentLibraryInfo.alias,
|
|
487
|
+
global: false,
|
|
488
|
+
},
|
|
489
|
+
);
|
|
490
|
+
libraryUpdated = true;
|
|
491
|
+
},
|
|
492
|
+
});
|
|
493
|
+
upgradePromises.push(libraryUpgradePromise);
|
|
494
|
+
}
|
|
495
|
+
await Promise.all(upgradePromises);
|
|
496
|
+
} catch (error) {
|
|
497
|
+
logger.error(
|
|
498
|
+
"Error upgrading packages, releasing lock and exiting",
|
|
499
|
+
getErrorMeta(error),
|
|
500
|
+
);
|
|
501
|
+
hasFailedToUpgrade = true;
|
|
502
|
+
}
|
|
289
503
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
504
|
+
// Log what was updated
|
|
505
|
+
if (cliUpdated && libraryUpdated) {
|
|
506
|
+
logger.info(
|
|
507
|
+
"@superblocksteam/cli and @superblocksteam/library have been updated.",
|
|
508
|
+
);
|
|
509
|
+
} else if (cliUpdated) {
|
|
510
|
+
logger.info("@superblocksteam/cli has been updated.");
|
|
511
|
+
} else if (libraryUpdated) {
|
|
512
|
+
logger.info("@superblocksteam/library has been updated.");
|
|
513
|
+
} else {
|
|
514
|
+
logger.info("No upgrades needed");
|
|
515
|
+
}
|
|
516
|
+
},
|
|
517
|
+
});
|
|
293
518
|
|
|
294
|
-
|
|
295
|
-
|
|
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
|
-
});
|
|
519
|
+
// Restart CLI if anything was updated
|
|
520
|
+
if (hasFailedToUpgrade) {
|
|
314
521
|
process.exit(1);
|
|
315
522
|
}
|
|
316
523
|
|
|
317
|
-
|
|
318
|
-
|
|
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
|
-
// Restart CLI if anything was updated
|
|
358
|
-
if (cliUpdated || libraryUpdated) {
|
|
359
|
-
logger.info("Restarting the CLI…");
|
|
360
|
-
await lockService.releaseLock();
|
|
361
|
-
process.exit(AUTO_UPGRADE_EXIT_CODE);
|
|
362
|
-
}
|
|
524
|
+
return {
|
|
525
|
+
cliUpdated,
|
|
526
|
+
libraryUpdated,
|
|
527
|
+
};
|
|
363
528
|
}
|