index.cjs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. const core = require('./core.cjs');
  4. const basic = require('./shared/consola.DCGIlDNP.cjs');
  5. const g$1 = require('node:process');
  6. const box = require('./shared/consola.DwRq1yyg.cjs');
  7. require('node:util');
  8. require('node:path');
  9. require('node:tty');
  10. function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
  11. const g__default = /*#__PURE__*/_interopDefaultCompat(g$1);
  12. const r=Object.create(null),i=e=>globalThis.process?.env||undefined||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?r:globalThis),o=new Proxy(r,{get(e,s){return i()[s]??r[s]},has(e,s){const E=i();return s in E||s in r},set(e,s,E){const B=i(true);return B[s]=E,true},deleteProperty(e,s){if(!s)return false;const E=i(true);return delete E[s],true},ownKeys(){const e=i(true);return Object.keys(e)}}),t=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",f=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:true}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:true}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:false}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:false}],["VERCEL","VERCEL_ENV",{ci:false}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:false}],["CODESANDBOX","CODESANDBOX_HOST",{ci:false}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:true}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:true}]];function b(){if(globalThis.process?.env)for(const e of f){const s=e[1]||e[0];if(globalThis.process?.env[s])return {name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:false}:{name:"",ci:false}}const l=b();l.name;function n(e){return e?e!=="false":false}const I=globalThis.process?.platform||"",T=n(o.CI)||l.ci!==false,a=n(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),g=n(o.DEBUG),R=t==="test"||n(o.TEST);n(o.MINIMAL)||T||R||!a;const A=/^win/i.test(I);!n(o.NO_COLOR)&&(n(o.FORCE_COLOR)||(a||A)&&o.TERM!=="dumb"||T);const C=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(C?.split(".")[0])||null;const y=globalThis.process||Object.create(null),_={versions:{}};new Proxy(y,{get(e,s){if(s==="env")return o;if(s in e)return e[s];if(s in _)return _[s]}});const c=globalThis.process?.release?.name==="node",O=!!globalThis.Bun||!!globalThis.process?.versions?.bun,D=!!globalThis.Deno,L=!!globalThis.fastly,S=!!globalThis.Netlify,u=!!globalThis.EdgeRuntime,N=globalThis.navigator?.userAgent==="Cloudflare-Workers",F=[[S,"netlify"],[u,"edge-light"],[N,"workerd"],[L,"fastly"],[D,"deno"],[O,"bun"],[c,"node"]];function G(){const e=F.find(s=>s[0]);if(e)return {name:e[1]}}const P=G();P?.name||"";
  13. function ansiRegex({onlyFirst = false} = {}) {
  14. // Valid string terminator sequences are BEL, ESC\, and 0x9c
  15. const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
  16. const pattern = [
  17. `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
  18. '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
  19. ].join('|');
  20. return new RegExp(pattern, onlyFirst ? undefined : 'g');
  21. }
  22. const regex = ansiRegex();
  23. function stripAnsi(string) {
  24. if (typeof string !== 'string') {
  25. throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
  26. }
  27. // Even though the regex is global, we don't need to reset the `.lastIndex`
  28. // because unlike `.exec()` and `.test()`, `.replace()` does it automatically
  29. // and doing it manually has a performance penalty.
  30. return string.replace(regex, '');
  31. }
  32. // Generated code.
  33. function isAmbiguous(x) {
  34. return x === 0xA1
  35. || x === 0xA4
  36. || x === 0xA7
  37. || x === 0xA8
  38. || x === 0xAA
  39. || x === 0xAD
  40. || x === 0xAE
  41. || x >= 0xB0 && x <= 0xB4
  42. || x >= 0xB6 && x <= 0xBA
  43. || x >= 0xBC && x <= 0xBF
  44. || x === 0xC6
  45. || x === 0xD0
  46. || x === 0xD7
  47. || x === 0xD8
  48. || x >= 0xDE && x <= 0xE1
  49. || x === 0xE6
  50. || x >= 0xE8 && x <= 0xEA
  51. || x === 0xEC
  52. || x === 0xED
  53. || x === 0xF0
  54. || x === 0xF2
  55. || x === 0xF3
  56. || x >= 0xF7 && x <= 0xFA
  57. || x === 0xFC
  58. || x === 0xFE
  59. || x === 0x101
  60. || x === 0x111
  61. || x === 0x113
  62. || x === 0x11B
  63. || x === 0x126
  64. || x === 0x127
  65. || x === 0x12B
  66. || x >= 0x131 && x <= 0x133
  67. || x === 0x138
  68. || x >= 0x13F && x <= 0x142
  69. || x === 0x144
  70. || x >= 0x148 && x <= 0x14B
  71. || x === 0x14D
  72. || x === 0x152
  73. || x === 0x153
  74. || x === 0x166
  75. || x === 0x167
  76. || x === 0x16B
  77. || x === 0x1CE
  78. || x === 0x1D0
  79. || x === 0x1D2
  80. || x === 0x1D4
  81. || x === 0x1D6
  82. || x === 0x1D8
  83. || x === 0x1DA
  84. || x === 0x1DC
  85. || x === 0x251
  86. || x === 0x261
  87. || x === 0x2C4
  88. || x === 0x2C7
  89. || x >= 0x2C9 && x <= 0x2CB
  90. || x === 0x2CD
  91. || x === 0x2D0
  92. || x >= 0x2D8 && x <= 0x2DB
  93. || x === 0x2DD
  94. || x === 0x2DF
  95. || x >= 0x300 && x <= 0x36F
  96. || x >= 0x391 && x <= 0x3A1
  97. || x >= 0x3A3 && x <= 0x3A9
  98. || x >= 0x3B1 && x <= 0x3C1
  99. || x >= 0x3C3 && x <= 0x3C9
  100. || x === 0x401
  101. || x >= 0x410 && x <= 0x44F
  102. || x === 0x451
  103. || x === 0x2010
  104. || x >= 0x2013 && x <= 0x2016
  105. || x === 0x2018
  106. || x === 0x2019
  107. || x === 0x201C
  108. || x === 0x201D
  109. || x >= 0x2020 && x <= 0x2022
  110. || x >= 0x2024 && x <= 0x2027
  111. || x === 0x2030
  112. || x === 0x2032
  113. || x === 0x2033
  114. || x === 0x2035
  115. || x === 0x203B
  116. || x === 0x203E
  117. || x === 0x2074
  118. || x === 0x207F
  119. || x >= 0x2081 && x <= 0x2084
  120. || x === 0x20AC
  121. || x === 0x2103
  122. || x === 0x2105
  123. || x === 0x2109
  124. || x === 0x2113
  125. || x === 0x2116
  126. || x === 0x2121
  127. || x === 0x2122
  128. || x === 0x2126
  129. || x === 0x212B
  130. || x === 0x2153
  131. || x === 0x2154
  132. || x >= 0x215B && x <= 0x215E
  133. || x >= 0x2160 && x <= 0x216B
  134. || x >= 0x2170 && x <= 0x2179
  135. || x === 0x2189
  136. || x >= 0x2190 && x <= 0x2199
  137. || x === 0x21B8
  138. || x === 0x21B9
  139. || x === 0x21D2
  140. || x === 0x21D4
  141. || x === 0x21E7
  142. || x === 0x2200
  143. || x === 0x2202
  144. || x === 0x2203
  145. || x === 0x2207
  146. || x === 0x2208
  147. || x === 0x220B
  148. || x === 0x220F
  149. || x === 0x2211
  150. || x === 0x2215
  151. || x === 0x221A
  152. || x >= 0x221D && x <= 0x2220
  153. || x === 0x2223
  154. || x === 0x2225
  155. || x >= 0x2227 && x <= 0x222C
  156. || x === 0x222E
  157. || x >= 0x2234 && x <= 0x2237
  158. || x === 0x223C
  159. || x === 0x223D
  160. || x === 0x2248
  161. || x === 0x224C
  162. || x === 0x2252
  163. || x === 0x2260
  164. || x === 0x2261
  165. || x >= 0x2264 && x <= 0x2267
  166. || x === 0x226A
  167. || x === 0x226B
  168. || x === 0x226E
  169. || x === 0x226F
  170. || x === 0x2282
  171. || x === 0x2283
  172. || x === 0x2286
  173. || x === 0x2287
  174. || x === 0x2295
  175. || x === 0x2299
  176. || x === 0x22A5
  177. || x === 0x22BF
  178. || x === 0x2312
  179. || x >= 0x2460 && x <= 0x24E9
  180. || x >= 0x24EB && x <= 0x254B
  181. || x >= 0x2550 && x <= 0x2573
  182. || x >= 0x2580 && x <= 0x258F
  183. || x >= 0x2592 && x <= 0x2595
  184. || x === 0x25A0
  185. || x === 0x25A1
  186. || x >= 0x25A3 && x <= 0x25A9
  187. || x === 0x25B2
  188. || x === 0x25B3
  189. || x === 0x25B6
  190. || x === 0x25B7
  191. || x === 0x25BC
  192. || x === 0x25BD
  193. || x === 0x25C0
  194. || x === 0x25C1
  195. || x >= 0x25C6 && x <= 0x25C8
  196. || x === 0x25CB
  197. || x >= 0x25CE && x <= 0x25D1
  198. || x >= 0x25E2 && x <= 0x25E5
  199. || x === 0x25EF
  200. || x === 0x2605
  201. || x === 0x2606
  202. || x === 0x2609
  203. || x === 0x260E
  204. || x === 0x260F
  205. || x === 0x261C
  206. || x === 0x261E
  207. || x === 0x2640
  208. || x === 0x2642
  209. || x === 0x2660
  210. || x === 0x2661
  211. || x >= 0x2663 && x <= 0x2665
  212. || x >= 0x2667 && x <= 0x266A
  213. || x === 0x266C
  214. || x === 0x266D
  215. || x === 0x266F
  216. || x === 0x269E
  217. || x === 0x269F
  218. || x === 0x26BF
  219. || x >= 0x26C6 && x <= 0x26CD
  220. || x >= 0x26CF && x <= 0x26D3
  221. || x >= 0x26D5 && x <= 0x26E1
  222. || x === 0x26E3
  223. || x === 0x26E8
  224. || x === 0x26E9
  225. || x >= 0x26EB && x <= 0x26F1
  226. || x === 0x26F4
  227. || x >= 0x26F6 && x <= 0x26F9
  228. || x === 0x26FB
  229. || x === 0x26FC
  230. || x === 0x26FE
  231. || x === 0x26FF
  232. || x === 0x273D
  233. || x >= 0x2776 && x <= 0x277F
  234. || x >= 0x2B56 && x <= 0x2B59
  235. || x >= 0x3248 && x <= 0x324F
  236. || x >= 0xE000 && x <= 0xF8FF
  237. || x >= 0xFE00 && x <= 0xFE0F
  238. || x === 0xFFFD
  239. || x >= 0x1F100 && x <= 0x1F10A
  240. || x >= 0x1F110 && x <= 0x1F12D
  241. || x >= 0x1F130 && x <= 0x1F169
  242. || x >= 0x1F170 && x <= 0x1F18D
  243. || x === 0x1F18F
  244. || x === 0x1F190
  245. || x >= 0x1F19B && x <= 0x1F1AC
  246. || x >= 0xE0100 && x <= 0xE01EF
  247. || x >= 0xF0000 && x <= 0xFFFFD
  248. || x >= 0x100000 && x <= 0x10FFFD;
  249. }
  250. function isFullWidth(x) {
  251. return x === 0x3000
  252. || x >= 0xFF01 && x <= 0xFF60
  253. || x >= 0xFFE0 && x <= 0xFFE6;
  254. }
  255. function isWide(x) {
  256. return x >= 0x1100 && x <= 0x115F
  257. || x === 0x231A
  258. || x === 0x231B
  259. || x === 0x2329
  260. || x === 0x232A
  261. || x >= 0x23E9 && x <= 0x23EC
  262. || x === 0x23F0
  263. || x === 0x23F3
  264. || x === 0x25FD
  265. || x === 0x25FE
  266. || x === 0x2614
  267. || x === 0x2615
  268. || x >= 0x2630 && x <= 0x2637
  269. || x >= 0x2648 && x <= 0x2653
  270. || x === 0x267F
  271. || x >= 0x268A && x <= 0x268F
  272. || x === 0x2693
  273. || x === 0x26A1
  274. || x === 0x26AA
  275. || x === 0x26AB
  276. || x === 0x26BD
  277. || x === 0x26BE
  278. || x === 0x26C4
  279. || x === 0x26C5
  280. || x === 0x26CE
  281. || x === 0x26D4
  282. || x === 0x26EA
  283. || x === 0x26F2
  284. || x === 0x26F3
  285. || x === 0x26F5
  286. || x === 0x26FA
  287. || x === 0x26FD
  288. || x === 0x2705
  289. || x === 0x270A
  290. || x === 0x270B
  291. || x === 0x2728
  292. || x === 0x274C
  293. || x === 0x274E
  294. || x >= 0x2753 && x <= 0x2755
  295. || x === 0x2757
  296. || x >= 0x2795 && x <= 0x2797
  297. || x === 0x27B0
  298. || x === 0x27BF
  299. || x === 0x2B1B
  300. || x === 0x2B1C
  301. || x === 0x2B50
  302. || x === 0x2B55
  303. || x >= 0x2E80 && x <= 0x2E99
  304. || x >= 0x2E9B && x <= 0x2EF3
  305. || x >= 0x2F00 && x <= 0x2FD5
  306. || x >= 0x2FF0 && x <= 0x2FFF
  307. || x >= 0x3001 && x <= 0x303E
  308. || x >= 0x3041 && x <= 0x3096
  309. || x >= 0x3099 && x <= 0x30FF
  310. || x >= 0x3105 && x <= 0x312F
  311. || x >= 0x3131 && x <= 0x318E
  312. || x >= 0x3190 && x <= 0x31E5
  313. || x >= 0x31EF && x <= 0x321E
  314. || x >= 0x3220 && x <= 0x3247
  315. || x >= 0x3250 && x <= 0xA48C
  316. || x >= 0xA490 && x <= 0xA4C6
  317. || x >= 0xA960 && x <= 0xA97C
  318. || x >= 0xAC00 && x <= 0xD7A3
  319. || x >= 0xF900 && x <= 0xFAFF
  320. || x >= 0xFE10 && x <= 0xFE19
  321. || x >= 0xFE30 && x <= 0xFE52
  322. || x >= 0xFE54 && x <= 0xFE66
  323. || x >= 0xFE68 && x <= 0xFE6B
  324. || x >= 0x16FE0 && x <= 0x16FE4
  325. || x === 0x16FF0
  326. || x === 0x16FF1
  327. || x >= 0x17000 && x <= 0x187F7
  328. || x >= 0x18800 && x <= 0x18CD5
  329. || x >= 0x18CFF && x <= 0x18D08
  330. || x >= 0x1AFF0 && x <= 0x1AFF3
  331. || x >= 0x1AFF5 && x <= 0x1AFFB
  332. || x === 0x1AFFD
  333. || x === 0x1AFFE
  334. || x >= 0x1B000 && x <= 0x1B122
  335. || x === 0x1B132
  336. || x >= 0x1B150 && x <= 0x1B152
  337. || x === 0x1B155
  338. || x >= 0x1B164 && x <= 0x1B167
  339. || x >= 0x1B170 && x <= 0x1B2FB
  340. || x >= 0x1D300 && x <= 0x1D356
  341. || x >= 0x1D360 && x <= 0x1D376
  342. || x === 0x1F004
  343. || x === 0x1F0CF
  344. || x === 0x1F18E
  345. || x >= 0x1F191 && x <= 0x1F19A
  346. || x >= 0x1F200 && x <= 0x1F202
  347. || x >= 0x1F210 && x <= 0x1F23B
  348. || x >= 0x1F240 && x <= 0x1F248
  349. || x === 0x1F250
  350. || x === 0x1F251
  351. || x >= 0x1F260 && x <= 0x1F265
  352. || x >= 0x1F300 && x <= 0x1F320
  353. || x >= 0x1F32D && x <= 0x1F335
  354. || x >= 0x1F337 && x <= 0x1F37C
  355. || x >= 0x1F37E && x <= 0x1F393
  356. || x >= 0x1F3A0 && x <= 0x1F3CA
  357. || x >= 0x1F3CF && x <= 0x1F3D3
  358. || x >= 0x1F3E0 && x <= 0x1F3F0
  359. || x === 0x1F3F4
  360. || x >= 0x1F3F8 && x <= 0x1F43E
  361. || x === 0x1F440
  362. || x >= 0x1F442 && x <= 0x1F4FC
  363. || x >= 0x1F4FF && x <= 0x1F53D
  364. || x >= 0x1F54B && x <= 0x1F54E
  365. || x >= 0x1F550 && x <= 0x1F567
  366. || x === 0x1F57A
  367. || x === 0x1F595
  368. || x === 0x1F596
  369. || x === 0x1F5A4
  370. || x >= 0x1F5FB && x <= 0x1F64F
  371. || x >= 0x1F680 && x <= 0x1F6C5
  372. || x === 0x1F6CC
  373. || x >= 0x1F6D0 && x <= 0x1F6D2
  374. || x >= 0x1F6D5 && x <= 0x1F6D7
  375. || x >= 0x1F6DC && x <= 0x1F6DF
  376. || x === 0x1F6EB
  377. || x === 0x1F6EC
  378. || x >= 0x1F6F4 && x <= 0x1F6FC
  379. || x >= 0x1F7E0 && x <= 0x1F7EB
  380. || x === 0x1F7F0
  381. || x >= 0x1F90C && x <= 0x1F93A
  382. || x >= 0x1F93C && x <= 0x1F945
  383. || x >= 0x1F947 && x <= 0x1F9FF
  384. || x >= 0x1FA70 && x <= 0x1FA7C
  385. || x >= 0x1FA80 && x <= 0x1FA89
  386. || x >= 0x1FA8F && x <= 0x1FAC6
  387. || x >= 0x1FACE && x <= 0x1FADC
  388. || x >= 0x1FADF && x <= 0x1FAE9
  389. || x >= 0x1FAF0 && x <= 0x1FAF8
  390. || x >= 0x20000 && x <= 0x2FFFD
  391. || x >= 0x30000 && x <= 0x3FFFD;
  392. }
  393. function validate(codePoint) {
  394. if (!Number.isSafeInteger(codePoint)) {
  395. throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
  396. }
  397. }
  398. function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {
  399. validate(codePoint);
  400. if (
  401. isFullWidth(codePoint)
  402. || isWide(codePoint)
  403. || (ambiguousAsWide && isAmbiguous(codePoint))
  404. ) {
  405. return 2;
  406. }
  407. return 1;
  408. }
  409. const emojiRegex = () => {
  410. // https://mths.be/emoji
  411. 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;
  412. };
  413. const segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : { segment: (str) => str.split('') };
  414. const defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
  415. function stringWidth$1(string, options = {}) {
  416. if (typeof string !== 'string' || string.length === 0) {
  417. return 0;
  418. }
  419. const {
  420. ambiguousIsNarrow = true,
  421. countAnsiEscapeCodes = false,
  422. } = options;
  423. if (!countAnsiEscapeCodes) {
  424. string = stripAnsi(string);
  425. }
  426. if (string.length === 0) {
  427. return 0;
  428. }
  429. let width = 0;
  430. const eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};
  431. for (const {segment: character} of segmenter.segment(string)) {
  432. const codePoint = character.codePointAt(0);
  433. // Ignore control characters
  434. if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {
  435. continue;
  436. }
  437. // Ignore zero-width characters
  438. if (
  439. (codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark
  440. || codePoint === 0xFE_FF // Zero-width no-break space
  441. ) {
  442. continue;
  443. }
  444. // Ignore combining characters
  445. if (
  446. (codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks
  447. || (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended
  448. || (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement
  449. || (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols
  450. || (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks
  451. ) {
  452. continue;
  453. }
  454. // Ignore surrogate pairs
  455. if (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {
  456. continue;
  457. }
  458. // Ignore variation selectors
  459. if (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {
  460. continue;
  461. }
  462. // This covers some of the above cases, but we still keep them for performance reasons.
  463. if (defaultIgnorableCodePointRegex.test(character)) {
  464. continue;
  465. }
  466. // TODO: Use `/\p{RGI_Emoji}/v` when targeting Node.js 20.
  467. if (emojiRegex().test(character)) {
  468. width += 2;
  469. continue;
  470. }
  471. width += eastAsianWidth(codePoint, eastAsianWidthOptions);
  472. }
  473. return width;
  474. }
  475. function isUnicodeSupported() {
  476. const {env} = g__default;
  477. const {TERM, TERM_PROGRAM} = env;
  478. if (g__default.platform !== 'win32') {
  479. return TERM !== 'linux'; // Linux console (kernel)
  480. }
  481. return Boolean(env.WT_SESSION) // Windows Terminal
  482. || Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)
  483. || env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder
  484. || TERM_PROGRAM === 'Terminus-Sublime'
  485. || TERM_PROGRAM === 'vscode'
  486. || TERM === 'xterm-256color'
  487. || TERM === 'alacritty'
  488. || TERM === 'rxvt-unicode'
  489. || TERM === 'rxvt-unicode-256color'
  490. || env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';
  491. }
  492. const TYPE_COLOR_MAP = {
  493. info: "cyan",
  494. fail: "red",
  495. success: "green",
  496. ready: "green",
  497. start: "magenta"
  498. };
  499. const LEVEL_COLOR_MAP = {
  500. 0: "red",
  501. 1: "yellow"
  502. };
  503. const unicode = isUnicodeSupported();
  504. const s = (c, fallback) => unicode ? c : fallback;
  505. const TYPE_ICONS = {
  506. error: s("\u2716", "\xD7"),
  507. fatal: s("\u2716", "\xD7"),
  508. ready: s("\u2714", "\u221A"),
  509. warn: s("\u26A0", "\u203C"),
  510. info: s("\u2139", "i"),
  511. success: s("\u2714", "\u221A"),
  512. debug: s("\u2699", "D"),
  513. trace: s("\u2192", "\u2192"),
  514. fail: s("\u2716", "\xD7"),
  515. start: s("\u25D0", "o"),
  516. log: ""
  517. };
  518. function stringWidth(str) {
  519. const hasICU = typeof Intl === "object";
  520. if (!hasICU || !Intl.Segmenter) {
  521. return box.stripAnsi(str).length;
  522. }
  523. return stringWidth$1(str);
  524. }
  525. class FancyReporter extends basic.BasicReporter {
  526. formatStack(stack, message, opts) {
  527. const indent = " ".repeat((opts?.errorLevel || 0) + 1);
  528. return `
  529. ${indent}` + basic.parseStack(stack, message).map(
  530. (line) => " " + line.replace(/^at +/, (m) => box.colors.gray(m)).replace(/\((.+)\)/, (_, m) => `(${box.colors.cyan(m)})`)
  531. ).join(`
  532. ${indent}`);
  533. }
  534. formatType(logObj, isBadge, opts) {
  535. const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || "gray";
  536. if (isBadge) {
  537. return getBgColor(typeColor)(
  538. box.colors.black(` ${logObj.type.toUpperCase()} `)
  539. );
  540. }
  541. const _type = typeof TYPE_ICONS[logObj.type] === "string" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;
  542. return _type ? getColor(typeColor)(_type) : "";
  543. }
  544. formatLogObj(logObj, opts) {
  545. const [message, ...additional] = this.formatArgs(logObj.args, opts).split(
  546. "\n"
  547. );
  548. if (logObj.type === "box") {
  549. return box.box(
  550. characterFormat(
  551. message + (additional.length > 0 ? "\n" + additional.join("\n") : "")
  552. ),
  553. {
  554. title: logObj.title ? characterFormat(logObj.title) : void 0,
  555. style: logObj.style
  556. }
  557. );
  558. }
  559. const date = this.formatDate(logObj.date, opts);
  560. const coloredDate = date && box.colors.gray(date);
  561. const isBadge = logObj.badge ?? logObj.level < 2;
  562. const type = this.formatType(logObj, isBadge, opts);
  563. const tag = logObj.tag ? box.colors.gray(logObj.tag) : "";
  564. let line;
  565. const left = this.filterAndJoin([type, characterFormat(message)]);
  566. const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);
  567. const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;
  568. line = space > 0 && (opts.columns || 0) >= 80 ? left + " ".repeat(space) + right : (right ? `${box.colors.gray(`[${right}]`)} ` : "") + left;
  569. line += characterFormat(
  570. additional.length > 0 ? "\n" + additional.join("\n") : ""
  571. );
  572. if (logObj.type === "trace") {
  573. const _err = new Error("Trace: " + logObj.message);
  574. line += this.formatStack(_err.stack || "", _err.message);
  575. }
  576. return isBadge ? "\n" + line + "\n" : line;
  577. }
  578. }
  579. function characterFormat(str) {
  580. return str.replace(/`([^`]+)`/gm, (_, m) => box.colors.cyan(m)).replace(/\s+_([^_]+)_\s+/gm, (_, m) => ` ${box.colors.underline(m)} `);
  581. }
  582. function getColor(color = "white") {
  583. return box.colors[color] || box.colors.white;
  584. }
  585. function getBgColor(color = "bgWhite") {
  586. return box.colors[`bg${color[0].toUpperCase()}${color.slice(1)}`] || box.colors.bgWhite;
  587. }
  588. function createConsola(options = {}) {
  589. let level = _getDefaultLogLevel();
  590. if (process.env.CONSOLA_LEVEL) {
  591. level = Number.parseInt(process.env.CONSOLA_LEVEL) ?? level;
  592. }
  593. const consola2 = core.createConsola({
  594. level,
  595. defaults: { level },
  596. stdout: process.stdout,
  597. stderr: process.stderr,
  598. prompt: (...args) => import('./chunks/prompt.cjs').then((m) => m.prompt(...args)),
  599. reporters: options.reporters || [
  600. options.fancy ?? !(T || R) ? new FancyReporter() : new basic.BasicReporter()
  601. ],
  602. ...options
  603. });
  604. return consola2;
  605. }
  606. function _getDefaultLogLevel() {
  607. if (g) {
  608. return core.LogLevels.debug;
  609. }
  610. if (R) {
  611. return core.LogLevels.warn;
  612. }
  613. return core.LogLevels.info;
  614. }
  615. const consola = createConsola();
  616. exports.Consola = core.Consola;
  617. exports.LogLevels = core.LogLevels;
  618. exports.LogTypes = core.LogTypes;
  619. exports.consola = consola;
  620. exports.createConsola = createConsola;
  621. exports.default = consola;