local-operator-ui 0.25.16 → 0.25.17
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 +336 -16
- 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 +1 -1
- 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
|
@@ -15239,6 +15239,128 @@ function rememberPickedDirectory(kind, filePaths, directoryPicked = false) {
|
|
|
15239
15239
|
if (!first) return;
|
|
15240
15240
|
lastPickedDirectory.set(kind, directoryPicked ? first : path$1.dirname(first));
|
|
15241
15241
|
}
|
|
15242
|
+
const CHROMIUM_TRANSPORT_CODES = [
|
|
15243
|
+
"ERR_INTERNET_DISCONNECTED",
|
|
15244
|
+
"ERR_NETWORK_CHANGED",
|
|
15245
|
+
"ERR_NAME_NOT_RESOLVED",
|
|
15246
|
+
"ERR_TIMED_OUT",
|
|
15247
|
+
"ERR_CONNECTION_RESET",
|
|
15248
|
+
"ERR_CONNECTION_REFUSED",
|
|
15249
|
+
"ERR_CONNECTION_CLOSED",
|
|
15250
|
+
"ERR_CONNECTION_FAILED",
|
|
15251
|
+
"ERR_CONNECTION_TIMED_OUT",
|
|
15252
|
+
"ERR_ADDRESS_UNREACHABLE",
|
|
15253
|
+
"ERR_NETWORK_IO_SUSPENDED",
|
|
15254
|
+
"ERR_PROXY_CONNECTION_FAILED"
|
|
15255
|
+
];
|
|
15256
|
+
const NODE_ERRNO_CODES = [
|
|
15257
|
+
"ENOTFOUND",
|
|
15258
|
+
"EAI_AGAIN",
|
|
15259
|
+
"ETIMEDOUT",
|
|
15260
|
+
"ECONNRESET",
|
|
15261
|
+
"ECONNREFUSED",
|
|
15262
|
+
"EHOSTUNREACH",
|
|
15263
|
+
"ENETUNREACH",
|
|
15264
|
+
"ENETDOWN",
|
|
15265
|
+
"ENETRESET",
|
|
15266
|
+
"ECONNABORTED",
|
|
15267
|
+
"EPIPE"
|
|
15268
|
+
];
|
|
15269
|
+
const ENGINE_TRANSPORT_FAILURES = [
|
|
15270
|
+
"Failed to fetch",
|
|
15271
|
+
"Load failed",
|
|
15272
|
+
"NetworkError when attempting to fetch resource."
|
|
15273
|
+
];
|
|
15274
|
+
const CHROMIUM_SET = new Set(CHROMIUM_TRANSPORT_CODES);
|
|
15275
|
+
const CLAUSE_END = /[:\-\u2014\n]$/;
|
|
15276
|
+
const CLAUSE_START = /^[:\n]/;
|
|
15277
|
+
const CLAUSE_BOUNDARY = /[:\uff1a\n\u2014]| - /g;
|
|
15278
|
+
const LEADING_ERROR_PREFIXES = /^(?:\s*Error:\s*)+/;
|
|
15279
|
+
const EMBEDDED_ERROR_PREFIX = /:\s+Error:\s+/g;
|
|
15280
|
+
const CHROMIUM_CODE_PATTERN = /\b(?:net::)?(ERR_[A-Z0-9_]+)\b/g;
|
|
15281
|
+
const NODE_ERRNO_PATTERNS = NODE_ERRNO_CODES.map((code) => ({
|
|
15282
|
+
code,
|
|
15283
|
+
pattern: new RegExp(`\\b${code}\\b`)
|
|
15284
|
+
}));
|
|
15285
|
+
function isClause(message, start, length) {
|
|
15286
|
+
const before = message.slice(0, start).trimEnd();
|
|
15287
|
+
const after = message.slice(start + length).trimStart();
|
|
15288
|
+
const beforeIsBoundary = before === "" || CLAUSE_END.test(before);
|
|
15289
|
+
const afterIsBoundary = after === "" || CLAUSE_START.test(after);
|
|
15290
|
+
return beforeIsBoundary && afterIsBoundary;
|
|
15291
|
+
}
|
|
15292
|
+
function transientTransportFragment(input) {
|
|
15293
|
+
const message = messageOf(input);
|
|
15294
|
+
if (!message) return null;
|
|
15295
|
+
const cleaned = stripErrorPrefixes(message);
|
|
15296
|
+
for (const match of cleaned.matchAll(CHROMIUM_CODE_PATTERN)) {
|
|
15297
|
+
const code = match[1];
|
|
15298
|
+
if (!CHROMIUM_SET.has(code)) continue;
|
|
15299
|
+
const start = match.index ?? 0;
|
|
15300
|
+
const end = start + match[0].length;
|
|
15301
|
+
return {
|
|
15302
|
+
code: `net::${code}`,
|
|
15303
|
+
start,
|
|
15304
|
+
end,
|
|
15305
|
+
clauseText: clauseTextOf(cleaned, start, end),
|
|
15306
|
+
clause: isClause(cleaned, start, end - start)
|
|
15307
|
+
};
|
|
15308
|
+
}
|
|
15309
|
+
for (const { code, pattern } of NODE_ERRNO_PATTERNS) {
|
|
15310
|
+
const match = pattern.exec(cleaned);
|
|
15311
|
+
if (match) {
|
|
15312
|
+
const start = match.index;
|
|
15313
|
+
const end = start + match[0].length;
|
|
15314
|
+
return {
|
|
15315
|
+
code,
|
|
15316
|
+
start,
|
|
15317
|
+
end,
|
|
15318
|
+
clauseText: clauseTextOf(cleaned, start, end),
|
|
15319
|
+
clause: isClause(cleaned, start, end - start)
|
|
15320
|
+
};
|
|
15321
|
+
}
|
|
15322
|
+
}
|
|
15323
|
+
for (const phrase of ENGINE_TRANSPORT_FAILURES) {
|
|
15324
|
+
const start = cleaned.indexOf(phrase);
|
|
15325
|
+
if (start === -1) continue;
|
|
15326
|
+
if (!isClause(cleaned, start, phrase.length)) continue;
|
|
15327
|
+
return {
|
|
15328
|
+
code: phrase,
|
|
15329
|
+
start,
|
|
15330
|
+
end: start + phrase.length,
|
|
15331
|
+
clauseText: clauseTextOf(cleaned, start, start + phrase.length),
|
|
15332
|
+
clause: true
|
|
15333
|
+
};
|
|
15334
|
+
}
|
|
15335
|
+
return null;
|
|
15336
|
+
}
|
|
15337
|
+
function transientTransportCode(input) {
|
|
15338
|
+
return transientTransportFragment(input)?.code ?? null;
|
|
15339
|
+
}
|
|
15340
|
+
function messageOf(input) {
|
|
15341
|
+
if (typeof input === "string") return input;
|
|
15342
|
+
if (input instanceof Error) return input.message || input.name || "";
|
|
15343
|
+
if (input && typeof input === "object" && "message" in input) {
|
|
15344
|
+
const message = input.message;
|
|
15345
|
+
return typeof message === "string" ? message : "";
|
|
15346
|
+
}
|
|
15347
|
+
return "";
|
|
15348
|
+
}
|
|
15349
|
+
function clauseTextOf(message, start, end) {
|
|
15350
|
+
let from = 0;
|
|
15351
|
+
for (const boundary of message.slice(0, start).matchAll(CLAUSE_BOUNDARY)) {
|
|
15352
|
+
from = (boundary.index ?? 0) + boundary[0].length;
|
|
15353
|
+
}
|
|
15354
|
+
let to = message.length;
|
|
15355
|
+
for (const boundary of message.slice(end).matchAll(CLAUSE_BOUNDARY)) {
|
|
15356
|
+
to = end + (boundary.index ?? 0);
|
|
15357
|
+
break;
|
|
15358
|
+
}
|
|
15359
|
+
return message.slice(from, to).trim();
|
|
15360
|
+
}
|
|
15361
|
+
function stripErrorPrefixes(message) {
|
|
15362
|
+
return message.replace(LEADING_ERROR_PREFIXES, "").replace(EMBEDDED_ERROR_PREFIX, ": ");
|
|
15363
|
+
}
|
|
15242
15364
|
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
15365
|
const isReadableVersion = (value) => typeof value === "string" && READABLE_VERSION_PATTERN.test(value.trim());
|
|
15244
15366
|
const UP_TO_DATE_AFFIRMATION = "The application and server are up to date";
|
|
@@ -15256,9 +15378,15 @@ const INSTALL_IN_FLIGHT_RECHECK_MS = 1e4;
|
|
|
15256
15378
|
const LAUNCHCTL_NOT_LOADED_REGEX = /could not find|no such process/i;
|
|
15257
15379
|
const SEAL_PROBE_TIMEOUT_MS = 45e3;
|
|
15258
15380
|
const STARTUP_SEAL_PROBE_DELAY_MS = 15e3;
|
|
15381
|
+
const POST_WAKE_CHECK_DELAY_MS = 2e4;
|
|
15259
15382
|
function versionSuffix(version) {
|
|
15260
15383
|
return version ? ` to version ${version}` : "";
|
|
15261
15384
|
}
|
|
15385
|
+
function offlineTransportError() {
|
|
15386
|
+
return new Error(
|
|
15387
|
+
"net::ERR_INTERNET_DISCONNECTED - the machine reported no network, so no request was made"
|
|
15388
|
+
);
|
|
15389
|
+
}
|
|
15262
15390
|
function runCommand(command, args, options = {}) {
|
|
15263
15391
|
return new Promise((resolve) => {
|
|
15264
15392
|
node_child_process.execFile(
|
|
@@ -15313,6 +15441,47 @@ class UpdateService {
|
|
|
15313
15441
|
* available", which is how `shouldFilterUpdateError` would otherwise read it.
|
|
15314
15442
|
*/
|
|
15315
15443
|
updateStage = "idle";
|
|
15444
|
+
/**
|
|
15445
|
+
* How many app-channel checks are in flight right now.
|
|
15446
|
+
*
|
|
15447
|
+
* ONE OWNER PER FAILURE. The `autoUpdater` `error` event and the check that
|
|
15448
|
+
* caused it are two producers of the same user-facing message, and they used
|
|
15449
|
+
* to carry two different suppression rules: `checkForUpdates` refuses to send
|
|
15450
|
+
* for a silent check and the event handler sent regardless, so one transient
|
|
15451
|
+
* failure was reported twice and a background check was reported at all. A
|
|
15452
|
+
* check in flight owns its own failure report, so the handler stands down
|
|
15453
|
+
* while this is above zero. It is a DEPTH rather than a boolean because the
|
|
15454
|
+
* scheduled check and a click can overlap.
|
|
15455
|
+
*/
|
|
15456
|
+
appChecksInFlight = 0;
|
|
15457
|
+
/**
|
|
15458
|
+
* The attempt sequence in flight in the app channel, so a second check rides
|
|
15459
|
+
* it instead of doubling it.
|
|
15460
|
+
*
|
|
15461
|
+
* WHY THIS EXISTS, measured. Two checks are started at launch by different
|
|
15462
|
+
* owners - the renderer's mount effect and this process's own delayed check -
|
|
15463
|
+
* and QA round 1 measured the cost of letting them run independently while
|
|
15464
|
+
* the feed is down: six fetches in 6.6 s where the base made two
|
|
15465
|
+
* (`Q-2`), three per check because of the retries. The fetch is the same
|
|
15466
|
+
* request for the same feed, so the second caller awaits the first one's
|
|
15467
|
+
* sequence and the result is shared; `appChecksInFlight` stays at 1 for the
|
|
15468
|
+
* pair, which is also what keeps the `error` events of that one sequence owned
|
|
15469
|
+
* by the check that started it.
|
|
15470
|
+
*/
|
|
15471
|
+
appFeedFetchInFlight = null;
|
|
15472
|
+
/**
|
|
15473
|
+
* The wake-armed check, held so a second wake cannot arm a second one.
|
|
15474
|
+
*/
|
|
15475
|
+
postWakeCheckTimer = null;
|
|
15476
|
+
/**
|
|
15477
|
+
* The backoff between attempts at one app-channel feed fetch, in ms.
|
|
15478
|
+
*
|
|
15479
|
+
* Two retries, so three attempts, which is the bound a transient Wi-Fi roam
|
|
15480
|
+
* or resolver blip needs and short enough that a check the user is waiting on
|
|
15481
|
+
* still answers in seconds. A test overrides it rather than waiting 4 s per
|
|
15482
|
+
* case; nothing else does.
|
|
15483
|
+
*/
|
|
15484
|
+
appFeedRetryDelaysMs = [1e3, 3e3];
|
|
15316
15485
|
/** The last update the updater told us about, for its file metadata. */
|
|
15317
15486
|
lastUpdateInfo = null;
|
|
15318
15487
|
/**
|
|
@@ -15427,6 +15596,25 @@ class UpdateService {
|
|
|
15427
15596
|
}, STARTUP_SEAL_PROBE_DELAY_MS);
|
|
15428
15597
|
sealProbe.unref();
|
|
15429
15598
|
this.startPeriodicUpdateChecks();
|
|
15599
|
+
electron.powerMonitor.on("resume", () => this.armPostWakeCheck());
|
|
15600
|
+
}
|
|
15601
|
+
/**
|
|
15602
|
+
* Arm the single check that follows a resume, or leave the armed one alone.
|
|
15603
|
+
*
|
|
15604
|
+
* `unref`'d like the seal probe: a quit before it fires loses nothing, because
|
|
15605
|
+
* the next launch checks and the five-minute tick is still there.
|
|
15606
|
+
*/
|
|
15607
|
+
armPostWakeCheck() {
|
|
15608
|
+
if (this.postWakeCheckTimer) return;
|
|
15609
|
+
this.postWakeCheckTimer = setTimeout(() => {
|
|
15610
|
+
this.postWakeCheckTimer = null;
|
|
15611
|
+
logger.info(
|
|
15612
|
+
"Running the update check this machine's wake armed",
|
|
15613
|
+
LogFileType.UPDATE_SERVICE
|
|
15614
|
+
);
|
|
15615
|
+
void this.checkForAllUpdates(true);
|
|
15616
|
+
}, POST_WAKE_CHECK_DELAY_MS);
|
|
15617
|
+
this.postWakeCheckTimer.unref();
|
|
15430
15618
|
}
|
|
15431
15619
|
/**
|
|
15432
15620
|
* Start periodic update checks
|
|
@@ -16482,6 +16670,87 @@ ${heal.removed.join("\n")}`,
|
|
|
16482
16670
|
/**
|
|
16483
16671
|
* Set up event handlers for the autoUpdater
|
|
16484
16672
|
*/
|
|
16673
|
+
/**
|
|
16674
|
+
* One app-channel feed fetch, with its retries, as the owner of its failures.
|
|
16675
|
+
*
|
|
16676
|
+
* WHY A RETRY AND NOT A BETTER ERROR MESSAGE. The failures in the operator's
|
|
16677
|
+
* log are transients: a Wi-Fi change, a wake, a resolver blip. Every one of
|
|
16678
|
+
* them was followed by a check five minutes later that answered normally, so
|
|
16679
|
+
* the honest response to the first is to ask again rather than to tell the
|
|
16680
|
+
* user their network is down. Only a TRANSIENT failure is retried
|
|
16681
|
+
* (`transientTransportCode`), so a 404, a refused credential or a certificate
|
|
16682
|
+
* verdict still fails immediately and is not swallowed by a backoff.
|
|
16683
|
+
*
|
|
16684
|
+
* WHAT A CHECK CONCLUDES IS UNCHANGED, deliberately: a feed that never
|
|
16685
|
+
* arrived still reaches the caller as a rejected promise, and a check that
|
|
16686
|
+
* could not find out stays `unavailable` in the verdict. Retrying must not
|
|
16687
|
+
* turn "could not find out" into "nothing newer" - that conflation is this
|
|
16688
|
+
* repository's documented defect class, and it is why this is a retry rather
|
|
16689
|
+
* than an extra entry in `shouldFilterUpdateError` (whose filtered branch
|
|
16690
|
+
* emits `update-not-available`).
|
|
16691
|
+
*
|
|
16692
|
+
* The in-flight depth is held across the whole attempt sequence, so the
|
|
16693
|
+
* `error` events each attempt raises are owned by this call rather than
|
|
16694
|
+
* reported beside it.
|
|
16695
|
+
*/
|
|
16696
|
+
async runAppFeedCheck(fetchFeed) {
|
|
16697
|
+
if (this.appFeedFetchInFlight) return this.appFeedFetchInFlight;
|
|
16698
|
+
const sequence = this.runAppFeedAttempts(fetchFeed);
|
|
16699
|
+
this.appFeedFetchInFlight = sequence;
|
|
16700
|
+
try {
|
|
16701
|
+
return await sequence;
|
|
16702
|
+
} finally {
|
|
16703
|
+
this.appFeedFetchInFlight = null;
|
|
16704
|
+
}
|
|
16705
|
+
}
|
|
16706
|
+
/**
|
|
16707
|
+
* Whether Electron believes this machine has a network at all.
|
|
16708
|
+
*
|
|
16709
|
+
* The `typeof` guard is a constraint rather than defensiveness: this module is
|
|
16710
|
+
* bundled with Electron STUBBED by its own contract harness
|
|
16711
|
+
* (`scripts/update-robustness.test.mjs`), and a stub that does not answer this
|
|
16712
|
+
* question must not turn every check into a skip. A missing reading is read as
|
|
16713
|
+
* "reachable", which is the behaviour that existed before the gate.
|
|
16714
|
+
*/
|
|
16715
|
+
networkIsReachable() {
|
|
16716
|
+
return typeof electron.net?.isOnline === "function" ? electron.net.isOnline() : true;
|
|
16717
|
+
}
|
|
16718
|
+
/**
|
|
16719
|
+
* The attempt sequence itself: the retries, and the depth that owns them.
|
|
16720
|
+
*/
|
|
16721
|
+
async runAppFeedAttempts(fetchFeed) {
|
|
16722
|
+
this.appChecksInFlight += 1;
|
|
16723
|
+
try {
|
|
16724
|
+
const delays = this.appFeedRetryDelaysMs;
|
|
16725
|
+
for (let attempt = 0; ; attempt += 1) {
|
|
16726
|
+
try {
|
|
16727
|
+
if (!this.networkIsReachable()) {
|
|
16728
|
+
logger.info(
|
|
16729
|
+
`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})` : ""}.`,
|
|
16730
|
+
LogFileType.UPDATE_SERVICE
|
|
16731
|
+
);
|
|
16732
|
+
if (attempt >= delays.length) throw offlineTransportError();
|
|
16733
|
+
await new Promise(
|
|
16734
|
+
(resolve) => setTimeout(resolve, delays[attempt])
|
|
16735
|
+
);
|
|
16736
|
+
continue;
|
|
16737
|
+
}
|
|
16738
|
+
return await fetchFeed();
|
|
16739
|
+
} catch (error) {
|
|
16740
|
+
const code = transientTransportCode(error);
|
|
16741
|
+
if (code === null || attempt >= delays.length) throw error;
|
|
16742
|
+
const delay = delays[attempt];
|
|
16743
|
+
logger.warn(
|
|
16744
|
+
`Transient transport failure during the update check (${code}); retrying in ${delay}ms (attempt ${attempt + 2} of ${delays.length + 1})`,
|
|
16745
|
+
LogFileType.UPDATE_SERVICE
|
|
16746
|
+
);
|
|
16747
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
16748
|
+
}
|
|
16749
|
+
}
|
|
16750
|
+
} finally {
|
|
16751
|
+
this.appChecksInFlight -= 1;
|
|
16752
|
+
}
|
|
16753
|
+
}
|
|
16485
16754
|
setupUpdateEvents() {
|
|
16486
16755
|
electronUpdater.autoUpdater.on("update-available", (info) => {
|
|
16487
16756
|
logger.info("Update available:", LogFileType.UPDATE_SERVICE, info);
|
|
@@ -16513,6 +16782,17 @@ ${heal.removed.join("\n")}`,
|
|
|
16513
16782
|
electronUpdater.autoUpdater.on("error", (err) => {
|
|
16514
16783
|
logger.error("Update error:", LogFileType.UPDATE_SERVICE, err);
|
|
16515
16784
|
const actionable = this.updateStage !== "idle";
|
|
16785
|
+
if (!actionable && this.appChecksInFlight > 0) {
|
|
16786
|
+
logger.info(
|
|
16787
|
+
// The rule, at the point it is implemented: a check in flight owns
|
|
16788
|
+
// its own failure report, and an app-initiated check's owner is a
|
|
16789
|
+
// silent one - so this is the log line that replaces the alert the
|
|
16790
|
+
// operator saw, not a swallowed error.
|
|
16791
|
+
"Update error during an availability check: the check reports its own failure",
|
|
16792
|
+
LogFileType.UPDATE_SERVICE
|
|
16793
|
+
);
|
|
16794
|
+
return;
|
|
16795
|
+
}
|
|
16516
16796
|
const shouldFilter = !actionable && this.shouldFilterUpdateError(err);
|
|
16517
16797
|
if (shouldFilter) {
|
|
16518
16798
|
logger.info(
|
|
@@ -16522,7 +16802,7 @@ ${heal.removed.join("\n")}`,
|
|
|
16522
16802
|
version: electron.app.getVersion()
|
|
16523
16803
|
});
|
|
16524
16804
|
} else {
|
|
16525
|
-
this.sendToRenderer("update-error", err.message);
|
|
16805
|
+
this.sendToRenderer("update-error", stripErrorPrefixes(err.message));
|
|
16526
16806
|
}
|
|
16527
16807
|
});
|
|
16528
16808
|
electronUpdater.autoUpdater.on("download-progress", (progressObj) => {
|
|
@@ -16586,12 +16866,18 @@ ${heal.removed.join("\n")}`,
|
|
|
16586
16866
|
async (_event, options) => {
|
|
16587
16867
|
logger.info("Checking for UI updates...", LogFileType.UPDATE_SERVICE);
|
|
16588
16868
|
this.onCheckRequested(options);
|
|
16869
|
+
const reportFailure = options?.manual === true;
|
|
16589
16870
|
try {
|
|
16590
|
-
return await
|
|
16871
|
+
return await this.runAppFeedCheck(
|
|
16872
|
+
() => electronUpdater.autoUpdater.checkForUpdates()
|
|
16873
|
+
);
|
|
16591
16874
|
} catch (error) {
|
|
16592
16875
|
logger.error(
|
|
16593
16876
|
"Error checking for UI updates:",
|
|
16594
16877
|
LogFileType.UPDATE_SERVICE,
|
|
16878
|
+
// The failure is logged here whatever the caller is, because the log
|
|
16879
|
+
// is where an app-initiated check's failure belongs once it is not
|
|
16880
|
+
// reported.
|
|
16595
16881
|
error
|
|
16596
16882
|
);
|
|
16597
16883
|
const shouldFilter = this.shouldFilterUpdateError(error);
|
|
@@ -16610,6 +16896,13 @@ ${heal.removed.join("\n")}`,
|
|
|
16610
16896
|
cancellationToken: null
|
|
16611
16897
|
};
|
|
16612
16898
|
}
|
|
16899
|
+
if (!reportFailure) {
|
|
16900
|
+
logger.info(
|
|
16901
|
+
"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).",
|
|
16902
|
+
LogFileType.UPDATE_SERVICE
|
|
16903
|
+
);
|
|
16904
|
+
return null;
|
|
16905
|
+
}
|
|
16613
16906
|
throw error;
|
|
16614
16907
|
}
|
|
16615
16908
|
}
|
|
@@ -16641,7 +16934,10 @@ ${heal.removed.join("\n")}`,
|
|
|
16641
16934
|
this.onCheckRequested(options);
|
|
16642
16935
|
const silent = options?.silent === true;
|
|
16643
16936
|
try {
|
|
16644
|
-
return await this.checkForAllUpdates(
|
|
16937
|
+
return await this.checkForAllUpdates(
|
|
16938
|
+
silent,
|
|
16939
|
+
options?.manual === true
|
|
16940
|
+
);
|
|
16645
16941
|
} catch (error) {
|
|
16646
16942
|
logger.error(
|
|
16647
16943
|
"Error checking for all updates:",
|
|
@@ -16789,7 +17085,7 @@ ${heal.removed.join("\n")}`,
|
|
|
16789
17085
|
* says it with `unavailable` rather than by omission. `checkForAllUpdates`
|
|
16790
17086
|
* is what turns the pair into the one sentence a user reads.
|
|
16791
17087
|
*/
|
|
16792
|
-
async checkForUpdates(silent = false) {
|
|
17088
|
+
async checkForUpdates(silent = false, reportFailure = !silent) {
|
|
16793
17089
|
logger.info(
|
|
16794
17090
|
`Checking for updates... (silent mode: ${silent})`,
|
|
16795
17091
|
LogFileType.UPDATE_SERVICE
|
|
@@ -16868,7 +17164,9 @@ ${heal.removed.join("\n")}`,
|
|
|
16868
17164
|
}
|
|
16869
17165
|
let result;
|
|
16870
17166
|
try {
|
|
16871
|
-
result = await
|
|
17167
|
+
result = await this.runAppFeedCheck(
|
|
17168
|
+
() => electronUpdater.autoUpdater.checkForUpdates()
|
|
17169
|
+
);
|
|
16872
17170
|
} finally {
|
|
16873
17171
|
if (silent) {
|
|
16874
17172
|
electronUpdater.autoUpdater.removeAllListeners("update-not-available");
|
|
@@ -16897,10 +17195,16 @@ ${heal.removed.join("\n")}`,
|
|
|
16897
17195
|
LogFileType.UPDATE_SERVICE,
|
|
16898
17196
|
error
|
|
16899
17197
|
);
|
|
16900
|
-
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() &&
|
|
17198
|
+
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() && reportFailure) {
|
|
16901
17199
|
this.mainWindow.webContents.send(
|
|
16902
17200
|
"update-error",
|
|
16903
|
-
|
|
17201
|
+
/*
|
|
17202
|
+
* Cleaned of the nested `Error: ` prefixes a wrapped failure carries,
|
|
17203
|
+
* at the source: this string is shown to a person as the machine's own
|
|
17204
|
+
* words under the sentence the renderer builds from the same code, and
|
|
17205
|
+
* `Error: Error: net::...` is a nesting nobody asked for.
|
|
17206
|
+
*/
|
|
17207
|
+
stripErrorPrefixes(error.message)
|
|
16904
17208
|
);
|
|
16905
17209
|
}
|
|
16906
17210
|
return "unavailable";
|
|
@@ -17224,7 +17528,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17224
17528
|
* proved nothing, which is why "could not determine the version" returns
|
|
17225
17529
|
* `unavailable` rather than the `current` it used to read as.
|
|
17226
17530
|
*/
|
|
17227
|
-
async checkForBackendUpdates(silent = false) {
|
|
17531
|
+
async checkForBackendUpdates(silent = false, reportFailure = !silent) {
|
|
17228
17532
|
logger.info(
|
|
17229
17533
|
`Checking for backend updates... (silent mode: ${silent})`,
|
|
17230
17534
|
LogFileType.UPDATE_SERVICE
|
|
@@ -17251,6 +17555,13 @@ ${heal.removed.join("\n")}`,
|
|
|
17251
17555
|
);
|
|
17252
17556
|
return { status: "unavailable", info: null };
|
|
17253
17557
|
}
|
|
17558
|
+
if (!this.networkIsReachable()) {
|
|
17559
|
+
logger.info(
|
|
17560
|
+
"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.",
|
|
17561
|
+
LogFileType.UPDATE_SERVICE
|
|
17562
|
+
);
|
|
17563
|
+
return { status: "unavailable", info: null };
|
|
17564
|
+
}
|
|
17254
17565
|
const installedVersion = await this.getInstalledBackendVersion();
|
|
17255
17566
|
const latestVersion = await this.getLatestPypiVersion();
|
|
17256
17567
|
if (latestVersion) this.lastPublishedBackendVersion = latestVersion;
|
|
@@ -17259,7 +17570,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17259
17570
|
"Unable to determine backend versions.",
|
|
17260
17571
|
LogFileType.UPDATE_SERVICE
|
|
17261
17572
|
);
|
|
17262
|
-
if (
|
|
17573
|
+
if (reportFailure) {
|
|
17263
17574
|
this.sendToRenderer("backend-update-error", {
|
|
17264
17575
|
message: "Unable to determine backend version.",
|
|
17265
17576
|
phase: "check"
|
|
@@ -17272,7 +17583,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17272
17583
|
"The installed backend version could not be determined from the health endpoint.",
|
|
17273
17584
|
LogFileType.UPDATE_SERVICE
|
|
17274
17585
|
);
|
|
17275
|
-
if (
|
|
17586
|
+
if (reportFailure) {
|
|
17276
17587
|
this.sendToRenderer("backend-update-error", {
|
|
17277
17588
|
message: "The installed server version could not be determined, so no update was offered. Restart the app to try again.",
|
|
17278
17589
|
phase: "check"
|
|
@@ -17291,7 +17602,7 @@ ${heal.removed.join("\n")}`,
|
|
|
17291
17602
|
)} server version (installed: ${installedVersion}, published: ${latestVersion}); no status is reported rather than comparing an unreadable reading.`,
|
|
17292
17603
|
LogFileType.UPDATE_SERVICE
|
|
17293
17604
|
);
|
|
17294
|
-
if (
|
|
17605
|
+
if (reportFailure) {
|
|
17295
17606
|
this.sendToRenderer("backend-update-error", {
|
|
17296
17607
|
message: "Unable to determine backend version.",
|
|
17297
17608
|
phase: "check"
|
|
@@ -17352,7 +17663,14 @@ ${heal.removed.join("\n")}`,
|
|
|
17352
17663
|
);
|
|
17353
17664
|
if (!silent && this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
|
|
17354
17665
|
this.mainWindow.webContents.send("backend-update-error", {
|
|
17355
|
-
|
|
17666
|
+
/*
|
|
17667
|
+
* Cleaned at the source, the same way the app channel's report is:
|
|
17668
|
+
* this channel's real strings are Node errno forms, and a wrapped
|
|
17669
|
+
* one carries the inner `Error: ` prefix into the sentence a person
|
|
17670
|
+
* reads. The renderer maps what is left to a sentence; this is what
|
|
17671
|
+
* keeps that sentence's machine line readable.
|
|
17672
|
+
*/
|
|
17673
|
+
message: stripErrorPrefixes(error.message),
|
|
17356
17674
|
phase: "check"
|
|
17357
17675
|
});
|
|
17358
17676
|
}
|
|
@@ -17676,7 +17994,9 @@ ${pipRun.stderr.trim()}`,
|
|
|
17676
17994
|
}
|
|
17677
17995
|
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
|
|
17678
17996
|
this.mainWindow.webContents.send("backend-update-error", {
|
|
17679
|
-
|
|
17997
|
+
// Cleaned at the source, for the reason written on the check-phase
|
|
17998
|
+
// report above.
|
|
17999
|
+
message: stripErrorPrefixes(error.message),
|
|
17680
18000
|
phase: "update"
|
|
17681
18001
|
});
|
|
17682
18002
|
}
|
|
@@ -17695,9 +18015,9 @@ ${pipRun.stderr.trim()}`,
|
|
|
17695
18015
|
* carries it - each channel's own events are unchanged, and the verdict
|
|
17696
18016
|
* crosses the IPC boundary as this call's return value.
|
|
17697
18017
|
*/
|
|
17698
|
-
async checkForAllUpdates(silent = false) {
|
|
17699
|
-
const app2 = await this.checkForUpdates(silent);
|
|
17700
|
-
const server = await this.checkForBackendUpdates(silent);
|
|
18018
|
+
async checkForAllUpdates(silent = false, reportFailure = !silent) {
|
|
18019
|
+
const app2 = await this.checkForUpdates(silent, reportFailure);
|
|
18020
|
+
const server = await this.checkForBackendUpdates(silent, reportFailure);
|
|
17701
18021
|
return updateCheckVerdict({ app: app2, server: server.status });
|
|
17702
18022
|
}
|
|
17703
18023
|
/**
|
|
@@ -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.
|