@kizenapps/cli 0.9.0 → 0.10.0
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/index.js +101 -33
- package/dist/index.js.map +1 -1
- package/dist/viewer/assets/AppDetailPage-ObugMPkn.js +1 -0
- package/dist/viewer/assets/BootstrapContext-CEWgv2oI.js +1 -0
- package/dist/viewer/assets/Card-BSwG5koM.js +1 -0
- package/dist/viewer/assets/ConfigurationPage-SnFNzZgJ.js +1 -0
- package/dist/viewer/assets/CredentialsContext-BLZX6RwF.js +1 -0
- package/dist/viewer/assets/DevSidebar-BiROAoKF.js +1 -0
- package/dist/viewer/assets/SandboxPage-BFVVe-i3.js +1 -0
- package/dist/viewer/assets/SidebarContext-Byo6PYOF.js +1 -0
- package/dist/viewer/assets/VersionsPage-DOd2Hv8M.js +1 -0
- package/dist/viewer/assets/configStorage-Bb-A9Nvj.js +14 -0
- package/dist/viewer/assets/{fa-core-BU3ZZt7W.js → fa-core-mHW_3JUd.js} +1 -1
- package/dist/viewer/assets/index-B-4D4w_w.js +5 -0
- package/dist/viewer/assets/index-D6Un_G7k.css +2 -0
- package/dist/viewer/assets/{react-C90crogl.js → react-D_K8ni3_.js} +1 -1
- package/dist/viewer/assets/validIcons-TcFXfn-E.js +1 -0
- package/dist/viewer/index.html +8 -5
- package/package.json +5 -1
- package/dist/chromium-extension/manifest.json +0 -17
- package/dist/chromium-extension/rules.json +0 -17
- package/dist/chunk-4OYGMEFM.js +0 -3675
- package/dist/chunk-4OYGMEFM.js.map +0 -1
- package/dist/chunk-4Z6S6LWP.js +0 -6134
- package/dist/chunk-4Z6S6LWP.js.map +0 -1
- package/dist/chunk-5WPGAZLP.js +0 -6136
- package/dist/chunk-5WPGAZLP.js.map +0 -1
- package/dist/chunk-6XGFZ4W5.js +0 -3673
- package/dist/chunk-6XGFZ4W5.js.map +0 -1
- package/dist/chunk-HJPLDI45.js +0 -6134
- package/dist/chunk-HJPLDI45.js.map +0 -1
- package/dist/chunk-KMKDY2I6.js +0 -46
- package/dist/chunk-KMKDY2I6.js.map +0 -1
- package/dist/chunk-LSHHXCC6.js +0 -3639
- package/dist/chunk-LSHHXCC6.js.map +0 -1
- package/dist/chunk-NNDSADQG.js +0 -3641
- package/dist/chunk-NNDSADQG.js.map +0 -1
- package/dist/chunk-SEGVTWSK.js +0 -44
- package/dist/chunk-SEGVTWSK.js.map +0 -1
- package/dist/chunk-ZWE3DS7E.js +0 -39
- package/dist/chunk-ZWE3DS7E.js.map +0 -1
- package/dist/devtools-HNR7DD7Q.js +0 -68
- package/dist/devtools-HNR7DD7Q.js.map +0 -1
- package/dist/devtools-HW3UQAHH.js +0 -69
- package/dist/devtools-HW3UQAHH.js.map +0 -1
- package/dist/devtools-KXIXZGBY.js +0 -64
- package/dist/devtools-KXIXZGBY.js.map +0 -1
- package/dist/devtools-PDXM3L35.js +0 -67
- package/dist/devtools-PDXM3L35.js.map +0 -1
- package/dist/devtools-SDEASRYI.js +0 -66
- package/dist/devtools-SDEASRYI.js.map +0 -1
- package/dist/devtools-XBEEGBQ4.js +0 -66
- package/dist/devtools-XBEEGBQ4.js.map +0 -1
- package/dist/dist-4P5P64FK.js +0 -8474
- package/dist/dist-4P5P64FK.js.map +0 -1
- package/dist/dist-AVHDSU4X.js +0 -137
- package/dist/dist-AVHDSU4X.js.map +0 -1
- package/dist/dist-C3F6UOWF.js +0 -8472
- package/dist/dist-C3F6UOWF.js.map +0 -1
- package/dist/dist-NUJOSN7W.js +0 -8472
- package/dist/dist-NUJOSN7W.js.map +0 -1
- package/dist/dist-QHDMIBVE.js +0 -135
- package/dist/dist-QHDMIBVE.js.map +0 -1
- package/dist/dist-ZIZQOSY3.js +0 -135
- package/dist/dist-ZIZQOSY3.js.map +0 -1
- package/dist/electron/icon.png +0 -0
- package/dist/electron/main.js +0 -201
- package/dist/electron/main.js.map +0 -1
- package/dist/electron/preload.cjs +0 -9
- package/dist/gzip-size-K37OQCQ2.js +0 -137
- package/dist/gzip-size-K37OQCQ2.js.map +0 -1
- package/dist/gzip-size-QRGIYYEQ.js +0 -137
- package/dist/gzip-size-QRGIYYEQ.js.map +0 -1
- package/dist/gzip-size-SHZBT5GU.js +0 -139
- package/dist/gzip-size-SHZBT5GU.js.map +0 -1
- package/dist/nwjs/shell/icon.png +0 -0
- package/dist/nwjs/shell/index.html +0 -200
- package/dist/nwjs/shell/package.json +0 -16
- package/dist/viewer/assets/fa-core-DAYjf9Yn.js +0 -558
- package/dist/viewer/assets/fa-core-Ff8SZmm_.js +0 -558
- package/dist/viewer/assets/index-47Vh9MH0.js +0 -17
- package/dist/viewer/assets/index-6uunWX8M.js +0 -17
- package/dist/viewer/assets/index-B48OpZHg.js +0 -17
- package/dist/viewer/assets/index-BFfw7eD7.js +0 -17
- package/dist/viewer/assets/index-BFyUUb06.js +0 -17
- package/dist/viewer/assets/index-BL-Yu7Bf.js +0 -17
- package/dist/viewer/assets/index-BUmv8vz7.js +0 -17
- package/dist/viewer/assets/index-BZ4HmEz8.js +0 -17
- package/dist/viewer/assets/index-BZIXccTd.js +0 -17
- package/dist/viewer/assets/index-Bk9hnfnO.js +0 -17
- package/dist/viewer/assets/index-C0SIHm9A.js +0 -17
- package/dist/viewer/assets/index-CDd-WK6Y.js +0 -17
- package/dist/viewer/assets/index-CDxQqP40.js +0 -17
- package/dist/viewer/assets/index-CGJzvpL5.js +0 -17
- package/dist/viewer/assets/index-CIarX3Lt.js +0 -17
- package/dist/viewer/assets/index-CIfVP45E.js +0 -17
- package/dist/viewer/assets/index-CJeb7uFu.css +0 -2
- package/dist/viewer/assets/index-CbwLb2S_.js +0 -17
- package/dist/viewer/assets/index-CsfWgoID.js +0 -17
- package/dist/viewer/assets/index-CvWmkIY5.js +0 -17
- package/dist/viewer/assets/index-Cy-weKfG.css +0 -2
- package/dist/viewer/assets/index-Cym12l2M.js +0 -17
- package/dist/viewer/assets/index-D0W0oANg.js +0 -17
- package/dist/viewer/assets/index-DCPtqd3W.js +0 -17
- package/dist/viewer/assets/index-DF_zYdLw.js +0 -17
- package/dist/viewer/assets/index-DGqxQcUx.js +0 -17
- package/dist/viewer/assets/index-DK0OVb7V.js +0 -17
- package/dist/viewer/assets/index-DKjVFdzw.js +0 -17
- package/dist/viewer/assets/index-DLhj0I_2.js +0 -17
- package/dist/viewer/assets/index-DPS_ZjbM.js +0 -17
- package/dist/viewer/assets/index-DSbHkhcS.js +0 -17
- package/dist/viewer/assets/index-DTbmNtEU.js +0 -17
- package/dist/viewer/assets/index-DUYd6RpI.js +0 -17
- package/dist/viewer/assets/index-DZwYe1wZ.css +0 -2
- package/dist/viewer/assets/index-DkRokbYc.js +0 -17
- package/dist/viewer/assets/index-DtOWzkR5.js +0 -17
- package/dist/viewer/assets/index-DuvXujkm.js +0 -17
- package/dist/viewer/assets/index-Dv0mX-oM.js +0 -17
- package/dist/viewer/assets/index-DyXisBY9.css +0 -2
- package/dist/viewer/assets/index-Nm1xKWTO.js +0 -17
- package/dist/viewer/assets/index-ZBdAq6dF.js +0 -17
- package/dist/viewer/assets/index-ZOxL_JJZ.js +0 -17
- package/dist/viewer/assets/index-kMMOwjlY.js +0 -17
- package/dist/viewer/assets/index-ov2oU6RI.js +0 -17
- package/dist/viewer/assets/index-uF6u0kT8.js +0 -17
- package/dist/viewer/assets/index-xbDHMSaa.css +0 -2
- package/dist/viewer/assets/react-D7PmSb6e.js +0 -9
- package/dist/viewer/assets/react-DIjeYlvh.js +0 -9
- /package/dist/viewer/assets/{fa-pro-icons-D4afj0tU.js → fa-pro-icons-CIQGXozY.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -259,30 +259,44 @@ function isKizenUrl(url) {
|
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
261
|
function parseProp(prop) {
|
|
262
|
-
if (prop.type === "number")
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
if (prop.type === "
|
|
262
|
+
if (prop.type === "number") {
|
|
263
|
+
return Number(prop.value);
|
|
264
|
+
}
|
|
265
|
+
if (prop.type === "boolean") {
|
|
266
|
+
return prop.value === "true";
|
|
267
|
+
}
|
|
268
|
+
if (prop.type === "undefined") {
|
|
269
|
+
return void 0;
|
|
270
|
+
}
|
|
271
|
+
if (prop.type === "object" && prop.value === "null") {
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
266
274
|
if (prop.type === "object" && prop.valuePreview) {
|
|
267
275
|
const { valuePreview } = prop;
|
|
268
276
|
if (valuePreview.subtype === "array") {
|
|
269
277
|
return valuePreview.properties.filter((p) => /^\d+$/.test(p.name)).sort((a, b) => parseInt(a.name) - parseInt(b.name)).map(parseProp);
|
|
270
278
|
}
|
|
271
279
|
const obj = {};
|
|
272
|
-
for (const p of valuePreview.properties)
|
|
280
|
+
for (const p of valuePreview.properties) {
|
|
281
|
+
obj[p.name] = parseProp(p);
|
|
282
|
+
}
|
|
273
283
|
return obj;
|
|
274
284
|
}
|
|
275
285
|
return prop.value ?? `[${prop.type}]`;
|
|
276
286
|
}
|
|
277
287
|
function serializeArg(arg) {
|
|
278
|
-
if (arg.value !== void 0)
|
|
288
|
+
if (arg.value !== void 0) {
|
|
289
|
+
return arg.value;
|
|
290
|
+
}
|
|
279
291
|
if (arg.preview) {
|
|
280
292
|
const { preview } = arg;
|
|
281
293
|
if (preview.subtype === "array") {
|
|
282
294
|
return preview.properties.filter((p) => /^\d+$/.test(p.name)).sort((a, b) => parseInt(a.name) - parseInt(b.name)).map(parseProp);
|
|
283
295
|
}
|
|
284
296
|
const obj = {};
|
|
285
|
-
for (const prop of preview.properties)
|
|
297
|
+
for (const prop of preview.properties) {
|
|
298
|
+
obj[prop.name] = parseProp(prop);
|
|
299
|
+
}
|
|
286
300
|
return obj;
|
|
287
301
|
}
|
|
288
302
|
return arg.description ?? `[${arg.type}]`;
|
|
@@ -296,7 +310,9 @@ async function serializeArgAsync(client, arg) {
|
|
|
296
310
|
returnByValue: true
|
|
297
311
|
});
|
|
298
312
|
const val = result.result.value;
|
|
299
|
-
if (typeof val === "string")
|
|
313
|
+
if (typeof val === "string") {
|
|
314
|
+
return JSON.parse(val);
|
|
315
|
+
}
|
|
300
316
|
} catch {
|
|
301
317
|
}
|
|
302
318
|
}
|
|
@@ -313,9 +329,9 @@ async function installDockIcon(client) {
|
|
|
313
329
|
async function launchChromeViewer(opts) {
|
|
314
330
|
mkdirSync(opts.userDataDir, { recursive: true });
|
|
315
331
|
const chrome = await launch({
|
|
316
|
-
startingUrl: `http://localhost:${opts.port}`,
|
|
332
|
+
startingUrl: `http://localhost:${String(opts.port)}`,
|
|
317
333
|
chromeFlags: [
|
|
318
|
-
`--app=http://localhost:${opts.port}`,
|
|
334
|
+
`--app=http://localhost:${String(opts.port)}`,
|
|
319
335
|
"--no-first-run",
|
|
320
336
|
"--no-default-browser-check",
|
|
321
337
|
"--disable-extensions"
|
|
@@ -326,7 +342,7 @@ async function launchChromeViewer(opts) {
|
|
|
326
342
|
});
|
|
327
343
|
let client = null;
|
|
328
344
|
let cookieTimer = null;
|
|
329
|
-
|
|
345
|
+
const cdpPort = chrome.port;
|
|
330
346
|
for (let attempt = 0; attempt < 10; attempt++) {
|
|
331
347
|
await new Promise((r) => setTimeout(r, 300));
|
|
332
348
|
try {
|
|
@@ -335,14 +351,18 @@ async function launchChromeViewer(opts) {
|
|
|
335
351
|
} catch {
|
|
336
352
|
if (attempt === 9) {
|
|
337
353
|
return {
|
|
338
|
-
kill: () =>
|
|
354
|
+
kill: () => {
|
|
355
|
+
chrome.kill();
|
|
356
|
+
}
|
|
339
357
|
};
|
|
340
358
|
}
|
|
341
359
|
}
|
|
342
360
|
}
|
|
343
361
|
if (!client) {
|
|
344
362
|
return {
|
|
345
|
-
kill: () =>
|
|
363
|
+
kill: () => {
|
|
364
|
+
chrome.kill();
|
|
365
|
+
}
|
|
346
366
|
};
|
|
347
367
|
}
|
|
348
368
|
const c = client;
|
|
@@ -357,13 +377,17 @@ async function launchChromeViewer(opts) {
|
|
|
357
377
|
void (async () => {
|
|
358
378
|
const params = rawParams;
|
|
359
379
|
const { requestId, request, responseHeaders, responseStatusCode } = params;
|
|
360
|
-
const url = request
|
|
380
|
+
const url = request.url;
|
|
361
381
|
const filtered = [];
|
|
362
382
|
for (const h of responseHeaders ?? []) {
|
|
363
|
-
if (CSP_HEADERS.has(h.name.toLowerCase()))
|
|
383
|
+
if (CSP_HEADERS.has(h.name.toLowerCase())) {
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
364
386
|
if (h.name.toLowerCase() === "set-cookie" && isKizenUrl(url)) {
|
|
365
387
|
const patched = h.value.split("\n").map((cookie) => {
|
|
366
|
-
if (!/SameSite=/i.test(cookie))
|
|
388
|
+
if (!/SameSite=/i.test(cookie)) {
|
|
389
|
+
return cookie + "; SameSite=None; Secure";
|
|
390
|
+
}
|
|
367
391
|
return cookie.replace(/SameSite=\w+/i, "SameSite=None");
|
|
368
392
|
}).join("\n");
|
|
369
393
|
filtered.push({ name: h.name, value: patched });
|
|
@@ -393,8 +417,12 @@ async function launchChromeViewer(opts) {
|
|
|
393
417
|
try {
|
|
394
418
|
const { cookies } = await c.Network.getAllCookies();
|
|
395
419
|
for (const cookie of cookies) {
|
|
396
|
-
if (!isKizenUrl(`https://${cookie.domain ?? ""}`))
|
|
397
|
-
|
|
420
|
+
if (!isKizenUrl(`https://${cookie.domain ?? ""}`)) {
|
|
421
|
+
continue;
|
|
422
|
+
}
|
|
423
|
+
if (cookie.sameSite === "None") {
|
|
424
|
+
continue;
|
|
425
|
+
}
|
|
398
426
|
const raw = cookie.domain ?? "";
|
|
399
427
|
const bare = raw.startsWith(".") ? raw.slice(1) : raw;
|
|
400
428
|
await c.Network.setCookie({
|
|
@@ -437,7 +465,9 @@ async function launchChromeViewer(opts) {
|
|
|
437
465
|
c.on("Runtime.consoleAPICalled", (rawParams) => {
|
|
438
466
|
void (async () => {
|
|
439
467
|
const { type, args } = rawParams;
|
|
440
|
-
if (args[0]?.type === "string" && String(args[0].value).includes("Chrome Security"))
|
|
468
|
+
if (args[0]?.type === "string" && String(args[0].value).includes("Chrome Security")) {
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
441
471
|
const level = type === "warning" ? "warn" : ["log", "warn", "error", "info"].includes(type) ? type : "log";
|
|
442
472
|
const serialized = await Promise.all(args.map((arg) => serializeArgAsync(c, arg)));
|
|
443
473
|
opts.broadcast({ type: "console-message", level, args: serialized });
|
|
@@ -445,7 +475,7 @@ async function launchChromeViewer(opts) {
|
|
|
445
475
|
});
|
|
446
476
|
});
|
|
447
477
|
const kill = () => {
|
|
448
|
-
|
|
478
|
+
clearInterval(cookieTimer);
|
|
449
479
|
try {
|
|
450
480
|
void c.close();
|
|
451
481
|
} catch {
|
|
@@ -456,8 +486,12 @@ async function launchChromeViewer(opts) {
|
|
|
456
486
|
}
|
|
457
487
|
|
|
458
488
|
// src/lib/proxyCache.ts
|
|
459
|
-
function createProxyCache() {
|
|
489
|
+
function createProxyCache(options = {}) {
|
|
460
490
|
const cache = /* @__PURE__ */ new Map();
|
|
491
|
+
const { onChange } = options;
|
|
492
|
+
const emitChange = () => {
|
|
493
|
+
onChange?.(cache.size);
|
|
494
|
+
};
|
|
461
495
|
return {
|
|
462
496
|
get(key, fetcher) {
|
|
463
497
|
const existing = cache.get(key);
|
|
@@ -475,13 +509,22 @@ function createProxyCache() {
|
|
|
475
509
|
};
|
|
476
510
|
}).catch((error) => {
|
|
477
511
|
cache.delete(key);
|
|
512
|
+
emitChange();
|
|
478
513
|
throw error;
|
|
479
514
|
});
|
|
480
515
|
cache.set(key, pending);
|
|
481
|
-
|
|
516
|
+
emitChange();
|
|
517
|
+
return pending.then((response) => {
|
|
518
|
+
if (response.status >= 400) {
|
|
519
|
+
cache.delete(key);
|
|
520
|
+
emitChange();
|
|
521
|
+
}
|
|
522
|
+
return { response, fromCache: false };
|
|
523
|
+
});
|
|
482
524
|
},
|
|
483
525
|
clear() {
|
|
484
526
|
cache.clear();
|
|
527
|
+
emitChange();
|
|
485
528
|
}
|
|
486
529
|
};
|
|
487
530
|
}
|
|
@@ -982,8 +1025,8 @@ async function fileExists(filePath) {
|
|
|
982
1025
|
return false;
|
|
983
1026
|
}
|
|
984
1027
|
}
|
|
985
|
-
function createRequestHandler(viewerPath, createServerLog, createProxyLog, credentialsRef, activeProfileRef, outputDir, broadcast) {
|
|
986
|
-
const proxyCache = createProxyCache();
|
|
1028
|
+
function createRequestHandler(viewerPath, createServerLog, createProxyLog, credentialsRef, activeProfileRef, outputDir, broadcast, onProxyCacheChange) {
|
|
1029
|
+
const proxyCache = createProxyCache({ onChange: onProxyCacheChange });
|
|
987
1030
|
return (req, res) => {
|
|
988
1031
|
void (async () => {
|
|
989
1032
|
const url = req.url ?? "/";
|
|
@@ -1150,6 +1193,9 @@ var DevUI = ({
|
|
|
1150
1193
|
const [buildError, setBuildError] = useState3(null);
|
|
1151
1194
|
const [lastBuilt, setLastBuilt] = useState3(null);
|
|
1152
1195
|
const [wsClientCount, setWsClientCount] = useState3(0);
|
|
1196
|
+
const [proxyCacheSize, setProxyCacheSize] = useState3(0);
|
|
1197
|
+
const [proxyCacheHits, setProxyCacheHits] = useState3(0);
|
|
1198
|
+
const [proxyCacheMisses, setProxyCacheMisses] = useState3(0);
|
|
1153
1199
|
const buildingRef = useRef(false);
|
|
1154
1200
|
const viewerLaunchedRef = useRef(false);
|
|
1155
1201
|
const chromeHandleRef = useRef(null);
|
|
@@ -1182,7 +1228,9 @@ var DevUI = ({
|
|
|
1182
1228
|
broadcast
|
|
1183
1229
|
}).then((handle) => {
|
|
1184
1230
|
chromeHandleRef.current = handle;
|
|
1185
|
-
process.on("exit", () =>
|
|
1231
|
+
process.on("exit", () => {
|
|
1232
|
+
handle.kill();
|
|
1233
|
+
});
|
|
1186
1234
|
});
|
|
1187
1235
|
}, [port, outputDir, broadcast]);
|
|
1188
1236
|
useInput2(
|
|
@@ -1228,6 +1276,13 @@ var DevUI = ({
|
|
|
1228
1276
|
-LOG_LIMIT
|
|
1229
1277
|
)
|
|
1230
1278
|
);
|
|
1279
|
+
if (entry.kind === "request") {
|
|
1280
|
+
if (entry.fromCache) {
|
|
1281
|
+
setProxyCacheHits((n) => n + 1);
|
|
1282
|
+
} else {
|
|
1283
|
+
setProxyCacheMisses((n) => n + 1);
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1231
1286
|
broadcast({ type: "proxy-log", entry });
|
|
1232
1287
|
},
|
|
1233
1288
|
[broadcast]
|
|
@@ -1305,7 +1360,8 @@ var DevUI = ({
|
|
|
1305
1360
|
credentialsRef,
|
|
1306
1361
|
activeProfileRef,
|
|
1307
1362
|
outputDir,
|
|
1308
|
-
broadcast
|
|
1363
|
+
broadcast,
|
|
1364
|
+
setProxyCacheSize
|
|
1309
1365
|
);
|
|
1310
1366
|
const server = createServer(handler);
|
|
1311
1367
|
const wss = new WebSocketServer({ server });
|
|
@@ -1361,7 +1417,7 @@ var DevUI = ({
|
|
|
1361
1417
|
] }),
|
|
1362
1418
|
/* @__PURE__ */ jsxs3(Box4, { flexDirection: "column", children: [
|
|
1363
1419
|
/* @__PURE__ */ jsxs3(Box4, { gap: 2, marginBottom: 0, children: [
|
|
1364
|
-
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "Build" }),
|
|
1420
|
+
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "App Build" }),
|
|
1365
1421
|
buildStatus === "pending" && /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "waiting\u2026" }),
|
|
1366
1422
|
buildStatus === "building" && /* @__PURE__ */ jsxs3(Box4, { gap: 1, children: [
|
|
1367
1423
|
/* @__PURE__ */ jsx4(Spinner2, {}),
|
|
@@ -1384,7 +1440,7 @@ var DevUI = ({
|
|
|
1384
1440
|
Box4,
|
|
1385
1441
|
{
|
|
1386
1442
|
flexDirection: "column",
|
|
1387
|
-
height: LOG_DISPLAY,
|
|
1443
|
+
height: LOG_DISPLAY + 2,
|
|
1388
1444
|
borderStyle: "single",
|
|
1389
1445
|
borderColor: "gray",
|
|
1390
1446
|
overflow: "hidden",
|
|
@@ -1394,7 +1450,7 @@ var DevUI = ({
|
|
|
1394
1450
|
] }),
|
|
1395
1451
|
/* @__PURE__ */ jsxs3(Box4, { marginTop: 1, flexDirection: "column", children: [
|
|
1396
1452
|
/* @__PURE__ */ jsxs3(Box4, { gap: 2, children: [
|
|
1397
|
-
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "Server" }),
|
|
1453
|
+
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "Web Server" }),
|
|
1398
1454
|
status === "starting" && /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "starting\u2026" }),
|
|
1399
1455
|
status === "running" && /* @__PURE__ */ jsxs3(Box4, { gap: 2, children: [
|
|
1400
1456
|
/* @__PURE__ */ jsx4(Text4, { color: "green", children: "\u2713 Running" }),
|
|
@@ -1414,7 +1470,7 @@ var DevUI = ({
|
|
|
1414
1470
|
Box4,
|
|
1415
1471
|
{
|
|
1416
1472
|
flexDirection: "column",
|
|
1417
|
-
height: LOG_DISPLAY,
|
|
1473
|
+
height: LOG_DISPLAY + 2,
|
|
1418
1474
|
borderStyle: "single",
|
|
1419
1475
|
borderColor: "gray",
|
|
1420
1476
|
overflow: "hidden",
|
|
@@ -1424,14 +1480,26 @@ var DevUI = ({
|
|
|
1424
1480
|
] }),
|
|
1425
1481
|
/* @__PURE__ */ jsxs3(Box4, { marginTop: 1, flexDirection: "column", children: [
|
|
1426
1482
|
/* @__PURE__ */ jsxs3(Box4, { gap: 2, children: [
|
|
1427
|
-
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "Proxy" }),
|
|
1428
|
-
/* @__PURE__ */ jsx4(Text4, { color: "green", children: "\u2713 Active" })
|
|
1483
|
+
/* @__PURE__ */ jsx4(Text4, { bold: true, dimColor: true, children: "Network Proxy" }),
|
|
1484
|
+
/* @__PURE__ */ jsx4(Text4, { color: "green", children: "\u2713 Active" }),
|
|
1485
|
+
/* @__PURE__ */ jsxs3(Text4, { dimColor: true, children: [
|
|
1486
|
+
"\u25CF ",
|
|
1487
|
+
proxyCacheSize,
|
|
1488
|
+
" key",
|
|
1489
|
+
proxyCacheSize !== 1 ? "s" : "",
|
|
1490
|
+
" in the network cache \xB7",
|
|
1491
|
+
" ",
|
|
1492
|
+
proxyCacheHits,
|
|
1493
|
+
" hit \xB7 ",
|
|
1494
|
+
proxyCacheMisses,
|
|
1495
|
+
" miss"
|
|
1496
|
+
] })
|
|
1429
1497
|
] }),
|
|
1430
1498
|
/* @__PURE__ */ jsx4(
|
|
1431
1499
|
Box4,
|
|
1432
1500
|
{
|
|
1433
1501
|
flexDirection: "column",
|
|
1434
|
-
height: LOG_DISPLAY,
|
|
1502
|
+
height: LOG_DISPLAY + 2,
|
|
1435
1503
|
borderStyle: "single",
|
|
1436
1504
|
borderColor: "gray",
|
|
1437
1505
|
overflow: "hidden",
|