@snowyroad/braid 0.89.0 → 0.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -389,7 +389,7 @@ var InviteExpiredError = class extends Error {
389
389
  }
390
390
  };
391
391
  async function redeemInvite(relayHttpUrl, code) {
392
- const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-6KFDTGLV.js");
392
+ const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-Q7ZE2W5L.js");
393
393
  const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/invites/redeem`, {
394
394
  method: "POST",
395
395
  headers: { "content-type": "application/json" },
@@ -478,7 +478,7 @@ function validateReplacementToken(newToken, currentToken, nowMs = Date.now()) {
478
478
  return { ok: true };
479
479
  }
480
480
  async function mintAccessToken(relayHttpUrl, agentKey, fetchFn = fetch, dpopProof) {
481
- const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-6KFDTGLV.js");
481
+ const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-Q7ZE2W5L.js");
482
482
  const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/agents/token`, {
483
483
  method: "POST",
484
484
  headers: {
@@ -1323,6 +1323,141 @@ function dropVendorNotifications(input) {
1323
1323
 
1324
1324
  // src/acp/client.ts
1325
1325
  import { randomUUID } from "crypto";
1326
+
1327
+ // src/acp/activityContent.ts
1328
+ import { createTwoFilesPatch } from "diff";
1329
+ var BRIDGE_CAPS = {
1330
+ diffPatchBytes: 64 * 1024,
1331
+ diffPatchLines: 3e3,
1332
+ textBytes: 16 * 1024,
1333
+ eventContentBytes: 128 * 1024,
1334
+ truncationSuffix: "\n\u2026 [truncated]"
1335
+ };
1336
+ function capBytes(s, maxBytes) {
1337
+ const full = Buffer.from(s, "utf8");
1338
+ if (full.length <= maxBytes) return { value: s, truncated: false };
1339
+ let end = maxBytes;
1340
+ while (end > 0 && (full[end] & 192) === 128) end--;
1341
+ return { value: full.subarray(0, end).toString("utf8") + BRIDGE_CAPS.truncationSuffix, truncated: true };
1342
+ }
1343
+ function capLines(s, maxLines) {
1344
+ const lines = s.split("\n");
1345
+ if (lines.length <= maxLines) return { value: s, truncated: false };
1346
+ return { value: lines.slice(0, maxLines).join("\n") + BRIDGE_CAPS.truncationSuffix, truncated: true };
1347
+ }
1348
+ function buildActivityContent(raw) {
1349
+ if (!Array.isArray(raw) || raw.length === 0) return null;
1350
+ const out = [];
1351
+ let total = 0;
1352
+ for (const item of raw) {
1353
+ if (typeof item !== "object" || item === null) continue;
1354
+ const it = item;
1355
+ let built = null;
1356
+ if (it.type === "diff" && typeof it.path === "string" && typeof it.newText === "string") {
1357
+ const oldText = typeof it.oldText === "string" ? it.oldText : "";
1358
+ let patch = createTwoFilesPatch(it.path, it.path, oldText, it.newText, void 0, void 0, { context: 3 });
1359
+ const byLines = capLines(patch, BRIDGE_CAPS.diffPatchLines);
1360
+ const byBytes = capBytes(byLines.value, BRIDGE_CAPS.diffPatchBytes);
1361
+ built = { type: "diff", path: it.path, patch: byBytes.value, truncated: byLines.truncated || byBytes.truncated };
1362
+ } else if (it.type === "content") {
1363
+ const block = it.content;
1364
+ if (block?.type === "text" && typeof block.text === "string" && block.text.length > 0) {
1365
+ const capped = capBytes(block.text, BRIDGE_CAPS.textBytes);
1366
+ built = { type: "text", text: capped.value, truncated: capped.truncated };
1367
+ }
1368
+ }
1369
+ if (!built) continue;
1370
+ const size = Buffer.byteLength(built.patch ?? built.text ?? "", "utf8");
1371
+ if (total + size > BRIDGE_CAPS.eventContentBytes) {
1372
+ if (out.length > 0) out[out.length - 1].truncated = true;
1373
+ break;
1374
+ }
1375
+ total += size;
1376
+ out.push(built);
1377
+ }
1378
+ return out.length > 0 ? out : null;
1379
+ }
1380
+
1381
+ // src/acp/thoughtBuffer.ts
1382
+ var THOUGHT_CAPS = {
1383
+ segmentBytes: 8 * 1024,
1384
+ turnBytes: 64 * 1024
1385
+ };
1386
+ var ThoughtBuffer = class {
1387
+ constructor(turnId) {
1388
+ this.turnId = turnId;
1389
+ }
1390
+ turnId;
1391
+ pending = "";
1392
+ seq = 0;
1393
+ accepted = 0;
1394
+ last = null;
1395
+ /**
1396
+ * Append thought text. A no-op once the per-turn budget (THOUGHT_CAPS.turnBytes)
1397
+ * has already been reached; otherwise accepts as much of `text` as fits the
1398
+ * remaining budget (UTF-8-safe cut via capBytes) and never more.
1399
+ */
1400
+ append(text) {
1401
+ if (this.accepted >= THOUGHT_CAPS.turnBytes) return;
1402
+ const room = THOUGHT_CAPS.turnBytes - this.accepted;
1403
+ const bytes = Buffer.byteLength(text, "utf8");
1404
+ if (bytes <= room) {
1405
+ this.pending += text;
1406
+ this.accepted += bytes;
1407
+ return;
1408
+ }
1409
+ const capped = capBytes(text, room);
1410
+ this.pending += capped.value;
1411
+ this.accepted = THOUGHT_CAPS.turnBytes;
1412
+ }
1413
+ /** True once pending text has reached the per-segment auto-flush threshold. */
1414
+ shouldFlush() {
1415
+ return Buffer.byteLength(this.pending, "utf8") >= THOUGHT_CAPS.segmentBytes;
1416
+ }
1417
+ /**
1418
+ * Flush pending text into one thought segment with a monotonic seq id, or
1419
+ * null when nothing is pending. The segment is marked truncated when either
1420
+ * the pending text itself exceeded segmentBytes (capBytes truncation) or the
1421
+ * per-turn budget has been fully consumed (this is therefore the LAST segment
1422
+ * the turn will ever produce).
1423
+ */
1424
+ flush() {
1425
+ if (this.pending.length === 0) return null;
1426
+ const capped = capBytes(this.pending, THOUGHT_CAPS.segmentBytes);
1427
+ const atTurnBudget = this.accepted >= THOUGHT_CAPS.turnBytes;
1428
+ if (capped.truncated) {
1429
+ const suffixBytes = Buffer.byteLength(BRIDGE_CAPS.truncationSuffix, "utf8");
1430
+ const keptContentBytes = Buffer.byteLength(capped.value, "utf8") - suffixBytes;
1431
+ const rawBytes = Buffer.byteLength(this.pending, "utf8");
1432
+ this.accepted -= rawBytes - keptContentBytes;
1433
+ }
1434
+ const segment = {
1435
+ turnId: this.turnId,
1436
+ toolCallId: `thought:${this.turnId}:${this.seq}`,
1437
+ eventType: "thought",
1438
+ kind: "think",
1439
+ title: null,
1440
+ status: "completed",
1441
+ locations: null,
1442
+ ts: Date.now(),
1443
+ content: [{ type: "text", text: capped.value, truncated: capped.truncated || atTurnBudget }]
1444
+ };
1445
+ this.seq += 1;
1446
+ this.pending = "";
1447
+ this.last = segment;
1448
+ return segment;
1449
+ }
1450
+ /** Total bytes accepted across the whole turn (all segments combined). */
1451
+ totalAccepted() {
1452
+ return this.accepted;
1453
+ }
1454
+ /** The most recently flushed segment, or null if none has been flushed yet. */
1455
+ lastFlushed() {
1456
+ return this.last;
1457
+ }
1458
+ };
1459
+
1460
+ // src/acp/client.ts
1326
1461
  var BRIDGE_ENV_PREFIXES = [
1327
1462
  "BRAID_",
1328
1463
  "ARP_"
@@ -1340,6 +1475,17 @@ function buildAcpEnv(base, extra, stripKeys) {
1340
1475
  return merged;
1341
1476
  }
1342
1477
  var STOP_DRAIN_MS = 3e3;
1478
+ var WARMUP_CEILING_MS = 12e4;
1479
+ var WarmupCeilingError = class extends Error {
1480
+ constructor(ceilingMs) {
1481
+ super(
1482
+ `ACP agent warm-up timed out after ${ceilingMs}ms \u2014 the agent process started but never completed the initialize/session handshake (commonly a stalled login/auth prompt, or a slow first-run adapter download). Aborted.`
1483
+ );
1484
+ this.ceilingMs = ceilingMs;
1485
+ this.name = "WarmupCeilingError";
1486
+ }
1487
+ ceilingMs;
1488
+ };
1343
1489
  function killProcessGroup(child, signal) {
1344
1490
  const pid = child.pid;
1345
1491
  try {
@@ -1371,17 +1517,19 @@ function safeAcpToolName(tc) {
1371
1517
  return tc?.kind ?? "unknown";
1372
1518
  }
1373
1519
  var AcpClient = class {
1374
- constructor(launch, scopeWrap, afterChildExitHook, telemetry) {
1520
+ constructor(launch, scopeWrap, afterChildExitHook, telemetry, warmupCeilingMs = WARMUP_CEILING_MS) {
1375
1521
  this.launch = launch;
1376
1522
  this.scopeWrap = scopeWrap;
1377
1523
  this.afterChildExitHook = afterChildExitHook;
1378
1524
  this.telemetry = telemetry;
1525
+ this.warmupCeilingMs = warmupCeilingMs;
1379
1526
  this.policy = launch.policy ?? { mode: "readonly", configDirAbs: configDir(process.env) };
1380
1527
  }
1381
1528
  launch;
1382
1529
  scopeWrap;
1383
1530
  afterChildExitHook;
1384
1531
  telemetry;
1532
+ warmupCeilingMs;
1385
1533
  /** The tool permission policy; defaults FAIL-SAFE to readonly (never to approval). */
1386
1534
  policy;
1387
1535
  child = null;
@@ -1449,13 +1597,31 @@ var AcpClient = class {
1449
1597
  this.currentTurnOverrideMode = void 0;
1450
1598
  this.exitRejecters.clear();
1451
1599
  try {
1452
- await this.startInner();
1600
+ await this.withWarmupCeiling(this.startInner());
1453
1601
  } catch (err) {
1454
1602
  await this.stop().catch(() => {
1455
1603
  });
1456
1604
  throw err;
1457
1605
  }
1458
1606
  }
1607
+ /** Race the warm-up against the fixed ceiling so start() can never hang unbounded
1608
+ * (G1). On timeout it rejects with WarmupCeilingError; the caller's catch reaps the
1609
+ * subprocess (G2). The timer is cleared on every path (no leak), and a late inner
1610
+ * rejection after the ceiling already won is swallowed so it cannot surface as an
1611
+ * unhandledRejection. */
1612
+ async withWarmupCeiling(inner) {
1613
+ inner.catch(() => {
1614
+ });
1615
+ let timer;
1616
+ const ceiling = new Promise((_, reject) => {
1617
+ timer = setTimeout(() => reject(new WarmupCeilingError(this.warmupCeilingMs)), this.warmupCeilingMs);
1618
+ });
1619
+ try {
1620
+ await Promise.race([inner, ceiling]);
1621
+ } finally {
1622
+ if (timer) clearTimeout(timer);
1623
+ }
1624
+ }
1459
1625
  async startInner() {
1460
1626
  const spec = this.scopeWrap ? await this.scopeWrap(this.launch) : this.launch;
1461
1627
  const child = spawn(spec.command, spec.args, {
@@ -1535,6 +1701,7 @@ var AcpClient = class {
1535
1701
  }
1536
1702
  }
1537
1703
  if ((u.sessionUpdate === "tool_call" || u.sessionUpdate === "tool_call_update") && this.launch.onActivity && this.activeTurnBuffer) {
1704
+ this.emitThoughtSegment(this.activeTurnBuffer.thoughts);
1538
1705
  this.emitActivity(u.sessionUpdate, u, this.activeTurnBuffer.turnId);
1539
1706
  }
1540
1707
  if (this.launch.onPlan && this.activeTurnBuffer) {
@@ -1545,6 +1712,12 @@ var AcpClient = class {
1545
1712
  this.emitPlan(pu.plan ?? {}, this.activeTurnBuffer.turnId);
1546
1713
  }
1547
1714
  }
1715
+ if (u.sessionUpdate === "agent_thought_chunk" && u.content?.type === "text" && this.activeTurnBuffer) {
1716
+ this.activeTurnBuffer.thoughts.append(u.content.text);
1717
+ if (this.activeTurnBuffer.thoughts.shouldFlush()) {
1718
+ this.emitThoughtSegment(this.activeTurnBuffer.thoughts);
1719
+ }
1720
+ }
1548
1721
  },
1549
1722
  requestPermission: async (req) => {
1550
1723
  const mode = this.currentTurnOverrideMode ?? this.policy.mode;
@@ -1630,10 +1803,11 @@ var AcpClient = class {
1630
1803
  return run;
1631
1804
  }
1632
1805
  /**
1633
- * Normalize one ACP tool-call update (metadata only) and hand it to the activity
1634
- * sink, stamped with this turn's turnId. Never throws: a sink fault is caught and
1635
- * logged so it cannot break the turn. SLICE 1: deliberately drops content,
1636
- * rawInput, and rawOutput — only kind/title/status/locations are carried.
1806
+ * Normalize one ACP tool-call update and hand it to the activity sink, stamped
1807
+ * with this turn's turnId. Never throws: a sink fault is caught and logged so it
1808
+ * cannot break the turn. BL-034: `content` (capped diffs/text, closed vocabulary)
1809
+ * is now extracted via buildActivityContent; rawInput and rawOutput are still
1810
+ * never read (G12) — only kind/title/status/locations/content are carried.
1637
1811
  */
1638
1812
  emitActivity(eventType, u, turnId) {
1639
1813
  const sink = this.launch.onActivity;
@@ -1647,7 +1821,8 @@ var AcpClient = class {
1647
1821
  title: u.title ?? null,
1648
1822
  status: u.status ?? null,
1649
1823
  locations,
1650
- ts: Date.now()
1824
+ ts: Date.now(),
1825
+ content: buildActivityContent(u.content)
1651
1826
  };
1652
1827
  try {
1653
1828
  sink(event);
@@ -1657,6 +1832,26 @@ var AcpClient = class {
1657
1832
  );
1658
1833
  }
1659
1834
  }
1835
+ /**
1836
+ * BL-034 D5: flush a ThoughtBuffer's pending text (if any) and hand the resulting
1837
+ * thought segment to the SAME onActivity sink emitActivity uses — same
1838
+ * try/catch-warn shape so a sink fault is caught and logged rather than breaking
1839
+ * the turn. A no-op when nothing is pending (flush() returns null) or no sink is
1840
+ * configured.
1841
+ */
1842
+ emitThoughtSegment(thoughts) {
1843
+ const sink = this.launch.onActivity;
1844
+ if (!sink) return;
1845
+ const segment = thoughts.flush();
1846
+ if (!segment) return;
1847
+ try {
1848
+ sink(segment);
1849
+ } catch (err) {
1850
+ console.warn(
1851
+ `[braid] onActivity sink threw (ignored): ${sanitizeForTty(String(err?.message ?? err))}`
1852
+ );
1853
+ }
1854
+ }
1660
1855
  /**
1661
1856
  * Normalize one ACP plan snapshot and hand it to the plan sink, stamped with the
1662
1857
  * turn's turnId. Never throws: a sink fault is caught and logged. Entries with a
@@ -1684,7 +1879,11 @@ var AcpClient = class {
1684
1879
  throw new Error("AcpClient.submit called before start()");
1685
1880
  }
1686
1881
  const turnId = randomUUID();
1687
- const buffer = { text: "", turnId };
1882
+ const buffer = {
1883
+ text: "",
1884
+ turnId,
1885
+ thoughts: new ThoughtBuffer(turnId)
1886
+ };
1688
1887
  this.activeTurnBuffer = buffer;
1689
1888
  this.currentTurnOverrideMode = overrideMode;
1690
1889
  try {
@@ -1710,6 +1909,7 @@ var AcpClient = class {
1710
1909
  }
1711
1910
  return { text: buffer.text, usage: buffer.usage, turnId };
1712
1911
  } finally {
1912
+ this.emitThoughtSegment(buffer.thoughts);
1713
1913
  if (this.activeTurnBuffer === buffer) this.activeTurnBuffer = null;
1714
1914
  this.currentTurnOverrideMode = void 0;
1715
1915
  }
package/dist/cli.js CHANGED
@@ -70,7 +70,7 @@ import {
70
70
  toolStatusLine,
71
71
  validateRelayWsUrl,
72
72
  wsToHttp
73
- } from "./chunk-JALMGUEK.js";
73
+ } from "./chunk-Z46ZRZB6.js";
74
74
  import {
75
75
  externalSourceLabel,
76
76
  externalUntrustedPreamble,
@@ -4,7 +4,7 @@ import {
4
4
  boundedJsonFetch,
5
5
  resetHttpMetricsForTest,
6
6
  snapshotHttpMetrics
7
- } from "./chunk-JALMGUEK.js";
7
+ } from "./chunk-Z46ZRZB6.js";
8
8
  import "./chunk-BDOF72CL.js";
9
9
  export {
10
10
  assertHttpEndpoint,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snowyroad/braid",
3
- "version": "0.89.0",
3
+ "version": "0.90.0",
4
4
  "description": "Braid: connect your own coding agent (Claude Code, Codex, Gemini, Grok) to a Braid channel and collaborate with other agents and humans.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "SnowyRoad",
@@ -53,6 +53,7 @@
53
53
  "@modelcontextprotocol/sdk": "1.29.0",
54
54
  "@snowyroad/braid-tui": "0.0.26",
55
55
  "canonicalize": "^3.0.0",
56
+ "diff": "^9.0.0",
56
57
  "jose": "^6.2.3",
57
58
  "ws": "8.21.0",
58
59
  "zod": "4.4.3"
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@snowyroad/braid",
3
- "version": "0.89.0",
3
+ "version": "0.90.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@snowyroad/braid",
9
- "version": "0.89.0",
9
+ "version": "0.90.0",
10
10
  "license": "SEE LICENSE IN LICENSE.md",
11
11
  "dependencies": {
12
12
  "@agentclientprotocol/sdk": "0.25.1",
@@ -16,6 +16,7 @@
16
16
  "@modelcontextprotocol/sdk": "1.29.0",
17
17
  "@snowyroad/braid-tui": "0.0.26",
18
18
  "canonicalize": "^3.0.0",
19
+ "diff": "^9.0.0",
19
20
  "jose": "^6.2.3",
20
21
  "ws": "8.21.0",
21
22
  "zod": "4.4.3"
@@ -787,6 +788,26 @@
787
788
  }
788
789
  }
789
790
  },
791
+ "node_modules/@napi-rs/lzma-linux-x64-gnu": {
792
+ "version": "1.5.1",
793
+ "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz",
794
+ "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==",
795
+ "cpu": [
796
+ "x64"
797
+ ],
798
+ "dev": true,
799
+ "libc": [
800
+ "glibc"
801
+ ],
802
+ "license": "MIT",
803
+ "optional": true,
804
+ "os": [
805
+ "linux"
806
+ ],
807
+ "engines": {
808
+ "node": "^22.20 || ^24.12 || >=25"
809
+ }
810
+ },
790
811
  "node_modules/@pondwader/socks5-server": {
791
812
  "version": "1.0.10",
792
813
  "resolved": "https://registry.npmjs.org/@pondwader/socks5-server/-/socks5-server-1.0.10.tgz",
@@ -794,9 +815,9 @@
794
815
  "license": "MIT"
795
816
  },
796
817
  "node_modules/@rollup/rollup-android-arm-eabi": {
797
- "version": "4.62.3",
798
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.3.tgz",
799
- "integrity": "sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==",
818
+ "version": "4.62.4",
819
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz",
820
+ "integrity": "sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==",
800
821
  "cpu": [
801
822
  "arm"
802
823
  ],
@@ -808,9 +829,9 @@
808
829
  ]
809
830
  },
810
831
  "node_modules/@rollup/rollup-android-arm64": {
811
- "version": "4.62.3",
812
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.3.tgz",
813
- "integrity": "sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==",
832
+ "version": "4.62.4",
833
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.4.tgz",
834
+ "integrity": "sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==",
814
835
  "cpu": [
815
836
  "arm64"
816
837
  ],
@@ -822,9 +843,9 @@
822
843
  ]
823
844
  },
824
845
  "node_modules/@rollup/rollup-darwin-arm64": {
825
- "version": "4.62.3",
826
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.3.tgz",
827
- "integrity": "sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==",
846
+ "version": "4.62.4",
847
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.4.tgz",
848
+ "integrity": "sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==",
828
849
  "cpu": [
829
850
  "arm64"
830
851
  ],
@@ -836,9 +857,9 @@
836
857
  ]
837
858
  },
838
859
  "node_modules/@rollup/rollup-darwin-x64": {
839
- "version": "4.62.3",
840
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.3.tgz",
841
- "integrity": "sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==",
860
+ "version": "4.62.4",
861
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.4.tgz",
862
+ "integrity": "sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==",
842
863
  "cpu": [
843
864
  "x64"
844
865
  ],
@@ -850,9 +871,9 @@
850
871
  ]
851
872
  },
852
873
  "node_modules/@rollup/rollup-freebsd-arm64": {
853
- "version": "4.62.3",
854
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.3.tgz",
855
- "integrity": "sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==",
874
+ "version": "4.62.4",
875
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.4.tgz",
876
+ "integrity": "sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==",
856
877
  "cpu": [
857
878
  "arm64"
858
879
  ],
@@ -864,9 +885,9 @@
864
885
  ]
865
886
  },
866
887
  "node_modules/@rollup/rollup-freebsd-x64": {
867
- "version": "4.62.3",
868
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.3.tgz",
869
- "integrity": "sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==",
888
+ "version": "4.62.4",
889
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.4.tgz",
890
+ "integrity": "sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==",
870
891
  "cpu": [
871
892
  "x64"
872
893
  ],
@@ -878,9 +899,9 @@
878
899
  ]
879
900
  },
880
901
  "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
881
- "version": "4.62.3",
882
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.3.tgz",
883
- "integrity": "sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==",
902
+ "version": "4.62.4",
903
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.4.tgz",
904
+ "integrity": "sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==",
884
905
  "cpu": [
885
906
  "arm"
886
907
  ],
@@ -895,9 +916,9 @@
895
916
  ]
896
917
  },
897
918
  "node_modules/@rollup/rollup-linux-arm-musleabihf": {
898
- "version": "4.62.3",
899
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.3.tgz",
900
- "integrity": "sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==",
919
+ "version": "4.62.4",
920
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.4.tgz",
921
+ "integrity": "sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==",
901
922
  "cpu": [
902
923
  "arm"
903
924
  ],
@@ -912,9 +933,9 @@
912
933
  ]
913
934
  },
914
935
  "node_modules/@rollup/rollup-linux-arm64-gnu": {
915
- "version": "4.62.3",
916
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.3.tgz",
917
- "integrity": "sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==",
936
+ "version": "4.62.4",
937
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.4.tgz",
938
+ "integrity": "sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==",
918
939
  "cpu": [
919
940
  "arm64"
920
941
  ],
@@ -929,9 +950,9 @@
929
950
  ]
930
951
  },
931
952
  "node_modules/@rollup/rollup-linux-arm64-musl": {
932
- "version": "4.62.3",
933
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.3.tgz",
934
- "integrity": "sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==",
953
+ "version": "4.62.4",
954
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.4.tgz",
955
+ "integrity": "sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==",
935
956
  "cpu": [
936
957
  "arm64"
937
958
  ],
@@ -946,9 +967,9 @@
946
967
  ]
947
968
  },
948
969
  "node_modules/@rollup/rollup-linux-loong64-gnu": {
949
- "version": "4.62.3",
950
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.3.tgz",
951
- "integrity": "sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==",
970
+ "version": "4.62.4",
971
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.4.tgz",
972
+ "integrity": "sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==",
952
973
  "cpu": [
953
974
  "loong64"
954
975
  ],
@@ -963,9 +984,9 @@
963
984
  ]
964
985
  },
965
986
  "node_modules/@rollup/rollup-linux-loong64-musl": {
966
- "version": "4.62.3",
967
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.3.tgz",
968
- "integrity": "sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==",
987
+ "version": "4.62.4",
988
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.4.tgz",
989
+ "integrity": "sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==",
969
990
  "cpu": [
970
991
  "loong64"
971
992
  ],
@@ -980,9 +1001,9 @@
980
1001
  ]
981
1002
  },
982
1003
  "node_modules/@rollup/rollup-linux-ppc64-gnu": {
983
- "version": "4.62.3",
984
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.3.tgz",
985
- "integrity": "sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==",
1004
+ "version": "4.62.4",
1005
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.4.tgz",
1006
+ "integrity": "sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==",
986
1007
  "cpu": [
987
1008
  "ppc64"
988
1009
  ],
@@ -997,9 +1018,9 @@
997
1018
  ]
998
1019
  },
999
1020
  "node_modules/@rollup/rollup-linux-ppc64-musl": {
1000
- "version": "4.62.3",
1001
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.3.tgz",
1002
- "integrity": "sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==",
1021
+ "version": "4.62.4",
1022
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.4.tgz",
1023
+ "integrity": "sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==",
1003
1024
  "cpu": [
1004
1025
  "ppc64"
1005
1026
  ],
@@ -1014,9 +1035,9 @@
1014
1035
  ]
1015
1036
  },
1016
1037
  "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1017
- "version": "4.62.3",
1018
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.3.tgz",
1019
- "integrity": "sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==",
1038
+ "version": "4.62.4",
1039
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.4.tgz",
1040
+ "integrity": "sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==",
1020
1041
  "cpu": [
1021
1042
  "riscv64"
1022
1043
  ],
@@ -1031,9 +1052,9 @@
1031
1052
  ]
1032
1053
  },
1033
1054
  "node_modules/@rollup/rollup-linux-riscv64-musl": {
1034
- "version": "4.62.3",
1035
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.3.tgz",
1036
- "integrity": "sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==",
1055
+ "version": "4.62.4",
1056
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.4.tgz",
1057
+ "integrity": "sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==",
1037
1058
  "cpu": [
1038
1059
  "riscv64"
1039
1060
  ],
@@ -1048,9 +1069,9 @@
1048
1069
  ]
1049
1070
  },
1050
1071
  "node_modules/@rollup/rollup-linux-s390x-gnu": {
1051
- "version": "4.62.3",
1052
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.3.tgz",
1053
- "integrity": "sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==",
1072
+ "version": "4.62.4",
1073
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.4.tgz",
1074
+ "integrity": "sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==",
1054
1075
  "cpu": [
1055
1076
  "s390x"
1056
1077
  ],
@@ -1065,9 +1086,9 @@
1065
1086
  ]
1066
1087
  },
1067
1088
  "node_modules/@rollup/rollup-linux-x64-gnu": {
1068
- "version": "4.62.3",
1069
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.3.tgz",
1070
- "integrity": "sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==",
1089
+ "version": "4.62.4",
1090
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.4.tgz",
1091
+ "integrity": "sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==",
1071
1092
  "cpu": [
1072
1093
  "x64"
1073
1094
  ],
@@ -1082,9 +1103,9 @@
1082
1103
  ]
1083
1104
  },
1084
1105
  "node_modules/@rollup/rollup-linux-x64-musl": {
1085
- "version": "4.62.3",
1086
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.3.tgz",
1087
- "integrity": "sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==",
1106
+ "version": "4.62.4",
1107
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.4.tgz",
1108
+ "integrity": "sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==",
1088
1109
  "cpu": [
1089
1110
  "x64"
1090
1111
  ],
@@ -1099,9 +1120,9 @@
1099
1120
  ]
1100
1121
  },
1101
1122
  "node_modules/@rollup/rollup-openbsd-x64": {
1102
- "version": "4.62.3",
1103
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.3.tgz",
1104
- "integrity": "sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==",
1123
+ "version": "4.62.4",
1124
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.4.tgz",
1125
+ "integrity": "sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==",
1105
1126
  "cpu": [
1106
1127
  "x64"
1107
1128
  ],
@@ -1113,9 +1134,9 @@
1113
1134
  ]
1114
1135
  },
1115
1136
  "node_modules/@rollup/rollup-openharmony-arm64": {
1116
- "version": "4.62.3",
1117
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.3.tgz",
1118
- "integrity": "sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==",
1137
+ "version": "4.62.4",
1138
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.4.tgz",
1139
+ "integrity": "sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==",
1119
1140
  "cpu": [
1120
1141
  "arm64"
1121
1142
  ],
@@ -1127,9 +1148,9 @@
1127
1148
  ]
1128
1149
  },
1129
1150
  "node_modules/@rollup/rollup-win32-arm64-msvc": {
1130
- "version": "4.62.3",
1131
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.3.tgz",
1132
- "integrity": "sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==",
1151
+ "version": "4.62.4",
1152
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.4.tgz",
1153
+ "integrity": "sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==",
1133
1154
  "cpu": [
1134
1155
  "arm64"
1135
1156
  ],
@@ -1141,9 +1162,9 @@
1141
1162
  ]
1142
1163
  },
1143
1164
  "node_modules/@rollup/rollup-win32-ia32-msvc": {
1144
- "version": "4.62.3",
1145
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.3.tgz",
1146
- "integrity": "sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==",
1165
+ "version": "4.62.4",
1166
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.4.tgz",
1167
+ "integrity": "sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==",
1147
1168
  "cpu": [
1148
1169
  "ia32"
1149
1170
  ],
@@ -1155,9 +1176,9 @@
1155
1176
  ]
1156
1177
  },
1157
1178
  "node_modules/@rollup/rollup-win32-x64-gnu": {
1158
- "version": "4.62.3",
1159
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.3.tgz",
1160
- "integrity": "sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==",
1179
+ "version": "4.62.4",
1180
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.4.tgz",
1181
+ "integrity": "sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==",
1161
1182
  "cpu": [
1162
1183
  "x64"
1163
1184
  ],
@@ -1169,9 +1190,9 @@
1169
1190
  ]
1170
1191
  },
1171
1192
  "node_modules/@rollup/rollup-win32-x64-msvc": {
1172
- "version": "4.62.3",
1173
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.3.tgz",
1174
- "integrity": "sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==",
1193
+ "version": "4.62.4",
1194
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.4.tgz",
1195
+ "integrity": "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==",
1175
1196
  "cpu": [
1176
1197
  "x64"
1177
1198
  ],
@@ -1867,6 +1888,15 @@
1867
1888
  "node": ">= 0.8"
1868
1889
  }
1869
1890
  },
1891
+ "node_modules/diff": {
1892
+ "version": "9.0.0",
1893
+ "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
1894
+ "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
1895
+ "license": "BSD-3-Clause",
1896
+ "engines": {
1897
+ "node": ">=0.3.1"
1898
+ }
1899
+ },
1870
1900
  "node_modules/dunder-proto": {
1871
1901
  "version": "1.0.1",
1872
1902
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -2338,9 +2368,9 @@
2338
2368
  }
2339
2369
  },
2340
2370
  "node_modules/hono": {
2341
- "version": "4.12.33",
2342
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.33.tgz",
2343
- "integrity": "sha512-+SwvkaiJtxsiPjhy9LivY/1m7UsNqCJetM1BrZl9A5DkQhlbHQDU730mMiDPWjnoCYOM8Chf3WrCJw27kNTPFQ==",
2371
+ "version": "4.12.34",
2372
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.34.tgz",
2373
+ "integrity": "sha512-GqXJqY/xJkJmuloTrnV1ZEXG3fqte+VjkUqoRNZXcrUidiUOP4fMSIHHY4tsqZBK++kVyWmt/AAfSUuy57/eSA==",
2344
2374
  "license": "MIT",
2345
2375
  "engines": {
2346
2376
  "node": ">=16.9.0"
@@ -2506,9 +2536,9 @@
2506
2536
  "license": "ISC"
2507
2537
  },
2508
2538
  "node_modules/jose": {
2509
- "version": "6.2.5",
2510
- "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.5.tgz",
2511
- "integrity": "sha512-2E5L2yRp03FnwreJLJX8/r7mHiZICCf8kG7fAsTWkSQTDAcc46NIZoQLKy+EJ8sPoJlxyS4OQR5H70LjIZZlIQ==",
2539
+ "version": "6.2.8",
2540
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.8.tgz",
2541
+ "integrity": "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==",
2512
2542
  "license": "MIT",
2513
2543
  "funding": {
2514
2544
  "url": "https://github.com/sponsors/panva"
@@ -2714,9 +2744,9 @@
2714
2744
  }
2715
2745
  },
2716
2746
  "node_modules/nanoid": {
2717
- "version": "3.3.16",
2718
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz",
2719
- "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==",
2747
+ "version": "3.3.17",
2748
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz",
2749
+ "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==",
2720
2750
  "dev": true,
2721
2751
  "funding": [
2722
2752
  {
@@ -3119,9 +3149,9 @@
3119
3149
  }
3120
3150
  },
3121
3151
  "node_modules/rollup": {
3122
- "version": "4.62.3",
3123
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.3.tgz",
3124
- "integrity": "sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==",
3152
+ "version": "4.62.4",
3153
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz",
3154
+ "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==",
3125
3155
  "dev": true,
3126
3156
  "license": "MIT",
3127
3157
  "dependencies": {
@@ -3135,31 +3165,32 @@
3135
3165
  "npm": ">=8.0.0"
3136
3166
  },
3137
3167
  "optionalDependencies": {
3138
- "@rollup/rollup-android-arm-eabi": "4.62.3",
3139
- "@rollup/rollup-android-arm64": "4.62.3",
3140
- "@rollup/rollup-darwin-arm64": "4.62.3",
3141
- "@rollup/rollup-darwin-x64": "4.62.3",
3142
- "@rollup/rollup-freebsd-arm64": "4.62.3",
3143
- "@rollup/rollup-freebsd-x64": "4.62.3",
3144
- "@rollup/rollup-linux-arm-gnueabihf": "4.62.3",
3145
- "@rollup/rollup-linux-arm-musleabihf": "4.62.3",
3146
- "@rollup/rollup-linux-arm64-gnu": "4.62.3",
3147
- "@rollup/rollup-linux-arm64-musl": "4.62.3",
3148
- "@rollup/rollup-linux-loong64-gnu": "4.62.3",
3149
- "@rollup/rollup-linux-loong64-musl": "4.62.3",
3150
- "@rollup/rollup-linux-ppc64-gnu": "4.62.3",
3151
- "@rollup/rollup-linux-ppc64-musl": "4.62.3",
3152
- "@rollup/rollup-linux-riscv64-gnu": "4.62.3",
3153
- "@rollup/rollup-linux-riscv64-musl": "4.62.3",
3154
- "@rollup/rollup-linux-s390x-gnu": "4.62.3",
3155
- "@rollup/rollup-linux-x64-gnu": "4.62.3",
3156
- "@rollup/rollup-linux-x64-musl": "4.62.3",
3157
- "@rollup/rollup-openbsd-x64": "4.62.3",
3158
- "@rollup/rollup-openharmony-arm64": "4.62.3",
3159
- "@rollup/rollup-win32-arm64-msvc": "4.62.3",
3160
- "@rollup/rollup-win32-ia32-msvc": "4.62.3",
3161
- "@rollup/rollup-win32-x64-gnu": "4.62.3",
3162
- "@rollup/rollup-win32-x64-msvc": "4.62.3",
3168
+ "@napi-rs/lzma-linux-x64-gnu": "1.5.1",
3169
+ "@rollup/rollup-android-arm-eabi": "4.62.4",
3170
+ "@rollup/rollup-android-arm64": "4.62.4",
3171
+ "@rollup/rollup-darwin-arm64": "4.62.4",
3172
+ "@rollup/rollup-darwin-x64": "4.62.4",
3173
+ "@rollup/rollup-freebsd-arm64": "4.62.4",
3174
+ "@rollup/rollup-freebsd-x64": "4.62.4",
3175
+ "@rollup/rollup-linux-arm-gnueabihf": "4.62.4",
3176
+ "@rollup/rollup-linux-arm-musleabihf": "4.62.4",
3177
+ "@rollup/rollup-linux-arm64-gnu": "4.62.4",
3178
+ "@rollup/rollup-linux-arm64-musl": "4.62.4",
3179
+ "@rollup/rollup-linux-loong64-gnu": "4.62.4",
3180
+ "@rollup/rollup-linux-loong64-musl": "4.62.4",
3181
+ "@rollup/rollup-linux-ppc64-gnu": "4.62.4",
3182
+ "@rollup/rollup-linux-ppc64-musl": "4.62.4",
3183
+ "@rollup/rollup-linux-riscv64-gnu": "4.62.4",
3184
+ "@rollup/rollup-linux-riscv64-musl": "4.62.4",
3185
+ "@rollup/rollup-linux-s390x-gnu": "4.62.4",
3186
+ "@rollup/rollup-linux-x64-gnu": "4.62.4",
3187
+ "@rollup/rollup-linux-x64-musl": "4.62.4",
3188
+ "@rollup/rollup-openbsd-x64": "4.62.4",
3189
+ "@rollup/rollup-openharmony-arm64": "4.62.4",
3190
+ "@rollup/rollup-win32-arm64-msvc": "4.62.4",
3191
+ "@rollup/rollup-win32-ia32-msvc": "4.62.4",
3192
+ "@rollup/rollup-win32-x64-gnu": "4.62.4",
3193
+ "@rollup/rollup-win32-x64-msvc": "4.62.4",
3163
3194
  "fsevents": "~2.3.2"
3164
3195
  }
3165
3196
  },
@@ -3682,9 +3713,9 @@
3682
3713
  }
3683
3714
  },
3684
3715
  "node_modules/tsx": {
3685
- "version": "4.23.1",
3686
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.1.tgz",
3687
- "integrity": "sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==",
3716
+ "version": "4.23.5",
3717
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.5.tgz",
3718
+ "integrity": "sha512-rw55FUaqOoI7RvlQwLbhO4nSDApnQ4/CykPuiQ/EPvtrX3WA9Ig55jIt9VvbBJbzJuj12ueRu4PMZ2SxPVbihg==",
3688
3719
  "dev": true,
3689
3720
  "license": "MIT",
3690
3721
  "dependencies": {