@chainlink/external-adapter-framework 2.7.0 → 2.7.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 (127) hide show
  1. package/README.md +1 -1
  2. package/adapter/basic.js +1 -1
  3. package/adapter/basic.js.map +1 -1
  4. package/adapter/types.d.ts +1 -0
  5. package/generator-adapter/node_modules/.yarn-integrity +14 -13
  6. package/generator-adapter/node_modules/@types/node/README.md +2 -2
  7. package/generator-adapter/node_modules/@types/node/buffer.d.ts +1 -2
  8. package/generator-adapter/node_modules/@types/node/child_process.d.ts +26 -122
  9. package/generator-adapter/node_modules/@types/node/crypto.d.ts +17 -1
  10. package/generator-adapter/node_modules/@types/node/fs/promises.d.ts +41 -37
  11. package/generator-adapter/node_modules/@types/node/fs.d.ts +55 -44
  12. package/generator-adapter/node_modules/@types/node/globals.d.ts +150 -344
  13. package/generator-adapter/node_modules/@types/node/http.d.ts +6 -6
  14. package/generator-adapter/node_modules/@types/node/http2.d.ts +12 -1
  15. package/generator-adapter/node_modules/@types/node/https.d.ts +5 -0
  16. package/generator-adapter/node_modules/@types/node/index.d.ts +7 -3
  17. package/generator-adapter/node_modules/@types/node/{inspector.d.ts → inspector.generated.d.ts} +219 -10
  18. package/generator-adapter/node_modules/@types/node/module.d.ts +24 -0
  19. package/generator-adapter/node_modules/@types/node/package.json +3 -83
  20. package/generator-adapter/node_modules/@types/node/process.d.ts +3 -2
  21. package/generator-adapter/node_modules/@types/node/readline/promises.d.ts +0 -1
  22. package/generator-adapter/node_modules/@types/node/sqlite.d.ts +35 -0
  23. package/generator-adapter/node_modules/@types/node/stream/web.d.ts +4 -0
  24. package/generator-adapter/node_modules/@types/node/stream.d.ts +0 -11
  25. package/generator-adapter/node_modules/@types/node/test.d.ts +8 -0
  26. package/generator-adapter/node_modules/@types/node/ts5.6/index.d.ts +7 -3
  27. package/generator-adapter/node_modules/@types/node/url.d.ts +12 -3
  28. package/generator-adapter/node_modules/@types/node/util.d.ts +5 -2
  29. package/generator-adapter/node_modules/@types/node/v8.d.ts +27 -30
  30. package/generator-adapter/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  31. package/generator-adapter/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  32. package/generator-adapter/node_modules/@types/node/{dom-events.d.ts → web-globals/events.d.ts} +47 -52
  33. package/generator-adapter/node_modules/@types/node/web-globals/fetch.d.ts +46 -0
  34. package/generator-adapter/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  35. package/generator-adapter/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  36. package/generator-adapter/node_modules/@types/node/worker_threads.d.ts +39 -3
  37. package/generator-adapter/node_modules/@types/node/zlib.d.ts +8 -2
  38. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.d.ts +3 -0
  39. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js +12 -2
  40. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js.map +1 -1
  41. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.d.ts +3 -0
  42. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js +12 -2
  43. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js.map +1 -1
  44. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.d.ts +3 -0
  45. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js +12 -2
  46. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js.map +1 -1
  47. package/generator-adapter/node_modules/@yeoman/adapter/package.json +4 -4
  48. package/generator-adapter/node_modules/@yeoman/adapter/types/adapter.d.ts +12 -1
  49. package/generator-adapter/node_modules/@yeoman/types/package.json +3 -3
  50. package/generator-adapter/node_modules/@yeoman/types/types/environment/environment.d.ts +4 -1
  51. package/generator-adapter/node_modules/@yeoman/types/types/environment/methods-options.d.ts +7 -3
  52. package/generator-adapter/node_modules/@yeoman/types/types/generator/generator.d.ts +8 -5
  53. package/generator-adapter/node_modules/@yeoman/types/types/generator/utils.d.ts +1 -0
  54. package/generator-adapter/node_modules/ansi-regex/index.d.ts +9 -13
  55. package/generator-adapter/node_modules/ansi-regex/index.js +6 -6
  56. package/generator-adapter/node_modules/ansi-regex/license +1 -1
  57. package/generator-adapter/node_modules/ansi-regex/package.json +12 -6
  58. package/generator-adapter/node_modules/ansi-regex/readme.md +4 -22
  59. package/generator-adapter/node_modules/cli-spinners/index.d.ts +122 -111
  60. package/generator-adapter/node_modules/cli-spinners/index.js +7 -11
  61. package/generator-adapter/node_modules/cli-spinners/package.json +15 -9
  62. package/generator-adapter/node_modules/cli-spinners/readme.md +23 -3
  63. package/generator-adapter/node_modules/cli-spinners/spinners.json +44 -1
  64. package/generator-adapter/node_modules/emoji-regex/README.md +14 -48
  65. package/generator-adapter/node_modules/emoji-regex/index.d.ts +21 -1
  66. package/generator-adapter/node_modules/emoji-regex/index.js +5 -3
  67. package/generator-adapter/node_modules/emoji-regex/package.json +12 -7
  68. package/generator-adapter/node_modules/get-east-asian-width/index.js +2 -3
  69. package/generator-adapter/node_modules/get-east-asian-width/lookup.js +11 -11
  70. package/generator-adapter/node_modules/get-east-asian-width/package.json +1 -1
  71. package/generator-adapter/node_modules/ora/index.d.ts +3 -3
  72. package/generator-adapter/node_modules/ora/index.js +67 -48
  73. package/generator-adapter/node_modules/ora/node_modules/chalk/package.json +83 -0
  74. package/generator-adapter/node_modules/ora/node_modules/chalk/readme.md +297 -0
  75. package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.d.ts +325 -0
  76. package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.js +225 -0
  77. package/generator-adapter/node_modules/ora/node_modules/chalk/source/utilities.js +33 -0
  78. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  79. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  80. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  81. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  82. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  83. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  84. package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser-symbols.js +4 -0
  85. package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser.js +1 -8
  86. package/generator-adapter/node_modules/ora/node_modules/log-symbols/index.js +1 -20
  87. package/generator-adapter/node_modules/ora/node_modules/log-symbols/package.json +10 -7
  88. package/generator-adapter/node_modules/ora/node_modules/log-symbols/symbols.js +14 -0
  89. package/generator-adapter/node_modules/ora/node_modules/strip-ansi/package.json +3 -1
  90. package/generator-adapter/node_modules/ora/node_modules/strip-ansi/readme.md +5 -9
  91. package/generator-adapter/node_modules/ora/package.json +13 -13
  92. package/generator-adapter/node_modules/ora/readme.md +49 -3
  93. package/generator-adapter/node_modules/string-width/index.js +52 -45
  94. package/generator-adapter/node_modules/string-width/package.json +8 -7
  95. package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/index.d.ts +13 -9
  96. package/generator-adapter/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
  97. package/generator-adapter/node_modules/{ora/node_modules/log-symbols/node_modules/is-unicode-supported → strip-ansi/node_modules/ansi-regex}/license +1 -1
  98. package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/package.json +6 -12
  99. package/generator-adapter/node_modules/{ora → strip-ansi}/node_modules/ansi-regex/readme.md +22 -4
  100. package/generator-adapter/package.json +3 -3
  101. package/package.json +15 -14
  102. package/rate-limiting/index.d.ts +1 -1
  103. package/rate-limiting/index.js +5 -1
  104. package/rate-limiting/index.js.map +1 -1
  105. package/transports/http.d.ts +1 -2
  106. package/transports/websocket.js +53 -17
  107. package/transports/websocket.js.map +1 -1
  108. package/generator-adapter/node_modules/emoji-regex/index.mjs +0 -4
  109. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.d.ts +0 -33
  110. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.js +0 -10
  111. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/package.json +0 -61
  112. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.d.ts +0 -12
  113. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.js +0 -17
  114. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/package.json +0 -43
  115. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/readme.md +0 -35
  116. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/index.js +0 -10
  117. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/license +0 -9
  118. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/readme.md +0 -60
  119. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  120. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/README.md +0 -73
  121. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.d.ts +0 -23
  122. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.js +0 -6
  123. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/package.json +0 -50
  124. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/index.js +0 -0
  125. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/text.js +0 -0
  126. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/text.js +0 -0
  127. /package/generator-adapter/node_modules/ora/node_modules/{ansi-regex → chalk}/license +0 -0
@@ -287,6 +287,23 @@
287
287
  "⣶"
288
288
  ]
289
289
  },
290
+ "dots14": {
291
+ "interval": 80,
292
+ "frames": [
293
+ "⠉⠉",
294
+ "⠈⠙",
295
+ "⠀⠹",
296
+ "⠀⢸",
297
+ "⠀⣰",
298
+ "⢀⣠",
299
+ "⣀⣀",
300
+ "⣄⡀",
301
+ "⣆⠀",
302
+ "⡇⠀",
303
+ "⠏⠀",
304
+ "⠋⠁"
305
+ ]
306
+ },
290
307
  "dots8Bit": {
291
308
  "interval": 80,
292
309
  "frames": [
@@ -548,6 +565,19 @@
548
565
  "⣿"
549
566
  ]
550
567
  },
568
+ "dotsCircle": {
569
+ "interval": 80,
570
+ "frames": [
571
+ "⢎ ",
572
+ "⠎⠁",
573
+ "⠊⠑",
574
+ "⠈⠱",
575
+ " ⡱",
576
+ "⢀⡰",
577
+ "⢄⡠",
578
+ "⢆⡀"
579
+ ]
580
+ },
551
581
  "sand": {
552
582
  "interval": 80,
553
583
  "frames": [
@@ -608,6 +638,19 @@
608
638
  "-"
609
639
  ]
610
640
  },
641
+ "rollingLine": {
642
+ "interval": 80,
643
+ "frames": [
644
+ "/ ",
645
+ " - ",
646
+ " \\ ",
647
+ " |",
648
+ " |",
649
+ " \\ ",
650
+ " - ",
651
+ "/ "
652
+ ]
653
+ },
611
654
  "pipe": {
612
655
  "interval": 100,
613
656
  "frames": [
@@ -1044,7 +1087,7 @@
1044
1087
  "💙 ",
1045
1088
  "💜 ",
1046
1089
  "💚 ",
1047
- "❤️ "
1090
+ "💗 "
1048
1091
  ]
1049
1092
  },
1050
1093
  "clock": {
@@ -1,8 +1,8 @@
1
- # emoji-regex [![Build status](https://github.com/mathiasbynens/emoji-regex/actions/workflows/main.yml/badge.svg)](https://github.com/mathiasbynens/emoji-regex/actions/workflows/main.yml) [![emoji-regex on npm](https://img.shields.io/npm/v/emoji-regex)](https://www.npmjs.com/package/emoji-regex)
1
+ # emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex)
2
2
 
3
- _emoji-regex_ offers a regular expression to match all emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard. It’s based on [_emoji-test-regex-pattern_](https://github.com/mathiasbynens/emoji-test-regex-pattern), which generates (at build time) the regular expression pattern based on the Unicode Standard. As a result, _emoji-regex_ can easily be updated whenever new emoji are added to Unicode.
3
+ _emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard.
4
4
 
5
- Since each version of _emoji-regex_ is tied to the latest Unicode version at the time of release, results are deterministic. This is important for use cases like image replacement, where you want to guarantee that an image asset is available for every possibly matched emoji. If you don’t need a deterministic regex, a lighter-weight, general emoji pattern is available via the [_emoji-regex-xs_](https://github.com/slevithan/emoji-regex-xs) package that follows the same API.
5
+ This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
6
6
 
7
7
  ## Installation
8
8
 
@@ -29,7 +29,8 @@ const text = `
29
29
  `;
30
30
 
31
31
  const regex = emojiRegex();
32
- for (const match of text.matchAll(regex)) {
32
+ let match;
33
+ while (match = regex.exec(text)) {
33
34
  const emoji = match[0];
34
35
  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
35
36
  }
@@ -48,53 +49,18 @@ Matched sequence 👩🏿 — code points: 2
48
49
  Matched sequence 👩🏿 — code points: 2
49
50
  ```
50
51
 
51
- ## For maintainers
52
+ To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex:
52
53
 
53
- ### How to update emoji-regex after new Unicode Standard releases
54
-
55
- 1. [Update _emoji-test-regex-pattern_ as described in its repository](https://github.com/mathiasbynens/emoji-test-regex-pattern#how-to-update-emoji-test-regex-pattern-after-new-uts51-releases).
56
-
57
- 1. Bump the _emoji-test-regex-pattern_ dependency to the latest version.
58
-
59
- 1. Update the Unicode data dependency in `package.json` by running the following commands:
60
-
61
- ```sh
62
- # Example: updating from Unicode v13 to Unicode v14.
63
- npm uninstall @unicode/unicode-13.0.0
64
- npm install @unicode/unicode-14.0.0 --save-dev
65
- ````
66
-
67
- 1. Generate the new output:
68
-
69
- ```sh
70
- npm run build
71
- ```
72
-
73
- 1. Verify that tests still pass:
74
-
75
- ```sh
76
- npm test
77
- ```
78
-
79
- ### How to publish a new release
80
-
81
- 1. On the `main` branch, bump the emoji-regex version number in `package.json`:
82
-
83
- ```sh
84
- npm version patch -m 'Release v%s'
85
- ```
86
-
87
- Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
88
-
89
- Note that this produces a Git commit + tag.
90
-
91
- 1. Push the release commit and tag:
54
+ ```js
55
+ const emojiRegex = require('emoji-regex/text.js');
56
+ ```
92
57
 
93
- ```sh
94
- git push && git push --tags
95
- ```
58
+ Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes:
96
59
 
97
- Our CI then automatically publishes the new release to npm.
60
+ ```js
61
+ const emojiRegex = require('emoji-regex/es2015/index.js');
62
+ const emojiRegexText = require('emoji-regex/es2015/text.js');
63
+ ```
98
64
 
99
65
  ## Author
100
66
 
@@ -1,3 +1,23 @@
1
1
  declare module 'emoji-regex' {
2
- export default function emojiRegex(): RegExp;
2
+ function emojiRegex(): RegExp;
3
+
4
+ export default emojiRegex;
5
+ }
6
+
7
+ declare module 'emoji-regex/text' {
8
+ function emojiRegex(): RegExp;
9
+
10
+ export default emojiRegex;
11
+ }
12
+
13
+ declare module 'emoji-regex/es2015' {
14
+ function emojiRegex(): RegExp;
15
+
16
+ export default emojiRegex;
17
+ }
18
+
19
+ declare module 'emoji-regex/es2015/text' {
20
+ function emojiRegex(): RegExp;
21
+
22
+ export default emojiRegex;
3
23
  }
@@ -1,4 +1,6 @@
1
- module.exports = () => {
2
- // https://mths.be/emoji
3
- 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](?:\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\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](?:\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-\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(?:\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\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-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\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;
1
+ "use strict";
2
+
3
+ module.exports = function () {
4
+ // https://mths.be/emoji
5
+ return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\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\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])|\uD83C[\uDF3E\uDF73\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])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\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])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\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\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\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\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\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\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*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\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\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\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[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
4
6
  };
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "emoji-regex",
3
- "version": "10.4.0",
3
+ "version": "8.0.0",
4
4
  "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
5
5
  "homepage": "https://mths.be/emoji-regex",
6
6
  "main": "index.js",
7
- "module": "index.mjs",
8
7
  "types": "index.d.ts",
9
8
  "keywords": [
10
9
  "unicode",
@@ -30,16 +29,22 @@
30
29
  "LICENSE-MIT.txt",
31
30
  "index.js",
32
31
  "index.d.ts",
33
- "index.mjs"
32
+ "text.js",
33
+ "es2015/index.js",
34
+ "es2015/text.js"
34
35
  ],
35
36
  "scripts": {
36
- "build": "node script/build.js",
37
+ "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js",
37
38
  "test": "mocha",
38
39
  "test:watch": "npm run test -- --watch"
39
40
  },
40
41
  "devDependencies": {
41
- "@unicode/unicode-16.0.0": "^1.0.0",
42
- "emoji-test-regex-pattern": "^2.2.0",
43
- "mocha": "^10.7.3"
42
+ "@babel/cli": "^7.2.3",
43
+ "@babel/core": "^7.3.4",
44
+ "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
45
+ "@babel/preset-env": "^7.3.4",
46
+ "mocha": "^6.0.2",
47
+ "regexgen": "^1.3.0",
48
+ "unicode-12.0.0": "^0.7.9"
44
49
  }
45
50
  }
@@ -26,6 +26,5 @@ export function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {
26
26
  return 1;
27
27
  }
28
28
 
29
- // For Prettier. This doesn't count "ambiguous" characters or check for valid input.
30
- // https://github.com/sindresorhus/get-east-asian-width/pull/6
31
- export const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));
29
+ // Private exports for https://github.com/sindresorhus/is-fullwidth-code-point
30
+ export {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';
@@ -294,11 +294,10 @@ function isWide(x) {
294
294
  || x >= 0xFE54 && x <= 0xFE66
295
295
  || x >= 0xFE68 && x <= 0xFE6B
296
296
  || x >= 0x16FE0 && x <= 0x16FE4
297
- || x === 0x16FF0
298
- || x === 0x16FF1
299
- || x >= 0x17000 && x <= 0x187F7
300
- || x >= 0x18800 && x <= 0x18CD5
301
- || x >= 0x18CFF && x <= 0x18D08
297
+ || x >= 0x16FF0 && x <= 0x16FF6
298
+ || x >= 0x17000 && x <= 0x18CD5
299
+ || x >= 0x18CFF && x <= 0x18D1E
300
+ || x >= 0x18D80 && x <= 0x18DF2
302
301
  || x >= 0x1AFF0 && x <= 0x1AFF3
303
302
  || x >= 0x1AFF5 && x <= 0x1AFFB
304
303
  || x === 0x1AFFD
@@ -343,7 +342,7 @@ function isWide(x) {
343
342
  || x >= 0x1F680 && x <= 0x1F6C5
344
343
  || x === 0x1F6CC
345
344
  || x >= 0x1F6D0 && x <= 0x1F6D2
346
- || x >= 0x1F6D5 && x <= 0x1F6D7
345
+ || x >= 0x1F6D5 && x <= 0x1F6D8
347
346
  || x >= 0x1F6DC && x <= 0x1F6DF
348
347
  || x === 0x1F6EB
349
348
  || x === 0x1F6EC
@@ -354,11 +353,12 @@ function isWide(x) {
354
353
  || x >= 0x1F93C && x <= 0x1F945
355
354
  || x >= 0x1F947 && x <= 0x1F9FF
356
355
  || x >= 0x1FA70 && x <= 0x1FA7C
357
- || x >= 0x1FA80 && x <= 0x1FA89
358
- || x >= 0x1FA8F && x <= 0x1FAC6
359
- || x >= 0x1FACE && x <= 0x1FADC
360
- || x >= 0x1FADF && x <= 0x1FAE9
361
- || x >= 0x1FAF0 && x <= 0x1FAF8
356
+ || x >= 0x1FA80 && x <= 0x1FA8A
357
+ || x >= 0x1FA8E && x <= 0x1FAC6
358
+ || x === 0x1FAC8
359
+ || x >= 0x1FACD && x <= 0x1FADC
360
+ || x >= 0x1FADF && x <= 0x1FAEA
361
+ || x >= 0x1FAEF && x <= 0x1FAF8
362
362
  || x >= 0x20000 && x <= 0x2FFFD
363
363
  || x >= 0x30000 && x <= 0x3FFFD;
364
364
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-east-asian-width",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Determine the East Asian Width of a Unicode character",
5
5
  "license": "MIT",
6
6
  "repository": "sindresorhus/get-east-asian-width",
@@ -37,7 +37,7 @@ export type Options = {
37
37
  readonly suffixText?: string | SuffixTextGenerator;
38
38
 
39
39
  /**
40
- The name of one of the provided spinners. See [`example.js`](https://github.com/BendingBender/ora/blob/main/example.js) in this repo if you want to test out different spinners. On Windows (expect for Windows Terminal), it will always use the line spinner as the Windows command-line doesn't have proper Unicode support.
40
+ The name of one of the provided spinners. See `example.js` in this repo if you want to test out different spinners. On Windows (except for Windows Terminal), it will always use the line spinner as the Windows command-line doesn't have proper Unicode support.
41
41
 
42
42
  @default 'dots'
43
43
 
@@ -58,7 +58,7 @@ export type Options = {
58
58
 
59
59
  @default 'cyan'
60
60
  */
61
- readonly color?: Color;
61
+ readonly color?: Color | boolean;
62
62
 
63
63
  /**
64
64
  Set to `false` to stop Ora from hiding the cursor.
@@ -186,7 +186,7 @@ export interface Ora {
186
186
  /**
187
187
  Change the spinner color.
188
188
  */
189
- color: Color;
189
+ color: Color | boolean;
190
190
 
191
191
  /**
192
192
  Change the spinner indent.
@@ -15,6 +15,7 @@ class Ora {
15
15
  #lineCount = 0;
16
16
  #frameIndex = -1;
17
17
  #lastSpinnerFrameTime = 0;
18
+ #lastIndent = 0;
18
19
  #options;
19
20
  #spinner;
20
21
  #stream;
@@ -114,8 +115,12 @@ class Ora {
114
115
  this.#initialInterval = undefined;
115
116
 
116
117
  if (typeof spinner === 'object') {
117
- if (spinner.frames === undefined) {
118
- throw new Error('The given spinner must have a `frames` property');
118
+ if (!Array.isArray(spinner.frames) || spinner.frames.length === 0 || spinner.frames.some(frame => typeof frame !== 'string')) {
119
+ throw new Error('The given spinner must have a non-empty `frames` array of strings');
120
+ }
121
+
122
+ if (spinner.interval !== undefined && !(Number.isInteger(spinner.interval) && spinner.interval > 0)) {
123
+ throw new Error('`spinner.interval` must be a positive integer if provided');
119
124
  }
120
125
 
121
126
  this.#spinner = spinner;
@@ -162,40 +167,44 @@ class Ora {
162
167
  return this.#id !== undefined;
163
168
  }
164
169
 
165
- #getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {
166
- if (typeof prefixText === 'string' && prefixText !== '') {
167
- return prefixText + postfix;
168
- }
169
-
170
- if (typeof prefixText === 'function') {
171
- return prefixText() + postfix;
170
+ #formatAffix(value, separator, placeBefore = false) {
171
+ const resolved = typeof value === 'function' ? value() : value;
172
+ if (typeof resolved === 'string' && resolved !== '') {
173
+ return placeBefore ? (separator + resolved) : (resolved + separator);
172
174
  }
173
175
 
174
176
  return '';
175
177
  }
176
178
 
179
+ #getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {
180
+ return this.#formatAffix(prefixText, postfix, false);
181
+ }
182
+
177
183
  #getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {
178
- if (typeof suffixText === 'string' && suffixText !== '') {
179
- return prefix + suffixText;
180
- }
184
+ return this.#formatAffix(suffixText, prefix, true);
185
+ }
181
186
 
182
- if (typeof suffixText === 'function') {
183
- return prefix + suffixText();
187
+ #computeLineCountFrom(text, columns) {
188
+ let count = 0;
189
+ for (const line of stripAnsi(text).split('\n')) {
190
+ count += Math.max(1, Math.ceil(stringWidth(line) / columns));
184
191
  }
185
192
 
186
- return '';
193
+ return count;
187
194
  }
188
195
 
189
196
  #updateLineCount() {
190
197
  const columns = this.#stream.columns ?? 80;
191
- const fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');
192
- const fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');
193
- const fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;
194
198
 
195
- this.#lineCount = 0;
196
- for (const line of stripAnsi(fullText).split('\n')) {
197
- this.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));
198
- }
199
+ // Simple side-effect free approximation (do not call functions)
200
+ const prefixText = typeof this.#prefixText === 'function' ? '' : this.#prefixText;
201
+ const suffixText = typeof this.#suffixText === 'function' ? '' : this.#suffixText;
202
+ const fullPrefixText = (typeof prefixText === 'string' && prefixText !== '') ? prefixText + ' ' : '';
203
+ const fullSuffixText = (typeof suffixText === 'string' && suffixText !== '') ? ' ' + suffixText : '';
204
+ const spinnerChar = '-';
205
+ const fullText = ' '.repeat(this.#indent) + fullPrefixText + spinnerChar + (typeof this.#text === 'string' ? ' ' + this.#text : '') + fullSuffixText;
206
+
207
+ this.#lineCount = this.#computeLineCountFrom(fullText, columns);
199
208
  }
200
209
 
201
210
  get isEnabled() {
@@ -238,9 +247,9 @@ class Ora {
238
247
  frame = chalk[this.color](frame);
239
248
  }
240
249
 
241
- const fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';
250
+ const fullPrefixText = this.#getFullPrefixText(this.#prefixText, ' ');
242
251
  const fullText = typeof this.text === 'string' ? ' ' + this.text : '';
243
- const fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';
252
+ const fullSuffixText = this.#getFullSuffixText(this.#suffixText, ' ');
244
253
 
245
254
  return fullPrefixText + frame + fullText + fullSuffixText;
246
255
  }
@@ -260,24 +269,37 @@ class Ora {
260
269
  this.#stream.clearLine(1);
261
270
  }
262
271
 
263
- if (this.#indent || this.lastIndent !== this.#indent) {
272
+ if (this.#indent || this.#lastIndent !== this.#indent) {
264
273
  this.#stream.cursorTo(this.#indent);
265
274
  }
266
275
 
267
- this.lastIndent = this.#indent;
276
+ this.#lastIndent = this.#indent;
268
277
  this.#linesToClear = 0;
269
278
 
270
279
  return this;
271
280
  }
272
281
 
273
282
  render() {
274
- if (this.#isSilent) {
283
+ if (!this.#isEnabled || this.#isSilent) {
275
284
  return this;
276
285
  }
277
286
 
278
287
  this.clear();
279
- this.#stream.write(this.frame());
280
- this.#linesToClear = this.#lineCount;
288
+
289
+ let frameContent = this.frame();
290
+ const columns = this.#stream.columns ?? 80;
291
+ const actualLineCount = this.#computeLineCountFrom(frameContent, columns);
292
+
293
+ // If content would exceed viewport height, truncate it to prevent garbage
294
+ const consoleHeight = this.#stream.rows;
295
+ if (consoleHeight && consoleHeight > 1 && actualLineCount > consoleHeight) {
296
+ const lines = frameContent.split('\n');
297
+ const maxLines = consoleHeight - 1; // Reserve one line for truncation message
298
+ frameContent = [...lines.slice(0, maxLines), '... (content truncated to fit terminal)'].join('\n');
299
+ }
300
+
301
+ this.#stream.write(frameContent);
302
+ this.#linesToClear = this.#computeLineCountFrom(frameContent, columns);
281
303
 
282
304
  return this;
283
305
  }
@@ -292,8 +314,10 @@ class Ora {
292
314
  }
293
315
 
294
316
  if (!this.#isEnabled) {
295
- if (this.text) {
296
- this.#stream.write(`- ${this.text}\n`);
317
+ const line = ' '.repeat(this.#indent) + this.#getFullPrefixText(this.#prefixText, ' ') + (this.text ? `- ${this.text}` : '') + this.#getFullSuffixText(this.#suffixText, ' ');
318
+
319
+ if (line.trim() !== '') {
320
+ this.#stream.write(line + '\n');
297
321
  }
298
322
 
299
323
  return this;
@@ -319,16 +343,15 @@ class Ora {
319
343
  }
320
344
 
321
345
  stop() {
322
- if (!this.#isEnabled) {
323
- return this;
324
- }
325
-
326
346
  clearInterval(this.#id);
327
347
  this.#id = undefined;
328
348
  this.#frameIndex = 0;
329
- this.clear();
330
- if (this.#options.hideCursor) {
331
- cliCursor.show(this.#stream);
349
+
350
+ if (this.#isEnabled) {
351
+ this.clear();
352
+ if (this.#options.hideCursor) {
353
+ cliCursor.show(this.#stream);
354
+ }
332
355
  }
333
356
 
334
357
  if (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {
@@ -403,19 +426,15 @@ export async function oraPromise(action, options) {
403
426
  const promise = actionIsFunction ? action(spinner) : action;
404
427
  const result = await promise;
405
428
 
406
- spinner.succeed(
407
- successText === undefined
408
- ? undefined
409
- : (typeof successText === 'string' ? successText : successText(result)),
410
- );
429
+ spinner.succeed(successText === undefined
430
+ ? undefined
431
+ : (typeof successText === 'string' ? successText : successText(result)));
411
432
 
412
433
  return result;
413
434
  } catch (error) {
414
- spinner.fail(
415
- failText === undefined
416
- ? undefined
417
- : (typeof failText === 'string' ? failText : failText(error)),
418
- );
435
+ spinner.fail(failText === undefined
436
+ ? undefined
437
+ : (typeof failText === 'string' ? failText : failText(error)));
419
438
 
420
439
  throw error;
421
440
  }
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "chalk",
3
+ "version": "5.6.2",
4
+ "description": "Terminal string styling done right",
5
+ "license": "MIT",
6
+ "repository": "chalk/chalk",
7
+ "funding": "https://github.com/chalk/chalk?sponsor=1",
8
+ "type": "module",
9
+ "main": "./source/index.js",
10
+ "exports": "./source/index.js",
11
+ "imports": {
12
+ "#ansi-styles": "./source/vendor/ansi-styles/index.js",
13
+ "#supports-color": {
14
+ "node": "./source/vendor/supports-color/index.js",
15
+ "default": "./source/vendor/supports-color/browser.js"
16
+ }
17
+ },
18
+ "types": "./source/index.d.ts",
19
+ "sideEffects": false,
20
+ "engines": {
21
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
22
+ },
23
+ "scripts": {
24
+ "test": "xo && c8 ava && tsd",
25
+ "bench": "matcha benchmark.js"
26
+ },
27
+ "files": [
28
+ "source",
29
+ "!source/index.test-d.ts"
30
+ ],
31
+ "keywords": [
32
+ "color",
33
+ "colour",
34
+ "colors",
35
+ "terminal",
36
+ "console",
37
+ "cli",
38
+ "string",
39
+ "ansi",
40
+ "style",
41
+ "styles",
42
+ "tty",
43
+ "formatting",
44
+ "rgb",
45
+ "256",
46
+ "shell",
47
+ "xterm",
48
+ "log",
49
+ "logging",
50
+ "command-line",
51
+ "text"
52
+ ],
53
+ "devDependencies": {
54
+ "@types/node": "^16.11.10",
55
+ "ava": "^3.15.0",
56
+ "c8": "^7.10.0",
57
+ "color-convert": "^2.0.1",
58
+ "execa": "^6.0.0",
59
+ "log-update": "^5.0.0",
60
+ "matcha": "^0.7.0",
61
+ "tsd": "^0.19.0",
62
+ "xo": "^0.57.0",
63
+ "yoctodelay": "^2.0.0"
64
+ },
65
+ "xo": {
66
+ "rules": {
67
+ "unicorn/prefer-string-slice": "off",
68
+ "@typescript-eslint/consistent-type-imports": "off",
69
+ "@typescript-eslint/consistent-type-exports": "off",
70
+ "@typescript-eslint/consistent-type-definitions": "off",
71
+ "unicorn/expiring-todo-comments": "off"
72
+ }
73
+ },
74
+ "c8": {
75
+ "reporter": [
76
+ "text",
77
+ "lcov"
78
+ ],
79
+ "exclude": [
80
+ "source/vendor"
81
+ ]
82
+ }
83
+ }