@opentiny/tiny-engine-setting-events 2.8.0-rc.0 → 2.8.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.
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "./style.css";
2
2
  import { ref as Lt, reactive as Ut, provide as he, nextTick as Ee, resolveComponent as B, createBlock as tt, openBlock as S, withCtx as I, createElementVNode as m, createVNode as _, resolveDynamicComponent as te, createTextVNode as Dt, unref as O, createElementBlock as J, Fragment as $t, withDirectives as ee, renderList as Ht, normalizeClass as It, toDisplayString as W, createCommentVNode as zt, vShow as ne, computed as Tt, watchEffect as ue, watch as ie, inject as ge } from "vue";
3
- import { callEntry as b, META_APP as C, getMetaApi as k, getOptions as X, useLayout as N, useHistory as K, useCanvas as y, getMergeMeta as L, useBlock as pt, useMaterial as vt, useModal as bt, useMessage as _t, useProperties as $ } from "@opentiny/tiny-engine-meta-register";
4
- import { TinyAlert as ye, DialogBox as fe, Button as Ft, Form as we, FormItem as oe, Input as qt, Popover as xe, Tooltip as Ce, Collapse as ke, CollapseItem as se, Checkbox as De, Search as Se } from "@opentiny/vue";
3
+ import { callEntry as b, META_APP as x, getMetaApi as k, getOptions as X, useLayout as N, useHistory as K, useCanvas as y, getMergeMeta as L, useBlock as pt, useMaterial as vt, useModal as bt, useMessage as _t, useProperties as $ } from "@opentiny/tiny-engine-meta-register";
4
+ import { TinyAlert as ye, DialogBox as fe, Button as Ft, Form as we, FormItem as oe, Input as qt, Popover as Ce, Tooltip as xe, Collapse as ke, CollapseItem as se, Checkbox as De, Search as Se } from "@opentiny/vue";
5
5
  import Et from "@opentiny/tiny-engine-common/js/i18n";
6
6
  import { SvgButton as yt, BlockLinkEvent as wt, PluginPanel as Ae, VueMonaco as St } from "@opentiny/tiny-engine-common";
7
- import { iconChevronDown as xt } from "@opentiny/vue-icon";
7
+ import { iconChevronDown as Ct } from "@opentiny/vue-icon";
8
8
  import { string2Ast as H } from "@opentiny/tiny-engine-common/js/ast";
9
9
  import { CodeConfigurator as st, InputConfigurator as rt, VariableConfigurator as at, SwitchConfigurator as lt } from "@opentiny/tiny-engine-configurator";
10
10
  import { PROP_DATA_TYPE as G } from "@opentiny/tiny-engine-common/js/constants";
@@ -546,11 +546,12 @@ class U {
546
546
  }
547
547
  _split(t) {
548
548
  if (this.byStart[t] || this.byEnd[t]) return;
549
- let n = this.lastSearchedChunk;
550
- const e = t > n.end;
549
+ let n = this.lastSearchedChunk, e = n;
550
+ const i = t > n.end;
551
551
  for (; n; ) {
552
552
  if (n.contains(t)) return this._splitChunk(n, t);
553
- n = e ? this.byStart[n.end] : this.byEnd[n.start];
553
+ if (n = i ? this.byStart[n.end] : this.byEnd[n.start], n === e) return;
554
+ e = n;
554
555
  }
555
556
  }
556
557
  _splitChunk(t, n) {
@@ -690,7 +691,7 @@ const Bt = (c, t) => {
690
691
  useLayout: N,
691
692
  getOptions: X,
692
693
  getMetaApi: k,
693
- META_APP: C,
694
+ META_APP: x,
694
695
  MagicString: U,
695
696
  meta: R,
696
697
  dialogVisible: j,
@@ -711,7 +712,7 @@ const Bt = (c, t) => {
711
712
  useLayout: N,
712
713
  getOptions: X,
713
714
  getMetaApi: k,
714
- META_APP: C,
715
+ META_APP: x,
715
716
  MagicString: U,
716
717
  meta: R,
717
718
  dialogVisible: j,
@@ -744,7 +745,7 @@ const Bt = (c, t) => {
744
745
  getMethods: s,
745
746
  saveMethod: r,
746
747
  highlightMethod: a
747
- } = k(C.Page), d = Ut({
748
+ } = k(x.Page), d = Ut({
748
749
  editorContent: "",
749
750
  bindMethodInfo: {},
750
751
  tip: "",
@@ -777,7 +778,7 @@ const Bt = (c, t) => {
777
778
  getFormatParams: g,
778
779
  rewriteMethodParams: p,
779
780
  activePagePlugin: w,
780
- confirm: x,
781
+ confirm: C,
781
782
  openedDialog: A,
782
783
  closeDialog: P,
783
784
  string2Ast: H,
@@ -787,7 +788,7 @@ const Bt = (c, t) => {
787
788
  useLayout: N,
788
789
  getOptions: X,
789
790
  getMetaApi: k,
790
- META_APP: C,
791
+ META_APP: x,
791
792
  MagicString: U,
792
793
  meta: R,
793
794
  dialogVisible: j,
@@ -834,7 +835,7 @@ const Bt = (c, t) => {
834
835
  getFormatParams: g,
835
836
  rewriteMethodParams: p,
836
837
  activePagePlugin: w,
837
- confirm: x,
838
+ confirm: C,
838
839
  openedDialog: A,
839
840
  closeDialog: P,
840
841
  string2Ast: H,
@@ -844,7 +845,7 @@ const Bt = (c, t) => {
844
845
  useLayout: N,
845
846
  getOptions: X,
846
847
  getMetaApi: k,
847
- META_APP: C,
848
+ META_APP: x,
848
849
  MagicString: U,
849
850
  meta: R,
850
851
  dialogVisible: j,
@@ -875,7 +876,7 @@ const Bt = (c, t) => {
875
876
  getFormatParams: g,
876
877
  rewriteMethodParams: p,
877
878
  activePagePlugin: w,
878
- confirm: x,
879
+ confirm: C,
879
880
  openedDialog: A,
880
881
  closeDialog: P,
881
882
  string2Ast: H,
@@ -885,7 +886,7 @@ const Bt = (c, t) => {
885
886
  useLayout: N,
886
887
  getOptions: X,
887
888
  getMetaApi: k,
888
- META_APP: C,
889
+ META_APP: x,
889
890
  MagicString: U,
890
891
  meta: R,
891
892
  dialogVisible: j,
@@ -923,7 +924,7 @@ const Bt = (c, t) => {
923
924
  getFormatParams: g,
924
925
  rewriteMethodParams: p,
925
926
  activePagePlugin: w,
926
- confirm: x,
927
+ confirm: C,
927
928
  openedDialog: A,
928
929
  closeDialog: P,
929
930
  string2Ast: H,
@@ -933,7 +934,7 @@ const Bt = (c, t) => {
933
934
  useLayout: N,
934
935
  getOptions: X,
935
936
  getMetaApi: k,
936
- META_APP: C,
937
+ META_APP: x,
937
938
  MagicString: U,
938
939
  meta: R,
939
940
  dialogVisible: j,
@@ -964,7 +965,7 @@ const Bt = (c, t) => {
964
965
  getFormatParams: g,
965
966
  rewriteMethodParams: p,
966
967
  activePagePlugin: w,
967
- confirm: x,
968
+ confirm: C,
968
969
  openedDialog: A,
969
970
  closeDialog: P,
970
971
  string2Ast: H,
@@ -974,7 +975,7 @@ const Bt = (c, t) => {
974
975
  useLayout: N,
975
976
  getOptions: X,
976
977
  getMetaApi: k,
977
- META_APP: C,
978
+ META_APP: x,
978
979
  MagicString: U,
979
980
  meta: R,
980
981
  dialogVisible: j,
@@ -1021,7 +1022,7 @@ const Bt = (c, t) => {
1021
1022
  getFormatParams: g,
1022
1023
  rewriteMethodParams: p,
1023
1024
  activePagePlugin: w,
1024
- confirm: x,
1025
+ confirm: C,
1025
1026
  openedDialog: A,
1026
1027
  closeDialog: P,
1027
1028
  string2Ast: H,
@@ -1031,7 +1032,7 @@ const Bt = (c, t) => {
1031
1032
  useLayout: N,
1032
1033
  getOptions: X,
1033
1034
  getMetaApi: k,
1034
- META_APP: C,
1035
+ META_APP: x,
1035
1036
  MagicString: U,
1036
1037
  meta: R,
1037
1038
  dialogVisible: j,
@@ -1067,7 +1068,7 @@ const Bt = (c, t) => {
1067
1068
  getFormatParams: g,
1068
1069
  rewriteMethodParams: p,
1069
1070
  activePagePlugin: w,
1070
- confirm: x,
1071
+ confirm: C,
1071
1072
  openedDialog: A,
1072
1073
  closeDialog: P,
1073
1074
  string2Ast: H,
@@ -1077,14 +1078,14 @@ const Bt = (c, t) => {
1077
1078
  useLayout: N,
1078
1079
  getOptions: X,
1079
1080
  getMetaApi: k,
1080
- META_APP: C,
1081
+ META_APP: x,
1081
1082
  MagicString: U,
1082
1083
  meta: R,
1083
1084
  dialogVisible: j,
1084
1085
  open: V,
1085
1086
  close: F
1086
1087
  })
1087
- }), x = b(async () => {
1088
+ }), C = b(async () => {
1088
1089
  var it, ot;
1089
1090
  if (d.tipError)
1090
1091
  return;
@@ -1129,7 +1130,7 @@ const Bt = (c, t) => {
1129
1130
  getFormatParams: g,
1130
1131
  rewriteMethodParams: p,
1131
1132
  activePagePlugin: w,
1132
- confirm: x,
1133
+ confirm: C,
1133
1134
  openedDialog: A,
1134
1135
  closeDialog: P,
1135
1136
  string2Ast: H,
@@ -1139,7 +1140,7 @@ const Bt = (c, t) => {
1139
1140
  useLayout: N,
1140
1141
  getOptions: X,
1141
1142
  getMetaApi: k,
1142
- META_APP: C,
1143
+ META_APP: x,
1143
1144
  MagicString: U,
1144
1145
  meta: R,
1145
1146
  dialogVisible: j,
@@ -1171,7 +1172,7 @@ const Bt = (c, t) => {
1171
1172
  getFormatParams: g,
1172
1173
  rewriteMethodParams: p,
1173
1174
  activePagePlugin: w,
1174
- confirm: x,
1175
+ confirm: C,
1175
1176
  openedDialog: A,
1176
1177
  closeDialog: P,
1177
1178
  string2Ast: H,
@@ -1181,7 +1182,7 @@ const Bt = (c, t) => {
1181
1182
  useLayout: N,
1182
1183
  getOptions: X,
1183
1184
  getMetaApi: k,
1184
- META_APP: C,
1185
+ META_APP: x,
1185
1186
  MagicString: U,
1186
1187
  meta: R,
1187
1188
  dialogVisible: j,
@@ -1212,7 +1213,7 @@ const Bt = (c, t) => {
1212
1213
  getFormatParams: g,
1213
1214
  rewriteMethodParams: p,
1214
1215
  activePagePlugin: w,
1215
- confirm: x,
1216
+ confirm: C,
1216
1217
  openedDialog: A,
1217
1218
  closeDialog: P,
1218
1219
  string2Ast: H,
@@ -1222,7 +1223,7 @@ const Bt = (c, t) => {
1222
1223
  useLayout: N,
1223
1224
  getOptions: X,
1224
1225
  getMetaApi: k,
1225
- META_APP: C,
1226
+ META_APP: x,
1226
1227
  MagicString: U,
1227
1228
  meta: R,
1228
1229
  dialogVisible: j,
@@ -1235,7 +1236,7 @@ const Bt = (c, t) => {
1235
1236
  BindEventsDialogContent: n,
1236
1237
  state: d,
1237
1238
  dialogVisible: j,
1238
- confirm: x,
1239
+ confirm: C,
1239
1240
  closeDialog: P,
1240
1241
  openedDialog: A,
1241
1242
  selectMethod: f
@@ -1257,21 +1258,19 @@ function He(c, t, n, e, i, o) {
1257
1258
  footer: I(() => [
1258
1259
  m("div", Ke, [
1259
1260
  _(r, { onClick: e.closeDialog }, {
1260
- default: I(() => t[0] || (t[0] = [
1261
+ default: I(() => [...t[0] || (t[0] = [
1261
1262
  Dt("取 消", -1)
1262
- ])),
1263
- _: 1,
1264
- __: [0]
1263
+ ])]),
1264
+ _: 1
1265
1265
  }, 8, ["onClick"]),
1266
1266
  _(r, {
1267
1267
  type: "info",
1268
1268
  onClick: e.confirm
1269
1269
  }, {
1270
- default: I(() => t[1] || (t[1] = [
1270
+ default: I(() => [...t[1] || (t[1] = [
1271
1271
  Dt("确 定", -1)
1272
- ])),
1273
- _: 1,
1274
- __: [1]
1272
+ ])]),
1273
+ _: 1
1275
1274
  }, 8, ["onClick"])
1276
1275
  ])
1277
1276
  ]),
@@ -1295,7 +1294,7 @@ function He(c, t, n, e, i, o) {
1295
1294
  _: 1
1296
1295
  }, 8, ["visible", "onClose", "onOpened"]);
1297
1296
  }
1298
- const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b97"]]), pe = {
1297
+ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b97"]]), pe = {
1299
1298
  onClick: {
1300
1299
  label: {
1301
1300
  zh_CN: "点击事件"
@@ -1474,21 +1473,19 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1474
1473
  footer: I(() => [
1475
1474
  m("div", qe, [
1476
1475
  _(O(Ft), { onClick: O(a) }, {
1477
- default: I(() => l[2] || (l[2] = [
1476
+ default: I(() => [...l[2] || (l[2] = [
1478
1477
  Dt(" 取消", -1)
1479
- ])),
1480
- _: 1,
1481
- __: [2]
1478
+ ])]),
1479
+ _: 1
1482
1480
  }, 8, ["onClick"]),
1483
1481
  _(O(Ft), {
1484
1482
  type: "primary",
1485
1483
  onClick: O(d)
1486
1484
  }, {
1487
- default: I(() => l[3] || (l[3] = [
1485
+ default: I(() => [...l[3] || (l[3] = [
1488
1486
  Dt(" 确定", -1)
1489
- ])),
1490
- _: 1,
1491
- __: [3]
1487
+ ])]),
1488
+ _: 1
1492
1489
  }, 8, ["onClick"])
1493
1490
  ])
1494
1491
  ]),
@@ -1542,10 +1539,10 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1542
1539
  }, kt = /* @__PURE__ */ Bt(Ge, [["__scopeId", "data-v-2ed7fac6"]]), We = {
1543
1540
  components: {
1544
1541
  BlockLinkEvent: wt,
1545
- BindEventsDialog: Ct,
1546
- TinyPopover: xe,
1542
+ BindEventsDialog: xt,
1543
+ TinyPopover: Ce,
1547
1544
  TinyButton: Ft,
1548
- IconChevronDown: xt(),
1545
+ IconChevronDown: Ct(),
1549
1546
  SvgButton: yt,
1550
1547
  AddEventsDialog: kt
1551
1548
  },
@@ -1566,7 +1563,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1566
1563
  confirm: r
1567
1564
  } = bt(), a = Et.global.locale.value, {
1568
1565
  highlightMethod: d
1569
- } = k(C.Page), {
1566
+ } = k(x.Page), {
1570
1567
  commonEvents: f = {}
1571
1568
  } = L("engine.setting.event").options, l = Ut({
1572
1569
  eventName: "",
@@ -1634,7 +1631,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1634
1631
  renderEventList: g,
1635
1632
  openActionDialog: p,
1636
1633
  deleteAction: w,
1637
- delEvent: x,
1634
+ delEvent: C,
1638
1635
  openCodePanel: A,
1639
1636
  handleToggleAddEventDialog: P,
1640
1637
  handleAddEvent: E,
@@ -1645,13 +1642,13 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1645
1642
  useBlock: pt,
1646
1643
  useMaterial: vt,
1647
1644
  getMetaApi: k,
1648
- META_APP: C,
1645
+ META_APP: x,
1649
1646
  useMessage: _t,
1650
1647
  i18n: Et,
1651
1648
  BlockLinkEvent: wt,
1652
1649
  SvgButton: yt,
1653
- iconChevronDown: xt,
1654
- BindEventsDialog: Ct,
1650
+ iconChevronDown: Ct,
1651
+ BindEventsDialog: xt,
1655
1652
  openDialog: V,
1656
1653
  AddEventsDialog: kt
1657
1654
  })
@@ -1685,7 +1682,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1685
1682
  renderEventList: g,
1686
1683
  openActionDialog: p,
1687
1684
  deleteAction: w,
1688
- delEvent: x,
1685
+ delEvent: C,
1689
1686
  openCodePanel: A,
1690
1687
  handleToggleAddEventDialog: P,
1691
1688
  handleAddEvent: E,
@@ -1696,17 +1693,17 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1696
1693
  useBlock: pt,
1697
1694
  useMaterial: vt,
1698
1695
  getMetaApi: k,
1699
- META_APP: C,
1696
+ META_APP: x,
1700
1697
  useMessage: _t,
1701
1698
  i18n: Et,
1702
1699
  BlockLinkEvent: wt,
1703
1700
  SvgButton: yt,
1704
- iconChevronDown: xt,
1705
- BindEventsDialog: Ct,
1701
+ iconChevronDown: Ct,
1702
+ BindEventsDialog: xt,
1706
1703
  openDialog: V,
1707
1704
  AddEventsDialog: kt
1708
1705
  })
1709
- }), x = b((v) => {
1706
+ }), C = b((v) => {
1710
1707
  r({
1711
1708
  title: "提示",
1712
1709
  message: `您确定要删除事件 ${v.eventName} 吗?`,
@@ -1738,7 +1735,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1738
1735
  renderEventList: g,
1739
1736
  openActionDialog: p,
1740
1737
  deleteAction: w,
1741
- delEvent: x,
1738
+ delEvent: C,
1742
1739
  openCodePanel: A,
1743
1740
  handleToggleAddEventDialog: P,
1744
1741
  handleAddEvent: E,
@@ -1749,13 +1746,13 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1749
1746
  useBlock: pt,
1750
1747
  useMaterial: vt,
1751
1748
  getMetaApi: k,
1752
- META_APP: C,
1749
+ META_APP: x,
1753
1750
  useMessage: _t,
1754
1751
  i18n: Et,
1755
1752
  BlockLinkEvent: wt,
1756
1753
  SvgButton: yt,
1757
- iconChevronDown: xt,
1758
- BindEventsDialog: Ct,
1754
+ iconChevronDown: Ct,
1755
+ BindEventsDialog: xt,
1759
1756
  openDialog: V,
1760
1757
  AddEventsDialog: kt
1761
1758
  })
@@ -1785,7 +1782,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1785
1782
  renderEventList: g,
1786
1783
  openActionDialog: p,
1787
1784
  deleteAction: w,
1788
- delEvent: x,
1785
+ delEvent: C,
1789
1786
  openCodePanel: A,
1790
1787
  handleToggleAddEventDialog: P,
1791
1788
  handleAddEvent: E,
@@ -1796,13 +1793,13 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1796
1793
  useBlock: pt,
1797
1794
  useMaterial: vt,
1798
1795
  getMetaApi: k,
1799
- META_APP: C,
1796
+ META_APP: x,
1800
1797
  useMessage: _t,
1801
1798
  i18n: Et,
1802
1799
  BlockLinkEvent: wt,
1803
1800
  SvgButton: yt,
1804
- iconChevronDown: xt,
1805
- BindEventsDialog: Ct,
1801
+ iconChevronDown: Ct,
1802
+ BindEventsDialog: xt,
1806
1803
  openDialog: V,
1807
1804
  AddEventsDialog: kt
1808
1805
  })
@@ -1830,7 +1827,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1830
1827
  renderEventList: g,
1831
1828
  openActionDialog: p,
1832
1829
  deleteAction: w,
1833
- delEvent: x,
1830
+ delEvent: C,
1834
1831
  openCodePanel: A,
1835
1832
  handleToggleAddEventDialog: P,
1836
1833
  handleAddEvent: E,
@@ -1841,13 +1838,13 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1841
1838
  useBlock: pt,
1842
1839
  useMaterial: vt,
1843
1840
  getMetaApi: k,
1844
- META_APP: C,
1841
+ META_APP: x,
1845
1842
  useMessage: _t,
1846
1843
  i18n: Et,
1847
1844
  BlockLinkEvent: wt,
1848
1845
  SvgButton: yt,
1849
- iconChevronDown: xt,
1850
- BindEventsDialog: Ct,
1846
+ iconChevronDown: Ct,
1847
+ BindEventsDialog: xt,
1851
1848
  openDialog: V,
1852
1849
  AddEventsDialog: kt
1853
1850
  })
@@ -1894,7 +1891,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1894
1891
  renderEventList: g,
1895
1892
  openActionDialog: p,
1896
1893
  deleteAction: w,
1897
- delEvent: x,
1894
+ delEvent: C,
1898
1895
  openCodePanel: A,
1899
1896
  handleToggleAddEventDialog: P,
1900
1897
  handleAddEvent: E,
@@ -1905,13 +1902,13 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1905
1902
  useBlock: pt,
1906
1903
  useMaterial: vt,
1907
1904
  getMetaApi: k,
1908
- META_APP: C,
1905
+ META_APP: x,
1909
1906
  useMessage: _t,
1910
1907
  i18n: Et,
1911
1908
  BlockLinkEvent: wt,
1912
1909
  SvgButton: yt,
1913
- iconChevronDown: xt,
1914
- BindEventsDialog: Ct,
1910
+ iconChevronDown: Ct,
1911
+ BindEventsDialog: xt,
1915
1912
  openDialog: V,
1916
1913
  AddEventsDialog: kt
1917
1914
  })
@@ -1920,7 +1917,7 @@ const Ct = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
1920
1917
  state: l,
1921
1918
  isBlock: u,
1922
1919
  isEmpty: h,
1923
- delEvent: x,
1920
+ delEvent: C,
1924
1921
  openCodePanel: A,
1925
1922
  openActionDialog: p,
1926
1923
  handleAddEvent: E,
@@ -1949,8 +1946,7 @@ function dn(c, t, n, e, i, o) {
1949
1946
  t[2] || (t[2] = m("span", null, "绑定事件", -1)),
1950
1947
  _(s, { class: "icon-chevron-down bind-event-btn-icon" })
1951
1948
  ]),
1952
- _: 1,
1953
- __: [2]
1949
+ _: 1
1954
1950
  })
1955
1951
  ]),
1956
1952
  default: I(() => [
@@ -1960,7 +1956,7 @@ function dn(c, t, n, e, i, o) {
1960
1956
  return S(), J("li", {
1961
1957
  key: p,
1962
1958
  class: It(["bind-event-list-item", { "bind-event-list-item-notallow": e.state.bindActions[p] }]),
1963
- onClick: (x) => e.openActionDialog({ eventName: p }, !0)
1959
+ onClick: (C) => e.openActionDialog({ eventName: p }, !0)
1964
1960
  }, [
1965
1961
  m("div", null, W(p) + "  |  " + W(((w = g == null ? void 0 : g.label) == null ? void 0 : w[e.locale]) || p), 1)
1966
1962
  ], 10, tn);
@@ -1980,8 +1976,7 @@ function dn(c, t, n, e, i, o) {
1980
1976
  }),
1981
1977
  t[3] || (t[3] = m("span", { class: "custom-event-button-text" }, "添加新事件", -1))
1982
1978
  ]),
1983
- _: 1,
1984
- __: [3]
1979
+ _: 1
1985
1980
  })
1986
1981
  ]),
1987
1982
  ee(m("ul", en, [
@@ -1993,7 +1988,7 @@ function dn(c, t, n, e, i, o) {
1993
1988
  m("div", nn, [
1994
1989
  m("div", {
1995
1990
  class: "binding-name",
1996
- onClick: (x) => e.openActionDialog(g)
1991
+ onClick: (C) => e.openActionDialog(g)
1997
1992
  }, [
1998
1993
  m("div", null, [
1999
1994
  Dt(W(g.eventName), 1),
@@ -2014,17 +2009,17 @@ function dn(c, t, n, e, i, o) {
2014
2009
  tips: "定位到代码",
2015
2010
  placement: "top",
2016
2011
  hoverBgColor: !1,
2017
- onClick: (x) => e.openCodePanel(g)
2012
+ onClick: (C) => e.openCodePanel(g)
2018
2013
  }, null, 8, ["onClick"]),
2019
2014
  _(l, {
2020
2015
  name: "setting",
2021
2016
  hoverBgColor: !1,
2022
- onClick: (x) => e.openActionDialog(g, !1)
2017
+ onClick: (C) => e.openActionDialog(g, !1)
2023
2018
  }, null, 8, ["onClick"]),
2024
2019
  _(l, {
2025
2020
  name: "delete",
2026
2021
  hoverBgColor: !1,
2027
- onClick: (x) => e.delEvent(g)
2022
+ onClick: (C) => e.delEvent(g)
2028
2023
  }, null, 8, ["onClick"])
2029
2024
  ])
2030
2025
  ])
@@ -2063,7 +2058,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2063
2058
  } = ut, hn = {
2064
2059
  components: {
2065
2060
  SwitchConfigurator: lt,
2066
- TinyTooltip: Ce,
2061
+ TinyTooltip: xe,
2067
2062
  VariableConfigurator: at,
2068
2063
  InputConfigurator: rt,
2069
2064
  CodeConfigurator: st
@@ -2125,7 +2120,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2125
2120
  t.value = (l == null ? void 0 : l.condition) === void 0 ? !0 : l == null ? void 0 : l.condition, i.loopData = l == null ? void 0 : l.loop, i.loopItem = ((u = l == null ? void 0 : l.loopArgs) == null ? void 0 : u[0]) || "", i.loopIndex = ((h = l == null ? void 0 : l.loopArgs) == null ? void 0 : h[1]) || "", i.loopKey = ((p = (g = l == null ? void 0 : l.props) == null ? void 0 : g.key) == null ? void 0 : p.value) || "";
2126
2121
  });
2127
2122
  const o = b((l = "") => {
2128
- var x;
2123
+ var C;
2129
2124
  l = l.replace(/\s*/g, "");
2130
2125
  const {
2131
2126
  getSchema: u,
@@ -2134,7 +2129,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2134
2129
  if (!g)
2135
2130
  return;
2136
2131
  const p = Number(l).toString() !== "NaN";
2137
- let w = (x = g.props) == null ? void 0 : x.key;
2132
+ let w = (C = g.props) == null ? void 0 : C.key;
2138
2133
  l && !p && (w = {
2139
2134
  type: G.JSEXPRESSION,
2140
2135
  value: l
@@ -2226,13 +2221,13 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2226
2221
  const {
2227
2222
  condition: p,
2228
2223
  children: w,
2229
- ...x
2224
+ ...C
2230
2225
  } = h;
2231
2226
  g({
2232
2227
  type: "updateAttributes",
2233
2228
  id: h.id,
2234
2229
  value: {
2235
- ...x
2230
+ ...C
2236
2231
  },
2237
2232
  overwrite: !0
2238
2233
  });
@@ -2327,7 +2322,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2327
2322
  const {
2328
2323
  loop: p,
2329
2324
  loopArgs: w,
2330
- children: x,
2325
+ children: C,
2331
2326
  ...A
2332
2327
  } = g;
2333
2328
  u({
@@ -2422,7 +2417,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-64f96b6
2422
2417
  getIndexName: e
2423
2418
  };
2424
2419
  }
2425
- }, un = { class: "advanced-config-container" }, gn = { class: "advnce-config" }, fn = { class: "advanced-config-form-item" }, mn = ["title"], pn = { class: "advnce-config loop-data-item" }, vn = { class: "advanced-config-form-item" }, bn = ["title"], _n = { class: "advnce-config" }, En = { class: "advanced-config-form-item" }, yn = { class: "advnce-config" }, wn = { class: "advanced-config-form-item" }, xn = { class: "advnce-config" }, Cn = { class: "advanced-config-form-item" };
2420
+ }, un = { class: "advanced-config-container" }, gn = { class: "advnce-config" }, fn = { class: "advanced-config-form-item" }, mn = ["title"], pn = { class: "advnce-config loop-data-item" }, vn = { class: "advanced-config-form-item" }, bn = ["title"], _n = { class: "advnce-config" }, En = { class: "advanced-config-form-item" }, yn = { class: "advnce-config" }, wn = { class: "advanced-config-form-item" }, Cn = { class: "advnce-config" }, xn = { class: "advanced-config-form-item" };
2426
2421
  function kn(c, t, n, e, i, o) {
2427
2422
  var l, u;
2428
2423
  const s = B("switch-configurator"), r = B("variable-configurator"), a = B("code-configurator"), d = B("input-configurator"), f = B("tiny-tooltip");
@@ -2502,9 +2497,9 @@ function kn(c, t, n, e, i, o) {
2502
2497
  }, null, 8, ["modelValue", "placeholder", "onUpdate:modelValue"])
2503
2498
  ])
2504
2499
  ]),
2505
- m("div", xn, [
2500
+ m("div", Cn, [
2506
2501
  t[10] || (t[10] = m("label", { class: "text-ellipsis-multiple" }, "key", -1)),
2507
- m("div", Cn, [
2502
+ m("div", xn, [
2508
2503
  _(f, {
2509
2504
  content: "建议填写循环项中的唯一值(如item.id),如果填写为数字将不保存",
2510
2505
  effect: "light"
@@ -2592,7 +2587,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2592
2587
  setup() {
2593
2588
  const {
2594
2589
  getMethodNameList: c
2595
- } = k(C.Page), t = ge("context"), n = {
2590
+ } = k(x.Page), t = ge("context"), n = {
2596
2591
  language: "json",
2597
2592
  lineNumbers: !1,
2598
2593
  minimap: {
@@ -2615,7 +2610,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2615
2610
  change: r,
2616
2611
  VueMonaco: St,
2617
2612
  getMetaApi: k,
2618
- META_APP: C,
2613
+ META_APP: x,
2619
2614
  METHOD_TIPS_MAP: ct,
2620
2615
  NEW_METHOD_TYPE: Q,
2621
2616
  VALID_VARNAME_RE: Nt
@@ -2635,7 +2630,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2635
2630
  change: r,
2636
2631
  VueMonaco: St,
2637
2632
  getMetaApi: k,
2638
- META_APP: C,
2633
+ META_APP: x,
2639
2634
  METHOD_TIPS_MAP: ct,
2640
2635
  NEW_METHOD_TYPE: Q,
2641
2636
  VALID_VARNAME_RE: Nt
@@ -2655,7 +2650,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2655
2650
  change: r,
2656
2651
  VueMonaco: St,
2657
2652
  getMetaApi: k,
2658
- META_APP: C,
2653
+ META_APP: x,
2659
2654
  METHOD_TIPS_MAP: ct,
2660
2655
  NEW_METHOD_TYPE: Q,
2661
2656
  VALID_VARNAME_RE: Nt
@@ -2675,7 +2670,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2675
2670
  change: r,
2676
2671
  VueMonaco: St,
2677
2672
  getMetaApi: k,
2678
- META_APP: C,
2673
+ META_APP: x,
2679
2674
  METHOD_TIPS_MAP: ct,
2680
2675
  NEW_METHOD_TYPE: Q,
2681
2676
  VALID_VARNAME_RE: Nt
@@ -2714,7 +2709,7 @@ const Dn = /* @__PURE__ */ Bt(hn, [["render", kn], ["__scopeId", "data-v-275ffc6
2714
2709
  change: r,
2715
2710
  VueMonaco: St,
2716
2711
  getMetaApi: k,
2717
- META_APP: C,
2712
+ META_APP: x,
2718
2713
  METHOD_TIPS_MAP: ct,
2719
2714
  NEW_METHOD_TYPE: Q,
2720
2715
  VALID_VARNAME_RE: Nt
@@ -2763,11 +2758,10 @@ function On(c, t, n, e, i, o) {
2763
2758
  "onUpdate:modelValue": t[1] || (t[1] = (d) => e.context.enableExtraParams = d),
2764
2759
  name: "tiny-checkbox"
2765
2760
  }, {
2766
- default: I(() => t[3] || (t[3] = [
2761
+ default: I(() => [...t[3] || (t[3] = [
2767
2762
  Dt("扩展参数设置", -1)
2768
- ])),
2769
- _: 1,
2770
- __: [3]
2763
+ ])]),
2764
+ _: 1
2771
2765
  }, 8, ["modelValue"]),
2772
2766
  m("div", Bn, [
2773
2767
  t[4] || (t[4] = m("div", null, "扩展参数:调用当前事件传入的真实参数,数组格式,追加在原有事件参数之后", -1)),
@@ -2801,7 +2795,7 @@ const Tn = /* @__PURE__ */ Bt(An, [["render", On], ["__scopeId", "data-v-fc0b367
2801
2795
  setup(c) {
2802
2796
  const {
2803
2797
  getMethodNameList: t
2804
- } = k(C.Page), n = Lt(""), e = Lt([]), i = ge("context"), o = b((r, a) => {
2798
+ } = k(x.Page), n = Lt(""), e = Lt([]), i = ge("context"), o = b((r, a) => {
2805
2799
  const d = r.map((u) => {
2806
2800
  var h;
2807
2801
  return Number.parseInt((h = u.match(/\d+$/)) == null ? void 0 : h[0]) || 0;
@@ -2821,7 +2815,7 @@ const Tn = /* @__PURE__ */ Bt(An, [["render", On], ["__scopeId", "data-v-fc0b367
2821
2815
  generateMethodName: o,
2822
2816
  selectMethod: s,
2823
2817
  getMetaApi: k,
2824
- META_APP: C,
2818
+ META_APP: x,
2825
2819
  INVALID_VARNAME_CHAR_RE: Kt,
2826
2820
  NEW_METHOD_TYPE: Q
2827
2821
  })
@@ -2840,7 +2834,7 @@ const Tn = /* @__PURE__ */ Bt(An, [["render", On], ["__scopeId", "data-v-fc0b367
2840
2834
  generateMethodName: o,
2841
2835
  selectMethod: s,
2842
2836
  getMetaApi: k,
2843
- META_APP: C,
2837
+ META_APP: x,
2844
2838
  INVALID_VARNAME_CHAR_RE: Kt,
2845
2839
  NEW_METHOD_TYPE: Q
2846
2840
  })
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../meta.js","../../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.4/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/dist/magic-string.es.mjs","../src/components/constants.ts","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'plugins',\n name: 'event',\n icon: 'target'\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tif (previous !== replacement) this.overwrite(index, index + stringLength, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","arg","n","Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","entry","commonEvents","BindEventsDialogSidebar","BindEventsDialogContent"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"index.js","sources":["../meta.js","../../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../../node_modules/.pnpm/magic-string@0.30.18/node_modules/magic-string/dist/magic-string.es.mjs","../src/components/constants.ts","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'plugins',\n name: 'event',\n icon: 'target'\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tif (previous !== replacement) this.overwrite(index, index + stringLength, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","arg","n","Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","previousChunk","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","entry","commonEvents","BindEventsDialogSidebar","BindEventsDialogContent"],"mappings":"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","x_google_ignoreList":[1,2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentiny/tiny-engine-setting-events",
3
- "version": "2.8.0-rc.0",
3
+ "version": "2.8.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,14 +25,14 @@
25
25
  "license": "MIT",
26
26
  "homepage": "https://opentiny.design/tiny-engine",
27
27
  "dependencies": {
28
- "@opentiny/tiny-engine-common": "2.8.0-rc.0",
29
- "@opentiny/tiny-engine-configurator": "2.8.0-rc.0",
30
- "@opentiny/tiny-engine-meta-register": "2.8.0-rc.0",
31
- "@opentiny/tiny-engine-utils": "2.8.0-rc.0",
28
+ "@opentiny/tiny-engine-common": "2.8.0",
29
+ "@opentiny/tiny-engine-configurator": "2.8.0",
30
+ "@opentiny/tiny-engine-meta-register": "2.8.0",
31
+ "@opentiny/tiny-engine-utils": "2.8.0",
32
32
  "magic-string": "^0.30.17"
33
33
  },
34
34
  "devDependencies": {
35
- "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.8.0-rc.0",
35
+ "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.8.0",
36
36
  "@vitejs/plugin-vue": "^5.1.2",
37
37
  "@vitejs/plugin-vue-jsx": "^4.0.1",
38
38
  "vite": "^5.4.2"
@@ -42,5 +42,5 @@
42
42
  "@opentiny/vue-icon": "^3.20.0",
43
43
  "vue": "^3.4.15"
44
44
  },
45
- "gitHead": "91d29d7f00ad4775bfb72bef7a906102b5a4506e"
45
+ "gitHead": "e62142ad9a47584197a434a2321542677c378eb5"
46
46
  }