local-operator-ui 0.25.16 → 0.25.18
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/out/main/index.js +341 -26
- package/out/renderer/assets/{_basePickBy-DBhtDEGA.js → _basePickBy-Dqo9Svot.js} +1 -1
- package/out/renderer/assets/{_baseUniq-B5WxfAdh.js → _baseUniq-Bqq4bH3r.js} +1 -1
- package/out/renderer/assets/{agent-details-page-CseZi6cR.js → agent-details-page-D5Xaqf5E.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-_t-x78D_.js → agent-hub-page-Crnga1Hx.js} +1 -1
- package/out/renderer/assets/{agents-page-B6vQMI_R.js → agents-page-CXeZLL0h.js} +2 -2
- package/out/renderer/assets/{arc-Dcd3HzRZ.js → arc-ErJh4afL.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CXwTTKVn.js → architectureDiagram-IEHRJDOE-CqPUhWwU.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-dW5gyGl7.js → blockDiagram-JOT3LUYC-DGzBuOTu.js} +1 -1
- package/out/renderer/assets/browser-page-CV4u_doL.js +1 -0
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-B1fPOy-n.js → c4Diagram-VJAJSXHY-BtVyEvMI.js} +1 -1
- package/out/renderer/assets/channel-B-RyHHam.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-BjkEbeJq.js → chunk-4BMEZGHF-qHL7gFMz.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-CNdgDk-3.js → chunk-A2AXSNBT-CZdwXrGh.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-DlvJjW1D.js → chunk-AEK57VVT-D3ygkjPx.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-DUrFmr72.js → chunk-D6G4REZN-Cptud7N8.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-DVV9SVAw.js → chunk-RZ5BOZE2-BW_-DH47.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-D5KVgy3I.js → chunk-XZIHB7SX-DVBP-wVb.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-_YNlHCSJ.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-_YNlHCSJ.js +1 -0
- package/out/renderer/assets/clone-CG632oKz.js +1 -0
- package/out/renderer/assets/{compact-pagination-FBuuRrOa.js → compact-pagination-DZcKP76l.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-U2nObwi2.js → dagre-OKDRZEBW-DmDP5q7x.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-qATRbhkK.js → diagram-SSKATNLV-DXDXZp0c.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-BPEwatJH.js → diagram-VNBRO52H-BADpsVut.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-Bx5nxisD.js → erDiagram-Q7BY3M3F-S1vauM_p.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-Do8frrTh.js → flowDiagram-4HSFHLVR-TVPZdl6u.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-C_-yHBuP.js → ganttDiagram-APWFNJXF-DnrsPlnD.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-DXTe6Uqo.js → gitGraphDiagram-7IBYFJ6S-yCY1XLln.js} +1 -1
- package/out/renderer/assets/{graph-BPMdi6cQ.js → graph-BxjT2eQO.js} +1 -1
- package/out/renderer/assets/icon-BKAmSt8B.css +1 -0
- package/out/renderer/assets/{index-CV6OexwP.js → index-DkR2IOFW.js} +367 -366
- package/out/renderer/assets/{index-DlEE2Mhu.js → index-DoRFtjYI.js} +1 -1
- package/out/renderer/assets/{index-fXOo37XI.js → index-tkj2FVUw.js} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-7Bdo1-DK.js → infoDiagram-PH2N3AL5-D177FnZ4.js} +1 -1
- package/out/renderer/assets/{installer-Db9wXNQc.js → installer-DGvvq3Hw.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-C_YNwAiC.js → journeyDiagram-U35MCT3I-GPGRSxRB.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DwyjTS65.js → kanban-definition-NDS4AKOZ-BBqB4T4f.js} +1 -1
- package/out/renderer/assets/{layout-Dt9rFxLo.js → layout-CNsK6zbV.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-Ck7g4g5h.js → legacy-agents-page-C7hRXtYl.js} +1 -1
- package/out/renderer/assets/{mermaid.core-CTF22veB.js → mermaid.core-kFbnNRih.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-hIcrIbqg.js → mindmap-definition-ALO5MXBD-nj6Nb3_d.js} +1 -1
- package/out/renderer/assets/{page-header-CNu3r7Wl.js → page-header-h3oV19Xt.js} +1 -1
- package/out/renderer/assets/{parseISO-D7fb4zbb.js → parseISO-CJS8mOux.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-CgQ8RSTq.js → pieDiagram-IB7DONF6-Bnz5mDF1.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-D0u3ugSa.js → quadrantDiagram-7GDLP6J5-CccK4eoR.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-D4NPS1yb.js → radar-MK3ICKWK-CSKEMsQ0.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-6mbpShIM.js → radient-auth-buttons-BkKxA_iN.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CzyA0VGV.js → requirementDiagram-KVF5MWMF-CB_BCBB3.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-Bu3OPb5q.js → sankeyDiagram-QLVOVGJD-C_kUAgD4.js} +1 -1
- package/out/renderer/assets/{schedules-page-Z26BnqzA.js → schedules-page-Cg_9vR8_.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-C1Wt7DUe.js → sequenceDiagram-X6HHIX6F-DMVr-l3j.js} +1 -1
- package/out/renderer/assets/{settings-page-Ds1_qi2y.js → settings-page-BVf3GbZe.js} +22 -22
- package/out/renderer/assets/{stateDiagram-DGXRK772-D_Odl8sh.js → stateDiagram-DGXRK772-3fvxQXpG.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DILZ7L7Q.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-BlShpjPx.js → timeline-definition-BDJGKUSR-Cqc-O64D.js} +1 -1
- package/out/renderer/assets/{use-agent-like-mutation-DwD0kyhJ.js → use-agent-like-mutation-Da0zEmNH.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CGVDywr7.js → xychartDiagram-VJFVF3MP-DXGJHnXo.js} +1 -1
- package/out/renderer/index.html +3 -3
- package/out/renderer/installer.html +3 -3
- package/package.json +2 -2
- package/out/renderer/assets/browser-page-CbsSO9cU.js +0 -1
- package/out/renderer/assets/channel-CNQYu0Z5.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-i38CMqFy.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-i38CMqFy.js +0 -1
- package/out/renderer/assets/clone-DyOOGQU7.js +0 -1
- package/out/renderer/assets/icon-C3z02Ja7.css +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-nORq9nsg.js +0 -1
- /package/out/renderer/assets/{icon-KrVT-csH.js → icon-BIH0o0-h.js} +0 -0
package/out/main/index.js
CHANGED
|
@@ -2288,11 +2288,13 @@ const seedNamespace = "python-runtime-seed";
|
|
|
2288
2288
|
const architectures = ["arm64", "x64"];
|
|
2289
2289
|
const legacyResourceNames = ["python", "python_aarch64"];
|
|
2290
2290
|
const checkoutSeedNames = { "arm64": "python_aarch64", "x64": "python" };
|
|
2291
|
+
const machOMagics = ["cffaedfe", "cefaedfe", "feedfacf", "feedface", "cafebabe", "bebafeca"];
|
|
2291
2292
|
const BUNDLED_PYTHON_LAYOUT = {
|
|
2292
2293
|
seedNamespace,
|
|
2293
2294
|
architectures,
|
|
2294
2295
|
legacyResourceNames,
|
|
2295
|
-
checkoutSeedNames
|
|
2296
|
+
checkoutSeedNames,
|
|
2297
|
+
machOMagics
|
|
2296
2298
|
};
|
|
2297
2299
|
const PENDING_INSTALL_MARKER_FILE = "pending-update-install.json";
|
|
2298
2300
|
const INSTALL_DISK_SLACK_BYTES = 256 * 1024 * 1024;
|
|
@@ -4507,6 +4509,7 @@ const PYVENV_HOME$1 = /^home\s*=\s*(.+)$/m;
|
|
|
4507
4509
|
const LOCK_OWNER = /^\s*\d+\s*$/;
|
|
4508
4510
|
const LEGACY_BUNDLE_PYTHON_PATH = /\.app\/Contents\/Resources\/python(?:_aarch64)?\//;
|
|
4509
4511
|
const PYTHON_SEED_NAMESPACE = BUNDLED_PYTHON_LAYOUT.seedNamespace;
|
|
4512
|
+
const MACH_O_MAGICS = new Set(BUNDLED_PYTHON_LAYOUT.machOMagics);
|
|
4510
4513
|
const FORMAT = 1;
|
|
4511
4514
|
const READY = "environment-ready.json";
|
|
4512
4515
|
const POINTER = "selected-environment.json";
|
|
@@ -4621,15 +4624,7 @@ async function verifyMachO(root, manifest) {
|
|
|
4621
4624
|
} finally {
|
|
4622
4625
|
fs.closeSync(fd);
|
|
4623
4626
|
}
|
|
4624
|
-
if (!
|
|
4625
|
-
"cffaedfe",
|
|
4626
|
-
"cefaedfe",
|
|
4627
|
-
"feedfacf",
|
|
4628
|
-
"feedface",
|
|
4629
|
-
"cafebabe",
|
|
4630
|
-
"bebafeca"
|
|
4631
|
-
].includes(magic.toString("hex")))
|
|
4632
|
-
continue;
|
|
4627
|
+
if (!MACH_O_MAGICS.has(magic.toString("hex"))) continue;
|
|
4633
4628
|
binaries++;
|
|
4634
4629
|
await execute("/usr/bin/codesign", ["--verify", "--strict", path2], {
|
|
4635
4630
|
timeout: 3e4
|
|
@@ -15239,6 +15234,128 @@ function rememberPickedDirectory(kind, filePaths, directoryPicked = false) {
|
|
|
15239
15234
|
if (!first) return;
|
|
15240
15235
|
lastPickedDirectory.set(kind, directoryPicked ? first : path$1.dirname(first));
|
|
15241
15236
|
}
|
|
15237
|
+
const CHROMIUM_TRANSPORT_CODES = [
|
|
15238
|
+
"ERR_INTERNET_DISCONNECTED",
|
|
15239
|
+
"ERR_NETWORK_CHANGED",
|
|
15240
|
+
"ERR_NAME_NOT_RESOLVED",
|
|
15241
|
+
"ERR_TIMED_OUT",
|
|
15242
|
+
"ERR_CONNECTION_RESET",
|
|
15243
|
+
"ERR_CONNECTION_REFUSED",
|
|
15244
|
+
"ERR_CONNECTION_CLOSED",
|
|
15245
|
+
"ERR_CONNECTION_FAILED",
|
|
15246
|
+
"ERR_CONNECTION_TIMED_OUT",
|
|
15247
|
+
"ERR_ADDRESS_UNREACHABLE",
|
|
15248
|
+
"ERR_NETWORK_IO_SUSPENDED",
|
|
15249
|
+
"ERR_PROXY_CONNECTION_FAILED"
|
|
15250
|
+
];
|
|
15251
|
+
const NODE_ERRNO_CODES = [
|
|
15252
|
+
"ENOTFOUND",
|
|
15253
|
+
"EAI_AGAIN",
|
|
15254
|
+
"ETIMEDOUT",
|
|
15255
|
+
"ECONNRESET",
|
|
15256
|
+
"ECONNREFUSED",
|
|
15257
|
+
"EHOSTUNREACH",
|
|
15258
|
+
"ENETUNREACH",
|
|
15259
|
+
"ENETDOWN",
|
|
15260
|
+
"ENETRESET",
|
|
15261
|
+
"ECONNABORTED",
|
|
15262
|
+
"EPIPE"
|
|
15263
|
+
];
|
|
15264
|
+
const ENGINE_TRANSPORT_FAILURES = [
|
|
15265
|
+
"Failed to fetch",
|
|
15266
|
+
"Load failed",
|
|
15267
|
+
"NetworkError when attempting to fetch resource."
|
|
15268
|
+
];
|
|
15269
|
+
const CHROMIUM_SET = new Set(CHROMIUM_TRANSPORT_CODES);
|
|
15270
|
+
const CLAUSE_END = /[:\-\u2014\n]$/;
|
|
15271
|
+
const CLAUSE_START = /^[:\n]/;
|
|
15272
|
+
const CLAUSE_BOUNDARY = /[:\uff1a\n\u2014]| - /g;
|
|
15273
|
+
const LEADING_ERROR_PREFIXES = /^(?:\s*Error:\s*)+/;
|
|
15274
|
+
const EMBEDDED_ERROR_PREFIX = /:\s+Error:\s+/g;
|
|
15275
|
+
const CHROMIUM_CODE_PATTERN = /\b(?:net::)?(ERR_[A-Z0-9_]+)\b/g;
|
|
15276
|
+
const NODE_ERRNO_PATTERNS = NODE_ERRNO_CODES.map((code) => ({
|
|
15277
|
+
code,
|
|
15278
|
+
pattern: new RegExp(`\\b${code}\\b`)
|
|
15279
|
+
}));
|
|
15280
|
+
function isClause(message, start, length) {
|
|
15281
|
+
const before = message.slice(0, start).trimEnd();
|
|
15282
|
+
const after = message.slice(start + length).trimStart();
|
|
15283
|
+
const beforeIsBoundary = before === "" || CLAUSE_END.test(before);
|
|
15284
|
+
const afterIsBoundary = after === "" || CLAUSE_START.test(after);
|
|
15285
|
+
return beforeIsBoundary && afterIsBoundary;
|
|
15286
|
+
}
|
|
15287
|
+
function transientTransportFragment(input) {
|
|
15288
|
+
const message = messageOf(input);
|
|
15289
|
+
if (!message) return null;
|
|
15290
|
+
const cleaned = stripErrorPrefixes(message);
|
|
15291
|
+
for (const match of cleaned.matchAll(CHROMIUM_CODE_PATTERN)) {
|
|
15292
|
+
const code = match[1];
|
|
15293
|
+
if (!CHROMIUM_SET.has(code)) continue;
|
|
15294
|
+
const start = match.index ?? 0;
|
|
15295
|
+
const end = start + match[0].length;
|
|
15296
|
+
return {
|
|
15297
|
+
code: `net::${code}`,
|
|
15298
|
+
start,
|
|
15299
|
+
end,
|
|
15300
|
+
clauseText: clauseTextOf(cleaned, start, end),
|
|
15301
|
+
clause: isClause(cleaned, start, end - start)
|
|
15302
|
+
};
|
|
15303
|
+
}
|
|
15304
|
+
for (const { code, pattern } of NODE_ERRNO_PATTERNS) {
|
|
15305
|
+
const match = pattern.exec(cleaned);
|
|
15306
|
+
if (match) {
|
|
15307
|
+
const start = match.index;
|
|
15308
|
+
const end = start + match[0].length;
|
|
15309
|
+
return {
|
|
15310
|
+
code,
|
|
15311
|
+
start,
|
|
15312
|
+
end,
|
|
15313
|
+
clauseText: clauseTextOf(cleaned, start, end),
|
|
15314
|
+
clause: isClause(cleaned, start, end - start)
|
|
15315
|
+
};
|
|
15316
|
+
}
|
|
15317
|
+
}
|
|
15318
|
+
for (const phrase of ENGINE_TRANSPORT_FAILURES) {
|
|
15319
|
+
const start = cleaned.indexOf(phrase);
|
|
15320
|
+
if (start === -1) continue;
|
|
15321
|
+
if (!isClause(cleaned, start, phrase.length)) continue;
|
|
15322
|
+
return {
|
|
15323
|
+
code: phrase,
|
|
15324
|
+
start,
|
|
15325
|
+
end: start + phrase.length,
|
|
15326
|
+
clauseText: clauseTextOf(cleaned, start, start + phrase.length),
|
|
15327
|
+
clause: true
|
|
15328
|
+
};
|
|
15329
|
+
}
|
|
15330
|
+
return null;
|
|
15331
|
+
}
|
|
15332
|
+
function transientTransportCode(input) {
|
|
15333
|
+
return transientTransportFragment(input)?.code ?? null;
|
|
15334
|
+
}
|
|
15335
|
+
function messageOf(input) {
|
|
15336
|
+
if (typeof input === "string") return input;
|
|
15337
|
+
if (input instanceof Error) return input.message || input.name || "";
|
|
15338
|
+
if (input && typeof input === "object" && "message" in input) {
|
|
15339
|
+
const message = input.message;
|
|
15340
|
+
return typeof message === "string" ? message : "";
|
|
15341
|
+
}
|
|
15342
|
+
return "";
|
|
15343
|
+
}
|
|
15344
|
+
function clauseTextOf(message, start, end) {
|
|
15345
|
+
let from = 0;
|
|
15346
|
+
for (const boundary of message.slice(0, start).matchAll(CLAUSE_BOUNDARY)) {
|
|
15347
|
+
from = (boundary.index ?? 0) + boundary[0].length;
|
|
15348
|
+
}
|
|
15349
|
+
let to = message.length;
|
|
15350
|
+
for (const boundary of message.slice(end).matchAll(CLAUSE_BOUNDARY)) {
|
|
15351
|
+
to = end + (boundary.index ?? 0);
|
|
15352
|
+
break;
|
|
15353
|
+
}
|
|
15354
|
+
return message.slice(from, to).trim();
|
|
15355
|
+
}
|
|
15356
|
+
function stripErrorPrefixes(message) {
|
|
15357
|
+
return message.replace(LEADING_ERROR_PREFIXES, "").replace(EMBEDDED_ERROR_PREFIX, ": ");
|
|
15358
|
+
}
|
|
15242
15359
|
const READABLE_VERSION_PATTERN = /^v?\d+(\.\d+){0,3}([.-]?(?:a|b|c|rc|alpha|beta|pre|post|dev)[.-]?\d*)?(?:[-+][0-9A-Za-z.-]+)?$/i;
|
|
15243
15360
|
const isReadableVersion = (value) => typeof value === "string" && READABLE_VERSION_PATTERN.test(value.trim());
|
|
15244
15361
|
const UP_TO_DATE_AFFIRMATION = "The application and server are up to date";
|
|
@@ -15256,9 +15373,15 @@ const INSTALL_IN_FLIGHT_RECHECK_MS = 1e4;
|
|
|
15256
15373
|
const LAUNCHCTL_NOT_LOADED_REGEX = /could not find|no such process/i;
|
|
15257
15374
|
const SEAL_PROBE_TIMEOUT_MS = 45e3;
|
|
15258
15375
|
const STARTUP_SEAL_PROBE_DELAY_MS = 15e3;
|
|
15376
|
+
const POST_WAKE_CHECK_DELAY_MS = 2e4;
|
|
15259
15377
|
function versionSuffix(version) {
|
|
15260
15378
|
return version ? ` to version ${version}` : "";
|
|
15261
15379
|
}
|
|
15380
|
+
function offlineTransportError() {
|
|
15381
|
+
return new Error(
|
|
15382
|
+
"net::ERR_INTERNET_DISCONNECTED - the machine reported no network, so no request was made"
|
|
15383
|
+
);
|
|
15384
|
+
}
|
|
15262
15385
|
function runCommand(command, args, options = {}) {
|
|
15263
15386
|
return new Promise((resolve) => {
|
|
15264
15387
|
node_child_process.execFile(
|
|
@@ -15313,6 +15436,47 @@ class UpdateService {
|
|
|
15313
15436
|
* available", which is how `shouldFilterUpdateError` would otherwise read it.
|
|
15314
15437
|
*/
|
|
15315
15438
|
updateStage = "idle";
|
|
15439
|
+
/**
|
|
15440
|
+
* How many app-channel checks are in flight right now.
|
|
15441
|
+
*
|
|
15442
|
+
* ONE OWNER PER FAILURE. The `autoUpdater` `error` event and the check that
|
|
15443
|
+
* caused it are two producers of the same user-facing message, and they used
|
|
15444
|
+
* to carry two different suppression rules: `checkForUpdates` refuses to send
|
|
15445
|
+
* for a silent check and the event handler sent regardless, so one transient
|
|
15446
|
+
* failure was reported twice and a background check was reported at all. A
|
|
15447
|
+
* check in flight owns its own failure report, so the handler stands down
|
|
15448
|
+
* while this is above zero. It is a DEPTH rather than a boolean because the
|
|
15449
|
+
* scheduled check and a click can overlap.
|
|
15450
|
+
*/
|
|
15451
|
+
appChecksInFlight = 0;
|
|
15452
|
+
/**
|
|
15453
|
+
* The attempt sequence in flight in the app channel, so a second check rides
|
|
15454
|
+
* it instead of doubling it.
|
|
15455
|
+
*
|
|
15456
|
+
* WHY THIS EXISTS, measured. Two checks are started at launch by different
|
|
15457
|
+
* owners - the renderer's mount effect and this process's own delayed check -
|
|
15458
|
+
* and QA round 1 measured the cost of letting them run independently while
|
|
15459
|
+
* the feed is down: six fetches in 6.6 s where the base made two
|
|
15460
|
+
* (`Q-2`), three per check because of the retries. The fetch is the same
|
|
15461
|
+
* request for the same feed, so the second caller awaits the first one's
|
|
15462
|
+
* sequence and the result is shared; `appChecksInFlight` stays at 1 for the
|
|
15463
|
+
* pair, which is also what keeps the `error` events of that one sequence owned
|
|
15464
|
+
* by the check that started it.
|
|
15465
|
+
*/
|
|
15466
|
+
appFeedFetchInFlight = null;
|
|
15467
|
+
/**
|
|
15468
|
+
* The wake-armed check, held so a second wake cannot arm a second one.
|
|
15469
|
+
*/
|
|
15470
|
+
postWakeCheckTimer = null;
|
|
15471
|
+
/**
|
|
15472
|
+
* The backoff between attempts at one app-channel feed fetch, in ms.
|
|
15473
|
+
*
|
|
15474
|
+
* Two retries, so three attempts, which is the bound a transient Wi-Fi roam
|
|
15475
|
+
* or resolver blip needs and short enough that a check the user is waiting on
|
|
15476
|
+
* still answers in seconds. A test overrides it rather than waiting 4 s per
|
|
15477
|
+
* case; nothing else does.
|
|
15478
|
+
*/
|
|
15479
|
+
appFeedRetryDelaysMs = [1e3, 3e3];
|
|
15316
15480
|
/** The last update the updater told us about, for its file metadata. */
|
|
15317
15481
|
lastUpdateInfo = null;
|
|
15318
15482
|
/**
|
|
@@ -15427,6 +15591,25 @@ class UpdateService {
|
|
|
15427
15591
|
}, STARTUP_SEAL_PROBE_DELAY_MS);
|
|
15428
15592
|
sealProbe.unref();
|
|
15429
15593
|
this.startPeriodicUpdateChecks();
|
|
15594
|
+
electron.powerMonitor.on("resume", () => this.armPostWakeCheck());
|
|
15595
|
+
}
|
|
15596
|
+
/**
|
|
15597
|
+
* Arm the single check that follows a resume, or leave the armed one alone.
|
|
15598
|
+
*
|
|
15599
|
+
* `unref`'d like the seal probe: a quit before it fires loses nothing, because
|
|
15600
|
+
* the next launch checks and the five-minute tick is still there.
|
|
15601
|
+
*/
|
|
15602
|
+
armPostWakeCheck() {
|
|
15603
|
+
if (this.postWakeCheckTimer) return;
|
|
15604
|
+
this.postWakeCheckTimer = setTimeout(() => {
|
|
15605
|
+
this.postWakeCheckTimer = null;
|
|
15606
|
+
logger.info(
|
|
15607
|
+
"Running the update check this machine's wake armed",
|
|
15608
|
+
LogFileType.UPDATE_SERVICE
|
|
15609
|
+
);
|
|
15610
|
+
void this.checkForAllUpdates(true);
|
|
15611
|
+
}, POST_WAKE_CHECK_DELAY_MS);
|
|
15612
|
+
this.postWakeCheckTimer.unref();
|
|
15430
15613
|
}
|
|
15431
15614
|
/**
|
|
15432
15615
|
* Start periodic update checks
|
|
@@ -16482,6 +16665,87 @@ ${heal.removed.join("\n")}`,
|
|
|
16482
16665
|
/**
|
|
16483
16666
|
* Set up event handlers for the autoUpdater
|
|
16484
16667
|
*/
|
|
16668
|
+
/**
|
|
16669
|
+
* One app-channel feed fetch, with its retries, as the owner of its failures.
|
|
16670
|
+
*
|
|
16671
|
+
* WHY A RETRY AND NOT A BETTER ERROR MESSAGE. The failures in the operator's
|
|
16672
|
+
* log are transients: a Wi-Fi change, a wake, a resolver blip. Every one of
|
|
16673
|
+
* them was followed by a check five minutes later that answered normally, so
|
|
16674
|
+
* the honest response to the first is to ask again rather than to tell the
|
|
16675
|
+
* user their network is down. Only a TRANSIENT failure is retried
|
|
16676
|
+
* (`transientTransportCode`), so a 404, a refused credential or a certificate
|
|
16677
|
+
* verdict still fails immediately and is not swallowed by a backoff.
|
|
16678
|
+
*
|
|
16679
|
+
* WHAT A CHECK CONCLUDES IS UNCHANGED, deliberately: a feed that never
|
|
16680
|
+
* arrived still reaches the caller as a rejected promise, and a check that
|
|
16681
|
+
* could not find out stays `unavailable` in the verdict. Retrying must not
|
|
16682
|
+
* turn "could not find out" into "nothing newer" - that conflation is this
|
|
16683
|
+
* repository's documented defect class, and it is why this is a retry rather
|
|
16684
|
+
* than an extra entry in `shouldFilterUpdateError` (whose filtered branch
|
|
16685
|
+
* emits `update-not-available`).
|
|
16686
|
+
*
|
|
16687
|
+
* The in-flight depth is held across the whole attempt sequence, so the
|
|
16688
|
+
* `error` events each attempt raises are owned by this call rather than
|
|
16689
|
+
* reported beside it.
|
|
16690
|
+
*/
|
|
16691
|
+
async runAppFeedCheck(fetchFeed) {
|
|
16692
|
+
if (this.appFeedFetchInFlight) return this.appFeedFetchInFlight;
|
|
16693
|
+
const sequence = this.runAppFeedAttempts(fetchFeed);
|
|
16694
|
+
this.appFeedFetchInFlight = sequence;
|
|
16695
|
+
try {
|
|
16696
|
+
return await sequence;
|
|
16697
|
+
} finally {
|
|
16698
|
+
this.appFeedFetchInFlight = null;
|
|
16699
|
+
}
|
|
16700
|
+
}
|
|
16701
|
+
/**
|
|
16702
|
+
* Whether Electron believes this machine has a network at all.
|
|
16703
|
+
*
|
|
16704
|
+
* The `typeof` guard is a constraint rather than defensiveness: this module is
|
|
16705
|
+
* bundled with Electron STUBBED by its own contract harness
|
|
16706
|
+
* (`scripts/update-robustness.test.mjs`), and a stub that does not answer this
|
|
16707
|
+
* question must not turn every check into a skip. A missing reading is read as
|
|
16708
|
+
* "reachable", which is the behaviour that existed before the gate.
|
|
16709
|
+
*/
|
|
16710
|
+
networkIsReachable() {
|
|
16711
|
+
return typeof electron.net?.isOnline === "function" ? electron.net.isOnline() : true;
|
|
16712
|
+
}
|
|
16713
|
+
/**
|
|
16714
|
+
* The attempt sequence itself: the retries, and the depth that owns them.
|
|
16715
|
+
*/
|
|
16716
|
+
async runAppFeedAttempts(fetchFeed) {
|
|
16717
|
+
this.appChecksInFlight += 1;
|
|
16718
|
+
try {
|
|
16719
|
+
const delays = this.appFeedRetryDelaysMs;
|
|
16720
|
+
for (let attempt = 0; ; attempt += 1) {
|
|
16721
|
+
try {
|
|
16722
|
+
if (!this.networkIsReachable()) {
|
|
16723
|
+
logger.info(
|
|
16724
|
+
`The machine reports no network (net.isOnline() is false); not spending a request on the update feed${attempt < delays.length ? `, asking again in ${delays[attempt]}ms (attempt ${attempt + 2} of ${delays.length + 1})` : ""}.`,
|
|
16725
|
+
LogFileType.UPDATE_SERVICE
|
|
16726
|
+
);
|
|
16727
|
+
if (attempt >= delays.length) throw offlineTransportError();
|
|
16728
|
+
await new Promise(
|
|
16729
|
+
(resolve) => setTimeout(resolve, delays[attempt])
|
|
16730
|
+
);
|
|
16731
|
+
continue;
|
|
16732
|
+
}
|
|
16733
|
+
return await fetchFeed();
|
|
16734
|
+
} catch (error) {
|
|
16735
|
+
const code = transientTransportCode(error);
|
|
16736
|
+
if (code === null || attempt >= delays.length) throw error;
|
|
16737
|
+
const delay = delays[attempt];
|
|
16738
|
+
logger.warn(
|
|
16739
|
+
`Transient transport failure during the update check (${code}); retrying in ${delay}ms (attempt ${attempt + 2} of ${delays.length + 1})`,
|
|
16740
|
+
LogFileType.UPDATE_SERVICE
|
|
16741
|
+
);
|
|
16742
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
16743
|
+
}
|
|
16744
|
+
}
|
|
16745
|
+
} finally {
|
|
16746
|
+
this.appChecksInFlight -= 1;
|
|
16747
|
+
}
|
|
16748
|
+
}
|
|
16485
16749
|
setupUpdateEvents() {
|
|
16486
16750
|
electronUpdater.autoUpdater.on("update-available", (info) => {
|
|
16487
16751
|
logger.info("Update available:", LogFileType.UPDATE_SERVICE, info);
|
|
@@ -16513,6 +16777,17 @@ ${heal.removed.join("\n")}`,
|
|
|
16513
16777
|
electronUpdater.autoUpdater.on("error", (err) => {
|
|
16514
16778
|
logger.error("Update error:", LogFileType.UPDATE_SERVICE, err);
|
|
16515
16779
|
const actionable = this.updateStage !== "idle";
|
|
16780
|
+
if (!actionable && this.appChecksInFlight > 0) {
|
|
16781
|
+
logger.info(
|
|
16782
|
+
// The rule, at the point it is implemented: a check in flight owns
|
|
16783
|
+
// its own failure report, and an app-initiated check's owner is a
|
|
16784
|
+
// silent one - so this is the log line that replaces the alert the
|
|
16785
|
+
// operator saw, not a swallowed error.
|
|
16786
|
+
"Update error during an availability check: the check reports its own failure",
|
|
16787
|
+
LogFileType.UPDATE_SERVICE
|
|
16788
|
+
);
|
|
16789
|
+
return;
|
|
16790
|
+
}
|
|
16516
16791
|
const shouldFilter = !actionable && this.shouldFilterUpdateError(err);
|
|
16517
16792
|
if (shouldFilter) {
|
|
16518
16793
|
logger.info(
|
|
@@ -16522,7 +16797,7 @@ ${heal.removed.join("\n")}`,
|
|
|
16522
16797
|
version: electron.app.getVersion()
|
|
16523
16798
|
});
|
|
16524
16799
|
} else {
|
|
16525
|
-
this.sendToRenderer("update-error", err.message);
|
|
16800
|
+
this.sendToRenderer("update-error", stripErrorPrefixes(err.message));
|
|
16526
16801
|
}
|
|
16527
16802
|
});
|
|
16528
16803
|
electronUpdater.autoUpdater.on("download-progress", (progressObj) => {
|
|
@@ -16586,12 +16861,18 @@ ${heal.removed.join("\n")}`,
|
|
|
16586
16861
|
async (_event, options) => {
|
|
16587
16862
|
logger.info("Checking for UI updates...", LogFileType.UPDATE_SERVICE);
|
|
16588
16863
|
this.onCheckRequested(options);
|
|
16864
|
+
const reportFailure = options?.manual === true;
|
|
16589
16865
|
try {
|
|
16590
|
-
return await
|
|
16866
|
+
return await this.runAppFeedCheck(
|
|
16867
|
+
() => electronUpdater.autoUpdater.checkForUpdates()
|
|
16868
|
+
);
|
|
16591
16869
|
} catch (error) {
|
|
16592
16870
|
logger.error(
|
|
16593
16871
|
"Error checking for UI updates:",
|
|
16594
16872
|
LogFileType.UPDATE_SERVICE,
|
|
16873
|
+
// The failure is logged here whatever the caller is, because the log
|
|
16874
|
+
// is where an app-initiated check's failure belongs once it is not
|
|
16875
|
+
// reported.
|
|
16595
16876
|
error
|
|
16596
16877
|
);
|
|
16597
16878
|
const shouldFilter = this.shouldFilterUpdateError(error);
|
|
@@ -16610,6 +16891,13 @@ ${heal.removed.join("\n")}`,
|
|
|
16610
16891
|
cancellationToken: null
|
|
16611
16892
|
};
|
|
16612
16893
|
}
|
|
16894
|
+
if (!reportFailure) {
|
|
16895
|
+
logger.info(
|
|
16896
|
+
"An app-initiated check could not read the update feed; the failure is logged and not shown (only a check the user asked for is reported).",
|
|
16897
|
+
LogFileType.UPDATE_SERVICE
|
|
16898
|
+
);
|
|
16899
|
+
return null;
|
|
16900
|
+
}
|
|
16613
16901
|
throw error;
|
|
16614
16902
|
}
|
|
16615
16903
|
}
|
|
@@ -16641,7 +16929,10 @@ ${heal.removed.join("\n")}`,
|
|
|
16641
16929
|
this.onCheckRequested(options);
|
|
16642
16930
|
const silent = options?.silent === true;
|
|
16643
16931
|
try {
|
|
16644
|
-
return await this.checkForAllUpdates(
|
|
16932
|
+
return await this.checkForAllUpdates(
|
|
16933
|
+
silent,
|
|
16934
|
+
options?.manual === true
|
|
16935
|
+
);
|
|
16645
16936
|
} catch (error) {
|
|
16646
16937
|
logger.error(
|
|
16647
16938
|
"Error checking for all updates:",
|
|
@@ -16789,7 +17080,7 @@ ${heal.removed.join("\n")}`,
|
|
|
16789
17080
|
* says it with `unavailable` rather than by omission. `checkForAllUpdates`
|
|
16790
17081
|
* is what turns the pair into the one sentence a user reads.
|
|
16791
17082
|
*/
|
|
16792
|
-
async checkForUpdates(silent = false) {
|
|
17083
|
+
async checkForUpdates(silent = false, reportFailure = !silent) {
|
|
16793
17084
|
logger.info(
|
|
16794
17085
|
`Checking for updates... (silent mode: ${silent})`,
|
|
16795
17086
|
LogFileType.UPDATE_SERVICE
|
|
@@ -16868,7 +17159,9 @@ ${heal.removed.join("\n")}`,
|
|
|
16868
17159
|
}
|
|
16869
17160
|
let result;
|
|
16870
17161
|
try {
|
|
16871
|
-
result = await
|
|
17162
|
+
result = await this.runAppFeedCheck(
|
|
17163
|
+
() => electronUpdater.autoUpdater.checkForUpdates()
|
|
17164
|
+
);
|
|
16872
17165
|
} finally {
|
|
16873
17166
|
if (silent) {
|
|
16874
17167
|
electronUpdater.autoUpdater.removeAllListeners("update-not-available");
|
|
@@ -16897,10 +17190,16 @@ ${heal.removed.join("\n")}`,
|
|
|
16897
17190
|
LogFileType.UPDATE_SERVICE,
|
|
16898
17191
|
error
|
|
16899
17192
|
);
|
|
16900
|
-
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() &&
|
|
17193
|
+
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() && reportFailure) {
|
|
16901
17194
|
this.mainWindow.webContents.send(
|
|
16902
17195
|
"update-error",
|
|
16903
|
-
|
|
17196
|
+
/*
|
|
17197
|
+
* Cleaned of the nested `Error: ` prefixes a wrapped failure carries,
|
|
17198
|
+
* at the source: this string is shown to a person as the machine's own
|
|
17199
|
+
* words under the sentence the renderer builds from the same code, and
|
|
17200
|
+
* `Error: Error: net::...` is a nesting nobody asked for.
|
|
17201
|
+
*/
|
|
17202
|
+
stripErrorPrefixes(error.message)
|
|
16904
17203
|
);
|
|
16905
17204
|
}
|
|
16906
17205
|
return "unavailable";
|
|
@@ -17224,7 +17523,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17224
17523
|
* proved nothing, which is why "could not determine the version" returns
|
|
17225
17524
|
* `unavailable` rather than the `current` it used to read as.
|
|
17226
17525
|
*/
|
|
17227
|
-
async checkForBackendUpdates(silent = false) {
|
|
17526
|
+
async checkForBackendUpdates(silent = false, reportFailure = !silent) {
|
|
17228
17527
|
logger.info(
|
|
17229
17528
|
`Checking for backend updates... (silent mode: ${silent})`,
|
|
17230
17529
|
LogFileType.UPDATE_SERVICE
|
|
@@ -17251,6 +17550,13 @@ ${heal.removed.join("\n")}`,
|
|
|
17251
17550
|
);
|
|
17252
17551
|
return { status: "unavailable", info: null };
|
|
17253
17552
|
}
|
|
17553
|
+
if (!this.networkIsReachable()) {
|
|
17554
|
+
logger.info(
|
|
17555
|
+
"Skipping the server update check: this machine reports no network right now (net.isOnline() is false). The app channel owns the report; the next scheduled check will try again.",
|
|
17556
|
+
LogFileType.UPDATE_SERVICE
|
|
17557
|
+
);
|
|
17558
|
+
return { status: "unavailable", info: null };
|
|
17559
|
+
}
|
|
17254
17560
|
const installedVersion = await this.getInstalledBackendVersion();
|
|
17255
17561
|
const latestVersion = await this.getLatestPypiVersion();
|
|
17256
17562
|
if (latestVersion) this.lastPublishedBackendVersion = latestVersion;
|
|
@@ -17259,7 +17565,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17259
17565
|
"Unable to determine backend versions.",
|
|
17260
17566
|
LogFileType.UPDATE_SERVICE
|
|
17261
17567
|
);
|
|
17262
|
-
if (
|
|
17568
|
+
if (reportFailure) {
|
|
17263
17569
|
this.sendToRenderer("backend-update-error", {
|
|
17264
17570
|
message: "Unable to determine backend version.",
|
|
17265
17571
|
phase: "check"
|
|
@@ -17272,7 +17578,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17272
17578
|
"The installed backend version could not be determined from the health endpoint.",
|
|
17273
17579
|
LogFileType.UPDATE_SERVICE
|
|
17274
17580
|
);
|
|
17275
|
-
if (
|
|
17581
|
+
if (reportFailure) {
|
|
17276
17582
|
this.sendToRenderer("backend-update-error", {
|
|
17277
17583
|
message: "The installed server version could not be determined, so no update was offered. Restart the app to try again.",
|
|
17278
17584
|
phase: "check"
|
|
@@ -17291,7 +17597,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17291
17597
|
)} server version (installed: ${installedVersion}, published: ${latestVersion}); no status is reported rather than comparing an unreadable reading.`,
|
|
17292
17598
|
LogFileType.UPDATE_SERVICE
|
|
17293
17599
|
);
|
|
17294
|
-
if (
|
|
17600
|
+
if (reportFailure) {
|
|
17295
17601
|
this.sendToRenderer("backend-update-error", {
|
|
17296
17602
|
message: "Unable to determine backend version.",
|
|
17297
17603
|
phase: "check"
|
|
@@ -17352,7 +17658,14 @@ ${heal.removed.join("\n")}`,
|
|
|
17352
17658
|
);
|
|
17353
17659
|
if (!silent && this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
|
|
17354
17660
|
this.mainWindow.webContents.send("backend-update-error", {
|
|
17355
|
-
|
|
17661
|
+
/*
|
|
17662
|
+
* Cleaned at the source, the same way the app channel's report is:
|
|
17663
|
+
* this channel's real strings are Node errno forms, and a wrapped
|
|
17664
|
+
* one carries the inner `Error: ` prefix into the sentence a person
|
|
17665
|
+
* reads. The renderer maps what is left to a sentence; this is what
|
|
17666
|
+
* keeps that sentence's machine line readable.
|
|
17667
|
+
*/
|
|
17668
|
+
message: stripErrorPrefixes(error.message),
|
|
17356
17669
|
phase: "check"
|
|
17357
17670
|
});
|
|
17358
17671
|
}
|
|
@@ -17676,7 +17989,9 @@ ${pipRun.stderr.trim()}`,
|
|
|
17676
17989
|
}
|
|
17677
17990
|
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
|
|
17678
17991
|
this.mainWindow.webContents.send("backend-update-error", {
|
|
17679
|
-
|
|
17992
|
+
// Cleaned at the source, for the reason written on the check-phase
|
|
17993
|
+
// report above.
|
|
17994
|
+
message: stripErrorPrefixes(error.message),
|
|
17680
17995
|
phase: "update"
|
|
17681
17996
|
});
|
|
17682
17997
|
}
|
|
@@ -17695,9 +18010,9 @@ ${pipRun.stderr.trim()}`,
|
|
|
17695
18010
|
* carries it - each channel's own events are unchanged, and the verdict
|
|
17696
18011
|
* crosses the IPC boundary as this call's return value.
|
|
17697
18012
|
*/
|
|
17698
|
-
async checkForAllUpdates(silent = false) {
|
|
17699
|
-
const app2 = await this.checkForUpdates(silent);
|
|
17700
|
-
const server = await this.checkForBackendUpdates(silent);
|
|
18013
|
+
async checkForAllUpdates(silent = false, reportFailure = !silent) {
|
|
18014
|
+
const app2 = await this.checkForUpdates(silent, reportFailure);
|
|
18015
|
+
const server = await this.checkForBackendUpdates(silent, reportFailure);
|
|
17701
18016
|
return updateCheckVerdict({ app: app2, server: server.status });
|
|
17702
18017
|
}
|
|
17703
18018
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-
|
|
1
|
+
import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-Bqq4bH3r.js";import{as as g,aa as y,at as E,au as F,av as M,aw as I,ax as _,ay as $,az as B,aA as T}from"./mermaid.core-kFbnNRih.js";var S=/\s/;function z(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,z(n)+1).replace(G,"")}var m=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,q=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(o(n))return m;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||q.test(n)?C(n.slice(2),t?2:8):L.test(n)?m:+n}var W=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=K(n),n===W||n===-1/0){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=y(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(e=1);++t<e;)for(var f=r[t],i=F(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||M(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,e){var a=Object(r);if(!I(r)){var f=v(t);r=O(r),t=function(s){return f(a[s],s,a)}}var i=n(r,t,e);return i>-1?a[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:D(t);return a<0&&(a=U(e+a,0)),P(n,v(r),a)}var hn=Q(Z);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=_(n)?w:V;return t(n,v(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function vn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,a=n.length;++e<a;){var f=n[e],i=r(f);if(i!=null&&(s===void 0?i===i&&!o(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,$,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=x(r,n);for(var a=-1,f=r.length,i=f-1,s=n;s!=null&&++a<f;){var d=c(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[a+1])?[]:{})}T(s,d,u),s=s[d]}return n}function on(n,r,t){for(var e=-1,a=r.length,f={};++e<a;){var i=r[e],s=N(n,i);t(s,i)&&an(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,vn as h,dn as i,D as j,un as l,gn as m,Y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aH as S,aI as Rn,ax as T,aJ as w,aK as xn,aL as Mn,aw as sn,aM as mn,aN as un,aO as x,au as U,aP as Cn,aQ as on,aR as Fn,aS as E,aF as gn,aT as R,as as ln,aU as Dn,aV as D,aW as Gn,aX as Un,aY as _,aA as Nn,aZ as Bn,av as Kn,a_ as X,a$ as Hn,b0 as jn,az as Yn,ay as cn,aD as Zn,b1 as m}from"./mermaid.core-CTF22veB.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,a=Array(t);++e<t;)a[e]=r(n[e],e,n);return a}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function pn(n){if(typeof n=="string")return n;if(T(n))return dn(n,pn)+"";if(N(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function An(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var a=n.length,i=e+-1;++i<a;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,a=n.length;++t<a;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,ar=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,a,i){r.push(a?i.replace(ir,"$1"):t||e)}),r});function fr(n){return n==null?"":pn(n)}function yn(n,r){return T(n)?n:B(n,r)?[n]:ar(fr(n))}function M(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(n,r){r=yn(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:bn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,a=n.length;++e<t;)n[a+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,a){var i=-1,f=n.length;for(e||(e=ur),a||(a=[]);++i<f;){var s=n[i];e(s)?K(a,s):t||(a[a.length]=s)}return a}function or(n,r,e,t){var a=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++a]);++a<i;)e=r(e,n[a],a,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,a=0,i=[];++e<t;){var f=n[e];r(f,e,n)&&(i[a++]=f)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,H=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function pr(n,r){return x(n,H(n),r)}var Ar=Object.getOwnPropertySymbols,wn=Ar?function(n){for(var r=[];n;)K(r,H(n)),n=Cn(n);return r}:hn;function yr(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,H)}function br(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",Hr="[object Uint16Array]",jr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case Hr:case jr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case Mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",ae="[object Map]",fe="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",pe="[object Float32Array]",Ae="[object Float64Array]",ye="[object Int8Array]",be="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[pe]=g[Ae]=g[ye]=g[be]=g[Te]=g[ae]=g[fe]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,a,i){var f,s=r&zr,u=r&Vr,d=r&kr;if(f!==void 0)return f;if(!ln(n))return n;var l=T(n);if(l){if(f=wr(n),!s)return Dn(n,f)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!a){if(f=u||c?{}:Un(n),!s)return u?yr(n,lr(f,n)):pr(n,gr(f,n))}else{if(!g[o])return a?n:{};f=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,f),Wr(n)?n.forEach(function(p){f.add(C(p,r,e,p,n,i))}):Xr(n)&&n.forEach(function(p,A){f.set(A,C(p,r,e,A,n,i))});var y=d?u?br:G:u?U:$,b=l?void 0:y(n);return An(b||n,function(p,A){b&&(A=p,p=n[A]),Nn(f,A,C(p,r,e,A,n,i))}),f}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,a,i){var f=e&Pe,s=n.length,u=r.length;if(s!=u&&!(f&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var y=n[o],b=r[o];if(t)var p=f?t(b,y,o,r,n,i):t(y,b,o,n,r,i);if(p!==void 0){if(p)continue;c=!1;break}if(h){if(!Ie(r,function(A,O){if(!En(h,O)&&(y===A||a(y,A,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(y===b||a(y,b,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,a){e[++r]=[a,t]}),e}function j(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",He="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function je(n,r,e,t,a,i,f){switch(e){case He:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=tℜif(s||(s=j),n.size!=r.size&&!u)return!1;var d=f.get(n);if(d)return d==r;t|=xe,f.set(n,r);var l=In(s(n),s(r),t,a,i,f);return f.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,a,i){var f=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!f)return!1;for(var o=u;o--;){var c=s[o];if(!(f?c in r:qe.call(r,c)))return!1}var h=i.get(n),y=i.get(r);if(h&&y)return h==r&&y==n;var b=!0;i.set(n,r),i.set(r,n);for(var p=f;++o<u;){c=s[o];var A=n[c],O=r[c];if(t)var q=f?t(O,A,c,r,n,i):t(A,O,c,n,r,i);if(!(q===void 0?A===O||a(A,O,e,t,i):q)){b=!1;break}p||(p=c=="constructor")}if(b&&!p){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(b=!1)}return i.delete(n),i.delete(r),b}var Je=1,tn="[object Arguments]",an="[object Array]",L="[object Object]",Qe=Object.prototype,fn=Qe.hasOwnProperty;function We(n,r,e,t,a,i){var f=T(n),s=T(r),u=f?an:E(n),d=s?an:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;f=!0,l=!1}if(c&&!l)return i||(i=new _),f||Hn(n)?In(n,r,e,t,a,i):je(n,r,u,e,t,a,i);if(!(e&Je)){var h=l&&fn.call(n,"__wrapped__"),y=o&&fn.call(r,"__wrapped__");if(h||y){var b=h?n.value():n,p=y?r.value():r;return i||(i=new _),a(b,p,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,a,i)):!1}function Y(n,r,e,t,a){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,a)}var ze=1,Ve=2;function ke(n,r,e,t){var a=e.length,i=a;if(n==null)return!i;for(n=Object(n);a--;){var f=e[a];if(f[2]?f[1]!==n[f[0]]:!(f[0]in n))return!1}for(;++a<i;){f=e[a];var s=f[0],u=n[s],d=f[1];if(f[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],a=n[t];r[e]=[t,a,Pn(a)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=yn(r,n);for(var t=-1,a=r.length,i=!1;++t<a;){var f=M(r[t]);if(!(i=n!=null&&e(n,f)))break;n=n[f]}return i||++t!=a?i:(a=n==null?0:n.length,!!a&&jn(a)&&Yn(f,a)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var at=1,ft=2;function st(n,r){return B(n)&&Pn(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,at|ft)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return bn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var a=e.length,i=-1,f=Object(e);++i<a&&t(f[i],i,f)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?An:Z;return e(n,dt(r))}function pt(n,r){var e=[];return Z(n,function(t,a,i){r(t,a,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:pt;return e(n,Ln(r))}function At(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:At(n,$(n))}function Et(n){return n===void 0}function yt(n,r,e,t,a){return a(n,function(i,f,s){e=t?(t=!1,i):r(e,i,f,s)}),e}function It(n,r,e){var t=T(n)?or:yt,a=arguments.length<3;return t(n,Ln(r),e,a,Z)}var bt=1/0,Tt=m&&1/j(new m([,-0]))[1]==bt?function(n){return new m(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,a=Vn,i=n.length,f=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return j(d);f=!1,a=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,f&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else a(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,pt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Jn as h,Et as i,Z as j,$ as k,dn as l,tt as m,yn as n,bn as o,dt as p,lt as q,It as r,it as s,M as t,fr as u,St as v,Vn as w,En as x,zn as y,br as z};
|
|
1
|
+
import{aH as S,aI as Rn,ax as T,aJ as w,aK as xn,aL as Mn,aw as sn,aM as mn,aN as un,aO as x,au as U,aP as Cn,aQ as on,aR as Fn,aS as E,aF as gn,aT as R,as as ln,aU as Dn,aV as D,aW as Gn,aX as Un,aY as _,aA as Nn,aZ as Bn,av as Kn,a_ as X,a$ as Hn,b0 as jn,az as Yn,ay as cn,aD as Zn,b1 as m}from"./mermaid.core-kFbnNRih.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,a=Array(t);++e<t;)a[e]=r(n[e],e,n);return a}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function pn(n){if(typeof n=="string")return n;if(T(n))return dn(n,pn)+"";if(N(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function An(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var a=n.length,i=e+-1;++i<a;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,a=n.length;++t<a;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,ar=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,a,i){r.push(a?i.replace(ir,"$1"):t||e)}),r});function fr(n){return n==null?"":pn(n)}function yn(n,r){return T(n)?n:B(n,r)?[n]:ar(fr(n))}function M(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(n,r){r=yn(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:bn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,a=n.length;++e<t;)n[a+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,a){var i=-1,f=n.length;for(e||(e=ur),a||(a=[]);++i<f;){var s=n[i];e(s)?K(a,s):t||(a[a.length]=s)}return a}function or(n,r,e,t){var a=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++a]);++a<i;)e=r(e,n[a],a,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,a=0,i=[];++e<t;){var f=n[e];r(f,e,n)&&(i[a++]=f)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,H=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function pr(n,r){return x(n,H(n),r)}var Ar=Object.getOwnPropertySymbols,wn=Ar?function(n){for(var r=[];n;)K(r,H(n)),n=Cn(n);return r}:hn;function yr(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,H)}function br(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",Hr="[object Uint16Array]",jr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case Hr:case jr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case Mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",ae="[object Map]",fe="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",pe="[object Float32Array]",Ae="[object Float64Array]",ye="[object Int8Array]",be="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[pe]=g[Ae]=g[ye]=g[be]=g[Te]=g[ae]=g[fe]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,a,i){var f,s=r&zr,u=r&Vr,d=r&kr;if(f!==void 0)return f;if(!ln(n))return n;var l=T(n);if(l){if(f=wr(n),!s)return Dn(n,f)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!a){if(f=u||c?{}:Un(n),!s)return u?yr(n,lr(f,n)):pr(n,gr(f,n))}else{if(!g[o])return a?n:{};f=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,f),Wr(n)?n.forEach(function(p){f.add(C(p,r,e,p,n,i))}):Xr(n)&&n.forEach(function(p,A){f.set(A,C(p,r,e,A,n,i))});var y=d?u?br:G:u?U:$,b=l?void 0:y(n);return An(b||n,function(p,A){b&&(A=p,p=n[A]),Nn(f,A,C(p,r,e,A,n,i))}),f}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,a,i){var f=e&Pe,s=n.length,u=r.length;if(s!=u&&!(f&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var y=n[o],b=r[o];if(t)var p=f?t(b,y,o,r,n,i):t(y,b,o,n,r,i);if(p!==void 0){if(p)continue;c=!1;break}if(h){if(!Ie(r,function(A,O){if(!En(h,O)&&(y===A||a(y,A,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(y===b||a(y,b,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,a){e[++r]=[a,t]}),e}function j(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",He="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function je(n,r,e,t,a,i,f){switch(e){case He:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=tℜif(s||(s=j),n.size!=r.size&&!u)return!1;var d=f.get(n);if(d)return d==r;t|=xe,f.set(n,r);var l=In(s(n),s(r),t,a,i,f);return f.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,a,i){var f=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!f)return!1;for(var o=u;o--;){var c=s[o];if(!(f?c in r:qe.call(r,c)))return!1}var h=i.get(n),y=i.get(r);if(h&&y)return h==r&&y==n;var b=!0;i.set(n,r),i.set(r,n);for(var p=f;++o<u;){c=s[o];var A=n[c],O=r[c];if(t)var q=f?t(O,A,c,r,n,i):t(A,O,c,n,r,i);if(!(q===void 0?A===O||a(A,O,e,t,i):q)){b=!1;break}p||(p=c=="constructor")}if(b&&!p){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(b=!1)}return i.delete(n),i.delete(r),b}var Je=1,tn="[object Arguments]",an="[object Array]",L="[object Object]",Qe=Object.prototype,fn=Qe.hasOwnProperty;function We(n,r,e,t,a,i){var f=T(n),s=T(r),u=f?an:E(n),d=s?an:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;f=!0,l=!1}if(c&&!l)return i||(i=new _),f||Hn(n)?In(n,r,e,t,a,i):je(n,r,u,e,t,a,i);if(!(e&Je)){var h=l&&fn.call(n,"__wrapped__"),y=o&&fn.call(r,"__wrapped__");if(h||y){var b=h?n.value():n,p=y?r.value():r;return i||(i=new _),a(b,p,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,a,i)):!1}function Y(n,r,e,t,a){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,a)}var ze=1,Ve=2;function ke(n,r,e,t){var a=e.length,i=a;if(n==null)return!i;for(n=Object(n);a--;){var f=e[a];if(f[2]?f[1]!==n[f[0]]:!(f[0]in n))return!1}for(;++a<i;){f=e[a];var s=f[0],u=n[s],d=f[1];if(f[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],a=n[t];r[e]=[t,a,Pn(a)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=yn(r,n);for(var t=-1,a=r.length,i=!1;++t<a;){var f=M(r[t]);if(!(i=n!=null&&e(n,f)))break;n=n[f]}return i||++t!=a?i:(a=n==null?0:n.length,!!a&&jn(a)&&Yn(f,a)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var at=1,ft=2;function st(n,r){return B(n)&&Pn(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,at|ft)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return bn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var a=e.length,i=-1,f=Object(e);++i<a&&t(f[i],i,f)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?An:Z;return e(n,dt(r))}function pt(n,r){var e=[];return Z(n,function(t,a,i){r(t,a,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:pt;return e(n,Ln(r))}function At(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:At(n,$(n))}function Et(n){return n===void 0}function yt(n,r,e,t,a){return a(n,function(i,f,s){e=t?(t=!1,i):r(e,i,f,s)}),e}function It(n,r,e){var t=T(n)?or:yt,a=arguments.length<3;return t(n,Ln(r),e,a,Z)}var bt=1/0,Tt=m&&1/j(new m([,-0]))[1]==bt?function(n){return new m(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,a=Vn,i=n.length,f=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return j(d);f=!1,a=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,f&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else a(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,pt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Jn as h,Et as i,Z as j,$ as k,dn as l,tt as m,yn as n,bn as o,dt as p,lt as q,It as r,it as s,M as t,fr as u,St as v,Vn as w,En as x,zn as y,br as z};
|
package/out/renderer/assets/{agent-details-page-CseZi6cR.js → agent-details-page-D5Xaqf5E.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-
|
|
1
|
+
import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-BIH0o0-h.js";import{g as $,aq as V,f as E,aa as f,ac as P,ar as _,as as M,at as ee,au as te,av as se,aw as ae,ax as Q,ay as ne,az as W,aA as ie,h as H,aB as re,aC as oe,u as le,aD as ce,aE as de,aF as me,aG as ue,aH as xe,B as he,aI as ge,aJ as je,aK as fe,aL as ye,aM as O,aN as pe,aO as be,aP as we}from"./index-DkR2IOFW.js";import{u as ve,a as Ce,b as Ne,c as Ae}from"./use-agent-like-mutation-Da0zEmNH.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as p,j as e,c as j,r as m,S as y}from"./icon-
|
|
1
|
+
import{a as p,j as e,c as j,r as m,S as y}from"./icon-BIH0o0-h.js";import{C as k}from"./compact-pagination-DZcKP76l.js";import{P as v}from"./page-header-h3oV19Xt.js";import{aa as b,am as A,an as h,ao as L,ap as N}from"./index-DkR2IOFW.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-Da0zEmNH.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|