@pubinfo/devtools 2.0.14 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/client/assets/abap-C4bT1QEl.js +3 -0
  2. package/dist/client/assets/actionscript-3-BCWJ3mFB.js +3 -0
  3. package/dist/client/assets/ada-BwfYJ3cr.js +3 -0
  4. package/dist/client/assets/andromeeda-B_6dIUNk.js +2 -0
  5. package/dist/client/assets/angular-html-BPWgfvBc.js +23 -0
  6. package/dist/client/assets/angular-html-CAmvPqke.js +5 -0
  7. package/dist/client/assets/angular-ts-DGzTDMev.js +24 -0
  8. package/dist/client/assets/apache-kfYmMYjJ.js +3 -0
  9. package/dist/client/assets/apex-BEradrtF.js +3 -0
  10. package/dist/client/assets/apl-BPuavpVx.js +16 -0
  11. package/dist/client/assets/applescript-CuHZw4Cf.js +3 -0
  12. package/dist/client/assets/ara-BkKR-TQQ.js +3 -0
  13. package/dist/client/assets/asciidoc-CBayNp_C.js +3 -0
  14. package/dist/client/assets/asm-BwfqIsue.js +3 -0
  15. package/dist/client/assets/astro-S5XuEH5N.js +17 -0
  16. package/dist/client/assets/aurora-x-BXNTnfne.js +2 -0
  17. package/dist/client/assets/awk-BTtzreuE.js +3 -0
  18. package/dist/client/assets/ayu-dark-DqipJzHd.js +2 -0
  19. package/dist/client/assets/ballerina-Cr0e12Uh.js +3 -0
  20. package/dist/client/assets/bat--mz103Th.js +3 -0
  21. package/dist/client/assets/beancount-CFAdYWr2.js +3 -0
  22. package/dist/client/assets/berry-Bzd2YdCH.js +3 -0
  23. package/dist/client/assets/bibtex-DT-WcF1n.js +3 -0
  24. package/dist/client/assets/bicep-DUXUP27W.js +3 -0
  25. package/dist/client/assets/blade-BD3Ti8S8.js +20 -0
  26. package/dist/client/assets/bsl-FJCc2ZjR.js +4 -0
  27. package/dist/client/assets/c-0S9FUYVg.js +2 -0
  28. package/dist/client/assets/c-DcdCmnmu.js +3 -0
  29. package/dist/client/assets/cadence-Du0qqjuO.js +3 -0
  30. package/dist/client/assets/cairo-CT1kFY4g.js +4 -0
  31. package/dist/client/assets/catppuccin-frappe-DZIny9D9.js +2 -0
  32. package/dist/client/assets/catppuccin-latte-HfmdJgD2.js +2 -0
  33. package/dist/client/assets/catppuccin-macchiato-1ffQHJ6s.js +2 -0
  34. package/dist/client/assets/catppuccin-mocha-DRYMSOp4.js +2 -0
  35. package/dist/client/assets/clarity-CW1NMBSy.js +3 -0
  36. package/dist/client/assets/clojure-DkHpOkH2.js +3 -0
  37. package/dist/client/assets/cmake-87ADX9pg.js +2 -0
  38. package/dist/client/assets/cmake-CXVvo3Mh.js +3 -0
  39. package/dist/client/assets/cobol-CE0tFF5i.js +11 -0
  40. package/dist/client/assets/codeowners-DYf_YsrY.js +3 -0
  41. package/dist/client/assets/codeql-BeSKjUdD.js +3 -0
  42. package/dist/client/assets/coffee-D8rtNx1a.js +4 -0
  43. package/dist/client/assets/common-lisp-CsedMwlK.js +3 -0
  44. package/dist/client/assets/coq-Cfs5oQ5z.js +3 -0
  45. package/dist/client/assets/cpp-B4kRV-Mr.js +6 -0
  46. package/dist/client/assets/cpp-C4U1u9xk.js +19 -0
  47. package/dist/client/assets/crystal-C51LLczf.js +17 -0
  48. package/dist/client/assets/csharp-CxX8v9Z1.js +2 -0
  49. package/dist/client/assets/csharp-DYqgfnaO.js +3 -0
  50. package/dist/client/assets/css-BmwDvvHL.js +2 -0
  51. package/dist/client/assets/css-DVW7ZXKV.js +3 -0
  52. package/dist/client/assets/csv-B2eUHTA8.js +2 -0
  53. package/dist/client/assets/csv-rLH0WuQO.js +3 -0
  54. package/dist/client/assets/cue-CzLrU992.js +3 -0
  55. package/dist/client/assets/cypher-C2RENEAP.js +3 -0
  56. package/dist/client/assets/d-BJOAQFpK.js +3 -0
  57. package/dist/client/assets/dark-plus-Db9rRSHq.js +2 -0
  58. package/dist/client/assets/dart-B-KTJ0-J.js +3 -0
  59. package/dist/client/assets/dax-B7qtS36S.js +3 -0
  60. package/dist/client/assets/desktop-DfgAqZ8-.js +3 -0
  61. package/dist/client/assets/diff-akky_HM9.js +3 -0
  62. package/dist/client/assets/diff-pjHYd3BC.js +2 -0
  63. package/dist/client/assets/docker-CRnIvYqh.js +3 -0
  64. package/dist/client/assets/dotenv-CwGZ7tJA.js +3 -0
  65. package/dist/client/assets/dracula-C0nacXF8.js +2 -0
  66. package/dist/client/assets/dracula-soft-wdVBcfBY.js +2 -0
  67. package/dist/client/assets/dream-maker-B9ezz9kX.js +3 -0
  68. package/dist/client/assets/edge-WSoBDjCt.js +13 -0
  69. package/dist/client/assets/elixir-4Bcc41kI.js +6 -0
  70. package/dist/client/assets/elm-DisSriNR.js +5 -0
  71. package/dist/client/assets/emacs-lisp-fLGPzin6.js +3 -0
  72. package/dist/client/assets/erb-BuJIU0wX.js +26 -0
  73. package/dist/client/assets/erlang-BbsDmeCk.js +4 -0
  74. package/dist/client/assets/everforest-dark-NN95DCJl.js +2 -0
  75. package/dist/client/assets/everforest-light-idPY23JU.js +2 -0
  76. package/dist/client/assets/fennel-CSR5Mk7N.js +3 -0
  77. package/dist/client/assets/fetch-CTfoU6yt.js +873 -0
  78. package/dist/client/assets/fish-BlTQgKCk.js +3 -0
  79. package/dist/client/assets/fluent-TT7fQWak.js +3 -0
  80. package/dist/client/assets/fortran-fixed-form-DvnLkzBN.js +4 -0
  81. package/dist/client/assets/fortran-free-form-B1QQVoTU.js +3 -0
  82. package/dist/client/assets/fortran-free-form-xkm1udFL.js +2 -0
  83. package/dist/client/assets/fsharp-DyWqhI4o.js +4 -0
  84. package/dist/client/assets/gdresource-Ddtxl8Ni.js +9 -0
  85. package/dist/client/assets/gdscript-DLFBRMyo.js +2 -0
  86. package/dist/client/assets/gdscript-DLJhaHhX.js +3 -0
  87. package/dist/client/assets/gdshader-BFRlv_nM.js +3 -0
  88. package/dist/client/assets/gdshader-tCO8fx4f.js +2 -0
  89. package/dist/client/assets/genie-BmogPuVq.js +3 -0
  90. package/dist/client/assets/gherkin-uh-Mxnsi.js +3 -0
  91. package/dist/client/assets/git-commit-4JodcKYl.js +4 -0
  92. package/dist/client/assets/git-rebase-DZ3MZg-o.js +4 -0
  93. package/dist/client/assets/github-dark-C6J_EBvu.js +2 -0
  94. package/dist/client/assets/github-dark-default-DQDadoHp.js +2 -0
  95. package/dist/client/assets/github-dark-dimmed-DU7K1EZq.js +2 -0
  96. package/dist/client/assets/github-dark-high-contrast-BfsjVJDY.js +2 -0
  97. package/dist/client/assets/github-light-CM4f7fBZ.js +2 -0
  98. package/dist/client/assets/github-light-default-B_A-12O3.js +2 -0
  99. package/dist/client/assets/github-light-high-contrast-BhG28-t6.js +2 -0
  100. package/dist/client/assets/gleam-BByYw7_b.js +3 -0
  101. package/dist/client/assets/glimmer-js-Dw1YG46K.js +13 -0
  102. package/dist/client/assets/glimmer-ts-BoTKtLAn.js +13 -0
  103. package/dist/client/assets/glsl-BcvqNIzr.js +4 -0
  104. package/dist/client/assets/glsl-D7d1_ns-.js +3 -0
  105. package/dist/client/assets/gnuplot-CgWtMBol.js +3 -0
  106. package/dist/client/assets/go-B0RP9LHI.js +3 -0
  107. package/dist/client/assets/go-C2ti7VbT.js +2 -0
  108. package/dist/client/assets/graphql-CZtSUIVW.js +13 -0
  109. package/dist/client/assets/graphql-CeZ4pvez.js +6 -0
  110. package/dist/client/assets/groovy-Bpl59neu.js +3 -0
  111. package/dist/client/assets/gruvbox-dark-hard-BddnLFai.js +2 -0
  112. package/dist/client/assets/gruvbox-dark-medium-DClLifyq.js +2 -0
  113. package/dist/client/assets/gruvbox-dark-soft-CoL2WoEr.js +2 -0
  114. package/dist/client/assets/gruvbox-light-hard-CF2FUQYG.js +2 -0
  115. package/dist/client/assets/gruvbox-light-medium-DdKpn-Z3.js +2 -0
  116. package/dist/client/assets/gruvbox-light-soft-CXnF8CjV.js +2 -0
  117. package/dist/client/assets/hack-BYb9BCJH.js +11 -0
  118. package/dist/client/assets/haml-BImF9_sT.js +9 -0
  119. package/dist/client/assets/haml-DW6kjLLA.js +4 -0
  120. package/dist/client/assets/handlebars-BioaJ5nM.js +13 -0
  121. package/dist/client/assets/haskell-BmWZ6TRE.js +3 -0
  122. package/dist/client/assets/haxe-D-HM2q7w.js +3 -0
  123. package/dist/client/assets/haxe-DIufun--.js +2 -0
  124. package/dist/client/assets/hcl-S6uG4iQ0.js +3 -0
  125. package/dist/client/assets/hjson-mO0ORdeS.js +3 -0
  126. package/dist/client/assets/hlsl-C0jZ0PCe.js +2 -0
  127. package/dist/client/assets/hlsl-hj232ngO.js +3 -0
  128. package/dist/client/assets/houston-CdK1CUz1.js +2 -0
  129. package/dist/client/assets/html-BLAmfzfF.js +9 -0
  130. package/dist/client/assets/html-BpqLChx7.js +4 -0
  131. package/dist/client/assets/html-derivative-D5DGRC4b.js +5 -0
  132. package/dist/client/assets/html-derivative-EjRHFpnu.js +4 -0
  133. package/dist/client/assets/http-lZvWEzFG.js +18 -0
  134. package/dist/client/assets/hurl-Cq9E8TWb.js +16 -0
  135. package/dist/client/assets/hxml-ee_Yi0Bv.js +4 -0
  136. package/dist/client/assets/hy-DICTrdi3.js +3 -0
  137. package/dist/client/assets/imba-kv1YCcqW.js +3 -0
  138. package/dist/client/assets/index-BSkduMKH.js +7637 -0
  139. package/dist/client/assets/index-Co6hzA6u.css +443 -0
  140. package/dist/client/assets/ini-CeoNvVsQ.js +3 -0
  141. package/dist/client/assets/java-BUOns_Ip.js +2 -0
  142. package/dist/client/assets/java-DvTil0N3.js +3 -0
  143. package/dist/client/assets/javascript-239S-npV.js +3 -0
  144. package/dist/client/assets/javascript-qk0JMc6B.js +2 -0
  145. package/dist/client/assets/jinja-Bg3R28jD.js +8 -0
  146. package/dist/client/assets/jison-BC1q7dZB.js +4 -0
  147. package/dist/client/assets/json-B7uypvxJ.js +2 -0
  148. package/dist/client/assets/json-DugJQEGz.js +3 -0
  149. package/dist/client/assets/json5-7yQVqemE.js +3 -0
  150. package/dist/client/assets/jsonc-D8JMlU2y.js +3 -0
  151. package/dist/client/assets/jsonl-C08qrvBf.js +3 -0
  152. package/dist/client/assets/jsonnet-BvmZyW4T.js +3 -0
  153. package/dist/client/assets/jssm-DKBgqWqY.js +3 -0
  154. package/dist/client/assets/jsx-CT1RQ-OJ.js +3 -0
  155. package/dist/client/assets/jsx-CsU_AUfl.js +2 -0
  156. package/dist/client/assets/julia-EKUZwWmm.js +18 -0
  157. package/dist/client/assets/kanagawa-dragon-CT0GKJCY.js +2 -0
  158. package/dist/client/assets/kanagawa-lotus-BnTLrrY2.js +2 -0
  159. package/dist/client/assets/kanagawa-wave-DZKSoWHj.js +2 -0
  160. package/dist/client/assets/kdl-DVROzgs-.js +3 -0
  161. package/dist/client/assets/kotlin-DccTc7ae.js +3 -0
  162. package/dist/client/assets/kusto-DfjJ0A2b.js +3 -0
  163. package/dist/client/assets/laserwave-tIFKC5tj.js +2 -0
  164. package/dist/client/assets/latex-CflrJF-D.js +5 -0
  165. package/dist/client/assets/lean-CPP8F_7u.js +3 -0
  166. package/dist/client/assets/less-C1zBW-s6.js +3 -0
  167. package/dist/client/assets/less-CICUgOj-.js +2 -0
  168. package/dist/client/assets/light-plus-DhWyKCGQ.js +2 -0
  169. package/dist/client/assets/liquid-PHiGTwj1.js +13 -0
  170. package/dist/client/assets/llvm-I5QJoasC.js +3 -0
  171. package/dist/client/assets/log-gyTYf2xU.js +3 -0
  172. package/dist/client/assets/logo-DfMKoOqX.js +3 -0
  173. package/dist/client/assets/lua-CBf0ggeL.js +4 -0
  174. package/dist/client/assets/lua-crOEWYZ0.js +3 -0
  175. package/dist/client/assets/luau-B17X0UH2.js +3 -0
  176. package/dist/client/assets/make-B8j2I5oP.js +3 -0
  177. package/dist/client/assets/markdown-BIZO6UqW.js +2 -0
  178. package/dist/client/assets/markdown-DVA_ZXYg.js +3 -0
  179. package/dist/client/assets/marko-CE_g888v.js +13 -0
  180. package/dist/client/assets/material-theme-CoPt-P4I.js +2 -0
  181. package/dist/client/assets/material-theme-darker-FEG2rAOf.js +2 -0
  182. package/dist/client/assets/material-theme-lighter-BF7TTIIN.js +2 -0
  183. package/dist/client/assets/material-theme-ocean-DLZ8d_BI.js +2 -0
  184. package/dist/client/assets/material-theme-palenight-DDSTuCs0.js +2 -0
  185. package/dist/client/assets/matlab-k1xjK_b6.js +3 -0
  186. package/dist/client/assets/mdc-CTYOzD1j.js +14 -0
  187. package/dist/client/assets/mdx-BQUZJDaf.js +3 -0
  188. package/dist/client/assets/mermaid-DJ04LSyL.js +3 -0
  189. package/dist/client/assets/min-dark-B0gHld8V.js +2 -0
  190. package/dist/client/assets/min-light-DsiXGiCk.js +2 -0
  191. package/dist/client/assets/mipsasm-eWlP57CF.js +3 -0
  192. package/dist/client/assets/mojo-DPKjCktn.js +3 -0
  193. package/dist/client/assets/monokai-wE1Oe3ZE.js +2 -0
  194. package/dist/client/assets/move-jfk5_q-h.js +3 -0
  195. package/dist/client/assets/narrat-pUgLLkv0.js +3 -0
  196. package/dist/client/assets/nextflow-Cc6ZMjG9.js +3 -0
  197. package/dist/client/assets/nginx-Dj2-Xu09.js +5 -0
  198. package/dist/client/assets/night-owl-Bhwe1yQ8.js +2 -0
  199. package/dist/client/assets/nim-Btzc76t3.js +20 -0
  200. package/dist/client/assets/nix-D9NfD_az.js +3 -0
  201. package/dist/client/assets/nord-BSQfXDuM.js +2 -0
  202. package/dist/client/assets/nushell-BRDcl2mr.js +3 -0
  203. package/dist/client/assets/objective-c-DlHl8NyP.js +3 -0
  204. package/dist/client/assets/objective-cpp-B0dcjsTM.js +3 -0
  205. package/dist/client/assets/ocaml-F3DDYO_6.js +3 -0
  206. package/dist/client/assets/one-dark-pro-B5HIL-pf.js +2 -0
  207. package/dist/client/assets/one-light-hd3TKOg4.js +2 -0
  208. package/dist/client/assets/pages-BPB-93sD.js +18 -0
  209. package/dist/client/assets/pascal-k-jf8TbO.js +3 -0
  210. package/dist/client/assets/perl-DLie958B.js +16 -0
  211. package/dist/client/assets/php-CeVstFNC.js +17 -0
  212. package/dist/client/assets/php-Dqyegpf1.js +9 -0
  213. package/dist/client/assets/pkl-CTBspQUg.js +3 -0
  214. package/dist/client/assets/plastic-DTqiHuTe.js +2 -0
  215. package/dist/client/assets/plsql-CronX4zK.js +3 -0
  216. package/dist/client/assets/po-DIoaMCjY.js +3 -0
  217. package/dist/client/assets/poimandres-Ct2BSofG.js +2 -0
  218. package/dist/client/assets/polar-B5raTfsD.js +3 -0
  219. package/dist/client/assets/postcss-4oWH01ol.js +3 -0
  220. package/dist/client/assets/postcss-C4klqPVI.js +2 -0
  221. package/dist/client/assets/powerquery-Cq13nLq4.js +3 -0
  222. package/dist/client/assets/powershell-u1gI72JX.js +3 -0
  223. package/dist/client/assets/prisma-HKQ5cqp8.js +3 -0
  224. package/dist/client/assets/prolog-BesjPHql.js +3 -0
  225. package/dist/client/assets/proto-AagVn4-5.js +3 -0
  226. package/dist/client/assets/pug-D9BazAbt.js +11 -0
  227. package/dist/client/assets/puppet-DH-RAFaa.js +3 -0
  228. package/dist/client/assets/purescript-DfNGfmFP.js +3 -0
  229. package/dist/client/assets/python-BmLHvQtk.js +2 -0
  230. package/dist/client/assets/python-Dn88StJc.js +3 -0
  231. package/dist/client/assets/qml-Dsl5qRow.js +4 -0
  232. package/dist/client/assets/qmldir-DDMrTfWZ.js +3 -0
  233. package/dist/client/assets/qss-CHdy7svE.js +3 -0
  234. package/dist/client/assets/r-CbolghQs.js +2 -0
  235. package/dist/client/assets/r-DT24G0Sx.js +3 -0
  236. package/dist/client/assets/racket-B79KAvJY.js +3 -0
  237. package/dist/client/assets/raku-CTMhaGVX.js +3 -0
  238. package/dist/client/assets/razor-BjH6275R.js +11 -0
  239. package/dist/client/assets/red-CEj0QRPt.js +2 -0
  240. package/dist/client/assets/reg-Cypx77mL.js +3 -0
  241. package/dist/client/assets/regexp-ClZtLNbS.js +3 -0
  242. package/dist/client/assets/regexp-DJtnbMg9.js +2 -0
  243. package/dist/client/assets/rel-BpE3syVu.js +3 -0
  244. package/dist/client/assets/riscv-DyE_5IvB.js +3 -0
  245. package/dist/client/assets/rose-pine-6IUiFzUI.js +2 -0
  246. package/dist/client/assets/rose-pine-dawn-DoRlotcg.js +2 -0
  247. package/dist/client/assets/rose-pine-moon-B5Df1HyW.js +2 -0
  248. package/dist/client/assets/rosmsg-CIAJEgNV.js +3 -0
  249. package/dist/client/assets/rst-Pxh4TKKn.js +35 -0
  250. package/dist/client/assets/ruby-CAlvFaP5.js +29 -0
  251. package/dist/client/assets/ruby-Y14tynbZ.js +20 -0
  252. package/dist/client/assets/rust-DJhGYCa5.js +3 -0
  253. package/dist/client/assets/sas-BQQp9-K3.js +4 -0
  254. package/dist/client/assets/sass-DeLGkK3L.js +3 -0
  255. package/dist/client/assets/scala-cReyE3Yh.js +3 -0
  256. package/dist/client/assets/scheme-B1Lo-75f.js +3 -0
  257. package/dist/client/assets/scss-BP3WrVDm.js +3 -0
  258. package/dist/client/assets/scss-CJyb8K_U.js +4 -0
  259. package/dist/client/assets/sdbl-BKlGfwqV.js +3 -0
  260. package/dist/client/assets/sdbl-CLmP1IYn.js +2 -0
  261. package/dist/client/assets/server-router-BPUoghL2.js +8930 -0
  262. package/dist/client/assets/server-router-BiZSSnZD.css +91 -0
  263. package/dist/client/assets/shaderlab-C8C8_BgV.js +4 -0
  264. package/dist/client/assets/shellscript-Bd0FHBYA.js +2 -0
  265. package/dist/client/assets/shellscript-DsF2JDJS.js +3 -0
  266. package/dist/client/assets/shellsession-YAJaKmo5.js +4 -0
  267. package/dist/client/assets/slack-dark-BmjvCrQc.js +2 -0
  268. package/dist/client/assets/slack-ochin-PXT7PX3o.js +2 -0
  269. package/dist/client/assets/smalltalk-B3peVJF-.js +3 -0
  270. package/dist/client/assets/snazzy-light-DJv4SeqQ.js +2 -0
  271. package/dist/client/assets/solarized-dark-BvCiP_16.js +2 -0
  272. package/dist/client/assets/solarized-light-Bcu-a8JZ.js +2 -0
  273. package/dist/client/assets/solidity-2avG4OxK.js +3 -0
  274. package/dist/client/assets/soy-BwO6v7SS.js +6 -0
  275. package/dist/client/assets/sparql-Ctv9JmsW.js +4 -0
  276. package/dist/client/assets/splunk-UTnMmJ7Q.js +3 -0
  277. package/dist/client/assets/sql-DJRi7-HS.js +3 -0
  278. package/dist/client/assets/sql-DxeQhHVR.js +2 -0
  279. package/dist/client/assets/ssh-config-Du7ucyU5.js +3 -0
  280. package/dist/client/assets/stata-CBQSMhJu.js +4 -0
  281. package/dist/client/assets/stylus-BcbGHyGm.js +2 -0
  282. package/dist/client/assets/stylus-ESl0ir-D.js +3 -0
  283. package/dist/client/assets/svelte-C7A5FsG_.js +13 -0
  284. package/dist/client/assets/swift-BEUwwDAA.js +3 -0
  285. package/dist/client/assets/synthwave-84-BIVTX2kK.js +2 -0
  286. package/dist/client/assets/system-verilog-jIIGzizp.js +3 -0
  287. package/dist/client/assets/systemd-Do-I7Dk6.js +3 -0
  288. package/dist/client/assets/talonscript-B8BQ8lUi.js +3 -0
  289. package/dist/client/assets/tasl-Yr56vlbD.js +3 -0
  290. package/dist/client/assets/tcl-DHCz_jpi.js +3 -0
  291. package/dist/client/assets/templ-Dan_9-H5.js +11 -0
  292. package/dist/client/assets/terraform-CFJJDCa4.js +3 -0
  293. package/dist/client/assets/tex-CrNYpU8F.js +3 -0
  294. package/dist/client/assets/tex-DQvqQIPT.js +4 -0
  295. package/dist/client/assets/tokyo-night-C-8sx9_4.js +2 -0
  296. package/dist/client/assets/toml-CBSc9ib7.js +3 -0
  297. package/dist/client/assets/ts-tags-BSSXKo8m.js +49 -0
  298. package/dist/client/assets/tsv-B0JD-xkP.js +3 -0
  299. package/dist/client/assets/tsx-BV_Ie_mt.js +3 -0
  300. package/dist/client/assets/tsx-BzJMQxCY.js +2 -0
  301. package/dist/client/assets/turtle-kxVyEHLU.js +3 -0
  302. package/dist/client/assets/turtle-vZsG0FWM.js +2 -0
  303. package/dist/client/assets/twig-CUV6hi0h.js +34 -0
  304. package/dist/client/assets/typescript-Crma8FE2.js +3 -0
  305. package/dist/client/assets/typescript-nzfneafv.js +2 -0
  306. package/dist/client/assets/typespec-DCuJQu6m.js +3 -0
  307. package/dist/client/assets/typst-BDgLoDzV.js +3 -0
  308. package/dist/client/assets/v-DMA-YYXE.js +3 -0
  309. package/dist/client/assets/vala-BtBKHkJB.js +3 -0
  310. package/dist/client/assets/vb-CyVTXibQ.js +3 -0
  311. package/dist/client/assets/verilog-CC_Yo3jQ.js +3 -0
  312. package/dist/client/assets/vesper-BLuvFGfg.js +2 -0
  313. package/dist/client/assets/vhdl-C7ADyr0o.js +3 -0
  314. package/dist/client/assets/viml-hax2M4w6.js +3 -0
  315. package/dist/client/assets/vitesse-black-58mZKXM9.js +2 -0
  316. package/dist/client/assets/vitesse-dark-BE2jsHp9.js +2 -0
  317. package/dist/client/assets/vitesse-light-Bko17iRe.js +2 -0
  318. package/dist/client/assets/vue-BuGHx9kw.js +8 -0
  319. package/dist/client/assets/vue-CahofuY8.js +29 -0
  320. package/dist/client/assets/vue-html-B9xEgjjB.js +14 -0
  321. package/dist/client/assets/vue-vine-B9sh5nZz.js +23 -0
  322. package/dist/client/assets/vyper-BDpDemAA.js +3 -0
  323. package/dist/client/assets/wasm-BuJrhBgW.js +5 -0
  324. package/dist/client/assets/wasm-C9wAFEif.js +3 -0
  325. package/dist/client/assets/wenyan-DSsQqdmG.js +3 -0
  326. package/dist/client/assets/wgsl-CMOam7bY.js +3 -0
  327. package/dist/client/assets/wikitext-BqkWeRVY.js +3 -0
  328. package/dist/client/assets/wit-CHHZn0fR.js +3 -0
  329. package/dist/client/assets/wolfram-DhJOgCbz.js +3 -0
  330. package/dist/client/assets/xml-dAX-08G9.js +4 -0
  331. package/dist/client/assets/xml-yLaOmctb.js +3 -0
  332. package/dist/client/assets/xsl-mTp08Xh_.js +5 -0
  333. package/dist/client/assets/yaml-C5_iem5C.js +2 -0
  334. package/dist/client/assets/yaml-CN2n3pDD.js +3 -0
  335. package/dist/client/assets/zenscript-BmWf_m5U.js +3 -0
  336. package/dist/client/assets/zig-QOlp4jTZ.js +3 -0
  337. package/dist/client/cloud.svg +1 -0
  338. package/dist/client/index.html +27 -0
  339. package/dist/constants.d.ts +13 -0
  340. package/dist/constants.js +11 -0
  341. package/dist/dirs-BjObhKjC.js +17 -0
  342. package/dist/dirs.d.ts +13 -0
  343. package/dist/dirs.js +3 -0
  344. package/dist/index.d.ts +20 -3
  345. package/dist/index.js +581 -29
  346. package/dist/panel/index.d.ts +10 -0
  347. package/dist/panel/index.js +3852 -0
  348. package/package.json +35 -6
@@ -0,0 +1,3852 @@
1
+ //#region ../../node_modules/.pnpm/@vue+devtools-shared@8.0.3/node_modules/@vue/devtools-shared/dist/index.js
2
+ var __create$1 = Object.create;
3
+ var __defProp$1 = Object.defineProperty;
4
+ var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames$1 = Object.getOwnPropertyNames;
6
+ var __getProtoOf$1 = Object.getPrototypeOf;
7
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
8
+ var __commonJS$1 = (cb, mod) => function() {
9
+ return mod || (0, cb[__getOwnPropNames$1(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps$1 = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames$1(from), i = 0, n = keys.length, key; i < n; i++) {
13
+ key = keys[i];
14
+ if (!__hasOwnProp$1.call(to, key) && key !== except) __defProp$1(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc$1(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM$1 = (mod, isNodeMode, target$1) => (target$1 = mod != null ? __create$1(__getProtoOf$1(mod)) : {}, __copyProps$1(isNodeMode || !mod || !mod.__esModule ? __defProp$1(target$1, "default", {
22
+ value: mod,
23
+ enumerable: true
24
+ }) : target$1, mod));
25
+ const isBrowser = typeof navigator !== "undefined";
26
+ const target = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : {};
27
+ const isInChromePanel = typeof target.chrome !== "undefined" && !!target.chrome.devtools;
28
+ const isInIframe = isBrowser && target.self !== target.top;
29
+ const isInElectron = typeof navigator !== "undefined" && navigator.userAgent?.toLowerCase().includes("electron");
30
+ const isNuxtApp = typeof window !== "undefined" && !!window.__NUXT__;
31
+ var import_rfdc = /* @__PURE__ */ __toESM$1((/* @__PURE__ */ __commonJS$1({ "../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js": ((exports, module) => {
32
+ module.exports = rfdc$1;
33
+ function copyBuffer(cur) {
34
+ if (cur instanceof Buffer) return Buffer.from(cur);
35
+ return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);
36
+ }
37
+ function rfdc$1(opts) {
38
+ opts = opts || {};
39
+ if (opts.circles) return rfdcCircles(opts);
40
+ const constructorHandlers = /* @__PURE__ */ new Map();
41
+ constructorHandlers.set(Date, (o) => new Date(o));
42
+ constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
43
+ constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
44
+ if (opts.constructorHandlers) for (const handler$1 of opts.constructorHandlers) constructorHandlers.set(handler$1[0], handler$1[1]);
45
+ let handler = null;
46
+ return opts.proto ? cloneProto : clone;
47
+ function cloneArray(a, fn) {
48
+ const keys = Object.keys(a);
49
+ const a2 = new Array(keys.length);
50
+ for (let i = 0; i < keys.length; i++) {
51
+ const k = keys[i];
52
+ const cur = a[k];
53
+ if (typeof cur !== "object" || cur === null) a2[k] = cur;
54
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
55
+ else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
56
+ else a2[k] = fn(cur);
57
+ }
58
+ return a2;
59
+ }
60
+ function clone(o) {
61
+ if (typeof o !== "object" || o === null) return o;
62
+ if (Array.isArray(o)) return cloneArray(o, clone);
63
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
64
+ const o2 = {};
65
+ for (const k in o) {
66
+ if (Object.hasOwnProperty.call(o, k) === false) continue;
67
+ const cur = o[k];
68
+ if (typeof cur !== "object" || cur === null) o2[k] = cur;
69
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
70
+ else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
71
+ else o2[k] = clone(cur);
72
+ }
73
+ return o2;
74
+ }
75
+ function cloneProto(o) {
76
+ if (typeof o !== "object" || o === null) return o;
77
+ if (Array.isArray(o)) return cloneArray(o, cloneProto);
78
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
79
+ const o2 = {};
80
+ for (const k in o) {
81
+ const cur = o[k];
82
+ if (typeof cur !== "object" || cur === null) o2[k] = cur;
83
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
84
+ else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
85
+ else o2[k] = cloneProto(cur);
86
+ }
87
+ return o2;
88
+ }
89
+ }
90
+ function rfdcCircles(opts) {
91
+ const refs = [];
92
+ const refsNew = [];
93
+ const constructorHandlers = /* @__PURE__ */ new Map();
94
+ constructorHandlers.set(Date, (o) => new Date(o));
95
+ constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
96
+ constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
97
+ if (opts.constructorHandlers) for (const handler$1 of opts.constructorHandlers) constructorHandlers.set(handler$1[0], handler$1[1]);
98
+ let handler = null;
99
+ return opts.proto ? cloneProto : clone;
100
+ function cloneArray(a, fn) {
101
+ const keys = Object.keys(a);
102
+ const a2 = new Array(keys.length);
103
+ for (let i = 0; i < keys.length; i++) {
104
+ const k = keys[i];
105
+ const cur = a[k];
106
+ if (typeof cur !== "object" || cur === null) a2[k] = cur;
107
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
108
+ else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
109
+ else {
110
+ const index = refs.indexOf(cur);
111
+ if (index !== -1) a2[k] = refsNew[index];
112
+ else a2[k] = fn(cur);
113
+ }
114
+ }
115
+ return a2;
116
+ }
117
+ function clone(o) {
118
+ if (typeof o !== "object" || o === null) return o;
119
+ if (Array.isArray(o)) return cloneArray(o, clone);
120
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
121
+ const o2 = {};
122
+ refs.push(o);
123
+ refsNew.push(o2);
124
+ for (const k in o) {
125
+ if (Object.hasOwnProperty.call(o, k) === false) continue;
126
+ const cur = o[k];
127
+ if (typeof cur !== "object" || cur === null) o2[k] = cur;
128
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
129
+ else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
130
+ else {
131
+ const i = refs.indexOf(cur);
132
+ if (i !== -1) o2[k] = refsNew[i];
133
+ else o2[k] = clone(cur);
134
+ }
135
+ }
136
+ refs.pop();
137
+ refsNew.pop();
138
+ return o2;
139
+ }
140
+ function cloneProto(o) {
141
+ if (typeof o !== "object" || o === null) return o;
142
+ if (Array.isArray(o)) return cloneArray(o, cloneProto);
143
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
144
+ const o2 = {};
145
+ refs.push(o);
146
+ refsNew.push(o2);
147
+ for (const k in o) {
148
+ const cur = o[k];
149
+ if (typeof cur !== "object" || cur === null) o2[k] = cur;
150
+ else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
151
+ else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
152
+ else {
153
+ const i = refs.indexOf(cur);
154
+ if (i !== -1) o2[k] = refsNew[i];
155
+ else o2[k] = cloneProto(cur);
156
+ }
157
+ }
158
+ refs.pop();
159
+ refsNew.pop();
160
+ return o2;
161
+ }
162
+ }
163
+ }) }))(), 1);
164
+ const classifyRE = /(?:^|[-_/])(\w)/g;
165
+ function toUpper(_, c) {
166
+ return c ? c.toUpperCase() : "";
167
+ }
168
+ function classify(str) {
169
+ return str && `${str}`.replace(classifyRE, toUpper);
170
+ }
171
+ function basename(filename, ext) {
172
+ let normalizedFilename = filename.replace(/^[a-z]:/i, "").replace(/\\/g, "/");
173
+ if (normalizedFilename.endsWith(`index${ext}`)) normalizedFilename = normalizedFilename.replace(`/index${ext}`, ext);
174
+ const lastSlashIndex = normalizedFilename.lastIndexOf("/");
175
+ const baseNameWithExt = normalizedFilename.substring(lastSlashIndex + 1);
176
+ if (ext) {
177
+ const extIndex = baseNameWithExt.lastIndexOf(ext);
178
+ return baseNameWithExt.substring(0, extIndex);
179
+ }
180
+ return "";
181
+ }
182
+ const HTTP_URL_RE = /^https?:\/\//;
183
+ /**
184
+ * Check a string is start with `/` or a valid http url
185
+ */
186
+ function isUrlString(str) {
187
+ return str.startsWith("/") || HTTP_URL_RE.test(str);
188
+ }
189
+ /**
190
+ * @copyright [rfdc](https://github.com/davidmarkclements/rfdc)
191
+ * @description A really fast deep clone alternative
192
+ */
193
+ const deepClone = (0, import_rfdc.default)({ circles: true });
194
+
195
+ //#endregion
196
+ //#region ../../node_modules/.pnpm/perfect-debounce@2.0.0/node_modules/perfect-debounce/dist/index.mjs
197
+ const DEBOUNCE_DEFAULTS = { trailing: true };
198
+ /**
199
+ Debounce functions
200
+ @param fn - Promise-returning/async function to debounce.
201
+ @param wait - Milliseconds to wait before calling `fn`. Default value is 25ms
202
+ @returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.
203
+ @example
204
+ ```
205
+ import { debounce } from 'perfect-debounce';
206
+ const expensiveCall = async input => input;
207
+ const debouncedFn = debounce(expensiveCall, 200);
208
+ for (const number of [1, 2, 3]) {
209
+ console.log(await debouncedFn(number));
210
+ }
211
+ //=> 1
212
+ //=> 2
213
+ //=> 3
214
+ ```
215
+ */
216
+ function debounce(fn, wait = 25, options = {}) {
217
+ options = {
218
+ ...DEBOUNCE_DEFAULTS,
219
+ ...options
220
+ };
221
+ if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number");
222
+ let leadingValue;
223
+ let timeout;
224
+ let resolveList = [];
225
+ let currentPromise;
226
+ let trailingArgs;
227
+ const applyFn = (_this, args) => {
228
+ currentPromise = _applyPromised(fn, _this, args);
229
+ currentPromise.finally(() => {
230
+ currentPromise = null;
231
+ if (options.trailing && trailingArgs && !timeout) {
232
+ const promise = applyFn(_this, trailingArgs);
233
+ trailingArgs = null;
234
+ return promise;
235
+ }
236
+ });
237
+ return currentPromise;
238
+ };
239
+ const debounced = function(...args) {
240
+ if (options.trailing) trailingArgs = args;
241
+ if (currentPromise) return currentPromise;
242
+ return new Promise((resolve) => {
243
+ const shouldCallNow = !timeout && options.leading;
244
+ clearTimeout(timeout);
245
+ timeout = setTimeout(() => {
246
+ timeout = null;
247
+ const promise = options.leading ? leadingValue : applyFn(this, args);
248
+ trailingArgs = null;
249
+ for (const _resolve of resolveList) _resolve(promise);
250
+ resolveList = [];
251
+ }, wait);
252
+ if (shouldCallNow) {
253
+ leadingValue = applyFn(this, args);
254
+ resolve(leadingValue);
255
+ } else resolveList.push(resolve);
256
+ });
257
+ };
258
+ const _clearTimeout = (timer) => {
259
+ if (timer) {
260
+ clearTimeout(timer);
261
+ timeout = null;
262
+ }
263
+ };
264
+ debounced.isPending = () => !!timeout;
265
+ debounced.cancel = () => {
266
+ _clearTimeout(timeout);
267
+ resolveList = [];
268
+ trailingArgs = null;
269
+ };
270
+ debounced.flush = () => {
271
+ _clearTimeout(timeout);
272
+ if (!trailingArgs || currentPromise) return;
273
+ const args = trailingArgs;
274
+ trailingArgs = null;
275
+ return applyFn(this, args);
276
+ };
277
+ return debounced;
278
+ }
279
+ async function _applyPromised(fn, _this, args) {
280
+ return await fn.apply(_this, args);
281
+ }
282
+
283
+ //#endregion
284
+ //#region ../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs
285
+ function flatHooks(configHooks, hooks$1 = {}, parentName) {
286
+ for (const key in configHooks) {
287
+ const subHook = configHooks[key];
288
+ const name = parentName ? `${parentName}:${key}` : key;
289
+ if (typeof subHook === "object" && subHook !== null) flatHooks(subHook, hooks$1, name);
290
+ else if (typeof subHook === "function") hooks$1[name] = subHook;
291
+ }
292
+ return hooks$1;
293
+ }
294
+ const defaultTask = { run: (function_) => function_() };
295
+ const _createTask = () => defaultTask;
296
+ const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask;
297
+ function serialTaskCaller(hooks$1, args) {
298
+ const task = createTask(args.shift());
299
+ return hooks$1.reduce((promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), Promise.resolve());
300
+ }
301
+ function parallelTaskCaller(hooks$1, args) {
302
+ const task = createTask(args.shift());
303
+ return Promise.all(hooks$1.map((hook$1) => task.run(() => hook$1(...args))));
304
+ }
305
+ function callEachWith(callbacks, arg0) {
306
+ for (const callback of [...callbacks]) callback(arg0);
307
+ }
308
+ var Hookable = class {
309
+ constructor() {
310
+ this._hooks = {};
311
+ this._before = void 0;
312
+ this._after = void 0;
313
+ this._deprecatedMessages = void 0;
314
+ this._deprecatedHooks = {};
315
+ this.hook = this.hook.bind(this);
316
+ this.callHook = this.callHook.bind(this);
317
+ this.callHookWith = this.callHookWith.bind(this);
318
+ }
319
+ hook(name, function_, options = {}) {
320
+ if (!name || typeof function_ !== "function") return () => {};
321
+ const originalName = name;
322
+ let dep;
323
+ while (this._deprecatedHooks[name]) {
324
+ dep = this._deprecatedHooks[name];
325
+ name = dep.to;
326
+ }
327
+ if (dep && !options.allowDeprecated) {
328
+ let message = dep.message;
329
+ if (!message) message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
330
+ if (!this._deprecatedMessages) this._deprecatedMessages = /* @__PURE__ */ new Set();
331
+ if (!this._deprecatedMessages.has(message)) {
332
+ console.warn(message);
333
+ this._deprecatedMessages.add(message);
334
+ }
335
+ }
336
+ if (!function_.name) try {
337
+ Object.defineProperty(function_, "name", {
338
+ get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
339
+ configurable: true
340
+ });
341
+ } catch {}
342
+ this._hooks[name] = this._hooks[name] || [];
343
+ this._hooks[name].push(function_);
344
+ return () => {
345
+ if (function_) {
346
+ this.removeHook(name, function_);
347
+ function_ = void 0;
348
+ }
349
+ };
350
+ }
351
+ hookOnce(name, function_) {
352
+ let _unreg;
353
+ let _function = (...arguments_) => {
354
+ if (typeof _unreg === "function") _unreg();
355
+ _unreg = void 0;
356
+ _function = void 0;
357
+ return function_(...arguments_);
358
+ };
359
+ _unreg = this.hook(name, _function);
360
+ return _unreg;
361
+ }
362
+ removeHook(name, function_) {
363
+ if (this._hooks[name]) {
364
+ const index = this._hooks[name].indexOf(function_);
365
+ if (index !== -1) this._hooks[name].splice(index, 1);
366
+ if (this._hooks[name].length === 0) delete this._hooks[name];
367
+ }
368
+ }
369
+ deprecateHook(name, deprecated) {
370
+ this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
371
+ const _hooks = this._hooks[name] || [];
372
+ delete this._hooks[name];
373
+ for (const hook$1 of _hooks) this.hook(name, hook$1);
374
+ }
375
+ deprecateHooks(deprecatedHooks) {
376
+ Object.assign(this._deprecatedHooks, deprecatedHooks);
377
+ for (const name in deprecatedHooks) this.deprecateHook(name, deprecatedHooks[name]);
378
+ }
379
+ addHooks(configHooks) {
380
+ const hooks$1 = flatHooks(configHooks);
381
+ const removeFns = Object.keys(hooks$1).map((key) => this.hook(key, hooks$1[key]));
382
+ return () => {
383
+ for (const unreg of removeFns.splice(0, removeFns.length)) unreg();
384
+ };
385
+ }
386
+ removeHooks(configHooks) {
387
+ const hooks$1 = flatHooks(configHooks);
388
+ for (const key in hooks$1) this.removeHook(key, hooks$1[key]);
389
+ }
390
+ removeAllHooks() {
391
+ for (const key in this._hooks) delete this._hooks[key];
392
+ }
393
+ callHook(name, ...arguments_) {
394
+ arguments_.unshift(name);
395
+ return this.callHookWith(serialTaskCaller, name, ...arguments_);
396
+ }
397
+ callHookParallel(name, ...arguments_) {
398
+ arguments_.unshift(name);
399
+ return this.callHookWith(parallelTaskCaller, name, ...arguments_);
400
+ }
401
+ callHookWith(caller, name, ...arguments_) {
402
+ const event = this._before || this._after ? {
403
+ name,
404
+ args: arguments_,
405
+ context: {}
406
+ } : void 0;
407
+ if (this._before) callEachWith(this._before, event);
408
+ const result = caller(name in this._hooks ? [...this._hooks[name]] : [], arguments_);
409
+ if (result instanceof Promise) return result.finally(() => {
410
+ if (this._after && event) callEachWith(this._after, event);
411
+ });
412
+ if (this._after && event) callEachWith(this._after, event);
413
+ return result;
414
+ }
415
+ beforeEach(function_) {
416
+ this._before = this._before || [];
417
+ this._before.push(function_);
418
+ return () => {
419
+ if (this._before !== void 0) {
420
+ const index = this._before.indexOf(function_);
421
+ if (index !== -1) this._before.splice(index, 1);
422
+ }
423
+ };
424
+ }
425
+ afterEach(function_) {
426
+ this._after = this._after || [];
427
+ this._after.push(function_);
428
+ return () => {
429
+ if (this._after !== void 0) {
430
+ const index = this._after.indexOf(function_);
431
+ if (index !== -1) this._after.splice(index, 1);
432
+ }
433
+ };
434
+ }
435
+ };
436
+ function createHooks() {
437
+ return new Hookable();
438
+ }
439
+
440
+ //#endregion
441
+ //#region ../../node_modules/.pnpm/@vue+devtools-kit@8.0.3/node_modules/@vue/devtools-kit/dist/index.js
442
+ var __create = Object.create;
443
+ var __defProp = Object.defineProperty;
444
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
445
+ var __getOwnPropNames = Object.getOwnPropertyNames;
446
+ var __getProtoOf = Object.getPrototypeOf;
447
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
448
+ var __commonJS = (cb, mod) => function() {
449
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
450
+ };
451
+ var __copyProps = (to, from, except, desc) => {
452
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
453
+ key = keys[i];
454
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
455
+ get: ((k) => from[k]).bind(null, key),
456
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
457
+ });
458
+ }
459
+ return to;
460
+ };
461
+ var __toESM = (mod, isNodeMode, target$1) => (target$1 = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target$1, "default", {
462
+ value: mod,
463
+ enumerable: true
464
+ }) : target$1, mod));
465
+ function getComponentTypeName(options) {
466
+ const name = options.name || options._componentTag || options.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ || options.__name;
467
+ if (name === "index" && options.__file?.endsWith("index.vue")) return "";
468
+ return name;
469
+ }
470
+ function getComponentFileName(options) {
471
+ const file = options.__file;
472
+ if (file) return classify(basename(file, ".vue"));
473
+ }
474
+ function saveComponentGussedName(instance, name) {
475
+ instance.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ = name;
476
+ return name;
477
+ }
478
+ function getAppRecord(instance) {
479
+ if (instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__) return instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
480
+ else if (instance.root) return instance.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
481
+ }
482
+ function isFragment(instance) {
483
+ const subTreeType = instance.subTree?.type;
484
+ const appRecord = getAppRecord(instance);
485
+ if (appRecord) return appRecord?.types?.Fragment === subTreeType;
486
+ return false;
487
+ }
488
+ /**
489
+ * Get the appropriate display name for an instance.
490
+ *
491
+ * @param {Vue} instance
492
+ * @return {string}
493
+ */
494
+ function getInstanceName(instance) {
495
+ const name = getComponentTypeName(instance?.type || {});
496
+ if (name) return name;
497
+ if (instance?.root === instance) return "Root";
498
+ for (const key in instance.parent?.type?.components) if (instance.parent.type.components[key] === instance?.type) return saveComponentGussedName(instance, key);
499
+ for (const key in instance.appContext?.components) if (instance.appContext.components[key] === instance?.type) return saveComponentGussedName(instance, key);
500
+ const fileName = getComponentFileName(instance?.type || {});
501
+ if (fileName) return fileName;
502
+ return "Anonymous Component";
503
+ }
504
+ /**
505
+ * Returns a devtools unique id for instance.
506
+ * @param {Vue} instance
507
+ */
508
+ function getUniqueComponentId(instance) {
509
+ return `${instance?.appContext?.app?.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__ ?? 0}:${instance === instance?.root ? "root" : instance.uid}`;
510
+ }
511
+ function getComponentInstance(appRecord, instanceId) {
512
+ instanceId = instanceId || `${appRecord.id}:root`;
513
+ return appRecord.instanceMap.get(instanceId) || appRecord.instanceMap.get(":root");
514
+ }
515
+ function createRect() {
516
+ const rect = {
517
+ top: 0,
518
+ bottom: 0,
519
+ left: 0,
520
+ right: 0,
521
+ get width() {
522
+ return rect.right - rect.left;
523
+ },
524
+ get height() {
525
+ return rect.bottom - rect.top;
526
+ }
527
+ };
528
+ return rect;
529
+ }
530
+ let range;
531
+ function getTextRect(node) {
532
+ if (!range) range = document.createRange();
533
+ range.selectNode(node);
534
+ return range.getBoundingClientRect();
535
+ }
536
+ function getFragmentRect(vnode) {
537
+ const rect = createRect();
538
+ if (!vnode.children) return rect;
539
+ for (let i = 0, l = vnode.children.length; i < l; i++) {
540
+ const childVnode = vnode.children[i];
541
+ let childRect;
542
+ if (childVnode.component) childRect = getComponentBoundingRect(childVnode.component);
543
+ else if (childVnode.el) {
544
+ const el = childVnode.el;
545
+ if (el.nodeType === 1 || el.getBoundingClientRect) childRect = el.getBoundingClientRect();
546
+ else if (el.nodeType === 3 && el.data.trim()) childRect = getTextRect(el);
547
+ }
548
+ if (childRect) mergeRects(rect, childRect);
549
+ }
550
+ return rect;
551
+ }
552
+ function mergeRects(a, b) {
553
+ if (!a.top || b.top < a.top) a.top = b.top;
554
+ if (!a.bottom || b.bottom > a.bottom) a.bottom = b.bottom;
555
+ if (!a.left || b.left < a.left) a.left = b.left;
556
+ if (!a.right || b.right > a.right) a.right = b.right;
557
+ return a;
558
+ }
559
+ const DEFAULT_RECT = {
560
+ top: 0,
561
+ left: 0,
562
+ right: 0,
563
+ bottom: 0,
564
+ width: 0,
565
+ height: 0
566
+ };
567
+ function getComponentBoundingRect(instance) {
568
+ const el = instance.subTree.el;
569
+ if (typeof window === "undefined") return DEFAULT_RECT;
570
+ if (isFragment(instance)) return getFragmentRect(instance.subTree);
571
+ else if (el?.nodeType === 1) return el?.getBoundingClientRect();
572
+ else if (instance.subTree.component) return getComponentBoundingRect(instance.subTree.component);
573
+ else return DEFAULT_RECT;
574
+ }
575
+ function getRootElementsFromComponentInstance(instance) {
576
+ if (isFragment(instance)) return getFragmentRootElements(instance.subTree);
577
+ if (!instance.subTree) return [];
578
+ return [instance.subTree.el];
579
+ }
580
+ function getFragmentRootElements(vnode) {
581
+ if (!vnode.children) return [];
582
+ const list = [];
583
+ vnode.children.forEach((childVnode) => {
584
+ if (childVnode.component) list.push(...getRootElementsFromComponentInstance(childVnode.component));
585
+ else if (childVnode?.el) list.push(childVnode.el);
586
+ });
587
+ return list;
588
+ }
589
+ const CONTAINER_ELEMENT_ID = "__vue-devtools-component-inspector__";
590
+ const CARD_ELEMENT_ID = "__vue-devtools-component-inspector__card__";
591
+ const COMPONENT_NAME_ELEMENT_ID = "__vue-devtools-component-inspector__name__";
592
+ const INDICATOR_ELEMENT_ID = "__vue-devtools-component-inspector__indicator__";
593
+ const containerStyles = {
594
+ display: "block",
595
+ zIndex: 2147483640,
596
+ position: "fixed",
597
+ backgroundColor: "#42b88325",
598
+ border: "1px solid #42b88350",
599
+ borderRadius: "5px",
600
+ transition: "all 0.1s ease-in",
601
+ pointerEvents: "none"
602
+ };
603
+ const cardStyles = {
604
+ fontFamily: "Arial, Helvetica, sans-serif",
605
+ padding: "5px 8px",
606
+ borderRadius: "4px",
607
+ textAlign: "left",
608
+ position: "absolute",
609
+ left: 0,
610
+ color: "#e9e9e9",
611
+ fontSize: "14px",
612
+ fontWeight: 600,
613
+ lineHeight: "24px",
614
+ backgroundColor: "#42b883",
615
+ boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)"
616
+ };
617
+ const indicatorStyles = {
618
+ display: "inline-block",
619
+ fontWeight: 400,
620
+ fontStyle: "normal",
621
+ fontSize: "12px",
622
+ opacity: .7
623
+ };
624
+ function getContainerElement() {
625
+ return document.getElementById(CONTAINER_ELEMENT_ID);
626
+ }
627
+ function getCardElement() {
628
+ return document.getElementById(CARD_ELEMENT_ID);
629
+ }
630
+ function getIndicatorElement() {
631
+ return document.getElementById(INDICATOR_ELEMENT_ID);
632
+ }
633
+ function getNameElement() {
634
+ return document.getElementById(COMPONENT_NAME_ELEMENT_ID);
635
+ }
636
+ function getStyles(bounds) {
637
+ return {
638
+ left: `${Math.round(bounds.left * 100) / 100}px`,
639
+ top: `${Math.round(bounds.top * 100) / 100}px`,
640
+ width: `${Math.round(bounds.width * 100) / 100}px`,
641
+ height: `${Math.round(bounds.height * 100) / 100}px`
642
+ };
643
+ }
644
+ function create(options) {
645
+ const containerEl = document.createElement("div");
646
+ containerEl.id = options.elementId ?? CONTAINER_ELEMENT_ID;
647
+ Object.assign(containerEl.style, {
648
+ ...containerStyles,
649
+ ...getStyles(options.bounds),
650
+ ...options.style
651
+ });
652
+ const cardEl = document.createElement("span");
653
+ cardEl.id = CARD_ELEMENT_ID;
654
+ Object.assign(cardEl.style, {
655
+ ...cardStyles,
656
+ top: options.bounds.top < 35 ? 0 : "-35px"
657
+ });
658
+ const nameEl = document.createElement("span");
659
+ nameEl.id = COMPONENT_NAME_ELEMENT_ID;
660
+ nameEl.innerHTML = `&lt;${options.name}&gt;&nbsp;&nbsp;`;
661
+ const indicatorEl = document.createElement("i");
662
+ indicatorEl.id = INDICATOR_ELEMENT_ID;
663
+ indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`;
664
+ Object.assign(indicatorEl.style, indicatorStyles);
665
+ cardEl.appendChild(nameEl);
666
+ cardEl.appendChild(indicatorEl);
667
+ containerEl.appendChild(cardEl);
668
+ document.body.appendChild(containerEl);
669
+ return containerEl;
670
+ }
671
+ function update(options) {
672
+ const containerEl = getContainerElement();
673
+ const cardEl = getCardElement();
674
+ const nameEl = getNameElement();
675
+ const indicatorEl = getIndicatorElement();
676
+ if (containerEl) {
677
+ Object.assign(containerEl.style, {
678
+ ...containerStyles,
679
+ ...getStyles(options.bounds)
680
+ });
681
+ Object.assign(cardEl.style, { top: options.bounds.top < 35 ? 0 : "-35px" });
682
+ nameEl.innerHTML = `&lt;${options.name}&gt;&nbsp;&nbsp;`;
683
+ indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`;
684
+ }
685
+ }
686
+ function highlight(instance) {
687
+ const bounds = getComponentBoundingRect(instance);
688
+ if (!bounds.width && !bounds.height) return;
689
+ const name = getInstanceName(instance);
690
+ getContainerElement() ? update({
691
+ bounds,
692
+ name
693
+ }) : create({
694
+ bounds,
695
+ name
696
+ });
697
+ }
698
+ function unhighlight() {
699
+ const el = getContainerElement();
700
+ if (el) el.style.display = "none";
701
+ }
702
+ let inspectInstance = null;
703
+ function inspectFn(e) {
704
+ const target$1 = e.target;
705
+ if (target$1) {
706
+ const instance = target$1.__vueParentComponent;
707
+ if (instance) {
708
+ inspectInstance = instance;
709
+ if (instance.vnode.el) {
710
+ const bounds = getComponentBoundingRect(instance);
711
+ const name = getInstanceName(instance);
712
+ getContainerElement() ? update({
713
+ bounds,
714
+ name
715
+ }) : create({
716
+ bounds,
717
+ name
718
+ });
719
+ }
720
+ }
721
+ }
722
+ }
723
+ function selectComponentFn(e, cb) {
724
+ e.preventDefault();
725
+ e.stopPropagation();
726
+ if (inspectInstance) cb(getUniqueComponentId(inspectInstance));
727
+ }
728
+ let inspectComponentHighLighterSelectFn = null;
729
+ function cancelInspectComponentHighLighter() {
730
+ unhighlight();
731
+ window.removeEventListener("mouseover", inspectFn);
732
+ window.removeEventListener("click", inspectComponentHighLighterSelectFn, true);
733
+ inspectComponentHighLighterSelectFn = null;
734
+ }
735
+ function inspectComponentHighLighter() {
736
+ window.addEventListener("mouseover", inspectFn);
737
+ return new Promise((resolve) => {
738
+ function onSelect(e) {
739
+ e.preventDefault();
740
+ e.stopPropagation();
741
+ selectComponentFn(e, (id) => {
742
+ window.removeEventListener("click", onSelect, true);
743
+ inspectComponentHighLighterSelectFn = null;
744
+ window.removeEventListener("mouseover", inspectFn);
745
+ const el = getContainerElement();
746
+ if (el) el.style.display = "none";
747
+ resolve(JSON.stringify({ id }));
748
+ });
749
+ }
750
+ inspectComponentHighLighterSelectFn = onSelect;
751
+ window.addEventListener("click", onSelect, true);
752
+ });
753
+ }
754
+ function scrollToComponent(options) {
755
+ const instance = getComponentInstance(activeAppRecord.value, options.id);
756
+ if (instance) {
757
+ const [el] = getRootElementsFromComponentInstance(instance);
758
+ if (typeof el.scrollIntoView === "function") el.scrollIntoView({ behavior: "smooth" });
759
+ else {
760
+ const bounds = getComponentBoundingRect(instance);
761
+ const scrollTarget = document.createElement("div");
762
+ const styles = {
763
+ ...getStyles(bounds),
764
+ position: "absolute"
765
+ };
766
+ Object.assign(scrollTarget.style, styles);
767
+ document.body.appendChild(scrollTarget);
768
+ scrollTarget.scrollIntoView({ behavior: "smooth" });
769
+ setTimeout(() => {
770
+ document.body.removeChild(scrollTarget);
771
+ }, 2e3);
772
+ }
773
+ setTimeout(() => {
774
+ const bounds = getComponentBoundingRect(instance);
775
+ if (bounds.width || bounds.height) {
776
+ const name = getInstanceName(instance);
777
+ const el$1 = getContainerElement();
778
+ el$1 ? update({
779
+ ...options,
780
+ name,
781
+ bounds
782
+ }) : create({
783
+ ...options,
784
+ name,
785
+ bounds
786
+ });
787
+ setTimeout(() => {
788
+ if (el$1) el$1.style.display = "none";
789
+ }, 1500);
790
+ }
791
+ }, 1200);
792
+ }
793
+ }
794
+ target.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__ ??= true;
795
+ function waitForInspectorInit(cb) {
796
+ let total = 0;
797
+ const timer = setInterval(() => {
798
+ if (target.__VUE_INSPECTOR__) {
799
+ clearInterval(timer);
800
+ total += 30;
801
+ cb();
802
+ }
803
+ if (total >= 5e3) clearInterval(timer);
804
+ }, 30);
805
+ }
806
+ function setupInspector() {
807
+ const inspector = target.__VUE_INSPECTOR__;
808
+ const _openInEditor = inspector.openInEditor;
809
+ inspector.openInEditor = async (...params) => {
810
+ inspector.disable();
811
+ _openInEditor(...params);
812
+ };
813
+ }
814
+ function getComponentInspector() {
815
+ return new Promise((resolve) => {
816
+ function setup() {
817
+ setupInspector();
818
+ resolve(target.__VUE_INSPECTOR__);
819
+ }
820
+ if (!target.__VUE_INSPECTOR__) waitForInspectorInit(() => {
821
+ setup();
822
+ });
823
+ else setup();
824
+ });
825
+ }
826
+ /**
827
+ * To prevent include a **HUGE** vue package in the final bundle of chrome ext / electron
828
+ * we stub the necessary vue module.
829
+ * This implementation is based on the 1c3327a0fa5983aa9078e3f7bb2330f572435425 commit
830
+ */
831
+ /**
832
+ * @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/constants.ts#L17-L23)
833
+ */
834
+ let ReactiveFlags = /* @__PURE__ */ function(ReactiveFlags$1) {
835
+ ReactiveFlags$1["SKIP"] = "__v_skip";
836
+ ReactiveFlags$1["IS_REACTIVE"] = "__v_isReactive";
837
+ ReactiveFlags$1["IS_READONLY"] = "__v_isReadonly";
838
+ ReactiveFlags$1["IS_SHALLOW"] = "__v_isShallow";
839
+ ReactiveFlags$1["RAW"] = "__v_raw";
840
+ return ReactiveFlags$1;
841
+ }({});
842
+ /**
843
+ * @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L330-L332)
844
+ */
845
+ function isReadonly(value) {
846
+ return !!(value && value[ReactiveFlags.IS_READONLY]);
847
+ }
848
+ /**
849
+ * @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L312-L317)
850
+ */
851
+ function isReactive$1(value) {
852
+ if (isReadonly(value)) return isReactive$1(value[ReactiveFlags.RAW]);
853
+ return !!(value && value[ReactiveFlags.IS_REACTIVE]);
854
+ }
855
+ function isRef$1(r) {
856
+ return !!(r && r.__v_isRef === true);
857
+ }
858
+ /**
859
+ * @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L372-L375)
860
+ */
861
+ function toRaw$1(observed) {
862
+ const raw = observed && observed[ReactiveFlags.RAW];
863
+ return raw ? toRaw$1(raw) : observed;
864
+ }
865
+ var StateEditor = class {
866
+ constructor() {
867
+ this.refEditor = new RefStateEditor();
868
+ }
869
+ set(object, path, value, cb) {
870
+ const sections = Array.isArray(path) ? path : path.split(".");
871
+ while (sections.length > 1) {
872
+ const section = sections.shift();
873
+ if (object instanceof Map) object = object.get(section);
874
+ else if (object instanceof Set) object = Array.from(object.values())[section];
875
+ else object = object[section];
876
+ if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
877
+ }
878
+ const field = sections[0];
879
+ const item = this.refEditor.get(object)[field];
880
+ if (cb) cb(object, field, value);
881
+ else if (this.refEditor.isRef(item)) this.refEditor.set(item, value);
882
+ else object[field] = value;
883
+ }
884
+ get(object, path) {
885
+ const sections = Array.isArray(path) ? path : path.split(".");
886
+ for (let i = 0; i < sections.length; i++) {
887
+ if (object instanceof Map) object = object.get(sections[i]);
888
+ else object = object[sections[i]];
889
+ if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
890
+ if (!object) return void 0;
891
+ }
892
+ return object;
893
+ }
894
+ has(object, path, parent = false) {
895
+ if (typeof object === "undefined") return false;
896
+ const sections = Array.isArray(path) ? path.slice() : path.split(".");
897
+ const size = !parent ? 1 : 2;
898
+ while (object && sections.length > size) {
899
+ const section = sections.shift();
900
+ object = object[section];
901
+ if (this.refEditor.isRef(object)) object = this.refEditor.get(object);
902
+ }
903
+ return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]);
904
+ }
905
+ createDefaultSetCallback(state) {
906
+ return (object, field, value) => {
907
+ if (state.remove || state.newKey) if (Array.isArray(object)) object.splice(field, 1);
908
+ else if (toRaw$1(object) instanceof Map) object.delete(field);
909
+ else if (toRaw$1(object) instanceof Set) object.delete(Array.from(object.values())[field]);
910
+ else Reflect.deleteProperty(object, field);
911
+ if (!state.remove) {
912
+ const target$1 = object[state.newKey || field];
913
+ if (this.refEditor.isRef(target$1)) this.refEditor.set(target$1, value);
914
+ else if (toRaw$1(object) instanceof Map) object.set(state.newKey || field, value);
915
+ else if (toRaw$1(object) instanceof Set) object.add(value);
916
+ else object[state.newKey || field] = value;
917
+ }
918
+ };
919
+ }
920
+ };
921
+ var RefStateEditor = class {
922
+ set(ref, value) {
923
+ if (isRef$1(ref)) ref.value = value;
924
+ else {
925
+ if (ref instanceof Set && Array.isArray(value)) {
926
+ ref.clear();
927
+ value.forEach((v) => ref.add(v));
928
+ return;
929
+ }
930
+ const currentKeys = Object.keys(value);
931
+ if (ref instanceof Map) {
932
+ const previousKeysSet$1 = new Set(ref.keys());
933
+ currentKeys.forEach((key) => {
934
+ ref.set(key, Reflect.get(value, key));
935
+ previousKeysSet$1.delete(key);
936
+ });
937
+ previousKeysSet$1.forEach((key) => ref.delete(key));
938
+ return;
939
+ }
940
+ const previousKeysSet = new Set(Object.keys(ref));
941
+ currentKeys.forEach((key) => {
942
+ Reflect.set(ref, key, Reflect.get(value, key));
943
+ previousKeysSet.delete(key);
944
+ });
945
+ previousKeysSet.forEach((key) => Reflect.deleteProperty(ref, key));
946
+ }
947
+ }
948
+ get(ref) {
949
+ return isRef$1(ref) ? ref.value : ref;
950
+ }
951
+ isRef(ref) {
952
+ return isRef$1(ref) || isReactive$1(ref);
953
+ }
954
+ };
955
+ const stateEditor = new StateEditor();
956
+ const TIMELINE_LAYERS_STATE_STORAGE_ID = "__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__";
957
+ function getTimelineLayersStateFromStorage() {
958
+ if (!isBrowser || typeof localStorage === "undefined" || localStorage === null) return {
959
+ recordingState: false,
960
+ mouseEventEnabled: false,
961
+ keyboardEventEnabled: false,
962
+ componentEventEnabled: false,
963
+ performanceEventEnabled: false,
964
+ selected: ""
965
+ };
966
+ const state = typeof localStorage.getItem !== "undefined" ? localStorage.getItem(TIMELINE_LAYERS_STATE_STORAGE_ID) : null;
967
+ return state ? JSON.parse(state) : {
968
+ recordingState: false,
969
+ mouseEventEnabled: false,
970
+ keyboardEventEnabled: false,
971
+ componentEventEnabled: false,
972
+ performanceEventEnabled: false,
973
+ selected: ""
974
+ };
975
+ }
976
+ target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS ??= [];
977
+ const devtoolsTimelineLayers = new Proxy(target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS, { get(target$1, prop, receiver) {
978
+ return Reflect.get(target$1, prop, receiver);
979
+ } });
980
+ function addTimelineLayer(options, descriptor) {
981
+ devtoolsState.timelineLayersState[descriptor.id] = false;
982
+ devtoolsTimelineLayers.push({
983
+ ...options,
984
+ descriptorId: descriptor.id,
985
+ appRecord: getAppRecord(descriptor.app)
986
+ });
987
+ }
988
+ target.__VUE_DEVTOOLS_KIT_INSPECTOR__ ??= [];
989
+ const devtoolsInspector = new Proxy(target.__VUE_DEVTOOLS_KIT_INSPECTOR__, { get(target$1, prop, receiver) {
990
+ return Reflect.get(target$1, prop, receiver);
991
+ } });
992
+ const callInspectorUpdatedHook = debounce(() => {
993
+ devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT, getActiveInspectors());
994
+ });
995
+ function addInspector(inspector, descriptor) {
996
+ devtoolsInspector.push({
997
+ options: inspector,
998
+ descriptor,
999
+ treeFilterPlaceholder: inspector.treeFilterPlaceholder ?? "Search tree...",
1000
+ stateFilterPlaceholder: inspector.stateFilterPlaceholder ?? "Search state...",
1001
+ treeFilter: "",
1002
+ selectedNodeId: "",
1003
+ appRecord: getAppRecord(descriptor.app)
1004
+ });
1005
+ callInspectorUpdatedHook();
1006
+ }
1007
+ function getActiveInspectors() {
1008
+ return devtoolsInspector.filter((inspector) => inspector.descriptor.app === activeAppRecord.value.app).filter((inspector) => inspector.descriptor.id !== "components").map((inspector) => {
1009
+ const descriptor = inspector.descriptor;
1010
+ const options = inspector.options;
1011
+ return {
1012
+ id: options.id,
1013
+ label: options.label,
1014
+ logo: descriptor.logo,
1015
+ icon: `custom-ic-baseline-${options?.icon?.replace(/_/g, "-")}`,
1016
+ packageName: descriptor.packageName,
1017
+ homepage: descriptor.homepage,
1018
+ pluginId: descriptor.id
1019
+ };
1020
+ });
1021
+ }
1022
+ function getInspector(id, app) {
1023
+ return devtoolsInspector.find((inspector) => inspector.options.id === id && (app ? inspector.descriptor.app === app : true));
1024
+ }
1025
+ let DevToolsV6PluginAPIHookKeys = /* @__PURE__ */ function(DevToolsV6PluginAPIHookKeys$1) {
1026
+ DevToolsV6PluginAPIHookKeys$1["VISIT_COMPONENT_TREE"] = "visitComponentTree";
1027
+ DevToolsV6PluginAPIHookKeys$1["INSPECT_COMPONENT"] = "inspectComponent";
1028
+ DevToolsV6PluginAPIHookKeys$1["EDIT_COMPONENT_STATE"] = "editComponentState";
1029
+ DevToolsV6PluginAPIHookKeys$1["GET_INSPECTOR_TREE"] = "getInspectorTree";
1030
+ DevToolsV6PluginAPIHookKeys$1["GET_INSPECTOR_STATE"] = "getInspectorState";
1031
+ DevToolsV6PluginAPIHookKeys$1["EDIT_INSPECTOR_STATE"] = "editInspectorState";
1032
+ DevToolsV6PluginAPIHookKeys$1["INSPECT_TIMELINE_EVENT"] = "inspectTimelineEvent";
1033
+ DevToolsV6PluginAPIHookKeys$1["TIMELINE_CLEARED"] = "timelineCleared";
1034
+ DevToolsV6PluginAPIHookKeys$1["SET_PLUGIN_SETTINGS"] = "setPluginSettings";
1035
+ return DevToolsV6PluginAPIHookKeys$1;
1036
+ }({});
1037
+ let DevToolsContextHookKeys = /* @__PURE__ */ function(DevToolsContextHookKeys$1) {
1038
+ DevToolsContextHookKeys$1["ADD_INSPECTOR"] = "addInspector";
1039
+ DevToolsContextHookKeys$1["SEND_INSPECTOR_TREE"] = "sendInspectorTree";
1040
+ DevToolsContextHookKeys$1["SEND_INSPECTOR_STATE"] = "sendInspectorState";
1041
+ DevToolsContextHookKeys$1["CUSTOM_INSPECTOR_SELECT_NODE"] = "customInspectorSelectNode";
1042
+ DevToolsContextHookKeys$1["TIMELINE_LAYER_ADDED"] = "timelineLayerAdded";
1043
+ DevToolsContextHookKeys$1["TIMELINE_EVENT_ADDED"] = "timelineEventAdded";
1044
+ DevToolsContextHookKeys$1["GET_COMPONENT_INSTANCES"] = "getComponentInstances";
1045
+ DevToolsContextHookKeys$1["GET_COMPONENT_BOUNDS"] = "getComponentBounds";
1046
+ DevToolsContextHookKeys$1["GET_COMPONENT_NAME"] = "getComponentName";
1047
+ DevToolsContextHookKeys$1["COMPONENT_HIGHLIGHT"] = "componentHighlight";
1048
+ DevToolsContextHookKeys$1["COMPONENT_UNHIGHLIGHT"] = "componentUnhighlight";
1049
+ return DevToolsContextHookKeys$1;
1050
+ }({});
1051
+ let DevToolsMessagingHookKeys = /* @__PURE__ */ function(DevToolsMessagingHookKeys$1) {
1052
+ DevToolsMessagingHookKeys$1["SEND_INSPECTOR_TREE_TO_CLIENT"] = "sendInspectorTreeToClient";
1053
+ DevToolsMessagingHookKeys$1["SEND_INSPECTOR_STATE_TO_CLIENT"] = "sendInspectorStateToClient";
1054
+ DevToolsMessagingHookKeys$1["SEND_TIMELINE_EVENT_TO_CLIENT"] = "sendTimelineEventToClient";
1055
+ DevToolsMessagingHookKeys$1["SEND_INSPECTOR_TO_CLIENT"] = "sendInspectorToClient";
1056
+ DevToolsMessagingHookKeys$1["SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT"] = "sendActiveAppUpdatedToClient";
1057
+ DevToolsMessagingHookKeys$1["DEVTOOLS_STATE_UPDATED"] = "devtoolsStateUpdated";
1058
+ DevToolsMessagingHookKeys$1["DEVTOOLS_CONNECTED_UPDATED"] = "devtoolsConnectedUpdated";
1059
+ DevToolsMessagingHookKeys$1["ROUTER_INFO_UPDATED"] = "routerInfoUpdated";
1060
+ return DevToolsMessagingHookKeys$1;
1061
+ }({});
1062
+ function createDevToolsCtxHooks() {
1063
+ const hooks$1 = createHooks();
1064
+ hooks$1.hook(DevToolsContextHookKeys.ADD_INSPECTOR, ({ inspector, plugin }) => {
1065
+ addInspector(inspector, plugin.descriptor);
1066
+ });
1067
+ const debounceSendInspectorTree = debounce(async ({ inspectorId, plugin }) => {
1068
+ if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return;
1069
+ const inspector = getInspector(inspectorId, plugin.descriptor.app);
1070
+ const _payload = {
1071
+ app: plugin.descriptor.app,
1072
+ inspectorId,
1073
+ filter: inspector?.treeFilter || "",
1074
+ rootNodes: []
1075
+ };
1076
+ await new Promise((resolve) => {
1077
+ hooks$1.callHookWith(async (callbacks) => {
1078
+ await Promise.all(callbacks.map((cb) => cb(_payload)));
1079
+ resolve();
1080
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE);
1081
+ });
1082
+ hooks$1.callHookWith(async (callbacks) => {
1083
+ await Promise.all(callbacks.map((cb) => cb({
1084
+ inspectorId,
1085
+ rootNodes: _payload.rootNodes
1086
+ })));
1087
+ }, DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT);
1088
+ }, 120);
1089
+ hooks$1.hook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, debounceSendInspectorTree);
1090
+ const debounceSendInspectorState = debounce(async ({ inspectorId, plugin }) => {
1091
+ if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return;
1092
+ const inspector = getInspector(inspectorId, plugin.descriptor.app);
1093
+ const _payload = {
1094
+ app: plugin.descriptor.app,
1095
+ inspectorId,
1096
+ nodeId: inspector?.selectedNodeId || "",
1097
+ state: null
1098
+ };
1099
+ const ctx = { currentTab: `custom-inspector:${inspectorId}` };
1100
+ if (_payload.nodeId) await new Promise((resolve) => {
1101
+ hooks$1.callHookWith(async (callbacks) => {
1102
+ await Promise.all(callbacks.map((cb) => cb(_payload, ctx)));
1103
+ resolve();
1104
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE);
1105
+ });
1106
+ hooks$1.callHookWith(async (callbacks) => {
1107
+ await Promise.all(callbacks.map((cb) => cb({
1108
+ inspectorId,
1109
+ nodeId: _payload.nodeId,
1110
+ state: _payload.state
1111
+ })));
1112
+ }, DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT);
1113
+ }, 120);
1114
+ hooks$1.hook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, debounceSendInspectorState);
1115
+ hooks$1.hook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, ({ inspectorId, nodeId, plugin }) => {
1116
+ const inspector = getInspector(inspectorId, plugin.descriptor.app);
1117
+ if (!inspector) return;
1118
+ inspector.selectedNodeId = nodeId;
1119
+ });
1120
+ hooks$1.hook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, ({ options, plugin }) => {
1121
+ addTimelineLayer(options, plugin.descriptor);
1122
+ });
1123
+ hooks$1.hook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, ({ options, plugin }) => {
1124
+ if (devtoolsState.highPerfModeEnabled || !devtoolsState.timelineLayersState?.[plugin.descriptor.id] && ![
1125
+ "performance",
1126
+ "component-event",
1127
+ "keyboard",
1128
+ "mouse"
1129
+ ].includes(options.layerId)) return;
1130
+ hooks$1.callHookWith(async (callbacks) => {
1131
+ await Promise.all(callbacks.map((cb) => cb(options)));
1132
+ }, DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT);
1133
+ });
1134
+ hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, async ({ app }) => {
1135
+ const appRecord = app.__VUE_DEVTOOLS_NEXT_APP_RECORD__;
1136
+ if (!appRecord) return null;
1137
+ const appId = appRecord.id.toString();
1138
+ return [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance);
1139
+ });
1140
+ hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, async ({ instance }) => {
1141
+ return getComponentBoundingRect(instance);
1142
+ });
1143
+ hooks$1.hook(DevToolsContextHookKeys.GET_COMPONENT_NAME, ({ instance }) => {
1144
+ return getInstanceName(instance);
1145
+ });
1146
+ hooks$1.hook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, ({ uid }) => {
1147
+ const instance = activeAppRecord.value.instanceMap.get(uid);
1148
+ if (instance) highlight(instance);
1149
+ });
1150
+ hooks$1.hook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT, () => {
1151
+ unhighlight();
1152
+ });
1153
+ return hooks$1;
1154
+ }
1155
+ target.__VUE_DEVTOOLS_KIT_APP_RECORDS__ ??= [];
1156
+ target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ ??= {};
1157
+ target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ ??= "";
1158
+ target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__ ??= [];
1159
+ target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ ??= [];
1160
+ const STATE_KEY = "__VUE_DEVTOOLS_KIT_GLOBAL_STATE__";
1161
+ function initStateFactory() {
1162
+ return {
1163
+ connected: false,
1164
+ clientConnected: false,
1165
+ vitePluginDetected: true,
1166
+ appRecords: [],
1167
+ activeAppRecordId: "",
1168
+ tabs: [],
1169
+ commands: [],
1170
+ highPerfModeEnabled: true,
1171
+ devtoolsClientDetected: {},
1172
+ perfUniqueGroupId: 0,
1173
+ timelineLayersState: getTimelineLayersStateFromStorage()
1174
+ };
1175
+ }
1176
+ target[STATE_KEY] ??= initStateFactory();
1177
+ const callStateUpdatedHook = debounce((state) => {
1178
+ devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED, { state });
1179
+ });
1180
+ const callConnectedUpdatedHook = debounce((state, oldState) => {
1181
+ devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, {
1182
+ state,
1183
+ oldState
1184
+ });
1185
+ });
1186
+ const devtoolsAppRecords = new Proxy(target.__VUE_DEVTOOLS_KIT_APP_RECORDS__, { get(_target, prop, receiver) {
1187
+ if (prop === "value") return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__;
1188
+ return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__[prop];
1189
+ } });
1190
+ const activeAppRecord = new Proxy(target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__, { get(_target, prop, receiver) {
1191
+ if (prop === "value") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__;
1192
+ else if (prop === "id") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__;
1193
+ return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[prop];
1194
+ } });
1195
+ function updateAllStates() {
1196
+ callStateUpdatedHook({
1197
+ ...target[STATE_KEY],
1198
+ appRecords: devtoolsAppRecords.value,
1199
+ activeAppRecordId: activeAppRecord.id,
1200
+ tabs: target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__,
1201
+ commands: target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__
1202
+ });
1203
+ }
1204
+ function setActiveAppRecord(app) {
1205
+ target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ = app;
1206
+ updateAllStates();
1207
+ }
1208
+ function setActiveAppRecordId(id) {
1209
+ target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ = id;
1210
+ updateAllStates();
1211
+ }
1212
+ const devtoolsState = new Proxy(target[STATE_KEY], {
1213
+ get(target$1, property) {
1214
+ if (property === "appRecords") return devtoolsAppRecords;
1215
+ else if (property === "activeAppRecordId") return activeAppRecord.id;
1216
+ else if (property === "tabs") return target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__;
1217
+ else if (property === "commands") return target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__;
1218
+ return target[STATE_KEY][property];
1219
+ },
1220
+ deleteProperty(target$1, property) {
1221
+ delete target$1[property];
1222
+ return true;
1223
+ },
1224
+ set(target$1, property, value) {
1225
+ ({ ...target[STATE_KEY] });
1226
+ target$1[property] = value;
1227
+ target[STATE_KEY][property] = value;
1228
+ return true;
1229
+ }
1230
+ });
1231
+ const resolveIcon = (icon) => {
1232
+ if (!icon) return;
1233
+ if (icon.startsWith("baseline-")) return `custom-ic-${icon}`;
1234
+ if (icon.startsWith("i-") || isUrlString(icon)) return icon;
1235
+ return `custom-ic-baseline-${icon}`;
1236
+ };
1237
+ function addCustomTab(tab) {
1238
+ const tabs = target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__;
1239
+ if (tabs.some((t) => t.name === tab.name)) return;
1240
+ tabs.push({
1241
+ ...tab,
1242
+ icon: resolveIcon(tab.icon)
1243
+ });
1244
+ updateAllStates();
1245
+ }
1246
+ function openInEditor(options = {}) {
1247
+ const { file, host, baseUrl = window.location.origin, line = 0, column = 0 } = options;
1248
+ if (file) {
1249
+ if (host === "chrome-extension") {
1250
+ const fileName = file.replace(/\\/g, "\\\\");
1251
+ const _baseUrl = window.VUE_DEVTOOLS_CONFIG?.openInEditorHost ?? "/";
1252
+ fetch(`${_baseUrl}__open-in-editor?file=${encodeURI(file)}`).then((response) => {
1253
+ if (!response.ok) {
1254
+ const msg = `Opening component ${fileName} failed`;
1255
+ console.log(`%c${msg}`, "color:red");
1256
+ }
1257
+ });
1258
+ } else if (devtoolsState.vitePluginDetected) {
1259
+ const _baseUrl = target.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__ ?? baseUrl;
1260
+ target.__VUE_INSPECTOR__.openInEditor(_baseUrl, file, line, column);
1261
+ }
1262
+ }
1263
+ }
1264
+ target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__ ??= [];
1265
+ const devtoolsPluginBuffer = new Proxy(target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__, { get(target$1, prop, receiver) {
1266
+ return Reflect.get(target$1, prop, receiver);
1267
+ } });
1268
+ function _getSettings(settings) {
1269
+ const _settings = {};
1270
+ Object.keys(settings).forEach((key) => {
1271
+ _settings[key] = settings[key].defaultValue;
1272
+ });
1273
+ return _settings;
1274
+ }
1275
+ function getPluginLocalKey(pluginId) {
1276
+ return `__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${pluginId}__`;
1277
+ }
1278
+ function getPluginSettingsOptions(pluginId) {
1279
+ return (devtoolsPluginBuffer.find((item) => item[0].id === pluginId && !!item[0]?.settings)?.[0] ?? null)?.settings ?? null;
1280
+ }
1281
+ function getPluginSettings(pluginId, fallbackValue) {
1282
+ const localKey = getPluginLocalKey(pluginId);
1283
+ if (localKey) {
1284
+ const localSettings = localStorage.getItem(localKey);
1285
+ if (localSettings) return JSON.parse(localSettings);
1286
+ }
1287
+ if (pluginId) return _getSettings((devtoolsPluginBuffer.find((item) => item[0].id === pluginId)?.[0] ?? null)?.settings ?? {});
1288
+ return _getSettings(fallbackValue);
1289
+ }
1290
+ function initPluginSettings(pluginId, settings) {
1291
+ const localKey = getPluginLocalKey(pluginId);
1292
+ if (!localStorage.getItem(localKey)) localStorage.setItem(localKey, JSON.stringify(_getSettings(settings)));
1293
+ }
1294
+ function setPluginSettings(pluginId, key, value) {
1295
+ const localKey = getPluginLocalKey(pluginId);
1296
+ const localSettings = localStorage.getItem(localKey);
1297
+ const parsedLocalSettings = JSON.parse(localSettings || "{}");
1298
+ const updated = {
1299
+ ...parsedLocalSettings,
1300
+ [key]: value
1301
+ };
1302
+ localStorage.setItem(localKey, JSON.stringify(updated));
1303
+ devtoolsContext.hooks.callHookWith((callbacks) => {
1304
+ callbacks.forEach((cb) => cb({
1305
+ pluginId,
1306
+ key,
1307
+ oldValue: parsedLocalSettings[key],
1308
+ newValue: value,
1309
+ settings: updated
1310
+ }));
1311
+ }, DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS);
1312
+ }
1313
+ let DevToolsHooks = /* @__PURE__ */ function(DevToolsHooks$1) {
1314
+ DevToolsHooks$1["APP_INIT"] = "app:init";
1315
+ DevToolsHooks$1["APP_UNMOUNT"] = "app:unmount";
1316
+ DevToolsHooks$1["COMPONENT_UPDATED"] = "component:updated";
1317
+ DevToolsHooks$1["COMPONENT_ADDED"] = "component:added";
1318
+ DevToolsHooks$1["COMPONENT_REMOVED"] = "component:removed";
1319
+ DevToolsHooks$1["COMPONENT_EMIT"] = "component:emit";
1320
+ DevToolsHooks$1["PERFORMANCE_START"] = "perf:start";
1321
+ DevToolsHooks$1["PERFORMANCE_END"] = "perf:end";
1322
+ DevToolsHooks$1["ADD_ROUTE"] = "router:add-route";
1323
+ DevToolsHooks$1["REMOVE_ROUTE"] = "router:remove-route";
1324
+ DevToolsHooks$1["RENDER_TRACKED"] = "render:tracked";
1325
+ DevToolsHooks$1["RENDER_TRIGGERED"] = "render:triggered";
1326
+ DevToolsHooks$1["APP_CONNECTED"] = "app:connected";
1327
+ DevToolsHooks$1["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup";
1328
+ return DevToolsHooks$1;
1329
+ }({});
1330
+ const devtoolsHooks = target.__VUE_DEVTOOLS_HOOK ??= createHooks();
1331
+ const on = {
1332
+ vueAppInit(fn) {
1333
+ devtoolsHooks.hook(DevToolsHooks.APP_INIT, fn);
1334
+ },
1335
+ vueAppUnmount(fn) {
1336
+ devtoolsHooks.hook(DevToolsHooks.APP_UNMOUNT, fn);
1337
+ },
1338
+ vueAppConnected(fn) {
1339
+ devtoolsHooks.hook(DevToolsHooks.APP_CONNECTED, fn);
1340
+ },
1341
+ componentAdded(fn) {
1342
+ return devtoolsHooks.hook(DevToolsHooks.COMPONENT_ADDED, fn);
1343
+ },
1344
+ componentEmit(fn) {
1345
+ return devtoolsHooks.hook(DevToolsHooks.COMPONENT_EMIT, fn);
1346
+ },
1347
+ componentUpdated(fn) {
1348
+ return devtoolsHooks.hook(DevToolsHooks.COMPONENT_UPDATED, fn);
1349
+ },
1350
+ componentRemoved(fn) {
1351
+ return devtoolsHooks.hook(DevToolsHooks.COMPONENT_REMOVED, fn);
1352
+ },
1353
+ setupDevtoolsPlugin(fn) {
1354
+ devtoolsHooks.hook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, fn);
1355
+ },
1356
+ perfStart(fn) {
1357
+ return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_START, fn);
1358
+ },
1359
+ perfEnd(fn) {
1360
+ return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_END, fn);
1361
+ }
1362
+ };
1363
+ const hook = {
1364
+ on,
1365
+ setupDevToolsPlugin(pluginDescriptor, setupFn) {
1366
+ return devtoolsHooks.callHook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, pluginDescriptor, setupFn);
1367
+ }
1368
+ };
1369
+ var DevToolsV6PluginAPI = class {
1370
+ constructor({ plugin, ctx }) {
1371
+ this.hooks = ctx.hooks;
1372
+ this.plugin = plugin;
1373
+ }
1374
+ get on() {
1375
+ return {
1376
+ visitComponentTree: (handler) => {
1377
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, handler);
1378
+ },
1379
+ inspectComponent: (handler) => {
1380
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT, handler);
1381
+ },
1382
+ editComponentState: (handler) => {
1383
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE, handler);
1384
+ },
1385
+ getInspectorTree: (handler) => {
1386
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE, handler);
1387
+ },
1388
+ getInspectorState: (handler) => {
1389
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE, handler);
1390
+ },
1391
+ editInspectorState: (handler) => {
1392
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE, handler);
1393
+ },
1394
+ inspectTimelineEvent: (handler) => {
1395
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT, handler);
1396
+ },
1397
+ timelineCleared: (handler) => {
1398
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED, handler);
1399
+ },
1400
+ setPluginSettings: (handler) => {
1401
+ this.hooks.hook(DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS, handler);
1402
+ }
1403
+ };
1404
+ }
1405
+ notifyComponentUpdate(instance) {
1406
+ if (devtoolsState.highPerfModeEnabled) return;
1407
+ const inspector = getActiveInspectors().find((i) => i.packageName === this.plugin.descriptor.packageName);
1408
+ if (inspector?.id) {
1409
+ if (instance) {
1410
+ const args = [
1411
+ instance.appContext.app,
1412
+ instance.uid,
1413
+ instance.parent?.uid,
1414
+ instance
1415
+ ];
1416
+ devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED, ...args);
1417
+ } else devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED);
1418
+ this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
1419
+ inspectorId: inspector.id,
1420
+ plugin: this.plugin
1421
+ });
1422
+ }
1423
+ }
1424
+ addInspector(options) {
1425
+ this.hooks.callHook(DevToolsContextHookKeys.ADD_INSPECTOR, {
1426
+ inspector: options,
1427
+ plugin: this.plugin
1428
+ });
1429
+ if (this.plugin.descriptor.settings) initPluginSettings(options.id, this.plugin.descriptor.settings);
1430
+ }
1431
+ sendInspectorTree(inspectorId) {
1432
+ if (devtoolsState.highPerfModeEnabled) return;
1433
+ this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, {
1434
+ inspectorId,
1435
+ plugin: this.plugin
1436
+ });
1437
+ }
1438
+ sendInspectorState(inspectorId) {
1439
+ if (devtoolsState.highPerfModeEnabled) return;
1440
+ this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
1441
+ inspectorId,
1442
+ plugin: this.plugin
1443
+ });
1444
+ }
1445
+ selectInspectorNode(inspectorId, nodeId) {
1446
+ this.hooks.callHook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, {
1447
+ inspectorId,
1448
+ nodeId,
1449
+ plugin: this.plugin
1450
+ });
1451
+ }
1452
+ visitComponentTree(payload) {
1453
+ return this.hooks.callHook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, payload);
1454
+ }
1455
+ now() {
1456
+ if (devtoolsState.highPerfModeEnabled) return 0;
1457
+ return Date.now();
1458
+ }
1459
+ addTimelineLayer(options) {
1460
+ this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, {
1461
+ options,
1462
+ plugin: this.plugin
1463
+ });
1464
+ }
1465
+ addTimelineEvent(options) {
1466
+ if (devtoolsState.highPerfModeEnabled) return;
1467
+ this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, {
1468
+ options,
1469
+ plugin: this.plugin
1470
+ });
1471
+ }
1472
+ getSettings(pluginId) {
1473
+ return getPluginSettings(pluginId ?? this.plugin.descriptor.id, this.plugin.descriptor.settings);
1474
+ }
1475
+ getComponentInstances(app) {
1476
+ return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, { app });
1477
+ }
1478
+ getComponentBounds(instance) {
1479
+ return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, { instance });
1480
+ }
1481
+ getComponentName(instance) {
1482
+ return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_NAME, { instance });
1483
+ }
1484
+ highlightElement(instance) {
1485
+ const uid = instance.__VUE_DEVTOOLS_NEXT_UID__;
1486
+ return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, { uid });
1487
+ }
1488
+ unhighlightElement() {
1489
+ return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT);
1490
+ }
1491
+ };
1492
+ const DevToolsPluginAPI = DevToolsV6PluginAPI;
1493
+ const UNDEFINED = "__vue_devtool_undefined__";
1494
+ const INFINITY = "__vue_devtool_infinity__";
1495
+ const NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__";
1496
+ const NAN = "__vue_devtool_nan__";
1497
+ const tokenMap = {
1498
+ [UNDEFINED]: "undefined",
1499
+ [NAN]: "NaN",
1500
+ [INFINITY]: "Infinity",
1501
+ [NEGATIVE_INFINITY]: "-Infinity"
1502
+ };
1503
+ const reversedTokenMap = Object.entries(tokenMap).reduce((acc, [key, value]) => {
1504
+ acc[value] = key;
1505
+ return acc;
1506
+ }, {});
1507
+ target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__ ??= /* @__PURE__ */ new Set();
1508
+ function callDevToolsPluginSetupFn(plugin, app) {
1509
+ const [pluginDescriptor, setupFn] = plugin;
1510
+ if (pluginDescriptor.app !== app) return;
1511
+ const api = new DevToolsPluginAPI({
1512
+ plugin: {
1513
+ setupFn,
1514
+ descriptor: pluginDescriptor
1515
+ },
1516
+ ctx: devtoolsContext
1517
+ });
1518
+ if (pluginDescriptor.packageName === "vuex") api.on.editInspectorState((payload) => {
1519
+ api.sendInspectorState(payload.inspectorId);
1520
+ });
1521
+ setupFn(api);
1522
+ }
1523
+ function registerDevToolsPlugin(app, options) {
1524
+ if (target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(app)) return;
1525
+ if (devtoolsState.highPerfModeEnabled && !options?.inspectingComponent) return;
1526
+ target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(app);
1527
+ devtoolsPluginBuffer.forEach((plugin) => {
1528
+ callDevToolsPluginSetupFn(plugin, app);
1529
+ });
1530
+ }
1531
+ const ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__";
1532
+ const ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__";
1533
+ target[ROUTER_INFO_KEY] ??= {
1534
+ currentRoute: null,
1535
+ routes: []
1536
+ };
1537
+ target[ROUTER_KEY] ??= {};
1538
+ const devtoolsRouterInfo = new Proxy(target[ROUTER_INFO_KEY], { get(target$1, property) {
1539
+ return target[ROUTER_INFO_KEY][property];
1540
+ } });
1541
+ const devtoolsRouter = new Proxy(target[ROUTER_KEY], { get(target$1, property) {
1542
+ if (property === "value") return target[ROUTER_KEY];
1543
+ } });
1544
+ function getRoutes(router) {
1545
+ const routesMap = /* @__PURE__ */ new Map();
1546
+ return (router?.getRoutes() || []).filter((i) => !routesMap.has(i.path) && routesMap.set(i.path, 1));
1547
+ }
1548
+ function filterRoutes(routes) {
1549
+ return routes.map((item) => {
1550
+ let { path, name, children, meta } = item;
1551
+ if (children?.length) children = filterRoutes(children);
1552
+ return {
1553
+ path,
1554
+ name,
1555
+ children,
1556
+ meta
1557
+ };
1558
+ });
1559
+ }
1560
+ function filterCurrentRoute(route) {
1561
+ if (route) {
1562
+ const { fullPath, hash, href, path, name, matched, params, query } = route;
1563
+ return {
1564
+ fullPath,
1565
+ hash,
1566
+ href,
1567
+ path,
1568
+ name,
1569
+ params,
1570
+ query,
1571
+ matched: filterRoutes(matched)
1572
+ };
1573
+ }
1574
+ return route;
1575
+ }
1576
+ function normalizeRouterInfo(appRecord, activeAppRecord$1) {
1577
+ function init() {
1578
+ const router = appRecord.app?.config.globalProperties.$router;
1579
+ const currentRoute = filterCurrentRoute(router?.currentRoute.value);
1580
+ const routes = filterRoutes(getRoutes(router));
1581
+ const c = console.warn;
1582
+ console.warn = () => {};
1583
+ target[ROUTER_INFO_KEY] = {
1584
+ currentRoute: currentRoute ? deepClone(currentRoute) : {},
1585
+ routes: deepClone(routes)
1586
+ };
1587
+ target[ROUTER_KEY] = router;
1588
+ console.warn = c;
1589
+ }
1590
+ init();
1591
+ hook.on.componentUpdated(debounce(() => {
1592
+ if (activeAppRecord$1.value?.app !== appRecord.app) return;
1593
+ init();
1594
+ if (devtoolsState.highPerfModeEnabled) return;
1595
+ devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED, { state: target[ROUTER_INFO_KEY] });
1596
+ }, 200));
1597
+ }
1598
+ function createDevToolsApi(hooks$1) {
1599
+ return {
1600
+ async getInspectorTree(payload) {
1601
+ const _payload = {
1602
+ ...payload,
1603
+ app: activeAppRecord.value.app,
1604
+ rootNodes: []
1605
+ };
1606
+ await new Promise((resolve) => {
1607
+ hooks$1.callHookWith(async (callbacks) => {
1608
+ await Promise.all(callbacks.map((cb) => cb(_payload)));
1609
+ resolve();
1610
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE);
1611
+ });
1612
+ return _payload.rootNodes;
1613
+ },
1614
+ async getInspectorState(payload) {
1615
+ const _payload = {
1616
+ ...payload,
1617
+ app: activeAppRecord.value.app,
1618
+ state: null
1619
+ };
1620
+ const ctx = { currentTab: `custom-inspector:${payload.inspectorId}` };
1621
+ await new Promise((resolve) => {
1622
+ hooks$1.callHookWith(async (callbacks) => {
1623
+ await Promise.all(callbacks.map((cb) => cb(_payload, ctx)));
1624
+ resolve();
1625
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE);
1626
+ });
1627
+ return _payload.state;
1628
+ },
1629
+ editInspectorState(payload) {
1630
+ const stateEditor$1 = new StateEditor();
1631
+ const _payload = {
1632
+ ...payload,
1633
+ app: activeAppRecord.value.app,
1634
+ set: (obj, path = payload.path, value = payload.state.value, cb) => {
1635
+ stateEditor$1.set(obj, path, value, cb || stateEditor$1.createDefaultSetCallback(payload.state));
1636
+ }
1637
+ };
1638
+ hooks$1.callHookWith((callbacks) => {
1639
+ callbacks.forEach((cb) => cb(_payload));
1640
+ }, DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE);
1641
+ },
1642
+ sendInspectorState(inspectorId) {
1643
+ const inspector = getInspector(inspectorId);
1644
+ hooks$1.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, {
1645
+ inspectorId,
1646
+ plugin: {
1647
+ descriptor: inspector.descriptor,
1648
+ setupFn: () => ({})
1649
+ }
1650
+ });
1651
+ },
1652
+ inspectComponentInspector() {
1653
+ return inspectComponentHighLighter();
1654
+ },
1655
+ cancelInspectComponentInspector() {
1656
+ return cancelInspectComponentHighLighter();
1657
+ },
1658
+ getComponentRenderCode(id) {
1659
+ const instance = getComponentInstance(activeAppRecord.value, id);
1660
+ if (instance) return !(typeof instance?.type === "function") ? instance.render.toString() : instance.type.toString();
1661
+ },
1662
+ scrollToComponent(id) {
1663
+ return scrollToComponent({ id });
1664
+ },
1665
+ openInEditor,
1666
+ getVueInspector: getComponentInspector,
1667
+ toggleApp(id, options) {
1668
+ const appRecord = devtoolsAppRecords.value.find((record) => record.id === id);
1669
+ if (appRecord) {
1670
+ setActiveAppRecordId(id);
1671
+ setActiveAppRecord(appRecord);
1672
+ normalizeRouterInfo(appRecord, activeAppRecord);
1673
+ callInspectorUpdatedHook();
1674
+ registerDevToolsPlugin(appRecord.app, options);
1675
+ }
1676
+ },
1677
+ inspectDOM(instanceId) {
1678
+ const instance = getComponentInstance(activeAppRecord.value, instanceId);
1679
+ if (instance) {
1680
+ const [el] = getRootElementsFromComponentInstance(instance);
1681
+ if (el) target.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__ = el;
1682
+ }
1683
+ },
1684
+ updatePluginSettings(pluginId, key, value) {
1685
+ setPluginSettings(pluginId, key, value);
1686
+ },
1687
+ getPluginSettings(pluginId) {
1688
+ return {
1689
+ options: getPluginSettingsOptions(pluginId),
1690
+ values: getPluginSettings(pluginId)
1691
+ };
1692
+ }
1693
+ };
1694
+ }
1695
+ target.__VUE_DEVTOOLS_ENV__ ??= { vitePluginDetected: false };
1696
+ const hooks = createDevToolsCtxHooks();
1697
+ target.__VUE_DEVTOOLS_KIT_CONTEXT__ ??= {
1698
+ hooks,
1699
+ get state() {
1700
+ return {
1701
+ ...devtoolsState,
1702
+ activeAppRecordId: activeAppRecord.id,
1703
+ activeAppRecord: activeAppRecord.value,
1704
+ appRecords: devtoolsAppRecords.value
1705
+ };
1706
+ },
1707
+ api: createDevToolsApi(hooks)
1708
+ };
1709
+ const devtoolsContext = target.__VUE_DEVTOOLS_KIT_CONTEXT__;
1710
+ var require_speakingurl$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js": ((exports, module) => {
1711
+ (function(root) {
1712
+ /**
1713
+ * charMap
1714
+ * @type {Object}
1715
+ */
1716
+ var charMap = {
1717
+ "À": "A",
1718
+ "Á": "A",
1719
+ "Â": "A",
1720
+ "Ã": "A",
1721
+ "Ä": "Ae",
1722
+ "Å": "A",
1723
+ "Æ": "AE",
1724
+ "Ç": "C",
1725
+ "È": "E",
1726
+ "É": "E",
1727
+ "Ê": "E",
1728
+ "Ë": "E",
1729
+ "Ì": "I",
1730
+ "Í": "I",
1731
+ "Î": "I",
1732
+ "Ï": "I",
1733
+ "Ð": "D",
1734
+ "Ñ": "N",
1735
+ "Ò": "O",
1736
+ "Ó": "O",
1737
+ "Ô": "O",
1738
+ "Õ": "O",
1739
+ "Ö": "Oe",
1740
+ "Ő": "O",
1741
+ "Ø": "O",
1742
+ "Ù": "U",
1743
+ "Ú": "U",
1744
+ "Û": "U",
1745
+ "Ü": "Ue",
1746
+ "Ű": "U",
1747
+ "Ý": "Y",
1748
+ "Þ": "TH",
1749
+ "ß": "ss",
1750
+ "à": "a",
1751
+ "á": "a",
1752
+ "â": "a",
1753
+ "ã": "a",
1754
+ "ä": "ae",
1755
+ "å": "a",
1756
+ "æ": "ae",
1757
+ "ç": "c",
1758
+ "è": "e",
1759
+ "é": "e",
1760
+ "ê": "e",
1761
+ "ë": "e",
1762
+ "ì": "i",
1763
+ "í": "i",
1764
+ "î": "i",
1765
+ "ï": "i",
1766
+ "ð": "d",
1767
+ "ñ": "n",
1768
+ "ò": "o",
1769
+ "ó": "o",
1770
+ "ô": "o",
1771
+ "õ": "o",
1772
+ "ö": "oe",
1773
+ "ő": "o",
1774
+ "ø": "o",
1775
+ "ù": "u",
1776
+ "ú": "u",
1777
+ "û": "u",
1778
+ "ü": "ue",
1779
+ "ű": "u",
1780
+ "ý": "y",
1781
+ "þ": "th",
1782
+ "ÿ": "y",
1783
+ "ẞ": "SS",
1784
+ "ا": "a",
1785
+ "أ": "a",
1786
+ "إ": "i",
1787
+ "آ": "aa",
1788
+ "ؤ": "u",
1789
+ "ئ": "e",
1790
+ "ء": "a",
1791
+ "ب": "b",
1792
+ "ت": "t",
1793
+ "ث": "th",
1794
+ "ج": "j",
1795
+ "ح": "h",
1796
+ "خ": "kh",
1797
+ "د": "d",
1798
+ "ذ": "th",
1799
+ "ر": "r",
1800
+ "ز": "z",
1801
+ "س": "s",
1802
+ "ش": "sh",
1803
+ "ص": "s",
1804
+ "ض": "dh",
1805
+ "ط": "t",
1806
+ "ظ": "z",
1807
+ "ع": "a",
1808
+ "غ": "gh",
1809
+ "ف": "f",
1810
+ "ق": "q",
1811
+ "ك": "k",
1812
+ "ل": "l",
1813
+ "م": "m",
1814
+ "ن": "n",
1815
+ "ه": "h",
1816
+ "و": "w",
1817
+ "ي": "y",
1818
+ "ى": "a",
1819
+ "ة": "h",
1820
+ "ﻻ": "la",
1821
+ "ﻷ": "laa",
1822
+ "ﻹ": "lai",
1823
+ "ﻵ": "laa",
1824
+ "گ": "g",
1825
+ "چ": "ch",
1826
+ "پ": "p",
1827
+ "ژ": "zh",
1828
+ "ک": "k",
1829
+ "ی": "y",
1830
+ "َ": "a",
1831
+ "ً": "an",
1832
+ "ِ": "e",
1833
+ "ٍ": "en",
1834
+ "ُ": "u",
1835
+ "ٌ": "on",
1836
+ "ْ": "",
1837
+ "٠": "0",
1838
+ "١": "1",
1839
+ "٢": "2",
1840
+ "٣": "3",
1841
+ "٤": "4",
1842
+ "٥": "5",
1843
+ "٦": "6",
1844
+ "٧": "7",
1845
+ "٨": "8",
1846
+ "٩": "9",
1847
+ "۰": "0",
1848
+ "۱": "1",
1849
+ "۲": "2",
1850
+ "۳": "3",
1851
+ "۴": "4",
1852
+ "۵": "5",
1853
+ "۶": "6",
1854
+ "۷": "7",
1855
+ "۸": "8",
1856
+ "۹": "9",
1857
+ "က": "k",
1858
+ "ခ": "kh",
1859
+ "ဂ": "g",
1860
+ "ဃ": "ga",
1861
+ "င": "ng",
1862
+ "စ": "s",
1863
+ "ဆ": "sa",
1864
+ "ဇ": "z",
1865
+ "စျ": "za",
1866
+ "ည": "ny",
1867
+ "ဋ": "t",
1868
+ "ဌ": "ta",
1869
+ "ဍ": "d",
1870
+ "ဎ": "da",
1871
+ "ဏ": "na",
1872
+ "တ": "t",
1873
+ "ထ": "ta",
1874
+ "ဒ": "d",
1875
+ "ဓ": "da",
1876
+ "န": "n",
1877
+ "ပ": "p",
1878
+ "ဖ": "pa",
1879
+ "ဗ": "b",
1880
+ "ဘ": "ba",
1881
+ "မ": "m",
1882
+ "ယ": "y",
1883
+ "ရ": "ya",
1884
+ "လ": "l",
1885
+ "ဝ": "w",
1886
+ "သ": "th",
1887
+ "ဟ": "h",
1888
+ "ဠ": "la",
1889
+ "အ": "a",
1890
+ "ြ": "y",
1891
+ "ျ": "ya",
1892
+ "ွ": "w",
1893
+ "ြွ": "yw",
1894
+ "ျွ": "ywa",
1895
+ "ှ": "h",
1896
+ "ဧ": "e",
1897
+ "၏": "-e",
1898
+ "ဣ": "i",
1899
+ "ဤ": "-i",
1900
+ "ဉ": "u",
1901
+ "ဦ": "-u",
1902
+ "ဩ": "aw",
1903
+ "သြော": "aw",
1904
+ "ဪ": "aw",
1905
+ "၀": "0",
1906
+ "၁": "1",
1907
+ "၂": "2",
1908
+ "၃": "3",
1909
+ "၄": "4",
1910
+ "၅": "5",
1911
+ "၆": "6",
1912
+ "၇": "7",
1913
+ "၈": "8",
1914
+ "၉": "9",
1915
+ "္": "",
1916
+ "့": "",
1917
+ "း": "",
1918
+ "č": "c",
1919
+ "ď": "d",
1920
+ "ě": "e",
1921
+ "ň": "n",
1922
+ "ř": "r",
1923
+ "š": "s",
1924
+ "ť": "t",
1925
+ "ů": "u",
1926
+ "ž": "z",
1927
+ "Č": "C",
1928
+ "Ď": "D",
1929
+ "Ě": "E",
1930
+ "Ň": "N",
1931
+ "Ř": "R",
1932
+ "Š": "S",
1933
+ "Ť": "T",
1934
+ "Ů": "U",
1935
+ "Ž": "Z",
1936
+ "ހ": "h",
1937
+ "ށ": "sh",
1938
+ "ނ": "n",
1939
+ "ރ": "r",
1940
+ "ބ": "b",
1941
+ "ޅ": "lh",
1942
+ "ކ": "k",
1943
+ "އ": "a",
1944
+ "ވ": "v",
1945
+ "މ": "m",
1946
+ "ފ": "f",
1947
+ "ދ": "dh",
1948
+ "ތ": "th",
1949
+ "ލ": "l",
1950
+ "ގ": "g",
1951
+ "ޏ": "gn",
1952
+ "ސ": "s",
1953
+ "ޑ": "d",
1954
+ "ޒ": "z",
1955
+ "ޓ": "t",
1956
+ "ޔ": "y",
1957
+ "ޕ": "p",
1958
+ "ޖ": "j",
1959
+ "ޗ": "ch",
1960
+ "ޘ": "tt",
1961
+ "ޙ": "hh",
1962
+ "ޚ": "kh",
1963
+ "ޛ": "th",
1964
+ "ޜ": "z",
1965
+ "ޝ": "sh",
1966
+ "ޞ": "s",
1967
+ "ޟ": "d",
1968
+ "ޠ": "t",
1969
+ "ޡ": "z",
1970
+ "ޢ": "a",
1971
+ "ޣ": "gh",
1972
+ "ޤ": "q",
1973
+ "ޥ": "w",
1974
+ "ަ": "a",
1975
+ "ާ": "aa",
1976
+ "ި": "i",
1977
+ "ީ": "ee",
1978
+ "ު": "u",
1979
+ "ޫ": "oo",
1980
+ "ެ": "e",
1981
+ "ޭ": "ey",
1982
+ "ޮ": "o",
1983
+ "ޯ": "oa",
1984
+ "ް": "",
1985
+ "ა": "a",
1986
+ "ბ": "b",
1987
+ "გ": "g",
1988
+ "დ": "d",
1989
+ "ე": "e",
1990
+ "ვ": "v",
1991
+ "ზ": "z",
1992
+ "თ": "t",
1993
+ "ი": "i",
1994
+ "კ": "k",
1995
+ "ლ": "l",
1996
+ "მ": "m",
1997
+ "ნ": "n",
1998
+ "ო": "o",
1999
+ "პ": "p",
2000
+ "ჟ": "zh",
2001
+ "რ": "r",
2002
+ "ს": "s",
2003
+ "ტ": "t",
2004
+ "უ": "u",
2005
+ "ფ": "p",
2006
+ "ქ": "k",
2007
+ "ღ": "gh",
2008
+ "ყ": "q",
2009
+ "შ": "sh",
2010
+ "ჩ": "ch",
2011
+ "ც": "ts",
2012
+ "ძ": "dz",
2013
+ "წ": "ts",
2014
+ "ჭ": "ch",
2015
+ "ხ": "kh",
2016
+ "ჯ": "j",
2017
+ "ჰ": "h",
2018
+ "α": "a",
2019
+ "β": "v",
2020
+ "γ": "g",
2021
+ "δ": "d",
2022
+ "ε": "e",
2023
+ "ζ": "z",
2024
+ "η": "i",
2025
+ "θ": "th",
2026
+ "ι": "i",
2027
+ "κ": "k",
2028
+ "λ": "l",
2029
+ "μ": "m",
2030
+ "ν": "n",
2031
+ "ξ": "ks",
2032
+ "ο": "o",
2033
+ "π": "p",
2034
+ "ρ": "r",
2035
+ "σ": "s",
2036
+ "τ": "t",
2037
+ "υ": "y",
2038
+ "φ": "f",
2039
+ "χ": "x",
2040
+ "ψ": "ps",
2041
+ "ω": "o",
2042
+ "ά": "a",
2043
+ "έ": "e",
2044
+ "ί": "i",
2045
+ "ό": "o",
2046
+ "ύ": "y",
2047
+ "ή": "i",
2048
+ "ώ": "o",
2049
+ "ς": "s",
2050
+ "ϊ": "i",
2051
+ "ΰ": "y",
2052
+ "ϋ": "y",
2053
+ "ΐ": "i",
2054
+ "Α": "A",
2055
+ "Β": "B",
2056
+ "Γ": "G",
2057
+ "Δ": "D",
2058
+ "Ε": "E",
2059
+ "Ζ": "Z",
2060
+ "Η": "I",
2061
+ "Θ": "TH",
2062
+ "Ι": "I",
2063
+ "Κ": "K",
2064
+ "Λ": "L",
2065
+ "Μ": "M",
2066
+ "Ν": "N",
2067
+ "Ξ": "KS",
2068
+ "Ο": "O",
2069
+ "Π": "P",
2070
+ "Ρ": "R",
2071
+ "Σ": "S",
2072
+ "Τ": "T",
2073
+ "Υ": "Y",
2074
+ "Φ": "F",
2075
+ "Χ": "X",
2076
+ "Ψ": "PS",
2077
+ "Ω": "O",
2078
+ "Ά": "A",
2079
+ "Έ": "E",
2080
+ "Ί": "I",
2081
+ "Ό": "O",
2082
+ "Ύ": "Y",
2083
+ "Ή": "I",
2084
+ "Ώ": "O",
2085
+ "Ϊ": "I",
2086
+ "Ϋ": "Y",
2087
+ "ā": "a",
2088
+ "ē": "e",
2089
+ "ģ": "g",
2090
+ "ī": "i",
2091
+ "ķ": "k",
2092
+ "ļ": "l",
2093
+ "ņ": "n",
2094
+ "ū": "u",
2095
+ "Ā": "A",
2096
+ "Ē": "E",
2097
+ "Ģ": "G",
2098
+ "Ī": "I",
2099
+ "Ķ": "k",
2100
+ "Ļ": "L",
2101
+ "Ņ": "N",
2102
+ "Ū": "U",
2103
+ "Ќ": "Kj",
2104
+ "ќ": "kj",
2105
+ "Љ": "Lj",
2106
+ "љ": "lj",
2107
+ "Њ": "Nj",
2108
+ "њ": "nj",
2109
+ "Тс": "Ts",
2110
+ "тс": "ts",
2111
+ "ą": "a",
2112
+ "ć": "c",
2113
+ "ę": "e",
2114
+ "ł": "l",
2115
+ "ń": "n",
2116
+ "ś": "s",
2117
+ "ź": "z",
2118
+ "ż": "z",
2119
+ "Ą": "A",
2120
+ "Ć": "C",
2121
+ "Ę": "E",
2122
+ "Ł": "L",
2123
+ "Ń": "N",
2124
+ "Ś": "S",
2125
+ "Ź": "Z",
2126
+ "Ż": "Z",
2127
+ "Є": "Ye",
2128
+ "І": "I",
2129
+ "Ї": "Yi",
2130
+ "Ґ": "G",
2131
+ "є": "ye",
2132
+ "і": "i",
2133
+ "ї": "yi",
2134
+ "ґ": "g",
2135
+ "ă": "a",
2136
+ "Ă": "A",
2137
+ "ș": "s",
2138
+ "Ș": "S",
2139
+ "ț": "t",
2140
+ "Ț": "T",
2141
+ "ţ": "t",
2142
+ "Ţ": "T",
2143
+ "а": "a",
2144
+ "б": "b",
2145
+ "в": "v",
2146
+ "г": "g",
2147
+ "д": "d",
2148
+ "е": "e",
2149
+ "ё": "yo",
2150
+ "ж": "zh",
2151
+ "з": "z",
2152
+ "и": "i",
2153
+ "й": "i",
2154
+ "к": "k",
2155
+ "л": "l",
2156
+ "м": "m",
2157
+ "н": "n",
2158
+ "о": "o",
2159
+ "п": "p",
2160
+ "р": "r",
2161
+ "с": "s",
2162
+ "т": "t",
2163
+ "у": "u",
2164
+ "ф": "f",
2165
+ "х": "kh",
2166
+ "ц": "c",
2167
+ "ч": "ch",
2168
+ "ш": "sh",
2169
+ "щ": "sh",
2170
+ "ъ": "",
2171
+ "ы": "y",
2172
+ "ь": "",
2173
+ "э": "e",
2174
+ "ю": "yu",
2175
+ "я": "ya",
2176
+ "А": "A",
2177
+ "Б": "B",
2178
+ "В": "V",
2179
+ "Г": "G",
2180
+ "Д": "D",
2181
+ "Е": "E",
2182
+ "Ё": "Yo",
2183
+ "Ж": "Zh",
2184
+ "З": "Z",
2185
+ "И": "I",
2186
+ "Й": "I",
2187
+ "К": "K",
2188
+ "Л": "L",
2189
+ "М": "M",
2190
+ "Н": "N",
2191
+ "О": "O",
2192
+ "П": "P",
2193
+ "Р": "R",
2194
+ "С": "S",
2195
+ "Т": "T",
2196
+ "У": "U",
2197
+ "Ф": "F",
2198
+ "Х": "Kh",
2199
+ "Ц": "C",
2200
+ "Ч": "Ch",
2201
+ "Ш": "Sh",
2202
+ "Щ": "Sh",
2203
+ "Ъ": "",
2204
+ "Ы": "Y",
2205
+ "Ь": "",
2206
+ "Э": "E",
2207
+ "Ю": "Yu",
2208
+ "Я": "Ya",
2209
+ "ђ": "dj",
2210
+ "ј": "j",
2211
+ "ћ": "c",
2212
+ "џ": "dz",
2213
+ "Ђ": "Dj",
2214
+ "Ј": "j",
2215
+ "Ћ": "C",
2216
+ "Џ": "Dz",
2217
+ "ľ": "l",
2218
+ "ĺ": "l",
2219
+ "ŕ": "r",
2220
+ "Ľ": "L",
2221
+ "Ĺ": "L",
2222
+ "Ŕ": "R",
2223
+ "ş": "s",
2224
+ "Ş": "S",
2225
+ "ı": "i",
2226
+ "İ": "I",
2227
+ "ğ": "g",
2228
+ "Ğ": "G",
2229
+ "ả": "a",
2230
+ "Ả": "A",
2231
+ "ẳ": "a",
2232
+ "Ẳ": "A",
2233
+ "ẩ": "a",
2234
+ "Ẩ": "A",
2235
+ "đ": "d",
2236
+ "Đ": "D",
2237
+ "ẹ": "e",
2238
+ "Ẹ": "E",
2239
+ "ẽ": "e",
2240
+ "Ẽ": "E",
2241
+ "ẻ": "e",
2242
+ "Ẻ": "E",
2243
+ "ế": "e",
2244
+ "Ế": "E",
2245
+ "ề": "e",
2246
+ "Ề": "E",
2247
+ "ệ": "e",
2248
+ "Ệ": "E",
2249
+ "ễ": "e",
2250
+ "Ễ": "E",
2251
+ "ể": "e",
2252
+ "Ể": "E",
2253
+ "ỏ": "o",
2254
+ "ọ": "o",
2255
+ "Ọ": "o",
2256
+ "ố": "o",
2257
+ "Ố": "O",
2258
+ "ồ": "o",
2259
+ "Ồ": "O",
2260
+ "ổ": "o",
2261
+ "Ổ": "O",
2262
+ "ộ": "o",
2263
+ "Ộ": "O",
2264
+ "ỗ": "o",
2265
+ "Ỗ": "O",
2266
+ "ơ": "o",
2267
+ "Ơ": "O",
2268
+ "ớ": "o",
2269
+ "Ớ": "O",
2270
+ "ờ": "o",
2271
+ "Ờ": "O",
2272
+ "ợ": "o",
2273
+ "Ợ": "O",
2274
+ "ỡ": "o",
2275
+ "Ỡ": "O",
2276
+ "Ở": "o",
2277
+ "ở": "o",
2278
+ "ị": "i",
2279
+ "Ị": "I",
2280
+ "ĩ": "i",
2281
+ "Ĩ": "I",
2282
+ "ỉ": "i",
2283
+ "Ỉ": "i",
2284
+ "ủ": "u",
2285
+ "Ủ": "U",
2286
+ "ụ": "u",
2287
+ "Ụ": "U",
2288
+ "ũ": "u",
2289
+ "Ũ": "U",
2290
+ "ư": "u",
2291
+ "Ư": "U",
2292
+ "ứ": "u",
2293
+ "Ứ": "U",
2294
+ "ừ": "u",
2295
+ "Ừ": "U",
2296
+ "ự": "u",
2297
+ "Ự": "U",
2298
+ "ữ": "u",
2299
+ "Ữ": "U",
2300
+ "ử": "u",
2301
+ "Ử": "ư",
2302
+ "ỷ": "y",
2303
+ "Ỷ": "y",
2304
+ "ỳ": "y",
2305
+ "Ỳ": "Y",
2306
+ "ỵ": "y",
2307
+ "Ỵ": "Y",
2308
+ "ỹ": "y",
2309
+ "Ỹ": "Y",
2310
+ "ạ": "a",
2311
+ "Ạ": "A",
2312
+ "ấ": "a",
2313
+ "Ấ": "A",
2314
+ "ầ": "a",
2315
+ "Ầ": "A",
2316
+ "ậ": "a",
2317
+ "Ậ": "A",
2318
+ "ẫ": "a",
2319
+ "Ẫ": "A",
2320
+ "ắ": "a",
2321
+ "Ắ": "A",
2322
+ "ằ": "a",
2323
+ "Ằ": "A",
2324
+ "ặ": "a",
2325
+ "Ặ": "A",
2326
+ "ẵ": "a",
2327
+ "Ẵ": "A",
2328
+ "⓪": "0",
2329
+ "①": "1",
2330
+ "②": "2",
2331
+ "③": "3",
2332
+ "④": "4",
2333
+ "⑤": "5",
2334
+ "⑥": "6",
2335
+ "⑦": "7",
2336
+ "⑧": "8",
2337
+ "⑨": "9",
2338
+ "⑩": "10",
2339
+ "⑪": "11",
2340
+ "⑫": "12",
2341
+ "⑬": "13",
2342
+ "⑭": "14",
2343
+ "⑮": "15",
2344
+ "⑯": "16",
2345
+ "⑰": "17",
2346
+ "⑱": "18",
2347
+ "⑲": "18",
2348
+ "⑳": "18",
2349
+ "⓵": "1",
2350
+ "⓶": "2",
2351
+ "⓷": "3",
2352
+ "⓸": "4",
2353
+ "⓹": "5",
2354
+ "⓺": "6",
2355
+ "⓻": "7",
2356
+ "⓼": "8",
2357
+ "⓽": "9",
2358
+ "⓾": "10",
2359
+ "⓿": "0",
2360
+ "⓫": "11",
2361
+ "⓬": "12",
2362
+ "⓭": "13",
2363
+ "⓮": "14",
2364
+ "⓯": "15",
2365
+ "⓰": "16",
2366
+ "⓱": "17",
2367
+ "⓲": "18",
2368
+ "⓳": "19",
2369
+ "⓴": "20",
2370
+ "Ⓐ": "A",
2371
+ "Ⓑ": "B",
2372
+ "Ⓒ": "C",
2373
+ "Ⓓ": "D",
2374
+ "Ⓔ": "E",
2375
+ "Ⓕ": "F",
2376
+ "Ⓖ": "G",
2377
+ "Ⓗ": "H",
2378
+ "Ⓘ": "I",
2379
+ "Ⓙ": "J",
2380
+ "Ⓚ": "K",
2381
+ "Ⓛ": "L",
2382
+ "Ⓜ": "M",
2383
+ "Ⓝ": "N",
2384
+ "Ⓞ": "O",
2385
+ "Ⓟ": "P",
2386
+ "Ⓠ": "Q",
2387
+ "Ⓡ": "R",
2388
+ "Ⓢ": "S",
2389
+ "Ⓣ": "T",
2390
+ "Ⓤ": "U",
2391
+ "Ⓥ": "V",
2392
+ "Ⓦ": "W",
2393
+ "Ⓧ": "X",
2394
+ "Ⓨ": "Y",
2395
+ "Ⓩ": "Z",
2396
+ "ⓐ": "a",
2397
+ "ⓑ": "b",
2398
+ "ⓒ": "c",
2399
+ "ⓓ": "d",
2400
+ "ⓔ": "e",
2401
+ "ⓕ": "f",
2402
+ "ⓖ": "g",
2403
+ "ⓗ": "h",
2404
+ "ⓘ": "i",
2405
+ "ⓙ": "j",
2406
+ "ⓚ": "k",
2407
+ "ⓛ": "l",
2408
+ "ⓜ": "m",
2409
+ "ⓝ": "n",
2410
+ "ⓞ": "o",
2411
+ "ⓟ": "p",
2412
+ "ⓠ": "q",
2413
+ "ⓡ": "r",
2414
+ "ⓢ": "s",
2415
+ "ⓣ": "t",
2416
+ "ⓤ": "u",
2417
+ "ⓦ": "v",
2418
+ "ⓥ": "w",
2419
+ "ⓧ": "x",
2420
+ "ⓨ": "y",
2421
+ "ⓩ": "z",
2422
+ "“": "\"",
2423
+ "”": "\"",
2424
+ "‘": "'",
2425
+ "’": "'",
2426
+ "∂": "d",
2427
+ "ƒ": "f",
2428
+ "™": "(TM)",
2429
+ "©": "(C)",
2430
+ "œ": "oe",
2431
+ "Œ": "OE",
2432
+ "®": "(R)",
2433
+ "†": "+",
2434
+ "℠": "(SM)",
2435
+ "…": "...",
2436
+ "˚": "o",
2437
+ "º": "o",
2438
+ "ª": "a",
2439
+ "•": "*",
2440
+ "၊": ",",
2441
+ "။": ".",
2442
+ "$": "USD",
2443
+ "€": "EUR",
2444
+ "₢": "BRN",
2445
+ "₣": "FRF",
2446
+ "£": "GBP",
2447
+ "₤": "ITL",
2448
+ "₦": "NGN",
2449
+ "₧": "ESP",
2450
+ "₩": "KRW",
2451
+ "₪": "ILS",
2452
+ "₫": "VND",
2453
+ "₭": "LAK",
2454
+ "₮": "MNT",
2455
+ "₯": "GRD",
2456
+ "₱": "ARS",
2457
+ "₲": "PYG",
2458
+ "₳": "ARA",
2459
+ "₴": "UAH",
2460
+ "₵": "GHS",
2461
+ "¢": "cent",
2462
+ "¥": "CNY",
2463
+ "元": "CNY",
2464
+ "円": "YEN",
2465
+ "﷼": "IRR",
2466
+ "₠": "EWE",
2467
+ "฿": "THB",
2468
+ "₨": "INR",
2469
+ "₹": "INR",
2470
+ "₰": "PF",
2471
+ "₺": "TRY",
2472
+ "؋": "AFN",
2473
+ "₼": "AZN",
2474
+ "лв": "BGN",
2475
+ "៛": "KHR",
2476
+ "₡": "CRC",
2477
+ "₸": "KZT",
2478
+ "ден": "MKD",
2479
+ "zł": "PLN",
2480
+ "₽": "RUB",
2481
+ "₾": "GEL"
2482
+ };
2483
+ /**
2484
+ * special look ahead character array
2485
+ * These characters form with consonants to become 'single'/consonant combo
2486
+ * @type [Array]
2487
+ */
2488
+ var lookAheadCharArray = ["်", "ް"];
2489
+ /**
2490
+ * diatricMap for languages where transliteration changes entirely as more diatrics are added
2491
+ * @type {Object}
2492
+ */
2493
+ var diatricMap = {
2494
+ "ာ": "a",
2495
+ "ါ": "a",
2496
+ "ေ": "e",
2497
+ "ဲ": "e",
2498
+ "ိ": "i",
2499
+ "ီ": "i",
2500
+ "ို": "o",
2501
+ "ု": "u",
2502
+ "ူ": "u",
2503
+ "ေါင်": "aung",
2504
+ "ော": "aw",
2505
+ "ော်": "aw",
2506
+ "ေါ": "aw",
2507
+ "ေါ်": "aw",
2508
+ "်": "်",
2509
+ "က်": "et",
2510
+ "ိုက်": "aik",
2511
+ "ောက်": "auk",
2512
+ "င်": "in",
2513
+ "ိုင်": "aing",
2514
+ "ောင်": "aung",
2515
+ "စ်": "it",
2516
+ "ည်": "i",
2517
+ "တ်": "at",
2518
+ "ိတ်": "eik",
2519
+ "ုတ်": "ok",
2520
+ "ွတ်": "ut",
2521
+ "ေတ်": "it",
2522
+ "ဒ်": "d",
2523
+ "ိုဒ်": "ok",
2524
+ "ုဒ်": "ait",
2525
+ "န်": "an",
2526
+ "ာန်": "an",
2527
+ "ိန်": "ein",
2528
+ "ုန်": "on",
2529
+ "ွန်": "un",
2530
+ "ပ်": "at",
2531
+ "ိပ်": "eik",
2532
+ "ုပ်": "ok",
2533
+ "ွပ်": "ut",
2534
+ "န်ုပ်": "nub",
2535
+ "မ်": "an",
2536
+ "ိမ်": "ein",
2537
+ "ုမ်": "on",
2538
+ "ွမ်": "un",
2539
+ "ယ်": "e",
2540
+ "ိုလ်": "ol",
2541
+ "ဉ်": "in",
2542
+ "ံ": "an",
2543
+ "ိံ": "ein",
2544
+ "ုံ": "on",
2545
+ "ައް": "ah",
2546
+ "ަށް": "ah"
2547
+ };
2548
+ /**
2549
+ * langCharMap language specific characters translations
2550
+ * @type {Object}
2551
+ */
2552
+ var langCharMap = {
2553
+ "en": {},
2554
+ "az": {
2555
+ "ç": "c",
2556
+ "ə": "e",
2557
+ "ğ": "g",
2558
+ "ı": "i",
2559
+ "ö": "o",
2560
+ "ş": "s",
2561
+ "ü": "u",
2562
+ "Ç": "C",
2563
+ "Ə": "E",
2564
+ "Ğ": "G",
2565
+ "İ": "I",
2566
+ "Ö": "O",
2567
+ "Ş": "S",
2568
+ "Ü": "U"
2569
+ },
2570
+ "cs": {
2571
+ "č": "c",
2572
+ "ď": "d",
2573
+ "ě": "e",
2574
+ "ň": "n",
2575
+ "ř": "r",
2576
+ "š": "s",
2577
+ "ť": "t",
2578
+ "ů": "u",
2579
+ "ž": "z",
2580
+ "Č": "C",
2581
+ "Ď": "D",
2582
+ "Ě": "E",
2583
+ "Ň": "N",
2584
+ "Ř": "R",
2585
+ "Š": "S",
2586
+ "Ť": "T",
2587
+ "Ů": "U",
2588
+ "Ž": "Z"
2589
+ },
2590
+ "fi": {
2591
+ "ä": "a",
2592
+ "Ä": "A",
2593
+ "ö": "o",
2594
+ "Ö": "O"
2595
+ },
2596
+ "hu": {
2597
+ "ä": "a",
2598
+ "Ä": "A",
2599
+ "ö": "o",
2600
+ "Ö": "O",
2601
+ "ü": "u",
2602
+ "Ü": "U",
2603
+ "ű": "u",
2604
+ "Ű": "U"
2605
+ },
2606
+ "lt": {
2607
+ "ą": "a",
2608
+ "č": "c",
2609
+ "ę": "e",
2610
+ "ė": "e",
2611
+ "į": "i",
2612
+ "š": "s",
2613
+ "ų": "u",
2614
+ "ū": "u",
2615
+ "ž": "z",
2616
+ "Ą": "A",
2617
+ "Č": "C",
2618
+ "Ę": "E",
2619
+ "Ė": "E",
2620
+ "Į": "I",
2621
+ "Š": "S",
2622
+ "Ų": "U",
2623
+ "Ū": "U"
2624
+ },
2625
+ "lv": {
2626
+ "ā": "a",
2627
+ "č": "c",
2628
+ "ē": "e",
2629
+ "ģ": "g",
2630
+ "ī": "i",
2631
+ "ķ": "k",
2632
+ "ļ": "l",
2633
+ "ņ": "n",
2634
+ "š": "s",
2635
+ "ū": "u",
2636
+ "ž": "z",
2637
+ "Ā": "A",
2638
+ "Č": "C",
2639
+ "Ē": "E",
2640
+ "Ģ": "G",
2641
+ "Ī": "i",
2642
+ "Ķ": "k",
2643
+ "Ļ": "L",
2644
+ "Ņ": "N",
2645
+ "Š": "S",
2646
+ "Ū": "u",
2647
+ "Ž": "Z"
2648
+ },
2649
+ "pl": {
2650
+ "ą": "a",
2651
+ "ć": "c",
2652
+ "ę": "e",
2653
+ "ł": "l",
2654
+ "ń": "n",
2655
+ "ó": "o",
2656
+ "ś": "s",
2657
+ "ź": "z",
2658
+ "ż": "z",
2659
+ "Ą": "A",
2660
+ "Ć": "C",
2661
+ "Ę": "e",
2662
+ "Ł": "L",
2663
+ "Ń": "N",
2664
+ "Ó": "O",
2665
+ "Ś": "S",
2666
+ "Ź": "Z",
2667
+ "Ż": "Z"
2668
+ },
2669
+ "sv": {
2670
+ "ä": "a",
2671
+ "Ä": "A",
2672
+ "ö": "o",
2673
+ "Ö": "O"
2674
+ },
2675
+ "sk": {
2676
+ "ä": "a",
2677
+ "Ä": "A"
2678
+ },
2679
+ "sr": {
2680
+ "љ": "lj",
2681
+ "њ": "nj",
2682
+ "Љ": "Lj",
2683
+ "Њ": "Nj",
2684
+ "đ": "dj",
2685
+ "Đ": "Dj"
2686
+ },
2687
+ "tr": {
2688
+ "Ü": "U",
2689
+ "Ö": "O",
2690
+ "ü": "u",
2691
+ "ö": "o"
2692
+ }
2693
+ };
2694
+ /**
2695
+ * symbolMap language specific symbol translations
2696
+ * translations must be transliterated already
2697
+ * @type {Object}
2698
+ */
2699
+ var symbolMap = {
2700
+ "ar": {
2701
+ "∆": "delta",
2702
+ "∞": "la-nihaya",
2703
+ "♥": "hob",
2704
+ "&": "wa",
2705
+ "|": "aw",
2706
+ "<": "aqal-men",
2707
+ ">": "akbar-men",
2708
+ "∑": "majmou",
2709
+ "¤": "omla"
2710
+ },
2711
+ "az": {},
2712
+ "ca": {
2713
+ "∆": "delta",
2714
+ "∞": "infinit",
2715
+ "♥": "amor",
2716
+ "&": "i",
2717
+ "|": "o",
2718
+ "<": "menys que",
2719
+ ">": "mes que",
2720
+ "∑": "suma dels",
2721
+ "¤": "moneda"
2722
+ },
2723
+ "cs": {
2724
+ "∆": "delta",
2725
+ "∞": "nekonecno",
2726
+ "♥": "laska",
2727
+ "&": "a",
2728
+ "|": "nebo",
2729
+ "<": "mensi nez",
2730
+ ">": "vetsi nez",
2731
+ "∑": "soucet",
2732
+ "¤": "mena"
2733
+ },
2734
+ "de": {
2735
+ "∆": "delta",
2736
+ "∞": "unendlich",
2737
+ "♥": "Liebe",
2738
+ "&": "und",
2739
+ "|": "oder",
2740
+ "<": "kleiner als",
2741
+ ">": "groesser als",
2742
+ "∑": "Summe von",
2743
+ "¤": "Waehrung"
2744
+ },
2745
+ "dv": {
2746
+ "∆": "delta",
2747
+ "∞": "kolunulaa",
2748
+ "♥": "loabi",
2749
+ "&": "aai",
2750
+ "|": "noonee",
2751
+ "<": "ah vure kuda",
2752
+ ">": "ah vure bodu",
2753
+ "∑": "jumula",
2754
+ "¤": "faisaa"
2755
+ },
2756
+ "en": {
2757
+ "∆": "delta",
2758
+ "∞": "infinity",
2759
+ "♥": "love",
2760
+ "&": "and",
2761
+ "|": "or",
2762
+ "<": "less than",
2763
+ ">": "greater than",
2764
+ "∑": "sum",
2765
+ "¤": "currency"
2766
+ },
2767
+ "es": {
2768
+ "∆": "delta",
2769
+ "∞": "infinito",
2770
+ "♥": "amor",
2771
+ "&": "y",
2772
+ "|": "u",
2773
+ "<": "menos que",
2774
+ ">": "mas que",
2775
+ "∑": "suma de los",
2776
+ "¤": "moneda"
2777
+ },
2778
+ "fa": {
2779
+ "∆": "delta",
2780
+ "∞": "bi-nahayat",
2781
+ "♥": "eshgh",
2782
+ "&": "va",
2783
+ "|": "ya",
2784
+ "<": "kamtar-az",
2785
+ ">": "bishtar-az",
2786
+ "∑": "majmooe",
2787
+ "¤": "vahed"
2788
+ },
2789
+ "fi": {
2790
+ "∆": "delta",
2791
+ "∞": "aarettomyys",
2792
+ "♥": "rakkaus",
2793
+ "&": "ja",
2794
+ "|": "tai",
2795
+ "<": "pienempi kuin",
2796
+ ">": "suurempi kuin",
2797
+ "∑": "summa",
2798
+ "¤": "valuutta"
2799
+ },
2800
+ "fr": {
2801
+ "∆": "delta",
2802
+ "∞": "infiniment",
2803
+ "♥": "Amour",
2804
+ "&": "et",
2805
+ "|": "ou",
2806
+ "<": "moins que",
2807
+ ">": "superieure a",
2808
+ "∑": "somme des",
2809
+ "¤": "monnaie"
2810
+ },
2811
+ "ge": {
2812
+ "∆": "delta",
2813
+ "∞": "usasruloba",
2814
+ "♥": "siqvaruli",
2815
+ "&": "da",
2816
+ "|": "an",
2817
+ "<": "naklebi",
2818
+ ">": "meti",
2819
+ "∑": "jami",
2820
+ "¤": "valuta"
2821
+ },
2822
+ "gr": {},
2823
+ "hu": {
2824
+ "∆": "delta",
2825
+ "∞": "vegtelen",
2826
+ "♥": "szerelem",
2827
+ "&": "es",
2828
+ "|": "vagy",
2829
+ "<": "kisebb mint",
2830
+ ">": "nagyobb mint",
2831
+ "∑": "szumma",
2832
+ "¤": "penznem"
2833
+ },
2834
+ "it": {
2835
+ "∆": "delta",
2836
+ "∞": "infinito",
2837
+ "♥": "amore",
2838
+ "&": "e",
2839
+ "|": "o",
2840
+ "<": "minore di",
2841
+ ">": "maggiore di",
2842
+ "∑": "somma",
2843
+ "¤": "moneta"
2844
+ },
2845
+ "lt": {
2846
+ "∆": "delta",
2847
+ "∞": "begalybe",
2848
+ "♥": "meile",
2849
+ "&": "ir",
2850
+ "|": "ar",
2851
+ "<": "maziau nei",
2852
+ ">": "daugiau nei",
2853
+ "∑": "suma",
2854
+ "¤": "valiuta"
2855
+ },
2856
+ "lv": {
2857
+ "∆": "delta",
2858
+ "∞": "bezgaliba",
2859
+ "♥": "milestiba",
2860
+ "&": "un",
2861
+ "|": "vai",
2862
+ "<": "mazak neka",
2863
+ ">": "lielaks neka",
2864
+ "∑": "summa",
2865
+ "¤": "valuta"
2866
+ },
2867
+ "my": {
2868
+ "∆": "kwahkhyaet",
2869
+ "∞": "asaonasme",
2870
+ "♥": "akhyait",
2871
+ "&": "nhin",
2872
+ "|": "tho",
2873
+ "<": "ngethaw",
2874
+ ">": "kyithaw",
2875
+ "∑": "paungld",
2876
+ "¤": "ngwekye"
2877
+ },
2878
+ "mk": {},
2879
+ "nl": {
2880
+ "∆": "delta",
2881
+ "∞": "oneindig",
2882
+ "♥": "liefde",
2883
+ "&": "en",
2884
+ "|": "of",
2885
+ "<": "kleiner dan",
2886
+ ">": "groter dan",
2887
+ "∑": "som",
2888
+ "¤": "valuta"
2889
+ },
2890
+ "pl": {
2891
+ "∆": "delta",
2892
+ "∞": "nieskonczonosc",
2893
+ "♥": "milosc",
2894
+ "&": "i",
2895
+ "|": "lub",
2896
+ "<": "mniejsze niz",
2897
+ ">": "wieksze niz",
2898
+ "∑": "suma",
2899
+ "¤": "waluta"
2900
+ },
2901
+ "pt": {
2902
+ "∆": "delta",
2903
+ "∞": "infinito",
2904
+ "♥": "amor",
2905
+ "&": "e",
2906
+ "|": "ou",
2907
+ "<": "menor que",
2908
+ ">": "maior que",
2909
+ "∑": "soma",
2910
+ "¤": "moeda"
2911
+ },
2912
+ "ro": {
2913
+ "∆": "delta",
2914
+ "∞": "infinit",
2915
+ "♥": "dragoste",
2916
+ "&": "si",
2917
+ "|": "sau",
2918
+ "<": "mai mic ca",
2919
+ ">": "mai mare ca",
2920
+ "∑": "suma",
2921
+ "¤": "valuta"
2922
+ },
2923
+ "ru": {
2924
+ "∆": "delta",
2925
+ "∞": "beskonechno",
2926
+ "♥": "lubov",
2927
+ "&": "i",
2928
+ "|": "ili",
2929
+ "<": "menshe",
2930
+ ">": "bolshe",
2931
+ "∑": "summa",
2932
+ "¤": "valjuta"
2933
+ },
2934
+ "sk": {
2935
+ "∆": "delta",
2936
+ "∞": "nekonecno",
2937
+ "♥": "laska",
2938
+ "&": "a",
2939
+ "|": "alebo",
2940
+ "<": "menej ako",
2941
+ ">": "viac ako",
2942
+ "∑": "sucet",
2943
+ "¤": "mena"
2944
+ },
2945
+ "sr": {},
2946
+ "tr": {
2947
+ "∆": "delta",
2948
+ "∞": "sonsuzluk",
2949
+ "♥": "ask",
2950
+ "&": "ve",
2951
+ "|": "veya",
2952
+ "<": "kucuktur",
2953
+ ">": "buyuktur",
2954
+ "∑": "toplam",
2955
+ "¤": "para birimi"
2956
+ },
2957
+ "uk": {
2958
+ "∆": "delta",
2959
+ "∞": "bezkinechnist",
2960
+ "♥": "lubov",
2961
+ "&": "i",
2962
+ "|": "abo",
2963
+ "<": "menshe",
2964
+ ">": "bilshe",
2965
+ "∑": "suma",
2966
+ "¤": "valjuta"
2967
+ },
2968
+ "vn": {
2969
+ "∆": "delta",
2970
+ "∞": "vo cuc",
2971
+ "♥": "yeu",
2972
+ "&": "va",
2973
+ "|": "hoac",
2974
+ "<": "nho hon",
2975
+ ">": "lon hon",
2976
+ "∑": "tong",
2977
+ "¤": "tien te"
2978
+ }
2979
+ };
2980
+ var uricChars = [
2981
+ ";",
2982
+ "?",
2983
+ ":",
2984
+ "@",
2985
+ "&",
2986
+ "=",
2987
+ "+",
2988
+ "$",
2989
+ ",",
2990
+ "/"
2991
+ ].join("");
2992
+ var uricNoSlashChars = [
2993
+ ";",
2994
+ "?",
2995
+ ":",
2996
+ "@",
2997
+ "&",
2998
+ "=",
2999
+ "+",
3000
+ "$",
3001
+ ","
3002
+ ].join("");
3003
+ var markChars = [
3004
+ ".",
3005
+ "!",
3006
+ "~",
3007
+ "*",
3008
+ "'",
3009
+ "(",
3010
+ ")"
3011
+ ].join("");
3012
+ /**
3013
+ * getSlug
3014
+ * @param {string} input input string
3015
+ * @param {object|string} opts config object or separator string/char
3016
+ * @api public
3017
+ * @return {string} sluggified string
3018
+ */
3019
+ var getSlug = function getSlug$1(input, opts) {
3020
+ var separator = "-";
3021
+ var result = "";
3022
+ var diatricString = "";
3023
+ var convertSymbols = true;
3024
+ var customReplacements = {};
3025
+ var maintainCase;
3026
+ var titleCase;
3027
+ var truncate;
3028
+ var uricFlag;
3029
+ var uricNoSlashFlag;
3030
+ var markFlag;
3031
+ var symbol;
3032
+ var langChar;
3033
+ var lucky;
3034
+ var i;
3035
+ var ch;
3036
+ var l;
3037
+ var lastCharWasSymbol;
3038
+ var lastCharWasDiatric;
3039
+ var allowedChars = "";
3040
+ if (typeof input !== "string") return "";
3041
+ if (typeof opts === "string") separator = opts;
3042
+ symbol = symbolMap.en;
3043
+ langChar = langCharMap.en;
3044
+ if (typeof opts === "object") {
3045
+ maintainCase = opts.maintainCase || false;
3046
+ customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements;
3047
+ truncate = +opts.truncate > 1 && opts.truncate || false;
3048
+ uricFlag = opts.uric || false;
3049
+ uricNoSlashFlag = opts.uricNoSlash || false;
3050
+ markFlag = opts.mark || false;
3051
+ convertSymbols = opts.symbols === false || opts.lang === false ? false : true;
3052
+ separator = opts.separator || separator;
3053
+ if (uricFlag) allowedChars += uricChars;
3054
+ if (uricNoSlashFlag) allowedChars += uricNoSlashChars;
3055
+ if (markFlag) allowedChars += markChars;
3056
+ symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {};
3057
+ langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en;
3058
+ if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) {
3059
+ opts.titleCase.forEach(function(v) {
3060
+ customReplacements[v + ""] = v + "";
3061
+ });
3062
+ titleCase = true;
3063
+ } else titleCase = !!opts.titleCase;
3064
+ if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) opts.custom.forEach(function(v) {
3065
+ customReplacements[v + ""] = v + "";
3066
+ });
3067
+ Object.keys(customReplacements).forEach(function(v) {
3068
+ var r;
3069
+ if (v.length > 1) r = new RegExp("\\b" + escapeChars(v) + "\\b", "gi");
3070
+ else r = new RegExp(escapeChars(v), "gi");
3071
+ input = input.replace(r, customReplacements[v]);
3072
+ });
3073
+ for (ch in customReplacements) allowedChars += ch;
3074
+ }
3075
+ allowedChars += separator;
3076
+ allowedChars = escapeChars(allowedChars);
3077
+ input = input.replace(/(^\s+|\s+$)/g, "");
3078
+ lastCharWasSymbol = false;
3079
+ lastCharWasDiatric = false;
3080
+ for (i = 0, l = input.length; i < l; i++) {
3081
+ ch = input[i];
3082
+ if (isReplacedCustomChar(ch, customReplacements)) lastCharWasSymbol = false;
3083
+ else if (langChar[ch]) {
3084
+ ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch];
3085
+ lastCharWasSymbol = false;
3086
+ } else if (ch in charMap) {
3087
+ if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) {
3088
+ diatricString += ch;
3089
+ ch = "";
3090
+ } else if (lastCharWasDiatric === true) {
3091
+ ch = diatricMap[diatricString] + charMap[ch];
3092
+ diatricString = "";
3093
+ } else ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch];
3094
+ lastCharWasSymbol = false;
3095
+ lastCharWasDiatric = false;
3096
+ } else if (ch in diatricMap) {
3097
+ diatricString += ch;
3098
+ ch = "";
3099
+ if (i === l - 1) ch = diatricMap[diatricString];
3100
+ lastCharWasDiatric = true;
3101
+ } else if (symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1)) {
3102
+ ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch];
3103
+ ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : "";
3104
+ lastCharWasSymbol = true;
3105
+ } else {
3106
+ if (lastCharWasDiatric === true) {
3107
+ ch = diatricMap[diatricString] + ch;
3108
+ diatricString = "";
3109
+ lastCharWasDiatric = false;
3110
+ } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) ch = " " + ch;
3111
+ lastCharWasSymbol = false;
3112
+ }
3113
+ result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator);
3114
+ }
3115
+ if (titleCase) result = result.replace(/(\w)(\S*)/g, function(_, i$1, r) {
3116
+ var j = i$1.toUpperCase() + (r !== null ? r : "");
3117
+ return Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0 ? j : j.toLowerCase();
3118
+ });
3119
+ result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), "");
3120
+ if (truncate && result.length > truncate) {
3121
+ lucky = result.charAt(truncate) === separator;
3122
+ result = result.slice(0, truncate);
3123
+ if (!lucky) result = result.slice(0, result.lastIndexOf(separator));
3124
+ }
3125
+ if (!maintainCase && !titleCase) result = result.toLowerCase();
3126
+ return result;
3127
+ };
3128
+ /**
3129
+ * createSlug curried(opts)(input)
3130
+ * @param {object|string} opts config object or input string
3131
+ * @return {Function} function getSlugWithConfig()
3132
+ **/
3133
+ var createSlug = function createSlug$1(opts) {
3134
+ /**
3135
+ * getSlugWithConfig
3136
+ * @param {string} input string
3137
+ * @return {string} slug string
3138
+ */
3139
+ return function getSlugWithConfig(input) {
3140
+ return getSlug(input, opts);
3141
+ };
3142
+ };
3143
+ /**
3144
+ * escape Chars
3145
+ * @param {string} input string
3146
+ */
3147
+ var escapeChars = function escapeChars$1(input) {
3148
+ return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&");
3149
+ };
3150
+ /**
3151
+ * check if the char is an already converted char from custom list
3152
+ * @param {char} ch character to check
3153
+ * @param {object} customReplacements custom translation map
3154
+ */
3155
+ var isReplacedCustomChar = function(ch, customReplacements) {
3156
+ for (var c in customReplacements) if (customReplacements[c] === ch) return true;
3157
+ };
3158
+ if (typeof module !== "undefined" && module.exports) {
3159
+ module.exports = getSlug;
3160
+ module.exports.createSlug = createSlug;
3161
+ } else if (typeof define !== "undefined" && define.amd) define([], function() {
3162
+ return getSlug;
3163
+ });
3164
+ else try {
3165
+ if (root.getSlug || root.createSlug) throw "speakingurl: globals exists /(getSlug|createSlug)/";
3166
+ else {
3167
+ root.getSlug = getSlug;
3168
+ root.createSlug = createSlug;
3169
+ }
3170
+ } catch (e) {}
3171
+ })(exports);
3172
+ }) });
3173
+ var import_speakingurl = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js": ((exports, module) => {
3174
+ module.exports = require_speakingurl$1();
3175
+ }) }))(), 1);
3176
+ const appRecordInfo = target.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__ ??= {
3177
+ id: 0,
3178
+ appIds: /* @__PURE__ */ new Set()
3179
+ };
3180
+ function toggleHighPerfMode(state) {
3181
+ devtoolsState.highPerfModeEnabled = state ?? !devtoolsState.highPerfModeEnabled;
3182
+ if (!state && activeAppRecord.value) registerDevToolsPlugin(activeAppRecord.value.app);
3183
+ }
3184
+ function updateDevToolsClientDetected(params) {
3185
+ devtoolsState.devtoolsClientDetected = {
3186
+ ...devtoolsState.devtoolsClientDetected,
3187
+ ...params
3188
+ };
3189
+ toggleHighPerfMode(!Object.values(devtoolsState.devtoolsClientDetected).some(Boolean));
3190
+ }
3191
+ target.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__ ??= updateDevToolsClientDetected;
3192
+ var DoubleIndexedKV = class {
3193
+ constructor() {
3194
+ this.keyToValue = /* @__PURE__ */ new Map();
3195
+ this.valueToKey = /* @__PURE__ */ new Map();
3196
+ }
3197
+ set(key, value) {
3198
+ this.keyToValue.set(key, value);
3199
+ this.valueToKey.set(value, key);
3200
+ }
3201
+ getByKey(key) {
3202
+ return this.keyToValue.get(key);
3203
+ }
3204
+ getByValue(value) {
3205
+ return this.valueToKey.get(value);
3206
+ }
3207
+ clear() {
3208
+ this.keyToValue.clear();
3209
+ this.valueToKey.clear();
3210
+ }
3211
+ };
3212
+ var Registry = class {
3213
+ constructor(generateIdentifier) {
3214
+ this.generateIdentifier = generateIdentifier;
3215
+ this.kv = new DoubleIndexedKV();
3216
+ }
3217
+ register(value, identifier) {
3218
+ if (this.kv.getByValue(value)) return;
3219
+ if (!identifier) identifier = this.generateIdentifier(value);
3220
+ this.kv.set(identifier, value);
3221
+ }
3222
+ clear() {
3223
+ this.kv.clear();
3224
+ }
3225
+ getIdentifier(value) {
3226
+ return this.kv.getByValue(value);
3227
+ }
3228
+ getValue(identifier) {
3229
+ return this.kv.getByKey(identifier);
3230
+ }
3231
+ };
3232
+ var ClassRegistry = class extends Registry {
3233
+ constructor() {
3234
+ super((c) => c.name);
3235
+ this.classToAllowedProps = /* @__PURE__ */ new Map();
3236
+ }
3237
+ register(value, options) {
3238
+ if (typeof options === "object") {
3239
+ if (options.allowProps) this.classToAllowedProps.set(value, options.allowProps);
3240
+ super.register(value, options.identifier);
3241
+ } else super.register(value, options);
3242
+ }
3243
+ getAllowedProps(value) {
3244
+ return this.classToAllowedProps.get(value);
3245
+ }
3246
+ };
3247
+ function valuesOfObj(record) {
3248
+ if ("values" in Object) return Object.values(record);
3249
+ const values = [];
3250
+ for (const key in record) if (record.hasOwnProperty(key)) values.push(record[key]);
3251
+ return values;
3252
+ }
3253
+ function find(record, predicate) {
3254
+ const values = valuesOfObj(record);
3255
+ if ("find" in values) return values.find(predicate);
3256
+ const valuesNotNever = values;
3257
+ for (let i = 0; i < valuesNotNever.length; i++) {
3258
+ const value = valuesNotNever[i];
3259
+ if (predicate(value)) return value;
3260
+ }
3261
+ }
3262
+ function forEach(record, run) {
3263
+ Object.entries(record).forEach(([key, value]) => run(value, key));
3264
+ }
3265
+ function includes(arr, value) {
3266
+ return arr.indexOf(value) !== -1;
3267
+ }
3268
+ function findArr(record, predicate) {
3269
+ for (let i = 0; i < record.length; i++) {
3270
+ const value = record[i];
3271
+ if (predicate(value)) return value;
3272
+ }
3273
+ }
3274
+ var CustomTransformerRegistry = class {
3275
+ constructor() {
3276
+ this.transfomers = {};
3277
+ }
3278
+ register(transformer) {
3279
+ this.transfomers[transformer.name] = transformer;
3280
+ }
3281
+ findApplicable(v) {
3282
+ return find(this.transfomers, (transformer) => transformer.isApplicable(v));
3283
+ }
3284
+ findByName(name) {
3285
+ return this.transfomers[name];
3286
+ }
3287
+ };
3288
+ const getType$1 = (payload) => Object.prototype.toString.call(payload).slice(8, -1);
3289
+ const isUndefined$1 = (payload) => typeof payload === "undefined";
3290
+ const isNull$1 = (payload) => payload === null;
3291
+ const isPlainObject$2 = (payload) => {
3292
+ if (typeof payload !== "object" || payload === null) return false;
3293
+ if (payload === Object.prototype) return false;
3294
+ if (Object.getPrototypeOf(payload) === null) return true;
3295
+ return Object.getPrototypeOf(payload) === Object.prototype;
3296
+ };
3297
+ const isEmptyObject = (payload) => isPlainObject$2(payload) && Object.keys(payload).length === 0;
3298
+ const isArray$2 = (payload) => Array.isArray(payload);
3299
+ const isString = (payload) => typeof payload === "string";
3300
+ const isNumber = (payload) => typeof payload === "number" && !isNaN(payload);
3301
+ const isBoolean = (payload) => typeof payload === "boolean";
3302
+ const isRegExp = (payload) => payload instanceof RegExp;
3303
+ const isMap = (payload) => payload instanceof Map;
3304
+ const isSet = (payload) => payload instanceof Set;
3305
+ const isSymbol = (payload) => getType$1(payload) === "Symbol";
3306
+ const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());
3307
+ const isError = (payload) => payload instanceof Error;
3308
+ const isNaNValue = (payload) => typeof payload === "number" && isNaN(payload);
3309
+ const isPrimitive = (payload) => isBoolean(payload) || isNull$1(payload) || isUndefined$1(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);
3310
+ const isBigint = (payload) => typeof payload === "bigint";
3311
+ const isInfinite = (payload) => payload === Infinity || payload === -Infinity;
3312
+ const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
3313
+ const isURL = (payload) => payload instanceof URL;
3314
+ const escapeKey = (key) => key.replace(/\./g, "\\.");
3315
+ const stringifyPath = (path) => path.map(String).map(escapeKey).join(".");
3316
+ const parsePath = (string) => {
3317
+ const result = [];
3318
+ let segment = "";
3319
+ for (let i = 0; i < string.length; i++) {
3320
+ let char = string.charAt(i);
3321
+ if (char === "\\" && string.charAt(i + 1) === ".") {
3322
+ segment += ".";
3323
+ i++;
3324
+ continue;
3325
+ }
3326
+ if (char === ".") {
3327
+ result.push(segment);
3328
+ segment = "";
3329
+ continue;
3330
+ }
3331
+ segment += char;
3332
+ }
3333
+ const lastSegment = segment;
3334
+ result.push(lastSegment);
3335
+ return result;
3336
+ };
3337
+ function simpleTransformation(isApplicable, annotation, transform, untransform) {
3338
+ return {
3339
+ isApplicable,
3340
+ annotation,
3341
+ transform,
3342
+ untransform
3343
+ };
3344
+ }
3345
+ const simpleRules = [
3346
+ simpleTransformation(isUndefined$1, "undefined", () => null, () => void 0),
3347
+ simpleTransformation(isBigint, "bigint", (v) => v.toString(), (v) => {
3348
+ if (typeof BigInt !== "undefined") return BigInt(v);
3349
+ console.error("Please add a BigInt polyfill.");
3350
+ return v;
3351
+ }),
3352
+ simpleTransformation(isDate, "Date", (v) => v.toISOString(), (v) => new Date(v)),
3353
+ simpleTransformation(isError, "Error", (v, superJson) => {
3354
+ const baseError = {
3355
+ name: v.name,
3356
+ message: v.message
3357
+ };
3358
+ superJson.allowedErrorProps.forEach((prop) => {
3359
+ baseError[prop] = v[prop];
3360
+ });
3361
+ return baseError;
3362
+ }, (v, superJson) => {
3363
+ const e = new Error(v.message);
3364
+ e.name = v.name;
3365
+ e.stack = v.stack;
3366
+ superJson.allowedErrorProps.forEach((prop) => {
3367
+ e[prop] = v[prop];
3368
+ });
3369
+ return e;
3370
+ }),
3371
+ simpleTransformation(isRegExp, "regexp", (v) => "" + v, (regex) => {
3372
+ const body = regex.slice(1, regex.lastIndexOf("/"));
3373
+ const flags = regex.slice(regex.lastIndexOf("/") + 1);
3374
+ return new RegExp(body, flags);
3375
+ }),
3376
+ simpleTransformation(isSet, "set", (v) => [...v.values()], (v) => new Set(v)),
3377
+ simpleTransformation(isMap, "map", (v) => [...v.entries()], (v) => new Map(v)),
3378
+ simpleTransformation((v) => isNaNValue(v) || isInfinite(v), "number", (v) => {
3379
+ if (isNaNValue(v)) return "NaN";
3380
+ if (v > 0) return "Infinity";
3381
+ else return "-Infinity";
3382
+ }, Number),
3383
+ simpleTransformation((v) => v === 0 && 1 / v === -Infinity, "number", () => {
3384
+ return "-0";
3385
+ }, Number),
3386
+ simpleTransformation(isURL, "URL", (v) => v.toString(), (v) => new URL(v))
3387
+ ];
3388
+ function compositeTransformation(isApplicable, annotation, transform, untransform) {
3389
+ return {
3390
+ isApplicable,
3391
+ annotation,
3392
+ transform,
3393
+ untransform
3394
+ };
3395
+ }
3396
+ const symbolRule = compositeTransformation((s, superJson) => {
3397
+ if (isSymbol(s)) return !!superJson.symbolRegistry.getIdentifier(s);
3398
+ return false;
3399
+ }, (s, superJson) => {
3400
+ return ["symbol", superJson.symbolRegistry.getIdentifier(s)];
3401
+ }, (v) => v.description, (_, a, superJson) => {
3402
+ const value = superJson.symbolRegistry.getValue(a[1]);
3403
+ if (!value) throw new Error("Trying to deserialize unknown symbol");
3404
+ return value;
3405
+ });
3406
+ const constructorToName = [
3407
+ Int8Array,
3408
+ Uint8Array,
3409
+ Int16Array,
3410
+ Uint16Array,
3411
+ Int32Array,
3412
+ Uint32Array,
3413
+ Float32Array,
3414
+ Float64Array,
3415
+ Uint8ClampedArray
3416
+ ].reduce((obj, ctor) => {
3417
+ obj[ctor.name] = ctor;
3418
+ return obj;
3419
+ }, {});
3420
+ const typedArrayRule = compositeTransformation(isTypedArray, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => {
3421
+ const ctor = constructorToName[a[1]];
3422
+ if (!ctor) throw new Error("Trying to deserialize unknown typed array");
3423
+ return new ctor(v);
3424
+ });
3425
+ function isInstanceOfRegisteredClass(potentialClass, superJson) {
3426
+ if (potentialClass?.constructor) return !!superJson.classRegistry.getIdentifier(potentialClass.constructor);
3427
+ return false;
3428
+ }
3429
+ const classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {
3430
+ return ["class", superJson.classRegistry.getIdentifier(clazz.constructor)];
3431
+ }, (clazz, superJson) => {
3432
+ const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);
3433
+ if (!allowedProps) return { ...clazz };
3434
+ const result = {};
3435
+ allowedProps.forEach((prop) => {
3436
+ result[prop] = clazz[prop];
3437
+ });
3438
+ return result;
3439
+ }, (v, a, superJson) => {
3440
+ const clazz = superJson.classRegistry.getValue(a[1]);
3441
+ if (!clazz) throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);
3442
+ return Object.assign(Object.create(clazz.prototype), v);
3443
+ });
3444
+ const customRule = compositeTransformation((value, superJson) => {
3445
+ return !!superJson.customTransformerRegistry.findApplicable(value);
3446
+ }, (value, superJson) => {
3447
+ return ["custom", superJson.customTransformerRegistry.findApplicable(value).name];
3448
+ }, (value, superJson) => {
3449
+ return superJson.customTransformerRegistry.findApplicable(value).serialize(value);
3450
+ }, (v, a, superJson) => {
3451
+ const transformer = superJson.customTransformerRegistry.findByName(a[1]);
3452
+ if (!transformer) throw new Error("Trying to deserialize unknown custom value");
3453
+ return transformer.deserialize(v);
3454
+ });
3455
+ const compositeRules = [
3456
+ classRule,
3457
+ symbolRule,
3458
+ customRule,
3459
+ typedArrayRule
3460
+ ];
3461
+ const transformValue = (value, superJson) => {
3462
+ const applicableCompositeRule = findArr(compositeRules, (rule) => rule.isApplicable(value, superJson));
3463
+ if (applicableCompositeRule) return {
3464
+ value: applicableCompositeRule.transform(value, superJson),
3465
+ type: applicableCompositeRule.annotation(value, superJson)
3466
+ };
3467
+ const applicableSimpleRule = findArr(simpleRules, (rule) => rule.isApplicable(value, superJson));
3468
+ if (applicableSimpleRule) return {
3469
+ value: applicableSimpleRule.transform(value, superJson),
3470
+ type: applicableSimpleRule.annotation
3471
+ };
3472
+ };
3473
+ const simpleRulesByAnnotation = {};
3474
+ simpleRules.forEach((rule) => {
3475
+ simpleRulesByAnnotation[rule.annotation] = rule;
3476
+ });
3477
+ const untransformValue = (json, type, superJson) => {
3478
+ if (isArray$2(type)) switch (type[0]) {
3479
+ case "symbol": return symbolRule.untransform(json, type, superJson);
3480
+ case "class": return classRule.untransform(json, type, superJson);
3481
+ case "custom": return customRule.untransform(json, type, superJson);
3482
+ case "typed-array": return typedArrayRule.untransform(json, type, superJson);
3483
+ default: throw new Error("Unknown transformation: " + type);
3484
+ }
3485
+ else {
3486
+ const transformation = simpleRulesByAnnotation[type];
3487
+ if (!transformation) throw new Error("Unknown transformation: " + type);
3488
+ return transformation.untransform(json, superJson);
3489
+ }
3490
+ };
3491
+ const getNthKey = (value, n) => {
3492
+ if (n > value.size) throw new Error("index out of bounds");
3493
+ const keys = value.keys();
3494
+ while (n > 0) {
3495
+ keys.next();
3496
+ n--;
3497
+ }
3498
+ return keys.next().value;
3499
+ };
3500
+ function validatePath(path) {
3501
+ if (includes(path, "__proto__")) throw new Error("__proto__ is not allowed as a property");
3502
+ if (includes(path, "prototype")) throw new Error("prototype is not allowed as a property");
3503
+ if (includes(path, "constructor")) throw new Error("constructor is not allowed as a property");
3504
+ }
3505
+ const getDeep = (object, path) => {
3506
+ validatePath(path);
3507
+ for (let i = 0; i < path.length; i++) {
3508
+ const key = path[i];
3509
+ if (isSet(object)) object = getNthKey(object, +key);
3510
+ else if (isMap(object)) {
3511
+ const row = +key;
3512
+ const type = +path[++i] === 0 ? "key" : "value";
3513
+ const keyOfRow = getNthKey(object, row);
3514
+ switch (type) {
3515
+ case "key":
3516
+ object = keyOfRow;
3517
+ break;
3518
+ case "value":
3519
+ object = object.get(keyOfRow);
3520
+ break;
3521
+ }
3522
+ } else object = object[key];
3523
+ }
3524
+ return object;
3525
+ };
3526
+ const setDeep = (object, path, mapper) => {
3527
+ validatePath(path);
3528
+ if (path.length === 0) return mapper(object);
3529
+ let parent = object;
3530
+ for (let i = 0; i < path.length - 1; i++) {
3531
+ const key = path[i];
3532
+ if (isArray$2(parent)) {
3533
+ const index = +key;
3534
+ parent = parent[index];
3535
+ } else if (isPlainObject$2(parent)) parent = parent[key];
3536
+ else if (isSet(parent)) {
3537
+ const row = +key;
3538
+ parent = getNthKey(parent, row);
3539
+ } else if (isMap(parent)) {
3540
+ if (i === path.length - 2) break;
3541
+ const row = +key;
3542
+ const type = +path[++i] === 0 ? "key" : "value";
3543
+ const keyOfRow = getNthKey(parent, row);
3544
+ switch (type) {
3545
+ case "key":
3546
+ parent = keyOfRow;
3547
+ break;
3548
+ case "value":
3549
+ parent = parent.get(keyOfRow);
3550
+ break;
3551
+ }
3552
+ }
3553
+ }
3554
+ const lastKey = path[path.length - 1];
3555
+ if (isArray$2(parent)) parent[+lastKey] = mapper(parent[+lastKey]);
3556
+ else if (isPlainObject$2(parent)) parent[lastKey] = mapper(parent[lastKey]);
3557
+ if (isSet(parent)) {
3558
+ const oldValue = getNthKey(parent, +lastKey);
3559
+ const newValue = mapper(oldValue);
3560
+ if (oldValue !== newValue) {
3561
+ parent.delete(oldValue);
3562
+ parent.add(newValue);
3563
+ }
3564
+ }
3565
+ if (isMap(parent)) {
3566
+ const row = +path[path.length - 2];
3567
+ const keyToRow = getNthKey(parent, row);
3568
+ switch (+lastKey === 0 ? "key" : "value") {
3569
+ case "key": {
3570
+ const newKey = mapper(keyToRow);
3571
+ parent.set(newKey, parent.get(keyToRow));
3572
+ if (newKey !== keyToRow) parent.delete(keyToRow);
3573
+ break;
3574
+ }
3575
+ case "value":
3576
+ parent.set(keyToRow, mapper(parent.get(keyToRow)));
3577
+ break;
3578
+ }
3579
+ }
3580
+ return object;
3581
+ };
3582
+ function traverse(tree, walker$1, origin = []) {
3583
+ if (!tree) return;
3584
+ if (!isArray$2(tree)) {
3585
+ forEach(tree, (subtree, key) => traverse(subtree, walker$1, [...origin, ...parsePath(key)]));
3586
+ return;
3587
+ }
3588
+ const [nodeValue, children] = tree;
3589
+ if (children) forEach(children, (child, key) => {
3590
+ traverse(child, walker$1, [...origin, ...parsePath(key)]);
3591
+ });
3592
+ walker$1(nodeValue, origin);
3593
+ }
3594
+ function applyValueAnnotations(plain, annotations, superJson) {
3595
+ traverse(annotations, (type, path) => {
3596
+ plain = setDeep(plain, path, (v) => untransformValue(v, type, superJson));
3597
+ });
3598
+ return plain;
3599
+ }
3600
+ function applyReferentialEqualityAnnotations(plain, annotations) {
3601
+ function apply(identicalPaths, path) {
3602
+ const object = getDeep(plain, parsePath(path));
3603
+ identicalPaths.map(parsePath).forEach((identicalObjectPath) => {
3604
+ plain = setDeep(plain, identicalObjectPath, () => object);
3605
+ });
3606
+ }
3607
+ if (isArray$2(annotations)) {
3608
+ const [root, other] = annotations;
3609
+ root.forEach((identicalPath) => {
3610
+ plain = setDeep(plain, parsePath(identicalPath), () => plain);
3611
+ });
3612
+ if (other) forEach(other, apply);
3613
+ } else forEach(annotations, apply);
3614
+ return plain;
3615
+ }
3616
+ const isDeep = (object, superJson) => isPlainObject$2(object) || isArray$2(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson);
3617
+ function addIdentity(object, path, identities) {
3618
+ const existingSet = identities.get(object);
3619
+ if (existingSet) existingSet.push(path);
3620
+ else identities.set(object, [path]);
3621
+ }
3622
+ function generateReferentialEqualityAnnotations(identitites, dedupe) {
3623
+ const result = {};
3624
+ let rootEqualityPaths = void 0;
3625
+ identitites.forEach((paths) => {
3626
+ if (paths.length <= 1) return;
3627
+ if (!dedupe) paths = paths.map((path) => path.map(String)).sort((a, b) => a.length - b.length);
3628
+ const [representativePath, ...identicalPaths] = paths;
3629
+ if (representativePath.length === 0) rootEqualityPaths = identicalPaths.map(stringifyPath);
3630
+ else result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);
3631
+ });
3632
+ if (rootEqualityPaths) if (isEmptyObject(result)) return [rootEqualityPaths];
3633
+ else return [rootEqualityPaths, result];
3634
+ else return isEmptyObject(result) ? void 0 : result;
3635
+ }
3636
+ const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = /* @__PURE__ */ new Map()) => {
3637
+ const primitive = isPrimitive(object);
3638
+ if (!primitive) {
3639
+ addIdentity(object, path, identities);
3640
+ const seen = seenObjects.get(object);
3641
+ if (seen) return dedupe ? { transformedValue: null } : seen;
3642
+ }
3643
+ if (!isDeep(object, superJson)) {
3644
+ const transformed$1 = transformValue(object, superJson);
3645
+ const result$1 = transformed$1 ? {
3646
+ transformedValue: transformed$1.value,
3647
+ annotations: [transformed$1.type]
3648
+ } : { transformedValue: object };
3649
+ if (!primitive) seenObjects.set(object, result$1);
3650
+ return result$1;
3651
+ }
3652
+ if (includes(objectsInThisPath, object)) return { transformedValue: null };
3653
+ const transformationResult = transformValue(object, superJson);
3654
+ const transformed = transformationResult?.value ?? object;
3655
+ const transformedValue = isArray$2(transformed) ? [] : {};
3656
+ const innerAnnotations = {};
3657
+ forEach(transformed, (value, index) => {
3658
+ if (index === "__proto__" || index === "constructor" || index === "prototype") throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);
3659
+ const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);
3660
+ transformedValue[index] = recursiveResult.transformedValue;
3661
+ if (isArray$2(recursiveResult.annotations)) innerAnnotations[index] = recursiveResult.annotations;
3662
+ else if (isPlainObject$2(recursiveResult.annotations)) forEach(recursiveResult.annotations, (tree, key) => {
3663
+ innerAnnotations[escapeKey(index) + "." + key] = tree;
3664
+ });
3665
+ });
3666
+ const result = isEmptyObject(innerAnnotations) ? {
3667
+ transformedValue,
3668
+ annotations: !!transformationResult ? [transformationResult.type] : void 0
3669
+ } : {
3670
+ transformedValue,
3671
+ annotations: !!transformationResult ? [transformationResult.type, innerAnnotations] : innerAnnotations
3672
+ };
3673
+ if (!primitive) seenObjects.set(object, result);
3674
+ return result;
3675
+ };
3676
+ function getType(payload) {
3677
+ return Object.prototype.toString.call(payload).slice(8, -1);
3678
+ }
3679
+ function isArray$1(payload) {
3680
+ return getType(payload) === "Array";
3681
+ }
3682
+ function isPlainObject$1(payload) {
3683
+ if (getType(payload) !== "Object") return false;
3684
+ const prototype = Object.getPrototypeOf(payload);
3685
+ return !!prototype && prototype.constructor === Object && prototype === Object.prototype;
3686
+ }
3687
+ function isNull(payload) {
3688
+ return getType(payload) === "Null";
3689
+ }
3690
+ function isOneOf(a, b, c, d, e) {
3691
+ return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);
3692
+ }
3693
+ function isUndefined(payload) {
3694
+ return getType(payload) === "Undefined";
3695
+ }
3696
+ isOneOf(isNull, isUndefined);
3697
+ function assignProp(carry, key, newVal, originalObject, includeNonenumerable) {
3698
+ const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable";
3699
+ if (propType === "enumerable") carry[key] = newVal;
3700
+ if (includeNonenumerable && propType === "nonenumerable") Object.defineProperty(carry, key, {
3701
+ value: newVal,
3702
+ enumerable: false,
3703
+ writable: true,
3704
+ configurable: true
3705
+ });
3706
+ }
3707
+ function copy(target$1, options = {}) {
3708
+ if (isArray$1(target$1)) return target$1.map((item) => copy(item, options));
3709
+ if (!isPlainObject$1(target$1)) return target$1;
3710
+ const props = Object.getOwnPropertyNames(target$1);
3711
+ const symbols = Object.getOwnPropertySymbols(target$1);
3712
+ return [...props, ...symbols].reduce((carry, key) => {
3713
+ if (isArray$1(options.props) && !options.props.includes(key)) return carry;
3714
+ const val = target$1[key];
3715
+ assignProp(carry, key, copy(val, options), target$1, options.nonenumerable);
3716
+ return carry;
3717
+ }, {});
3718
+ }
3719
+ var SuperJSON = class {
3720
+ /**
3721
+ * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.
3722
+ */
3723
+ constructor({ dedupe = false } = {}) {
3724
+ this.classRegistry = new ClassRegistry();
3725
+ this.symbolRegistry = new Registry((s) => s.description ?? "");
3726
+ this.customTransformerRegistry = new CustomTransformerRegistry();
3727
+ this.allowedErrorProps = [];
3728
+ this.dedupe = dedupe;
3729
+ }
3730
+ serialize(object) {
3731
+ const identities = /* @__PURE__ */ new Map();
3732
+ const output = walker(object, identities, this, this.dedupe);
3733
+ const res = { json: output.transformedValue };
3734
+ if (output.annotations) res.meta = {
3735
+ ...res.meta,
3736
+ values: output.annotations
3737
+ };
3738
+ const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);
3739
+ if (equalityAnnotations) res.meta = {
3740
+ ...res.meta,
3741
+ referentialEqualities: equalityAnnotations
3742
+ };
3743
+ return res;
3744
+ }
3745
+ deserialize(payload) {
3746
+ const { json, meta } = payload;
3747
+ let result = copy(json);
3748
+ if (meta?.values) result = applyValueAnnotations(result, meta.values, this);
3749
+ if (meta?.referentialEqualities) result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);
3750
+ return result;
3751
+ }
3752
+ stringify(object) {
3753
+ return JSON.stringify(this.serialize(object));
3754
+ }
3755
+ parse(string) {
3756
+ return this.deserialize(JSON.parse(string));
3757
+ }
3758
+ registerClass(v, options) {
3759
+ this.classRegistry.register(v, options);
3760
+ }
3761
+ registerSymbol(v, identifier) {
3762
+ this.symbolRegistry.register(v, identifier);
3763
+ }
3764
+ registerCustom(transformer, name) {
3765
+ this.customTransformerRegistry.register({
3766
+ name,
3767
+ ...transformer
3768
+ });
3769
+ }
3770
+ allowErrorProps(...props) {
3771
+ this.allowedErrorProps.push(...props);
3772
+ }
3773
+ };
3774
+ SuperJSON.defaultInstance = new SuperJSON();
3775
+ SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);
3776
+ SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);
3777
+ SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);
3778
+ SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);
3779
+ SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);
3780
+ SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);
3781
+ SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);
3782
+ SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);
3783
+ SuperJSON.serialize;
3784
+ SuperJSON.deserialize;
3785
+ SuperJSON.stringify;
3786
+ SuperJSON.parse;
3787
+ SuperJSON.registerClass;
3788
+ SuperJSON.registerCustom;
3789
+ SuperJSON.registerSymbol;
3790
+ SuperJSON.allowErrorProps;
3791
+ target.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__ ??= [];
3792
+ target.__VUE_DEVTOOLS_KIT_RPC_CLIENT__ ??= null;
3793
+ target.__VUE_DEVTOOLS_KIT_RPC_SERVER__ ??= null;
3794
+ target.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__ ??= null;
3795
+ target.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__ ??= null;
3796
+ target.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__ ??= null;
3797
+ const MAX_SERIALIZED_SIZE = 2 * 1024 * 1024;
3798
+
3799
+ //#endregion
3800
+ //#region src/panel/server-router.ts
3801
+ /**
3802
+ * 注册 API 路由调试面板(Server Router)。
3803
+ *
3804
+ * 面板将展示通过 devtools 扫描到的 API 列表,并提供请求调试能力。
3805
+ */
3806
+ function setupServerRouterPanel() {
3807
+ addCustomTab({
3808
+ name: "server-router",
3809
+ title: "Server Router",
3810
+ icon: "/__pubinfo_devtools/cloud.svg",
3811
+ view: {
3812
+ type: "iframe",
3813
+ src: "/__pubinfo_devtools/#/server-router"
3814
+ },
3815
+ category: "app"
3816
+ });
3817
+ }
3818
+
3819
+ //#endregion
3820
+ //#region src/panel/unocss.ts
3821
+ /**
3822
+ * 在 Vue Devtools 中挂载 UnoCSS 面板。
3823
+ * 以 iframe 的方式嵌入 UnoCSS 提供的 UI(依赖于宿主 app 的 devserver)。
3824
+ */
3825
+ function setupUnoCSSPanel() {
3826
+ addCustomTab({
3827
+ name: "unocss",
3828
+ title: "UnoCSS",
3829
+ icon: `/__unocss/favicon.svg`,
3830
+ view: {
3831
+ type: "iframe",
3832
+ src: "/__unocss/"
3833
+ },
3834
+ category: "advanced"
3835
+ });
3836
+ }
3837
+
3838
+ //#endregion
3839
+ //#region src/panel/index.ts
3840
+ /**
3841
+ * 注册所有内置的 Devtools 面板。
3842
+ *
3843
+ * - UnoCSS:直接复用 Uno 的内置面板(iframe 方式)。
3844
+ * - Server Router:本项目提供的服务路由调试面板。
3845
+ */
3846
+ function setupDevtoolsPanel() {
3847
+ setupUnoCSSPanel();
3848
+ setupServerRouterPanel();
3849
+ }
3850
+
3851
+ //#endregion
3852
+ export { setupDevtoolsPanel };