@superblocksteam/cli 2.0.3-next.209 → 2.0.3-next.210
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 +1 -1
- package/dist/index.js +397 -337
- package/oclif.manifest.json +15 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ $ npm install -g @superblocksteam/cli
|
|
|
14
14
|
$ superblocks COMMAND
|
|
15
15
|
running command...
|
|
16
16
|
$ superblocks (--version)
|
|
17
|
-
@superblocksteam/cli/2.0.3-next.
|
|
17
|
+
@superblocksteam/cli/2.0.3-next.210 linux-x64 node-v20.19.0
|
|
18
18
|
$ superblocks --help [COMMAND]
|
|
19
19
|
USAGE
|
|
20
20
|
$ superblocks COMMAND
|
package/dist/index.js
CHANGED
|
@@ -297973,9 +297973,9 @@ var require_execAsync = __commonJS({
|
|
|
297973
297973
|
init_cjs_shims();
|
|
297974
297974
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
297975
297975
|
exports2.execAsync = void 0;
|
|
297976
|
-
var
|
|
297976
|
+
var child_process4 = __require("child_process");
|
|
297977
297977
|
var util7 = __require("util");
|
|
297978
|
-
exports2.execAsync = util7.promisify(
|
|
297978
|
+
exports2.execAsync = util7.promisify(child_process4.exec);
|
|
297979
297979
|
}
|
|
297980
297980
|
});
|
|
297981
297981
|
|
|
@@ -318489,9 +318489,9 @@ var require_execAsync2 = __commonJS({
|
|
|
318489
318489
|
init_cjs_shims();
|
|
318490
318490
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
318491
318491
|
exports2.execAsync = void 0;
|
|
318492
|
-
var
|
|
318492
|
+
var child_process4 = __require("child_process");
|
|
318493
318493
|
var util7 = __require("util");
|
|
318494
|
-
exports2.execAsync = util7.promisify(
|
|
318494
|
+
exports2.execAsync = util7.promisify(child_process4.exec);
|
|
318495
318495
|
}
|
|
318496
318496
|
});
|
|
318497
318497
|
|
|
@@ -418482,7 +418482,7 @@ var import_util28 = __toESM(require_dist3(), 1);
|
|
|
418482
418482
|
// ../sdk/package.json
|
|
418483
418483
|
var package_default = {
|
|
418484
418484
|
name: "@superblocksteam/sdk",
|
|
418485
|
-
version: "2.0.3-next.
|
|
418485
|
+
version: "2.0.3-next.210",
|
|
418486
418486
|
type: "module",
|
|
418487
418487
|
description: "Superblocks JS SDK",
|
|
418488
418488
|
homepage: "https://www.superblocks.com",
|
|
@@ -418524,8 +418524,8 @@ var package_default = {
|
|
|
418524
418524
|
"@rollup/wasm-node": "^4.35.0",
|
|
418525
418525
|
"@superblocksteam/bucketeer-sdk": "0.5.0",
|
|
418526
418526
|
"@superblocksteam/shared": "0.9160.0",
|
|
418527
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
418528
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.
|
|
418527
|
+
"@superblocksteam/util": "2.0.3-next.210",
|
|
418528
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.210",
|
|
418529
418529
|
"@vitejs/plugin-react": "^4.3.4",
|
|
418530
418530
|
axios: "^1.4.0",
|
|
418531
418531
|
chokidar: "^4.0.3",
|
|
@@ -425327,291 +425327,11 @@ function relativeToCurrentDir(applicationConfigPath) {
|
|
|
425327
425327
|
return `./${path34.relative(process.cwd(), applicationConfigPath)}`;
|
|
425328
425328
|
}
|
|
425329
425329
|
|
|
425330
|
-
// ../sdk/dist/
|
|
425331
|
-
init_cjs_shims();
|
|
425332
|
-
var import_util33 = __toESM(require_dist3(), 1);
|
|
425333
|
-
import net from "node:net";
|
|
425334
|
-
import os4 from "node:os";
|
|
425335
|
-
import path35 from "node:path";
|
|
425336
|
-
import react3 from "@vitejs/plugin-react";
|
|
425337
|
-
var import_cors = __toESM(require_lib37(), 1);
|
|
425338
|
-
var import_express = __toESM(require_express2(), 1);
|
|
425339
|
-
import { createLogger as createLogger5, createServer, loadEnv } from "vite";
|
|
425340
|
-
var httpServer;
|
|
425341
|
-
async function createDevServer({ root: root2, mode, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride, port }) {
|
|
425342
|
-
const logger3 = getLogger2(loggerOverride);
|
|
425343
|
-
if (httpServer) {
|
|
425344
|
-
logger3.debug("Dev server already running");
|
|
425345
|
-
return httpServer;
|
|
425346
|
-
}
|
|
425347
|
-
const resourceConfig = await (0, import_util33.getSuperblocksResourceConfigIfExists)();
|
|
425348
|
-
if (resourceConfig?.configType !== "APPLICATION_V2") {
|
|
425349
|
-
throw new Error("Invalid resource configuration type");
|
|
425350
|
-
}
|
|
425351
|
-
const healthResponse = {
|
|
425352
|
-
status: "healthy",
|
|
425353
|
-
applicationId: resourceConfig.id,
|
|
425354
|
-
// TODO(code-mode): add branch name
|
|
425355
|
-
cliVersion: package_default.version
|
|
425356
|
-
};
|
|
425357
|
-
let viteServer;
|
|
425358
|
-
const app = (0, import_express.default)();
|
|
425359
|
-
let isViteServerInitialized = false;
|
|
425360
|
-
let viteResolve;
|
|
425361
|
-
let viteReject;
|
|
425362
|
-
const vitePromise = new Promise((resolve9, reject) => {
|
|
425363
|
-
viteResolve = resolve9;
|
|
425364
|
-
viteReject = reject;
|
|
425365
|
-
});
|
|
425366
|
-
async function gracefulShutdown({ logger: logger4, serverInitiated, switchingTo, initiatedByEmail }) {
|
|
425367
|
-
try {
|
|
425368
|
-
await lockService?.shutdown({
|
|
425369
|
-
serverInitiated,
|
|
425370
|
-
switchingTo,
|
|
425371
|
-
initiatedByEmail
|
|
425372
|
-
});
|
|
425373
|
-
if (viteServer) {
|
|
425374
|
-
await viteServer?.close();
|
|
425375
|
-
viteServer = null;
|
|
425376
|
-
isViteServerInitialized = false;
|
|
425377
|
-
}
|
|
425378
|
-
} catch (e) {
|
|
425379
|
-
logger4.error(`Error during graceful shutdown: ${e}`);
|
|
425380
|
-
} finally {
|
|
425381
|
-
const closeTimeout = setTimeout(() => {
|
|
425382
|
-
logger4.info("Dev server closed");
|
|
425383
|
-
process.exit(0);
|
|
425384
|
-
}, 1e3);
|
|
425385
|
-
httpServer.close(() => {
|
|
425386
|
-
logger4.info("Dev server closed");
|
|
425387
|
-
clearTimeout(closeTimeout);
|
|
425388
|
-
process.exit(0);
|
|
425389
|
-
});
|
|
425390
|
-
}
|
|
425391
|
-
}
|
|
425392
|
-
app.use((0, import_cors.default)({
|
|
425393
|
-
origin: true,
|
|
425394
|
-
credentials: true
|
|
425395
|
-
}));
|
|
425396
|
-
app.use(import_express.default.json());
|
|
425397
|
-
app.use((req, res, next) => {
|
|
425398
|
-
res.setHeader("Cache-Control", "no-store, max-age=0");
|
|
425399
|
-
if (req.url === "/_sb_connect" || req.url === "/_sb_disconnect" || req.url === "/_sb_health" || req.url === "/_sb_status") {
|
|
425400
|
-
return next();
|
|
425401
|
-
}
|
|
425402
|
-
vitePromise.then(() => {
|
|
425403
|
-
if (isViteServerInitialized) {
|
|
425404
|
-
next();
|
|
425405
|
-
} else {
|
|
425406
|
-
res.status(500).send("Dev server is not running");
|
|
425407
|
-
}
|
|
425408
|
-
});
|
|
425409
|
-
});
|
|
425410
|
-
app.get("/_sb_health", async (_req, res) => {
|
|
425411
|
-
res.setHeader("Content-Type", "application/json");
|
|
425412
|
-
res.send(JSON.stringify(healthResponse));
|
|
425413
|
-
});
|
|
425414
|
-
app.get("/_sb_connect", async (_req, res) => {
|
|
425415
|
-
res.setHeader("Content-Type", "application/json");
|
|
425416
|
-
if (isViteServerInitialized) {
|
|
425417
|
-
res.send(JSON.stringify(healthResponse));
|
|
425418
|
-
return;
|
|
425419
|
-
}
|
|
425420
|
-
isViteServerInitialized = true;
|
|
425421
|
-
startVite({
|
|
425422
|
-
port,
|
|
425423
|
-
app,
|
|
425424
|
-
root: root2,
|
|
425425
|
-
mode,
|
|
425426
|
-
fsOperationQueue,
|
|
425427
|
-
syncService,
|
|
425428
|
-
lockService,
|
|
425429
|
-
aiService,
|
|
425430
|
-
logger: loggerOverride,
|
|
425431
|
-
httpServer
|
|
425432
|
-
}).then((server) => {
|
|
425433
|
-
viteResolve();
|
|
425434
|
-
viteServer = server;
|
|
425435
|
-
res.send(JSON.stringify(healthResponse));
|
|
425436
|
-
}, viteReject);
|
|
425437
|
-
});
|
|
425438
|
-
app.get("/_sb_disconnect", async (_req, res) => {
|
|
425439
|
-
console.log("GET /_sb_disconnect");
|
|
425440
|
-
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425441
|
-
res.send("ok");
|
|
425442
|
-
});
|
|
425443
|
-
app.post("/_sb_disconnect", async (req, res) => {
|
|
425444
|
-
const { initiatedByEmail, switchingTo } = req.body;
|
|
425445
|
-
try {
|
|
425446
|
-
await gracefulShutdown({
|
|
425447
|
-
logger: logger3,
|
|
425448
|
-
serverInitiated: true,
|
|
425449
|
-
switchingTo,
|
|
425450
|
-
initiatedByEmail
|
|
425451
|
-
});
|
|
425452
|
-
res.send("ok");
|
|
425453
|
-
} catch (e) {
|
|
425454
|
-
console.error("Error disconnecting from dev server", e);
|
|
425455
|
-
res.status(500).send("Error disconnecting from dev server");
|
|
425456
|
-
}
|
|
425457
|
-
});
|
|
425458
|
-
app.get("/_sb_status", async (_req, res) => {
|
|
425459
|
-
res.setHeader("Content-Type", "application/json");
|
|
425460
|
-
if (lockService?.isLocked) {
|
|
425461
|
-
res.send({
|
|
425462
|
-
connectedUsers: lockService.connectedUsers
|
|
425463
|
-
});
|
|
425464
|
-
} else {
|
|
425465
|
-
res.send({
|
|
425466
|
-
connectedUsers: []
|
|
425467
|
-
});
|
|
425468
|
-
}
|
|
425469
|
-
});
|
|
425470
|
-
process.on("SIGINT", async () => {
|
|
425471
|
-
logger3.info("SIGINT received");
|
|
425472
|
-
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425473
|
-
});
|
|
425474
|
-
process.on("SIGTERM", async () => {
|
|
425475
|
-
logger3.info("SIGTERM received");
|
|
425476
|
-
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425477
|
-
});
|
|
425478
|
-
process.on("SIGABRT", async () => {
|
|
425479
|
-
logger3.info("SIGABRT received");
|
|
425480
|
-
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425481
|
-
});
|
|
425482
|
-
httpServer = await app.listen(port);
|
|
425483
|
-
return httpServer;
|
|
425484
|
-
}
|
|
425485
|
-
async function startVite({ app, httpServer: httpServer2, root: root2, mode, port, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride }) {
|
|
425486
|
-
const viteLogger = createLogger5();
|
|
425487
|
-
const logger3 = getLogger2(loggerOverride);
|
|
425488
|
-
viteLogger.info = logger3.info;
|
|
425489
|
-
viteLogger.warn = (msg) => {
|
|
425490
|
-
logger3.warn(yellow(msg));
|
|
425491
|
-
};
|
|
425492
|
-
viteLogger.warnOnce = (msg) => {
|
|
425493
|
-
logger3.warn(yellow(msg));
|
|
425494
|
-
};
|
|
425495
|
-
viteLogger.error = (msg) => {
|
|
425496
|
-
logger3.error(red(msg));
|
|
425497
|
-
};
|
|
425498
|
-
viteLogger.clearScreen = () => {
|
|
425499
|
-
};
|
|
425500
|
-
const isCustomBuildEnabled2 = await isCustomComponentsEnabled();
|
|
425501
|
-
const customFolder = path35.join(root2, "custom");
|
|
425502
|
-
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.209";
|
|
425503
|
-
const env3 = loadEnv(mode, root2, "");
|
|
425504
|
-
const hmrPort = await getFreePort();
|
|
425505
|
-
const hmrOptions = {
|
|
425506
|
-
port: hmrPort,
|
|
425507
|
-
clientPort: port,
|
|
425508
|
-
server: httpServer2
|
|
425509
|
-
};
|
|
425510
|
-
if (process.env.CSB_BASE_PREVIEW_HOST) {
|
|
425511
|
-
const hmrHost = `${os4.hostname()}-${port}.${process.env.CSB_BASE_PREVIEW_HOST}`;
|
|
425512
|
-
hmrOptions.host = hmrHost;
|
|
425513
|
-
hmrOptions.clientPort = 443;
|
|
425514
|
-
}
|
|
425515
|
-
const viteServer = await createServer({
|
|
425516
|
-
root: root2,
|
|
425517
|
-
mode,
|
|
425518
|
-
resolve: {
|
|
425519
|
-
alias: {
|
|
425520
|
-
"react-router": "@superblocksteam/library"
|
|
425521
|
-
}
|
|
425522
|
-
},
|
|
425523
|
-
clearScreen: process.env.SUPERBLOCKS_CLI_ENV !== "local",
|
|
425524
|
-
optimizeDeps: {
|
|
425525
|
-
include: ["lodash", "react-is"],
|
|
425526
|
-
exclude: []
|
|
425527
|
-
},
|
|
425528
|
-
// See https://vite.dev/config/server-options.html#server-middlewaremode
|
|
425529
|
-
// appType: "custom",
|
|
425530
|
-
server: {
|
|
425531
|
-
middlewareMode: true,
|
|
425532
|
-
watch: {
|
|
425533
|
-
ignored: [`${customFolder}/**/*`]
|
|
425534
|
-
},
|
|
425535
|
-
hmr: hmrOptions,
|
|
425536
|
-
cors: {
|
|
425537
|
-
origin: true,
|
|
425538
|
-
credentials: true
|
|
425539
|
-
}
|
|
425540
|
-
},
|
|
425541
|
-
build: {
|
|
425542
|
-
commonjsOptions: {
|
|
425543
|
-
include: ["react-is"]
|
|
425544
|
-
},
|
|
425545
|
-
rollupOptions: {
|
|
425546
|
-
external: [`${customFolder}/**/*`]
|
|
425547
|
-
}
|
|
425548
|
-
},
|
|
425549
|
-
plugins: [
|
|
425550
|
-
src_default(),
|
|
425551
|
-
customComponentsPlugin(),
|
|
425552
|
-
// TODO(omar): there is a type mismatch in the monorepo
|
|
425553
|
-
fileSyncVitePlugin({
|
|
425554
|
-
fsOperationQueue,
|
|
425555
|
-
syncService,
|
|
425556
|
-
lockService,
|
|
425557
|
-
aiService,
|
|
425558
|
-
httpServer: httpServer2,
|
|
425559
|
-
tracer: dev_tracer_default,
|
|
425560
|
-
logger: logger3
|
|
425561
|
-
}, { isCustomBuildEnabled: isCustomBuildEnabled2 }),
|
|
425562
|
-
// for now, only use the CDN locally
|
|
425563
|
-
superblocksCdnPlugin({
|
|
425564
|
-
imports: {
|
|
425565
|
-
"@superblocksteam/library": getValidFileUrl(cdnUrl, "index.js")
|
|
425566
|
-
},
|
|
425567
|
-
cssImports: {
|
|
425568
|
-
"@superblocksteam/library/index.css": getValidFileUrl(cdnUrl, "index.css")
|
|
425569
|
-
}
|
|
425570
|
-
}),
|
|
425571
|
-
react3(),
|
|
425572
|
-
ddRumPlugin({
|
|
425573
|
-
clientToken: env3.SUPERBLOCKS_LIBRARY_DD_CLIENT_TOKEN ?? "",
|
|
425574
|
-
applicationId: env3.SUPERBLOCKS_LIBRARY_DD_APPLICATION_ID ?? "",
|
|
425575
|
-
env: env3.SUPERBLOCKS_LIBRARY_ENV ?? "prod",
|
|
425576
|
-
// TODO: Version should be injected from the library. Replace once we have the autoupgrade feature.
|
|
425577
|
-
version: "1.0.0"
|
|
425578
|
-
})
|
|
425579
|
-
]
|
|
425580
|
-
});
|
|
425581
|
-
app.use(viteServer.middlewares);
|
|
425582
|
-
return viteServer;
|
|
425583
|
-
}
|
|
425584
|
-
var DEFAULT_HMR_PORT = 24678;
|
|
425585
|
-
function getFreePort() {
|
|
425586
|
-
return new Promise((resolve9) => {
|
|
425587
|
-
const server = net.createServer();
|
|
425588
|
-
server.listen(0, () => {
|
|
425589
|
-
const address = server.address();
|
|
425590
|
-
if (typeof address === "string") {
|
|
425591
|
-
resolve9(DEFAULT_HMR_PORT);
|
|
425592
|
-
return;
|
|
425593
|
-
}
|
|
425594
|
-
const port = address?.port;
|
|
425595
|
-
if (!port) {
|
|
425596
|
-
resolve9(DEFAULT_HMR_PORT);
|
|
425597
|
-
return;
|
|
425598
|
-
}
|
|
425599
|
-
server.close(() => resolve9(port));
|
|
425600
|
-
});
|
|
425601
|
-
});
|
|
425602
|
-
}
|
|
425603
|
-
function getValidFileUrl(url3, file) {
|
|
425604
|
-
return new URL(file, url3.endsWith("/") ? url3 : url3 + "/").href;
|
|
425605
|
-
}
|
|
425606
|
-
|
|
425607
|
-
// ../sdk/dist/cli-replacement/dev.mjs
|
|
425330
|
+
// ../sdk/dist/cli-replacement/automatic-upgrades.js
|
|
425608
425331
|
init_cjs_shims();
|
|
425609
|
-
|
|
425610
|
-
import
|
|
425611
|
-
import
|
|
425612
|
-
import path37 from "node:path";
|
|
425613
|
-
import { promisify as promisify2 } from "node:util";
|
|
425614
|
-
var import_fs_extra5 = __toESM(require_lib(), 1);
|
|
425332
|
+
import * as child_process from "node:child_process";
|
|
425333
|
+
import { promisify } from "node:util";
|
|
425334
|
+
import { isNativeError } from "node:util/types";
|
|
425615
425335
|
|
|
425616
425336
|
// ../../../../node_modules/.pnpm/package-manager-detector@1.3.0/node_modules/package-manager-detector/dist/index.mjs
|
|
425617
425337
|
init_cjs_shims();
|
|
@@ -425784,7 +425504,7 @@ var INSTALL_METADATA = {
|
|
|
425784
425504
|
// ../../../../node_modules/.pnpm/package-manager-detector@1.3.0/node_modules/package-manager-detector/dist/detect.mjs
|
|
425785
425505
|
init_cjs_shims();
|
|
425786
425506
|
import fs18 from "node:fs/promises";
|
|
425787
|
-
import
|
|
425507
|
+
import path35 from "node:path";
|
|
425788
425508
|
import process4 from "node:process";
|
|
425789
425509
|
async function pathExists(path210, type2) {
|
|
425790
425510
|
try {
|
|
@@ -425795,11 +425515,11 @@ async function pathExists(path210, type2) {
|
|
|
425795
425515
|
}
|
|
425796
425516
|
}
|
|
425797
425517
|
function* lookup(cwd = process4.cwd()) {
|
|
425798
|
-
let directory =
|
|
425799
|
-
const { root: root2 } =
|
|
425518
|
+
let directory = path35.resolve(cwd);
|
|
425519
|
+
const { root: root2 } = path35.parse(directory);
|
|
425800
425520
|
while (directory && directory !== root2) {
|
|
425801
425521
|
yield directory;
|
|
425802
|
-
directory =
|
|
425522
|
+
directory = path35.dirname(directory);
|
|
425803
425523
|
}
|
|
425804
425524
|
}
|
|
425805
425525
|
async function parsePackageJson(filepath, onUnknown) {
|
|
@@ -425813,7 +425533,7 @@ async function detect(options9 = {}) {
|
|
|
425813
425533
|
} = options9;
|
|
425814
425534
|
let stopDir;
|
|
425815
425535
|
if (typeof options9.stopDir === "string") {
|
|
425816
|
-
const resolved =
|
|
425536
|
+
const resolved = path35.resolve(options9.stopDir);
|
|
425817
425537
|
stopDir = (dir) => dir === resolved;
|
|
425818
425538
|
} else {
|
|
425819
425539
|
stopDir = options9.stopDir;
|
|
@@ -425823,9 +425543,9 @@ async function detect(options9 = {}) {
|
|
|
425823
425543
|
switch (strategy) {
|
|
425824
425544
|
case "lockfile": {
|
|
425825
425545
|
for (const lock of Object.keys(LOCKS)) {
|
|
425826
|
-
if (await pathExists(
|
|
425546
|
+
if (await pathExists(path35.join(directory, lock), "file")) {
|
|
425827
425547
|
const name18 = LOCKS[lock];
|
|
425828
|
-
const result = await parsePackageJson(
|
|
425548
|
+
const result = await parsePackageJson(path35.join(directory, "package.json"), onUnknown);
|
|
425829
425549
|
if (result)
|
|
425830
425550
|
return result;
|
|
425831
425551
|
else
|
|
@@ -425836,7 +425556,7 @@ async function detect(options9 = {}) {
|
|
|
425836
425556
|
}
|
|
425837
425557
|
case "packageManager-field":
|
|
425838
425558
|
case "devEngines-field": {
|
|
425839
|
-
const result = await parsePackageJson(
|
|
425559
|
+
const result = await parsePackageJson(path35.join(directory, "package.json"), onUnknown);
|
|
425840
425560
|
if (result)
|
|
425841
425561
|
return result;
|
|
425842
425562
|
break;
|
|
@@ -425844,7 +425564,7 @@ async function detect(options9 = {}) {
|
|
|
425844
425564
|
case "install-metadata": {
|
|
425845
425565
|
for (const metadata of Object.keys(INSTALL_METADATA)) {
|
|
425846
425566
|
const fileOrDir = metadata.endsWith("/") ? "dir" : "file";
|
|
425847
|
-
if (await pathExists(
|
|
425567
|
+
if (await pathExists(path35.join(directory, metadata), fileOrDir)) {
|
|
425848
425568
|
const name18 = INSTALL_METADATA[metadata];
|
|
425849
425569
|
const agent = name18 === "yarn" ? isMetadataYarnClassic(metadata) ? "yarn" : "yarn@berry" : name18;
|
|
425850
425570
|
return { name: name18, agent };
|
|
@@ -425905,12 +425625,9 @@ function isMetadataYarnClassic(metadataPath) {
|
|
|
425905
425625
|
}
|
|
425906
425626
|
|
|
425907
425627
|
// ../sdk/dist/cli-replacement/automatic-upgrades.js
|
|
425908
|
-
init_cjs_shims();
|
|
425909
|
-
import * as child_process from "node:child_process";
|
|
425910
|
-
import { promisify } from "node:util";
|
|
425911
|
-
import { isNativeError } from "node:util/types";
|
|
425912
425628
|
var import_gt = __toESM(require_gt(), 1);
|
|
425913
425629
|
var import_valid = __toESM(require_valid(), 1);
|
|
425630
|
+
var AUTO_UPGRADE_EXIT_CODE = 99;
|
|
425914
425631
|
var exec3 = promisify(child_process.exec);
|
|
425915
425632
|
var logger2 = getLogger2();
|
|
425916
425633
|
async function getRemoteVersions(config2) {
|
|
@@ -426046,16 +425763,6 @@ async function upgradePackageWithPackageManager(pm, packageName, targetVersion,
|
|
|
426046
425763
|
const { command, args } = installCommand;
|
|
426047
425764
|
await exec3(`${command} ${args.join(" ")}`);
|
|
426048
425765
|
}
|
|
426049
|
-
async function restartCli() {
|
|
426050
|
-
const args = process.argv.slice(1);
|
|
426051
|
-
const child = child_process.spawn(process.execPath, [...args], {
|
|
426052
|
-
detached: true,
|
|
426053
|
-
stdio: "inherit",
|
|
426054
|
-
env: process.env
|
|
426055
|
-
});
|
|
426056
|
-
child.unref();
|
|
426057
|
-
process.nextTick(() => process.exit(0));
|
|
426058
|
-
}
|
|
426059
425766
|
async function getCurrentLibraryVersionWithoutPM() {
|
|
426060
425767
|
const pm = await detect({
|
|
426061
425768
|
strategies: [
|
|
@@ -426128,11 +425835,295 @@ async function checkVersionsAndUpgrade(lockService, config2) {
|
|
|
426128
425835
|
if (cliUpdated || libraryUpdated) {
|
|
426129
425836
|
logger2.info("Restarting the CLI\u2026");
|
|
426130
425837
|
await lockService.releaseLock();
|
|
426131
|
-
|
|
425838
|
+
process.exit(AUTO_UPGRADE_EXIT_CODE);
|
|
425839
|
+
}
|
|
425840
|
+
}
|
|
425841
|
+
|
|
425842
|
+
// ../sdk/dist/dev-utils/dev-server.mjs
|
|
425843
|
+
init_cjs_shims();
|
|
425844
|
+
var import_util33 = __toESM(require_dist3(), 1);
|
|
425845
|
+
import net from "node:net";
|
|
425846
|
+
import os4 from "node:os";
|
|
425847
|
+
import path36 from "node:path";
|
|
425848
|
+
import react3 from "@vitejs/plugin-react";
|
|
425849
|
+
var import_cors = __toESM(require_lib37(), 1);
|
|
425850
|
+
var import_express = __toESM(require_express2(), 1);
|
|
425851
|
+
import { createLogger as createLogger5, createServer, loadEnv } from "vite";
|
|
425852
|
+
var httpServer;
|
|
425853
|
+
async function createDevServer({ root: root2, mode, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride, port }) {
|
|
425854
|
+
const logger3 = getLogger2(loggerOverride);
|
|
425855
|
+
if (httpServer) {
|
|
425856
|
+
logger3.debug("Dev server already running");
|
|
425857
|
+
return httpServer;
|
|
425858
|
+
}
|
|
425859
|
+
const resourceConfig = await (0, import_util33.getSuperblocksResourceConfigIfExists)();
|
|
425860
|
+
if (resourceConfig?.configType !== "APPLICATION_V2") {
|
|
425861
|
+
throw new Error("Invalid resource configuration type");
|
|
425862
|
+
}
|
|
425863
|
+
const healthResponse = {
|
|
425864
|
+
status: "healthy",
|
|
425865
|
+
applicationId: resourceConfig.id,
|
|
425866
|
+
// TODO(code-mode): add branch name
|
|
425867
|
+
cliVersion: package_default.version
|
|
425868
|
+
};
|
|
425869
|
+
let viteServer;
|
|
425870
|
+
const app = (0, import_express.default)();
|
|
425871
|
+
let isViteServerInitialized = false;
|
|
425872
|
+
let viteResolve;
|
|
425873
|
+
let viteReject;
|
|
425874
|
+
const vitePromise = new Promise((resolve9, reject) => {
|
|
425875
|
+
viteResolve = resolve9;
|
|
425876
|
+
viteReject = reject;
|
|
425877
|
+
});
|
|
425878
|
+
async function gracefulShutdown({ logger: logger4, serverInitiated, switchingTo, initiatedByEmail }) {
|
|
425879
|
+
try {
|
|
425880
|
+
await lockService?.shutdown({
|
|
425881
|
+
serverInitiated,
|
|
425882
|
+
switchingTo,
|
|
425883
|
+
initiatedByEmail
|
|
425884
|
+
});
|
|
425885
|
+
if (viteServer) {
|
|
425886
|
+
await viteServer?.close();
|
|
425887
|
+
viteServer = null;
|
|
425888
|
+
isViteServerInitialized = false;
|
|
425889
|
+
}
|
|
425890
|
+
} catch (e) {
|
|
425891
|
+
logger4.error(`Error during graceful shutdown: ${e}`);
|
|
425892
|
+
} finally {
|
|
425893
|
+
const closeTimeout = setTimeout(() => {
|
|
425894
|
+
logger4.info("Dev server closed");
|
|
425895
|
+
process.exit(0);
|
|
425896
|
+
}, 1e3);
|
|
425897
|
+
httpServer.close(() => {
|
|
425898
|
+
logger4.info("Dev server closed");
|
|
425899
|
+
clearTimeout(closeTimeout);
|
|
425900
|
+
process.exit(0);
|
|
425901
|
+
});
|
|
425902
|
+
}
|
|
425903
|
+
}
|
|
425904
|
+
app.use((0, import_cors.default)({
|
|
425905
|
+
origin: true,
|
|
425906
|
+
credentials: true
|
|
425907
|
+
}));
|
|
425908
|
+
app.use(import_express.default.json());
|
|
425909
|
+
app.use((req, res, next) => {
|
|
425910
|
+
res.setHeader("Cache-Control", "no-store, max-age=0");
|
|
425911
|
+
if (req.url === "/_sb_connect" || req.url === "/_sb_disconnect" || req.url === "/_sb_health" || req.url === "/_sb_status") {
|
|
425912
|
+
return next();
|
|
425913
|
+
}
|
|
425914
|
+
vitePromise.then(() => {
|
|
425915
|
+
if (isViteServerInitialized) {
|
|
425916
|
+
next();
|
|
425917
|
+
} else {
|
|
425918
|
+
res.status(500).send("Dev server is not running");
|
|
425919
|
+
}
|
|
425920
|
+
});
|
|
425921
|
+
});
|
|
425922
|
+
app.get("/_sb_health", async (_req, res) => {
|
|
425923
|
+
res.setHeader("Content-Type", "application/json");
|
|
425924
|
+
res.send(JSON.stringify(healthResponse));
|
|
425925
|
+
});
|
|
425926
|
+
app.get("/_sb_connect", async (_req, res) => {
|
|
425927
|
+
res.setHeader("Content-Type", "application/json");
|
|
425928
|
+
if (isViteServerInitialized) {
|
|
425929
|
+
res.send(JSON.stringify(healthResponse));
|
|
425930
|
+
return;
|
|
425931
|
+
}
|
|
425932
|
+
isViteServerInitialized = true;
|
|
425933
|
+
startVite({
|
|
425934
|
+
port,
|
|
425935
|
+
app,
|
|
425936
|
+
root: root2,
|
|
425937
|
+
mode,
|
|
425938
|
+
fsOperationQueue,
|
|
425939
|
+
syncService,
|
|
425940
|
+
lockService,
|
|
425941
|
+
aiService,
|
|
425942
|
+
logger: loggerOverride,
|
|
425943
|
+
httpServer
|
|
425944
|
+
}).then((server) => {
|
|
425945
|
+
viteResolve();
|
|
425946
|
+
viteServer = server;
|
|
425947
|
+
res.send(JSON.stringify(healthResponse));
|
|
425948
|
+
}, viteReject);
|
|
425949
|
+
});
|
|
425950
|
+
app.get("/_sb_disconnect", async (_req, res) => {
|
|
425951
|
+
console.log("GET /_sb_disconnect");
|
|
425952
|
+
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425953
|
+
res.send("ok");
|
|
425954
|
+
});
|
|
425955
|
+
app.post("/_sb_disconnect", async (req, res) => {
|
|
425956
|
+
const { initiatedByEmail, switchingTo } = req.body;
|
|
425957
|
+
try {
|
|
425958
|
+
await gracefulShutdown({
|
|
425959
|
+
logger: logger3,
|
|
425960
|
+
serverInitiated: true,
|
|
425961
|
+
switchingTo,
|
|
425962
|
+
initiatedByEmail
|
|
425963
|
+
});
|
|
425964
|
+
res.send("ok");
|
|
425965
|
+
} catch (e) {
|
|
425966
|
+
console.error("Error disconnecting from dev server", e);
|
|
425967
|
+
res.status(500).send("Error disconnecting from dev server");
|
|
425968
|
+
}
|
|
425969
|
+
});
|
|
425970
|
+
app.get("/_sb_status", async (_req, res) => {
|
|
425971
|
+
res.setHeader("Content-Type", "application/json");
|
|
425972
|
+
if (lockService?.isLocked) {
|
|
425973
|
+
res.send({
|
|
425974
|
+
connectedUsers: lockService.connectedUsers
|
|
425975
|
+
});
|
|
425976
|
+
} else {
|
|
425977
|
+
res.send({
|
|
425978
|
+
connectedUsers: []
|
|
425979
|
+
});
|
|
425980
|
+
}
|
|
425981
|
+
});
|
|
425982
|
+
process.on("SIGINT", async () => {
|
|
425983
|
+
logger3.info("SIGINT received");
|
|
425984
|
+
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425985
|
+
});
|
|
425986
|
+
process.on("SIGTERM", async () => {
|
|
425987
|
+
logger3.info("SIGTERM received");
|
|
425988
|
+
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425989
|
+
});
|
|
425990
|
+
process.on("SIGABRT", async () => {
|
|
425991
|
+
logger3.info("SIGABRT received");
|
|
425992
|
+
await gracefulShutdown({ logger: logger3, serverInitiated: false });
|
|
425993
|
+
});
|
|
425994
|
+
httpServer = await app.listen(port);
|
|
425995
|
+
return httpServer;
|
|
425996
|
+
}
|
|
425997
|
+
async function startVite({ app, httpServer: httpServer2, root: root2, mode, port, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride }) {
|
|
425998
|
+
const viteLogger = createLogger5();
|
|
425999
|
+
const logger3 = getLogger2(loggerOverride);
|
|
426000
|
+
viteLogger.info = logger3.info;
|
|
426001
|
+
viteLogger.warn = (msg) => {
|
|
426002
|
+
logger3.warn(yellow(msg));
|
|
426003
|
+
};
|
|
426004
|
+
viteLogger.warnOnce = (msg) => {
|
|
426005
|
+
logger3.warn(yellow(msg));
|
|
426006
|
+
};
|
|
426007
|
+
viteLogger.error = (msg) => {
|
|
426008
|
+
logger3.error(red(msg));
|
|
426009
|
+
};
|
|
426010
|
+
viteLogger.clearScreen = () => {
|
|
426011
|
+
};
|
|
426012
|
+
const isCustomBuildEnabled2 = await isCustomComponentsEnabled();
|
|
426013
|
+
const customFolder = path36.join(root2, "custom");
|
|
426014
|
+
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.210";
|
|
426015
|
+
const env3 = loadEnv(mode, root2, "");
|
|
426016
|
+
const hmrPort = await getFreePort();
|
|
426017
|
+
const hmrOptions = {
|
|
426018
|
+
port: hmrPort,
|
|
426019
|
+
clientPort: port,
|
|
426020
|
+
server: httpServer2
|
|
426021
|
+
};
|
|
426022
|
+
if (process.env.CSB_BASE_PREVIEW_HOST) {
|
|
426023
|
+
const hmrHost = `${os4.hostname()}-${port}.${process.env.CSB_BASE_PREVIEW_HOST}`;
|
|
426024
|
+
hmrOptions.host = hmrHost;
|
|
426025
|
+
hmrOptions.clientPort = 443;
|
|
426132
426026
|
}
|
|
426027
|
+
const viteServer = await createServer({
|
|
426028
|
+
root: root2,
|
|
426029
|
+
mode,
|
|
426030
|
+
resolve: {
|
|
426031
|
+
alias: {
|
|
426032
|
+
"react-router": "@superblocksteam/library"
|
|
426033
|
+
}
|
|
426034
|
+
},
|
|
426035
|
+
clearScreen: process.env.SUPERBLOCKS_CLI_ENV !== "local",
|
|
426036
|
+
optimizeDeps: {
|
|
426037
|
+
include: ["lodash", "react-is"],
|
|
426038
|
+
exclude: []
|
|
426039
|
+
},
|
|
426040
|
+
// See https://vite.dev/config/server-options.html#server-middlewaremode
|
|
426041
|
+
// appType: "custom",
|
|
426042
|
+
server: {
|
|
426043
|
+
middlewareMode: true,
|
|
426044
|
+
watch: {
|
|
426045
|
+
ignored: [`${customFolder}/**/*`]
|
|
426046
|
+
},
|
|
426047
|
+
hmr: hmrOptions,
|
|
426048
|
+
cors: {
|
|
426049
|
+
origin: true,
|
|
426050
|
+
credentials: true
|
|
426051
|
+
}
|
|
426052
|
+
},
|
|
426053
|
+
build: {
|
|
426054
|
+
commonjsOptions: {
|
|
426055
|
+
include: ["react-is"]
|
|
426056
|
+
},
|
|
426057
|
+
rollupOptions: {
|
|
426058
|
+
external: [`${customFolder}/**/*`]
|
|
426059
|
+
}
|
|
426060
|
+
},
|
|
426061
|
+
plugins: [
|
|
426062
|
+
src_default(),
|
|
426063
|
+
customComponentsPlugin(),
|
|
426064
|
+
// TODO(omar): there is a type mismatch in the monorepo
|
|
426065
|
+
fileSyncVitePlugin({
|
|
426066
|
+
fsOperationQueue,
|
|
426067
|
+
syncService,
|
|
426068
|
+
lockService,
|
|
426069
|
+
aiService,
|
|
426070
|
+
httpServer: httpServer2,
|
|
426071
|
+
tracer: dev_tracer_default,
|
|
426072
|
+
logger: logger3
|
|
426073
|
+
}, { isCustomBuildEnabled: isCustomBuildEnabled2 }),
|
|
426074
|
+
// for now, only use the CDN locally
|
|
426075
|
+
superblocksCdnPlugin({
|
|
426076
|
+
imports: {
|
|
426077
|
+
"@superblocksteam/library": getValidFileUrl(cdnUrl, "index.js")
|
|
426078
|
+
},
|
|
426079
|
+
cssImports: {
|
|
426080
|
+
"@superblocksteam/library/index.css": getValidFileUrl(cdnUrl, "index.css")
|
|
426081
|
+
}
|
|
426082
|
+
}),
|
|
426083
|
+
react3(),
|
|
426084
|
+
ddRumPlugin({
|
|
426085
|
+
clientToken: env3.SUPERBLOCKS_LIBRARY_DD_CLIENT_TOKEN ?? "",
|
|
426086
|
+
applicationId: env3.SUPERBLOCKS_LIBRARY_DD_APPLICATION_ID ?? "",
|
|
426087
|
+
env: env3.SUPERBLOCKS_LIBRARY_ENV ?? "prod",
|
|
426088
|
+
// TODO: Version should be injected from the library. Replace once we have the autoupgrade feature.
|
|
426089
|
+
version: "1.0.0"
|
|
426090
|
+
})
|
|
426091
|
+
]
|
|
426092
|
+
});
|
|
426093
|
+
app.use(viteServer.middlewares);
|
|
426094
|
+
return viteServer;
|
|
426095
|
+
}
|
|
426096
|
+
var DEFAULT_HMR_PORT = 24678;
|
|
426097
|
+
function getFreePort() {
|
|
426098
|
+
return new Promise((resolve9) => {
|
|
426099
|
+
const server = net.createServer();
|
|
426100
|
+
server.listen(0, () => {
|
|
426101
|
+
const address = server.address();
|
|
426102
|
+
if (typeof address === "string") {
|
|
426103
|
+
resolve9(DEFAULT_HMR_PORT);
|
|
426104
|
+
return;
|
|
426105
|
+
}
|
|
426106
|
+
const port = address?.port;
|
|
426107
|
+
if (!port) {
|
|
426108
|
+
resolve9(DEFAULT_HMR_PORT);
|
|
426109
|
+
return;
|
|
426110
|
+
}
|
|
426111
|
+
server.close(() => resolve9(port));
|
|
426112
|
+
});
|
|
426113
|
+
});
|
|
426114
|
+
}
|
|
426115
|
+
function getValidFileUrl(url3, file) {
|
|
426116
|
+
return new URL(file, url3.endsWith("/") ? url3 : url3 + "/").href;
|
|
426133
426117
|
}
|
|
426134
426118
|
|
|
426135
426119
|
// ../sdk/dist/cli-replacement/dev.mjs
|
|
426120
|
+
init_cjs_shims();
|
|
426121
|
+
var import_util34 = __toESM(require_dist3(), 1);
|
|
426122
|
+
import * as child_process2 from "node:child_process";
|
|
426123
|
+
import * as fsp5 from "node:fs/promises";
|
|
426124
|
+
import path37 from "node:path";
|
|
426125
|
+
import { promisify as promisify2 } from "node:util";
|
|
426126
|
+
var import_fs_extra5 = __toESM(require_lib(), 1);
|
|
426136
426127
|
var exec5 = promisify2(child_process2.exec);
|
|
426137
426128
|
var passErrorToVSCode = (message, logger3) => {
|
|
426138
426129
|
if (message) {
|
|
@@ -426178,7 +426169,7 @@ async function installPackages(cwd, logger3) {
|
|
|
426178
426169
|
}
|
|
426179
426170
|
async function dev(options9) {
|
|
426180
426171
|
const logger3 = getLogger2(options9.logger);
|
|
426181
|
-
const { cwd, pidfilePath, devServerPort, downloadFirst, uploadFirst, skipSync, applicationConfig } = options9;
|
|
426172
|
+
const { cwd, pidfilePath, devServerPort, downloadFirst, uploadFirst, skipSync, applicationConfig, skipAutoUpgrade } = options9;
|
|
426182
426173
|
const cliVersion = await getCurrentCliVersion();
|
|
426183
426174
|
const libraryVersion = await getCurrentLibraryVersionWithoutPM();
|
|
426184
426175
|
logger3.info(`Running command: ${options9.superblocksPath} dev${options9.uploadFirst ? " --upload-first" : ""}${options9.downloadFirst ? " --download-first" : ""} with baseUrl: ${applicationConfig?.superblocksBaseUrl}, cliVersion: ${cliVersion}, libraryVersion: ${libraryVersion?.alias} ${libraryVersion?.version}`);
|
|
@@ -426220,7 +426211,7 @@ async function dev(options9) {
|
|
|
426220
426211
|
if (lockService) {
|
|
426221
426212
|
try {
|
|
426222
426213
|
await lockService.acquireLock();
|
|
426223
|
-
if (!process.env.PACKAGE_SUFFIX || process.env.PACKAGE_SUFFIX === "") {
|
|
426214
|
+
if (!process.env.PACKAGE_SUFFIX || process.env.PACKAGE_SUFFIX === "" || !skipAutoUpgrade) {
|
|
426224
426215
|
await checkVersionsAndUpgrade(lockService, applicationConfig);
|
|
426225
426216
|
}
|
|
426226
426217
|
} catch (error) {
|
|
@@ -430348,6 +430339,7 @@ var SetSuperblocksConfig = class _SetSuperblocksConfig extends Command2 {
|
|
|
430348
430339
|
|
|
430349
430340
|
// src/commands/dev.mts
|
|
430350
430341
|
init_cjs_shims();
|
|
430342
|
+
import * as child_process3 from "node:child_process";
|
|
430351
430343
|
import { resolve as resolve8 } from "node:path";
|
|
430352
430344
|
import { Flags as Flags4 } from "@oclif/core";
|
|
430353
430345
|
|
|
@@ -430415,8 +430407,30 @@ var Dev = class _Dev extends AuthenticatedApplicationV2Command {
|
|
|
430415
430407
|
description: "Download from Superblocks before starting, can overwrite your local files",
|
|
430416
430408
|
default: false,
|
|
430417
430409
|
aliases: ["d"]
|
|
430410
|
+
}),
|
|
430411
|
+
child: Flags4.boolean({
|
|
430412
|
+
name: "child",
|
|
430413
|
+
description: "Run the dev server as a child process",
|
|
430414
|
+
default: false,
|
|
430415
|
+
hidden: true
|
|
430416
|
+
// We don't want to expose this flag to the user. This is the child process that runs the dev server under the wrapper of the parent process
|
|
430417
|
+
}),
|
|
430418
|
+
"skip-auto-upgrade": Flags4.boolean({
|
|
430419
|
+
name: "skip-auto-upgrade",
|
|
430420
|
+
// This is added to avoid retrying the auto-upgrade again if it failed the first time
|
|
430421
|
+
description: "Skip automatic upgrades",
|
|
430422
|
+
default: false,
|
|
430423
|
+
hidden: true
|
|
430424
|
+
// We don't want to expose this flag. This is used for a second dev server start after an attempt to upgrade
|
|
430418
430425
|
})
|
|
430419
430426
|
};
|
|
430427
|
+
async init() {
|
|
430428
|
+
const { flags } = await this.parse(_Dev);
|
|
430429
|
+
if (flags["child"]) {
|
|
430430
|
+
await super.init();
|
|
430431
|
+
showKoalaGreeting();
|
|
430432
|
+
}
|
|
430433
|
+
}
|
|
430420
430434
|
async run() {
|
|
430421
430435
|
try {
|
|
430422
430436
|
const { flags } = await this.parse(_Dev);
|
|
@@ -430425,26 +430439,72 @@ var Dev = class _Dev extends AuthenticatedApplicationV2Command {
|
|
|
430425
430439
|
"This command requires either the --upload-first or --download-first flag"
|
|
430426
430440
|
);
|
|
430427
430441
|
}
|
|
430428
|
-
|
|
430429
|
-
|
|
430430
|
-
|
|
430431
|
-
|
|
430432
|
-
|
|
430433
|
-
|
|
430434
|
-
|
|
430435
|
-
|
|
430436
|
-
|
|
430437
|
-
|
|
430438
|
-
|
|
430439
|
-
|
|
430440
|
-
|
|
430441
|
-
|
|
430442
|
-
|
|
430443
|
-
|
|
430444
|
-
|
|
430445
|
-
|
|
430446
|
-
|
|
430447
|
-
|
|
430442
|
+
if (flags["child"]) {
|
|
430443
|
+
const applicationConfig = {
|
|
430444
|
+
superblocksBaseUrl: this.getSdk().superblocksBaseUrl,
|
|
430445
|
+
token: this.getSdk().token,
|
|
430446
|
+
id: this.applicationConfig.id,
|
|
430447
|
+
// TODO(george): when we support revision control, we should use the proper branch name here
|
|
430448
|
+
branchName: DEFAULT_BRANCH
|
|
430449
|
+
};
|
|
430450
|
+
await dev({
|
|
430451
|
+
applicationConfig,
|
|
430452
|
+
cwd: process.cwd(),
|
|
430453
|
+
pidfilePath: flags.pidfile,
|
|
430454
|
+
devServerPort: flags.port,
|
|
430455
|
+
uploadFirst: flags["upload-first"],
|
|
430456
|
+
downloadFirst: flags["download-first"],
|
|
430457
|
+
superblocksPath: resolve8(process.argv[1]),
|
|
430458
|
+
logger: (message) => {
|
|
430459
|
+
this.log(message);
|
|
430460
|
+
},
|
|
430461
|
+
skipAutoUpgrade: flags["skip-auto-upgrade"]
|
|
430462
|
+
});
|
|
430463
|
+
} else {
|
|
430464
|
+
const args = process.argv.slice(1);
|
|
430465
|
+
let child = child_process3.spawn(
|
|
430466
|
+
process.execPath,
|
|
430467
|
+
[...args, "--child"],
|
|
430468
|
+
{
|
|
430469
|
+
detached: false,
|
|
430470
|
+
stdio: "inherit",
|
|
430471
|
+
env: process.env
|
|
430472
|
+
}
|
|
430473
|
+
);
|
|
430474
|
+
const setupSignalHandlers = (childProcess) => {
|
|
430475
|
+
process.on("SIGINT", () => childProcess.kill("SIGINT"));
|
|
430476
|
+
process.on("SIGHUP", () => childProcess.kill("SIGHUP"));
|
|
430477
|
+
process.on("SIGTERM", () => childProcess.kill("SIGTERM"));
|
|
430478
|
+
process.on("SIGQUIT", () => childProcess.kill("SIGQUIT"));
|
|
430479
|
+
process.on("SIGABRT", () => childProcess.kill("SIGABRT"));
|
|
430480
|
+
};
|
|
430481
|
+
setupSignalHandlers(child);
|
|
430482
|
+
child.on("exit", (code, signal) => {
|
|
430483
|
+
if (code === AUTO_UPGRADE_EXIT_CODE) {
|
|
430484
|
+
this.log("Dev server exited due to automatic upgrade");
|
|
430485
|
+
const baseArgs = args.filter((arg) => arg !== "--child");
|
|
430486
|
+
child = child_process3.spawn(
|
|
430487
|
+
process.execPath,
|
|
430488
|
+
[...baseArgs, "--child", "--skip-auto-upgrade"],
|
|
430489
|
+
{
|
|
430490
|
+
detached: false,
|
|
430491
|
+
stdio: "inherit",
|
|
430492
|
+
env: process.env
|
|
430493
|
+
}
|
|
430494
|
+
);
|
|
430495
|
+
setupSignalHandlers(child);
|
|
430496
|
+
} else if (code === 0) {
|
|
430497
|
+
this.log("Dev server exited successfully");
|
|
430498
|
+
} else {
|
|
430499
|
+
this.error(
|
|
430500
|
+
`Dev server exited with code ${code} and signal ${signal}`
|
|
430501
|
+
);
|
|
430502
|
+
}
|
|
430503
|
+
if (code !== AUTO_UPGRADE_EXIT_CODE) {
|
|
430504
|
+
process.exit(code);
|
|
430505
|
+
}
|
|
430506
|
+
});
|
|
430507
|
+
}
|
|
430448
430508
|
} catch (error) {
|
|
430449
430509
|
this.error(error.message);
|
|
430450
430510
|
}
|
package/oclif.manifest.json
CHANGED
|
@@ -320,6 +320,20 @@
|
|
|
320
320
|
"name": "download-first",
|
|
321
321
|
"allowNo": false,
|
|
322
322
|
"type": "boolean"
|
|
323
|
+
},
|
|
324
|
+
"child": {
|
|
325
|
+
"description": "Run the dev server as a child process",
|
|
326
|
+
"hidden": true,
|
|
327
|
+
"name": "child",
|
|
328
|
+
"allowNo": false,
|
|
329
|
+
"type": "boolean"
|
|
330
|
+
},
|
|
331
|
+
"skip-auto-upgrade": {
|
|
332
|
+
"description": "Skip automatic upgrades",
|
|
333
|
+
"hidden": true,
|
|
334
|
+
"name": "skip-auto-upgrade",
|
|
335
|
+
"allowNo": false,
|
|
336
|
+
"type": "boolean"
|
|
323
337
|
}
|
|
324
338
|
},
|
|
325
339
|
"hasDynamicHelp": false,
|
|
@@ -571,5 +585,5 @@
|
|
|
571
585
|
"strict": true
|
|
572
586
|
}
|
|
573
587
|
},
|
|
574
|
-
"version": "2.0.3-next.
|
|
588
|
+
"version": "2.0.3-next.210"
|
|
575
589
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/cli",
|
|
3
|
-
"version": "2.0.3-next.
|
|
3
|
+
"version": "2.0.3-next.210",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Official Superblocks CLI",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@eslint/js": "^9.16.0",
|
|
44
44
|
"@oclif/test": "^4.1.11",
|
|
45
|
-
"@superblocksteam/sdk": "2.0.3-next.
|
|
45
|
+
"@superblocksteam/sdk": "2.0.3-next.210",
|
|
46
46
|
"@superblocksteam/shared": "0.9160.0",
|
|
47
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
47
|
+
"@superblocksteam/util": "2.0.3-next.210",
|
|
48
48
|
"@types/babel__core": "^7.20.0",
|
|
49
49
|
"@types/chai": "^4",
|
|
50
50
|
"@types/fs-extra": "^11.0.1",
|