@openc3/vue-common 7.0.0-rc3 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/{ArrayWidget-B2-n1K3r.cjs → ArrayWidget-BsAUsmBz.cjs} +2 -2
  2. package/dist/{ArrayWidget-B2-n1K3r.cjs.map → ArrayWidget-BsAUsmBz.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-dQWDMMrn.js → ArrayWidget-D2UrA5Db.js} +4 -4
  4. package/dist/{ArrayWidget-dQWDMMrn.js.map → ArrayWidget-D2UrA5Db.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-DCnbK37q.js → ArrayplotWidget-CDNRxI2F.js} +3 -3
  6. package/dist/{ArrayplotWidget-DCnbK37q.js.map → ArrayplotWidget-CDNRxI2F.js.map} +1 -1
  7. package/dist/{ArrayplotWidget-BmBcPGUR.cjs → ArrayplotWidget-ChHMy5_L.cjs} +2 -2
  8. package/dist/{ArrayplotWidget-BmBcPGUR.cjs.map → ArrayplotWidget-ChHMy5_L.cjs.map} +1 -1
  9. package/dist/{BarColumn-CkecDAzn.cjs → BarColumn-e-sSkSvE.cjs} +2 -2
  10. package/dist/{BarColumn-CkecDAzn.cjs.map → BarColumn-e-sSkSvE.cjs.map} +1 -1
  11. package/dist/{BarColumn-DmOxuCa9.js → BarColumn-nSFR2LZF.js} +3 -3
  12. package/dist/{BarColumn-DmOxuCa9.js.map → BarColumn-nSFR2LZF.js.map} +1 -1
  13. package/dist/{BlockWidget-UejKxAxY.js → BlockWidget-C-WB0Q2m.js} +4 -4
  14. package/dist/{BlockWidget-UejKxAxY.js.map → BlockWidget-C-WB0Q2m.js.map} +1 -1
  15. package/dist/{BlockWidget-BZXHLTJt.cjs → BlockWidget-DJpyQiec.cjs} +2 -2
  16. package/dist/{BlockWidget-BZXHLTJt.cjs.map → BlockWidget-DJpyQiec.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DtAkhzCN.js → ButtonWidget-rS7sVb7m.js} +4 -4
  18. package/dist/{ButtonWidget-DtAkhzCN.js.map → ButtonWidget-rS7sVb7m.js.map} +1 -1
  19. package/dist/{ButtonWidget-CzRyY1N5.cjs → ButtonWidget-rkOE5b8G.cjs} +2 -2
  20. package/dist/{ButtonWidget-CzRyY1N5.cjs.map → ButtonWidget-rkOE5b8G.cjs.map} +1 -1
  21. package/dist/{CanvasWidget-YXQ8TLqA.js → CanvasWidget-DuWolVCW.js} +2 -2
  22. package/dist/{CanvasWidget-YXQ8TLqA.js.map → CanvasWidget-DuWolVCW.js.map} +1 -1
  23. package/dist/{CanvasWidget-cQqNxspP.cjs → CanvasWidget-Dv7_QUJY.cjs} +2 -2
  24. package/dist/{CanvasWidget-cQqNxspP.cjs.map → CanvasWidget-Dv7_QUJY.cjs.map} +1 -1
  25. package/dist/{CanvasdotWidget-BbmhHQV_.js → CanvasdotWidget-B42YizA1.js} +2 -2
  26. package/dist/{CanvasdotWidget-BbmhHQV_.js.map → CanvasdotWidget-B42YizA1.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-CMIw-ga4.cjs → CanvasdotWidget-E1OgFBVZ.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-CMIw-ga4.cjs.map → CanvasdotWidget-E1OgFBVZ.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-CJf5NYEj.js → CanvasimageWidget-DMHdDTSs.js} +3 -3
  30. package/dist/{CanvasimageWidget-CJf5NYEj.js.map → CanvasimageWidget-DMHdDTSs.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-DXxtYjGG.cjs → CanvasimageWidget-ysw78z4C.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-DXxtYjGG.cjs.map → CanvasimageWidget-ysw78z4C.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs → CanvasimagevalueWidget-Bc-VYXe7.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs.map → CanvasimagevalueWidget-Bc-VYXe7.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-D86eJXbs.js → CanvasimagevalueWidget-ns-5S1HA.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-D86eJXbs.js.map → CanvasimagevalueWidget-ns-5S1HA.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BgGRS0NS.cjs → CanvaslabelWidget-6h59qJY8.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-BgGRS0NS.cjs.map → CanvaslabelWidget-6h59qJY8.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-TkrVd-Dg.js → CanvaslabelWidget-DElES3gU.js} +2 -2
  40. package/dist/{CanvaslabelWidget-TkrVd-Dg.js.map → CanvaslabelWidget-DElES3gU.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js → CanvaslabelvalueWidget-B2B5KlUm.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js.map → CanvaslabelvalueWidget-B2B5KlUm.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs → CanvaslabelvalueWidget-BLIgF8xi.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs.map → CanvaslabelvalueWidget-BLIgF8xi.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-yT7FUWs8.cjs → CanvaslineWidget-CxZGCwVF.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-yT7FUWs8.cjs.map → CanvaslineWidget-CxZGCwVF.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-BjBvF-vY.js → CanvaslineWidget-DaHxgGyM.js} +2 -2
  48. package/dist/{CanvaslineWidget-BjBvF-vY.js.map → CanvaslineWidget-DaHxgGyM.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs → CanvaslinevalueWidget-BljeuN4S.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs.map → CanvaslinevalueWidget-BljeuN4S.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-krBLp9yB.js → CanvaslinevalueWidget-CrtDsSOP.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-krBLp9yB.js.map → CanvaslinevalueWidget-CrtDsSOP.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-IMrIK9q4.js → CheckbuttonWidget-BK4SgIu7.js} +2 -2
  54. package/dist/{CheckbuttonWidget-IMrIK9q4.js.map → CheckbuttonWidget-BK4SgIu7.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-CT28NPNo.cjs → CheckbuttonWidget-By46VH2e.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-CT28NPNo.cjs.map → CheckbuttonWidget-By46VH2e.cjs.map} +1 -1
  57. package/dist/{ClassificationBanners-DC__VXBX.cjs → ClassificationBanners-CHQX3t7t.cjs} +2 -2
  58. package/dist/{ClassificationBanners-DC__VXBX.cjs.map → ClassificationBanners-CHQX3t7t.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-DiIkXqna.js → ClassificationBanners-DGl2HUKd.js} +2 -2
  60. package/dist/{ClassificationBanners-DiIkXqna.js.map → ClassificationBanners-DGl2HUKd.js.map} +1 -1
  61. package/dist/{ComboboxWidget-hFBSBFwy.cjs → ComboboxWidget-CHFTOmhZ.cjs} +2 -2
  62. package/dist/{ComboboxWidget-hFBSBFwy.cjs.map → ComboboxWidget-CHFTOmhZ.cjs.map} +1 -1
  63. package/dist/{ComboboxWidget-C9Zlc2Hy.js → ComboboxWidget-CciRWuKq.js} +2 -2
  64. package/dist/{ComboboxWidget-C9Zlc2Hy.js.map → ComboboxWidget-CciRWuKq.js.map} +1 -1
  65. package/dist/{CriticalCmdDialog-CCaStsM-.cjs → CriticalCmdDialog-BWrwpTNK.cjs} +2 -2
  66. package/dist/{CriticalCmdDialog-CCaStsM-.cjs.map → CriticalCmdDialog-BWrwpTNK.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-Cp-ykpQb.js → CriticalCmdDialog-C5EZDRSZ.js} +2 -2
  68. package/dist/{CriticalCmdDialog-Cp-ykpQb.js.map → CriticalCmdDialog-C5EZDRSZ.js.map} +1 -1
  69. package/dist/{DateWidget-C_QpCTxN.cjs → DateWidget-Bb6juAYs.cjs} +2 -2
  70. package/dist/{DateWidget-C_QpCTxN.cjs.map → DateWidget-Bb6juAYs.cjs.map} +1 -1
  71. package/dist/{DateWidget-Y6WAFGGt.js → DateWidget-DwgQ3Jik.js} +2 -2
  72. package/dist/{DateWidget-Y6WAFGGt.js.map → DateWidget-DwgQ3Jik.js.map} +1 -1
  73. package/dist/{DetailsDialog-DznGAE6i.js → DetailsDialog-CspQjoR5.js} +3 -3
  74. package/dist/{DetailsDialog-DznGAE6i.js.map → DetailsDialog-CspQjoR5.js.map} +1 -1
  75. package/dist/{DetailsDialog-Bq9BPuoe.cjs → DetailsDialog-D_my0nhs.cjs} +2 -2
  76. package/dist/{DetailsDialog-Bq9BPuoe.cjs.map → DetailsDialog-D_my0nhs.cjs.map} +1 -1
  77. package/dist/{EventListDialog-CktWO2jn.js → EventListDialog-DL2HHNQG.js} +9 -6
  78. package/dist/EventListDialog-DL2HHNQG.js.map +1 -0
  79. package/dist/EventListDialog-DO32zY2U.cjs +2 -0
  80. package/dist/EventListDialog-DO32zY2U.cjs.map +1 -0
  81. package/dist/{FilechecksumWidget-VbLODmHh.js → FilechecksumWidget-BS281Q0h.js} +3 -3
  82. package/dist/{FilechecksumWidget-VbLODmHh.js.map → FilechecksumWidget-BS281Q0h.js.map} +1 -1
  83. package/dist/{FilechecksumWidget-BZdmiTbb.cjs → FilechecksumWidget-DMpuLZJ5.cjs} +2 -2
  84. package/dist/{FilechecksumWidget-BZdmiTbb.cjs.map → FilechecksumWidget-DMpuLZJ5.cjs.map} +1 -1
  85. package/dist/{FiledisplayWidget-BI7GAQ4d.cjs → FiledisplayWidget-BoD7LuLP.cjs} +2 -2
  86. package/dist/{FiledisplayWidget-BI7GAQ4d.cjs.map → FiledisplayWidget-BoD7LuLP.cjs.map} +1 -1
  87. package/dist/{FiledisplayWidget-kixqcLtx.js → FiledisplayWidget-C9YdXDdv.js} +3 -3
  88. package/dist/{FiledisplayWidget-kixqcLtx.js.map → FiledisplayWidget-C9YdXDdv.js.map} +1 -1
  89. package/dist/{FormatvalueWidget-I1y_kf9t.cjs → FormatvalueWidget-DfvTVSs-.cjs} +2 -2
  90. package/dist/{FormatvalueWidget-I1y_kf9t.cjs.map → FormatvalueWidget-DfvTVSs-.cjs.map} +1 -1
  91. package/dist/{FormatvalueWidget--djAS0BE.js → FormatvalueWidget-dfmQfrNA.js} +3 -3
  92. package/dist/{FormatvalueWidget--djAS0BE.js.map → FormatvalueWidget-dfmQfrNA.js.map} +1 -1
  93. package/dist/{Graph-GhpiUBKI.js → Graph-BTtGIbYG.js} +10 -6
  94. package/dist/Graph-BTtGIbYG.js.map +1 -0
  95. package/dist/Graph-Cy2LrwoK.cjs +2 -0
  96. package/dist/Graph-Cy2LrwoK.cjs.map +1 -0
  97. package/dist/{GraphWidget-8T08osON.js → GraphWidget-CWJ4Yb26.js} +2 -2
  98. package/dist/{GraphWidget-8T08osON.js.map → GraphWidget-CWJ4Yb26.js.map} +1 -1
  99. package/dist/{GraphWidget-Bzo-klWV.cjs → GraphWidget-XjxjI3og.cjs} +2 -2
  100. package/dist/{GraphWidget-Bzo-klWV.cjs.map → GraphWidget-XjxjI3og.cjs.map} +1 -1
  101. package/dist/{HorizontalWidget-CAf9I0CU.cjs → HorizontalWidget-BeW4b13V.cjs} +2 -2
  102. package/dist/{HorizontalWidget-CAf9I0CU.cjs.map → HorizontalWidget-BeW4b13V.cjs.map} +1 -1
  103. package/dist/{HorizontalWidget-CusI1RiA.js → HorizontalWidget-DFAqF95S.js} +2 -2
  104. package/dist/{HorizontalWidget-CusI1RiA.js.map → HorizontalWidget-DFAqF95S.js.map} +1 -1
  105. package/dist/{HorizontalboxWidget-D5fIhINf.js → HorizontalboxWidget-CL1xEhDj.js} +5 -5
  106. package/dist/{HorizontalboxWidget-D5fIhINf.js.map → HorizontalboxWidget-CL1xEhDj.js.map} +1 -1
  107. package/dist/{HorizontalboxWidget-B7E5GEPu.cjs → HorizontalboxWidget-DdPv_6qb.cjs} +2 -2
  108. package/dist/{HorizontalboxWidget-B7E5GEPu.cjs.map → HorizontalboxWidget-DdPv_6qb.cjs.map} +1 -1
  109. package/dist/{HorizontallineWidget-DqLKGhdz.cjs → HorizontallineWidget-BdWOnioI.cjs} +2 -2
  110. package/dist/{HorizontallineWidget-DqLKGhdz.cjs.map → HorizontallineWidget-BdWOnioI.cjs.map} +1 -1
  111. package/dist/{HorizontallineWidget-CnRlq7hi.js → HorizontallineWidget-DPiADCAy.js} +2 -2
  112. package/dist/{HorizontallineWidget-CnRlq7hi.js.map → HorizontallineWidget-DPiADCAy.js.map} +1 -1
  113. package/dist/{IframeWidget-DtF44NYM.js → IframeWidget-BsDu4b17.js} +2 -2
  114. package/dist/{IframeWidget-DtF44NYM.js.map → IframeWidget-BsDu4b17.js.map} +1 -1
  115. package/dist/{IframeWidget-BMtv8io0.cjs → IframeWidget-Z12pG6JT.cjs} +2 -2
  116. package/dist/{IframeWidget-BMtv8io0.cjs.map → IframeWidget-Z12pG6JT.cjs.map} +1 -1
  117. package/dist/{ImageLoader-B5rGuJ_H.js → ImageLoader-CT4rnwWn.js} +2 -2
  118. package/dist/{ImageLoader-B5rGuJ_H.js.map → ImageLoader-CT4rnwWn.js.map} +1 -1
  119. package/dist/{ImageLoader-jcIDHdUq.cjs → ImageLoader-CZ0Wx_Ua.cjs} +2 -2
  120. package/dist/{ImageLoader-jcIDHdUq.cjs.map → ImageLoader-CZ0Wx_Ua.cjs.map} +1 -1
  121. package/dist/{ImageviewerWidget-Ciu80vaC.js → ImageviewerWidget-BQbrz2WL.js} +2 -2
  122. package/dist/{ImageviewerWidget-Ciu80vaC.js.map → ImageviewerWidget-BQbrz2WL.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-ox5FNYVP.cjs → ImageviewerWidget-CtJzQn0e.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-ox5FNYVP.cjs.map → ImageviewerWidget-CtJzQn0e.cjs.map} +1 -1
  125. package/dist/{InterfacesTab-CUM5GGWs.cjs → InterfacesTab-A0g0y1n1.cjs} +2 -2
  126. package/dist/{InterfacesTab-CUM5GGWs.cjs.map → InterfacesTab-A0g0y1n1.cjs.map} +1 -1
  127. package/dist/{InterfacesTab-C14LErLZ.js → InterfacesTab-COKNyeUu.js} +3 -3
  128. package/dist/{InterfacesTab-C14LErLZ.js.map → InterfacesTab-COKNyeUu.js.map} +1 -1
  129. package/dist/{LabelWidget-78VnL1xc.js → LabelWidget-D5-IFUYW.js} +2 -2
  130. package/dist/{LabelWidget-78VnL1xc.js.map → LabelWidget-D5-IFUYW.js.map} +1 -1
  131. package/dist/{LabelWidget-B9J1Whh0.cjs → LabelWidget-rH3SsItK.cjs} +2 -2
  132. package/dist/{LabelWidget-B9J1Whh0.cjs.map → LabelWidget-rH3SsItK.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-BMtqUP-E.cjs → LabelledWidget-Bca_qNSP.cjs} +2 -2
  134. package/dist/{LabelledWidget-BMtqUP-E.cjs.map → LabelledWidget-Bca_qNSP.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-Cx2PI85E.js → LabelledWidget-Dt9miRtB.js} +4 -4
  136. package/dist/{LabelledWidget-Cx2PI85E.js.map → LabelledWidget-Dt9miRtB.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-eC7VC7lY.js → LabelprogressbarWidget-BNFgTq4D.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-eC7VC7lY.js.map → LabelprogressbarWidget-BNFgTq4D.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs → LabelprogressbarWidget-hyK9Vqsl.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs.map → LabelprogressbarWidget-hyK9Vqsl.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-CP5rD4ob.js → LabelsparklineWidget-BByxev6X.js} +4 -4
  142. package/dist/{LabelsparklineWidget-CP5rD4ob.js.map → LabelsparklineWidget-BByxev6X.js.map} +1 -1
  143. package/dist/{LabelsparklineWidget-DuCA67yl.cjs → LabelsparklineWidget-BxkxEVwQ.cjs} +2 -2
  144. package/dist/{LabelsparklineWidget-DuCA67yl.cjs.map → LabelsparklineWidget-BxkxEVwQ.cjs.map} +1 -1
  145. package/dist/{LabelvalueWidget-PM8DFnDm.js → LabelvalueWidget-BM6L9bVw.js} +4 -4
  146. package/dist/{LabelvalueWidget-PM8DFnDm.js.map → LabelvalueWidget-BM6L9bVw.js.map} +1 -1
  147. package/dist/{LabelvalueWidget-DxEvAoHT.cjs → LabelvalueWidget-DEGmbKMG.cjs} +2 -2
  148. package/dist/{LabelvalueWidget-DxEvAoHT.cjs.map → LabelvalueWidget-DEGmbKMG.cjs.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs → LabelvaluedescWidget-B7bGqqeO.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs.map → LabelvaluedescWidget-B7bGqqeO.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-C8OmKnu-.js → LabelvaluedescWidget-DeBRjYXs.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-C8OmKnu-.js.map → LabelvaluedescWidget-DeBRjYXs.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js → LabelvaluelimitsbarWidget-CqV0-c3G.js} +4 -4
  154. package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js.map → LabelvaluelimitsbarWidget-CqV0-c3G.js.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs → LabelvaluelimitsbarWidget-DzEc9ZZr.cjs} +2 -2
  156. package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs.map → LabelvaluelimitsbarWidget-DzEc9ZZr.cjs.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js → LabelvaluelimitscolumnWidget-Bz0PKTIV.js} +5 -5
  158. package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js.map → LabelvaluelimitscolumnWidget-Bz0PKTIV.js.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs → LabelvaluelimitscolumnWidget-C0-v0q7a.cjs} +2 -2
  160. package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs.map → LabelvaluelimitscolumnWidget-C0-v0q7a.cjs.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs → LabelvaluerangebarWidget-CWhsb5gm.cjs} +2 -2
  162. package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs.map → LabelvaluerangebarWidget-CWhsb5gm.cjs.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-nCeoujui.js → LabelvaluerangebarWidget-DKuAJHLm.js} +4 -4
  164. package/dist/{LabelvaluerangebarWidget-nCeoujui.js.map → LabelvaluerangebarWidget-DKuAJHLm.js.map} +1 -1
  165. package/dist/{Layout-BcytiBn4.js → Layout-LSeXBY_W.js} +2 -2
  166. package/dist/{Layout-BcytiBn4.js.map → Layout-LSeXBY_W.js.map} +1 -1
  167. package/dist/{Layout-JCk8r88e.cjs → Layout-QcVHlWPp.cjs} +2 -2
  168. package/dist/{Layout-JCk8r88e.cjs.map → Layout-QcVHlWPp.cjs.map} +1 -1
  169. package/dist/{LedWidget-3pWKnZsD.js → LedWidget-CH4Il9R7.js} +4 -4
  170. package/dist/{LedWidget-3pWKnZsD.js.map → LedWidget-CH4Il9R7.js.map} +1 -1
  171. package/dist/{LedWidget-BEP-sFTh.cjs → LedWidget-CJwBssHl.cjs} +2 -2
  172. package/dist/{LedWidget-BEP-sFTh.cjs.map → LedWidget-CJwBssHl.cjs.map} +1 -1
  173. package/dist/{LimitsBar-BJ_cERjE.cjs → LimitsBar-B0O6RMrG.cjs} +2 -2
  174. package/dist/{LimitsBar-BJ_cERjE.cjs.map → LimitsBar-B0O6RMrG.cjs.map} +1 -1
  175. package/dist/{LimitsBar-DCco6Rwp.js → LimitsBar-BelAQFD0.js} +2 -2
  176. package/dist/{LimitsBar-DCco6Rwp.js.map → LimitsBar-BelAQFD0.js.map} +1 -1
  177. package/dist/{LimitsbarWidget-DiAnkXID.cjs → LimitsbarWidget--AwjBbtb.cjs} +2 -2
  178. package/dist/{LimitsbarWidget-DiAnkXID.cjs.map → LimitsbarWidget--AwjBbtb.cjs.map} +1 -1
  179. package/dist/{LimitsbarWidget-_BMzxWBm.js → LimitsbarWidget-PkPqlyxL.js} +3 -3
  180. package/dist/{LimitsbarWidget-_BMzxWBm.js.map → LimitsbarWidget-PkPqlyxL.js.map} +1 -1
  181. package/dist/{LimitscolorWidget-ByfzIE_O.cjs → LimitscolorWidget-1D2myv8a.cjs} +2 -2
  182. package/dist/{LimitscolorWidget-ByfzIE_O.cjs.map → LimitscolorWidget-1D2myv8a.cjs.map} +1 -1
  183. package/dist/{LimitscolorWidget-C2gZyqtI.js → LimitscolorWidget-BlA15g4A.js} +4 -4
  184. package/dist/{LimitscolorWidget-C2gZyqtI.js.map → LimitscolorWidget-BlA15g4A.js.map} +1 -1
  185. package/dist/{LimitscolumnWidget-Cv-6FXU3.js → LimitscolumnWidget-PT917BA0.js} +2 -2
  186. package/dist/{LimitscolumnWidget-Cv-6FXU3.js.map → LimitscolumnWidget-PT917BA0.js.map} +1 -1
  187. package/dist/{LimitscolumnWidget-CZwcXbLS.cjs → LimitscolumnWidget-_QPf3cUQ.cjs} +2 -2
  188. package/dist/{LimitscolumnWidget-CZwcXbLS.cjs.map → LimitscolumnWidget-_QPf3cUQ.cjs.map} +1 -1
  189. package/dist/{LinegraphWidget-BahyhwSt.js → LinegraphWidget-BW7kS_6G.js} +4 -4
  190. package/dist/{LinegraphWidget-BahyhwSt.js.map → LinegraphWidget-BW7kS_6G.js.map} +1 -1
  191. package/dist/{LinegraphWidget-so5ohfWF.cjs → LinegraphWidget-DfXd3959.cjs} +2 -2
  192. package/dist/{LinegraphWidget-so5ohfWF.cjs.map → LinegraphWidget-DfXd3959.cjs.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-B1Hy9but.js → MatrixbycolumnsWidget-BGNsZvjv.js} +3 -3
  194. package/dist/{MatrixbycolumnsWidget-B1Hy9but.js.map → MatrixbycolumnsWidget-BGNsZvjv.js.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs → MatrixbycolumnsWidget-oRYGFSEt.cjs} +2 -2
  196. package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs.map → MatrixbycolumnsWidget-oRYGFSEt.cjs.map} +1 -1
  197. package/dist/{MicroservicesTab-BSXNA_Si.js → MicroservicesTab-CiEGGavF.js} +3 -3
  198. package/dist/{MicroservicesTab-BSXNA_Si.js.map → MicroservicesTab-CiEGGavF.js.map} +1 -1
  199. package/dist/{MicroservicesTab-ARGtrfOb.cjs → MicroservicesTab-DvDK2hPW.cjs} +2 -2
  200. package/dist/{MicroservicesTab-ARGtrfOb.cjs.map → MicroservicesTab-DvDK2hPW.cjs.map} +1 -1
  201. package/dist/{OpenC3TimePicker-LN9R7V31.js → OpenC3TimePicker-CkaALgy9.js} +2 -2
  202. package/dist/{OpenC3TimePicker-LN9R7V31.js.map → OpenC3TimePicker-CkaALgy9.js.map} +1 -1
  203. package/dist/{OpenC3TimePicker-BHX9fnlR.cjs → OpenC3TimePicker-bbdbKTv_.cjs} +2 -2
  204. package/dist/{OpenC3TimePicker-BHX9fnlR.cjs.map → OpenC3TimePicker-bbdbKTv_.cjs.map} +1 -1
  205. package/dist/{Openc3Screen-BP7Ho9XC.js → Openc3Screen-BnM1bNOB.js} +11 -12
  206. package/dist/{Openc3Screen-BP7Ho9XC.js.map → Openc3Screen-BnM1bNOB.js.map} +1 -1
  207. package/dist/{Openc3Screen-CJOTF-lu.cjs → Openc3Screen-DoOAFAlJ.cjs} +4 -4
  208. package/dist/{Openc3Screen-CJOTF-lu.cjs.map → Openc3Screen-DoOAFAlJ.cjs.map} +1 -1
  209. package/dist/{OutputDialog-JdAxzpPD.js → OutputDialog-BY-TZNRl.js} +2 -2
  210. package/dist/{OutputDialog-JdAxzpPD.js.map → OutputDialog-BY-TZNRl.js.map} +1 -1
  211. package/dist/{OutputDialog-Dx5mkq19.cjs → OutputDialog-R3Xj3_yw.cjs} +2 -2
  212. package/dist/{OutputDialog-Dx5mkq19.cjs.map → OutputDialog-R3Xj3_yw.cjs.map} +1 -1
  213. package/dist/{PackagesTab-HPNAXhzf.cjs → PackagesTab-2Mu7yvxU.cjs} +2 -2
  214. package/dist/{PackagesTab-HPNAXhzf.cjs.map → PackagesTab-2Mu7yvxU.cjs.map} +1 -1
  215. package/dist/{PackagesTab-ByfVH001.js → PackagesTab-DGrqIo_Z.js} +4 -4
  216. package/dist/{PackagesTab-ByfVH001.js.map → PackagesTab-DGrqIo_Z.js.map} +1 -1
  217. package/dist/{PluginsTab-D7zpmf8s.js → PluginsTab-BXjVe_81.js} +427 -390
  218. package/dist/PluginsTab-BXjVe_81.js.map +1 -0
  219. package/dist/PluginsTab-R6i60Pih.cjs +6 -0
  220. package/dist/PluginsTab-R6i60Pih.cjs.map +1 -0
  221. package/dist/{ProgressbarWidget-mAVHKeok.js → ProgressbarWidget-Cy_ad8mb.js} +2 -2
  222. package/dist/{ProgressbarWidget-mAVHKeok.js.map → ProgressbarWidget-Cy_ad8mb.js.map} +1 -1
  223. package/dist/{ProgressbarWidget-BINuoD9p.cjs → ProgressbarWidget-XAy4iHgC.cjs} +2 -2
  224. package/dist/{ProgressbarWidget-BINuoD9p.cjs.map → ProgressbarWidget-XAy4iHgC.cjs.map} +1 -1
  225. package/dist/{RadiobuttonWidget-CL3QjTnZ.js → RadiobuttonWidget-aJBIz45y.js} +2 -2
  226. package/dist/{RadiobuttonWidget-CL3QjTnZ.js.map → RadiobuttonWidget-aJBIz45y.js.map} +1 -1
  227. package/dist/{RadiobuttonWidget-DDmgt0su.cjs → RadiobuttonWidget-fAqkUUTb.cjs} +2 -2
  228. package/dist/{RadiobuttonWidget-DDmgt0su.cjs.map → RadiobuttonWidget-fAqkUUTb.cjs.map} +1 -1
  229. package/dist/{RadiogroupWidget-q7h1v-ko.cjs → RadiogroupWidget-BuYMyBQd.cjs} +2 -2
  230. package/dist/{RadiogroupWidget-q7h1v-ko.cjs.map → RadiogroupWidget-BuYMyBQd.cjs.map} +1 -1
  231. package/dist/{RadiogroupWidget-RUwgtUTC.js → RadiogroupWidget-DNRlJnPE.js} +2 -2
  232. package/dist/{RadiogroupWidget-RUwgtUTC.js.map → RadiogroupWidget-DNRlJnPE.js.map} +1 -1
  233. package/dist/{RangebarWidget-BbPMpwMs.cjs → RangebarWidget-gcukfXnM.cjs} +2 -2
  234. package/dist/{RangebarWidget-BbPMpwMs.cjs.map → RangebarWidget-gcukfXnM.cjs.map} +1 -1
  235. package/dist/{RangebarWidget-CfDsKLZc.js → RangebarWidget-h4YItqPF.js} +2 -2
  236. package/dist/{RangebarWidget-CfDsKLZc.js.map → RangebarWidget-h4YItqPF.js.map} +1 -1
  237. package/dist/{RedisTab-dZE6KvLS.cjs → RedisTab-0V8f-hs1.cjs} +2 -2
  238. package/dist/{RedisTab-dZE6KvLS.cjs.map → RedisTab-0V8f-hs1.cjs.map} +1 -1
  239. package/dist/{RedisTab-YrX-5A3T.js → RedisTab-BmZWA0OG.js} +2 -2
  240. package/dist/{RedisTab-YrX-5A3T.js.map → RedisTab-BmZWA0OG.js.map} +1 -1
  241. package/dist/{RollupWidget-DCMoQUeJ.js → RollupWidget-CnxDQRQ0.js} +2 -2
  242. package/dist/{RollupWidget-DCMoQUeJ.js.map → RollupWidget-CnxDQRQ0.js.map} +1 -1
  243. package/dist/{RollupWidget-BmgRFIOo.cjs → RollupWidget-ZerASRD3.cjs} +2 -2
  244. package/dist/{RollupWidget-BmgRFIOo.cjs.map → RollupWidget-ZerASRD3.cjs.map} +1 -1
  245. package/dist/{RoutersTab-C6vejQrw.cjs → RoutersTab-CY-SmZd4.cjs} +2 -2
  246. package/dist/{RoutersTab-C6vejQrw.cjs.map → RoutersTab-CY-SmZd4.cjs.map} +1 -1
  247. package/dist/{RoutersTab-MA9KW_gu.js → RoutersTab-Db28gKLP.js} +3 -3
  248. package/dist/{RoutersTab-MA9KW_gu.js.map → RoutersTab-Db28gKLP.js.map} +1 -1
  249. package/dist/{ScriptChooser-DGbs03IW.js → ScriptChooser-Bl0wisob.js} +4 -4
  250. package/dist/{ScriptChooser-DGbs03IW.js.map → ScriptChooser-Bl0wisob.js.map} +1 -1
  251. package/dist/{ScriptChooser-Cm_HEyBf.cjs → ScriptChooser-CI4lAYZ1.cjs} +2 -2
  252. package/dist/{ScriptChooser-Cm_HEyBf.cjs.map → ScriptChooser-CI4lAYZ1.cjs.map} +1 -1
  253. package/dist/{ScrollwindowWidget-BbASNNcM.cjs → ScrollwindowWidget-BJkQ5uX_.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-BbASNNcM.cjs.map → ScrollwindowWidget-BJkQ5uX_.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-DarXe7-1.js → ScrollwindowWidget-DFkTJ2Ue.js} +2 -2
  256. package/dist/{ScrollwindowWidget-DarXe7-1.js.map → ScrollwindowWidget-DFkTJ2Ue.js.map} +1 -1
  257. package/dist/{SecretsTab-DwE3KJNI.cjs → SecretsTab-B8YTrfQ2.cjs} +2 -2
  258. package/dist/{SecretsTab-DwE3KJNI.cjs.map → SecretsTab-B8YTrfQ2.cjs.map} +1 -1
  259. package/dist/{SecretsTab-DTaPAHv3.js → SecretsTab-DTdVLi0I.js} +2 -2
  260. package/dist/{SecretsTab-DTaPAHv3.js.map → SecretsTab-DTdVLi0I.js.map} +1 -1
  261. package/dist/{SettingsTab-BhT5sui9.js → SettingsTab-CnybxvVj.js} +4 -4
  262. package/dist/{SettingsTab-BhT5sui9.js.map → SettingsTab-CnybxvVj.js.map} +1 -1
  263. package/dist/{SettingsTab-o9tfAuE4.cjs → SettingsTab-_SJLhuk0.cjs} +2 -2
  264. package/dist/{SettingsTab-o9tfAuE4.cjs.map → SettingsTab-_SJLhuk0.cjs.map} +1 -1
  265. package/dist/{SignalWidget-CO3UaFok.cjs → SignalWidget-DC7-NIOj.cjs} +2 -2
  266. package/dist/{SignalWidget-CO3UaFok.cjs.map → SignalWidget-DC7-NIOj.cjs.map} +1 -1
  267. package/dist/{SignalWidget-C-iEC5KL.js → SignalWidget-jYpXSIfD.js} +2 -2
  268. package/dist/{SignalWidget-C-iEC5KL.js.map → SignalWidget-jYpXSIfD.js.map} +1 -1
  269. package/dist/{SimpleTextDialog-B9ZurpdS.cjs → SimpleTextDialog-DLdHGmmb.cjs} +2 -2
  270. package/dist/{SimpleTextDialog-B9ZurpdS.cjs.map → SimpleTextDialog-DLdHGmmb.cjs.map} +1 -1
  271. package/dist/{SimpleTextDialog-Bqh3eT2B.js → SimpleTextDialog-Dd3BoNG-.js} +2 -2
  272. package/dist/{SimpleTextDialog-Bqh3eT2B.js.map → SimpleTextDialog-Dd3BoNG-.js.map} +1 -1
  273. package/dist/{SpacerWidget-CQh-LB4u.cjs → SpacerWidget-BwwxG8k3.cjs} +2 -2
  274. package/dist/{SpacerWidget-CQh-LB4u.cjs.map → SpacerWidget-BwwxG8k3.cjs.map} +1 -1
  275. package/dist/{SpacerWidget-FHxUhs1G.js → SpacerWidget-CUqvml6o.js} +2 -2
  276. package/dist/{SpacerWidget-FHxUhs1G.js.map → SpacerWidget-CUqvml6o.js.map} +1 -1
  277. package/dist/{SparklineWidget-BsMIozYC.cjs → SparklineWidget-05TlKC-x.cjs} +2 -2
  278. package/dist/{SparklineWidget-BsMIozYC.cjs.map → SparklineWidget-05TlKC-x.cjs.map} +1 -1
  279. package/dist/{SparklineWidget-ClT5Umm2.js → SparklineWidget-CVf1TtjV.js} +4 -4
  280. package/dist/{SparklineWidget-ClT5Umm2.js.map → SparklineWidget-CVf1TtjV.js.map} +1 -1
  281. package/dist/{TabbookWidget-D-b0v0oo.js → TabbookWidget-CTUEpDnn.js} +2 -2
  282. package/dist/{TabbookWidget-D-b0v0oo.js.map → TabbookWidget-CTUEpDnn.js.map} +1 -1
  283. package/dist/{TabbookWidget-So-oaWd4.cjs → TabbookWidget-oZre4A6Y.cjs} +2 -2
  284. package/dist/{TabbookWidget-So-oaWd4.cjs.map → TabbookWidget-oZre4A6Y.cjs.map} +1 -1
  285. package/dist/TargetPacketItemChooser-BvXBVNLj.cjs +2 -0
  286. package/dist/TargetPacketItemChooser-BvXBVNLj.cjs.map +1 -0
  287. package/dist/{TargetPacketItemChooser-DD7JgCD9.js → TargetPacketItemChooser-CS2Vvi2U.js} +22 -22
  288. package/dist/TargetPacketItemChooser-CS2Vvi2U.js.map +1 -0
  289. package/dist/{TargetsTab-BD0JGvAl.cjs → TargetsTab-Bc7-iav6.cjs} +2 -2
  290. package/dist/{TargetsTab-BD0JGvAl.cjs.map → TargetsTab-Bc7-iav6.cjs.map} +1 -1
  291. package/dist/{TargetsTab-hTLe_rba.js → TargetsTab-CGv0GwAF.js} +3 -3
  292. package/dist/{TargetsTab-hTLe_rba.js.map → TargetsTab-CGv0GwAF.js.map} +1 -1
  293. package/dist/{TextboxWidget-WM3eFUR_.js → TextboxWidget-B0Y1W7GP.js} +4 -4
  294. package/dist/{TextboxWidget-WM3eFUR_.js.map → TextboxWidget-B0Y1W7GP.js.map} +1 -1
  295. package/dist/{TextboxWidget-CF4iq315.cjs → TextboxWidget-qSbx4xxD.cjs} +2 -2
  296. package/dist/{TextboxWidget-CF4iq315.cjs.map → TextboxWidget-qSbx4xxD.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-lfc1Vg51.js → TextfieldWidget-B8TAf9oU.js} +2 -2
  298. package/dist/{TextfieldWidget-lfc1Vg51.js.map → TextfieldWidget-B8TAf9oU.js.map} +1 -1
  299. package/dist/{TextfieldWidget-D9BINKRU.cjs → TextfieldWidget-cCG7BQ25.cjs} +2 -2
  300. package/dist/{TextfieldWidget-D9BINKRU.cjs.map → TextfieldWidget-cCG7BQ25.cjs.map} +1 -1
  301. package/dist/{TimeWidget-CgtJbnnC.cjs → TimeWidget-DNkhFoZO.cjs} +2 -2
  302. package/dist/{TimeWidget-CgtJbnnC.cjs.map → TimeWidget-DNkhFoZO.cjs.map} +1 -1
  303. package/dist/{TimeWidget-B13aIVqG.js → TimeWidget-DewVXks0.js} +3 -3
  304. package/dist/{TimeWidget-B13aIVqG.js.map → TimeWidget-DewVXks0.js.map} +1 -1
  305. package/dist/{TitleWidget-CTAMgzU4.js → TitleWidget-BAq2LGJF.js} +2 -2
  306. package/dist/{TitleWidget-CTAMgzU4.js.map → TitleWidget-BAq2LGJF.js.map} +1 -1
  307. package/dist/{TitleWidget-BV2sDP_-.cjs → TitleWidget-ChGb6BJW.cjs} +2 -2
  308. package/dist/{TitleWidget-BV2sDP_-.cjs.map → TitleWidget-ChGb6BJW.cjs.map} +1 -1
  309. package/dist/{ToolsTab-DXK-L-kx.cjs → ToolsTab-CB_6hFQF.cjs} +2 -2
  310. package/dist/{ToolsTab-DXK-L-kx.cjs.map → ToolsTab-CB_6hFQF.cjs.map} +1 -1
  311. package/dist/{ToolsTab-CmhRtClS.js → ToolsTab-USmbUvDq.js} +3 -3
  312. package/dist/{ToolsTab-CmhRtClS.js.map → ToolsTab-USmbUvDq.js.map} +1 -1
  313. package/dist/{TopBar-D-lJHb6d.js → TopBar-B4RDkLs-.js} +2 -2
  314. package/dist/{TopBar-D-lJHb6d.js.map → TopBar-B4RDkLs-.js.map} +1 -1
  315. package/dist/{TopBar-BiE7GgIN.cjs → TopBar-DzL3L4ih.cjs} +2 -2
  316. package/dist/{TopBar-BiE7GgIN.cjs.map → TopBar-DzL3L4ih.cjs.map} +1 -1
  317. package/dist/TsdbTab-0aYlysh5.js +125 -0
  318. package/dist/TsdbTab-0aYlysh5.js.map +1 -0
  319. package/dist/TsdbTab-H64XGfOO.cjs +2 -0
  320. package/dist/TsdbTab-H64XGfOO.cjs.map +1 -0
  321. package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs → UpgradeToEnterpriseDialog-BBRXrLrL.cjs} +2 -2
  322. package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs.map → UpgradeToEnterpriseDialog-BBRXrLrL.cjs.map} +1 -1
  323. package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js → UpgradeToEnterpriseDialog-DTmnp8xy.js} +2 -2
  324. package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js.map → UpgradeToEnterpriseDialog-DTmnp8xy.js.map} +1 -1
  325. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CDTSzdb-.js} +2 -2
  326. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CDTSzdb-.js.map} +1 -1
  327. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-MfH160rD.cjs} +2 -2
  328. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-MfH160rD.cjs.map} +1 -1
  329. package/dist/{VWidget-0kkhOxhV.js → VWidget-0KwtSssI.js} +3 -3
  330. package/dist/{VWidget-0kkhOxhV.js.map → VWidget-0KwtSssI.js.map} +1 -1
  331. package/dist/{VWidget-Dkji3VZ0.cjs → VWidget-SWmlQP30.cjs} +2 -2
  332. package/dist/{VWidget-Dkji3VZ0.cjs.map → VWidget-SWmlQP30.cjs.map} +1 -1
  333. package/dist/{ValueWidget-BoQfnx8U.js → ValueWidget-BGNqaaRs.js} +4 -4
  334. package/dist/{ValueWidget-BoQfnx8U.js.map → ValueWidget-BGNqaaRs.js.map} +1 -1
  335. package/dist/{ValueWidget-mkXMZvdK.cjs → ValueWidget-BfxZq1LD.cjs} +2 -2
  336. package/dist/{ValueWidget-mkXMZvdK.cjs.map → ValueWidget-BfxZq1LD.cjs.map} +1 -1
  337. package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js → ValuelimitsbarWidget-B6mH4PdF.js} +4 -4
  338. package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js.map → ValuelimitsbarWidget-B6mH4PdF.js.map} +1 -1
  339. package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs → ValuelimitsbarWidget-m5fBewLy.cjs} +2 -2
  340. package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs.map → ValuelimitsbarWidget-m5fBewLy.cjs.map} +1 -1
  341. package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs → ValuelimitscolumnWidget-D_5XZhiD.cjs} +2 -2
  342. package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs.map → ValuelimitscolumnWidget-D_5XZhiD.cjs.map} +1 -1
  343. package/dist/{ValuelimitscolumnWidget-B3x9DknL.js → ValuelimitscolumnWidget-DlX90_-6.js} +4 -4
  344. package/dist/{ValuelimitscolumnWidget-B3x9DknL.js.map → ValuelimitscolumnWidget-DlX90_-6.js.map} +1 -1
  345. package/dist/{ValuerangebarWidget-DA4X0MuO.cjs → ValuerangebarWidget-C3XFFRhf.cjs} +2 -2
  346. package/dist/{ValuerangebarWidget-DA4X0MuO.cjs.map → ValuerangebarWidget-C3XFFRhf.cjs.map} +1 -1
  347. package/dist/{ValuerangebarWidget-40InNHft.js → ValuerangebarWidget-C9xyLOJO.js} +4 -4
  348. package/dist/{ValuerangebarWidget-40InNHft.js.map → ValuerangebarWidget-C9xyLOJO.js.map} +1 -1
  349. package/dist/{VerticalWidget-abr1X6L7.js → VerticalWidget-0UbbE2g3.js} +2 -2
  350. package/dist/{VerticalWidget-abr1X6L7.js.map → VerticalWidget-0UbbE2g3.js.map} +1 -1
  351. package/dist/{VerticalWidget-BiFa3xbs.cjs → VerticalWidget-D-U8cue6.cjs} +2 -2
  352. package/dist/{VerticalWidget-BiFa3xbs.cjs.map → VerticalWidget-D-U8cue6.cjs.map} +1 -1
  353. package/dist/{VerticalboxWidget-Cx30rcqe.cjs → VerticalboxWidget-C4nkJhEd.cjs} +2 -2
  354. package/dist/{VerticalboxWidget-Cx30rcqe.cjs.map → VerticalboxWidget-C4nkJhEd.cjs.map} +1 -1
  355. package/dist/{VerticalboxWidget-DsbB17o-.js → VerticalboxWidget-efbeOAKE.js} +5 -5
  356. package/dist/{VerticalboxWidget-DsbB17o-.js.map → VerticalboxWidget-efbeOAKE.js.map} +1 -1
  357. package/dist/{Widget-DksaxMdD.js → Widget-CGePksBA.js} +2 -2
  358. package/dist/{Widget-DksaxMdD.js.map → Widget-CGePksBA.js.map} +1 -1
  359. package/dist/{Widget-VL9FlMQp.cjs → Widget-D0drYWOT.cjs} +2 -2
  360. package/dist/{Widget-VL9FlMQp.cjs.map → Widget-D0drYWOT.cjs.map} +1 -1
  361. package/dist/components.cjs +1 -1
  362. package/dist/components.js +16 -16
  363. package/dist/{index-BRc4sKEF.js → index-BJrYCoCB.js} +19 -13
  364. package/dist/index-BJrYCoCB.js.map +1 -0
  365. package/dist/{index-Qy49-kGB.cjs → index-Cmp6oZpm.cjs} +2 -2
  366. package/dist/index-Cmp6oZpm.cjs.map +1 -0
  367. package/dist/plugins.cjs +1 -1
  368. package/dist/plugins.cjs.map +1 -1
  369. package/dist/plugins.js +1 -1
  370. package/dist/plugins.js.map +1 -1
  371. package/dist/purify.es-4pyphLiB.cjs +3 -0
  372. package/dist/purify.es-4pyphLiB.cjs.map +1 -0
  373. package/dist/{purify.es-DcWaZU6I.js → purify.es-BPDBzHtc.js} +115 -115
  374. package/dist/purify.es-BPDBzHtc.js.map +1 -0
  375. package/dist/{settings-BDlsBCNk.js → settings-CjmDHCpE.js} +2 -2
  376. package/dist/{settings-BDlsBCNk.js.map → settings-CjmDHCpE.js.map} +1 -1
  377. package/dist/{settings-D3MxiRHY.cjs → settings-l1j_GGzu.cjs} +2 -2
  378. package/dist/{settings-D3MxiRHY.cjs.map → settings-l1j_GGzu.cjs.map} +1 -1
  379. package/dist/tools/admin.cjs +1 -1
  380. package/dist/tools/admin.js +1 -1
  381. package/dist/tools/base.cjs +1 -1
  382. package/dist/tools/base.js +4 -4
  383. package/dist/tools/calendar.cjs +1 -1
  384. package/dist/tools/calendar.js +1 -1
  385. package/dist/tools/scriptrunner.cjs +8 -8
  386. package/dist/tools/scriptrunner.cjs.map +1 -1
  387. package/dist/tools/scriptrunner.js +1477 -1067
  388. package/dist/tools/scriptrunner.js.map +1 -1
  389. package/dist/vue-common.css +1 -1
  390. package/dist/widgets.cjs +1 -1
  391. package/dist/widgets.js +64 -64
  392. package/package.json +7 -7
  393. package/dist/EventListDialog-CktWO2jn.js.map +0 -1
  394. package/dist/EventListDialog-EAGLDaHc.cjs +0 -2
  395. package/dist/EventListDialog-EAGLDaHc.cjs.map +0 -1
  396. package/dist/Graph-9_EZ9aQx.cjs +0 -2
  397. package/dist/Graph-9_EZ9aQx.cjs.map +0 -1
  398. package/dist/Graph-GhpiUBKI.js.map +0 -1
  399. package/dist/PluginsTab-D7zpmf8s.js.map +0 -1
  400. package/dist/PluginsTab-DfmpvAYa.cjs +0 -6
  401. package/dist/PluginsTab-DfmpvAYa.cjs.map +0 -1
  402. package/dist/TargetPacketItemChooser-DD7JgCD9.js.map +0 -1
  403. package/dist/TargetPacketItemChooser-PqyXKRlT.cjs +0 -2
  404. package/dist/TargetPacketItemChooser-PqyXKRlT.cjs.map +0 -1
  405. package/dist/index-BRc4sKEF.js.map +0 -1
  406. package/dist/index-Qy49-kGB.cjs.map +0 -1
  407. package/dist/purify.es-B336bjAn.cjs +0 -3
  408. package/dist/purify.es-B336bjAn.cjs.map +0 -1
  409. package/dist/purify.es-DcWaZU6I.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BRc4sKEF.js","sources":["../src/tools/admin/DownloadDialog.vue","../src/tools/admin/ModifiedPluginDialog.vue","../src/tools/admin/tabs/index.js","../src/tools/admin/OpenC3Admin.vue","../../../node_modules/.pnpm/ace-diff@4.0.0/node_modules/ace-diff/dist/index.mjs","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.js","../../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.js","../src/tools/admin/PluginDialog.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Download Gems </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text>\n <div class=\"pa-3\">\n <v-row class=\"my-2\"> Select a download option </v-row>\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n block\n data-test=\"searchGithub\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n @click=\"searchGithub\"\n >\n Github\n <v-icon end theme=\"dark\"> mdi-github </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n <!---\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n @click=\"searchRuby\"\n block\n data-test=\"searchRuby\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n >\n RubyGems\n <v-icon right dark> mdi-heart </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n --->\n <v-row class=\"mt-5\"> Community Gems </v-row>\n <div v-if=\"listData.length < 1\" class=\"mt-4\">\n <v-row class=\"mx-2\">\n <span> I’m sorry, Dave. No gems available.... </span>\n </v-row>\n </div>\n <div v-else class=\"mt-4\">\n <div v-for=\"(data, index) in listData\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ data.name }}</v-list-item-title>\n\n <v-list-item icon>\n <v-progress-circular\n v-if=\"activeDownload\"\n indeterminate\n color=\"primary\"\n />\n <v-btn\n v-else\n icon=\"mdi-cloud-download\"\n variant=\"text\"\n :disabled=\"activeDownload\"\n @click=\"downloadGem(data)\"\n />\n </v-list-item>\n </v-list-item>\n <v-divider v-if=\"index < listData.length - 1\" :key=\"index\" />\n </div>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nexport default {\n props: {\n modelValue: Boolean,\n },\n emits: ['update:modelValue'],\n data() {\n return {\n url: '',\n type: null,\n response: null,\n activeDownload: false,\n disableSearch: false,\n expanded: [],\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n listData: function () {\n if (!this.response) return []\n if (this.type === 'github') {\n return this.parseGithub()\n } else {\n return this.parseRuby()\n }\n },\n },\n methods: {\n parseGithub: function () {\n const gemRegEx = /\\w+.gem/\n return this.response.tree\n .filter((f) => gemRegEx.exec(f.path))\n .map((f) => {\n return {\n name: f.path,\n url: `https://raw.github.com/OpenC3/openc3-tools/main/${f.path}`,\n }\n })\n },\n getResponse: function () {\n this.disableSearch = true\n axios.get(this.url).then((response) => {\n this.response = response.data\n })\n setTimeout(() => {\n this.disableSearch = false\n }, 10000)\n },\n searchGithub: function () {\n this.type = 'github'\n this.url =\n 'https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1'\n this.getResponse()\n },\n downloadGem: function (gem) {\n const link = document.createElement('a')\n link.href = gem.url\n link.setAttribute('download', gem.name)\n link.click()\n link.remove()\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span> Modified Plugin </span>\n <v-spacer />\n </v-toolbar>\n <v-card-text class=\"pa-3 card-container\">\n <div>\n Plugin {{ plugin }} was modified. Would you like to delete the\n existing modified files?\n </div>\n <v-list-item\n v-for=\"(target, index) in modifiedTargets\"\n :key=\"index\"\n lines=\"two\"\n >\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <div class=\"file-list-container\">\n <v-list-item-subtitle\n v-for=\"(file, itemIndex) in target.files\"\n :key=\"itemIndex\"\n >{{ file }}</v-list-item-subtitle\n >\n </div>\n </v-list-item>\n <v-checkbox\n v-model=\"deleteModified\"\n label=\"DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!\"\n color=\"error\"\n data-test=\"modified-plugin-delete-checkbox\"\n />\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"modified-plugin-cancel\"\n @click=\"cancel\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n data-test=\"modified-plugin-submit\"\n @click=\"\n () => {\n show = false\n $emit('submit', deleteModified)\n }\n \"\n >\n Confirm\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n modelValue: Boolean,\n plugin: {\n type: String,\n default: null,\n },\n targets: {\n type: Array,\n default: null,\n },\n pluginDelete: Boolean,\n },\n emits: ['update:modelValue', 'submit', 'cancel'],\n data() {\n return {\n modifiedTargets: [],\n deleteModified: false,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n created() {\n for (const target of this.targets) {\n Api.get(`/openc3-api/targets/${target.name}/modified_files`).then(\n (response) => {\n if (response.data.length !== 0) {\n // Only push targets which actually have modified files\n this.modifiedTargets.push({\n name: target.name,\n files: response.data,\n })\n }\n },\n )\n }\n },\n methods: {\n cancel() {\n this.show = false\n this.$emit('cancel')\n },\n },\n}\n</script>\n\n<style scoped>\n.card-container {\n max-height: 80vh;\n overflow-y: auto;\n}\n\n.file-list-container {\n max-height: 50vh;\n overflow-y: auto;\n}\n</style>\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nconst TabsList = [\n {\n displayName: 'Plugins',\n name: 'PluginsTab',\n path: 'plugins',\n component: () => import('./PluginsTab.vue'),\n },\n {\n displayName: 'Targets',\n name: 'TargetsTab',\n path: 'targets',\n component: () => import('./TargetsTab.vue'),\n },\n {\n displayName: 'Interfaces',\n name: 'InterfacesTab',\n path: 'interfaces',\n component: () => import('./InterfacesTab.vue'),\n },\n {\n displayName: 'Routers',\n name: 'RoutersTab',\n path: 'routers',\n component: () => import('./RoutersTab.vue'),\n },\n {\n displayName: 'Microservices',\n name: 'MicroservicesTab',\n path: 'microservices',\n component: () => import('./MicroservicesTab.vue'),\n },\n {\n displayName: 'Packages',\n name: 'PackagesTab',\n path: 'packages',\n component: () => import('./PackagesTab.vue'),\n },\n {\n displayName: 'Tools',\n name: 'ToolsTab',\n path: 'tools',\n component: () => import('./ToolsTab.vue'),\n },\n {\n displayName: 'Redis',\n name: 'RedisTab',\n path: 'redis',\n component: () => import('./RedisTab.vue'),\n },\n {\n displayName: 'Secrets',\n name: 'SecretsTab',\n path: 'secrets',\n component: () => import('./SecretsTab.vue'),\n },\n {\n displayName: 'Settings',\n name: 'SettingsTab',\n path: 'settings',\n component: () => import('./SettingsTab.vue'),\n },\n]\n\nexport { TabsList }\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :title=\"title\" />\n <v-card>\n <v-tabs v-model=\"curTab\" fixed-tabs>\n <v-tab v-for=\"(tab, index) in tabs\" :key=\"index\" :to=\"tab.path\">\n {{ tab.displayName }}\n </v-tab>\n </v-tabs>\n <router-view />\n </v-card>\n </div>\n</template>\n\n<script>\nimport { TopBar } from '@/components'\nimport { TabsList } from './tabs'\n\nexport default {\n components: {\n TopBar,\n },\n data() {\n return {\n title: 'Administrator Console',\n curTab: null,\n }\n },\n computed: {\n tabs: function () {\n return TabsList.map((tab) => {\n return {\n displayName: tab.displayName,\n path: { name: tab.name },\n }\n })\n },\n },\n}\n</script>\n","function e(e){let[t,n]=e;return[t,n]}function t(e,t){let n=e,r=t,i=n.length,a=r.length;if(i===0||a===0)return 0;i>a?n=n.substring(i-a):i<a&&(r=r.substring(0,i));let o=Math.min(i,a);if(n===r)return o;let s=0,c=1;for(let e=0;e!==-1;){let t=n.substring(o-c);if(e=r.indexOf(t),e===-1)return s;c+=e,(e===0||n.substring(o-c)===r.substring(0,c))&&(s=c,c++)}return s}function n(e,t){if(!e||!t||e[0]!==t[0])return 0;let n=0,r=Math.min(e.length,t.length),i=r,a=0;for(;n<i;)e.substring(a,i)===t.substring(a,i)?(n=i,a=n):r=i,i=Math.floor((r-n)/2+n);return i}function r(e,t){if(!e||!t||e[e.length-1]!==t[t.length-1])return 0;let n=0,r=Math.min(e.length,t.length),i=r,a=0;for(;n<i;)e.substring(e.length-i,e.length-a)===t.substring(t.length-i,t.length-a)?(n=i,a=n):r=i,i=Math.floor((r-n)/2+n);return i}function i(e){let t=e.charCodeAt(0);return t>=55296&&t<=56319}function a(e){let t=e.charCodeAt(0);return t>=56320&&t<=57343}function o(e,t,n){let r=e.length,i=t.length,a=Math.ceil((r+i)/2),o=a,c=2*a,l=Array(c),u=Array(c);for(let e=0;e<c;e++)l[e]=-1,u[e]=-1;l[o+1]=0,u[o+1]=0;let d=r-i,f=d%2!=0,p=0,m=0,h=0,g=0;for(let _=0;_<a&&!(Date.now()>n);_++){for(let a=-_+p;a<=_-m;a+=2){let h=o+a,g;g=a===-_||a!==_&&l[h-1]<l[h+1]?l[h+1]:l[h-1]+1;let v=g-a;for(;g<r&&v<i&&e.charAt(g)===t.charAt(v);)g++,v++;if(l[h]=g,g>r)m+=2;else if(v>i)p+=2;else if(f){let i=o+d-a;if(i>=0&&i<c&&u[i]!==-1){let a=r-u[i];if(g>=a)return s(e,t,g,v,n)}}}for(let a=-_+h;a<=_-g;a+=2){let p=o+a,m;m=a===-_||a!==_&&u[p-1]<u[p+1]?u[p+1]:u[p-1]+1;let v=m-a;for(;m<r&&v<i&&e.charAt(r-m-1)===t.charAt(i-v-1);)m++,v++;if(u[p]=m,m>r)g+=2;else if(v>i)h+=2;else if(!f){let i=o+d-a;if(i>=0&&i<c&&l[i]!==-1){let a=l[i],c=o+a-i;if(m=r-m,a>=m)return s(e,t,a,c,n)}}}}return[[y,e],[b,t]]}function s(e,t,n,r,i){let a=e.substring(0,n),o=t.substring(0,r),s=e.substring(n),c=t.substring(r),l=C(a,o,{checkLines:!1,deadline:i}),u=C(s,c,{checkLines:!1,deadline:i});return l.concat(u)}function c(e,t,n=1){if(n<=0)return null;let r=e.length>t.length?e:t,i=e.length>t.length?t:e;if(r.length<4||i.length*2<r.length)return null;let a=l(r,i,Math.ceil(r.length/4)),o=l(r,i,Math.ceil(r.length/2)),s;if(a&&o)s=a[4].length>o[4].length?a:o;else{if(!a&&!o)return null;o?a||(s=o):s=a}if(!s)throw Error(`Unable to find a half match.`);let c,u,d,f;e.length>t.length?(c=s[0],u=s[1],d=s[2],f=s[3]):(d=s[0],f=s[1],c=s[2],u=s[3]);let p=s[4];return[c,u,d,f,p]}function l(e,t,i){let a=e.slice(i,i+Math.floor(e.length/4)),o=-1,s=``,c,l,u,d;for(;(o=t.indexOf(a,o+1))!==-1;){let a=n(e.slice(i),t.slice(o)),f=r(e.slice(0,i),t.slice(0,o));s.length<f+a&&(s=t.slice(o-f,o)+t.slice(o,o+a),c=e.slice(0,i-f),l=e.slice(i+a),u=t.slice(0,o-f),d=t.slice(o+a))}return s.length*2>=e.length?[c||``,l||``,u||``,d||``,s||``]:null}function u(e,t){for(let n=0;n<e.length;n++){let r=e[n][1],i=[];for(let e=0;e<r.length;e++)i[e]=t[r.charCodeAt(e)];e[n][1]=i.join(``)}}function d(e,t){let n=[],r={};n[0]=``;function i(e){let t=``,i=0,o=-1,s=n.length;for(;o<e.length-1;){o=e.indexOf(`\n`,i),o===-1&&(o=e.length-1);let c=e.slice(i,o+1);(r.hasOwnProperty?r.hasOwnProperty(c):r[c]!==void 0)?t+=String.fromCharCode(r[c]):(s===a&&(c=e.slice(i),o=e.length),t+=String.fromCharCode(s),r[c]=s,n[s++]=c),i=o+1}return t}let a=4e4,o=i(e);return a=65535,{chars1:o,chars2:i(t),lineArray:n}}function f(e,t,n){let r=e,i=t,a=d(r,i);r=a.chars1,i=a.chars2;let o=a.lineArray,s=C(r,i,{checkLines:!1,deadline:n.deadline});u(s,o),s=A(s),s.push([x,``]);let c=0,l=0,f=0,p=``,m=``;for(;c<s.length;){switch(s[c][0]){case b:f++,m+=s[c][1];break;case y:l++,p+=s[c][1];break;case x:if(l>=1&&f>=1){s.splice(c-l-f,l+f),c=c-l-f;let e=C(p,m,{checkLines:!1,deadline:n.deadline});for(let t=e.length-1;t>=0;t--)s.splice(c,0,e[t]);c+=e.length}f=0,l=0,p=``,m=``;break;default:throw Error(`Unknown diff operation.`)}c++}return s.pop(),s}function p(e,t,n){let r;if(!e)return[[b,t]];if(!t)return[[y,e]];let i=e.length>t.length?e:t,a=e.length>t.length?t:e,s=i.indexOf(a);if(s!==-1)return r=[[b,i.substring(0,s)],[x,a],[b,i.substring(s+a.length)]],e.length>t.length&&(r[0][0]=y,r[2][0]=y),r;if(a.length===1)return[[y,e],[b,t]];let l=c(e,t);if(l){let e=l[0],t=l[1],r=l[2],i=l[3],a=l[4],o=C(e,r,n),s=C(t,i,n);return o.concat([[x,a]],s)}return n.checkLines&&e.length>100&&t.length>100?f(e,t,n):o(e,t,n.deadline)}var m=Object.defineProperty,h=Object.getOwnPropertySymbols,g=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?m(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ee=(e,t)=>{for(var n in t||={})g.call(t,n)&&v(e,n,t[n]);if(h)for(var n of h(t))_.call(t,n)&&v(e,n,t[n]);return e};const y=-1,b=1,x=0;function S(e,t,n){if(e===null||t===null)throw Error(`Null input. (diff)`);let r=C(e,t,w(n||{}));return k(r),r}function C(e,t,i){let a=e,o=t;if(a===o)return a?[[0,a]]:[];let s=n(a,o),c=a.substring(0,s);a=a.substring(s),o=o.substring(s),s=r(a,o);let l=a.substring(a.length-s);a=a.substring(0,a.length-s),o=o.substring(0,o.length-s);let u=p(a,o,i);return c&&u.unshift([0,c]),l&&u.push([0,l]),u=L(u),u}function te(e){let t=1;return typeof e<`u`&&(t=e<=0?Number.MAX_VALUE:e),Date.now()+t*1e3}function w(e){return ee({checkLines:!0,deadline:te(e.timeout||1)},e)}function T(e,t,n){return n===1?e+t:t+e}function E(e,t){return t===1?[e.substring(0,e.length-1),e[e.length-1]]:[e.substring(1),e[0]]}function D(e,t,n,r){return r===1?e[t][1][e[t][1].length-1]===e[n][1][e[n][1].length-1]:e[t][1][0]===e[n][1][0]}function O(e,t,n){let r=n===1?-1:1,i=null,a=null,o=t+n;for(;o>=0&&o<e.length&&(i===null||a===null);o+=n){let[s,c]=e[o];if(c.length!==0){if(s===1){i===null&&(i=o);continue}else if(s===-1){a===null&&(a=o);continue}else if(s===0){if(i===null&&a===null){let[i,a]=E(e[t][1],n);e[t][1]=i,e[o][1]=T(e[o][1],a,r);return}break}}}if(i!==null&&a!==null&&D(e,i,a,n)){let[o,s]=E(e[i][1],r),[c]=E(e[a][1],r);e[i][1]=o,e[a][1]=c,e[t][1]=T(e[t][1],s,n);return}let[s,c]=E(e[t][1],n);e[t][1]=s,i===null?(e.splice(o,0,[1,c]),a!==null&&a>=o&&a++):e[i][1]=T(e[i][1],c,r),a===null?e.splice(o,0,[-1,c]):e[a][1]=T(e[a][1],c,r)}function k(e){for(let t=0;t<e.length;t++){let[n,r]=e[t];if(r.length===0)continue;let o=r[0],s=r[r.length-1];i(s)&&n===0&&O(e,t,1),a(o)&&n===0&&O(e,t,-1)}for(let t=0;t<e.length;t++)e[t][1].length===0&&e.splice(t,1)}function A(n){let r=n.map(t=>e(t)),i=!1,a=[],o=0,s=null,c=0,l=0,u=0,d=0,f=0;for(;c<r.length;)r[c][0]===0?(a[o++]=c,l=d,u=f,d=0,f=0,s=r[c][1]):(r[c][0]===1?d+=r[c][1].length:f+=r[c][1].length,s&&s.length<=Math.max(l,u)&&s.length<=Math.max(d,f)&&(r.splice(a[o-1],0,[-1,s]),r[a[o-1]+1][0]=1,o--,o--,c=o>0?a[o-1]:-1,l=0,u=0,d=0,f=0,s=null,i=!0)),c++;for(i&&(r=L(r)),r=I(r),c=1;c<r.length;){if(r[c-1][0]===-1&&r[c][0]===1){let e=r[c-1][1],n=r[c][1],i=t(e,n),a=t(n,e);i>=a?(i>=e.length/2||i>=n.length/2)&&(r.splice(c,0,[0,n.substring(0,i)]),r[c-1][1]=e.substring(0,e.length-i),r[c+1][1]=n.substring(i),c++):(a>=e.length/2||a>=n.length/2)&&(r.splice(c,0,[0,e.substring(0,a)]),r[c-1][0]=1,r[c-1][1]=n.substring(0,n.length-a),r[c+1][0]=-1,r[c+1][1]=e.substring(a),c++),c++}c++}return r}const j=/[^a-zA-Z0-9]/,M=/\\s/,N=/[\\r\\n]/,P=/\\n\\r?\\n$/,F=/^\\r?\\n\\r?\\n/;function I(t){let n=t.map(t=>e(t));function i(e,t){if(!e||!t)return 6;let n=e.charAt(e.length-1),r=t.charAt(0),i=n.match(j),a=r.match(j),o=i&&n.match(M),s=a&&r.match(M),c=o&&n.match(N),l=s&&r.match(N),u=c&&e.match(P),d=l&&t.match(F);return u||d?5:c||l?4:i&&!o&&s?3:o||s?2:i||a?1:0}let a=1;for(;a<n.length-1;){if(n[a-1][0]===0&&n[a+1][0]===0){let e=n[a-1][1],t=n[a][1],o=n[a+1][1],s=r(e,t);if(s){let n=t.substring(t.length-s);e=e.substring(0,e.length-s),t=n+t.substring(0,t.length-s),o=n+o}let c=e,l=t,u=o,d=i(e,t)+i(t,o);for(;t.charAt(0)===o.charAt(0);){e+=t.charAt(0),t=t.substring(1)+o.charAt(0),o=o.substring(1);let n=i(e,t)+i(t,o);n>=d&&(d=n,c=e,l=t,u=o)}n[a-1][1]!==c&&(c?n[a-1][1]=c:(n.splice(a-1,1),a--),n[a][1]=l,u?n[a+1][1]=u:(n.splice(a+1,1),a--))}a++}return n}function L(t){let i=t.map(t=>e(t));i.push([0,``]);let a=0,o=0,s=0,c=``,l=``,u;for(;a<i.length;)switch(i[a][0]){case 1:s++,l+=i[a][1],a++;break;case-1:o++,c+=i[a][1],a++;break;case 0:o+s>1?(o!==0&&s!==0&&(u=n(l,c),u!==0&&(a-o-s>0&&i[a-o-s-1][0]===0?i[a-o-s-1][1]+=l.substring(0,u):(i.splice(0,0,[0,l.substring(0,u)]),a++),l=l.substring(u),c=c.substring(u)),u=r(l,c),u!==0&&(i[a][1]=l.substring(l.length-u)+i[a][1],l=l.substring(0,l.length-u),c=c.substring(0,c.length-u))),a-=o+s,i.splice(a,o+s),c.length&&(i.splice(a,0,[-1,c]),a++),l.length&&(i.splice(a,0,[1,l]),a++),a++):a!==0&&i[a-1][0]===0?(i[a-1][1]+=i[a][1],i.splice(a,1)):a++,s=0,o=0,c=``,l=``;break;default:throw Error(`Unknown diff operation`)}i[i.length-1][1]===``&&i.pop();let d=!1;for(a=1;a<i.length-1;)i[a-1][0]===0&&i[a+1][0]===0&&(i[a][1].substring(i[a][1].length-i[a-1][1].length)===i[a-1][1]?(i[a][1]=i[a-1][1]+i[a][1].substring(0,i[a][1].length-i[a-1][1].length),i[a+1][1]=i[a-1][1]+i[a+1][1],i.splice(a-1,1),d=!0):i[a][1].substring(0,i[a+1][1].length)===i[a+1][1]&&(i[a-1][1]+=i[a+1][1],i[a][1]=i[a][1].substring(i[a+1][1].length)+i[a+1][1],i.splice(a+1,1),d=!0)),a++;return d&&(i=L(i)),i}function R(e,t,n=!1){let r=null,i=!0;return function(...a){let o=n&&i,s=()=>{e.apply(this,a),r=null};o&&(i=!1,s()),r||=setTimeout(s,t)}}function z(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}}function B(e=``){return(e??``).replace(/\\r\\n/g,`\n`)}function V(e,t,n,r){let i=e+(n-e)/2;return`M ${e} ${t} C ${i},${t} ${i},${r} ${n},${r}`}const H=`right`,U=`left`,W=`specific`,G=`broad`;var K={DIFF_EQUAL:0,DIFF_DELETE:-1,DIFF_INSERT:1,EDITOR_RIGHT:H,EDITOR_LEFT:U,RTL:`rtl`,LTR:`ltr`,SVG_NS:`http://www.w3.org/2000/svg`,DIFF_GRANULARITY_SPECIFIC:W,DIFF_GRANULARITY_BROAD:G};function q(e,t){let{mode:n}=e.options;return t===U&&e.options.left.mode!==null&&(n=e.options.left.mode??n),t===H&&e.options.right.mode!==null&&(n=e.options.right.mode??n),n}function J(e,t){let{theme:n}=e.options;return t===U&&e.options.left.theme!==null&&(n=e.options.left.theme??n),t===H&&e.options.right.theme!==null&&(n=e.options.right.theme??n),n}function ne(e,t){return e.ace.getSession().doc.getLine(t)}function re(e){let t=e.options.left.id;return t?document.getElementById(t)?.offsetHeight??0:0}function Y(e){let t=document.createElement(`div`),n={class:e.className,style:`top:${e.topOffset}px`,title:e.tooltip,\"data-diff-index\":e.diffIndex};for(let e in n)t.setAttribute(e,String(n[e]));return t.innerHTML=e.arrowContent,t}function X(e,t){let n=`js-${t}-${Math.random().toString(36).substr(2,5)}`,r=e.querySelector(`.${t}`);if(r)return r.id=r.id||n,r.id;let i=document.createElement(`div`);return e.appendChild(i),i.className=t,i.id=n,i.id}function Z(e,t,n,r){let i=e===`document`?document:document.querySelector(e);i&&i.addEventListener(t,e=>{let t=i.querySelectorAll(n),a=e.target;for(let n=0,o=t.length;n<o;n+=1){let o=a,s=t[n];for(;o&&o!==i;)o===s&&r.call(s,e),o=o.parentNode}})}let Q=null;function ie(e){if(e.Range)return e.Range;let t=e.acequire||e.require;return t?t(`ace/range`):!1}const ae={ace:void 0,mode:null,theme:null,element:null,diffGranularity:G,lockScrolling:!0,showDiffs:!0,showConnectors:!0,charDiffs:!0,maxDiffs:5e3,left:{id:null,content:null,mode:null,theme:null,editable:!0,copyLinkEnabled:!0},right:{id:null,content:null,mode:null,theme:null,editable:!0,copyLinkEnabled:!0},classes:{gutterID:`acediff__gutter`,diff:`acediff__diffLine`,diffChar:`acediff__diffChar`,diffGutter:`acediff__diffGutter`,connector:`acediff__connector`,newCodeConnectorLink:`acediff__newCodeConnector`,newCodeConnectorLinkContent:`&#8594;`,deletedCodeConnectorLink:`acediff__deletedCodeConnector`,deletedCodeConnectorLinkContent:`&#8592;`,copyRightContainer:`acediff__copy--right`,copyLeftContainer:`acediff__copy--left`},connectorYOffset:0,onDiffReady:null};var $=class{options;el;editors;diffs=[];lineHeight=0;gutterSVG=null;gutterWidth=0;gutterHeight=0;copyLeftContainer=null;copyRightContainer=null;connectorYOffset=0;removeEventHandlers=null;constructor(e={}){let t=JSON.parse(JSON.stringify(ae));this.options={...t,...e,left:{...t.left,...e.left},right:{...t.right,...e.right},classes:{...t.classes,...e.classes}};let n=()=>typeof window<`u`?window.ace:void 0;this.options.ace||(this.options.ace=n());let{ace:r}=this.options;if(!r){let e=\"No ace editor found nor supplied - `options.ace` or `window.ace` is missing\";throw console.error(e),Error(e)}let i=ie(r);if(!i){let e=`Could not require Range module for Ace. Depends on your bundling strategy, but it usually comes with Ace itself. See https://ace.c9.io/api/range.html, open an issue on GitHub ace-diff/ace-diff`;throw console.error(e),Error(e)}if(Q=i,this.options.element===null){let e=\"You need to specify an element for Ace-diff - `options.element` is missing\";throw console.error(e),Error(e)}if(this.options.element instanceof HTMLElement)this.el=this.options.element;else{let e=document.body.querySelector(this.options.element);if(!e){let e=`Can't find the specified element ${this.options.element}`;throw console.error(e),Error(e)}this.el=e}this.options.left.id=X(this.el,`acediff__left`),this.options.classes.gutterID=X(this.el,`acediff__gutter`),this.options.right.id=X(this.el,`acediff__right`),this.el.innerHTML=`<div class=\"acediff acediff__wrap\">${this.el.innerHTML}</div>`,this.editors={left:{ace:r.edit(this.options.left.id),markers:[],lineLengths:[],diffGutters:[]},right:{ace:r.edit(this.options.right.id),markers:[],lineLengths:[],diffGutters:[]},editorHeight:null},this.editors.left.ace.getSession().setMode(q(this,U)??``),this.editors.right.ace.getSession().setMode(q(this,H)??``),this.editors.left.ace.setReadOnly(!this.options.left.editable),this.editors.right.ace.setReadOnly(!this.options.right.editable),this.editors.left.ace.setShowFoldWidgets(!1),this.editors.right.ace.setShowFoldWidgets(!1),this.editors.left.ace.setTheme(J(this,U)??``),this.editors.right.ace.setTheme(J(this,H)??``),this.editors.left.ace.setValue(B(this.options.left.content??null),-1),this.editors.right.ace.setValue(B(this.options.right.content??null),-1),this.editors.editorHeight=re(this),setTimeout(()=>{this.lineHeight=this.editors.left.ace.renderer.lineHeight,this.addEventHandlers(),this.createCopyContainers(),this.createGutter(),this.diff()},1)}setOptions(e){this.options={...this.options,...e,left:{...this.options.left,...e.left},right:{...this.options.right,...e.right},classes:{...this.options.classes,...e.classes}},this.diff()}getNumDiffs(){return this.diffs.length}getEditors(){return{left:this.editors.left.ace,right:this.editors.right.ace}}diff(){let e=this.editors.left.ace.getSession().getValue(),t=A(S(this.editors.right.ace.getSession().getValue(),e));this.editors.left.lineLengths=this.getLineLengths(this.editors.left),this.editors.right.lineLengths=this.getLineLengths(this.editors.right);let n=[],r={left:0,right:0};t.forEach(e=>{let t=e[0],i=e[1];i.length!==0&&(t===0?(r.left+=i.length,r.right+=i.length):t===-1?(n.push(this.computeDiff(-1,r.left,r.right,i)),r.right+=i.length):t===1&&(n.push(this.computeDiff(1,r.left,r.right,i)),r.left+=i.length))}),this.diffs=this.simplifyDiffs(n),!(this.diffs.length>this.options.maxDiffs)&&(this.clearDiffs(),this.decorate(),typeof this.options.onDiffReady==`function`&&this.options.onDiffReady(this.diffs))}clear(){this.clearDiffs(),this.clearGutter(),this.clearArrows()}destroy(){let e=this.editors.left.ace.getValue();this.editors.left.ace.destroy();let t=this.editors.left.ace.container,n=t.cloneNode(!1);n.textContent=e,t.parentNode?.replaceChild(n,t);let r=this.editors.right.ace.getValue();this.editors.right.ace.destroy(),t=this.editors.right.ace.container,n=t.cloneNode(!1),n.textContent=r,t.parentNode?.replaceChild(n,t);let i=document.getElementById(this.options.classes.gutterID);i&&(i.innerHTML=``),this.removeEventHandlers?.()}addEventHandlers(){let e=!1,t=(t,n)=>{if(!this.options.lockScrolling||e)return;let r=t.ace.getSession(),i=n.ace.getSession(),a=r.getScrollTop(),o=r.getLength()*this.lineHeight,s=t.ace.renderer.$size.scrollerHeight,c=Math.max(0,o-s),l=c>0?a/c:0,u=i.getLength()*this.lineHeight,d=n.ace.renderer.$size.scrollerHeight,f=l*Math.max(0,u-d);e=!0,i.setScrollTop(f),e=!1};this.editors.left.ace.getSession().on(`changeScrollTop`,R(()=>{t(this.editors.left,this.editors.right),this.updateGap()},16)),this.editors.right.ace.getSession().on(`changeScrollTop`,R(()=>{t(this.editors.right,this.editors.left),this.updateGap()},16));let n=this.diff.bind(this);this.editors.left.ace.on(`change`,n),this.editors.right.ace.on(`change`,n),this.options.left.copyLinkEnabled&&Z(`#${this.options.classes.gutterID}`,`click`,`.${this.options.classes.newCodeConnectorLink}`,e=>this.copy(e,`ltr`)),this.options.right.copyLinkEnabled&&Z(`#${this.options.classes.gutterID}`,`click`,`.${this.options.classes.deletedCodeConnectorLink}`,e=>this.copy(e,`rtl`));let r=z(()=>{let e=document.getElementById(this.options.left.id);e&&(this.editors.availableHeight=e.offsetHeight),this.diff()},250);window.addEventListener(`resize`,r),this.removeEventHandlers=()=>{window.removeEventListener(`resize`,r)}}copy(e,t){let n=e.target,r=parseInt(n.getAttribute(`data-diff-index`)??`0`,10),i=this.diffs[r];if(!i||t===`ltr`&&!this.options.right.editable||t===`rtl`&&!this.options.left.editable)return;let a,o,s,c,l,u;t===`ltr`?(a=this.editors.left,o=this.editors.right,s=i.leftStartOffset,c=i.leftEndOffset,l=i.rightStartOffset,u=i.rightEndOffset):(a=this.editors.right,o=this.editors.left,s=i.rightStartOffset,c=i.rightEndOffset,l=i.leftStartOffset,u=i.leftEndOffset);let d=a.ace.getValue().substring(s,c),f=o.ace.getSession().doc,p=f.indexToPosition(l,0),m=f.indexToPosition(u,0),h=o.ace.getSession().getScrollTop();Q&&o.ace.getSession().replace(new Q(p.row,p.column,m.row,m.column),d),o.ace.getSession().setScrollTop(parseInt(String(h),10)),this.diff()}getLineLengths(e){return e.ace.getSession().doc.getAllLines().map(e=>e.length+1)}showDiff(e,t,n,r,i){let a=this.editors[e],o=n;o<t&&(o=t);let s=`${i} ${o>t?`lines`:`targetOnly`} ${e}`,c=o;if(c>t&&--c,Q&&a.markers.push(a.ace.session.addMarker(new Q(t,0,c,1),s,`fullLine`)),this.options.charDiffs&&r&&r.length>0){let t=`${this.options.classes.diffChar} ${e}`;r.forEach(e=>{Q&&a.markers.push(a.ace.session.addMarker(new Q(e.lineStart,e.start,e.lineEnd-1,e.end),t,`text`))})}let l=`${this.options.classes.diffGutter} ${e}`;for(let e=t;e<o;e+=1)a.ace.session.addGutterDecoration(e,l),a.diffGutters.push({line:e,className:l})}updateGap(){this.clearDiffs(),this.decorate(),this.positionCopyContainers()}clearDiffs(){this.editors.left.markers.forEach(e=>{this.editors.left.ace.getSession().removeMarker(e)}),this.editors.right.markers.forEach(e=>{this.editors.right.ace.getSession().removeMarker(e)}),this.editors.left.markers=[],this.editors.right.markers=[],this.editors.left.diffGutters.forEach(e=>{this.editors.left.ace.session.removeGutterDecoration(e.line,e.className)}),this.editors.right.diffGutters.forEach(e=>{this.editors.right.ace.session.removeGutterDecoration(e.line,e.className)}),this.editors.left.diffGutters=[],this.editors.right.diffGutters=[]}addConnector(e,t,n,r){let i=this.editors.left.ace.getSession().getScrollTop(),a=this.editors.right.ace.getSession().getScrollTop();this.connectorYOffset=1;let o=e*this.lineHeight-i+.5,s=this.gutterWidth+1,c=n*this.lineHeight-a+.5,l=t*this.lineHeight-i+this.connectorYOffset+.5,u=this.gutterWidth+1,d=r*this.lineHeight-a+this.connectorYOffset+.5,f=V(-1,o,s,c),p=V(u,d,-1,l),m=`${f} ${`L${s},${c} ${u},${d}`} ${p} ${`L-1,${l} -1,${o}`}`,h=document.createElementNS(K.SVG_NS,`path`);h.setAttribute(`d`,m),h.setAttribute(`class`,this.options.classes.connector??``),this.gutterSVG?.appendChild(h)}addCopyArrows(e,t){if(e.leftEndLine>e.leftStartLine&&this.options.left.copyLinkEnabled&&this.options.right.editable){let n=Y({className:this.options.classes.newCodeConnectorLink??``,topOffset:e.leftStartLine*this.lineHeight,tooltip:`Copy to right`,diffIndex:t,arrowContent:this.options.classes.newCodeConnectorLinkContent??``});this.copyRightContainer?.appendChild(n)}if(e.rightEndLine>e.rightStartLine&&this.options.right.copyLinkEnabled&&this.options.left.editable){let n=Y({className:this.options.classes.deletedCodeConnectorLink??``,topOffset:e.rightStartLine*this.lineHeight,tooltip:`Copy to left`,diffIndex:t,arrowContent:this.options.classes.deletedCodeConnectorLinkContent??``});this.copyLeftContainer?.appendChild(n)}}positionCopyContainers(){let e=this.editors.left.ace.getSession().getScrollTop(),t=this.editors.right.ace.getSession().getScrollTop();this.copyRightContainer&&(this.copyRightContainer.style.cssText=`top: ${-e}px`),this.copyLeftContainer&&(this.copyLeftContainer.style.cssText=`top: ${-t}px`)}computeDiff(e,t,n,r){let i={};if(e===1){let e=this.getSingleDiffInfo(this.editors.left,t,r),a=this.getLineForCharPosition(this.editors.right,n),o=this.getCharsOnLine(this.editors.right,a),s=this.getCharsOnLine(this.editors.left,e.startLine),c=a,l=e.startLine===e.endLine,u=0;(e.startChar>0||l&&r.length<s)&&o>0&&e.startChar<s&&u++,i={leftStartLine:e.startLine,leftEndLine:e.endLine+1,rightStartLine:c,rightEndLine:c+u,leftStartOffset:t,leftEndOffset:t+r.length,rightStartOffset:n,rightEndOffset:n,leftStartChar:e.startChar,leftEndChar:e.endChar}}else{let e=this.getSingleDiffInfo(this.editors.right,n,r),a=this.getLineForCharPosition(this.editors.left,t),o=this.getCharsOnLine(this.editors.left,a),s=this.getCharsOnLine(this.editors.right,e.startLine),c=a,l=e.startLine===e.endLine,u=0;(e.startChar>0||l&&r.length<s)&&o>0&&e.startChar<s&&u++,i={leftStartLine:c,leftEndLine:c+u,rightStartLine:e.startLine,rightEndLine:e.endLine+1,leftStartOffset:t,leftEndOffset:t,rightStartOffset:n,rightEndOffset:n+r.length,rightStartChar:e.startChar,rightEndChar:e.endChar}}return i}getSingleDiffInfo(e,t,n){let r={startLine:0,startChar:0,endLine:0,endChar:0},i=t+n.length,a=0,o=!1,s=!1;e.lineLengths.forEach((e,n)=>{a+=e,!o&&t<a&&(r.startLine=n,r.startChar=t-a+e,o=!0),!s&&i<=a&&(r.endLine=n,r.endChar=i-a+e,s=!0)}),r.startChar>0&&this.getCharsOnLine(e,r.startLine)===r.startChar&&(r.startLine++,r.startChar=0),r.endChar===0&&r.endLine--;let c=/\\n$/.test(n);return r.startChar>0&&c&&r.endLine++,r}getCharsOnLine(e,t){return ne(e,t).length}getLineForCharPosition(e,t){let n=e.ace.getSession().doc.getAllLines(),r=0,i=0;for(let e=0;e<n.length;e+=1){let a=n[e];if(a!==void 0&&(i+=a.length+1),t<=i){r=e,t===i&&e<n.length-1&&(r+=1);break}}return i>=e.ace.getSession().getValue().length&&(r+=1),r}createGutter(){let e=document.getElementById(this.options.classes.gutterID);if(!e)return;this.gutterHeight=e.clientHeight,this.gutterWidth=e.clientWidth;let t=this.getTotalHeight(U),n=this.getTotalHeight(H),r=Math.max(t,n,this.gutterHeight);this.gutterSVG=document.createElementNS(K.SVG_NS,`svg`),this.gutterSVG.setAttribute(`width`,String(this.gutterWidth)),this.gutterSVG.setAttribute(`height`,String(r)),e.appendChild(this.gutterSVG)}getTotalHeight(e){return(e===U?this.editors.left:this.editors.right).ace.getSession().getLength()*this.lineHeight}createCopyContainers(){this.copyRightContainer=document.createElement(`div`),this.copyRightContainer.setAttribute(`class`,this.options.classes.copyRightContainer??``),this.copyLeftContainer=document.createElement(`div`),this.copyLeftContainer.setAttribute(`class`,this.options.classes.copyLeftContainer??``);let e=document.getElementById(this.options.classes.gutterID);e&&(e.appendChild(this.copyRightContainer),e.appendChild(this.copyLeftContainer))}clearGutter(){let e=document.getElementById(this.options.classes.gutterID);e&&this.gutterSVG&&e.removeChild(this.gutterSVG),this.createGutter()}clearArrows(){this.copyLeftContainer&&(this.copyLeftContainer.innerHTML=``),this.copyRightContainer&&(this.copyRightContainer.innerHTML=``)}simplifyDiffs(e){let t=[],n=e=>this.options.diffGranularity===W?e<1:e<=1,r=e=>{let t={...e,leftChars:[],rightChars:[]};return e.leftEndChar!==void 0&&t.leftChars.push({start:e.leftStartChar??0,end:e.leftEndChar,lineStart:e.leftStartLine??0,lineEnd:e.leftEndLine??0}),e.rightEndChar!==void 0&&t.rightChars.push({start:e.rightStartChar??0,end:e.rightEndChar,lineStart:e.rightStartLine??0,lineEnd:e.rightEndLine??0}),t};return e.forEach((e,i)=>{if(i===0){t.push(r(e));return}let a=!1;for(let r=0;r<t.length;r+=1)if(n(Math.abs(e.leftStartLine-t[r].leftEndLine))&&n(Math.abs(e.rightStartLine-t[r].rightEndLine))){t[r].leftStartLine=Math.min(e.leftStartLine,t[r].leftStartLine),t[r].rightStartLine=Math.min(e.rightStartLine,t[r].rightStartLine),t[r].leftEndLine=Math.max(e.leftEndLine,t[r].leftEndLine),t[r].rightEndLine=Math.max(e.rightEndLine,t[r].rightEndLine),t[r].leftStartOffset=Math.min(e.leftStartOffset,t[r].leftStartOffset),t[r].leftEndOffset=Math.max(e.leftEndOffset,t[r].leftEndOffset),t[r].rightStartOffset=Math.min(e.rightStartOffset,t[r].rightStartOffset),t[r].rightEndOffset=Math.max(e.rightEndOffset,t[r].rightEndOffset),e.leftEndChar!==void 0&&t[r].leftChars.push({start:e.leftStartChar??0,end:e.leftEndChar,lineStart:e.leftStartLine,lineEnd:e.leftEndLine}),e.rightEndChar!==void 0&&t[r].rightChars.push({start:e.rightStartChar??0,end:e.rightEndChar,lineStart:e.rightStartLine,lineEnd:e.rightEndLine}),a=!0;break}a||t.push(r(e))}),t.filter(e=>!(e.leftStartLine===e.leftEndLine&&e.rightStartLine===e.rightEndLine))}decorate(){this.clearGutter(),this.clearArrows(),this.diffs.forEach((e,t)=>{this.options.showDiffs&&(this.showDiff(U,e.leftStartLine,e.leftEndLine,e.leftChars,this.options.classes.diff??``),this.showDiff(H,e.rightStartLine,e.rightEndLine,e.rightChars,this.options.classes.diff??``),this.options.showConnectors&&this.addConnector(e.leftStartLine,e.leftEndLine,e.rightStartLine,e.rightEndLine),this.addCopyArrows(e,t))})}};export{$ as AceDiff,$ as default};\n//# sourceMappingURL=index.mjs.map","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"80vw\" @keydown.esc=\"close\">\n <v-card>\n <v-card-title>{{ pluginName }}</v-card-title>\n <v-card-text class=\"pt-0\">\n <v-alert\n v-if=\"existingPluginTxt !== null\"\n type=\"warning\"\n variant=\"tonal\"\n class=\"mb-3\"\n >\n The existing plugin.txt is different from the {{ pluginName }}'s\n plugin.txt. Navigate the diffs making whatever edits you want before\n installing. You may want to update {{ pluginName }}'s plugin.txt going\n forward.\n </v-alert>\n <v-tabs v-model=\"tab\" class=\"mb-3\">\n <v-tab :key=\"0\"> Variables </v-tab>\n <v-tab :key=\"1\"> plugin.txt </v-tab>\n </v-tabs>\n <form @submit.prevent=\"onSubmit\">\n <v-window v-model=\"tab\">\n <v-window-item :value=\"0\" eager=\"true\" class=\"tab\">\n <div\n v-if=\"Object.keys(localVariables).length === 0\"\n class=\"text-body-1 text-medium-emphasis pa-3\"\n >\n No variables defined for this plugin.\n </div>\n <v-row v-else class=\"pt-2\">\n <v-col\n v-for=\"(variable, name) in localVariables\"\n :key=\"name\"\n cols=\"12\"\n sm=\"6\"\n md=\"3\"\n >\n <!-- Combobox for variables with options -->\n <v-combobox\n v-if=\"hasOptions(variable)\"\n v-model=\"variable.value\"\n :items=\"getOptionItems(variable)\"\n item-title=\"text\"\n item-value=\"value\"\n :return-object=\"false\"\n :label=\"name\"\n :hint=\"getDescription(variable)\"\n persistent-hint\n density=\"comfortable\"\n variant=\"outlined\"\n data-test=\"variable-combobox\"\n >\n <template #item=\"{ item, props }\">\n <v-list-item v-bind=\"props\">\n <template #title>\n {{ item.raw.text }}\n </template>\n </v-list-item>\n </template>\n </v-combobox>\n\n <!-- Text field for variables without options -->\n <v-text-field\n v-else\n v-model=\"variable.value\"\n :label=\"name\"\n :hint=\"getDescription(variable)\"\n persistent-hint\n clearable\n density=\"comfortable\"\n variant=\"outlined\"\n data-test=\"variable-text\"\n />\n </v-col>\n </v-row>\n </v-window-item>\n <v-window-item\n v-if=\"existingPluginTxt === null\"\n :value=\"1\"\n eager=\"true\"\n class=\"tab\"\n >\n <v-row class=\"pa-3\">\n <v-col> This can be edited before installation. </v-col>\n </v-row>\n <pre\n ref=\"editor\"\n class=\"editor\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item link>\n <v-list-item-title @click=\"openDocumentation\">\n {{ docsKeyword }} documentation\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-window-item>\n <v-window-item v-else :value=\"1\" eager=\"true\" class=\"tab\">\n <v-row class=\"pa-3\">\n <v-col>\n Existing plugin.txt. This can be edited before installation.\n </v-col>\n <v-col class=\"ml-6\">\n Uneditable plugin.txt from the new plugin.\n </v-col>\n </v-row>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-window-item>\n </v-window>\n\n <v-card-actions class=\"px-2 mt-2\">\n <div v-if=\"existingPluginTxt !== null\">\n <v-btn variant=\"text\" @click=\"nextDiff\"> Next Diff </v-btn>\n <v-btn variant=\"text\" @click=\"previousDiff\">\n Previous Diff\n </v-btn>\n </div>\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"edit-cancel\"\n @click.prevent=\"close\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n data-test=\"edit-submit\"\n @click=\"checkVersionAndSubmit\"\n >\n Install\n </v-btn>\n </v-card-actions>\n </form>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport AceDiff from 'ace-diff'\nimport 'ace-diff/styles.css'\nimport 'ace-diff/styles-twilight.css'\nimport { Api } from '@openc3/js-common/services'\nimport { toRaw } from 'vue'\nimport * as semver from 'semver'\nimport { AceEditorUtils } from '../../components/ace'\n\nexport default {\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n variables: {\n type: Object,\n required: true,\n },\n pluginTxt: {\n type: String,\n required: true,\n },\n existingPluginTxt: {\n type: String,\n required: false,\n default: null,\n },\n storePluginId: {\n type: Number,\n required: false,\n default: null,\n },\n storeVersionId: {\n type: Number,\n required: false,\n default: null,\n },\n minCosmosVersion: {\n type: String,\n required: false,\n default: undefined,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n emits: ['callback', 'update:modelValue'],\n data() {\n return {\n installedCosmosVersion: null,\n tab: 0,\n localVariables: {},\n localPluginTxt: '',\n localExistingPluginTxt: null,\n editor: null,\n differ: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n watch: {\n value: {\n immediate: true,\n handler: function () {\n // Deep copy and normalize variables to new format\n // Handles both old format (string values) and new format (hash with value/description/options)\n const rawVariables = JSON.parse(JSON.stringify(this.variables))\n this.localVariables = {}\n for (const [name, variable] of Object.entries(rawVariables)) {\n if (typeof variable === 'string') {\n // Old format: convert to new format\n this.localVariables[name] = { value: variable }\n } else {\n // New format: use as-is\n this.localVariables[name] = variable\n }\n }\n this.localPluginTxt = this.pluginTxt.slice()\n if (this.existingPluginTxt !== null) {\n this.localExistingPluginTxt = this.existingPluginTxt.slice()\n }\n },\n },\n },\n created() {\n Api.get('/openc3-api/info').then(({ data }) => {\n this.installedCosmosVersion = data.version\n })\n },\n mounted() {\n const pluginMode = this.buildPluginMode()\n if (this.existingPluginTxt === null) {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.session.setMode(new pluginMode())\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.localPluginTxt)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n } else {\n this.tab = 1 // Show the diff right off the bat\n this.differ = new AceDiff({\n element: this.$refs.editor,\n mode: new pluginMode(),\n theme: 'ace/theme/twilight',\n left: {\n content: this.localExistingPluginTxt,\n copyLinkEnabled: false,\n },\n right: {\n content: this.localPluginTxt,\n editable: false,\n },\n })\n // Match our existing editors\n this.differ.getEditors().left.setFontSize(16)\n this.differ.getEditors().right.setFontSize(16)\n\n // Apply vim mode if enabled to both editor instances\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().left)\n AceEditorUtils.applyVimModeIfEnabled(this.differ.getEditors().right)\n\n this.curDiff = -1 // so the first will be 0\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n if (this.differ) {\n this.differ.destroy()\n }\n },\n methods: {\n previousDiff() {\n this.curDiff--\n if (this.curDiff < 0) {\n this.curDiff = this.differ.diffs.length - 1\n }\n this.scrollToCurDiff()\n },\n nextDiff() {\n this.curDiff++\n if (this.curDiff >= this.differ.diffs.length) {\n this.curDiff = 0\n }\n this.scrollToCurDiff()\n },\n scrollToCurDiff() {\n if (this.differ.diffs.length === 0) return\n let lrow = this.differ.diffs[this.curDiff].leftStartLine\n let rrow = this.differ.diffs[this.curDiff].rightStartLine\n // Give it a little breathing room\n if (lrow > 5) {\n lrow -= 5\n }\n if (rrow > 5) {\n rrow -= 5\n }\n this.differ.getEditors().left.scrollToLine(lrow)\n this.differ.getEditors().right.scrollToLine(rrow)\n },\n buildPluginMode() {\n let oop = ace.require('ace/lib/oop')\n let RubyHighlightRules = ace.require(\n 'ace/mode/ruby_highlight_rules',\n ).RubyHighlightRules\n\n // TODO: Grab from code\n let keywords = ['VARIABLE', 'VARIABLE_DESCRIPTION', 'VARIABLE_STATE']\n let regex = new RegExp(`(\\\\b${keywords.join('\\\\b|\\\\b')}\\\\b)`)\n let PluginHighlightRules = function () {\n RubyHighlightRules.call(this)\n // add openc3 rules to the ruby rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(PluginHighlightRules, RubyHighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let FoldMode = ace.require('ace/mode/folding/ruby').FoldMode\n let Mode = function () {\n this.HighlightRules = PluginHighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n checkVersionAndSubmit: function () {\n const versionsAreCompatible =\n !this.installedCosmosVersion ||\n !this.minCosmosVersion ||\n semver.gte(this.installedCosmosVersion, this.minCosmosVersion)\n if (versionsAreCompatible) {\n this.submit()\n } else {\n this.$dialog\n .confirm(\n `This plugin requires a minimum COSMOS version of ${this.minCosmosVersion}, which is greater than your installed version (${this.installedCosmosVersion}). Install anyway?`,\n {\n okText: 'Install',\n cancelText: 'Cancel',\n },\n )\n .then((dialog) => {\n this.submit()\n })\n .catch((error) => {\n this.close()\n })\n }\n },\n submit: function () {\n if (this.existingPluginTxt === null) {\n this.emitSubmit(this.editor.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with all diffs resolved\n if (this.differ.diffs.length === 0) {\n this.emitSubmit(this.differ.getEditors().left.getValue().split('\\n'))\n } else {\n // Existing plugin.txt with unresolved diffs\n this.$dialog\n .confirm(\n `Diffs still detected! Install using 'Existing plugin.txt' (left) and ignore additional changes in the new plugin.txt (right)?`,\n {\n okText: 'Install',\n cancelText: 'Cancel',\n },\n )\n .then((dialog) => {\n this.emitSubmit(\n this.differ.getEditors().left.getValue().split('\\n'),\n )\n })\n .catch((error) => {\n // Cancelled, do nothing\n })\n }\n }\n },\n emitSubmit(lines) {\n let pluginHash = {\n name: this.pluginName,\n variables: toRaw(this.localVariables),\n plugin_txt_lines: lines,\n store_plugin_id: this.storePluginId,\n store_version_id: this.storeVersionId,\n }\n this.$emit('callback', pluginHash)\n },\n close: function () {\n this.show = !this.show\n },\n showContextMenu: function (event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n\n let position = this.editor.getCursorPosition()\n let token = this.editor.session.getTokenAt(position.row, position.column)\n if (token) {\n let value = token.value.trim()\n if (value.includes(' ')) {\n this.docsKeyword = value.split(' ')[0]\n } else {\n this.docsKeyword = value\n }\n this.contextMenu = true\n }\n },\n toggleVimMode: function () {\n if (this.editor) {\n AceEditorUtils.toggleVimMode(this.editor)\n // don't worry about this.differ since AceDiff replaces the editor anyway, and thus there's no context menu\n }\n },\n // Helper methods for variable display\n hasOptions(variable) {\n return variable.options && variable.options.length > 0\n },\n getDescription(variable) {\n return variable.description || ''\n },\n getOptionItems(variable) {\n if (!variable.options) return []\n return variable.options.map((opt) => ({\n text: opt.text || opt.value,\n value: opt.value,\n }))\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 50vh;\n position: relative;\n font-size: 16px;\n}\n.tab {\n background-color: var(--color-background-surface-default);\n}\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["_sfc_main","value","gemRegEx","f","axios","response","gem","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_cache","_createElementVNode","_component_v_card_text","_component_v_row","_component_v_col","_component_v_btn","$data","_component_v_icon","_openBlock","_createElementBlock","_hoisted_3","_hoisted_4","_Fragment","_renderList","data","index","_component_v_list_item","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_v_progress_circular","_component_v_divider","target","Api","$props","file","itemIndex","_component_v_list_item_subtitle","_component_v_checkbox","_component_v_card_actions","_ctx","TabsList","TopBar","tab","_component_top_bar","_component_v_tabs","_component_v_tab","_component_router_view","e","t","n","r","i","a","o","s","c","l","d","p","m","h","g","_","v","y","b","C","u","A","x","ee","S","w","k","L","te","T","E","D","O","I","j","M","N","P","F","R","z","B","V","H","U","W","G","K","q","J","ne","re","Y","X","Z","Q","ie","ae","$","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","debug_1","args","require$$0","debug","require$$1","exports","module","safeRe","src","safeSrc","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","max","createToken","name","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","options","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","version","id","num","other","release","identifier","identifierBase","match","base","prerelease","semver","parse_1","throwErrors","er","parse","valid_1","clean_1","inc_1","diff_1","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","prefix","major_1","loose","minor_1","patch_1","prerelease_1","parsed","compare_1","compare","rcompare_1","compareLoose_1","compareBuild_1","versionA","versionB","compareBuild","sort_1","list","rsort_1","gt_1","lt_1","eq_1","neq_1","gte_1","lte_1","eq","neq","gt","gte","lt","lte","require$$5","cmp_1","op","coerce_1","coerceRtlRegex","next","major","minor","patch","build","LRUCache","key","firstKey","lrucache","SPACE_CHARACTERS","Range","range","Comparator","first","isNullSet","isAny","comps","memoKey","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","cached","cache","hr","hyphenReplace","comparatorTrimReplace","tildeTrimReplace","caretTrimReplace","rangeList","comp","parseComparator","replaceGTE0","rangeMap","comparators","result","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","LRU","require$$6","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","pr","ret","replaceCaret","replaceXRange","gtlt","xM","xm","xp","anyX","incPr","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","set","allowed","ANY","cmp","comparator","satisfies_1","toComparators_1","maxSatisfying_1","versions","maxSV","rangeObj","minSatisfying_1","min","minSV","minVersion_1","minver","setMin","compver","valid","satisfies","require$$7","outside_1","hilo","gtfn","ltefn","ltfn","ecomp","high","low","outside","gtr_1","ltr_1","intersects_1","r1","r2","simplify","prev","ranges","simplified","original","subset","sub","dom","sawNonNull","OUTER","simpleSub","simpleDom","isSub","simpleSubset","minimumVersionWithPreRelease","minimumVersion","eqSet","higherGT","lowerLT","gtltComp","higher","lower","hasDomLT","hasDomGT","needDomLTPre","needDomGTPre","subset_1","internalRe","clean","inc","diff","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","rcompare","require$$14","compareLoose","require$$15","require$$16","sort","require$$17","rsort","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","coerce","require$$26","require$$27","require$$28","require$$29","toComparators","require$$30","maxSatisfying","require$$31","minSatisfying","require$$32","minVersion","require$$33","validRange","require$$34","require$$35","gtr","require$$36","ltr","require$$37","intersects","require$$38","simplifyRange","require$$39","require$$40","rawVariables","variable","pluginMode","ace.edit","AceEditorUtils","AceDiff","lrow","rrow","oop","ace.require","RubyHighlightRules","keywords","regex","PluginHighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","FoldMode","Mode","RubyMode","semver.gte","dialog","error","lines","pluginHash","toRaw","event","position","opt","_component_v_card_title","_component_v_alert","_component_v_window","_component_v_window_item","_component_v_combobox","_withCtx","item","props","_mergeProps","_component_v_text_field","_component_v_menu","_component_v_list"],"mappings":"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","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]}