@snowyroad/braid 0.96.7 → 0.96.8

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.
@@ -400,7 +400,7 @@ var InviteExpiredError = class extends Error {
400
400
  }
401
401
  };
402
402
  async function redeemInvite(relayHttpUrl, code) {
403
- const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-QDQGGG2I.js");
403
+ const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-3WYFRJZR.js");
404
404
  const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/invites/redeem`, {
405
405
  method: "POST",
406
406
  headers: { "content-type": "application/json" },
@@ -492,7 +492,7 @@ function validateReplacementToken(newToken, currentToken, nowMs = Date.now()) {
492
492
  return { ok: true };
493
493
  }
494
494
  async function mintAccessToken(relayHttpUrl, agentKey, fetchFn = fetch, dpopProof) {
495
- const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-QDQGGG2I.js");
495
+ const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-3WYFRJZR.js");
496
496
  const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/agents/token`, {
497
497
  method: "POST",
498
498
  headers: {
@@ -3773,6 +3773,16 @@ async function verifyCardIdentity(card, peerName, pinnedIssuer) {
3773
3773
  }
3774
3774
 
3775
3775
  // src/relayClient.ts
3776
+ function relayHttpNote(label, r) {
3777
+ if (!isVerboseOutput()) return;
3778
+ if (r.status === 402) {
3779
+ const plan = r.json?.requiredPlan;
3780
+ const need = typeof plan === "string" && plan.length > 0 ? `requires ${sanitizeForTty(plan).replace(/\s+/g, " ").slice(0, 32)}` : "requires a higher plan";
3781
+ console.log(`[braid] ${label}: not included in this channel's plan (${need})`);
3782
+ return;
3783
+ }
3784
+ console.warn(`[braid] ${label} HTTP ${r.status ?? r.category}`);
3785
+ }
3776
3786
  var HEARTBEAT_MS = 25e3;
3777
3787
  var WATCHDOG_MS = 4e4;
3778
3788
  var CONNECT_TIMEOUT_MS = 2e4;
@@ -3875,7 +3885,7 @@ function decideCardTrust(pin, name, r) {
3875
3885
  if (pin.has(name)) return "downgrade";
3876
3886
  return "ok";
3877
3887
  }
3878
- var RelayClient = class {
3888
+ var RelayClient = class _RelayClient {
3879
3889
  constructor(cfg, deps) {
3880
3890
  this.cfg = cfg;
3881
3891
  this.deps = deps;
@@ -3974,6 +3984,9 @@ var RelayClient = class {
3974
3984
  * legitimately uses that literal. Kept in sync with `memberChannels` (cleared on
3975
3985
  * `removed`). Names only (G7) — the relay resolves ids to names server-side. */
3976
3986
  channelOrgs = /* @__PURE__ */ new Map();
3987
+ /** D4: per-channel agent-visible features from the relay (hello.channelFeatures / added.features).
3988
+ * Absent channel or key = offered, so an older relay changes nothing. */
3989
+ channelFeatures = /* @__PURE__ */ new Map();
3977
3990
  /** Task 7.1 (D4): this agent's own workspace display name, or the literal string
3978
3991
  * "personal" for an org-less agent, from hello's `agentWorkspace`. null until the
3979
3992
  * first hello that carries it (older relay, or not yet connected). */
@@ -4220,7 +4233,7 @@ var RelayClient = class {
4220
4233
  continue;
4221
4234
  }
4222
4235
  if (!r.ok) {
4223
- console.warn("[braid] backfill HTTP", r.status ?? r.category);
4236
+ relayHttpNote("backfill", r);
4224
4237
  return out;
4225
4238
  }
4226
4239
  let body = r.json;
@@ -4274,7 +4287,7 @@ var RelayClient = class {
4274
4287
  { requestClass: "relay.messages.recent", maxBodyBytes: 16 * 1024 * 1024 }
4275
4288
  );
4276
4289
  if (!r.ok) {
4277
- console.warn("[braid] join-history HTTP", r.status ?? r.category);
4290
+ relayHttpNote("join-history", r);
4278
4291
  return [];
4279
4292
  }
4280
4293
  const body = r.json;
@@ -4557,6 +4570,7 @@ var RelayClient = class {
4557
4570
  this.lastGapResumeAt.delete(ch);
4558
4571
  this.memberChannels.delete(ch);
4559
4572
  this.channelOrgs.delete(ch);
4573
+ this.channelFeatures.delete(ch);
4560
4574
  this.removedCb?.(ch);
4561
4575
  break;
4562
4576
  }
@@ -4566,6 +4580,8 @@ var RelayClient = class {
4566
4580
  this.memberChannels.add(ch);
4567
4581
  const orgName = msg.orgName;
4568
4582
  if (typeof orgName === "string" && orgName.length > 0) this.channelOrgs.set(ch, orgName);
4583
+ const fm = _RelayClient.asFeatureMap(msg.features);
4584
+ if (fm) this.channelFeatures.set(ch, fm);
4569
4585
  this.addedCb?.(ch);
4570
4586
  break;
4571
4587
  }
@@ -4615,6 +4631,13 @@ var RelayClient = class {
4615
4631
  }
4616
4632
  }
4617
4633
  }
4634
+ const feats = msg.channelFeatures;
4635
+ if (feats && typeof feats === "object" && !Array.isArray(feats)) {
4636
+ for (const [ch, m] of Object.entries(feats)) {
4637
+ const fm = _RelayClient.asFeatureMap(m);
4638
+ if (fm) this.channelFeatures.set(ch, fm);
4639
+ }
4640
+ }
4618
4641
  const agentWorkspaceRaw = msg.agentWorkspace;
4619
4642
  if (typeof agentWorkspaceRaw === "string" && agentWorkspaceRaw.length > 0) {
4620
4643
  this.agentWorkspace = agentWorkspaceRaw;
@@ -4892,7 +4915,7 @@ var RelayClient = class {
4892
4915
  body: JSON.stringify({ scope, card }),
4893
4916
  requestClass: "relay.agentcard.put"
4894
4917
  });
4895
- if (!r.ok) console.warn("[braid] put card HTTP", r.status ?? r.category);
4918
+ if (!r.ok) relayHttpNote("put card", r);
4896
4919
  }
4897
4920
  /** Verify peer identity in the background (never blocks ingest). Logs security
4898
4921
  * warnings on mismatch/downgrade; silent on ok (unsigned/unattested + never-pinned). */
@@ -4926,7 +4949,7 @@ var RelayClient = class {
4926
4949
  if (!ch) return [];
4927
4950
  const r = await this.httpJson(`/channels/${ch}`, { requestClass: "relay.channel.get" });
4928
4951
  if (!r.ok) {
4929
- console.warn("[braid] roster HTTP", r.status ?? r.category);
4952
+ relayHttpNote("roster", r);
4930
4953
  return [];
4931
4954
  }
4932
4955
  const body = r.json;
@@ -4948,6 +4971,17 @@ var RelayClient = class {
4948
4971
  return normalizeRosterEntry(m.id, m.description, m.card);
4949
4972
  });
4950
4973
  }
4974
+ static asFeatureMap(v) {
4975
+ if (!v || typeof v !== "object" || Array.isArray(v)) return null;
4976
+ const out = {};
4977
+ for (const [k, b] of Object.entries(v)) if (typeof b === "boolean") out[k] = b;
4978
+ return out;
4979
+ }
4980
+ /** True unless the relay told us this channel's plan lacks `key` (D4). */
4981
+ channelHasFeature(channelId, key) {
4982
+ const f = this.channelFeatures.get(channelId);
4983
+ return f === void 0 || f[key] !== false;
4984
+ }
4951
4985
  /** Sync read of this agent's own scribe status for a channel (BL-121 task 2).
4952
4986
  * Populated by fetchRoster (see selfScribeCache above); false until that has
4953
4987
  * run once for this channel. */
@@ -4966,7 +5000,7 @@ var RelayClient = class {
4966
5000
  async fetchMemberChannels() {
4967
5001
  const r = await this.httpJson(`/channels`, { requestClass: "relay.channels.list" });
4968
5002
  if (!r.ok) {
4969
- console.warn("[braid] member channels HTTP", r.status ?? r.category);
5003
+ relayHttpNote("member channels", r);
4970
5004
  return [];
4971
5005
  }
4972
5006
  const body = r.json;
@@ -5048,7 +5082,7 @@ var RelayClient = class {
5048
5082
  requestClass: "relay.message.post"
5049
5083
  });
5050
5084
  if (!r.ok) {
5051
- console.warn("[braid] post HTTP", r.status ?? r.category);
5085
+ relayHttpNote("post", r);
5052
5086
  }
5053
5087
  }
5054
5088
  /** Add an emoji reaction to a message in a channel. Degrades silently on error (never throws). */
@@ -5059,7 +5093,7 @@ var RelayClient = class {
5059
5093
  method: "PUT",
5060
5094
  requestClass: "relay.reaction.put"
5061
5095
  });
5062
- if (!r.ok) console.warn("[braid] add reaction HTTP", r.status ?? r.category);
5096
+ if (!r.ok) relayHttpNote("add reaction", r);
5063
5097
  }
5064
5098
  /** Remove an emoji reaction from a message in a channel. Degrades silently on error (never throws). */
5065
5099
  async removeReaction(channelId, messageId, emoji) {
@@ -5069,7 +5103,7 @@ var RelayClient = class {
5069
5103
  method: "DELETE",
5070
5104
  requestClass: "relay.reaction.delete"
5071
5105
  });
5072
- if (!r.ok) console.warn("[braid] remove reaction HTTP", r.status ?? r.category);
5106
+ if (!r.ok) relayHttpNote("remove reaction", r);
5073
5107
  }
5074
5108
  /** Append a structured reflection to a channel. Degrades silently on error (never throws).
5075
5109
  * Maps snake_case tool-arg fields to camelCase REST body before posting. */
@@ -5095,7 +5129,7 @@ var RelayClient = class {
5095
5129
  body: JSON.stringify(body),
5096
5130
  requestClass: "relay.reflection.post"
5097
5131
  });
5098
- if (!r.ok) console.warn("[braid] write reflection HTTP", r.status ?? r.category);
5132
+ if (!r.ok) relayHttpNote("write reflection", r);
5099
5133
  }
5100
5134
  /** Append a durable note to a channel's shared memory. Never throws on a network error
5101
5135
  * (returns {ok:false, status:0}), but — unlike the pre-BL-121 version — surfaces the
@@ -5116,7 +5150,7 @@ var RelayClient = class {
5116
5150
  body: JSON.stringify(noteBody),
5117
5151
  requestClass: "relay.note.post"
5118
5152
  });
5119
- if (!r.ok) console.warn("[braid] write note HTTP", r.status ?? r.category);
5153
+ if (!r.ok) relayHttpNote("write note", r);
5120
5154
  return { ok: r.ok, status: r.ok ? r.status : r.status ?? 0, json: r.ok ? r.json : r.json };
5121
5155
  }
5122
5156
  // ── Private memory lane (BL-056 task 7) ──────────────────────────────────────
@@ -5147,7 +5181,7 @@ var RelayClient = class {
5147
5181
  body: JSON.stringify(memBody),
5148
5182
  requestClass: "relay.memory.post"
5149
5183
  });
5150
- if (!r.ok) console.warn("[braid] remember private HTTP", r.status ?? r.category);
5184
+ if (!r.ok) relayHttpNote("remember private", r);
5151
5185
  return { ok: r.ok, status: r.ok ? r.status : r.status ?? 0, json: r.ok ? r.json : r.json };
5152
5186
  }
5153
5187
  /** JIT recall over THIS agent's own private memory lane (relay GET
@@ -5174,7 +5208,7 @@ var RelayClient = class {
5174
5208
  { requestClass: "relay.memory.recall" }
5175
5209
  );
5176
5210
  if (!r.ok) {
5177
- console.warn("[braid] recall private HTTP", r.status ?? r.category);
5211
+ relayHttpNote("recall private", r);
5178
5212
  return [];
5179
5213
  }
5180
5214
  const data = r.json;
@@ -5375,7 +5409,7 @@ var RelayClient = class {
5375
5409
  if (!ch) return [];
5376
5410
  const r = await this.httpJson(`/channels/${ch}/notes`, { requestClass: "relay.notes.get" });
5377
5411
  if (!r.ok) {
5378
- console.warn("[braid] notes HTTP", r.status ?? r.category);
5412
+ relayHttpNote("notes", r);
5379
5413
  return [];
5380
5414
  }
5381
5415
  const data = r.json;
@@ -5405,7 +5439,7 @@ var RelayClient = class {
5405
5439
  if (!ch) return [];
5406
5440
  const r = await this.httpJson(`/channels/${ch}/insights`, { requestClass: "relay.insights.get" });
5407
5441
  if (!r.ok) {
5408
- console.warn("[braid] insights HTTP", r.status ?? r.category);
5442
+ relayHttpNote("insights", r);
5409
5443
  return [];
5410
5444
  }
5411
5445
  const data = r.json;
@@ -5459,7 +5493,7 @@ var RelayClient = class {
5459
5493
  body,
5460
5494
  requestClass: "relay.flow.post"
5461
5495
  });
5462
- if (!r.ok) console.warn("[braid] flow post HTTP", r.status ?? r.category);
5496
+ if (!r.ok) relayHttpNote("flow post", r);
5463
5497
  }
5464
5498
  /** Channel instructions text (empty if none or on error — never throws). Branded (H2-4). */
5465
5499
  async fetchChannelInstructions(channelId) {
@@ -5467,7 +5501,7 @@ var RelayClient = class {
5467
5501
  if (!ch) return untrusted("");
5468
5502
  const r = await this.httpJson(`/channels/${ch}/instructions`, { requestClass: "relay.instructions.get" });
5469
5503
  if (!r.ok) {
5470
- console.warn("[braid] instructions HTTP", r.status ?? r.category);
5504
+ relayHttpNote("instructions", r);
5471
5505
  return untrusted("");
5472
5506
  }
5473
5507
  const data = r.json;
@@ -5480,7 +5514,7 @@ var RelayClient = class {
5480
5514
  if (!ch) return [];
5481
5515
  const r = await this.httpJson(`/channels/${ch}/topics`, { requestClass: "relay.topics.get" });
5482
5516
  if (!r.ok) {
5483
- console.warn("[braid] topics HTTP", r.status ?? r.category);
5517
+ relayHttpNote("topics", r);
5484
5518
  return [];
5485
5519
  }
5486
5520
  const data = r.json;
@@ -5494,7 +5528,7 @@ var RelayClient = class {
5494
5528
  if (!ch) return [];
5495
5529
  const r = await this.httpJson(`/channels/${ch}/sources`, { requestClass: "relay.sources.get" });
5496
5530
  if (!r.ok) {
5497
- console.warn("[braid] sources HTTP", r.status ?? r.category);
5531
+ relayHttpNote("sources", r);
5498
5532
  return [];
5499
5533
  }
5500
5534
  const data = r.json;
@@ -5510,7 +5544,7 @@ var RelayClient = class {
5510
5544
  if (!ch) return [];
5511
5545
  const r = await this.httpJson(`/channels/${ch}/sources`, { requestClass: "relay.sources.get" });
5512
5546
  if (!r.ok) {
5513
- console.warn("[braid] listSources HTTP", r.status ?? r.category);
5547
+ relayHttpNote("listSources", r);
5514
5548
  return [];
5515
5549
  }
5516
5550
  const data = r.json;
@@ -5523,7 +5557,7 @@ var RelayClient = class {
5523
5557
  if (!ch || !sid) return null;
5524
5558
  const r = await this.httpJson(`/channels/${ch}/sources/${sid}/content`, { requestClass: "relay.sources.get" });
5525
5559
  if (!r.ok) {
5526
- console.warn("[braid] getSourceContent HTTP", r.status ?? r.category);
5560
+ relayHttpNote("getSourceContent", r);
5527
5561
  return null;
5528
5562
  }
5529
5563
  const data = r.json;
@@ -5547,7 +5581,7 @@ var RelayClient = class {
5547
5581
  this.fetchChannelTopics(channelId),
5548
5582
  this.fetchSourcesContext(channelId),
5549
5583
  this.fetchChannelNotes(channelId),
5550
- this.fetchInsights(channelId)
5584
+ this.channelHasFeature(channelId, "insights") ? this.fetchInsights(channelId) : Promise.resolve([])
5551
5585
  ]);
5552
5586
  const orderedNotes = await this.applyRecallOrder(channelId, notes, queryHint);
5553
5587
  return buildChannelContext({ instructions, topics, pins, notes: orderedNotes, insights, isScribe: this.isScribeFor(channelId) });
@@ -5583,7 +5617,7 @@ var RelayClient = class {
5583
5617
  requestClass: "relay.recall.post"
5584
5618
  });
5585
5619
  if (!r.ok) {
5586
- console.warn("[braid] recall HTTP", r.status ?? r.category);
5620
+ relayHttpNote("recall", r);
5587
5621
  return [];
5588
5622
  }
5589
5623
  const data = r.json;
@@ -5630,7 +5664,7 @@ var RelayClient = class {
5630
5664
  { requestClass: "relay.flow.messages", maxBodyBytes: 16 * 1024 * 1024 }
5631
5665
  );
5632
5666
  if (!r.ok) {
5633
- console.warn("[braid] flow messages HTTP", r.status ?? r.category);
5667
+ relayHttpNote("flow messages", r);
5634
5668
  return [];
5635
5669
  }
5636
5670
  const data = r.json;
package/dist/cli.js CHANGED
@@ -83,7 +83,7 @@ import {
83
83
  updateAgentWorkspace,
84
84
  validateRelayWsUrl,
85
85
  wsToHttp
86
- } from "./chunk-CLFXLKAW.js";
86
+ } from "./chunk-QHWKKDPN.js";
87
87
  import {
88
88
  clampUntrusted,
89
89
  externalSourceLabel,
@@ -4,7 +4,7 @@ import {
4
4
  boundedJsonFetch,
5
5
  resetHttpMetricsForTest,
6
6
  snapshotHttpMetrics
7
- } from "./chunk-CLFXLKAW.js";
7
+ } from "./chunk-QHWKKDPN.js";
8
8
  import "./chunk-HQNAAXUM.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.96.7",
3
+ "version": "0.96.8",
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",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@snowyroad/braid",
3
- "version": "0.96.7",
3
+ "version": "0.96.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@snowyroad/braid",
9
- "version": "0.96.7",
9
+ "version": "0.96.8",
10
10
  "license": "SEE LICENSE IN LICENSE.md",
11
11
  "dependencies": {
12
12
  "@agentclientprotocol/sdk": "0.25.1",
@@ -815,9 +815,9 @@
815
815
  "license": "MIT"
816
816
  },
817
817
  "node_modules/@rollup/rollup-android-arm-eabi": {
818
- "version": "4.63.5",
819
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.5.tgz",
820
- "integrity": "sha512-J25QJU+B78T4FhhBsNpLJyVWOi31mwtpcMwywHmOKH65Q9IWGA81gPj+dnwlhU8wktVriYE+tFAaQgrnJRzAZg==",
818
+ "version": "4.64.0",
819
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.0.tgz",
820
+ "integrity": "sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==",
821
821
  "cpu": [
822
822
  "arm"
823
823
  ],
@@ -829,9 +829,9 @@
829
829
  ]
830
830
  },
831
831
  "node_modules/@rollup/rollup-android-arm64": {
832
- "version": "4.63.5",
833
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.5.tgz",
834
- "integrity": "sha512-LDopB3zuZM5Ux9TT2luNEBJW/tYbGU2g1d+VpKk6I+gSKDb+/7sYE6M225gRQt4RbMX6MSwMsVR/phdjVUgRLg==",
832
+ "version": "4.64.0",
833
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.0.tgz",
834
+ "integrity": "sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==",
835
835
  "cpu": [
836
836
  "arm64"
837
837
  ],
@@ -843,9 +843,9 @@
843
843
  ]
844
844
  },
845
845
  "node_modules/@rollup/rollup-darwin-arm64": {
846
- "version": "4.63.5",
847
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.5.tgz",
848
- "integrity": "sha512-wlJEERGfeuHeBavCL2qVnNacOK43NDoZM4sjkeRPymd04OAE9T1zBqDJgmZ+CIsPTYKwdzpUC8vmOw84dwY4Tg==",
846
+ "version": "4.64.0",
847
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.0.tgz",
848
+ "integrity": "sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==",
849
849
  "cpu": [
850
850
  "arm64"
851
851
  ],
@@ -857,9 +857,9 @@
857
857
  ]
858
858
  },
859
859
  "node_modules/@rollup/rollup-darwin-x64": {
860
- "version": "4.63.5",
861
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.5.tgz",
862
- "integrity": "sha512-4nJJGg5jbo2wwPP4JP+LfEBA3bvP8rU9CLuhp7jWvq9sxEyhjQFTFdrqi+/dHEin/pd8jpT0vcehIpnZtmEdcQ==",
860
+ "version": "4.64.0",
861
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.0.tgz",
862
+ "integrity": "sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==",
863
863
  "cpu": [
864
864
  "x64"
865
865
  ],
@@ -871,9 +871,9 @@
871
871
  ]
872
872
  },
873
873
  "node_modules/@rollup/rollup-freebsd-arm64": {
874
- "version": "4.63.5",
875
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.5.tgz",
876
- "integrity": "sha512-DrZbyCDF1hneuO6jRbvZ2D7+PIBM6yIwYnJpg2vIk58T+wuFpiaGZrfUr59lDWw45bg+IrpTGLPiNi/Fk4w3Cg==",
874
+ "version": "4.64.0",
875
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.0.tgz",
876
+ "integrity": "sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==",
877
877
  "cpu": [
878
878
  "arm64"
879
879
  ],
@@ -885,9 +885,9 @@
885
885
  ]
886
886
  },
887
887
  "node_modules/@rollup/rollup-freebsd-x64": {
888
- "version": "4.63.5",
889
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.5.tgz",
890
- "integrity": "sha512-gqfUVMJMB3mehqywxp6hTBFfgtMQykZY19+cfiaYP0toIJLb/1DZRJHVkQQGP13W4TAwfZDWeg1qBcheTRioXQ==",
888
+ "version": "4.64.0",
889
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.0.tgz",
890
+ "integrity": "sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==",
891
891
  "cpu": [
892
892
  "x64"
893
893
  ],
@@ -899,9 +899,9 @@
899
899
  ]
900
900
  },
901
901
  "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
902
- "version": "4.63.5",
903
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.5.tgz",
904
- "integrity": "sha512-CFmhpvAwzSaWMlN3VN7UtmoTihlZNzoP0juQib5TQRnYUyDV8dXeWOp29sobWAT6gXl/hQgAClLlEiYozQG3OQ==",
902
+ "version": "4.64.0",
903
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.0.tgz",
904
+ "integrity": "sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==",
905
905
  "cpu": [
906
906
  "arm"
907
907
  ],
@@ -916,9 +916,9 @@
916
916
  ]
917
917
  },
918
918
  "node_modules/@rollup/rollup-linux-arm-musleabihf": {
919
- "version": "4.63.5",
920
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.5.tgz",
921
- "integrity": "sha512-Uc9H8eXCOayV6JLTH5bXKMId6qbhNHa818/BgYjm4jrlq3vZquC9cqyvHBw17xy5Mnj5f+I3gFK5JcEf3hSqrw==",
919
+ "version": "4.64.0",
920
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.0.tgz",
921
+ "integrity": "sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==",
922
922
  "cpu": [
923
923
  "arm"
924
924
  ],
@@ -933,9 +933,9 @@
933
933
  ]
934
934
  },
935
935
  "node_modules/@rollup/rollup-linux-arm64-gnu": {
936
- "version": "4.63.5",
937
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.5.tgz",
938
- "integrity": "sha512-VcPr/szv/1BFw112Kt//fxulXt/JPqzzidU84iW68L2DdjnOO8QFUv2zTSYBEPHD6movBD4z+bbr5y60GYM7Jw==",
936
+ "version": "4.64.0",
937
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.0.tgz",
938
+ "integrity": "sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==",
939
939
  "cpu": [
940
940
  "arm64"
941
941
  ],
@@ -950,9 +950,9 @@
950
950
  ]
951
951
  },
952
952
  "node_modules/@rollup/rollup-linux-arm64-musl": {
953
- "version": "4.63.5",
954
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.5.tgz",
955
- "integrity": "sha512-BnxtJ5/91BrIHYIkGrmjz/lbMhqEHt1dPFqIxIFR+jPn0xVc/oUSCtIT089zfp5ufwGDlYz2UC+Fe1SRBpYFbQ==",
953
+ "version": "4.64.0",
954
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.0.tgz",
955
+ "integrity": "sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==",
956
956
  "cpu": [
957
957
  "arm64"
958
958
  ],
@@ -967,9 +967,9 @@
967
967
  ]
968
968
  },
969
969
  "node_modules/@rollup/rollup-linux-loong64-gnu": {
970
- "version": "4.63.5",
971
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.5.tgz",
972
- "integrity": "sha512-LrYcHZwF+fAMNKHYTOQ5osWM4AZF7YF6D+XtsjDyEvljtt11twc+zHVXBLNEjxVSUnKYsOhvVz4Z213eW02COQ==",
970
+ "version": "4.64.0",
971
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.0.tgz",
972
+ "integrity": "sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==",
973
973
  "cpu": [
974
974
  "loong64"
975
975
  ],
@@ -984,9 +984,9 @@
984
984
  ]
985
985
  },
986
986
  "node_modules/@rollup/rollup-linux-loong64-musl": {
987
- "version": "4.63.5",
988
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.5.tgz",
989
- "integrity": "sha512-nj7QKQePAAUpCpJHtg0pR0W/b92A9NO17JS3BAQmHDn/yhmkir2p8llrKY9TOhleKIaSzy1JhxS3T9FVld6coA==",
987
+ "version": "4.64.0",
988
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.0.tgz",
989
+ "integrity": "sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==",
990
990
  "cpu": [
991
991
  "loong64"
992
992
  ],
@@ -1001,9 +1001,9 @@
1001
1001
  ]
1002
1002
  },
1003
1003
  "node_modules/@rollup/rollup-linux-ppc64-gnu": {
1004
- "version": "4.63.5",
1005
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.5.tgz",
1006
- "integrity": "sha512-5ylkX6dWMeBKge9nTU+Rxfb+ZfaCIJ9lRqIFaK0eAMcWp7OJbYnLveLgXmm0VrvuLKb8qIK+mHyH0qu88RM+iA==",
1004
+ "version": "4.64.0",
1005
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.0.tgz",
1006
+ "integrity": "sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==",
1007
1007
  "cpu": [
1008
1008
  "ppc64"
1009
1009
  ],
@@ -1018,9 +1018,9 @@
1018
1018
  ]
1019
1019
  },
1020
1020
  "node_modules/@rollup/rollup-linux-ppc64-musl": {
1021
- "version": "4.63.5",
1022
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.5.tgz",
1023
- "integrity": "sha512-oHK4ZHYFDKjZviK34I+NwgfbGxgI7ztrNxj2hPTSSNFgeq1a/lEd7dHV2fdGAuTH4Iym3RHJg+vAbWaWG4B7Zg==",
1021
+ "version": "4.64.0",
1022
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.0.tgz",
1023
+ "integrity": "sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==",
1024
1024
  "cpu": [
1025
1025
  "ppc64"
1026
1026
  ],
@@ -1035,9 +1035,9 @@
1035
1035
  ]
1036
1036
  },
1037
1037
  "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1038
- "version": "4.63.5",
1039
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.5.tgz",
1040
- "integrity": "sha512-UcetmHZ6XOXuUByiKZyQmb55ZPr0LABr3Ec/HB9wKZn6CEAFWZkE+hsJErJ9hbPBC7nI0dKuELx7CoV6IM7TMg==",
1038
+ "version": "4.64.0",
1039
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.0.tgz",
1040
+ "integrity": "sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==",
1041
1041
  "cpu": [
1042
1042
  "riscv64"
1043
1043
  ],
@@ -1052,9 +1052,9 @@
1052
1052
  ]
1053
1053
  },
1054
1054
  "node_modules/@rollup/rollup-linux-riscv64-musl": {
1055
- "version": "4.63.5",
1056
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.5.tgz",
1057
- "integrity": "sha512-C5CmDPQBtvjVo8cgQsBs+w6WB0JLkiixhgi6hVLV11hERWdn/p0XcPU2OUcZzac9BPOFq7SbaHFa8r3SWEysCQ==",
1055
+ "version": "4.64.0",
1056
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.0.tgz",
1057
+ "integrity": "sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==",
1058
1058
  "cpu": [
1059
1059
  "riscv64"
1060
1060
  ],
@@ -1069,9 +1069,9 @@
1069
1069
  ]
1070
1070
  },
1071
1071
  "node_modules/@rollup/rollup-linux-s390x-gnu": {
1072
- "version": "4.63.5",
1073
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.5.tgz",
1074
- "integrity": "sha512-lHVQHJFKsuuxLMi3MQO9XVL8Tje3JR82CzB+QDKC5NWBcsIWuwsn9uIM5e3lBhI+fF1/s63qnyYqsg65+8rV/w==",
1072
+ "version": "4.64.0",
1073
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.0.tgz",
1074
+ "integrity": "sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==",
1075
1075
  "cpu": [
1076
1076
  "s390x"
1077
1077
  ],
@@ -1086,9 +1086,9 @@
1086
1086
  ]
1087
1087
  },
1088
1088
  "node_modules/@rollup/rollup-linux-x64-gnu": {
1089
- "version": "4.63.5",
1090
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.5.tgz",
1091
- "integrity": "sha512-3W9bTFcQNJn71cSJVM9RKIiZOy8DO/XLDii8Uv/Pm6WKqDRj7JV3ZfuXIEfyuy5LXpIzAbB/1M4Ukp9GKNa7nA==",
1089
+ "version": "4.64.0",
1090
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.0.tgz",
1091
+ "integrity": "sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==",
1092
1092
  "cpu": [
1093
1093
  "x64"
1094
1094
  ],
@@ -1103,9 +1103,9 @@
1103
1103
  ]
1104
1104
  },
1105
1105
  "node_modules/@rollup/rollup-linux-x64-musl": {
1106
- "version": "4.63.5",
1107
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.5.tgz",
1108
- "integrity": "sha512-VDC7rRJlee/scpki96GZ27Omf6yU87s1YXwVTpjE5841faVlDYYT565rgfmoR1U0sqL7z5ivQSDjcsF6VRXyBA==",
1106
+ "version": "4.64.0",
1107
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.0.tgz",
1108
+ "integrity": "sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==",
1109
1109
  "cpu": [
1110
1110
  "x64"
1111
1111
  ],
@@ -1120,9 +1120,9 @@
1120
1120
  ]
1121
1121
  },
1122
1122
  "node_modules/@rollup/rollup-openbsd-x64": {
1123
- "version": "4.63.5",
1124
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.5.tgz",
1125
- "integrity": "sha512-z86Ok2p4pTdv5xqCKZsTooO7yBEiaJR/HzU3Wx8RmWsPoLppnMKROhJusQob8B3IE1ghC343kUW9rC2r+Wf3ig==",
1123
+ "version": "4.64.0",
1124
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.0.tgz",
1125
+ "integrity": "sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==",
1126
1126
  "cpu": [
1127
1127
  "x64"
1128
1128
  ],
@@ -1134,9 +1134,9 @@
1134
1134
  ]
1135
1135
  },
1136
1136
  "node_modules/@rollup/rollup-openharmony-arm64": {
1137
- "version": "4.63.5",
1138
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.5.tgz",
1139
- "integrity": "sha512-IzQmj+xXwQFGhMAMKMQVXkMwMZN3TqkJgAE0nSsqvVwWWciP4AIPMmWRqOQ2GfX7TUDZr+xqGFcBS36CRPGw0g==",
1137
+ "version": "4.64.0",
1138
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.0.tgz",
1139
+ "integrity": "sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==",
1140
1140
  "cpu": [
1141
1141
  "arm64"
1142
1142
  ],
@@ -1148,9 +1148,9 @@
1148
1148
  ]
1149
1149
  },
1150
1150
  "node_modules/@rollup/rollup-win32-arm64-msvc": {
1151
- "version": "4.63.5",
1152
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.5.tgz",
1153
- "integrity": "sha512-F6qpTaPc9bwBH85kjy0/BLmLSW1uv7AoOXCoRIkg2arlgCYlWYcAbiMkvZuAcaWk9TpCRG//okznLAqLGshkMw==",
1151
+ "version": "4.64.0",
1152
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.0.tgz",
1153
+ "integrity": "sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==",
1154
1154
  "cpu": [
1155
1155
  "arm64"
1156
1156
  ],
@@ -1162,9 +1162,9 @@
1162
1162
  ]
1163
1163
  },
1164
1164
  "node_modules/@rollup/rollup-win32-ia32-msvc": {
1165
- "version": "4.63.5",
1166
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.5.tgz",
1167
- "integrity": "sha512-igoDsTFhhwECBeGbUuLeIk7t8Y1apa+cs6mDWpx2EZ0ch7oEQgzHbFUXN9euoHekCAQzXdXApAGkV6jznS7tWw==",
1165
+ "version": "4.64.0",
1166
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.0.tgz",
1167
+ "integrity": "sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==",
1168
1168
  "cpu": [
1169
1169
  "ia32"
1170
1170
  ],
@@ -1176,9 +1176,9 @@
1176
1176
  ]
1177
1177
  },
1178
1178
  "node_modules/@rollup/rollup-win32-x64-gnu": {
1179
- "version": "4.63.5",
1180
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.5.tgz",
1181
- "integrity": "sha512-U3teMeMbXFmaM5D+OTJpsOXd+wV/qftIeYF9kBKL4v73641qyJmoXFtA28DQLsnmlyayEsTe72xpLHrArq6vHw==",
1179
+ "version": "4.64.0",
1180
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.0.tgz",
1181
+ "integrity": "sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==",
1182
1182
  "cpu": [
1183
1183
  "x64"
1184
1184
  ],
@@ -1190,9 +1190,9 @@
1190
1190
  ]
1191
1191
  },
1192
1192
  "node_modules/@rollup/rollup-win32-x64-msvc": {
1193
- "version": "4.63.5",
1194
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.5.tgz",
1195
- "integrity": "sha512-ypfC34F3RKXvCXBglGqGMsUSMKlgwd1HX9AOAlx9RoZZ6GaI42YHVeKpzg3JG+wpBUJYTG+NNZhqbDWL8tBZkw==",
1193
+ "version": "4.64.0",
1194
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.0.tgz",
1195
+ "integrity": "sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==",
1196
1196
  "cpu": [
1197
1197
  "x64"
1198
1198
  ],
@@ -1234,9 +1234,9 @@
1234
1234
  "license": "MIT"
1235
1235
  },
1236
1236
  "node_modules/@types/node": {
1237
- "version": "25.9.8",
1238
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.8.tgz",
1239
- "integrity": "sha512-VfMrScDmMhUJQmd5hArdQnFvK0OIeD36uN2Va1FcpYaLB/BgkgM8Ulc50XtYISPMz7APJ30+N0T5EM0jlcdfRw==",
1237
+ "version": "25.9.9",
1238
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.9.tgz",
1239
+ "integrity": "sha512-b4e2xxj/yMeT2hNlD6x7zNFiQK2Dlmkb9CQ6v3/1G2RezKN4YS2lcEv8lzGm1mhs4f2lM4yNAMI/zUDBZBBt7w==",
1240
1240
  "dev": true,
1241
1241
  "license": "MIT",
1242
1242
  "dependencies": {
@@ -2369,9 +2369,9 @@
2369
2369
  }
2370
2370
  },
2371
2371
  "node_modules/hono": {
2372
- "version": "4.13.11",
2373
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.11.tgz",
2374
- "integrity": "sha512-/SMX/RQNJn7oNmFwH6DtwDqcrzZU2otm1FD6OJe2cWF6cfy/F8hq0XVBv7xW3FTJshRQwuBnXHDq2kNsdZnshg==",
2372
+ "version": "4.13.12",
2373
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.12.tgz",
2374
+ "integrity": "sha512-6E2QDAc9Ick9Sq77ZrGS/dk2WUYni91aufTw6LJKpV7w8kW5/GxVUc650FOADOmlwg3K+f7Pun6XlV+pYmW6gw==",
2375
2375
  "license": "MIT",
2376
2376
  "engines": {
2377
2377
  "node": ">=16.9.0"
@@ -2480,9 +2480,9 @@
2480
2480
  }
2481
2481
  },
2482
2482
  "node_modules/ip-address": {
2483
- "version": "10.7.2",
2484
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
2485
- "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==",
2483
+ "version": "10.7.3",
2484
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz",
2485
+ "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==",
2486
2486
  "license": "MIT",
2487
2487
  "engines": {
2488
2488
  "node": ">= 12"
@@ -3174,9 +3174,9 @@
3174
3174
  }
3175
3175
  },
3176
3176
  "node_modules/rollup": {
3177
- "version": "4.63.5",
3178
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.5.tgz",
3179
- "integrity": "sha512-KRWwmNLlPw5M7HcdYfm15oBv9n9LPtjzpzCIxS/phwqvPyxHSoKX6Y2YU3pxSPfy0CLquVgsx/j/hBi6OvH1Nw==",
3177
+ "version": "4.64.0",
3178
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.0.tgz",
3179
+ "integrity": "sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==",
3180
3180
  "dev": true,
3181
3181
  "license": "MIT",
3182
3182
  "dependencies": {
@@ -3191,31 +3191,31 @@
3191
3191
  },
3192
3192
  "optionalDependencies": {
3193
3193
  "@napi-rs/lzma-linux-x64-gnu": "1.5.1",
3194
- "@rollup/rollup-android-arm-eabi": "4.63.5",
3195
- "@rollup/rollup-android-arm64": "4.63.5",
3196
- "@rollup/rollup-darwin-arm64": "4.63.5",
3197
- "@rollup/rollup-darwin-x64": "4.63.5",
3198
- "@rollup/rollup-freebsd-arm64": "4.63.5",
3199
- "@rollup/rollup-freebsd-x64": "4.63.5",
3200
- "@rollup/rollup-linux-arm-gnueabihf": "4.63.5",
3201
- "@rollup/rollup-linux-arm-musleabihf": "4.63.5",
3202
- "@rollup/rollup-linux-arm64-gnu": "4.63.5",
3203
- "@rollup/rollup-linux-arm64-musl": "4.63.5",
3204
- "@rollup/rollup-linux-loong64-gnu": "4.63.5",
3205
- "@rollup/rollup-linux-loong64-musl": "4.63.5",
3206
- "@rollup/rollup-linux-ppc64-gnu": "4.63.5",
3207
- "@rollup/rollup-linux-ppc64-musl": "4.63.5",
3208
- "@rollup/rollup-linux-riscv64-gnu": "4.63.5",
3209
- "@rollup/rollup-linux-riscv64-musl": "4.63.5",
3210
- "@rollup/rollup-linux-s390x-gnu": "4.63.5",
3211
- "@rollup/rollup-linux-x64-gnu": "4.63.5",
3212
- "@rollup/rollup-linux-x64-musl": "4.63.5",
3213
- "@rollup/rollup-openbsd-x64": "4.63.5",
3214
- "@rollup/rollup-openharmony-arm64": "4.63.5",
3215
- "@rollup/rollup-win32-arm64-msvc": "4.63.5",
3216
- "@rollup/rollup-win32-ia32-msvc": "4.63.5",
3217
- "@rollup/rollup-win32-x64-gnu": "4.63.5",
3218
- "@rollup/rollup-win32-x64-msvc": "4.63.5",
3194
+ "@rollup/rollup-android-arm-eabi": "4.64.0",
3195
+ "@rollup/rollup-android-arm64": "4.64.0",
3196
+ "@rollup/rollup-darwin-arm64": "4.64.0",
3197
+ "@rollup/rollup-darwin-x64": "4.64.0",
3198
+ "@rollup/rollup-freebsd-arm64": "4.64.0",
3199
+ "@rollup/rollup-freebsd-x64": "4.64.0",
3200
+ "@rollup/rollup-linux-arm-gnueabihf": "4.64.0",
3201
+ "@rollup/rollup-linux-arm-musleabihf": "4.64.0",
3202
+ "@rollup/rollup-linux-arm64-gnu": "4.64.0",
3203
+ "@rollup/rollup-linux-arm64-musl": "4.64.0",
3204
+ "@rollup/rollup-linux-loong64-gnu": "4.64.0",
3205
+ "@rollup/rollup-linux-loong64-musl": "4.64.0",
3206
+ "@rollup/rollup-linux-ppc64-gnu": "4.64.0",
3207
+ "@rollup/rollup-linux-ppc64-musl": "4.64.0",
3208
+ "@rollup/rollup-linux-riscv64-gnu": "4.64.0",
3209
+ "@rollup/rollup-linux-riscv64-musl": "4.64.0",
3210
+ "@rollup/rollup-linux-s390x-gnu": "4.64.0",
3211
+ "@rollup/rollup-linux-x64-gnu": "4.64.0",
3212
+ "@rollup/rollup-linux-x64-musl": "4.64.0",
3213
+ "@rollup/rollup-openbsd-x64": "4.64.0",
3214
+ "@rollup/rollup-openharmony-arm64": "4.64.0",
3215
+ "@rollup/rollup-win32-arm64-msvc": "4.64.0",
3216
+ "@rollup/rollup-win32-ia32-msvc": "4.64.0",
3217
+ "@rollup/rollup-win32-x64-gnu": "4.64.0",
3218
+ "@rollup/rollup-win32-x64-msvc": "4.64.0",
3219
3219
  "fsevents": "~2.3.2"
3220
3220
  }
3221
3221
  },
@@ -3449,9 +3449,9 @@
3449
3449
  }
3450
3450
  },
3451
3451
  "node_modules/source-map-js": {
3452
- "version": "1.2.1",
3453
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
3454
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
3452
+ "version": "1.2.2",
3453
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
3454
+ "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
3455
3455
  "dev": true,
3456
3456
  "license": "BSD-3-Clause",
3457
3457
  "engines": {