vlt 0.0.0-3 → 0.0.0-5

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 (125) hide show
  1. package/README.md +2 -1
  2. package/package.json +17 -10
  3. package/postinstall.cjs +56 -0
  4. package/vlix +25 -0
  5. package/vlr +25 -0
  6. package/vlrx +25 -0
  7. package/vlt +25 -0
  8. package/vlx +25 -0
  9. package/cache-unzip-src-unzip.js +0 -7896
  10. package/cache-unzip-src-unzip.js.map +0 -7
  11. package/chunk-227OF2U2.js +0 -1183
  12. package/chunk-227OF2U2.js.map +0 -7
  13. package/chunk-3HXIYJS2.js +0 -54
  14. package/chunk-3HXIYJS2.js.map +0 -7
  15. package/chunk-AA6MVXJX.js +0 -19823
  16. package/chunk-AA6MVXJX.js.map +0 -7
  17. package/chunk-BCK4ZGNG.js +0 -41
  18. package/chunk-BCK4ZGNG.js.map +0 -7
  19. package/chunk-DH36SF3E.js +0 -35
  20. package/chunk-DH36SF3E.js.map +0 -7
  21. package/chunk-FNKWJ7AZ.js +0 -1379
  22. package/chunk-FNKWJ7AZ.js.map +0 -7
  23. package/chunk-H77UDCL3.js +0 -9820
  24. package/chunk-H77UDCL3.js.map +0 -7
  25. package/chunk-HL76E44L.js +0 -73
  26. package/chunk-HL76E44L.js.map +0 -7
  27. package/chunk-IN7DEH7F.js +0 -44
  28. package/chunk-IN7DEH7F.js.map +0 -7
  29. package/chunk-JLP2QDXQ.js +0 -1137
  30. package/chunk-JLP2QDXQ.js.map +0 -7
  31. package/chunk-JMGSFQ32.js +0 -969
  32. package/chunk-JMGSFQ32.js.map +0 -7
  33. package/chunk-JQRUGUZ3.js +0 -512
  34. package/chunk-JQRUGUZ3.js.map +0 -7
  35. package/chunk-K2BYYPM7.js +0 -8656
  36. package/chunk-K2BYYPM7.js.map +0 -7
  37. package/chunk-LNUDEBGP.js +0 -2071
  38. package/chunk-LNUDEBGP.js.map +0 -7
  39. package/chunk-MV5ZQ3LW.js +0 -1105
  40. package/chunk-MV5ZQ3LW.js.map +0 -7
  41. package/chunk-O7CDQZDW.js +0 -5234
  42. package/chunk-O7CDQZDW.js.map +0 -7
  43. package/chunk-OFW7MWFP.js +0 -82
  44. package/chunk-OFW7MWFP.js.map +0 -7
  45. package/chunk-PGDJ2ZZ6.js +0 -4810
  46. package/chunk-PGDJ2ZZ6.js.map +0 -7
  47. package/chunk-POVPHE2F.js +0 -1864
  48. package/chunk-POVPHE2F.js.map +0 -7
  49. package/chunk-PTVPYZHU.js +0 -72
  50. package/chunk-PTVPYZHU.js.map +0 -7
  51. package/chunk-SXBMMXTY.js +0 -11837
  52. package/chunk-SXBMMXTY.js.map +0 -7
  53. package/chunk-UZZ72UON.js +0 -152
  54. package/chunk-UZZ72UON.js.map +0 -7
  55. package/chunk-V7KRP7IO.js +0 -481
  56. package/chunk-V7KRP7IO.js.map +0 -7
  57. package/chunk-WVNUD273.js +0 -83
  58. package/chunk-WVNUD273.js.map +0 -7
  59. package/chunk-WYPE3MV4.js +0 -62
  60. package/chunk-WYPE3MV4.js.map +0 -7
  61. package/chunk-ZRNJWPYC.js +0 -37
  62. package/chunk-ZRNJWPYC.js.map +0 -7
  63. package/cli-package.json +0 -107
  64. package/config-3QQHUYLI.js +0 -179
  65. package/config-3QQHUYLI.js.map +0 -7
  66. package/devtools-5BBQJTDW.js +0 -16682
  67. package/devtools-5BBQJTDW.js.map +0 -7
  68. package/exec-C6GK336U.js +0 -50
  69. package/exec-C6GK336U.js.map +0 -7
  70. package/gui-IQ4M4K5X.js +0 -46
  71. package/gui-IQ4M4K5X.js.map +0 -7
  72. package/gui-assets/favicon.ico +0 -0
  73. package/gui-assets/fonts/geist-mono.ttf +0 -0
  74. package/gui-assets/fonts/inter.ttf +0 -0
  75. package/gui-assets/images/folder.png +0 -0
  76. package/gui-assets/index.html +0 -34
  77. package/gui-assets/index.js +0 -1549
  78. package/gui-assets/index.js.map +0 -7
  79. package/gui-assets/main.css +0 -1
  80. package/help-R6TSKVEA.js +0 -25
  81. package/help-R6TSKVEA.js.map +0 -7
  82. package/init-UTJGYULC.js +0 -25
  83. package/init-UTJGYULC.js.map +0 -7
  84. package/install-5XDTGLAU.js +0 -56
  85. package/install-5XDTGLAU.js.map +0 -7
  86. package/install-exec-VMPN3JE7.js +0 -28
  87. package/install-exec-VMPN3JE7.js.map +0 -7
  88. package/list-Q7IANZ3I.js +0 -129
  89. package/list-Q7IANZ3I.js.map +0 -7
  90. package/login-VHJEIRVU.js +0 -36
  91. package/login-VHJEIRVU.js.map +0 -7
  92. package/logout-5KMCSSR4.js +0 -36
  93. package/logout-5KMCSSR4.js.map +0 -7
  94. package/pkg-WYFDWETL.js +0 -364
  95. package/pkg-WYFDWETL.js.map +0 -7
  96. package/query-KP4F5D2Y.js +0 -117
  97. package/query-KP4F5D2Y.js.map +0 -7
  98. package/registry-client-package.json +0 -85
  99. package/reporter-LFGXWL6N.js +0 -18
  100. package/reporter-LFGXWL6N.js.map +0 -7
  101. package/rollback-remove-src-remove.js +0 -7398
  102. package/rollback-remove-src-remove.js.map +0 -7
  103. package/run-XNDZH72D.js +0 -68
  104. package/run-XNDZH72D.js.map +0 -7
  105. package/run-exec-NXA33NXJ.js +0 -41
  106. package/run-exec-NXA33NXJ.js.map +0 -7
  107. package/source-JWPG6PR3.js +0 -33
  108. package/source-JWPG6PR3.js.map +0 -7
  109. package/token-6IJNGEMI.js +0 -86
  110. package/token-6IJNGEMI.js.map +0 -7
  111. package/uninstall-MI7NFD27.js +0 -45
  112. package/uninstall-MI7NFD27.js.map +0 -7
  113. package/vlix.js +0 -25
  114. package/vlix.js.map +0 -7
  115. package/vlr.js +0 -25
  116. package/vlr.js.map +0 -7
  117. package/vlrx.js +0 -25
  118. package/vlrx.js.map +0 -7
  119. package/vlt.js +0 -24
  120. package/vlt.js.map +0 -7
  121. package/vlx.js +0 -25
  122. package/vlx.js.map +0 -7
  123. package/whoami-3IEXJF3U.js +0 -46
  124. package/whoami-3IEXJF3U.js.map +0 -7
  125. package/yoga.wasm +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../node_modules/.pnpm/emoji-regex@10.3.0/node_modules/emoji-regex/index.js", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/fix-emoji.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/default-colors.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/hex-to-rgb.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/rgb-to-hex.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/dim-color.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/html-escape.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/named.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/xterm.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/style.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/block.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/terminal.ts", "../../../node_modules/.pnpm/ansi-to-pre@1.0.6/node_modules/ansi-to-pre/src/index.ts", "../../../src/vlt/src/exec-command.ts"],
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](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n", "// Handling emoji is hard.\n// because many/most emoji are 2-character width, give or take,\n// but have bizarre line-height and spacing in most fonts, replace emojis\n// in the html string with an absolute-position wrapper and 2 spaces for\n// them to float above.\n// *Some* emojis are 1 character wide, so this ends up being a bit wrong\n// sometimes, but better too much space than have things be cut off or\n// overlapping, which looks broken.\n// Due to limitations of the emoji-regex, some complex emojis will render\n// as their constituent parts rather than the conjoined glyph.\n\nimport emojiRegex from 'emoji-regex'\nconst EMOJI_RE = emojiRegex()\nconst replaceWide = (c: string) => replaceNarrow(c) + ' '\nconst replaceNarrow = (c: string) =>\n `<span style=\"position:absolute;line-height:1;margin-top:0.3ex\">${c}</span> `\nexport const fixEmoji = (s: string): string => {\n return s\n .replace(/[\\u2500-\\u25FF]/g, replaceNarrow)\n .replace(EMOJI_RE, replaceWide)\n}\n", "let COLOR = '#eeeeee'\nlet BACKGROUND = '#222222'\n\nexport const defaultColor = (s?: string) => {\n if (s) COLOR = s\n return COLOR\n}\n\nexport const defaultBackground = (s?: string) => {\n if (s) BACKGROUND = s\n return BACKGROUND\n}\n", "export const hexToRgb = (c: string): [number, number, number] => {\n c = c.replace(/^#/, '')\n if (c.length === 3) {\n const r = c.charAt(0)\n const g = c.charAt(1)\n const b = c.charAt(2)\n return hexToRgb(`${r}${r}${g}${g}${b}${b}`)\n }\n if (c.length !== 6) {\n throw new Error('invalid hex string: ' + c)\n }\n const r = parseInt(c.substring(0, 2), 16)\n const g = parseInt(c.substring(2, 4), 16)\n const b = parseInt(c.substring(4, 6), 16)\n if (r !== r || g !== g || b !== b) {\n throw new Error('invalid hex string: ' + c)\n }\n return [r, g, b]\n}\n", "export const rgbToHex = ([r, g, b]: [number, number, number]): string => {\n if (r !== r || g !== g || b !== b) {\n throw new Error('invalid RGB: ' + [r, g, b].join(','))\n }\n return `#${\n Math.max(0, Math.min(r, 255)).toString(16).padStart(2, '0') +\n Math.max(0, Math.min(g, 255)).toString(16).padStart(2, '0') +\n Math.max(0, Math.min(b, 255)).toString(16).padStart(2, '0')\n }`\n}\n", "import { hexToRgb } from './hex-to-rgb.js'\nimport { rgbToHex } from './rgb-to-hex.js'\n\nconst DIMLEVEL = 0.75\nexport const dimColor = (c: string): string =>\n rgbToHex(\n hexToRgb(c).map(c => Math.floor(c * DIMLEVEL)) as [\n number,\n number,\n number,\n ],\n )\n", "export const htmlEscape = (s: string): string =>\n s\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n", "export type Names =\n | 'black'\n | 'red'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'magenta'\n | 'cyan'\n | 'white'\n\nexport type NameCodes = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7\n\nexport const nameCodes: { [name in Names]: NameCodes } = {\n black: 0b000,\n red: 0b001,\n green: 0b010,\n yellow: 0b011,\n blue: 0b100,\n magenta: 0b101,\n cyan: 0b110,\n white: 0b111,\n}\n\nexport const codeNames: ReadonlyArray<Names> = [\n 'black',\n 'red',\n 'green',\n 'yellow',\n 'blue',\n 'magenta',\n 'cyan',\n 'white',\n] as const\n\nexport const namedColors: Omit<string[], number> & {\n 0: string\n 1: string\n 2: string\n 3: string\n 4: string\n 5: string\n 6: string\n 7: string\n} = [\n '#000000',\n '#ff0000',\n '#00a000',\n '#e0e000',\n '#0040e0',\n '#e000e0',\n '#00b0b0',\n '#e0e0e0',\n]\n\nexport const namedBrightColors: Omit<string[], number> & {\n 0: string\n 1: string\n 2: string\n 3: string\n 4: string\n 5: string\n 6: string\n 7: string\n} = [\n '#404040',\n '#ff3030',\n '#00ff00',\n '#ffff00',\n '#0080ff',\n '#ff33ff',\n '#00ffff',\n '#ffffff',\n]\n", "import { NameCodes, namedBrightColors, namedColors } from './named.js'\n\nconst hex = (n: number) => n.toString(16).padStart(2, '0')\n\nconst colors = [\n ...(function* () {\n for (let red = 0; red < 6; red++) {\n for (let green = 0; green < 6; green++) {\n for (let blue = 0; blue < 6; blue++) {\n const r = red ? red * 40 + 55 : 0\n const g = green ? green * 40 + 55 : 0\n const b = blue ? blue * 40 + 55 : 0\n yield `#${hex(r)}${hex(g)}${hex(b)}`\n }\n }\n }\n })(),\n]\n\nconst grays = [\n ...(function* () {\n for (let gray = 0; gray < 24; gray++) {\n const g = gray * 10 + 8\n yield `#${hex(g).repeat(3)}`\n }\n })(),\n]\n\nexport const xtermCode = (n: number) => {\n if (n < 8) return namedColors[n as NameCodes]\n if (n < 16) return namedBrightColors[(n - 8) as NameCodes]\n if (n < Math.pow(6, 3)) return colors[n - 16] as string\n if (n < 256) return grays[n - 232] as string\n}\n", "// this object is deposited into the style buffer in the Terminal\n// every time a character is written to the character buffer.\n// Handles all parsing of \\x1b[...m ANSI codes and conversion to CSS.\nimport { defaultBackground, defaultColor } from './default-colors.js'\nimport { dimColor } from './dim-color.js'\nimport { hexToRgb } from './hex-to-rgb.js'\nimport { htmlEscape } from './html-escape.js'\nimport {\n NameCodes,\n nameCodes,\n namedBrightColors,\n namedColors,\n Names,\n} from './named.js'\nimport { rgbToHex } from './rgb-to-hex.js'\nimport { xtermCode } from './xterm.js'\n\nconst ALL_END = '0'\nconst BG_END = '49'\nconst BG_START = '48'\nconst BOLD_END = '22'\nconst BOLD_START = '1'\nconst DIM_START = '2'\n// DIM_END is the same as BOLD_END because it's really \"font-weight:normal\"\n// In practice, dim modifies color, not font-weight, since modern screens\n// have colors, and most terminal fonts don't distinguish font weights other\n// than normal and bold.\nconst FG_END = '39'\nconst FG_START = '38'\nconst INV_END = '27'\nconst INV_START = '7'\nconst ITALIC_END = '23'\nconst ITALIC_START = '3'\nconst OVER_END = '55'\nconst OVER_START = '53'\nconst STRIKE_END = '29'\nconst STRIKE_START = '9'\nconst UNDERLINE_END = '24'\nconst UNDERLINE_START = '4'\nconst UNDERLINE_START_2 = '21' // WHYYYYYY\n\nconst NAMED_RE = /^(3|4|9|10)([0-7])$/\nconst NAMED_FG = '3'\nconst NAMED_BG = '4'\nconst NAMED_FG_BRIGHT = '9'\nconst NAMED_BG_BRIGHT = '10'\n\n// verifies that the style code is something that a Style object can handle,\n// and captures the first code and its parameter.\n// first code: $1\n// href: $2\n// styles: $3\nconst VALID_CODE = () =>\n new RegExp(\n '\\x1b\\\\]8;;' + // OSC hyperlink\n '(.*?)' + // href\n '(?:\\x1b|\\x07)' + // ST\n '|' +\n '\\x1b\\\\[' + // style codes\n '([0-9]*(?:;[0-9]*)*)' + // code numbers\n 'm', // end style codes\n 'g',\n )\n\ntype ParsedValidCode =\n | null\n | (RegExpExecArray &\n ([string, string, undefined] | [string, undefined, string]))\n\n/**\n * The properties that can be set on Style objects\n */\nexport type StyleProps = {\n /** may be either a hex string, or a named color */\n background?: string\n bold?: boolean\n /** may be either a hex string, or a named color */\n color?: string\n dim?: boolean\n inverse?: boolean\n italic?: boolean\n overline?: boolean\n strike?: boolean\n underline?: boolean\n /** hyperlink target, must be a valid url or `''` */\n href?: string\n}\n\nconst RESET_STYLE: StyleProps = {\n background: '',\n bold: false,\n color: '',\n dim: false,\n inverse: false,\n italic: false,\n overline: false,\n strike: false,\n underline: false,\n}\nconst RESET_PROPS: StyleProps = {\n ...RESET_STYLE,\n href: '',\n}\n\nconst namedColor = (c: string, bright = false): string => {\n if (!c) return c\n c = c.toLowerCase()\n const code = nameCodes[c as Names]\n if (typeof code === 'number') {\n return (bright ? namedBrightColors[code] : namedColors[code]) as string\n }\n if (c.includes('bright') && !bright) {\n return namedColor(c.replace(/bright/g, ''), true)\n }\n return rgbToHex(hexToRgb(c))\n}\n\nconst SEEN = new Map<string, Style>()\n\n/**\n * An immutable representation of an ANSI style. Used by Terminal and Block\n * to represent the styles in use for text to be printed.\n * If a Style object is created with the same properties as a\n * formerly seen Style object, the same object will be returned.\n *\n * For example:\n *\n * ```js\n * const a = new Style({ bold: true })\n * const b = new Style({ bold: true })\n * assert.equal(a, b) // passes\n * ```\n *\n * This optimization cuts down considerably on object creation,\n * because a Style is created for each styled character written to\n * the Terminal buffer. It also means that Style objects can be\n * compared directly with `===` to test for equivalence.\n */\nexport class Style {\n #css?: string\n\n #background!: string\n #bold!: boolean\n #color!: string\n #dim!: boolean\n #inverse!: boolean\n #italic!: boolean\n #overline!: boolean\n #strike!: boolean\n #underline!: boolean\n #ansi!: string\n #href!: string\n\n constructor(styles: StyleProps | string) {\n const {\n background = '',\n bold = false,\n color = '',\n dim = false,\n inverse = false,\n italic = false,\n overline = false,\n strike = false,\n underline = false,\n href = '',\n } = typeof styles !== 'string' ? styles : Style.ansiProperties(styles)\n\n const ansi = Style.propertiesAnsi({\n background,\n bold,\n color,\n dim,\n inverse,\n italic,\n overline,\n strike,\n underline,\n href,\n })\n\n // same style = same object\n const seen = SEEN.get(ansi)\n if (seen) return seen\n SEEN.set(ansi, this)\n\n this.#ansi = ansi\n this.#background = namedColor(background)\n this.#bold = bold\n this.#color = namedColor(color)\n this.#dim = dim\n this.#inverse = inverse\n this.#italic = italic\n this.#overline = overline\n this.#strike = strike\n this.#underline = underline\n try {\n this.#href = href && String(new URL(href))\n } catch {\n this.#href = ''\n }\n }\n\n /**\n * True if this style is a full reset of all properties.\n */\n get isReset() {\n return this === RESET\n }\n\n /** corresponding ANSI code sequence for this style */\n get ansi() {\n return this.#ansi\n }\n\n /** Convert a set of properties to an ANSI style code */\n static propertiesAnsi(styles: StyleProps): string {\n const {\n background,\n bold,\n color,\n dim,\n inverse,\n italic,\n overline,\n strike,\n underline,\n href = '',\n } = styles\n const codes = [\n // always do a reset at the start\n 0,\n ...(color ? [FG_START, 2, ...hexToRgb(namedColor(color))] : []),\n ...(background ?\n [BG_START, 2, ...hexToRgb(namedColor(background))]\n : []),\n ...(bold ? [BOLD_START] : []),\n ...(dim ? [DIM_START] : []),\n ...(inverse ? [INV_START] : []),\n ...(italic ? [ITALIC_START] : []),\n ...(overline ? [OVER_START] : []),\n ...(strike ? [STRIKE_START] : []),\n ...(underline ? [UNDERLINE_START] : []),\n ]\n return `\\x1b]8;;${href}\\x1b\\\\\\x1b[${codes.join(';')}m`\n }\n\n /**\n * If the input string is a sequence of *only* ANSI style and\n * OSC href codes, returns the array of codes and their parameters.\n * Otherwise, returns false.\n */\n static validStyleCodes(s: string): null | [string, string][] {\n let c = 0\n let m: ParsedValidCode\n const results: [string, string][] = []\n const vc = VALID_CODE()\n while ((m = vc.exec(s) as ParsedValidCode)) {\n if (c !== m.index) {\n return null\n }\n c += m[0].length\n results.push([m[0], m[1] ?? m[2]])\n }\n return results.length === 0 ? null : results\n }\n\n /** a Style object that resets all properties */\n static get RESET() {\n return RESET\n }\n\n /** Convert an ANSI style code to a set of properties */\n static ansiProperties(code: string): StyleProps {\n const codes = Style.validStyleCodes(code)\n if (!codes) {\n throw new Error('invalid ansi style code: ' + JSON.stringify(code))\n }\n const style: StyleProps = {}\n for (const code of codes) {\n if (code[0].startsWith('\\x1b]8;;')) {\n style.href = code[1]\n continue\n }\n const codes = code[1].split(';')\n for (let i = 0; i < codes.length; i++) {\n const c = codes[i] as string\n switch (c) {\n case '':\n case ALL_END:\n Object.assign(style, RESET_STYLE)\n continue\n case BOLD_END:\n style.bold = false\n style.dim = false\n continue\n case ITALIC_END:\n style.italic = false\n continue\n case STRIKE_END:\n style.strike = false\n continue\n case OVER_END:\n style.overline = false\n continue\n case UNDERLINE_END:\n style.underline = false\n continue\n case INV_END:\n style.inverse = false\n continue\n case FG_END:\n style.color = ''\n continue\n case BG_END:\n style.background = ''\n continue\n case BOLD_START:\n style.bold = true\n continue\n case INV_START:\n style.inverse = true\n continue\n case UNDERLINE_START:\n case UNDERLINE_START_2:\n style.underline = true\n continue\n case DIM_START:\n style.dim = true\n continue\n case OVER_START:\n style.overline = true\n continue\n case ITALIC_START:\n style.italic = true\n continue\n case STRIKE_START:\n style.strike = true\n continue\n case BG_START:\n case FG_START: {\n // 2 for rgb, 5 for xterm\n const next = codes[i + 1]\n const prop = c == FG_START ? 'color' : 'background'\n switch (next) {\n case '5':\n const xt = codes[i + 2]\n const code = xt && xtermCode(parseInt(xt, 10))\n if (code) {\n i += 2\n style[prop] = code\n }\n continue\n case '2':\n const sr = codes[i + 2]\n const sg = codes[i + 3]\n const sb = codes[i + 4]\n if (sr && sg && sb) {\n const r = parseInt(sr, 10)\n const g = parseInt(sg, 10)\n const b = parseInt(sb, 10)\n const hex = rgbToHex([r, g, b])\n if (\n r <= 255 &&\n r >= 0 &&\n g <= 255 &&\n g >= 0 &&\n b <= 255 &&\n b >= 0\n ) {\n i += 4\n style[prop] = hex\n }\n }\n }\n continue\n }\n // named color/bg\n default: {\n const m = c.match(NAMED_RE) as\n | null\n | (RegExpMatchArray & [string, string, string])\n if (!m) continue\n const color = parseInt(m[2], 10) as NameCodes\n switch (m[1]) {\n case NAMED_FG:\n style.color = namedColors[color]\n continue\n case NAMED_BG:\n style.background = namedColors[color]\n continue\n case NAMED_FG_BRIGHT:\n style.color = namedBrightColors[color]\n continue\n case NAMED_BG_BRIGHT:\n style.background = namedBrightColors[color]\n continue\n }\n }\n }\n }\n }\n return style\n }\n\n /**\n * Return a new Style with this one plus the updated properties.\n *\n * If a string is provided, must be a valid set of style and OSC hyperlink\n * ANSI code, though unrecognized parameters within that code will be ignored\n * rather than throwing an error.\n */\n update(properties: StyleProps | string): Style {\n const {\n background = this.#background,\n bold = this.#bold,\n color = this.#color,\n dim = this.#dim,\n inverse = this.#inverse,\n italic = this.#italic,\n overline = this.#overline,\n strike = this.#strike,\n underline = this.#underline,\n href = this.#href,\n } =\n typeof properties === 'string' ?\n Style.ansiProperties(properties)\n : properties\n\n return (\n background === this.#background &&\n bold === this.#bold &&\n color === this.#color &&\n dim === this.#dim &&\n inverse === this.#inverse &&\n italic === this.#italic &&\n overline === this.#overline &&\n strike === this.#strike &&\n underline === this.#underline &&\n href === this.#href\n ) ?\n this\n : new Style({\n background,\n bold,\n color,\n dim,\n inverse,\n italic,\n overline,\n strike,\n underline,\n href,\n })\n }\n\n [Symbol.for('nodejs.util.inspect.custom')](\n _: any,\n { colors }: { colors: boolean } = { colors: false },\n ) {\n const { ansi } = this\n return `Style { ${colors ? ansi : ''}${ansi.replace(/\\x1b/g, '^[')}${\n colors ? '\\x1b]8;;\\x1b\\\\\\x1b[m' : ''\n } }`\n }\n\n /**\n * Wrap the input string in the appropriate HTML for this style\n */\n wrap(s: string) {\n const css = this.toString()\n const href = this.#href\n if (!css && !href) return htmlEscape(s)\n const tag = href ? `a` : 'span'\n return `<${tag}${href ? ` href=\"${href}\"` : ''}${\n css ? ` style=\"${css}\"` : ''\n }>${htmlEscape(s)}</${tag}>`\n }\n\n /**\n * Return just the CSS for the styles. Href is not relevant.\n */\n toString() {\n if (this.#css) return this.#css\n let color = this.#inverse ? this.#background : this.#color\n let background = this.#inverse ? this.#color : this.#background\n if (this.#inverse) {\n color ||= defaultBackground()\n background ||= defaultColor()\n }\n // dim text is a different color, unless the background is the same\n // color, and set to something other than default. !?!? hwyyyyyyy idgi\n if (this.#dim && !(color && color === background)) {\n color = dimColor(color || defaultColor())\n }\n const textDecoration = [\n ...(this.#underline ? ['underline'] : []),\n ...(this.#overline ? ['overline'] : []),\n ...(this.#strike ? ['line-through'] : []),\n ].join(' ')\n\n return (this.#css = [\n ...(textDecoration ? [`text-decoration:${textDecoration}`] : []),\n ...(this.#bold ? ['font-weight:bold']\n : this.#dim ? ['font-weight:100']\n : []),\n ...(this.#italic ? ['font-style:italic'] : []),\n ...(color ? [`color:${color}`] : []),\n ...(background ? [`background:${background}`] : []),\n ].join(';'))\n }\n}\n\nconst RESET = new Style(RESET_PROPS)\n", "import { InspectOptions } from 'util'\nimport { fixEmoji } from './fix-emoji.js'\nimport { Style } from './style.js'\n\n/**\n * A representation of a run of text in a given style\n */\nexport class Block {\n #style?: Style\n #text: string\n\n constructor(text: string, style?: Style) {\n this.#text = text\n this.#style = style\n }\n\n [Symbol.for('nodejs.util.inspect.custom')](\n _: any,\n opts: InspectOptions,\n inspect: typeof import('util').inspect,\n ) {\n return `Block {${\n this.#style ? ' ' + inspect(this.#style, opts) : ''\n } ${inspect(this.#text, opts)} }`\n }\n\n /** return the block as a styled `<span>` tag */\n toString() {\n return this.#toString(false)\n }\n\n /** a representation of the block as an ANSI styled string */\n get ansi() {\n return this.#toString(true)\n }\n\n #toString(ansi: boolean) {\n return (\n !this.#text ? ''\n : ansi ? (this.#style ?? Style.RESET).ansi + this.#text\n : fixEmoji((this.#style ?? Style.RESET).wrap(this.#text))\n )\n }\n\n /** append text to the block */\n write(c: string) {\n this.#text += c\n return this\n }\n\n /** the raw text that will be written */\n get text() {\n return this.#text\n }\n\n /** the Style used by this block */\n get style() {\n return this.#style\n }\n}\n", "import { InspectOptions } from 'util'\nimport { Block } from './block.js'\nimport { defaultBackground, defaultColor } from './default-colors.js'\nimport { Style, StyleProps } from './style.js'\nconst CODES_RE =\n /^\\u001b\\[([0-9]*[A-GJKSTg]|([0-9;]*)m|([0-9]*;?[0-9]*)?[Hf]|\\?[0-9]+[hl])/\n\nconst OSC_RE = /^\\u001b\\](.*?)(?:\\u0007|\\u001b\\\\)/\nconst OSC_TITLE = '0;'\nconst OSC_HREF = '8;;'\n\n/**\n * A representation of a virtual \"terminal\" where we write out the character\n * and style information as we parse through the ANSI encoded stream.\n *\n * Important: this is *not* a full-fledged Stream class. You can write to it\n * multiple times, and it will update appropriately, but it does zero buffering\n * or input validation, so writing a partial ANSI code sequence will result in\n * mochibake in the output.\n *\n * The virtual terminal is an infinitely high and wide screen, with no\n * scrollback buffer. So, when `scrollDown(n)` is called (either explicitly, or\n * with a `\\x1b[<n>S` ANSI code), `n` lines are removed from the top of the\n * \"screen\". When `scrollUp(n)` is called (explicitly or via a `\\x1b[<n>T` ANSI\n * code), `n` _empty_ lines are added to the top of the screen; the lines lost\n * to a previous `scrollDown` action are not restored when scrolling up.\n *\n * Also, actions that move the cursor down or to the right, which would on a\n * normal physical terminal be limited to the height/width of the terminal, are\n * unbounded. For example, on an actual terminal, `echo $'\\x1b[1000Bhello'`\n * will print \"hello\" at the bottom of the screen (unless your screen happens\n * to be more than 1000 lines high); in this virtual terminal, it will create\n * 1000 empty lines.\n *\n * Most of the methods (other than `toString()` of course) return `this`,\n * allowing for things like this:\n *\n * ```js\n * console.log(\n * new Terminal()\n * .setStyle({ color: '#ff0000' })\n * .write('hello, ')\n * .down(1)\n * .setStyle({ inverse: true })\n * .write('world!').ansi\n * )\n * ```\n */\nexport class Terminal {\n // note: 0-indexed, but all the ansi codes are 1-indexed\n #cursor: [number, number] = [0, 0]\n // character data\n #text: string[][] = []\n // the style used to write it\n #style: (Style | undefined)[][] = []\n // the current style we use to paint characters to our \"screen\"\n #brush: Style = new Style({})\n\n #title: string = ''\n #blocks?: Block[]\n\n constructor(input?: string) {\n if (input) this.write(input)\n }\n\n /**\n * Set the style that the terminal will use for text writes.\n *\n * If a string, must be a valid `\\x1b[...m` ANSI style code.\n *\n * The styles provided will be appended onto the current style in use, just\n * as they would be by a real terminal if the relevant ANSI code is\n * encountered.\n */\n setStyle(style: string | StyleProps): Terminal {\n this.#brush = this.#brush.update(style)\n return this\n }\n\n /** Move the cursor up `n` lines, stopping at the top. */\n up(n: number): Terminal {\n this.#cursor[0] = Math.max(this.#cursor[0] - n, 0)\n return this\n }\n\n /** Move the cursor down `n` lines, without limit. */\n down(n: number): Terminal {\n // move down\n // in real life, this would be maxed to the size of the screen buffer,\n // but since this virtual terminal is an infinitely high and wide screen,\n // we just let it create new lines.\n this.#cursor[0] += n\n return this\n }\n\n /**\n * Prepend `n` empty lines at the start of the buffer, effectively moving the\n * cursor up as a result.\n */\n scrollUp(n: number): Terminal {\n // add n lines at the start of the buffer\n // leaves the cursor at the same index it was at before, effectively\n // moving it up as a result.\n for (let i = 0; i < n; i++) {\n this.#text.unshift([])\n this.#style.unshift([])\n }\n return this\n }\n\n /**\n * Remove `n` lines from the start of the buffer, effectively moving the\n * cursor down as a result.\n */\n scrollDown(n: number): Terminal {\n // remove lines from the top of the buffer, effectively moving\n // the cursor down as a result.\n // TODO: Maybe it would be good to keep a scrollback buffer,\n // and move lines into/out of there on scroll?\n for (let i = 0; i < n; i++) {\n this.#text.shift()\n this.#style.shift()\n }\n return this\n }\n\n /** Move the cursor forward `n` columns, without limit. */\n forward(n: number): Terminal {\n this.#cursor[1] += n\n return this\n }\n\n /** Move the cursor back `n` columns, stopping at the first column. */\n back(n: number): Terminal {\n this.#cursor[1] = Math.max(0, this.#cursor[1] - n)\n return this\n }\n\n /** Move to the start of the `n`-th next line. */\n nextLine(n: number): Terminal {\n this.#cursor[0] += n\n this.#cursor[1] = 0\n return this\n }\n\n /**\n * Move to the start of the `n`-th previous line, stopping at the top of the\n * screen.\n */\n prevLine(n: number): Terminal {\n this.#cursor[0] = Math.max(0, this.#cursor[0] - n)\n this.#cursor[1] = 0\n return this\n }\n\n /**\n * Move to the `n`-th column (1-indexed), limited by the left-most column.\n */\n horizontalPosition(n: number): Terminal {\n this.#cursor[1] = Math.max(0, n - 1)\n return this\n }\n\n /**\n * Move to the 1-indexed row and column specified, limited by the top and\n * left sides of the screen.\n */\n position(row: number, col: number): Terminal {\n this.#cursor[0] = Math.max(row - 1, 0)\n this.#cursor[1] = Math.max(col - 1, 0)\n return this\n }\n\n /**\n * Delete all printed data from the screen.\n *\n * Note that this is used for both `\\x1b[2J` _and_ `\\x1b[3J`, because there\n * is no scrollback buffer in this virtual terminal.\n */\n eraseScreen(): Terminal {\n // erase entire screen\n this.#text.length = 0\n this.#style.length = 0\n return this\n }\n\n /** Delete all printed data from the cursor to the end of the screen. */\n eraseScreenToEnd(): Terminal {\n // erase from cursor to end of screen\n this.#text.splice(this.#cursor[0] + 1)\n this.#style.splice(this.#cursor[0] + 1)\n this.eraseLineToEnd()\n return this\n }\n\n /** Delete all printed data from the top of the screen to the cursor. */\n eraseScreenFromStart(): Terminal {\n // erase from beginning of screen to cursor\n let i\n for (i = 0; i < this.#cursor[0]; i++) {\n const line = this.#text[i]\n const sline = this.#style[i]\n /* c8 ignore start */\n if (!line || !sline) continue\n /* c8 ignore stop */\n line.length = 0\n sline.length = 0\n }\n this.eraseLineFromStart()\n return this\n }\n\n /** Delete the contents of the current line. */\n eraseLine(): Terminal {\n const line = this.#text[this.#cursor[0]]\n const sline = this.#style[this.#cursor[0]]\n if (!line || !sline) return this\n line.length = 0\n sline.length = 0\n return this\n }\n\n /**\n * Delete printed data from the cursor to the end of the current line.\n */\n eraseLineToEnd(): Terminal {\n const line = this.#text[this.#cursor[0]]\n const sline = this.#style[this.#cursor[0]]\n if (!line || !sline) return this\n // from cursor to end of line\n line.splice(this.#cursor[1])\n sline.splice(this.#cursor[1])\n return this\n }\n\n /**\n * Delete printed data from the start of the current line to the cursor.\n */\n eraseLineFromStart(): Terminal {\n if (this.#cursor[1] === 0) return this.eraseLine()\n /* c8 ignore start */\n const line = this.#text[this.#cursor[0]]\n const sline = this.#style[this.#cursor[0]]\n /* c8 ignore stop */\n if (!line || !sline) return this\n for (let i = 0; i < this.#cursor[1]; i++) {\n line[i] = ' '\n sline[i] = undefined\n }\n return this\n }\n\n /**\n * Parse the ANSI encoded string provided, updating the internal character\n * and style buffers appropriately.\n */\n write(input: string): Terminal {\n this.#blocks = undefined\n // remove title-setting sequences\n for (let c = 0; c < input.length; ) {\n while (input.charAt(c) === '\\x1b') {\n // codes that don't use the OSC or CSI code\n switch (input.charAt(c + 1)) {\n case 'B':\n this.horizontalPosition(1)\n c += 2\n continue\n case 'H':\n // tab stops, not supported, ignore\n c += 2\n continue\n case 'D':\n this.scrollDown(1)\n c += 2\n continue\n case 'M':\n this.scrollUp(1)\n c += 2\n continue\n }\n\n // cursor/screen motion/erase commands\n const code = input.substring(c).match(CODES_RE) as\n | null\n | (RegExpMatchArray & [string, string])\n if (code) {\n c += code[0].length\n if (code[1].endsWith('m')) {\n // style code\n this.setStyle(code[0])\n continue\n } else {\n const x = code[1].charAt(code[1].length - 1)\n if (x === 'H' || x === 'f') {\n // cursor position\n const [n, m] = code[1].replace(/[Hf]$/, '').split(';')\n const row = Math.max(1, parseInt(n || '1', 10))\n const col = Math.max(1, parseInt(m || '1', 10))\n this.position(row, col)\n continue\n }\n // these all have an optional 1-indexed parameter\n // that defaults to 1, except J and K which default to 0\n const p = code[1].match(/^([0-9]+)/)?.[1]\n const n = parseInt(p || '1', 10)\n const z = parseInt(p || '0', 10)\n switch (x) {\n case 'A':\n this.up(n)\n continue\n case 'T':\n this.scrollUp(n)\n continue\n case 'B':\n this.down(n)\n continue\n case 'S':\n this.scrollDown(n)\n continue\n case 'C':\n this.forward(n)\n continue\n case 'D':\n this.back(n)\n continue\n case 'E':\n this.nextLine(n)\n continue\n case 'F':\n this.prevLine(n)\n continue\n case 'G':\n this.horizontalPosition(n)\n continue\n case 'J': {\n switch (z) {\n case 0:\n this.eraseScreenToEnd()\n continue\n case 1:\n this.eraseScreenFromStart()\n continue\n case 2:\n case 3:\n this.eraseScreen()\n continue\n }\n continue\n }\n case 'K': {\n switch (z) {\n case 0:\n this.eraseLineToEnd()\n continue\n case 1:\n this.eraseLineFromStart()\n continue\n case 2:\n this.eraseLine()\n continue\n }\n continue\n }\n }\n }\n continue\n }\n\n // check for OSC (title and hyperlinks)\n const osc = input.substring(c).match(OSC_RE) as\n | null\n | (RegExpMatchArray & [string, string])\n if (osc?.index === 0) {\n c += osc[0].length\n const cmd = osc[1]\n if (cmd.startsWith(OSC_TITLE)) {\n this.setTitle(cmd.substring(OSC_TITLE.length))\n continue\n }\n if (cmd.startsWith(OSC_HREF)) {\n this.setStyle({ href: cmd.substring(OSC_HREF.length) })\n continue\n }\n continue\n }\n\n // some other code we don't support, treat as text\n break\n }\n\n // end parsing ansi codes, might have walked off the input\n if (c >= input.length) break\n\n const ch = input.charAt(c++)\n\n if (ch === '\\r') {\n this.horizontalPosition(1)\n continue\n }\n if (ch === '\\n') {\n this.nextLine(1)\n continue\n }\n\n // write a character\n // if we are off the painted terminal, paint up to that point\n while (this.#text.length < this.#cursor[0]) {\n this.#text.push([])\n this.#style.push([])\n }\n const sline = this.#style[this.#cursor[0]] || []\n const line = this.#text[this.#cursor[0]] || []\n while (line.length < this.#cursor[1]) {\n line.push(' ')\n }\n while (sline.length < this.#cursor[1]) {\n sline.push(undefined)\n }\n line[this.#cursor[1]] = ch\n sline[this.#cursor[1]] =\n this.#brush.isReset ? undefined : this.#brush\n this.#style[this.#cursor[0]] = sline\n this.#text[this.#cursor[0]] = line\n this.forward(1)\n }\n return this\n }\n\n /**\n * Called when an OSC code of `\\x1b]0;...\\x1b\\` is encountered.\n *\n * Sets the `title` attribute on the root `<pre>` in html output,\n * and creates a corresponding OSC title sequence in the ansi output.\n */\n setTitle(s: string) {\n this.#title = s\n return this\n }\n\n /** the raw unstyled text of each line */\n get text() {\n return this.#text.map(l => l.join(''))\n }\n\n [Symbol.for('nodejs.util.inspect.custom')](\n _: any,\n opts: InspectOptions,\n inspect: typeof import('util').inspect,\n ) {\n const ins = inspect(\n {\n cursor: this.#cursor,\n brush: this.#brush,\n text: this.#text.map(l => l.join('')),\n blocks: this.blocks,\n },\n opts,\n )\n return `Terminal ${ins}`\n }\n\n /**\n * Output the results of the style and character buffers as ANSI\n * styled text. This effectively normalizes all color codes to explicit\n * RGB values and resolves all cursor motions and other control codes,\n * and styling runs of identical styles with a single code.\n */\n get ansi() {\n return this.#toString(true)\n }\n\n /**\n * Output the results of the style and character buffers as a `<pre>`\n * tag with `<span>` elements setting effective styles.\n */\n toString() {\n return this.#toString(false)\n }\n\n /**\n * An array of `Block` objects each representing a string of text with a\n * given style.\n */\n get blocks(): Block[] {\n if (this.#blocks) return this.#blocks\n let cur: Block = new Block('')\n const blocks: Block[] = [cur]\n for (let i = 0; i < this.#text.length; i++) {\n /* c8 ignore start */\n const line = this.#text[i] || []\n const sline = this.#style[i] || []\n /* c8 ignore stop */\n for (let j = 0; j < line.length; j++) {\n const st = sline[j]\n // will always be set\n /* c8 ignore start */\n const ch = line[j] || ''\n /* c8 ignore stop */\n if (st === cur.style) cur.write(ch)\n else blocks.push((cur = new Block(ch, st)))\n }\n // append a \\n only if we're not at the end\n if (this.#text[i + 1]) cur.write('\\n')\n }\n return (this.#blocks = blocks.filter(b => !!b.text))\n }\n\n #toString(ansi: boolean) {\n // turn into an array of [string, Style?], concatenating runs\n // of the same style into a single string.\n const contents = this.blocks\n .map(b => (ansi ? b.ansi : b.toString()))\n .join('')\n if (ansi) {\n const title = this.#title ? `\\x1b]0;${this.#title}\\x1b\\\\` : ''\n return title + contents + '\\x1b[m'\n }\n const css = Object.entries({\n color: defaultColor(),\n background: defaultBackground(),\n position: 'relative',\n })\n .map(kv => kv.join(':'))\n .join(';')\n const preStyle = `style=\"${css}\"`\n const preTitle = this.#title ? ` title=\"${this.#title}\"` : ''\n return `<pre ${preStyle}${preTitle}>${contents}</pre>`\n }\n}\n", "export * from './block.js'\nexport * from './default-colors.js'\nexport * from './named.js'\nexport * from './xterm.js'\nexport * from './style.js'\nexport * from './terminal.js'\nexport * from './theme.js'\nimport { Terminal } from './terminal.js'\n\n/**\n * Convert a string of ANSI text into an HTML `<pre>` tag.\n */\nexport const ansiToPre = (input: string) => String(new Terminal(input))\n\n/**\n * Convert a string of ANSI text into a string of ANSI text with normalized\n * RGB color codes and all cursor control sequences resolved.\n */\nexport const ansiToAnsi = (input: string) => new Terminal(input).ansi\n", "/**\n * Implementation shared between `vlt run`, `vlt run-exec`, and `vlt exec`\n */\n\nimport { error, isErrorRoot } from '@vltpkg/error-cause'\nimport { isRunResult } from '@vltpkg/run'\nimport type {\n exec,\n execFG,\n ExecOptions,\n run,\n runExec,\n runExecFG,\n RunExecOptions,\n runFG,\n RunOptions,\n RunResult,\n} from '@vltpkg/run'\nimport { Monorepo } from '@vltpkg/workspaces'\nimport type { Workspace } from '@vltpkg/workspaces'\nimport { ansiToAnsi } from 'ansi-to-pre'\nimport chalk from 'chalk'\nimport type { LoadedConfig } from './config/index.ts'\nimport { stdout, stderr } from './output.ts'\nimport type { SpawnResultNoStdio } from '@vltpkg/promise-spawn'\n\nexport type RunnerBG = typeof exec | typeof run | typeof runExec\nexport type RunnerFG = typeof execFG | typeof runExecFG | typeof runFG\nexport type RunnerOptions = ExecOptions & RunExecOptions & RunOptions\nexport type ExecResult =\n | undefined\n | SpawnResultNoStdio\n | Record<string, RunResult>\n\nexport class ExecCommand<B extends RunnerBG, F extends RunnerFG> {\n bg: B\n fg: F\n arg0?: string\n args: string[]\n monorepo?: Monorepo\n /** how many places are we doing things in? */\n spaces: number\n conf: LoadedConfig\n projectRoot: string\n\n constructor(conf: LoadedConfig, bg: B, fg: F) {\n this.conf = conf\n this.bg = bg\n this.fg = fg\n const {\n projectRoot,\n positionals: [arg0, ...args],\n } = conf\n this.arg0 = arg0\n this.args = args\n\n const paths = conf.get('workspace')\n const groups = conf.get('workspace-group')\n const recursive = conf.get('recursive')\n this.monorepo =\n paths?.length || groups?.length || recursive ?\n Monorepo.load(projectRoot, { load: { paths, groups } })\n : undefined\n this.spaces = this.monorepo?.size ?? 1\n this.projectRoot = projectRoot\n }\n\n async run(): Promise<ExecResult> {\n if (this.spaces === 1) {\n const arg = this.fgArg()\n if (!arg) return\n const result = await this.fg(arg)\n stdout(result)\n if (isRunResult(result)) {\n this.setExitCode(result)\n }\n return result\n }\n const m = this.monorepo\n if (!m || this.spaces === 0) {\n throw error('no matching workspaces found', {\n /* c8 ignore next - already guarded */\n validOptions: [...(this.monorepo?.load().paths() ?? [])],\n })\n }\n const arg0 = this.arg0\n if (!arg0) {\n this.noArgsMulti()\n return\n }\n // run across workspaces\n let failed = false\n const resultMap = await m.run(async ws => {\n if (!failed) stderr(`${ws.path} ${arg0}`)\n const result = await this.bg(this.bgArg(ws)).catch(\n (er: unknown) => {\n if (isErrorRoot(er) && isRunResult(er.cause)) {\n this.printResult(ws, er.cause)\n }\n failed = true\n throw er\n },\n )\n if (!failed) this.printResult(ws, result)\n return result\n })\n\n const results: Record<string, RunResult> = {}\n for (const [ws, result] of resultMap) {\n if (result.status === 0 && result.signal === null) {\n result.stdout = ''\n result.stderr = ''\n }\n results[ws.path] = result\n }\n return results\n }\n\n printResult(ws: Workspace, result: RunResult) {\n if (result.status === 0 && result.signal === null) {\n stdout(ws.path, 'ok')\n } else {\n stdout(chalk.bgWhiteBright.black.bold(ws.path + ' failure'), {\n status: result.status,\n signal: result.signal,\n })\n /* c8 ignore start */\n if (result.stderr) stderr(ansiToAnsi(result.stderr))\n if (result.stdout) stdout(ansiToAnsi(result.stdout))\n /* c8 ignore stop */\n this.setExitCode(result)\n }\n }\n\n setExitCode(result: RunResult) {\n /* c8 ignore next */\n process.exitCode = process.exitCode || (result.status ?? 1)\n }\n\n /* c8 ignore start - env specific */\n interactiveShell(): string {\n return (\n process.env.SHELL ??\n this.conf.get('script-shell') ??\n (process.platform === 'win32' ? 'cmd.exe' : '/bin/sh')\n )\n }\n /* c8 ignore stop */\n\n // overridden by 'vlt run' to print options and return undefined\n defaultArg0(): string | undefined {\n return this.interactiveShell()\n }\n\n fgArg(): RunnerOptions | undefined {\n const ws = this.monorepo?.values().next().value\n const cwd = ws?.fullpath ?? this.projectRoot\n const arg0 = this.arg0 ?? this.defaultArg0()\n if (!arg0) {\n return undefined\n }\n\n return {\n cwd,\n /* c8 ignore next - already guarded */\n arg0,\n args: this.args,\n projectRoot: this.projectRoot,\n packageJson: this.monorepo?.packageJson,\n 'script-shell':\n this.arg0 ? this.conf.get('script-shell') : false,\n }\n }\n\n /** If this returns undefined, then nothing to do */\n bgArg(ws: Workspace): RunnerOptions {\n /* c8 ignore start - already guarded */\n if (!this.arg0)\n throw error(\n 'Cannot spawn interactive shells in multiple workspaces',\n )\n /* c8 ignore stop */\n\n return {\n cwd: ws.fullpath,\n acceptFail: !this.conf.get('bail'),\n ignoreMissing: true,\n arg0: this.arg0,\n args: this.args,\n projectRoot: this.projectRoot,\n packageJson: this.monorepo?.packageJson,\n 'script-shell': this.conf.get('script-shell'),\n }\n }\n\n // overridden in `vlt run` to print available scripts\n noArgsMulti() {\n throw error(\n 'Cannot spawn interactive shells in multiple workspaces',\n )\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["emojiRegex", "r", "g", "b", "c", "code", "codes", "hex", "colors", "n"]
7
- }