libp2p 0.37.2 → 0.37.3-de30c2c

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 (150) hide show
  1. package/dist/src/address-manager/index.d.ts +2 -2
  2. package/dist/src/address-manager/index.d.ts.map +1 -1
  3. package/dist/src/circuit/auto-relay.d.ts +4 -4
  4. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  5. package/dist/src/circuit/circuit/hop.d.ts +2 -2
  6. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  7. package/dist/src/circuit/circuit/hop.js +2 -2
  8. package/dist/src/circuit/circuit/hop.js.map +1 -1
  9. package/dist/src/circuit/circuit/stop.d.ts +1 -1
  10. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  11. package/dist/src/circuit/circuit/stop.js +1 -1
  12. package/dist/src/circuit/circuit/stop.js.map +1 -1
  13. package/dist/src/circuit/circuit/stream-handler.d.ts +1 -1
  14. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  15. package/dist/src/circuit/index.d.ts +2 -2
  16. package/dist/src/circuit/index.d.ts.map +1 -1
  17. package/dist/src/circuit/listener.d.ts +3 -3
  18. package/dist/src/circuit/listener.d.ts.map +1 -1
  19. package/dist/src/circuit/transport.d.ts +5 -5
  20. package/dist/src/circuit/transport.d.ts.map +1 -1
  21. package/dist/src/circuit/transport.js +2 -2
  22. package/dist/src/circuit/transport.js.map +1 -1
  23. package/dist/src/config.d.ts.map +1 -1
  24. package/dist/src/config.js +11 -3
  25. package/dist/src/config.js.map +1 -1
  26. package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
  27. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  28. package/dist/src/connection-manager/dialer/auto-dialer.d.ts +2 -2
  29. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -1
  30. package/dist/src/connection-manager/dialer/dial-request.d.ts +1 -1
  31. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
  32. package/dist/src/connection-manager/dialer/index.d.ts +5 -5
  33. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  34. package/dist/src/connection-manager/dialer/index.js +1 -1
  35. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  36. package/dist/src/connection-manager/index.d.ts +9 -9
  37. package/dist/src/connection-manager/index.d.ts.map +1 -1
  38. package/dist/src/connection-manager/index.js +42 -32
  39. package/dist/src/connection-manager/index.js.map +1 -1
  40. package/dist/src/content-routing/index.d.ts +4 -4
  41. package/dist/src/content-routing/index.d.ts.map +1 -1
  42. package/dist/src/content-routing/utils.d.ts +2 -2
  43. package/dist/src/content-routing/utils.d.ts.map +1 -1
  44. package/dist/src/dht/dht-content-routing.d.ts +3 -3
  45. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  46. package/dist/src/dht/dht-peer-routing.d.ts +5 -5
  47. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  48. package/dist/src/dht/dummy-dht.d.ts +3 -3
  49. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  50. package/dist/src/dht/dummy-dht.js +1 -1
  51. package/dist/src/dht/dummy-dht.js.map +1 -1
  52. package/dist/src/errors.d.ts +4 -1
  53. package/dist/src/errors.d.ts.map +1 -1
  54. package/dist/src/errors.js +3 -0
  55. package/dist/src/errors.js.map +1 -1
  56. package/dist/src/fetch/index.d.ts +7 -4
  57. package/dist/src/fetch/index.d.ts.map +1 -1
  58. package/dist/src/fetch/index.js +61 -39
  59. package/dist/src/fetch/index.js.map +1 -1
  60. package/dist/src/get-peer.d.ts +2 -2
  61. package/dist/src/get-peer.d.ts.map +1 -1
  62. package/dist/src/get-peer.js +1 -1
  63. package/dist/src/get-peer.js.map +1 -1
  64. package/dist/src/identify/index.d.ts +7 -7
  65. package/dist/src/identify/index.d.ts.map +1 -1
  66. package/dist/src/identify/index.js +15 -23
  67. package/dist/src/identify/index.js.map +1 -1
  68. package/dist/src/index.d.ts +17 -17
  69. package/dist/src/index.d.ts.map +1 -1
  70. package/dist/src/insecure/index.d.ts +2 -2
  71. package/dist/src/insecure/index.d.ts.map +1 -1
  72. package/dist/src/insecure/index.js +1 -1
  73. package/dist/src/insecure/index.js.map +1 -1
  74. package/dist/src/keychain/index.d.ts +2 -2
  75. package/dist/src/keychain/index.d.ts.map +1 -1
  76. package/dist/src/libp2p.d.ts +14 -14
  77. package/dist/src/libp2p.d.ts.map +1 -1
  78. package/dist/src/libp2p.js +14 -4
  79. package/dist/src/libp2p.js.map +1 -1
  80. package/dist/src/metrics/index.d.ts +2 -2
  81. package/dist/src/metrics/index.d.ts.map +1 -1
  82. package/dist/src/metrics/moving-average.d.ts +1 -1
  83. package/dist/src/metrics/moving-average.d.ts.map +1 -1
  84. package/dist/src/metrics/stats.d.ts +1 -1
  85. package/dist/src/metrics/stats.d.ts.map +1 -1
  86. package/dist/src/nat-manager.d.ts +1 -1
  87. package/dist/src/nat-manager.d.ts.map +1 -1
  88. package/dist/src/peer-record-updater.d.ts +1 -1
  89. package/dist/src/peer-record-updater.d.ts.map +1 -1
  90. package/dist/src/peer-routing.d.ts +4 -4
  91. package/dist/src/peer-routing.d.ts.map +1 -1
  92. package/dist/src/ping/index.d.ts +6 -3
  93. package/dist/src/ping/index.d.ts.map +1 -1
  94. package/dist/src/ping/index.js +6 -2
  95. package/dist/src/ping/index.js.map +1 -1
  96. package/dist/src/pnet/index.d.ts +1 -2
  97. package/dist/src/pnet/index.d.ts.map +1 -1
  98. package/dist/src/pnet/index.js.map +1 -1
  99. package/dist/src/pubsub/dummy-pubsub.d.ts +2 -2
  100. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
  101. package/dist/src/registrar.d.ts +10 -8
  102. package/dist/src/registrar.d.ts.map +1 -1
  103. package/dist/src/registrar.js +63 -44
  104. package/dist/src/registrar.js.map +1 -1
  105. package/dist/src/transport-manager.d.ts +3 -3
  106. package/dist/src/transport-manager.d.ts.map +1 -1
  107. package/dist/src/upgrader.d.ts +6 -6
  108. package/dist/src/upgrader.d.ts.map +1 -1
  109. package/dist/src/upgrader.js +69 -8
  110. package/dist/src/upgrader.js.map +1 -1
  111. package/package.json +51 -29
  112. package/src/address-manager/index.ts +2 -2
  113. package/src/circuit/auto-relay.ts +4 -4
  114. package/src/circuit/circuit/hop.ts +4 -4
  115. package/src/circuit/circuit/stop.ts +2 -2
  116. package/src/circuit/circuit/stream-handler.ts +1 -1
  117. package/src/circuit/index.ts +2 -2
  118. package/src/circuit/listener.ts +3 -3
  119. package/src/circuit/transport.ts +5 -5
  120. package/src/config.ts +11 -3
  121. package/src/connection-manager/auto-dialler.ts +1 -1
  122. package/src/connection-manager/dialer/auto-dialer.ts +2 -2
  123. package/src/connection-manager/dialer/dial-request.ts +1 -1
  124. package/src/connection-manager/dialer/index.ts +5 -5
  125. package/src/connection-manager/index.ts +55 -39
  126. package/src/content-routing/index.ts +2 -2
  127. package/src/content-routing/utils.ts +2 -2
  128. package/src/dht/dht-content-routing.ts +2 -2
  129. package/src/dht/dht-peer-routing.ts +3 -3
  130. package/src/dht/dummy-dht.ts +3 -3
  131. package/src/errors.ts +4 -1
  132. package/src/fetch/index.ts +91 -50
  133. package/src/get-peer.ts +3 -3
  134. package/src/identify/index.ts +24 -29
  135. package/src/index.ts +17 -17
  136. package/src/insecure/index.ts +3 -3
  137. package/src/keychain/index.ts +2 -2
  138. package/src/libp2p.ts +31 -15
  139. package/src/metrics/index.ts +2 -2
  140. package/src/metrics/moving-average.ts +1 -1
  141. package/src/metrics/stats.ts +1 -1
  142. package/src/nat-manager.ts +1 -1
  143. package/src/peer-record-updater.ts +1 -1
  144. package/src/peer-routing.ts +4 -4
  145. package/src/ping/index.ts +12 -5
  146. package/src/pnet/index.ts +1 -2
  147. package/src/pubsub/dummy-pubsub.ts +2 -2
  148. package/src/registrar.ts +79 -55
  149. package/src/transport-manager.ts +3 -3
  150. package/src/upgrader.ts +94 -16
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,uDAAuD;AACvD,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAUlD,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AA0BrC,MAAM,OAAO,eAAgB,SAAQ,YAA4B;IAK/D,YAAa,UAAsB,EAAE,IAAkB;QACrD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAA;QAErC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAEvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAE,MAA2B;QAC/C,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAgC,CAAA;QACpC,IAAI,YAA4C,CAAA;QAChD,IAAI,cAAc,CAAA;QAClB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC5E,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+DAA+D,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5H;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACrE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;SACxE;QAED,GAAG,CAAC,yCAAyC,CAAC,CAAA;QAE9C,UAAU;QACV,IAAI,aAAa,GAAG,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,GAAG,CAAC,mCAAmC,CAAC,CAAA;YACxC,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAChD;QAED,IAAI;YACF,yBAAyB;YACzB,CAAC;gBACC,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ,EAAE,cAAc;aACzB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;YAE9C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;gBACxF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC/C,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;gBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;aAClC;iBAAM;gBACL,YAAY,GAAG,aAAa,CAAA;aAC7B;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;YACtD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,GAAG,CAAA;SACV;QAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE;YACvF,GAAG,aAAa;YAChB,GAAG,aAAa;SACjB,CAAC,EAAE;YACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACrI;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,UAAU,CAAC,CAAA;SACpB;QAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,cAAc;YACd,SAAS,EAAE,SAAS;YACpB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,MAA2B;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACjG;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAE5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YAC3F,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+EAA+E,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5I;QAED,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAY,CAAA;QAChB,IAAI,cAAc,CAAA;QAClB,IAAI,YAAY,CAAA;QAChB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACrE,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACxC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;SACxE;QAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAE/C,UAAU;QACV,IAAI,aAAa,GAAG,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAChD;QAED,IAAI;YACF,yBAAyB;YACzB,CAAC;gBACC,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ,EAAE,cAAc;aACzB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;YAE7D,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,+BAA+B,CAAC,UAAU,EAAE;gBACzF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAChD,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;gBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;aAClC;iBAAM;gBACL,YAAY,GAAG,aAAa,CAAA;aAC7B;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,GAAG,CAAA;SACV;QAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;YACxF,GAAG,aAAa;YAChB,GAAG,aAAa;SACjB,CAAC,EAAE;YACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACrI;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,UAAU,CAAC,CAAA;SACpB;QAED,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAEhD,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,cAAc;YACd,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAE,IAA4B;QAC7C,MAAM,EACJ,cAAc,EACd,SAAS,EACT,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACb,GAAG,IAAI,CAAA;QAER,IAAI,KAA8B,CAAA;QAClC,IAAI,SAAmG,CAAA;QACvG,IAAI,UAAsB,CAAA,CAAC,mCAAmC;QAE9D,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,mBAAmB;YACnB,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE;gBACtD,yCAAyC;gBACzC,gBAAgB,EAAE,WAAW,CAAC,EAAE;oBAC9B,IAAI,UAAU,IAAI,IAAI,EAAE;wBACtB,OAAM;qBACP;oBAED,KAAK,OAAO,CAAC,OAAO,EAAE;yBACnB,IAAI,CAAC,KAAK,IAAI,EAAE;wBACf,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAA;wBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAA;wBAC/D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;wBACxD,GAAG,CAAC,kCAAkC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;wBAE5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;wBAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;4BACnB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;yBACtD;wBAED,IAAI,UAAU,IAAI,IAAI,EAAE;4BACtB,OAAM;yBACP;wBAED,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;wBAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACjF,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,CAAC,EAAE;wBACX,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;gBACN,CAAC;gBACD,8BAA8B;gBAC9B,WAAW,EAAE,WAAW,CAAC,EAAE;oBACzB,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBAC1C,CAAC;aACF,CAAC,CAAA;YAEF,SAAS,GAAG,KAAK,EAAE,SAAmB,EAAE,UAAwB,EAAE,EAA2B,EAAE;gBAC7F,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;iBACnF;gBAED,GAAG,CAAC,+BAA+B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;gBACrC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAA;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;gBAE5C,IAAI;oBACF,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;oBAE/D,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;qBAC/D;oBAED,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAA;iBAC3D;gBAAC,OAAO,GAAQ,EAAE;oBACjB,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;oBAE7C,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;wBACpB,MAAM,GAAG,CAAA;qBACV;oBAED,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAA;iBACnD;YACH,CAAC,CAAA;YAED,kCAAkC;YAClC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACzD;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAA;QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE;YACrC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBACf,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC3F,2DAA2D;oBAC3D,CAAC,KAAK,IAAI,EAAE;wBACV,IAAI;4BACF,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gCACrC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;6BACzB;yBACF;wBAAC,OAAO,GAAQ,EAAE;4BACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;yBACf;gCAAS;4BACR,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,eAAe,EAAE;gCAC9D,MAAM,EAAE,UAAU;6BACnB,CAAC,CAAC,CAAA;yBACJ;oBACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;iBACH;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAC7B,CAAC;SACF,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAErC,MAAM,2BAA2B,GAAG,GAAG,EAAE;YACvC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjG,CAAC,CAAA;QAED,wBAAwB;QACxB,UAAU,GAAG,gBAAgB,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,KAAK,EAAE,QAAQ;gBAC5B,UAAU,EAAE,cAAc;aAC3B;YACD,SAAS,EAAE,SAAS,IAAI,2BAA2B;YACnD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,EAAE;YAC/E,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,sCAAsC;gBACtC,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;wBACjD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBACtB,CAAC,CAAC,CAAC,CAAA;iBACJ;YACH,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,YAAY,EAAE;YAC3D,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC,CAAA;QAEH,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,IAAqB;QAC9B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,UAA8B;QACnD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,4CAA4C,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,kCAAkC,CAAC,CAAA;YAEvC,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC;gBACrE,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,UAA+B,EAAE,YAAoB;QAC3E,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAA;QAEpD,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;YAEzD,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC;gBACpF,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAE,UAA+B,EAAE,MAAuC;QAChG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3D,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YACpD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAE,UAA+B,EAAE,MAAuC;QAC/F,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACnD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,uDAAuD;AACvD,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAOlD,OAAO,EAAc,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAE1F,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AA0BrC,SAAS,uBAAuB,CAAE,QAAgB,EAAE,SAAoB;IACtE,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAElD,OAAO,OAAO,CAAC,iBAAiB,CAAA;KACjC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,2BAA2B,EAAE;YAClD,MAAM,GAAG,CAAA;SACV;KACF;IAED,OAAO,2BAA2B,CAAA;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAE,QAAgB,EAAE,SAAoB;IACtE,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAElD,OAAO,OAAO,CAAC,kBAAkB,CAAA;KAClC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,2BAA2B,EAAE;YAClD,MAAM,GAAG,CAAA;SACV;KACF;IAED,OAAO,4BAA4B,CAAA;AACrC,CAAC;AAED,SAAS,YAAY,CAAE,QAAgB,EAAE,SAAiC,EAAE,UAAsB;IAChG,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC5E,WAAW,EAAE,CAAA;SACd;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,YAA4B;IAK/D,YAAa,UAAsB,EAAE,IAAkB;QACrD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAA;QAErC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAEvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAE,MAA2B;QAC/C,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAgC,CAAA;QACpC,IAAI,YAA4C,CAAA;QAChD,IAAI,cAAc,CAAA;QAClB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;YAC5E,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+DAA+D,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5H;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACrE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;SACxE;QAED,GAAG,CAAC,yCAAyC,CAAC,CAAA;QAE9C,UAAU;QACV,IAAI,aAAa,GAAG,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,GAAG,CAAC,mCAAmC,CAAC,CAAA;YACxC,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAChD;QAED,IAAI;YACF,yBAAyB;YACzB,CAAC;gBACC,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ,EAAE,cAAc;aACzB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;YAE9C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;gBACxF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC/C,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;gBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;aAClC;iBAAM;gBACL,YAAY,GAAG,aAAa,CAAA;aAC7B;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;YACtD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,GAAG,CAAA;SACV;QAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE;YACvF,GAAG,aAAa;YAChB,GAAG,aAAa;SACjB,CAAC,EAAE;YACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACrI;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,UAAU,CAAC,CAAA;SACpB;QAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,cAAc;YACd,SAAS,EAAE,SAAS;YACpB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,MAA2B;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACjG;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAE5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YAC3F,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+EAA+E,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5I;QAED,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAY,CAAA;QAChB,IAAI,cAAc,CAAA;QAClB,IAAI,YAAY,CAAA;QAChB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACrE,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACxC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;SACxE;QAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAE/C,UAAU;QACV,IAAI,aAAa,GAAG,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAChD;QAED,IAAI;YACF,yBAAyB;YACzB,CAAC;gBACC,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ,EAAE,cAAc;aACzB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;YAE7D,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,+BAA+B,CAAC,UAAU,EAAE;gBACzF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAChD,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;gBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;aAClC;iBAAM;gBACL,YAAY,GAAG,aAAa,CAAA;aAC7B;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,GAAG,CAAA;SACV;QAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;YACxF,GAAG,aAAa;YAChB,GAAG,aAAa;SACjB,CAAC,EAAE;YACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACrI;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,UAAU,CAAC,CAAA;SACpB;QAED,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAEhD,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,cAAc;YACd,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAE,IAA4B;QAC7C,MAAM,EACJ,cAAc,EACd,SAAS,EACT,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACb,GAAG,IAAI,CAAA;QAER,IAAI,KAA8B,CAAA;QAClC,IAAI,SAA2F,CAAA;QAC/F,IAAI,UAAsB,CAAA,CAAC,mCAAmC;QAE9D,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,mBAAmB;YACnB,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC;gBACrC,yCAAyC;gBACzC,gBAAgB,EAAE,WAAW,CAAC,EAAE;oBAC9B,IAAI,UAAU,IAAI,IAAI,EAAE;wBACtB,OAAM;qBACP;oBAED,KAAK,OAAO,CAAC,OAAO,EAAE;yBACnB,IAAI,CAAC,KAAK,IAAI,EAAE;wBACf,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAA;wBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAA;wBAC/D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;wBACxD,GAAG,CAAC,kCAAkC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;wBAE5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;wBAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;4BACnB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;yBACtD;wBAED,IAAI,UAAU,IAAI,IAAI,EAAE;4BACtB,OAAM;yBACP;wBAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;wBACvF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;wBAEjE,IAAI,WAAW,KAAK,aAAa,EAAE;4BACjC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAA;yBAC5G;wBAED,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;wBAEpC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;wBACjC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACjF,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,CAAC,EAAE;wBACX,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAEd,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;4BAC3C,WAAW,CAAC,KAAK,EAAE,CAAA;yBACpB;oBACH,CAAC,CAAC,CAAA;gBACN,CAAC;gBACD,8BAA8B;gBAC9B,WAAW,EAAE,WAAW,CAAC,EAAE;oBACzB,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBAC1C,CAAC;aACF,CAAC,CAAA;YAEF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC5B;YAED,SAAS,GAAG,KAAK,EAAE,SAAmB,EAAE,UAAwB,EAAE,EAAmB,EAAE;gBACrF,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;iBACnF;gBAED,GAAG,CAAC,+BAA+B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;gBACrC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAA;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;gBAE5C,IAAI;oBACF,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;oBAE/D,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;qBAC/D;oBAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;oBACvF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;oBAElE,IAAI,WAAW,KAAK,aAAa,EAAE;wBACjC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAA;qBAC7G;oBAED,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBAEpC,OAAO;wBACL,GAAG,WAAW;wBACd,GAAG,MAAM;wBACT,IAAI,EAAE;4BACJ,GAAG,WAAW,CAAC,IAAI;4BACnB,QAAQ;yBACT;qBACF,CAAA;iBACF;gBAAC,OAAO,GAAQ,EAAE;oBACjB,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;oBAE7C,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;wBAC3C,WAAW,CAAC,KAAK,EAAE,CAAA;qBACpB;oBAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;wBACpB,MAAM,GAAG,CAAA;qBACV;oBAED,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAA;iBACnD;YACH,CAAC,CAAA;YAED,kCAAkC;YAClC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACzD;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAA;QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE;YACrC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBACf,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC3F,2DAA2D;oBAC3D,CAAC,KAAK,IAAI,EAAE;wBACV,IAAI;4BACF,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gCACrC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;6BACzB;yBACF;wBAAC,OAAO,GAAQ,EAAE;4BACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;yBACf;gCAAS;4BACR,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,eAAe,EAAE;gCAC9D,MAAM,EAAE,UAAU;6BACnB,CAAC,CAAC,CAAA;yBACJ;oBACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;iBACH;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAC7B,CAAC;SACF,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAErC,MAAM,2BAA2B,GAAG,GAAG,EAAE;YACvC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjG,CAAC,CAAA;QAED,wBAAwB;QACxB,UAAU,GAAG,gBAAgB,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,KAAK,EAAE,QAAQ;gBAC5B,UAAU,EAAE,cAAc;aAC3B;YACD,SAAS,EAAE,SAAS,IAAI,2BAA2B;YACnD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,EAAE;YAC/E,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,sCAAsC;gBACtC,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;iBACtC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,YAAY,EAAE;YAC3D,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC,CAAA;QAEH,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,IAAqB;QAC9B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEvE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,UAA8B;QACnD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,4CAA4C,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,kCAAkC,CAAC,CAAA;YAEvC,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC;gBACrE,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,UAA+B,EAAE,YAAoB;QAC3E,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAA;QAEpD,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;YAEzD,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC;gBACpF,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAE,UAA+B,EAAE,MAAuC;QAChG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3D,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YACpD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAE,UAA+B,EAAE,MAAuC;QAC/F,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACnD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p",
3
- "version": "0.37.2",
3
+ "version": "0.37.3-de30c2c",
4
4
  "description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p#readme",
@@ -49,15 +49,19 @@
49
49
  ],
50
50
  "exports": {
51
51
  ".": {
52
+ "types": "./src/index.d.ts",
52
53
  "import": "./dist/src/index.js"
53
54
  },
54
55
  "./insecure": {
56
+ "types": "./dist/src/insecure/index.d.ts",
55
57
  "import": "./dist/src/insecure/index.js"
56
58
  },
57
59
  "./pnet": {
60
+ "types": "./dist/src/pnet/index.d.ts",
58
61
  "import": "./dist/src/pnet/index.js"
59
62
  },
60
63
  "./transport-manager": {
64
+ "types": "./dist/src/transport-manager.d.ts",
61
65
  "import": "./dist/src/transport-manager.js"
62
66
  }
63
67
  },
@@ -93,18 +97,34 @@
93
97
  },
94
98
  "dependencies": {
95
99
  "@achingbrain/nat-port-mapper": "^1.0.3",
96
- "@libp2p/connection": "^2.0.2",
97
- "@libp2p/crypto": "^0.22.11",
98
- "@libp2p/interfaces": "^2.0.2",
99
- "@libp2p/logger": "^1.1.4",
100
- "@libp2p/multistream-select": "^1.0.4",
100
+ "@libp2p/components": "^2.0.0",
101
+ "@libp2p/connection": "^4.0.0",
102
+ "@libp2p/crypto": "^1.0.0",
103
+ "@libp2p/interface-address-manager": "^1.0.1",
104
+ "@libp2p/interface-connection": "^2.0.0",
105
+ "@libp2p/interface-connection-encrypter": "^1.0.2",
106
+ "@libp2p/interface-content-routing": "^1.0.1",
107
+ "@libp2p/interface-dht": "^1.0.0",
108
+ "@libp2p/interface-metrics": "^1.0.2",
109
+ "@libp2p/interface-peer-discovery": "^1.0.0",
110
+ "@libp2p/interface-peer-id": "^1.0.2",
111
+ "@libp2p/interface-peer-info": "^1.0.1",
112
+ "@libp2p/interface-peer-routing": "^1.0.0",
113
+ "@libp2p/interface-peer-store": "^1.0.0",
114
+ "@libp2p/interface-pubsub": "^1.0.3",
115
+ "@libp2p/interface-registrar": "^2.0.0",
116
+ "@libp2p/interface-stream-muxer": "^1.0.1",
117
+ "@libp2p/interface-transport": "^1.0.0",
118
+ "@libp2p/interfaces": "^3.0.2",
119
+ "@libp2p/logger": "^2.0.0",
120
+ "@libp2p/multistream-select": "^2.0.1",
101
121
  "@libp2p/peer-collections": "^1.0.2",
102
122
  "@libp2p/peer-id": "^1.1.10",
103
123
  "@libp2p/peer-id-factory": "^1.0.9",
104
- "@libp2p/peer-record": "^1.0.8",
105
- "@libp2p/peer-store": "^1.0.10",
124
+ "@libp2p/peer-record": "^2.0.0",
125
+ "@libp2p/peer-store": "^3.0.0",
106
126
  "@libp2p/tracked-map": "^1.0.5",
107
- "@libp2p/utils": "^1.0.10",
127
+ "@libp2p/utils": "^2.0.0",
108
128
  "@multiformats/mafmt": "^11.0.2",
109
129
  "@multiformats/multiaddr": "^10.1.8",
110
130
  "abortable-iterator": "^4.0.2",
@@ -119,7 +139,7 @@
119
139
  "it-filter": "^1.0.3",
120
140
  "it-first": "^1.0.6",
121
141
  "it-foreach": "^0.1.1",
122
- "it-handshake": "^3.0.1",
142
+ "it-handshake": "^4.0.0",
123
143
  "it-length-prefixed": "^7.0.1",
124
144
  "it-map": "^1.0.6",
125
145
  "it-merge": "^1.0.3",
@@ -146,34 +166,36 @@
146
166
  },
147
167
  "devDependencies": {
148
168
  "@chainsafe/libp2p-noise": "^6.2.0",
149
- "@libp2p/bootstrap": "^1.0.4",
150
- "@libp2p/daemon-client": "^1.0.2",
151
- "@libp2p/daemon-server": "^1.0.2",
152
- "@libp2p/delegated-content-routing": "^1.0.2",
153
- "@libp2p/delegated-peer-routing": "^1.0.2",
154
- "@libp2p/floodsub": "^1.0.6",
155
- "@libp2p/interface-compliance-tests": "^2.0.3",
156
- "@libp2p/interop": "^1.0.3",
157
- "@libp2p/kad-dht": "^1.0.9",
158
- "@libp2p/mdns": "^1.0.5",
159
- "@libp2p/mplex": "^1.1.0",
160
- "@libp2p/pubsub": "^1.2.18",
161
- "@libp2p/tcp": "^1.0.9",
162
- "@libp2p/topology": "^1.1.7",
163
- "@libp2p/webrtc-star": "^1.0.8",
164
- "@libp2p/websockets": "^1.0.7",
169
+ "@libp2p/bootstrap": "^2.0.0",
170
+ "@libp2p/daemon-client": "^2.0.0",
171
+ "@libp2p/daemon-server": "^2.0.0",
172
+ "@libp2p/delegated-content-routing": "^2.0.0",
173
+ "@libp2p/delegated-peer-routing": "^2.0.0",
174
+ "@libp2p/floodsub": "^3.0.0",
175
+ "@libp2p/interface-compliance-tests": "^3.0.1",
176
+ "@libp2p/interface-connection-encrypter-compliance-tests": "^1.0.0",
177
+ "@libp2p/interface-mocks": "^2.0.0",
178
+ "@libp2p/interop": "^2.0.0",
179
+ "@libp2p/kad-dht": "^3.0.0",
180
+ "@libp2p/mdns": "^2.0.0",
181
+ "@libp2p/mplex": "^3.0.0",
182
+ "@libp2p/pubsub": "^3.0.1",
183
+ "@libp2p/tcp": "^3.0.0",
184
+ "@libp2p/topology": "^3.0.0",
185
+ "@libp2p/webrtc-star": "^2.0.0",
186
+ "@libp2p/websockets": "^3.0.0",
165
187
  "@types/node-forge": "^1.0.0",
166
188
  "@types/p-fifo": "^1.0.0",
167
189
  "@types/varint": "^6.0.0",
168
190
  "@types/xsalsa20": "^1.1.0",
169
- "aegir": "^37.0.9",
191
+ "aegir": "^37.3.0",
170
192
  "cborg": "^1.8.1",
171
193
  "delay": "^5.0.0",
172
194
  "execa": "^6.1.0",
173
195
  "go-libp2p": "^0.0.6",
174
196
  "into-stream": "^7.0.0",
175
- "ipfs-http-client": "^56.0.1",
176
- "it-pushable": "^2.0.1",
197
+ "ipfs-http-client": "^57.0.1",
198
+ "it-pushable": "^3.0.0",
177
199
  "it-to-buffer": "^2.0.2",
178
200
  "nock": "^13.0.3",
179
201
  "npm-run-all": "^4.1.5",
@@ -1,8 +1,8 @@
1
- import type { AddressManagerEvents } from '@libp2p/interfaces/address-manager'
1
+ import type { AddressManagerEvents } from '@libp2p/interface-address-manager'
2
2
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
3
3
  import { Multiaddr } from '@multiformats/multiaddr'
4
4
  import { peerIdFromString } from '@libp2p/peer-id'
5
- import type { Components } from '@libp2p/interfaces/components'
5
+ import type { Components } from '@libp2p/components'
6
6
 
7
7
  export interface AddressManagerInit {
8
8
  announceFilter?: AddressFilter
@@ -10,10 +10,10 @@ import {
10
10
  HOP_METADATA_VALUE,
11
11
  RELAY_RENDEZVOUS_NS
12
12
  } from './constants.js'
13
- import type { PeerId } from '@libp2p/interfaces/peer-id'
14
- import type { AddressSorter, PeerProtocolsChangeData } from '@libp2p/interfaces/peer-store'
15
- import type { Connection } from '@libp2p/interfaces/connection'
16
- import type { Components } from '@libp2p/interfaces/components'
13
+ import type { PeerId } from '@libp2p/interface-peer-id'
14
+ import type { AddressSorter, PeerProtocolsChangeData } from '@libp2p/interface-peer-store'
15
+ import type { Connection } from '@libp2p/interface-connection'
16
+ import type { Components } from '@libp2p/components'
17
17
  import sort from 'it-sort'
18
18
  import all from 'it-all'
19
19
  import { pipe } from 'it-pipe'
@@ -7,11 +7,11 @@ import { pipe } from 'it-pipe'
7
7
  import { codes as Errors } from '../../errors.js'
8
8
  import { stop } from './stop.js'
9
9
  import { RELAY_CODEC } from '../multicodec.js'
10
- import type { Connection } from '@libp2p/interfaces/connection'
10
+ import type { Connection } from '@libp2p/interface-connection'
11
11
  import { peerIdFromBytes } from '@libp2p/peer-id'
12
12
  import type { Duplex } from 'it-stream-types'
13
13
  import type { Circuit } from '../transport.js'
14
- import type { ConnectionManager } from '@libp2p/interfaces/connection-manager'
14
+ import type { ConnectionManager } from '@libp2p/interface-connection-manager'
15
15
 
16
16
  const log = logger('libp2p:circuit:hop')
17
17
 
@@ -134,7 +134,7 @@ export async function hop (options: HopConfig): Promise<Duplex<Uint8Array>> {
134
134
  } = options
135
135
 
136
136
  // Create a new stream to the relay
137
- const { stream } = await connection.newStream(RELAY_CODEC)
137
+ const stream = await connection.newStream(RELAY_CODEC)
138
138
  // Send the HOP request
139
139
  const streamHandler = new StreamHandler({ stream })
140
140
  streamHandler.write(request)
@@ -169,7 +169,7 @@ export async function canHop (options: CanHopOptions) {
169
169
  } = options
170
170
 
171
171
  // Create a new stream to the relay
172
- const { stream } = await connection.newStream(RELAY_CODEC)
172
+ const stream = await connection.newStream(RELAY_CODEC)
173
173
 
174
174
  // Send the HOP request
175
175
  const streamHandler = new StreamHandler({ stream })
@@ -3,7 +3,7 @@ import { CircuitRelay as CircuitPB } from '../pb/index.js'
3
3
  import { RELAY_CODEC } from '../multicodec.js'
4
4
  import { StreamHandler } from './stream-handler.js'
5
5
  import { validateAddrs } from './utils.js'
6
- import type { Connection } from '@libp2p/interfaces/connection'
6
+ import type { Connection } from '@libp2p/interface-connection'
7
7
  import type { Duplex } from 'it-stream-types'
8
8
 
9
9
  const log = logger('libp2p:circuit:stop')
@@ -56,7 +56,7 @@ export async function stop (options: StopOptions) {
56
56
  request
57
57
  } = options
58
58
 
59
- const { stream } = await connection.newStream([RELAY_CODEC])
59
+ const stream = await connection.newStream([RELAY_CODEC])
60
60
  log('starting stop request to %p', connection.remotePeer)
61
61
  const streamHandler = new StreamHandler({ stream })
62
62
 
@@ -2,7 +2,7 @@ import { logger } from '@libp2p/logger'
2
2
  import * as lp from 'it-length-prefixed'
3
3
  import { Handshake, handshake } from 'it-handshake'
4
4
  import { CircuitRelay } from '../pb/index.js'
5
- import type { Stream } from '@libp2p/interfaces/connection'
5
+ import type { Stream } from '@libp2p/interface-connection'
6
6
  import type { Source } from 'it-stream-types'
7
7
 
8
8
  const log = logger('libp2p:circuit:stream-handler')
@@ -10,9 +10,9 @@ import { namespaceToCid } from './utils.js'
10
10
  import {
11
11
  RELAY_RENDEZVOUS_NS
12
12
  } from './constants.js'
13
- import type { AddressSorter } from '@libp2p/interfaces/peer-store'
13
+ import type { AddressSorter } from '@libp2p/interface-peer-store'
14
14
  import type { Startable } from '@libp2p/interfaces/startable'
15
- import type { Components } from '@libp2p/interfaces/components'
15
+ import type { Components } from '@libp2p/components'
16
16
 
17
17
  const log = logger('libp2p:relay')
18
18
 
@@ -1,7 +1,7 @@
1
1
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
2
- import type { ConnectionManager } from '@libp2p/interfaces/connection-manager'
3
- import type { PeerStore } from '@libp2p/interfaces/peer-store'
4
- import type { Listener } from '@libp2p/interfaces/transport'
2
+ import type { ConnectionManager } from '@libp2p/interface-connection-manager'
3
+ import type { PeerStore } from '@libp2p/interface-peer-store'
4
+ import type { Listener } from '@libp2p/interface-transport'
5
5
  import { peerIdFromString } from '@libp2p/peer-id'
6
6
  import { Multiaddr } from '@multiformats/multiaddr'
7
7
 
@@ -10,13 +10,13 @@ import { createListener } from './listener.js'
10
10
  import { handleCanHop, handleHop, hop } from './circuit/hop.js'
11
11
  import { handleStop } from './circuit/stop.js'
12
12
  import { StreamHandler } from './circuit/stream-handler.js'
13
- import { symbol } from '@libp2p/interfaces/transport'
13
+ import { symbol } from '@libp2p/interface-transport'
14
14
  import { peerIdFromString } from '@libp2p/peer-id'
15
- import { Components, Initializable } from '@libp2p/interfaces/components'
15
+ import { Components, Initializable } from '@libp2p/components'
16
16
  import type { AbortOptions } from '@libp2p/interfaces'
17
- import type { IncomingStreamData } from '@libp2p/interfaces/registrar'
18
- import type { Listener, Transport, CreateListenerOptions, ConnectionHandler } from '@libp2p/interfaces/transport'
19
- import type { Connection } from '@libp2p/interfaces/connection'
17
+ import type { IncomingStreamData } from '@libp2p/interface-registrar'
18
+ import type { Listener, Transport, CreateListenerOptions, ConnectionHandler } from '@libp2p/interface-transport'
19
+ import type { Connection } from '@libp2p/interface-connection'
20
20
 
21
21
  const log = logger('libp2p:circuit')
22
22
 
package/src/config.ts CHANGED
@@ -79,13 +79,21 @@ const DefaultConfig: Partial<Libp2pInit> = {
79
79
  host: {
80
80
  agentVersion: AGENT_VERSION
81
81
  },
82
- timeout: 30000
82
+ timeout: 30000,
83
+ maxInboundStreams: 1,
84
+ maxOutboundStreams: 1,
85
+ maxPushIncomingStreams: 1,
86
+ maxPushOutgoingStreams: 1
83
87
  },
84
88
  ping: {
85
- protocolPrefix: 'ipfs'
89
+ protocolPrefix: 'ipfs',
90
+ maxInboundStreams: 1,
91
+ maxOutboundStreams: 1
86
92
  },
87
93
  fetch: {
88
- protocolPrefix: 'libp2p'
94
+ protocolPrefix: 'libp2p',
95
+ maxInboundStreams: 1,
96
+ maxOutboundStreams: 1
89
97
  }
90
98
  }
91
99
 
@@ -7,7 +7,7 @@ import { pipe } from 'it-pipe'
7
7
  import filter from 'it-filter'
8
8
  import sort from 'it-sort'
9
9
  import type { Startable } from '@libp2p/interfaces/startable'
10
- import type { Components } from '@libp2p/interfaces/components'
10
+ import type { Components } from '@libp2p/components'
11
11
 
12
12
  const log = logger('libp2p:connection-manager:auto-dialler')
13
13
 
@@ -1,6 +1,6 @@
1
- import type { PeerInfo } from '@libp2p/interfaces/peer-info'
1
+ import type { PeerInfo } from '@libp2p/interface-peer-info'
2
2
  import { logger } from '@libp2p/logger'
3
- import type { Components } from '@libp2p/interfaces/components'
3
+ import type { Components } from '@libp2p/components'
4
4
  import { TimeoutController } from 'timeout-abort-controller'
5
5
 
6
6
  const log = logger('libp2p:dialer:auto-dialer')
@@ -5,7 +5,7 @@ import { setMaxListeners } from 'events'
5
5
  import { codes } from '../../errors.js'
6
6
  import { logger } from '@libp2p/logger'
7
7
  import type { Multiaddr } from '@multiformats/multiaddr'
8
- import type { Connection } from '@libp2p/interfaces/connection'
8
+ import type { Connection } from '@libp2p/interface-connection'
9
9
  import type { AbortOptions } from '@libp2p/interfaces'
10
10
  import type { Dialer } from './index.js'
11
11
 
@@ -18,16 +18,16 @@ import {
18
18
  MAX_PER_PEER_DIALS,
19
19
  MAX_ADDRS_TO_DIAL
20
20
  } from '../../constants.js'
21
- import type { Connection } from '@libp2p/interfaces/connection'
21
+ import type { Connection } from '@libp2p/interface-connection'
22
22
  import type { AbortOptions } from '@libp2p/interfaces'
23
23
  import type { Startable } from '@libp2p/interfaces/startable'
24
- import type { PeerId } from '@libp2p/interfaces/peer-id'
24
+ import type { PeerId } from '@libp2p/interface-peer-id'
25
25
  import { getPeer } from '../../get-peer.js'
26
26
  import sort from 'it-sort'
27
- import { Components, Initializable } from '@libp2p/interfaces/components'
27
+ import { Components, Initializable } from '@libp2p/components'
28
28
  import map from 'it-map'
29
- import type { AddressSorter } from '@libp2p/interfaces/peer-store'
30
- import type { ComponentMetricsTracker } from '@libp2p/interfaces/metrics'
29
+ import type { AddressSorter } from '@libp2p/interface-peer-store'
30
+ import type { ComponentMetricsTracker } from '@libp2p/interface-metrics'
31
31
 
32
32
  const log = logger('libp2p:dialer')
33
33
 
@@ -9,14 +9,14 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
9
9
  import type { Startable } from '@libp2p/interfaces/startable'
10
10
  import { trackedMap } from '@libp2p/tracked-map'
11
11
  import { codes } from '../errors.js'
12
- import { isPeerId, PeerId } from '@libp2p/interfaces/peer-id'
12
+ import { isPeerId, PeerId } from '@libp2p/interface-peer-id'
13
13
  import { setMaxListeners } from 'events'
14
- import type { Connection } from '@libp2p/interfaces/connection'
15
- import type { ConnectionManager } from '@libp2p/interfaces/connection-manager'
16
- import { Components, Initializable } from '@libp2p/interfaces/components'
17
- import * as STATUS from '@libp2p/interfaces/connection/status'
14
+ import type { Connection } from '@libp2p/interface-connection'
15
+ import type { ConnectionManager } from '@libp2p/interface-connection-manager'
16
+ import { Components, Initializable } from '@libp2p/components'
17
+ import * as STATUS from '@libp2p/interface-connection/status'
18
18
  import { Dialer } from './dialer/index.js'
19
- import type { AddressSorter } from '@libp2p/interfaces/peer-store'
19
+ import type { AddressSorter } from '@libp2p/interface-peer-store'
20
20
  import type { Resolver } from '@multiformats/multiaddr'
21
21
 
22
22
  const log = logger('libp2p:connection-manager')
@@ -31,7 +31,7 @@ const defaultOptions: Partial<ConnectionManagerInit> = {
31
31
  pollInterval: 2000,
32
32
  autoDialInterval: 10000,
33
33
  movingAverageInterval: 60000,
34
- defaultPeerValue: 1
34
+ defaultPeerValue: 0.5
35
35
  }
36
36
 
37
37
  const METRICS_COMPONENT = 'connection-manager'
@@ -344,7 +344,10 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
344
344
  this.peerValues.set(peerIdStr, this.opts.defaultPeerValue)
345
345
  }
346
346
 
347
- await this._checkMaxLimit('maxConnections', this.getConnections().length)
347
+ const numConnections = this.getConnections().length
348
+ const toPrune = numConnections - this.opts.maxConnections
349
+
350
+ await this._checkMaxLimit('maxConnections', numConnections, toPrune)
348
351
  this.dispatchEvent(new CustomEvent<Connection>('peer:connect', { detail: connection }))
349
352
  }
350
353
 
@@ -459,7 +462,7 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
459
462
  _onLatencyMeasure (evt: CustomEvent<SummaryObject>) {
460
463
  const { detail: summary } = evt
461
464
 
462
- this._checkMaxLimit('maxEventLoopDelay', summary.avgMs)
465
+ this._checkMaxLimit('maxEventLoopDelay', summary.avgMs, 1)
463
466
  .catch(err => {
464
467
  log.error(err)
465
468
  })
@@ -468,46 +471,59 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
468
471
  /**
469
472
  * If the `value` of `name` has exceeded its limit, maybe close a connection
470
473
  */
471
- async _checkMaxLimit (name: keyof ConnectionManagerInit, value: number) {
474
+ async _checkMaxLimit (name: keyof ConnectionManagerInit, value: number, toPrune: number = 1) {
472
475
  const limit = this.opts[name]
473
476
  log.trace('checking limit of %s. current value: %d of %d', name, value, limit)
474
477
  if (value > limit) {
475
- log('%s: limit exceeded: %p, %d', this.components.getPeerId(), name, value)
476
- await this._maybeDisconnectOne()
478
+ log('%s: limit exceeded: %p, %d, pruning %d connection(s)', this.components.getPeerId(), name, value, toPrune)
479
+ await this._maybePruneConnections(toPrune)
477
480
  }
478
481
  }
479
482
 
480
483
  /**
481
- * If we have more connections than our maximum, close a connection
482
- * to the lowest valued peer.
484
+ * If we have more connections than our maximum, select some excess connections
485
+ * to prune based on peer value
483
486
  */
484
- async _maybeDisconnectOne () {
485
- if (this.opts.minConnections < this.connections.size) {
486
- const peerValues = Array.from(new Map([...this.peerValues.entries()].sort((a, b) => a[1] - b[1])))
487
-
488
- log('%p: sorted peer values: %j', this.components.getPeerId(), peerValues)
489
- const disconnectPeer = peerValues[0]
490
-
491
- if (disconnectPeer != null) {
492
- const peerId = disconnectPeer[0]
493
- log('%p: lowest value peer is %s', this.components.getPeerId(), peerId)
494
- log('%p: closing a connection to %j', this.components.getPeerId(), peerId)
495
-
496
- for (const connections of this.connections.values()) {
497
- if (connections[0].remotePeer.toString() === peerId) {
498
- void connections[0].close()
499
- .catch(err => {
500
- log.error(err)
501
- })
502
-
503
- // TODO: should not need to invoke this manually
504
- this.onDisconnect(new CustomEvent<Connection>('connectionEnd', {
505
- detail: connections[0]
506
- }))
507
- break
508
- }
487
+ async _maybePruneConnections (toPrune: number) {
488
+ const connections = this.getConnections()
489
+
490
+ if (connections.length <= this.opts.minConnections || toPrune < 1) {
491
+ return
492
+ }
493
+
494
+ const peerValues = Array.from(new Map([...this.peerValues.entries()].sort((a, b) => a[1] - b[1])))
495
+ log.trace('sorted peer values: %j', peerValues)
496
+
497
+ const toClose = []
498
+
499
+ for (const [peerId] of peerValues) {
500
+ log('too many connections open - closing a connection to %p', peerId)
501
+
502
+ for (const connection of connections) {
503
+ if (connection.remotePeer.toString() === peerId) {
504
+ toClose.push(connection)
505
+ }
506
+
507
+ if (toClose.length === toPrune) {
508
+ break
509
509
  }
510
510
  }
511
511
  }
512
+
513
+ // close connections
514
+ await Promise.all(
515
+ toClose.map(async connection => {
516
+ try {
517
+ await connection.close()
518
+ } catch (err) {
519
+ log.error(err)
520
+ }
521
+
522
+ // TODO: should not need to invoke this manually
523
+ this.onDisconnect(new CustomEvent<Connection>('connectionEnd', {
524
+ detail: connection
525
+ }))
526
+ })
527
+ )
512
528
  }
513
529
  }
@@ -8,11 +8,11 @@ import {
8
8
  import drain from 'it-drain'
9
9
  import merge from 'it-merge'
10
10
  import { pipe } from 'it-pipe'
11
- import type { ContentRouting } from '@libp2p/interfaces/content-routing'
11
+ import type { ContentRouting } from '@libp2p/interface-content-routing'
12
12
  import type { AbortOptions } from '@libp2p/interfaces'
13
13
  import type { Startable } from '@libp2p/interfaces/startable'
14
14
  import type { CID } from 'multiformats/cid'
15
- import type { Components } from '@libp2p/interfaces/components'
15
+ import type { Components } from '@libp2p/components'
16
16
 
17
17
  export interface CompoundContentRoutingInit {
18
18
  routers: ContentRouting[]
@@ -2,8 +2,8 @@ import errCode from 'err-code'
2
2
  import filter from 'it-filter'
3
3
  import map from 'it-map'
4
4
  import type { Source } from 'it-stream-types'
5
- import type { PeerInfo } from '@libp2p/interfaces/peer-info'
6
- import type { PeerStore } from '@libp2p/interfaces/peer-store'
5
+ import type { PeerInfo } from '@libp2p/interface-peer-info'
6
+ import type { PeerStore } from '@libp2p/interface-peer-store'
7
7
 
8
8
  /**
9
9
  * Store the multiaddrs from every peer in the passed peer store
@@ -1,7 +1,7 @@
1
1
  import drain from 'it-drain'
2
2
  import errCode from 'err-code'
3
- import type { DHT } from '@libp2p/interfaces/dht'
4
- import type { ContentRouting } from '@libp2p/interfaces/content-routing'
3
+ import type { DHT } from '@libp2p/interface-dht'
4
+ import type { ContentRouting } from '@libp2p/interface-content-routing'
5
5
  import type { CID } from 'multiformats/cid'
6
6
  import type { AbortOptions } from '@libp2p/interfaces'
7
7
 
@@ -1,8 +1,8 @@
1
1
  import errCode from 'err-code'
2
2
  import { messages, codes } from '../errors.js'
3
- import type { PeerRouting } from '@libp2p/interfaces/peer-routing'
4
- import type { DHT } from '@libp2p/interfaces/dht'
5
- import type { PeerId } from '@libp2p/interfaces/peer-id'
3
+ import type { PeerRouting } from '@libp2p/interface-peer-routing'
4
+ import type { DHT } from '@libp2p/interface-dht'
5
+ import type { PeerId } from '@libp2p/interface-peer-id'
6
6
  import type { AbortOptions } from '@libp2p/interfaces'
7
7
 
8
8
  /**
@@ -1,9 +1,9 @@
1
- import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interfaces/dht'
2
- import type { PeerDiscoveryEvents } from '@libp2p/interfaces/peer-discovery'
1
+ import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht'
2
+ import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery'
3
3
  import errCode from 'err-code'
4
4
  import { messages, codes } from '../errors.js'
5
5
  import { EventEmitter } from '@libp2p/interfaces/events'
6
- import { symbol } from '@libp2p/interfaces/peer-discovery'
6
+ import { symbol } from '@libp2p/interface-peer-discovery'
7
7
 
8
8
  export class DummyDHT extends EventEmitter<PeerDiscoveryEvents> implements DualDHT {
9
9
  get [symbol] (): true {