@maildeno/editor 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/DatePicker-6dMK-shv.js +5639 -0
  3. package/dist/DatePicker-CEm1DPgG.js +5640 -0
  4. package/dist/HealthIndicator-Ch5Ck0BL.js +1954 -0
  5. package/dist/HealthIndicator-Dr5vMr1T.js +1953 -0
  6. package/dist/PreviewCanvas-CG52GC5m.js +667 -0
  7. package/dist/PreviewCanvas-CjOrVIGt.js +668 -0
  8. package/dist/RichTextEditor-DaaHuVox.js +13487 -0
  9. package/dist/RichTextEditor-DoWpYF0R.js +13432 -0
  10. package/dist/RowPreviewChildren-DQoyExvw.js +4 -0
  11. package/dist/RowPreviewChildren-yl3aB7hb.js +4 -0
  12. package/dist/RowPreviewLegacyComponent-CHxbwy9l.js +454 -0
  13. package/dist/RowPreviewLegacyComponent-Dv7OCys4.js +454 -0
  14. package/dist/RowPreviewRow-Bizr4PTf.js +86 -0
  15. package/dist/RowPreviewRow-CLhz0YQ5.js +86 -0
  16. package/dist/SavedRowsPanel-C0DkAzHi.js +611 -0
  17. package/dist/SavedRowsPanel-Cp3gADrK.js +610 -0
  18. package/dist/babel-Bmz1GpKj.js +7218 -0
  19. package/dist/editor.css +1 -2
  20. package/dist/element-CRfWpZos.js +40842 -0
  21. package/dist/element.js +2 -2
  22. package/dist/estree-C5xyFN_T.js +4831 -0
  23. package/dist/html-Dc_r73Xn.js +3062 -0
  24. package/dist/index-BlYp4vAp.js +34092 -0
  25. package/dist/index.js +14 -48471
  26. package/dist/init.js +94 -82
  27. package/dist/standalone-Yv8gSIWN.js +2336 -0
  28. package/package.json +2 -2
  29. package/dist/RowPreviewLegacyComponent-3QuwvWmT.js +0 -402
  30. package/dist/RowPreviewLegacyComponent-DVxrCJ14.js +0 -402
  31. package/dist/RowPreviewRow-0pEQLmS4.js +0 -80
  32. package/dist/RowPreviewRow-Eum1wh1W.js +0 -80
  33. package/dist/adapters/index.d.ts +0 -38
  34. package/dist/babel-DV7WPQI0.js +0 -10043
  35. package/dist/baseStyles.d.ts +0 -13
  36. package/dist/blocks/canvasStyleHelpers.d.ts +0 -17
  37. package/dist/blocks/definitions/anchor.d.ts +0 -2
  38. package/dist/blocks/definitions/button.d.ts +0 -2
  39. package/dist/blocks/definitions/divider.d.ts +0 -2
  40. package/dist/blocks/definitions/heading.d.ts +0 -2
  41. package/dist/blocks/definitions/image.d.ts +0 -2
  42. package/dist/blocks/definitions/list.d.ts +0 -2
  43. package/dist/blocks/definitions/menu.d.ts +0 -2
  44. package/dist/blocks/definitions/paragraph.d.ts +0 -2
  45. package/dist/blocks/definitions/socials.d.ts +0 -2
  46. package/dist/blocks/definitions/spacer.d.ts +0 -2
  47. package/dist/blocks/definitions/video.d.ts +0 -2
  48. package/dist/blocks/index.d.ts +0 -8
  49. package/dist/brand.d.ts +0 -15
  50. package/dist/components/DesktopOnlyNotice.vue.d.ts +0 -20
  51. package/dist/components/features/emailBuilder/assistant/AssistantPanel.vue.d.ts +0 -37
  52. package/dist/components/features/emailBuilder/blocks/AnchorBlock.vue.d.ts +0 -3
  53. package/dist/components/features/emailBuilder/blocks/ButtonBlock.vue.d.ts +0 -3
  54. package/dist/components/features/emailBuilder/blocks/DividerBlock.vue.d.ts +0 -3
  55. package/dist/components/features/emailBuilder/blocks/HeadingBlock.vue.d.ts +0 -3
  56. package/dist/components/features/emailBuilder/blocks/ImageBlock.vue.d.ts +0 -3
  57. package/dist/components/features/emailBuilder/blocks/ListBlock.vue.d.ts +0 -3
  58. package/dist/components/features/emailBuilder/blocks/MenuBlock.vue.d.ts +0 -3
  59. package/dist/components/features/emailBuilder/blocks/ParagraphBlock.vue.d.ts +0 -3
  60. package/dist/components/features/emailBuilder/blocks/SocialsBlock.vue.d.ts +0 -3
  61. package/dist/components/features/emailBuilder/blocks/SpacerBlock.vue.d.ts +0 -3
  62. package/dist/components/features/emailBuilder/blocks/VideoBlock.vue.d.ts +0 -3
  63. package/dist/components/features/emailBuilder/canvas/Canvas.vue.d.ts +0 -3
  64. package/dist/components/features/emailBuilder/canvas/CanvasColumn.vue.d.ts +0 -49
  65. package/dist/components/features/emailBuilder/canvas/CanvasComponent.vue.d.ts +0 -56
  66. package/dist/components/features/emailBuilder/canvas/CanvasElement.vue.d.ts +0 -21
  67. package/dist/components/features/emailBuilder/canvas/CanvasRow.vue.d.ts +0 -49
  68. package/dist/components/features/emailBuilder/canvas/CanvasRowSpacer.vue.d.ts +0 -40
  69. package/dist/components/features/emailBuilder/health/HealthIndicator.vue.d.ts +0 -3
  70. package/dist/components/features/emailBuilder/layout/Header.vue.d.ts +0 -54
  71. package/dist/components/features/emailBuilder/layout/SendEmail.vue.d.ts +0 -21
  72. package/dist/components/features/emailBuilder/layout/SidebarLeft.vue.d.ts +0 -3
  73. package/dist/components/features/emailBuilder/layout/SidebarRight.vue.d.ts +0 -3
  74. package/dist/components/features/emailBuilder/panels/AnchorPanel.vue.d.ts +0 -3
  75. package/dist/components/features/emailBuilder/panels/ButtonPanel.vue.d.ts +0 -3
  76. package/dist/components/features/emailBuilder/panels/DividerPanel.vue.d.ts +0 -3
  77. package/dist/components/features/emailBuilder/panels/HeadingPanel.vue.d.ts +0 -3
  78. package/dist/components/features/emailBuilder/panels/ImagePanel.vue.d.ts +0 -3
  79. package/dist/components/features/emailBuilder/panels/ListPanel.vue.d.ts +0 -3
  80. package/dist/components/features/emailBuilder/panels/MenuPanel.vue.d.ts +0 -3
  81. package/dist/components/features/emailBuilder/panels/ParagraphPanel.vue.d.ts +0 -3
  82. package/dist/components/features/emailBuilder/panels/RowColumnPanel.vue.d.ts +0 -13
  83. package/dist/components/features/emailBuilder/panels/RowPanel.vue.d.ts +0 -13
  84. package/dist/components/features/emailBuilder/panels/RowSpacerPanel.vue.d.ts +0 -13
  85. package/dist/components/features/emailBuilder/panels/SocialsPanel.vue.d.ts +0 -3
  86. package/dist/components/features/emailBuilder/panels/SpacerPanel.vue.d.ts +0 -3
  87. package/dist/components/features/emailBuilder/panels/VideoPanel.vue.d.ts +0 -3
  88. package/dist/components/features/emailBuilder/panels/shared/DeviceTabs.vue.d.ts +0 -19
  89. package/dist/components/features/emailBuilder/panels/shared/LinkFieldMergeTags.vue.d.ts +0 -31
  90. package/dist/components/features/emailBuilder/panels/shared/OverrideBadge.vue.d.ts +0 -9
  91. package/dist/components/features/emailBuilder/panels/shared/PreviewBadge.vue.d.ts +0 -11
  92. package/dist/components/features/emailBuilder/panels/shared/TextFieldMergeTags.vue.d.ts +0 -25
  93. package/dist/components/features/emailBuilder/panels/ui/BoxStylingSection.vue.d.ts +0 -7
  94. package/dist/components/features/emailBuilder/panels/ui/PropertyAlignment.vue.d.ts +0 -30
  95. package/dist/components/features/emailBuilder/panels/ui/PropertyColor.vue.d.ts +0 -75
  96. package/dist/components/features/emailBuilder/panels/ui/PropertyGradientColor.vue.d.ts +0 -27
  97. package/dist/components/features/emailBuilder/panels/ui/PropertyNumberSlider.vue.d.ts +0 -74
  98. package/dist/components/features/emailBuilder/panels/ui/PropertySection.vue.d.ts +0 -17
  99. package/dist/components/features/emailBuilder/panels/ui/PropertySelect.vue.d.ts +0 -74
  100. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStyle.vue.d.ts +0 -52
  101. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStylePanel.vue.d.ts +0 -72
  102. package/dist/components/features/emailBuilder/panels/ui/PropertyToggle.vue.d.ts +0 -45
  103. package/dist/components/features/emailBuilder/panels/ui/PropertyVisibility.vue.d.ts +0 -32
  104. package/dist/components/features/emailBuilder/panels/ui/SpacingControl.vue.d.ts +0 -19
  105. package/dist/components/features/emailBuilder/panels/ui/color-picker/AlphaSlider.vue.d.ts +0 -28
  106. package/dist/components/features/emailBuilder/panels/ui/color-picker/ColorPickerPanel.vue.d.ts +0 -31
  107. package/dist/components/features/emailBuilder/panels/ui/color-picker/HueSlider.vue.d.ts +0 -19
  108. package/dist/components/features/emailBuilder/panels/ui/color-picker/RecentColors.vue.d.ts +0 -20
  109. package/dist/components/features/emailBuilder/panels/ui/color-picker/SVPanel.vue.d.ts +0 -39
  110. package/dist/components/features/emailBuilder/panels/ui/visibility-rule/Rule.vue.d.ts +0 -28
  111. package/dist/components/features/emailBuilder/preview/PreviewScreen.vue.d.ts +0 -7
  112. package/dist/components/features/emailBuilder/preview/ui/PreviewCanvas.vue.d.ts +0 -10
  113. package/dist/components/features/emailBuilder/preview/ui/PreviewCapabilityBadges.vue.d.ts +0 -12
  114. package/dist/components/features/emailBuilder/preview/ui/PreviewClientCard.vue.d.ts +0 -20
  115. package/dist/components/features/emailBuilder/preview/ui/PreviewClientList.vue.d.ts +0 -21
  116. package/dist/components/features/emailBuilder/preview/ui/PreviewClientPicker.vue.d.ts +0 -16
  117. package/dist/components/features/emailBuilder/preview/ui/PreviewComponent.vue.d.ts +0 -10
  118. package/dist/components/features/emailBuilder/preview/ui/PreviewDetailView.vue.d.ts +0 -41
  119. package/dist/components/features/emailBuilder/preview/ui/PreviewRendered.vue.d.ts +0 -8
  120. package/dist/components/features/emailBuilder/product/RowPreview.vue.d.ts +0 -8
  121. package/dist/components/features/emailBuilder/product/RowPreviewChildren.vue.d.ts +0 -14
  122. package/dist/components/features/emailBuilder/product/RowPreviewLegacyComponent.vue.d.ts +0 -14
  123. package/dist/components/features/emailBuilder/product/RowPreviewRow.vue.d.ts +0 -9
  124. package/dist/components/features/emailBuilder/product/SavedRowsPanel.vue.d.ts +0 -3
  125. package/dist/components/features/emailBuilder/product/SavedTemplatesPanel.vue.d.ts +0 -13
  126. package/dist/components/features/emailBuilder/product/VersionHistoryPanel.vue.d.ts +0 -14
  127. package/dist/components/features/emailBuilder/sidebar/SidebarBlockButton.vue.d.ts +0 -35
  128. package/dist/components/features/emailBuilder/tabs/GeneralTab.vue.d.ts +0 -3
  129. package/dist/components/features/emailBuilder/tabs/LayoutTab.vue.d.ts +0 -3
  130. package/dist/components/features/emailBuilder/tabs/content/ContentTab.vue.d.ts +0 -3
  131. package/dist/components/features/emailBuilder/tabs/content/LayersPanel.vue.d.ts +0 -7
  132. package/dist/components/features/emailBuilder/tabs/general/MergeTagsTab.vue.d.ts +0 -3
  133. package/dist/components/features/emailBuilder/tabs/general/StylesTab.vue.d.ts +0 -3
  134. package/dist/components/features/emailBuilder/tabs/general/VisibilityTab.vue.d.ts +0 -3
  135. package/dist/components/features/emailBuilder/tabs/general/VisibilityWrapESPTab.vue.d.ts +0 -3
  136. package/dist/components/features/emailBuilder/tabs/general/merge-tags/LinkTagTab.vue.d.ts +0 -3
  137. package/dist/components/features/emailBuilder/tabs/general/merge-tags/MergeTagTab.vue.d.ts +0 -3
  138. package/dist/components/features/emailBuilder/ui/LinkInputDialog.vue.d.ts +0 -17
  139. package/dist/components/features/emailBuilder/ui/canvas/CanvasRowDropZone.vue.d.ts +0 -12
  140. package/dist/components/features/emailBuilder/ui/canvas/DropZone.vue.d.ts +0 -10
  141. package/dist/components/features/emailBuilder/ui/canvas/Loader.vue.d.ts +0 -19
  142. package/dist/components/features/emailBuilder/ui/layers-panel/ComponentIcon.vue.d.ts +0 -7
  143. package/dist/components/features/emailBuilder/ui/layers-panel/LayerColumnChildren.vue.d.ts +0 -42
  144. package/dist/components/features/emailBuilder/ui/layers-panel/LayerDropLine.vue.d.ts +0 -8
  145. package/dist/components/features/emailBuilder/ui/renderers/AnchorRenderer.vue.d.ts +0 -10
  146. package/dist/components/features/emailBuilder/ui/renderers/DividerRenderer.vue.d.ts +0 -10
  147. package/dist/components/features/emailBuilder/ui/renderers/HeadingRenderer.vue.d.ts +0 -10
  148. package/dist/components/features/emailBuilder/ui/renderers/ImageRenderer.vue.d.ts +0 -10
  149. package/dist/components/features/emailBuilder/ui/renderers/ListRenderer.vue.d.ts +0 -10
  150. package/dist/components/features/emailBuilder/ui/renderers/MenuRenderer.vue.d.ts +0 -10
  151. package/dist/components/features/emailBuilder/ui/renderers/ParagraphRenderer.vue.d.ts +0 -10
  152. package/dist/components/features/emailBuilder/ui/renderers/SocialsRenderer.vue.d.ts +0 -10
  153. package/dist/components/features/emailBuilder/ui/renderers/SpacerRenderer.vue.d.ts +0 -10
  154. package/dist/components/features/emailBuilder/ui/renderers/VideoRenderer.vue.d.ts +0 -10
  155. package/dist/components/features/emailBuilder/ui/rich-text-editor/RichTextEditor.vue.d.ts +0 -12
  156. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/MergeTagPicker.vue.d.ts +0 -18
  157. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/RichTextColorPicker.vue.d.ts +0 -15
  158. package/dist/components/features/emailBuilder/ui/visibility/SupportBadge.vue.d.ts +0 -10
  159. package/dist/components/features/emailBuilder/ui/visibility/VisibilityPopover.vue.d.ts +0 -45
  160. package/dist/components/ui/ConfirmDialog.vue.d.ts +0 -3
  161. package/dist/components/ui/Icon.vue.d.ts +0 -33
  162. package/dist/components/ui/InfoDialog.vue.d.ts +0 -12
  163. package/dist/components/ui/Loading.vue.d.ts +0 -6
  164. package/dist/components/ui/ShadowSafeToast.vue.d.ts +0 -3
  165. package/dist/components/ui/primitives/Button.vue.d.ts +0 -23
  166. package/dist/components/ui/primitives/DatePicker.vue.d.ts +0 -16
  167. package/dist/components/ui/primitives/Dialog.vue.d.ts +0 -34
  168. package/dist/components/ui/primitives/InputText.vue.d.ts +0 -29
  169. package/dist/components/ui/primitives/Message.vue.d.ts +0 -20
  170. package/dist/components/ui/primitives/Select.vue.d.ts +0 -22
  171. package/dist/composables/emailBuilder/components/useComponentStyleEditor.d.ts +0 -72
  172. package/dist/composables/emailBuilder/components/useProductRowActions.d.ts +0 -3
  173. package/dist/composables/emailBuilder/components/useProductRows.d.ts +0 -59
  174. package/dist/composables/emailBuilder/components/useSystemRows.d.ts +0 -22
  175. package/dist/composables/emailBuilder/core/config/componentConfig.d.ts +0 -29
  176. package/dist/composables/emailBuilder/core/link-tags/useLinkTagInsert.d.ts +0 -13
  177. package/dist/composables/emailBuilder/core/merge-tags/mergeTagDefinitions.d.ts +0 -64
  178. package/dist/composables/emailBuilder/core/merge-tags/resolveMergeTags.d.ts +0 -27
  179. package/dist/composables/emailBuilder/core/ui/useLayerHoverScroll.d.ts +0 -20
  180. package/dist/composables/emailBuilder/core/ui/useLayoutDrag.d.ts +0 -85
  181. package/dist/composables/emailBuilder/core/ui/useRichTextEditors.d.ts +0 -6
  182. package/dist/composables/emailBuilder/core/ui/visibilityBadgeHelpers.d.ts +0 -22
  183. package/dist/composables/emailBuilder/core/useEmailBuilder.d.ts +0 -292
  184. package/dist/composables/emailBuilder/core/useEmailBuilderDefault.d.ts +0 -507
  185. package/dist/composables/emailBuilder/core/useEmailBuilderOperations.d.ts +0 -31
  186. package/dist/composables/emailBuilder/core/useEmailBuilderVisibility.d.ts +0 -31
  187. package/dist/composables/emailBuilder/export/actions/download.d.ts +0 -24
  188. package/dist/composables/emailBuilder/export/generators/html.d.ts +0 -3
  189. package/dist/composables/emailBuilder/export/generators/mjml.d.ts +0 -6
  190. package/dist/composables/emailBuilder/export/generators/react-email.d.ts +0 -61
  191. package/dist/composables/emailBuilder/export/helpers/generatorHelpers.d.ts +0 -53
  192. package/dist/composables/emailBuilder/export/logic/reactLogicWrapper.d.ts +0 -31
  193. package/dist/composables/emailBuilder/export/merge-tags/mergeTagMapper.d.ts +0 -42
  194. package/dist/composables/emailBuilder/export/merge-tags/reactMergeTagMapper.d.ts +0 -26
  195. package/dist/composables/emailBuilder/export/shared/containers.d.ts +0 -18
  196. package/dist/composables/emailBuilder/export/shared/styles.d.ts +0 -12
  197. package/dist/composables/emailBuilder/export/shared/tagIdentifier.d.ts +0 -1
  198. package/dist/composables/emailBuilder/export/targets/htmlExport.d.ts +0 -20
  199. package/dist/composables/emailBuilder/export/targets/jsonExport.d.ts +0 -28
  200. package/dist/composables/emailBuilder/export/targets/mjmlExport.d.ts +0 -19
  201. package/dist/composables/emailBuilder/export/targets/reactEmailExport.d.ts +0 -20
  202. package/dist/composables/emailBuilder/export/targets/templateSnapshot.d.ts +0 -24
  203. package/dist/composables/emailBuilder/export/transformers/espWrapper.d.ts +0 -2
  204. package/dist/composables/emailBuilder/export/transformers/formatting.d.ts +0 -3
  205. package/dist/composables/emailBuilder/export/transformers/minify.d.ts +0 -33
  206. package/dist/composables/emailBuilder/export/transformers/tagMapper.d.ts +0 -29
  207. package/dist/composables/emailBuilder/export/types/export.d.ts +0 -24
  208. package/dist/composables/emailBuilder/export/useEmailExportEngine.d.ts +0 -63
  209. package/dist/composables/emailBuilder/export/useEmailExportMobileStyles.d.ts +0 -3
  210. package/dist/composables/emailBuilder/export/useExportSettings.d.ts +0 -5
  211. package/dist/composables/emailBuilder/health/accessibilityChecker.d.ts +0 -64
  212. package/dist/composables/emailBuilder/health/healthIndicator.d.ts +0 -19
  213. package/dist/composables/emailBuilder/history/useEmailBuilderHistory.d.ts +0 -26
  214. package/dist/composables/emailBuilder/history/useHistory.d.ts +0 -16
  215. package/dist/composables/emailBuilder/preview/useClientPreview.d.ts +0 -127
  216. package/dist/composables/emailBuilder/transform/pipeline/hydrate.d.ts +0 -54
  217. package/dist/composables/emailBuilder/types/emailBuilder.d.ts +0 -79
  218. package/dist/composables/system/useColor.d.ts +0 -26
  219. package/dist/composables/system/useDeviceDetection.d.ts +0 -5
  220. package/dist/composables/system/useGoogleFonts.d.ts +0 -11
  221. package/dist/composables/system/useImageUpload.d.ts +0 -23
  222. package/dist/composables/system/useSavedRowsPanel.d.ts +0 -35
  223. package/dist/composables/ui/useConfirm.d.ts +0 -33
  224. package/dist/composables/ui/useInfoDialog.d.ts +0 -22
  225. package/dist/composables/ui/useTeleportTarget.d.ts +0 -49
  226. package/dist/composables/ui/useToast.d.ts +0 -32
  227. package/dist/devStyleMirror.d.ts +0 -20
  228. package/dist/documentScopedStyles.d.ts +0 -39
  229. package/dist/element-Dq6bmt2l.js +0 -48454
  230. package/dist/estree-DY9POgc0.js +0 -8195
  231. package/dist/html-wb0gSX1o.js +0 -7273
  232. package/dist/lightDom.d.ts +0 -30
  233. package/dist/shadowStyles.d.ts +0 -8
  234. package/dist/standalone-DHvJ30Td.js +0 -3554
  235. package/dist/utils/generateId.d.ts +0 -1
  236. package/dist/utils/shadowDom.d.ts +0 -30
  237. package/dist/vue.runtime.esm-bundler-CsdyQceJ.js +0 -6118
@@ -1,3554 +0,0 @@
1
- var Lt = Object.defineProperty, $e = (e, u) => {
2
- for (var t in u) Lt(e, t, {
3
- get: u[t],
4
- enumerable: !0
5
- });
6
- }, $t = {};
7
- $e($t, {
8
- __debug: () => Ti,
9
- check: () => _i,
10
- doc: () => St,
11
- format: () => Tt,
12
- formatWithCursor: () => Ot,
13
- getSupportInfo: () => Oi,
14
- util: () => xt,
15
- version: () => Di
16
- });
17
- var le = (e, u) => (t, r, ...n) => t | 1 && r == null ? void 0 : (u.call(r) ?? r[e]).apply(r, n), Rt = String.prototype.replaceAll ?? function(e, u) {
18
- return e.global ? this.replace(e, u) : this.split(e).join(u);
19
- }, Ce = le("replaceAll", function() {
20
- if (typeof this == "string") return Rt;
21
- }), Mt = class {
22
- diff(e, u, t = {}) {
23
- let r;
24
- typeof t == "function" ? (r = t, t = {}) : "callback" in t && (r = t.callback);
25
- let n = this.castInput(e, t), D = this.castInput(u, t), i = this.removeEmpty(this.tokenize(n, t)), o = this.removeEmpty(this.tokenize(D, t));
26
- return this.diffWithOptionsObj(i, o, t, r);
27
- }
28
- diffWithOptionsObj(e, u, t, r) {
29
- var n;
30
- let D = (C) => {
31
- if (C = this.postProcess(C, t), r) {
32
- setTimeout(function() {
33
- r(C);
34
- }, 0);
35
- return;
36
- } else return C;
37
- }, i = u.length, o = e.length, a = 1, s = i + o;
38
- t.maxEditLength != null && (s = Math.min(s, t.maxEditLength));
39
- let l = (n = t.timeout) !== null && n !== void 0 ? n : 1 / 0, F = Date.now() + l, c = [{
40
- oldPos: -1,
41
- lastComponent: void 0
42
- }], d = this.extractCommon(c[0], u, e, 0, t);
43
- if (c[0].oldPos + 1 >= o && d + 1 >= i) return D(this.buildValues(c[0].lastComponent, u, e));
44
- let f = -1 / 0, h = 1 / 0, p = () => {
45
- for (let C = Math.max(f, -a); C <= Math.min(h, a); C += 2) {
46
- let E, m = c[C - 1], g = c[C + 1];
47
- m && (c[C - 1] = void 0);
48
- let B = !1;
49
- if (g) {
50
- let b = g.oldPos - C;
51
- B = g && 0 <= b && b < i;
52
- }
53
- let A = m && m.oldPos + 1 < o;
54
- if (!B && !A) {
55
- c[C] = void 0;
56
- continue;
57
- }
58
- if (!A || B && m.oldPos < g.oldPos ? E = this.addToPath(g, !0, !1, 0, t) : E = this.addToPath(m, !1, !0, 1, t), d = this.extractCommon(E, u, e, C, t), E.oldPos + 1 >= o && d + 1 >= i) return D(this.buildValues(E.lastComponent, u, e)) || !0;
59
- c[C] = E, E.oldPos + 1 >= o && (h = Math.min(h, C - 1)), d + 1 >= i && (f = Math.max(f, C + 1));
60
- }
61
- a++;
62
- };
63
- if (r) (function C() {
64
- setTimeout(function() {
65
- if (a > s || Date.now() > F) return r(void 0);
66
- p() || C();
67
- }, 0);
68
- })();
69
- else for (; a <= s && Date.now() <= F; ) {
70
- let C = p();
71
- if (C) return C;
72
- }
73
- }
74
- addToPath(e, u, t, r, n) {
75
- let D = e.lastComponent;
76
- return D && !n.oneChangePerToken && D.added === u && D.removed === t ? {
77
- oldPos: e.oldPos + r,
78
- lastComponent: {
79
- count: D.count + 1,
80
- added: u,
81
- removed: t,
82
- previousComponent: D.previousComponent
83
- }
84
- } : {
85
- oldPos: e.oldPos + r,
86
- lastComponent: {
87
- count: 1,
88
- added: u,
89
- removed: t,
90
- previousComponent: D
91
- }
92
- };
93
- }
94
- extractCommon(e, u, t, r, n) {
95
- let D = u.length, i = t.length, o = e.oldPos, a = o - r, s = 0;
96
- for (; a + 1 < D && o + 1 < i && this.equals(t[o + 1], u[a + 1], n); ) a++, o++, s++, n.oneChangePerToken && (e.lastComponent = {
97
- count: 1,
98
- previousComponent: e.lastComponent,
99
- added: !1,
100
- removed: !1
101
- });
102
- return s && !n.oneChangePerToken && (e.lastComponent = {
103
- count: s,
104
- previousComponent: e.lastComponent,
105
- added: !1,
106
- removed: !1
107
- }), e.oldPos = o, a;
108
- }
109
- equals(e, u, t) {
110
- return t.comparator ? t.comparator(e, u) : e === u || !!t.ignoreCase && e.toLowerCase() === u.toLowerCase();
111
- }
112
- removeEmpty(e) {
113
- let u = [];
114
- for (let t = 0; t < e.length; t++) e[t] && u.push(e[t]);
115
- return u;
116
- }
117
- castInput(e, u) {
118
- return e;
119
- }
120
- tokenize(e, u) {
121
- return Array.from(e);
122
- }
123
- join(e) {
124
- return e.join("");
125
- }
126
- postProcess(e, u) {
127
- return e;
128
- }
129
- get useLongestToken() {
130
- return !1;
131
- }
132
- buildValues(e, u, t) {
133
- let r = [], n;
134
- for (; e; ) r.push(e), n = e.previousComponent, delete e.previousComponent, e = n;
135
- r.reverse();
136
- let D = r.length, i = 0, o = 0, a = 0;
137
- for (; i < D; i++) {
138
- let s = r[i];
139
- if (s.removed) s.value = this.join(t.slice(a, a + s.count)), a += s.count;
140
- else {
141
- if (!s.added && this.useLongestToken) {
142
- let l = u.slice(o, o + s.count);
143
- l = l.map(function(F, c) {
144
- let d = t[a + c];
145
- return d.length > F.length ? d : F;
146
- }), s.value = this.join(l);
147
- } else s.value = this.join(u.slice(o, o + s.count));
148
- o += s.count, s.added || (a += s.count);
149
- }
150
- }
151
- return r;
152
- }
153
- }, Vt = class extends Mt {
154
- tokenize(e) {
155
- return e.slice();
156
- }
157
- join(e) {
158
- return e;
159
- }
160
- removeEmpty(e) {
161
- return e;
162
- }
163
- }, Wt = new Vt();
164
- function Kt(e, u, t) {
165
- return Wt.diff(e, u, t);
166
- }
167
- var zt = () => {
168
- }, U = zt, Nu = "cr", _u = "crlf", Ut = "lf", Re = "\r", Ou = `\r
169
- `, Ee = `
170
- `, Jt = Ee;
171
- function qt(e) {
172
- let u = e.indexOf(Re);
173
- return u !== -1 ? e.charAt(u + 1) === Ee ? _u : Nu : Ut;
174
- }
175
- function Me(e) {
176
- return e === Nu ? Re : e === _u ? Ou : Jt;
177
- }
178
- var Gt = /* @__PURE__ */ new Map([
179
- [Ee, /\n/g],
180
- [Re, /\r/g],
181
- [Ou, /\r\n/g]
182
- ]);
183
- function Tu(e, u) {
184
- let t = Gt.get(u);
185
- return e.match(t)?.length ?? 0;
186
- }
187
- var Ht = /\r\n?/g;
188
- function Yt(e) {
189
- return Ce(0, e, Ht, Ee);
190
- }
191
- var me = /* @__PURE__ */ Symbol.for("comments");
192
- function Zt(e) {
193
- return this[e < 0 ? this.length + e : e];
194
- }
195
- var y = le("at", function() {
196
- if (Array.isArray(this) || typeof this == "string") return Zt;
197
- }), X = "string", L = "array", q = "cursor", $ = "indent", R = "align", M = "trim", w = "group", T = "fill", k = "if-break", V = "indent-if-break", W = "line-suffix", K = "line-suffix-boundary", v = "line", I = "label", x = "break-parent", Iu = /* @__PURE__ */ new Set([
198
- q,
199
- $,
200
- R,
201
- M,
202
- w,
203
- T,
204
- k,
205
- V,
206
- W,
207
- K,
208
- v,
209
- I,
210
- x
211
- ]);
212
- function Qt(e) {
213
- let u = e.length;
214
- for (; u > 0 && (e[u - 1] === "\r" || e[u - 1] === `
215
- `); ) u--;
216
- return u < e.length ? e.slice(0, u) : e;
217
- }
218
- function Ve(e, u, t) {
219
- if (!e.has(u)) {
220
- let r = t(u);
221
- e.set(u, r);
222
- }
223
- return e.get(u);
224
- }
225
- function Xt(e) {
226
- if (typeof e == "string") return X;
227
- if (Array.isArray(e)) return L;
228
- if (!e) return;
229
- let { type: u } = e;
230
- if (Iu.has(u)) return u;
231
- }
232
- var ee = Xt, er = (e) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e);
233
- function ur(e) {
234
- let u = e === null ? "null" : typeof e;
235
- if (u !== "string" && u !== "object") return `Unexpected doc '${u}',
236
- Expected it to be 'string' or 'object'.`;
237
- if (ee(e)) throw new Error("doc is valid.");
238
- let t = Object.prototype.toString.call(e);
239
- if (t !== "[object Object]") return `Unexpected doc '${t}'.`;
240
- let r = er([...Iu].map((n) => `'${n}'`));
241
- return `Unexpected doc.type '${e.type}'.
242
- Expected it to be ${r}.`;
243
- }
244
- var tr = class extends Error {
245
- name = "InvalidDocError";
246
- constructor(e) {
247
- super(ur(e)), this.doc = e;
248
- }
249
- }, ne = tr, ru = {};
250
- function rr(e, u, t, r) {
251
- let n = [e];
252
- for (; n.length > 0; ) {
253
- let D = n.pop();
254
- if (D === ru) {
255
- t(n.pop());
256
- continue;
257
- }
258
- t && n.push(D, ru);
259
- let i = ee(D);
260
- if (!i) throw new ne(D);
261
- if (u?.(D) !== !1) switch (i) {
262
- case L:
263
- case T: {
264
- let o = i === L ? D : D.parts;
265
- for (let a = o.length - 1; a >= 0; --a) n.push(o[a]);
266
- break;
267
- }
268
- case k:
269
- n.push(D.flatContents, D.breakContents);
270
- break;
271
- case w:
272
- if (r && D.expandedStates) for (let o = D.expandedStates.length, a = o - 1; a >= 0; --a) n.push(D.expandedStates[a]);
273
- else n.push(D.contents);
274
- break;
275
- case R:
276
- case $:
277
- case V:
278
- case I:
279
- case W:
280
- n.push(D.contents);
281
- break;
282
- case X:
283
- case q:
284
- case M:
285
- case K:
286
- case v:
287
- case x:
288
- break;
289
- default:
290
- throw new ne(D);
291
- }
292
- }
293
- }
294
- var We = rr;
295
- function ge(e, u) {
296
- if (typeof e == "string") return u(e);
297
- let t = /* @__PURE__ */ new Map();
298
- return r(e);
299
- function r(D) {
300
- return Ve(t, D, n);
301
- }
302
- function n(D) {
303
- switch (ee(D)) {
304
- case L:
305
- return u(D.map(r));
306
- case T:
307
- return u({
308
- ...D,
309
- parts: D.parts.map(r)
310
- });
311
- case k:
312
- return u({
313
- ...D,
314
- breakContents: r(D.breakContents),
315
- flatContents: r(D.flatContents)
316
- });
317
- case w: {
318
- let { expandedStates: i, contents: o } = D;
319
- return i ? (i = i.map(r), o = i[0]) : o = r(o), u({
320
- ...D,
321
- contents: o,
322
- expandedStates: i
323
- });
324
- }
325
- case R:
326
- case $:
327
- case V:
328
- case I:
329
- case W:
330
- return u({
331
- ...D,
332
- contents: r(D.contents)
333
- });
334
- case X:
335
- case q:
336
- case M:
337
- case K:
338
- case v:
339
- case x:
340
- return u(D);
341
- default:
342
- throw new ne(D);
343
- }
344
- }
345
- }
346
- function Ke(e, u, t) {
347
- let r = t, n = !1;
348
- function D(i) {
349
- if (n) return !1;
350
- let o = u(i);
351
- o !== void 0 && (n = !0, r = o);
352
- }
353
- return We(e, D), r;
354
- }
355
- function nr(e) {
356
- if (e.type === w && e.break || e.type === v && e.hard || e.type === x) return !0;
357
- }
358
- function Dr(e) {
359
- return Ke(e, nr, !1);
360
- }
361
- function nu(e) {
362
- if (e.length > 0) {
363
- let u = y(0, e, -1);
364
- !u.expandedStates && !u.break && (u.break = "propagated");
365
- }
366
- return null;
367
- }
368
- function ir(e) {
369
- let u = /* @__PURE__ */ new Set(), t = [];
370
- function r(D) {
371
- if (D.type === x && nu(t), D.type === w) {
372
- if (t.push(D), u.has(D)) return !1;
373
- u.add(D);
374
- }
375
- }
376
- function n(D) {
377
- D.type === w && t.pop().break && nu(t);
378
- }
379
- We(e, r, n, !0);
380
- }
381
- function ar(e) {
382
- return e.type === v && !e.hard ? e.soft ? "" : " " : e.type === k ? e.flatContents : e;
383
- }
384
- function or(e) {
385
- return ge(e, ar);
386
- }
387
- function Du(e) {
388
- for (e = [...e]; e.length >= 2 && y(0, e, -2).type === v && y(0, e, -1).type === x; ) e.length -= 2;
389
- if (e.length > 0) {
390
- let u = ae(y(0, e, -1));
391
- e[e.length - 1] = u;
392
- }
393
- return e;
394
- }
395
- function ae(e) {
396
- switch (ee(e)) {
397
- case $:
398
- case V:
399
- case w:
400
- case W:
401
- case I: {
402
- let u = ae(e.contents);
403
- return {
404
- ...e,
405
- contents: u
406
- };
407
- }
408
- case k:
409
- return {
410
- ...e,
411
- breakContents: ae(e.breakContents),
412
- flatContents: ae(e.flatContents)
413
- };
414
- case T:
415
- return {
416
- ...e,
417
- parts: Du(e.parts)
418
- };
419
- case L:
420
- return Du(e);
421
- case X:
422
- return Qt(e);
423
- case R:
424
- case q:
425
- case M:
426
- case K:
427
- case v:
428
- case x:
429
- break;
430
- default:
431
- throw new ne(e);
432
- }
433
- return e;
434
- }
435
- function Pu(e) {
436
- return ae(lr(e));
437
- }
438
- function sr(e) {
439
- switch (ee(e)) {
440
- case T: {
441
- let { parts: u } = e;
442
- if (u.every((t) => t === "")) return "";
443
- if (u.length === 1) return u[0];
444
- break;
445
- }
446
- case w:
447
- if (!e.contents && !e.id && !e.break && !e.expandedStates) return "";
448
- if (e.contents.type === w && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents;
449
- break;
450
- case R:
451
- case $:
452
- case V:
453
- case W:
454
- if (!e.contents) return "";
455
- break;
456
- case k:
457
- if (!e.flatContents && !e.breakContents) return "";
458
- break;
459
- case L: {
460
- let u = [];
461
- for (let t of e) {
462
- if (!t) continue;
463
- let [r, ...n] = Array.isArray(t) ? t : [t];
464
- typeof r == "string" && typeof y(0, u, -1) == "string" ? u[u.length - 1] += r : u.push(r), u.push(...n);
465
- }
466
- return u.length === 0 ? "" : u.length === 1 ? u[0] : u;
467
- }
468
- case X:
469
- case q:
470
- case M:
471
- case K:
472
- case v:
473
- case I:
474
- case x:
475
- break;
476
- default:
477
- throw new ne(e);
478
- }
479
- return e;
480
- }
481
- function lr(e) {
482
- return ge(e, (u) => sr(u));
483
- }
484
- function cr(e, u = Ku) {
485
- return ge(e, (t) => typeof t == "string" ? Mu(u, t.split(`
486
- `)) : t);
487
- }
488
- function Fr(e) {
489
- if (e.type === v) return !0;
490
- }
491
- function fr(e) {
492
- return Ke(e, Fr, !1);
493
- }
494
- function de(e, u) {
495
- return e.type === I ? {
496
- ...e,
497
- contents: u(e.contents)
498
- } : u(e);
499
- }
500
- var O = U, ju = U, dr = U, pr = U;
501
- function he(e) {
502
- return O(e), {
503
- type: $,
504
- contents: e
505
- };
506
- }
507
- function De(e, u) {
508
- return pr(e), O(u), {
509
- type: R,
510
- contents: u,
511
- n: e
512
- };
513
- }
514
- function hr(e) {
515
- return De(Number.NEGATIVE_INFINITY, e);
516
- }
517
- function Lu(e) {
518
- return De({ type: "root" }, e);
519
- }
520
- function Cr(e) {
521
- return De(-1, e);
522
- }
523
- function $u(e, u, t) {
524
- O(e);
525
- let r = e;
526
- if (u > 0) {
527
- for (let n = 0; n < Math.floor(u / t); ++n) r = he(r);
528
- r = De(u % t, r), r = De(Number.NEGATIVE_INFINITY, r);
529
- }
530
- return r;
531
- }
532
- var ye = { type: x }, Z = { type: q };
533
- function Er(e) {
534
- return dr(e), {
535
- type: T,
536
- parts: e
537
- };
538
- }
539
- function Ru(e, u = {}) {
540
- return O(e), ju(u.expandedStates, !0), {
541
- type: w,
542
- id: u.id,
543
- contents: e,
544
- break: !!u.shouldBreak,
545
- expandedStates: u.expandedStates
546
- };
547
- }
548
- function mr(e, u) {
549
- return Ru(e[0], {
550
- ...u,
551
- expandedStates: e
552
- });
553
- }
554
- function gr(e, u = "", t = {}) {
555
- return O(e), u !== "" && O(u), {
556
- type: k,
557
- breakContents: e,
558
- flatContents: u,
559
- groupId: t.groupId
560
- };
561
- }
562
- function yr(e, u) {
563
- return O(e), {
564
- type: V,
565
- contents: e,
566
- groupId: u.groupId,
567
- negate: u.negate
568
- };
569
- }
570
- function Mu(e, u) {
571
- O(e), ju(u);
572
- let t = [];
573
- for (let r = 0; r < u.length; r++) r !== 0 && t.push(e), t.push(u[r]);
574
- return t;
575
- }
576
- function vr(e, u) {
577
- return O(u), e ? {
578
- type: I,
579
- label: e,
580
- contents: u
581
- } : u;
582
- }
583
- var Vu = { type: v }, Br = {
584
- type: v,
585
- soft: !0
586
- }, ze = {
587
- type: v,
588
- hard: !0
589
- }, j = [ze, ye], Wu = {
590
- type: v,
591
- hard: !0,
592
- literal: !0
593
- }, Ku = [Wu, ye];
594
- function Ie(e) {
595
- return O(e), {
596
- type: W,
597
- contents: e
598
- };
599
- }
600
- var Ar = { type: K }, br = { type: M };
601
- function P(e) {
602
- if (!e) return "";
603
- if (Array.isArray(e)) {
604
- let u = [];
605
- for (let t of e) if (Array.isArray(t)) u.push(...P(t));
606
- else {
607
- let r = P(t);
608
- r !== "" && u.push(r);
609
- }
610
- return u;
611
- }
612
- return e.type === k ? {
613
- ...e,
614
- breakContents: P(e.breakContents),
615
- flatContents: P(e.flatContents)
616
- } : e.type === w ? {
617
- ...e,
618
- contents: P(e.contents),
619
- expandedStates: e.expandedStates?.map(P)
620
- } : e.type === T ? {
621
- type: "fill",
622
- parts: e.parts.map(P)
623
- } : e.contents ? {
624
- ...e,
625
- contents: P(e.contents)
626
- } : e;
627
- }
628
- function wr(e) {
629
- let u = /* @__PURE__ */ Object.create(null), t = /* @__PURE__ */ new Set();
630
- return r(P(e));
631
- function r(D, i, o) {
632
- if (typeof D == "string") return JSON.stringify(D);
633
- if (Array.isArray(D)) {
634
- let a = D.map(r).filter(Boolean);
635
- return a.length === 1 ? a[0] : `[${a.join(", ")}]`;
636
- }
637
- if (D.type === v) {
638
- let a = o?.[i + 1]?.type === x;
639
- return D.literal ? a ? "literalline" : "literallineWithoutBreakParent" : D.hard ? a ? "hardline" : "hardlineWithoutBreakParent" : D.soft ? "softline" : "line";
640
- }
641
- if (D.type === x) return o?.[i - 1]?.type === v && o[i - 1].hard ? void 0 : "breakParent";
642
- if (D.type === M) return "trim";
643
- if (D.type === $) return "indent(" + r(D.contents) + ")";
644
- if (D.type === R) return D.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + r(D.contents) + ")" : D.n < 0 ? "dedent(" + r(D.contents) + ")" : D.n.type === "root" ? "markAsRoot(" + r(D.contents) + ")" : "align(" + JSON.stringify(D.n) + ", " + r(D.contents) + ")";
645
- if (D.type === k) return "ifBreak(" + r(D.breakContents) + (D.flatContents ? ", " + r(D.flatContents) : "") + (D.groupId ? (D.flatContents ? "" : ', ""') + `, { groupId: ${n(D.groupId)} }` : "") + ")";
646
- if (D.type === V) {
647
- let a = [];
648
- D.negate && a.push("negate: true"), D.groupId && a.push(`groupId: ${n(D.groupId)}`);
649
- let s = a.length > 0 ? `, { ${a.join(", ")} }` : "";
650
- return `indentIfBreak(${r(D.contents)}${s})`;
651
- }
652
- if (D.type === w) {
653
- let a = [];
654
- D.break && D.break !== "propagated" && a.push("shouldBreak: true"), D.id && a.push(`id: ${n(D.id)}`);
655
- let s = a.length > 0 ? `, { ${a.join(", ")} }` : "";
656
- return D.expandedStates ? `conditionalGroup([${D.expandedStates.map((l) => r(l)).join(",")}]${s})` : `group(${r(D.contents)}${s})`;
657
- }
658
- if (D.type === T) return `fill([${D.parts.map((a) => r(a)).join(", ")}])`;
659
- if (D.type === W) return "lineSuffix(" + r(D.contents) + ")";
660
- if (D.type === K) return "lineSuffixBoundary";
661
- if (D.type === I) return `label(${JSON.stringify(D.label)}, ${r(D.contents)})`;
662
- if (D.type === q) return "cursor";
663
- throw new Error("Unknown doc type " + D.type);
664
- }
665
- function n(D) {
666
- if (typeof D != "symbol") return JSON.stringify(String(D));
667
- if (D in u) return u[D];
668
- let i = D.description || "symbol";
669
- for (let o = 0; ; o++) {
670
- let a = i + (o > 0 ? ` #${o}` : "");
671
- if (!t.has(a)) return t.add(a), u[D] = `Symbol.for(${JSON.stringify(a)})`;
672
- }
673
- }
674
- }
675
- var kr = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g, Sr = 12288, xr = 65510, Nr = [
676
- 12288,
677
- 12288,
678
- 65281,
679
- 65376,
680
- 65504,
681
- 65510
682
- ], _r = 4352, Or = 262141, zu = [
683
- 4352,
684
- 4447,
685
- 8986,
686
- 8987,
687
- 9001,
688
- 9002,
689
- 9193,
690
- 9196,
691
- 9200,
692
- 9200,
693
- 9203,
694
- 9203,
695
- 9725,
696
- 9726,
697
- 9748,
698
- 9749,
699
- 9776,
700
- 9783,
701
- 9800,
702
- 9811,
703
- 9855,
704
- 9855,
705
- 9866,
706
- 9871,
707
- 9875,
708
- 9875,
709
- 9889,
710
- 9889,
711
- 9898,
712
- 9899,
713
- 9917,
714
- 9918,
715
- 9924,
716
- 9925,
717
- 9934,
718
- 9934,
719
- 9940,
720
- 9940,
721
- 9962,
722
- 9962,
723
- 9970,
724
- 9971,
725
- 9973,
726
- 9973,
727
- 9978,
728
- 9978,
729
- 9981,
730
- 9981,
731
- 9989,
732
- 9989,
733
- 9994,
734
- 9995,
735
- 10024,
736
- 10024,
737
- 10060,
738
- 10060,
739
- 10062,
740
- 10062,
741
- 10067,
742
- 10069,
743
- 10071,
744
- 10071,
745
- 10133,
746
- 10135,
747
- 10160,
748
- 10160,
749
- 10175,
750
- 10175,
751
- 11035,
752
- 11036,
753
- 11088,
754
- 11088,
755
- 11093,
756
- 11093,
757
- 11904,
758
- 11929,
759
- 11931,
760
- 12019,
761
- 12032,
762
- 12245,
763
- 12272,
764
- 12287,
765
- 12289,
766
- 12350,
767
- 12353,
768
- 12438,
769
- 12441,
770
- 12543,
771
- 12549,
772
- 12591,
773
- 12593,
774
- 12686,
775
- 12688,
776
- 12773,
777
- 12783,
778
- 12830,
779
- 12832,
780
- 12871,
781
- 12880,
782
- 42124,
783
- 42128,
784
- 42182,
785
- 43360,
786
- 43388,
787
- 44032,
788
- 55203,
789
- 63744,
790
- 64255,
791
- 65040,
792
- 65049,
793
- 65072,
794
- 65106,
795
- 65108,
796
- 65126,
797
- 65128,
798
- 65131,
799
- 94176,
800
- 94180,
801
- 94192,
802
- 94198,
803
- 94208,
804
- 101589,
805
- 101631,
806
- 101662,
807
- 101760,
808
- 101874,
809
- 110576,
810
- 110579,
811
- 110581,
812
- 110587,
813
- 110589,
814
- 110590,
815
- 110592,
816
- 110882,
817
- 110898,
818
- 110898,
819
- 110928,
820
- 110930,
821
- 110933,
822
- 110933,
823
- 110948,
824
- 110951,
825
- 110960,
826
- 111355,
827
- 119552,
828
- 119638,
829
- 119648,
830
- 119670,
831
- 126980,
832
- 126980,
833
- 127183,
834
- 127183,
835
- 127374,
836
- 127374,
837
- 127377,
838
- 127386,
839
- 127488,
840
- 127490,
841
- 127504,
842
- 127547,
843
- 127552,
844
- 127560,
845
- 127568,
846
- 127569,
847
- 127584,
848
- 127589,
849
- 127744,
850
- 127776,
851
- 127789,
852
- 127797,
853
- 127799,
854
- 127868,
855
- 127870,
856
- 127891,
857
- 127904,
858
- 127946,
859
- 127951,
860
- 127955,
861
- 127968,
862
- 127984,
863
- 127988,
864
- 127988,
865
- 127992,
866
- 128062,
867
- 128064,
868
- 128064,
869
- 128066,
870
- 128252,
871
- 128255,
872
- 128317,
873
- 128331,
874
- 128334,
875
- 128336,
876
- 128359,
877
- 128378,
878
- 128378,
879
- 128405,
880
- 128406,
881
- 128420,
882
- 128420,
883
- 128507,
884
- 128591,
885
- 128640,
886
- 128709,
887
- 128716,
888
- 128716,
889
- 128720,
890
- 128722,
891
- 128725,
892
- 128728,
893
- 128732,
894
- 128735,
895
- 128747,
896
- 128748,
897
- 128756,
898
- 128764,
899
- 128992,
900
- 129003,
901
- 129008,
902
- 129008,
903
- 129292,
904
- 129338,
905
- 129340,
906
- 129349,
907
- 129351,
908
- 129535,
909
- 129648,
910
- 129660,
911
- 129664,
912
- 129674,
913
- 129678,
914
- 129734,
915
- 129736,
916
- 129736,
917
- 129741,
918
- 129756,
919
- 129759,
920
- 129770,
921
- 129775,
922
- 129784,
923
- 131072,
924
- 196605,
925
- 196608,
926
- 262141
927
- ], Uu = (e, u) => {
928
- let t = 0, r = Math.floor(e.length / 2) - 1;
929
- for (; t <= r; ) {
930
- let n = Math.floor((t + r) / 2), D = n * 2;
931
- if (u < e[D]) r = n - 1;
932
- else if (u > e[D + 1]) t = n + 1;
933
- else return !0;
934
- }
935
- return !1;
936
- }, iu = 19968, [Tr, Ir] = Pr(zu);
937
- function Pr(e) {
938
- let u = e[0], t = e[1];
939
- for (let r = 0; r < e.length; r += 2) {
940
- let n = e[r], D = e[r + 1];
941
- if (iu >= n && iu <= D) return [n, D];
942
- D - n > t - u && (u = n, t = D);
943
- }
944
- return [u, t];
945
- }
946
- var jr = (e) => e < Sr || e > xr ? !1 : Uu(Nr, e), Lr = (e) => e >= Tr && e <= Ir ? !0 : e < _r || e > Or ? !1 : Uu(zu, e), $r = /^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/, Rr = (e) => $r.test(e), Mr = /[^\x20-\x7F]/;
947
- function Vr(e) {
948
- if (!e) return 0;
949
- if (!Mr.test(e)) return e.length;
950
- let u = 0;
951
- e = e.replace(kr(), (t) => (u += Rr(t) ? 1 : 2, ""));
952
- for (let t of e) {
953
- let r = t.codePointAt(0);
954
- r <= 31 || r >= 127 && r <= 159 || r >= 768 && r <= 879 || r >= 65024 && r <= 65039 || (u += jr(r) || Lr(r) ? 2 : 1);
955
- }
956
- return u;
957
- }
958
- var Ue = Vr, Wr = { type: 0 }, Kr = { type: 1 }, Ju = {
959
- value: "",
960
- length: 0,
961
- queue: [],
962
- get root() {
963
- return Ju;
964
- }
965
- };
966
- function qu(e, u, t) {
967
- let r = u.type === 1 ? e.queue.slice(0, -1) : [...e.queue, u], n = "", D = 0, i = 0, o = 0;
968
- for (let f of r) switch (f.type) {
969
- case 0:
970
- l(), t.useTabs ? a(1) : s(t.tabWidth);
971
- break;
972
- case 3: {
973
- let { string: h } = f;
974
- l(), n += h, D += h.length;
975
- break;
976
- }
977
- case 2: {
978
- let { width: h } = f;
979
- i += 1, o += h;
980
- break;
981
- }
982
- default:
983
- throw new Error(`Unexpected indent comment '${f.type}'.`);
984
- }
985
- return c(), {
986
- ...e,
987
- value: n,
988
- length: D,
989
- queue: r
990
- };
991
- function a(f) {
992
- n += " ".repeat(f), D += t.tabWidth * f;
993
- }
994
- function s(f) {
995
- n += " ".repeat(f), D += f;
996
- }
997
- function l() {
998
- t.useTabs ? F() : c();
999
- }
1000
- function F() {
1001
- i > 0 && a(i), d();
1002
- }
1003
- function c() {
1004
- o > 0 && s(o), d();
1005
- }
1006
- function d() {
1007
- i = 0, o = 0;
1008
- }
1009
- }
1010
- function zr(e, u, t) {
1011
- if (!u) return e;
1012
- if (u.type === "root") return {
1013
- ...e,
1014
- root: e
1015
- };
1016
- if (u === Number.NEGATIVE_INFINITY) return e.root;
1017
- let r;
1018
- return typeof u == "number" ? u < 0 ? r = Kr : r = {
1019
- type: 2,
1020
- width: u
1021
- } : r = {
1022
- type: 3,
1023
- string: u
1024
- }, qu(e, r, t);
1025
- }
1026
- function Ur(e, u) {
1027
- return qu(e, Wr, u);
1028
- }
1029
- function Jr(e) {
1030
- let u = 0;
1031
- for (let t = e.length - 1; t >= 0; t--) {
1032
- let r = e[t];
1033
- if (r === " " || r === " ") u++;
1034
- else break;
1035
- }
1036
- return u;
1037
- }
1038
- function Gu(e) {
1039
- let u = Jr(e);
1040
- return {
1041
- text: u === 0 ? e : e.slice(0, e.length - u),
1042
- count: u
1043
- };
1044
- }
1045
- var qr = class {
1046
- #u = [];
1047
- #e = "";
1048
- #r = 0;
1049
- #n = [];
1050
- #t = [];
1051
- #D() {
1052
- let e = this.#e;
1053
- e !== "" && (this.#u.push(e), this.#r += e.length, this.#e = "");
1054
- for (let u of this.#t) this.#n.push(Math.min(u, this.#r));
1055
- this.#t.length = 0;
1056
- }
1057
- markPosition() {
1058
- if (this.#n.length + this.#t.length >= 2) throw new Error("There are too many 'cursor' in doc.");
1059
- this.#t.push(this.#r + this.#e.length);
1060
- }
1061
- write(e) {
1062
- this.#e += e;
1063
- }
1064
- trim() {
1065
- let { text: e, count: u } = Gu(this.#e);
1066
- return this.#e = e, this.#D(), u;
1067
- }
1068
- finish() {
1069
- return this.#D(), {
1070
- text: this.#u.join(""),
1071
- positions: this.#n
1072
- };
1073
- }
1074
- }, Gr = qr, S = /* @__PURE__ */ Symbol("MODE_BREAK"), N = /* @__PURE__ */ Symbol("MODE_FLAT"), Pe = /* @__PURE__ */ Symbol("DOC_FILL_PRINTED_LENGTH");
1075
- function fe(e, u, t, r, n, D) {
1076
- if (t === Number.POSITIVE_INFINITY) return !0;
1077
- let i = u.length, o = !1, a = [e], s = "";
1078
- for (; t >= 0; ) {
1079
- if (a.length === 0) {
1080
- if (i === 0) return !0;
1081
- a.push(u[--i]);
1082
- continue;
1083
- }
1084
- let { mode: l, doc: F } = a.pop(), c = ee(F);
1085
- switch (c) {
1086
- case X:
1087
- F && (o && (s += " ", t -= 1, o = !1), s += F, t -= Ue(F));
1088
- break;
1089
- case L:
1090
- case T: {
1091
- let d = c === L ? F : F.parts, f = F[Pe] ?? 0;
1092
- for (let h = d.length - 1; h >= f; h--) a.push({
1093
- mode: l,
1094
- doc: d[h]
1095
- });
1096
- break;
1097
- }
1098
- case $:
1099
- case R:
1100
- case V:
1101
- case I:
1102
- a.push({
1103
- mode: l,
1104
- doc: F.contents
1105
- });
1106
- break;
1107
- case M: {
1108
- let { text: d, count: f } = Gu(s);
1109
- s = d, t += f;
1110
- break;
1111
- }
1112
- case w: {
1113
- if (D && F.break) return !1;
1114
- let d = F.break ? S : l, f = F.expandedStates && d === S ? y(0, F.expandedStates, -1) : F.contents;
1115
- a.push({
1116
- mode: d,
1117
- doc: f
1118
- });
1119
- break;
1120
- }
1121
- case k: {
1122
- let d = (F.groupId ? n[F.groupId] || N : l) === S ? F.breakContents : F.flatContents;
1123
- d && a.push({
1124
- mode: l,
1125
- doc: d
1126
- });
1127
- break;
1128
- }
1129
- case v:
1130
- if (l === S || F.hard) return !0;
1131
- F.soft || (o = !0);
1132
- break;
1133
- case W:
1134
- r = !0;
1135
- break;
1136
- case K:
1137
- if (r) return !1;
1138
- }
1139
- }
1140
- return !1;
1141
- }
1142
- function ve(e, u) {
1143
- let t = /* @__PURE__ */ Object.create(null), r = u.printWidth, n = Me(u.endOfLine), D = 0, i = [{
1144
- indent: Ju,
1145
- mode: S,
1146
- doc: e
1147
- }], o = !1, a = [], s = new Gr();
1148
- for (ir(e); i.length > 0; ) {
1149
- let { indent: f, mode: h, doc: p } = i.pop();
1150
- switch (ee(p)) {
1151
- case X: {
1152
- let C = n !== `
1153
- ` ? Ce(0, p, `
1154
- `, n) : p;
1155
- C && (s.write(C), i.length > 0 && (D += Ue(C)));
1156
- break;
1157
- }
1158
- case L:
1159
- for (let C = p.length - 1; C >= 0; C--) i.push({
1160
- indent: f,
1161
- mode: h,
1162
- doc: p[C]
1163
- });
1164
- break;
1165
- case q:
1166
- s.markPosition();
1167
- break;
1168
- case $:
1169
- i.push({
1170
- indent: Ur(f, u),
1171
- mode: h,
1172
- doc: p.contents
1173
- });
1174
- break;
1175
- case R:
1176
- i.push({
1177
- indent: zr(f, p.n, u),
1178
- mode: h,
1179
- doc: p.contents
1180
- });
1181
- break;
1182
- case M:
1183
- D -= s.trim();
1184
- break;
1185
- case w: {
1186
- let C = (function() {
1187
- if (h === N && !o) return {
1188
- indent: f,
1189
- mode: p.break ? S : N,
1190
- doc: p.contents
1191
- };
1192
- o = !1;
1193
- let E = r - D, m = a.length > 0, g = {
1194
- indent: f,
1195
- mode: N,
1196
- doc: p.contents
1197
- };
1198
- if (!p.break && fe(g, i, E, m, t)) return g;
1199
- if (!p.expandedStates) return {
1200
- indent: f,
1201
- mode: S,
1202
- doc: p.contents
1203
- };
1204
- if (!p.break) for (let B = 1; B < p.expandedStates.length - 1; B++) {
1205
- let A = {
1206
- indent: f,
1207
- mode: N,
1208
- doc: p.expandedStates[B]
1209
- };
1210
- if (fe(A, i, E, m, t)) return A;
1211
- }
1212
- return {
1213
- indent: f,
1214
- mode: S,
1215
- doc: y(0, p.expandedStates, -1)
1216
- };
1217
- })();
1218
- i.push(C), p.id && (t[p.id] = C.mode);
1219
- break;
1220
- }
1221
- case T: {
1222
- let C = r - D, E = p[Pe] ?? 0, { parts: m } = p, g = m.length - E;
1223
- if (g === 0) break;
1224
- let B = m[E + 0], A = m[E + 1], b = {
1225
- indent: f,
1226
- mode: N,
1227
- doc: B
1228
- }, ue = {
1229
- indent: f,
1230
- mode: S,
1231
- doc: B
1232
- }, we = fe(b, [], C, a.length > 0, t, !0);
1233
- if (g === 1) {
1234
- we ? i.push(b) : i.push(ue);
1235
- break;
1236
- }
1237
- let tu = {
1238
- indent: f,
1239
- mode: N,
1240
- doc: A
1241
- }, ke = {
1242
- indent: f,
1243
- mode: S,
1244
- doc: A
1245
- };
1246
- if (g === 2) {
1247
- we ? i.push(tu, b) : i.push(ke, ue);
1248
- break;
1249
- }
1250
- let It = m[E + 2], Pt = {
1251
- indent: f,
1252
- mode: h,
1253
- doc: {
1254
- ...p,
1255
- [Pe]: E + 2
1256
- }
1257
- }, jt = fe({
1258
- indent: f,
1259
- mode: N,
1260
- doc: [
1261
- B,
1262
- A,
1263
- It
1264
- ]
1265
- }, [], C, a.length > 0, t, !0);
1266
- i.push(Pt), jt ? i.push(tu, b) : we ? i.push(ke, b) : i.push(ke, ue);
1267
- break;
1268
- }
1269
- case k:
1270
- case V: {
1271
- let C = p.groupId ? t[p.groupId] : h;
1272
- if (C === S) {
1273
- let E = p.type === k ? p.breakContents : p.negate ? p.contents : he(p.contents);
1274
- E && i.push({
1275
- indent: f,
1276
- mode: h,
1277
- doc: E
1278
- });
1279
- }
1280
- if (C === N) {
1281
- let E = p.type === k ? p.flatContents : p.negate ? he(p.contents) : p.contents;
1282
- E && i.push({
1283
- indent: f,
1284
- mode: h,
1285
- doc: E
1286
- });
1287
- }
1288
- break;
1289
- }
1290
- case W:
1291
- a.push({
1292
- indent: f,
1293
- mode: h,
1294
- doc: p.contents
1295
- });
1296
- break;
1297
- case K:
1298
- a.length > 0 && i.push({
1299
- indent: f,
1300
- mode: h,
1301
- doc: ze
1302
- });
1303
- break;
1304
- case v:
1305
- switch (h) {
1306
- case N:
1307
- if (!p.hard) {
1308
- p.soft || (s.write(" "), D += 1);
1309
- break;
1310
- }
1311
- o = !0;
1312
- case S:
1313
- if (a.length > 0) {
1314
- i.push({
1315
- indent: f,
1316
- mode: h,
1317
- doc: p
1318
- }, ...a.reverse()), a.length = 0;
1319
- break;
1320
- }
1321
- p.literal ? (s.write(n), D = 0, f.root && (f.root.value && s.write(f.root.value), D = f.root.length)) : (s.trim(), s.write(n + f.value), D = f.length);
1322
- }
1323
- break;
1324
- case I:
1325
- i.push({
1326
- indent: f,
1327
- mode: h,
1328
- doc: p.contents
1329
- });
1330
- break;
1331
- case x:
1332
- break;
1333
- default:
1334
- throw new ne(p);
1335
- }
1336
- i.length === 0 && a.length > 0 && (i.push(...a.reverse()), a.length = 0);
1337
- }
1338
- let { text: l, positions: F } = s.finish();
1339
- if (F.length !== 2) return { formatted: l };
1340
- let [c, d] = F;
1341
- return {
1342
- formatted: l,
1343
- cursorNodeStart: c,
1344
- cursorNodeText: l.slice(c, d)
1345
- };
1346
- }
1347
- function Hr(e, u, t = 0) {
1348
- let r = 0;
1349
- for (let n = t; n < e.length; ++n) e[n] === " " ? r = r + u - r % u : r++;
1350
- return r;
1351
- }
1352
- var Je = Hr, Yr = class {
1353
- constructor(e) {
1354
- this.stack = [e];
1355
- }
1356
- get key() {
1357
- let { stack: e, siblings: u } = this;
1358
- return y(0, e, u === null ? -2 : -4) ?? null;
1359
- }
1360
- get index() {
1361
- return this.siblings === null ? null : y(0, this.stack, -2);
1362
- }
1363
- get node() {
1364
- return y(0, this.stack, -1);
1365
- }
1366
- get parent() {
1367
- return this.getNode(1);
1368
- }
1369
- get grandparent() {
1370
- return this.getNode(2);
1371
- }
1372
- get isInArray() {
1373
- return this.siblings !== null;
1374
- }
1375
- get siblings() {
1376
- let { stack: e } = this, u = y(0, e, -3);
1377
- return Array.isArray(u) ? u : null;
1378
- }
1379
- get next() {
1380
- let { siblings: e } = this;
1381
- return e === null ? null : e[this.index + 1];
1382
- }
1383
- get previous() {
1384
- let { siblings: e } = this;
1385
- return e === null ? null : e[this.index - 1];
1386
- }
1387
- get isFirst() {
1388
- return this.index === 0;
1389
- }
1390
- get isLast() {
1391
- let { siblings: e, index: u } = this;
1392
- return e !== null && u === e.length - 1;
1393
- }
1394
- get isRoot() {
1395
- return this.stack.length === 1;
1396
- }
1397
- get root() {
1398
- return this.stack[0];
1399
- }
1400
- get ancestors() {
1401
- return [...this.#e()];
1402
- }
1403
- getName() {
1404
- let { stack: e } = this, { length: u } = e;
1405
- return u > 1 ? y(0, e, -2) : null;
1406
- }
1407
- getValue() {
1408
- return y(0, this.stack, -1);
1409
- }
1410
- getNode(e = 0) {
1411
- let u = this.#u(e);
1412
- return u === -1 ? null : this.stack[u];
1413
- }
1414
- getParentNode(e = 0) {
1415
- return this.getNode(e + 1);
1416
- }
1417
- #u(e) {
1418
- let { stack: u } = this;
1419
- for (let t = u.length - 1; t >= 0; t -= 2) if (!Array.isArray(u[t]) && --e < 0) return t;
1420
- return -1;
1421
- }
1422
- call(e, ...u) {
1423
- let { stack: t } = this, { length: r } = t, n = y(0, t, -1);
1424
- for (let D of u) n = n?.[D], t.push(D, n);
1425
- try {
1426
- return e(this);
1427
- } finally {
1428
- t.length = r;
1429
- }
1430
- }
1431
- callParent(e, u = 0) {
1432
- let t = this.#u(u + 1), r = this.stack.splice(t + 1);
1433
- try {
1434
- return e(this);
1435
- } finally {
1436
- this.stack.push(...r);
1437
- }
1438
- }
1439
- each(e, ...u) {
1440
- let { stack: t } = this, { length: r } = t, n = y(0, t, -1);
1441
- for (let D of u) n = n[D], t.push(D, n);
1442
- try {
1443
- for (let D = 0; D < n.length; ++D) t.push(D, n[D]), e(this, D, n), t.length -= 2;
1444
- } finally {
1445
- t.length = r;
1446
- }
1447
- }
1448
- map(e, ...u) {
1449
- let t = [];
1450
- return this.each((r, n, D) => {
1451
- t[n] = e(r, n, D);
1452
- }, ...u), t;
1453
- }
1454
- match(...e) {
1455
- let u = this.stack.length - 1, t = null, r = this.stack[u--];
1456
- for (let n of e) {
1457
- if (r === void 0) return !1;
1458
- let D = null;
1459
- if (typeof t == "number" && (D = t, t = this.stack[u--], r = this.stack[u--]), n && !n(r, t, D)) return !1;
1460
- t = this.stack[u--], r = this.stack[u--];
1461
- }
1462
- return !0;
1463
- }
1464
- findAncestor(e) {
1465
- for (let u of this.#e()) if (e(u)) return u;
1466
- }
1467
- hasAncestor(e) {
1468
- for (let u of this.#e()) if (e(u)) return !0;
1469
- return !1;
1470
- }
1471
- *#e() {
1472
- let { stack: e } = this;
1473
- for (let u = e.length - 3; u >= 0; u -= 2) {
1474
- let t = e[u];
1475
- Array.isArray(t) || (yield t);
1476
- }
1477
- }
1478
- }, Zr = Yr;
1479
- function Qr(e) {
1480
- return Array.isArray(e) && e.length > 0;
1481
- }
1482
- var Hu = Qr;
1483
- function Xr(e) {
1484
- return e !== null && typeof e == "object";
1485
- }
1486
- var qe = Xr;
1487
- function ce(e) {
1488
- return (u, t, r) => {
1489
- if (t === !1) return !1;
1490
- let n = !!r?.backwards, { length: D } = u, i = t;
1491
- for (; i >= 0 && i < D; ) {
1492
- let o = u.charAt(i);
1493
- if (e instanceof RegExp) {
1494
- if (!e.test(o)) return i;
1495
- } else if (!e.includes(o)) return i;
1496
- n ? i-- : i++;
1497
- }
1498
- return i === -1 || i === D ? i : !1;
1499
- };
1500
- }
1501
- var en = ce(/\s/), J = ce(" "), Yu = ce(",; "), Zu = ce(/[^\n\r]/), au = (e) => e === `
1502
- ` || e === "\r" || e === "\u2028" || e === "\u2029";
1503
- function un(e, u, t) {
1504
- if (u === !1) return !1;
1505
- let r = !!t?.backwards, n = e.charAt(u);
1506
- if (r) {
1507
- if (e.charAt(u - 1) === "\r" && n === `
1508
- `) return u - 2;
1509
- if (au(n)) return u - 1;
1510
- } else {
1511
- if (n === "\r" && e.charAt(u + 1) === `
1512
- `) return u + 2;
1513
- if (au(n)) return u + 1;
1514
- }
1515
- return u;
1516
- }
1517
- var Q = un;
1518
- function tn(e, u, t = {}) {
1519
- let r = J(e, t.backwards ? u - 1 : u, t);
1520
- return r !== Q(e, r, t);
1521
- }
1522
- var z = tn;
1523
- function* Be(e, u) {
1524
- let { getVisitorKeys: t, filter: r = () => !0 } = u, n = (D) => qe(D) && r(D);
1525
- for (let D of t(e)) {
1526
- let i = e[D];
1527
- if (Array.isArray(i)) for (let o of i) n(o) && (yield o);
1528
- else n(i) && (yield i);
1529
- }
1530
- }
1531
- function* rn(e, u) {
1532
- let t = [e];
1533
- for (let r = 0; r < t.length; r++) {
1534
- let n = t[r];
1535
- for (let D of Be(n, u)) yield D, t.push(D);
1536
- }
1537
- }
1538
- function nn(e, u) {
1539
- return Be(e, u).next().done;
1540
- }
1541
- function Dn(e, u, t) {
1542
- let { filter: r } = t;
1543
- if (!r) return [];
1544
- let n, D = (t.getChildren?.(e, t) ?? [...Be(e, { getVisitorKeys: t.getVisitorKeys })]).flatMap((a) => (n ?? (n = [e, ...u]), r(a, n) ? [a] : Qu(a, n, t))), { locStart: i, locEnd: o } = t;
1545
- return D.sort((a, s) => i(a) - i(s) || o(a) - o(s)), D;
1546
- }
1547
- function Qu(e, u, t) {
1548
- return Ve(t.cache, e, (r) => Dn(r, u, t));
1549
- }
1550
- var Xu = Qu;
1551
- function an(e) {
1552
- let u = e.type || e.kind || "(unknown type)", t = String(e.name || e.id && (typeof e.id == "object" ? e.id.name : e.id) || e.key && (typeof e.key == "object" ? e.key.name : e.key) || e.value && (typeof e.value == "object" ? "" : String(e.value)) || e.operator || "");
1553
- return t.length > 20 && (t = t.slice(0, 19) + "…"), u + (t ? " " + t : "");
1554
- }
1555
- function Ge(e, u) {
1556
- (e.comments ?? (e.comments = [])).push(u), u.printed = !1, u.nodeDescription = an(e);
1557
- }
1558
- function oe(e, u) {
1559
- u.leading = !0, u.trailing = !1, Ge(e, u);
1560
- }
1561
- function H(e, u, t) {
1562
- u.leading = !1, u.trailing = !1, t && (u.marker = t), Ge(e, u);
1563
- }
1564
- function se(e, u) {
1565
- u.leading = !1, u.trailing = !0, Ge(e, u);
1566
- }
1567
- var et = /* @__PURE__ */ new WeakMap();
1568
- function ut(e, u, t, r, n = []) {
1569
- let { locStart: D, locEnd: i } = t, o = D(u), a = i(u), s = Xu(e, n, {
1570
- cache: et,
1571
- locStart: D,
1572
- locEnd: i,
1573
- getVisitorKeys: t.getVisitorKeys,
1574
- filter: t.printer.canAttachComment,
1575
- getChildren: t.printer.getCommentChildNodes
1576
- }), l, F, c = 0, d = s.length;
1577
- for (; c < d; ) {
1578
- let f = c + d >> 1, h = s[f], p = D(h), C = i(h);
1579
- if (p <= o && a <= C) return ut(h, u, t, h, [h, ...n]);
1580
- if (C <= o) {
1581
- l = h, c = f + 1;
1582
- continue;
1583
- }
1584
- if (a <= p) {
1585
- F = h, d = f;
1586
- continue;
1587
- }
1588
- throw new Error("Comment location overlaps with node location");
1589
- }
1590
- if (r?.type === "TemplateLiteral") {
1591
- let { quasis: f } = r, h = xe(f, u, t);
1592
- l && xe(f, l, t) !== h && (l = null), F && xe(f, F, t) !== h && (F = null);
1593
- }
1594
- return {
1595
- enclosingNode: r,
1596
- precedingNode: l,
1597
- followingNode: F
1598
- };
1599
- }
1600
- var Se = () => !1;
1601
- function on(e, u) {
1602
- let { comments: t } = e;
1603
- if (delete e.comments, !Hu(t) || !u.printer.canAttachComment) return;
1604
- let r = [], { printer: { features: { experimental_avoidAstMutation: n }, handleComments: D = {} }, originalText: i } = u, { ownLine: o = Se, endOfLine: a = Se, remaining: s = Se } = D, l = t.map((c, d) => ({
1605
- ...ut(e, c, u),
1606
- comment: c,
1607
- text: i,
1608
- options: u,
1609
- ast: e,
1610
- isLastComment: t.length - 1 === d,
1611
- placement: void 0
1612
- })), F = !n;
1613
- for (let [c, d] of l.entries()) {
1614
- let { comment: f, precedingNode: h, enclosingNode: p, followingNode: C, text: E, options: m, ast: g, isLastComment: B } = d, A = sn(E, m, l, c) ? "ownLine" : ln(E, m, l, c) ? "endOfLine" : "remaining", b;
1615
- if (n ? (d.placement = A, b = [d]) : b = [
1616
- f,
1617
- E,
1618
- m,
1619
- g,
1620
- B
1621
- ], F && (f.enclosingNode = p, f.precedingNode = h, f.followingNode = C), f.placement = A, A === "ownLine") o(...b) || (C ? oe(C, f) : h ? se(h, f) : H(p || g, f));
1622
- else if (A === "endOfLine") a(...b) || (h ? se(h, f) : C ? oe(C, f) : H(p || g, f));
1623
- else if (!s(...b)) if (h && C) {
1624
- let ue = r.length;
1625
- ue > 0 && r[ue - 1].followingNode !== C && ou(r, m), r.push(d);
1626
- } else h ? se(h, f) : C ? oe(C, f) : H(p || g, f);
1627
- }
1628
- if (ou(r, u), F) for (let c of t) delete c.precedingNode, delete c.enclosingNode, delete c.followingNode;
1629
- }
1630
- var tt = (e) => !/[\S\n\u2028\u2029]/.test(e);
1631
- function sn(e, u, t, r) {
1632
- let { comment: n, precedingNode: D } = t[r], { locStart: i, locEnd: o } = u, a = i(n);
1633
- if (D) for (let s = r - 1; s >= 0; s--) {
1634
- let { comment: l, precedingNode: F } = t[s];
1635
- if (F !== D || !tt(e.slice(o(l), a))) break;
1636
- a = i(l);
1637
- }
1638
- return z(e, a, { backwards: !0 });
1639
- }
1640
- function ln(e, u, t, r) {
1641
- let { comment: n, followingNode: D } = t[r], { locStart: i, locEnd: o } = u, a = o(n);
1642
- if (D) for (let s = r + 1; s < t.length; s++) {
1643
- let { comment: l, followingNode: F } = t[s];
1644
- if (F !== D || !tt(e.slice(a, i(l)))) break;
1645
- a = o(l);
1646
- }
1647
- return z(e, a);
1648
- }
1649
- function ou(e, u) {
1650
- let t = e.length;
1651
- if (t === 0) return;
1652
- let { precedingNode: r, followingNode: n } = e[0], D = u.locStart(n), i;
1653
- for (i = t; i > 0; --i) {
1654
- let { comment: o, precedingNode: a, followingNode: s } = e[i - 1];
1655
- U(a, r), U(s, n);
1656
- let l = u.originalText.slice(u.locEnd(o), D);
1657
- if (u.printer.isGap?.(l, u) ?? /^[\s(]*$/.test(l)) D = u.locStart(o);
1658
- else break;
1659
- }
1660
- for (let [o, { comment: a }] of e.entries()) o < i ? se(r, a) : oe(n, a);
1661
- for (let o of [r, n]) o.comments && o.comments.length > 1 && o.comments.sort((a, s) => u.locStart(a) - u.locStart(s));
1662
- e.length = 0;
1663
- }
1664
- function xe(e, u, t) {
1665
- let r = t.locStart(u) - 1;
1666
- for (let n = 1; n < e.length; ++n) if (r < t.locStart(e[n])) return n - 1;
1667
- return 0;
1668
- }
1669
- function cn(e, u) {
1670
- let t = u - 1;
1671
- t = J(e, t, { backwards: !0 }), t = Q(e, t, { backwards: !0 }), t = J(e, t, { backwards: !0 });
1672
- let r = Q(e, t, { backwards: !0 });
1673
- return t !== r;
1674
- }
1675
- var He = cn, rt = () => !0;
1676
- function nt(e, u) {
1677
- let t = e.node;
1678
- return t.printed = !0, u.printer.printComment(e, u);
1679
- }
1680
- function Fn(e, u) {
1681
- let t = e.node, r = [nt(e, u)], { printer: n, originalText: D, locStart: i, locEnd: o } = u;
1682
- if (n.isBlockComment?.(t)) {
1683
- let s = " ";
1684
- z(D, o(t)) && (z(D, i(t), { backwards: !0 }) ? s = j : s = Vu), r.push(s);
1685
- } else r.push(j);
1686
- let a = Q(D, J(D, o(t)));
1687
- return a !== !1 && z(D, a) && r.push(j), r;
1688
- }
1689
- function fn(e, u, t) {
1690
- let r = e.node, n = nt(e, u), { printer: D, originalText: i, locStart: o } = u, a = D.isBlockComment?.(r);
1691
- return t?.hasLineSuffix && !t?.isBlock || z(i, o(r), { backwards: !0 }) ? {
1692
- doc: Ie([
1693
- j,
1694
- He(i, o(r)) ? j : "",
1695
- n
1696
- ]),
1697
- isBlock: a,
1698
- hasLineSuffix: !0
1699
- } : !a || t?.hasLineSuffix ? {
1700
- doc: [Ie([" ", n]), ye],
1701
- isBlock: a,
1702
- hasLineSuffix: !0
1703
- } : {
1704
- doc: [" ", n],
1705
- isBlock: a,
1706
- hasLineSuffix: !1
1707
- };
1708
- }
1709
- function dn(e, u, t) {
1710
- let r = u[/* @__PURE__ */ Symbol.for("printedComments")], n = t?.filter ?? rt, D = new Set(e.node?.comments?.filter((i) => !r?.has(i) && i.leading && n(i)));
1711
- return D.size === 0 ? "" : e.map(({ node: i }) => D.has(i) ? Fn(e, u) : "", "comments").filter(Boolean);
1712
- }
1713
- function pn(e, u, t) {
1714
- let r = e.node?.comments, n = new Set(r?.filter((l) => l.trailing)), D = u[/* @__PURE__ */ Symbol.for("printedComments")], i = t?.filter ?? rt, o = new Set(r?.filter((l) => n.has(l) && !D?.has(l) && i(l)));
1715
- if (o.size === 0) return "";
1716
- let a = [], s;
1717
- return e.each(({ node: l }) => {
1718
- n.has(l) && (s = fn(e, u, s), o.has(l) && a.push(s.doc));
1719
- }, "comments"), a;
1720
- }
1721
- function hn(e, u, t, r) {
1722
- let n = dn(e, t, r), D = pn(e, t, r);
1723
- return n || D ? de(u, (i) => [
1724
- n,
1725
- i,
1726
- D
1727
- ]) : u;
1728
- }
1729
- function Cn(e) {
1730
- let { [me]: u, [/* @__PURE__ */ Symbol.for("printedComments")]: t } = e;
1731
- for (let r of u) {
1732
- if (!r.printed && !t.has(r)) throw new Error('Comment "' + r.value.trim() + '" was not printed. Please report this error!');
1733
- delete r.printed;
1734
- }
1735
- }
1736
- var En = () => U, Dt = class extends Error {
1737
- name = "ConfigError";
1738
- }, su = class extends Error {
1739
- name = "UndefinedParserError";
1740
- }, Ae = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty), mn = {
1741
- checkIgnorePragma: {
1742
- category: "Special",
1743
- type: "boolean",
1744
- default: !1,
1745
- description: "Check whether the file's first docblock comment contains '@noprettier' or '@noformat' to determine if it should be formatted.",
1746
- cliCategory: "Other"
1747
- },
1748
- cursorOffset: {
1749
- category: "Special",
1750
- type: "int",
1751
- default: -1,
1752
- range: {
1753
- start: -1,
1754
- end: 1 / 0,
1755
- step: 1
1756
- },
1757
- description: "Print (to stderr) where a cursor at the given position would move to after formatting.",
1758
- cliCategory: "Editor"
1759
- },
1760
- endOfLine: {
1761
- category: "Global",
1762
- type: "choice",
1763
- default: "lf",
1764
- description: "Which end of line characters to apply.",
1765
- choices: [
1766
- {
1767
- value: "lf",
1768
- description: "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
1769
- },
1770
- {
1771
- value: "crlf",
1772
- description: "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
1773
- },
1774
- {
1775
- value: "cr",
1776
- description: "Carriage Return character only (\\r), used very rarely"
1777
- },
1778
- {
1779
- value: "auto",
1780
- description: `Maintain existing
1781
- (mixed values within one file are normalised by looking at what's used after the first line)`
1782
- }
1783
- ]
1784
- },
1785
- filepath: {
1786
- category: "Special",
1787
- type: "path",
1788
- description: "Specify the input filepath. This will be used to do parser inference.",
1789
- cliName: "stdin-filepath",
1790
- cliCategory: "Other",
1791
- cliDescription: "Path to the file to pretend that stdin comes from."
1792
- },
1793
- insertPragma: {
1794
- category: "Special",
1795
- type: "boolean",
1796
- default: !1,
1797
- description: "Insert @format pragma into file's first docblock comment.",
1798
- cliCategory: "Other"
1799
- },
1800
- parser: {
1801
- category: "Global",
1802
- type: "choice",
1803
- default: void 0,
1804
- description: "Which parser to use.",
1805
- exception: (e) => typeof e == "string" || typeof e == "function",
1806
- choices: [
1807
- {
1808
- value: "flow",
1809
- description: "Flow"
1810
- },
1811
- {
1812
- value: "babel",
1813
- description: "JavaScript"
1814
- },
1815
- {
1816
- value: "babel-flow",
1817
- description: "Flow"
1818
- },
1819
- {
1820
- value: "babel-ts",
1821
- description: "TypeScript"
1822
- },
1823
- {
1824
- value: "typescript",
1825
- description: "TypeScript"
1826
- },
1827
- {
1828
- value: "acorn",
1829
- description: "JavaScript"
1830
- },
1831
- {
1832
- value: "espree",
1833
- description: "JavaScript"
1834
- },
1835
- {
1836
- value: "meriyah",
1837
- description: "JavaScript"
1838
- },
1839
- {
1840
- value: "css",
1841
- description: "CSS"
1842
- },
1843
- {
1844
- value: "less",
1845
- description: "Less"
1846
- },
1847
- {
1848
- value: "scss",
1849
- description: "SCSS"
1850
- },
1851
- {
1852
- value: "json",
1853
- description: "JSON"
1854
- },
1855
- {
1856
- value: "json5",
1857
- description: "JSON5"
1858
- },
1859
- {
1860
- value: "jsonc",
1861
- description: "JSON with Comments"
1862
- },
1863
- {
1864
- value: "json-stringify",
1865
- description: "JSON.stringify"
1866
- },
1867
- {
1868
- value: "graphql",
1869
- description: "GraphQL"
1870
- },
1871
- {
1872
- value: "markdown",
1873
- description: "Markdown"
1874
- },
1875
- {
1876
- value: "mdx",
1877
- description: "MDX"
1878
- },
1879
- {
1880
- value: "vue",
1881
- description: "Vue"
1882
- },
1883
- {
1884
- value: "yaml",
1885
- description: "YAML"
1886
- },
1887
- {
1888
- value: "glimmer",
1889
- description: "Ember / Handlebars"
1890
- },
1891
- {
1892
- value: "html",
1893
- description: "HTML"
1894
- },
1895
- {
1896
- value: "angular",
1897
- description: "Angular"
1898
- },
1899
- {
1900
- value: "lwc",
1901
- description: "Lightning Web Components"
1902
- },
1903
- {
1904
- value: "mjml",
1905
- description: "MJML"
1906
- }
1907
- ]
1908
- },
1909
- plugins: {
1910
- type: "path",
1911
- array: !0,
1912
- default: [{ value: [] }],
1913
- category: "Global",
1914
- description: "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
1915
- exception: (e) => typeof e == "string" || typeof e == "object",
1916
- cliName: "plugin",
1917
- cliCategory: "Config"
1918
- },
1919
- printWidth: {
1920
- category: "Global",
1921
- type: "int",
1922
- default: 80,
1923
- description: "The line length where Prettier will try wrap.",
1924
- range: {
1925
- start: 0,
1926
- end: 1 / 0,
1927
- step: 1
1928
- }
1929
- },
1930
- rangeEnd: {
1931
- category: "Special",
1932
- type: "int",
1933
- default: 1 / 0,
1934
- range: {
1935
- start: 0,
1936
- end: 1 / 0,
1937
- step: 1
1938
- },
1939
- description: `Format code ending at a given character offset (exclusive).
1940
- The range will extend forwards to the end of the selected statement.`,
1941
- cliCategory: "Editor"
1942
- },
1943
- rangeStart: {
1944
- category: "Special",
1945
- type: "int",
1946
- default: 0,
1947
- range: {
1948
- start: 0,
1949
- end: 1 / 0,
1950
- step: 1
1951
- },
1952
- description: `Format code starting at a given character offset.
1953
- The range will extend backwards to the start of the first line containing the selected statement.`,
1954
- cliCategory: "Editor"
1955
- },
1956
- requirePragma: {
1957
- category: "Special",
1958
- type: "boolean",
1959
- default: !1,
1960
- description: "Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted.",
1961
- cliCategory: "Other"
1962
- },
1963
- tabWidth: {
1964
- type: "int",
1965
- category: "Global",
1966
- default: 2,
1967
- description: "Number of spaces per indentation level.",
1968
- range: {
1969
- start: 0,
1970
- end: 1 / 0,
1971
- step: 1
1972
- }
1973
- },
1974
- useTabs: {
1975
- category: "Global",
1976
- type: "boolean",
1977
- default: !1,
1978
- description: "Indent with tabs instead of spaces."
1979
- },
1980
- embeddedLanguageFormatting: {
1981
- category: "Global",
1982
- type: "choice",
1983
- default: "auto",
1984
- description: "Control how Prettier formats quoted code embedded in the file.",
1985
- choices: [{
1986
- value: "auto",
1987
- description: "Format embedded code if Prettier can automatically identify it."
1988
- }, {
1989
- value: "off",
1990
- description: "Never automatically format embedded code."
1991
- }]
1992
- }
1993
- };
1994
- function it({ plugins: e = [], showDeprecated: u = !1 } = {}) {
1995
- let t = e.flatMap((n) => n.languages ?? []), r = [];
1996
- for (let n of yn(Object.assign({}, ...e.map(({ options: D }) => D), mn))) !u && n.deprecated || (Array.isArray(n.choices) && (u || (n.choices = n.choices.filter((D) => !D.deprecated)), n.name === "parser" && (n.choices = [...n.choices, ...gn(n.choices, t, e)])), n.pluginDefaults = Object.fromEntries(e.filter((D) => D.defaultOptions?.[n.name] !== void 0).map((D) => [D.name, D.defaultOptions[n.name]])), r.push(n));
1997
- return {
1998
- languages: t,
1999
- options: r
2000
- };
2001
- }
2002
- function* gn(e, u, t) {
2003
- let r = new Set(e.map((n) => n.value));
2004
- for (let n of u) if (n.parsers) {
2005
- for (let D of n.parsers) if (!r.has(D)) {
2006
- r.add(D);
2007
- let i = t.find((a) => a.parsers && Ae(a.parsers, D)), o = n.name;
2008
- i?.name && (o += ` (plugin: ${i.name})`), yield {
2009
- value: D,
2010
- description: o
2011
- };
2012
- }
2013
- }
2014
- }
2015
- function yn(e) {
2016
- let u = [];
2017
- for (let [t, r] of Object.entries(e)) {
2018
- let n = {
2019
- name: t,
2020
- ...r
2021
- };
2022
- Array.isArray(n.default) && (n.default = y(0, n.default, -1).value), u.push(n);
2023
- }
2024
- return u;
2025
- }
2026
- var vn = Array.prototype.toReversed ?? function() {
2027
- return [...this].reverse();
2028
- }, Bn = le("toReversed", function() {
2029
- if (Array.isArray(this)) return vn;
2030
- });
2031
- function An() {
2032
- let e = globalThis, u = e.process?.platform;
2033
- if (typeof u == "string") return u.startsWith("win");
2034
- let t = e.Deno?.build?.os;
2035
- return typeof t == "string" ? t === "windows" : e.navigator?.platform?.startsWith("Win") ?? !1;
2036
- }
2037
- var bn = An();
2038
- function at(e) {
2039
- if (e = e instanceof URL ? e : new URL(e), e.protocol !== "file:") throw new TypeError(`URL must be a file URL: received "${e.protocol}"`);
2040
- return e;
2041
- }
2042
- function wn(e) {
2043
- return e = at(e), decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"));
2044
- }
2045
- function kn(e) {
2046
- e = at(e);
2047
- let u = decodeURIComponent(e.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25")).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\");
2048
- return e.hostname !== "" && (u = `\\\\${e.hostname}${u}`), u;
2049
- }
2050
- function Sn(e) {
2051
- return bn ? kn(e) : wn(e);
2052
- }
2053
- var xn = (e) => String(e).split(/[/\\]/).pop(), Nn = (e) => String(e).startsWith("file:");
2054
- function lu(e, u) {
2055
- if (!u) return;
2056
- let t = xn(u).toLowerCase();
2057
- return e.find(({ filenames: r }) => r?.some((n) => n.toLowerCase() === t)) ?? e.find(({ extensions: r }) => r?.some((n) => t.endsWith(n)));
2058
- }
2059
- function _n(e, u) {
2060
- if (u) return e.find(({ name: t }) => t.toLowerCase() === u) ?? e.find(({ aliases: t }) => t?.includes(u)) ?? e.find(({ extensions: t }) => t?.includes(`.${u}`));
2061
- }
2062
- var On = void 0;
2063
- function cu(e, u) {
2064
- if (u) {
2065
- if (Nn(u)) try {
2066
- u = Sn(u);
2067
- } catch {
2068
- return;
2069
- }
2070
- if (typeof u == "string") return e.find(({ isSupported: t }) => t?.({ filepath: u }));
2071
- }
2072
- }
2073
- function Tn(e, u) {
2074
- let t = Bn(0, e.plugins).flatMap((r) => r.languages ?? []);
2075
- return (_n(t, u.language) ?? lu(t, u.physicalFile) ?? lu(t, u.file) ?? cu(t, u.physicalFile) ?? cu(t, u.file) ?? On?.(t, u.physicalFile))?.parsers[0];
2076
- }
2077
- var ot = Tn, re = {
2078
- key: (e) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e) ? e : JSON.stringify(e),
2079
- value(e) {
2080
- if (e === null || typeof e != "object") return JSON.stringify(e);
2081
- if (Array.isArray(e)) return `[${e.map((t) => re.value(t)).join(", ")}]`;
2082
- let u = Object.keys(e);
2083
- return u.length === 0 ? "{}" : `{ ${u.map((t) => `${re.key(t)}: ${re.value(e[t])}`).join(", ")} }`;
2084
- },
2085
- pair: ({ key: e, value: u }) => re.value({ [e]: u })
2086
- }, st = new Proxy(String, { get: () => st }), _ = st, In = (e, u, { descriptor: t }) => {
2087
- let r = [`${_.yellow(typeof e == "string" ? t.key(e) : t.pair(e))} is deprecated`];
2088
- return u && r.push(`we now treat it as ${_.blue(typeof u == "string" ? t.key(u) : t.pair(u))}`), r.join("; ") + ".";
2089
- }, lt = /* @__PURE__ */ Symbol.for("vnopts.VALUE_NOT_EXIST"), pe = /* @__PURE__ */ Symbol.for("vnopts.VALUE_UNCHANGED"), Fu = " ".repeat(2), Pn = (e, u, t) => {
2090
- let { text: r, list: n } = t.normalizeExpectedResult(t.schemas[e].expected(t)), D = [];
2091
- return r && D.push(fu(e, u, r, t.descriptor)), n && D.push([fu(e, u, n.title, t.descriptor)].concat(n.values.map((i) => ct(i, t.loggerPrintWidth))).join(`
2092
- `)), Ft(D, t.loggerPrintWidth);
2093
- };
2094
- function fu(e, u, t, r) {
2095
- return [
2096
- `Invalid ${_.red(r.key(e))} value.`,
2097
- `Expected ${_.blue(t)},`,
2098
- `but received ${u === lt ? _.gray("nothing") : _.red(r.value(u))}.`
2099
- ].join(" ");
2100
- }
2101
- function ct({ text: e, list: u }, t) {
2102
- let r = [];
2103
- return e && r.push(`- ${_.blue(e)}`), u && r.push([`- ${_.blue(u.title)}:`].concat(u.values.map((n) => ct(n, t - Fu.length).replace(/^|\n/g, `$&${Fu}`))).join(`
2104
- `)), Ft(r, t);
2105
- }
2106
- function Ft(e, u) {
2107
- if (e.length === 1) return e[0];
2108
- let [t, r] = e, [n, D] = e.map((i) => i.split(`
2109
- `, 1)[0].length);
2110
- return n > u && n > D ? r : t;
2111
- }
2112
- var te = [], Ne = [];
2113
- function _e(e, u, t) {
2114
- if (e === u) return 0;
2115
- let r = t?.maxDistance, n = e;
2116
- e.length > u.length && (e = u, u = n);
2117
- let D = e.length, i = u.length;
2118
- for (; D > 0 && e.charCodeAt(~-D) === u.charCodeAt(~-i); ) D--, i--;
2119
- let o = 0;
2120
- for (; o < D && e.charCodeAt(o) === u.charCodeAt(o); ) o++;
2121
- if (D -= o, i -= o, r !== void 0 && i - D > r) return r;
2122
- if (D === 0) return r !== void 0 && i > r ? r : i;
2123
- let a, s, l, F, c = 0, d = 0;
2124
- for (; c < D; ) Ne[c] = e.charCodeAt(o + c), te[c] = ++c;
2125
- for (; d < i; ) {
2126
- for (a = u.charCodeAt(o + d), l = d++, s = d, c = 0; c < D; c++) F = a === Ne[c] ? l : l + 1, l = te[c], s = te[c] = l > s ? F > s ? s + 1 : F : F > l ? l + 1 : F;
2127
- if (r !== void 0) {
2128
- let f = s;
2129
- for (c = 0; c < D; c++) te[c] < f && (f = te[c]);
2130
- if (f > r) return r;
2131
- }
2132
- }
2133
- return te.length = D, Ne.length = D, r !== void 0 && s > r ? r : s;
2134
- }
2135
- function jn(e, u, t) {
2136
- if (!Array.isArray(u) || u.length === 0) return;
2137
- let r = t?.maxDistance, n = e.length;
2138
- for (let a of u) if (a === e) return a;
2139
- if (r === 0) return;
2140
- let D, i = Number.POSITIVE_INFINITY, o = /* @__PURE__ */ new Set();
2141
- for (let a of u) {
2142
- if (o.has(a)) continue;
2143
- o.add(a);
2144
- let s = Math.abs(a.length - n);
2145
- if (s >= i || r !== void 0 && s > r) continue;
2146
- let l = Number.isFinite(i) ? r === void 0 ? i : Math.min(i, r) : r, F = l === void 0 ? _e(e, a) : _e(e, a, { maxDistance: l });
2147
- if (r !== void 0 && F > r) continue;
2148
- let c = F;
2149
- if (l !== void 0 && F === l && l === r && (c = _e(e, a)), c < i && (i = c, D = a, i === 0)) break;
2150
- }
2151
- if (!(r !== void 0 && i > r)) return D;
2152
- }
2153
- var ft = (e, u, { descriptor: t, logger: r, schemas: n }) => {
2154
- let D = [`Ignored unknown option ${_.yellow(t.pair({
2155
- key: e,
2156
- value: u
2157
- }))}.`], i = jn(e, Object.keys(n), { maxDistance: 3 });
2158
- i && D.push(`Did you mean ${_.blue(t.key(i))}?`), r.warn(D.join(" "));
2159
- }, Ln = [
2160
- "default",
2161
- "expected",
2162
- "validate",
2163
- "deprecated",
2164
- "forward",
2165
- "redirect",
2166
- "overlap",
2167
- "preprocess",
2168
- "postprocess"
2169
- ];
2170
- function $n(e, u) {
2171
- let t = new e(u), r = Object.create(t);
2172
- for (let n of Ln) n in u && (r[n] = Rn(u[n], t, G.prototype[n].length));
2173
- return r;
2174
- }
2175
- var G = class {
2176
- static create(e) {
2177
- return $n(this, e);
2178
- }
2179
- constructor(e) {
2180
- this.name = e.name;
2181
- }
2182
- default(e) {
2183
- }
2184
- expected(e) {
2185
- return "nothing";
2186
- }
2187
- validate(e, u) {
2188
- return !1;
2189
- }
2190
- deprecated(e, u) {
2191
- return !1;
2192
- }
2193
- forward(e, u) {
2194
- }
2195
- redirect(e, u) {
2196
- }
2197
- overlap(e, u, t) {
2198
- return e;
2199
- }
2200
- preprocess(e, u) {
2201
- return e;
2202
- }
2203
- postprocess(e, u) {
2204
- return pe;
2205
- }
2206
- };
2207
- function Rn(e, u, t) {
2208
- return typeof e == "function" ? (...r) => e(...r.slice(0, t - 1), u, ...r.slice(t - 1)) : () => e;
2209
- }
2210
- var Mn = class extends G {
2211
- constructor(e) {
2212
- super(e), this._sourceName = e.sourceName;
2213
- }
2214
- expected(e) {
2215
- return e.schemas[this._sourceName].expected(e);
2216
- }
2217
- validate(e, u) {
2218
- return u.schemas[this._sourceName].validate(e, u);
2219
- }
2220
- redirect(e, u) {
2221
- return this._sourceName;
2222
- }
2223
- }, Vn = class extends G {
2224
- expected() {
2225
- return "anything";
2226
- }
2227
- validate() {
2228
- return !0;
2229
- }
2230
- }, Wn = class extends G {
2231
- constructor({ valueSchema: e, name: u = e.name, ...t }) {
2232
- super({
2233
- ...t,
2234
- name: u
2235
- }), this._valueSchema = e;
2236
- }
2237
- expected(e) {
2238
- let { text: u, list: t } = e.normalizeExpectedResult(this._valueSchema.expected(e));
2239
- return {
2240
- text: u && `an array of ${u}`,
2241
- list: t && {
2242
- title: "an array of the following values",
2243
- values: [{ list: t }]
2244
- }
2245
- };
2246
- }
2247
- validate(e, u) {
2248
- if (!Array.isArray(e)) return !1;
2249
- let t = [];
2250
- for (let r of e) {
2251
- let n = u.normalizeValidateResult(this._valueSchema.validate(r, u), r);
2252
- n !== !0 && t.push(n.value);
2253
- }
2254
- return t.length === 0 ? !0 : { value: t };
2255
- }
2256
- deprecated(e, u) {
2257
- let t = [];
2258
- for (let r of e) {
2259
- let n = u.normalizeDeprecatedResult(this._valueSchema.deprecated(r, u), r);
2260
- n !== !1 && t.push(...n.map(({ value: D }) => ({ value: [D] })));
2261
- }
2262
- return t;
2263
- }
2264
- forward(e, u) {
2265
- let t = [];
2266
- for (let r of e) {
2267
- let n = u.normalizeForwardResult(this._valueSchema.forward(r, u), r);
2268
- t.push(...n.map(du));
2269
- }
2270
- return t;
2271
- }
2272
- redirect(e, u) {
2273
- let t = [], r = [];
2274
- for (let n of e) {
2275
- let D = u.normalizeRedirectResult(this._valueSchema.redirect(n, u), n);
2276
- "remain" in D && t.push(D.remain), r.push(...D.redirect.map(du));
2277
- }
2278
- return t.length === 0 ? { redirect: r } : {
2279
- redirect: r,
2280
- remain: t
2281
- };
2282
- }
2283
- overlap(e, u) {
2284
- return e.concat(u);
2285
- }
2286
- };
2287
- function du({ from: e, to: u }) {
2288
- return {
2289
- from: [e],
2290
- to: u
2291
- };
2292
- }
2293
- var Kn = class extends G {
2294
- expected() {
2295
- return "true or false";
2296
- }
2297
- validate(e) {
2298
- return typeof e == "boolean";
2299
- }
2300
- };
2301
- function zn(e, u) {
2302
- let t = /* @__PURE__ */ Object.create(null);
2303
- for (let r of e) {
2304
- let n = r[u];
2305
- if (t[n]) throw new Error(`Duplicate ${u} ${JSON.stringify(n)}`);
2306
- t[n] = r;
2307
- }
2308
- return t;
2309
- }
2310
- function Un(e, u) {
2311
- let t = /* @__PURE__ */ new Map();
2312
- for (let r of e) {
2313
- let n = r[u];
2314
- if (t.has(n)) throw new Error(`Duplicate ${u} ${JSON.stringify(n)}`);
2315
- t.set(n, r);
2316
- }
2317
- return t;
2318
- }
2319
- function Jn() {
2320
- let e = /* @__PURE__ */ Object.create(null);
2321
- return (u) => {
2322
- let t = JSON.stringify(u);
2323
- return e[t] ? !0 : (e[t] = !0, !1);
2324
- };
2325
- }
2326
- function qn(e, u) {
2327
- let t = [], r = [];
2328
- for (let n of e) u(n) ? t.push(n) : r.push(n);
2329
- return [t, r];
2330
- }
2331
- function Gn(e) {
2332
- return e === Math.floor(e);
2333
- }
2334
- function Hn(e, u) {
2335
- if (e === u) return 0;
2336
- let t = typeof e, r = typeof u, n = [
2337
- "undefined",
2338
- "object",
2339
- "boolean",
2340
- "number",
2341
- "string"
2342
- ];
2343
- return t !== r ? n.indexOf(t) - n.indexOf(r) : t !== "string" ? Number(e) - Number(u) : e.localeCompare(u);
2344
- }
2345
- function Yn(e) {
2346
- return (...u) => {
2347
- let t = e(...u);
2348
- return typeof t == "string" ? new Error(t) : t;
2349
- };
2350
- }
2351
- function pu(e) {
2352
- return e === void 0 ? {} : e;
2353
- }
2354
- function dt(e) {
2355
- if (typeof e == "string") return { text: e };
2356
- let { text: u, list: t } = e;
2357
- return Zn((u || t) !== void 0, "Unexpected `expected` result, there should be at least one field."), t ? {
2358
- text: u,
2359
- list: {
2360
- title: t.title,
2361
- values: t.values.map(dt)
2362
- }
2363
- } : { text: u };
2364
- }
2365
- function hu(e, u) {
2366
- return e === !0 ? !0 : e === !1 ? { value: u } : e;
2367
- }
2368
- function Cu(e, u, t = !1) {
2369
- return e === !1 ? !1 : e === !0 ? t ? !0 : [{ value: u }] : "value" in e ? [e] : e.length === 0 ? !1 : e;
2370
- }
2371
- function Eu(e, u) {
2372
- return typeof e == "string" || "key" in e ? {
2373
- from: u,
2374
- to: e
2375
- } : "from" in e ? {
2376
- from: e.from,
2377
- to: e.to
2378
- } : {
2379
- from: u,
2380
- to: e.to
2381
- };
2382
- }
2383
- function je(e, u) {
2384
- return e === void 0 ? [] : Array.isArray(e) ? e.map((t) => Eu(t, u)) : [Eu(e, u)];
2385
- }
2386
- function mu(e, u) {
2387
- let t = je(typeof e == "object" && "redirect" in e ? e.redirect : e, u);
2388
- return t.length === 0 ? {
2389
- remain: u,
2390
- redirect: t
2391
- } : typeof e == "object" && "remain" in e ? {
2392
- remain: e.remain,
2393
- redirect: t
2394
- } : { redirect: t };
2395
- }
2396
- function Zn(e, u) {
2397
- if (!e) throw new Error(u);
2398
- }
2399
- var Qn = class extends G {
2400
- constructor(e) {
2401
- super(e), this._choices = Un(e.choices.map((u) => u && typeof u == "object" ? u : { value: u }), "value");
2402
- }
2403
- expected({ descriptor: e }) {
2404
- let u = Array.from(this._choices.keys()).map((n) => this._choices.get(n)).filter(({ hidden: n }) => !n).map((n) => n.value).sort(Hn).map(e.value), t = u.slice(0, -2), r = u.slice(-2);
2405
- return {
2406
- text: t.concat(r.join(" or ")).join(", "),
2407
- list: {
2408
- title: "one of the following values",
2409
- values: u
2410
- }
2411
- };
2412
- }
2413
- validate(e) {
2414
- return this._choices.has(e);
2415
- }
2416
- deprecated(e) {
2417
- let u = this._choices.get(e);
2418
- return u && u.deprecated ? { value: e } : !1;
2419
- }
2420
- forward(e) {
2421
- let u = this._choices.get(e);
2422
- return u ? u.forward : void 0;
2423
- }
2424
- redirect(e) {
2425
- let u = this._choices.get(e);
2426
- return u ? u.redirect : void 0;
2427
- }
2428
- }, Xn = class extends G {
2429
- expected() {
2430
- return "a number";
2431
- }
2432
- validate(e, u) {
2433
- return typeof e == "number";
2434
- }
2435
- }, eD = class extends Xn {
2436
- expected() {
2437
- return "an integer";
2438
- }
2439
- validate(e, u) {
2440
- return u.normalizeValidateResult(super.validate(e, u), e) === !0 && Gn(e);
2441
- }
2442
- }, gu = class extends G {
2443
- expected() {
2444
- return "a string";
2445
- }
2446
- validate(e) {
2447
- return typeof e == "string";
2448
- }
2449
- }, uD = re, tD = ft, rD = Pn, nD = In, DD = class {
2450
- constructor(e, u) {
2451
- let { logger: t = console, loggerPrintWidth: r = 80, descriptor: n = uD, unknown: D = tD, invalid: i = rD, deprecated: o = nD, missing: a = () => !1, required: s = () => !1, preprocess: l = (c) => c, postprocess: F = () => pe } = u || {};
2452
- this._utils = {
2453
- descriptor: n,
2454
- logger: t || { warn: () => {
2455
- } },
2456
- loggerPrintWidth: r,
2457
- schemas: zn(e, "name"),
2458
- normalizeDefaultResult: pu,
2459
- normalizeExpectedResult: dt,
2460
- normalizeDeprecatedResult: Cu,
2461
- normalizeForwardResult: je,
2462
- normalizeRedirectResult: mu,
2463
- normalizeValidateResult: hu
2464
- }, this._unknownHandler = D, this._invalidHandler = Yn(i), this._deprecatedHandler = o, this._identifyMissing = (c, d) => !(c in d) || a(c, d), this._identifyRequired = s, this._preprocess = l, this._postprocess = F, this.cleanHistory();
2465
- }
2466
- cleanHistory() {
2467
- this._hasDeprecationWarned = Jn();
2468
- }
2469
- normalize(e) {
2470
- let u = {}, t = [this._preprocess(e, this._utils)], r = () => {
2471
- for (; t.length !== 0; ) {
2472
- let n = t.shift(), D = this._applyNormalization(n, u);
2473
- t.push(...D);
2474
- }
2475
- };
2476
- r();
2477
- for (let n of Object.keys(this._utils.schemas)) {
2478
- let D = this._utils.schemas[n];
2479
- if (!(n in u)) {
2480
- let i = pu(D.default(this._utils));
2481
- "value" in i && t.push({ [n]: i.value });
2482
- }
2483
- }
2484
- r();
2485
- for (let n of Object.keys(this._utils.schemas)) {
2486
- if (!(n in u)) continue;
2487
- let D = this._utils.schemas[n], i = u[n], o = D.postprocess(i, this._utils);
2488
- o !== pe && (this._applyValidation(o, n, D), u[n] = o);
2489
- }
2490
- return this._applyPostprocess(u), this._applyRequiredCheck(u), u;
2491
- }
2492
- _applyNormalization(e, u) {
2493
- let t = [], { knownKeys: r, unknownKeys: n } = this._partitionOptionKeys(e);
2494
- for (let D of r) {
2495
- let i = this._utils.schemas[D], o = i.preprocess(e[D], this._utils);
2496
- this._applyValidation(o, D, i);
2497
- let a = ({ from: F, to: c }) => {
2498
- t.push(typeof c == "string" ? { [c]: F } : { [c.key]: c.value });
2499
- }, s = ({ value: F, redirectTo: c }) => {
2500
- let d = Cu(i.deprecated(F, this._utils), o, !0);
2501
- if (d !== !1) if (d === !0) this._hasDeprecationWarned(D) || this._utils.logger.warn(this._deprecatedHandler(D, c, this._utils));
2502
- else for (let { value: f } of d) {
2503
- let h = {
2504
- key: D,
2505
- value: f
2506
- };
2507
- if (!this._hasDeprecationWarned(h)) {
2508
- let p = typeof c == "string" ? {
2509
- key: c,
2510
- value: f
2511
- } : c;
2512
- this._utils.logger.warn(this._deprecatedHandler(h, p, this._utils));
2513
- }
2514
- }
2515
- };
2516
- je(i.forward(o, this._utils), o).forEach(a);
2517
- let l = mu(i.redirect(o, this._utils), o);
2518
- if (l.redirect.forEach(a), "remain" in l) {
2519
- let F = l.remain;
2520
- u[D] = D in u ? i.overlap(u[D], F, this._utils) : F, s({ value: F });
2521
- }
2522
- for (let { from: F, to: c } of l.redirect) s({
2523
- value: F,
2524
- redirectTo: c
2525
- });
2526
- }
2527
- for (let D of n) {
2528
- let i = e[D];
2529
- this._applyUnknownHandler(D, i, u, (o, a) => {
2530
- t.push({ [o]: a });
2531
- });
2532
- }
2533
- return t;
2534
- }
2535
- _applyRequiredCheck(e) {
2536
- for (let u of Object.keys(this._utils.schemas)) if (this._identifyMissing(u, e) && this._identifyRequired(u)) throw this._invalidHandler(u, lt, this._utils);
2537
- }
2538
- _partitionOptionKeys(e) {
2539
- let [u, t] = qn(Object.keys(e).filter((r) => !this._identifyMissing(r, e)), (r) => r in this._utils.schemas);
2540
- return {
2541
- knownKeys: u,
2542
- unknownKeys: t
2543
- };
2544
- }
2545
- _applyValidation(e, u, t) {
2546
- let r = hu(t.validate(e, this._utils), e);
2547
- if (r !== !0) throw this._invalidHandler(u, r.value, this._utils);
2548
- }
2549
- _applyUnknownHandler(e, u, t, r) {
2550
- let n = this._unknownHandler(e, u, this._utils);
2551
- if (n) for (let D of Object.keys(n)) {
2552
- if (this._identifyMissing(D, n)) continue;
2553
- let i = n[D];
2554
- D in this._utils.schemas ? r(D, i) : t[D] = i;
2555
- }
2556
- }
2557
- _applyPostprocess(e) {
2558
- let u = this._postprocess(e, this._utils);
2559
- if (u !== pe) {
2560
- if (u.delete) for (let t of u.delete) delete e[t];
2561
- if (u.override) {
2562
- let { knownKeys: t, unknownKeys: r } = this._partitionOptionKeys(u.override);
2563
- for (let n of t) {
2564
- let D = u.override[n];
2565
- this._applyValidation(D, n, this._utils.schemas[n]), e[n] = D;
2566
- }
2567
- for (let n of r) {
2568
- let D = u.override[n];
2569
- this._applyUnknownHandler(n, D, e, (i, o) => {
2570
- let a = this._utils.schemas[i];
2571
- this._applyValidation(o, i, a), e[i] = o;
2572
- });
2573
- }
2574
- }
2575
- }
2576
- }
2577
- }, Oe;
2578
- function iD(e, u, { logger: t = !1, isCLI: r = !1, passThrough: n = !1, FlagSchema: D, descriptor: i } = {}) {
2579
- if (r) {
2580
- if (!D) throw new Error("'FlagSchema' option is required.");
2581
- if (!i) throw new Error("'descriptor' option is required.");
2582
- } else i = re;
2583
- let o = n ? Array.isArray(n) ? (F, c) => n.includes(F) ? { [F]: c } : void 0 : (F, c) => ({ [F]: c }) : (F, c, d) => {
2584
- let { _: f, ...h } = d.schemas;
2585
- return ft(F, c, {
2586
- ...d,
2587
- schemas: h
2588
- });
2589
- }, a = new DD(aD(u, {
2590
- isCLI: r,
2591
- FlagSchema: D
2592
- }), {
2593
- logger: t,
2594
- unknown: o,
2595
- descriptor: i
2596
- }), s = t !== !1;
2597
- s && Oe && (a._hasDeprecationWarned = Oe);
2598
- let l = a.normalize(e);
2599
- return s && (Oe = a._hasDeprecationWarned), l;
2600
- }
2601
- function aD(e, { isCLI: u, FlagSchema: t }) {
2602
- let r = [];
2603
- u && r.push(Vn.create({ name: "_" }));
2604
- for (let n of e) r.push(oD(n, {
2605
- isCLI: u,
2606
- optionInfos: e,
2607
- FlagSchema: t
2608
- })), n.alias && u && r.push(Mn.create({
2609
- name: n.alias,
2610
- sourceName: n.name
2611
- }));
2612
- return r;
2613
- }
2614
- function oD(e, { isCLI: u, optionInfos: t, FlagSchema: r }) {
2615
- let { name: n } = e, D = { name: n }, i, o = {};
2616
- switch (e.type) {
2617
- case "int":
2618
- i = eD, u && (D.preprocess = Number);
2619
- break;
2620
- case "string":
2621
- i = gu;
2622
- break;
2623
- case "choice":
2624
- i = Qn, D.choices = e.choices.map((a) => a?.redirect ? {
2625
- ...a,
2626
- redirect: { to: {
2627
- key: e.name,
2628
- value: a.redirect
2629
- } }
2630
- } : a);
2631
- break;
2632
- case "boolean":
2633
- i = Kn;
2634
- break;
2635
- case "flag":
2636
- i = r, D.flags = t.flatMap((a) => [
2637
- a.alias,
2638
- a.description && a.name,
2639
- a.oppositeDescription && `no-${a.name}`
2640
- ].filter(Boolean));
2641
- break;
2642
- case "path":
2643
- i = gu;
2644
- break;
2645
- default:
2646
- throw new Error(`Unexpected type ${e.type}`);
2647
- }
2648
- if (e.exception ? D.validate = (a, s, l) => e.exception(a) || s.validate(a, l) : D.validate = (a, s, l) => a === void 0 || s.validate(a, l), e.redirect && (o.redirect = (a) => a ? { to: typeof e.redirect == "string" ? e.redirect : {
2649
- key: e.redirect.option,
2650
- value: e.redirect.value
2651
- } } : void 0), e.deprecated && (o.deprecated = !0), u && !e.array) {
2652
- let a = D.preprocess || ((s) => s);
2653
- D.preprocess = (s, l, F) => l.preprocess(a(Array.isArray(s) ? y(0, s, -1) : s), F);
2654
- }
2655
- return e.array ? Wn.create({
2656
- ...u ? { preprocess: (a) => Array.isArray(a) ? a : [a] } : {},
2657
- ...o,
2658
- valueSchema: i.create(D)
2659
- }) : i.create({
2660
- ...D,
2661
- ...o
2662
- });
2663
- }
2664
- var sD = iD, lD = Array.prototype.findLast ?? function(e) {
2665
- for (let u = this.length - 1; u >= 0; u--) {
2666
- let t = this[u];
2667
- if (e(t, u, this)) return t;
2668
- }
2669
- }, pt = le("findLast", function() {
2670
- if (Array.isArray(this)) return lD;
2671
- }), cD = /* @__PURE__ */ Symbol.for("PRETTIER_IS_FRONT_MATTER"), FD = [];
2672
- function fD(e) {
2673
- return !!e?.[cD];
2674
- }
2675
- var Ye = fD, ht = /* @__PURE__ */ new Set(["yaml", "toml"]), Ct = ({ node: e }) => Ye(e) && ht.has(e.language);
2676
- async function dD(e, u, t, r) {
2677
- let { node: n } = t, { language: D } = n;
2678
- if (!ht.has(D)) return;
2679
- let i = n.value.trim(), o;
2680
- if (i) {
2681
- let a = D === "yaml" ? D : ot(r, { language: D });
2682
- if (!a) return;
2683
- o = i ? await e(i, { parser: a }) : "";
2684
- } else o = i;
2685
- return Lu([
2686
- n.startDelimiter,
2687
- n.explicitLanguage ?? "",
2688
- j,
2689
- o,
2690
- o ? j : "",
2691
- n.endDelimiter
2692
- ]);
2693
- }
2694
- function pD(e, u) {
2695
- return Ct({ node: e }) && (delete u.end, delete u.raw, delete u.value), u;
2696
- }
2697
- var hD = pD;
2698
- function CD({ node: e }) {
2699
- return e.raw;
2700
- }
2701
- var ED = CD, Et = /* @__PURE__ */ new Set([
2702
- "tokens",
2703
- "comments",
2704
- "parent",
2705
- "enclosingNode",
2706
- "precedingNode",
2707
- "followingNode"
2708
- ]), mD = (e) => Object.keys(e).filter((u) => !Et.has(u));
2709
- function gD(e, u) {
2710
- let t = e ? (r) => e(r, Et) : mD;
2711
- return u ? new Proxy(t, { apply: (r, n, D) => Ye(D[0]) ? FD : Reflect.apply(r, n, D) }) : t;
2712
- }
2713
- var yu = gD;
2714
- function mt(e, u) {
2715
- if (!u) throw new Error("parserName is required.");
2716
- let t = pt(0, e, (n) => n.parsers && Ae(n.parsers, u));
2717
- if (t) return t;
2718
- let r = `Couldn't resolve parser "${u}".`;
2719
- throw r += " Plugins must be explicitly added to the standalone bundle.", new Dt(r);
2720
- }
2721
- function yD(e, u) {
2722
- if (!u) throw new Error("astFormat is required.");
2723
- let t = pt(0, e, (n) => n.printers && Ae(n.printers, u));
2724
- if (t) return t;
2725
- let r = `Couldn't find plugin for AST format "${u}".`;
2726
- throw r += " Plugins must be explicitly added to the standalone bundle.", new Dt(r);
2727
- }
2728
- function Ze({ plugins: e, parser: u }) {
2729
- return gt(mt(e, u), u);
2730
- }
2731
- function gt(e, u) {
2732
- let t = e.parsers[u];
2733
- return typeof t == "function" ? t() : t;
2734
- }
2735
- async function vD(e, u) {
2736
- let t = e.printers[u];
2737
- return bD(typeof t == "function" ? await t() : t);
2738
- }
2739
- function BD(e) {
2740
- let { features: u, getVisitorKeys: t, embed: r, massageAstNode: n, print: D, ...i } = e;
2741
- u = SD(u);
2742
- let o = u.experimental_frontMatterSupport;
2743
- t = yu(t, o.massageAstNode || o.embed || o.print);
2744
- let a = n;
2745
- n && o.massageAstNode && (a = new Proxy(n, { apply(F, c, d) {
2746
- return hD(...d), Reflect.apply(F, c, d);
2747
- } }));
2748
- let s = r;
2749
- if (r) {
2750
- let F;
2751
- s = new Proxy(r, {
2752
- get(c, d, f) {
2753
- return d === "getVisitorKeys" ? (F ?? (F = r.getVisitorKeys ? yu(r.getVisitorKeys, o.massageAstNode || o.embed) : t), F) : Reflect.get(c, d, f);
2754
- },
2755
- apply: (c, d, f) => o.embed && Ct(...f) ? dD : Reflect.apply(c, d, f)
2756
- });
2757
- }
2758
- let l = D;
2759
- return o.print && (l = new Proxy(D, { apply(F, c, d) {
2760
- let [f] = d;
2761
- return Ye(f.node) ? ED(f) : Reflect.apply(F, c, d);
2762
- } })), {
2763
- features: u,
2764
- getVisitorKeys: t,
2765
- embed: s,
2766
- massageAstNode: a,
2767
- print: l,
2768
- ...i
2769
- };
2770
- }
2771
- var AD = /* @__PURE__ */ new WeakMap();
2772
- function bD(e) {
2773
- return Ve(AD, e, BD);
2774
- }
2775
- var wD = Object.fromEntries([
2776
- "clean",
2777
- "embed",
2778
- "print"
2779
- ].map((e) => [e, !1]));
2780
- function kD(e) {
2781
- return {
2782
- ...wD,
2783
- ...e
2784
- };
2785
- }
2786
- function SD(e) {
2787
- return {
2788
- experimental_avoidAstMutation: !1,
2789
- ...e,
2790
- experimental_frontMatterSupport: kD(e?.experimental_frontMatterSupport)
2791
- };
2792
- }
2793
- var vu = {
2794
- astFormat: "estree",
2795
- printer: {},
2796
- originalText: void 0,
2797
- locStart: null,
2798
- locEnd: null,
2799
- getVisitorKeys: null
2800
- };
2801
- async function xD(e, u = {}) {
2802
- let t = { ...e };
2803
- if (!t.parser) {
2804
- if (!t.filepath) throw new su("No parser and no file path given, couldn't infer a parser.");
2805
- if (t.parser = ot(t, { physicalFile: t.filepath }), !t.parser) throw new su(`No parser could be inferred for file "${t.filepath}".`);
2806
- }
2807
- let r = it({
2808
- plugins: e.plugins,
2809
- showDeprecated: !0
2810
- }).options, n = {
2811
- ...vu,
2812
- ...Object.fromEntries(r.filter((F) => F.default !== void 0).map((F) => [F.name, F.default]))
2813
- }, D = mt(t.plugins, t.parser), i = await gt(D, t.parser);
2814
- t.astFormat = i.astFormat, t.locEnd = i.locEnd, t.locStart = i.locStart;
2815
- let o = D.printers?.[i.astFormat] ? D : yD(t.plugins, i.astFormat), a = await vD(o, i.astFormat);
2816
- t.printer = a, t.getVisitorKeys = a.getVisitorKeys;
2817
- let s = o.defaultOptions ? Object.fromEntries(Object.entries(o.defaultOptions).filter(([, F]) => F !== void 0)) : {}, l = {
2818
- ...n,
2819
- ...s
2820
- };
2821
- for (let [F, c] of Object.entries(l)) t[F] ?? (t[F] = c);
2822
- return t.parser === "json" && (t.trailingComma = "none"), sD(t, r, {
2823
- passThrough: Object.keys(vu),
2824
- ...u
2825
- });
2826
- }
2827
- var ie = xD, Bu = /\r\n|[\n\r\u2028\u2029]/;
2828
- function ND(e, u, t, r) {
2829
- let n = {
2830
- column: null,
2831
- line: -1,
2832
- ...e.start
2833
- }, D = {
2834
- ...n,
2835
- ...e.end
2836
- }, { linesAbove: i = 2, linesBelow: o = 3 } = t || {}, a = n.line - r, s = n.column, l = D.line - r, F = D.column, c = Math.max(a - (i + 1), 0), d = Math.min(u.length, l + o);
2837
- a === -1 && (c = 0), l === -1 && (d = u.length);
2838
- let f = l - a, h = {};
2839
- if (f) for (let p = 0; p <= f; p++) {
2840
- let C = p + a;
2841
- s == null ? h[C] = !0 : p === 0 ? h[C] = [s, u[C - 1].length - s] : p === f ? h[C] = [0, F] : h[C] = [0, u[C - 1].length];
2842
- }
2843
- else if (s === F) s != null ? h[a] = [s, 0] : h[a] = !0;
2844
- else {
2845
- let p = s ?? 0;
2846
- h[a] = [p, (F ?? p) - p];
2847
- }
2848
- return {
2849
- start: c,
2850
- end: d,
2851
- markerLines: h
2852
- };
2853
- }
2854
- function _D(e, u, t = {}, r) {
2855
- let { defs: n, highlight: D } = r || {
2856
- defs: {
2857
- gutter: String,
2858
- marker: String,
2859
- message: String,
2860
- reset: String
2861
- },
2862
- highlight: String
2863
- }, i = (t.startLine || 1) - 1, { start: o, end: a, markerLines: s } = ND(u, e.split(Bu), t, i), l = u.start && typeof u.start.column == "number", F = String(a + i).length, c = D(e).split(Bu, a).slice(o, a).map((d, f) => {
2864
- let h = o + 1 + f, p = ` ${` ${h + i}`.slice(-F)} |`, C = s[h], E = !s[h + 1];
2865
- if (C) {
2866
- let m = "";
2867
- if (Array.isArray(C)) {
2868
- let g = d.slice(0, C[0]).replace(/[^\t]/g, " "), B = C[1] || 1;
2869
- m = [
2870
- `
2871
- `,
2872
- n.gutter(p.replace(/\d/g, " ")),
2873
- " ",
2874
- g,
2875
- n.marker("^").repeat(B)
2876
- ].join(""), E && t.message && (m += " " + n.message(t.message));
2877
- }
2878
- return [
2879
- n.marker(">"),
2880
- n.gutter(p),
2881
- d.length > 0 ? ` ${d}` : "",
2882
- m
2883
- ].join("");
2884
- } else return ` ${n.gutter(p)}${d.length > 0 ? ` ${d}` : ""}`;
2885
- }).join(`
2886
- `);
2887
- return t.message && !l && (c = `${" ".repeat(F + 1)}${t.message}
2888
- ${c}`), n.reset(c);
2889
- }
2890
- function OD(e, u, t = {}) {
2891
- return _D(e, u, t);
2892
- }
2893
- async function TD(e, u) {
2894
- let t = await Ze(u), r = t.preprocess ? await t.preprocess(e, u) : e;
2895
- u.originalText = r;
2896
- let n;
2897
- try {
2898
- n = await t.parse(r, u, u);
2899
- } catch (D) {
2900
- ID(D, e);
2901
- }
2902
- return {
2903
- text: r,
2904
- ast: n
2905
- };
2906
- }
2907
- function ID(e, u) {
2908
- let { loc: t } = e;
2909
- if (t) {
2910
- let { start: r, end: n } = t;
2911
- r && (r = {
2912
- line: r.line,
2913
- column: r.column - 1
2914
- }), n && (n = {
2915
- line: n.line,
2916
- column: n.column - 1
2917
- });
2918
- let D = OD(u, {
2919
- start: r,
2920
- end: n
2921
- }, { highlightCode: !0 });
2922
- e.message += `
2923
- ` + D, e.codeFrame = D;
2924
- }
2925
- throw e;
2926
- }
2927
- var Fe = TD;
2928
- async function PD(e, u, t, r, n) {
2929
- if (t.embeddedLanguageFormatting !== "auto") return;
2930
- let { printer: D } = t, { embed: i } = D;
2931
- if (!i) return;
2932
- if (i.length > 2) throw new Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/plugins#optional-embed");
2933
- let { hasPrettierIgnore: o } = D, { getVisitorKeys: a } = i, s = [];
2934
- c();
2935
- let l = e.stack;
2936
- for (let { print: d, node: f, pathStack: h } of s) try {
2937
- e.stack = h;
2938
- let p = await d(F, u, e, t);
2939
- p && n.set(f, p);
2940
- } catch (p) {
2941
- if (globalThis.PRETTIER_DEBUG) throw p;
2942
- }
2943
- e.stack = l;
2944
- function F(d, f) {
2945
- return jD(d, f, t, r);
2946
- }
2947
- function c() {
2948
- let { node: d } = e;
2949
- if (d === null || typeof d != "object" || o?.(e)) return;
2950
- for (let h of a(d)) Array.isArray(d[h]) ? e.each(c, h) : e.call(c, h);
2951
- let f = i(e, t);
2952
- if (f) {
2953
- if (typeof f == "function") {
2954
- s.push({
2955
- print: f,
2956
- node: d,
2957
- pathStack: [...e.stack]
2958
- });
2959
- return;
2960
- }
2961
- n.set(d, f);
2962
- }
2963
- }
2964
- }
2965
- async function jD(e, u, t, r) {
2966
- let n = await ie({
2967
- ...t,
2968
- ...u,
2969
- parentParser: t.parser,
2970
- originalText: e,
2971
- cursorOffset: void 0,
2972
- rangeStart: void 0,
2973
- rangeEnd: void 0
2974
- }, { passThrough: !0 }), { ast: D } = await Fe(e, n);
2975
- return Pu(await r(D, n));
2976
- }
2977
- function LD(e, u, t, r) {
2978
- let { originalText: n, [me]: D, locStart: i, locEnd: o, [/* @__PURE__ */ Symbol.for("printedComments")]: a } = u, { node: s } = e, l = i(s), F = o(s);
2979
- for (let d of D) i(d) >= l && o(d) <= F && a.add(d);
2980
- let { printPrettierIgnored: c } = u.printer;
2981
- return c ? c(e, u, t, r) : n.slice(l, F);
2982
- }
2983
- var $D = LD;
2984
- async function be(e, u) {
2985
- ({ ast: e } = await yt(e, u));
2986
- let t = /* @__PURE__ */ new Map(), r = new Zr(e), n = En(u), D = /* @__PURE__ */ new Map();
2987
- await PD(r, o, u, be, D);
2988
- let i = await Au(r, u, o, void 0, D);
2989
- if (Cn(u), u.cursorOffset >= 0) {
2990
- if (u.nodeAfterCursor && !u.nodeBeforeCursor) return [Z, i];
2991
- if (u.nodeBeforeCursor && !u.nodeAfterCursor) return [i, Z];
2992
- }
2993
- return i;
2994
- function o(s, l) {
2995
- return s === void 0 || s === r ? a(l) : Array.isArray(s) ? r.call(() => a(l), ...s) : r.call(() => a(l), s);
2996
- }
2997
- function a(s) {
2998
- n(r);
2999
- let l = r.node;
3000
- if (l == null) return "";
3001
- let F = qe(l) && s === void 0;
3002
- if (F && t.has(l)) return t.get(l);
3003
- let c = Au(r, u, o, s, D);
3004
- return F && t.set(l, c), c;
3005
- }
3006
- }
3007
- function Au(e, u, t, r, n) {
3008
- let { node: D } = e, { printer: i } = u, o;
3009
- switch (i.hasPrettierIgnore?.(e) ? o = $D(e, u, t, r) : n.has(D) ? o = n.get(D) : o = i.print(e, u, t, r), D) {
3010
- case u.cursorNode:
3011
- o = de(o, (a) => [
3012
- Z,
3013
- a,
3014
- Z
3015
- ]);
3016
- break;
3017
- case u.nodeBeforeCursor:
3018
- o = de(o, (a) => [a, Z]);
3019
- break;
3020
- case u.nodeAfterCursor:
3021
- o = de(o, (a) => [Z, a]);
3022
- }
3023
- return i.printComment && Hu(D.comments) && !i.willPrintOwnComments?.(e, u) && (o = hn(e, o, u)), o;
3024
- }
3025
- async function yt(e, u) {
3026
- let t = e.comments ?? [];
3027
- u[me] = t, u[/* @__PURE__ */ Symbol.for("printedComments")] = /* @__PURE__ */ new Set(), on(e, u);
3028
- let { printer: { preprocess: r } } = u;
3029
- return e = r ? await r(e, u) : e, {
3030
- ast: e,
3031
- comments: t
3032
- };
3033
- }
3034
- function RD(e, u) {
3035
- let { cursorOffset: t, locStart: r, locEnd: n, getVisitorKeys: D } = u, i = (d) => r(d) <= t && n(d) >= t, o = e, a = [e];
3036
- for (let d of rn(e, {
3037
- getVisitorKeys: D,
3038
- filter: i
3039
- })) a.push(d), o = d;
3040
- if (nn(o, { getVisitorKeys: D })) return { cursorNode: o };
3041
- let s, l, F = -1, c = Number.POSITIVE_INFINITY;
3042
- for (; a.length > 0 && (s === void 0 || l === void 0); ) {
3043
- o = a.pop();
3044
- let d = s !== void 0, f = l !== void 0;
3045
- for (let h of Be(o, { getVisitorKeys: D })) {
3046
- if (!d) {
3047
- let p = n(h);
3048
- p <= t && p > F && (s = h, F = p);
3049
- }
3050
- if (!f) {
3051
- let p = r(h);
3052
- p >= t && p < c && (l = h, c = p);
3053
- }
3054
- }
3055
- }
3056
- return {
3057
- nodeBeforeCursor: s,
3058
- nodeAfterCursor: l
3059
- };
3060
- }
3061
- var vt = RD;
3062
- function MD(e, u) {
3063
- let { printer: t } = u, r = t.massageAstNode;
3064
- if (!r) return e;
3065
- let { getVisitorKeys: n } = t, { ignoredProperties: D } = r;
3066
- return i(e);
3067
- function i(o, a) {
3068
- if (!qe(o)) return o;
3069
- if (Array.isArray(o)) return o.map((c) => i(c, a)).filter(Boolean);
3070
- let s = {}, l = new Set(n(o));
3071
- for (let c in o) !Ae(o, c) || D?.has(c) || (l.has(c) ? s[c] = i(o[c], o) : s[c] = o[c]);
3072
- let F = r(o, s, a);
3073
- if (F !== null) return F ?? s;
3074
- }
3075
- }
3076
- var VD = MD, WD = Array.prototype.findLastIndex ?? function(e) {
3077
- for (let u = this.length - 1; u >= 0; u--) {
3078
- let t = this[u];
3079
- if (e(t, u, this)) return u;
3080
- }
3081
- return -1;
3082
- }, KD = le("findLastIndex", function() {
3083
- if (Array.isArray(this)) return WD;
3084
- });
3085
- function zD(e, u) {
3086
- return u = new Set(u), e.find((t) => Bt.has(t.type) && u.has(t));
3087
- }
3088
- function bu(e) {
3089
- let u = KD(0, e, (t) => t.type !== "Program" && t.type !== "File");
3090
- return u === -1 ? e : e.slice(0, u + 1);
3091
- }
3092
- function UD(e, u, { locStart: t, locEnd: r }) {
3093
- let [n, ...D] = e, [i, ...o] = u;
3094
- if (n === i) return [n, i];
3095
- let a = t(n);
3096
- for (let l of bu(o)) if (t(l) >= a) i = l;
3097
- else break;
3098
- let s = r(i);
3099
- for (let l of bu(D)) {
3100
- if (r(l) <= s) n = l;
3101
- else break;
3102
- if (n === i) break;
3103
- }
3104
- return [n, i];
3105
- }
3106
- function Le(e, u, t, r, n = [], D, i) {
3107
- let { locStart: o, locEnd: a } = i, s = o(e), l = a(e);
3108
- if (u > l || u < s || D === "rangeEnd" && u === s || D === "rangeStart" && u === l) return;
3109
- let F = [e, ...n], c = Xu(e, F, {
3110
- cache: et,
3111
- locStart: o,
3112
- locEnd: a,
3113
- getVisitorKeys: t.getVisitorKeys,
3114
- filter: t.printer.canAttachComment,
3115
- getChildren: t.printer.getCommentChildNodes
3116
- });
3117
- for (let d of c) {
3118
- let f = Le(d, u, t, r, F, D, i);
3119
- if (f) return f;
3120
- }
3121
- if (r(e, n[0])) return F;
3122
- }
3123
- function JD(e, u) {
3124
- return u !== "DeclareExportDeclaration" && e !== "TypeParameterDeclaration" && (e === "Directive" || e === "TypeAlias" || e === "TSExportAssignment" || e.startsWith("Declare") || e.startsWith("TSDeclare") || e.endsWith("Statement") || e.endsWith("Declaration"));
3125
- }
3126
- var Bt = /* @__PURE__ */ new Set([
3127
- "JsonRoot",
3128
- "ObjectExpression",
3129
- "ArrayExpression",
3130
- "StringLiteral",
3131
- "NumericLiteral",
3132
- "BooleanLiteral",
3133
- "NullLiteral",
3134
- "UnaryExpression",
3135
- "TemplateLiteral"
3136
- ]), qD = /* @__PURE__ */ new Set([
3137
- "OperationDefinition",
3138
- "FragmentDefinition",
3139
- "VariableDefinition",
3140
- "TypeExtensionDefinition",
3141
- "ObjectTypeDefinition",
3142
- "FieldDefinition",
3143
- "DirectiveDefinition",
3144
- "EnumTypeDefinition",
3145
- "EnumValueDefinition",
3146
- "InputValueDefinition",
3147
- "InputObjectTypeDefinition",
3148
- "SchemaDefinition",
3149
- "OperationTypeDefinition",
3150
- "InterfaceTypeDefinition",
3151
- "UnionTypeDefinition",
3152
- "ScalarTypeDefinition"
3153
- ]);
3154
- function wu(e, u, t) {
3155
- if (!u) return !1;
3156
- switch (e.parser) {
3157
- case "flow":
3158
- case "hermes":
3159
- case "babel":
3160
- case "babel-flow":
3161
- case "babel-ts":
3162
- case "typescript":
3163
- case "acorn":
3164
- case "espree":
3165
- case "meriyah":
3166
- case "oxc":
3167
- case "oxc-ts":
3168
- case "yuku":
3169
- case "yuku-ts":
3170
- case "__babel_estree":
3171
- return JD(u.type, t?.type);
3172
- case "json":
3173
- case "json5":
3174
- case "jsonc":
3175
- case "json-stringify":
3176
- return Bt.has(u.type);
3177
- case "graphql":
3178
- return qD.has(u.kind);
3179
- case "vue":
3180
- return u.tag !== "root";
3181
- }
3182
- return !1;
3183
- }
3184
- function GD(e, u, t) {
3185
- let { rangeStart: r, rangeEnd: n } = u;
3186
- U(n > r);
3187
- let D = e.slice(r, n).search(/\S/), i = D === -1;
3188
- if (!i) for (r += D; n > r && !/\S/.test(e[n - 1]); --n) ;
3189
- let o = u.printer.features?.experimental_locForRangeFormat ?? u, a = Le(t, r, u, (f, h) => wu(u, f, h), [], "rangeStart", o);
3190
- if (!a) return;
3191
- let s = i ? a : Le(t, n, u, (f) => wu(u, f), [], "rangeEnd", o);
3192
- if (!s) return;
3193
- let l, F;
3194
- if (t.type === "JsonRoot") {
3195
- let f = zD(a, s);
3196
- l = f, F = f;
3197
- } else [l, F] = UD(a, s, u);
3198
- let { locStart: c, locEnd: d } = o;
3199
- return [Math.min(c(l), c(F)), Math.max(d(l), d(F))];
3200
- }
3201
- var At = "\uFEFF", ku = /* @__PURE__ */ Symbol("cursor");
3202
- async function bt(e, u, t = 0) {
3203
- if (!e || e.trim().length === 0) return {
3204
- formatted: "",
3205
- cursorOffset: -1,
3206
- comments: []
3207
- };
3208
- let { ast: r, text: n } = await Fe(e, u);
3209
- u.cursorOffset >= 0 && (u = {
3210
- ...u,
3211
- ...vt(r, u)
3212
- });
3213
- let D = await be(r, u, t);
3214
- t > 0 && (D = $u([j, D], t, u.tabWidth));
3215
- let i = ve(D, u);
3216
- if (t > 0) {
3217
- let a = i.formatted.trim();
3218
- i.cursorNodeStart !== void 0 && (i.cursorNodeStart -= i.formatted.indexOf(a), i.cursorNodeStart < 0 && (i.cursorNodeStart = 0, i.cursorNodeText = i.cursorNodeText.trimStart()), i.cursorNodeStart + i.cursorNodeText.length > a.length && (i.cursorNodeText = i.cursorNodeText.trimEnd())), i.formatted = a + Me(u.endOfLine);
3219
- }
3220
- let o = u[me];
3221
- if (u.cursorOffset >= 0) {
3222
- let a, s, l, F;
3223
- if ((u.cursorNode || u.nodeBeforeCursor || u.nodeAfterCursor) && i.cursorNodeText) if (l = i.cursorNodeStart, F = i.cursorNodeText, u.cursorNode) a = u.locStart(u.cursorNode), s = n.slice(a, u.locEnd(u.cursorNode));
3224
- else {
3225
- if (!u.nodeBeforeCursor && !u.nodeAfterCursor) throw new Error("Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor");
3226
- a = u.nodeBeforeCursor ? u.locEnd(u.nodeBeforeCursor) : 0;
3227
- let p = u.nodeAfterCursor ? u.locStart(u.nodeAfterCursor) : n.length;
3228
- s = n.slice(a, p);
3229
- }
3230
- else a = 0, s = n, l = 0, F = i.formatted;
3231
- let c = u.cursorOffset - a;
3232
- if (s === F) return {
3233
- formatted: i.formatted,
3234
- cursorOffset: l + c,
3235
- comments: o
3236
- };
3237
- let d = s.split("");
3238
- d.splice(c, 0, ku);
3239
- let f = Kt(d, F.split("")), h = l;
3240
- for (let p of f) if (p.removed) {
3241
- if (p.value.includes(ku)) break;
3242
- } else h += p.count;
3243
- return {
3244
- formatted: i.formatted,
3245
- cursorOffset: h,
3246
- comments: o
3247
- };
3248
- }
3249
- return {
3250
- formatted: i.formatted,
3251
- cursorOffset: -1,
3252
- comments: o
3253
- };
3254
- }
3255
- async function HD(e, u) {
3256
- let { ast: t, text: r } = await Fe(e, u), [n, D] = GD(r, u, t) ?? [0, 0], i = r.slice(n, D), o = Math.min(n, r.lastIndexOf(`
3257
- `, n) + 1), a = r.slice(o, n).match(/^\s*/)[0], s = Je(a, u.tabWidth), l = await bt(i, {
3258
- ...u,
3259
- rangeStart: 0,
3260
- rangeEnd: Number.POSITIVE_INFINITY,
3261
- cursorOffset: u.cursorOffset > n && u.cursorOffset <= D ? u.cursorOffset - n : -1,
3262
- endOfLine: "lf"
3263
- }, s), F = l.formatted.trimEnd(), { cursorOffset: c } = u;
3264
- c > D ? c += F.length - i.length : l.cursorOffset >= 0 && (c = l.cursorOffset + n);
3265
- let d = r.slice(0, n) + F + r.slice(D);
3266
- if (u.endOfLine !== "lf") {
3267
- let f = Me(u.endOfLine);
3268
- c >= 0 && f === `\r
3269
- ` && (c += Tu(d.slice(0, c), `
3270
- `)), d = Ce(0, d, `
3271
- `, f);
3272
- }
3273
- return {
3274
- formatted: d,
3275
- cursorOffset: c,
3276
- comments: l.comments
3277
- };
3278
- }
3279
- function Te(e, u, t) {
3280
- return typeof u != "number" || Number.isNaN(u) || u < 0 || u > e.length ? t : u;
3281
- }
3282
- function Su(e, u) {
3283
- let { cursorOffset: t, rangeStart: r, rangeEnd: n } = u;
3284
- return t = Te(e, t, -1), r = Te(e, r, 0), n = Te(e, n, e.length), {
3285
- ...u,
3286
- cursorOffset: t,
3287
- rangeStart: r,
3288
- rangeEnd: n
3289
- };
3290
- }
3291
- function wt(e, u) {
3292
- let { cursorOffset: t, rangeStart: r, rangeEnd: n, endOfLine: D } = Su(e, u), i = e.charAt(0) === At;
3293
- if (i && (e = e.slice(1), t--, r--, n--), D === "auto" && (D = qt(e)), e.includes("\r")) {
3294
- let o = (a) => Tu(e.slice(0, Math.max(a, 0)), `\r
3295
- `);
3296
- t -= o(t), r -= o(r), n -= o(n), e = Yt(e);
3297
- }
3298
- return {
3299
- hasBOM: i,
3300
- text: e,
3301
- options: Su(e, {
3302
- ...u,
3303
- cursorOffset: t,
3304
- rangeStart: r,
3305
- rangeEnd: n,
3306
- endOfLine: D
3307
- })
3308
- };
3309
- }
3310
- async function xu(e, u) {
3311
- let t = await Ze(u);
3312
- return !t.hasPragma || t.hasPragma(e);
3313
- }
3314
- async function YD(e, u) {
3315
- return (await Ze(u)).hasIgnorePragma?.(e);
3316
- }
3317
- async function kt(e, u) {
3318
- let { hasBOM: t, text: r, options: n } = wt(e, await ie(u));
3319
- if (n.rangeStart >= n.rangeEnd && r !== "" || n.requirePragma && !await xu(r, n) || n.checkIgnorePragma && await YD(r, n)) return {
3320
- formatted: e,
3321
- cursorOffset: u.cursorOffset,
3322
- comments: []
3323
- };
3324
- let D;
3325
- return n.rangeStart > 0 || n.rangeEnd < r.length ? D = await HD(r, n) : (!n.requirePragma && n.insertPragma && n.printer.insertPragma && !await xu(r, n) && (r = n.printer.insertPragma(r)), D = await bt(r, n)), t && (D.formatted = At + D.formatted, D.cursorOffset >= 0 && D.cursorOffset++), D;
3326
- }
3327
- async function ZD(e, u, t) {
3328
- let { text: r, options: n } = wt(e, await ie(u)), D = await Fe(r, n);
3329
- return t && (t.preprocessForPrint && (D.ast = await yt(D.ast, n)), t.massage && (D.ast = VD(D.ast, n))), D;
3330
- }
3331
- async function QD(e, u) {
3332
- return u = await ie(u), ve(await be(e, u), u);
3333
- }
3334
- async function XD(e, u) {
3335
- let { formatted: t } = await kt(wr(e), {
3336
- ...u,
3337
- parser: "__js_expression"
3338
- });
3339
- return t;
3340
- }
3341
- async function ei(e, u) {
3342
- u = await ie(u);
3343
- let { ast: t } = await Fe(e, u);
3344
- return u.cursorOffset >= 0 && (u = {
3345
- ...u,
3346
- ...vt(t, u)
3347
- }), be(t, u);
3348
- }
3349
- async function ui(e, u) {
3350
- return ve(e, await ie(u));
3351
- }
3352
- var St = {};
3353
- $e(St, {
3354
- builders: () => ti,
3355
- printer: () => ri,
3356
- utils: () => ni
3357
- });
3358
- var ti = {
3359
- join: Mu,
3360
- line: Vu,
3361
- softline: Br,
3362
- hardline: j,
3363
- literalline: Ku,
3364
- group: Ru,
3365
- conditionalGroup: mr,
3366
- fill: Er,
3367
- lineSuffix: Ie,
3368
- lineSuffixBoundary: Ar,
3369
- cursor: Z,
3370
- breakParent: ye,
3371
- ifBreak: gr,
3372
- trim: br,
3373
- indent: he,
3374
- indentIfBreak: yr,
3375
- align: De,
3376
- addAlignmentToDoc: $u,
3377
- markAsRoot: Lu,
3378
- dedentToRoot: hr,
3379
- dedent: Cr,
3380
- hardlineWithoutBreakParent: ze,
3381
- literallineWithoutBreakParent: Wu,
3382
- label: vr,
3383
- concat: (e) => e
3384
- }, ri = { printDocToString: ve }, ni = {
3385
- willBreak: Dr,
3386
- traverseDoc: We,
3387
- findInDoc: Ke,
3388
- mapDoc: ge,
3389
- removeLines: or,
3390
- stripTrailingHardline: Pu,
3391
- replaceEndOfLine: cr,
3392
- canBreak: fr
3393
- }, Di = "3.9.6", xt = {};
3394
- $e(xt, {
3395
- addDanglingComment: () => H,
3396
- addLeadingComment: () => oe,
3397
- addTrailingComment: () => se,
3398
- getAlignmentSize: () => Je,
3399
- getIndentSize: () => ci,
3400
- getMaxContinuousCount: () => di,
3401
- getNextNonSpaceNonCommentCharacter: () => hi,
3402
- getNextNonSpaceNonCommentCharacterIndex: () => bi,
3403
- getPreferredQuote: () => mi,
3404
- getStringWidth: () => Ue,
3405
- hasNewline: () => z,
3406
- hasNewlineInRange: () => yi,
3407
- hasSpaces: () => Bi,
3408
- isNextLineEmpty: () => Ni,
3409
- isNextLineEmptyAfterIndex: () => uu,
3410
- isPreviousLineEmpty: () => ki,
3411
- makeString: () => xi,
3412
- skip: () => ce,
3413
- skipEverythingButNewLine: () => Zu,
3414
- skipInlineComment: () => Qe,
3415
- skipNewline: () => Q,
3416
- skipSpaces: () => J,
3417
- skipToLineEnd: () => Yu,
3418
- skipTrailingComment: () => Xe,
3419
- skipWhitespace: () => en
3420
- });
3421
- function ii(e, u) {
3422
- if (u === !1) return !1;
3423
- if (e.charAt(u) === "/" && e.charAt(u + 1) === "*") {
3424
- for (let t = u + 2; t < e.length; ++t) if (e.charAt(t) === "*" && e.charAt(t + 1) === "/") return t + 2;
3425
- }
3426
- return u;
3427
- }
3428
- var Qe = ii;
3429
- function ai(e, u) {
3430
- return u === !1 ? !1 : e.charAt(u) === "/" && e.charAt(u + 1) === "/" ? Zu(e, u) : u;
3431
- }
3432
- var Xe = ai;
3433
- function oi(e, u) {
3434
- let t = null, r = u;
3435
- for (; r !== t; ) t = r, r = J(e, r), r = Qe(e, r), r = Xe(e, r), r = Q(e, r);
3436
- return r;
3437
- }
3438
- var eu = oi;
3439
- function si(e, u) {
3440
- let t = null, r = u;
3441
- for (; r !== t; ) t = r, r = Yu(e, r), r = Qe(e, r), r = J(e, r);
3442
- return r = Xe(e, r), r = Q(e, r), r !== !1 && z(e, r);
3443
- }
3444
- var uu = si;
3445
- function li(e, u) {
3446
- let t = e.lastIndexOf(`
3447
- `);
3448
- return t === -1 ? 0 : Je(e.slice(t + 1).match(/^[\t ]*/)[0], u);
3449
- }
3450
- var ci = li;
3451
- function Fi(e) {
3452
- if (typeof e != "string") throw new TypeError("Expected a string");
3453
- return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
3454
- }
3455
- function fi(e, u) {
3456
- let t = e.matchAll(new RegExp(`(?:${Fi(u)})+`, "g"));
3457
- return t.reduce || (t = [...t]), t.reduce((r, [n]) => Math.max(r, n.length), 0) / u.length;
3458
- }
3459
- var di = fi;
3460
- function pi(e, u) {
3461
- let t = eu(e, u);
3462
- return t === !1 ? "" : e.charAt(t);
3463
- }
3464
- var hi = pi, Nt = Object.freeze({
3465
- character: "'",
3466
- codePoint: 39
3467
- }), _t = Object.freeze({
3468
- character: '"',
3469
- codePoint: 34
3470
- }), Ci = Object.freeze({
3471
- preferred: Nt,
3472
- alternate: _t
3473
- }), Ei = Object.freeze({
3474
- preferred: _t,
3475
- alternate: Nt
3476
- });
3477
- function mi(e, u) {
3478
- let { preferred: t, alternate: r } = u === !0 || u === "'" ? Ci : Ei, { length: n } = e, D = 0, i = 0;
3479
- for (let o = 0; o < n; o++) {
3480
- let a = e.charCodeAt(o);
3481
- a === t.codePoint ? D++ : a === r.codePoint && i++;
3482
- }
3483
- return (D > i ? r : t).character;
3484
- }
3485
- function gi(e, u, t) {
3486
- for (let r = u; r < t; ++r) if (e.charAt(r) === `
3487
- `) return !0;
3488
- return !1;
3489
- }
3490
- var yi = gi;
3491
- function vi(e, u, t = {}) {
3492
- return J(e, t.backwards ? u - 1 : u, t) !== u;
3493
- }
3494
- var Bi = vi;
3495
- function Ai(e, u, t) {
3496
- return eu(e, t(u));
3497
- }
3498
- function bi(e, u) {
3499
- return arguments.length === 2 || typeof u == "number" ? eu(e, u) : Ai(...arguments);
3500
- }
3501
- function wi(e, u, t) {
3502
- return He(e, t(u));
3503
- }
3504
- function ki(e, u) {
3505
- return arguments.length === 2 || typeof u == "number" ? He(e, u) : wi(...arguments);
3506
- }
3507
- function Si(e, u, t) {
3508
- return uu(e, t(u));
3509
- }
3510
- function xi(e, u, t) {
3511
- let r = u === '"' ? "'" : '"';
3512
- return u + Ce(0, e, /\\(.)|(["'])/gs, (n, D, i) => D === r ? D : i === u ? "\\" + i : i || (t && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(D) ? D : "\\" + D)) + u;
3513
- }
3514
- function Ni(e, u) {
3515
- return arguments.length === 2 || typeof u == "number" ? uu(e, u) : Si(...arguments);
3516
- }
3517
- function Y(e, u = 1) {
3518
- return async (...t) => {
3519
- let r = t[u] ?? {}, n = r.plugins ?? [];
3520
- return t[u] = {
3521
- ...r,
3522
- plugins: Array.isArray(n) ? n : Object.values(n)
3523
- }, await e(...t);
3524
- };
3525
- }
3526
- var Ot = Y(kt);
3527
- async function Tt(e, u) {
3528
- let { formatted: t } = await Ot(e, {
3529
- ...u,
3530
- cursorOffset: -1
3531
- });
3532
- return t;
3533
- }
3534
- async function _i(e, u) {
3535
- return await Tt(e, u) === e;
3536
- }
3537
- var Oi = Y(it, 0), Ti = {
3538
- parse: Y(ZD),
3539
- formatAST: Y(QD),
3540
- formatDoc: Y(XD),
3541
- printToDoc: Y(ei),
3542
- printDocToString: Y(ui)
3543
- };
3544
- export {
3545
- Ti as __debug,
3546
- _i as check,
3547
- $t as default,
3548
- St as doc,
3549
- Tt as format,
3550
- Ot as formatWithCursor,
3551
- Oi as getSupportInfo,
3552
- xt as util,
3553
- Di as version
3554
- };