@sortedyuan/maybecode 0.3.2 → 0.5.0

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 (295) hide show
  1. package/README.md +166 -55
  2. package/README.zh-CN.md +267 -0
  3. package/dist/application.d.ts +40 -34
  4. package/dist/application.d.ts.map +1 -1
  5. package/dist/application.js +290 -170
  6. package/dist/application.js.map +1 -1
  7. package/dist/args.d.ts +2 -2
  8. package/dist/args.d.ts.map +1 -1
  9. package/dist/args.js +50 -27
  10. package/dist/args.js.map +1 -1
  11. package/dist/bin.js +82 -71
  12. package/dist/bin.js.map +4 -4
  13. package/dist/cli/chunk-3IORPKBL.js +3572 -0
  14. package/dist/cli/chunk-3IORPKBL.js.map +7 -0
  15. package/dist/cli/{chunk-LVTRXPDS.js → chunk-4B2Z6KW7.js} +1547 -1536
  16. package/dist/cli/chunk-4B2Z6KW7.js.map +7 -0
  17. package/dist/cli/{chunk-JT6VBKOM.js → chunk-4WG6JIJJ.js} +127 -33
  18. package/dist/cli/{chunk-JT6VBKOM.js.map → chunk-4WG6JIJJ.js.map} +3 -3
  19. package/dist/cli/{chunk-K5JWPNSY.js → chunk-5SLWALZK.js} +3521 -16164
  20. package/dist/cli/chunk-5SLWALZK.js.map +7 -0
  21. package/dist/cli/chunk-MNBYXL5Y.js +132 -0
  22. package/dist/cli/chunk-MNBYXL5Y.js.map +7 -0
  23. package/dist/cli/{chunk-F4XRPLUM.js → chunk-SLWLUEHQ.js} +226 -86
  24. package/dist/cli/chunk-SLWLUEHQ.js.map +7 -0
  25. package/dist/cli/chunk-UQDZ55LQ.js +199 -0
  26. package/dist/cli/chunk-UQDZ55LQ.js.map +7 -0
  27. package/dist/cli/{chunk-7ISOHFS7.js → chunk-WMSG5ZTR.js} +717 -388
  28. package/dist/cli/chunk-WMSG5ZTR.js.map +7 -0
  29. package/dist/cli/chunk-WVIRS76R.js +4057 -0
  30. package/dist/cli/chunk-WVIRS76R.js.map +7 -0
  31. package/dist/cli/{chunk-HOU5ITUK.js → chunk-XTEMRAQW.js} +1 -1
  32. package/dist/cli/chunk-XTEMRAQW.js.map +7 -0
  33. package/dist/cli/chunk-Z3BOPBVU.js +91 -0
  34. package/dist/cli/chunk-Z3BOPBVU.js.map +7 -0
  35. package/dist/cli/{configured-WHY3GGAJ.js → configured-ACNM6TRQ.js} +10 -9
  36. package/dist/cli/{file-type-R2T7TBHI.js → file-type-HLHPV7WC.js} +817 -13
  37. package/dist/cli/file-type-HLHPV7WC.js.map +7 -0
  38. package/dist/cli/mcp-auth-XD5U7WCV.js +74 -0
  39. package/dist/cli/mcp-auth-XD5U7WCV.js.map +7 -0
  40. package/dist/cli/onboarding-WQWCPYEO.js +530 -0
  41. package/dist/cli/onboarding-WQWCPYEO.js.map +7 -0
  42. package/dist/cli/onboarding-check-HRRI5OJ7.js +32 -0
  43. package/dist/cli/onboarding-check-HRRI5OJ7.js.map +7 -0
  44. package/dist/cli/{retained-tui-VJ3VX4R3.js → retained-tui-QF5VMYLC.js} +788 -332
  45. package/dist/cli/retained-tui-QF5VMYLC.js.map +7 -0
  46. package/dist/cli/{sixel-LWTCM76G.js → sixel-ISZ4FZ3U.js} +37 -37
  47. package/dist/cli/{sixel-LWTCM76G.js.map → sixel-ISZ4FZ3U.js.map} +1 -1
  48. package/dist/cli/{team-T7G7PPNN.js → team-O2I5BXHM.js} +7 -6
  49. package/dist/cli/{team-v2-JGBBQ7FR.js → team-v2-YYO2G7DJ.js} +816 -390
  50. package/dist/cli/team-v2-YYO2G7DJ.js.map +7 -0
  51. package/dist/cli/{web-server-FOMNPY7Q.js → web-server-SXMH6FGA.js} +55 -19
  52. package/dist/cli/web-server-SXMH6FGA.js.map +7 -0
  53. package/dist/cli/{web-ui-COB6PKC5.js → web-ui-UWQUFE4W.js} +7 -6
  54. package/dist/config-schema.json +337 -0
  55. package/dist/configured.d.ts +18 -11
  56. package/dist/configured.d.ts.map +1 -1
  57. package/dist/configured.js +213 -390
  58. package/dist/configured.js.map +1 -1
  59. package/dist/controller.d.ts +19 -18
  60. package/dist/controller.d.ts.map +1 -1
  61. package/dist/delegation-commands.d.ts +1 -1
  62. package/dist/delegation-commands.d.ts.map +1 -1
  63. package/dist/delegation-commands.js +8 -8
  64. package/dist/delegation-commands.js.map +1 -1
  65. package/dist/errors.d.ts +2 -1
  66. package/dist/errors.d.ts.map +1 -1
  67. package/dist/errors.js +2 -1
  68. package/dist/errors.js.map +1 -1
  69. package/dist/events.d.ts +8 -6
  70. package/dist/events.d.ts.map +1 -1
  71. package/dist/fork-picker.d.ts.map +1 -1
  72. package/dist/fork-picker.js +19 -5
  73. package/dist/fork-picker.js.map +1 -1
  74. package/dist/git-request.d.ts +6 -6
  75. package/dist/git-request.d.ts.map +1 -1
  76. package/dist/git-request.js +28 -15
  77. package/dist/git-request.js.map +1 -1
  78. package/dist/goal-commands.d.ts +1 -1
  79. package/dist/goal-commands.d.ts.map +1 -1
  80. package/dist/goal-commands.js +12 -5
  81. package/dist/goal-commands.js.map +1 -1
  82. package/dist/index.d.ts +5 -37
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +3 -36
  85. package/dist/index.js.map +1 -1
  86. package/dist/instructions.d.ts +2 -7
  87. package/dist/instructions.d.ts.map +1 -1
  88. package/dist/instructions.js +7 -15
  89. package/dist/instructions.js.map +1 -1
  90. package/dist/keymap.d.ts +2 -2
  91. package/dist/keymap.d.ts.map +1 -1
  92. package/dist/keymap.js +2 -2
  93. package/dist/keymap.js.map +1 -1
  94. package/dist/maybecode-config.schema.json +1765 -0
  95. package/dist/mcp-auth.d.ts +1 -1
  96. package/dist/mcp-auth.d.ts.map +1 -1
  97. package/dist/mcp-auth.js +11 -8
  98. package/dist/mcp-auth.js.map +1 -1
  99. package/dist/mcp-commands.d.ts.map +1 -1
  100. package/dist/mcp-commands.js +18 -4
  101. package/dist/mcp-commands.js.map +1 -1
  102. package/dist/mcp-interaction-ui.d.ts.map +1 -1
  103. package/dist/mcp-interaction-ui.js +11 -4
  104. package/dist/mcp-interaction-ui.js.map +1 -1
  105. package/dist/media-history.d.ts +1 -1
  106. package/dist/media-history.d.ts.map +1 -1
  107. package/dist/media-history.js +8 -2
  108. package/dist/media-history.js.map +1 -1
  109. package/dist/model-picker.d.ts.map +1 -1
  110. package/dist/model-picker.js +10 -11
  111. package/dist/model-picker.js.map +1 -1
  112. package/dist/model-transition.d.ts +11 -0
  113. package/dist/model-transition.d.ts.map +1 -0
  114. package/dist/model-transition.js +48 -0
  115. package/dist/model-transition.js.map +1 -0
  116. package/dist/model.d.ts +2 -2
  117. package/dist/model.d.ts.map +1 -1
  118. package/dist/model.js +8 -4
  119. package/dist/model.js.map +1 -1
  120. package/dist/onboarding-check.d.ts +3 -0
  121. package/dist/onboarding-check.d.ts.map +1 -0
  122. package/dist/onboarding-check.js +22 -0
  123. package/dist/onboarding-check.js.map +1 -0
  124. package/dist/onboarding.d.ts +6 -0
  125. package/dist/onboarding.d.ts.map +1 -0
  126. package/dist/onboarding.js +463 -0
  127. package/dist/onboarding.js.map +1 -0
  128. package/dist/plugins/application.d.ts +6 -4
  129. package/dist/plugins/application.d.ts.map +1 -1
  130. package/dist/plugins/application.js +106 -52
  131. package/dist/plugins/application.js.map +1 -1
  132. package/dist/plugins/instructions.d.ts +1 -1
  133. package/dist/plugins/instructions.d.ts.map +1 -1
  134. package/dist/plugins/instructions.js +24 -11
  135. package/dist/plugins/instructions.js.map +1 -1
  136. package/dist/plugins/resources.d.ts +2 -2
  137. package/dist/plugins/resources.d.ts.map +1 -1
  138. package/dist/plugins/resources.js +22 -12
  139. package/dist/plugins/resources.js.map +1 -1
  140. package/dist/policy.d.ts +1 -1
  141. package/dist/policy.d.ts.map +1 -1
  142. package/dist/policy.js +59 -11
  143. package/dist/policy.js.map +1 -1
  144. package/dist/run.d.ts +2 -0
  145. package/dist/run.d.ts.map +1 -1
  146. package/dist/run.js +38 -33
  147. package/dist/run.js.map +1 -1
  148. package/dist/runtime-instructions.d.ts +1 -1
  149. package/dist/runtime-instructions.d.ts.map +1 -1
  150. package/dist/runtime-instructions.js +15 -7
  151. package/dist/runtime-instructions.js.map +1 -1
  152. package/dist/session-navigation.d.ts +6 -0
  153. package/dist/session-navigation.d.ts.map +1 -0
  154. package/dist/session-navigation.js +64 -0
  155. package/dist/session-navigation.js.map +1 -0
  156. package/dist/session-picker.d.ts +1 -1
  157. package/dist/session-picker.d.ts.map +1 -1
  158. package/dist/session-picker.js +23 -32
  159. package/dist/session-picker.js.map +1 -1
  160. package/dist/settings.d.ts +718 -0
  161. package/dist/settings.d.ts.map +1 -0
  162. package/dist/settings.js +14 -0
  163. package/dist/settings.js.map +1 -0
  164. package/dist/skills.d.ts +1 -1
  165. package/dist/skills.d.ts.map +1 -1
  166. package/dist/skills.js +10 -12
  167. package/dist/skills.js.map +1 -1
  168. package/dist/slash-commands.d.ts +2 -2
  169. package/dist/slash-commands.d.ts.map +1 -1
  170. package/dist/slash-commands.js +149 -67
  171. package/dist/slash-commands.js.map +1 -1
  172. package/dist/team-execution.d.ts +10 -0
  173. package/dist/team-execution.d.ts.map +1 -0
  174. package/dist/team-execution.js +29 -0
  175. package/dist/team-execution.js.map +1 -0
  176. package/dist/team-patches.d.ts.map +1 -1
  177. package/dist/team-patches.js +149 -52
  178. package/dist/team-patches.js.map +1 -1
  179. package/dist/team-plan.d.ts +2 -2
  180. package/dist/team-plan.d.ts.map +1 -1
  181. package/dist/team-plan.js +115 -34
  182. package/dist/team-plan.js.map +1 -1
  183. package/dist/team-recovery.d.ts +1 -1
  184. package/dist/team-recovery.d.ts.map +1 -1
  185. package/dist/team-recovery.js +40 -10
  186. package/dist/team-recovery.js.map +1 -1
  187. package/dist/team-v2.d.ts.map +1 -1
  188. package/dist/team-v2.js +335 -104
  189. package/dist/team-v2.js.map +1 -1
  190. package/dist/team-verification.d.ts +4 -2
  191. package/dist/team-verification.d.ts.map +1 -1
  192. package/dist/team-verification.js +300 -97
  193. package/dist/team-verification.js.map +1 -1
  194. package/dist/team.d.ts +2 -2
  195. package/dist/team.d.ts.map +1 -1
  196. package/dist/team.js +172 -62
  197. package/dist/team.js.map +1 -1
  198. package/dist/terminal-web.d.ts +1 -0
  199. package/dist/terminal-web.d.ts.map +1 -1
  200. package/dist/terminal-web.js +28 -10
  201. package/dist/terminal-web.js.map +1 -1
  202. package/dist/ui/actions.d.ts.map +1 -1
  203. package/dist/ui/actions.js.map +1 -1
  204. package/dist/ui/retained-tui.d.ts.map +1 -1
  205. package/dist/ui/retained-tui.js +231 -173
  206. package/dist/ui/retained-tui.js.map +1 -1
  207. package/dist/ui/{prototype-view.d.ts → terminal-view.d.ts} +7 -7
  208. package/dist/ui/terminal-view.d.ts.map +1 -0
  209. package/dist/ui/{prototype-view.js → terminal-view.js} +185 -98
  210. package/dist/ui/terminal-view.js.map +1 -0
  211. package/dist/web-commands.d.ts.map +1 -1
  212. package/dist/web-commands.js +160 -57
  213. package/dist/web-commands.js.map +1 -1
  214. package/dist/web-extension.d.ts.map +1 -1
  215. package/dist/web-extension.js +14 -4
  216. package/dist/web-extension.js.map +1 -1
  217. package/dist/web-server.d.ts.map +1 -1
  218. package/dist/web-server.js +2 -1
  219. package/dist/web-server.js.map +1 -1
  220. package/dist/web-ui.d.ts.map +1 -1
  221. package/dist/web-ui.js +167 -40
  222. package/dist/web-ui.js.map +1 -1
  223. package/dist/workspace-configuration.d.ts +7 -0
  224. package/dist/workspace-configuration.d.ts.map +1 -0
  225. package/dist/workspace-configuration.js +134 -0
  226. package/dist/workspace-configuration.js.map +1 -0
  227. package/dist/workspace-state.d.ts +20 -0
  228. package/dist/workspace-state.d.ts.map +1 -0
  229. package/dist/workspace-state.js +2 -0
  230. package/dist/workspace-state.js.map +1 -0
  231. package/dist/workspace.d.ts +26 -43
  232. package/dist/workspace.d.ts.map +1 -1
  233. package/dist/workspace.js +261 -323
  234. package/dist/workspace.js.map +1 -1
  235. package/package.json +21 -31
  236. package/dist/cli/chunk-7ISOHFS7.js.map +0 -7
  237. package/dist/cli/chunk-F4XRPLUM.js.map +0 -7
  238. package/dist/cli/chunk-H7SNBFO4.js +0 -5522
  239. package/dist/cli/chunk-H7SNBFO4.js.map +0 -7
  240. package/dist/cli/chunk-HOU5ITUK.js.map +0 -7
  241. package/dist/cli/chunk-K5JWPNSY.js.map +0 -7
  242. package/dist/cli/chunk-LVTRXPDS.js.map +0 -7
  243. package/dist/cli/chunk-VAZMCNBB.js +0 -686
  244. package/dist/cli/chunk-VAZMCNBB.js.map +0 -7
  245. package/dist/cli/chunk-WOFEI42C.js +0 -7820
  246. package/dist/cli/chunk-WOFEI42C.js.map +0 -7
  247. package/dist/cli/file-type-R2T7TBHI.js.map +0 -7
  248. package/dist/cli/mcp-auth-UNRHSIKJ.js +0 -63
  249. package/dist/cli/mcp-auth-UNRHSIKJ.js.map +0 -7
  250. package/dist/cli/retained-tui-VJ3VX4R3.js.map +0 -7
  251. package/dist/cli/team-v2-JGBBQ7FR.js.map +0 -7
  252. package/dist/cli/tui-SA74DKMA.js +0 -1705
  253. package/dist/cli/tui-SA74DKMA.js.map +0 -7
  254. package/dist/cli/web-server-FOMNPY7Q.js.map +0 -7
  255. package/dist/delegation.d.ts +0 -2
  256. package/dist/delegation.d.ts.map +0 -1
  257. package/dist/delegation.js +0 -2
  258. package/dist/delegation.js.map +0 -1
  259. package/dist/history-memory.d.ts +0 -2
  260. package/dist/history-memory.d.ts.map +0 -1
  261. package/dist/history-memory.js +0 -2
  262. package/dist/history-memory.js.map +0 -1
  263. package/dist/subagent-budget.d.ts +0 -2
  264. package/dist/subagent-budget.d.ts.map +0 -1
  265. package/dist/subagent-budget.js +0 -2
  266. package/dist/subagent-budget.js.map +0 -1
  267. package/dist/subagent-files.d.ts +0 -2
  268. package/dist/subagent-files.d.ts.map +0 -1
  269. package/dist/subagent-files.js +0 -2
  270. package/dist/subagent-files.js.map +0 -1
  271. package/dist/subagent-host.d.ts +0 -2
  272. package/dist/subagent-host.d.ts.map +0 -1
  273. package/dist/subagent-host.js +0 -2
  274. package/dist/subagent-host.js.map +0 -1
  275. package/dist/subagent-instructions.d.ts +0 -2
  276. package/dist/subagent-instructions.d.ts.map +0 -1
  277. package/dist/subagent-instructions.js +0 -2
  278. package/dist/subagent-instructions.js.map +0 -1
  279. package/dist/subagents.d.ts +0 -2
  280. package/dist/subagents.d.ts.map +0 -1
  281. package/dist/subagents.js +0 -2
  282. package/dist/subagents.js.map +0 -1
  283. package/dist/summarizer.d.ts +0 -2
  284. package/dist/summarizer.d.ts.map +0 -1
  285. package/dist/summarizer.js +0 -2
  286. package/dist/summarizer.js.map +0 -1
  287. package/dist/tui.d.ts +0 -7
  288. package/dist/tui.d.ts.map +0 -1
  289. package/dist/tui.js +0 -1109
  290. package/dist/tui.js.map +0 -1
  291. package/dist/ui/prototype-view.d.ts.map +0 -1
  292. package/dist/ui/prototype-view.js.map +0 -1
  293. /package/dist/cli/{configured-WHY3GGAJ.js.map → configured-ACNM6TRQ.js.map} +0 -0
  294. /package/dist/cli/{team-T7G7PPNN.js.map → team-O2I5BXHM.js.map} +0 -0
  295. /package/dist/cli/{web-ui-COB6PKC5.js.map → web-ui-UWQUFE4W.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/emoji-regex@10.6.0/node_modules/emoji-regex/index.js", "../../../../node_modules/.pnpm/tty-events@1.0.0/node_modules/tty-events/index.min.js", "../../../../node_modules/.pnpm/node-ansiparser@2.2.1/node_modules/node-ansiparser/dist/ansiparser.js", "../../../../node_modules/.pnpm/ansi-regex@6.3.0/node_modules/ansi-regex/index.js", "../../../../node_modules/.pnpm/strip-ansi@7.2.0/node_modules/strip-ansi/index.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js", "../../../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js", "../../../../packages/ui/tui/src/node-terminal.ts", "../../../../packages/ui/keybindings/src/index.ts", "../../../../packages/ui/tui/src/image-support.ts", "../../../../node_modules/.pnpm/supports-terminal-graphics@0.1.0/node_modules/supports-terminal-graphics/index.js"],
4
- "sourcesContent": ["module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n", "const e=require(\"events\"),{StringDecoder:t}=require(\"string_decoder\");class s{constructor({name:e,sequence:t,isSpecial:s=false,ctrl:i=false,alt:a=false,shift:n=false}){if(typeof e!==\"string\")throw new TypeError;this.name=e;this.sequence=t;this.isSpecial=s;this.ctrl=i;this.alt=a;this.shift=n}get meta(){return this.alt}set meta(e){this.alt=e}toString(){return(this.ctrl?\"Ctrl+\":\"\")+(this.alt?\"Alt+\":\"\")+(this.shift?\"Shift+\":\"\")+this.name}}class i{constructor(e){Object.assign(this,e)}}class a{constructor(e,t,s,i,a,n){this.startX=e;this.startY=t;this.endX=s;this.endY=i;this.mouseX=a;this.mouseY=n}}function*n(e){function t(t,s,a,n=false){if(t<0||s<1||a<1||isNaN(t)||isNaN(s)||isNaN(a))return;let r,l,u={x:s,y:a};r=t&3;if(t&64||t&128){if(t&64)r|=4;if(t&128)r|=8}else if(r===3)r=undefined;else r+=1;u.button=r;if(t&32){l=\"mousemove\"}else if(r===undefined||n){l=\"mouseup\"}else if(r===4){l=\"wheel\";u.direction=-1}else if(r===5){l=\"wheel\";u.direction=1}else{l=\"mousedown\"}u.shift=Boolean(t&4);u.alt=Boolean(t&8);u.ctrl=Boolean(t&16);u.type=l;e.emit(l,new i(u));e.emit(\"mouse\",new i(u))}function n(t){var s,i,n,r,l,u;if(t.length===6)[s,i,n,r,l,u]=t;else{n=l=t[0];r=u=t[1]}e.emit(\"highlight\",new a(s,i,n,r,l,u))}function r(){e.emit(\"keypress\",new s({name:\"escape\",sequence:\"\u001B\",isSpecial:true}))}var l=false,u=yield,c;e:while(true){if(u===\"\"){u=yield;continue}c=u;const i={name:undefined,sequence:undefined,isSpecial:true,ctrl:false,alt:false,shift:false};let a=0;if(u===\"\u001B\"){a=1;c+=u=yield;if(u===\"\u001B\"){a=2;c+=u=yield}if(u===\"\"||c.length>1&&u===\"\u001B\"){e.emit(\"keypress\",new s({name:\"escape\",sequence:c,isSpecial:true}));u=yield;if(u===\"\"){u=yield}continue}}if(a&&(u===\"O\"||u===\"[\")){let l=u;let f=0;if(u===\"O\"){c+=u=yield;if(u>=\"0\"&&u<=\"9\"){f=(u>>0)-1;c+=u=yield}else if(u===\"\"){e.emit(\"keypress\",new s({name:\"O\",sequence:c,alt:true}));u=yield;continue e}l+=u}else if(u===\"[\"){const o=c.length;c+=u=yield;if(u===\"\"){e.emit(\"keypress\",new s({name:\"[\",sequence:c,alt:true}));u=yield;continue e}if(u===\"M\"){const s=[];for(let t=0;t<3;t++){let t=yield true;if(t===\"\"){e.emit(\"unknownSequence\",c);u=yield;continue e}s.push(t-32)}t(...s);u=yield;continue}else if(u===\"T\"||u===\"t\"){const t=u,s=t===\"T\"?6:2;const i=[];for(let t=0;t<s;t++){let t=yield true;if(t===\"\"){e.emit(\"unknownSequence\",c);u=yield;continue e}i.push(t-32)}n(i);u=yield;continue}if(u===\"[\"){l+=u;c+=u=yield}const h=c.length-1;while(true){const t=u.charCodeAt(0);if(t>=64&&t<=126||t===36){break}else if(t>=32&&t<=63){c+=u=yield}else{e.emit(\"unknownSequence\",c);continue e}}const m=c.slice(o);if(m[0]===\"<\"&&(u===\"M\"||u===\"m\")||m[0]===\"<\"&&(u===\"T\"||u===\"t\")||u===\"I\"||u===\"O\"||m===\"200~\"){if(a>=2)r();if(u===\"M\"||u===\"m\"||u===\"T\"||u===\"t\"){const s=u===\"M\"||u===\"m\",i=m.slice(1,m.length-1).split(\";\");let a=i.length!==(s?3:u===\"t\"?2:6);if(!a){for(let e=0;e<i.length;e++){const t=parseInt(i[e]);if(isNaN(t)){a=true;break}i[e]=t}}if(a){e.emit(\"unknownSequence\",c)}else{if(s){t(...i,u===\"m\")}else{n(i)}}}else if(u===\"I\"){e.emit(\"focusin\")}else if(u===\"O\"){e.emit(\"focusout\")}else if(m===\"200~\"){const t=\"\u001B[201~\";let s=\"\",i=0;while(true){s+=u=yield;if(u===t[i])i++;else i=0;if(i>=t.length){e.emit(\"paste\",s.slice(0,s.length-t.length));break}}}u=yield;continue}const d=c.slice(h);let b;if(b=d.match(/^(\\d\\d?)(;(\\d))?([~^$])$/)){l+=b[1]+b[4];f=(b[3]||1)-1}else if(b=d.match(/^((\\d;)?(\\d))?([A-Za-z])$/)){l+=b[4];f=(b[3]||1)-1}else{l+=d}switch(l[l.length-1]){case\"$\":i.shift=true;l=l.slice(0,l.length-1)+\"~\";break;case\"^\":i.ctrl=true;l=l.slice(0,l.length-1)+\"~\";break;case\"@\":i.shift=i.ctrl=true;l=l.slice(0,l.length-1)+\"~\";break}}i.ctrl=i.ctrl||Boolean(f&4);i.alt=Boolean(f&10);i.shift=i.shift||Boolean(f&1);if(a>=2){i.alt=true}if(l.match(/^(O|\\[)[A-Z]$/)){switch(l[1]){case\"A\":i.name=\"up\";break;case\"B\":i.name=\"down\";break;case\"C\":i.name=\"right\";break;case\"D\":i.name=\"left\";break;case\"E\":i.name=\"clear\";break;case\"F\":i.name=\"end\";break;case\"H\":i.name=\"home\";break;case\"P\":i.name=\"f1\";break;case\"Q\":i.name=\"f2\";break;case\"R\":i.name=\"f3\";break;case\"S\":i.name=\"f4\";break}}else{switch(l){case\"[11~\":i.name=\"f1\";break;case\"[12~\":i.name=\"f2\";break;case\"[13~\":i.name=\"f3\";break;case\"[14~\":i.name=\"f4\";break;case\"[[A\":i.name=\"f1\";break;case\"[[B\":i.name=\"f2\";break;case\"[[C\":i.name=\"f3\";break;case\"[[D\":i.name=\"f4\";break;case\"[[E\":i.name=\"f5\";break;case\"[15~\":i.name=\"f5\";break;case\"[17~\":i.name=\"f6\";break;case\"[18~\":i.name=\"f7\";break;case\"[19~\":i.name=\"f8\";break;case\"[20~\":i.name=\"f9\";break;case\"[21~\":i.name=\"f10\";break;case\"[23~\":i.name=\"f11\";break;case\"[24~\":i.name=\"f12\";break;case\"[25~\":i.name=\"f3\";i.shift=true;break;case\"[26~\":i.name=\"f4\";i.shift=true;break;case\"[28~\":i.name=\"f5\";i.shift=true;break;case\"[29~\":i.name=\"f6\";i.shift=true;break;case\"[31~\":i.name=\"f7\";i.shift=true;break;case\"[32~\":i.name=\"f8\";i.shift=true;break;case\"[33~\":i.name=\"f9\";i.shift=true;break;case\"[34~\":i.name=\"f10\";i.shift=true;break;case\"[1~\":i.name=\"home\";break;case\"[2~\":i.name=\"insert\";break;case\"[3~\":i.name=\"delete\";break;case\"[4~\":i.name=\"end\";break;case\"[5~\":i.name=\"pageup\";break;case\"[6~\":i.name=\"pagedown\";break;case\"[[5~\":i.name=\"pageup\";break;case\"[[6~\":i.name=\"pagedown\";break;case\"[7~\":i.name=\"home\";break;case\"[8~\":i.name=\"end\";break;case\"[a\":i.name=\"up\";i.shift=true;break;case\"[b\":i.name=\"down\";i.shift=true;break;case\"[c\":i.name=\"right\";i.shift=true;break;case\"[d\":i.name=\"left\";i.shift=true;break;case\"[e\":i.name=\"clear\";i.shift=true;break;case\"Oa\":i.name=\"up\";i.ctrl=true;break;case\"Ob\":i.name=\"down\";i.ctrl=true;break;case\"Oc\":i.name=\"right\";i.ctrl=true;break;case\"Od\":i.name=\"left\";i.ctrl=true;break;case\"Oe\":i.name=\"clear\";i.ctrl=true;break;case\"[Z\":i.name=\"tab\";i.shift=true;break}}i.sequence=c;if(i.name!==undefined){e.emit(\"keypress\",new s(i))}else{e.emit(\"unknownSequence\",c)}u=yield;continue}else{if(a>=2)r();i.alt=Boolean(a);i.sequence=c;if(u===\"\\r\"){i.name=\"enter\"}else if(u===\"\\n\"){if(l){u=yield;continue}i.name=\"enter\"}else if(u===\"\\t\"){i.name=\"tab\"}else if(u===\"\\b\"||u===\"\u007F\"){i.name=\"backspace\"}else if(u===\" \"){i.name=\"space\"}else if(u<=\"\u001E\"){i.name=String.fromCharCode(u.charCodeAt(0)+64).toLowerCase();i.ctrl=true}else if(u===\"\u001F\"){i.name=\"-\";i.ctrl=true}else{i.isSpecial=false;i.name=u;i.sequence=(a?\"\u001B\":\"\")+i.name}}e.emit(\"keypress\",new s(i));l=u===\"\\r\";u=yield}}class r extends e{constructor(e=process.stdin,s,{escKeyTimeout:i=500,timeout:a=i,encoding:r}={}){super();const l=new t(r),u=n(this);var c=u.next().value;this._dataListener=e=>{for(let t=0;t<e.length;t++){if(c)c=u.next(e[t]).value;else{let s=l.write(Buffer.from([e[t]]));if(s)for(let e of s){if(u.next(e).value){c=true;break}}}}if(this._timeoutID){clearTimeout(this._timeoutID)}if(this.timeout!==Infinity){this._timeoutID=setTimeout(()=>{this._timeoutID=undefined;c=u.next(\"\").value},this.timeout)}};this._endListener=()=>{if(!c){let e=l.end();if(e)for(let t of e){if(u.next(t).value){c=true;break}}}};this._input=e;this.output=s||(e===process.stdin?process.stdout:null);this._encoding=r;this.timeout=a;this._timeoutID=undefined;this._isPaused=true;this.resume()}pause(e=true){if(!this._isPaused){this._input.removeListener(\"data\",this._dataListener);this._input.removeListener(\"end\",this._endListener);if(e&&this._input.pause)this._input.pause();this._isPaused=true;return true}else return false}resume(e=true){if(this._isPaused){this._input.on(\"data\",this._dataListener);this._input.on(\"end\",this._endListener);if(e&&this._input.resume)this._input.resume();this._isPaused=false;return true}else return false}enableMouse(e=0,t=true){this.output.write(`\u001B[?1000h`);if(e===1)this.output.write(`\u001B[?1001h`);else{if(e>=2)this.output.write(`\u001B[?1002h`);if(e===3)this.output.write(`\u001B[?1003h`)}if(t)this.output.write(`\u001B[?1006h`)}disableMouse(){this.output.write(`\u001B[?1000l\u001B[?1006l`)}enableBPM(){this.output.write(\"\u001B[?2004h\")}disableBPM(){this.output.write(\"\u001B[?2004l\")}enableFocus(){this.output.write(\"\u001B[?1004h\")}disableFocus(){this.output.write(\"\u001B[?1004l\")}}Object.assign(r,{VT200_MOUSE:0,VT200_HIGHLIGHT_MOUSE:1,BTN_EVENT_MOUSE:2,ANY_EVENT_MOUSE:3,KeyboardEvent:s,MouseEvent:i,HighlightEvent:a});module.exports=r;", "(function () {\n 'use strict';\n\n /**\n * range function for numbers [a, .., b-1]\n *\n * @param {number} a\n * @param {number} b\n * @return {Array}\n */\n function r(a, b) {\n var c = b - a;\n var arr = new Array(c);\n while (c--)\n arr[c] = --b;\n return arr;\n }\n\n /**\n * Add a transition to the transition table.\n *\n * @param table - table to add transition\n * @param {number} inp - input character code\n * @param {number} state - current state\n * @param {number=} action - action to be taken\n * @param {number=} next - next state\n */\n function add(table, inp, state, action, next) {\n table[state<<8|inp] = ((action | 0) << 4) | ((next === undefined) ? state : next);\n }\n\n /**\n * Add multiple transitions to the transition table.\n *\n * @param table - table to add transition\n * @param {Array} inps - array of input character codes\n * @param {number} state - current state\n * @param {number=} action - action to be taken\n * @param {number=} next - next state\n */\n function add_list(table, inps, state, action, next) {\n for (var i=0; i<inps.length; i++)\n add(table, inps[i], state, action, next);\n }\n\n /** global definition of printables and executables */\n var PRINTABLES = r(0x20, 0x7f);\n var EXECUTABLES = r(0x00, 0x18);\n EXECUTABLES.push(0x19);\n EXECUTABLES = EXECUTABLES.concat(r(0x1c, 0x20));\n\n /* meaning of state and action indices\n var STATES = [\n 'GROUND',\n 'ESCAPE',\n 'ESCAPE_INTERMEDIATE',\n 'CSI_ENTRY',\n 'CSI_PARAM',\n 'CSI_INTERMEDIATE',\n 'CSI_IGNORE',\n 'SOS_PM_APC_STRING',\n 'OSC_STRING',\n 'DCS_ENTRY',\n 'DCS_PARAM',\n 'DCS_IGNORE',\n 'DCS_INTERMEDIATE',\n 'DCS_PASSTHROUGH'\n ];\n var ACTIONS = [\n 'ignore',\n 'error',\n 'print',\n 'execute',\n 'osc_start',\n 'osc_put',\n 'osc_end',\n 'csi_dispatch',\n 'param',\n 'collect',\n 'esc_dispatch',\n 'clear',\n 'dcs_hook',\n 'dcs_put',\n 'dcs_unhook'\n ];\n */\n\n /**\n * create the standard transition table - used by all parser instances\n *\n * table[state << 8 | character code] = action << 4 | next state\n *\n * - states are indices of STATES (0 to 13)\n * - control character codes defined from 0 to 159 (C0 and C1)\n * - actions are indices of ACTIONS (0 to 14)\n * - any higher character than 159 is handled by the 'error' action\n */\n var TRANSITION_TABLE = (function() {\n var t = new Uint8Array(4095);\n\n // table with default transition [any] --> [error, GROUND]\n for (var state=0; state<14; ++state) {\n for (var code=0; code<160; ++code) {\n t[state<<8|code] = 16;\n }\n }\n\n // apply transitions\n // printables\n add_list(t, PRINTABLES, 0, 2);\n // global anywhere rules\n for (state=0; state<14; ++state) {\n add_list(t, [0x18, 0x1a, 0x99, 0x9a], state, 3, 0);\n add_list(t, r(0x80, 0x90), state, 3, 0);\n add_list(t, r(0x90, 0x98), state, 3, 0);\n add(t, 0x9c, state, 0, 0); // ST as terminator\n add(t, 0x1b, state, 11, 1); // ESC\n add(t, 0x9d, state, 4, 8); // OSC\n add_list(t, [0x98, 0x9e, 0x9f], state, 0, 7);\n add(t, 0x9b, state, 11, 3); // CSI\n add(t, 0x90, state, 11, 9); // DCS\n }\n // rules for executables and 7f\n add_list(t, EXECUTABLES, 0, 3);\n add_list(t, EXECUTABLES, 1, 3);\n add(t, 0x7f, 1);\n add_list(t, EXECUTABLES, 8);\n add_list(t, EXECUTABLES, 3, 3);\n add(t, 0x7f, 3);\n add_list(t, EXECUTABLES, 4, 3);\n add(t, 0x7f, 4);\n add_list(t, EXECUTABLES, 6, 3);\n add_list(t, EXECUTABLES, 5, 3);\n add(t, 0x7f, 5);\n add_list(t, EXECUTABLES, 2, 3);\n add(t, 0x7f, 2);\n // osc\n add(t, 0x5d, 1, 4, 8);\n add_list(t, PRINTABLES, 8, 5);\n add(t, 0x7f, 8, 5);\n add_list(t, [0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);\n add_list(t, r(0x1c, 0x20), 8, 0);\n // sos/pm/apc does nothing\n add_list(t, [0x58, 0x5e, 0x5f], 1, 0, 7);\n add_list(t, PRINTABLES, 7);\n add_list(t, EXECUTABLES, 7);\n add(t, 0x7f, 7);\n add(t, 0x9c, 7, 0, 0);\n // csi entries\n add(t, 0x5b, 1, 11, 3);\n add_list(t, r(0x40, 0x7f), 3, 7, 0);\n add_list(t, r(0x30, 0x3a), 3, 8, 4);\n add(t, 0x3b, 3, 8, 4);\n add_list(t, [0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);\n add_list(t, r(0x30, 0x3a), 4, 8);\n add(t, 0x3b, 4, 8);\n add_list(t, r(0x40, 0x7f), 4, 7, 0);\n add_list(t, [0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);\n add_list(t, r(0x20, 0x40), 6);\n add(t, 0x7f, 6);\n add_list(t, r(0x40, 0x7f), 6, 0, 0);\n add(t, 0x3a, 3, 0, 6);\n add_list(t, r(0x20, 0x30), 3, 9, 5);\n add_list(t, r(0x20, 0x30), 5, 9);\n add_list(t, r(0x30, 0x40), 5, 0, 6);\n add_list(t, r(0x40, 0x7f), 5, 7, 0);\n add_list(t, r(0x20, 0x30), 4, 9, 5);\n // esc_intermediate\n add_list(t, r(0x20, 0x30), 1, 9, 2);\n add_list(t, r(0x20, 0x30), 2, 9);\n add_list(t, r(0x30, 0x7f), 2, 10, 0);\n add_list(t, r(0x30, 0x50), 1, 10, 0);\n add_list(t, [0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x59, 0x5a, 0x5c], 1, 10, 0);\n add_list(t, r(0x60, 0x7f), 1, 10, 0);\n // dcs entry\n add(t, 0x50, 1, 11, 9);\n add_list(t, EXECUTABLES, 9);\n add(t, 0x7f, 9);\n add_list(t, r(0x1c, 0x20), 9);\n add_list(t, r(0x20, 0x30), 9, 9, 12);\n add(t, 0x3a, 9, 0, 11);\n add_list(t, r(0x30, 0x3a), 9, 8, 10);\n add(t, 0x3b, 9, 8, 10);\n add_list(t, [0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);\n add_list(t, EXECUTABLES, 11);\n add_list(t, r(0x20, 0x80), 11);\n add_list(t, r(0x1c, 0x20), 11);\n add_list(t, EXECUTABLES, 10);\n add(t, 0x7f, 10);\n add_list(t, r(0x1c, 0x20), 10);\n add_list(t, r(0x30, 0x3a), 10, 8);\n add(t, 0x3b, 10, 8);\n add_list(t, [0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);\n add_list(t, r(0x20, 0x30), 10, 9, 12);\n add_list(t, EXECUTABLES, 12);\n add(t, 0x7f, 12);\n add_list(t, r(0x1c, 0x20), 12);\n add_list(t, r(0x20, 0x30), 12, 9);\n add_list(t, r(0x30, 0x40), 12, 0, 11);\n add_list(t, r(0x40, 0x7f), 12, 12, 13);\n add_list(t, r(0x40, 0x7f), 10, 12, 13);\n add_list(t, r(0x40, 0x7f), 9, 12, 13);\n add_list(t, EXECUTABLES, 13, 13);\n add_list(t, PRINTABLES, 13, 13);\n add(t, 0x7f, 13);\n add_list(t, [0x1b, 0x9c], 13, 14, 0);\n\n return t;\n })();\n\n\n /**\n * AnsiParser - Parser for ANSI terminal escape sequences.\n *\n * @param {Object=} terminal emulation object\n * @constructor\n */\n function AnsiParser(terminal) {\n this.initial_state = 0; // 'GROUND' is default\n this.current_state = this.initial_state|0;\n\n // clone global transition table\n this.transitions = new Uint8Array(4095);\n this.transitions.set(TRANSITION_TABLE);\n\n // global non pushable buffers for multiple parse invocations\n this.osc = '';\n this.params = [0];\n this.collected = '';\n\n // back reference to terminal\n this.term = terminal || {};\n var instructions = ['inst_p', 'inst_o', 'inst_x', 'inst_c',\n 'inst_e', 'inst_H', 'inst_P', 'inst_U', 'inst_E'];\n for (var i=0; i<instructions.length; ++i)\n if (!(instructions[i] in this.term))\n this.term[instructions[i]] = function() {};\n }\n\n /**\n * Reset the parser.\n */\n AnsiParser.prototype.reset = function() {\n this.current_state = this.initial_state|0;\n this.osc = '';\n this.params = [0];\n this.collected = '';\n };\n\n /**\n * Parse string s.\n * @param {string} s\n */\n AnsiParser.prototype.parse = function(s) {\n var code = 0,\n transition = 0,\n error = false,\n current_state = this.current_state|0;\n\n // local buffers\n var printed = -1;\n var dcs = -1;\n var osc = this.osc;\n var collected = this.collected;\n var params = this.params;\n\n // process input string\n for (var i=0, l=s.length|0; i<l; ++i) {\n code = s.charCodeAt(i)|0;\n // shortcut for most chars (print action)\n if (current_state===0 && code>0x1f && code<0x80) {\n printed = (printed + 1) ? printed|0: i|0;\n continue;\n }\n transition = ((code < 0xa0) ? (this.transitions[(current_state<<8|code)|0])|0 : 16)|0;\n switch ((transition >> 4)|0) {\n case 2: // print\n printed = (printed + 1) ? printed|0: i|0;\n break;\n case 3: // execute\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n this.term.inst_x(String.fromCharCode(code));\n break;\n case 0: // ignore\n // handle leftover print and dcs chars\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n } else if (dcs + 1) {\n this.term.inst_P(s.substring(dcs, i));\n dcs = -1;\n }\n break;\n case 1: // error\n // handle unicode chars in write buffers w'o state change\n if (code > 0x9f) {\n switch (current_state) {\n case 0: // GROUND -> add char to print string\n printed = (!(printed+1)) ? i|0 : printed|0;\n break;\n case 8: // OSC_STRING -> add char to osc string\n osc += String.fromCharCode(code);\n transition = (transition | 8)|0;\n break;\n case 6: // CSI_IGNORE -> ignore char\n transition = (transition | 6)|0;\n break;\n case 11: // DCS_IGNORE -> ignore char\n transition = (transition | 11)|0;\n break;\n case 13: // DCS_PASSTHROUGH -> add char to dcs\n if (!(dcs + 1))\n dcs = i|0;\n transition = (transition | 13)|0;\n break;\n default: // real error\n error = true;\n }\n } else { // real error\n error = true;\n }\n if (error) {\n if (this.term.inst_E(\n {\n pos: i, // position in parse string\n character: String.fromCharCode(code), // wrong character\n state: current_state, // in state\n print: printed, // print buffer\n dcs: dcs, // dcs buffer\n osc: osc, // osc buffer\n collect: collected, // collect buffer\n params: params // params buffer\n })) {\n return;\n }\n error = false;\n }\n break;\n case 7: // csi_dispatch\n this.term.inst_c(collected, params, String.fromCharCode(code));\n break;\n case 8: // param\n if (code === 0x3b)\n params.push(0);\n else\n params[params.length-1] = (params[params.length-1] * 10 + code - 48)|0;\n break;\n case 9: // collect\n collected += String.fromCharCode(code);\n break;\n case 10: // esc_dispatch\n this.term.inst_e(collected, String.fromCharCode(code));\n break;\n case 11: // clear\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n case 12: // dcs_hook\n this.term.inst_H(collected, params, String.fromCharCode(code));\n break;\n case 13: // dcs_put\n if (!(dcs + 1))\n dcs = i|0;\n break;\n case 14: // dcs_unhook\n if (dcs + 1) {\n this.term.inst_P(s.substring(dcs, i));\n }\n this.term.inst_U();\n if (code === 0x1b)\n transition = (transition | 1)|0;\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n case 4: // osc_start\n if (~printed) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n osc = '';\n break;\n case 5: // osc_put\n osc += s.charAt(i);\n break;\n case 6: // osc_end\n if (osc && code !== 0x18 && code !== 0x1a)\n this.term.inst_o(osc);\n if (code === 0x1b)\n transition = (transition | 1)|0;\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n }\n current_state = (transition & 15)|0;\n }\n\n // push leftover pushable buffers to terminal\n if (!current_state && (printed + 1)) {\n this.term.inst_p(s.substring(printed));\n } else if (current_state===13 && (dcs + 1)) {\n this.term.inst_P(s.substring(dcs));\n }\n\n // save non pushable buffers\n this.osc = osc;\n this.collected = collected;\n this.params = params;\n\n // save state\n this.current_state = current_state|0;\n };\n\n /* istanbul ignore next */\n if (typeof module !== 'undefined'\n && typeof module.exports !== 'undefined') {\n module.exports = AnsiParser;\n } else {\n if (typeof define === 'function' && define.amd) {\n define([], function() {return AnsiParser;});\n } else {\n window.AnsiParser = AnsiParser;\n }\n }\n})();", "export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST\n\t// The payload stops at the first terminator character rather than scanning ahead for one, so an unterminated `ESC ]` cannot rescan the rest of the input. Terminals likewise abort a control string on an unexpected ESC.\n\tconst osc = `(?:\\\\u001B\\\\][^\\\\u0007\\\\u001B\\\\u009C]*${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n", "import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Fast path: ANSI codes require ESC (7-bit) or CSI (8-bit) introducer\n\tif (!string.includes('\\u001B') && !string.includes('\\u009B')) {\n\t\treturn string;\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n", "// Generated by scripts/build.js\n\nexport const ambiguousMinimalCodePoint = 161;\nexport const ambiguousMaximumCodePoint = 1114109;\nexport const ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];\n\nexport const fullwidthMinimalCodePoint = 12288;\nexport const fullwidthMaximumCodePoint = 65510;\nexport const fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];\n\nexport const halfwidthMinimalCodePoint = 8361;\nexport const halfwidthMaximumCodePoint = 65518;\nexport const halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];\n\nexport const narrowMinimalCodePoint = 32;\nexport const narrowMaximumCodePoint = 10630;\nexport const narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];\n\nexport const wideMinimalCodePoint = 4352;\nexport const wideMaximumCodePoint = 262141;\nexport const wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];\n", "/**\nBinary search on a sorted flat array of [start, end] pairs.\n\n@param {number[]} ranges - Flat array of inclusive [start, end] range pairs, e.g. [0, 5, 10, 20].\n@param {number} codePoint - The value to search for.\n@returns {boolean} Whether the value falls within any of the ranges.\n*/\nexport const isInRange = (ranges, codePoint) => {\n\tlet low = 0;\n\tlet high = Math.floor(ranges.length / 2) - 1;\n\twhile (low <= high) {\n\t\tconst mid = Math.floor((low + high) / 2);\n\t\tconst i = mid * 2;\n\t\tif (codePoint < ranges[i]) {\n\t\t\thigh = mid - 1;\n\t\t} else if (codePoint > ranges[i + 1]) {\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n", "import {\n\tambiguousMinimalCodePoint,\n\tambiguousMaximumCodePoint,\n\tambiguousRanges,\n\n\tfullwidthMinimalCodePoint,\n\tfullwidthMaximumCodePoint,\n\tfullwidthRanges,\n\n\thalfwidthMinimalCodePoint,\n\thalfwidthMaximumCodePoint,\n\thalfwidthRanges,\n\n\tnarrowMinimalCodePoint,\n\tnarrowMaximumCodePoint,\n\tnarrowRanges,\n\n\twideMinimalCodePoint,\n\twideMaximumCodePoint,\n\twideRanges,\n} from './lookup-data.js';\nimport {isInRange} from './utilities.js';\n\nconst commonCjkCodePoint = 0x4E_00;\nconst [wideFastPathStart, wideFastPathEnd] = /* #__PURE__ */ findWideFastPathRange(wideRanges);\n\n// Use a hot-path range so common `isWide` calls can skip binary search.\n// The range containing U+4E00 covers common CJK ideographs;\n// fallback to the largest range for resilience to Unicode table changes.\nfunction findWideFastPathRange(ranges) {\n\tlet fastPathStart = ranges[0];\n\tlet fastPathEnd = ranges[1];\n\n\tfor (let index = 0; index < ranges.length; index += 2) {\n\t\tconst start = ranges[index];\n\t\tconst end = ranges[index + 1];\n\n\t\tif (\n\t\t\tcommonCjkCodePoint >= start\n\t\t\t&& commonCjkCodePoint <= end\n\t\t) {\n\t\t\treturn [start, end];\n\t\t}\n\n\t\tif ((end - start) > (fastPathEnd - fastPathStart)) {\n\t\t\tfastPathStart = start;\n\t\t\tfastPathEnd = end;\n\t\t}\n\t}\n\n\treturn [fastPathStart, fastPathEnd];\n}\n\nexport const isAmbiguous = codePoint => {\n\tif (\n\t\tcodePoint < ambiguousMinimalCodePoint\n\t\t|| codePoint > ambiguousMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(ambiguousRanges, codePoint);\n};\n\nexport const isFullWidth = codePoint => {\n\tif (\n\t\tcodePoint < fullwidthMinimalCodePoint\n\t\t|| codePoint > fullwidthMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(fullwidthRanges, codePoint);\n};\n\nconst isHalfWidth = codePoint => {\n\tif (\n\t\tcodePoint < halfwidthMinimalCodePoint\n\t\t|| codePoint > halfwidthMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(halfwidthRanges, codePoint);\n};\n\nconst isNarrow = codePoint => {\n\tif (\n\t\tcodePoint < narrowMinimalCodePoint\n\t\t|| codePoint > narrowMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(narrowRanges, codePoint);\n};\n\nexport const isWide = codePoint => {\n\tif (\n\t\tcodePoint >= wideFastPathStart\n\t\t&& codePoint <= wideFastPathEnd\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tcodePoint < wideMinimalCodePoint\n\t\t|| codePoint > wideMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(wideRanges, codePoint);\n};\n\nexport function getCategory(codePoint) {\n\tif (isAmbiguous(codePoint)) {\n\t\treturn 'ambiguous';\n\t}\n\n\tif (isFullWidth(codePoint)) {\n\t\treturn 'fullwidth';\n\t}\n\n\tif (isHalfWidth(codePoint)) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (isNarrow(codePoint)) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(codePoint)) {\n\t\treturn 'wide';\n\t}\n\n\treturn 'neutral';\n}\n", "import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// Private exports for https://github.com/sindresorhus/is-fullwidth-code-point\nexport {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';\n", "import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n", "import stringWidth from \"string-width\";\nimport { clearLine, cursorTo, moveCursor } from \"node:readline\";\nimport { createInterface } from \"node:readline/promises\";\nimport { keyStroke, type KeyStroke } from \"@sortedyuan/keybindings\";\nimport { PassThrough, type Readable, type Writable } from \"node:stream\";\nimport TerminalEvents from \"tty-events\";\nimport { TerminalImageSupport } from \"./image-support.js\";\n\nexport interface TerminalSuggestion {\n /** Full input value represented by the suggestion. */\n readonly value: string;\n readonly label?: string;\n readonly description?: string;\n}\n\nexport type TerminalSuggestionProvider = (\n input: string,\n) =>\n | readonly TerminalSuggestion[]\n | Promise<readonly TerminalSuggestion[]>;\n\nexport interface TerminalQuestionOptions {\n readonly signal?: AbortSignal;\n /** Keep this answer in interactive input history. */\n readonly history?: boolean;\n /** Live suggestions displayed while editing this answer in an interactive TTY. */\n readonly suggestions?: TerminalSuggestionProvider;\n}\n\n/**\n * Line-oriented terminal I/O used by prompt-driven applications.\n *\n * This is separate from {@link NodeTerminalDriver}, which owns raw input and\n * retained full-screen rendering.\n */\nexport interface TerminalIO {\n readonly imageSupport?: TerminalImageSupport;\n readonly colors?: boolean;\n readonly interactive?: boolean;\n question(prompt: string, options?: TerminalQuestionOptions): Promise<string>;\n /** \u66F4\u65B0\u5F53\u524D\u95EE\u9898\u7684\u63D0\u793A\u6587\u5B57\uFF0C\u4FDD\u7559\u8F93\u5165\u5185\u5BB9\u548C\u5149\u6807\u3002 */\n updatePrompt?(prompt: string): void;\n /** Read one normalized key while no line question is active. */\n readKey?(options?: { readonly signal?: AbortSignal }): Promise<KeyStroke>;\n /** Render a temporary full-screen view. */\n renderView?(text: string): void;\n /** Close the temporary view and restore the previous terminal contents. */\n closeView?(): void;\n addHistory?(value: string): void;\n write(text: string): void;\n onInterrupt?(listener: () => void): () => void;\n close(): void;\n}\n\nexport interface NodeTerminalOptions {\n readonly input?: NodeJS.ReadableStream;\n readonly output?: NodeJS.WritableStream & {\n readonly isTTY?: boolean;\n readonly columns?: number;\n };\n readonly colors?: boolean;\n}\n\n/** Create a readline-backed, line-oriented Node terminal adapter. */\nexport function createNodeTerminal(\n options: NodeTerminalOptions = {},\n): TerminalIO {\n const source: NodeJS.ReadableStream = options.input ?? process.stdin;\n const output = options.output ?? process.stdout;\n const interactive = output.isTTY === true;\n const imageSupport = new TerminalImageSupport(output);\n const filtered = interactive && imageSupport.protocol === \"sixel\" ? new PassThrough() : undefined;\n const input: NodeJS.ReadableStream = filtered ?? source;\n const reports = filtered ? new TerminalEvents(source as Readable, output as Writable, { timeout: 100 }) : undefined;\n const endFilteredInput = () => filtered?.end();\n if (filtered && reports) {\n const terminalSource = source as NodeJS.ReadStream;\n Object.assign(filtered, { isTTY: terminalSource.isTTY, setRawMode: (enabled: boolean) => terminalSource.setRawMode?.(enabled) });\n reports.on(\"keypress\", key => filtered.write(key.sequence));\n reports.on(\"paste\", text => filtered.write(`\\x1b[200~${text}\\x1b[201~`));\n reports.on(\"unknownSequence\", sequence => { if (!imageSupport.consume(sequence)) filtered.write(sequence); });\n source.on(\"end\", endFilteredInput);\n }\n const historySize = 200;\n const readline = createInterface({\n input,\n output,\n terminal: interactive,\n historySize,\n removeHistoryDuplicates: true,\n escapeCodeTimeout: 100,\n });\n const history = (readline as unknown as { readonly history: string[] }).history;\n let activePrompt: string | undefined;\n let activeSuggestionProvider: TerminalSuggestionProvider | undefined;\n let activeSuggestions: readonly TerminalSuggestion[] = [];\n let renderedSuggestionCount = 0;\n let suggestionVersion = 0;\n let activeSuggestionInput: string | undefined;\n let activeKeyRead: KeyRead | undefined;\n let viewActive = false;\n let suppressInterrupt = false;\n let closed = false;\n let questionReserved = false;\n const inputWaiters = new Set<() => void>();\n const wakeInputWaiters = () => { for (const wake of [...inputWaiters]) wake(); };\n const waitForInput = async (signal?: AbortSignal): Promise<void> => {\n while (activePrompt !== undefined || activeKeyRead !== undefined || viewActive || questionReserved) {\n if (closed) throw new Error(\"Terminal closed\");\n signal?.throwIfAborted();\n await new Promise<void>((resolve, reject) => {\n const cleanup = () => { inputWaiters.delete(wake); signal?.removeEventListener(\"abort\", abort); };\n const wake = () => { cleanup(); resolve(); };\n const abort = () => { cleanup(); reject(abortError(signal?.reason)); };\n inputWaiters.add(wake);\n signal?.addEventListener(\"abort\", abort, { once: true });\n });\n }\n if (closed) throw new Error(\"Terminal closed\");\n signal?.throwIfAborted();\n questionReserved = true;\n };\n\n const inputColumn = (): number => {\n const prompt = activePrompt?.replace(/^\\r?\\n/u, \"\") ?? \"\";\n return stringWidth(prompt) + stringWidth(readline.line.slice(0, readline.cursor));\n };\n\n const eraseSuggestionRows = (): void => {\n if (!interactive || renderedSuggestionCount === 0) return;\n for (let index = 0; index < renderedSuggestionCount; index++) {\n moveCursor(output, 0, 1);\n clearLine(output, 0);\n cursorTo(output, 0);\n }\n moveCursor(output, 0, -renderedSuggestionCount);\n cursorTo(output, inputColumn());\n renderedSuggestionCount = 0;\n };\n\n const drawSuggestionRows = (): void => {\n if (!interactive || activePrompt === undefined || activeSuggestions.length === 0) {\n return;\n }\n const suggestions = activeSuggestions.slice(0, 8);\n for (const suggestion of suggestions) {\n output.write(`\\n${formatSuggestion(suggestion, output.columns)}`);\n }\n renderedSuggestionCount = suggestions.length;\n moveCursor(output, 0, -renderedSuggestionCount);\n cursorTo(output, inputColumn());\n };\n\n const replaceSuggestions = (\n suggestions: readonly TerminalSuggestion[],\n inputValue: string,\n ): void => {\n eraseSuggestionRows();\n activeSuggestions = suggestions;\n activeSuggestionInput = inputValue;\n drawSuggestionRows();\n };\n\n const refreshSuggestions = async (): Promise<void> => {\n const provider = activeSuggestionProvider;\n if (!interactive || activePrompt === undefined || provider === undefined) {\n return;\n }\n const line = readline.line;\n const version = ++suggestionVersion;\n let suggestions: readonly TerminalSuggestion[];\n try {\n suggestions = await provider(line);\n } catch {\n suggestions = [];\n }\n if (\n version !== suggestionVersion ||\n provider !== activeSuggestionProvider ||\n activePrompt === undefined ||\n line !== readline.line\n ) {\n return;\n }\n replaceSuggestions(suggestions, line);\n };\n\n const completeActiveSuggestion = (line: string): boolean => {\n if (activeSuggestionInput !== line) return false;\n const completion = commonSuggestionPrefix(line, activeSuggestions);\n if (completion === undefined || completion === line) return false;\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n readline.write(undefined, { ctrl: true, name: \"u\" });\n readline.write(completion);\n return true;\n };\n\n const onKeypress = (\n value: string | undefined,\n key: NodeKey = {},\n ): void => {\n if (activeKeyRead !== undefined) {\n const read = activeKeyRead;\n activeKeyRead = undefined;\n read.cleanup();\n if (key.ctrl === true && key.name === \"c\") {\n suppressInterrupt = true;\n setImmediate(() => suppressInterrupt = false);\n }\n read.resolve(toKeyStroke(value, key));\n wakeInputWaiters();\n queueMicrotask(() => {\n if (!closed && activePrompt === undefined) {\n readline.write(undefined, { ctrl: true, name: \"u\" });\n }\n });\n return;\n }\n if (activePrompt === undefined) return;\n if (key.name === \"tab\" && activeSuggestionProvider !== undefined) {\n const line = readline.line;\n const completed = completeActiveSuggestion(line);\n const expected = readline.line;\n queueMicrotask(() => {\n if (readline.line === `${expected}\\t`) {\n readline.write(undefined, { ctrl: true, name: \"u\" });\n readline.write(expected);\n }\n void refreshSuggestions().then(() => {\n if (\n !completed && activePrompt !== undefined &&\n readline.line === line\n ) {\n completeActiveSuggestion(line);\n }\n });\n });\n return;\n }\n if (\n key.name === \"return\" ||\n key.name === \"enter\" ||\n (key.ctrl === true && key.name === \"c\")\n ) {\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestions = [];\n return;\n }\n queueMicrotask(() => void refreshSuggestions());\n };\n if (interactive) input.prependListener(\"keypress\", onKeypress);\n const updateImageSize = () => imageSupport.query();\n output.on(\"resize\", updateImageSize);\n\n return {\n imageSupport,\n colors: options.colors ?? interactive,\n interactive,\n async question(prompt, questionOptions = {}) {\n if (activePrompt !== undefined || activeKeyRead !== undefined || viewActive || questionReserved) await waitForInput(questionOptions.signal);\n try {\n if (closed) throw new Error(\"Terminal closed\");\n questionOptions.signal?.throwIfAborted();\n } catch (error) { questionReserved = false; wakeInputWaiters(); throw error; }\n const previousHistory = questionOptions.history === false\n ? [...history]\n : undefined;\n activePrompt = prompt;\n questionReserved = false;\n activeSuggestionProvider = questionOptions.suggestions;\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n renderedSuggestionCount = 0;\n suggestionVersion += 1;\n try {\n return await (questionOptions.signal === undefined\n ? readline.question(prompt)\n : readline.question(prompt, { signal: questionOptions.signal }));\n } finally {\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestionProvider = undefined;\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n activePrompt = undefined;\n wakeInputWaiters();\n if (previousHistory !== undefined) {\n history.splice(0, history.length, ...previousHistory);\n }\n }\n },\n updatePrompt(prompt) {\n if (activePrompt === undefined) return;\n eraseSuggestionRows();\n activePrompt = prompt;\n readline.setPrompt(prompt.replace(/^\\r?\\n/u, \"\"));\n if (interactive) readline.prompt(true);\n drawSuggestionRows();\n },\n readKey({ signal } = {}) {\n if (!interactive) {\n return Promise.reject(\n new Error(\"Key input requires an interactive terminal\"),\n );\n }\n if (activePrompt !== undefined || activeKeyRead !== undefined) {\n return Promise.reject(new Error(\"The terminal input is already active\"));\n }\n if (signal?.aborted) return Promise.reject(abortError(signal.reason));\n return new Promise<KeyStroke>((resolve, reject) => {\n const onAbort = () => {\n if (activeKeyRead !== read) return;\n activeKeyRead = undefined;\n read.cleanup();\n reject(abortError(signal?.reason));\n wakeInputWaiters();\n };\n const read: KeyRead = {\n resolve,\n reject,\n cleanup: () => signal?.removeEventListener(\"abort\", onAbort),\n };\n activeKeyRead = read;\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n },\n renderView(text) {\n if (!interactive) {\n output.write(text);\n return;\n }\n if (!viewActive) {\n output.write(\"\\x1b[?1049h\");\n viewActive = true;\n }\n output.write(`\\x1b[2J\\x1b[H${text}`);\n },\n closeView() {\n if (!viewActive) return;\n output.write(\"\\x1b[?1049l\");\n viewActive = false;\n wakeInputWaiters();\n },\n addHistory(value) {\n if (!interactive) return;\n const entry = value.replace(/\\r?\\n/gu, \" \").trim();\n if (entry === \"\") return;\n const existing = history.indexOf(entry);\n if (existing >= 0) history.splice(existing, 1);\n history.unshift(entry);\n if (history.length > historySize) {\n history.splice(historySize);\n }\n },\n write(text) {\n if (!interactive || activePrompt === undefined) {\n output.write(text);\n return;\n }\n\n eraseSuggestionRows();\n const line = readline.line;\n const position = readline.cursor;\n clearLine(output, 0);\n cursorTo(output, 0);\n const update = text.replace(/^\\r?\\n/u, \"\");\n output.write(update);\n if (update !== \"\" && !update.endsWith(\"\\n\")) output.write(\"\\n\");\n output.write(`${activePrompt.replace(/^\\r?\\n/u, \"\")}${line}`);\n const trailing = stringWidth(line.slice(position));\n if (trailing > 0) moveCursor(output, -trailing, 0);\n drawSuggestionRows();\n },\n onInterrupt(listener) {\n const wrapped = () => {\n if (suppressInterrupt) {\n suppressInterrupt = false;\n return;\n }\n listener();\n };\n readline.on(\"SIGINT\", wrapped);\n return () => readline.off(\"SIGINT\", wrapped);\n },\n close() {\n closed = true;\n wakeInputWaiters();\n activeKeyRead?.reject(new Error(\"Terminal closed\"));\n activeKeyRead?.cleanup();\n activeKeyRead = undefined;\n if (viewActive) output.write(\"\\x1b[?1049l\");\n if (interactive) input.removeListener(\"keypress\", onKeypress);\n readline.close();\n output.removeListener(\"resize\", updateImageSize);\n reports?.pause();\n reports?.removeAllListeners();\n source.removeListener(\"end\", endFilteredInput);\n filtered?.destroy();\n },\n };\n}\n\ninterface NodeKey {\n readonly name?: string;\n readonly ctrl?: boolean;\n readonly meta?: boolean;\n readonly shift?: boolean;\n}\n\ninterface KeyRead {\n readonly resolve: (stroke: KeyStroke) => void;\n readonly reject: (error: Error) => void;\n readonly cleanup: () => void;\n}\n\nfunction toKeyStroke(value: string | undefined, key: NodeKey): KeyStroke {\n const name = key.name ?? value ?? \"unknown\";\n const standaloneEscape = name === \"escape\";\n const printable = value !== undefined && value.length > 0 &&\n key.ctrl !== true && key.meta !== true;\n return keyStroke(name, {\n ctrl: key.ctrl === true,\n alt: key.meta === true && !standaloneEscape,\n shift: key.shift === true,\n ...(printable ? { text: value } : {}),\n });\n}\n\nfunction commonSuggestionPrefix(\n input: string,\n suggestions: readonly TerminalSuggestion[],\n): string | undefined {\n const values = suggestions\n .map((suggestion) => suggestion.value)\n .filter((value) => value.startsWith(input));\n const first = values[0];\n if (first === undefined) return undefined;\n let length = first.length;\n for (const value of values.slice(1)) {\n length = Math.min(length, value.length);\n let index = input.length;\n while (index < length && first[index] === value[index]) index += 1;\n length = index;\n }\n return first.slice(0, length);\n}\n\nfunction abortError(reason: unknown): Error {\n const error = new Error(\n typeof reason === \"string\" ? reason : \"The operation was aborted\",\n );\n error.name = \"AbortError\";\n return error;\n}\n\nfunction formatSuggestion(\n suggestion: TerminalSuggestion,\n columns: number | undefined,\n): string {\n const label = singleLine(suggestion.label ?? suggestion.value);\n const description = suggestion.description === undefined\n ? \"\"\n : ` ${singleLine(suggestion.description)}`;\n const value = ` ${label}${description}`;\n const limit = columns === undefined ? 120 : Math.max(20, columns - 1);\n return value.length <= limit ? value : `${value.slice(0, limit - 1)}\u2026`;\n}\n\nfunction singleLine(value: string): string {\n return value.replace(/\\s+/gu, \" \").trim();\n}\n", "export interface KeyStroke {\n readonly key: string;\n readonly ctrl: boolean;\n readonly alt: boolean;\n readonly shift: boolean;\n readonly meta: boolean;\n /** Printable text represented by this key, when available. */\n readonly text?: string;\n}\n\nexport interface KeyBindingDefinition {\n readonly context: string;\n readonly keys: string;\n readonly action: string;\n}\n\nexport interface KeymapOptions {\n readonly leader?: string;\n /** null \u8868\u793A\u7B49\u5F85\u540E\u7EED\u6309\u952E\uFF0C\u76F4\u5230\u5339\u914D\u7ED3\u675F\u6216\u8C03\u7528 reset\u3002 */\n readonly chordTimeoutMs?: number | null;\n /** Reject bindings which refer to actions outside this registry. */\n readonly actions?: readonly string[];\n}\n\nexport type KeymapResult =\n | { readonly type: \"action\"; readonly action: string }\n | {\n readonly type: \"pending\";\n readonly completions: readonly string[];\n }\n | { readonly type: \"unmatched\" };\n\ninterface CompiledBinding extends KeyBindingDefinition {\n readonly sequence: readonly KeyStroke[];\n}\n\ninterface PendingSequence {\n readonly sequence: readonly KeyStroke[];\n readonly expiresAt: number;\n readonly contexts: readonly string[];\n}\n\nexport class Keymap {\n private readonly bindings: readonly CompiledBinding[];\n private readonly chordTimeoutMs: number;\n private pending: PendingSequence | undefined;\n\n constructor(\n definitions: readonly KeyBindingDefinition[],\n options: KeymapOptions = {},\n ) {\n const chordTimeoutMs = options.chordTimeoutMs === null ? Infinity : options.chordTimeoutMs ?? 1_000;\n if (options.chordTimeoutMs !== null && (!Number.isFinite(chordTimeoutMs) || chordTimeoutMs <= 0)) {\n throw new RangeError(\"chordTimeoutMs must be a positive finite number\");\n }\n const actions = options.actions === undefined\n ? undefined\n : new Set(options.actions);\n const leader = options.leader ?? \"ctrl+x\";\n this.bindings = definitions.map((definition) => {\n if (definition.context.trim() === \"\") {\n throw new Error(\"Keybinding context cannot be empty\");\n }\n if (definition.action.trim() === \"\") {\n throw new Error(\"Keybinding action cannot be empty\");\n }\n if (actions !== undefined && !actions.has(definition.action)) {\n throw new Error(`Unknown keybinding action: ${definition.action}`);\n }\n return {\n ...definition,\n sequence: parseKeySequence(definition.keys, { leader }),\n };\n });\n validateBindings(this.bindings);\n this.chordTimeoutMs = chordTimeoutMs;\n }\n\n resolve(\n stroke: KeyStroke,\n contexts: readonly string[],\n now = Date.now(),\n ): KeymapResult {\n const normalized = normalizeKeyStroke(stroke);\n const previous = this.pending !== undefined && this.pending.expiresAt > now &&\n this.pending.contexts.length === contexts.length &&\n this.pending.contexts.every((context, index) => context === contexts[index])\n ? this.pending.sequence\n : [];\n this.pending = undefined;\n const sequence = [...previous, normalized];\n const result = this.resolveSequence(sequence, contexts, now);\n if (result.type !== \"unmatched\" || previous.length === 0) return result;\n return this.resolveSequence([normalized], contexts, now);\n }\n\n reset(): void {\n this.pending = undefined;\n }\n\n keysForAction(action: string, context?: string): readonly string[] {\n return this.bindings\n .filter(binding => binding.action === action && (context === undefined || binding.context === context))\n .map(binding => formatKeySequence(binding.sequence));\n }\n\n private resolveSequence(\n sequence: readonly KeyStroke[],\n contexts: readonly string[],\n now: number,\n ): KeymapResult {\n for (let index = contexts.length - 1; index >= 0; index--) {\n const context = contexts[index]!;\n const candidates = this.bindings.filter((binding) =>\n binding.context === context && isPrefix(sequence, binding.sequence)\n );\n if (candidates.length === 0) continue;\n\n const exact = candidates.find((binding) =>\n binding.sequence.length === sequence.length\n );\n if (exact !== undefined) {\n return { type: \"action\", action: exact.action };\n }\n\n this.pending = {\n sequence: [...sequence],\n expiresAt: now + this.chordTimeoutMs,\n contexts: [...contexts],\n };\n return {\n type: \"pending\",\n completions: candidates.map((binding) =>\n formatKeySequence(binding.sequence.slice(sequence.length))\n ),\n };\n }\n return { type: \"unmatched\" };\n }\n}\n\nexport function mergeKeyBindings(\n defaults: readonly KeyBindingDefinition[],\n overrides: readonly KeyBindingDefinition[] = [],\n options: { readonly leader?: string } = {},\n): readonly KeyBindingDefinition[] {\n const replaced = new Set(overrides.map(binding => `${binding.context}\\0${binding.action}`));\n const keyId = (binding: KeyBindingDefinition): string =>\n `${binding.context}\\0${formatKeySequence(parseKeySequence(binding.keys, options))}`;\n const rebound = new Set(overrides.map(keyId));\n return [...defaults.filter(binding => !replaced.has(`${binding.context}\\0${binding.action}`) &&\n !rebound.has(keyId(binding))), ...overrides];\n}\n\nexport function keyStroke(\n key: string,\n modifiers: Partial<Omit<KeyStroke, \"key\">> = {},\n): KeyStroke {\n return normalizeKeyStroke({\n key,\n ctrl: modifiers.ctrl ?? false,\n alt: modifiers.alt ?? false,\n shift: modifiers.shift ?? false,\n meta: modifiers.meta ?? false,\n ...(modifiers.text === undefined ? {} : { text: modifiers.text }),\n });\n}\n\nexport function normalizeKeyStroke(stroke: KeyStroke): KeyStroke {\n const text = stroke.text;\n return {\n key: normalizeKeyName(stroke.key),\n ctrl: stroke.ctrl,\n alt: stroke.alt,\n shift: stroke.shift,\n meta: stroke.meta,\n ...(text === undefined ? {} : { text }),\n };\n}\n\nexport function parseKeySequence(\n source: string,\n options: { readonly leader?: string } = {},\n): readonly KeyStroke[] {\n const tokens = source.trim().split(/\\s+/u).filter(Boolean);\n if (tokens.length === 0) throw new Error(\"Key sequence cannot be empty\");\n const result: KeyStroke[] = [];\n for (const token of tokens) {\n if (token.toLowerCase() === \"<leader>\") {\n const leader = options.leader ?? \"ctrl+x\";\n if (leader.toLowerCase().includes(\"<leader>\")) {\n throw new Error(\"Leader cannot refer to itself\");\n }\n result.push(...parseKeySequence(leader));\n } else {\n result.push(parseKeyToken(token));\n }\n }\n return result;\n}\n\nexport function formatKeySequence(sequence: readonly KeyStroke[]): string {\n return sequence.map(formatKeyStroke).join(\" \");\n}\n\nexport function formatKeyStroke(stroke: KeyStroke): string {\n return [\n ...(stroke.ctrl ? [\"ctrl\"] : []),\n ...(stroke.alt ? [\"alt\"] : []),\n ...(stroke.shift ? [\"shift\"] : []),\n ...(stroke.meta ? [\"meta\"] : []),\n normalizeKeyName(stroke.key),\n ].join(\"+\");\n}\n\nfunction parseKeyToken(token: string): KeyStroke {\n const parts = token.toLowerCase().split(\"+\");\n const key = parts.pop();\n if (key === undefined || key === \"\") {\n throw new Error(`Invalid keybinding token: ${token}`);\n }\n let ctrl = false;\n let alt = false;\n let shift = false;\n let meta = false;\n for (const modifier of parts) {\n switch (modifier) {\n case \"ctrl\":\n case \"control\":\n ctrl = true;\n break;\n case \"alt\":\n case \"option\":\n alt = true;\n break;\n case \"shift\":\n shift = true;\n break;\n case \"meta\":\n case \"cmd\":\n case \"command\":\n meta = true;\n break;\n default:\n throw new Error(`Unknown key modifier \"${modifier}\" in ${token}`);\n }\n }\n return { key: normalizeKeyName(key), ctrl, alt, shift, meta };\n}\n\nfunction normalizeKeyName(key: string): string {\n const normalized = key.toLowerCase();\n switch (normalized) {\n case \"return\":\n return \"enter\";\n case \"esc\":\n return \"escape\";\n case \"pgup\":\n return \"pageup\";\n case \"pgdn\":\n return \"pagedown\";\n case \" \":\n return \"space\";\n default:\n return normalized;\n }\n}\n\nfunction validateBindings(bindings: readonly CompiledBinding[]): void {\n for (let leftIndex = 0; leftIndex < bindings.length; leftIndex++) {\n const left = bindings[leftIndex]!;\n for (let rightIndex = leftIndex + 1; rightIndex < bindings.length; rightIndex++) {\n const right = bindings[rightIndex]!;\n if (left.context !== right.context) continue;\n if (sameSequence(left.sequence, right.sequence)) {\n throw new Error(\n `Duplicate keybinding in ${left.context}: ${left.keys}`,\n );\n }\n if (\n isPrefix(left.sequence, right.sequence) ||\n isPrefix(right.sequence, left.sequence)\n ) {\n throw new Error(\n `Ambiguous keybinding prefix in ${left.context}: ` +\n `${left.keys} and ${right.keys}`,\n );\n }\n }\n }\n}\n\nfunction sameSequence(\n left: readonly KeyStroke[],\n right: readonly KeyStroke[],\n): boolean {\n return left.length === right.length && isPrefix(left, right);\n}\n\nfunction isPrefix(\n prefix: readonly KeyStroke[],\n value: readonly KeyStroke[],\n): boolean {\n return prefix.length <= value.length && prefix.every((stroke, index) =>\n sameStroke(stroke, value[index]!)\n );\n}\n\nfunction sameStroke(left: KeyStroke, right: KeyStroke): boolean {\n return left.key === right.key &&\n left.ctrl === right.ctrl &&\n left.alt === right.alt &&\n left.shift === right.shift &&\n left.meta === right.meta;\n}\n", "import AnsiParser from \"node-ansiparser\";\nimport { createSupportsTerminalGraphics } from \"supports-terminal-graphics\";\n\nexport type ImageProtocol = \"kitty\" | \"iterm2\" | \"sixel\" | \"none\";\n\nexport function terminalImageProtocol(output: { readonly isTTY?: boolean } = process.stdout): ImageProtocol {\n const setting = process.env.MAY_IMAGE_PROTOCOL;\n if (setting !== undefined && ![\"auto\", \"kitty\", \"iterm2\", \"sixel\", \"none\"].includes(setting)) throw new Error(\"MAY_IMAGE_PROTOCOL must be auto, kitty, iterm2, sixel or none\");\n if (setting && setting !== \"auto\") return setting as ImageProtocol;\n if (!output.isTTY || process.env.TMUX || process.env.STY) return \"none\";\n const graphics = createSupportsTerminalGraphics(output);\n return graphics.iterm2 ? \"iterm2\" : graphics.kitty ? \"kitty\" : graphics.sixel || process.env.WT_SESSION ? \"sixel\" : \"none\";\n}\n\nexport interface TerminalCellSize {\n readonly width: number;\n readonly height: number;\n}\n\n/** \u63A5\u6536 tty-events \u5206\u79BB\u7684\u7EC8\u7AEF\u54CD\u5E94\uFF0C\u4FDD\u6301\u952E\u76D8\u8F93\u5165\u72EC\u7ACB\u3002 */\nexport class TerminalImageSupport {\n readonly protocol: ImageProtocol;\n private measured: TerminalCellSize | undefined;\n private supported: boolean;\n private consumed = false;\n private readonly listeners = new Set<() => void>();\n private readonly parser = new AnsiParser({\n inst_c: (collected, params, flag) => {\n if (collected === \"?\" && flag === \"c\") {\n this.consumed = true;\n this.supported = this.forced || params.slice(1).includes(4);\n this.changed();\n } else if (collected === \"\" && flag === \"t\" && params[0] === 6 && params.length === 3) {\n this.consumed = true;\n const [, height, width] = params;\n if (!width || !height || width > 256 || height > 512) throw new RangeError(\"Invalid terminal cell pixel size\");\n this.measured = { width, height };\n this.changed();\n }\n },\n });\n\n constructor(\n private readonly output: { write(value: string): unknown; readonly isTTY?: boolean },\n private readonly forced = process.env.MAY_IMAGE_PROTOCOL === \"sixel\",\n ) {\n this.protocol = terminalImageProtocol(output);\n this.supported = forced;\n }\n\n get cellSize(): TerminalCellSize | undefined { return this.supported ? this.measured : undefined; }\n\n query(): void {\n if (this.protocol !== \"sixel\" || !this.output.isTTY) return;\n this.measured = undefined;\n this.changed();\n this.output.write(\"\\x1b[c\\x1b[16t\");\n }\n\n consume(sequence: string): boolean {\n if (this.protocol !== \"sixel\") return false;\n this.consumed = false;\n this.parser.reset();\n this.parser.parse(sequence);\n return this.consumed;\n }\n\n onChange(listener: () => void): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n async ready(): Promise<void> {\n if (this.protocol !== \"sixel\" || this.cellSize) return;\n await new Promise<void>(resolve => {\n const finish = () => { clearTimeout(timer); dispose(); resolve(); };\n const dispose = this.onChange(() => { if (this.cellSize) finish(); });\n const timer = setTimeout(finish, 300);\n });\n }\n\n private changed(): void { for (const listener of this.listeners) listener(); }\n}\n", "import process from 'node:process';\n\nfunction parseVersion(versionString) {\n\tconst parts = (versionString || '').split('.').map(n => Number.parseInt(n, 10));\n\treturn {\n\t\tmajor: parts[0] || 0,\n\t\tminor: parts[1] || 0,\n\t\tpatch: parts[2] || 0,\n\t};\n}\n\nfunction versionSatisfies(version, minMajor, minMinor = 0, minPatch = 0) {\n\tconst {major, minor, patch} = version;\n\treturn major > minMajor\n\t\t|| (major === minMajor && minor > minMinor)\n\t\t|| (major === minMajor && minor === minMinor && patch >= minPatch);\n}\n\nfunction getKonsoleVersion(env) {\n\tconst version = Number.parseInt(env.KONSOLE_VERSION, 10);\n\t// Konsole 22.04 (encoded as 220400) added graphics support\n\treturn Number.isNaN(version) ? 0 : version;\n}\n\nfunction isWezTerm(env) {\n\treturn Boolean(env.WEZTERM_PANE || env.WEZTERM_UNIX_SOCKET);\n}\n\nfunction isWezTermTerminal(env) {\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\tconst lcTerminal = (env.LC_TERMINAL || '').toLowerCase();\n\treturn isWezTerm(env) || termProgram === 'wezterm' || lcTerminal === 'wezterm';\n}\n\nfunction wezTermVersionSatisfies(env, minMajor, minMinor = 0, minPatch = 0) {\n\tif (!isWezTermTerminal(env)) {\n\t\treturn false;\n\t}\n\n\tif (!env.TERM_PROGRAM_VERSION) {\n\t\treturn true;\n\t}\n\n\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\treturn versionSatisfies(version, minMajor, minMinor, minPatch);\n}\n\nfunction supportsKitty(stream, env) {\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn true;\n\t}\n\n\t// Strong indicators for specific terminals\n\tif (env.KITTY_WINDOW_ID || env.KITTY_PID) {\n\t\treturn true;\n\t}\n\n\tif (env.GHOSTTY_RESOURCES_DIR) {\n\t\treturn true;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\t// Terminals with full Kitty protocol support\n\tif (['kitty', 'ghostty', 'rio', 'warpterminal'].includes(termProgram)) {\n\t\treturn true;\n\t}\n\n\t// ITerm2 requires version 3.6+ for Kitty protocol\n\tif (termProgram === 'iterm.app') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 3, 6);\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// Check TERM for known patterns\n\tconst term = env.TERM || '';\n\tif (/kitty/i.test(term) || term === 'xterm-ghostty') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction supportsIterm2(stream, env) {\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn wezTermVersionSatisfies(env, 20_220_319);\n\t}\n\n\t// ITerm2 requires version 2.9.20150512+\n\tif (termProgram === 'iterm.app') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 2, 9, 20_150_512);\n\t}\n\n\t// VS Code requires version 1.80+\n\tif (termProgram === 'vscode') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 1, 80);\n\t}\n\n\t// Rio requires version 0.1.13+\n\tif (termProgram === 'rio') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 0, 1, 13);\n\t}\n\n\t// Terminals with full iTerm2 protocol support\n\tif (termProgram === 'mintty') {\n\t\treturn true;\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// LC_TERMINAL fallback (SSH-friendly)\n\tconst lcTerminal = (env.LC_TERMINAL || '').toLowerCase();\n\tif (lcTerminal === 'iterm2') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction supportsSixel(stream, env) {\n\t// Sixel detection via environment variables is limited.\n\t// Many terminals (xterm, foot, etc.) support Sixel but don't set TERM_PROGRAM.\n\t// For accurate detection, a DA1 query would be needed.\n\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn wezTermVersionSatisfies(env, 20_200_620);\n\t}\n\n\t// VS Code requires version 1.80+\n\tif (termProgram === 'vscode') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 1, 80);\n\t}\n\n\t// Rio requires version 0.1.12+\n\tif (termProgram === 'rio') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 0, 1, 12);\n\t}\n\n\t// Terminals with full Sixel support\n\t// Note: foot also supports Sixel but doesn't set TERM_PROGRAM\n\tif (termProgram === 'mintty') {\n\t\treturn true;\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// Check TERM for mlterm (supports Sixel from version 3.1.9+)\n\tconst term = env.TERM || '';\n\tif (/^mlterm/i.test(term)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function createSupportsTerminalGraphics(stream) {\n\tconst {env} = process;\n\n\treturn {\n\t\tkitty: supportsKitty(stream, env),\n\t\titerm2: supportsIterm2(stream, env),\n\t\tsixel: supportsSixel(stream, env),\n\t};\n}\n\nconst supportsTerminalGraphics = {\n\tstdout: createSupportsTerminalGraphics(process.stdout),\n\tstderr: createSupportsTerminalGraphics(process.stderr),\n};\n\nexport default supportsTerminalGraphics;\n"],
5
- "mappings": "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,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM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",
3
+ "sources": ["../../../../node_modules/.pnpm/emoji-regex@10.6.0/node_modules/emoji-regex/index.js", "../../../../node_modules/.pnpm/tty-events@1.0.0/node_modules/tty-events/index.min.js", "../../../../node_modules/.pnpm/node-ansiparser@2.2.1/node_modules/node-ansiparser/dist/ansiparser.js", "../../../../node_modules/.pnpm/ansi-regex@6.3.0/node_modules/ansi-regex/index.js", "../../../../node_modules/.pnpm/strip-ansi@7.2.0/node_modules/strip-ansi/index.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js", "../../../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js", "../../../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js", "../../../../packages/ui/tui/src/node-terminal.ts", "../../../../packages/ui/tui/src/keybindings/index.ts", "../../../../packages/ui/tui/src/image-support.ts", "../../../../node_modules/.pnpm/supports-terminal-graphics@0.1.0/node_modules/supports-terminal-graphics/index.js"],
4
+ "sourcesContent": ["module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n", "const e=require(\"events\"),{StringDecoder:t}=require(\"string_decoder\");class s{constructor({name:e,sequence:t,isSpecial:s=false,ctrl:i=false,alt:a=false,shift:n=false}){if(typeof e!==\"string\")throw new TypeError;this.name=e;this.sequence=t;this.isSpecial=s;this.ctrl=i;this.alt=a;this.shift=n}get meta(){return this.alt}set meta(e){this.alt=e}toString(){return(this.ctrl?\"Ctrl+\":\"\")+(this.alt?\"Alt+\":\"\")+(this.shift?\"Shift+\":\"\")+this.name}}class i{constructor(e){Object.assign(this,e)}}class a{constructor(e,t,s,i,a,n){this.startX=e;this.startY=t;this.endX=s;this.endY=i;this.mouseX=a;this.mouseY=n}}function*n(e){function t(t,s,a,n=false){if(t<0||s<1||a<1||isNaN(t)||isNaN(s)||isNaN(a))return;let r,l,u={x:s,y:a};r=t&3;if(t&64||t&128){if(t&64)r|=4;if(t&128)r|=8}else if(r===3)r=undefined;else r+=1;u.button=r;if(t&32){l=\"mousemove\"}else if(r===undefined||n){l=\"mouseup\"}else if(r===4){l=\"wheel\";u.direction=-1}else if(r===5){l=\"wheel\";u.direction=1}else{l=\"mousedown\"}u.shift=Boolean(t&4);u.alt=Boolean(t&8);u.ctrl=Boolean(t&16);u.type=l;e.emit(l,new i(u));e.emit(\"mouse\",new i(u))}function n(t){var s,i,n,r,l,u;if(t.length===6)[s,i,n,r,l,u]=t;else{n=l=t[0];r=u=t[1]}e.emit(\"highlight\",new a(s,i,n,r,l,u))}function r(){e.emit(\"keypress\",new s({name:\"escape\",sequence:\"\u001B\",isSpecial:true}))}var l=false,u=yield,c;e:while(true){if(u===\"\"){u=yield;continue}c=u;const i={name:undefined,sequence:undefined,isSpecial:true,ctrl:false,alt:false,shift:false};let a=0;if(u===\"\u001B\"){a=1;c+=u=yield;if(u===\"\u001B\"){a=2;c+=u=yield}if(u===\"\"||c.length>1&&u===\"\u001B\"){e.emit(\"keypress\",new s({name:\"escape\",sequence:c,isSpecial:true}));u=yield;if(u===\"\"){u=yield}continue}}if(a&&(u===\"O\"||u===\"[\")){let l=u;let f=0;if(u===\"O\"){c+=u=yield;if(u>=\"0\"&&u<=\"9\"){f=(u>>0)-1;c+=u=yield}else if(u===\"\"){e.emit(\"keypress\",new s({name:\"O\",sequence:c,alt:true}));u=yield;continue e}l+=u}else if(u===\"[\"){const o=c.length;c+=u=yield;if(u===\"\"){e.emit(\"keypress\",new s({name:\"[\",sequence:c,alt:true}));u=yield;continue e}if(u===\"M\"){const s=[];for(let t=0;t<3;t++){let t=yield true;if(t===\"\"){e.emit(\"unknownSequence\",c);u=yield;continue e}s.push(t-32)}t(...s);u=yield;continue}else if(u===\"T\"||u===\"t\"){const t=u,s=t===\"T\"?6:2;const i=[];for(let t=0;t<s;t++){let t=yield true;if(t===\"\"){e.emit(\"unknownSequence\",c);u=yield;continue e}i.push(t-32)}n(i);u=yield;continue}if(u===\"[\"){l+=u;c+=u=yield}const h=c.length-1;while(true){const t=u.charCodeAt(0);if(t>=64&&t<=126||t===36){break}else if(t>=32&&t<=63){c+=u=yield}else{e.emit(\"unknownSequence\",c);continue e}}const m=c.slice(o);if(m[0]===\"<\"&&(u===\"M\"||u===\"m\")||m[0]===\"<\"&&(u===\"T\"||u===\"t\")||u===\"I\"||u===\"O\"||m===\"200~\"){if(a>=2)r();if(u===\"M\"||u===\"m\"||u===\"T\"||u===\"t\"){const s=u===\"M\"||u===\"m\",i=m.slice(1,m.length-1).split(\";\");let a=i.length!==(s?3:u===\"t\"?2:6);if(!a){for(let e=0;e<i.length;e++){const t=parseInt(i[e]);if(isNaN(t)){a=true;break}i[e]=t}}if(a){e.emit(\"unknownSequence\",c)}else{if(s){t(...i,u===\"m\")}else{n(i)}}}else if(u===\"I\"){e.emit(\"focusin\")}else if(u===\"O\"){e.emit(\"focusout\")}else if(m===\"200~\"){const t=\"\u001B[201~\";let s=\"\",i=0;while(true){s+=u=yield;if(u===t[i])i++;else i=0;if(i>=t.length){e.emit(\"paste\",s.slice(0,s.length-t.length));break}}}u=yield;continue}const d=c.slice(h);let b;if(b=d.match(/^(\\d\\d?)(;(\\d))?([~^$])$/)){l+=b[1]+b[4];f=(b[3]||1)-1}else if(b=d.match(/^((\\d;)?(\\d))?([A-Za-z])$/)){l+=b[4];f=(b[3]||1)-1}else{l+=d}switch(l[l.length-1]){case\"$\":i.shift=true;l=l.slice(0,l.length-1)+\"~\";break;case\"^\":i.ctrl=true;l=l.slice(0,l.length-1)+\"~\";break;case\"@\":i.shift=i.ctrl=true;l=l.slice(0,l.length-1)+\"~\";break}}i.ctrl=i.ctrl||Boolean(f&4);i.alt=Boolean(f&10);i.shift=i.shift||Boolean(f&1);if(a>=2){i.alt=true}if(l.match(/^(O|\\[)[A-Z]$/)){switch(l[1]){case\"A\":i.name=\"up\";break;case\"B\":i.name=\"down\";break;case\"C\":i.name=\"right\";break;case\"D\":i.name=\"left\";break;case\"E\":i.name=\"clear\";break;case\"F\":i.name=\"end\";break;case\"H\":i.name=\"home\";break;case\"P\":i.name=\"f1\";break;case\"Q\":i.name=\"f2\";break;case\"R\":i.name=\"f3\";break;case\"S\":i.name=\"f4\";break}}else{switch(l){case\"[11~\":i.name=\"f1\";break;case\"[12~\":i.name=\"f2\";break;case\"[13~\":i.name=\"f3\";break;case\"[14~\":i.name=\"f4\";break;case\"[[A\":i.name=\"f1\";break;case\"[[B\":i.name=\"f2\";break;case\"[[C\":i.name=\"f3\";break;case\"[[D\":i.name=\"f4\";break;case\"[[E\":i.name=\"f5\";break;case\"[15~\":i.name=\"f5\";break;case\"[17~\":i.name=\"f6\";break;case\"[18~\":i.name=\"f7\";break;case\"[19~\":i.name=\"f8\";break;case\"[20~\":i.name=\"f9\";break;case\"[21~\":i.name=\"f10\";break;case\"[23~\":i.name=\"f11\";break;case\"[24~\":i.name=\"f12\";break;case\"[25~\":i.name=\"f3\";i.shift=true;break;case\"[26~\":i.name=\"f4\";i.shift=true;break;case\"[28~\":i.name=\"f5\";i.shift=true;break;case\"[29~\":i.name=\"f6\";i.shift=true;break;case\"[31~\":i.name=\"f7\";i.shift=true;break;case\"[32~\":i.name=\"f8\";i.shift=true;break;case\"[33~\":i.name=\"f9\";i.shift=true;break;case\"[34~\":i.name=\"f10\";i.shift=true;break;case\"[1~\":i.name=\"home\";break;case\"[2~\":i.name=\"insert\";break;case\"[3~\":i.name=\"delete\";break;case\"[4~\":i.name=\"end\";break;case\"[5~\":i.name=\"pageup\";break;case\"[6~\":i.name=\"pagedown\";break;case\"[[5~\":i.name=\"pageup\";break;case\"[[6~\":i.name=\"pagedown\";break;case\"[7~\":i.name=\"home\";break;case\"[8~\":i.name=\"end\";break;case\"[a\":i.name=\"up\";i.shift=true;break;case\"[b\":i.name=\"down\";i.shift=true;break;case\"[c\":i.name=\"right\";i.shift=true;break;case\"[d\":i.name=\"left\";i.shift=true;break;case\"[e\":i.name=\"clear\";i.shift=true;break;case\"Oa\":i.name=\"up\";i.ctrl=true;break;case\"Ob\":i.name=\"down\";i.ctrl=true;break;case\"Oc\":i.name=\"right\";i.ctrl=true;break;case\"Od\":i.name=\"left\";i.ctrl=true;break;case\"Oe\":i.name=\"clear\";i.ctrl=true;break;case\"[Z\":i.name=\"tab\";i.shift=true;break}}i.sequence=c;if(i.name!==undefined){e.emit(\"keypress\",new s(i))}else{e.emit(\"unknownSequence\",c)}u=yield;continue}else{if(a>=2)r();i.alt=Boolean(a);i.sequence=c;if(u===\"\\r\"){i.name=\"enter\"}else if(u===\"\\n\"){if(l){u=yield;continue}i.name=\"enter\"}else if(u===\"\\t\"){i.name=\"tab\"}else if(u===\"\\b\"||u===\"\u007F\"){i.name=\"backspace\"}else if(u===\" \"){i.name=\"space\"}else if(u<=\"\u001E\"){i.name=String.fromCharCode(u.charCodeAt(0)+64).toLowerCase();i.ctrl=true}else if(u===\"\u001F\"){i.name=\"-\";i.ctrl=true}else{i.isSpecial=false;i.name=u;i.sequence=(a?\"\u001B\":\"\")+i.name}}e.emit(\"keypress\",new s(i));l=u===\"\\r\";u=yield}}class r extends e{constructor(e=process.stdin,s,{escKeyTimeout:i=500,timeout:a=i,encoding:r}={}){super();const l=new t(r),u=n(this);var c=u.next().value;this._dataListener=e=>{for(let t=0;t<e.length;t++){if(c)c=u.next(e[t]).value;else{let s=l.write(Buffer.from([e[t]]));if(s)for(let e of s){if(u.next(e).value){c=true;break}}}}if(this._timeoutID){clearTimeout(this._timeoutID)}if(this.timeout!==Infinity){this._timeoutID=setTimeout(()=>{this._timeoutID=undefined;c=u.next(\"\").value},this.timeout)}};this._endListener=()=>{if(!c){let e=l.end();if(e)for(let t of e){if(u.next(t).value){c=true;break}}}};this._input=e;this.output=s||(e===process.stdin?process.stdout:null);this._encoding=r;this.timeout=a;this._timeoutID=undefined;this._isPaused=true;this.resume()}pause(e=true){if(!this._isPaused){this._input.removeListener(\"data\",this._dataListener);this._input.removeListener(\"end\",this._endListener);if(e&&this._input.pause)this._input.pause();this._isPaused=true;return true}else return false}resume(e=true){if(this._isPaused){this._input.on(\"data\",this._dataListener);this._input.on(\"end\",this._endListener);if(e&&this._input.resume)this._input.resume();this._isPaused=false;return true}else return false}enableMouse(e=0,t=true){this.output.write(`\u001B[?1000h`);if(e===1)this.output.write(`\u001B[?1001h`);else{if(e>=2)this.output.write(`\u001B[?1002h`);if(e===3)this.output.write(`\u001B[?1003h`)}if(t)this.output.write(`\u001B[?1006h`)}disableMouse(){this.output.write(`\u001B[?1000l\u001B[?1006l`)}enableBPM(){this.output.write(\"\u001B[?2004h\")}disableBPM(){this.output.write(\"\u001B[?2004l\")}enableFocus(){this.output.write(\"\u001B[?1004h\")}disableFocus(){this.output.write(\"\u001B[?1004l\")}}Object.assign(r,{VT200_MOUSE:0,VT200_HIGHLIGHT_MOUSE:1,BTN_EVENT_MOUSE:2,ANY_EVENT_MOUSE:3,KeyboardEvent:s,MouseEvent:i,HighlightEvent:a});module.exports=r;", "(function () {\n 'use strict';\n\n /**\n * range function for numbers [a, .., b-1]\n *\n * @param {number} a\n * @param {number} b\n * @return {Array}\n */\n function r(a, b) {\n var c = b - a;\n var arr = new Array(c);\n while (c--)\n arr[c] = --b;\n return arr;\n }\n\n /**\n * Add a transition to the transition table.\n *\n * @param table - table to add transition\n * @param {number} inp - input character code\n * @param {number} state - current state\n * @param {number=} action - action to be taken\n * @param {number=} next - next state\n */\n function add(table, inp, state, action, next) {\n table[state<<8|inp] = ((action | 0) << 4) | ((next === undefined) ? state : next);\n }\n\n /**\n * Add multiple transitions to the transition table.\n *\n * @param table - table to add transition\n * @param {Array} inps - array of input character codes\n * @param {number} state - current state\n * @param {number=} action - action to be taken\n * @param {number=} next - next state\n */\n function add_list(table, inps, state, action, next) {\n for (var i=0; i<inps.length; i++)\n add(table, inps[i], state, action, next);\n }\n\n /** global definition of printables and executables */\n var PRINTABLES = r(0x20, 0x7f);\n var EXECUTABLES = r(0x00, 0x18);\n EXECUTABLES.push(0x19);\n EXECUTABLES = EXECUTABLES.concat(r(0x1c, 0x20));\n\n /* meaning of state and action indices\n var STATES = [\n 'GROUND',\n 'ESCAPE',\n 'ESCAPE_INTERMEDIATE',\n 'CSI_ENTRY',\n 'CSI_PARAM',\n 'CSI_INTERMEDIATE',\n 'CSI_IGNORE',\n 'SOS_PM_APC_STRING',\n 'OSC_STRING',\n 'DCS_ENTRY',\n 'DCS_PARAM',\n 'DCS_IGNORE',\n 'DCS_INTERMEDIATE',\n 'DCS_PASSTHROUGH'\n ];\n var ACTIONS = [\n 'ignore',\n 'error',\n 'print',\n 'execute',\n 'osc_start',\n 'osc_put',\n 'osc_end',\n 'csi_dispatch',\n 'param',\n 'collect',\n 'esc_dispatch',\n 'clear',\n 'dcs_hook',\n 'dcs_put',\n 'dcs_unhook'\n ];\n */\n\n /**\n * create the standard transition table - used by all parser instances\n *\n * table[state << 8 | character code] = action << 4 | next state\n *\n * - states are indices of STATES (0 to 13)\n * - control character codes defined from 0 to 159 (C0 and C1)\n * - actions are indices of ACTIONS (0 to 14)\n * - any higher character than 159 is handled by the 'error' action\n */\n var TRANSITION_TABLE = (function() {\n var t = new Uint8Array(4095);\n\n // table with default transition [any] --> [error, GROUND]\n for (var state=0; state<14; ++state) {\n for (var code=0; code<160; ++code) {\n t[state<<8|code] = 16;\n }\n }\n\n // apply transitions\n // printables\n add_list(t, PRINTABLES, 0, 2);\n // global anywhere rules\n for (state=0; state<14; ++state) {\n add_list(t, [0x18, 0x1a, 0x99, 0x9a], state, 3, 0);\n add_list(t, r(0x80, 0x90), state, 3, 0);\n add_list(t, r(0x90, 0x98), state, 3, 0);\n add(t, 0x9c, state, 0, 0); // ST as terminator\n add(t, 0x1b, state, 11, 1); // ESC\n add(t, 0x9d, state, 4, 8); // OSC\n add_list(t, [0x98, 0x9e, 0x9f], state, 0, 7);\n add(t, 0x9b, state, 11, 3); // CSI\n add(t, 0x90, state, 11, 9); // DCS\n }\n // rules for executables and 7f\n add_list(t, EXECUTABLES, 0, 3);\n add_list(t, EXECUTABLES, 1, 3);\n add(t, 0x7f, 1);\n add_list(t, EXECUTABLES, 8);\n add_list(t, EXECUTABLES, 3, 3);\n add(t, 0x7f, 3);\n add_list(t, EXECUTABLES, 4, 3);\n add(t, 0x7f, 4);\n add_list(t, EXECUTABLES, 6, 3);\n add_list(t, EXECUTABLES, 5, 3);\n add(t, 0x7f, 5);\n add_list(t, EXECUTABLES, 2, 3);\n add(t, 0x7f, 2);\n // osc\n add(t, 0x5d, 1, 4, 8);\n add_list(t, PRINTABLES, 8, 5);\n add(t, 0x7f, 8, 5);\n add_list(t, [0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);\n add_list(t, r(0x1c, 0x20), 8, 0);\n // sos/pm/apc does nothing\n add_list(t, [0x58, 0x5e, 0x5f], 1, 0, 7);\n add_list(t, PRINTABLES, 7);\n add_list(t, EXECUTABLES, 7);\n add(t, 0x7f, 7);\n add(t, 0x9c, 7, 0, 0);\n // csi entries\n add(t, 0x5b, 1, 11, 3);\n add_list(t, r(0x40, 0x7f), 3, 7, 0);\n add_list(t, r(0x30, 0x3a), 3, 8, 4);\n add(t, 0x3b, 3, 8, 4);\n add_list(t, [0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);\n add_list(t, r(0x30, 0x3a), 4, 8);\n add(t, 0x3b, 4, 8);\n add_list(t, r(0x40, 0x7f), 4, 7, 0);\n add_list(t, [0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);\n add_list(t, r(0x20, 0x40), 6);\n add(t, 0x7f, 6);\n add_list(t, r(0x40, 0x7f), 6, 0, 0);\n add(t, 0x3a, 3, 0, 6);\n add_list(t, r(0x20, 0x30), 3, 9, 5);\n add_list(t, r(0x20, 0x30), 5, 9);\n add_list(t, r(0x30, 0x40), 5, 0, 6);\n add_list(t, r(0x40, 0x7f), 5, 7, 0);\n add_list(t, r(0x20, 0x30), 4, 9, 5);\n // esc_intermediate\n add_list(t, r(0x20, 0x30), 1, 9, 2);\n add_list(t, r(0x20, 0x30), 2, 9);\n add_list(t, r(0x30, 0x7f), 2, 10, 0);\n add_list(t, r(0x30, 0x50), 1, 10, 0);\n add_list(t, [0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x59, 0x5a, 0x5c], 1, 10, 0);\n add_list(t, r(0x60, 0x7f), 1, 10, 0);\n // dcs entry\n add(t, 0x50, 1, 11, 9);\n add_list(t, EXECUTABLES, 9);\n add(t, 0x7f, 9);\n add_list(t, r(0x1c, 0x20), 9);\n add_list(t, r(0x20, 0x30), 9, 9, 12);\n add(t, 0x3a, 9, 0, 11);\n add_list(t, r(0x30, 0x3a), 9, 8, 10);\n add(t, 0x3b, 9, 8, 10);\n add_list(t, [0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);\n add_list(t, EXECUTABLES, 11);\n add_list(t, r(0x20, 0x80), 11);\n add_list(t, r(0x1c, 0x20), 11);\n add_list(t, EXECUTABLES, 10);\n add(t, 0x7f, 10);\n add_list(t, r(0x1c, 0x20), 10);\n add_list(t, r(0x30, 0x3a), 10, 8);\n add(t, 0x3b, 10, 8);\n add_list(t, [0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);\n add_list(t, r(0x20, 0x30), 10, 9, 12);\n add_list(t, EXECUTABLES, 12);\n add(t, 0x7f, 12);\n add_list(t, r(0x1c, 0x20), 12);\n add_list(t, r(0x20, 0x30), 12, 9);\n add_list(t, r(0x30, 0x40), 12, 0, 11);\n add_list(t, r(0x40, 0x7f), 12, 12, 13);\n add_list(t, r(0x40, 0x7f), 10, 12, 13);\n add_list(t, r(0x40, 0x7f), 9, 12, 13);\n add_list(t, EXECUTABLES, 13, 13);\n add_list(t, PRINTABLES, 13, 13);\n add(t, 0x7f, 13);\n add_list(t, [0x1b, 0x9c], 13, 14, 0);\n\n return t;\n })();\n\n\n /**\n * AnsiParser - Parser for ANSI terminal escape sequences.\n *\n * @param {Object=} terminal emulation object\n * @constructor\n */\n function AnsiParser(terminal) {\n this.initial_state = 0; // 'GROUND' is default\n this.current_state = this.initial_state|0;\n\n // clone global transition table\n this.transitions = new Uint8Array(4095);\n this.transitions.set(TRANSITION_TABLE);\n\n // global non pushable buffers for multiple parse invocations\n this.osc = '';\n this.params = [0];\n this.collected = '';\n\n // back reference to terminal\n this.term = terminal || {};\n var instructions = ['inst_p', 'inst_o', 'inst_x', 'inst_c',\n 'inst_e', 'inst_H', 'inst_P', 'inst_U', 'inst_E'];\n for (var i=0; i<instructions.length; ++i)\n if (!(instructions[i] in this.term))\n this.term[instructions[i]] = function() {};\n }\n\n /**\n * Reset the parser.\n */\n AnsiParser.prototype.reset = function() {\n this.current_state = this.initial_state|0;\n this.osc = '';\n this.params = [0];\n this.collected = '';\n };\n\n /**\n * Parse string s.\n * @param {string} s\n */\n AnsiParser.prototype.parse = function(s) {\n var code = 0,\n transition = 0,\n error = false,\n current_state = this.current_state|0;\n\n // local buffers\n var printed = -1;\n var dcs = -1;\n var osc = this.osc;\n var collected = this.collected;\n var params = this.params;\n\n // process input string\n for (var i=0, l=s.length|0; i<l; ++i) {\n code = s.charCodeAt(i)|0;\n // shortcut for most chars (print action)\n if (current_state===0 && code>0x1f && code<0x80) {\n printed = (printed + 1) ? printed|0: i|0;\n continue;\n }\n transition = ((code < 0xa0) ? (this.transitions[(current_state<<8|code)|0])|0 : 16)|0;\n switch ((transition >> 4)|0) {\n case 2: // print\n printed = (printed + 1) ? printed|0: i|0;\n break;\n case 3: // execute\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n this.term.inst_x(String.fromCharCode(code));\n break;\n case 0: // ignore\n // handle leftover print and dcs chars\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n } else if (dcs + 1) {\n this.term.inst_P(s.substring(dcs, i));\n dcs = -1;\n }\n break;\n case 1: // error\n // handle unicode chars in write buffers w'o state change\n if (code > 0x9f) {\n switch (current_state) {\n case 0: // GROUND -> add char to print string\n printed = (!(printed+1)) ? i|0 : printed|0;\n break;\n case 8: // OSC_STRING -> add char to osc string\n osc += String.fromCharCode(code);\n transition = (transition | 8)|0;\n break;\n case 6: // CSI_IGNORE -> ignore char\n transition = (transition | 6)|0;\n break;\n case 11: // DCS_IGNORE -> ignore char\n transition = (transition | 11)|0;\n break;\n case 13: // DCS_PASSTHROUGH -> add char to dcs\n if (!(dcs + 1))\n dcs = i|0;\n transition = (transition | 13)|0;\n break;\n default: // real error\n error = true;\n }\n } else { // real error\n error = true;\n }\n if (error) {\n if (this.term.inst_E(\n {\n pos: i, // position in parse string\n character: String.fromCharCode(code), // wrong character\n state: current_state, // in state\n print: printed, // print buffer\n dcs: dcs, // dcs buffer\n osc: osc, // osc buffer\n collect: collected, // collect buffer\n params: params // params buffer\n })) {\n return;\n }\n error = false;\n }\n break;\n case 7: // csi_dispatch\n this.term.inst_c(collected, params, String.fromCharCode(code));\n break;\n case 8: // param\n if (code === 0x3b)\n params.push(0);\n else\n params[params.length-1] = (params[params.length-1] * 10 + code - 48)|0;\n break;\n case 9: // collect\n collected += String.fromCharCode(code);\n break;\n case 10: // esc_dispatch\n this.term.inst_e(collected, String.fromCharCode(code));\n break;\n case 11: // clear\n if (printed + 1) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n case 12: // dcs_hook\n this.term.inst_H(collected, params, String.fromCharCode(code));\n break;\n case 13: // dcs_put\n if (!(dcs + 1))\n dcs = i|0;\n break;\n case 14: // dcs_unhook\n if (dcs + 1) {\n this.term.inst_P(s.substring(dcs, i));\n }\n this.term.inst_U();\n if (code === 0x1b)\n transition = (transition | 1)|0;\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n case 4: // osc_start\n if (~printed) {\n this.term.inst_p(s.substring(printed, i));\n printed = -1;\n }\n osc = '';\n break;\n case 5: // osc_put\n osc += s.charAt(i);\n break;\n case 6: // osc_end\n if (osc && code !== 0x18 && code !== 0x1a)\n this.term.inst_o(osc);\n if (code === 0x1b)\n transition = (transition | 1)|0;\n osc = '';\n params = [0];\n collected = '';\n dcs = -1;\n break;\n }\n current_state = (transition & 15)|0;\n }\n\n // push leftover pushable buffers to terminal\n if (!current_state && (printed + 1)) {\n this.term.inst_p(s.substring(printed));\n } else if (current_state===13 && (dcs + 1)) {\n this.term.inst_P(s.substring(dcs));\n }\n\n // save non pushable buffers\n this.osc = osc;\n this.collected = collected;\n this.params = params;\n\n // save state\n this.current_state = current_state|0;\n };\n\n /* istanbul ignore next */\n if (typeof module !== 'undefined'\n && typeof module.exports !== 'undefined') {\n module.exports = AnsiParser;\n } else {\n if (typeof define === 'function' && define.amd) {\n define([], function() {return AnsiParser;});\n } else {\n window.AnsiParser = AnsiParser;\n }\n }\n})();", "export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST\n\t// The payload stops at the first terminator character rather than scanning ahead for one, so an unterminated `ESC ]` cannot rescan the rest of the input. Terminals likewise abort a control string on an unexpected ESC.\n\tconst osc = `(?:\\\\u001B\\\\][^\\\\u0007\\\\u001B\\\\u009C]*${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n", "import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Fast path: ANSI codes require ESC (7-bit) or CSI (8-bit) introducer\n\tif (!string.includes('\\u001B') && !string.includes('\\u009B')) {\n\t\treturn string;\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n", "// Generated by scripts/build.js\n\nexport const ambiguousMinimalCodePoint = 161;\nexport const ambiguousMaximumCodePoint = 1114109;\nexport const ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];\n\nexport const fullwidthMinimalCodePoint = 12288;\nexport const fullwidthMaximumCodePoint = 65510;\nexport const fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];\n\nexport const halfwidthMinimalCodePoint = 8361;\nexport const halfwidthMaximumCodePoint = 65518;\nexport const halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];\n\nexport const narrowMinimalCodePoint = 32;\nexport const narrowMaximumCodePoint = 10630;\nexport const narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];\n\nexport const wideMinimalCodePoint = 4352;\nexport const wideMaximumCodePoint = 262141;\nexport const wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];\n", "/**\nBinary search on a sorted flat array of [start, end] pairs.\n\n@param {number[]} ranges - Flat array of inclusive [start, end] range pairs, e.g. [0, 5, 10, 20].\n@param {number} codePoint - The value to search for.\n@returns {boolean} Whether the value falls within any of the ranges.\n*/\nexport const isInRange = (ranges, codePoint) => {\n\tlet low = 0;\n\tlet high = Math.floor(ranges.length / 2) - 1;\n\twhile (low <= high) {\n\t\tconst mid = Math.floor((low + high) / 2);\n\t\tconst i = mid * 2;\n\t\tif (codePoint < ranges[i]) {\n\t\t\thigh = mid - 1;\n\t\t} else if (codePoint > ranges[i + 1]) {\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n", "import {\n\tambiguousMinimalCodePoint,\n\tambiguousMaximumCodePoint,\n\tambiguousRanges,\n\n\tfullwidthMinimalCodePoint,\n\tfullwidthMaximumCodePoint,\n\tfullwidthRanges,\n\n\thalfwidthMinimalCodePoint,\n\thalfwidthMaximumCodePoint,\n\thalfwidthRanges,\n\n\tnarrowMinimalCodePoint,\n\tnarrowMaximumCodePoint,\n\tnarrowRanges,\n\n\twideMinimalCodePoint,\n\twideMaximumCodePoint,\n\twideRanges,\n} from './lookup-data.js';\nimport {isInRange} from './utilities.js';\n\nconst commonCjkCodePoint = 0x4E_00;\nconst [wideFastPathStart, wideFastPathEnd] = /* #__PURE__ */ findWideFastPathRange(wideRanges);\n\n// Use a hot-path range so common `isWide` calls can skip binary search.\n// The range containing U+4E00 covers common CJK ideographs;\n// fallback to the largest range for resilience to Unicode table changes.\nfunction findWideFastPathRange(ranges) {\n\tlet fastPathStart = ranges[0];\n\tlet fastPathEnd = ranges[1];\n\n\tfor (let index = 0; index < ranges.length; index += 2) {\n\t\tconst start = ranges[index];\n\t\tconst end = ranges[index + 1];\n\n\t\tif (\n\t\t\tcommonCjkCodePoint >= start\n\t\t\t&& commonCjkCodePoint <= end\n\t\t) {\n\t\t\treturn [start, end];\n\t\t}\n\n\t\tif ((end - start) > (fastPathEnd - fastPathStart)) {\n\t\t\tfastPathStart = start;\n\t\t\tfastPathEnd = end;\n\t\t}\n\t}\n\n\treturn [fastPathStart, fastPathEnd];\n}\n\nexport const isAmbiguous = codePoint => {\n\tif (\n\t\tcodePoint < ambiguousMinimalCodePoint\n\t\t|| codePoint > ambiguousMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(ambiguousRanges, codePoint);\n};\n\nexport const isFullWidth = codePoint => {\n\tif (\n\t\tcodePoint < fullwidthMinimalCodePoint\n\t\t|| codePoint > fullwidthMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(fullwidthRanges, codePoint);\n};\n\nconst isHalfWidth = codePoint => {\n\tif (\n\t\tcodePoint < halfwidthMinimalCodePoint\n\t\t|| codePoint > halfwidthMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(halfwidthRanges, codePoint);\n};\n\nconst isNarrow = codePoint => {\n\tif (\n\t\tcodePoint < narrowMinimalCodePoint\n\t\t|| codePoint > narrowMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(narrowRanges, codePoint);\n};\n\nexport const isWide = codePoint => {\n\tif (\n\t\tcodePoint >= wideFastPathStart\n\t\t&& codePoint <= wideFastPathEnd\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tcodePoint < wideMinimalCodePoint\n\t\t|| codePoint > wideMaximumCodePoint\n\t) {\n\t\treturn false;\n\t}\n\n\treturn isInRange(wideRanges, codePoint);\n};\n\nexport function getCategory(codePoint) {\n\tif (isAmbiguous(codePoint)) {\n\t\treturn 'ambiguous';\n\t}\n\n\tif (isFullWidth(codePoint)) {\n\t\treturn 'fullwidth';\n\t}\n\n\tif (isHalfWidth(codePoint)) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (isNarrow(codePoint)) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(codePoint)) {\n\t\treturn 'wide';\n\t}\n\n\treturn 'neutral';\n}\n", "import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// Private exports for https://github.com/sindresorhus/is-fullwidth-code-point\nexport {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';\n", "import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n", "import stringWidth from \"string-width\";\nimport { clearLine, cursorTo, moveCursor } from \"node:readline\";\nimport { createInterface } from \"node:readline/promises\";\nimport { keyStroke, type KeyStroke } from \"./keybindings/index.js\";\nimport { PassThrough, type Readable, Writable } from \"node:stream\";\nimport { setImmediate as waitImmediate } from \"node:timers/promises\";\nimport TerminalEvents from \"tty-events\";\nimport { TerminalImageSupport } from \"./image-support.js\";\nimport type { TerminalInput } from \"./terminal-driver.js\";\n\n/** @experimental */\nexport interface TerminalSuggestion {\n /** Full input value represented by the suggestion. */\n readonly value: string;\n readonly label?: string;\n readonly description?: string;\n}\n\n/** @experimental */\nexport type TerminalSuggestionProvider = (\n input: string,\n) => readonly TerminalSuggestion[] | Promise<readonly TerminalSuggestion[]>;\n\n/** @experimental */\nexport interface TerminalQuestionOptions {\n readonly signal?: AbortSignal;\n /** \u5728\u4EA4\u4E92\u7EC8\u7AEF\u4E2D\u6309 Esc \u65F6\u8C03\u7528\uFF1B\u8C03\u7528\u65B9\u53EF\u4EE5\u901A\u8FC7 signal \u53D6\u6D88\u5F53\u524D\u95EE\u9898\u3002 */\n readonly onEscape?: () => void;\n /** \u9690\u85CF\u8F93\u5165\u5B57\u7B26\uFF0C\u9694\u79BB\u8F93\u5165\u5386\u53F2\uFF1B\u9700\u8981\u4EA4\u4E92\u7EC8\u7AEF\uFF0C\u7981\u6B62\u4F7F\u7528 suggestions\u3002 */\n readonly password?: boolean;\n /** Keep this answer in interactive input history. */\n readonly history?: boolean;\n /** Live suggestions displayed while editing this answer in an interactive TTY. */\n readonly suggestions?: TerminalSuggestionProvider;\n}\n\n/**\n * Line-oriented terminal I/O used by prompt-driven applications.\n *\n * This is separate from {@link NodeTerminalDriver}, which owns raw input and\n * retained full-screen rendering.\n * @experimental\n */\nexport interface TerminalIO {\n readonly imageSupport?: TerminalImageSupport;\n readonly colors?: boolean;\n readonly interactive?: boolean;\n question(prompt: string, options?: TerminalQuestionOptions): Promise<string>;\n /** \u66F4\u65B0\u5F53\u524D\u95EE\u9898\u7684\u63D0\u793A\u6587\u5B57\uFF0C\u4FDD\u7559\u8F93\u5165\u5185\u5BB9\u548C\u5149\u6807\u3002 */\n updatePrompt?(prompt: string): void;\n /** Read one normalized key while no line question is active. */\n readKey?(options?: { readonly signal?: AbortSignal }): Promise<KeyStroke>;\n /** Render a temporary full-screen view. */\n renderView?(text: string): void;\n /** Close the temporary view and restore the previous terminal contents. */\n closeView?(): void;\n addHistory?(value: string): void;\n write(text: string): void;\n onInterrupt?(listener: () => void): () => void;\n close(): void | Promise<void>;\n}\n\n/** @experimental */\nexport interface NodeTerminalOptions {\n readonly input?: NodeJS.ReadableStream;\n readonly output?: NodeJS.WritableStream & {\n readonly isTTY?: boolean;\n readonly columns?: number;\n };\n readonly colors?: boolean;\n}\n\n/**\n * Create a readline-backed, line-oriented Node terminal adapter.\n * @experimental\n */\nexport function createNodeTerminal(options: NodeTerminalOptions = {}): TerminalIO {\n const source: TerminalInput = options.input ?? process.stdin;\n source.ref?.();\n const output = options.output ?? process.stdout;\n const interactive = output.isTTY === true;\n const imageSupport = new TerminalImageSupport(output);\n const filtered = interactive && imageSupport.protocol === \"sixel\" ? new PassThrough() : undefined;\n const input: NodeJS.ReadableStream = filtered ?? source;\n const reports = filtered ? new TerminalEvents(source as Readable, output as Writable, { timeout: 100 }) : undefined;\n const endFilteredInput = () => filtered?.end();\n if (filtered && reports) {\n const terminalSource = source as NodeJS.ReadStream;\n Object.assign(filtered, {\n isTTY: terminalSource.isTTY,\n setRawMode: (enabled: boolean) => terminalSource.setRawMode?.(enabled),\n });\n reports.on(\"keypress\", (key) => filtered.write(key.sequence));\n reports.on(\"paste\", (text) => filtered.write(`\\x1b[200~${text}\\x1b[201~`));\n reports.on(\"unknownSequence\", (sequence) => {\n if (!imageSupport.consume(sequence)) filtered.write(sequence);\n });\n source.on(\"end\", endFilteredInput);\n }\n const historySize = 200;\n let passwordActive = false;\n let viewActive = false;\n let keyInputActive = false;\n const readlineOutput = new Writable({\n write(chunk, encoding, callback) {\n if (!passwordActive && !viewActive && !keyInputActive) output.write(chunk, encoding);\n callback();\n },\n });\n Object.defineProperties(readlineOutput, {\n isTTY: { get: () => output.isTTY },\n columns: { get: () => output.columns },\n });\n const lifetime = new AbortController();\n const interruptListeners = new Set<() => void>();\n const onReadlineClose = () => lifetime.abort(new Error(\"Terminal closed\"));\n const createReadline = (size: number) =>\n createInterface({\n input,\n output: readlineOutput,\n terminal: interactive,\n historySize: size,\n removeHistoryDuplicates: true,\n escapeCodeTimeout: 100,\n })\n .on(\"SIGINT\", () => {\n for (const listener of interruptListeners) listener();\n })\n .on(\"close\", onReadlineClose);\n let readline = createReadline(historySize);\n let history = (readline as unknown as { readonly history: string[] }).history;\n const replaceReadline = async (size: number) => {\n readline.removeListener(\"close\", onReadlineClose);\n // \u7B49\u5F85\u8F93\u5165\u5B8C\u6210\u6682\u505C\uFF0C\u518D\u6062\u590D\u8BFB\u53D6\u548C\u7EC8\u7AEF\u6A21\u5F0F\u3002\n input.pause();\n await waitImmediate();\n readline.close();\n if (closed || lifetime.signal.aborted) return;\n readline = createReadline(size);\n history = (readline as unknown as { readonly history: string[] }).history;\n };\n let activePrompt: string | undefined;\n let activeEscape: (() => void) | undefined;\n let activeSuggestionProvider: TerminalSuggestionProvider | undefined;\n let activeSuggestions: readonly TerminalSuggestion[] = [];\n let renderedSuggestionCount = 0;\n let suggestionVersion = 0;\n const suggestionTasks = new Set<Promise<void>>();\n const suggestionErrors: unknown[] = [];\n const ownSuggestion = (task: Promise<void>): void => {\n const pending = task.then(\n () => {\n suggestionTasks.delete(pending);\n },\n (error: unknown) => {\n suggestionTasks.delete(pending);\n suggestionErrors.push(error);\n lifetime.abort(error);\n },\n );\n suggestionTasks.add(pending);\n };\n let activeSuggestionInput: string | undefined;\n let activeKeyRead: KeyRead | undefined;\n let suppressInterrupt = false;\n let closed = false;\n let questionReserved = false;\n const inputWaiters = new Set<() => void>();\n const wakeInputWaiters = () => {\n for (const wake of [...inputWaiters]) wake();\n };\n const waitForInput = async (signal?: AbortSignal): Promise<void> => {\n while (activePrompt !== undefined || activeKeyRead !== undefined || viewActive || questionReserved) {\n if (closed) throw new Error(\"Terminal closed\");\n signal?.throwIfAborted();\n await new Promise<void>((resolve, reject) => {\n const cleanup = () => {\n inputWaiters.delete(wake);\n signal?.removeEventListener(\"abort\", abort);\n };\n const wake = () => {\n cleanup();\n resolve();\n };\n const abort = () => {\n cleanup();\n reject(abortError(signal?.reason));\n };\n inputWaiters.add(wake);\n signal?.addEventListener(\"abort\", abort, { once: true });\n });\n }\n if (closed) throw new Error(\"Terminal closed\");\n signal?.throwIfAborted();\n questionReserved = true;\n };\n\n const inputColumn = (): number => {\n const prompt = activePrompt?.replace(/^\\r?\\n/u, \"\") ?? \"\";\n return stringWidth(prompt) + stringWidth(readline.line.slice(0, readline.cursor));\n };\n\n const eraseSuggestionRows = (): void => {\n if (!interactive || renderedSuggestionCount === 0) return;\n for (let index = 0; index < renderedSuggestionCount; index++) {\n moveCursor(output, 0, 1);\n clearLine(output, 0);\n cursorTo(output, 0);\n }\n moveCursor(output, 0, -renderedSuggestionCount);\n cursorTo(output, inputColumn());\n renderedSuggestionCount = 0;\n };\n\n const drawSuggestionRows = (): void => {\n if (!interactive || activePrompt === undefined || activeSuggestions.length === 0) {\n return;\n }\n const suggestions = activeSuggestions.slice(0, 8);\n for (const suggestion of suggestions) {\n output.write(`\\n${formatSuggestion(suggestion, output.columns)}`);\n }\n renderedSuggestionCount = suggestions.length;\n moveCursor(output, 0, -renderedSuggestionCount);\n cursorTo(output, inputColumn());\n };\n\n const replaceSuggestions = (suggestions: readonly TerminalSuggestion[], inputValue: string): void => {\n eraseSuggestionRows();\n activeSuggestions = suggestions;\n activeSuggestionInput = inputValue;\n drawSuggestionRows();\n };\n\n const refreshSuggestions = async (): Promise<void> => {\n const provider = activeSuggestionProvider;\n if (closed || !interactive || activePrompt === undefined || provider === undefined) {\n return;\n }\n const line = readline.line;\n const version = ++suggestionVersion;\n const suggestions = await provider(line);\n if (\n version !== suggestionVersion ||\n provider !== activeSuggestionProvider ||\n activePrompt === undefined ||\n line !== readline.line\n ) {\n return;\n }\n replaceSuggestions(suggestions, line);\n };\n\n const completeActiveSuggestion = (line: string): boolean => {\n if (activeSuggestionInput !== line) return false;\n const completion = commonSuggestionPrefix(line, activeSuggestions);\n if (completion === undefined || completion === line) return false;\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n readline.write(undefined, { ctrl: true, name: \"u\" });\n readline.write(completion);\n return true;\n };\n\n const onKeypress = (value: string | undefined, key: NodeKey = {}): void => {\n if (activeKeyRead !== undefined) {\n const read = activeKeyRead;\n activeKeyRead = undefined;\n read.cleanup();\n if (key.ctrl === true && key.name === \"c\") {\n suppressInterrupt = true;\n setImmediate(() => (suppressInterrupt = false));\n }\n read.resolve(toKeyStroke(value, key));\n wakeInputWaiters();\n queueMicrotask(() => {\n if (!closed && !questionReserved && activePrompt === undefined) {\n readline.write(undefined, { ctrl: true, name: \"u\" });\n }\n keyInputActive = activeKeyRead !== undefined;\n });\n return;\n }\n if (activePrompt === undefined) return;\n if (key.name === \"escape\" && activeEscape !== undefined) {\n activeEscape();\n return;\n }\n if (key.name === \"tab\" && activeSuggestionProvider !== undefined) {\n const line = readline.line;\n const completed = completeActiveSuggestion(line);\n const expected = readline.line;\n queueMicrotask(() => {\n if (readline.line === `${expected}\\t`) {\n readline.write(undefined, { ctrl: true, name: \"u\" });\n readline.write(expected);\n }\n ownSuggestion(\n refreshSuggestions().then(() => {\n if (!completed && activePrompt !== undefined && readline.line === line) {\n completeActiveSuggestion(line);\n }\n }),\n );\n });\n return;\n }\n if (key.name === \"return\" || key.name === \"enter\" || (key.ctrl === true && key.name === \"c\")) {\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestions = [];\n return;\n }\n queueMicrotask(() => {\n if (!closed) ownSuggestion(refreshSuggestions());\n });\n };\n if (interactive) input.prependListener(\"keypress\", onKeypress);\n const updateImageSize = () => {\n imageSupport.query();\n readlineOutput.emit(\"resize\");\n };\n output.on(\"resize\", updateImageSize);\n\n return {\n imageSupport,\n colors: options.colors ?? interactive,\n interactive,\n async question(prompt, questionOptions = {}) {\n const signal =\n questionOptions.signal === undefined\n ? lifetime.signal\n : AbortSignal.any([lifetime.signal, questionOptions.signal]);\n if (activePrompt !== undefined || activeKeyRead !== undefined || viewActive || questionReserved)\n await waitForInput(signal);\n try {\n if (closed) throw new Error(\"Terminal closed\");\n signal.throwIfAborted();\n if (questionOptions.password && (!interactive || (source as NodeJS.ReadStream).isTTY !== true)) {\n throw new Error(\"Password input requires an interactive terminal\");\n }\n if (questionOptions.password && questionOptions.suggestions !== undefined) {\n throw new Error(\"Password input does not support suggestions\");\n }\n } catch (error) {\n questionReserved = false;\n wakeInputWaiters();\n throw error;\n }\n const previousHistory =\n interactive && (questionOptions.history === false || questionOptions.password) ? [...history] : undefined;\n passwordActive = questionOptions.password === true;\n if (passwordActive) {\n // \u5BC6\u7801\u4F7F\u7528\u72EC\u7ACB readline\uFF0C\u8F93\u5165\u5386\u53F2\u548C\u5220\u9664\u7F13\u51B2\u533A\u968F\u95EE\u9898\u7ED3\u675F\u6E05\u9664\u3002\n questionReserved = true;\n await replaceReadline(0);\n output.write(prompt);\n }\n activePrompt = prompt;\n activeEscape = questionOptions.onEscape;\n questionReserved = false;\n activeSuggestionProvider = questionOptions.suggestions;\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n renderedSuggestionCount = 0;\n suggestionVersion += 1;\n try {\n return await readline.question(prompt, { signal });\n } finally {\n if (passwordActive) {\n if (!closed && !lifetime.signal.aborted) await replaceReadline(historySize);\n output.write(\"\\n\");\n passwordActive = false;\n }\n suggestionVersion += 1;\n eraseSuggestionRows();\n activeSuggestionProvider = undefined;\n activeSuggestions = [];\n activeSuggestionInput = undefined;\n activePrompt = undefined;\n activeEscape = undefined;\n wakeInputWaiters();\n if (previousHistory !== undefined) {\n history.splice(0, history.length, ...previousHistory);\n }\n }\n },\n updatePrompt(prompt) {\n if (activePrompt === undefined) return;\n eraseSuggestionRows();\n activePrompt = prompt;\n readline.setPrompt(prompt.replace(/^\\r?\\n/u, \"\"));\n if (interactive) readline.prompt(true);\n if (passwordActive) {\n clearLine(output, 0);\n cursorTo(output, 0);\n output.write(prompt);\n }\n drawSuggestionRows();\n },\n readKey({ signal } = {}) {\n signal = signal === undefined ? lifetime.signal : AbortSignal.any([lifetime.signal, signal]);\n if (!interactive) {\n return Promise.reject(new Error(\"Key input requires an interactive terminal\"));\n }\n if (activePrompt !== undefined || activeKeyRead !== undefined || questionReserved) {\n return Promise.reject(new Error(\"The terminal input is already active\"));\n }\n if (signal?.aborted) return Promise.reject(abortError(signal.reason));\n return new Promise<KeyStroke>((resolve, reject) => {\n const onAbort = () => {\n if (activeKeyRead !== read) return;\n activeKeyRead = undefined;\n keyInputActive = false;\n read.cleanup();\n reject(abortError(signal?.reason));\n wakeInputWaiters();\n };\n const read: KeyRead = {\n resolve,\n reject,\n cleanup: () => signal?.removeEventListener(\"abort\", onAbort),\n };\n activeKeyRead = read;\n keyInputActive = true;\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n },\n renderView(text) {\n if (!interactive) {\n output.write(text);\n return;\n }\n if (!viewActive) {\n output.write(\"\\x1b[?1049h\");\n viewActive = true;\n }\n output.write(`\\x1b[2J\\x1b[H${text}`);\n },\n closeView() {\n if (!viewActive) return;\n output.write(\"\\x1b[?1049l\");\n viewActive = false;\n wakeInputWaiters();\n },\n addHistory(value) {\n if (!interactive) return;\n const entry = value.replace(/\\r?\\n/gu, \" \").trim();\n if (entry === \"\") return;\n const existing = history.indexOf(entry);\n if (existing >= 0) history.splice(existing, 1);\n history.unshift(entry);\n if (history.length > historySize) {\n history.splice(historySize);\n }\n },\n write(text) {\n if (!interactive || activePrompt === undefined) {\n output.write(text);\n return;\n }\n\n eraseSuggestionRows();\n const line = passwordActive ? \"\" : readline.line;\n const position = passwordActive ? 0 : readline.cursor;\n clearLine(output, 0);\n cursorTo(output, 0);\n const update = text.replace(/^\\r?\\n/u, \"\");\n output.write(update);\n if (update !== \"\" && !update.endsWith(\"\\n\")) output.write(\"\\n\");\n output.write(`${activePrompt.replace(/^\\r?\\n/u, \"\")}${line}`);\n const trailing = stringWidth(line.slice(position));\n if (trailing > 0) moveCursor(output, -trailing, 0);\n drawSuggestionRows();\n },\n onInterrupt(listener) {\n const wrapped = () => {\n if (suppressInterrupt) {\n suppressInterrupt = false;\n return;\n }\n listener();\n };\n interruptListeners.add(wrapped);\n return () => {\n interruptListeners.delete(wrapped);\n };\n },\n async close() {\n closed = true;\n lifetime.abort(new Error(\"Terminal closed\"));\n wakeInputWaiters();\n activeKeyRead?.reject(new Error(\"Terminal closed\"));\n activeKeyRead?.cleanup();\n activeKeyRead = undefined;\n if (viewActive) output.write(\"\\x1b[?1049l\");\n if (interactive) input.removeListener(\"keypress\", onKeypress);\n readline.close();\n interruptListeners.clear();\n output.removeListener(\"resize\", updateImageSize);\n reports?.pause();\n reports?.removeAllListeners();\n source.removeListener(\"end\", endFilteredInput);\n filtered?.destroy();\n source.unref?.();\n await Promise.all([...suggestionTasks]);\n if (suggestionErrors.length) throw new AggregateError(suggestionErrors, \"Terminal suggestion processing failed\");\n },\n };\n}\n\ninterface NodeKey {\n readonly name?: string;\n readonly ctrl?: boolean;\n readonly meta?: boolean;\n readonly shift?: boolean;\n}\n\ninterface KeyRead {\n readonly resolve: (stroke: KeyStroke) => void;\n readonly reject: (error: Error) => void;\n readonly cleanup: () => void;\n}\n\nfunction toKeyStroke(value: string | undefined, key: NodeKey): KeyStroke {\n const name = key.name ?? value ?? \"unknown\";\n const standaloneEscape = name === \"escape\";\n const printable = value !== undefined && value.length > 0 && key.ctrl !== true && key.meta !== true;\n return keyStroke(name, {\n ctrl: key.ctrl === true,\n alt: key.meta === true && !standaloneEscape,\n shift: key.shift === true,\n ...(printable ? { text: value } : {}),\n });\n}\n\nfunction commonSuggestionPrefix(input: string, suggestions: readonly TerminalSuggestion[]): string | undefined {\n const values = suggestions.map((suggestion) => suggestion.value).filter((value) => value.startsWith(input));\n const first = values[0];\n if (first === undefined) return undefined;\n let length = first.length;\n for (const value of values.slice(1)) {\n length = Math.min(length, value.length);\n let index = input.length;\n while (index < length && first[index] === value[index]) index += 1;\n length = index;\n }\n return first.slice(0, length);\n}\n\nfunction abortError(reason: unknown): Error {\n const error = new Error(typeof reason === \"string\" ? reason : \"The operation was aborted\");\n error.name = \"AbortError\";\n return error;\n}\n\nfunction formatSuggestion(suggestion: TerminalSuggestion, columns: number | undefined): string {\n const label = singleLine(suggestion.label ?? suggestion.value);\n const description = suggestion.description === undefined ? \"\" : ` ${singleLine(suggestion.description)}`;\n const value = ` ${label}${description}`;\n const limit = columns === undefined ? 120 : Math.max(20, columns - 1);\n return value.length <= limit ? value : `${value.slice(0, limit - 1)}\u2026`;\n}\n\nfunction singleLine(value: string): string {\n return value.replace(/\\s+/gu, \" \").trim();\n}\n", "/** @experimental */\nexport interface KeyStroke {\n readonly key: string;\n readonly ctrl: boolean;\n readonly alt: boolean;\n readonly shift: boolean;\n readonly meta: boolean;\n /** Printable text represented by this key, when available. */\n readonly text?: string;\n}\n\n/** @experimental */\nexport interface KeyBindingDefinition {\n readonly context: string;\n readonly keys: string;\n readonly action: string;\n}\n\n/** @experimental */\nexport interface KeymapOptions {\n readonly leader?: string;\n /** null \u8868\u793A\u7B49\u5F85\u540E\u7EED\u6309\u952E\uFF0C\u76F4\u5230\u5339\u914D\u7ED3\u675F\u6216\u8C03\u7528 reset\u3002 */\n readonly chordTimeoutMs?: number | null;\n /** Reject bindings which refer to actions outside this registry. */\n readonly actions?: readonly string[];\n}\n\n/** @experimental */\nexport type KeymapResult =\n | { readonly type: \"action\"; readonly action: string }\n | {\n readonly type: \"pending\";\n readonly completions: readonly string[];\n }\n | { readonly type: \"unmatched\" };\n\ninterface CompiledBinding extends KeyBindingDefinition {\n readonly sequence: readonly KeyStroke[];\n}\n\ninterface PendingSequence {\n readonly sequence: readonly KeyStroke[];\n readonly expiresAt: number;\n readonly contexts: readonly string[];\n}\n\n/** @experimental */\nexport class Keymap {\n private readonly bindings: readonly CompiledBinding[];\n private readonly chordTimeoutMs: number;\n private pending: PendingSequence | undefined;\n\n constructor(definitions: readonly KeyBindingDefinition[], options: KeymapOptions = {}) {\n const chordTimeoutMs = options.chordTimeoutMs === null ? Infinity : (options.chordTimeoutMs ?? 1_000);\n if (options.chordTimeoutMs !== null && (!Number.isFinite(chordTimeoutMs) || chordTimeoutMs <= 0)) {\n throw new RangeError(\"chordTimeoutMs must be a positive finite number\");\n }\n const actions = options.actions === undefined ? undefined : new Set(options.actions);\n const leader = options.leader ?? \"ctrl+x\";\n this.bindings = definitions.map((definition) => {\n if (definition.context.trim() === \"\") {\n throw new Error(\"Keybinding context cannot be empty\");\n }\n if (definition.action.trim() === \"\") {\n throw new Error(\"Keybinding action cannot be empty\");\n }\n if (actions !== undefined && !actions.has(definition.action)) {\n throw new Error(`Unknown keybinding action: ${definition.action}`);\n }\n return {\n ...definition,\n sequence: parseKeySequence(definition.keys, { leader }),\n };\n });\n validateBindings(this.bindings);\n this.chordTimeoutMs = chordTimeoutMs;\n }\n\n resolve(stroke: KeyStroke, contexts: readonly string[], now = Date.now()): KeymapResult {\n const normalized = normalizeKeyStroke(stroke);\n const previous =\n this.pending !== undefined &&\n this.pending.expiresAt > now &&\n this.pending.contexts.length === contexts.length &&\n this.pending.contexts.every((context, index) => context === contexts[index])\n ? this.pending.sequence\n : [];\n this.pending = undefined;\n const sequence = [...previous, normalized];\n const result = this.resolveSequence(sequence, contexts, now);\n if (result.type !== \"unmatched\" || previous.length === 0) return result;\n return this.resolveSequence([normalized], contexts, now);\n }\n\n reset(): void {\n this.pending = undefined;\n }\n\n keysForAction(action: string, context?: string): readonly string[] {\n return this.bindings\n .filter((binding) => binding.action === action && (context === undefined || binding.context === context))\n .map((binding) => formatKeySequence(binding.sequence));\n }\n\n private resolveSequence(sequence: readonly KeyStroke[], contexts: readonly string[], now: number): KeymapResult {\n for (let index = contexts.length - 1; index >= 0; index--) {\n const context = contexts[index]!;\n const candidates = this.bindings.filter(\n (binding) => binding.context === context && isPrefix(sequence, binding.sequence),\n );\n if (candidates.length === 0) continue;\n\n const exact = candidates.find((binding) => binding.sequence.length === sequence.length);\n if (exact !== undefined) {\n return { type: \"action\", action: exact.action };\n }\n\n this.pending = {\n sequence: [...sequence],\n expiresAt: now + this.chordTimeoutMs,\n contexts: [...contexts],\n };\n return {\n type: \"pending\",\n completions: candidates.map((binding) => formatKeySequence(binding.sequence.slice(sequence.length))),\n };\n }\n return { type: \"unmatched\" };\n }\n}\n\n/** @experimental */\nexport function mergeKeyBindings(\n defaults: readonly KeyBindingDefinition[],\n overrides: readonly KeyBindingDefinition[] = [],\n options: { readonly leader?: string } = {},\n): readonly KeyBindingDefinition[] {\n const replaced = new Set(overrides.map((binding) => `${binding.context}\\0${binding.action}`));\n const keyId = (binding: KeyBindingDefinition): string =>\n `${binding.context}\\0${formatKeySequence(parseKeySequence(binding.keys, options))}`;\n const rebound = new Set(overrides.map(keyId));\n return [\n ...defaults.filter(\n (binding) => !replaced.has(`${binding.context}\\0${binding.action}`) && !rebound.has(keyId(binding)),\n ),\n ...overrides,\n ];\n}\n\n/** @experimental */\nexport function keyStroke(key: string, modifiers: Partial<Omit<KeyStroke, \"key\">> = {}): KeyStroke {\n return normalizeKeyStroke({\n key,\n ctrl: modifiers.ctrl ?? false,\n alt: modifiers.alt ?? false,\n shift: modifiers.shift ?? false,\n meta: modifiers.meta ?? false,\n ...(modifiers.text === undefined ? {} : { text: modifiers.text }),\n });\n}\n\n/** @experimental */\nexport function normalizeKeyStroke(stroke: KeyStroke): KeyStroke {\n const text = stroke.text;\n return {\n key: normalizeKeyName(stroke.key),\n ctrl: stroke.ctrl,\n alt: stroke.alt,\n shift: stroke.shift,\n meta: stroke.meta,\n ...(text === undefined ? {} : { text }),\n };\n}\n\n/** @experimental */\nexport function parseKeySequence(source: string, options: { readonly leader?: string } = {}): readonly KeyStroke[] {\n const tokens = source.trim().split(/\\s+/u).filter(Boolean);\n if (tokens.length === 0) throw new Error(\"Key sequence cannot be empty\");\n const result: KeyStroke[] = [];\n for (const token of tokens) {\n if (token.toLowerCase() === \"<leader>\") {\n const leader = options.leader ?? \"ctrl+x\";\n if (leader.toLowerCase().includes(\"<leader>\")) {\n throw new Error(\"Leader cannot refer to itself\");\n }\n result.push(...parseKeySequence(leader));\n } else {\n result.push(parseKeyToken(token));\n }\n }\n return result;\n}\n\n/** @experimental */\nexport function formatKeySequence(sequence: readonly KeyStroke[]): string {\n return sequence.map(formatKeyStroke).join(\" \");\n}\n\n/** @experimental */\nexport function formatKeyStroke(stroke: KeyStroke): string {\n return [\n ...(stroke.ctrl ? [\"ctrl\"] : []),\n ...(stroke.alt ? [\"alt\"] : []),\n ...(stroke.shift ? [\"shift\"] : []),\n ...(stroke.meta ? [\"meta\"] : []),\n normalizeKeyName(stroke.key),\n ].join(\"+\");\n}\n\nfunction parseKeyToken(token: string): KeyStroke {\n const parts = token.toLowerCase().split(\"+\");\n const key = parts.pop();\n if (key === undefined || key === \"\") {\n throw new Error(`Invalid keybinding token: ${token}`);\n }\n let ctrl = false;\n let alt = false;\n let shift = false;\n let meta = false;\n for (const modifier of parts) {\n switch (modifier) {\n case \"ctrl\":\n case \"control\":\n ctrl = true;\n break;\n case \"alt\":\n case \"option\":\n alt = true;\n break;\n case \"shift\":\n shift = true;\n break;\n case \"meta\":\n case \"cmd\":\n case \"command\":\n meta = true;\n break;\n default:\n throw new Error(`Unknown key modifier \"${modifier}\" in ${token}`);\n }\n }\n return { key: normalizeKeyName(key), ctrl, alt, shift, meta };\n}\n\nfunction normalizeKeyName(key: string): string {\n const normalized = key.toLowerCase();\n switch (normalized) {\n case \"return\":\n return \"enter\";\n case \"esc\":\n return \"escape\";\n case \"pgup\":\n return \"pageup\";\n case \"pgdn\":\n return \"pagedown\";\n case \" \":\n return \"space\";\n default:\n return normalized;\n }\n}\n\nfunction validateBindings(bindings: readonly CompiledBinding[]): void {\n for (let leftIndex = 0; leftIndex < bindings.length; leftIndex++) {\n const left = bindings[leftIndex]!;\n for (let rightIndex = leftIndex + 1; rightIndex < bindings.length; rightIndex++) {\n const right = bindings[rightIndex]!;\n if (left.context !== right.context) continue;\n if (sameSequence(left.sequence, right.sequence)) {\n throw new Error(`Duplicate keybinding in ${left.context}: ${left.keys}`);\n }\n if (isPrefix(left.sequence, right.sequence) || isPrefix(right.sequence, left.sequence)) {\n throw new Error(`Ambiguous keybinding prefix in ${left.context}: ` + `${left.keys} and ${right.keys}`);\n }\n }\n }\n}\n\nfunction sameSequence(left: readonly KeyStroke[], right: readonly KeyStroke[]): boolean {\n return left.length === right.length && isPrefix(left, right);\n}\n\nfunction isPrefix(prefix: readonly KeyStroke[], value: readonly KeyStroke[]): boolean {\n return prefix.length <= value.length && prefix.every((stroke, index) => sameStroke(stroke, value[index]!));\n}\n\nfunction sameStroke(left: KeyStroke, right: KeyStroke): boolean {\n return (\n left.key === right.key &&\n left.ctrl === right.ctrl &&\n left.alt === right.alt &&\n left.shift === right.shift &&\n left.meta === right.meta\n );\n}\n", "import AnsiParser from \"node-ansiparser\";\nimport { createSupportsTerminalGraphics } from \"supports-terminal-graphics\";\n\n/** @experimental */\nexport type ImageProtocol = \"kitty\" | \"iterm2\" | \"sixel\" | \"none\";\n\n/** @experimental */\nexport function terminalImageProtocol(output: { readonly isTTY?: boolean } = process.stdout): ImageProtocol {\n const setting = process.env.MAY_IMAGE_PROTOCOL;\n if (setting !== undefined && ![\"auto\", \"kitty\", \"iterm2\", \"sixel\", \"none\"].includes(setting))\n throw new Error(\"MAY_IMAGE_PROTOCOL must be auto, kitty, iterm2, sixel or none\");\n if (setting && setting !== \"auto\") return setting as ImageProtocol;\n if (!output.isTTY || process.env.TMUX || process.env.STY) return \"none\";\n const graphics = createSupportsTerminalGraphics(output);\n return graphics.iterm2\n ? \"iterm2\"\n : graphics.kitty\n ? \"kitty\"\n : graphics.sixel || process.env.WT_SESSION\n ? \"sixel\"\n : \"none\";\n}\n\n/** @experimental */\nexport interface TerminalCellSize {\n readonly width: number;\n readonly height: number;\n}\n\n/**\n * \u63A5\u6536 tty-events \u5206\u79BB\u7684\u7EC8\u7AEF\u54CD\u5E94\uFF0C\u4FDD\u6301\u952E\u76D8\u8F93\u5165\u72EC\u7ACB\u3002\n * @experimental\n */\nexport class TerminalImageSupport {\n readonly protocol: ImageProtocol;\n private measured: TerminalCellSize | undefined;\n private supported: boolean;\n private consumed = false;\n private readonly listeners = new Set<() => void>();\n private readonly parser = new AnsiParser({\n inst_c: (collected, params, flag) => {\n if (collected === \"?\" && flag === \"c\") {\n this.consumed = true;\n this.supported = this.forced || params.slice(1).includes(4);\n this.changed();\n } else if (collected === \"\" && flag === \"t\" && params[0] === 6 && params.length === 3) {\n this.consumed = true;\n const [, height, width] = params;\n if (!width || !height || width > 256 || height > 512) throw new RangeError(\"Invalid terminal cell pixel size\");\n this.measured = { width, height };\n this.changed();\n }\n },\n });\n\n constructor(\n private readonly output: { write(value: string): unknown; readonly isTTY?: boolean },\n private readonly forced = process.env.MAY_IMAGE_PROTOCOL === \"sixel\",\n ) {\n this.protocol = terminalImageProtocol(output);\n this.supported = forced;\n }\n\n get cellSize(): TerminalCellSize | undefined {\n return this.supported ? this.measured : undefined;\n }\n\n query(): void {\n if (this.protocol !== \"sixel\" || !this.output.isTTY) return;\n this.measured = undefined;\n this.changed();\n this.output.write(\"\\x1b[c\\x1b[16t\");\n }\n\n consume(sequence: string): boolean {\n if (this.protocol !== \"sixel\") return false;\n this.consumed = false;\n this.parser.reset();\n this.parser.parse(sequence);\n return this.consumed;\n }\n\n onChange(listener: () => void): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n async ready(): Promise<void> {\n if (this.protocol !== \"sixel\" || this.cellSize) return;\n await new Promise<void>((resolve) => {\n const finish = () => {\n clearTimeout(timer);\n dispose();\n resolve();\n };\n const dispose = this.onChange(() => {\n if (this.cellSize) finish();\n });\n const timer = setTimeout(finish, 300);\n });\n }\n\n private changed(): void {\n for (const listener of this.listeners) listener();\n }\n}\n", "import process from 'node:process';\n\nfunction parseVersion(versionString) {\n\tconst parts = (versionString || '').split('.').map(n => Number.parseInt(n, 10));\n\treturn {\n\t\tmajor: parts[0] || 0,\n\t\tminor: parts[1] || 0,\n\t\tpatch: parts[2] || 0,\n\t};\n}\n\nfunction versionSatisfies(version, minMajor, minMinor = 0, minPatch = 0) {\n\tconst {major, minor, patch} = version;\n\treturn major > minMajor\n\t\t|| (major === minMajor && minor > minMinor)\n\t\t|| (major === minMajor && minor === minMinor && patch >= minPatch);\n}\n\nfunction getKonsoleVersion(env) {\n\tconst version = Number.parseInt(env.KONSOLE_VERSION, 10);\n\t// Konsole 22.04 (encoded as 220400) added graphics support\n\treturn Number.isNaN(version) ? 0 : version;\n}\n\nfunction isWezTerm(env) {\n\treturn Boolean(env.WEZTERM_PANE || env.WEZTERM_UNIX_SOCKET);\n}\n\nfunction isWezTermTerminal(env) {\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\tconst lcTerminal = (env.LC_TERMINAL || '').toLowerCase();\n\treturn isWezTerm(env) || termProgram === 'wezterm' || lcTerminal === 'wezterm';\n}\n\nfunction wezTermVersionSatisfies(env, minMajor, minMinor = 0, minPatch = 0) {\n\tif (!isWezTermTerminal(env)) {\n\t\treturn false;\n\t}\n\n\tif (!env.TERM_PROGRAM_VERSION) {\n\t\treturn true;\n\t}\n\n\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\treturn versionSatisfies(version, minMajor, minMinor, minPatch);\n}\n\nfunction supportsKitty(stream, env) {\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn true;\n\t}\n\n\t// Strong indicators for specific terminals\n\tif (env.KITTY_WINDOW_ID || env.KITTY_PID) {\n\t\treturn true;\n\t}\n\n\tif (env.GHOSTTY_RESOURCES_DIR) {\n\t\treturn true;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\t// Terminals with full Kitty protocol support\n\tif (['kitty', 'ghostty', 'rio', 'warpterminal'].includes(termProgram)) {\n\t\treturn true;\n\t}\n\n\t// ITerm2 requires version 3.6+ for Kitty protocol\n\tif (termProgram === 'iterm.app') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 3, 6);\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// Check TERM for known patterns\n\tconst term = env.TERM || '';\n\tif (/kitty/i.test(term) || term === 'xterm-ghostty') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction supportsIterm2(stream, env) {\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn wezTermVersionSatisfies(env, 20_220_319);\n\t}\n\n\t// ITerm2 requires version 2.9.20150512+\n\tif (termProgram === 'iterm.app') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 2, 9, 20_150_512);\n\t}\n\n\t// VS Code requires version 1.80+\n\tif (termProgram === 'vscode') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 1, 80);\n\t}\n\n\t// Rio requires version 0.1.13+\n\tif (termProgram === 'rio') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 0, 1, 13);\n\t}\n\n\t// Terminals with full iTerm2 protocol support\n\tif (termProgram === 'mintty') {\n\t\treturn true;\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// LC_TERMINAL fallback (SSH-friendly)\n\tconst lcTerminal = (env.LC_TERMINAL || '').toLowerCase();\n\tif (lcTerminal === 'iterm2') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction supportsSixel(stream, env) {\n\t// Sixel detection via environment variables is limited.\n\t// Many terminals (xterm, foot, etc.) support Sixel but don't set TERM_PROGRAM.\n\t// For accurate detection, a DA1 query would be needed.\n\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tconst termProgram = (env.TERM_PROGRAM || '').toLowerCase();\n\n\tif (isWezTermTerminal(env)) {\n\t\treturn wezTermVersionSatisfies(env, 20_200_620);\n\t}\n\n\t// VS Code requires version 1.80+\n\tif (termProgram === 'vscode') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 1, 80);\n\t}\n\n\t// Rio requires version 0.1.12+\n\tif (termProgram === 'rio') {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\t\treturn versionSatisfies(version, 0, 1, 12);\n\t}\n\n\t// Terminals with full Sixel support\n\t// Note: foot also supports Sixel but doesn't set TERM_PROGRAM\n\tif (termProgram === 'mintty') {\n\t\treturn true;\n\t}\n\n\t// Konsole requires version 22.04+\n\tif (termProgram === 'konsole' || env.KONSOLE_VERSION) {\n\t\treturn getKonsoleVersion(env) >= 220_400;\n\t}\n\n\t// Check TERM for mlterm (supports Sixel from version 3.1.9+)\n\tconst term = env.TERM || '';\n\tif (/^mlterm/i.test(term)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function createSupportsTerminalGraphics(stream) {\n\tconst {env} = process;\n\n\treturn {\n\t\tkitty: supportsKitty(stream, env),\n\t\titerm2: supportsIterm2(stream, env),\n\t\tsixel: supportsSixel(stream, env),\n\t};\n}\n\nconst supportsTerminalGraphics = {\n\tstdout: createSupportsTerminalGraphics(process.stdout),\n\tstderr: createSupportsTerminalGraphics(process.stderr),\n};\n\nexport default supportsTerminalGraphics;\n"],
5
+ "mappings": "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,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM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",
6
6
  "names": ["e", "t", "s", "i", "a", "n", "r", "l", "u", "AnsiParser", "emojiRegex", "process", "process", "AnsiParser", "TerminalEvents"]
7
7
  }