@spikonado/sprocket 0.4.1 → 0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309

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 (456) hide show
  1. package/README.md +4 -11
  2. package/THIRD_PARTY_NOTICES.md +14 -0
  3. package/lib/launcher.js +96 -46
  4. package/lib/native.js +57 -0
  5. package/lib/update.js +40 -15
  6. package/package.json +6 -6
  7. package/web/_app/immutable/abap-CLvhMVsD.js.map +1 -0
  8. package/web/_app/immutable/actionscript-3-Cs6JJXT5.js.map +1 -0
  9. package/web/_app/immutable/ada-X3Y2mlq2.js.map +1 -0
  10. package/web/_app/immutable/ahk-DwADkxyd.js.map +1 -0
  11. package/web/_app/immutable/ahk2-_6rzW9BS.js.map +1 -0
  12. package/web/_app/immutable/{angular-html-4GjfXERL.js → angular-html-C20omHsE.js} +1 -1
  13. package/web/_app/immutable/angular-html-C20omHsE.js.map +1 -0
  14. package/web/_app/immutable/{angular-ts-CMIe06P5.js → angular-ts-DzF16VU8.js} +1 -1
  15. package/web/_app/immutable/angular-ts-DzF16VU8.js.map +1 -0
  16. package/web/_app/immutable/apache-U0d_L8uA.js.map +1 -0
  17. package/web/_app/immutable/apex-KFGFyKwG.js.map +1 -0
  18. package/web/_app/immutable/{apl-C_n2qsRM.js → apl-Bopwo-P_.js} +1 -1
  19. package/web/_app/immutable/apl-Bopwo-P_.js.map +1 -0
  20. package/web/_app/immutable/apl-vYhFydlg.js +3 -0
  21. package/web/_app/immutable/applescript-CCn79oCD.js.map +1 -0
  22. package/web/_app/immutable/ara-4CJ0cIlV.js.map +1 -0
  23. package/web/_app/immutable/asciiarmor-DCBYa2tp.js +3 -0
  24. package/web/_app/immutable/asciidoc-SCjQUq34.js.map +1 -0
  25. package/web/_app/immutable/asm-Cmm7eHzH.js.map +1 -0
  26. package/web/_app/immutable/asn1-Bas95q3J.js +3 -0
  27. package/web/_app/immutable/asterisk-CsJLI-NR.js +3 -0
  28. package/web/_app/immutable/{astro-DVbyChwj.js → astro-CYomU0N_.js} +1 -1
  29. package/web/_app/immutable/astro-CYomU0N_.js.map +1 -0
  30. package/web/_app/immutable/awk-BWXHIvNe.js.map +1 -0
  31. package/web/_app/immutable/ballerina-B7ZEbQpA.js.map +1 -0
  32. package/web/_app/immutable/bat-qdxAdBWQ.js.map +1 -0
  33. package/web/_app/immutable/beancount-C2IN4Vk8.js.map +1 -0
  34. package/web/_app/immutable/berry-DKpUyyne.js.map +1 -0
  35. package/web/_app/immutable/bibtex-Ci_nEsc7.js.map +1 -0
  36. package/web/_app/immutable/bicep-CUHmPFLl.js.map +1 -0
  37. package/web/_app/immutable/bird2-CYIUgYqB.js.map +1 -0
  38. package/web/_app/immutable/{blade-fXxNj9V7.js → blade-CHAXU93U.js} +1 -1
  39. package/web/_app/immutable/blade-CHAXU93U.js.map +1 -0
  40. package/web/_app/immutable/brainfuck-DLuLnEAh.js +3 -0
  41. package/web/_app/immutable/bsl-CVED6lJ1.js.map +1 -0
  42. package/web/_app/immutable/{c-BN2Efy0k.js → c-Vn6ejSG8.js} +1 -1
  43. package/web/_app/immutable/c-Vn6ejSG8.js.map +1 -0
  44. package/web/_app/immutable/c3-D0apG41V.js.map +1 -0
  45. package/web/_app/immutable/cadence-CQ2zXKGN.js.map +1 -0
  46. package/web/_app/immutable/cairo-DRAZz75c.js.map +1 -0
  47. package/web/_app/immutable/{chapel-BRkNuByD.js → chapel-DmTJmwJp.js} +1 -1
  48. package/web/_app/immutable/chapel-DmTJmwJp.js.map +1 -0
  49. package/web/_app/immutable/clarity-CtfBBspg.js.map +1 -0
  50. package/web/_app/immutable/clike-DzspJR9S.js +3 -0
  51. package/web/_app/immutable/clojure-DqKBuwfJ.js.map +1 -0
  52. package/web/_app/immutable/clojure-Dy37zAqd.js +3 -0
  53. package/web/_app/immutable/cmake-BGw5hFRZ.js +3 -0
  54. package/web/_app/immutable/cmake-Bj61d0ZC.js.map +1 -0
  55. package/web/_app/immutable/{cobol-C5lGhzFi.js → cobol-twYq0nKG.js} +1 -1
  56. package/web/_app/immutable/cobol-twYq0nKG.js.map +1 -0
  57. package/web/_app/immutable/cobol-ye9kVT0H.js +3 -0
  58. package/web/_app/immutable/{code-highlighting-client-Kw4BuD-0.js → code-highlighting-client-B49f6036.js} +3 -1
  59. package/web/_app/immutable/{code-highlighting-worker-DggeS8YA.js → code-highlighting-worker-CrdU_PI0.js} +4 -4
  60. package/web/_app/immutable/code-highlighting-worker-CrdU_PI0.js.map +1 -0
  61. package/web/_app/immutable/codeowners-C8r90Shi.js.map +1 -0
  62. package/web/_app/immutable/codeql-oeQT6MSM.js.map +1 -0
  63. package/web/_app/immutable/{coffee-B6MzRpQ_.js → coffee-CM7N7KyB.js} +1 -1
  64. package/web/_app/immutable/coffee-CM7N7KyB.js.map +1 -0
  65. package/web/_app/immutable/coffeescript-CK3UxEqD.js +3 -0
  66. package/web/_app/immutable/common-lisp-Cv5bFMCO.js.map +1 -0
  67. package/web/_app/immutable/commonlisp-BE8q3z8X.js +3 -0
  68. package/web/_app/immutable/coq-CGaSfhwR.js.map +1 -0
  69. package/web/_app/immutable/{cpp-DEVtvotx.js → cpp-Di9GpqBY.js} +1 -1
  70. package/web/_app/immutable/cpp-Di9GpqBY.js.map +1 -0
  71. package/web/_app/immutable/{crystal-DY2QsCJ5.js → crystal-8NOnHfUA.js} +1 -1
  72. package/web/_app/immutable/crystal-8NOnHfUA.js.map +1 -0
  73. package/web/_app/immutable/crystal-BDFVhi9s.js +3 -0
  74. package/web/_app/immutable/csharp-dmMxLVLW.js.map +1 -0
  75. package/web/_app/immutable/css-BCbDR73T.js +3 -0
  76. package/web/_app/immutable/{css-ButQfvJ9.js → css-ndguaaOL.js} +1 -1
  77. package/web/_app/immutable/css-ndguaaOL.js.map +1 -0
  78. package/web/_app/immutable/csv-Dx-8-gkx.js.map +1 -0
  79. package/web/_app/immutable/cue-CE9AQfxI.js.map +1 -0
  80. package/web/_app/immutable/cypher-ClKdZ_lG.js.map +1 -0
  81. package/web/_app/immutable/cypher-Dvegnmz1.js +3 -0
  82. package/web/_app/immutable/d-DhwqpDdf.js +3 -0
  83. package/web/_app/immutable/d-qD-0Kul2.js.map +1 -0
  84. package/web/_app/immutable/dart-CHZY9Xhz.js.map +1 -0
  85. package/web/_app/immutable/dax-BkyTk9wS.js.map +1 -0
  86. package/web/_app/immutable/desktop-Dlh5hvp9.js.map +1 -0
  87. package/web/_app/immutable/diff-B5Qrgcb3.js +3 -0
  88. package/web/_app/immutable/diff-woXpYk--.js.map +1 -0
  89. package/web/_app/immutable/dist--MLqQFXt.js +3 -0
  90. package/web/_app/immutable/dist-1yLmienu.js +3 -0
  91. package/web/_app/immutable/dist-78iavZk3.js +3 -0
  92. package/web/_app/immutable/dist-B3Fpa5Ve.js +4 -0
  93. package/web/_app/immutable/dist-B7VGqWK0.js +3 -0
  94. package/web/_app/immutable/dist-BMCTN_lK.js +3 -0
  95. package/web/_app/immutable/dist-BONZbstq.js +3 -0
  96. package/web/_app/immutable/dist-C1IPIIxn.js +3 -0
  97. package/web/_app/immutable/dist-C6BbBYxw.js +3 -0
  98. package/web/_app/immutable/dist-C6kYfwAF.js +3 -0
  99. package/web/_app/immutable/dist-CNyAw8fE.js +3 -0
  100. package/web/_app/immutable/dist-COE-3YM9.js +3 -0
  101. package/web/_app/immutable/dist-CWDkt__u.js +3 -0
  102. package/web/_app/immutable/dist-DOp_0BK2.js +3 -0
  103. package/web/_app/immutable/dist-DVHWauuI.js +3 -0
  104. package/web/_app/immutable/dist-DY4U1AfU.js +25 -0
  105. package/web/_app/immutable/dist-KKOKPvqO.js +3 -0
  106. package/web/_app/immutable/dist-Sj1KNvbj.js +11 -0
  107. package/web/_app/immutable/dist-TOWQsSO1.js +8 -0
  108. package/web/_app/immutable/dist-ketgEX4Z.js +3 -0
  109. package/web/_app/immutable/dist-lUfVaCXc.js +3 -0
  110. package/web/_app/immutable/dist-sVUcyQ5y.js +13 -0
  111. package/web/_app/immutable/docker-IyjqRm3v.js.map +1 -0
  112. package/web/_app/immutable/dockerfile-B6C8X34G.js +3 -0
  113. package/web/_app/immutable/dotenv-CuH5my32.js.map +1 -0
  114. package/web/_app/immutable/dream-maker-DW3nJb8Q.js.map +1 -0
  115. package/web/_app/immutable/dtd-DCJNKMPA.js +3 -0
  116. package/web/_app/immutable/dylan-D9EpjADR.js +3 -0
  117. package/web/_app/immutable/ebnf-DXPxSf-I.js +3 -0
  118. package/web/_app/immutable/ecl-DNNiFJuf.js +3 -0
  119. package/web/_app/immutable/{edge-CUJd9T1a.js → edge-CZbv_n-U.js} +1 -1
  120. package/web/_app/immutable/edge-CZbv_n-U.js.map +1 -0
  121. package/web/_app/immutable/eiffel-D6Sz7A_6.js +3 -0
  122. package/web/_app/immutable/{elixir-DIdSb3yA.js → elixir-Cefx1i8D.js} +1 -1
  123. package/web/_app/immutable/elixir-Cefx1i8D.js.map +1 -0
  124. package/web/_app/immutable/{elm-M8_LX84X.js → elm-CNDuIlIO.js} +1 -1
  125. package/web/_app/immutable/elm-CNDuIlIO.js.map +1 -0
  126. package/web/_app/immutable/elm-DSb2AX57.js +3 -0
  127. package/web/_app/immutable/emacs-lisp-DR2vtWaj.js.map +1 -0
  128. package/web/_app/immutable/{erb-zGFWLWtt.js → erb-Cscw6dKF.js} +1 -1
  129. package/web/_app/immutable/erb-Cscw6dKF.js.map +1 -0
  130. package/web/_app/immutable/erlang-BHgDZVdK.js +3 -0
  131. package/web/_app/immutable/erlang-BXdgHVfi.js.map +1 -0
  132. package/web/_app/immutable/factor-BSe6Tvcx.js +3 -0
  133. package/web/_app/immutable/fcl-BfPMbGNz.js +3 -0
  134. package/web/_app/immutable/fennel-DQxkIbk2.js.map +1 -0
  135. package/web/_app/immutable/fish-BJitypiv.js.map +1 -0
  136. package/web/_app/immutable/fluent-C03EYrpw.js.map +1 -0
  137. package/web/_app/immutable/forth-Cu0tYmRZ.js +3 -0
  138. package/web/_app/immutable/fortran-BoLK5P-n.js +3 -0
  139. package/web/_app/immutable/fortran-fixed-form-D6mN0kjy.js.map +1 -0
  140. package/web/_app/immutable/fortran-free-form-CYNrtFtB.js.map +1 -0
  141. package/web/_app/immutable/fsharp-CwoEF39o.js.map +1 -0
  142. package/web/_app/immutable/gas-CmEKrWji.js +3 -0
  143. package/web/_app/immutable/gdresource-CZkFGo3B.js.map +1 -0
  144. package/web/_app/immutable/gdscript-DYvRD3hg.js.map +1 -0
  145. package/web/_app/immutable/gdshader-CBce3t8t.js.map +1 -0
  146. package/web/_app/immutable/genie-CV2tkWYe.js.map +1 -0
  147. package/web/_app/immutable/gherkin-DExj1W_8.js.map +1 -0
  148. package/web/_app/immutable/gherkin-Ix-Plbio.js +3 -0
  149. package/web/_app/immutable/git-commit-dUGrvm6Q.js.map +1 -0
  150. package/web/_app/immutable/{git-rebase-CC2D0L3b.js → git-rebase-pzmKr7TV.js} +1 -1
  151. package/web/_app/immutable/git-rebase-pzmKr7TV.js.map +1 -0
  152. package/web/_app/immutable/github-dark-C-LZuMrd.js.map +1 -0
  153. package/web/_app/immutable/github-light-EUqPIrTm.js.map +1 -0
  154. package/web/_app/immutable/gleam-CSRkHgEL.js.map +1 -0
  155. package/web/_app/immutable/{glimmer-js-BcY5kv6g.js → glimmer-js-D70IowcQ.js} +1 -1
  156. package/web/_app/immutable/glimmer-js-D70IowcQ.js.map +1 -0
  157. package/web/_app/immutable/{glimmer-ts-Di8deFFz.js → glimmer-ts-DB1_b6V0.js} +1 -1
  158. package/web/_app/immutable/glimmer-ts-DB1_b6V0.js.map +1 -0
  159. package/web/_app/immutable/{glsl-BRJcCqLP.js → glsl-Dnd6Jfn4.js} +1 -1
  160. package/web/_app/immutable/glsl-Dnd6Jfn4.js.map +1 -0
  161. package/web/_app/immutable/gn-CAXYAgV-.js.map +1 -0
  162. package/web/_app/immutable/gnuplot-7GGW24-e.js.map +1 -0
  163. package/web/_app/immutable/go-rLFTqkRN.js.map +1 -0
  164. package/web/_app/immutable/{graphql-C_JO00Ae.js → graphql-Bh8CEOJ1.js} +1 -1
  165. package/web/_app/immutable/graphql-Bh8CEOJ1.js.map +1 -0
  166. package/web/_app/immutable/groovy-B6zCvYTr.js +3 -0
  167. package/web/_app/immutable/groovy-CacY0gHj.js.map +1 -0
  168. package/web/_app/immutable/{hack-G3VVQMXb.js → hack-CDyPjqmy.js} +1 -1
  169. package/web/_app/immutable/hack-CDyPjqmy.js.map +1 -0
  170. package/web/_app/immutable/{haml-D2MeFmBN.js → haml-DgPyDh2c.js} +1 -1
  171. package/web/_app/immutable/haml-DgPyDh2c.js.map +1 -0
  172. package/web/_app/immutable/{handlebars-D90wEzz2.js → handlebars-DY59w9Zt.js} +1 -1
  173. package/web/_app/immutable/handlebars-DY59w9Zt.js.map +1 -0
  174. package/web/_app/immutable/haskell-D8IpX4py.js.map +1 -0
  175. package/web/_app/immutable/haskell-DpWLXbve.js +3 -0
  176. package/web/_app/immutable/haxe-C8oCnwJJ.js.map +1 -0
  177. package/web/_app/immutable/haxe-CZCmwfn0.js +3 -0
  178. package/web/_app/immutable/hcl-Dh228itO.js.map +1 -0
  179. package/web/_app/immutable/hjson-CxZEssPk.js.map +1 -0
  180. package/web/_app/immutable/hlsl-Cvrh5tZx.js.map +1 -0
  181. package/web/_app/immutable/{html-Bh1WMhz0.js → html-D9VLXeeS.js} +1 -1
  182. package/web/_app/immutable/html-D9VLXeeS.js.map +1 -0
  183. package/web/_app/immutable/{html-derivative-PuQZwSU6.js → html-derivative-CoBDi6W1.js} +1 -1
  184. package/web/_app/immutable/html-derivative-CoBDi6W1.js.map +1 -0
  185. package/web/_app/immutable/{http-Ca96onGD.js → http-Bcrx42oV.js} +1 -1
  186. package/web/_app/immutable/http-Bcrx42oV.js.map +1 -0
  187. package/web/_app/immutable/http-Br4spSi3.js +3 -0
  188. package/web/_app/immutable/{hurl-B6pjbC8I.js → hurl-CoCTOBkn.js} +1 -1
  189. package/web/_app/immutable/hurl-CoCTOBkn.js.map +1 -0
  190. package/web/_app/immutable/hxml-D7Y24wKF.js.map +1 -0
  191. package/web/_app/immutable/hy-CZbG8q4J.js.map +1 -0
  192. package/web/_app/immutable/idl-CdnmVGIB.js +3 -0
  193. package/web/_app/immutable/imba-DsUTQ-LC.js.map +1 -0
  194. package/web/_app/immutable/index-DU_wSVkk.css +1 -0
  195. package/web/_app/immutable/index-DudS1yVD.js +1945 -0
  196. package/web/_app/immutable/ini-B5eOa1yu.js.map +1 -0
  197. package/web/_app/immutable/{java-arvjb7dT.js → java-DOksgUAN.js} +1 -1
  198. package/web/_app/immutable/java-DOksgUAN.js.map +1 -0
  199. package/web/_app/immutable/{javascript-BZ1jt5sy.js → javascript-B4fHYqKG.js} +1 -1
  200. package/web/_app/immutable/javascript-B4fHYqKG.js.map +1 -0
  201. package/web/_app/immutable/javascript-DHjjXwtk.js +3 -0
  202. package/web/_app/immutable/{jinja-CpnHkcj3.js → jinja-DlPpy45a.js} +1 -1
  203. package/web/_app/immutable/jinja-DlPpy45a.js.map +1 -0
  204. package/web/_app/immutable/{jison-BPHKadT3.js → jison-B6gNEleR.js} +1 -1
  205. package/web/_app/immutable/jison-B6gNEleR.js.map +1 -0
  206. package/web/_app/immutable/{json-DSjaFVfj.js → json-CYwPJhCu.js} +1 -1
  207. package/web/_app/immutable/json-CYwPJhCu.js.map +1 -0
  208. package/web/_app/immutable/json5-BR5RXkoi.js.map +1 -0
  209. package/web/_app/immutable/jsonc-CYpm1nAK.js.map +1 -0
  210. package/web/_app/immutable/jsonl-CmCQp5Yx.js.map +1 -0
  211. package/web/_app/immutable/jsonnet-CJTPZ8u_.js.map +1 -0
  212. package/web/_app/immutable/jssm-DXw9l8Rf.js.map +1 -0
  213. package/web/_app/immutable/{jsx-BUqYaOvu.js → jsx-DQ1GitDu.js} +1 -1
  214. package/web/_app/immutable/jsx-DQ1GitDu.js.map +1 -0
  215. package/web/_app/immutable/{julia-BcfWwmw0.js → julia-Cj2ISyOE.js} +1 -1
  216. package/web/_app/immutable/julia-Cj2ISyOE.js.map +1 -0
  217. package/web/_app/immutable/julia-N_wWwcMp.js +3 -0
  218. package/web/_app/immutable/{just-BXyEegjy.js → just-CXuOImRn.js} +1 -1
  219. package/web/_app/immutable/just-CXuOImRn.js.map +1 -0
  220. package/web/_app/immutable/kdl-CsD5j6eV.js.map +1 -0
  221. package/web/_app/immutable/kotlin-DhhofPvG.js.map +1 -0
  222. package/web/_app/immutable/kusto-C7mF5XQf.js.map +1 -0
  223. package/web/_app/immutable/{latex-CU7LUjt5.js → latex-C9zWpp_6.js} +1 -1
  224. package/web/_app/immutable/latex-C9zWpp_6.js.map +1 -0
  225. package/web/_app/immutable/lean-CewbzKMR.js.map +1 -0
  226. package/web/_app/immutable/less-DVTAwKKz.js.map +1 -0
  227. package/web/_app/immutable/{liquid-CRzX7bbg.js → liquid-CJws5Urp.js} +1 -1
  228. package/web/_app/immutable/liquid-CJws5Urp.js.map +1 -0
  229. package/web/_app/immutable/livescript-CQxDXUiW.js +3 -0
  230. package/web/_app/immutable/llvm-DqHOMS-s.js.map +1 -0
  231. package/web/_app/immutable/log-BNLmms1o.js.map +1 -0
  232. package/web/_app/immutable/logo-Cluzi2Zq.js.map +1 -0
  233. package/web/_app/immutable/lua-BshL7EhT.js +3 -0
  234. package/web/_app/immutable/{lua-BSDiLMEb.js → lua-DzECmq2B.js} +1 -1
  235. package/web/_app/immutable/lua-DzECmq2B.js.map +1 -0
  236. package/web/_app/immutable/luau-VGWVLoqX.js.map +1 -0
  237. package/web/_app/immutable/make-Dixweg8N.js.map +1 -0
  238. package/web/_app/immutable/markdown-BYOwaDjH.js.map +1 -0
  239. package/web/_app/immutable/{marko-DnR7eH34.js → marko-DY53VURG.js} +1 -1
  240. package/web/_app/immutable/marko-DY53VURG.js.map +1 -0
  241. package/web/_app/immutable/mathematica-M62_hiyy.js +3 -0
  242. package/web/_app/immutable/matlab-D7qyCx1q.js.map +1 -0
  243. package/web/_app/immutable/mbox-CzzAtHiR.js +3 -0
  244. package/web/_app/immutable/{mdc-CcZh7-T1.js → mdc-B1BZSQO7.js} +1 -1
  245. package/web/_app/immutable/mdc-B1BZSQO7.js.map +1 -0
  246. package/web/_app/immutable/mdx-DQZ5AkYe.js.map +1 -0
  247. package/web/_app/immutable/mermaid-BxpfTIzt.js.map +1 -0
  248. package/web/_app/immutable/mipsasm-BMqwQI7S.js.map +1 -0
  249. package/web/_app/immutable/mirc-C7NNbeXm.js +3 -0
  250. package/web/_app/immutable/mllike-t41NJN7_.js +3 -0
  251. package/web/_app/immutable/modelica-CTT25a9k.js +3 -0
  252. package/web/_app/immutable/mojo-fg40_ntQ.js.map +1 -0
  253. package/web/_app/immutable/moonbit-D9W784E_.js.map +1 -0
  254. package/web/_app/immutable/move-BYnGhZoM.js.map +1 -0
  255. package/web/_app/immutable/mscgen-6Ud9c8_b.js +3 -0
  256. package/web/_app/immutable/mumps-C4aH6Gvb.js +3 -0
  257. package/web/_app/immutable/narrat-_X_XdTYD.js.map +1 -0
  258. package/web/_app/immutable/nextflow-BoTnSBQ_.js.map +1 -0
  259. package/web/_app/immutable/nextflow-groovy-D7IRt6Pp.js.map +1 -0
  260. package/web/_app/immutable/{nginx-BwbdCB4h.js → nginx-JNdgK5R6.js} +1 -1
  261. package/web/_app/immutable/nginx-JNdgK5R6.js.map +1 -0
  262. package/web/_app/immutable/nginx-W2q6TRhk.js +3 -0
  263. package/web/_app/immutable/{nim-xocOj6ZV.js → nim-DxIQj5-c.js} +1 -1
  264. package/web/_app/immutable/nim-DxIQj5-c.js.map +1 -0
  265. package/web/_app/immutable/nix-Cl_7024t.js.map +1 -0
  266. package/web/_app/immutable/nsis-CjNLYCLg.js.map +1 -0
  267. package/web/_app/immutable/nsis-DUSZzcw2.js +3 -0
  268. package/web/_app/immutable/ntriples-DnXHYROm.js +3 -0
  269. package/web/_app/immutable/nushell--0fT3PI1.js.map +1 -0
  270. package/web/_app/immutable/objective-c-D1A_Heim.js.map +1 -0
  271. package/web/_app/immutable/objective-cpp-BsSzOQcm.js.map +1 -0
  272. package/web/_app/immutable/ocaml-O90oeIOV.js.map +1 -0
  273. package/web/_app/immutable/octave-J4i-piK1.js +3 -0
  274. package/web/_app/immutable/odin-B1RWQWA5.js.map +1 -0
  275. package/web/_app/immutable/openscad-BUDT5pXO.js.map +1 -0
  276. package/web/_app/immutable/{org-0-F7ov1Z.js → org-C_axAQFp.js} +1 -1
  277. package/web/_app/immutable/org-C_axAQFp.js.map +1 -0
  278. package/web/_app/immutable/oz-WSgD13HS.js +3 -0
  279. package/web/_app/immutable/pascal-4ZHwLPI5.js.map +1 -0
  280. package/web/_app/immutable/pascal-erKHw6fw.js +3 -0
  281. package/web/_app/immutable/perl-CKWHhdiY.js +3 -0
  282. package/web/_app/immutable/{perl-DeAhIPOw.js → perl-CmH3S23F.js} +1 -1
  283. package/web/_app/immutable/perl-CmH3S23F.js.map +1 -0
  284. package/web/_app/immutable/{php-kXpePHVd.js → php-CX5ZySYs.js} +1 -1
  285. package/web/_app/immutable/php-CX5ZySYs.js.map +1 -0
  286. package/web/_app/immutable/pig-33x8HcLn.js +3 -0
  287. package/web/_app/immutable/pkl-ot-7Btpt.js.map +1 -0
  288. package/web/_app/immutable/plsql-DGHpHOYJ.js.map +1 -0
  289. package/web/_app/immutable/po-BiJDBrnU.js.map +1 -0
  290. package/web/_app/immutable/polar-C7UOKdEL.js.map +1 -0
  291. package/web/_app/immutable/postcss-BXeXVLqQ.js.map +1 -0
  292. package/web/_app/immutable/powerquery-DNMTfnFr.js.map +1 -0
  293. package/web/_app/immutable/powershell-QtSnmXcu.js.map +1 -0
  294. package/web/_app/immutable/powershell-Vl-e_vNu.js +3 -0
  295. package/web/_app/immutable/prisma-DMgNhnYS.js.map +1 -0
  296. package/web/_app/immutable/prolog-iXnhIJG7.js.map +1 -0
  297. package/web/_app/immutable/properties-DUf4fFZf.js +3 -0
  298. package/web/_app/immutable/proto-DB4EqR-F.js.map +1 -0
  299. package/web/_app/immutable/protobuf-BUDa_vR-.js +3 -0
  300. package/web/_app/immutable/{pug-BYrzANIX.js → pug-Do87ZXFS.js} +1 -1
  301. package/web/_app/immutable/pug-Do87ZXFS.js.map +1 -0
  302. package/web/_app/immutable/pug-xcs5WYkx.js +3 -0
  303. package/web/_app/immutable/puppet-CD6CXlyD.js +3 -0
  304. package/web/_app/immutable/puppet-CDv2pdJW.js.map +1 -0
  305. package/web/_app/immutable/purescript-9MfHhQsQ.js.map +1 -0
  306. package/web/_app/immutable/python-CpGzXxm0.js +3 -0
  307. package/web/_app/immutable/python-gzcpVVnB.js.map +1 -0
  308. package/web/_app/immutable/q-BCVSbb1a.js +3 -0
  309. package/web/_app/immutable/{qml-CX-IPlpg.js → qml-PO_mFEPK.js} +1 -1
  310. package/web/_app/immutable/qml-PO_mFEPK.js.map +1 -0
  311. package/web/_app/immutable/qmldir-DCQb3MpD.js.map +1 -0
  312. package/web/_app/immutable/qss-Fe1Jh2GI.js.map +1 -0
  313. package/web/_app/immutable/{r-B6Ii5NsL.js → r-BgEOZNPk.js} +1 -1
  314. package/web/_app/immutable/r-BgEOZNPk.js.map +1 -0
  315. package/web/_app/immutable/r-C1YlgDGE.js +3 -0
  316. package/web/_app/immutable/racket-DcIDlBhZ.js.map +1 -0
  317. package/web/_app/immutable/raku-B3gFvitq.js.map +1 -0
  318. package/web/_app/immutable/{razor-B-rT9_rK.js → razor-RqmQ3ngM.js} +1 -1
  319. package/web/_app/immutable/razor-RqmQ3ngM.js.map +1 -0
  320. package/web/_app/immutable/rbs-C0MpOrj4.js.map +1 -0
  321. package/web/_app/immutable/reg-CRGYupPL.js.map +1 -0
  322. package/web/_app/immutable/{regexp-DTgu7pRI.js → regexp-BmtAp960.js} +1 -1
  323. package/web/_app/immutable/regexp-BmtAp960.js.map +1 -0
  324. package/web/_app/immutable/rel-BtDbiS_P.js.map +1 -0
  325. package/web/_app/immutable/riscv-Ckw8ddFX.js.map +1 -0
  326. package/web/_app/immutable/ron-VUp2lXgN.js.map +1 -0
  327. package/web/_app/immutable/rosmsg-CAekHB0j.js.map +1 -0
  328. package/web/_app/immutable/rpm-DtntOokC.js +3 -0
  329. package/web/_app/immutable/{rst-9klPfdbW.js → rst-D8oMEcXw.js} +1 -1
  330. package/web/_app/immutable/rst-D8oMEcXw.js.map +1 -0
  331. package/web/_app/immutable/ruby-BPd10w10.js +3 -0
  332. package/web/_app/immutable/{ruby-VdW5O0lU.js → ruby-OoN__8XM.js} +1 -1
  333. package/web/_app/immutable/ruby-OoN__8XM.js.map +1 -0
  334. package/web/_app/immutable/rust-DpiIf5JO.js.map +1 -0
  335. package/web/_app/immutable/{sas-BcoVW2jh.js → sas-Bvlb0Bob.js} +1 -1
  336. package/web/_app/immutable/sas-Bvlb0Bob.js.map +1 -0
  337. package/web/_app/immutable/sas-NAReXOrf.js +3 -0
  338. package/web/_app/immutable/sass-DXrisJhu.js.map +1 -0
  339. package/web/_app/immutable/scala-BiFt_7mu.js.map +1 -0
  340. package/web/_app/immutable/scheme-Cf2CRHu1.js +3 -0
  341. package/web/_app/immutable/scheme-DQCgrYNe.js.map +1 -0
  342. package/web/_app/immutable/{scss-CThZiyk2.js → scss-CVcKVU_v.js} +1 -1
  343. package/web/_app/immutable/scss-CVcKVU_v.js.map +1 -0
  344. package/web/_app/immutable/sdbl-bTVj8UrX.js.map +1 -0
  345. package/web/_app/immutable/shaderlab-C4rnI7x0.js.map +1 -0
  346. package/web/_app/immutable/shell-Prdwouv9.js +3 -0
  347. package/web/_app/immutable/{shellscript-kDqMi17D.js → shellscript-CweRfVvC.js} +1 -1
  348. package/web/_app/immutable/shellscript-CweRfVvC.js.map +1 -0
  349. package/web/_app/immutable/{shellsession-DhVMa4wd.js → shellsession-B6dlQfc8.js} +1 -1
  350. package/web/_app/immutable/shellsession-B6dlQfc8.js.map +1 -0
  351. package/web/_app/immutable/sieve-BH74aWuS.js +3 -0
  352. package/web/_app/immutable/simple-mode-DEAktJUB.js +3 -0
  353. package/web/_app/immutable/smalltalk-BHpQb5nM.js.map +1 -0
  354. package/web/_app/immutable/smalltalk-obN975Bw.js +3 -0
  355. package/web/_app/immutable/smithy-Dgaz7aur.js.map +1 -0
  356. package/web/_app/immutable/solidity-Bj7E1mRn.js.map +1 -0
  357. package/web/_app/immutable/solr-DAJC1hrj.js +3 -0
  358. package/web/_app/immutable/{soy-BRlK1riv.js → soy-BXoHw2KB.js} +1 -1
  359. package/web/_app/immutable/soy-BXoHw2KB.js.map +1 -0
  360. package/web/_app/immutable/sparql-BvbKM4zG.js +3 -0
  361. package/web/_app/immutable/sparql-C0ia5K60.js.map +1 -0
  362. package/web/_app/immutable/splunk-BC2Px7Mm.js.map +1 -0
  363. package/web/_app/immutable/spreadsheet-CJ-yk93H.js +3 -0
  364. package/web/_app/immutable/sql-Bly50R_b.js +3 -0
  365. package/web/_app/immutable/{sql-9_1rLYi9.js → sql-ze9wVaXg.js} +1 -1
  366. package/web/_app/immutable/sql-ze9wVaXg.js.map +1 -0
  367. package/web/_app/immutable/ssh-config-BgfXC-Er.js.map +1 -0
  368. package/web/_app/immutable/{stata-CvZbhBNs.js → stata-BoFbKY4D.js} +1 -1
  369. package/web/_app/immutable/stata-BoFbKY4D.js.map +1 -0
  370. package/web/_app/immutable/stex-BF34FF93.js +3 -0
  371. package/web/_app/immutable/stylus-B6D30XZt.js.map +1 -0
  372. package/web/_app/immutable/stylus-C5rqcB-v.js +3 -0
  373. package/web/_app/immutable/{surrealql-BLPIhFjZ.js → surrealql-dM__PJgH.js} +1 -1
  374. package/web/_app/immutable/surrealql-dM__PJgH.js.map +1 -0
  375. package/web/_app/immutable/{svelte-CXRnxaHV.js → svelte-ClSxXkyL.js} +1 -1
  376. package/web/_app/immutable/svelte-ClSxXkyL.js.map +1 -0
  377. package/web/_app/immutable/swift-BLZse608.js +3 -0
  378. package/web/_app/immutable/swift-CyEgAFGc.js.map +1 -0
  379. package/web/_app/immutable/system-verilog-Dh5ihWbf.js.map +1 -0
  380. package/web/_app/immutable/systemd-BxMlprV5.js.map +1 -0
  381. package/web/_app/immutable/talonscript-CohzipZa.js.map +1 -0
  382. package/web/_app/immutable/tasl-DMoTqEGO.js.map +1 -0
  383. package/web/_app/immutable/tcl-BWkauvXp.js +3 -0
  384. package/web/_app/immutable/tcl-CZd0xW_V.js.map +1 -0
  385. package/web/_app/immutable/{templ-BIXbEjSv.js → templ-CqzzE9WX.js} +1 -1
  386. package/web/_app/immutable/templ-CqzzE9WX.js.map +1 -0
  387. package/web/_app/immutable/terraform-DswuEJGm.js.map +1 -0
  388. package/web/_app/immutable/{tex-CTC47p_4.js → tex-ClJ30QU-.js} +1 -1
  389. package/web/_app/immutable/tex-ClJ30QU-.js.map +1 -0
  390. package/web/_app/immutable/textile-T6vpnw7U.js +3 -0
  391. package/web/_app/immutable/tiddlywiki-DVC3khkM.js +3 -0
  392. package/web/_app/immutable/tiki-DEhe3PjY.js +3 -0
  393. package/web/_app/immutable/toml-BYLe0Z2u.js +3 -0
  394. package/web/_app/immutable/toml-CcmNWLt0.js.map +1 -0
  395. package/web/_app/immutable/troff-BNPbTrbP.js +3 -0
  396. package/web/_app/immutable/{ts-tags-q6t1QP-k.js → ts-tags-MI0_89c8.js} +1 -1
  397. package/web/_app/immutable/ts-tags-MI0_89c8.js.map +1 -0
  398. package/web/_app/immutable/tsv-sltzmVWM.js.map +1 -0
  399. package/web/_app/immutable/{tsx-BACYK5_7.js → tsx-D-xUy4Xs.js} +1 -1
  400. package/web/_app/immutable/tsx-D-xUy4Xs.js.map +1 -0
  401. package/web/_app/immutable/ttcn-cfg-BhQD0pZH.js +3 -0
  402. package/web/_app/immutable/ttcn-nBALC3Jx.js +3 -0
  403. package/web/_app/immutable/turtle-A4cgc-iN.js +3 -0
  404. package/web/_app/immutable/turtle-ByJddavk.js.map +1 -0
  405. package/web/_app/immutable/{twig-du-FAu_S.js → twig-C1N-sXjS.js} +1 -1
  406. package/web/_app/immutable/twig-C1N-sXjS.js.map +1 -0
  407. package/web/_app/immutable/{typescript-UdazT59i.js → typescript-BPzkPzWf.js} +1 -1
  408. package/web/_app/immutable/typescript-BPzkPzWf.js.map +1 -0
  409. package/web/_app/immutable/typespec-BGhR2SqG.js.map +1 -0
  410. package/web/_app/immutable/{typst-CwQmdlPz.js → typst-BLmdxzG5.js} +1 -1
  411. package/web/_app/immutable/typst-BLmdxzG5.js.map +1 -0
  412. package/web/_app/immutable/v-DBj4K9d_.js.map +1 -0
  413. package/web/_app/immutable/vala-zf12oZj6.js.map +1 -0
  414. package/web/_app/immutable/vb-DFC-GzQb.js +3 -0
  415. package/web/_app/immutable/vb-DOwzaHZ0.js.map +1 -0
  416. package/web/_app/immutable/vbscript-CEpCFrMB.js +3 -0
  417. package/web/_app/immutable/velocity-riGX05b_.js +3 -0
  418. package/web/_app/immutable/verilog-B2gwz-sJ.js.map +1 -0
  419. package/web/_app/immutable/verilog-XObh9TaX.js +3 -0
  420. package/web/_app/immutable/vhdl-BoVv2tCy.js +3 -0
  421. package/web/_app/immutable/vhdl-BroJfC0k.js.map +1 -0
  422. package/web/_app/immutable/viml-DvXPmvsu.js.map +1 -0
  423. package/web/_app/immutable/{vue-Bl_ifCwv.js → vue-Cb-Oh7gL.js} +1 -1
  424. package/web/_app/immutable/vue-Cb-Oh7gL.js.map +1 -0
  425. package/web/_app/immutable/{vue-html-Jt0TggoH.js → vue-html-CokEUcEZ.js} +1 -1
  426. package/web/_app/immutable/vue-html-CokEUcEZ.js.map +1 -0
  427. package/web/_app/immutable/{vue-vine-BCOElGNY.js → vue-vine-C9qhSF4z.js} +1 -1
  428. package/web/_app/immutable/vue-vine-C9qhSF4z.js.map +1 -0
  429. package/web/_app/immutable/vyper-CgoNMtux.js.map +1 -0
  430. package/web/_app/immutable/wasm-ByWQv1Qj.js.map +1 -0
  431. package/web/_app/immutable/webidl-DGHFkOxz.js +3 -0
  432. package/web/_app/immutable/wenyan-C8pVoKbM.js.map +1 -0
  433. package/web/_app/immutable/wgsl-BsKzXJz4.js.map +1 -0
  434. package/web/_app/immutable/wikitext-ClFFjSW2.js.map +1 -0
  435. package/web/_app/immutable/wit-DdvCle-K.js.map +1 -0
  436. package/web/_app/immutable/wolfram-DLL8P-h_.js.map +1 -0
  437. package/web/_app/immutable/{xml-CwHcdUOz.js → xml-xaPpMw_l.js} +1 -1
  438. package/web/_app/immutable/xml-xaPpMw_l.js.map +1 -0
  439. package/web/_app/immutable/xquery-xVgpYI8e.js +3 -0
  440. package/web/_app/immutable/{xsl-CR7B95n6.js → xsl-C_0yvEBX.js} +1 -1
  441. package/web/_app/immutable/xsl-C_0yvEBX.js.map +1 -0
  442. package/web/_app/immutable/yacas-Du6vQuy6.js +3 -0
  443. package/web/_app/immutable/{yaml-1d7XLDFm.js → yaml-Dccr9MS0.js} +1 -1
  444. package/web/_app/immutable/yaml-Dccr9MS0.js.map +1 -0
  445. package/web/_app/immutable/z80-DR0Up5cl.js +3 -0
  446. package/web/_app/immutable/zenscript-BnlCZFoB.js.map +1 -0
  447. package/web/_app/immutable/zig-CMLA9XwU.js.map +1 -0
  448. package/web/apple-touch-icon.png +0 -0
  449. package/web/icon-512.png +0 -0
  450. package/web/index.html +6 -3
  451. package/web/logo.svg +1 -0
  452. package/web/manifest.webmanifest +12 -0
  453. package/web/_app/immutable/index-D6bVq7o9.css +0 -1
  454. package/web/_app/immutable/index-Dn3e-0Et.js +0 -488
  455. package/web/favicon.png +0 -0
  456. package/web/logo.png +0 -0
package/README.md CHANGED
@@ -1,17 +1,10 @@
1
1
  # Sprocket
2
2
 
3
- **Goal**: To make the world's best platform for developing hardware and software.
3
+ The best AI agent for hardware and software.
4
4
 
5
- Here's what makes Sprocket special:
5
+ Sprocket designs electronics, tests code end-to-end, and buys parts or subscriptions for your project when asked.
6
6
 
7
- - The only AI agent that can work on both <ins>hardware</ins> and <ins>software</ins>.
8
- - Retrieves best-in-class <ins>context from the web</ins> for everything it does, so it stays <ins>incredibly reliable</ins>.
9
- - <ins>Buys anything from any website</ins> when you ask, from hardware parts to SaaS subscriptions.
10
- - Makes <ins>beautifully detailed schematics</ins>, creates your <ins>BOM</ins>, and writes <ins>assembly instructions</ins>.
11
-
12
- [Sprocket Demo](https://www.youtube.com/watch?v=E8KWO3Vh9YU)
13
-
14
- [![Sprocket](./assets/sprocket.png)](https://www.youtube.com/watch?v=E8KWO3Vh9YU)
7
+ [![Sprocket](./assets/sprocket.webp)](https://spikonado.com/sprocket)
15
8
 
16
9
  ## Using Sprocket
17
10
 
@@ -55,7 +48,7 @@ Update your CLI installation with `sprocket update`. Run `sprocket --help` for m
55
48
  ## Troubleshooting
56
49
 
57
50
  - If `17731` is already occupied, set `SPROCKET_PORT` before launching.
58
- - If sign-in cannot save or restore your session, check that your operating system credential service is available, or use `sprocket login --credential-store file`.
51
+ - Sprocket uses your operating system credential service when available, and automatically falls back to an unencrypted private file when it is unavailable. Use `sprocket login --credential-store keyring` to require keyring storage, or `sprocket login --credential-store file` to require file storage.
59
52
  - If `sprocket` opens the browser instead of the desktop app, install `sprocket-desktop` from [GitHub Releases](https://github.com/spikonado/sprocket/releases) onto `PATH`, or set `SPROCKET_DESKTOP_EXECUTABLE`.
60
53
  - Unsigned macOS and Windows desktop builds may need a Gatekeeper / SmartScreen override the first time you open them.
61
54
  - Contact [aarav@spikonado.com](mailto:aarav@spikonado.com) for help.
@@ -1 +1,15 @@
1
1
  # Third-party notices
2
+
3
+ ## Managed browser tools
4
+
5
+ Sprocket downloads unmodified native releases of
6
+ [agent-browser](https://github.com/vercel-labs/agent-browser) on demand. It is
7
+ copyright Vercel, Inc., and licensed under
8
+ [Apache-2.0](https://github.com/vercel-labs/agent-browser/blob/v0.39.1/LICENSE).
9
+ When serving agent-browser's dashboard, Sprocket changes its web assets to
10
+ offer only Chrome and hide AI chat, as listed in
11
+ `tools/agent-browser/dashboard-patches.json`.
12
+
13
+ Versions, release asset sizes, and SHA256 checksums are recorded in
14
+ `tools/agent-browser/releases.json`. Chromium downloaded by the
15
+ upstream installer retains its own third-party licenses and notices.
package/lib/launcher.js CHANGED
@@ -1,50 +1,33 @@
1
- import { spawnSync } from 'node:child_process';
2
- import { accessSync, chmodSync, constants, readFileSync } from 'node:fs';
3
- import { createRequire } from 'node:module';
1
+ import { spawn } from 'node:child_process';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { accessSync, chmodSync, constants, readFileSync, rmSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
4
5
  import path from 'node:path';
5
6
 
6
- import { createHost, parseUpdateArgs, runUpdateCli, UPDATE_API_FILENAME } from './update.js';
7
+ import { resolveNativePackage } from './native.js';
8
+ import {
9
+ createHost,
10
+ PACKAGE_ROOT,
11
+ parseUpdateArgs,
12
+ runUpdateCli,
13
+ UPDATE_API_FILENAME
14
+ } from './update.js';
7
15
 
8
- const require = createRequire(import.meta.url);
16
+ // Must match crates/sprocket-cli/src/main.rs.
17
+ export const RESTART_EXIT_CODE = 75;
9
18
 
10
- const TARGETS = JSON.parse(readFileSync(path.join(import.meta.dirname, '../targets.json'), 'utf8'));
11
-
12
- const PLATFORM_PACKAGES = new Map(
13
- TARGETS.map((target) => [`${target.os}:${target.cpu}`, [target.packageName, target.executable]])
14
- );
15
-
16
- export function nativePackage(platform = process.platform, arch = process.arch) {
17
- return PLATFORM_PACKAGES.get(`${platform}:${arch}`);
18
- }
19
-
20
- export function resolveNativeBinary(platform = process.platform, arch = process.arch) {
21
- const target = nativePackage(platform, arch);
22
-
23
- if (!target) {
24
- throw new Error(
25
- `Sprocket does not provide a binary for ${platform}/${arch}. ` +
26
- 'Supported targets are Linux x64/arm64, macOS x64/arm64, and Windows x64.'
27
- );
28
- }
29
-
30
- const [packageName, executable] = target;
31
- let packageJson;
32
-
33
- try {
34
- packageJson = require.resolve(`${packageName}/package.json`);
35
- } catch (error) {
36
- if (error?.code !== 'MODULE_NOT_FOUND') {
37
- throw error;
38
- }
19
+ export function resolveNativeBinary() {
20
+ const native = resolveNativePackage();
21
+ const version = JSON.parse(readFileSync(path.join(PACKAGE_ROOT, 'package.json'), 'utf8')).version;
39
22
 
23
+ if (native.version !== version) {
40
24
  throw new Error(
41
- `The native package ${packageName} is missing. Reinstall @spikonado/sprocket ` +
42
- 'without omitting optional dependencies.',
43
- { cause: error }
25
+ `Sprocket ${version} needs ${native.packageName}@${version}, but ${native.version} is ` +
26
+ 'installed. Run `sprocket update` to repair the install.'
44
27
  );
45
28
  }
46
29
 
47
- return path.join(path.dirname(packageJson), 'bin', executable);
30
+ return native.binary;
48
31
  }
49
32
 
50
33
  export function ensureExecutable(binary) {
@@ -63,18 +46,49 @@ export function ensureExecutable(binary) {
63
46
  }
64
47
  }
65
48
 
66
- export function run(binary, args, options = {}) {
67
- const result = (options.spawn ?? spawnSync)(binary, args, {
49
+ export async function run(binary, args, options = {}) {
50
+ const child = (options.spawn ?? spawn)(binary, args, {
68
51
  stdio: 'inherit',
69
52
  env: options.env ?? process.env
70
53
  });
71
54
 
72
- if (result.error) {
73
- throw result.error;
55
+ let interrupted;
56
+
57
+ const handlers = new Map(
58
+ ['SIGINT', 'SIGTERM'].map((signal) => [
59
+ signal,
60
+ () => {
61
+ interrupted ??= signal;
62
+
63
+ // Windows already sends Ctrl+C to both processes; child.kill would force termination.
64
+ if (process.platform !== 'win32' || signal !== 'SIGINT') {
65
+ child.kill(signal);
66
+ }
67
+ }
68
+ ])
69
+ );
70
+
71
+ for (const [signal, handler] of handlers) {
72
+ process.on(signal, handler);
74
73
  }
75
74
 
76
- if (result.signal) {
77
- process.kill(process.pid, result.signal);
75
+ let result;
76
+
77
+ try {
78
+ result = await new Promise((resolve, reject) => {
79
+ child.once('error', reject);
80
+ child.once('close', (status, signal) => resolve({ status, signal }));
81
+ });
82
+ } finally {
83
+ for (const [signal, handler] of handlers) {
84
+ process.off(signal, handler);
85
+ }
86
+ }
87
+
88
+ const signal = result.signal ?? interrupted;
89
+
90
+ if (signal) {
91
+ process.kill(process.pid, signal);
78
92
 
79
93
  return undefined;
80
94
  }
@@ -95,6 +109,16 @@ export function nativeChildEnvironment(env, staticDir, updateNode, updateScript)
95
109
  return next;
96
110
  }
97
111
 
112
+ function readRestartLauncher(restartFile) {
113
+ try {
114
+ return readFileSync(restartFile, 'utf8');
115
+ } catch {
116
+ return null;
117
+ } finally {
118
+ rmSync(restartFile, { force: true });
119
+ }
120
+ }
121
+
98
122
  export async function launch(args, options = {}) {
99
123
  const env = { ...(options.env ?? process.env) };
100
124
  delete env.SPROCKET_UPDATE_MANAGED;
@@ -112,16 +136,42 @@ export async function launch(args, options = {}) {
112
136
  const staticDir = path.resolve(libDir, '../web');
113
137
  const binary = (options.resolveBinary ?? resolveNativeBinary)();
114
138
  (options.ensureExecutable ?? ensureExecutable)(binary);
115
- process.exitCode = run(binary, args, {
139
+ const execPath = options.execPath ?? process.execPath;
140
+ // The native server clears SPROCKET_RESTARTED, so only a launcher started by a restarting
141
+ // launcher sees it and leaves the next restart to that parent.
142
+ const ownsRestart = !env.SPROCKET_RESTARTED;
143
+
144
+ if (ownsRestart) {
145
+ env.SPROCKET_RESTART_FILE = path.join(
146
+ options.tmpdir ?? tmpdir(),
147
+ `sprocket-restart-${randomUUID()}`
148
+ );
149
+ }
150
+
151
+ let code = await run(binary, args, {
116
152
  env: nativeChildEnvironment(
117
153
  env,
118
154
  staticDir,
119
- options.execPath ?? process.execPath,
155
+ execPath,
120
156
  path.resolve(libDir, UPDATE_API_FILENAME)
121
157
  ),
122
158
  spawn: options.spawn
123
159
  });
124
160
 
161
+ if (ownsRestart) {
162
+ while (code === RESTART_EXIT_CODE) {
163
+ const launcher = readRestartLauncher(env.SPROCKET_RESTART_FILE);
164
+
165
+ if (!launcher) break;
166
+ code = await run(execPath, [launcher, ...args], {
167
+ env: { ...env, SPROCKET_RESTARTED: '1' },
168
+ spawn: options.spawn
169
+ });
170
+ }
171
+ }
172
+
173
+ process.exitCode = code;
174
+
125
175
  return process.exitCode;
126
176
  } catch (error) {
127
177
  console.error(`sprocket: ${error.message}`);
package/lib/native.js ADDED
@@ -0,0 +1,57 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ import path from 'node:path';
4
+
5
+ const require = createRequire(import.meta.url);
6
+
7
+ const TARGETS = JSON.parse(readFileSync(path.join(import.meta.dirname, '../targets.json'), 'utf8'));
8
+
9
+ const PLATFORM_PACKAGES = new Map(
10
+ TARGETS.map((target) => [`${target.os}:${target.cpu}`, [target.packageName, target.executable]])
11
+ );
12
+
13
+ export function nativePackage(platform = process.platform, arch = process.arch) {
14
+ return PLATFORM_PACKAGES.get(`${platform}:${arch}`);
15
+ }
16
+
17
+ export function resolveNativePackage(platform = process.platform, arch = process.arch) {
18
+ const target = nativePackage(platform, arch);
19
+
20
+ if (!target) {
21
+ throw new Error(
22
+ `Sprocket does not provide a binary for ${platform}/${arch}. ` +
23
+ 'Supported targets are Linux x64/arm64, macOS x64/arm64, and Windows x64.'
24
+ );
25
+ }
26
+
27
+ const [packageName, executable] = target;
28
+ let packageJson;
29
+
30
+ try {
31
+ packageJson = require.resolve(`${packageName}/package.json`);
32
+ } catch (error) {
33
+ if (error?.code !== 'MODULE_NOT_FOUND') {
34
+ throw error;
35
+ }
36
+
37
+ throw new Error(
38
+ `The native package ${packageName} is missing. Reinstall @spikonado/sprocket ` +
39
+ 'without omitting optional dependencies.',
40
+ { cause: error }
41
+ );
42
+ }
43
+
44
+ return {
45
+ packageName,
46
+ version: JSON.parse(readFileSync(packageJson, 'utf8')).version,
47
+ binary: path.join(path.dirname(packageJson), 'bin', executable)
48
+ };
49
+ }
50
+
51
+ export function installedNativeVersion() {
52
+ try {
53
+ return resolveNativePackage().version;
54
+ } catch {
55
+ return '';
56
+ }
57
+ }
package/lib/update.js CHANGED
@@ -4,14 +4,15 @@ import { promises as fsPromises, readFileSync, realpathSync, statSync } from 'no
4
4
  import os from 'node:os';
5
5
  import path from 'node:path';
6
6
 
7
+ import { installedNativeVersion } from './native.js';
8
+
7
9
  export const PACKAGE_NAME = '@spikonado/sprocket';
8
10
 
9
11
  export const UPDATE_API_FILENAME = 'update-api.js';
10
12
 
11
13
  export const DEFAULT_REGISTRY = 'https://registry.npmjs.org';
12
14
 
13
- export const RELAUNCH_MESSAGE =
14
- 'Wait for active agents to finish, then stop Sprocket and launch it again.';
15
+ export const RELAUNCH_MESSAGE = 'Update installed. Restart Sprocket to use it.';
15
16
 
16
17
  export const UNSUPPORTED_MESSAGE =
17
18
  'This copy of Sprocket was not installed globally with npm, bun, pnpm, or yarn, so it cannot be updated in place.';
@@ -476,6 +477,7 @@ export function createHost(overrides = {}) {
476
477
  pid: overrides.pid ?? process.pid,
477
478
  packageRoot,
478
479
  currentVersion: overrides.currentVersion,
480
+ nativeVersion: overrides.nativeVersion ?? installedNativeVersion,
479
481
  tmpdir: overrides.tmpdir ?? (() => os.tmpdir()),
480
482
  homedir: overrides.homedir ?? (() => os.homedir()),
481
483
  fetch: overrides.fetch ?? globalThis.fetch.bind(globalThis),
@@ -561,15 +563,15 @@ export async function checkForUpdate(host) {
561
563
  const registryVersion = await fetchChannelVersion(host, channel, currentVersion);
562
564
  const decision = channelUpdate(currentVersion, registryVersion);
563
565
 
564
- if (decision.status === 'idle') {
565
- return makePayload({ status: 'idle', currentVersion });
566
+ if (decision.status === 'available') {
567
+ return makePayload({ status: 'available', currentVersion, version: decision.version });
566
568
  }
567
569
 
568
- return makePayload({
569
- status: 'available',
570
- currentVersion,
571
- version: decision.version
572
- });
570
+ if (host.nativeVersion() !== currentVersion) {
571
+ return makePayload({ status: 'available', currentVersion, version: currentVersion });
572
+ }
573
+
574
+ return makePayload({ status: 'idle', currentVersion });
573
575
  }
574
576
 
575
577
  export async function installUpdate(host) {
@@ -621,6 +623,8 @@ export async function installUpdate(host) {
621
623
  throw new Error('The installation location changed during the update check. Try again.');
622
624
  }
623
625
 
626
+ const restartLauncher = path.resolve(globalPackageDir(install.globalRoot), 'bin/sprocket.js');
627
+
624
628
  const result = await host.runCommand(
625
629
  install.command,
626
630
  [...install.argsPrefix, ...install.installArgs(checked.version)],
@@ -658,13 +662,34 @@ export async function installUpdate(host) {
658
662
  };
659
663
  }
660
664
 
665
+ const launcherCheck = await host.runCommand(host.execPath, [restartLauncher, '--version'], {
666
+ cwd: host.homedir(),
667
+ env: host.env,
668
+ platform: host.platform,
669
+ timeout: QUERY_TIMEOUT_MS
670
+ });
671
+
672
+ if (launcherCheck.timedOut || (launcherCheck.status ?? 1) !== 0) {
673
+ return {
674
+ payload: makePayload({
675
+ status: 'error',
676
+ currentVersion,
677
+ version: checked.version,
678
+ error: `Sprocket ${checked.version} was installed but cannot start: ${sanitize(launcherCheck.stderr) || 'the launcher check failed'}`
679
+ })
680
+ };
681
+ }
682
+
661
683
  return {
662
- payload: makePayload({
663
- status: 'installed',
664
- currentVersion,
665
- version: checked.version,
666
- message: RELAUNCH_MESSAGE
667
- })
684
+ payload: {
685
+ ...makePayload({
686
+ status: 'installed',
687
+ currentVersion,
688
+ version: checked.version,
689
+ message: RELAUNCH_MESSAGE
690
+ }),
691
+ restartLauncher
692
+ }
668
693
  };
669
694
  });
670
695
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spikonado/sprocket",
3
- "version": "0.4.1",
3
+ "version": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309",
4
4
  "description": "Agentic platform for streamlining hardware and software development",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "type": "module",
@@ -30,10 +30,10 @@
30
30
  "access": "public"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@spikonado/sprocket-linux-x64-gnu": "0.4.1",
34
- "@spikonado/sprocket-linux-arm64-gnu": "0.4.1",
35
- "@spikonado/sprocket-darwin-x64": "0.4.1",
36
- "@spikonado/sprocket-darwin-arm64": "0.4.1",
37
- "@spikonado/sprocket-win32-x64-msvc": "0.4.1"
33
+ "@spikonado/sprocket-linux-x64-gnu": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309",
34
+ "@spikonado/sprocket-linux-arm64-gnu": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309",
35
+ "@spikonado/sprocket-darwin-x64": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309",
36
+ "@spikonado/sprocket-darwin-arm64": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309",
37
+ "@spikonado/sprocket-win32-x64-msvc": "0.4.2-dev.02fc9dc2d79e46c3c09452a06a474419eaa2b309"
38
38
  }
39
39
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abap-CLvhMVsD.js","names":["abap_default"],"sources":["../../../../../node_modules/.bun/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/abap.mjs"],"sourcesContent":["const lang = 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\\\"}\"))\n\nexport default [\nlang\n]\n"],"ignoreList":[0],"mappings":"AAEA,IAAAA,EAAe,CAFF,OAAO,OAAO,KAAK,MAAM,46eAAumgB,CAG7ogB,CACA,E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionscript-3-Cs6JJXT5.js","names":["actionscript_3_default"],"sources":["../../../../../node_modules/.bun/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/actionscript-3.mjs"],"sourcesContent":["const lang = 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\\\":\\\"#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\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}],\\\"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\\\":\\\"#declaration_code_block\\\"},{\\\"include\\\":\\\"#metadata\\\"},{\\\"include\\\":\\\"#method\\\"},{\\\"include\\\":\\\"#comments\\\"},{\\\"include\\\":\\\"#strings\\\"},{\\\"include\\\":\\\"#regexp\\\"},{\\\"include\\\":\\\"#numbers\\\"},{\\\"include\\\":\\\"#primitive_types\\\"},{\\\"include\\\":\\\"#primitive_error_types\\\"},{\\\"include\\\":\\\"#dynamic_type\\\"},{\\\"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\\\"},{\\\"include\\\":\\\"#conditional_compilation\\\"},{\\\"include\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}]},\\\"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\\\"}]},\\\"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\\\"}]},\\\"conditional_compilation\\\":{\\\"captures\\\":{\\\"2\\\":{\\\"name\\\":\\\"constant.other.actionscript.3\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.other.actionscript.3\\\"}},\\\"match\\\":\\\"(^|\\\\\\\\s+|;)\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b::\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\\\",\\\"name\\\":\\\"meta.conditional.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\\\"},\\\"declaration_code_block\\\":{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"end\\\":\\\"}\\\",\\\"name\\\":\\\"meta.code_block.actionscript.3\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#method\\\"},{\\\"include\\\":\\\"#variable_declaration\\\"},{\\\"include\\\":\\\"#comments\\\"},{\\\"include\\\":\\\"#strings\\\"},{\\\"include\\\":\\\"#regexp\\\"},{\\\"include\\\":\\\"#numbers\\\"},{\\\"include\\\":\\\"#primitive_types\\\"},{\\\"include\\\":\\\"#primitive_error_types\\\"},{\\\"include\\\":\\\"#dynamic_type\\\"},{\\\"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\\\"},{\\\"include\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}]},\\\"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\\\"}]},\\\"function_call\\\":{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"entity.name.function.actionscript.3\\\"}},\\\"match\\\":\\\"\\\\\\\\b([$0-9A-Z_a-z]+)(?=\\\\\\\\s*\\\\\\\\()\\\"},\\\"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\\\"},\\\"local_code_block\\\":{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"end\\\":\\\"}\\\",\\\"name\\\":\\\"meta.code_block.actionscript.3\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#local_code_block\\\"},{\\\"include\\\":\\\"#comments\\\"},{\\\"include\\\":\\\"#strings\\\"},{\\\"include\\\":\\\"#regexp\\\"},{\\\"include\\\":\\\"#variable_declaration\\\"},{\\\"include\\\":\\\"#numbers\\\"},{\\\"include\\\":\\\"#primitive_types\\\"},{\\\"include\\\":\\\"#primitive_error_types\\\"},{\\\"include\\\":\\\"#dynamic_type\\\"},{\\\"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\\\"},{\\\"include\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}]},\\\"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\\\":\\\"#local_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\\\":\\\"#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\\\"},{\\\"include\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}]},\\\"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\\\":\\\"#language_constants\\\"},{\\\"include\\\":\\\"#language_variables\\\"},{\\\"include\\\":\\\"#guess_type\\\"},{\\\"include\\\":\\\"#guess_constant\\\"},{\\\"include\\\":\\\"#array_access_operators\\\"},{\\\"include\\\":\\\"#vector_creation_operators\\\"},{\\\"include\\\":\\\"#functions\\\"},{\\\"include\\\":\\\"#primitive_functions\\\"},{\\\"include\\\":\\\"#function_call\\\"}]},\\\"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\\\",\\\"aliases\\\":[\\\"actionscript\\\",\\\"as3\\\"]}\"))\n\nexport default [\nlang\n]\n"],"ignoreList":[0],"mappings":"AAEA,IAAAA,EAAe,CAFF,OAAO,OAAO,KAAK,MAAM,qneAA+2hB,CAGr5hB,CACA,E"}