@dotobokuri/fleet-console 1.5.1 → 1.5.3

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.
Files changed (61) hide show
  1. package/dist/cli-bin.mjs +297 -6
  2. package/dist/cli.mjs +297 -6
  3. package/dist/client/assets/{_baseUniq-Cj5iZsnm.js → _baseUniq-D0ScniwI.js} +1 -1
  4. package/dist/client/assets/{arc-Jbxpc55P.js → arc-BVncG7ke.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-Q4EWVU46-C2AL37ZH.js → architectureDiagram-Q4EWVU46-ClShr277.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-DXYQGD6D-Z33MGAR0.js → blockDiagram-DXYQGD6D-CrivdCAG.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AHTNJAMY-DTyyZjbr.js → c4Diagram-AHTNJAMY-B7PCIQAH.js} +1 -1
  8. package/dist/client/assets/channel-BQxlgV4A.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-MhU_yYsg.js → chunk-4BX2VUAB-DXeu-dM9.js} +1 -1
  10. package/dist/client/assets/{chunk-4TB4RGXK-rush3WYT.js → chunk-4TB4RGXK-BLl_OCcS.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-2q7GyaDY.js → chunk-55IACEB6-Dw15rh74.js} +1 -1
  12. package/dist/client/assets/{chunk-EDXVE4YY-BNJul5Gb.js → chunk-EDXVE4YY-D-RaYxb6.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-RLF-A4M2.js → chunk-FMBD7UC4-BURzGCgv.js} +1 -1
  14. package/dist/client/assets/{chunk-OYMX7WX6-O3WaO8eP.js → chunk-OYMX7WX6-RlVYpHiY.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-VmMF7Q4N.js → chunk-QZHKN3VN-Cwh5KNNT.js} +1 -1
  16. package/dist/client/assets/{chunk-YZCP3GAM-Bh6gYhu2.js → chunk-YZCP3GAM-CiQn7QhX.js} +1 -1
  17. package/dist/client/assets/classDiagram-6PBFFD2Q-DKVGUl6t.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-HSJHXN6E-DKVGUl6t.js +1 -0
  19. package/dist/client/assets/clone-BWF9pDhJ.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-D3DS835d.js → cose-bilkent-S5V4N54A-BjrkHodW.js} +1 -1
  21. package/dist/client/assets/{dagre-KV5264BT-Ciubq0vM.js → dagre-KV5264BT-C2l7dBaN.js} +1 -1
  22. package/dist/client/assets/{diagram-5BDNPKRD-BZZIvHWa.js → diagram-5BDNPKRD-DLbWU7o6.js} +1 -1
  23. package/dist/client/assets/{diagram-G4DWMVQ6-BtXUzyHa.js → diagram-G4DWMVQ6-CHa3wC_6.js} +1 -1
  24. package/dist/client/assets/{diagram-MMDJMWI5-DCUsuoWB.js → diagram-MMDJMWI5-unre4XlN.js} +1 -1
  25. package/dist/client/assets/{diagram-TYMM5635-B4qobpfh.js → diagram-TYMM5635-Cdt0vfut.js} +1 -1
  26. package/dist/client/assets/{erDiagram-SMLLAGMA-By9AUj2W.js → erDiagram-SMLLAGMA-BYzXAxxJ.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-DWJPFMVM-BwnN5h7R.js → flowDiagram-DWJPFMVM-CNV2iyQR.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-CXKwXiMU.js → ganttDiagram-T4ZO3ILL-DThuKZ5c.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-DNT5RSum.js → gitGraphDiagram-UUTBAWPF-aQ8ynpC0.js} +1 -1
  30. package/dist/client/assets/{graph-CjPVI8l2.js → graph-C8-VhfUV.js} +1 -1
  31. package/dist/client/assets/{index-BULfWUw5.js → index-BWz6DiTE.js} +150 -150
  32. package/dist/client/assets/index-DyIWJOIv.css +1 -0
  33. package/dist/client/assets/{infoDiagram-42DDH7IO-U_AT1-iD.js → infoDiagram-42DDH7IO-Do5t0VWS.js} +1 -1
  34. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-Qex4lNxT.js → ishikawaDiagram-UXIWVN3A-DIe1b4HJ.js} +1 -1
  35. package/dist/client/assets/{journeyDiagram-VCZTEJTY-DzQ-n2Dr.js → journeyDiagram-VCZTEJTY-BwHcjLfa.js} +1 -1
  36. package/dist/client/assets/{kanban-definition-6JOO6SKY-Nca0w4w_.js → kanban-definition-6JOO6SKY-B-zHtqTS.js} +1 -1
  37. package/dist/client/assets/{layout-CSAtztCW.js → layout-CtVjuQFw.js} +1 -1
  38. package/dist/client/assets/{linear-DCMai7XD.js → linear-rOcX3Xk5.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-DgeiljBl.js → mermaid.core-BJTjy7aS.js} +4 -4
  40. package/dist/client/assets/{min-CXx0Defw.js → min-BUMqT8iZ.js} +1 -1
  41. package/dist/client/assets/{mindmap-definition-QFDTVHPH-3eAEbAuc.js → mindmap-definition-QFDTVHPH-DW7Wysk_.js} +1 -1
  42. package/dist/client/assets/{pieDiagram-DEJITSTG-QzP0SY9Q.js → pieDiagram-DEJITSTG-DY0ruViO.js} +1 -1
  43. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-BESlSjcj.js → quadrantDiagram-34T5L4WZ-CCEy2zsl.js} +1 -1
  44. package/dist/client/assets/{requirementDiagram-MS252O5E-C_Epj4-C.js → requirementDiagram-MS252O5E-D6PFLt6T.js} +1 -1
  45. package/dist/client/assets/{sankeyDiagram-XADWPNL6-Djw1Duzy.js → sankeyDiagram-XADWPNL6-B07GNfPe.js} +1 -1
  46. package/dist/client/assets/{sequenceDiagram-FGHM5R23-Dx1GQsBc.js → sequenceDiagram-FGHM5R23-CdYYCcr6.js} +1 -1
  47. package/dist/client/assets/{stateDiagram-FHFEXIEX-CFbPjyzN.js → stateDiagram-FHFEXIEX-DC3oywwW.js} +1 -1
  48. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-D0vnD8Cl.js +1 -0
  49. package/dist/client/assets/{timeline-definition-GMOUNBTQ-eL6NFeHV.js → timeline-definition-GMOUNBTQ-D85mj2bC.js} +1 -1
  50. package/dist/client/assets/{vennDiagram-DHZGUBPP-DWTRRBRv.js → vennDiagram-DHZGUBPP-Co2lMv4A.js} +1 -1
  51. package/dist/client/assets/{wardley-RL74JXVD-lzn8v7--.js → wardley-RL74JXVD-3QSiNklf.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-CeSqsVbB.js → wardleyDiagram-NUSXRM2D-CHETmdOb.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-5P7HB3ND-CVYHXTp8.js → xychartDiagram-5P7HB3ND-ByAvOHKb.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/package.json +1 -1
  56. package/dist/client/assets/channel-C7CS_KI3.js +0 -1
  57. package/dist/client/assets/classDiagram-6PBFFD2Q-DNK0Ad4c.js +0 -1
  58. package/dist/client/assets/classDiagram-v2-HSJHXN6E-DNK0Ad4c.js +0 -1
  59. package/dist/client/assets/clone-DOhXj8NM.js +0 -1
  60. package/dist/client/assets/index-B2Ok0q13.css +0 -1
  61. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CqOKCF9r.js +0 -1
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { execFile, spawn, execSync } from 'child_process';
3
3
  import * as fs4 from 'fs';
4
- import fs4__default, { realpathSync, lstatSync } from 'fs';
4
+ import fs4__default, { existsSync, realpathSync, lstatSync } from 'fs';
5
5
  import * as path9 from 'path';
6
6
  import path9__default, { join, resolve, relative, dirname } from 'path';
7
7
  import process4 from 'process';
@@ -21349,6 +21349,75 @@ function assertNoAuthorizationHeader(config2) {
21349
21349
  throw new Error(`Builtin external MCP server "${config2.name}" must not define headers.`);
21350
21350
  }
21351
21351
  }
21352
+ var DEFAULT_WINDOWS_PATHEXT = ".COM;.EXE;.BAT;.CMD";
21353
+ var WINDOWS_PATH_SEPARATOR = ";";
21354
+ var WINDOWS_SHIM_EXTENSIONS = /* @__PURE__ */ new Set([".cmd", ".bat"]);
21355
+ var CMD_EXPANSION_SENSITIVE_PATTERN = /[%^]/;
21356
+ function resolvePathBinary(command2, env, options = {}) {
21357
+ const platform = options.platform ?? process.platform;
21358
+ const isWindows2 = platform === "win32";
21359
+ const pathValue = isWindows2 ? env.Path ?? env.PATH ?? "" : env.PATH ?? "";
21360
+ const pathExts = isWindows2 ? parsePathExt(env.PATHEXT) : [""];
21361
+ const resolved = findOnPath(command2, pathValue, pathExts, platform);
21362
+ return resolved ? wrapWindowsShim(resolved, env, platform) : void 0;
21363
+ }
21364
+ function wrapWindowsShim(resolved, env, platform) {
21365
+ if (platform !== "win32" || !WINDOWS_SHIM_EXTENSIONS.has(path9__default.extname(resolved).toLowerCase())) {
21366
+ return { bin: resolved, prefixArgs: [] };
21367
+ }
21368
+ rejectCmdExpansionSensitiveShim(resolved);
21369
+ return {
21370
+ bin: env.ComSpec ?? "cmd.exe",
21371
+ prefixArgs: ["/d", "/s", "/c", "call", forceWindowsArgQuoting(resolved)]
21372
+ };
21373
+ }
21374
+ function rejectCmdExpansionSensitiveShim(resolved) {
21375
+ if (CMD_EXPANSION_SENSITIVE_PATTERN.test(resolved)) {
21376
+ throw new Error(`Refusing to run Windows shim path with cmd.exe expansion-sensitive characters (% or ^): ${resolved}`);
21377
+ }
21378
+ }
21379
+ function forceWindowsArgQuoting(value) {
21380
+ return `${value} `;
21381
+ }
21382
+ function findOnPath(bin, pathValue, pathExts, platform) {
21383
+ const pathSeparator = platform === "win32" ? WINDOWS_PATH_SEPARATOR : path9__default.delimiter;
21384
+ if (hasPathSeparator(bin, platform) || path9__default.isAbsolute(bin)) {
21385
+ return resolveWithExtensions(bin, pathExts, platform);
21386
+ }
21387
+ for (const entry of pathValue.split(pathSeparator)) {
21388
+ const searchDir = entry.length === 0 ? "." : entry;
21389
+ const candidate = resolveWithExtensions(path9__default.join(searchDir, bin), pathExts, platform);
21390
+ if (candidate) {
21391
+ return candidate;
21392
+ }
21393
+ }
21394
+ return void 0;
21395
+ }
21396
+ function resolveWithExtensions(candidate, pathExts, platform) {
21397
+ if (platform !== "win32" || path9__default.extname(candidate).length > 0) {
21398
+ return existsSync(candidate) ? candidate : void 0;
21399
+ }
21400
+ for (const ext of pathExts) {
21401
+ if (ext.length === 0) {
21402
+ continue;
21403
+ }
21404
+ const withExt = `${candidate}${ext}`;
21405
+ if (existsSync(withExt)) {
21406
+ return withExt;
21407
+ }
21408
+ }
21409
+ return existsSync(candidate) ? candidate : void 0;
21410
+ }
21411
+ function hasPathSeparator(value, platform) {
21412
+ if (value.includes("/")) {
21413
+ return true;
21414
+ }
21415
+ return platform === "win32" && value.includes("\\");
21416
+ }
21417
+ function parsePathExt(pathExt) {
21418
+ const raw = pathExt && pathExt.trim().length > 0 ? pathExt : DEFAULT_WINDOWS_PATHEXT;
21419
+ return raw.split(WINDOWS_PATH_SEPARATOR).map((entry) => entry.trim()).filter((entry) => entry.length > 0);
21420
+ }
21352
21421
  var DEAD_SESSION_PATTERNS = [
21353
21422
  /session not found/i,
21354
21423
  /unknown session/i,
@@ -22060,6 +22129,146 @@ async function disconnect(poolKey) {
22060
22129
  async function executeWithPool(opts) {
22061
22130
  return engineExecuteWithPool(opts);
22062
22131
  }
22132
+ var NPM_REGISTRY_BASE_URL = "https://registry.npmjs.org/";
22133
+ var REGISTRY_TIMEOUT_MS = 3e3;
22134
+ var MAX_REGISTRY_RESPONSE_BYTES = 1024 * 1024;
22135
+ var VERSION_PATTERN = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/;
22136
+ async function fetchLatestVersion(packageName, channel) {
22137
+ const controller = new AbortController();
22138
+ const timer = setTimeout(() => controller.abort(), REGISTRY_TIMEOUT_MS);
22139
+ timer.unref?.();
22140
+ try {
22141
+ const response = await fetch(`${NPM_REGISTRY_BASE_URL}${encodeNpmPackageName(packageName)}`, {
22142
+ headers: {
22143
+ Accept: "application/vnd.npm.install-v1+json"
22144
+ },
22145
+ signal: controller.signal
22146
+ });
22147
+ if (!response.ok) {
22148
+ return void 0;
22149
+ }
22150
+ const metadata = await readJsonWithByteLimit(response, controller);
22151
+ if (metadata === void 0) {
22152
+ return void 0;
22153
+ }
22154
+ const latest = metadata["dist-tags"]?.[channel ?? "latest"];
22155
+ return typeof latest === "string" && latest.length > 0 ? latest : void 0;
22156
+ } catch {
22157
+ return void 0;
22158
+ } finally {
22159
+ clearTimeout(timer);
22160
+ }
22161
+ }
22162
+ function isVersionGreater(left, right) {
22163
+ const leftVersion = parseVersion(left);
22164
+ const rightVersion = parseVersion(right);
22165
+ if (leftVersion === void 0 || rightVersion === void 0) {
22166
+ return false;
22167
+ }
22168
+ return compareVersions(leftVersion, rightVersion) > 0;
22169
+ }
22170
+ function encodeNpmPackageName(packageName) {
22171
+ if (!packageName.startsWith("@")) {
22172
+ return encodeURIComponent(packageName);
22173
+ }
22174
+ const separatorIndex = packageName.indexOf("/");
22175
+ if (separatorIndex === -1) {
22176
+ return encodeURIComponent(packageName);
22177
+ }
22178
+ const scope = packageName.slice(1, separatorIndex);
22179
+ const name = packageName.slice(separatorIndex + 1);
22180
+ return `@${encodeURIComponent(scope)}%2f${encodeURIComponent(name)}`;
22181
+ }
22182
+ async function readJsonWithByteLimit(response, controller) {
22183
+ const body = response.body;
22184
+ if (body === null) {
22185
+ return void 0;
22186
+ }
22187
+ const reader = body.getReader();
22188
+ const chunks = [];
22189
+ let totalBytes = 0;
22190
+ try {
22191
+ while (true) {
22192
+ const { done, value } = await reader.read();
22193
+ if (done) {
22194
+ break;
22195
+ }
22196
+ totalBytes += value.byteLength;
22197
+ if (totalBytes > MAX_REGISTRY_RESPONSE_BYTES) {
22198
+ controller.abort();
22199
+ return void 0;
22200
+ }
22201
+ chunks.push(value);
22202
+ }
22203
+ return JSON.parse(new TextDecoder().decode(joinChunks(chunks, totalBytes)));
22204
+ } catch {
22205
+ return void 0;
22206
+ } finally {
22207
+ reader.releaseLock();
22208
+ }
22209
+ }
22210
+ function joinChunks(chunks, totalBytes) {
22211
+ const joined = new Uint8Array(totalBytes);
22212
+ let offset = 0;
22213
+ for (const chunk of chunks) {
22214
+ joined.set(chunk, offset);
22215
+ offset += chunk.byteLength;
22216
+ }
22217
+ return joined;
22218
+ }
22219
+ function parseVersion(version2) {
22220
+ const match = VERSION_PATTERN.exec(version2.trim());
22221
+ if (match === null) {
22222
+ return void 0;
22223
+ }
22224
+ return {
22225
+ major: Number(match[1]),
22226
+ minor: Number(match[2]),
22227
+ patch: Number(match[3]),
22228
+ pre: match[4]?.split(".") ?? []
22229
+ };
22230
+ }
22231
+ function compareVersions(left, right) {
22232
+ const base = compareNumbers(left.major, right.major) || compareNumbers(left.minor, right.minor) || compareNumbers(left.patch, right.patch);
22233
+ if (base !== 0) {
22234
+ return base;
22235
+ }
22236
+ if (left.pre.length === 0 || right.pre.length === 0) {
22237
+ return compareNumbers(right.pre.length, left.pre.length);
22238
+ }
22239
+ for (let index = 0; index < Math.max(left.pre.length, right.pre.length); index += 1) {
22240
+ const leftPart = left.pre[index];
22241
+ const rightPart = right.pre[index];
22242
+ if (leftPart === void 0 || rightPart === void 0) {
22243
+ return compareNumbers(left.pre.length, right.pre.length);
22244
+ }
22245
+ const compared = comparePrereleasePart(leftPart, rightPart);
22246
+ if (compared !== 0) {
22247
+ return compared;
22248
+ }
22249
+ }
22250
+ return 0;
22251
+ }
22252
+ function comparePrereleasePart(left, right) {
22253
+ const leftNumber = parseNumericPart(left);
22254
+ const rightNumber = parseNumericPart(right);
22255
+ if (leftNumber !== void 0 && rightNumber !== void 0) {
22256
+ return compareNumbers(leftNumber, rightNumber);
22257
+ }
22258
+ if (leftNumber !== void 0) {
22259
+ return -1;
22260
+ }
22261
+ if (rightNumber !== void 0) {
22262
+ return 1;
22263
+ }
22264
+ return left.localeCompare(right);
22265
+ }
22266
+ function parseNumericPart(value) {
22267
+ return /^\d+$/.test(value) ? Number(value) : void 0;
22268
+ }
22269
+ function compareNumbers(left, right) {
22270
+ return left === right ? 0 : left > right ? 1 : -1;
22271
+ }
22063
22272
  var SECURE_DIR_MODE = 448;
22064
22273
  var SECURE_FILE_MODE = 384;
22065
22274
  var NOFOLLOW_FLAG = fs4.constants.O_NOFOLLOW ?? 0;
@@ -34209,16 +34418,25 @@ function createDefaultTerminalLaunchResolver(deps = {}) {
34209
34418
  const execPath = deps.execPath ?? process4.execPath;
34210
34419
  const homedir2 = deps.homedir ?? DEFAULT_TERMINAL_CWD_FALLBACK;
34211
34420
  const exists = deps.exists ?? fs4__default.existsSync;
34421
+ const platform = deps.platform ?? process4.platform;
34212
34422
  const release = deps.release ?? readFleetConsoleRelease();
34213
34423
  return (selectedCwd, context) => {
34214
34424
  const cwd = selectedCwd || baseCwd || homedir2();
34215
34425
  if (context?.kind === "shell") {
34216
- return { bin: resolveUserShell(env), args: [], cwd, env: buildShellLaunchEnv(env) };
34426
+ const shell = resolveWindowsLaunchBinary(resolveUserShell(env, platform), [], env, platform, "user shell");
34427
+ return { bin: shell.bin, args: shell.args, cwd, env: buildShellLaunchEnv(env) };
34217
34428
  }
34218
34429
  const launchEnv = buildLaunchEnv(env, cwd, context?.sessionId);
34219
34430
  const override = parseTerminalCommand(env.FLEET_TERMINAL_CMD);
34220
34431
  if (override) {
34221
- return { ...override, cwd, env: launchEnv };
34432
+ const resolvedOverride = resolveWindowsLaunchBinary(
34433
+ override.bin,
34434
+ override.args,
34435
+ env,
34436
+ platform,
34437
+ "FLEET_TERMINAL_CMD"
34438
+ );
34439
+ return { ...resolvedOverride, cwd, env: launchEnv };
34222
34440
  }
34223
34441
  if (release.channel === "local") {
34224
34442
  const localCli = resolveSiblingFleetCliEntry(release.packageRoot, exists);
@@ -34229,7 +34447,14 @@ function createDefaultTerminalLaunchResolver(deps = {}) {
34229
34447
  }
34230
34448
  return { bin: execPath, args: [localCli, ...FLEET_HEADLESS_NATIVE_FLAGS], cwd, env: launchEnv };
34231
34449
  }
34232
- return { bin: "fleet", args: [...FLEET_HEADLESS_NATIVE_FLAGS], cwd, env: launchEnv };
34450
+ const stableFleet = resolveWindowsLaunchBinary(
34451
+ "fleet",
34452
+ [...FLEET_HEADLESS_NATIVE_FLAGS],
34453
+ env,
34454
+ platform,
34455
+ "fleet stable terminal binary"
34456
+ );
34457
+ return { ...stableFleet, cwd, env: launchEnv };
34233
34458
  };
34234
34459
  }
34235
34460
  function startTerminalShell(launch, size) {
@@ -34242,11 +34467,21 @@ function startTerminalShell(launch, size) {
34242
34467
  name: TERMINAL_TERM
34243
34468
  });
34244
34469
  }
34245
- function resolveUserShell(env) {
34470
+ function resolveUserShell(env, platform) {
34246
34471
  if (env.SHELL) return env.SHELL;
34247
- if (process4.platform === "win32") return env.ComSpec || "powershell.exe";
34472
+ if (platform === "win32") return env.ComSpec || "powershell.exe";
34248
34473
  return "/bin/bash";
34249
34474
  }
34475
+ function resolveWindowsLaunchBinary(bin, args, env, platform, label) {
34476
+ if (platform !== "win32") {
34477
+ return { bin, args };
34478
+ }
34479
+ const resolved = resolvePathBinary(bin, env, { platform });
34480
+ if (!resolved) {
34481
+ throw new Error(`${label} "${bin}" was not found on PATH; provide an absolute path or install it before launching a terminal session.`);
34482
+ }
34483
+ return { bin: resolved.bin, args: [...resolved.prefixArgs, ...args] };
34484
+ }
34250
34485
  function resolveSiblingFleetCliEntry(consolePackageRoot, exists = fs4__default.existsSync) {
34251
34486
  const candidate = expectedSiblingFleetCliEntry(consolePackageRoot);
34252
34487
  return exists(candidate) ? candidate : null;
@@ -34508,6 +34743,59 @@ var TheaterRegistry = class {
34508
34743
  }
34509
34744
  };
34510
34745
 
34746
+ // src/update-check.ts
34747
+ var FLEET_CONSOLE_PACKAGE_NAME = "@dotobokuri/fleet-console";
34748
+ var UPDATE_CHECK_TTL_MS = 60 * 60 * 1e3;
34749
+ var NO_UPDATE_STATUS = { updateAvailable: false };
34750
+ function createConsoleUpdateCheckService(deps = {}) {
34751
+ const readRelease = deps.readRelease ?? readFleetConsoleRelease;
34752
+ const fetchLatest = deps.fetchLatest ?? fetchLatestVersion;
34753
+ const isGreater = deps.isGreater ?? isVersionGreater;
34754
+ const now = deps.now ?? Date.now;
34755
+ const ttlMs = deps.ttlMs ?? UPDATE_CHECK_TTL_MS;
34756
+ let cached2 = null;
34757
+ let inFlight = null;
34758
+ const getStatus = () => {
34759
+ const current = cached2;
34760
+ if (current && now() - current.checkedAt < ttlMs) {
34761
+ return current.status;
34762
+ }
34763
+ void refresh();
34764
+ return current?.status ?? NO_UPDATE_STATUS;
34765
+ };
34766
+ const refresh = async () => {
34767
+ const current = cached2;
34768
+ if (current && now() - current.checkedAt < ttlMs) {
34769
+ return current.status;
34770
+ }
34771
+ if (inFlight) {
34772
+ return inFlight;
34773
+ }
34774
+ inFlight = resolveUpdateStatus().then((status) => {
34775
+ cached2 = { status, checkedAt: now() };
34776
+ return status;
34777
+ }).catch(() => {
34778
+ cached2 = { status: NO_UPDATE_STATUS, checkedAt: now() };
34779
+ return NO_UPDATE_STATUS;
34780
+ }).finally(() => {
34781
+ inFlight = null;
34782
+ });
34783
+ return inFlight;
34784
+ };
34785
+ const resolveUpdateStatus = async () => {
34786
+ const release = readRelease();
34787
+ if (release.channel === "local") {
34788
+ return NO_UPDATE_STATUS;
34789
+ }
34790
+ const latestVersion = await fetchLatest(FLEET_CONSOLE_PACKAGE_NAME);
34791
+ if (!latestVersion || !isGreater(latestVersion, release.version)) {
34792
+ return NO_UPDATE_STATUS;
34793
+ }
34794
+ return { updateAvailable: true, latestVersion };
34795
+ };
34796
+ return { getStatus, refresh };
34797
+ }
34798
+
34511
34799
  // src/server.ts
34512
34800
  var DEFAULT_HOST = "127.0.0.1";
34513
34801
  var DEFAULT_PORT = 0;
@@ -34524,6 +34812,7 @@ function createConsoleServer(deps = {}) {
34524
34812
  registerDefaultCarriers(carrierRegistry);
34525
34813
  const lock = createConsoleLock({ hostname: () => host });
34526
34814
  const observability = createConsoleObservabilityStore();
34815
+ const updateCheck = deps.updateCheck ?? createConsoleUpdateCheckService();
34527
34816
  const theaters = new TheaterRegistry();
34528
34817
  const terminalTickets = createTerminalTicketRegistry();
34529
34818
  const folderGrants = createFolderGrantStore();
@@ -34891,6 +35180,7 @@ function createConsoleServer(deps = {}) {
34891
35180
  jobs: observability.listWorkspaces().reduce((count, workspace) => count + observability.listJobs(workspace.tenantId).length, 0),
34892
35181
  version: version2,
34893
35182
  channel,
35183
+ ...updateCheck.getStatus(),
34894
35184
  port: lockHandle?.payload.port ?? port,
34895
35185
  wikiServerStatus: resolveWikiServerStatus(theaterId)
34896
35186
  };
@@ -35007,6 +35297,7 @@ function createConsoleServer(deps = {}) {
35007
35297
  });
35008
35298
  });
35009
35299
  if (!activeEndpoint) throw new Error("Console endpoint unavailable");
35300
+ void updateCheck.refresh();
35010
35301
  return activeEndpoint;
35011
35302
  },
35012
35303
  async stop() {
@@ -1 +1 @@
1
- import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-DgeiljBl.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Xn="__lodash_hash_undefined__";function Yn(n){return this.__data__.set(n,Xn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Yn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",X=P?P.prototype:void 0,S=X?X.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var D=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(D===void 0?O===v||f(O,v,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var b=n.constructor,E=r.constructor;b!=E&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Y="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==Y?c:a,h=h==Y?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function br(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=br(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):F(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Xr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,G)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:bn,Br=200;function Yr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Kr as b,an as c,yn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Yr as l,Zr as m,qr as n,cn as o,Gr as p,Cr as q,Xr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Dn as y};
1
+ import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-BJTjy7aS.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Xn="__lodash_hash_undefined__";function Yn(n){return this.__data__.set(n,Xn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Yn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",X=P?P.prototype:void 0,S=X?X.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var D=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(D===void 0?O===v||f(O,v,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var b=n.constructor,E=r.constructor;b!=E&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Y="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==Y?c:a,h=h==Y?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function br(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=br(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):F(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Xr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,G)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:bn,Br=200;function Yr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Kr as b,an as c,yn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Yr as l,Zr as m,qr as n,cn as o,Gr as p,Cr as q,Xr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Dn as y};
@@ -1 +1 @@
1
- import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-DgeiljBl.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-BJTjy7aS.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};