@superblocksteam/sdk 2.0.6-next.59 → 2.0.6-next.6
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 +2 -6
- package/dist/application-build.mjs.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.d.ts +2 -5
- package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.js +93 -199
- package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
- package/dist/cli-replacement/dev.d.mts +2 -1
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.mjs +29 -53
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/dev-utils/dev-logger.d.mts +7 -17
- package/dist/dev-utils/dev-logger.d.mts.map +1 -1
- package/dist/dev-utils/dev-logger.mjs +9 -50
- 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 +12 -8
- package/dist/dev-utils/dev-server.mjs.map +1 -1
- package/dist/dev-utils/vite-plugin-sb-cdn.d.mts.map +1 -1
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs +3 -13
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs.map +1 -1
- 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 +4 -6
- package/src/application-build.mts +3 -6
- package/src/cli-replacement/automatic-upgrades.ts +113 -253
- package/src/cli-replacement/dev.mts +42 -67
- package/src/dev-utils/dev-logger.mts +20 -94
- package/src/dev-utils/dev-server.mts +12 -10
- package/src/dev-utils/vite-plugin-sb-cdn.mts +3 -14
- package/src/vite-plugin-inject-sb-ids-transform.mts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/dev-utils/vite-plugin-build-manifest-stub.d.mts +0 -10
- package/dist/dev-utils/vite-plugin-build-manifest-stub.d.mts.map +0 -1
- package/dist/dev-utils/vite-plugin-build-manifest-stub.mjs +0 -27
- package/dist/dev-utils/vite-plugin-build-manifest-stub.mjs.map +0 -1
- package/dist/vite-plugin-generate-build-manifest.d.mts +0 -21
- package/dist/vite-plugin-generate-build-manifest.d.mts.map +0 -1
- package/dist/vite-plugin-generate-build-manifest.mjs +0 -131
- package/dist/vite-plugin-generate-build-manifest.mjs.map +0 -1
- package/src/dev-utils/vite-plugin-build-manifest-stub.mts +0 -30
- package/src/vite-plugin-generate-build-manifest.mts +0 -193
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin-inject-sb-ids-transform.mjs","sourceRoot":"","sources":["../src/vite-plugin-inject-sb-ids-transform.mts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAIvD,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAY;IAC3D,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,UAAU,CAAC,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"vite-plugin-inject-sb-ids-transform.mjs","sourceRoot":"","sources":["../src/vite-plugin-inject-sb-ids-transform.mts"],"names":[],"mappings":"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"}
|
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.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Superblocks JS SDK",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -30,11 +30,9 @@
|
|
|
30
30
|
"@opentelemetry/semantic-conventions": "^1.28.0",
|
|
31
31
|
"@rollup/wasm-node": "^4.35.0",
|
|
32
32
|
"@superblocksteam/bucketeer-sdk": "0.5.0",
|
|
33
|
-
"@superblocksteam/
|
|
34
|
-
"@superblocksteam/
|
|
35
|
-
"@superblocksteam/
|
|
36
|
-
"@superblocksteam/util": "2.0.6-next.59",
|
|
37
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.6-next.59",
|
|
33
|
+
"@superblocksteam/shared": "0.9160.0",
|
|
34
|
+
"@superblocksteam/util": "2.0.6-next.6",
|
|
35
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.6-next.6",
|
|
38
36
|
"@vitejs/plugin-react": "^4.3.4",
|
|
39
37
|
"axios": "^1.4.0",
|
|
40
38
|
"chokidar": "^4.0.3",
|
|
@@ -9,8 +9,8 @@ import { customComponentsPlugin } from "./dev-utils/custom-build.mjs";
|
|
|
9
9
|
import { getLogger } from "./dev-utils/dev-logger.mjs";
|
|
10
10
|
import { ddRumPlugin } from "./dev-utils/vite-plugin-dd-rum.mjs";
|
|
11
11
|
import { superblocksCdnPlugin } from "./dev-utils/vite-plugin-sb-cdn.mjs";
|
|
12
|
-
import { generateBuildManifestPlugin } from "./vite-plugin-generate-build-manifest.mjs";
|
|
13
12
|
import { injectSuperblocksIdsPlugin } from "./vite-plugin-inject-sb-ids-transform.mjs";
|
|
13
|
+
import type { Plugin } from "vite";
|
|
14
14
|
|
|
15
15
|
export async function buildApplication({
|
|
16
16
|
root,
|
|
@@ -81,7 +81,7 @@ async function buildWithVite({
|
|
|
81
81
|
}) {
|
|
82
82
|
const viteLogger = createLogger();
|
|
83
83
|
const logger = getLogger();
|
|
84
|
-
viteLogger.info =
|
|
84
|
+
viteLogger.info = logger.info;
|
|
85
85
|
viteLogger.warn = (msg: string) => {
|
|
86
86
|
logger.warn(yellow(msg));
|
|
87
87
|
};
|
|
@@ -133,7 +133,7 @@ async function buildWithVite({
|
|
|
133
133
|
logLevel: "info",
|
|
134
134
|
plugins: [
|
|
135
135
|
tsconfigPaths(),
|
|
136
|
-
injectIndexVitePlugin({ assetsCdnUrl }),
|
|
136
|
+
injectIndexVitePlugin({ assetsCdnUrl, logger }) as Plugin,
|
|
137
137
|
customComponentsPlugin(),
|
|
138
138
|
injectSuperblocksIdsPlugin(root),
|
|
139
139
|
superblocksCdnPlugin({
|
|
@@ -142,15 +142,12 @@ async function buildWithVite({
|
|
|
142
142
|
"react/jsx-runtime": "https://esm.sh/react@18.2.0/jsx-runtime.mjs",
|
|
143
143
|
"react/jsx-dev-runtime":
|
|
144
144
|
"https://esm.sh/react@18.2.0/jsx-dev-runtime.mjs",
|
|
145
|
-
"./user-facing/build-manifest.js": "/assets/build-manifest.js",
|
|
146
|
-
"/assets/user-facing/build-manifest.js": "/assets/build-manifest.js",
|
|
147
145
|
},
|
|
148
146
|
cssImports: {
|
|
149
147
|
"@superblocksteam/library/index.css": `${libraryUrl}/index.css`,
|
|
150
148
|
},
|
|
151
149
|
}),
|
|
152
150
|
react(),
|
|
153
|
-
generateBuildManifestPlugin(root),
|
|
154
151
|
|
|
155
152
|
ddRumPlugin({
|
|
156
153
|
clientToken: ddClientToken ?? "",
|
|
@@ -1,13 +1,11 @@
|
|
|
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";
|
|
5
4
|
import { resolveCommand, type DetectResult } from "package-manager-detector";
|
|
6
5
|
import { detect } from "package-manager-detector/detect";
|
|
7
6
|
import gt from "semver/functions/gt.js";
|
|
8
7
|
import valid from "semver/functions/valid.js";
|
|
9
|
-
import {
|
|
10
|
-
import tracer from "../dev-utils/dev-tracer.js";
|
|
8
|
+
import { getLogger } from "../dev-utils/dev-logger.mjs";
|
|
11
9
|
import type { ResponseMeta } from "../socket/handlers.js";
|
|
12
10
|
import type { ApplicationConfig } from "../types/common.js";
|
|
13
11
|
import type { LockService } from "@superblocksteam/vite-plugin-file-sync/lock-service";
|
|
@@ -57,7 +55,7 @@ async function getRemoteVersions(
|
|
|
57
55
|
return data.data;
|
|
58
56
|
} else {
|
|
59
57
|
const error = (await response.json()) as CheckVersionsErrorResponse;
|
|
60
|
-
|
|
58
|
+
console.log(
|
|
61
59
|
`Could not get latest CLI version: ${error.responseMeta.message}`,
|
|
62
60
|
);
|
|
63
61
|
}
|
|
@@ -70,9 +68,7 @@ async function getRemoteVersions(
|
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
export async function getCurrentCliVersion(): Promise<
|
|
74
|
-
PackageVersionInfo | undefined
|
|
75
|
-
> {
|
|
71
|
+
export async function getCurrentCliVersion(): Promise<string | undefined> {
|
|
76
72
|
try {
|
|
77
73
|
const command = process.platform === "win32" ? "where" : "which";
|
|
78
74
|
const { stdout } = await exec(`${command} superblocks`);
|
|
@@ -89,16 +85,7 @@ export async function getCurrentCliVersion(): Promise<
|
|
|
89
85
|
/@superblocksteam\/cli(-ephemeral)?\//,
|
|
90
86
|
"",
|
|
91
87
|
);
|
|
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 };
|
|
88
|
+
return version;
|
|
102
89
|
} catch (error) {
|
|
103
90
|
if (isNativeError(error)) {
|
|
104
91
|
logger.error(`Error getting CLI version: ${error.message}`);
|
|
@@ -117,16 +104,16 @@ export async function getCurrentLibraryVersion(
|
|
|
117
104
|
case "pnpm":
|
|
118
105
|
return await getPnpmLibraryVersion();
|
|
119
106
|
default:
|
|
120
|
-
|
|
107
|
+
console.error(
|
|
121
108
|
`${pm.agent} is currently not supported for automatic upgrades.`,
|
|
122
109
|
);
|
|
123
110
|
return undefined;
|
|
124
111
|
}
|
|
125
112
|
} catch (error) {
|
|
126
|
-
|
|
113
|
+
console.error(
|
|
127
114
|
"Could not resolve current library version. Skipping automatic upgrade.",
|
|
128
|
-
getErrorMeta(error),
|
|
129
115
|
);
|
|
116
|
+
console.error(error);
|
|
130
117
|
return undefined;
|
|
131
118
|
}
|
|
132
119
|
}
|
|
@@ -213,10 +200,10 @@ async function upgradeCliWithOclif(targetVersion: string): Promise<boolean> {
|
|
|
213
200
|
|
|
214
201
|
if (!superblocksPath) return false;
|
|
215
202
|
|
|
216
|
-
const { stdout: updateOutput
|
|
203
|
+
const { stdout: updateOutput } = await exec(
|
|
217
204
|
`${superblocksPath} update --version=${targetVersion}`,
|
|
218
205
|
);
|
|
219
|
-
return !
|
|
206
|
+
return !updateOutput.includes("not updatable");
|
|
220
207
|
} catch (error) {
|
|
221
208
|
if (isNativeError(error)) {
|
|
222
209
|
logger.error(`Error checking CLI updatability: ${error.message}`);
|
|
@@ -229,61 +216,21 @@ async function upgradePackageWithPackageManager(
|
|
|
229
216
|
pm: DetectResult,
|
|
230
217
|
packageName: string,
|
|
231
218
|
targetVersion: string,
|
|
232
|
-
|
|
233
|
-
alias,
|
|
234
|
-
global,
|
|
235
|
-
}: {
|
|
236
|
-
alias?: string;
|
|
237
|
-
global?: boolean;
|
|
238
|
-
},
|
|
219
|
+
alias?: string,
|
|
239
220
|
): Promise<void> {
|
|
240
221
|
const packageSpec = alias
|
|
241
222
|
? `@superblocksteam/${packageName}@npm:${alias}@${targetVersion}`
|
|
242
223
|
: `@superblocksteam/${packageName}@${targetVersion}`;
|
|
243
224
|
|
|
244
|
-
const installCommand = resolveCommand(
|
|
245
|
-
pm.agent,
|
|
246
|
-
global ? "global" : "install",
|
|
247
|
-
[packageSpec],
|
|
248
|
-
);
|
|
225
|
+
const installCommand = resolveCommand(pm.agent, "install", [packageSpec]);
|
|
249
226
|
|
|
250
227
|
if (!installCommand) {
|
|
251
|
-
|
|
228
|
+
console.error("Could not determine how to upgrade Superblocks packages.");
|
|
252
229
|
return;
|
|
253
230
|
}
|
|
254
231
|
|
|
255
232
|
const { command, args } = installCommand;
|
|
256
|
-
|
|
257
|
-
`Running ${command} ${args.join(" ")} to upgrade ${packageName}...`,
|
|
258
|
-
);
|
|
259
|
-
let resolver: (value: void | PromiseLike<void>) => void;
|
|
260
|
-
let rejecter: (reason?: any) => void;
|
|
261
|
-
const promise = new Promise<void>((resolve, reject) => {
|
|
262
|
-
resolver = resolve;
|
|
263
|
-
rejecter = reject;
|
|
264
|
-
});
|
|
265
|
-
const cp = child_process.exec(
|
|
266
|
-
`${command} ${args.join(" ")}`,
|
|
267
|
-
{
|
|
268
|
-
cwd: process.cwd(),
|
|
269
|
-
},
|
|
270
|
-
(error) => {
|
|
271
|
-
if (error) {
|
|
272
|
-
logger.error(`Failed to upgrade ${packageName} to ${targetVersion}`);
|
|
273
|
-
rejecter(error);
|
|
274
|
-
} else {
|
|
275
|
-
logger.info(`Successfully upgraded ${packageName} to ${targetVersion}`);
|
|
276
|
-
resolver();
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
);
|
|
280
|
-
cp.stdout?.on("data", (data) => {
|
|
281
|
-
logger.info(data);
|
|
282
|
-
});
|
|
283
|
-
cp.stderr?.on("data", (data) => {
|
|
284
|
-
logger.warn(data);
|
|
285
|
-
});
|
|
286
|
-
return promise;
|
|
233
|
+
await exec(`${command} ${args.join(" ")}`);
|
|
287
234
|
}
|
|
288
235
|
|
|
289
236
|
export async function getCurrentLibraryVersionWithoutPM(): Promise<
|
|
@@ -308,196 +255,109 @@ export async function getCurrentLibraryVersionWithoutPM(): Promise<
|
|
|
308
255
|
export async function checkVersionsAndUpgrade(
|
|
309
256
|
lockService: LockService,
|
|
310
257
|
config?: ApplicationConfig,
|
|
311
|
-
)
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
await traceFunction({
|
|
322
|
-
name: "checkVersionsAndUpgrade",
|
|
323
|
-
tracer,
|
|
324
|
-
fn: async () => {
|
|
325
|
-
// Detect package manager
|
|
326
|
-
const pm = await traceFunction({
|
|
327
|
-
name: "detectPackageManager",
|
|
328
|
-
tracer,
|
|
329
|
-
fn: async () => {
|
|
330
|
-
return await detect({
|
|
331
|
-
strategies: [
|
|
332
|
-
"packageManager-field",
|
|
333
|
-
"lockfile",
|
|
334
|
-
"install-metadata",
|
|
335
|
-
"devEngines-field",
|
|
336
|
-
],
|
|
337
|
-
cwd: process.cwd(),
|
|
338
|
-
});
|
|
339
|
-
},
|
|
340
|
-
});
|
|
341
|
-
|
|
342
|
-
if (!pm || !config?.id) return;
|
|
343
|
-
|
|
344
|
-
// Get current versions
|
|
345
|
-
const currentCliInfo = await traceFunction({
|
|
346
|
-
name: "getCurrentCliVersion",
|
|
347
|
-
tracer,
|
|
348
|
-
fn: async () => {
|
|
349
|
-
return await getCurrentCliVersion();
|
|
350
|
-
},
|
|
351
|
-
});
|
|
352
|
-
const currentLibraryInfo = await traceFunction({
|
|
353
|
-
name: "getCurrentLibraryVersion",
|
|
354
|
-
tracer,
|
|
355
|
-
fn: async () => {
|
|
356
|
-
return await getCurrentLibraryVersion(pm);
|
|
357
|
-
},
|
|
358
|
-
});
|
|
359
|
-
|
|
360
|
-
// Skip if we're in local development
|
|
361
|
-
if (
|
|
362
|
-
!currentCliInfo ||
|
|
363
|
-
!valid(currentCliInfo.version) ||
|
|
364
|
-
currentCliInfo.version.startsWith("file:") ||
|
|
365
|
-
currentCliInfo.version.startsWith("link:") ||
|
|
366
|
-
!currentLibraryInfo ||
|
|
367
|
-
!valid(currentLibraryInfo.version) ||
|
|
368
|
-
currentLibraryInfo.version.startsWith("file:") ||
|
|
369
|
-
currentLibraryInfo.version.startsWith("link:")
|
|
370
|
-
) {
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// Get target versions from server
|
|
375
|
-
const targetVersions = await traceFunction({
|
|
376
|
-
name: "getRemoteVersions",
|
|
377
|
-
tracer,
|
|
378
|
-
fn: async () => {
|
|
379
|
-
return await getRemoteVersions(config);
|
|
380
|
-
},
|
|
381
|
-
});
|
|
382
|
-
if (!targetVersions) return;
|
|
383
|
-
|
|
384
|
-
let cliNeedsUpgrade: boolean | string;
|
|
385
|
-
let libraryNeedsUpgrade: boolean | string;
|
|
386
|
-
try {
|
|
387
|
-
// If version is latest, then semver can throw an error
|
|
388
|
-
// Check if CLI needs upgrade
|
|
389
|
-
cliNeedsUpgrade =
|
|
390
|
-
targetVersions.cli && gt(targetVersions.cli, currentCliInfo.version);
|
|
391
|
-
|
|
392
|
-
// Check if library needs upgrade
|
|
393
|
-
libraryNeedsUpgrade =
|
|
394
|
-
targetVersions.library &&
|
|
395
|
-
gt(targetVersions.library, currentLibraryInfo.version);
|
|
396
|
-
} catch (error) {
|
|
397
|
-
logger.error(
|
|
398
|
-
"Error checking versions to upgrade, releasing lock and exiting",
|
|
399
|
-
getErrorMeta(error),
|
|
400
|
-
);
|
|
401
|
-
await traceFunction({
|
|
402
|
-
name: "shutdownLockService",
|
|
403
|
-
tracer,
|
|
404
|
-
fn: async () => {
|
|
405
|
-
await lockService.shutdown({
|
|
406
|
-
serverInitiated: false,
|
|
407
|
-
});
|
|
408
|
-
},
|
|
409
|
-
});
|
|
410
|
-
hasFailedToUpgrade = true;
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
|
|
415
|
-
return; // Everything is up to date
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
let cliUpdated = false;
|
|
419
|
-
let libraryUpdated = false;
|
|
420
|
-
|
|
421
|
-
// Upgrade CLI if needed
|
|
422
|
-
if (cliNeedsUpgrade) {
|
|
423
|
-
logger.info(
|
|
424
|
-
`Beginning CLI upgrade from ${currentCliInfo.version} to ${targetVersions.cli}`,
|
|
425
|
-
);
|
|
426
|
-
|
|
427
|
-
const oclifUpgradeSucceeded = await traceFunction({
|
|
428
|
-
name: "upgradeCliWithOclif",
|
|
429
|
-
tracer,
|
|
430
|
-
fn: async () => {
|
|
431
|
-
return await upgradeCliWithOclif(targetVersions.cli);
|
|
432
|
-
},
|
|
433
|
-
});
|
|
434
|
-
if (!oclifUpgradeSucceeded) {
|
|
435
|
-
logger.info(`Falling back to package manager upgrade for CLI`);
|
|
436
|
-
// Fall back to package manager upgrade
|
|
437
|
-
await traceFunction({
|
|
438
|
-
name: "upgradePackageWithPackageManager - cli",
|
|
439
|
-
tracer,
|
|
440
|
-
fn: async () => {
|
|
441
|
-
await upgradePackageWithPackageManager(
|
|
442
|
-
pm,
|
|
443
|
-
"cli",
|
|
444
|
-
targetVersions.cli,
|
|
445
|
-
{
|
|
446
|
-
alias: currentCliInfo.alias,
|
|
447
|
-
global: true,
|
|
448
|
-
},
|
|
449
|
-
);
|
|
450
|
-
},
|
|
451
|
-
});
|
|
452
|
-
cliUpdated = true;
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
// Upgrade library if needed
|
|
457
|
-
if (libraryNeedsUpgrade) {
|
|
458
|
-
logger.info(
|
|
459
|
-
`Beginning library upgrade from ${currentLibraryInfo.version} to ${targetVersions.library}`,
|
|
460
|
-
);
|
|
461
|
-
await traceFunction({
|
|
462
|
-
name: "upgradePackageWithPackageManager - library",
|
|
463
|
-
tracer,
|
|
464
|
-
fn: async () => {
|
|
465
|
-
await upgradePackageWithPackageManager(
|
|
466
|
-
pm,
|
|
467
|
-
"library",
|
|
468
|
-
targetVersions.library,
|
|
469
|
-
{
|
|
470
|
-
alias: currentLibraryInfo.alias,
|
|
471
|
-
global: false,
|
|
472
|
-
},
|
|
473
|
-
);
|
|
474
|
-
},
|
|
475
|
-
});
|
|
476
|
-
libraryUpdated = true;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
// Log what was updated
|
|
480
|
-
if (cliUpdated && libraryUpdated) {
|
|
481
|
-
logger.info(
|
|
482
|
-
"@superblocksteam/cli and @superblocksteam/library have been updated.",
|
|
483
|
-
);
|
|
484
|
-
} else if (cliUpdated) {
|
|
485
|
-
logger.info("@superblocksteam/cli has been updated.");
|
|
486
|
-
} else if (libraryUpdated) {
|
|
487
|
-
logger.info("@superblocksteam/library has been updated.");
|
|
488
|
-
} else {
|
|
489
|
-
logger.info("No upgrades needed");
|
|
490
|
-
}
|
|
491
|
-
},
|
|
258
|
+
) {
|
|
259
|
+
// Detect package manager
|
|
260
|
+
const pm = await detect({
|
|
261
|
+
strategies: [
|
|
262
|
+
"packageManager-field",
|
|
263
|
+
"lockfile",
|
|
264
|
+
"install-metadata",
|
|
265
|
+
"devEngines-field",
|
|
266
|
+
],
|
|
267
|
+
cwd: process.cwd(),
|
|
492
268
|
});
|
|
493
269
|
|
|
494
|
-
|
|
495
|
-
|
|
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
|
+
});
|
|
496
314
|
process.exit(1);
|
|
497
315
|
}
|
|
498
316
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
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
|
+
// 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
|
+
}
|
|
503
363
|
}
|