local-operator-ui 0.31.8 → 0.31.10
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 +308 -49
- package/out/renderer/assets/{_basePickBy-CM6CmIFp.js → _basePickBy-9ROOwmxL.js} +1 -1
- package/out/renderer/assets/{_baseUniq-C_PbHIMV.js → _baseUniq-eE-r5ZZ4.js} +1 -1
- package/out/renderer/assets/{agent-details-page-DC0sQky0.js → agent-details-page-Vs9AZBwz.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-CBrJcFHF.js → agent-hub-page-CGJbElaY.js} +1 -1
- package/out/renderer/assets/{agents-page-CTw-MYYr.js → agents-page-tftebSEL.js} +2 -2
- package/out/renderer/assets/{arc-DrUEk02e.js → arc-DN4pJSIq.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CW6LvKX9.js → architectureDiagram-IEHRJDOE-uYP9fQLK.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-4ogTNs12.js → blockDiagram-JOT3LUYC-CmsXiKwe.js} +1 -1
- package/out/renderer/assets/{browser-page-iMdnjKCm.js → browser-page-Bu7bkVij.js} +1 -1
- package/out/renderer/assets/{browser-webauthn-prompt-C5PLWNNM.js → browser-webauthn-prompt-CCZq7UZY.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-C9J6_WCU.js → c4Diagram-VJAJSXHY-DSjqK2s4.js} +1 -1
- package/out/renderer/assets/channel-bHKgHeS_.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-S_BSO-Hr.js → chunk-4BMEZGHF-C1_SAsaq.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-CVy8PtwG.js → chunk-A2AXSNBT-Cq0zFbJT.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-B38TMTuJ.js → chunk-AEK57VVT-BcKdPjvg.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-8nX93svh.js → chunk-D6G4REZN-DRByxdTc.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-BgbNMOZE.js → chunk-RZ5BOZE2-Duscm0Bg.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-BNpmrMrQ.js → chunk-XZIHB7SX-BWEXg8AD.js} +1 -1
- package/out/renderer/assets/{classDiagram-GIVACNV2-C4j3K9wg.js → classDiagram-GIVACNV2-CU02kTw_.js} +1 -1
- package/out/renderer/assets/{classDiagram-v2-COTLJTTW-C4j3K9wg.js → classDiagram-v2-COTLJTTW-CU02kTw_.js} +1 -1
- package/out/renderer/assets/clone-ARdM9vXs.js +1 -0
- package/out/renderer/assets/{dagre-OKDRZEBW-BCX_miAW.js → dagre-OKDRZEBW-Cn7pFiK5.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-CAzJv9lq.js → diagram-SSKATNLV-LyA2eojc.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-DBFKrI1R.js → diagram-VNBRO52H-LPidUHcc.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-BMv_jdkl.js → erDiagram-Q7BY3M3F-CTjCMg7T.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-CVkQHh1o.js → flowDiagram-4HSFHLVR-BmWZ8kNr.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-Ct36PMFY.js → ganttDiagram-APWFNJXF-CfDRHTNJ.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-CFytZqHN.js → gitGraphDiagram-7IBYFJ6S-CEYh6RxP.js} +1 -1
- package/out/renderer/assets/{graph-CTLrBVeK.js → graph-_dzRI-I_.js} +1 -1
- package/out/renderer/assets/{index-DWyjbOQ1.js → index-BKqWQaFB.js} +1 -1
- package/out/renderer/assets/{index-DuQnzBvj.js → index-DPFT_2au.js} +1 -1
- package/out/renderer/assets/{index-C7KtPkib.js → index-tykR0DI9.js} +374 -374
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-B2VN0HcS.js → infoDiagram-PH2N3AL5-BRBj70Iz.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-EeQ9FZU_.js → journeyDiagram-U35MCT3I-kHoqijou.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-CWx17q1q.js → kanban-definition-NDS4AKOZ-DEpxCCmE.js} +1 -1
- package/out/renderer/assets/{layout-DxijCKSW.js → layout-C8CaQmGy.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-DKwZ9IUL.js → legacy-agents-page-TbzorhDj.js} +1 -1
- package/out/renderer/assets/{mermaid.core-BROGXuWS.js → mermaid.core-xrJy-S5f.js} +5 -5
- package/out/renderer/assets/{mesh-page-ljmpYH3c.js → mesh-page-Do2sLCUJ.js} +1 -1
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-MJVwWrDq.js → mindmap-definition-ALO5MXBD-BUYs8m2Y.js} +1 -1
- package/out/renderer/assets/{org-surface-gate-BeVNIdZG.js → org-surface-gate-9zY-gRI7.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-Bdk5nKMy.js → pieDiagram-IB7DONF6-DLyxJ6_z.js} +1 -1
- package/out/renderer/assets/{projects-page-qaSb7T1c.js → projects-page-pUwqeYdO.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-CuC3CzS2.js → quadrantDiagram-7GDLP6J5-DH7de3iA.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-D5QncMMi.js → radar-MK3ICKWK-07d8mdrE.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-CD8VvexI.js → radient-auth-buttons-8U1osKLe.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CIBLY5OK.js → requirementDiagram-KVF5MWMF-B32qFUIl.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-CfkXerpy.js → sankeyDiagram-QLVOVGJD-sbqxByYH.js} +1 -1
- package/out/renderer/assets/{schedules-page-DHSDg1Cx.js → schedules-page-XTDmccje.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-C7qAHp50.js → sequenceDiagram-X6HHIX6F-B73M11ec.js} +1 -1
- package/out/renderer/assets/{settings-page-B0Q3AzNJ.js → settings-page-CK0UZY_b.js} +66 -66
- package/out/renderer/assets/{stateDiagram-DGXRK772-DGrpcP97.js → stateDiagram-DGXRK772-B4WvgL0d.js} +1 -1
- package/out/renderer/assets/{stateDiagram-v2-YXO3MK2T-BtHrKykB.js → stateDiagram-v2-YXO3MK2T-DNtZ1inO.js} +1 -1
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-DAxKBrN7.js → timeline-definition-BDJGKUSR-C4QiFAyx.js} +1 -1
- package/out/renderer/assets/{use-download-agent-mutation-BWvEVFd-.js → use-download-agent-mutation-uGo2AQXO.js} +1 -1
- package/out/renderer/assets/{use-memberships-query-D1ABZPRc.js → use-memberships-query-CjIPH1YX.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-c8KzKHoZ.js → xychartDiagram-VJFVF3MP-wcBKtlf2.js} +1 -1
- package/out/renderer/index.html +1 -1
- package/package.json +2 -2
- package/out/renderer/assets/channel-C3fiRwpT.js +0 -1
- package/out/renderer/assets/clone-D0rpLafB.js +0 -1
package/out/main/index.js
CHANGED
|
@@ -4360,6 +4360,19 @@ install_live() {
|
|
|
4360
4360
|
# AppleScript, so no word of it needs escaping.
|
|
4361
4361
|
notify() {
|
|
4362
4362
|
[ -n "$1" ] || return 0
|
|
4363
|
+
# THE NOTIFICATION KILL SWITCH (LOCAL_OPERATOR_NO_NOTIFICATIONS). A test,
|
|
4364
|
+
# harness or evidence run that launched this app must not reach the operator's
|
|
4365
|
+
# real Notification Center, and this script is the one notice path nobody can
|
|
4366
|
+
# silence from inside the app: the app is dead while the watchdog runs. The
|
|
4367
|
+
# switch the LAUNCH carried therefore has to reach this environment too -
|
|
4368
|
+
# startRelaunchWatchdog passes it through the plan rather than relying on
|
|
4369
|
+
# inheritance - and PRESENCE is the rule, as the repo's two named spellings
|
|
4370
|
+
# resolve it: notification-launch.ts turns a present-but-empty launch key
|
|
4371
|
+
# into the silencing value, and notifications-off.mjs sets this key by name.
|
|
4372
|
+
# Any SET value silences - empty included, because an env block with an empty
|
|
4373
|
+
# default spells "a run", not "the user's own app" - and only an ABSENT key
|
|
4374
|
+
# arms. The "NAME+x" set-test (no colon) stays legal under set -u.
|
|
4375
|
+
[ -n "\${LOCAL_OPERATOR_NO_NOTIFICATIONS+x}" ] && return 0
|
|
4363
4376
|
osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv)' -e 'end run' "$1" "Local Operator" >/dev/null 2>&1 &
|
|
4364
4377
|
}
|
|
4365
4378
|
# launchctl list <label> exits 0 when the job is loaded and 113 when launchd has
|
|
@@ -4651,6 +4664,12 @@ exit 0
|
|
|
4651
4664
|
return {
|
|
4652
4665
|
script,
|
|
4653
4666
|
env: {
|
|
4667
|
+
// Presence, not truthiness (review minor, remediation round 2): the
|
|
4668
|
+
// caller resolves a present-but-empty launch key to the silencing value
|
|
4669
|
+
// the way `resolveNotificationLaunch` does, and an absent one writes
|
|
4670
|
+
// nothing - so whatever arrives here is written verbatim, and the
|
|
4671
|
+
// script's own guard silences on any set value.
|
|
4672
|
+
...input.noNotifications != null ? { LOCAL_OPERATOR_NO_NOTIFICATIONS: input.noNotifications } : {},
|
|
4654
4673
|
LO_UPDATE_WATCHDOG_APP_PID: String(input.appPid),
|
|
4655
4674
|
LO_UPDATE_WATCHDOG_APP_BUNDLE: input.appBundlePath,
|
|
4656
4675
|
LO_UPDATE_WATCHDOG_APP_NAME: input.executableName,
|
|
@@ -25281,6 +25300,10 @@ const SEAL_PROBE_TIMEOUT_MS = 45e3;
|
|
|
25281
25300
|
const STAGED_SIGNATURE_PROBE_TIMEOUT_MS = 2e4;
|
|
25282
25301
|
const STARTUP_SEAL_PROBE_DELAY_MS = 15e3;
|
|
25283
25302
|
const POST_WAKE_CHECK_DELAY_MS = 2e4;
|
|
25303
|
+
const DEFAULT_APP_FEED_DEADLINE_MS = 3e4;
|
|
25304
|
+
const DEFAULT_DOWNLOAD_STALL_TIMEOUT_MS = 9e4;
|
|
25305
|
+
const PYPI_VERSION_READ_TIMEOUT_MS = 1e4;
|
|
25306
|
+
const NPM_VERSION_READ_TIMEOUT_MS = 1e4;
|
|
25284
25307
|
function versionSuffix(version) {
|
|
25285
25308
|
return version ? ` to version ${version}` : "";
|
|
25286
25309
|
}
|
|
@@ -25289,6 +25312,13 @@ function offlineTransportError() {
|
|
|
25289
25312
|
"net::ERR_INTERNET_DISCONNECTED - the machine reported no network, so no request was made"
|
|
25290
25313
|
);
|
|
25291
25314
|
}
|
|
25315
|
+
function feedDeadlineError(deadlineMs) {
|
|
25316
|
+
return new Error(
|
|
25317
|
+
`net::ERR_TIMED_OUT - the update feed did not answer within ${Math.round(
|
|
25318
|
+
deadlineMs / 1e3
|
|
25319
|
+
)}s, so the attempt was abandoned`
|
|
25320
|
+
);
|
|
25321
|
+
}
|
|
25292
25322
|
function runCommand(command, args, options = {}) {
|
|
25293
25323
|
return new Promise((resolve) => {
|
|
25294
25324
|
node_child_process.execFile(
|
|
@@ -25578,6 +25608,21 @@ function startRelaunchWatchdog(input) {
|
|
|
25578
25608
|
target: input.targetVersion,
|
|
25579
25609
|
running: input.runningVersion
|
|
25580
25610
|
}),
|
|
25611
|
+
/*
|
|
25612
|
+
* The notification kill switch travels with the plan (operator report,
|
|
25613
|
+
* remediation round 1): the script's own `notify` is the one notice path
|
|
25614
|
+
* the app cannot silence from inside, so a launch that carried the switch
|
|
25615
|
+
* must place it in the script's environment explicitly rather than lean on
|
|
25616
|
+
* the spawn's `process.env` spread. Read from `launchEnv`, not `process.env`:
|
|
25617
|
+
* the app's own guard (`notificationsSilenced`) reads the LAUNCH's value for
|
|
25618
|
+
* the same reason - a fact about the launch must come from the launch.
|
|
25619
|
+
* RESOLVED, NOT PASSED THROUGH (review minor, remediation round 2): a
|
|
25620
|
+
* present-but-empty launch key becomes the silencing value exactly as
|
|
25621
|
+
* `resolveNotificationLaunch` resolves it for the backend child, so the
|
|
25622
|
+
* empty spelling cannot fall through to the script's osascript while the
|
|
25623
|
+
* repo's named rules call the same launch silenced.
|
|
25624
|
+
*/
|
|
25625
|
+
noNotifications: resolveNotificationLaunch(launchEnv)[NOTIFICATIONS_ENV] ?? null,
|
|
25581
25626
|
// Stated rather than read off `process.platform` at the plan: this
|
|
25582
25627
|
// watchdog exists for Squirrel.Mac's ShipIt, the guard above already
|
|
25583
25628
|
// refuses it anywhere else, and the script's two probes (launchd's job
|
|
@@ -25634,7 +25679,7 @@ const LAUNCH_HOLD_NOTICE_BUDGET_MS = LAUNCH_HOLD_NOTICE_DEADLINE_MS + LAUNCH_HOL
|
|
|
25634
25679
|
250;
|
|
25635
25680
|
function notificationsSilenced() {
|
|
25636
25681
|
const value = launchEnv[NOTIFICATIONS_ENV];
|
|
25637
|
-
return typeof value === "string"
|
|
25682
|
+
return typeof value === "string";
|
|
25638
25683
|
}
|
|
25639
25684
|
function bannerReportedShown(notice, deadlineMs) {
|
|
25640
25685
|
if (!electron.Notification.isSupported()) return Promise.resolve(false);
|
|
@@ -25766,6 +25811,25 @@ class UpdateService {
|
|
|
25766
25811
|
* available", which is how `shouldFilterUpdateError` would otherwise read it.
|
|
25767
25812
|
*/
|
|
25768
25813
|
updateStage = "idle";
|
|
25814
|
+
/**
|
|
25815
|
+
* How long an update download may make no progress before it is cancelled, in ms.
|
|
25816
|
+
*
|
|
25817
|
+
* The shipped value is `DEFAULT_DOWNLOAD_STALL_TIMEOUT_MS`; a test overrides
|
|
25818
|
+
* it to milliseconds, the same treatment as `appFeedRetryDelaysMs`.
|
|
25819
|
+
*/
|
|
25820
|
+
downloadStallTimeoutMs = DEFAULT_DOWNLOAD_STALL_TIMEOUT_MS;
|
|
25821
|
+
/**
|
|
25822
|
+
* The watchdog armed while a download is in flight, and the token it cancels.
|
|
25823
|
+
*
|
|
25824
|
+
* Armed on the download, reset on every `download-progress` event (the
|
|
25825
|
+
* download's own liveness signal), and on expiry it cancels the token, which
|
|
25826
|
+
* rejects `downloadUpdate` with the updater's `CancellationError` - its
|
|
25827
|
+
* message matches no filter, deliberately, because a download the user asked
|
|
25828
|
+
* for must report its failure rather than be answered "no updates
|
|
25829
|
+
* available".
|
|
25830
|
+
*/
|
|
25831
|
+
downloadStallWatchdog = null;
|
|
25832
|
+
downloadCancellationToken = null;
|
|
25769
25833
|
/**
|
|
25770
25834
|
* The install that just landed, for the one-line affirmation the next launch
|
|
25771
25835
|
* owes the user (UX U4). Null once it has been reported.
|
|
@@ -25785,6 +25849,23 @@ class UpdateService {
|
|
|
25785
25849
|
* scheduled check and a click can overlap.
|
|
25786
25850
|
*/
|
|
25787
25851
|
appChecksInFlight = 0;
|
|
25852
|
+
/**
|
|
25853
|
+
* Feed fetches a deadline has abandoned that have NOT settled yet.
|
|
25854
|
+
*
|
|
25855
|
+
* WHY THE OWNERSHIP RULE NEEDS ITS OWN SET. A fetch whose attempt expired is
|
|
25856
|
+
* still running inside the updater, and when it eventually fails the updater
|
|
25857
|
+
* emits `error` for it - measured at 2m29.6s after the check that started it
|
|
25858
|
+
* had to give up, in the operator's own log. That event belongs to a check
|
|
25859
|
+
* that has already answered its caller, so it must not be reported as fresh
|
|
25860
|
+
* news: while one of these is pending, an availability-stage `error` is
|
|
25861
|
+
* attributed to it and logged rather than sent, exactly as with a check in
|
|
25862
|
+
* flight. Membership ends when the fetch settles - its result is never read
|
|
25863
|
+
* as an answer, but its settle is the end of the window in which its events
|
|
25864
|
+
* are expected. Keyed by the promise itself: electron-updater answers a
|
|
25865
|
+
* re-entrant check with the still-pending promise, so the same fetch can be
|
|
25866
|
+
* abandoned by more than one sequence and that is the same window.
|
|
25867
|
+
*/
|
|
25868
|
+
appFeedAbandonedFetches = /* @__PURE__ */ new Set();
|
|
25788
25869
|
/**
|
|
25789
25870
|
* The attempt sequence in flight in the app channel, so a second check rides
|
|
25790
25871
|
* it instead of doubling it.
|
|
@@ -25800,6 +25881,21 @@ class UpdateService {
|
|
|
25800
25881
|
* by the check that started it.
|
|
25801
25882
|
*/
|
|
25802
25883
|
appFeedFetchInFlight = null;
|
|
25884
|
+
/**
|
|
25885
|
+
* The epoch of the sequence `appFeedFetchInFlight` holds, if any.
|
|
25886
|
+
*
|
|
25887
|
+
* WHY A NUMBER RIDES BESIDE THE PROMISE. A fetch attempt that expires frees
|
|
25888
|
+
* the latch (`awaitAppFeedFetch`), so a check arriving afterwards starts its
|
|
25889
|
+
* own attempt sequence instead of attending one that has already spent a
|
|
25890
|
+
* deadline. That opens the one window the unconditional clear could not
|
|
25891
|
+
* produce: the abandoned sequence is still running when a successor has
|
|
25892
|
+
* taken the latch, and the abandoned sequence's settle must not unpin the
|
|
25893
|
+
* successor. Every clear site therefore checks that the epoch it is clearing
|
|
25894
|
+
* is still the current one. (Before the deadline existed, a stalled sequence
|
|
25895
|
+
* never settled at all, so its clear never ran and the hazard could not
|
|
25896
|
+
* arise.)
|
|
25897
|
+
*/
|
|
25898
|
+
appFeedFetchEpoch = 0;
|
|
25803
25899
|
/**
|
|
25804
25900
|
* The wake-armed check, held so a second wake cannot arm a second one.
|
|
25805
25901
|
*/
|
|
@@ -25813,6 +25909,15 @@ class UpdateService {
|
|
|
25813
25909
|
* case; nothing else does.
|
|
25814
25910
|
*/
|
|
25815
25911
|
appFeedRetryDelaysMs = [1e3, 3e3];
|
|
25912
|
+
/**
|
|
25913
|
+
* How long ONE fetch attempt may run before it is abandoned, in ms.
|
|
25914
|
+
*
|
|
25915
|
+
* The shipped value is `DEFAULT_APP_FEED_DEADLINE_MS`; a test overrides it to
|
|
25916
|
+
* milliseconds rather than waiting half a minute per case, and the default is
|
|
25917
|
+
* asserted as a value in the suite so the bound cannot go missing behind the
|
|
25918
|
+
* narrowings.
|
|
25919
|
+
*/
|
|
25920
|
+
appFeedDeadlineMs = DEFAULT_APP_FEED_DEADLINE_MS;
|
|
25816
25921
|
/** The last update the updater told us about, for its file metadata. */
|
|
25817
25922
|
lastUpdateInfo = null;
|
|
25818
25923
|
/**
|
|
@@ -27499,6 +27604,7 @@ ${heal.removed.join("\n")}`,
|
|
|
27499
27604
|
this.updateCheckInterval = null;
|
|
27500
27605
|
}
|
|
27501
27606
|
this.stopInstallInFlightRecheck();
|
|
27607
|
+
this.clearDownloadStallWatchdog();
|
|
27502
27608
|
electronUpdater.autoUpdater.removeAllListeners();
|
|
27503
27609
|
electron.ipcMain.removeHandler("check-for-updates");
|
|
27504
27610
|
electron.ipcMain.removeHandler("check-for-backend-updates");
|
|
@@ -27538,12 +27644,14 @@ ${heal.removed.join("\n")}`,
|
|
|
27538
27644
|
*/
|
|
27539
27645
|
async runAppFeedCheck(fetchFeed) {
|
|
27540
27646
|
if (this.appFeedFetchInFlight) return this.appFeedFetchInFlight;
|
|
27541
|
-
const
|
|
27647
|
+
const epoch = this.appFeedFetchEpoch + 1;
|
|
27648
|
+
this.appFeedFetchEpoch = epoch;
|
|
27649
|
+
const sequence = this.runAppFeedAttempts(fetchFeed, epoch);
|
|
27542
27650
|
this.appFeedFetchInFlight = sequence;
|
|
27543
27651
|
try {
|
|
27544
27652
|
return await sequence;
|
|
27545
27653
|
} finally {
|
|
27546
|
-
this.appFeedFetchInFlight = null;
|
|
27654
|
+
if (this.appFeedFetchEpoch === epoch) this.appFeedFetchInFlight = null;
|
|
27547
27655
|
}
|
|
27548
27656
|
}
|
|
27549
27657
|
/**
|
|
@@ -27560,8 +27668,12 @@ ${heal.removed.join("\n")}`,
|
|
|
27560
27668
|
}
|
|
27561
27669
|
/**
|
|
27562
27670
|
* The attempt sequence itself: the retries, and the depth that owns them.
|
|
27671
|
+
*
|
|
27672
|
+
* `epoch` is the sequence's own latch epoch, passed down so the deadline's
|
|
27673
|
+
* latch-freeing is guarded the same way the caller's clear is (see
|
|
27674
|
+
* `appFeedFetchEpoch`).
|
|
27563
27675
|
*/
|
|
27564
|
-
async runAppFeedAttempts(fetchFeed) {
|
|
27676
|
+
async runAppFeedAttempts(fetchFeed, epoch) {
|
|
27565
27677
|
this.appChecksInFlight += 1;
|
|
27566
27678
|
try {
|
|
27567
27679
|
const delays = this.appFeedRetryDelaysMs;
|
|
@@ -27578,7 +27690,7 @@ ${heal.removed.join("\n")}`,
|
|
|
27578
27690
|
);
|
|
27579
27691
|
continue;
|
|
27580
27692
|
}
|
|
27581
|
-
return await fetchFeed();
|
|
27693
|
+
return await this.awaitAppFeedFetch(fetchFeed(), epoch);
|
|
27582
27694
|
} catch (error) {
|
|
27583
27695
|
const code = transientTransportCode(error);
|
|
27584
27696
|
if (code === null || attempt >= delays.length) throw error;
|
|
@@ -27594,6 +27706,112 @@ ${heal.removed.join("\n")}`,
|
|
|
27594
27706
|
this.appChecksInFlight -= 1;
|
|
27595
27707
|
}
|
|
27596
27708
|
}
|
|
27709
|
+
/**
|
|
27710
|
+
* One feed fetch, bounded by this service's own deadline.
|
|
27711
|
+
*
|
|
27712
|
+
* WHY A DEADLINE HERE RATHER THAN IN electron-updater: `checkForUpdates`'s
|
|
27713
|
+
* fetch goes through Electron's `net` module, which has no read deadline at
|
|
27714
|
+
* all, and the updater exposes no cancel for it - so a stalled-but-
|
|
27715
|
+
* established connection never settles and nothing downstream ever hears
|
|
27716
|
+
* back. The race below is the only bound available: the attempt rejects with
|
|
27717
|
+
* a transient-classified failure (`feedDeadlineError`), the ladder retries it
|
|
27718
|
+
* like any other transient, and what the check then reports is its ordinary
|
|
27719
|
+
* failure path - `null` for an app-initiated check, a rejection for one the
|
|
27720
|
+
* user pressed.
|
|
27721
|
+
*
|
|
27722
|
+
* THE ABANDONED FETCH IS REMEMBERED, not dropped: it is still running inside
|
|
27723
|
+
* the updater, it may settle minutes later, and its settle emits the same
|
|
27724
|
+
* `error` event any failed check emits - so it is counted for the duration
|
|
27725
|
+
* (`appFeedAbandonedFetches`), and its result is never read as this attempt's
|
|
27726
|
+
* answer (the race has already settled by then, and a settled promise cannot
|
|
27727
|
+
* resolve twice).
|
|
27728
|
+
*/
|
|
27729
|
+
awaitAppFeedFetch(fetch2, epoch) {
|
|
27730
|
+
return new Promise((resolve, reject) => {
|
|
27731
|
+
const deadline2 = setTimeout(() => {
|
|
27732
|
+
if (this.appFeedFetchEpoch === epoch) {
|
|
27733
|
+
this.appFeedFetchInFlight = null;
|
|
27734
|
+
}
|
|
27735
|
+
this.rememberAbandonedAppFeedFetch(fetch2);
|
|
27736
|
+
reject(feedDeadlineError(this.appFeedDeadlineMs));
|
|
27737
|
+
}, this.appFeedDeadlineMs);
|
|
27738
|
+
fetch2.then(
|
|
27739
|
+
(value) => {
|
|
27740
|
+
clearTimeout(deadline2);
|
|
27741
|
+
resolve(value);
|
|
27742
|
+
},
|
|
27743
|
+
(error) => {
|
|
27744
|
+
clearTimeout(deadline2);
|
|
27745
|
+
reject(error);
|
|
27746
|
+
}
|
|
27747
|
+
);
|
|
27748
|
+
});
|
|
27749
|
+
}
|
|
27750
|
+
/**
|
|
27751
|
+
* Count an abandoned fetch until it settles, so its late events are
|
|
27752
|
+
* attributed to it rather than reported as fresh news (see the set's own
|
|
27753
|
+
* docstring).
|
|
27754
|
+
*
|
|
27755
|
+
* Both handlers are the same function because either outcome ends the window:
|
|
27756
|
+
* the point is only that the fetch is still pending inside the updater,
|
|
27757
|
+
* whichever way it ends.
|
|
27758
|
+
*/
|
|
27759
|
+
rememberAbandonedAppFeedFetch(fetch2) {
|
|
27760
|
+
if (this.appFeedAbandonedFetches.has(fetch2)) return;
|
|
27761
|
+
this.appFeedAbandonedFetches.add(fetch2);
|
|
27762
|
+
const settled = () => {
|
|
27763
|
+
this.appFeedAbandonedFetches.delete(fetch2);
|
|
27764
|
+
};
|
|
27765
|
+
fetch2.then(settled, settled);
|
|
27766
|
+
}
|
|
27767
|
+
/**
|
|
27768
|
+
* Arm the download's stall watchdog for a fresh attempt.
|
|
27769
|
+
*
|
|
27770
|
+
* Replaces any timer left by a previous one rather than assuming none: there
|
|
27771
|
+
* can be only one download at a time (the IPC handler's stage and the
|
|
27772
|
+
* updater's own `downloadPromise` both enforce it), but the token-and-timer
|
|
27773
|
+
* pair is per attempt and must not leak into the next.
|
|
27774
|
+
*/
|
|
27775
|
+
armDownloadStallWatchdog(cancellationToken) {
|
|
27776
|
+
this.downloadCancellationToken = cancellationToken;
|
|
27777
|
+
this.resetDownloadStallWatchdog();
|
|
27778
|
+
}
|
|
27779
|
+
/**
|
|
27780
|
+
* Restart the stall clock: arming time, and every `download-progress` event.
|
|
27781
|
+
*
|
|
27782
|
+
* The reset is what makes the watchdog measure a GAP rather than a duration -
|
|
27783
|
+
* `download-progress` is the download's own liveness signal, so a download
|
|
27784
|
+
* that streams for an hour in chunks never fires it, while one that stops
|
|
27785
|
+
* after the first chunk fires it once.
|
|
27786
|
+
*/
|
|
27787
|
+
resetDownloadStallWatchdog() {
|
|
27788
|
+
if (this.downloadStallWatchdog) {
|
|
27789
|
+
clearTimeout(this.downloadStallWatchdog);
|
|
27790
|
+
this.downloadStallWatchdog = null;
|
|
27791
|
+
}
|
|
27792
|
+
const token = this.downloadCancellationToken;
|
|
27793
|
+
if (!token) return;
|
|
27794
|
+
this.downloadStallWatchdog = setTimeout(() => {
|
|
27795
|
+
this.downloadStallWatchdog = null;
|
|
27796
|
+
logger.warn(
|
|
27797
|
+
`The update download made no progress for ${this.downloadStallTimeoutMs}ms; cancelling it through the updater's own cancellation token.`,
|
|
27798
|
+
LogFileType.UPDATE_SERVICE
|
|
27799
|
+
);
|
|
27800
|
+
token.cancel();
|
|
27801
|
+
}, this.downloadStallTimeoutMs);
|
|
27802
|
+
}
|
|
27803
|
+
/**
|
|
27804
|
+
* Drop the watchdog AND the token; the download handler's `finally`, and
|
|
27805
|
+
* `dispose()`, so a timer can never outlive the attempt it was armed for or
|
|
27806
|
+
* fire into a later one.
|
|
27807
|
+
*/
|
|
27808
|
+
clearDownloadStallWatchdog() {
|
|
27809
|
+
if (this.downloadStallWatchdog) {
|
|
27810
|
+
clearTimeout(this.downloadStallWatchdog);
|
|
27811
|
+
this.downloadStallWatchdog = null;
|
|
27812
|
+
}
|
|
27813
|
+
this.downloadCancellationToken = null;
|
|
27814
|
+
}
|
|
27597
27815
|
setupUpdateEvents() {
|
|
27598
27816
|
electronUpdater.autoUpdater.on("update-available", (info) => {
|
|
27599
27817
|
logger.info("Update available:", LogFileType.UPDATE_SERVICE, info);
|
|
@@ -27625,13 +27843,14 @@ ${heal.removed.join("\n")}`,
|
|
|
27625
27843
|
electronUpdater.autoUpdater.on("error", (err) => {
|
|
27626
27844
|
logger.error("Update error:", LogFileType.UPDATE_SERVICE, err);
|
|
27627
27845
|
const actionable = this.updateStage !== "idle";
|
|
27628
|
-
if (!actionable && this.appChecksInFlight > 0) {
|
|
27846
|
+
if (!actionable && (this.appChecksInFlight > 0 || this.appFeedAbandonedFetches.size > 0)) {
|
|
27629
27847
|
logger.info(
|
|
27630
27848
|
// The rule, at the point it is implemented: a check in flight owns
|
|
27631
27849
|
// its own failure report, and an app-initiated check's owner is a
|
|
27632
27850
|
// silent one - so this is the log line that replaces the alert the
|
|
27633
|
-
// operator saw, not a swallowed error.
|
|
27634
|
-
|
|
27851
|
+
// operator saw, not a swallowed error. The same holds for a fetch
|
|
27852
|
+
// one of those checks has already given up on.
|
|
27853
|
+
"Update error during an availability check (or from a fetch one abandoned): the owning check reports its own failure",
|
|
27635
27854
|
LogFileType.UPDATE_SERVICE
|
|
27636
27855
|
);
|
|
27637
27856
|
return;
|
|
@@ -27654,6 +27873,7 @@ ${heal.removed.join("\n")}`,
|
|
|
27654
27873
|
LogFileType.UPDATE_SERVICE,
|
|
27655
27874
|
progressObj
|
|
27656
27875
|
);
|
|
27876
|
+
this.resetDownloadStallWatchdog();
|
|
27657
27877
|
if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
|
|
27658
27878
|
this.mainWindow.webContents.send("update-progress", progressObj);
|
|
27659
27879
|
}
|
|
@@ -27846,8 +28066,10 @@ ${heal.removed.join("\n")}`,
|
|
|
27846
28066
|
electron.ipcMain.handle("download-update", async () => {
|
|
27847
28067
|
logger.info("Downloading update...", LogFileType.UPDATE_SERVICE);
|
|
27848
28068
|
this.updateStage = "downloading";
|
|
28069
|
+
const cancellationToken = new electronUpdater.CancellationToken();
|
|
28070
|
+
this.armDownloadStallWatchdog(cancellationToken);
|
|
27849
28071
|
try {
|
|
27850
|
-
const downloadedPaths = await electronUpdater.autoUpdater.downloadUpdate();
|
|
28072
|
+
const downloadedPaths = await electronUpdater.autoUpdater.downloadUpdate(cancellationToken);
|
|
27851
28073
|
if (Array.isArray(downloadedPaths) && downloadedPaths.length > 0) {
|
|
27852
28074
|
this.downloadedArtifactPath = downloadedPaths[0];
|
|
27853
28075
|
}
|
|
@@ -27875,6 +28097,7 @@ ${heal.removed.join("\n")}`,
|
|
|
27875
28097
|
}
|
|
27876
28098
|
throw error;
|
|
27877
28099
|
} finally {
|
|
28100
|
+
this.clearDownloadStallWatchdog();
|
|
27878
28101
|
this.updateStage = "idle";
|
|
27879
28102
|
}
|
|
27880
28103
|
});
|
|
@@ -28113,26 +28336,44 @@ ${heal.removed.join("\n")}`,
|
|
|
28113
28336
|
return new Promise((resolve) => {
|
|
28114
28337
|
const packageName = "local-operator-ui";
|
|
28115
28338
|
const url = `https://registry.npmjs.org/${packageName}`;
|
|
28116
|
-
https__namespace.get(
|
|
28117
|
-
|
|
28118
|
-
|
|
28119
|
-
|
|
28120
|
-
|
|
28121
|
-
|
|
28122
|
-
|
|
28123
|
-
|
|
28124
|
-
|
|
28125
|
-
|
|
28126
|
-
|
|
28127
|
-
|
|
28128
|
-
|
|
28129
|
-
|
|
28130
|
-
|
|
28131
|
-
|
|
28132
|
-
|
|
28133
|
-
|
|
28134
|
-
|
|
28135
|
-
|
|
28339
|
+
const request = https__namespace.get(
|
|
28340
|
+
url,
|
|
28341
|
+
/*
|
|
28342
|
+
* The same socket timeout its PyPI sibling carries (agent review
|
|
28343
|
+
* minor-1, remediation round 1): without it a stalled registry
|
|
28344
|
+
* connection holds a non-silent npx check open, which is the bug
|
|
28345
|
+
* class this PR bounds for the feed.
|
|
28346
|
+
*/
|
|
28347
|
+
{ timeout: NPM_VERSION_READ_TIMEOUT_MS },
|
|
28348
|
+
(res) => {
|
|
28349
|
+
let data = "";
|
|
28350
|
+
res.on("data", (chunk) => {
|
|
28351
|
+
data += chunk;
|
|
28352
|
+
});
|
|
28353
|
+
res.on("end", () => {
|
|
28354
|
+
try {
|
|
28355
|
+
const packageInfo = JSON.parse(data);
|
|
28356
|
+
const latestVersion = packageInfo["dist-tags"]?.latest;
|
|
28357
|
+
resolve(latestVersion || null);
|
|
28358
|
+
} catch (error) {
|
|
28359
|
+
logger.error(
|
|
28360
|
+
"Error parsing npm registry response:",
|
|
28361
|
+
LogFileType.UPDATE_SERVICE,
|
|
28362
|
+
error
|
|
28363
|
+
);
|
|
28364
|
+
resolve(null);
|
|
28365
|
+
}
|
|
28366
|
+
});
|
|
28367
|
+
}
|
|
28368
|
+
);
|
|
28369
|
+
request.on("timeout", () => {
|
|
28370
|
+
request.destroy(
|
|
28371
|
+
new Error(
|
|
28372
|
+
`The npm version read did not answer within ${NPM_VERSION_READ_TIMEOUT_MS}ms`
|
|
28373
|
+
)
|
|
28374
|
+
);
|
|
28375
|
+
});
|
|
28376
|
+
request.on("error", (error) => {
|
|
28136
28377
|
logger.error(
|
|
28137
28378
|
"Error fetching from npm registry:",
|
|
28138
28379
|
LogFileType.UPDATE_SERVICE,
|
|
@@ -28330,26 +28571,44 @@ ${heal.removed.join("\n")}`,
|
|
|
28330
28571
|
getLatestPypiVersion() {
|
|
28331
28572
|
return new Promise((resolve) => {
|
|
28332
28573
|
const url = "https://pypi.org/pypi/local-operator/json";
|
|
28333
|
-
https__namespace.get(
|
|
28334
|
-
|
|
28335
|
-
|
|
28336
|
-
|
|
28337
|
-
|
|
28338
|
-
|
|
28339
|
-
|
|
28340
|
-
|
|
28341
|
-
|
|
28342
|
-
|
|
28343
|
-
|
|
28344
|
-
|
|
28345
|
-
|
|
28346
|
-
|
|
28347
|
-
|
|
28348
|
-
|
|
28349
|
-
|
|
28350
|
-
|
|
28351
|
-
|
|
28352
|
-
|
|
28574
|
+
const request = https__namespace.get(
|
|
28575
|
+
url,
|
|
28576
|
+
/*
|
|
28577
|
+
* A socket timeout, so this read cannot hold `checkForAllUpdates`'s
|
|
28578
|
+
* sequential window open: the app channel already answers before the
|
|
28579
|
+
* server channel's first byte is asked for, and a stalled read here
|
|
28580
|
+
* was the one leg of the pair with no bound of any kind.
|
|
28581
|
+
*/
|
|
28582
|
+
{ timeout: PYPI_VERSION_READ_TIMEOUT_MS },
|
|
28583
|
+
(res) => {
|
|
28584
|
+
let data = "";
|
|
28585
|
+
res.on("data", (chunk) => {
|
|
28586
|
+
data += chunk;
|
|
28587
|
+
});
|
|
28588
|
+
res.on("end", () => {
|
|
28589
|
+
try {
|
|
28590
|
+
const packageInfo = JSON.parse(data);
|
|
28591
|
+
const latestVersion = packageInfo.info?.version;
|
|
28592
|
+
resolve(latestVersion || null);
|
|
28593
|
+
} catch (error) {
|
|
28594
|
+
logger.error(
|
|
28595
|
+
"Error parsing PyPI response:",
|
|
28596
|
+
LogFileType.UPDATE_SERVICE,
|
|
28597
|
+
error
|
|
28598
|
+
);
|
|
28599
|
+
resolve(null);
|
|
28600
|
+
}
|
|
28601
|
+
});
|
|
28602
|
+
}
|
|
28603
|
+
);
|
|
28604
|
+
request.on("timeout", () => {
|
|
28605
|
+
request.destroy(
|
|
28606
|
+
new Error(
|
|
28607
|
+
`The PyPI version read did not answer within ${PYPI_VERSION_READ_TIMEOUT_MS}ms`
|
|
28608
|
+
)
|
|
28609
|
+
);
|
|
28610
|
+
});
|
|
28611
|
+
request.on("error", (error) => {
|
|
28353
28612
|
logger.error(
|
|
28354
28613
|
"Error fetching from PyPI:",
|
|
28355
28614
|
LogFileType.UPDATE_SERVICE,
|
|
@@ -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-eE-r5ZZ4.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-xrJy-S5f.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-BROGXuWS.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-xrJy-S5f.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-DC0sQky0.js → agent-details-page-Vs9AZBwz.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as E,j as e,c as Z}from"./index-C-P4UaBn.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-
|
|
1
|
+
import{r as E,j as e,c as Z}from"./index-C-P4UaBn.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-CjIPH1YX.js";import{h as ne,g as I,aJ as b,aK as K,av as Y,aL as O,aM as we,aN as be,aO as ie,i as re,a as Ce,aw as Ne,aP as Ae,B as ke,aQ as Se,aR as De,aS as G,au as Te,aT as Ee,aU as Fe}from"./index-tykR0DI9.js";import{c as Pe,L as _e,T as ee,B as l,S as z,b as oe,d as L,e as M,a as v,X as qe,f as w,A as te,g as se,h as ae}from"./error-boundary-Be38BRVp.js";import{f as W,u as Le,i as Me,a as ze,b as Ie,c as Ke,O as Oe,H as Qe,A as Ue}from"./use-download-agent-mutation-uGo2AQXO.js";import"./console-mirror-DjoNpI7u.js";import"./en-US-BkS8Ixxl.js";import"./book-open-CNgko0U5.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{r as i,j as e,c as F}from"./index-C-P4UaBn.js";import{i as pe,aJ as ie,aQ as Ee,aR as he,aV as Le,r as Ie,h as Fe,aE as Me,g as $e,aK as De,aW as Ue,aL as Ye,aX as ge,aY as Ve,ax as qe,aw as be,c as Qe,an as Be,aZ as He}from"./index-
|
|
1
|
+
import{r as i,j as e,c as F}from"./index-C-P4UaBn.js";import{i as pe,aJ as ie,aQ as Ee,aR as he,aV as Le,r as Ie,h as Fe,aE as Me,g as $e,aK as De,aW as Ue,aL as Ye,aX as ge,aY as Ve,ax as qe,aw as be,c as Qe,an as Be,aZ as He}from"./index-tykR0DI9.js";import{o as je,u as We,a as Ge,C as Ze,b as Je}from"./org-surface-gate-9zY-gRI7.js";import{P as Ke}from"./page-header-BXIWLsA1.js";import{c as Xe,f as q,B as N,a as m,A as H,g as W,h as G,k as se,l as te,m as ne,n as re,o as Q,I as ea}from"./error-boundary-Be38BRVp.js";import{R as aa,u as sa}from"./radient-auth-buttons-8U1osKLe.js";import{e as ta,f as na,p as ra,P as ia,b as la,h as oa}from"./use-memberships-query-CjIPH1YX.js";import{O as ca,A as da,f as ua,H as ma,a as ha,b as ga,c as xa,d as ve,C as fa,u as pa,i as ba}from"./use-download-agent-mutation-uGo2AQXO.js";import"./console-mirror-DjoNpI7u.js";import"./en-US-BkS8Ixxl.js";import"./book-open-CNgko0U5.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|