@leanspec/ui 0.2.19 → 0.2.20

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 (415) hide show
  1. package/README.md +78 -10
  2. package/bin/leanspec-ui.js +99 -139
  3. package/dist/assets/_baseUniq-BsoaREqH.js +1 -0
  4. package/dist/assets/_baseUniq-KSDS6tgF-C-4qFebV.js +1 -0
  5. package/dist/assets/abap-Y8Dl9g_6-BdImnpbu.js +1 -0
  6. package/dist/assets/actionscript-3-DZzbMeqX-CfeIJUat.js +1 -0
  7. package/dist/assets/ada-vP6ak0IW-bCR0ucgS.js +1 -0
  8. package/dist/assets/andromeeda-BIpZ7gaU-C-Jbm3Hp.js +1 -0
  9. package/dist/assets/angular-html-DPB4Rf0C-BGgsGAY9.js +1 -0
  10. package/dist/assets/angular-ts-CTOR2ofC-k8fsuEIJ.js +1 -0
  11. package/dist/assets/apache-BUjz-sD2-Pmp26Uib.js +1 -0
  12. package/dist/assets/apex-OyTfjCYK-D8_7TLub.js +1 -0
  13. package/dist/assets/apl-CjNiDgad-CT4Sbzkr.js +1 -0
  14. package/dist/assets/applescript-BPx7YFFu-Co6uUVPk.js +1 -0
  15. package/dist/assets/ara-Z2fSOxSw-BRHolxvo.js +1 -0
  16. package/dist/assets/arc-6n79Tfx2.js +1 -0
  17. package/dist/assets/arc-C-X5Xt_b-B3TYbMcz.js +1 -0
  18. package/dist/assets/architectureDiagram-VXUJARFQ-Bal8NTn4-BCL87o4h.js +36 -0
  19. package/dist/assets/architectureDiagram-VXUJARFQ-P8sPUFFv.js +36 -0
  20. package/dist/assets/asciidoc-B-pCoB3G-Dv7Oe6Be.js +1 -0
  21. package/dist/assets/asm-BTWLY5ym-D_Q5rh1f.js +1 -0
  22. package/dist/assets/astro-CFFExE8Q-HUi9-hH-.js +1 -0
  23. package/dist/assets/aurora-x-BwoVEUWZ-D-2ljcwZ.js +1 -0
  24. package/dist/assets/awk-Fb0P9dkn-DMzUqQB5.js +1 -0
  25. package/dist/assets/ayu-dark-DG7aLdHp-CmMr59Fi.js +1 -0
  26. package/dist/assets/ballerina-oZK-YekG-BFfxhgS-.js +1 -0
  27. package/dist/assets/bat-0FvbqU9S-BkioyH1T.js +1 -0
  28. package/dist/assets/beancount-DqJEb89h-k_qm7-4y.js +1 -0
  29. package/dist/assets/berry-DODBq_Ff-uYugtg8r.js +1 -0
  30. package/dist/assets/bibtex-EULQRLY5-CHM0blh-.js +1 -0
  31. package/dist/assets/bicep-BorU73w0-Bmn6On1c.js +1 -0
  32. package/dist/assets/blade-D0HyNvCw-B6w5bG5s.js +1 -0
  33. package/dist/assets/blockDiagram-VD42YOAC-B2gTo5wW-rdjZT-6Z.js +122 -0
  34. package/dist/assets/{blockDiagram-VD42YOAC-CXXBKVxd.js → blockDiagram-VD42YOAC-B_LH4ciH.js} +4 -4
  35. package/dist/assets/bsl-NkNNwerW-COH_2WFP.js +1 -0
  36. package/dist/assets/c-eeMepfLm-BIGW1oBm.js +1 -0
  37. package/dist/assets/c3-Bt581sCe-VCDPK7BO.js +1 -0
  38. package/dist/assets/{c4Diagram-YG6GDRKO-DVCOVm1p.js → c4Diagram-YG6GDRKO-BbCoaLWc.js} +3 -3
  39. package/dist/assets/c4Diagram-YG6GDRKO-dIf_vNCY-DL4DABj7.js +10 -0
  40. package/dist/assets/cadence-02UX7mW8-Bv_4Rxtq.js +1 -0
  41. package/dist/assets/cairo-DM6WF2e3-DtzH3ucv.js +1 -0
  42. package/dist/assets/catppuccin-frappe-D3cH2rXe-DFWUc33u.js +1 -0
  43. package/dist/assets/catppuccin-latte-C0LRGUW4-C9dUb6Cb.js +1 -0
  44. package/dist/assets/catppuccin-macchiato-c5wQ11TT-DQyhUUbL.js +1 -0
  45. package/dist/assets/catppuccin-mocha-WMD6Qvya-D87Tk5Gz.js +1 -0
  46. package/dist/assets/channel-Cg88UM7_.js +1 -0
  47. package/dist/assets/channel-klR7o7JB-BA92hgvh.js +1 -0
  48. package/dist/assets/chunk-4BX2VUAB-BQgzc1Sm-o9UeA92o.js +1 -0
  49. package/dist/assets/chunk-4BX2VUAB-BnM4Ey-A.js +1 -0
  50. package/dist/assets/chunk-55IACEB6-DRuDSE6v.js +1 -0
  51. package/dist/assets/chunk-55IACEB6-Dd3NjClm-2avamB6R.js +1 -0
  52. package/dist/assets/{chunk-B4BG7PRW-CHEWcs82.js → chunk-B4BG7PRW-BRJeNZka.js} +5 -5
  53. package/dist/assets/chunk-B4BG7PRW-DLUrgkJI-BIz-U-if.js +165 -0
  54. package/dist/assets/chunk-DI55MBZ5-BwHLqSW9-fLBLXYqu.js +220 -0
  55. package/dist/assets/{chunk-DI55MBZ5-DUqItJzJ.js → chunk-DI55MBZ5-Deatey85.js} +3 -3
  56. package/dist/assets/chunk-FMBD7UC4-6dsbMKM7-4LY1fre4.js +15 -0
  57. package/dist/assets/{chunk-FMBD7UC4-COqVzvSD.js → chunk-FMBD7UC4-BRigiN-C.js} +1 -1
  58. package/dist/assets/chunk-QN33PNHL-C5mhxjvn.js +1 -0
  59. package/dist/assets/chunk-QN33PNHL-DHNejhbC-Dzf1H1zL.js +1 -0
  60. package/dist/assets/chunk-QZHKN3VN-CVAEdzef-BFS0CidB.js +1 -0
  61. package/dist/assets/chunk-QZHKN3VN-DxEo2WQL.js +1 -0
  62. package/dist/assets/chunk-TZMSLE5B-Cc8_PJIq-BToSsQub.js +1 -0
  63. package/dist/assets/chunk-TZMSLE5B-o_smO1ge.js +1 -0
  64. package/dist/assets/clarity-PKm5CwqM-D53aC0YG.js +1 -0
  65. package/dist/assets/classDiagram-2ON5EDUG-Coznyg-a.js +1 -0
  66. package/dist/assets/classDiagram-2ON5EDUG-D7bjndmT-Bp9Exnnr.js +1 -0
  67. package/dist/assets/classDiagram-v2-WZHVMYZB-Coznyg-a.js +1 -0
  68. package/dist/assets/classDiagram-v2-WZHVMYZB-D7bjndmT-Bp9Exnnr.js +1 -0
  69. package/dist/assets/clojure-CXJfHrL3-P80f7IUj.js +1 -0
  70. package/dist/assets/clone-7srXemyd-ddPD0sbr.js +1 -0
  71. package/dist/assets/clone-BBL425Up.js +1 -0
  72. package/dist/assets/cmake-BJz8BOTU-D1j8_8rp.js +1 -0
  73. package/dist/assets/cobol-HihOMwht-CEH5cA2t.js +1 -0
  74. package/dist/assets/code-block-37QAKDTI-MRm4xHKr-DA5ypbc9.js +2 -0
  75. package/dist/assets/codeowners-Bt9yU6NX-Bp6g37R7.js +1 -0
  76. package/dist/assets/codeql-DHkodjjI-DsOJ9woJ.js +1 -0
  77. package/dist/assets/coffee-DGBR_nr_-BGq2hPi0.js +1 -0
  78. package/dist/assets/common-lisp-EVqT9Zhp-Cg-RD9OK.js +1 -0
  79. package/dist/assets/coq-B0L9upzn-DkFqJrB1.js +1 -0
  80. package/dist/assets/cose-bilkent-S5V4N54A-0O3dLIoy-D4Dh8XlP.js +1 -0
  81. package/dist/assets/cose-bilkent-S5V4N54A-D8QB8iVT.js +1 -0
  82. package/dist/assets/cpp-Cj177cuW-CX9fafSh.js +1 -0
  83. package/dist/assets/crystal-CRJyc4G--DiK3qIky.js +1 -0
  84. package/dist/assets/csharp-C7yUs7-w-K5feNrxe.js +1 -0
  85. package/dist/assets/css-CECN5uSL-DPfMkruS.js +1 -0
  86. package/dist/assets/csv-CmYOceLb-Co7V7EpZ.js +1 -0
  87. package/dist/assets/cue-ZzumE7IT-D82EKSYY.js +1 -0
  88. package/dist/assets/cypher-jpdmjtA6-COkxafJQ.js +1 -0
  89. package/dist/assets/cytoscape.esm-CjI2IsL8-U70Mzu-N.js +321 -0
  90. package/dist/assets/d-CBagWSwH-85-TOEBH.js +1 -0
  91. package/dist/assets/dagre-6UL2VRFP-6Skhzr8u.js +4 -0
  92. package/dist/assets/dagre-6UL2VRFP-BqaZre9N-CNJK18dO.js +4 -0
  93. package/dist/assets/dark-plus-pUHDTVV0-C3mMm8J8.js +1 -0
  94. package/dist/assets/dart-6ObCrKr9-CF10PKvl.js +1 -0
  95. package/dist/assets/dax-CcDT-8dH-CEL-wOlO.js +1 -0
  96. package/dist/assets/defaultLocale-D7EN2tov-DTlwZUNI.js +1 -0
  97. package/dist/assets/desktop-B93p9R9O-BmXAJ9_W.js +1 -0
  98. package/dist/assets/diagram-PSM6KHXK-OhkCexcT.js +24 -0
  99. package/dist/assets/diagram-PSM6KHXK-s2xYLlND-2NBcIWYg.js +24 -0
  100. package/dist/assets/diagram-QEK2KX5R-D700jvoY-CjoH4Z70.js +43 -0
  101. package/dist/assets/diagram-QEK2KX5R-J9zMFFhj.js +43 -0
  102. package/dist/assets/diagram-S2PKOQOG-BkgBSa1Q-BPjtcOco.js +24 -0
  103. package/dist/assets/diagram-S2PKOQOG-DBfX1nG_.js +24 -0
  104. package/dist/assets/diff-BxzP2J8R-D97Zzqfu.js +1 -0
  105. package/dist/assets/docker-CsHqm9tx-BcOcwvcX.js +1 -0
  106. package/dist/assets/dotenv-BMjVjUL1-Da5cRb03.js +1 -0
  107. package/dist/assets/dracula-BtZx2Kac-BzJJZx-M.js +1 -0
  108. package/dist/assets/dracula-soft-BKa-aqBv-BXkSAIEj.js +1 -0
  109. package/dist/assets/dream-maker-PAx17jaB-BtqSS_iP.js +1 -0
  110. package/dist/assets/edge-BYQkOzbF-DYO1BWoQ.js +1 -0
  111. package/dist/assets/elixir-Dh036GMp-Bmki-TVL.js +1 -0
  112. package/dist/assets/elm-BtNbw_Cd-Bp18OckW.js +1 -0
  113. package/dist/assets/emacs-lisp-Cfxdx5D--C9XAeP06.js +1 -0
  114. package/dist/assets/{erDiagram-Q2GNP2WA-DFZnA29W.js → erDiagram-Q2GNP2WA-C4xTfx7N.js} +4 -4
  115. package/dist/assets/erDiagram-Q2GNP2WA-CXv6THpi-jBM9oCgW.js +60 -0
  116. package/dist/assets/erb-CS4zioBv-CIsDXqOo.js +1 -0
  117. package/dist/assets/erlang-DNcDT8Hi-BWqZUIhL.js +1 -0
  118. package/dist/assets/everforest-dark-DMCBqXCK-BgDCqdQA.js +1 -0
  119. package/dist/assets/everforest-light-BbXl82Em-C8M2exoo.js +1 -0
  120. package/dist/assets/fennel-N4WcXuKx-BYunw83y.js +1 -0
  121. package/dist/assets/fish-BTDEUgqH-BvzEVeQv.js +1 -0
  122. package/dist/assets/flowDiagram-NV44I4VS-Dsrv00Gy-CDSCzPdF.js +162 -0
  123. package/dist/assets/{flowDiagram-NV44I4VS-BsSu5KcX.js → flowDiagram-NV44I4VS-IQdR5afF.js} +5 -5
  124. package/dist/assets/fluent-BMXUxfv1-C4IJs8-o.js +1 -0
  125. package/dist/assets/fortran-fixed-form-B67KFkXH-D1ymqiEx.js +1 -0
  126. package/dist/assets/fortran-free-form-CwqYvCLJ-BxgE0vQu.js +1 -0
  127. package/dist/assets/fsharp-CYOiIVNx-C_zLmMdw.js +1 -0
  128. package/dist/assets/ganttDiagram-JELNMOA3-CqVYbgbk-CXxMuoGT.js +267 -0
  129. package/dist/assets/ganttDiagram-JELNMOA3-D2MQHjD7.js +267 -0
  130. package/dist/assets/gdresource-BwtMIoBm-DAu1Gww7.js +1 -0
  131. package/dist/assets/gdscript-BifyeYhI-DTMYz4Jt.js +1 -0
  132. package/dist/assets/gdshader-Bk8fF6yr-DkwncUOv.js +1 -0
  133. package/dist/assets/genie-DzUvd7U9-D0YGMca9.js +1 -0
  134. package/dist/assets/gherkin-DHRaV0YP-DyxjwDmM.js +1 -0
  135. package/dist/assets/git-commit-Bd32YZ0K-DKnZnecv.js +1 -0
  136. package/dist/assets/git-rebase-ZWUFO_T4-PODeWoq4.js +1 -0
  137. package/dist/assets/gitGraphDiagram-NY62KEGX-DOanbk62-DfLJu9ZY.js +65 -0
  138. package/dist/assets/gitGraphDiagram-NY62KEGX-DT_U3GkJ.js +65 -0
  139. package/dist/assets/github-dark-DenFmJkN-DHJKELXO.js +1 -0
  140. package/dist/assets/github-dark-default-BJPUVz4H-Cuk6v7N8.js +1 -0
  141. package/dist/assets/github-dark-dimmed-DUshB20C-DH5Ifo-i.js +1 -0
  142. package/dist/assets/github-dark-high-contrast-D3aGCnF8-E3gJ1_iC.js +1 -0
  143. package/dist/assets/github-light-JYsPkUQd-DAi9KRSo.js +1 -0
  144. package/dist/assets/github-light-default-D99KPAby-D7oLnXFd.js +1 -0
  145. package/dist/assets/github-light-high-contrast-BbmZE-Mp-BfjtVDDH.js +1 -0
  146. package/dist/assets/gleam-Bv284lvN-BspZqrRM.js +1 -0
  147. package/dist/assets/glimmer-js-DkxNrfPT-CYvKIGv7.js +1 -0
  148. package/dist/assets/glimmer-ts-D6YZEmK_-BwkeDeeu.js +1 -0
  149. package/dist/assets/glsl-CkUcVZNK-Bf0UjSP5.js +1 -0
  150. package/dist/assets/gn-XtJxiLa4-n2N0HUVH.js +1 -0
  151. package/dist/assets/gnuplot-yPG9-sE_-DdkO51Og.js +1 -0
  152. package/dist/assets/go-ChxJuLYK-Dn2_MT6a.js +1 -0
  153. package/dist/assets/{graph-601LacnU.js → graph-BP-Jibpj.js} +1 -1
  154. package/dist/assets/graph-rt_wscbL-BNjHDk3A.js +1 -0
  155. package/dist/assets/graphql-CBu2ehBn-Cr253Gy9.js +1 -0
  156. package/dist/assets/groovy-CJQTphOW-gcz8RCvz.js +1 -0
  157. package/dist/assets/gruvbox-dark-hard-C5HOtKIh-CFHQjOhq.js +1 -0
  158. package/dist/assets/gruvbox-dark-medium-FVgwJHuz-GsRaNv29.js +1 -0
  159. package/dist/assets/gruvbox-dark-soft-B46F314v-CVdnzihN.js +1 -0
  160. package/dist/assets/gruvbox-light-hard-CJD38wDZ-CH1njM8p.js +1 -0
  161. package/dist/assets/gruvbox-light-medium-BlIhMYTA-DRw_LuNl.js +1 -0
  162. package/dist/assets/gruvbox-light-soft-DoPHyLVZ-hJgmCMqR.js +1 -0
  163. package/dist/assets/hack-ItRNKiEb-Dz4s7CVj.js +1 -0
  164. package/dist/assets/haml-NZLVzu_R-C8mKtd0e.js +1 -0
  165. package/dist/assets/handlebars-mxStpSE7-B5GnhLue.js +1 -0
  166. package/dist/assets/haskell-WeIwNIP6-Df6bDoY_.js +1 -0
  167. package/dist/assets/haxe-TztHsm5T-CzTSHFRz.js +1 -0
  168. package/dist/assets/hcl-D438OF-I-BWvSN4gD.js +1 -0
  169. package/dist/assets/hjson-DYBUbqOl-D5-asLiD.js +1 -0
  170. package/dist/assets/hlsl-Bk8TCZNL-D3lLCCz7.js +1 -0
  171. package/dist/assets/houston-BDYrDoDW-DnULxvSX.js +1 -0
  172. package/dist/assets/html-B50bmoVb-Cb86E5ej.js +1 -0
  173. package/dist/assets/html-derivative-C6bxFbFW-Iy97gZi_.js +1 -0
  174. package/dist/assets/http-DLvAkeD--BNfsu0Nw.js +1 -0
  175. package/dist/assets/hurl-CgkFN90t-RkzLjdXO.js +1 -0
  176. package/dist/assets/hxml-GbqSQCLa-MyDbT556.js +1 -0
  177. package/dist/assets/hy-Brt5EZ7--DFXneXwc.js +1 -0
  178. package/dist/assets/imba-CimUv-Uh-DGztddWO.js +1 -0
  179. package/dist/assets/index-BffUh93D.js +2540 -0
  180. package/dist/assets/index-BmRah08N.css +1 -0
  181. package/dist/assets/infoDiagram-WHAUD3N6-CibSXYXU.js +2 -0
  182. package/dist/assets/infoDiagram-WHAUD3N6-Fq8ToFQ6-eXf-0eda.js +2 -0
  183. package/dist/assets/ini-BZIuRIvJ-BEwlwnbL.js +1 -0
  184. package/dist/assets/init-DjUOC4st-DHuO7-vr.js +1 -0
  185. package/dist/assets/java-DY6VlHhP-CylS5w8V.js +1 -0
  186. package/dist/assets/javascript-C25yR2R2-wDzz0qaB.js +1 -0
  187. package/dist/assets/jinja-CFW5uAwY-CRnS6Ysd.js +1 -0
  188. package/dist/assets/jison-DdreslRX-C_aDQymB.js +1 -0
  189. package/dist/assets/journeyDiagram-XKPGCS4Q-BzZgPZwu-Dq8-0uHr.js +139 -0
  190. package/dist/assets/{journeyDiagram-XKPGCS4Q-Dr3lpFeu.js → journeyDiagram-XKPGCS4Q-D355rgh1.js} +4 -4
  191. package/dist/assets/json-DxJze_jm-Cp-IABpG.js +1 -0
  192. package/dist/assets/json5-BT4Fjg39-C9tS-k6U.js +1 -0
  193. package/dist/assets/jsonc-CHjZD8gR-Des-eS-w.js +1 -0
  194. package/dist/assets/jsonl-BGuvDmy9-DcaNXYhu.js +1 -0
  195. package/dist/assets/jsonnet-Bx2cfsXg-DFQXde-d.js +1 -0
  196. package/dist/assets/jssm-BcADi6EI-C2t-YnRu.js +1 -0
  197. package/dist/assets/jsx-BtKADgXT-g9-lgVsj.js +1 -0
  198. package/dist/assets/julia-CZiKXNNP-DuHOepf6.js +1 -0
  199. package/dist/assets/kanagawa-dragon-CiKur4Hl-CkXjmgJE.js +1 -0
  200. package/dist/assets/kanagawa-lotus-BKu-smKu-CfQXZHmo.js +1 -0
  201. package/dist/assets/kanagawa-wave-CQwozSzG-DWedfzmr.js +1 -0
  202. package/dist/assets/kanban-definition-3W4ZIXB7-CrmrjRAg-CQFMGdC-.js +89 -0
  203. package/dist/assets/{kanban-definition-3W4ZIXB7-CiIEvSbN.js → kanban-definition-3W4ZIXB7-WFOS2NhM.js} +6 -6
  204. package/dist/assets/kdl-BNOv9TC3-U6gkEhfw.js +1 -0
  205. package/dist/assets/kotlin-ByBMgTeR-BdnUsdx6.js +1 -0
  206. package/dist/assets/kusto-DH_XitHS-DZf3V79B.js +1 -0
  207. package/dist/assets/laserwave-6a00oqik-DUszq2jm.js +1 -0
  208. package/dist/assets/latex-DLWszopg-CIi2Hdhz.js +1 -0
  209. package/dist/assets/layout-CX9neEHw-BeASe-L2.js +1 -0
  210. package/dist/assets/{layout-DuttVtZo.js → layout-Dz4cXAJl.js} +1 -1
  211. package/dist/assets/lean-BnVxaZxY-BZvkOJ9d.js +1 -0
  212. package/dist/assets/less-B1GLI2Di-B1dDrJ26.js +1 -0
  213. package/dist/assets/light-plus-CZuVqSLX-B7mTdjB0.js +1 -0
  214. package/dist/assets/linear-CkUVga7d-JN8zRlYV.js +1 -0
  215. package/dist/assets/liquid-CHzkx3jT-zQly3uxw.js +1 -0
  216. package/dist/assets/llvm-co1rIKs3-BtvRca6l.js +1 -0
  217. package/dist/assets/log-Al8wyEFV-2UxHyX5q.js +1 -0
  218. package/dist/assets/logo-DBa4JDzV-BtOb2qkB.js +1 -0
  219. package/dist/assets/lua-kX5WP_P5-BiSz3S93.js +1 -0
  220. package/dist/assets/luau-UQyhudEE-C-HG3fhB.js +1 -0
  221. package/dist/assets/make-CsMclxtr-CHLpvVh8.js +1 -0
  222. package/dist/assets/markdown-CrScaQ96-Cvjx9yec.js +1 -0
  223. package/dist/assets/marko-Ns9BYtDO-BWXOr_MP.js +1 -0
  224. package/dist/assets/material-theme-D6KBX41T-D5KoaKCx.js +1 -0
  225. package/dist/assets/material-theme-darker-CkRroheE-BfHTSMKl.js +1 -0
  226. package/dist/assets/material-theme-lighter-BUBw43Yz-B0m2ddpp.js +1 -0
  227. package/dist/assets/material-theme-ocean-ClGX14Ja-CyktbL80.js +1 -0
  228. package/dist/assets/material-theme-palenight-C1RVm8K1-Csfq5Kiy.js +1 -0
  229. package/dist/assets/matlab-BOAaUVP0-D7o27uSR.js +1 -0
  230. package/dist/assets/mdc-uaivvctV-DArzT8kn.js +1 -0
  231. package/dist/assets/mdx-BOhZZUJ8-Cmh6b_Ma.js +1 -0
  232. package/dist/assets/mermaid-C3rz4dYh-mWjccvbQ.js +1 -0
  233. package/dist/assets/min-Ar5ebLd--DAFAc3TM.js +1 -0
  234. package/dist/assets/min-dark-C7ak0t6c-CafNBF8u.js +1 -0
  235. package/dist/assets/min-light-CKFxVcPp-CTRr51gU.js +1 -0
  236. package/dist/assets/min-pYcMk-7s.js +1 -0
  237. package/dist/assets/{mindmap-definition-VGOIOE7T-DdnyEiG3.js → mindmap-definition-VGOIOE7T-5TYHgroK.js} +4 -4
  238. package/dist/assets/mindmap-definition-VGOIOE7T-DeGZNL21-B7i2X052.js +68 -0
  239. package/dist/assets/mipsasm-CTx18fBl-CKIfxQSi.js +1 -0
  240. package/dist/assets/mojo-CgKe2b8g-B93PlW-d.js +1 -0
  241. package/dist/assets/monokai-C1KBYcO0-D4h5O-jR.js +1 -0
  242. package/dist/assets/moonbit-NVPuhMCm-Ba13S78F.js +1 -0
  243. package/dist/assets/move-F-dICmj2-Bu9oaDYs.js +1 -0
  244. package/dist/assets/narrat-DmhDCBs--DRg8JJMk.js +1 -0
  245. package/dist/assets/nextflow-DmSVRGjG-BrzmwbiE.js +1 -0
  246. package/dist/assets/nginx-5vhPAEw3-DWisHew1.js +1 -0
  247. package/dist/assets/night-owl-Bm2rzalh-C39BiMTA.js +1 -0
  248. package/dist/assets/nim-QAjRdh9w-DCY1hsTS.js +1 -0
  249. package/dist/assets/nix-fTRXMGic-CwoSXNpI.js +1 -0
  250. package/dist/assets/nord-CC5OiUXg-Ddv68eIx.js +1 -0
  251. package/dist/assets/nushell-D8j3dhT--C-sUppwS.js +1 -0
  252. package/dist/assets/objective-c-Itk8tzmv-DXmwc3jG.js +1 -0
  253. package/dist/assets/objective-cpp-DGt5UKRO-CLxacb5B.js +1 -0
  254. package/dist/assets/ocaml-eSVK32Eg-C0hk2d4L.js +1 -0
  255. package/dist/assets/one-dark-pro-DTA3VF0_-DVMEJ2y_.js +1 -0
  256. package/dist/assets/one-light-D9sNaUtq-PoHY5YXO.js +1 -0
  257. package/dist/assets/openscad-Sp5uZ6f2-C4EeE6gA.js +1 -0
  258. package/dist/assets/ordinal-DfAQgscy-Pc8f3NoK.js +1 -0
  259. package/dist/assets/pascal-xy8pJNns-D93ZcfNL.js +1 -0
  260. package/dist/assets/perl-DkVrgJBg-BOYFiEPK.js +1 -0
  261. package/dist/assets/php-j2zCzTEz-D4sqbyu8.js +1 -0
  262. package/dist/assets/pieDiagram-ADFJNKIX-C_V2NX6O-BCtYOnVn.js +30 -0
  263. package/dist/assets/pieDiagram-ADFJNKIX-Cl9FemBR.js +30 -0
  264. package/dist/assets/pkl-C-zSNmaA-u5AG7uiY.js +1 -0
  265. package/dist/assets/plastic-CSTz3KZp-3e1v2bzS.js +1 -0
  266. package/dist/assets/plsql-pVbGZfOv-ChMvpjG-.js +1 -0
  267. package/dist/assets/po-BNfHvqmm-BTJTHyun.js +1 -0
  268. package/dist/assets/poimandres-C-VADXHD-CS3Unz2-.js +1 -0
  269. package/dist/assets/polar-CAZahv3u-C0HS_06l.js +1 -0
  270. package/dist/assets/postcss-05aHdL-n-CXtECtnM.js +1 -0
  271. package/dist/assets/powerquery-DI9HkTvs-CEu0bR-o.js +1 -0
  272. package/dist/assets/powershell-Clc4ydu--Dpen1YoG.js +1 -0
  273. package/dist/assets/prisma-FZjmVtSl-Dd19v3D-.js +1 -0
  274. package/dist/assets/prolog-C5-yg4TO-CbFg5uaA.js +1 -0
  275. package/dist/assets/proto-C7QgialS-C7zT0LnQ.js +1 -0
  276. package/dist/assets/pug-XOw9Q1Ho-ibTSJqKJ.js +1 -0
  277. package/dist/assets/puppet-CUJHmnxV-BMWR74SV.js +1 -0
  278. package/dist/assets/purescript-rUfGld-4-CklMAg4u.js +1 -0
  279. package/dist/assets/python-BFNSHbwJ-B6aJPvgy.js +1 -0
  280. package/dist/assets/qml-rTNXsquU-ChczqDSS.js +1 -0
  281. package/dist/assets/qmldir-BInDYbpo-C8lEn-DE.js +1 -0
  282. package/dist/assets/qss-AeJTysr_-IeuSbFQv.js +1 -0
  283. package/dist/assets/quadrantDiagram-AYHSOK5B-B8fSnYQi-CsEq7CVM.js +7 -0
  284. package/dist/assets/{quadrantDiagram-AYHSOK5B-CV-jxx9u.js → quadrantDiagram-AYHSOK5B-BaMEGEnc.js} +5 -5
  285. package/dist/assets/r-CSmzDPi7-Dspwwk_N.js +1 -0
  286. package/dist/assets/racket-B83wSAja-BqYA7rlc.js +1 -0
  287. package/dist/assets/raku-nEQ4ZJJ7-DXvB9xmW.js +1 -0
  288. package/dist/assets/razor-C5CyrFEt-BEqhH4vI.js +1 -0
  289. package/dist/assets/red-7y8PH7HH-bN70gL4F.js +1 -0
  290. package/dist/assets/reg-m_s_Kiip-C-SQnVFl.js +1 -0
  291. package/dist/assets/regexp-BazyLpPg-CDVJQ6XC.js +1 -0
  292. package/dist/assets/rel-BcRfyd6Q-C3B-1QV4.js +1 -0
  293. package/dist/assets/{requirementDiagram-UZGBJVZJ-CFN8hveZ.js → requirementDiagram-UZGBJVZJ-Cegg7hVN.js} +3 -3
  294. package/dist/assets/requirementDiagram-UZGBJVZJ-MnXD59Yw-Dm-bbX5b.js +64 -0
  295. package/dist/assets/riscv-Ce8MAQLP-BM1_JUlF.js +1 -0
  296. package/dist/assets/rose-pine-BKc3yVeu-qdsjHGoJ.js +1 -0
  297. package/dist/assets/rose-pine-dawn-BulJcPZT-DHQR4-dF.js +1 -0
  298. package/dist/assets/rose-pine-moon-j6jiXKV8-D4_iv3hh.js +1 -0
  299. package/dist/assets/rosmsg-Cz0w1km8-BJDFO7_C.js +1 -0
  300. package/dist/assets/rst-CcbeA9zE-DJw32adD.js +1 -0
  301. package/dist/assets/ruby-DMPw6uKF-che4axXI.js +1 -0
  302. package/dist/assets/rust-CLzF9zIN-B1yitclQ.js +1 -0
  303. package/dist/assets/sankeyDiagram-TZEHDZUN-Dfyu7oJ6-Brsza4C4.js +10 -0
  304. package/dist/assets/sankeyDiagram-TZEHDZUN-DymCbMLh.js +10 -0
  305. package/dist/assets/sas-fpEvgATw-BHxbuS_h.js +1 -0
  306. package/dist/assets/sass-DxHp5rTx-Cj5Yp3dK.js +1 -0
  307. package/dist/assets/scala-D4grkFkl-C151Ov-r.js +1 -0
  308. package/dist/assets/scheme-BCRWuEm4-C98Dy4si.js +1 -0
  309. package/dist/assets/scss-B1FaCqwR-D5j8Lzl0.js +1 -0
  310. package/dist/assets/sdbl-B7T8abf4-DVxCFoDh.js +1 -0
  311. package/dist/assets/{sequenceDiagram-WL72ISMW-Du_dDx89.js → sequenceDiagram-WL72ISMW-B44Q2U-R.js} +1 -1
  312. package/dist/assets/sequenceDiagram-WL72ISMW-D2pgAoWi-B9cKeqh_.js +145 -0
  313. package/dist/assets/shaderlab-Cr62-Wb4-DBlXx3uy.js +1 -0
  314. package/dist/assets/shellscript-InADTalH-Yzrsuije.js +1 -0
  315. package/dist/assets/shellsession-DiDJNQdy-DyhC3EVy.js +1 -0
  316. package/dist/assets/slack-dark-i7wN4OET-BthQWCQV.js +1 -0
  317. package/dist/assets/slack-ochin-ndHf0LoP-DqwNpetd.js +1 -0
  318. package/dist/assets/smalltalk-BlI1_OkM-BERRCDM3.js +1 -0
  319. package/dist/assets/snazzy-light-BlSJXAu4-Bw305WKR.js +1 -0
  320. package/dist/assets/solarized-dark-UTmkh7lw-DXbdFlpD.js +1 -0
  321. package/dist/assets/solarized-light-BheCkDPT-L9t79GZl.js +1 -0
  322. package/dist/assets/solidity-DUWnFhS6-rGO070M0.js +1 -0
  323. package/dist/assets/soy-C1-6njHa-gzSMiW6X.js +1 -0
  324. package/dist/assets/sparql-B0KWFEri-hRQCfo7w.js +1 -0
  325. package/dist/assets/splunk-CRXR8A9s-BtCnVYZw.js +1 -0
  326. package/dist/assets/sql-Cn_v3PB0-BLtJtn59.js +1 -0
  327. package/dist/assets/ssh-config-DP-hNVbF-_ykCGR6B.js +1 -0
  328. package/dist/assets/stata-B8c5fTjX-C93OJGXX.js +1 -0
  329. package/dist/assets/stateDiagram-FKZM4ZOC-BjCASZKu.js +1 -0
  330. package/dist/assets/stateDiagram-FKZM4ZOC-DYV-na53-BvsNCcKw.js +1 -0
  331. package/dist/assets/stateDiagram-v2-4FDKWEC3-DKcialcH.js +1 -0
  332. package/dist/assets/stateDiagram-v2-4FDKWEC3-Kp4sxr9o-Dn2HGh3T.js +1 -0
  333. package/dist/assets/stylus-CyKEU1Ej-BEDo0Tqx.js +1 -0
  334. package/dist/assets/svelte-CYf4HR3U-CATdMkt-.js +1 -0
  335. package/dist/assets/swift-9UzSvamq-Dg5xB15N.js +1 -0
  336. package/dist/assets/synthwave-84-NU3C_KFZ-CbfX1IO0.js +1 -0
  337. package/dist/assets/system-verilog-BCm7smPJ-CnnmHF94.js +1 -0
  338. package/dist/assets/systemd-C-4qm6XH-4A_iFExJ.js +1 -0
  339. package/dist/assets/talonscript-CFF3LF_O-Cc6Jm0TJ.js +1 -0
  340. package/dist/assets/tasl-Cg_WBUAe-QIJgUcNo.js +1 -0
  341. package/dist/assets/tcl-DN7buRTF-dwOrl1Do.js +1 -0
  342. package/dist/assets/templ-peLZIM2D-BFctp3GS.js +1 -0
  343. package/dist/assets/terraform-DGvcn9zM-BETggiCN.js +1 -0
  344. package/dist/assets/tex-BvKThJ8p-DLMkzFBl.js +1 -0
  345. package/dist/assets/timeline-definition-IT6M3QCI-621ePKJ0-ZE60CCox.js +61 -0
  346. package/dist/assets/{timeline-definition-IT6M3QCI-dVdnSXv0.js → timeline-definition-IT6M3QCI-Dike3xBH.js} +4 -4
  347. package/dist/assets/tokyo-night-DP4TmcQl-hegEt444.js +1 -0
  348. package/dist/assets/toml-DY62mUL_-vGWfd6FD.js +1 -0
  349. package/dist/assets/{treemap-KMMF4GRG-BV1w1iyc.js → treemap-KMMF4GRG-B6R0VeLI.js} +1 -1
  350. package/dist/assets/treemap-KMMF4GRG-l6HrdCLC-BT57UjJR.js +128 -0
  351. package/dist/assets/ts-tags-ioVe2PKw-KHYt7rNi.js +1 -0
  352. package/dist/assets/tsv-BtvSkaG0-B_m7g4N7.js +1 -0
  353. package/dist/assets/tsx-B8rCNbgL-COt5Ahok.js +1 -0
  354. package/dist/assets/turtle-_H59FV7D-BsS91CYL.js +1 -0
  355. package/dist/assets/twig-CcRLVyUg-C7btHcUR.js +1 -0
  356. package/dist/assets/typescript-RycA9KXf-BPQ3VLAy.js +1 -0
  357. package/dist/assets/typespec-DWqp-kUU-BGHnOYBU.js +1 -0
  358. package/dist/assets/typst-D_1QKWns-DHCkPAjA.js +1 -0
  359. package/dist/assets/v-BPCNiyYe-BcVCzyr7.js +1 -0
  360. package/dist/assets/vala-uxaPR7d1-CsfeWuGM.js +1 -0
  361. package/dist/assets/vb-D8_c5-KN-D17OF-Vu.js +1 -0
  362. package/dist/assets/verilog-B-bybjPF-BQ8w6xss.js +1 -0
  363. package/dist/assets/vesper-BckBta1U-DU1UobuO.js +1 -0
  364. package/dist/assets/vhdl-CUlNa8ac-CeAyd5Ju.js +1 -0
  365. package/dist/assets/viml-DsfA-sWm-CJc9bBzg.js +1 -0
  366. package/dist/assets/vitesse-black-BoGvW84i-Bkuqu6BP.js +1 -0
  367. package/dist/assets/vitesse-dark-Cym-eLtO-D0r3Knsf.js +1 -0
  368. package/dist/assets/vitesse-light-CcmG315c-CVO1_9PV.js +1 -0
  369. package/dist/assets/vue-DXEmyXn9-Bb3W6Xr4.js +1 -0
  370. package/dist/assets/vue-html-j9xNEdu3-CHybns-J.js +1 -0
  371. package/dist/assets/vue-vine-D41-N99t-CQUxmJgq.js +1 -0
  372. package/dist/assets/vyper-CPQuu50u-CDx5xZoG.js +1 -0
  373. package/dist/assets/wasm-BBXxrAl7-MzD3tlZU.js +1 -0
  374. package/dist/assets/wasm-DQxwEHae-CG6Dc4jp.js +1 -0
  375. package/dist/assets/wenyan-pbVjoM9_-BV7otONQ.js +1 -0
  376. package/dist/assets/wgsl-DY4iK1q1-Dx-B1_4e.js +1 -0
  377. package/dist/assets/wikitext-Z-MoUasO-BhOHFoWU.js +1 -0
  378. package/dist/assets/wit-CQMQOlTg-5i3qLPDT.js +1 -0
  379. package/dist/assets/wolfram-Dz4KXISs-lXgVvXCa.js +1 -0
  380. package/dist/assets/xml-C2J0sS9M-wPCL2nsB.js +1 -0
  381. package/dist/assets/xsl-BmSZphgC-CVyS_1ZI.js +1 -0
  382. package/dist/assets/{xychartDiagram-PRI3JC2R-CwCa_GTs.js → xychartDiagram-PRI3JC2R-B2JxDynv.js} +3 -3
  383. package/dist/assets/xychartDiagram-PRI3JC2R-CkfCv2o_-2IOFmXBp.js +7 -0
  384. package/dist/assets/yaml-DaO7k5B1-Buea-lGh.js +1 -0
  385. package/dist/assets/zenscript-CxBjpf9c-DVFEvuxE.js +1 -0
  386. package/dist/assets/zig-Vm0PO9wB-VOosw3JB.js +1 -0
  387. package/dist/index.html +2 -2
  388. package/package.json +51 -6
  389. package/dist/assets/_baseUniq-B_CgqCSt.js +0 -1
  390. package/dist/assets/arc-DVPPsEC2.js +0 -1
  391. package/dist/assets/architectureDiagram-VXUJARFQ-_IQqxKYo.js +0 -36
  392. package/dist/assets/channel-CL2h5wNB.js +0 -1
  393. package/dist/assets/chunk-4BX2VUAB-D8_9t6yY.js +0 -1
  394. package/dist/assets/chunk-55IACEB6-C-EmQGrR.js +0 -1
  395. package/dist/assets/chunk-QN33PNHL-CJIpjCC9.js +0 -1
  396. package/dist/assets/chunk-QZHKN3VN-CpXaXp0i.js +0 -1
  397. package/dist/assets/chunk-TZMSLE5B-CoTszQOd.js +0 -1
  398. package/dist/assets/classDiagram-2ON5EDUG-CAtDv-y3.js +0 -1
  399. package/dist/assets/classDiagram-v2-WZHVMYZB-CAtDv-y3.js +0 -1
  400. package/dist/assets/clone-CoiRjcC8.js +0 -1
  401. package/dist/assets/cose-bilkent-S5V4N54A-CCWF40Jw.js +0 -1
  402. package/dist/assets/dagre-6UL2VRFP-DyKGMsKo.js +0 -4
  403. package/dist/assets/diagram-PSM6KHXK-DmqHpb1v.js +0 -24
  404. package/dist/assets/diagram-QEK2KX5R-CKQtPcW7.js +0 -43
  405. package/dist/assets/diagram-S2PKOQOG-C_dgkHpy.js +0 -24
  406. package/dist/assets/ganttDiagram-JELNMOA3-SYBxP2n7.js +0 -267
  407. package/dist/assets/gitGraphDiagram-NY62KEGX-CBgpe8DS.js +0 -65
  408. package/dist/assets/index-CthZaHng.js +0 -389
  409. package/dist/assets/index-Ds6u1Apd.css +0 -1
  410. package/dist/assets/infoDiagram-WHAUD3N6-DzR85k1c.js +0 -2
  411. package/dist/assets/min-BLsDITlU.js +0 -1
  412. package/dist/assets/pieDiagram-ADFJNKIX-Cd_mVRGQ.js +0 -30
  413. package/dist/assets/sankeyDiagram-TZEHDZUN-HIPiAdXt.js +0 -10
  414. package/dist/assets/stateDiagram-FKZM4ZOC-CaMv3zZm.js +0 -1
  415. package/dist/assets/stateDiagram-v2-4FDKWEC3-DgKotkeZ.js +0 -1
package/README.md CHANGED
@@ -6,6 +6,33 @@ Primary Vite-based Single Page Application for LeanSpec spec management (web + d
6
6
 
7
7
  This is a lightweight, fast SPA built with Vite. It provides a modern UI for viewing and managing LeanSpec specifications.
8
8
 
9
+ **Unified Server Architecture**: The UI is served by the Rust HTTP server on port 3000. When you run `npx @leanspec/ui`, it starts a single process that serves both the static UI files and the API endpoints. This provides:
10
+ - Single port (default: 3000)
11
+ - Same-origin API requests (no CORS needed)
12
+ - Better performance (no Node.js HTTP server overhead)
13
+ - Simpler deployment
14
+
15
+ ## Usage
16
+
17
+ ```bash
18
+ # Start the unified HTTP server
19
+ npx @leanspec/ui
20
+
21
+ # Custom port and host
22
+ npx @leanspec/ui --port 3001 --host 0.0.0.0
23
+
24
+ # Auto-add project
25
+ npx @leanspec/ui --project /path/to/specs
26
+
27
+ # Read-only mode
28
+ npx @leanspec/ui --readonly
29
+
30
+ # All CLI arguments are passed to the Rust HTTP server
31
+ npx @leanspec/ui --help
32
+ ```
33
+
34
+ Visit `http://localhost:3000` to access the UI.
35
+
9
36
  ## Architecture
10
37
 
11
38
  - **Build Tool**: Vite 7 (fast HMR, optimized builds)
@@ -13,7 +40,7 @@ This is a lightweight, fast SPA built with Vite. It provides a modern UI for vie
13
40
  - **Routing**: React Router 7 (client-side)
14
41
  - **Components**: `@leanspec/ui-components` (shared library)
15
42
  - **Styling**: Tailwind CSS 3
16
- - **Backend**: Connects to Rust HTTP server at `http://localhost:3333`
43
+ - **Backend**: Same-origin API served by the Rust HTTP server at `http://localhost:3000`
17
44
 
18
45
  ## Features
19
46
 
@@ -26,36 +53,77 @@ This is a lightweight, fast SPA built with Vite. It provides a modern UI for vie
26
53
 
27
54
  ## Development
28
55
 
56
+ ### Development with HMR (Recommended)
57
+
58
+ For fast UI development with Hot Module Replacement:
59
+
29
60
  ```bash
30
- # Install dependencies
31
- pnpm install
61
+ # Terminal 1: Start Rust HTTP server (API on port 3000)
62
+ cd rust/leanspec-http
63
+ cargo run
32
64
 
33
- # Start dev server (runs on http://localhost:5173)
65
+ # Terminal 2: Start Vite dev server (UI on port 5173)
66
+ cd packages/ui
34
67
  pnpm dev
68
+ ```
35
69
 
36
- # Build for production
70
+ Access the UI at `http://localhost:5173`. Vite's proxy automatically forwards API requests to port 3000.
71
+
72
+ ### Production-like Development
73
+
74
+ To test the unified server locally:
75
+
76
+ ```bash
77
+ # Build UI
37
78
  pnpm build
38
79
 
39
- # Preview production build
40
- pnpm preview
80
+ # Start unified server (serves UI + API on port 3000)
81
+ cd ../../rust/leanspec-http
82
+ cargo run
83
+ ```
84
+
85
+ Access at `http://localhost:3000`.
86
+
87
+ ### Other Commands
41
88
 
89
+ ```bash
42
90
  # Type check
43
91
  pnpm typecheck
44
92
 
45
93
  # Lint
46
94
  pnpm lint
95
+
96
+ # Preview production build (Vite preview server)
97
+ pnpm preview
47
98
  ```
48
99
 
49
100
  ## Configuration
50
101
 
51
- The API base URL can be configured via environment variable:
102
+ By default the UI uses same-origin API calls (relative `/api/...`).
103
+
104
+ ### Dev (recommended, “single origin” in the browser)
105
+
106
+ Run the Rust HTTP server (API) on a port (default `3000`), run Vite on `5173`, and let Vite proxy `/api`.
107
+
108
+ If you need to change where the dev proxy points, use a server-only env var:
109
+
110
+ ```bash
111
+ # .env.local (used by Vite dev server only)
112
+ LEANSPEC_API_URL=http://localhost:3000
113
+ ```
114
+
115
+ With this setup the browser still talks to a single origin (the Vite origin) because all API calls are made to `/api`.
116
+
117
+ ### Deploy UI separately (cross-origin)
118
+
119
+ If you are serving the UI from a different origin than the Rust server, you can set an explicit API base URL:
52
120
 
53
121
  ```bash
54
122
  # .env.local
55
- VITE_API_URL=http://localhost:3333
123
+ VITE_API_URL=http://localhost:3000
56
124
  ```
57
125
 
58
- Default is `http://localhost:3333` which matches the Rust HTTP server.
126
+ If you want the Rust HTTP server to serve both UI + API on a single port, leave `VITE_API_URL` unset.
59
127
 
60
128
  ## Build Output
61
129
 
@@ -1,18 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * LeanSpec UI Launcher
4
- *
5
- * This script:
6
- * 1. Starts the Rust HTTP server (API backend on port 3333)
7
- * 2. Serves the pre-built Vite UI on port 3000
8
- *
9
- * For development, use `npm run dev` or `pnpm dev` instead.
4
+ *
5
+ * This script starts the Rust HTTP server and serves the embedded UI
6
+ * from the same process and port.
10
7
  */
11
8
 
12
- import { spawn } from 'child_process';
13
- import { createServer } from 'http';
14
- import { readFileSync, existsSync } from 'fs';
15
- import { join, dirname, extname } from 'path';
9
+ import { spawn, spawnSync } from 'child_process';
10
+ import { existsSync } from 'fs';
11
+ import { join, dirname } from 'path';
16
12
  import { fileURLToPath } from 'url';
17
13
  import { createRequire } from 'module';
18
14
 
@@ -20,93 +16,8 @@ const require = createRequire(import.meta.url);
20
16
  const __filename = fileURLToPath(import.meta.url);
21
17
  const __dirname = dirname(__filename);
22
18
 
23
- // Configuration
24
- const UI_PORT = process.env.PORT || 3000;
25
- const API_PORT = process.env.API_PORT || 3333;
26
19
  const DIST_DIR = join(__dirname, '..', 'dist');
27
20
 
28
- // MIME types
29
- const MIME_TYPES = {
30
- '.html': 'text/html',
31
- '.js': 'application/javascript',
32
- '.css': 'text/css',
33
- '.json': 'application/json',
34
- '.png': 'image/png',
35
- '.jpg': 'image/jpeg',
36
- '.jpeg': 'image/jpeg',
37
- '.gif': 'image/gif',
38
- '.svg': 'image/svg+xml',
39
- '.ico': 'image/x-icon',
40
- '.woff': 'font/woff',
41
- '.woff2': 'font/woff2',
42
- '.ttf': 'font/ttf',
43
- '.eot': 'application/vnd.ms-fontobject',
44
- };
45
-
46
- function getMimeType(filePath) {
47
- const ext = extname(filePath).toLowerCase();
48
- return MIME_TYPES[ext] || 'application/octet-stream';
49
- }
50
-
51
- function serveFile(res, filePath) {
52
- if (!existsSync(filePath)) {
53
- return false;
54
- }
55
-
56
- try {
57
- const content = readFileSync(filePath);
58
- const mimeType = getMimeType(filePath);
59
- res.writeHead(200, { 'Content-Type': mimeType });
60
- res.end(content);
61
- return true;
62
- } catch (err) {
63
- console.error('Error serving file:', filePath, err);
64
- return false;
65
- }
66
- }
67
-
68
- const server = createServer((req, res) => {
69
- // Remove query string and clean path
70
- const url = req.url?.split('?')[0] || '/';
71
- let filePath = join(DIST_DIR, url);
72
-
73
- // Try serving the file directly
74
- if (existsSync(filePath) && !filePath.endsWith('/')) {
75
- const stat = require('fs').statSync(filePath);
76
- if (stat.isFile()) {
77
- if (serveFile(res, filePath)) {
78
- return;
79
- }
80
- }
81
- }
82
-
83
- // Try with .html extension
84
- if (!filePath.endsWith('.html') && existsSync(filePath + '.html')) {
85
- if (serveFile(res, filePath + '.html')) {
86
- return;
87
- }
88
- }
89
-
90
- // Try index.html in directory
91
- if (existsSync(join(filePath, 'index.html'))) {
92
- if (serveFile(res, join(filePath, 'index.html'))) {
93
- return;
94
- }
95
- }
96
-
97
- // Fallback to index.html for SPA routing
98
- const indexPath = join(DIST_DIR, 'index.html');
99
- if (existsSync(indexPath)) {
100
- if (serveFile(res, indexPath)) {
101
- return;
102
- }
103
- }
104
-
105
- // 404
106
- res.writeHead(404, { 'Content-Type': 'text/plain' });
107
- res.end('404 Not Found');
108
- });
109
-
110
21
  // Check if dist exists
111
22
  if (!existsSync(DIST_DIR)) {
112
23
  console.error('Error: UI build not found!');
@@ -117,63 +28,112 @@ if (!existsSync(DIST_DIR)) {
117
28
  process.exit(1);
118
29
  }
119
30
 
120
- // Start the Rust HTTP server (API backend)
121
- let httpServerProcess;
122
- try {
123
- // Try to resolve @leanspec/http-server
124
- const httpServerPath = require.resolve('@leanspec/http-server/bin/leanspec-http.js');
31
+ /**
32
+ * Try to resolve @leanspec/http-server from multiple locations
33
+ */
34
+ function resolveHttpServer() {
35
+ // Try local resolution first
36
+ try {
37
+ return require.resolve('@leanspec/http-server/bin/leanspec-http.js');
38
+ } catch {
39
+ // Continue to try other locations
40
+ }
125
41
 
126
- console.log('🚀 Starting LeanSpec HTTP server...');
127
- httpServerProcess = spawn('node', [httpServerPath], {
42
+ // Try resolving from global npm modules
43
+ try {
44
+ const npmRoot = spawnSync('npm', ['root', '-g'], {
45
+ encoding: 'utf8',
46
+ shell: true
47
+ });
48
+ if (npmRoot.status === 0 && npmRoot.stdout) {
49
+ const globalPath = join(
50
+ npmRoot.stdout.trim(),
51
+ '@leanspec',
52
+ 'http-server',
53
+ 'bin',
54
+ 'leanspec-http.js'
55
+ );
56
+ if (existsSync(globalPath)) {
57
+ return globalPath;
58
+ }
59
+ }
60
+ } catch {
61
+ // Continue
62
+ }
63
+
64
+ return null;
65
+ }
66
+
67
+ /**
68
+ * Auto-install @leanspec/http-server globally using npm
69
+ */
70
+ function installHttpServer() {
71
+ console.log('📦 @leanspec/http-server not found, installing globally...');
72
+ console.log('');
73
+
74
+ // Get the version of @leanspec/ui to match
75
+ const uiPkg = JSON.parse(
76
+ require('fs').readFileSync(join(__dirname, '..', 'package.json'), 'utf8')
77
+ );
78
+ const version = uiPkg.version;
79
+ const packageSpec = version.includes('dev')
80
+ ? '@leanspec/http-server@dev'
81
+ : `@leanspec/http-server@^${version}`;
82
+
83
+ // Install globally so it persists across npx runs
84
+ const result = spawnSync('npm', ['install', '-g', packageSpec], {
128
85
  stdio: 'inherit',
129
- env: { ...process.env, PORT: API_PORT.toString() }
86
+ shell: true
130
87
  });
88
+
89
+ if (result.status !== 0) {
90
+ console.error('');
91
+ console.error('Failed to auto-install @leanspec/http-server');
92
+ console.error('');
93
+ console.error('Please install manually:');
94
+ console.error(' npm install -g @leanspec/http-server');
95
+ process.exit(1);
96
+ }
97
+
98
+ console.log('');
99
+ console.log('✅ @leanspec/http-server installed globally');
100
+ console.log('');
101
+ }
131
102
 
132
- httpServerProcess.on('error', (err) => {
133
- console.error('Failed to start HTTP server:', err.message);
134
- console.error('\nThe UI requires @leanspec/http-server to function.');
135
- console.error('Install it with: npm install @leanspec/http-server');
103
+ // Try to resolve http-server, install if needed
104
+ let httpServerPath = resolveHttpServer();
105
+ if (!httpServerPath) {
106
+ installHttpServer();
107
+ httpServerPath = resolveHttpServer();
108
+
109
+ if (!httpServerPath) {
110
+ console.error('Error: Failed to resolve @leanspec/http-server after installation');
111
+ console.error('Please try installing manually: npm install -g @leanspec/http-server');
136
112
  process.exit(1);
137
- });
113
+ }
114
+ }
138
115
 
139
- // Wait a moment for the HTTP server to start
140
- await new Promise(resolve => setTimeout(resolve, 1000));
116
+ // Start the Rust HTTP server (serves API + UI)
117
+ let httpServerProcess;
141
118
 
142
- } catch (err) {
143
- console.error('Error: @leanspec/http-server not found');
144
- console.error('The UI requires the HTTP server to provide API functionality.');
145
- console.error('');
146
- console.error('Install it with:');
147
- console.error(' npm install -g @leanspec/http-server');
148
- console.error('');
149
- console.error('Or install both together:');
150
- console.error(' npm install -g lean-spec @leanspec/http-server @leanspec/ui');
151
- process.exit(1);
152
- }
119
+ console.log('🚀 Starting LeanSpec HTTP server...');
120
+ const args = process.argv.slice(2);
153
121
 
154
- // Start the UI server
155
- server.listen(UI_PORT, () => {
156
- console.log('');
157
- console.log(`✅ LeanSpec is running!`);
158
- console.log(` UI: http://localhost:${UI_PORT}`);
159
- console.log(` API: http://localhost:${API_PORT}`);
160
- console.log('');
161
- console.log(`Press Ctrl+C to stop`);
122
+ httpServerProcess = spawn('node', [httpServerPath, ...args], {
123
+ stdio: 'inherit',
124
+ env: { ...process.env, LEANSPEC_UI_DIST: DIST_DIR }
162
125
  });
163
126
 
164
- server.on('error', (err) => {
165
- if (err.code === 'EADDRINUSE') {
166
- console.error(`Error: Port ${UI_PORT} is already in use`);
167
- console.error('Try setting a different port: PORT=3001 npx @leanspec/ui');
168
- } else {
169
- console.error('Server error:', err);
170
- }
171
- if (httpServerProcess) {
172
- httpServerProcess.kill();
173
- }
127
+ httpServerProcess.on('error', (err) => {
128
+ console.error('Failed to start HTTP server:', err.message);
129
+ console.error('\nThe UI requires @leanspec/http-server to function.');
130
+ console.error('Install it with: npm install @leanspec/http-server');
174
131
  process.exit(1);
175
132
  });
176
133
 
134
+ // Wait a moment for the HTTP server to start
135
+ await new Promise(resolve => setTimeout(resolve, 1000));
136
+
177
137
  // Cleanup on exit
178
138
  process.on('SIGINT', () => {
179
139
  console.log('\n\nShutting down...');
@@ -0,0 +1 @@
1
+ import{dK as b,e1 as ln,d9 as A,dI as v,e2 as gn,e3 as dn,d8 as W,e4 as hn,e5 as z,e6 as pn,e7 as An,e8 as m,dL as N,dQ as K,dT as I,e9 as _n,dO as on,ea as wn,eb as On,da as V,ec as Pn,ed as L}from"./index-BffUh93D.js";var vn="[object Symbol]";function x(n){return typeof n=="symbol"||b(n)&&ln(n)==vn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var U=v?v.prototype:void 0,B=U?U.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function En(){}function cn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function Tn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function In(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Ln(n,r,e){return r===r?Rn(n,r,e):Tn(n,In,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&Ln(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var bn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!bn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dn=/\\(\\)?/g,Fn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Dn,"$1"):i||e)}),r});function Gn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Fn(Gn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=v?v.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Kn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Un(){return[]}var Bn=Object.prototype,Hn=Bn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Hn.call(n,r)}))}:Un;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Yn="__lodash_hash_undefined__";function Qn(n){return this.__data__.set(n,Yn),this}function Xn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Qn;y.prototype.has=Xn;function Jn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Jn(r,function(O,P){if(!tn(o,P)&&(p===O||f(p,O,e,i,t)))return o.push(P)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=v?v.prototype:void 0,S=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],P=r[d];if(i)var G=s?i(P,O,d,r,n,t):i(O,P,d,n,r,t);if(!(G===void 0?O===P||f(O,P,e,i,t):G)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var E=n.constructor,c=r.constructor;E!=c&&"constructor"in n&&"constructor"in r&&!(typeof E=="function"&&E instanceof E&&typeof c=="function"&&c instanceof c)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Q="[object Arguments]",X="[object Array]",T="[object Object]",wr=Object.prototype,J=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?X:N(n),h=u?X:N(r);a=a==Q?T:a,h=h==Q?T:h;var g=a==T,l=h==T,d=a==h;if(d&&K(n)){if(!K(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new I),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&J.call(n,"__wrapped__"),p=l&&J.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new I),f(_,w,e,i,t)}}return d?(t||(t=new I),_r(n,r,e,i,f,t)):!1}function D(n,r,e,i,f){return n===r?!0:n==null||r==null||!b(n)&&!b(r)?n!==n&&r!==r:Or(n,r,e,i,D,f)}var Pr=1,vr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new I,l;if(!(l===void 0?D(h,a,Pr|vr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function Er(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function cr(n){var r=Er(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function Tr(n,r){return n!=null&&r in Object(n)}function Ir(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Ir(n,r,Tr)}var Lr=1,Sr=2;function br(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):D(r,i,Lr|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?br(n[0],n[1]):cr(n):$r(n)}function Cr(n,r){return n&&Pn(n,r,M)}function Dr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var F=Dr(Cr);function Fr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?cn:F;return e(n,Fr(r))}function Gr(n,r){var e=[];return F(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Gr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Kn:mr,f=arguments.length<3;return i(n,an(r),e,f,F)}var Nr=1/0,Kr=L&&1/C(new L([,-0]))[1]==Nr?function(n){return new L(n)}:En,Ur=200;function Qr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Ur){var h=r?null:Kr(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{F as a,Hr as b,yn as c,an as d,rn as e,Zn as f,qn as g,Z as h,x as i,cn as j,M as k,Qr as l,Zr as m,qr as n,Tn as o,Fr as p,Cr as q,Yr as r,Un as s,Ir as t,j as u,R as v,nn as w,Rr as x,Gn as y};
@@ -0,0 +1 @@
1
+ import{K as ir,R as cr,I as N,u as b,A as V,S as M,X as lr,n as sr,i as k,P as A,$ as vr,a0 as hr,F as br,a1 as G,d as B,e as E,a2 as gr,o as _,M as pr,a3 as I,a4 as yr,J as dr}from"./index-BffUh93D.js";var jr="[object Symbol]";function D(r){return typeof r=="symbol"||k(r)&&vr(r)==jr}function _r(r,t){for(var e=-1,n=r==null?0:r.length,a=Array(n);++e<n;)a[e]=t(r[e],e,r);return a}var q=_?_.prototype:void 0,H=q?q.toString:void 0;function Q(r){if(typeof r=="string")return r;if(b(r))return _r(r,Q)+"";if(D(r))return H?H.call(r):"";var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function mr(){}function wr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}function Or(r,t,e,n){for(var a=r.length,u=e+-1;++u<a;)if(t(r[u],u,r))return u;return-1}function Sr(r){return r!==r}function Ar(r,t,e){for(var n=e-1,a=r.length;++n<a;)if(r[n]===t)return n;return-1}function Pr(r,t,e){return t===t?Ar(r,t,e):Or(r,Sr,e)}function Mr(r,t){var e=r==null?0:r.length;return!!e&&Pr(r,t,0)>-1}function L(r){return N(r)?ir(r):cr(r)}var Xr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kr=/^\w*$/;function $(r,t){if(b(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||D(r)?!0:kr.test(r)||!Xr.test(r)||t!=null&&r in Object(t)}var Dr=500;function Lr(r){var t=yr(r,function(n){return e.size===Dr&&e.clear(),n}),e=t.cache;return t}var $r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zr=/\\(\\)?/g,Cr=Lr(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace($r,function(e,n,a,u){t.push(a?u.replace(zr,"$1"):n||e)}),t});function Fr(r){return r==null?"":Q(r)}function W(r,t){return b(r)?r:$(r,t)?[r]:Cr(Fr(r))}function P(r){if(typeof r=="string"||D(r))return r;var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function rr(r,t){t=W(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[P(t[e++])];return e&&e==n?r:void 0}function xr(r,t,e){var n=r==null?void 0:rr(r,t);return n===void 0?e:n}function tr(r,t){for(var e=-1,n=t.length,a=r.length;++e<n;)r[a+e]=t[e];return r}var R=_?_.isConcatSpreadable:void 0;function Br(r){return b(r)||G(r)||!!(R&&r&&r[R])}function Ht(r,t,e,n,a){var u=-1,o=r.length;for(e||(e=Br),a||(a=[]);++u<o;){var f=r[u];e(f)?tr(a,f):n||(a[a.length]=f)}return a}function Er(r,t,e,n){var a=-1,u=r==null?0:r.length;for(n&&u&&(e=r[++a]);++a<u;)e=t(e,r[a],a,r);return e}function er(r,t){for(var e=-1,n=r==null?0:r.length,a=0,u=[];++e<n;){var o=r[e];t(o,e,r)&&(u[a++]=o)}return u}function Ir(){return[]}var qr=Object.prototype,Hr=qr.propertyIsEnumerable,T=Object.getOwnPropertySymbols,Rr=T?function(r){return r==null?[]:(r=Object(r),er(T(r),function(t){return Hr.call(r,t)}))}:Ir;function Tr(r,t,e){var n=t(r);return b(r)?n:tr(n,e(r))}function U(r){return Tr(r,L,Rr)}var Ur="__lodash_hash_undefined__";function Yr(r){return this.__data__.set(r,Ur),this}function Zr(r){return this.__data__.has(r)}function m(r){var t=-1,e=r==null?0:r.length;for(this.__data__=new lr;++t<e;)this.add(r[t])}m.prototype.add=m.prototype.push=Yr;m.prototype.has=Zr;function Jr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n;)if(t(r[e],e,r))return!0;return!1}function nr(r,t){return r.has(t)}var Kr=1,Nr=2;function ur(r,t,e,n,a,u){var o=e&Kr,f=r.length,i=t.length;if(f!=i&&!(o&&i>f))return!1;var v=u.get(r),l=u.get(t);if(v&&l)return v==t&&l==r;var c=-1,s=!0,p=e&Nr?new m:void 0;for(u.set(r,t),u.set(t,r);++c<f;){var h=r[c],g=t[c];if(n)var y=o?n(g,h,c,t,r,u):n(h,g,c,r,t,u);if(y!==void 0){if(y)continue;s=!1;break}if(p){if(!Jr(t,function(d,j){if(!nr(p,j)&&(h===d||a(h,d,e,n,u)))return p.push(j)})){s=!1;break}}else if(!(h===g||a(h,g,e,n,u))){s=!1;break}}return u.delete(r),u.delete(t),s}function Vr(r){var t=-1,e=Array(r.size);return r.forEach(function(n,a){e[++t]=[a,n]}),e}function z(r){var t=-1,e=Array(r.size);return r.forEach(function(n){e[++t]=n}),e}var Gr=1,Qr=2,Wr="[object Boolean]",rt="[object Date]",tt="[object Error]",et="[object Map]",nt="[object Number]",ut="[object RegExp]",at="[object Set]",ot="[object String]",ft="[object Symbol]",it="[object ArrayBuffer]",ct="[object DataView]",Y=_?_.prototype:void 0,X=Y?Y.valueOf:void 0;function lt(r,t,e,n,a,u,o){switch(e){case ct:if(r.byteLength!=t.byteLength||r.byteOffset!=t.byteOffset)return!1;r=r.buffer,t=t.buffer;case it:return!(r.byteLength!=t.byteLength||!u(new I(r),new I(t)));case Wr:case rt:case nt:return pr(+r,+t);case tt:return r.name==t.name&&r.message==t.message;case ut:case ot:return r==t+"";case et:var f=Vr;case at:var i=n&Gr;if(f||(f=z),r.size!=t.size&&!i)return!1;var v=o.get(r);if(v)return v==t;n|=Qr,o.set(r,t);var l=ur(f(r),f(t),n,a,u,o);return o.delete(r),l;case ft:if(X)return X.call(r)==X.call(t)}return!1}var st=1,vt=Object.prototype,ht=vt.hasOwnProperty;function bt(r,t,e,n,a,u){var o=e&st,f=U(r),i=f.length,v=U(t),l=v.length;if(i!=l&&!o)return!1;for(var c=i;c--;){var s=f[c];if(!(o?s in t:ht.call(t,s)))return!1}var p=u.get(r),h=u.get(t);if(p&&h)return p==t&&h==r;var g=!0;u.set(r,t),u.set(t,r);for(var y=o;++c<i;){s=f[c];var d=r[s],j=t[s];if(n)var x=o?n(j,d,s,t,r,u):n(d,j,s,r,t,u);if(!(x===void 0?d===j||a(d,j,e,n,u):x)){g=!1;break}y||(y=s=="constructor")}if(g&&!y){var w=r.constructor,O=t.constructor;w!=O&&"constructor"in r&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof O=="function"&&O instanceof O)&&(g=!1)}return u.delete(r),u.delete(t),g}var gt=1,Z="[object Arguments]",J="[object Array]",S="[object Object]",pt=Object.prototype,K=pt.hasOwnProperty;function yt(r,t,e,n,a,u){var o=b(r),f=b(t),i=o?J:B(r),v=f?J:B(t);i=i==Z?S:i,v=v==Z?S:v;var l=i==S,c=v==S,s=i==v;if(s&&E(r)){if(!E(t))return!1;o=!0,l=!1}if(s&&!l)return u||(u=new A),o||gr(r)?ur(r,t,e,n,a,u):lt(r,t,i,e,n,a,u);if(!(e&gt)){var p=l&&K.call(r,"__wrapped__"),h=c&&K.call(t,"__wrapped__");if(p||h){var g=p?r.value():r,y=h?t.value():t;return u||(u=new A),a(g,y,e,n,u)}}return s?(u||(u=new A),bt(r,t,e,n,a,u)):!1}function C(r,t,e,n,a){return r===t?!0:r==null||t==null||!k(r)&&!k(t)?r!==r&&t!==t:yt(r,t,e,n,C,a)}var dt=1,jt=2;function _t(r,t,e,n){var a=e.length,u=a;if(r==null)return!u;for(r=Object(r);a--;){var o=e[a];if(o[2]?o[1]!==r[o[0]]:!(o[0]in r))return!1}for(;++a<u;){o=e[a];var f=o[0],i=r[f],v=o[1];if(o[2]){if(i===void 0&&!(f in r))return!1}else{var l=new A,c;if(!(c===void 0?C(v,i,dt|jt,n,l):c))return!1}}return!0}function ar(r){return r===r&&!sr(r)}function mt(r){for(var t=L(r),e=t.length;e--;){var n=t[e],a=r[n];t[e]=[n,a,ar(a)]}return t}function or(r,t){return function(e){return e==null?!1:e[r]===t&&(t!==void 0||r in Object(e))}}function wt(r){var t=mt(r);return t.length==1&&t[0][2]?or(t[0][0],t[0][1]):function(e){return e===r||_t(e,r,t)}}function Ot(r,t){return r!=null&&t in Object(r)}function St(r,t,e){t=W(t,r);for(var n=-1,a=t.length,u=!1;++n<a;){var o=P(t[n]);if(!(u=r!=null&&e(r,o)))break;r=r[o]}return u||++n!=a?u:(a=r==null?0:r.length,!!a&&hr(a)&&br(o,a)&&(b(r)||G(r)))}function At(r,t){return r!=null&&St(r,t,Ot)}var Pt=1,Mt=2;function Xt(r,t){return $(r)&&ar(t)?or(P(r),t):function(e){var n=xr(e,r);return n===void 0&&n===t?At(e,r):C(t,n,Pt|Mt)}}function kt(r){return function(t){return t?.[r]}}function Dt(r){return function(t){return rr(t,r)}}function Lt(r){return $(r)?kt(P(r)):Dt(r)}function fr(r){return typeof r=="function"?r:r==null?V:typeof r=="object"?b(r)?Xt(r[0],r[1]):wt(r):Lt(r)}function $t(r,t){return r&&dr(r,t,L)}function zt(r,t){return function(e,n){if(e==null)return e;if(!N(e))return r(e,n);for(var a=e.length,u=-1,o=Object(e);++u<a&&n(o[u],u,o)!==!1;);return e}}var F=zt($t);function Ct(r){return typeof r=="function"?r:V}function Rt(r,t){var e=b(r)?wr:F;return e(r,Ct(t))}function Ft(r,t){var e=[];return F(r,function(n,a,u){t(n,a,u)&&e.push(n)}),e}function Tt(r,t){var e=b(r)?er:Ft;return e(r,fr(t))}function xt(r,t,e,n,a){return a(r,function(u,o,f){e=n?(n=!1,u):t(e,u,o,f)}),e}function Ut(r,t,e){var n=b(r)?Er:xt,a=arguments.length<3;return n(r,fr(t),e,a,F)}var Bt=1/0,Et=M&&1/z(new M([,-0]))[1]==Bt?function(r){return new M(r)}:mr,It=200;function Yt(r,t,e){var n=-1,a=Mr,u=r.length,o=!0,f=[],i=f;if(u>=It){var v=t?null:Et(r);if(v)return z(v);o=!1,a=nr,i=new m}else i=t?[]:f;r:for(;++n<u;){var l=r[n],c=t?t(l):l;if(l=l!==0?l:0,o&&c===c){for(var s=i.length;s--;)if(i[s]===c)continue r;t&&i.push(c),f.push(l)}else a(i,c,e)||(i!==f&&i.push(c),f.push(l))}return f}export{$t as C,wr as E,Ct as F,Fr as G,Ht as H,P as I,L as M,St as T,Ir as U,Yt as X,Tt as Y,Ut as Z,U as a,_r as b,Rr as c,Tr as d,fr as e,At as f,Or as g,F as h,W as j,rr as n,Rt as q,tr as r,D as x};
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse('{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<!\\\\S)##.*?(?=([,.:\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=[-~\\\\s])(?<=[-=]>)([/_a-z][/-9_a-z]*)(?=\\\\s+(?:|[-*+/]|&&?)=\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b[0-9]+(\\\\b|[,.])","name":"constant.numeric.abap"},{"match":"(?i)(^|\\\\s+)((P(?:UBLIC|RIVATE|ROTECTED))\\\\sSECTION)(?=\\\\s+|[.:])","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"(\\\\{ )|( })","name":"constant.character.escape"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"},{"match":"(?i)(?<=\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\s=)","name":"entity.name.property.stringtemplate.abap"},{"match":"(?i)(?<==\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\s)","name":"entity.value.property.stringtemplate.abap"}]},{"begin":"\'","end":"\'","name":"string.quoted.single.abap","patterns":[{"match":"\'\'","name":"constant.character.escape.abap"}]},{"begin":"`","end":"`","name":"string.quoted.single.abap","patterns":[{"match":"``","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?i)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(p(?:ublic|rotected|rivate)))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","contentName":"entity.name.type.block.abap","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(method)\\\\s(?:([/_a-z][/-9_a-z]*)~)?([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(BY(?:\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|\\\\s+KERNEL\\\\s+MODULE))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?i)(?<=\\\\s)(USING)\\\\s+([/_a-z][/-9=>_a-z]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(INTERFACE)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?i)^\\\\s*(FORM)\\\\s([/_a-z][-/-9?_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(end(?:class|method|form|interface))","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Z_a-z][0-9A-Z_a-z]*>)","name":"variable.other.field.symbol.abap"},{"include":"#keywords"},{"include":"#abap_constants"},{"include":"#reserved_names"},{"include":"#operators"},{"include":"#builtin_functions"},{"include":"#abaptypes"},{"include":"#system_fields"},{"include":"#sql_functions"},{"include":"#sql_types"}],"repository":{"abap_constants":{"match":"(?i)(?<=\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=[,.\\\\s])","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?i)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|[cdfinptx])(?=[,.\\\\s])","name":"support.type.abap"},{"match":"(?i)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=[,.\\\\s])","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)([-*+]|\\\\*\\\\*|[%/]|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?i)(?<=\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)([<>]|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|[moz])(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?i)(^|\\\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=[.:\\\\s])","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Z_a-z][0-9A-Z_a-z]*"},"keywords":{"patterns":[{"include":"#main_keywords"},{"include":"#text_symbols"},{"include":"#control_keywords"},{"include":"#keywords_followed_by_braces"}]},"keywords_followed_by_braces":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"variable.other.abap"}},"match":"(?i)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[/_a-z][/-9_a-z]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?i)(?<=^|\\\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blanks??|blocks??|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-methods??|class-pool|cleanup|clear|clients??|clock|clone|close|cnt|code|collect|color|column|comments??|commit|common|communication|comparing|components??|compression|compute|concatenate|cond|condense|condition|connection|constants??|contexts??|controls??|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicates??|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|events??|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filters??|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frames??|free|from|full|function|function-pool|generate|get|giving|graph|groups??|handler??|hashed|having|headers??|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|includes??|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instances??|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|keys??|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|levels??|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|locale??|locks??|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|methods??|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gaps??|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|objects??|objmgr|obligatory|occurences??|occurrences??|occurs|of|offset|on|only|open|optional|options??|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|ranges??|read|read-only|received??|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|results??|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-sets??|selection-table|selections|send|separated??|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statements??|statics??|statusinfo|step|step-loop|stop|structures??|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|tables??|tableview|tabstrip|target|tasks??|test|test-injection|test-seam|testing|text|textpool|then|throw|times??|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pools??|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|windows??|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=[,.:\\\\s])","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&?|\\\\?=|\\\\+=|-=|/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?i)(?<=\\\\s)(me|super)(?=[,.\\\\s]|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?i)(?<=\\\\s)(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?i)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=[()\\\\s])","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?i)\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=[.\\\\s])"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?i)(?<=^|\\\\s)(text)-([0-9A-Z]{1,3})(?=[,.:\\\\s])"}},"scopeName":"source.abap"}')),a=[e];export{a as default};
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse(`{"displayName":"ActionScript","fileTypes":["as"],"name":"actionscript-3","patterns":[{"include":"#comments"},{"include":"#package"},{"include":"#class"},{"include":"#interface"},{"include":"#namespace_declaration"},{"include":"#import"},{"include":"#mxml"},{"include":"#strings"},{"include":"#regexp"},{"include":"#variable_declaration"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#logical_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#control_keywords"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#functions"}],"repository":{"arithmetic_operators":{"match":"([-%+/]|(?<!:)\\\\*)","name":"keyword.operator.actionscript.3"},"array_access_operators":{"match":"([]\\\\[])","name":"keyword.operator.actionscript.3"},"class":{"begin":"(^|\\\\s+|;)(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(\\\\b(internal|public)\\\\b\\\\s+)?(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(?=\\\\bclass\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"},"5":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"}},"end":"}","name":"meta.class.actionscript.3","patterns":[{"include":"#class_declaration"},{"include":"#metadata"},{"include":"#method"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#other_operators"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#arithmetic_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#variable_declaration"},{"include":"#object_literal"}]},"class_declaration":{"begin":"\\\\b(class)\\\\b\\\\s+([$.0-9A-Z_a-z]+|\\\\*)","beginCaptures":{"1":{"name":"storage.type.class.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#implements"},{"include":"#comments"}]},"code_block":{"begin":"\\\\{","end":"}","name":"meta.code_block.actionscript.3","patterns":[{"include":"#code_block"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#variable_declaration"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#logical_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#control_keywords"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#functions"},{"include":"#import"}]},"comments":{"patterns":[{"begin":"/\\\\*\\\\*(?!/)","end":"\\\\*/","name":"comment.block.documentation.actionscript.3","patterns":[{"match":"@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\\\b","name":"keyword.other.documentation.actionscript.3.asdoc"}]},{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.actionscript.3"},{"match":"//.*","name":"comment.line.actionscript.3"}]},"control_keywords":{"match":"\\\\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\\\\b","name":"keyword.control.actionscript.3"},"dynamic_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"match":"(?<=:)\\\\s*(\\\\*)"},"escapes":{"match":"\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.actionscript.3"},"extends":{"captures":{"1":{"name":"keyword.other.actionscript.3"},"2":{"name":"entity.other.inherited-class.actionscript.3"},"3":{"name":"entity.other.inherited-class.actionscript.3"}},"match":"\\\\b(extends)\\\\b\\\\s+([$.0-9A-Z_a-z]+)\\\\s*(?:,\\\\s*([$.0-9A-Z_a-z]+))*\\\\s*","name":"meta.extends.actionscript.3"},"function_arguments":{"begin":"\\\\(","end":"\\\\)","name":"meta.function_arguments.actionscript.3","patterns":[{"include":"#parameters"},{"include":"#comments"}]},"functions":{"begin":"\\\\b(function)\\\\b(?:\\\\s+\\\\b([gs]et)\\\\b\\\\s+)?\\\\s*([$0-9A-Z_a-z]+\\\\b)?","beginCaptures":{"1":{"name":"storage.type.function.actionscript.3"},"2":{"name":"storage.modifier.actionscript.3"},"3":{"name":"entity.name.function.actionscript.3"}},"end":"($|;|(?=\\\\{))","name":"meta.function.actionscript.3","patterns":[{"include":"#function_arguments"},{"include":"#return_type"},{"include":"#comments"}]},"guess_constant":{"captures":{"1":{"name":"constant.other.actionscript.3"}},"match":"\\\\b([$A-Z][0-9A-Z_]+)\\\\b"},"guess_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"match":"\\\\b((?:[$0-9A-Z_a-z]+\\\\.)*[A-Z][0-9A-Z]*[a-z]+[$0-9A-Z_a-z]*)\\\\b"},"implements":{"captures":{"1":{"name":"keyword.other.actionscript.3"},"2":{"name":"entity.other.inherited-class.actionscript.3"},"3":{"name":"entity.other.inherited-class.actionscript.3"}},"match":"\\\\b(implements)\\\\b\\\\s+([$.0-9A-Z_a-z]+)\\\\s*(?:,\\\\s*([$.0-9A-Z_a-z]+))*\\\\s*","name":"meta.implements.actionscript.3"},"import":{"captures":{"2":{"name":"keyword.control.import.actionscript.3"},"3":{"name":"support.type.actionscript.3"}},"match":"(^|\\\\s+|;)\\\\b(import)\\\\b\\\\s+([$.0-9A-Z_a-z]+(?:\\\\.\\\\*)?)\\\\s*(?=;|$)","name":"meta.import.actionscript.3"},"interface":{"begin":"(^|\\\\s+|;)(\\\\b(internal|public)\\\\b\\\\s+)?(?=\\\\binterface\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"}},"end":"}","name":"meta.interface.actionscript.3","patterns":[{"include":"#interface_declaration"},{"include":"#metadata"},{"include":"#functions"},{"include":"#comments"}]},"interface_declaration":{"begin":"\\\\b(interface)\\\\b\\\\s+([$.0-9A-Z_a-z]+)","beginCaptures":{"1":{"name":"storage.type.interface.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#comments"}]},"language_constants":{"match":"\\\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\\\b","name":"constant.language.actionscript.3"},"language_variables":{"match":"\\\\b(super|this|arguments)\\\\b","name":"variable.language.actionscript.3"},"logical_operators":{"match":"([!\\\\&<>?^|~])","name":"keyword.operator.actionscript.3"},"metadata":{"begin":"(?<=(?:^|[;{}]|\\\\*/)\\\\s*)\\\\[\\\\s*\\\\b([$A-Z_a-z][$0-9A-Z_a-z]+)\\\\b","beginCaptures":{"1":{"name":"keyword.other.actionscript.3"}},"end":"]","name":"meta.metadata_info.actionscript.3","patterns":[{"include":"#metadata_info"}]},"metadata_info":{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#strings"},{"captures":{"1":{"name":"variable.parameter.actionscript.3"},"2":{"name":"keyword.operator.actionscript.3"}},"match":"(\\\\w+)\\\\s*(=)"}]},"method":{"begin":"(^|\\\\s+)((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?(?=\\\\bfunction\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"},"5":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"},"8":{"name":"storage.modifier.actionscript.3"}},"end":"(?<=([;}]))","name":"meta.method.actionscript.3","patterns":[{"include":"#functions"},{"include":"#code_block"}]},"mxml":{"begin":"<!\\\\[CDATA\\\\[","end":"]]>","name":"meta.cdata.actionscript.3","patterns":[{"include":"#comments"},{"include":"#import"},{"include":"#metadata"},{"include":"#class"},{"include":"#namespace_declaration"},{"include":"#use_namespace"},{"include":"#class_declaration"},{"include":"#method"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#other_keywords"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#variable_declaration"}]},"namespace_declaration":{"captures":{"2":{"name":"storage.modifier.actionscript.3"},"3":{"name":"storage.modifier.actionscript.3"}},"match":"((\\\\w+)\\\\s+)?(namespace)\\\\s+[$0-9A-Z_a-z]+","name":"meta.namespace_declaration.actionscript.3"},"numbers":{"match":"\\\\b((0([Xx])\\\\h*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([Ll]|UL|ul|[FUfu])?\\\\b","name":"constant.numeric.actionscript.3"},"object_literal":{"begin":"\\\\{","end":"}","name":"meta.object_literal.actionscript.3","patterns":[{"include":"#object_literal"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#functions"}]},"other_keywords":{"match":"\\\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\\\b","name":"keyword.other.actionscript.3"},"other_operators":{"match":"([.=])","name":"keyword.operator.actionscript.3"},"package":{"begin":"(^|\\\\s+)(package)\\\\b","beginCaptures":{"2":{"name":"keyword.other.actionscript.3"}},"end":"}","name":"meta.package.actionscript.3","patterns":[{"include":"#package_name"},{"include":"#variable_declaration"},{"include":"#method"},{"include":"#comments"},{"include":"#return_type"},{"include":"#import"},{"include":"#use_namespace"},{"include":"#strings"},{"include":"#numbers"},{"include":"#language_constants"},{"include":"#metadata"},{"include":"#class"},{"include":"#interface"},{"include":"#namespace_declaration"}]},"package_name":{"begin":"(?<=package)\\\\s+([._\\\\w]*)\\\\b","end":"\\\\{","name":"meta.package_name.actionscript.3"},"parameters":{"begin":"(\\\\.\\\\.\\\\.)?\\\\s*([$A-Z_a-z][$0-9A-Z_a-z]*)(?:\\\\s*(:)\\\\s*(?:([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\\\*)))?(?:\\\\s*(=))?","beginCaptures":{"1":{"name":"keyword.operator.actionscript.3"},"2":{"name":"variable.parameter.actionscript.3"},"3":{"name":"keyword.operator.actionscript.3"},"4":{"name":"support.type.actionscript.3"},"5":{"name":"support.type.actionscript.3"},"6":{"name":"support.type.actionscript.3"},"7":{"name":"keyword.operator.actionscript.3"}},"end":",|(?=\\\\))","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#language_constants"},{"include":"#comments"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#guess_type"},{"include":"#guess_constant"}]},"primitive_error_types":{"captures":{"1":{"name":"support.class.error.actionscript.3"}},"match":"\\\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\\\b"},"primitive_functions":{"captures":{"1":{"name":"support.function.actionscript.3"}},"match":"\\\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\\\s*\\\\()"},"primitive_types":{"captures":{"1":{"name":"support.class.builtin.actionscript.3"}},"match":"\\\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\\\*(?<=a))\\\\b"},"regexp":{"begin":"(?<=[(,:=\\\\[]|^|return|&&|\\\\|\\\\||!)\\\\s*(/)(?![*+/?{}])","end":"$|(/)[gim]*","name":"string.regex.actionscript.3","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.actionscript.3"},{"match":"\\\\[(\\\\\\\\]|[^]])*]","name":"constant.character.class.actionscript.3"}]},"return_type":{"captures":{"1":{"name":"keyword.operator.actionscript.3"},"2":{"name":"support.type.actionscript.3"},"3":{"name":"support.type.actionscript.3"},"4":{"name":"support.type.actionscript.3"}},"match":"(:)\\\\s*([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\\\*)"},"strings":{"patterns":[{"begin":"@\\"","end":"\\"","name":"string.quoted.verbatim.actionscript.3"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.actionscript.3","patterns":[{"include":"#escapes"}]},{"begin":"'","end":"'","name":"string.quoted.single.actionscript.3","patterns":[{"include":"#escapes"}]}]},"use_namespace":{"captures":{"2":{"name":"keyword.other.actionscript.3"},"3":{"name":"keyword.other.actionscript.3"},"4":{"name":"storage.modifier.actionscript.3"}},"match":"(^|\\\\s+|;)(use\\\\s+)?(namespace)\\\\s+(\\\\w+)\\\\s*(;|$)"},"variable_declaration":{"captures":{"2":{"name":"storage.modifier.actionscript.3"},"4":{"name":"storage.modifier.actionscript.3"},"6":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"},"8":{"name":"keyword.operator.actionscript.3"}},"match":"((static)\\\\s+)?((\\\\w+)\\\\s+)?((static)\\\\s+)?(const|var)\\\\s+[$0-9A-Z_a-z]+(?:\\\\s*(:))?","name":"meta.variable_declaration.actionscript.3"},"vector_creation_operators":{"match":"([<>])","name":"keyword.operator.actionscript.3"}},"scopeName":"source.actionscript.3"}`)),t=[e];export{t as default};