prettier 3.0.0-alpha.0 → 3.0.0-alpha.2

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 (56) hide show
  1. package/LICENSE +51 -67
  2. package/{bin-prettier.js → bin/prettier.cjs} +2 -2
  3. package/doc.js +438 -221
  4. package/doc.mjs +1490 -0
  5. package/index.cjs +532 -0
  6. package/{index.js → index.mjs} +4411 -5763
  7. package/{cli.mjs → internal/cli.mjs} +150 -94
  8. package/{third-party.js → internal/third-party.mjs} +129 -100
  9. package/package.json +139 -6
  10. package/plugins/acorn-and-espree.js +13 -0
  11. package/plugins/acorn-and-espree.mjs +13 -0
  12. package/plugins/angular.js +2 -0
  13. package/plugins/angular.mjs +2 -0
  14. package/plugins/babel.js +16 -0
  15. package/plugins/babel.mjs +16 -0
  16. package/plugins/flow.js +21 -0
  17. package/plugins/flow.mjs +21 -0
  18. package/{parser-glimmer.js → plugins/glimmer.js} +9 -9
  19. package/{esm/parser-glimmer.mjs → plugins/glimmer.mjs} +10 -10
  20. package/plugins/graphql.js +9 -0
  21. package/plugins/graphql.mjs +9 -0
  22. package/plugins/html.js +29 -0
  23. package/plugins/html.mjs +29 -0
  24. package/plugins/markdown.js +39 -0
  25. package/plugins/markdown.mjs +39 -0
  26. package/plugins/meriyah.js +6 -0
  27. package/plugins/meriyah.mjs +6 -0
  28. package/plugins/postcss.js +50 -0
  29. package/plugins/postcss.mjs +50 -0
  30. package/plugins/typescript.js +242 -0
  31. package/plugins/typescript.mjs +242 -0
  32. package/{parser-yaml.js → plugins/yaml.js} +1 -1
  33. package/{esm/parser-yaml.mjs → plugins/yaml.mjs} +1 -1
  34. package/standalone.js +70 -87
  35. package/standalone.mjs +107 -0
  36. package/esm/parser-angular.mjs +0 -2
  37. package/esm/parser-babel.mjs +0 -18
  38. package/esm/parser-espree.mjs +0 -15
  39. package/esm/parser-flow.mjs +0 -23
  40. package/esm/parser-graphql.mjs +0 -9
  41. package/esm/parser-html.mjs +0 -28
  42. package/esm/parser-markdown.mjs +0 -60
  43. package/esm/parser-meriyah.mjs +0 -8
  44. package/esm/parser-postcss.mjs +0 -53
  45. package/esm/parser-typescript.mjs +0 -269
  46. package/esm/standalone.mjs +0 -124
  47. package/parser-angular.js +0 -2
  48. package/parser-babel.js +0 -18
  49. package/parser-espree.js +0 -15
  50. package/parser-flow.js +0 -23
  51. package/parser-graphql.js +0 -9
  52. package/parser-html.js +0 -28
  53. package/parser-markdown.js +0 -60
  54. package/parser-meriyah.js +0 -8
  55. package/parser-postcss.js +0 -53
  56. package/parser-typescript.js +0 -269
package/index.cjs ADDED
@@ -0,0 +1,532 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __esm = (fn, res) => function __init() {
9
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
+ };
11
+ var __commonJS = (cb, mod) => function __require() {
12
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13
+ };
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // node_modules/escape-string-regexp/index.js
33
+ function escapeStringRegexp(string) {
34
+ if (typeof string !== "string") {
35
+ throw new TypeError("Expected a string");
36
+ }
37
+ return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
38
+ }
39
+ var init_escape_string_regexp = __esm({
40
+ "node_modules/escape-string-regexp/index.js"() {
41
+ }
42
+ });
43
+
44
+ // src/utils/text/skip.js
45
+ function skip(chars) {
46
+ return (text, index, opts) => {
47
+ const backwards = opts && opts.backwards;
48
+ if (index === false) {
49
+ return false;
50
+ }
51
+ const { length } = text;
52
+ let cursor = index;
53
+ while (cursor >= 0 && cursor < length) {
54
+ const c = text.charAt(cursor);
55
+ if (chars instanceof RegExp) {
56
+ if (!chars.test(c)) {
57
+ return cursor;
58
+ }
59
+ } else if (!chars.includes(c)) {
60
+ return cursor;
61
+ }
62
+ backwards ? cursor-- : cursor++;
63
+ }
64
+ if (cursor === -1 || cursor === length) {
65
+ return cursor;
66
+ }
67
+ return false;
68
+ };
69
+ }
70
+ var skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine;
71
+ var init_skip = __esm({
72
+ "src/utils/text/skip.js"() {
73
+ skipWhitespace = skip(/\s/);
74
+ skipSpaces = skip(" ");
75
+ skipToLineEnd = skip(",; ");
76
+ skipEverythingButNewLine = skip(/[^\n\r]/);
77
+ }
78
+ });
79
+
80
+ // src/utils/text/skip-inline-comment.js
81
+ function skipInlineComment(text, index) {
82
+ if (index === false) {
83
+ return false;
84
+ }
85
+ if (text.charAt(index) === "/" && text.charAt(index + 1) === "*") {
86
+ for (let i = index + 2; i < text.length; ++i) {
87
+ if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") {
88
+ return i + 2;
89
+ }
90
+ }
91
+ }
92
+ return index;
93
+ }
94
+ var skip_inline_comment_default;
95
+ var init_skip_inline_comment = __esm({
96
+ "src/utils/text/skip-inline-comment.js"() {
97
+ skip_inline_comment_default = skipInlineComment;
98
+ }
99
+ });
100
+
101
+ // src/utils/text/skip-trailing-comment.js
102
+ function skipTrailingComment(text, index) {
103
+ if (index === false) {
104
+ return false;
105
+ }
106
+ if (text.charAt(index) === "/" && text.charAt(index + 1) === "/") {
107
+ return skipEverythingButNewLine(text, index);
108
+ }
109
+ return index;
110
+ }
111
+ var skip_trailing_comment_default;
112
+ var init_skip_trailing_comment = __esm({
113
+ "src/utils/text/skip-trailing-comment.js"() {
114
+ init_skip();
115
+ skip_trailing_comment_default = skipTrailingComment;
116
+ }
117
+ });
118
+
119
+ // src/utils/text/skip-newline.js
120
+ function skipNewline(text, index, opts) {
121
+ const backwards = opts && opts.backwards;
122
+ if (index === false) {
123
+ return false;
124
+ }
125
+ const atIndex = text.charAt(index);
126
+ if (backwards) {
127
+ if (text.charAt(index - 1) === "\r" && atIndex === "\n") {
128
+ return index - 2;
129
+ }
130
+ if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") {
131
+ return index - 1;
132
+ }
133
+ } else {
134
+ if (atIndex === "\r" && text.charAt(index + 1) === "\n") {
135
+ return index + 2;
136
+ }
137
+ if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") {
138
+ return index + 1;
139
+ }
140
+ }
141
+ return index;
142
+ }
143
+ var skip_newline_default;
144
+ var init_skip_newline = __esm({
145
+ "src/utils/text/skip-newline.js"() {
146
+ skip_newline_default = skipNewline;
147
+ }
148
+ });
149
+
150
+ // src/utils/text/get-next-non-space-non-comment-character-index-with-start-index.js
151
+ function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) {
152
+ let oldIdx = null;
153
+ let nextIdx = idx;
154
+ while (nextIdx !== oldIdx) {
155
+ oldIdx = nextIdx;
156
+ nextIdx = skipSpaces(text, nextIdx);
157
+ nextIdx = skip_inline_comment_default(text, nextIdx);
158
+ nextIdx = skip_trailing_comment_default(text, nextIdx);
159
+ nextIdx = skip_newline_default(text, nextIdx);
160
+ }
161
+ return nextIdx;
162
+ }
163
+ var get_next_non_space_non_comment_character_index_with_start_index_default;
164
+ var init_get_next_non_space_non_comment_character_index_with_start_index = __esm({
165
+ "src/utils/text/get-next-non-space-non-comment-character-index-with-start-index.js"() {
166
+ init_skip_inline_comment();
167
+ init_skip_newline();
168
+ init_skip_trailing_comment();
169
+ init_skip();
170
+ get_next_non_space_non_comment_character_index_with_start_index_default = getNextNonSpaceNonCommentCharacterIndexWithStartIndex;
171
+ }
172
+ });
173
+
174
+ // src/utils/is-non-empty-array.js
175
+ var init_is_non_empty_array = __esm({
176
+ "src/utils/is-non-empty-array.js"() {
177
+ }
178
+ });
179
+
180
+ // node_modules/strip-ansi/node_modules/ansi-regex/index.js
181
+ function ansiRegex({ onlyFirst = false } = {}) {
182
+ const pattern = [
183
+ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
184
+ "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"
185
+ ].join("|");
186
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
187
+ }
188
+ var init_ansi_regex = __esm({
189
+ "node_modules/strip-ansi/node_modules/ansi-regex/index.js"() {
190
+ }
191
+ });
192
+
193
+ // node_modules/strip-ansi/index.js
194
+ function stripAnsi(string) {
195
+ if (typeof string !== "string") {
196
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
197
+ }
198
+ return string.replace(ansiRegex(), "");
199
+ }
200
+ var init_strip_ansi = __esm({
201
+ "node_modules/strip-ansi/index.js"() {
202
+ init_ansi_regex();
203
+ }
204
+ });
205
+
206
+ // node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
207
+ function isFullwidthCodePoint(codePoint) {
208
+ if (!Number.isInteger(codePoint)) {
209
+ return false;
210
+ }
211
+ return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141);
212
+ }
213
+ var init_is_fullwidth_code_point = __esm({
214
+ "node_modules/string-width/node_modules/is-fullwidth-code-point/index.js"() {
215
+ }
216
+ });
217
+
218
+ // node_modules/string-width/node_modules/emoji-regex/index.js
219
+ var require_emoji_regex = __commonJS({
220
+ "node_modules/string-width/node_modules/emoji-regex/index.js"(exports2, module2) {
221
+ "use strict";
222
+ module2.exports = function() {
223
+ return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\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\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\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|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\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]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\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-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
224
+ };
225
+ }
226
+ });
227
+
228
+ // node_modules/string-width/index.js
229
+ function stringWidth(string) {
230
+ if (typeof string !== "string" || string.length === 0) {
231
+ return 0;
232
+ }
233
+ string = stripAnsi(string);
234
+ if (string.length === 0) {
235
+ return 0;
236
+ }
237
+ string = string.replace((0, import_emoji_regex.default)(), " ");
238
+ let width = 0;
239
+ for (let index = 0; index < string.length; index++) {
240
+ const codePoint = string.codePointAt(index);
241
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
242
+ continue;
243
+ }
244
+ if (codePoint >= 768 && codePoint <= 879) {
245
+ continue;
246
+ }
247
+ if (codePoint > 65535) {
248
+ index++;
249
+ }
250
+ width += isFullwidthCodePoint(codePoint) ? 2 : 1;
251
+ }
252
+ return width;
253
+ }
254
+ var import_emoji_regex;
255
+ var init_string_width = __esm({
256
+ "node_modules/string-width/index.js"() {
257
+ init_strip_ansi();
258
+ init_is_fullwidth_code_point();
259
+ import_emoji_regex = __toESM(require_emoji_regex(), 1);
260
+ }
261
+ });
262
+
263
+ // src/utils/get-string-width.js
264
+ function getStringWidth(text) {
265
+ if (!text) {
266
+ return 0;
267
+ }
268
+ if (!notAsciiRegex.test(text)) {
269
+ return text.length;
270
+ }
271
+ return stringWidth(text);
272
+ }
273
+ var notAsciiRegex, get_string_width_default;
274
+ var init_get_string_width = __esm({
275
+ "src/utils/get-string-width.js"() {
276
+ init_string_width();
277
+ notAsciiRegex = /[^\x20-\x7F]/;
278
+ get_string_width_default = getStringWidth;
279
+ }
280
+ });
281
+
282
+ // src/common/util.js
283
+ function skip2(chars) {
284
+ return (text, index, opts) => {
285
+ const backwards = opts && opts.backwards;
286
+ if (index === false) {
287
+ return false;
288
+ }
289
+ const { length } = text;
290
+ let cursor = index;
291
+ while (cursor >= 0 && cursor < length) {
292
+ const c = text.charAt(cursor);
293
+ if (chars instanceof RegExp) {
294
+ if (!chars.test(c)) {
295
+ return cursor;
296
+ }
297
+ } else if (!chars.includes(c)) {
298
+ return cursor;
299
+ }
300
+ backwards ? cursor-- : cursor++;
301
+ }
302
+ if (cursor === -1 || cursor === length) {
303
+ return cursor;
304
+ }
305
+ return false;
306
+ };
307
+ }
308
+ function hasNewline(text, index, opts = {}) {
309
+ const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts);
310
+ const idx2 = skip_newline_default(text, idx, opts);
311
+ return idx !== idx2;
312
+ }
313
+ function hasNewlineInRange(text, start, end) {
314
+ for (let i = start; i < end; ++i) {
315
+ if (text.charAt(i) === "\n") {
316
+ return true;
317
+ }
318
+ }
319
+ return false;
320
+ }
321
+ function isPreviousLineEmpty(text, node, locStart) {
322
+ let idx = locStart(node) - 1;
323
+ idx = skipSpaces(text, idx, { backwards: true });
324
+ idx = skip_newline_default(text, idx, { backwards: true });
325
+ idx = skipSpaces(text, idx, { backwards: true });
326
+ const idx2 = skip_newline_default(text, idx, { backwards: true });
327
+ return idx !== idx2;
328
+ }
329
+ function isNextLineEmptyAfterIndex(text, index) {
330
+ let oldIdx = null;
331
+ let idx = index;
332
+ while (idx !== oldIdx) {
333
+ oldIdx = idx;
334
+ idx = skipToLineEnd(text, idx);
335
+ idx = skip_inline_comment_default(text, idx);
336
+ idx = skipSpaces(text, idx);
337
+ }
338
+ idx = skip_trailing_comment_default(text, idx);
339
+ idx = skip_newline_default(text, idx);
340
+ return idx !== false && hasNewline(text, idx);
341
+ }
342
+ function isNextLineEmpty(text, node, locEnd) {
343
+ return isNextLineEmptyAfterIndex(text, locEnd(node));
344
+ }
345
+ function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) {
346
+ return get_next_non_space_non_comment_character_index_with_start_index_default(
347
+ text,
348
+ locEnd(node)
349
+ );
350
+ }
351
+ function hasSpaces(text, index, opts = {}) {
352
+ const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts);
353
+ return idx !== index;
354
+ }
355
+ function getAlignmentSize(value, tabWidth, startIndex = 0) {
356
+ let size = 0;
357
+ for (let i = startIndex; i < value.length; ++i) {
358
+ if (value[i] === " ") {
359
+ size = size + tabWidth - size % tabWidth;
360
+ } else {
361
+ size++;
362
+ }
363
+ }
364
+ return size;
365
+ }
366
+ function getIndentSize(value, tabWidth) {
367
+ const lastNewlineIndex = value.lastIndexOf("\n");
368
+ if (lastNewlineIndex === -1) {
369
+ return 0;
370
+ }
371
+ return getAlignmentSize(
372
+ value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0],
373
+ tabWidth
374
+ );
375
+ }
376
+ function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) {
377
+ const otherQuote = enclosingQuote === '"' ? "'" : '"';
378
+ const regex = /\\(.)|(["'])/gs;
379
+ const newContent = rawContent.replace(regex, (match, escaped, quote) => {
380
+ if (escaped === otherQuote) {
381
+ return escaped;
382
+ }
383
+ if (quote === enclosingQuote) {
384
+ return "\\" + quote;
385
+ }
386
+ if (quote) {
387
+ return quote;
388
+ }
389
+ return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped;
390
+ });
391
+ return enclosingQuote + newContent + enclosingQuote;
392
+ }
393
+ function getMaxContinuousCount(str, target) {
394
+ const results = str.match(
395
+ new RegExp(`(${escapeStringRegexp(target)})+`, "g")
396
+ );
397
+ if (results === null) {
398
+ return 0;
399
+ }
400
+ return results.reduce(
401
+ (maxCount, result) => Math.max(maxCount, result.length / target.length),
402
+ 0
403
+ );
404
+ }
405
+ function addCommentHelper(node, comment) {
406
+ const comments = node.comments ?? (node.comments = []);
407
+ comments.push(comment);
408
+ comment.printed = false;
409
+ comment.nodeDescription = describeNodeForDebugging(node);
410
+ }
411
+ function addLeadingComment(node, comment) {
412
+ comment.leading = true;
413
+ comment.trailing = false;
414
+ addCommentHelper(node, comment);
415
+ }
416
+ function addDanglingComment(node, comment, marker) {
417
+ comment.leading = false;
418
+ comment.trailing = false;
419
+ if (marker) {
420
+ comment.marker = marker;
421
+ }
422
+ addCommentHelper(node, comment);
423
+ }
424
+ function addTrailingComment(node, comment) {
425
+ comment.leading = false;
426
+ comment.trailing = true;
427
+ addCommentHelper(node, comment);
428
+ }
429
+ function describeNodeForDebugging(node) {
430
+ const nodeType = node.type || node.kind || "(unknown type)";
431
+ let nodeName = String(
432
+ node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || ""
433
+ );
434
+ if (nodeName.length > 20) {
435
+ nodeName = nodeName.slice(0, 19) + "\u2026";
436
+ }
437
+ return nodeType + (nodeName ? " " + nodeName : "");
438
+ }
439
+ var init_util = __esm({
440
+ "src/common/util.js"() {
441
+ init_escape_string_regexp();
442
+ init_skip();
443
+ init_skip_inline_comment();
444
+ init_skip_trailing_comment();
445
+ init_skip_newline();
446
+ init_get_next_non_space_non_comment_character_index_with_start_index();
447
+ init_is_non_empty_array();
448
+ init_get_string_width();
449
+ }
450
+ });
451
+
452
+ // src/common/util-shared.js
453
+ var util_shared_exports = {};
454
+ __export(util_shared_exports, {
455
+ addDanglingComment: () => addDanglingComment,
456
+ addLeadingComment: () => addLeadingComment,
457
+ addTrailingComment: () => addTrailingComment,
458
+ getAlignmentSize: () => getAlignmentSize,
459
+ getIndentSize: () => getIndentSize,
460
+ getMaxContinuousCount: () => getMaxContinuousCount,
461
+ getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex,
462
+ getStringWidth: () => get_string_width_default,
463
+ hasNewline: () => hasNewline,
464
+ hasNewlineInRange: () => hasNewlineInRange,
465
+ hasSpaces: () => hasSpaces,
466
+ isNextLineEmpty: () => isNextLineEmpty,
467
+ isNextLineEmptyAfterIndex: () => isNextLineEmptyAfterIndex,
468
+ isPreviousLineEmpty: () => isPreviousLineEmpty,
469
+ makeString: () => makeString,
470
+ skip: () => skip2,
471
+ skipEverythingButNewLine: () => skipEverythingButNewLine,
472
+ skipInlineComment: () => skip_inline_comment_default,
473
+ skipNewline: () => skip_newline_default,
474
+ skipSpaces: () => skipSpaces,
475
+ skipToLineEnd: () => skipToLineEnd,
476
+ skipTrailingComment: () => skip_trailing_comment_default,
477
+ skipWhitespace: () => skipWhitespace
478
+ });
479
+ var init_util_shared = __esm({
480
+ "src/common/util-shared.js"() {
481
+ init_util();
482
+ }
483
+ });
484
+
485
+ // src/main/version.evaluate.cjs
486
+ var require_version_evaluate = __commonJS({
487
+ "src/main/version.evaluate.cjs"(exports2, module2) {
488
+ module2.exports = "3.0.0-alpha.2";
489
+ }
490
+ });
491
+
492
+ // src/index.cjs
493
+ var prettierPromise = import("./index.mjs");
494
+ var functionNames = [
495
+ "formatWithCursor",
496
+ "format",
497
+ "check",
498
+ "resolveConfig",
499
+ "resolveConfigFile",
500
+ "clearConfigCache",
501
+ "getFileInfo",
502
+ "getSupportInfo"
503
+ ];
504
+ var prettier = /* @__PURE__ */ Object.create(null);
505
+ for (const name of functionNames) {
506
+ prettier[name] = function(...args) {
507
+ return prettierPromise.then((prettier2) => prettier2[name](...args));
508
+ };
509
+ }
510
+ if (true) {
511
+ prettier.util = (init_util_shared(), __toCommonJS(util_shared_exports));
512
+ prettier.doc = require("./doc.js");
513
+ } else {
514
+ Object.defineProperties(prettier, {
515
+ util: {
516
+ get() {
517
+ throw new Error(
518
+ "prettier.util is not available in development CommonJS version"
519
+ );
520
+ }
521
+ },
522
+ doc: {
523
+ get() {
524
+ throw new Error(
525
+ "prettier.doc is not available in development CommonJS version"
526
+ );
527
+ }
528
+ }
529
+ });
530
+ }
531
+ prettier.version = require_version_evaluate();
532
+ module.exports = prettier;