dorian 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +15 -0
  3. data/.github/workflows/ci.yml +38 -0
  4. data/.gitignore +30 -0
  5. data/.node-version +1 -0
  6. data/.prettierignore +2 -0
  7. data/.rubocop.yml +129 -0
  8. data/.ruby-version +1 -0
  9. data/.tool-versions +3 -0
  10. data/Gemfile +20 -0
  11. data/Gemfile.lock +186 -0
  12. data/LICENSE +19 -0
  13. data/README.md +24 -0
  14. data/VERSION +1 -1
  15. data/bin/bundle +123 -0
  16. data/bin/bundle-audit +31 -0
  17. data/bin/bundler-audit +31 -0
  18. data/bin/rspec +31 -0
  19. data/bin/rubocop +31 -0
  20. data/dorian.gemspec +35 -0
  21. data/lib/dorian/bin.rb +739 -81
  22. data/package-lock.json +39 -0
  23. data/package.json +11 -0
  24. data/samples/books.json +33 -0
  25. data/samples/books.jsonl +3 -0
  26. data/samples/config.yml +27 -0
  27. data/samples/config_2.yml +22 -0
  28. data/samples/maths.js +1 -0
  29. data/samples/numbers.raw +10 -0
  30. data/samples/people.csv +6 -0
  31. data/samples/people.yml +28 -0
  32. data/samples/query.sql +7 -0
  33. data/samples/user.json +31 -0
  34. data/spec/dorian_spec.rb +276 -0
  35. data/spec/spec_helper.rb +3 -0
  36. data/vendor/groovy-beautify/LICENSE.MD +21 -0
  37. data/vendor/groovy-beautify/README.md +65 -0
  38. data/vendor/groovy-beautify/dist/__tests__/index.test.d.ts +1 -0
  39. data/vendor/groovy-beautify/dist/cjs/index.js +573 -0
  40. data/vendor/groovy-beautify/dist/cjs/package.json +3 -0
  41. data/vendor/groovy-beautify/dist/es/index.js +682 -0
  42. data/vendor/groovy-beautify/dist/es/package.json +3 -0
  43. data/vendor/groovy-beautify/dist/formatter/FormatRule.d.ts +14 -0
  44. data/vendor/groovy-beautify/dist/formatter/Formatter.d.ts +11 -0
  45. data/vendor/groovy-beautify/dist/formatter/GroovyFormatRules.d.ts +3 -0
  46. data/vendor/groovy-beautify/dist/formatter/__tests__/formatter.test.d.ts +1 -0
  47. data/vendor/groovy-beautify/dist/index.d.ts +5 -0
  48. data/vendor/groovy-beautify/dist/parser/GroovyParseRules.d.ts +3 -0
  49. data/vendor/groovy-beautify/dist/parser/ParseRule.d.ts +23 -0
  50. data/vendor/groovy-beautify/dist/parser/Parser.d.ts +29 -0
  51. data/vendor/groovy-beautify/dist/parser/__tests__/parser.test.d.ts +1 -0
  52. data/vendor/groovy-beautify/dist/parser/types.d.ts +6 -0
  53. data/vendor/groovy-beautify/dist/utils/text.d.ts +4 -0
  54. data/vendor/groovy-beautify/package.json +55 -0
  55. data/vendor/prettier/LICENSE +4379 -0
  56. data/vendor/prettier/README.md +109 -0
  57. data/vendor/prettier/bin/prettier.cjs +71 -0
  58. data/vendor/prettier/doc.d.ts +243 -0
  59. data/vendor/prettier/doc.js +1545 -0
  60. data/vendor/prettier/doc.mjs +1503 -0
  61. data/vendor/prettier/index.cjs +825 -0
  62. data/vendor/prettier/index.d.ts +941 -0
  63. data/vendor/prettier/index.mjs +25899 -0
  64. data/vendor/prettier/internal/cli.mjs +4366 -0
  65. data/vendor/prettier/package.json +198 -0
  66. data/vendor/prettier/plugins/acorn.d.ts +6 -0
  67. data/vendor/prettier/plugins/acorn.js +6618 -0
  68. data/vendor/prettier/plugins/acorn.mjs +6456 -0
  69. data/vendor/prettier/plugins/angular.d.ts +8 -0
  70. data/vendor/prettier/plugins/angular.js +2435 -0
  71. data/vendor/prettier/plugins/angular.mjs +2375 -0
  72. data/vendor/prettier/plugins/babel.d.ts +18 -0
  73. data/vendor/prettier/plugins/babel.js +14271 -0
  74. data/vendor/prettier/plugins/babel.mjs +13986 -0
  75. data/vendor/prettier/plugins/estree.d.ts +1 -0
  76. data/vendor/prettier/plugins/estree.js +9487 -0
  77. data/vendor/prettier/plugins/estree.mjs +9279 -0
  78. data/vendor/prettier/plugins/flow.d.ts +5 -0
  79. data/vendor/prettier/plugins/flow.js +51477 -0
  80. data/vendor/prettier/plugins/flow.mjs +51219 -0
  81. data/vendor/prettier/plugins/glimmer.d.ts +5 -0
  82. data/vendor/prettier/plugins/glimmer.js +8534 -0
  83. data/vendor/prettier/plugins/glimmer.mjs +8421 -0
  84. data/vendor/prettier/plugins/graphql.d.ts +5 -0
  85. data/vendor/prettier/plugins/graphql.js +2421 -0
  86. data/vendor/prettier/plugins/graphql.mjs +2347 -0
  87. data/vendor/prettier/plugins/html.d.ts +8 -0
  88. data/vendor/prettier/plugins/html.js +8182 -0
  89. data/vendor/prettier/plugins/html.mjs +8077 -0
  90. data/vendor/prettier/plugins/markdown.d.ts +7 -0
  91. data/vendor/prettier/plugins/markdown.js +9068 -0
  92. data/vendor/prettier/plugins/markdown.mjs +8977 -0
  93. data/vendor/prettier/plugins/meriyah.d.ts +5 -0
  94. data/vendor/prettier/plugins/meriyah.js +5953 -0
  95. data/vendor/prettier/plugins/meriyah.mjs +5800 -0
  96. data/vendor/prettier/plugins/postcss.d.ts +7 -0
  97. data/vendor/prettier/plugins/postcss.js +9244 -0
  98. data/vendor/prettier/plugins/postcss.mjs +9046 -0
  99. data/vendor/prettier/plugins/typescript.d.ts +5 -0
  100. data/vendor/prettier/plugins/typescript.js +38058 -0
  101. data/vendor/prettier/plugins/typescript.mjs +37732 -0
  102. data/vendor/prettier/plugins/yaml.d.ts +5 -0
  103. data/vendor/prettier/plugins/yaml.js +7425 -0
  104. data/vendor/prettier/plugins/yaml.mjs +7329 -0
  105. data/vendor/prettier/standalone.d.ts +33 -0
  106. data/vendor/prettier/standalone.js +3984 -0
  107. data/vendor/prettier/standalone.mjs +3938 -0
  108. data/vendor/sql-formatter.js +18762 -0
  109. metadata +205 -2
@@ -0,0 +1,825 @@
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) =>
9
+ function __init() {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])((fn = 0))), res;
11
+ };
12
+ var __commonJS = (cb, mod) =>
13
+ function __require() {
14
+ return (
15
+ mod ||
16
+ (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod),
17
+ mod.exports
18
+ );
19
+ };
20
+ var __export = (target, all) => {
21
+ for (var name in all)
22
+ __defProp(target, name, { get: all[name], enumerable: true });
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if ((from && typeof from === "object") || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, {
29
+ get: () => from[key],
30
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
31
+ });
32
+ }
33
+ return to;
34
+ };
35
+ var __toESM = (mod, isNodeMode, target) => (
36
+ (target = mod != null ? __create(__getProtoOf(mod)) : {}),
37
+ __copyProps(
38
+ // If the importer is in node compatibility mode or this is not an ESM
39
+ // file that has been converted to a CommonJS file using a Babel-
40
+ // compatible transform (i.e. "__esModule" has not been set), then set
41
+ // "default" to the CommonJS "module.exports" for node compatibility.
42
+ isNodeMode || !mod || !mod.__esModule
43
+ ? __defProp(target, "default", { value: mod, enumerable: true })
44
+ : target,
45
+ mod,
46
+ )
47
+ );
48
+ var __toCommonJS = (mod) =>
49
+ __copyProps(__defProp({}, "__esModule", { value: true }), mod);
50
+
51
+ // src/utils/skip.js
52
+ function skip(characters) {
53
+ return (text, startIndex, options) => {
54
+ const backwards = Boolean(options == null ? void 0 : options.backwards);
55
+ if (startIndex === false) {
56
+ return false;
57
+ }
58
+ const { length } = text;
59
+ let cursor = startIndex;
60
+ while (cursor >= 0 && cursor < length) {
61
+ const character = text.charAt(cursor);
62
+ if (characters instanceof RegExp) {
63
+ if (!characters.test(character)) {
64
+ return cursor;
65
+ }
66
+ } else if (!characters.includes(character)) {
67
+ return cursor;
68
+ }
69
+ backwards ? cursor-- : cursor++;
70
+ }
71
+ if (cursor === -1 || cursor === length) {
72
+ return cursor;
73
+ }
74
+ return false;
75
+ };
76
+ }
77
+ var skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine;
78
+ var init_skip = __esm({
79
+ "src/utils/skip.js"() {
80
+ skipWhitespace = skip(/\s/u);
81
+ skipSpaces = skip(" ");
82
+ skipToLineEnd = skip(",; ");
83
+ skipEverythingButNewLine = skip(/[^\n\r]/u);
84
+ },
85
+ });
86
+
87
+ // src/utils/skip-inline-comment.js
88
+ function skipInlineComment(text, startIndex) {
89
+ if (startIndex === false) {
90
+ return false;
91
+ }
92
+ if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "*") {
93
+ for (let i = startIndex + 2; i < text.length; ++i) {
94
+ if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") {
95
+ return i + 2;
96
+ }
97
+ }
98
+ }
99
+ return startIndex;
100
+ }
101
+ var skip_inline_comment_default;
102
+ var init_skip_inline_comment = __esm({
103
+ "src/utils/skip-inline-comment.js"() {
104
+ skip_inline_comment_default = skipInlineComment;
105
+ },
106
+ });
107
+
108
+ // src/utils/skip-newline.js
109
+ function skipNewline(text, startIndex, options) {
110
+ const backwards = Boolean(options == null ? void 0 : options.backwards);
111
+ if (startIndex === false) {
112
+ return false;
113
+ }
114
+ const character = text.charAt(startIndex);
115
+ if (backwards) {
116
+ if (text.charAt(startIndex - 1) === "\r" && character === "\n") {
117
+ return startIndex - 2;
118
+ }
119
+ if (
120
+ character === "\n" ||
121
+ character === "\r" ||
122
+ character === "\u2028" ||
123
+ character === "\u2029"
124
+ ) {
125
+ return startIndex - 1;
126
+ }
127
+ } else {
128
+ if (character === "\r" && text.charAt(startIndex + 1) === "\n") {
129
+ return startIndex + 2;
130
+ }
131
+ if (
132
+ character === "\n" ||
133
+ character === "\r" ||
134
+ character === "\u2028" ||
135
+ character === "\u2029"
136
+ ) {
137
+ return startIndex + 1;
138
+ }
139
+ }
140
+ return startIndex;
141
+ }
142
+ var skip_newline_default;
143
+ var init_skip_newline = __esm({
144
+ "src/utils/skip-newline.js"() {
145
+ skip_newline_default = skipNewline;
146
+ },
147
+ });
148
+
149
+ // src/utils/skip-trailing-comment.js
150
+ function skipTrailingComment(text, startIndex) {
151
+ if (startIndex === false) {
152
+ return false;
153
+ }
154
+ if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "/") {
155
+ return skipEverythingButNewLine(text, startIndex);
156
+ }
157
+ return startIndex;
158
+ }
159
+ var skip_trailing_comment_default;
160
+ var init_skip_trailing_comment = __esm({
161
+ "src/utils/skip-trailing-comment.js"() {
162
+ init_skip();
163
+ skip_trailing_comment_default = skipTrailingComment;
164
+ },
165
+ });
166
+
167
+ // src/utils/get-next-non-space-non-comment-character-index.js
168
+ function getNextNonSpaceNonCommentCharacterIndex(text, startIndex) {
169
+ let oldIdx = null;
170
+ let nextIdx = startIndex;
171
+ while (nextIdx !== oldIdx) {
172
+ oldIdx = nextIdx;
173
+ nextIdx = skipSpaces(text, nextIdx);
174
+ nextIdx = skip_inline_comment_default(text, nextIdx);
175
+ nextIdx = skip_trailing_comment_default(text, nextIdx);
176
+ nextIdx = skip_newline_default(text, nextIdx);
177
+ }
178
+ return nextIdx;
179
+ }
180
+ var get_next_non_space_non_comment_character_index_default;
181
+ var init_get_next_non_space_non_comment_character_index = __esm({
182
+ "src/utils/get-next-non-space-non-comment-character-index.js"() {
183
+ init_skip();
184
+ init_skip_inline_comment();
185
+ init_skip_newline();
186
+ init_skip_trailing_comment();
187
+ get_next_non_space_non_comment_character_index_default =
188
+ getNextNonSpaceNonCommentCharacterIndex;
189
+ },
190
+ });
191
+
192
+ // src/utils/has-newline.js
193
+ function hasNewline(text, startIndex, options = {}) {
194
+ const idx = skipSpaces(
195
+ text,
196
+ options.backwards ? startIndex - 1 : startIndex,
197
+ options,
198
+ );
199
+ const idx2 = skip_newline_default(text, idx, options);
200
+ return idx !== idx2;
201
+ }
202
+ var has_newline_default;
203
+ var init_has_newline = __esm({
204
+ "src/utils/has-newline.js"() {
205
+ init_skip();
206
+ init_skip_newline();
207
+ has_newline_default = hasNewline;
208
+ },
209
+ });
210
+
211
+ // src/utils/is-next-line-empty.js
212
+ function isNextLineEmpty(text, startIndex) {
213
+ let oldIdx = null;
214
+ let idx = startIndex;
215
+ while (idx !== oldIdx) {
216
+ oldIdx = idx;
217
+ idx = skipToLineEnd(text, idx);
218
+ idx = skip_inline_comment_default(text, idx);
219
+ idx = skipSpaces(text, idx);
220
+ }
221
+ idx = skip_trailing_comment_default(text, idx);
222
+ idx = skip_newline_default(text, idx);
223
+ return idx !== false && has_newline_default(text, idx);
224
+ }
225
+ var is_next_line_empty_default;
226
+ var init_is_next_line_empty = __esm({
227
+ "src/utils/is-next-line-empty.js"() {
228
+ init_has_newline();
229
+ init_skip();
230
+ init_skip_inline_comment();
231
+ init_skip_newline();
232
+ init_skip_trailing_comment();
233
+ is_next_line_empty_default = isNextLineEmpty;
234
+ },
235
+ });
236
+
237
+ // src/utils/is-previous-line-empty.js
238
+ function isPreviousLineEmpty(text, startIndex) {
239
+ let idx = startIndex - 1;
240
+ idx = skipSpaces(text, idx, { backwards: true });
241
+ idx = skip_newline_default(text, idx, { backwards: true });
242
+ idx = skipSpaces(text, idx, { backwards: true });
243
+ const idx2 = skip_newline_default(text, idx, { backwards: true });
244
+ return idx !== idx2;
245
+ }
246
+ var is_previous_line_empty_default;
247
+ var init_is_previous_line_empty = __esm({
248
+ "src/utils/is-previous-line-empty.js"() {
249
+ init_skip();
250
+ init_skip_newline();
251
+ is_previous_line_empty_default = isPreviousLineEmpty;
252
+ },
253
+ });
254
+
255
+ // src/main/comments/utils.js
256
+ function describeNodeForDebugging(node) {
257
+ const nodeType = node.type || node.kind || "(unknown type)";
258
+ let nodeName = String(
259
+ node.name ||
260
+ (node.id && (typeof node.id === "object" ? node.id.name : node.id)) ||
261
+ (node.key && (typeof node.key === "object" ? node.key.name : node.key)) ||
262
+ (node.value &&
263
+ (typeof node.value === "object" ? "" : String(node.value))) ||
264
+ node.operator ||
265
+ "",
266
+ );
267
+ if (nodeName.length > 20) {
268
+ nodeName = nodeName.slice(0, 19) + "\u2026";
269
+ }
270
+ return nodeType + (nodeName ? " " + nodeName : "");
271
+ }
272
+ function addCommentHelper(node, comment) {
273
+ const comments = node.comments ?? (node.comments = []);
274
+ comments.push(comment);
275
+ comment.printed = false;
276
+ comment.nodeDescription = describeNodeForDebugging(node);
277
+ }
278
+ function addLeadingComment(node, comment) {
279
+ comment.leading = true;
280
+ comment.trailing = false;
281
+ addCommentHelper(node, comment);
282
+ }
283
+ function addDanglingComment(node, comment, marker) {
284
+ comment.leading = false;
285
+ comment.trailing = false;
286
+ if (marker) {
287
+ comment.marker = marker;
288
+ }
289
+ addCommentHelper(node, comment);
290
+ }
291
+ function addTrailingComment(node, comment) {
292
+ comment.leading = false;
293
+ comment.trailing = true;
294
+ addCommentHelper(node, comment);
295
+ }
296
+ var init_utils = __esm({
297
+ "src/main/comments/utils.js"() {},
298
+ });
299
+
300
+ // src/utils/get-alignment-size.js
301
+ function getAlignmentSize(text, tabWidth, startIndex = 0) {
302
+ let size = 0;
303
+ for (let i = startIndex; i < text.length; ++i) {
304
+ if (text[i] === " ") {
305
+ size = size + tabWidth - (size % tabWidth);
306
+ } else {
307
+ size++;
308
+ }
309
+ }
310
+ return size;
311
+ }
312
+ var get_alignment_size_default;
313
+ var init_get_alignment_size = __esm({
314
+ "src/utils/get-alignment-size.js"() {
315
+ get_alignment_size_default = getAlignmentSize;
316
+ },
317
+ });
318
+
319
+ // src/utils/get-indent-size.js
320
+ function getIndentSize(value, tabWidth) {
321
+ const lastNewlineIndex = value.lastIndexOf("\n");
322
+ if (lastNewlineIndex === -1) {
323
+ return 0;
324
+ }
325
+ return get_alignment_size_default(
326
+ // All the leading whitespaces
327
+ value.slice(lastNewlineIndex + 1).match(/^[\t ]*/u)[0],
328
+ tabWidth,
329
+ );
330
+ }
331
+ var get_indent_size_default;
332
+ var init_get_indent_size = __esm({
333
+ "src/utils/get-indent-size.js"() {
334
+ init_get_alignment_size();
335
+ get_indent_size_default = getIndentSize;
336
+ },
337
+ });
338
+
339
+ // node_modules/escape-string-regexp/index.js
340
+ function escapeStringRegexp(string) {
341
+ if (typeof string !== "string") {
342
+ throw new TypeError("Expected a string");
343
+ }
344
+ return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
345
+ }
346
+ var init_escape_string_regexp = __esm({
347
+ "node_modules/escape-string-regexp/index.js"() {},
348
+ });
349
+
350
+ // src/utils/get-max-continuous-count.js
351
+ function getMaxContinuousCount(text, searchString) {
352
+ const results = text.match(
353
+ new RegExp(`(${escapeStringRegexp(searchString)})+`, "gu"),
354
+ );
355
+ if (results === null) {
356
+ return 0;
357
+ }
358
+ return results.reduce(
359
+ (maxCount, result) =>
360
+ Math.max(maxCount, result.length / searchString.length),
361
+ 0,
362
+ );
363
+ }
364
+ var get_max_continuous_count_default;
365
+ var init_get_max_continuous_count = __esm({
366
+ "src/utils/get-max-continuous-count.js"() {
367
+ init_escape_string_regexp();
368
+ get_max_continuous_count_default = getMaxContinuousCount;
369
+ },
370
+ });
371
+
372
+ // src/utils/get-next-non-space-non-comment-character.js
373
+ function getNextNonSpaceNonCommentCharacter(text, startIndex) {
374
+ const index = get_next_non_space_non_comment_character_index_default(
375
+ text,
376
+ startIndex,
377
+ );
378
+ return index === false ? "" : text.charAt(index);
379
+ }
380
+ var get_next_non_space_non_comment_character_default;
381
+ var init_get_next_non_space_non_comment_character = __esm({
382
+ "src/utils/get-next-non-space-non-comment-character.js"() {
383
+ init_get_next_non_space_non_comment_character_index();
384
+ get_next_non_space_non_comment_character_default =
385
+ getNextNonSpaceNonCommentCharacter;
386
+ },
387
+ });
388
+
389
+ // node_modules/emoji-regex/index.mjs
390
+ var emoji_regex_default;
391
+ var init_emoji_regex = __esm({
392
+ "node_modules/emoji-regex/index.mjs"() {
393
+ emoji_regex_default = () => {
394
+ return /[#*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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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-\uDED7\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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\uDD3D\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\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]|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\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;
395
+ };
396
+ },
397
+ });
398
+
399
+ // node_modules/get-east-asian-width/lookup.js
400
+ function isFullWidth(x) {
401
+ return (
402
+ x === 12288 || (x >= 65281 && x <= 65376) || (x >= 65504 && x <= 65510)
403
+ );
404
+ }
405
+ function isWide(x) {
406
+ return (
407
+ (x >= 4352 && x <= 4447) ||
408
+ x === 8986 ||
409
+ x === 8987 ||
410
+ x === 9001 ||
411
+ x === 9002 ||
412
+ (x >= 9193 && x <= 9196) ||
413
+ x === 9200 ||
414
+ x === 9203 ||
415
+ x === 9725 ||
416
+ x === 9726 ||
417
+ x === 9748 ||
418
+ x === 9749 ||
419
+ (x >= 9800 && x <= 9811) ||
420
+ x === 9855 ||
421
+ x === 9875 ||
422
+ x === 9889 ||
423
+ x === 9898 ||
424
+ x === 9899 ||
425
+ x === 9917 ||
426
+ x === 9918 ||
427
+ x === 9924 ||
428
+ x === 9925 ||
429
+ x === 9934 ||
430
+ x === 9940 ||
431
+ x === 9962 ||
432
+ x === 9970 ||
433
+ x === 9971 ||
434
+ x === 9973 ||
435
+ x === 9978 ||
436
+ x === 9981 ||
437
+ x === 9989 ||
438
+ x === 9994 ||
439
+ x === 9995 ||
440
+ x === 10024 ||
441
+ x === 10060 ||
442
+ x === 10062 ||
443
+ (x >= 10067 && x <= 10069) ||
444
+ x === 10071 ||
445
+ (x >= 10133 && x <= 10135) ||
446
+ x === 10160 ||
447
+ x === 10175 ||
448
+ x === 11035 ||
449
+ x === 11036 ||
450
+ x === 11088 ||
451
+ x === 11093 ||
452
+ (x >= 11904 && x <= 11929) ||
453
+ (x >= 11931 && x <= 12019) ||
454
+ (x >= 12032 && x <= 12245) ||
455
+ (x >= 12272 && x <= 12287) ||
456
+ (x >= 12289 && x <= 12350) ||
457
+ (x >= 12353 && x <= 12438) ||
458
+ (x >= 12441 && x <= 12543) ||
459
+ (x >= 12549 && x <= 12591) ||
460
+ (x >= 12593 && x <= 12686) ||
461
+ (x >= 12688 && x <= 12771) ||
462
+ (x >= 12783 && x <= 12830) ||
463
+ (x >= 12832 && x <= 12871) ||
464
+ (x >= 12880 && x <= 19903) ||
465
+ (x >= 19968 && x <= 42124) ||
466
+ (x >= 42128 && x <= 42182) ||
467
+ (x >= 43360 && x <= 43388) ||
468
+ (x >= 44032 && x <= 55203) ||
469
+ (x >= 63744 && x <= 64255) ||
470
+ (x >= 65040 && x <= 65049) ||
471
+ (x >= 65072 && x <= 65106) ||
472
+ (x >= 65108 && x <= 65126) ||
473
+ (x >= 65128 && x <= 65131) ||
474
+ (x >= 94176 && x <= 94180) ||
475
+ x === 94192 ||
476
+ x === 94193 ||
477
+ (x >= 94208 && x <= 100343) ||
478
+ (x >= 100352 && x <= 101589) ||
479
+ (x >= 101632 && x <= 101640) ||
480
+ (x >= 110576 && x <= 110579) ||
481
+ (x >= 110581 && x <= 110587) ||
482
+ x === 110589 ||
483
+ x === 110590 ||
484
+ (x >= 110592 && x <= 110882) ||
485
+ x === 110898 ||
486
+ (x >= 110928 && x <= 110930) ||
487
+ x === 110933 ||
488
+ (x >= 110948 && x <= 110951) ||
489
+ (x >= 110960 && x <= 111355) ||
490
+ x === 126980 ||
491
+ x === 127183 ||
492
+ x === 127374 ||
493
+ (x >= 127377 && x <= 127386) ||
494
+ (x >= 127488 && x <= 127490) ||
495
+ (x >= 127504 && x <= 127547) ||
496
+ (x >= 127552 && x <= 127560) ||
497
+ x === 127568 ||
498
+ x === 127569 ||
499
+ (x >= 127584 && x <= 127589) ||
500
+ (x >= 127744 && x <= 127776) ||
501
+ (x >= 127789 && x <= 127797) ||
502
+ (x >= 127799 && x <= 127868) ||
503
+ (x >= 127870 && x <= 127891) ||
504
+ (x >= 127904 && x <= 127946) ||
505
+ (x >= 127951 && x <= 127955) ||
506
+ (x >= 127968 && x <= 127984) ||
507
+ x === 127988 ||
508
+ (x >= 127992 && x <= 128062) ||
509
+ x === 128064 ||
510
+ (x >= 128066 && x <= 128252) ||
511
+ (x >= 128255 && x <= 128317) ||
512
+ (x >= 128331 && x <= 128334) ||
513
+ (x >= 128336 && x <= 128359) ||
514
+ x === 128378 ||
515
+ x === 128405 ||
516
+ x === 128406 ||
517
+ x === 128420 ||
518
+ (x >= 128507 && x <= 128591) ||
519
+ (x >= 128640 && x <= 128709) ||
520
+ x === 128716 ||
521
+ (x >= 128720 && x <= 128722) ||
522
+ (x >= 128725 && x <= 128727) ||
523
+ (x >= 128732 && x <= 128735) ||
524
+ x === 128747 ||
525
+ x === 128748 ||
526
+ (x >= 128756 && x <= 128764) ||
527
+ (x >= 128992 && x <= 129003) ||
528
+ x === 129008 ||
529
+ (x >= 129292 && x <= 129338) ||
530
+ (x >= 129340 && x <= 129349) ||
531
+ (x >= 129351 && x <= 129535) ||
532
+ (x >= 129648 && x <= 129660) ||
533
+ (x >= 129664 && x <= 129672) ||
534
+ (x >= 129680 && x <= 129725) ||
535
+ (x >= 129727 && x <= 129733) ||
536
+ (x >= 129742 && x <= 129755) ||
537
+ (x >= 129760 && x <= 129768) ||
538
+ (x >= 129776 && x <= 129784) ||
539
+ (x >= 131072 && x <= 196605) ||
540
+ (x >= 196608 && x <= 262141)
541
+ );
542
+ }
543
+ var init_lookup = __esm({
544
+ "node_modules/get-east-asian-width/lookup.js"() {},
545
+ });
546
+
547
+ // node_modules/get-east-asian-width/index.js
548
+ var _isNarrowWidth;
549
+ var init_get_east_asian_width = __esm({
550
+ "node_modules/get-east-asian-width/index.js"() {
551
+ init_lookup();
552
+ _isNarrowWidth = (codePoint) =>
553
+ !(isFullWidth(codePoint) || isWide(codePoint));
554
+ },
555
+ });
556
+
557
+ // src/utils/get-string-width.js
558
+ function getStringWidth(text) {
559
+ if (!text) {
560
+ return 0;
561
+ }
562
+ if (!notAsciiRegex.test(text)) {
563
+ return text.length;
564
+ }
565
+ text = text.replace(emoji_regex_default(), " ");
566
+ let width = 0;
567
+ for (const character of text) {
568
+ const codePoint = character.codePointAt(0);
569
+ if (codePoint <= 31 || (codePoint >= 127 && codePoint <= 159)) {
570
+ continue;
571
+ }
572
+ if (codePoint >= 768 && codePoint <= 879) {
573
+ continue;
574
+ }
575
+ width += _isNarrowWidth(codePoint) ? 1 : 2;
576
+ }
577
+ return width;
578
+ }
579
+ var notAsciiRegex, get_string_width_default;
580
+ var init_get_string_width = __esm({
581
+ "src/utils/get-string-width.js"() {
582
+ init_emoji_regex();
583
+ init_get_east_asian_width();
584
+ notAsciiRegex = /[^\x20-\x7F]/u;
585
+ get_string_width_default = getStringWidth;
586
+ },
587
+ });
588
+
589
+ // src/utils/has-newline-in-range.js
590
+ function hasNewlineInRange(text, startIndex, endIndex) {
591
+ for (let i = startIndex; i < endIndex; ++i) {
592
+ if (text.charAt(i) === "\n") {
593
+ return true;
594
+ }
595
+ }
596
+ return false;
597
+ }
598
+ var has_newline_in_range_default;
599
+ var init_has_newline_in_range = __esm({
600
+ "src/utils/has-newline-in-range.js"() {
601
+ has_newline_in_range_default = hasNewlineInRange;
602
+ },
603
+ });
604
+
605
+ // src/utils/has-spaces.js
606
+ function hasSpaces(text, startIndex, options = {}) {
607
+ const idx = skipSpaces(
608
+ text,
609
+ options.backwards ? startIndex - 1 : startIndex,
610
+ options,
611
+ );
612
+ return idx !== startIndex;
613
+ }
614
+ var has_spaces_default;
615
+ var init_has_spaces = __esm({
616
+ "src/utils/has-spaces.js"() {
617
+ init_skip();
618
+ has_spaces_default = hasSpaces;
619
+ },
620
+ });
621
+
622
+ // scripts/build/shims/string-replace-all.js
623
+ var stringReplaceAll, string_replace_all_default;
624
+ var init_string_replace_all = __esm({
625
+ "scripts/build/shims/string-replace-all.js"() {
626
+ stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
627
+ if (isOptionalObject && (original === void 0 || original === null)) {
628
+ return;
629
+ }
630
+ if (original.replaceAll) {
631
+ return original.replaceAll(pattern, replacement);
632
+ }
633
+ if (pattern.global) {
634
+ return original.replace(pattern, replacement);
635
+ }
636
+ return original.split(pattern).join(replacement);
637
+ };
638
+ string_replace_all_default = stringReplaceAll;
639
+ },
640
+ });
641
+
642
+ // src/utils/make-string.js
643
+ function makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) {
644
+ const otherQuote = enclosingQuote === '"' ? "'" : '"';
645
+ const regex = /\\(.)|(["'])/gsu;
646
+ const raw = string_replace_all_default(
647
+ /* isOptionalObject */
648
+ false,
649
+ rawText,
650
+ regex,
651
+ (match, escaped, quote) => {
652
+ if (escaped === otherQuote) {
653
+ return escaped;
654
+ }
655
+ if (quote === enclosingQuote) {
656
+ return "\\" + quote;
657
+ }
658
+ if (quote) {
659
+ return quote;
660
+ }
661
+ return unescapeUnnecessaryEscapes &&
662
+ /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(escaped)
663
+ ? escaped
664
+ : "\\" + escaped;
665
+ },
666
+ );
667
+ return enclosingQuote + raw + enclosingQuote;
668
+ }
669
+ var make_string_default;
670
+ var init_make_string = __esm({
671
+ "src/utils/make-string.js"() {
672
+ init_string_replace_all();
673
+ make_string_default = makeString;
674
+ },
675
+ });
676
+
677
+ // src/utils/public.js
678
+ var public_exports = {};
679
+ __export(public_exports, {
680
+ addDanglingComment: () => addDanglingComment,
681
+ addLeadingComment: () => addLeadingComment,
682
+ addTrailingComment: () => addTrailingComment,
683
+ getAlignmentSize: () => get_alignment_size_default,
684
+ getIndentSize: () => get_indent_size_default,
685
+ getMaxContinuousCount: () => get_max_continuous_count_default,
686
+ getNextNonSpaceNonCommentCharacter: () =>
687
+ get_next_non_space_non_comment_character_default,
688
+ getNextNonSpaceNonCommentCharacterIndex: () =>
689
+ getNextNonSpaceNonCommentCharacterIndex2,
690
+ getStringWidth: () => get_string_width_default,
691
+ hasNewline: () => has_newline_default,
692
+ hasNewlineInRange: () => has_newline_in_range_default,
693
+ hasSpaces: () => has_spaces_default,
694
+ isNextLineEmpty: () => isNextLineEmpty2,
695
+ isNextLineEmptyAfterIndex: () => is_next_line_empty_default,
696
+ isPreviousLineEmpty: () => isPreviousLineEmpty2,
697
+ makeString: () => make_string_default,
698
+ skip: () => skip,
699
+ skipEverythingButNewLine: () => skipEverythingButNewLine,
700
+ skipInlineComment: () => skip_inline_comment_default,
701
+ skipNewline: () => skip_newline_default,
702
+ skipSpaces: () => skipSpaces,
703
+ skipToLineEnd: () => skipToLineEnd,
704
+ skipTrailingComment: () => skip_trailing_comment_default,
705
+ skipWhitespace: () => skipWhitespace,
706
+ });
707
+ function legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) {
708
+ return get_next_non_space_non_comment_character_index_default(
709
+ text,
710
+ locEnd(node),
711
+ );
712
+ }
713
+ function getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) {
714
+ return arguments.length === 2 || typeof startIndex === "number"
715
+ ? get_next_non_space_non_comment_character_index_default(text, startIndex)
716
+ : // @ts-expect-error -- expected
717
+ // eslint-disable-next-line prefer-rest-params
718
+ legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments);
719
+ }
720
+ function legacyIsPreviousLineEmpty(text, node, locStart) {
721
+ return is_previous_line_empty_default(text, locStart(node));
722
+ }
723
+ function isPreviousLineEmpty2(text, startIndex) {
724
+ return arguments.length === 2 || typeof startIndex === "number"
725
+ ? is_previous_line_empty_default(text, startIndex)
726
+ : // @ts-expect-error -- expected
727
+ // eslint-disable-next-line prefer-rest-params
728
+ legacyIsPreviousLineEmpty(...arguments);
729
+ }
730
+ function legacyIsNextLineEmpty(text, node, locEnd) {
731
+ return is_next_line_empty_default(text, locEnd(node));
732
+ }
733
+ function isNextLineEmpty2(text, startIndex) {
734
+ return arguments.length === 2 || typeof startIndex === "number"
735
+ ? is_next_line_empty_default(text, startIndex)
736
+ : // @ts-expect-error -- expected
737
+ // eslint-disable-next-line prefer-rest-params
738
+ legacyIsNextLineEmpty(...arguments);
739
+ }
740
+ var init_public = __esm({
741
+ "src/utils/public.js"() {
742
+ init_get_next_non_space_non_comment_character_index();
743
+ init_is_next_line_empty();
744
+ init_is_previous_line_empty();
745
+ init_utils();
746
+ init_get_alignment_size();
747
+ init_get_indent_size();
748
+ init_get_max_continuous_count();
749
+ init_get_next_non_space_non_comment_character();
750
+ init_get_string_width();
751
+ init_has_newline();
752
+ init_has_newline_in_range();
753
+ init_has_spaces();
754
+ init_make_string();
755
+ init_skip();
756
+ init_skip_inline_comment();
757
+ init_skip_newline();
758
+ init_skip_trailing_comment();
759
+ },
760
+ });
761
+
762
+ // src/main/version.evaluate.cjs
763
+ var require_version_evaluate = __commonJS({
764
+ "src/main/version.evaluate.cjs"(exports2, module2) {
765
+ module2.exports = "3.3.3";
766
+ },
767
+ });
768
+
769
+ // src/index.cjs
770
+ var prettierPromise = import("./index.mjs");
771
+ var functionNames = [
772
+ "formatWithCursor",
773
+ "format",
774
+ "check",
775
+ "resolveConfig",
776
+ "resolveConfigFile",
777
+ "clearConfigCache",
778
+ "getFileInfo",
779
+ "getSupportInfo",
780
+ ];
781
+ var prettier = /* @__PURE__ */ Object.create(null);
782
+ for (const name of functionNames) {
783
+ prettier[name] = async (...args) => {
784
+ const prettier2 = await prettierPromise;
785
+ return prettier2[name](...args);
786
+ };
787
+ }
788
+ var debugApiFunctionNames = [
789
+ "parse",
790
+ "formatAST",
791
+ "formatDoc",
792
+ "printToDoc",
793
+ "printDocToString",
794
+ ];
795
+ var debugApis = /* @__PURE__ */ Object.create(null);
796
+ for (const name of debugApiFunctionNames) {
797
+ debugApis[name] = async (...args) => {
798
+ const prettier2 = await prettierPromise;
799
+ return prettier2.__debug[name](...args);
800
+ };
801
+ }
802
+ prettier.__debug = debugApis;
803
+ if (true) {
804
+ prettier.util = (init_public(), __toCommonJS(public_exports));
805
+ prettier.doc = require("./doc.js");
806
+ } else {
807
+ Object.defineProperties(prettier, {
808
+ util: {
809
+ get() {
810
+ throw new Error(
811
+ "prettier.util is not available in development CommonJS version",
812
+ );
813
+ },
814
+ },
815
+ doc: {
816
+ get() {
817
+ throw new Error(
818
+ "prettier.doc is not available in development CommonJS version",
819
+ );
820
+ },
821
+ },
822
+ });
823
+ }
824
+ prettier.version = require_version_evaluate();
825
+ module.exports = prettier;