@visulima/pail 3.1.0 → 3.2.1

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 (111) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/LICENSE.md +3 -407
  3. package/README.md +298 -0
  4. package/dist/constants.d.ts +37 -0
  5. package/dist/index.browser.d.ts +47 -12
  6. package/dist/index.browser.js +12 -1
  7. package/dist/index.server.d.ts +65 -40
  8. package/dist/index.server.js +533 -2
  9. package/dist/interactive/index.d.ts +2 -28
  10. package/dist/interactive/index.js +2 -1
  11. package/dist/interactive/interactive-manager.d.ts +108 -0
  12. package/dist/interactive/interactive-stream-hook.d.ts +68 -0
  13. package/dist/object-tree.d.ts +65 -7
  14. package/dist/object-tree.js +89 -2
  15. package/dist/packem_shared/AbstractJsonReporter-intFdT_A.js +204 -0
  16. package/dist/packem_shared/InteractiveManager-CZ85hGNW.js +172 -0
  17. package/dist/packem_shared/InteractiveStreamHook-DiSubbJ1.js +21 -0
  18. package/dist/packem_shared/JsonReporter-C0AXk99i.js +58 -0
  19. package/dist/packem_shared/JsonReporter-DcM2LBX9.js +28 -0
  20. package/dist/packem_shared/PrettyReporter-BFWaYP_J.js +222 -0
  21. package/dist/packem_shared/PrettyReporter-CuLLKr6-.js +169 -0
  22. package/dist/packem_shared/abstract-pretty-reporter-DMPDCslJ.js +50 -0
  23. package/dist/packem_shared/constants-DfDr4MHC.js +119 -0
  24. package/dist/packem_shared/format-label-Btft2KGP.js +1194 -0
  25. package/dist/packem_shared/get-longest-label-C9PWeyKq.js +9 -0
  26. package/dist/packem_shared/index-BomQ3E6J.js +650 -0
  27. package/dist/packem_shared/index-DqKWykfa.js +1146 -0
  28. package/dist/packem_shared/interactive-stream-hook-DG4BtN12.js +141 -0
  29. package/dist/packem_shared/pail.browser-CPjQrsyy.js +1427 -0
  30. package/dist/packem_shared/write-console-log-based-on-level-DBmRYXpj.js +14 -0
  31. package/dist/packem_shared/write-stream-BG8fhcs3.js +6 -0
  32. package/dist/pail.browser.d.ts +412 -0
  33. package/dist/pail.server.d.ts +233 -0
  34. package/dist/processor/caller/caller-processor.d.ts +40 -7
  35. package/dist/processor/caller/caller-processor.js +59 -1
  36. package/dist/processor/caller/get-caller-filename.d.ts +23 -0
  37. package/dist/processor/message-formatter-processor.d.ts +44 -9
  38. package/dist/processor/message-formatter-processor.js +67 -1
  39. package/dist/processor/opentelemetry-processor.d.ts +70 -0
  40. package/dist/processor/opentelemetry-processor.js +52 -0
  41. package/dist/processor/redact-processor.d.ts +39 -8
  42. package/dist/processor/redact-processor.js +30 -1
  43. package/dist/progress-bar.d.ts +75 -15
  44. package/dist/progress-bar.js +404 -1
  45. package/dist/reporter/file/json-file-reporter.d.ts +39 -20
  46. package/dist/reporter/file/json-file-reporter.js +136 -4
  47. package/dist/reporter/file/utils/rotating-file-stream.d.ts +48 -0
  48. package/dist/reporter/http/abstract-http-reporter.d.ts +215 -0
  49. package/dist/reporter/http/abstract-http-reporter.js +435 -0
  50. package/dist/reporter/http/http-reporter.d.ts +39 -0
  51. package/dist/reporter/http/http-reporter.edge-light.d.ts +40 -0
  52. package/dist/reporter/http/http-reporter.edge-light.js +651 -0
  53. package/dist/reporter/http/http-reporter.js +13 -0
  54. package/dist/reporter/http/utils/compression.d.ts +7 -0
  55. package/dist/reporter/http/utils/log-size-error.d.ts +30 -0
  56. package/dist/reporter/http/utils/retry.d.ts +27 -0
  57. package/dist/reporter/json/abstract-json-reporter.d.ts +61 -0
  58. package/dist/reporter/json/index.browser.d.ts +3 -13
  59. package/dist/reporter/json/index.browser.js +2 -1
  60. package/dist/reporter/json/index.d.ts +3 -16
  61. package/dist/reporter/json/index.js +2 -1
  62. package/dist/reporter/json/json-reporter.browser.d.ts +40 -0
  63. package/dist/reporter/json/json-reporter.server.d.ts +50 -0
  64. package/dist/reporter/pretty/abstract-pretty-reporter.d.ts +83 -0
  65. package/dist/reporter/pretty/index.browser.d.ts +2 -13
  66. package/dist/reporter/pretty/index.browser.js +1 -1
  67. package/dist/reporter/pretty/index.d.ts +2 -25
  68. package/dist/reporter/pretty/index.js +1 -1
  69. package/dist/reporter/pretty/pretty-reporter.browser.d.ts +36 -0
  70. package/dist/reporter/pretty/pretty-reporter.server.d.ts +70 -0
  71. package/dist/reporter/raw/raw-reporter.browser.d.ts +5 -0
  72. package/dist/reporter/raw/raw-reporter.server.d.ts +13 -0
  73. package/dist/reporter/simple/simple-reporter.server.d.ts +10 -14
  74. package/dist/reporter/simple/simple-reporter.server.js +186 -8
  75. package/dist/reporter/utils/default-inspector-config.d.ts +3 -0
  76. package/dist/reporter/utils/format-label.d.ts +3 -0
  77. package/dist/spinner.d.ts +170 -104
  78. package/dist/spinner.js +2150 -1
  79. package/dist/types.d.ts +241 -0
  80. package/dist/utils/ansi-escapes.d.ts +4 -0
  81. package/dist/utils/arrayify.d.ts +2 -0
  82. package/dist/utils/get-longest-badge.d.ts +4 -0
  83. package/dist/utils/get-longest-label.d.ts +4 -0
  84. package/dist/utils/merge-types.d.ts +4 -0
  85. package/dist/utils/stream/safe-stream-handler.d.ts +21 -0
  86. package/dist/utils/write-console-log-based-on-level.d.ts +4 -0
  87. package/dist/utils/write-stream.d.ts +2 -0
  88. package/package.json +53 -4
  89. package/dist/packem_shared/AbstractJsonReporter-UftN6CIL.js +0 -1
  90. package/dist/packem_shared/InteractiveManager-CgmJyW9x.js +0 -3
  91. package/dist/packem_shared/InteractiveStreamHook-NtJu71aN.js +0 -1
  92. package/dist/packem_shared/JsonReporter-DTBtHNaD.js +0 -2
  93. package/dist/packem_shared/JsonReporter-Dl4m0xZe.js +0 -1
  94. package/dist/packem_shared/PrettyReporter-Bns0ZWLy.js +0 -12
  95. package/dist/packem_shared/PrettyReporter-CGKSTI7X.js +0 -5
  96. package/dist/packem_shared/abstract-json-reporter-CPsNkpz8.d.ts +0 -22
  97. package/dist/packem_shared/abstract-pretty-reporter-CUtSm20r.js +0 -1
  98. package/dist/packem_shared/abstract-pretty-reporter-DB2G-qlI.d.ts +0 -28
  99. package/dist/packem_shared/constants-DKfCaSUR.js +0 -1
  100. package/dist/packem_shared/format-label-CpyyTBom.js +0 -26
  101. package/dist/packem_shared/get-longest-label-B0NrI-o2.js +0 -1
  102. package/dist/packem_shared/index-CysYvHXs.js +0 -8
  103. package/dist/packem_shared/index-D9hWq9ka.js +0 -1
  104. package/dist/packem_shared/index.d-BR1GjZri.d.ts +0 -53
  105. package/dist/packem_shared/index.d-oxZvg_y7.d.ts +0 -20
  106. package/dist/packem_shared/interactive-stream-hook-CeVo4Kth.js +0 -2
  107. package/dist/packem_shared/pail.browser-BmHoDvEA.js +0 -19
  108. package/dist/packem_shared/pail.browser-CmWcqnn9.d.ts +0 -64
  109. package/dist/packem_shared/types-DVzG8TWL.d.ts +0 -95
  110. package/dist/packem_shared/write-console-log-based-on-level-BP95fgQZ.js +0 -1
  111. package/dist/packem_shared/write-stream-CD8XFv1L.js +0 -1
package/dist/spinner.js CHANGED
@@ -1 +1,2150 @@
1
- var c=Object.defineProperty;var a=(r,t)=>c(r,"name",{value:t,configurable:!0});import h from"@visulima/colorize";const f={interval:80,frames:["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},m={interval:80,frames:["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},v={interval:80,frames:["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},g={interval:80,frames:["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},u={interval:80,frames:["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},d={interval:80,frames:["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},p={interval:80,frames:["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},b={interval:80,frames:["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},x={interval:80,frames:["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},w={interval:80,frames:["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},k={interval:100,frames:["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},y={interval:80,frames:["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},B={interval:80,frames:["⣼","⣹","⢻","⠿","⡟","⣏","⣧","⣶"]},S={interval:80,frames:["⠉⠉","⠈⠙","⠀⠹","⠀⢸","⠀⣰","⢀⣠","⣀⣀","⣄⡀","⣆⠀","⡇⠀","⠏⠀","⠋⠁"]},$={interval:80,frames:["⠀","⠁","⠂","⠃","⠄","⠅","⠆","⠇","⡀","⡁","⡂","⡃","⡄","⡅","⡆","⡇","⠈","⠉","⠊","⠋","⠌","⠍","⠎","⠏","⡈","⡉","⡊","⡋","⡌","⡍","⡎","⡏","⠐","⠑","⠒","⠓","⠔","⠕","⠖","⠗","⡐","⡑","⡒","⡓","⡔","⡕","⡖","⡗","⠘","⠙","⠚","⠛","⠜","⠝","⠞","⠟","⡘","⡙","⡚","⡛","⡜","⡝","⡞","⡟","⠠","⠡","⠢","⠣","⠤","⠥","⠦","⠧","⡠","⡡","⡢","⡣","⡤","⡥","⡦","⡧","⠨","⠩","⠪","⠫","⠬","⠭","⠮","⠯","⡨","⡩","⡪","⡫","⡬","⡭","⡮","⡯","⠰","⠱","⠲","⠳","⠴","⠵","⠶","⠷","⡰","⡱","⡲","⡳","⡴","⡵","⡶","⡷","⠸","⠹","⠺","⠻","⠼","⠽","⠾","⠿","⡸","⡹","⡺","⡻","⡼","⡽","⡾","⡿","⢀","⢁","⢂","⢃","⢄","⢅","⢆","⢇","⣀","⣁","⣂","⣃","⣄","⣅","⣆","⣇","⢈","⢉","⢊","⢋","⢌","⢍","⢎","⢏","⣈","⣉","⣊","⣋","⣌","⣍","⣎","⣏","⢐","⢑","⢒","⢓","⢔","⢕","⢖","⢗","⣐","⣑","⣒","⣓","⣔","⣕","⣖","⣗","⢘","⢙","⢚","⢛","⢜","⢝","⢞","⢟","⣘","⣙","⣚","⣛","⣜","⣝","⣞","⣟","⢠","⢡","⢢","⢣","⢤","⢥","⢦","⢧","⣠","⣡","⣢","⣣","⣤","⣥","⣦","⣧","⢨","⢩","⢪","⢫","⢬","⢭","⢮","⢯","⣨","⣩","⣪","⣫","⣬","⣭","⣮","⣯","⢰","⢱","⢲","⢳","⢴","⢵","⢶","⢷","⣰","⣱","⣲","⣳","⣴","⣵","⣶","⣷","⢸","⢹","⢺","⢻","⢼","⢽","⢾","⢿","⣸","⣹","⣺","⣻","⣼","⣽","⣾","⣿"]},H={interval:80,frames:["⢎ ","⠎⠁","⠊⠑","⠈⠱"," ⡱","⢀⡰","⢄⡠","⢆⡀"]},M={interval:80,frames:["⠁","⠂","⠄","⡀","⡈","⡐","⡠","⣀","⣁","⣂","⣄","⣌","⣔","⣤","⣥","⣦","⣮","⣶","⣷","⣿","⡿","⠿","⢟","⠟","⡛","⠛","⠫","⢋","⠋","⠍","⡉","⠉","⠑","⠡","⢁"]},O={interval:130,frames:["-","\\","|","/"]},P={interval:100,frames:["⠂","-","–","—","–","-"]},T={interval:80,frames:["/ "," - "," \\ "," |"," |"," \\ "," - ","/ "]},A={interval:100,frames:["┤","┘","┴","└","├","┌","┬","┐"]},D={interval:400,frames:[". ",".. ","..."," "]},q={interval:200,frames:[". ",".. ","..."," .."," ."," "]},I={interval:70,frames:["✶","✸","✹","✺","✹","✷"]},C={interval:80,frames:["+","x","*"]},F={interval:70,frames:["_","_","_","-","`","`","'","´","-","_","_","_"]},R={interval:100,frames:["☱","☲","☴"]},j={interval:120,frames:["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},z={interval:120,frames:["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},L={interval:140,frames:[" ",".","o","O","@","*"," "]},Q={interval:120,frames:[".","o","O","°","O","o","."]},V={interval:100,frames:["▓","▒","░"]},W={interval:120,frames:["⠁","⠂","⠄","⠂"]},E={interval:120,frames:["▖","▘","▝","▗"]},G={interval:100,frames:["▌","▀","▐","▄"]},J={interval:50,frames:["◢","◣","◤","◥"]},K={interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},N={interval:100,frames:["◜","◠","◝","◞","◡","◟"]},U={interval:120,frames:["◡","⊙","◠"]},X={interval:180,frames:["◰","◳","◲","◱"]},Y={interval:120,frames:["◴","◷","◶","◵"]},Z={interval:50,frames:["◐","◓","◑","◒"]},tt={interval:100,frames:["╫","╪"]},et={interval:250,frames:["⊶","⊷"]},st={interval:80,frames:["▫","▪"]},rt={interval:120,frames:["□","■"]},nt={interval:100,frames:["■","□","▪","▫"]},at={interval:100,frames:["▮","▯"]},it={interval:300,frames:["ဝ","၀"]},_t={interval:80,frames:["⦾","⦿"]},ot={interval:100,frames:["◍","◌"]},lt={interval:100,frames:["◉","◎"]},ct={interval:100,frames:["㊂","㊀","㊁"]},ht={interval:50,frames:["⧇","⧆"]},ft={interval:120,frames:["☗","☖"]},mt={interval:80,frames:["=","*","-"]},vt={interval:100,frames:["←","↖","↑","↗","→","↘","↓","↙"]},gt={interval:80,frames:["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},ut={interval:120,frames:["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},dt={interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},pt={interval:80,frames:["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},bt={interval:200,frames:["😄 ","😝 "]},xt={interval:300,frames:["🙈 ","🙈 ","🙉 ","🙊 "]},wt={interval:100,frames:["💛 ","💙 ","💜 ","💚 ","💗 "]},kt={interval:100,frames:["🕛 ","🕐 ","🕑 ","🕒 ","🕓 ","🕔 ","🕕 ","🕖 ","🕗 ","🕘 ","🕙 ","🕚 "]},yt={interval:180,frames:["🌍 ","🌎 ","🌏 "]},Bt={interval:17,frames:["█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███████▁▁▁▁▁▁▁▁▁▁▁▁▁","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","██████████▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","█████████████▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁██████████████▁▁▁▁","▁▁▁██████████████▁▁▁","▁▁▁▁█████████████▁▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁▁▁████████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","██████▁▁▁▁▁▁▁▁▁▁▁▁▁█","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁▁█████████████▁▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁▁███████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁▁█████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"]},St={interval:80,frames:["🌑 ","🌒 ","🌓 ","🌔 ","🌕 ","🌖 ","🌗 ","🌘 "]},$t={interval:140,frames:["🚶 ","🏃 "]},Ht={interval:80,frames:["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},Mt={interval:120,frames:["▐|\\____________▌","▐_|\\___________▌","▐__|\\__________▌","▐___|\\_________▌","▐____|\\________▌","▐_____|\\_______▌","▐______|\\______▌","▐_______|\\_____▌","▐________|\\____▌","▐_________|\\___▌","▐__________|\\__▌","▐___________|\\_▌","▐____________|\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},Ot={interval:100,frames:["d","q","p","b"]},Pt={interval:100,frames:["☀️ ","☀️ ","☀️ ","🌤 ","⛅️ ","🌥 ","☁️ ","🌧 ","🌨 ","🌧 ","🌨 ","🌧 ","🌨 ","⛈ ","🌨 ","🌧 ","🌨 ","☁️ ","🌥 ","⛅️ ","🌤 ","☀️ ","☀️ "]},Tt={interval:400,frames:["🌲","🎄"]},At={interval:80,frames:["، ","′ "," ´ "," ‾ "," ⸌"," ⸊"," |"," ⁎"," ⁕"," ෴ "," ⁓"," "," "," "]},Dt={interval:125,frames:["∙∙∙","●∙∙","∙●∙","∙∙●","∙∙∙"]},qt={interval:150,frames:["-","=","≡"]},It={interval:80,frames:["ρββββββ","βρβββββ","ββρββββ","βββρβββ","ββββρββ","βββββρβ","ββββββρ"]},Ct={interval:160,frames:["🤘 ","🤟 ","🖖 ","✋ ","🤚 ","👆 "]},Ft={interval:80,frames:["🤜    🤛 ","🤜    🤛 ","🤜    🤛 "," 🤜  🤛  ","  🤜🤛   "," 🤜✨🤛   ","🤜 ✨ 🤛  "]},Rt={interval:80,frames:[" 🧑⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 ","🧑 ⚽️ 🧑 "]},jt={interval:160,frames:["😐 ","😐 ","😮 ","😮 ","😦 ","😦 ","😧 ","😧 ","🤯 ","💥 ","✨ ","  ","  ","  "]},zt={interval:160,frames:["🔈 ","🔉 ","🔊 ","🔉 "]},Lt={interval:100,frames:["🔸 ","🔶 ","🟠 ","🟠 ","🔶 "]},Qt={interval:100,frames:["🔹 ","🔷 ","🔵 ","🔵 ","🔷 "]},Vt={interval:100,frames:["🔸 ","🔶 ","🟠 ","🟠 ","🔶 ","🔹 ","🔷 ","🔵 ","🔵 ","🔷 "]},Wt={interval:100,frames:["🕛 ","🕚 ","🕙 ","🕘 ","🕗 ","🕖 ","🕕 ","🕔 ","🕓 ","🕒 ","🕑 ","🕐 "]},Et={interval:80,frames:["▰▱▱▱▱▱▱","▰▰▱▱▱▱▱","▰▰▰▱▱▱▱","▰▰▰▰▱▱▱","▰▰▰▰▰▱▱","▰▰▰▰▰▰▱","▰▰▰▰▰▰▰","▰▱▱▱▱▱▱"]},Gt={interval:80,frames:[" ██████£££ ","☺██████£££ ","☺██████£££ ","☺▓█████£££ ","☺▓█████£££ ","☺▒█████£££ ","☺▒█████£££ ","☺░█████£££ ","☺░█████£££ ","☺ █████£££ "," ☺█████£££ "," ☺█████£££ "," ☺▓████£££ "," ☺▓████£££ "," ☺▒████£££ "," ☺▒████£££ "," ☺░████£££ "," ☺░████£££ "," ☺ ████£££ "," ☺████£££ "," ☺████£££ "," ☺▓███£££ "," ☺▓███£££ "," ☺▒███£££ "," ☺▒███£££ "," ☺░███£££ "," ☺░███£££ "," ☺ ███£££ "," ☺███£££ "," ☺███£££ "," ☺▓██£££ "," ☺▓██£££ "," ☺▒██£££ "," ☺▒██£££ "," ☺░██£££ "," ☺░██£££ "," ☺ ██£££ "," ☺██£££ "," ☺██£££ "," ☺▓█£££ "," ☺▓█£££ "," ☺▒█£££ "," ☺▒█£££ "," ☺░█£££ "," ☺░█£££ "," ☺ █£££ "," ☺█£££ "," ☺█£££ "," ☺▓£££ "," ☺▓£££ "," ☺▒£££ "," ☺▒£££ "," ☺░£££ "," ☺░£££ "," ☺ £££ "," ☺£££ "," ☺£££ "," ☺▓££ "," ☺▓££ "," ☺▒££ "," ☺▒££ "," ☺░££ "," ☺░££ "," ☺ ££ "," ☺££ "," ☺££ "," ☺▓£ "," ☺▓£ "," ☺▒£ "," ☺▒£ "," ☺░£ "," ☺░£ "," ☺ £ "," ☺£ "," ☺£ "," ☺▓ "," ☺▓ "," ☺▒ "," ☺▒ "," ☺░ "," ☺░ "," ☺ "," ☺ &"," ☺ ☼&"," ☺ ☼ &"," ☺☼ &"," ☺☼ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & ","‼ & "," & "," & "," & ░ "," & ▒ "," & ▓ "," & £ "," & ░£ "," & ▒£ "," & ▓£ "," & ££ "," & ░££ "," & ▒££ ","& ▓££ ","& £££ "," ░£££ "," ▒£££ "," ▓£££ "," █£££ "," ░█£££ "," ▒█£££ "," ▓█£££ "," ██£££ "," ░██£££ "," ▒██£££ "," ▓██£££ "," ███£££ "," ░███£££ "," ▒███£££ "," ▓███£££ "," ████£££ "," ░████£££ "," ▒████£££ "," ▓████£££ "," █████£££ "," ░█████£££ "," ▒█████£££ "," ▓█████£££ "," ██████£££ "," ██████£££ "]},i={dots:f,dots2:m,dots3:v,dots4:g,dots5:u,dots6:d,dots7:p,dots8:b,dots9:x,dots10:w,dots11:k,dots12:y,dots13:B,dots14:S,dots8Bit:$,dotsCircle:H,sand:M,line:O,line2:P,rollingLine:T,pipe:A,simpleDots:D,simpleDotsScrolling:q,star:I,star2:C,flip:F,hamburger:R,growVertical:j,growHorizontal:z,balloon:L,balloon2:Q,noise:V,bounce:W,boxBounce:E,boxBounce2:G,triangle:J,binary:K,arc:N,circle:U,squareCorners:X,circleQuarters:Y,circleHalves:Z,squish:tt,toggle:et,toggle2:st,toggle3:rt,toggle4:nt,toggle5:at,toggle6:it,toggle7:_t,toggle8:ot,toggle9:lt,toggle10:ct,toggle11:ht,toggle12:ft,toggle13:mt,arrow:vt,arrow2:gt,arrow3:ut,bouncingBar:dt,bouncingBall:pt,smiley:bt,monkey:xt,hearts:wt,clock:kt,earth:yt,material:Bt,moon:St,runner:$t,pong:Ht,shark:Mt,dqpb:Ot,weather:Pt,christmas:Tt,grenade:At,point:Dt,layer:qt,betaWave:It,fingerDance:Ct,fistBump:Ft,soccerHeader:Rt,mindblown:jt,speaker:zt,orangePulse:Lt,bluePulse:Qt,orangeBluePulse:Vt,timeTravel:Wt,aesthetic:Et,dwarfFortress:Gt};var Jt=Object.defineProperty,Kt=a((r,t)=>Jt(r,"name",{value:t,configurable:!0}),"o");const o=Object.keys(i);function Nt(){const r=Math.floor(Math.random()*o.length),t=o[r];return i[t]}a(Nt,"randomSpinner");Kt(Nt,"randomSpinner");var Ut=Object.defineProperty,_=a((r,t)=>Ut(r,"name",{value:t,configurable:!0}),"s");const Xt={error:"✖",info:"ℹ",success:"✓",warning:"⚠"},l=_((r,t)=>{if(!t)return r;let e=h;return t.bold&&(e=e.bold),t.dim&&(e=e.dim),t.italic&&(e=e.italic),t.underline&&(e=e.underline),t.strikethrough&&(e=e.strikethrough),t.inverse&&(e=e.inverse),t.overline&&(e=e.overline),t.color?e=e[t.color]:t.hex?e=e.hex(t.hex):t.rgb&&(e=e.rgb(...t.rgb)),t.bgColor?e=e[t.bgColor]:t.bgHex?e=e.bgHex(t.bgHex):t.bgRgb&&(e=e.bgRgb(...t.bgRgb)),e(r)},"applyStyle");class Yt{static{a(this,"Spinner")}static{_(this,"Spinner")}#e=0;#n;#t=!1;#a="";#i="";#m=0;#r;#s;#c="";#o;#h;#f;#v;constructor(t={},e){this.#o=t.name??"dots",this.#h=t.verbose!==!1,this.#f=t.style,this.#a=t.prefixText??"",this.#r=e,this.#v={...Xt,...t.icons}}get elapsedTime(){return Date.now()-this.#m}get getText(){return this.#i}set text(t){this.#i=t,this.#t&&(this.#s?this.#s.renderAll():this.#r&&this.#_())}get getPrefixText(){return this.#a}set prefixText(t){this.#a=t,this.#t&&(this.#s?this.#s.renderAll():this.#r&&this.#_())}get isRunning(){return this.#t}setInteractiveManager(t){this.#r=t}setMultiSpinner(t){this.#s=t}start(t,e){if(this.#t)return this;if(!this.#h)return this;this.#t=!0,this.#m=Date.now(),this.#e=0,t&&(this.#i=t),e?.prefixText&&(this.#a=e.prefixText);const s=this.#s||this.#r;s&&(this.#s?s.renderAll():(s.hook(),this.#_()));const n=i[this.#o];return this.#n=setInterval(()=>{this.#t&&(this.#e=(this.#e+1)%n.frames.length,this.#s?this.#s.renderAll():this.#r&&this.#_())},n.interval),this}succeed(t){this.#l("success",t)}failed(t){this.#l("error",t)}warn(t){this.#l("warning",t)}info(t){this.#l("info",t)}pause(){this.#n&&(clearInterval(this.#n),this.#n=void 0)}resume(){if(!this.#t)return;this.#n&&clearInterval(this.#n);const t=i[this.#o];this.#n=setInterval(()=>{this.#t&&(this.#e=(this.#e+1)%t.frames.length,this.#s?this.#s.renderAll():this.#r&&this.#_())},t.interval)}getFrameOutput(){if(!this.#t&&this.#c)return this.#c;const t=i[this.#o].frames[this.#e];let e=l(t,this.#f);return this.#a&&(e=`${this.#a} ${e}`),this.#i&&(e=`${e} ${this.#i}`),e}#_(){this.#r&&this.#r.update("stdout",[this.getFrameOutput()])}#l(t,e){if(!this.#t||(this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#t=!1,!this.#h))return;let s="";const n=this.#v[t];n&&(s=l(n,this.#f)),this.#a&&(s=`${this.#a} ${s}`),e&&(s=`${s} ${e}`),this.#c=s,(this.#s||this.#r)&&(this.#s?this.#s.renderAll():this.#r&&(this.#r.update("stdout",[s]),this.#r.unhook(!1)))}}class ee{static{a(this,"MultiSpinner")}static{_(this,"MultiSpinner")}#e=new Map;#n=0;#t;#a=!1;#i;constructor(t={},e){this.#i=t,this.#t=e}setInteractiveManager(t){this.#t=t}create(t,e={}){const s=`spinner_${this.#n++}`,n=new Yt({...this.#i,...e});return n.setMultiSpinner(this),this.#e.set(s,n),t&&(n.text=t),n}remove(t){for(const[e,s]of this.#e.entries())if(s===t)return this.#e.delete(e),this.renderAll(),!0;return!1}stop(){for(const t of this.#e.values())t.succeed();this.#e.clear(),this.#a=!1,this.#t&&this.#t.unhook(!1)}clear(){for(const t of this.#e.values())t.succeed();this.#e.clear()}renderAll(){if(!this.#t)return;this.#a||(this.#a=!0,this.#t.hook());const t=[];for(const e of this.#e.values())t.push(e.getFrameOutput());t.length>0&&this.#t.update("stdout",t)}}export{ee as MultiSpinner,Yt as Spinner};
1
+ import colorize from '@visulima/colorize';
2
+
3
+ var dots = {
4
+ interval: 80,
5
+ frames: [
6
+ "⠋",
7
+ "⠙",
8
+ "⠹",
9
+ "⠸",
10
+ "⠼",
11
+ "⠴",
12
+ "⠦",
13
+ "⠧",
14
+ "⠇",
15
+ "⠏"
16
+ ]
17
+ };
18
+ var dots2 = {
19
+ interval: 80,
20
+ frames: [
21
+ "⣾",
22
+ "⣽",
23
+ "⣻",
24
+ "⢿",
25
+ "⡿",
26
+ "⣟",
27
+ "⣯",
28
+ "⣷"
29
+ ]
30
+ };
31
+ var dots3 = {
32
+ interval: 80,
33
+ frames: [
34
+ "⠋",
35
+ "⠙",
36
+ "⠚",
37
+ "⠞",
38
+ "⠖",
39
+ "⠦",
40
+ "⠴",
41
+ "⠲",
42
+ "⠳",
43
+ "⠓"
44
+ ]
45
+ };
46
+ var dots4 = {
47
+ interval: 80,
48
+ frames: [
49
+ "⠄",
50
+ "⠆",
51
+ "⠇",
52
+ "⠋",
53
+ "⠙",
54
+ "⠸",
55
+ "⠰",
56
+ "⠠",
57
+ "⠰",
58
+ "⠸",
59
+ "⠙",
60
+ "⠋",
61
+ "⠇",
62
+ "⠆"
63
+ ]
64
+ };
65
+ var dots5 = {
66
+ interval: 80,
67
+ frames: [
68
+ "⠋",
69
+ "⠙",
70
+ "⠚",
71
+ "⠒",
72
+ "⠂",
73
+ "⠂",
74
+ "⠒",
75
+ "⠲",
76
+ "⠴",
77
+ "⠦",
78
+ "⠖",
79
+ "⠒",
80
+ "⠐",
81
+ "⠐",
82
+ "⠒",
83
+ "⠓",
84
+ "⠋"
85
+ ]
86
+ };
87
+ var dots6 = {
88
+ interval: 80,
89
+ frames: [
90
+ "⠁",
91
+ "⠉",
92
+ "⠙",
93
+ "⠚",
94
+ "⠒",
95
+ "⠂",
96
+ "⠂",
97
+ "⠒",
98
+ "⠲",
99
+ "⠴",
100
+ "⠤",
101
+ "⠄",
102
+ "⠄",
103
+ "⠤",
104
+ "⠴",
105
+ "⠲",
106
+ "⠒",
107
+ "⠂",
108
+ "⠂",
109
+ "⠒",
110
+ "⠚",
111
+ "⠙",
112
+ "⠉",
113
+ "⠁"
114
+ ]
115
+ };
116
+ var dots7 = {
117
+ interval: 80,
118
+ frames: [
119
+ "⠈",
120
+ "⠉",
121
+ "⠋",
122
+ "⠓",
123
+ "⠒",
124
+ "⠐",
125
+ "⠐",
126
+ "⠒",
127
+ "⠖",
128
+ "⠦",
129
+ "⠤",
130
+ "⠠",
131
+ "⠠",
132
+ "⠤",
133
+ "⠦",
134
+ "⠖",
135
+ "⠒",
136
+ "⠐",
137
+ "⠐",
138
+ "⠒",
139
+ "⠓",
140
+ "⠋",
141
+ "⠉",
142
+ "⠈"
143
+ ]
144
+ };
145
+ var dots8 = {
146
+ interval: 80,
147
+ frames: [
148
+ "⠁",
149
+ "⠁",
150
+ "⠉",
151
+ "⠙",
152
+ "⠚",
153
+ "⠒",
154
+ "⠂",
155
+ "⠂",
156
+ "⠒",
157
+ "⠲",
158
+ "⠴",
159
+ "⠤",
160
+ "⠄",
161
+ "⠄",
162
+ "⠤",
163
+ "⠠",
164
+ "⠠",
165
+ "⠤",
166
+ "⠦",
167
+ "⠖",
168
+ "⠒",
169
+ "⠐",
170
+ "⠐",
171
+ "⠒",
172
+ "⠓",
173
+ "⠋",
174
+ "⠉",
175
+ "⠈",
176
+ "⠈"
177
+ ]
178
+ };
179
+ var dots9 = {
180
+ interval: 80,
181
+ frames: [
182
+ "⢹",
183
+ "⢺",
184
+ "⢼",
185
+ "⣸",
186
+ "⣇",
187
+ "⡧",
188
+ "⡗",
189
+ "⡏"
190
+ ]
191
+ };
192
+ var dots10 = {
193
+ interval: 80,
194
+ frames: [
195
+ "⢄",
196
+ "⢂",
197
+ "⢁",
198
+ "⡁",
199
+ "⡈",
200
+ "⡐",
201
+ "⡠"
202
+ ]
203
+ };
204
+ var dots11 = {
205
+ interval: 100,
206
+ frames: [
207
+ "⠁",
208
+ "⠂",
209
+ "⠄",
210
+ "⡀",
211
+ "⢀",
212
+ "⠠",
213
+ "⠐",
214
+ "⠈"
215
+ ]
216
+ };
217
+ var dots12 = {
218
+ interval: 80,
219
+ frames: [
220
+ "⢀⠀",
221
+ "⡀⠀",
222
+ "⠄⠀",
223
+ "⢂⠀",
224
+ "⡂⠀",
225
+ "⠅⠀",
226
+ "⢃⠀",
227
+ "⡃⠀",
228
+ "⠍⠀",
229
+ "⢋⠀",
230
+ "⡋⠀",
231
+ "⠍⠁",
232
+ "⢋⠁",
233
+ "⡋⠁",
234
+ "⠍⠉",
235
+ "⠋⠉",
236
+ "⠋⠉",
237
+ "⠉⠙",
238
+ "⠉⠙",
239
+ "⠉⠩",
240
+ "⠈⢙",
241
+ "⠈⡙",
242
+ "⢈⠩",
243
+ "⡀⢙",
244
+ "⠄⡙",
245
+ "⢂⠩",
246
+ "⡂⢘",
247
+ "⠅⡘",
248
+ "⢃⠨",
249
+ "⡃⢐",
250
+ "⠍⡐",
251
+ "⢋⠠",
252
+ "⡋⢀",
253
+ "⠍⡁",
254
+ "⢋⠁",
255
+ "⡋⠁",
256
+ "⠍⠉",
257
+ "⠋⠉",
258
+ "⠋⠉",
259
+ "⠉⠙",
260
+ "⠉⠙",
261
+ "⠉⠩",
262
+ "⠈⢙",
263
+ "⠈⡙",
264
+ "⠈⠩",
265
+ "⠀⢙",
266
+ "⠀⡙",
267
+ "⠀⠩",
268
+ "⠀⢘",
269
+ "⠀⡘",
270
+ "⠀⠨",
271
+ "⠀⢐",
272
+ "⠀⡐",
273
+ "⠀⠠",
274
+ "⠀⢀",
275
+ "⠀⡀"
276
+ ]
277
+ };
278
+ var dots13 = {
279
+ interval: 80,
280
+ frames: [
281
+ "⣼",
282
+ "⣹",
283
+ "⢻",
284
+ "⠿",
285
+ "⡟",
286
+ "⣏",
287
+ "⣧",
288
+ "⣶"
289
+ ]
290
+ };
291
+ var dots14 = {
292
+ interval: 80,
293
+ frames: [
294
+ "⠉⠉",
295
+ "⠈⠙",
296
+ "⠀⠹",
297
+ "⠀⢸",
298
+ "⠀⣰",
299
+ "⢀⣠",
300
+ "⣀⣀",
301
+ "⣄⡀",
302
+ "⣆⠀",
303
+ "⡇⠀",
304
+ "⠏⠀",
305
+ "⠋⠁"
306
+ ]
307
+ };
308
+ var dots8Bit = {
309
+ interval: 80,
310
+ frames: [
311
+ "⠀",
312
+ "⠁",
313
+ "⠂",
314
+ "⠃",
315
+ "⠄",
316
+ "⠅",
317
+ "⠆",
318
+ "⠇",
319
+ "⡀",
320
+ "⡁",
321
+ "⡂",
322
+ "⡃",
323
+ "⡄",
324
+ "⡅",
325
+ "⡆",
326
+ "⡇",
327
+ "⠈",
328
+ "⠉",
329
+ "⠊",
330
+ "⠋",
331
+ "⠌",
332
+ "⠍",
333
+ "⠎",
334
+ "⠏",
335
+ "⡈",
336
+ "⡉",
337
+ "⡊",
338
+ "⡋",
339
+ "⡌",
340
+ "⡍",
341
+ "⡎",
342
+ "⡏",
343
+ "⠐",
344
+ "⠑",
345
+ "⠒",
346
+ "⠓",
347
+ "⠔",
348
+ "⠕",
349
+ "⠖",
350
+ "⠗",
351
+ "⡐",
352
+ "⡑",
353
+ "⡒",
354
+ "⡓",
355
+ "⡔",
356
+ "⡕",
357
+ "⡖",
358
+ "⡗",
359
+ "⠘",
360
+ "⠙",
361
+ "⠚",
362
+ "⠛",
363
+ "⠜",
364
+ "⠝",
365
+ "⠞",
366
+ "⠟",
367
+ "⡘",
368
+ "⡙",
369
+ "⡚",
370
+ "⡛",
371
+ "⡜",
372
+ "⡝",
373
+ "⡞",
374
+ "⡟",
375
+ "⠠",
376
+ "⠡",
377
+ "⠢",
378
+ "⠣",
379
+ "⠤",
380
+ "⠥",
381
+ "⠦",
382
+ "⠧",
383
+ "⡠",
384
+ "⡡",
385
+ "⡢",
386
+ "⡣",
387
+ "⡤",
388
+ "⡥",
389
+ "⡦",
390
+ "⡧",
391
+ "⠨",
392
+ "⠩",
393
+ "⠪",
394
+ "⠫",
395
+ "⠬",
396
+ "⠭",
397
+ "⠮",
398
+ "⠯",
399
+ "⡨",
400
+ "⡩",
401
+ "⡪",
402
+ "⡫",
403
+ "⡬",
404
+ "⡭",
405
+ "⡮",
406
+ "⡯",
407
+ "⠰",
408
+ "⠱",
409
+ "⠲",
410
+ "⠳",
411
+ "⠴",
412
+ "⠵",
413
+ "⠶",
414
+ "⠷",
415
+ "⡰",
416
+ "⡱",
417
+ "⡲",
418
+ "⡳",
419
+ "⡴",
420
+ "⡵",
421
+ "⡶",
422
+ "⡷",
423
+ "⠸",
424
+ "⠹",
425
+ "⠺",
426
+ "⠻",
427
+ "⠼",
428
+ "⠽",
429
+ "⠾",
430
+ "⠿",
431
+ "⡸",
432
+ "⡹",
433
+ "⡺",
434
+ "⡻",
435
+ "⡼",
436
+ "⡽",
437
+ "⡾",
438
+ "⡿",
439
+ "⢀",
440
+ "⢁",
441
+ "⢂",
442
+ "⢃",
443
+ "⢄",
444
+ "⢅",
445
+ "⢆",
446
+ "⢇",
447
+ "⣀",
448
+ "⣁",
449
+ "⣂",
450
+ "⣃",
451
+ "⣄",
452
+ "⣅",
453
+ "⣆",
454
+ "⣇",
455
+ "⢈",
456
+ "⢉",
457
+ "⢊",
458
+ "⢋",
459
+ "⢌",
460
+ "⢍",
461
+ "⢎",
462
+ "⢏",
463
+ "⣈",
464
+ "⣉",
465
+ "⣊",
466
+ "⣋",
467
+ "⣌",
468
+ "⣍",
469
+ "⣎",
470
+ "⣏",
471
+ "⢐",
472
+ "⢑",
473
+ "⢒",
474
+ "⢓",
475
+ "⢔",
476
+ "⢕",
477
+ "⢖",
478
+ "⢗",
479
+ "⣐",
480
+ "⣑",
481
+ "⣒",
482
+ "⣓",
483
+ "⣔",
484
+ "⣕",
485
+ "⣖",
486
+ "⣗",
487
+ "⢘",
488
+ "⢙",
489
+ "⢚",
490
+ "⢛",
491
+ "⢜",
492
+ "⢝",
493
+ "⢞",
494
+ "⢟",
495
+ "⣘",
496
+ "⣙",
497
+ "⣚",
498
+ "⣛",
499
+ "⣜",
500
+ "⣝",
501
+ "⣞",
502
+ "⣟",
503
+ "⢠",
504
+ "⢡",
505
+ "⢢",
506
+ "⢣",
507
+ "⢤",
508
+ "⢥",
509
+ "⢦",
510
+ "⢧",
511
+ "⣠",
512
+ "⣡",
513
+ "⣢",
514
+ "⣣",
515
+ "⣤",
516
+ "⣥",
517
+ "⣦",
518
+ "⣧",
519
+ "⢨",
520
+ "⢩",
521
+ "⢪",
522
+ "⢫",
523
+ "⢬",
524
+ "⢭",
525
+ "⢮",
526
+ "⢯",
527
+ "⣨",
528
+ "⣩",
529
+ "⣪",
530
+ "⣫",
531
+ "⣬",
532
+ "⣭",
533
+ "⣮",
534
+ "⣯",
535
+ "⢰",
536
+ "⢱",
537
+ "⢲",
538
+ "⢳",
539
+ "⢴",
540
+ "⢵",
541
+ "⢶",
542
+ "⢷",
543
+ "⣰",
544
+ "⣱",
545
+ "⣲",
546
+ "⣳",
547
+ "⣴",
548
+ "⣵",
549
+ "⣶",
550
+ "⣷",
551
+ "⢸",
552
+ "⢹",
553
+ "⢺",
554
+ "⢻",
555
+ "⢼",
556
+ "⢽",
557
+ "⢾",
558
+ "⢿",
559
+ "⣸",
560
+ "⣹",
561
+ "⣺",
562
+ "⣻",
563
+ "⣼",
564
+ "⣽",
565
+ "⣾",
566
+ "⣿"
567
+ ]
568
+ };
569
+ var dotsCircle = {
570
+ interval: 80,
571
+ frames: [
572
+ "⢎ ",
573
+ "⠎⠁",
574
+ "⠊⠑",
575
+ "⠈⠱",
576
+ " ⡱",
577
+ "⢀⡰",
578
+ "⢄⡠",
579
+ "⢆⡀"
580
+ ]
581
+ };
582
+ var sand = {
583
+ interval: 80,
584
+ frames: [
585
+ "⠁",
586
+ "⠂",
587
+ "⠄",
588
+ "⡀",
589
+ "⡈",
590
+ "⡐",
591
+ "⡠",
592
+ "⣀",
593
+ "⣁",
594
+ "⣂",
595
+ "⣄",
596
+ "⣌",
597
+ "⣔",
598
+ "⣤",
599
+ "⣥",
600
+ "⣦",
601
+ "⣮",
602
+ "⣶",
603
+ "⣷",
604
+ "⣿",
605
+ "⡿",
606
+ "⠿",
607
+ "⢟",
608
+ "⠟",
609
+ "⡛",
610
+ "⠛",
611
+ "⠫",
612
+ "⢋",
613
+ "⠋",
614
+ "⠍",
615
+ "⡉",
616
+ "⠉",
617
+ "⠑",
618
+ "⠡",
619
+ "⢁"
620
+ ]
621
+ };
622
+ var line = {
623
+ interval: 130,
624
+ frames: [
625
+ "-",
626
+ "\\",
627
+ "|",
628
+ "/"
629
+ ]
630
+ };
631
+ var line2 = {
632
+ interval: 100,
633
+ frames: [
634
+ "⠂",
635
+ "-",
636
+ "–",
637
+ "—",
638
+ "–",
639
+ "-"
640
+ ]
641
+ };
642
+ var rollingLine = {
643
+ interval: 80,
644
+ frames: [
645
+ "/ ",
646
+ " - ",
647
+ " \\ ",
648
+ " |",
649
+ " |",
650
+ " \\ ",
651
+ " - ",
652
+ "/ "
653
+ ]
654
+ };
655
+ var pipe = {
656
+ interval: 100,
657
+ frames: [
658
+ "┤",
659
+ "┘",
660
+ "┴",
661
+ "└",
662
+ "├",
663
+ "┌",
664
+ "┬",
665
+ "┐"
666
+ ]
667
+ };
668
+ var simpleDots = {
669
+ interval: 400,
670
+ frames: [
671
+ ". ",
672
+ ".. ",
673
+ "...",
674
+ " "
675
+ ]
676
+ };
677
+ var simpleDotsScrolling = {
678
+ interval: 200,
679
+ frames: [
680
+ ". ",
681
+ ".. ",
682
+ "...",
683
+ " ..",
684
+ " .",
685
+ " "
686
+ ]
687
+ };
688
+ var star = {
689
+ interval: 70,
690
+ frames: [
691
+ "✶",
692
+ "✸",
693
+ "✹",
694
+ "✺",
695
+ "✹",
696
+ "✷"
697
+ ]
698
+ };
699
+ var star2 = {
700
+ interval: 80,
701
+ frames: [
702
+ "+",
703
+ "x",
704
+ "*"
705
+ ]
706
+ };
707
+ var flip = {
708
+ interval: 70,
709
+ frames: [
710
+ "_",
711
+ "_",
712
+ "_",
713
+ "-",
714
+ "`",
715
+ "`",
716
+ "'",
717
+ "´",
718
+ "-",
719
+ "_",
720
+ "_",
721
+ "_"
722
+ ]
723
+ };
724
+ var hamburger = {
725
+ interval: 100,
726
+ frames: [
727
+ "☱",
728
+ "☲",
729
+ "☴"
730
+ ]
731
+ };
732
+ var growVertical = {
733
+ interval: 120,
734
+ frames: [
735
+ "▁",
736
+ "▃",
737
+ "▄",
738
+ "▅",
739
+ "▆",
740
+ "▇",
741
+ "▆",
742
+ "▅",
743
+ "▄",
744
+ "▃"
745
+ ]
746
+ };
747
+ var growHorizontal = {
748
+ interval: 120,
749
+ frames: [
750
+ "▏",
751
+ "▎",
752
+ "▍",
753
+ "▌",
754
+ "▋",
755
+ "▊",
756
+ "▉",
757
+ "▊",
758
+ "▋",
759
+ "▌",
760
+ "▍",
761
+ "▎"
762
+ ]
763
+ };
764
+ var balloon = {
765
+ interval: 140,
766
+ frames: [
767
+ " ",
768
+ ".",
769
+ "o",
770
+ "O",
771
+ "@",
772
+ "*",
773
+ " "
774
+ ]
775
+ };
776
+ var balloon2 = {
777
+ interval: 120,
778
+ frames: [
779
+ ".",
780
+ "o",
781
+ "O",
782
+ "°",
783
+ "O",
784
+ "o",
785
+ "."
786
+ ]
787
+ };
788
+ var noise = {
789
+ interval: 100,
790
+ frames: [
791
+ "▓",
792
+ "▒",
793
+ "░"
794
+ ]
795
+ };
796
+ var bounce = {
797
+ interval: 120,
798
+ frames: [
799
+ "⠁",
800
+ "⠂",
801
+ "⠄",
802
+ "⠂"
803
+ ]
804
+ };
805
+ var boxBounce = {
806
+ interval: 120,
807
+ frames: [
808
+ "▖",
809
+ "▘",
810
+ "▝",
811
+ "▗"
812
+ ]
813
+ };
814
+ var boxBounce2 = {
815
+ interval: 100,
816
+ frames: [
817
+ "▌",
818
+ "▀",
819
+ "▐",
820
+ "▄"
821
+ ]
822
+ };
823
+ var triangle = {
824
+ interval: 50,
825
+ frames: [
826
+ "◢",
827
+ "◣",
828
+ "◤",
829
+ "◥"
830
+ ]
831
+ };
832
+ var binary = {
833
+ interval: 80,
834
+ frames: [
835
+ "010010",
836
+ "001100",
837
+ "100101",
838
+ "111010",
839
+ "111101",
840
+ "010111",
841
+ "101011",
842
+ "111000",
843
+ "110011",
844
+ "110101"
845
+ ]
846
+ };
847
+ var arc = {
848
+ interval: 100,
849
+ frames: [
850
+ "◜",
851
+ "◠",
852
+ "◝",
853
+ "◞",
854
+ "◡",
855
+ "◟"
856
+ ]
857
+ };
858
+ var circle = {
859
+ interval: 120,
860
+ frames: [
861
+ "◡",
862
+ "⊙",
863
+ "◠"
864
+ ]
865
+ };
866
+ var squareCorners = {
867
+ interval: 180,
868
+ frames: [
869
+ "◰",
870
+ "◳",
871
+ "◲",
872
+ "◱"
873
+ ]
874
+ };
875
+ var circleQuarters = {
876
+ interval: 120,
877
+ frames: [
878
+ "◴",
879
+ "◷",
880
+ "◶",
881
+ "◵"
882
+ ]
883
+ };
884
+ var circleHalves = {
885
+ interval: 50,
886
+ frames: [
887
+ "◐",
888
+ "◓",
889
+ "◑",
890
+ "◒"
891
+ ]
892
+ };
893
+ var squish = {
894
+ interval: 100,
895
+ frames: [
896
+ "╫",
897
+ "╪"
898
+ ]
899
+ };
900
+ var toggle = {
901
+ interval: 250,
902
+ frames: [
903
+ "⊶",
904
+ "⊷"
905
+ ]
906
+ };
907
+ var toggle2 = {
908
+ interval: 80,
909
+ frames: [
910
+ "▫",
911
+ "▪"
912
+ ]
913
+ };
914
+ var toggle3 = {
915
+ interval: 120,
916
+ frames: [
917
+ "□",
918
+ "■"
919
+ ]
920
+ };
921
+ var toggle4 = {
922
+ interval: 100,
923
+ frames: [
924
+ "■",
925
+ "□",
926
+ "▪",
927
+ "▫"
928
+ ]
929
+ };
930
+ var toggle5 = {
931
+ interval: 100,
932
+ frames: [
933
+ "▮",
934
+ "▯"
935
+ ]
936
+ };
937
+ var toggle6 = {
938
+ interval: 300,
939
+ frames: [
940
+ "ဝ",
941
+ "၀"
942
+ ]
943
+ };
944
+ var toggle7 = {
945
+ interval: 80,
946
+ frames: [
947
+ "⦾",
948
+ "⦿"
949
+ ]
950
+ };
951
+ var toggle8 = {
952
+ interval: 100,
953
+ frames: [
954
+ "◍",
955
+ "◌"
956
+ ]
957
+ };
958
+ var toggle9 = {
959
+ interval: 100,
960
+ frames: [
961
+ "◉",
962
+ "◎"
963
+ ]
964
+ };
965
+ var toggle10 = {
966
+ interval: 100,
967
+ frames: [
968
+ "㊂",
969
+ "㊀",
970
+ "㊁"
971
+ ]
972
+ };
973
+ var toggle11 = {
974
+ interval: 50,
975
+ frames: [
976
+ "⧇",
977
+ "⧆"
978
+ ]
979
+ };
980
+ var toggle12 = {
981
+ interval: 120,
982
+ frames: [
983
+ "☗",
984
+ "☖"
985
+ ]
986
+ };
987
+ var toggle13 = {
988
+ interval: 80,
989
+ frames: [
990
+ "=",
991
+ "*",
992
+ "-"
993
+ ]
994
+ };
995
+ var arrow = {
996
+ interval: 100,
997
+ frames: [
998
+ "←",
999
+ "↖",
1000
+ "↑",
1001
+ "↗",
1002
+ "→",
1003
+ "↘",
1004
+ "↓",
1005
+ "↙"
1006
+ ]
1007
+ };
1008
+ var arrow2 = {
1009
+ interval: 80,
1010
+ frames: [
1011
+ "⬆️ ",
1012
+ "↗️ ",
1013
+ "➡️ ",
1014
+ "↘️ ",
1015
+ "⬇️ ",
1016
+ "↙️ ",
1017
+ "⬅️ ",
1018
+ "↖️ "
1019
+ ]
1020
+ };
1021
+ var arrow3 = {
1022
+ interval: 120,
1023
+ frames: [
1024
+ "▹▹▹▹▹",
1025
+ "▸▹▹▹▹",
1026
+ "▹▸▹▹▹",
1027
+ "▹▹▸▹▹",
1028
+ "▹▹▹▸▹",
1029
+ "▹▹▹▹▸"
1030
+ ]
1031
+ };
1032
+ var bouncingBar = {
1033
+ interval: 80,
1034
+ frames: [
1035
+ "[ ]",
1036
+ "[= ]",
1037
+ "[== ]",
1038
+ "[=== ]",
1039
+ "[====]",
1040
+ "[ ===]",
1041
+ "[ ==]",
1042
+ "[ =]",
1043
+ "[ ]",
1044
+ "[ =]",
1045
+ "[ ==]",
1046
+ "[ ===]",
1047
+ "[====]",
1048
+ "[=== ]",
1049
+ "[== ]",
1050
+ "[= ]"
1051
+ ]
1052
+ };
1053
+ var bouncingBall = {
1054
+ interval: 80,
1055
+ frames: [
1056
+ "( ● )",
1057
+ "( ● )",
1058
+ "( ● )",
1059
+ "( ● )",
1060
+ "( ●)",
1061
+ "( ● )",
1062
+ "( ● )",
1063
+ "( ● )",
1064
+ "( ● )",
1065
+ "(● )"
1066
+ ]
1067
+ };
1068
+ var smiley = {
1069
+ interval: 200,
1070
+ frames: [
1071
+ "😄 ",
1072
+ "😝 "
1073
+ ]
1074
+ };
1075
+ var monkey = {
1076
+ interval: 300,
1077
+ frames: [
1078
+ "🙈 ",
1079
+ "🙈 ",
1080
+ "🙉 ",
1081
+ "🙊 "
1082
+ ]
1083
+ };
1084
+ var hearts = {
1085
+ interval: 100,
1086
+ frames: [
1087
+ "💛 ",
1088
+ "💙 ",
1089
+ "💜 ",
1090
+ "💚 ",
1091
+ "💗 "
1092
+ ]
1093
+ };
1094
+ var clock = {
1095
+ interval: 100,
1096
+ frames: [
1097
+ "🕛 ",
1098
+ "🕐 ",
1099
+ "🕑 ",
1100
+ "🕒 ",
1101
+ "🕓 ",
1102
+ "🕔 ",
1103
+ "🕕 ",
1104
+ "🕖 ",
1105
+ "🕗 ",
1106
+ "🕘 ",
1107
+ "🕙 ",
1108
+ "🕚 "
1109
+ ]
1110
+ };
1111
+ var earth = {
1112
+ interval: 180,
1113
+ frames: [
1114
+ "🌍 ",
1115
+ "🌎 ",
1116
+ "🌏 "
1117
+ ]
1118
+ };
1119
+ var material = {
1120
+ interval: 17,
1121
+ frames: [
1122
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1123
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1124
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1125
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1126
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1127
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1128
+ "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
1129
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
1130
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1131
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1132
+ "██████████▁▁▁▁▁▁▁▁▁▁",
1133
+ "███████████▁▁▁▁▁▁▁▁▁",
1134
+ "█████████████▁▁▁▁▁▁▁",
1135
+ "██████████████▁▁▁▁▁▁",
1136
+ "██████████████▁▁▁▁▁▁",
1137
+ "▁██████████████▁▁▁▁▁",
1138
+ "▁██████████████▁▁▁▁▁",
1139
+ "▁██████████████▁▁▁▁▁",
1140
+ "▁▁██████████████▁▁▁▁",
1141
+ "▁▁▁██████████████▁▁▁",
1142
+ "▁▁▁▁█████████████▁▁▁",
1143
+ "▁▁▁▁██████████████▁▁",
1144
+ "▁▁▁▁██████████████▁▁",
1145
+ "▁▁▁▁▁██████████████▁",
1146
+ "▁▁▁▁▁██████████████▁",
1147
+ "▁▁▁▁▁██████████████▁",
1148
+ "▁▁▁▁▁▁██████████████",
1149
+ "▁▁▁▁▁▁██████████████",
1150
+ "▁▁▁▁▁▁▁█████████████",
1151
+ "▁▁▁▁▁▁▁█████████████",
1152
+ "▁▁▁▁▁▁▁▁████████████",
1153
+ "▁▁▁▁▁▁▁▁████████████",
1154
+ "▁▁▁▁▁▁▁▁▁███████████",
1155
+ "▁▁▁▁▁▁▁▁▁███████████",
1156
+ "▁▁▁▁▁▁▁▁▁▁██████████",
1157
+ "▁▁▁▁▁▁▁▁▁▁██████████",
1158
+ "▁▁▁▁▁▁▁▁▁▁▁▁████████",
1159
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1160
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
1161
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1162
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1163
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1164
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1165
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1166
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1167
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1168
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1169
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1170
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1171
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
1172
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1173
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1174
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1175
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1176
+ "███████████▁▁▁▁▁▁▁▁▁",
1177
+ "████████████▁▁▁▁▁▁▁▁",
1178
+ "████████████▁▁▁▁▁▁▁▁",
1179
+ "██████████████▁▁▁▁▁▁",
1180
+ "██████████████▁▁▁▁▁▁",
1181
+ "▁██████████████▁▁▁▁▁",
1182
+ "▁██████████████▁▁▁▁▁",
1183
+ "▁▁▁█████████████▁▁▁▁",
1184
+ "▁▁▁▁▁████████████▁▁▁",
1185
+ "▁▁▁▁▁████████████▁▁▁",
1186
+ "▁▁▁▁▁▁███████████▁▁▁",
1187
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
1188
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
1189
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
1190
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
1191
+ "▁▁▁▁▁▁▁▁▁▁█████████▁",
1192
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
1193
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
1194
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1195
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1196
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1197
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1198
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1199
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1200
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1201
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1202
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1203
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1204
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1205
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1206
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1207
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1208
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1209
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1210
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1211
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1212
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1213
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"
1214
+ ]
1215
+ };
1216
+ var moon = {
1217
+ interval: 80,
1218
+ frames: [
1219
+ "🌑 ",
1220
+ "🌒 ",
1221
+ "🌓 ",
1222
+ "🌔 ",
1223
+ "🌕 ",
1224
+ "🌖 ",
1225
+ "🌗 ",
1226
+ "🌘 "
1227
+ ]
1228
+ };
1229
+ var runner = {
1230
+ interval: 140,
1231
+ frames: [
1232
+ "🚶 ",
1233
+ "🏃 "
1234
+ ]
1235
+ };
1236
+ var pong = {
1237
+ interval: 80,
1238
+ frames: [
1239
+ "▐⠂ ▌",
1240
+ "▐⠈ ▌",
1241
+ "▐ ⠂ ▌",
1242
+ "▐ ⠠ ▌",
1243
+ "▐ ⡀ ▌",
1244
+ "▐ ⠠ ▌",
1245
+ "▐ ⠂ ▌",
1246
+ "▐ ⠈ ▌",
1247
+ "▐ ⠂ ▌",
1248
+ "▐ ⠠ ▌",
1249
+ "▐ ⡀ ▌",
1250
+ "▐ ⠠ ▌",
1251
+ "▐ ⠂ ▌",
1252
+ "▐ ⠈ ▌",
1253
+ "▐ ⠂▌",
1254
+ "▐ ⠠▌",
1255
+ "▐ ⡀▌",
1256
+ "▐ ⠠ ▌",
1257
+ "▐ ⠂ ▌",
1258
+ "▐ ⠈ ▌",
1259
+ "▐ ⠂ ▌",
1260
+ "▐ ⠠ ▌",
1261
+ "▐ ⡀ ▌",
1262
+ "▐ ⠠ ▌",
1263
+ "▐ ⠂ ▌",
1264
+ "▐ ⠈ ▌",
1265
+ "▐ ⠂ ▌",
1266
+ "▐ ⠠ ▌",
1267
+ "▐ ⡀ ▌",
1268
+ "▐⠠ ▌"
1269
+ ]
1270
+ };
1271
+ var shark = {
1272
+ interval: 120,
1273
+ frames: [
1274
+ "▐|\\____________▌",
1275
+ "▐_|\\___________▌",
1276
+ "▐__|\\__________▌",
1277
+ "▐___|\\_________▌",
1278
+ "▐____|\\________▌",
1279
+ "▐_____|\\_______▌",
1280
+ "▐______|\\______▌",
1281
+ "▐_______|\\_____▌",
1282
+ "▐________|\\____▌",
1283
+ "▐_________|\\___▌",
1284
+ "▐__________|\\__▌",
1285
+ "▐___________|\\_▌",
1286
+ "▐____________|\\▌",
1287
+ "▐____________/|▌",
1288
+ "▐___________/|_▌",
1289
+ "▐__________/|__▌",
1290
+ "▐_________/|___▌",
1291
+ "▐________/|____▌",
1292
+ "▐_______/|_____▌",
1293
+ "▐______/|______▌",
1294
+ "▐_____/|_______▌",
1295
+ "▐____/|________▌",
1296
+ "▐___/|_________▌",
1297
+ "▐__/|__________▌",
1298
+ "▐_/|___________▌",
1299
+ "▐/|____________▌"
1300
+ ]
1301
+ };
1302
+ var dqpb = {
1303
+ interval: 100,
1304
+ frames: [
1305
+ "d",
1306
+ "q",
1307
+ "p",
1308
+ "b"
1309
+ ]
1310
+ };
1311
+ var weather = {
1312
+ interval: 100,
1313
+ frames: [
1314
+ "☀️ ",
1315
+ "☀️ ",
1316
+ "☀️ ",
1317
+ "🌤 ",
1318
+ "⛅️ ",
1319
+ "🌥 ",
1320
+ "☁️ ",
1321
+ "🌧 ",
1322
+ "🌨 ",
1323
+ "🌧 ",
1324
+ "🌨 ",
1325
+ "🌧 ",
1326
+ "🌨 ",
1327
+ "⛈ ",
1328
+ "🌨 ",
1329
+ "🌧 ",
1330
+ "🌨 ",
1331
+ "☁️ ",
1332
+ "🌥 ",
1333
+ "⛅️ ",
1334
+ "🌤 ",
1335
+ "☀️ ",
1336
+ "☀️ "
1337
+ ]
1338
+ };
1339
+ var christmas = {
1340
+ interval: 400,
1341
+ frames: [
1342
+ "🌲",
1343
+ "🎄"
1344
+ ]
1345
+ };
1346
+ var grenade = {
1347
+ interval: 80,
1348
+ frames: [
1349
+ "، ",
1350
+ "′ ",
1351
+ " ´ ",
1352
+ " ‾ ",
1353
+ " ⸌",
1354
+ " ⸊",
1355
+ " |",
1356
+ " ⁎",
1357
+ " ⁕",
1358
+ " ෴ ",
1359
+ " ⁓",
1360
+ " ",
1361
+ " ",
1362
+ " "
1363
+ ]
1364
+ };
1365
+ var point = {
1366
+ interval: 125,
1367
+ frames: [
1368
+ "∙∙∙",
1369
+ "●∙∙",
1370
+ "∙●∙",
1371
+ "∙∙●",
1372
+ "∙∙∙"
1373
+ ]
1374
+ };
1375
+ var layer = {
1376
+ interval: 150,
1377
+ frames: [
1378
+ "-",
1379
+ "=",
1380
+ "≡"
1381
+ ]
1382
+ };
1383
+ var betaWave = {
1384
+ interval: 80,
1385
+ frames: [
1386
+ "ρββββββ",
1387
+ "βρβββββ",
1388
+ "ββρββββ",
1389
+ "βββρβββ",
1390
+ "ββββρββ",
1391
+ "βββββρβ",
1392
+ "ββββββρ"
1393
+ ]
1394
+ };
1395
+ var fingerDance = {
1396
+ interval: 160,
1397
+ frames: [
1398
+ "🤘 ",
1399
+ "🤟 ",
1400
+ "🖖 ",
1401
+ "✋ ",
1402
+ "🤚 ",
1403
+ "👆 "
1404
+ ]
1405
+ };
1406
+ var fistBump = {
1407
+ interval: 80,
1408
+ frames: [
1409
+ "🤜    🤛 ",
1410
+ "🤜    🤛 ",
1411
+ "🤜    🤛 ",
1412
+ " 🤜  🤛  ",
1413
+ "  🤜🤛   ",
1414
+ " 🤜✨🤛   ",
1415
+ "🤜 ✨ 🤛  "
1416
+ ]
1417
+ };
1418
+ var soccerHeader = {
1419
+ interval: 80,
1420
+ frames: [
1421
+ " 🧑⚽️ 🧑 ",
1422
+ "🧑 ⚽️ 🧑 ",
1423
+ "🧑 ⚽️ 🧑 ",
1424
+ "🧑 ⚽️ 🧑 ",
1425
+ "🧑 ⚽️ 🧑 ",
1426
+ "🧑 ⚽️ 🧑 ",
1427
+ "🧑 ⚽️🧑 ",
1428
+ "🧑 ⚽️ 🧑 ",
1429
+ "🧑 ⚽️ 🧑 ",
1430
+ "🧑 ⚽️ 🧑 ",
1431
+ "🧑 ⚽️ 🧑 ",
1432
+ "🧑 ⚽️ 🧑 "
1433
+ ]
1434
+ };
1435
+ var mindblown = {
1436
+ interval: 160,
1437
+ frames: [
1438
+ "😐 ",
1439
+ "😐 ",
1440
+ "😮 ",
1441
+ "😮 ",
1442
+ "😦 ",
1443
+ "😦 ",
1444
+ "😧 ",
1445
+ "😧 ",
1446
+ "🤯 ",
1447
+ "💥 ",
1448
+ "✨ ",
1449
+ "  ",
1450
+ "  ",
1451
+ "  "
1452
+ ]
1453
+ };
1454
+ var speaker = {
1455
+ interval: 160,
1456
+ frames: [
1457
+ "🔈 ",
1458
+ "🔉 ",
1459
+ "🔊 ",
1460
+ "🔉 "
1461
+ ]
1462
+ };
1463
+ var orangePulse = {
1464
+ interval: 100,
1465
+ frames: [
1466
+ "🔸 ",
1467
+ "🔶 ",
1468
+ "🟠 ",
1469
+ "🟠 ",
1470
+ "🔶 "
1471
+ ]
1472
+ };
1473
+ var bluePulse = {
1474
+ interval: 100,
1475
+ frames: [
1476
+ "🔹 ",
1477
+ "🔷 ",
1478
+ "🔵 ",
1479
+ "🔵 ",
1480
+ "🔷 "
1481
+ ]
1482
+ };
1483
+ var orangeBluePulse = {
1484
+ interval: 100,
1485
+ frames: [
1486
+ "🔸 ",
1487
+ "🔶 ",
1488
+ "🟠 ",
1489
+ "🟠 ",
1490
+ "🔶 ",
1491
+ "🔹 ",
1492
+ "🔷 ",
1493
+ "🔵 ",
1494
+ "🔵 ",
1495
+ "🔷 "
1496
+ ]
1497
+ };
1498
+ var timeTravel = {
1499
+ interval: 100,
1500
+ frames: [
1501
+ "🕛 ",
1502
+ "🕚 ",
1503
+ "🕙 ",
1504
+ "🕘 ",
1505
+ "🕗 ",
1506
+ "🕖 ",
1507
+ "🕕 ",
1508
+ "🕔 ",
1509
+ "🕓 ",
1510
+ "🕒 ",
1511
+ "🕑 ",
1512
+ "🕐 "
1513
+ ]
1514
+ };
1515
+ var aesthetic = {
1516
+ interval: 80,
1517
+ frames: [
1518
+ "▰▱▱▱▱▱▱",
1519
+ "▰▰▱▱▱▱▱",
1520
+ "▰▰▰▱▱▱▱",
1521
+ "▰▰▰▰▱▱▱",
1522
+ "▰▰▰▰▰▱▱",
1523
+ "▰▰▰▰▰▰▱",
1524
+ "▰▰▰▰▰▰▰",
1525
+ "▰▱▱▱▱▱▱"
1526
+ ]
1527
+ };
1528
+ var dwarfFortress = {
1529
+ interval: 80,
1530
+ frames: [
1531
+ " ██████£££ ",
1532
+ "☺██████£££ ",
1533
+ "☺██████£££ ",
1534
+ "☺▓█████£££ ",
1535
+ "☺▓█████£££ ",
1536
+ "☺▒█████£££ ",
1537
+ "☺▒█████£££ ",
1538
+ "☺░█████£££ ",
1539
+ "☺░█████£££ ",
1540
+ "☺ █████£££ ",
1541
+ " ☺█████£££ ",
1542
+ " ☺█████£££ ",
1543
+ " ☺▓████£££ ",
1544
+ " ☺▓████£££ ",
1545
+ " ☺▒████£££ ",
1546
+ " ☺▒████£££ ",
1547
+ " ☺░████£££ ",
1548
+ " ☺░████£££ ",
1549
+ " ☺ ████£££ ",
1550
+ " ☺████£££ ",
1551
+ " ☺████£££ ",
1552
+ " ☺▓███£££ ",
1553
+ " ☺▓███£££ ",
1554
+ " ☺▒███£££ ",
1555
+ " ☺▒███£££ ",
1556
+ " ☺░███£££ ",
1557
+ " ☺░███£££ ",
1558
+ " ☺ ███£££ ",
1559
+ " ☺███£££ ",
1560
+ " ☺███£££ ",
1561
+ " ☺▓██£££ ",
1562
+ " ☺▓██£££ ",
1563
+ " ☺▒██£££ ",
1564
+ " ☺▒██£££ ",
1565
+ " ☺░██£££ ",
1566
+ " ☺░██£££ ",
1567
+ " ☺ ██£££ ",
1568
+ " ☺██£££ ",
1569
+ " ☺██£££ ",
1570
+ " ☺▓█£££ ",
1571
+ " ☺▓█£££ ",
1572
+ " ☺▒█£££ ",
1573
+ " ☺▒█£££ ",
1574
+ " ☺░█£££ ",
1575
+ " ☺░█£££ ",
1576
+ " ☺ █£££ ",
1577
+ " ☺█£££ ",
1578
+ " ☺█£££ ",
1579
+ " ☺▓£££ ",
1580
+ " ☺▓£££ ",
1581
+ " ☺▒£££ ",
1582
+ " ☺▒£££ ",
1583
+ " ☺░£££ ",
1584
+ " ☺░£££ ",
1585
+ " ☺ £££ ",
1586
+ " ☺£££ ",
1587
+ " ☺£££ ",
1588
+ " ☺▓££ ",
1589
+ " ☺▓££ ",
1590
+ " ☺▒££ ",
1591
+ " ☺▒££ ",
1592
+ " ☺░££ ",
1593
+ " ☺░££ ",
1594
+ " ☺ ££ ",
1595
+ " ☺££ ",
1596
+ " ☺££ ",
1597
+ " ☺▓£ ",
1598
+ " ☺▓£ ",
1599
+ " ☺▒£ ",
1600
+ " ☺▒£ ",
1601
+ " ☺░£ ",
1602
+ " ☺░£ ",
1603
+ " ☺ £ ",
1604
+ " ☺£ ",
1605
+ " ☺£ ",
1606
+ " ☺▓ ",
1607
+ " ☺▓ ",
1608
+ " ☺▒ ",
1609
+ " ☺▒ ",
1610
+ " ☺░ ",
1611
+ " ☺░ ",
1612
+ " ☺ ",
1613
+ " ☺ &",
1614
+ " ☺ ☼&",
1615
+ " ☺ ☼ &",
1616
+ " ☺☼ &",
1617
+ " ☺☼ & ",
1618
+ " ‼ & ",
1619
+ " ☺ & ",
1620
+ " ‼ & ",
1621
+ " ☺ & ",
1622
+ " ‼ & ",
1623
+ " ☺ & ",
1624
+ "‼ & ",
1625
+ " & ",
1626
+ " & ",
1627
+ " & ░ ",
1628
+ " & ▒ ",
1629
+ " & ▓ ",
1630
+ " & £ ",
1631
+ " & ░£ ",
1632
+ " & ▒£ ",
1633
+ " & ▓£ ",
1634
+ " & ££ ",
1635
+ " & ░££ ",
1636
+ " & ▒££ ",
1637
+ "& ▓££ ",
1638
+ "& £££ ",
1639
+ " ░£££ ",
1640
+ " ▒£££ ",
1641
+ " ▓£££ ",
1642
+ " █£££ ",
1643
+ " ░█£££ ",
1644
+ " ▒█£££ ",
1645
+ " ▓█£££ ",
1646
+ " ██£££ ",
1647
+ " ░██£££ ",
1648
+ " ▒██£££ ",
1649
+ " ▓██£££ ",
1650
+ " ███£££ ",
1651
+ " ░███£££ ",
1652
+ " ▒███£££ ",
1653
+ " ▓███£££ ",
1654
+ " ████£££ ",
1655
+ " ░████£££ ",
1656
+ " ▒████£££ ",
1657
+ " ▓████£££ ",
1658
+ " █████£££ ",
1659
+ " ░█████£££ ",
1660
+ " ▒█████£££ ",
1661
+ " ▓█████£££ ",
1662
+ " ██████£££ ",
1663
+ " ██████£££ "
1664
+ ]
1665
+ };
1666
+ const spinners = {
1667
+ dots: dots,
1668
+ dots2: dots2,
1669
+ dots3: dots3,
1670
+ dots4: dots4,
1671
+ dots5: dots5,
1672
+ dots6: dots6,
1673
+ dots7: dots7,
1674
+ dots8: dots8,
1675
+ dots9: dots9,
1676
+ dots10: dots10,
1677
+ dots11: dots11,
1678
+ dots12: dots12,
1679
+ dots13: dots13,
1680
+ dots14: dots14,
1681
+ dots8Bit: dots8Bit,
1682
+ dotsCircle: dotsCircle,
1683
+ sand: sand,
1684
+ line: line,
1685
+ line2: line2,
1686
+ rollingLine: rollingLine,
1687
+ pipe: pipe,
1688
+ simpleDots: simpleDots,
1689
+ simpleDotsScrolling: simpleDotsScrolling,
1690
+ star: star,
1691
+ star2: star2,
1692
+ flip: flip,
1693
+ hamburger: hamburger,
1694
+ growVertical: growVertical,
1695
+ growHorizontal: growHorizontal,
1696
+ balloon: balloon,
1697
+ balloon2: balloon2,
1698
+ noise: noise,
1699
+ bounce: bounce,
1700
+ boxBounce: boxBounce,
1701
+ boxBounce2: boxBounce2,
1702
+ triangle: triangle,
1703
+ binary: binary,
1704
+ arc: arc,
1705
+ circle: circle,
1706
+ squareCorners: squareCorners,
1707
+ circleQuarters: circleQuarters,
1708
+ circleHalves: circleHalves,
1709
+ squish: squish,
1710
+ toggle: toggle,
1711
+ toggle2: toggle2,
1712
+ toggle3: toggle3,
1713
+ toggle4: toggle4,
1714
+ toggle5: toggle5,
1715
+ toggle6: toggle6,
1716
+ toggle7: toggle7,
1717
+ toggle8: toggle8,
1718
+ toggle9: toggle9,
1719
+ toggle10: toggle10,
1720
+ toggle11: toggle11,
1721
+ toggle12: toggle12,
1722
+ toggle13: toggle13,
1723
+ arrow: arrow,
1724
+ arrow2: arrow2,
1725
+ arrow3: arrow3,
1726
+ bouncingBar: bouncingBar,
1727
+ bouncingBall: bouncingBall,
1728
+ smiley: smiley,
1729
+ monkey: monkey,
1730
+ hearts: hearts,
1731
+ clock: clock,
1732
+ earth: earth,
1733
+ material: material,
1734
+ moon: moon,
1735
+ runner: runner,
1736
+ pong: pong,
1737
+ shark: shark,
1738
+ dqpb: dqpb,
1739
+ weather: weather,
1740
+ christmas: christmas,
1741
+ grenade: grenade,
1742
+ point: point,
1743
+ layer: layer,
1744
+ betaWave: betaWave,
1745
+ fingerDance: fingerDance,
1746
+ fistBump: fistBump,
1747
+ soccerHeader: soccerHeader,
1748
+ mindblown: mindblown,
1749
+ speaker: speaker,
1750
+ orangePulse: orangePulse,
1751
+ bluePulse: bluePulse,
1752
+ orangeBluePulse: orangeBluePulse,
1753
+ timeTravel: timeTravel,
1754
+ aesthetic: aesthetic,
1755
+ dwarfFortress: dwarfFortress
1756
+ };
1757
+
1758
+ const DEFAULT_ICONS = {
1759
+ error: "✖",
1760
+ info: "ℹ",
1761
+ success: "✓",
1762
+ warning: "⚠"
1763
+ };
1764
+ const applyStyle = (text, style) => {
1765
+ if (!style) {
1766
+ return text;
1767
+ }
1768
+ let styled = colorize;
1769
+ if (style.bold)
1770
+ styled = styled.bold;
1771
+ if (style.dim)
1772
+ styled = styled.dim;
1773
+ if (style.italic)
1774
+ styled = styled.italic;
1775
+ if (style.underline)
1776
+ styled = styled.underline;
1777
+ if (style.strikethrough)
1778
+ styled = styled.strikethrough;
1779
+ if (style.inverse)
1780
+ styled = styled.inverse;
1781
+ if (style.overline)
1782
+ styled = styled.overline;
1783
+ if (style.color) {
1784
+ styled = styled[style.color];
1785
+ } else if (style.hex) {
1786
+ styled = styled.hex(style.hex);
1787
+ } else if (style.rgb) {
1788
+ styled = styled.rgb(...style.rgb);
1789
+ }
1790
+ if (style.bgColor) {
1791
+ styled = styled[style.bgColor];
1792
+ } else if (style.bgHex) {
1793
+ styled = styled.bgHex(style.bgHex);
1794
+ } else if (style.bgRgb) {
1795
+ styled = styled.bgRgb(...style.bgRgb);
1796
+ }
1797
+ return styled(text);
1798
+ };
1799
+ class Spinner {
1800
+ #frame = 0;
1801
+ #frameInterval;
1802
+ #isActive = false;
1803
+ #prefixText = "";
1804
+ #text = "";
1805
+ #startTime = 0;
1806
+ #interactiveManager;
1807
+ #multiSpinner;
1808
+ #finalOutput = "";
1809
+ #spinnerName;
1810
+ #verbose;
1811
+ #style;
1812
+ #icons;
1813
+ /**
1814
+ * Creates a new Spinner instance.
1815
+ * @param options Configuration options for the spinner
1816
+ * @param interactiveManager Optional interactive manager for terminal control
1817
+ */
1818
+ constructor(options = {}, interactiveManager) {
1819
+ this.#spinnerName = options.name ?? "dots";
1820
+ this.#verbose = options.verbose !== false;
1821
+ this.#style = options.style;
1822
+ this.#prefixText = options.prefixText ?? "";
1823
+ this.#interactiveManager = interactiveManager;
1824
+ this.#icons = { ...DEFAULT_ICONS, ...options.icons };
1825
+ }
1826
+ /**
1827
+ * Current elapsed time in milliseconds.
1828
+ */
1829
+ get elapsedTime() {
1830
+ return Date.now() - this.#startTime;
1831
+ }
1832
+ /**
1833
+ * Get or set the spinner text.
1834
+ */
1835
+ get getText() {
1836
+ return this.#text;
1837
+ }
1838
+ set text(value) {
1839
+ this.#text = value;
1840
+ if (this.#isActive) {
1841
+ if (this.#multiSpinner) {
1842
+ this.#multiSpinner.renderAll();
1843
+ } else if (this.#interactiveManager) {
1844
+ this.#render();
1845
+ }
1846
+ }
1847
+ }
1848
+ /**
1849
+ * Get or set the prefix text.
1850
+ */
1851
+ get getPrefixText() {
1852
+ return this.#prefixText;
1853
+ }
1854
+ set prefixText(value) {
1855
+ this.#prefixText = value;
1856
+ if (this.#isActive) {
1857
+ if (this.#multiSpinner) {
1858
+ this.#multiSpinner.renderAll();
1859
+ } else if (this.#interactiveManager) {
1860
+ this.#render();
1861
+ }
1862
+ }
1863
+ }
1864
+ /**
1865
+ * Whether the spinner is currently active.
1866
+ */
1867
+ get isRunning() {
1868
+ return this.#isActive;
1869
+ }
1870
+ /**
1871
+ * Set the interactive manager for interactive mode.
1872
+ * @internal
1873
+ */
1874
+ setInteractiveManager(manager) {
1875
+ this.#interactiveManager = manager;
1876
+ }
1877
+ /**
1878
+ * Set the multi spinner reference.
1879
+ * @internal
1880
+ */
1881
+ setMultiSpinner(multiSpinner) {
1882
+ this.#multiSpinner = multiSpinner;
1883
+ }
1884
+ /**
1885
+ * Start the spinner with optional text.
1886
+ * @param text Optional text to display
1887
+ * @param options
1888
+ * @param options.prefixText Optional prefix text to display
1889
+ * @returns The spinner instance for chaining
1890
+ */
1891
+ start(text, options) {
1892
+ if (this.#isActive) {
1893
+ return this;
1894
+ }
1895
+ if (!this.#verbose) {
1896
+ return this;
1897
+ }
1898
+ this.#isActive = true;
1899
+ this.#startTime = Date.now();
1900
+ this.#frame = 0;
1901
+ if (text) {
1902
+ this.#text = text;
1903
+ }
1904
+ if (options?.prefixText) {
1905
+ this.#prefixText = options.prefixText;
1906
+ }
1907
+ const manager = this.#multiSpinner || this.#interactiveManager;
1908
+ if (manager) {
1909
+ if (this.#multiSpinner) {
1910
+ manager.renderAll();
1911
+ } else {
1912
+ manager.hook();
1913
+ this.#render();
1914
+ }
1915
+ }
1916
+ const spinner = spinners[this.#spinnerName];
1917
+ this.#frameInterval = setInterval(() => {
1918
+ if (this.#isActive) {
1919
+ this.#frame = (this.#frame + 1) % spinner.frames.length;
1920
+ if (this.#multiSpinner) {
1921
+ this.#multiSpinner.renderAll();
1922
+ } else if (this.#interactiveManager) {
1923
+ this.#render();
1924
+ }
1925
+ }
1926
+ }, spinner.interval);
1927
+ return this;
1928
+ }
1929
+ /**
1930
+ * Stop the spinner with a success message.
1931
+ * @param text Optional success text
1932
+ */
1933
+ succeed(text) {
1934
+ this.#stop("success", text);
1935
+ }
1936
+ /**
1937
+ * Stop the spinner with a failure message.
1938
+ * @param text Optional failure text
1939
+ */
1940
+ failed(text) {
1941
+ this.#stop("error", text);
1942
+ }
1943
+ /**
1944
+ * Stop the spinner with a warning message.
1945
+ * @param text Optional warning text
1946
+ */
1947
+ warn(text) {
1948
+ this.#stop("warning", text);
1949
+ }
1950
+ /**
1951
+ * Stop the spinner with an info message.
1952
+ * @param text Optional info text
1953
+ */
1954
+ info(text) {
1955
+ this.#stop("info", text);
1956
+ }
1957
+ /**
1958
+ * Pause the spinner without stopping it.
1959
+ */
1960
+ pause() {
1961
+ if (this.#frameInterval) {
1962
+ clearInterval(this.#frameInterval);
1963
+ this.#frameInterval = void 0;
1964
+ }
1965
+ }
1966
+ /**
1967
+ * Resume the spinner if it was paused.
1968
+ */
1969
+ resume() {
1970
+ if (!this.#isActive) {
1971
+ return;
1972
+ }
1973
+ if (this.#frameInterval) {
1974
+ clearInterval(this.#frameInterval);
1975
+ }
1976
+ const spinner = spinners[this.#spinnerName];
1977
+ this.#frameInterval = setInterval(() => {
1978
+ if (this.#isActive) {
1979
+ this.#frame = (this.#frame + 1) % spinner.frames.length;
1980
+ if (this.#multiSpinner) {
1981
+ this.#multiSpinner.renderAll();
1982
+ } else if (this.#interactiveManager) {
1983
+ this.#render();
1984
+ }
1985
+ }
1986
+ }, spinner.interval);
1987
+ }
1988
+ /**
1989
+ * Get current frame output.
1990
+ * @internal
1991
+ */
1992
+ getFrameOutput() {
1993
+ if (!this.#isActive && this.#finalOutput) {
1994
+ return this.#finalOutput;
1995
+ }
1996
+ const spinner = spinners[this.#spinnerName];
1997
+ const frame = spinner.frames[this.#frame];
1998
+ let output = applyStyle(frame, this.#style);
1999
+ if (this.#prefixText) {
2000
+ output = `${this.#prefixText} ${output}`;
2001
+ }
2002
+ if (this.#text) {
2003
+ output = `${output} ${this.#text}`;
2004
+ }
2005
+ return output;
2006
+ }
2007
+ /**
2008
+ * Render the current spinner frame.
2009
+ */
2010
+ #render() {
2011
+ if (this.#interactiveManager) {
2012
+ this.#interactiveManager.update("stdout", [this.getFrameOutput()]);
2013
+ }
2014
+ }
2015
+ /**
2016
+ * Stop the spinner with a given status.
2017
+ * @param status The status type (success, error, warning, info)
2018
+ * @param text Optional text to display
2019
+ */
2020
+ #stop(status, text) {
2021
+ if (!this.#isActive) {
2022
+ return;
2023
+ }
2024
+ if (this.#frameInterval) {
2025
+ clearInterval(this.#frameInterval);
2026
+ this.#frameInterval = void 0;
2027
+ }
2028
+ this.#isActive = false;
2029
+ if (!this.#verbose) {
2030
+ return;
2031
+ }
2032
+ let output = "";
2033
+ const icon = this.#icons[status];
2034
+ if (icon) {
2035
+ output = applyStyle(icon, this.#style);
2036
+ }
2037
+ if (this.#prefixText) {
2038
+ output = `${this.#prefixText} ${output}`;
2039
+ }
2040
+ if (text) {
2041
+ output = `${output} ${text}`;
2042
+ }
2043
+ this.#finalOutput = output;
2044
+ const manager = this.#multiSpinner || this.#interactiveManager;
2045
+ if (manager) {
2046
+ if (this.#multiSpinner) {
2047
+ this.#multiSpinner.renderAll();
2048
+ } else if (this.#interactiveManager) {
2049
+ this.#interactiveManager.update("stdout", [output]);
2050
+ this.#interactiveManager.unhook(false);
2051
+ }
2052
+ }
2053
+ }
2054
+ }
2055
+ class MultiSpinner {
2056
+ #spinners = /* @__PURE__ */ new Map();
2057
+ #nextSpinnerId = 0;
2058
+ #interactiveManager;
2059
+ #isActive = false;
2060
+ #options;
2061
+ constructor(options = {}, interactiveManager) {
2062
+ this.#options = options;
2063
+ this.#interactiveManager = interactiveManager;
2064
+ }
2065
+ /**
2066
+ * Set the interactive manager for interactive mode.
2067
+ * @internal
2068
+ */
2069
+ setInteractiveManager(manager) {
2070
+ this.#interactiveManager = manager;
2071
+ }
2072
+ /**
2073
+ * Create a new spinner instance.
2074
+ * @param text Initial text for the spinner
2075
+ * @param options
2076
+ * @param options.prefixText Optional prefix text to display
2077
+ * @param options.style Optional style for the spinner
2078
+ * @param options.verbose Whether to output spinner (default: true)
2079
+ * @returns A new Spinner instance
2080
+ */
2081
+ create(text, options = {}) {
2082
+ const id = `spinner_${this.#nextSpinnerId++}`;
2083
+ const spinner = new Spinner({ ...this.#options, ...options });
2084
+ spinner.setMultiSpinner(this);
2085
+ this.#spinners.set(id, spinner);
2086
+ if (text) {
2087
+ spinner.text = text;
2088
+ }
2089
+ return spinner;
2090
+ }
2091
+ /**
2092
+ * Remove a spinner from the multi-spinner manager.
2093
+ * @param spinner The spinner to remove
2094
+ * @returns True if the spinner was removed, false otherwise
2095
+ */
2096
+ remove(spinner) {
2097
+ for (const [id, s] of this.#spinners.entries()) {
2098
+ if (s === spinner) {
2099
+ this.#spinners.delete(id);
2100
+ this.renderAll();
2101
+ return true;
2102
+ }
2103
+ }
2104
+ return false;
2105
+ }
2106
+ /**
2107
+ * Stop all spinners.
2108
+ */
2109
+ stop() {
2110
+ for (const spinner of this.#spinners.values()) {
2111
+ spinner.succeed();
2112
+ }
2113
+ this.#spinners.clear();
2114
+ this.#isActive = false;
2115
+ if (this.#interactiveManager) {
2116
+ this.#interactiveManager.unhook(false);
2117
+ }
2118
+ }
2119
+ /**
2120
+ * Clear all spinners without stopping them.
2121
+ */
2122
+ clear() {
2123
+ for (const spinner of this.#spinners.values()) {
2124
+ spinner.succeed();
2125
+ }
2126
+ this.#spinners.clear();
2127
+ }
2128
+ /**
2129
+ * Render all spinners.
2130
+ * @internal
2131
+ */
2132
+ renderAll() {
2133
+ if (!this.#interactiveManager) {
2134
+ return;
2135
+ }
2136
+ if (!this.#isActive) {
2137
+ this.#isActive = true;
2138
+ this.#interactiveManager.hook();
2139
+ }
2140
+ const lines = [];
2141
+ for (const spinner of this.#spinners.values()) {
2142
+ lines.push(spinner.getFrameOutput());
2143
+ }
2144
+ if (lines.length > 0) {
2145
+ this.#interactiveManager.update("stdout", lines);
2146
+ }
2147
+ }
2148
+ }
2149
+
2150
+ export { MultiSpinner, Spinner };