@dxos/network-manager 0.3.9-main.4e30508 → 0.3.9-main.4e39f3a

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 (57) hide show
  1. package/dist/lib/browser/{chunk-J7KS7JMZ.mjs → chunk-6B4JGIV2.mjs} +101 -63
  2. package/dist/lib/browser/chunk-6B4JGIV2.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -11
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +3 -3
  6. package/dist/lib/node/{chunk-55WTPQV5.cjs → chunk-Y2B5BDRH.cjs} +97 -65
  7. package/dist/lib/node/chunk-Y2B5BDRH.cjs.map +7 -0
  8. package/dist/lib/node/index.cjs +27 -36
  9. package/dist/lib/node/index.cjs.map +2 -2
  10. package/dist/lib/node/meta.json +1 -1
  11. package/dist/lib/node/testing/index.cjs +18 -19
  12. package/dist/lib/node/testing/index.cjs.map +1 -1
  13. package/dist/types/src/transport/index.d.ts +0 -1
  14. package/dist/types/src/transport/index.d.ts.map +1 -1
  15. package/dist/types/src/transport/libdatachannel-transport.d.ts +1 -0
  16. package/dist/types/src/transport/libdatachannel-transport.d.ts.map +1 -1
  17. package/dist/types/src/transport/simplepeer-transport.d.ts.map +1 -1
  18. package/package.json +18 -18
  19. package/src/topology/mmst-topology.ts +7 -7
  20. package/src/transport/index.ts +0 -1
  21. package/src/transport/libdatachannel-transport.ts +76 -34
  22. package/src/transport/simplepeer-transport.ts +4 -5
  23. package/dist/lib/browser/chunk-J7KS7JMZ.mjs.map +0 -7
  24. package/dist/lib/browser/chunk-YERMWDRB.mjs +0 -24
  25. package/dist/lib/browser/chunk-YERMWDRB.mjs.map +0 -7
  26. package/dist/lib/browser/index.browser-O53CPVK3.mjs +0 -14
  27. package/dist/lib/browser/index.browser-O53CPVK3.mjs.map +0 -7
  28. package/dist/lib/node/chunk-55WTPQV5.cjs.map +0 -7
  29. package/dist/lib/node/chunk-JDKM4UPJ.cjs +0 -470
  30. package/dist/lib/node/chunk-JDKM4UPJ.cjs.map +0 -7
  31. package/dist/lib/node/datachannel-3VTTIMR5.cjs +0 -35
  32. package/dist/lib/node/datachannel-3VTTIMR5.cjs.map +0 -7
  33. package/dist/types/src/transport/datachannel/index.browser.d.ts +0 -15
  34. package/dist/types/src/transport/datachannel/index.browser.d.ts.map +0 -1
  35. package/dist/types/src/transport/datachannel/index.d.ts +0 -8
  36. package/dist/types/src/transport/datachannel/index.d.ts.map +0 -1
  37. package/dist/types/src/transport/datachannel/rtc-data-channel.d.ts +0 -29
  38. package/dist/types/src/transport/datachannel/rtc-data-channel.d.ts.map +0 -1
  39. package/dist/types/src/transport/datachannel/rtc-events.d.ts +0 -9
  40. package/dist/types/src/transport/datachannel/rtc-events.d.ts.map +0 -1
  41. package/dist/types/src/transport/datachannel/rtc-ice-candidate.d.ts +0 -22
  42. package/dist/types/src/transport/datachannel/rtc-ice-candidate.d.ts.map +0 -1
  43. package/dist/types/src/transport/datachannel/rtc-peer-connection.d.ts +0 -54
  44. package/dist/types/src/transport/datachannel/rtc-peer-connection.d.ts.map +0 -1
  45. package/dist/types/src/transport/datachannel/rtc-peer-connection.test.d.ts +0 -2
  46. package/dist/types/src/transport/datachannel/rtc-peer-connection.test.d.ts.map +0 -1
  47. package/dist/types/src/transport/datachannel/rtc-session-description.d.ts +0 -10
  48. package/dist/types/src/transport/datachannel/rtc-session-description.d.ts.map +0 -1
  49. package/src/transport/datachannel/README.md +0 -2
  50. package/src/transport/datachannel/index.browser.ts +0 -8
  51. package/src/transport/datachannel/index.ts +0 -17
  52. package/src/transport/datachannel/rtc-data-channel.ts +0 -148
  53. package/src/transport/datachannel/rtc-events.ts +0 -23
  54. package/src/transport/datachannel/rtc-ice-candidate.ts +0 -54
  55. package/src/transport/datachannel/rtc-peer-connection.test.ts +0 -112
  56. package/src/transport/datachannel/rtc-peer-connection.ts +0 -355
  57. package/src/transport/datachannel/rtc-session-description.ts +0 -23
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_55WTPQV5_exports = {};
30
- __export(chunk_55WTPQV5_exports, {
29
+ var chunk_Y2B5BDRH_exports = {};
30
+ __export(chunk_Y2B5BDRH_exports, {
31
31
  Connection: () => Connection,
32
32
  ConnectionLimiter: () => ConnectionLimiter,
33
33
  ConnectionLog: () => ConnectionLog,
@@ -55,8 +55,7 @@ __export(chunk_55WTPQV5_exports, {
55
55
  createSimplePeerTransportFactory: () => createSimplePeerTransportFactory,
56
56
  createTeleportProtocolFactory: () => createTeleportProtocolFactory
57
57
  });
58
- module.exports = __toCommonJS(chunk_55WTPQV5_exports);
59
- var import_chunk_JDKM4UPJ = require("./chunk-JDKM4UPJ.cjs");
58
+ module.exports = __toCommonJS(chunk_Y2B5BDRH_exports);
60
59
  var import_async = require("@dxos/async");
61
60
  var import_context = require("@dxos/context");
62
61
  var import_debug = require("@dxos/debug");
@@ -153,6 +152,13 @@ var import_async12 = require("@dxos/async");
153
152
  var import_debug8 = require("@dxos/debug");
154
153
  var import_log15 = require("@dxos/log");
155
154
  var import_teleport = require("@dxos/teleport");
155
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
156
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
157
+ }) : x)(function(x) {
158
+ if (typeof require !== "undefined")
159
+ return require.apply(this, arguments);
160
+ throw Error('Dynamic require of "' + x + '" is not supported');
161
+ });
156
162
  function _ts_decorate(decorators, target, key, desc) {
157
163
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
158
164
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -2449,7 +2455,7 @@ var MMSTTopology = class {
2449
2455
  });
2450
2456
  const { connected, candidates } = this._controller.getState();
2451
2457
  if (this._sampleCollected || connected.length > this._maxPeers || candidates.length > 0) {
2452
- import_log8.log.info("Running the algorithm.", void 0, {
2458
+ (0, import_log8.log)("Running the algorithm.", void 0, {
2453
2459
  F: __dxlog_file9,
2454
2460
  L: 60,
2455
2461
  S: this,
@@ -2493,7 +2499,7 @@ var MMSTTopology = class {
2493
2499
  });
2494
2500
  const { connected, candidates, ownPeerId } = this._controller.getState();
2495
2501
  if (connected.length > this._maxPeers) {
2496
- import_log8.log.info(`disconnect ${connected.length - this._maxPeers} peers.`, void 0, {
2502
+ (0, import_log8.log)(`disconnect ${connected.length - this._maxPeers} peers.`, void 0, {
2497
2503
  F: __dxlog_file9,
2498
2504
  L: 85,
2499
2505
  S: this,
@@ -2519,7 +2525,7 @@ var MMSTTopology = class {
2519
2525
  }
2520
2526
  if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
2521
2527
  for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
2522
- import_log8.log.info(`Disconnect ${peer}.`, void 0, {
2528
+ (0, import_log8.log)(`Disconnect ${peer}.`, void 0, {
2523
2529
  F: __dxlog_file9,
2524
2530
  L: 97,
2525
2531
  S: this,
@@ -2529,7 +2535,7 @@ var MMSTTopology = class {
2529
2535
  }
2530
2536
  this._lastAction = /* @__PURE__ */ new Date();
2531
2537
  } else {
2532
- import_log8.log.info("rate limited discconnect", void 0, {
2538
+ (0, import_log8.log)("rate limited discconnect", void 0, {
2533
2539
  F: __dxlog_file9,
2534
2540
  L: 102,
2535
2541
  S: this,
@@ -2537,7 +2543,7 @@ var MMSTTopology = class {
2537
2543
  });
2538
2544
  }
2539
2545
  } else if (connected.length < this._originateConnections) {
2540
- import_log8.log.info(`connect ${this._originateConnections - connected.length} peers.`, void 0, {
2546
+ (0, import_log8.log)(`connect ${this._originateConnections - connected.length} peers.`, void 0, {
2541
2547
  F: __dxlog_file9,
2542
2548
  L: 106,
2543
2549
  S: this,
@@ -2555,7 +2561,7 @@ var MMSTTopology = class {
2555
2561
  }
2556
2562
  if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
2557
2563
  for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
2558
- import_log8.log.info(`Connect ${peer}.`, void 0, {
2564
+ (0, import_log8.log)(`Connect ${peer}.`, void 0, {
2559
2565
  F: __dxlog_file9,
2560
2566
  L: 115,
2561
2567
  S: this,
@@ -2565,7 +2571,7 @@ var MMSTTopology = class {
2565
2571
  }
2566
2572
  this._lastAction = /* @__PURE__ */ new Date();
2567
2573
  } else {
2568
- import_log8.log.info("rate limited connect", void 0, {
2574
+ (0, import_log8.log)("rate limited connect", void 0, {
2569
2575
  F: __dxlog_file9,
2570
2576
  L: 120,
2571
2577
  S: this,
@@ -2871,7 +2877,7 @@ var TransportKind;
2871
2877
  })(TransportKind || (TransportKind = {}));
2872
2878
  var wrtc = null;
2873
2879
  try {
2874
- wrtc = (0, import_chunk_JDKM4UPJ.__require)("@koush/wrtc");
2880
+ wrtc = __require("@koush/wrtc");
2875
2881
  } catch {
2876
2882
  }
2877
2883
  var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/transport/simplepeer-transport.ts";
@@ -3041,8 +3047,8 @@ var SimplePeerTransport = class {
3041
3047
  return {
3042
3048
  bytesSent: stats.transport.bytesSent,
3043
3049
  bytesReceived: stats.transport.bytesReceived,
3044
- packetsSent: stats.transport.messagesSent,
3045
- packetsReceived: stats.transport.messagesReceived,
3050
+ packetsSent: stats.transport.packetsSent,
3051
+ packetsReceived: stats.transport.packetsReceived,
3046
3052
  rawStats: stats.raw
3047
3053
  };
3048
3054
  }
@@ -3075,8 +3081,8 @@ var SimplePeerTransport = class {
3075
3081
  if (!rc) {
3076
3082
  return "unavailable";
3077
3083
  }
3078
- if (rc.relay) {
3079
- return `${rc.ip}:${rc.port}/${rc.protocol} relay for XXX ${rc.candidateType}`;
3084
+ if (rc.candidateType === "relay") {
3085
+ return `${rc.ip}:${rc.port}/${rc.protocol} relay for ${rc.relatedAddress}:${rc.relatedPort}`;
3080
3086
  }
3081
3087
  return `${rc.ip}:${rc.port}/${rc.protocol} ${rc.candidateType}`;
3082
3088
  }
@@ -3090,14 +3096,13 @@ var SimplePeerTransport = class {
3090
3096
  if (this._closed) {
3091
3097
  return;
3092
3098
  }
3093
- this._closed = true;
3094
3099
  this._disconnectStreams();
3095
3100
  this._peer.destroy();
3096
3101
  this._closed = true;
3097
3102
  this.closed.emit();
3098
3103
  (0, import_log11.log)("closed", void 0, {
3099
3104
  F: __dxlog_file12,
3100
- L: 201,
3105
+ L: 200,
3101
3106
  S: this,
3102
3107
  C: (f, a) => f(...a)
3103
3108
  });
@@ -3518,17 +3523,24 @@ var LibDataChannelTransport = class {
3518
3523
  this._readyForCandidates = new import_async11.Trigger();
3519
3524
  this._writeCallback = null;
3520
3525
  this._peer = (async () => {
3521
- const { RTCPeerConnection: PeerConnection } = await import("./datachannel-3VTTIMR5.cjs");
3526
+ const { RTCPeerConnection } = (await importESM("node-datachannel/polyfill")).default;
3522
3527
  if (this._closed) {
3523
3528
  this.errors.raise(new Error("connection already closed"));
3524
3529
  }
3525
- const peer = new PeerConnection(params.webrtcConfig);
3530
+ if (params.webrtcConfig) {
3531
+ params.webrtcConfig.iceServers = params.webrtcConfig.iceServers ?? [];
3532
+ } else {
3533
+ params.webrtcConfig = {
3534
+ iceServers: []
3535
+ };
3536
+ }
3537
+ const peer = new RTCPeerConnection(params.webrtcConfig);
3526
3538
  peer.onicecandidateerror = (event) => {
3527
3539
  import_log14.log.error("peer.onicecandidateerror", {
3528
3540
  event
3529
3541
  }, {
3530
3542
  F: __dxlog_file15,
3531
- L: 53,
3543
+ L: 61,
3532
3544
  S: this,
3533
3545
  C: (f, a) => f(...a)
3534
3546
  });
@@ -3540,7 +3552,7 @@ var LibDataChannelTransport = class {
3540
3552
  transportConnectionState: this._connected
3541
3553
  }, {
3542
3554
  F: __dxlog_file15,
3543
- L: 57,
3555
+ L: 65,
3544
3556
  S: this,
3545
3557
  C: (f, a) => f(...a)
3546
3558
  });
@@ -3550,7 +3562,7 @@ var LibDataChannelTransport = class {
3550
3562
  event
3551
3563
  }, {
3552
3564
  F: __dxlog_file15,
3553
- L: 66,
3565
+ L: 74,
3554
3566
  S: this,
3555
3567
  C: (f, a) => f(...a)
3556
3568
  });
@@ -3574,7 +3586,7 @@ var LibDataChannelTransport = class {
3574
3586
  err
3575
3587
  }, {
3576
3588
  F: __dxlog_file15,
3577
- L: 83,
3589
+ L: 91,
3578
3590
  S: this,
3579
3591
  C: (f, a) => f(...a)
3580
3592
  });
@@ -3583,12 +3595,15 @@ var LibDataChannelTransport = class {
3583
3595
  };
3584
3596
  if (params.initiator) {
3585
3597
  peer.createOffer().then(async (offer) => {
3598
+ if (this._closed) {
3599
+ return;
3600
+ }
3586
3601
  if (peer.connectionState !== "connecting") {
3587
3602
  import_log14.log.error("i am initiator but peer not in state connecting", {
3588
3603
  peer
3589
3604
  }, {
3590
3605
  F: __dxlog_file15,
3591
- L: 92,
3606
+ L: 104,
3592
3607
  S: this,
3593
3608
  C: (f, a) => f(...a)
3594
3609
  });
@@ -3598,7 +3613,7 @@ var LibDataChannelTransport = class {
3598
3613
  offer
3599
3614
  }, {
3600
3615
  F: __dxlog_file15,
3601
- L: 95,
3616
+ L: 107,
3602
3617
  S: this,
3603
3618
  C: (f, a) => f(...a)
3604
3619
  });
@@ -3618,7 +3633,7 @@ var LibDataChannelTransport = class {
3618
3633
  this.handleChannel(peer.createDataChannel(DATACHANNEL_LABEL));
3619
3634
  import_log14.log.debug("created data channel", void 0, {
3620
3635
  F: __dxlog_file15,
3621
- L: 104,
3636
+ L: 116,
3622
3637
  S: this,
3623
3638
  C: (f, a) => f(...a)
3624
3639
  });
@@ -3631,7 +3646,7 @@ var LibDataChannelTransport = class {
3631
3646
  event
3632
3647
  }, {
3633
3648
  F: __dxlog_file15,
3634
- L: 110,
3649
+ L: 122,
3635
3650
  S: this,
3636
3651
  C: (f, a) => f(...a)
3637
3652
  });
@@ -3649,7 +3664,7 @@ var LibDataChannelTransport = class {
3649
3664
  this._channel.onopen = () => {
3650
3665
  import_log14.log.debug("dataChannel.onopen", void 0, {
3651
3666
  F: __dxlog_file15,
3652
- L: 126,
3667
+ L: 138,
3653
3668
  S: this,
3654
3669
  C: (f, a) => f(...a)
3655
3670
  });
@@ -3670,7 +3685,7 @@ var LibDataChannelTransport = class {
3670
3685
  if (this._writeCallback !== null) {
3671
3686
  import_log14.log.error("consumer trying to write before we're ready for more data", void 0, {
3672
3687
  F: __dxlog_file15,
3673
- L: 143,
3688
+ L: 155,
3674
3689
  S: this,
3675
3690
  C: (f, a) => f(...a)
3676
3691
  });
@@ -3695,7 +3710,7 @@ var LibDataChannelTransport = class {
3695
3710
  err
3696
3711
  }, {
3697
3712
  F: __dxlog_file15,
3698
- L: 163,
3713
+ L: 175,
3699
3714
  S: this,
3700
3715
  C: (f, a) => f(...a)
3701
3716
  });
@@ -3719,6 +3734,12 @@ var LibDataChannelTransport = class {
3719
3734
  return;
3720
3735
  }
3721
3736
  await this._disconnectStreams();
3737
+ const peer = await this._peer;
3738
+ try {
3739
+ peer.close();
3740
+ } catch (err) {
3741
+ this.errors.raise(err);
3742
+ }
3722
3743
  this._closed = true;
3723
3744
  this.closed.emit();
3724
3745
  }
@@ -3732,7 +3753,7 @@ var LibDataChannelTransport = class {
3732
3753
  peer
3733
3754
  }, {
3734
3755
  F: __dxlog_file15,
3735
- L: 198,
3756
+ L: 216,
3736
3757
  S: this,
3737
3758
  C: (f, a) => f(...a)
3738
3759
  });
@@ -3760,7 +3781,7 @@ var LibDataChannelTransport = class {
3760
3781
  err
3761
3782
  }, {
3762
3783
  F: __dxlog_file15,
3763
- L: 209,
3784
+ L: 227,
3764
3785
  S: this,
3765
3786
  C: (f, a) => f(...a)
3766
3787
  });
@@ -3780,7 +3801,7 @@ var LibDataChannelTransport = class {
3780
3801
  err
3781
3802
  }, {
3782
3803
  F: __dxlog_file15,
3783
- L: 220,
3804
+ L: 238,
3784
3805
  S: this,
3785
3806
  C: (f, a) => f(...a)
3786
3807
  });
@@ -3799,7 +3820,7 @@ var LibDataChannelTransport = class {
3799
3820
  signal
3800
3821
  }, {
3801
3822
  F: __dxlog_file15,
3802
- L: 231,
3823
+ L: 249,
3803
3824
  S: this,
3804
3825
  C: (f, a) => f(...a)
3805
3826
  });
@@ -3808,51 +3829,61 @@ var LibDataChannelTransport = class {
3808
3829
  }).catch((err) => {
3809
3830
  import_log14.log.catch(err, void 0, {
3810
3831
  F: __dxlog_file15,
3811
- L: 236,
3832
+ L: 254,
3812
3833
  S: this,
3813
3834
  C: (f, a) => f(...a)
3814
3835
  });
3815
3836
  });
3816
3837
  }
3817
3838
  async getDetails() {
3839
+ const stats = await this._getStats();
3840
+ const rc = stats?.remoteCandidate;
3841
+ if (!rc) {
3842
+ return "unavailable";
3843
+ }
3844
+ if (rc.candidateType === "relay") {
3845
+ return `${rc.ip}:${rc.port} relay for ${rc.relatedAddress}:${rc.relatedPort}`;
3846
+ }
3847
+ return `${rc.ip}:${rc.port} ${rc.candidateType}`;
3848
+ }
3849
+ async _getStats() {
3818
3850
  return this._peer.then(async (peer) => {
3819
- const cp = await peer.getSelectedCandidatePair();
3820
- if (!cp) {
3821
- return "unavailable";
3851
+ const stats = await peer.getStats();
3852
+ const statsEntries = Array.from(stats.entries());
3853
+ const transport = statsEntries.filter((s) => s[1].type === "transport")[0][1];
3854
+ const candidatePair = statsEntries.filter((s) => s[0] === transport.selectedCandidatePairId);
3855
+ let selectedCandidatePair;
3856
+ let remoteCandidate;
3857
+ if (candidatePair.length > 0) {
3858
+ selectedCandidatePair = candidatePair[0][1];
3859
+ remoteCandidate = statsEntries.filter((s) => s[0] === selectedCandidatePair.remoteCandidateId)[0][1];
3822
3860
  }
3823
- return `${cp.remote.address}:${cp.remote.port}/${cp.remote.transportType} ${cp.remote.type}`;
3824
- }).catch((err) => {
3825
- import_log14.log.catch(err, void 0, {
3826
- F: __dxlog_file15,
3827
- L: 250,
3828
- S: this,
3829
- C: (f, a) => f(...a)
3830
- });
3831
- return "unavailable";
3861
+ return {
3862
+ transport,
3863
+ selectedCandidatePair,
3864
+ remoteCandidate,
3865
+ raw: Object.fromEntries(stats)
3866
+ };
3832
3867
  });
3833
3868
  }
3834
3869
  async getStats() {
3835
- return this._peer.then((peer) => {
3836
- return {
3837
- bytesSent: peer.bytesSent(),
3838
- bytesReceived: peer.bytesReceived(),
3839
- packetsSent: 0,
3840
- packetsReceived: 0
3841
- };
3842
- }).catch((err) => {
3843
- import_log14.log.catch(err, void 0, {
3844
- F: __dxlog_file15,
3845
- L: 266,
3846
- S: this,
3847
- C: (f, a) => f(...a)
3848
- });
3870
+ const stats = await this._getStats();
3871
+ if (!stats) {
3849
3872
  return {
3850
3873
  bytesSent: 0,
3851
3874
  bytesReceived: 0,
3852
3875
  packetsSent: 0,
3853
- packetsReceived: 0
3876
+ packetsReceived: 0,
3877
+ rawStats: {}
3854
3878
  };
3855
- });
3879
+ }
3880
+ return {
3881
+ bytesSent: stats.transport.bytesSent,
3882
+ bytesReceived: stats.transport.bytesReceived,
3883
+ packetsSent: 0,
3884
+ packetsReceived: 0,
3885
+ rawStats: stats.raw
3886
+ };
3856
3887
  }
3857
3888
  // TODO(nf): add classmethod to call node-datachannel.cleanup() when all instances have been destroyed?
3858
3889
  async destroy() {
@@ -3871,6 +3902,7 @@ var createLibDataChannelTransportFactory = (webrtcConfig) => ({
3871
3902
  webrtcConfig
3872
3903
  })
3873
3904
  });
3905
+ var importESM = Function("path", "return import(path)");
3874
3906
  var __dxlog_file16 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/transport/tcp-transport.ts";
3875
3907
  var TcpTransportFactory = {
3876
3908
  createTransport: (params) => new TcpTransport(params)
@@ -4058,4 +4090,4 @@ var createTeleportProtocolFactory = (onConnection) => {
4058
4090
  createSimplePeerTransportFactory,
4059
4091
  createTeleportProtocolFactory
4060
4092
  });
4061
- //# sourceMappingURL=chunk-55WTPQV5.cjs.map
4093
+ //# sourceMappingURL=chunk-Y2B5BDRH.cjs.map