groove-dev 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/docs/FILE-EDITOR-PLAN.md +253 -0
  2. package/node_modules/@codemirror/autocomplete/.github/workflows/dispatch.yml +16 -0
  3. package/node_modules/@codemirror/autocomplete/CHANGELOG.md +639 -0
  4. package/node_modules/@codemirror/autocomplete/LICENSE +21 -0
  5. package/node_modules/@codemirror/autocomplete/README.md +43 -0
  6. package/node_modules/@codemirror/autocomplete/dist/index.cjs +2151 -0
  7. package/node_modules/@codemirror/autocomplete/dist/index.d.cts +648 -0
  8. package/node_modules/@codemirror/autocomplete/dist/index.d.ts +648 -0
  9. package/node_modules/@codemirror/autocomplete/dist/index.js +2120 -0
  10. package/node_modules/@codemirror/autocomplete/package.json +41 -0
  11. package/node_modules/@codemirror/commands/.github/workflows/dispatch.yml +16 -0
  12. package/node_modules/@codemirror/commands/CHANGELOG.md +386 -0
  13. package/node_modules/@codemirror/commands/LICENSE +21 -0
  14. package/node_modules/@codemirror/commands/README.md +35 -0
  15. package/node_modules/@codemirror/commands/dist/index.cjs +1909 -0
  16. package/node_modules/@codemirror/commands/dist/index.d.cts +650 -0
  17. package/node_modules/@codemirror/commands/dist/index.d.ts +650 -0
  18. package/node_modules/@codemirror/commands/dist/index.js +1795 -0
  19. package/node_modules/@codemirror/commands/package.json +42 -0
  20. package/node_modules/@codemirror/lang-css/.github/workflows/dispatch.yml +16 -0
  21. package/node_modules/@codemirror/lang-css/CHANGELOG.md +106 -0
  22. package/node_modules/@codemirror/lang-css/LICENSE +21 -0
  23. package/node_modules/@codemirror/lang-css/README.md +50 -0
  24. package/node_modules/@codemirror/lang-css/dist/index.cjs +269 -0
  25. package/node_modules/@codemirror/lang-css/dist/index.d.cts +28 -0
  26. package/node_modules/@codemirror/lang-css/dist/index.d.ts +28 -0
  27. package/node_modules/@codemirror/lang-css/dist/index.js +264 -0
  28. package/node_modules/@codemirror/lang-css/package.json +42 -0
  29. package/node_modules/@codemirror/lang-html/.github/workflows/dispatch.yml +16 -0
  30. package/node_modules/@codemirror/lang-html/CHANGELOG.md +210 -0
  31. package/node_modules/@codemirror/lang-html/LICENSE +21 -0
  32. package/node_modules/@codemirror/lang-html/README.md +147 -0
  33. package/node_modules/@codemirror/lang-html/dist/index.cjs +667 -0
  34. package/node_modules/@codemirror/lang-html/dist/index.d.cts +115 -0
  35. package/node_modules/@codemirror/lang-html/dist/index.d.ts +115 -0
  36. package/node_modules/@codemirror/lang-html/dist/index.js +661 -0
  37. package/node_modules/@codemirror/lang-html/package.json +46 -0
  38. package/node_modules/@codemirror/lang-javascript/.github/workflows/dispatch.yml +16 -0
  39. package/node_modules/@codemirror/lang-javascript/CHANGELOG.md +206 -0
  40. package/node_modules/@codemirror/lang-javascript/LICENSE +21 -0
  41. package/node_modules/@codemirror/lang-javascript/README.md +125 -0
  42. package/node_modules/@codemirror/lang-javascript/dist/index.cjs +526 -0
  43. package/node_modules/@codemirror/lang-javascript/dist/index.d.cts +93 -0
  44. package/node_modules/@codemirror/lang-javascript/dist/index.d.ts +93 -0
  45. package/node_modules/@codemirror/lang-javascript/dist/index.js +513 -0
  46. package/node_modules/@codemirror/lang-javascript/package.json +45 -0
  47. package/node_modules/@codemirror/lang-json/.github/workflows/dispatch.yml +16 -0
  48. package/node_modules/@codemirror/lang-json/CHANGELOG.md +59 -0
  49. package/node_modules/@codemirror/lang-json/LICENSE +21 -0
  50. package/node_modules/@codemirror/lang-json/README.md +56 -0
  51. package/node_modules/@codemirror/lang-json/dist/index.cjs +68 -0
  52. package/node_modules/@codemirror/lang-json/dist/index.d.cts +22 -0
  53. package/node_modules/@codemirror/lang-json/dist/index.d.ts +22 -0
  54. package/node_modules/@codemirror/lang-json/dist/index.js +64 -0
  55. package/node_modules/@codemirror/lang-json/package.json +39 -0
  56. package/node_modules/@codemirror/lang-markdown/.github/workflows/dispatch.yml +16 -0
  57. package/node_modules/@codemirror/lang-markdown/CHANGELOG.md +246 -0
  58. package/node_modules/@codemirror/lang-markdown/LICENSE +21 -0
  59. package/node_modules/@codemirror/lang-markdown/README.md +162 -0
  60. package/node_modules/@codemirror/lang-markdown/dist/index.cjs +501 -0
  61. package/node_modules/@codemirror/lang-markdown/dist/index.d.cts +124 -0
  62. package/node_modules/@codemirror/lang-markdown/dist/index.d.ts +124 -0
  63. package/node_modules/@codemirror/lang-markdown/dist/index.js +492 -0
  64. package/node_modules/@codemirror/lang-markdown/package.json +44 -0
  65. package/node_modules/@codemirror/lang-python/.github/workflows/dispatch.yml +16 -0
  66. package/node_modules/@codemirror/lang-python/CHANGELOG.md +174 -0
  67. package/node_modules/@codemirror/lang-python/LICENSE +21 -0
  68. package/node_modules/@codemirror/lang-python/README.md +61 -0
  69. package/node_modules/@codemirror/lang-python/dist/index.cjs +313 -0
  70. package/node_modules/@codemirror/lang-python/dist/index.d.cts +26 -0
  71. package/node_modules/@codemirror/lang-python/dist/index.d.ts +26 -0
  72. package/node_modules/@codemirror/lang-python/dist/index.js +308 -0
  73. package/node_modules/@codemirror/lang-python/package.json +42 -0
  74. package/node_modules/@codemirror/language/.github/workflows/dispatch.yml +16 -0
  75. package/node_modules/@codemirror/language/CHANGELOG.md +412 -0
  76. package/node_modules/@codemirror/language/LICENSE +21 -0
  77. package/node_modules/@codemirror/language/README.md +66 -0
  78. package/node_modules/@codemirror/language/dist/index.cjs +2742 -0
  79. package/node_modules/@codemirror/language/dist/index.d.cts +1220 -0
  80. package/node_modules/@codemirror/language/dist/index.d.ts +1220 -0
  81. package/node_modules/@codemirror/language/dist/index.js +2687 -0
  82. package/node_modules/@codemirror/language/package.json +44 -0
  83. package/node_modules/@codemirror/lint/.github/workflows/dispatch.yml +16 -0
  84. package/node_modules/@codemirror/lint/CHANGELOG.md +318 -0
  85. package/node_modules/@codemirror/lint/LICENSE +21 -0
  86. package/node_modules/@codemirror/lint/README.md +18 -0
  87. package/node_modules/@codemirror/lint/dist/index.cjs +958 -0
  88. package/node_modules/@codemirror/lint/dist/index.d.cts +195 -0
  89. package/node_modules/@codemirror/lint/dist/index.d.ts +195 -0
  90. package/node_modules/@codemirror/lint/dist/index.js +945 -0
  91. package/node_modules/@codemirror/lint/package.json +40 -0
  92. package/node_modules/@codemirror/search/.github/workflows/dispatch.yml +16 -0
  93. package/node_modules/@codemirror/search/CHANGELOG.md +324 -0
  94. package/node_modules/@codemirror/search/LICENSE +21 -0
  95. package/node_modules/@codemirror/search/README.md +18 -0
  96. package/node_modules/@codemirror/search/dist/index.cjs +1237 -0
  97. package/node_modules/@codemirror/search/dist/index.d.cts +385 -0
  98. package/node_modules/@codemirror/search/dist/index.d.ts +385 -0
  99. package/node_modules/@codemirror/search/dist/index.js +1217 -0
  100. package/node_modules/@codemirror/search/package.json +40 -0
  101. package/node_modules/@codemirror/state/.github/workflows/dispatch.yml +16 -0
  102. package/node_modules/@codemirror/state/CHANGELOG.md +308 -0
  103. package/node_modules/@codemirror/state/LICENSE +21 -0
  104. package/node_modules/@codemirror/state/README.md +18 -0
  105. package/node_modules/@codemirror/state/dist/index.cjs +3922 -0
  106. package/node_modules/@codemirror/state/dist/index.d.cts +1713 -0
  107. package/node_modules/@codemirror/state/dist/index.d.ts +1713 -0
  108. package/node_modules/@codemirror/state/dist/index.js +3892 -0
  109. package/node_modules/@codemirror/state/package.json +38 -0
  110. package/node_modules/@codemirror/theme-one-dark/.github/workflows/dispatch.yml +16 -0
  111. package/node_modules/@codemirror/theme-one-dark/CHANGELOG.md +97 -0
  112. package/node_modules/@codemirror/theme-one-dark/LICENSE +21 -0
  113. package/node_modules/@codemirror/theme-one-dark/README.md +46 -0
  114. package/node_modules/@codemirror/theme-one-dark/dist/index.cjs +139 -0
  115. package/node_modules/@codemirror/theme-one-dark/dist/index.d.cts +39 -0
  116. package/node_modules/@codemirror/theme-one-dark/dist/index.d.ts +39 -0
  117. package/node_modules/@codemirror/theme-one-dark/dist/index.js +134 -0
  118. package/node_modules/@codemirror/theme-one-dark/package.json +41 -0
  119. package/node_modules/@codemirror/view/.github/workflows/dispatch.yml +16 -0
  120. package/node_modules/@codemirror/view/CHANGELOG.md +2284 -0
  121. package/node_modules/@codemirror/view/LICENSE +21 -0
  122. package/node_modules/@codemirror/view/README.md +37 -0
  123. package/node_modules/@codemirror/view/dist/index.cjs +11796 -0
  124. package/node_modules/@codemirror/view/dist/index.d.cts +2389 -0
  125. package/node_modules/@codemirror/view/dist/index.d.ts +2389 -0
  126. package/node_modules/@codemirror/view/dist/index.js +11745 -0
  127. package/node_modules/@codemirror/view/package.json +41 -0
  128. package/node_modules/@groove-dev/daemon/src/api.js +157 -2
  129. package/node_modules/@groove-dev/daemon/src/filewatcher.js +59 -0
  130. package/node_modules/@groove-dev/daemon/src/index.js +28 -1
  131. package/node_modules/@groove-dev/daemon/src/skills.js +20 -0
  132. package/node_modules/@groove-dev/gui/dist/assets/index-Dxg9hdf3.js +103 -0
  133. package/node_modules/@groove-dev/gui/dist/index.html +1 -1
  134. package/node_modules/@groove-dev/gui/package.json +15 -2
  135. package/node_modules/@groove-dev/gui/src/App.jsx +3 -0
  136. package/node_modules/@groove-dev/gui/src/components/CodeEditor.jsx +143 -0
  137. package/node_modules/@groove-dev/gui/src/components/EditorTabs.jsx +83 -0
  138. package/node_modules/@groove-dev/gui/src/components/FileTree.jsx +193 -0
  139. package/node_modules/@groove-dev/gui/src/stores/groove.js +158 -1
  140. package/node_modules/@groove-dev/gui/src/views/FileEditor.jsx +142 -0
  141. package/node_modules/@groove-dev/gui/src/views/SkillsMarketplace.jsx +112 -1
  142. package/node_modules/@lezer/common/LICENSE +21 -0
  143. package/node_modules/@lezer/common/README.md +14 -0
  144. package/node_modules/@lezer/common/dist/index.cjs +2209 -0
  145. package/node_modules/@lezer/common/dist/index.d.cts +1174 -0
  146. package/node_modules/@lezer/common/dist/index.d.ts +1174 -0
  147. package/node_modules/@lezer/common/dist/index.js +2196 -0
  148. package/node_modules/@lezer/common/package.json +32 -0
  149. package/node_modules/@lezer/css/CHANGELOG.md +307 -0
  150. package/node_modules/@lezer/css/LICENSE +21 -0
  151. package/node_modules/@lezer/css/README.md +6 -0
  152. package/node_modules/@lezer/css/dist/index.cjs +151 -0
  153. package/node_modules/@lezer/css/dist/index.d.cts +3 -0
  154. package/node_modules/@lezer/css/dist/index.d.ts +3 -0
  155. package/node_modules/@lezer/css/dist/index.js +147 -0
  156. package/node_modules/@lezer/css/package.json +36 -0
  157. package/node_modules/@lezer/css/rollup.config.js +16 -0
  158. package/node_modules/@lezer/css/src/css.grammar +290 -0
  159. package/node_modules/@lezer/css/src/highlight.js +36 -0
  160. package/node_modules/@lezer/css/src/parser.js +31 -0
  161. package/node_modules/@lezer/css/src/parser.terms.js +63 -0
  162. package/node_modules/@lezer/css/src/tokens.js +75 -0
  163. package/node_modules/@lezer/css/test/declarations.txt +241 -0
  164. package/node_modules/@lezer/css/test/selector.txt +178 -0
  165. package/node_modules/@lezer/css/test/statements.txt +227 -0
  166. package/node_modules/@lezer/css/test/test-css.js +16 -0
  167. package/node_modules/@lezer/highlight/LICENSE +21 -0
  168. package/node_modules/@lezer/highlight/README.md +14 -0
  169. package/node_modules/@lezer/highlight/dist/index.cjs +936 -0
  170. package/node_modules/@lezer/highlight/dist/index.d.cts +623 -0
  171. package/node_modules/@lezer/highlight/dist/index.d.ts +623 -0
  172. package/node_modules/@lezer/highlight/dist/index.js +927 -0
  173. package/node_modules/@lezer/highlight/package.json +31 -0
  174. package/node_modules/@lezer/html/CHANGELOG.md +303 -0
  175. package/node_modules/@lezer/html/LICENSE +21 -0
  176. package/node_modules/@lezer/html/README.md +37 -0
  177. package/node_modules/@lezer/html/dist/index.cjs +354 -0
  178. package/node_modules/@lezer/html/dist/index.d.cts +14 -0
  179. package/node_modules/@lezer/html/dist/index.d.ts +14 -0
  180. package/node_modules/@lezer/html/dist/index.js +349 -0
  181. package/node_modules/@lezer/html/package.json +37 -0
  182. package/node_modules/@lezer/html/rollup.config.js +16 -0
  183. package/node_modules/@lezer/html/src/.tern-port +1 -0
  184. package/node_modules/@lezer/html/src/content.js +87 -0
  185. package/node_modules/@lezer/html/src/highlight.js +15 -0
  186. package/node_modules/@lezer/html/src/html.grammar +181 -0
  187. package/node_modules/@lezer/html/src/index.js +2 -0
  188. package/node_modules/@lezer/html/src/parser.js +27 -0
  189. package/node_modules/@lezer/html/src/parser.terms.js +53 -0
  190. package/node_modules/@lezer/html/src/tokens.js +199 -0
  191. package/node_modules/@lezer/html/test/mixed.txt +69 -0
  192. package/node_modules/@lezer/html/test/tags.txt +370 -0
  193. package/node_modules/@lezer/html/test/test-html.js +29 -0
  194. package/node_modules/@lezer/html/test/test-incremental.js +97 -0
  195. package/node_modules/@lezer/html/test/vue.txt +56 -0
  196. package/node_modules/@lezer/javascript/CHANGELOG.md +485 -0
  197. package/node_modules/@lezer/javascript/LICENSE +21 -0
  198. package/node_modules/@lezer/javascript/README.md +14 -0
  199. package/node_modules/@lezer/javascript/dist/index.cjs +196 -0
  200. package/node_modules/@lezer/javascript/dist/index.d.cts +3 -0
  201. package/node_modules/@lezer/javascript/dist/index.d.ts +3 -0
  202. package/node_modules/@lezer/javascript/dist/index.js +192 -0
  203. package/node_modules/@lezer/javascript/package.json +36 -0
  204. package/node_modules/@lezer/javascript/rollup.config.js +16 -0
  205. package/node_modules/@lezer/javascript/src/highlight.js +62 -0
  206. package/node_modules/@lezer/javascript/src/javascript.grammar +735 -0
  207. package/node_modules/@lezer/javascript/src/parser.js +33 -0
  208. package/node_modules/@lezer/javascript/src/parser.terms.js +177 -0
  209. package/node_modules/@lezer/javascript/src/tokens.js +87 -0
  210. package/node_modules/@lezer/javascript/test/decorator.txt +64 -0
  211. package/node_modules/@lezer/javascript/test/expression.txt +686 -0
  212. package/node_modules/@lezer/javascript/test/jsx.txt +79 -0
  213. package/node_modules/@lezer/javascript/test/semicolon.txt +77 -0
  214. package/node_modules/@lezer/javascript/test/statement.txt +404 -0
  215. package/node_modules/@lezer/javascript/test/test-javascript.js +17 -0
  216. package/node_modules/@lezer/javascript/test/typescript.txt +401 -0
  217. package/node_modules/@lezer/json/CHANGELOG.md +79 -0
  218. package/node_modules/@lezer/json/LICENSE +21 -0
  219. package/node_modules/@lezer/json/README.md +7 -0
  220. package/node_modules/@lezer/json/dist/index.cjs +41 -0
  221. package/node_modules/@lezer/json/dist/index.d.cts +3 -0
  222. package/node_modules/@lezer/json/dist/index.d.ts +3 -0
  223. package/node_modules/@lezer/json/dist/index.js +37 -0
  224. package/node_modules/@lezer/json/package.json +36 -0
  225. package/node_modules/@lezer/json/rollup.config.js +15 -0
  226. package/node_modules/@lezer/json/src/highlight.js +12 -0
  227. package/node_modules/@lezer/json/src/json.grammar +38 -0
  228. package/node_modules/@lezer/json/src/parser.js +23 -0
  229. package/node_modules/@lezer/json/src/parser.terms.js +12 -0
  230. package/node_modules/@lezer/json/test/arrays.txt +34 -0
  231. package/node_modules/@lezer/json/test/literals.txt +23 -0
  232. package/node_modules/@lezer/json/test/numbers.txt +87 -0
  233. package/node_modules/@lezer/json/test/objects.txt +34 -0
  234. package/node_modules/@lezer/json/test/strings.txt +50 -0
  235. package/node_modules/@lezer/json/test/test-json.js +17 -0
  236. package/node_modules/@lezer/lr/LICENSE +21 -0
  237. package/node_modules/@lezer/lr/README.md +25 -0
  238. package/node_modules/@lezer/lr/dist/constants.d.ts +45 -0
  239. package/node_modules/@lezer/lr/dist/constants.js +5 -0
  240. package/node_modules/@lezer/lr/dist/index.cjs +1891 -0
  241. package/node_modules/@lezer/lr/dist/index.d.cts +303 -0
  242. package/node_modules/@lezer/lr/dist/index.d.ts +303 -0
  243. package/node_modules/@lezer/lr/dist/index.js +1884 -0
  244. package/node_modules/@lezer/lr/package.json +32 -0
  245. package/node_modules/@lezer/markdown/CHANGELOG.md +279 -0
  246. package/node_modules/@lezer/markdown/LICENSE +21 -0
  247. package/node_modules/@lezer/markdown/README.md +725 -0
  248. package/node_modules/@lezer/markdown/bin/build-readme.cjs +39 -0
  249. package/node_modules/@lezer/markdown/build.js +16 -0
  250. package/node_modules/@lezer/markdown/dist/index.cjs +2352 -0
  251. package/node_modules/@lezer/markdown/dist/index.d.cts +600 -0
  252. package/node_modules/@lezer/markdown/dist/index.d.ts +600 -0
  253. package/node_modules/@lezer/markdown/dist/index.js +2335 -0
  254. package/node_modules/@lezer/markdown/package.json +37 -0
  255. package/node_modules/@lezer/markdown/src/README.md +83 -0
  256. package/node_modules/@lezer/markdown/src/extension.ts +301 -0
  257. package/node_modules/@lezer/markdown/src/index.ts +5 -0
  258. package/node_modules/@lezer/markdown/src/markdown.ts +1961 -0
  259. package/node_modules/@lezer/markdown/src/nest.ts +46 -0
  260. package/node_modules/@lezer/markdown/test/compare-tree.ts +14 -0
  261. package/node_modules/@lezer/markdown/test/spec.ts +79 -0
  262. package/node_modules/@lezer/markdown/test/test-extension.ts +269 -0
  263. package/node_modules/@lezer/markdown/test/test-incremental.ts +265 -0
  264. package/node_modules/@lezer/markdown/test/test-markdown.ts +3574 -0
  265. package/node_modules/@lezer/markdown/test/test-nesting.ts +86 -0
  266. package/node_modules/@lezer/markdown/test/tsconfig.json +12 -0
  267. package/node_modules/@lezer/markdown/tsconfig.json +14 -0
  268. package/node_modules/@lezer/python/CHANGELOG.md +243 -0
  269. package/node_modules/@lezer/python/LICENSE +21 -0
  270. package/node_modules/@lezer/python/README.md +6 -0
  271. package/node_modules/@lezer/python/dist/index.cjs +330 -0
  272. package/node_modules/@lezer/python/dist/index.d.cts +3 -0
  273. package/node_modules/@lezer/python/dist/index.d.ts +3 -0
  274. package/node_modules/@lezer/python/dist/index.js +326 -0
  275. package/node_modules/@lezer/python/package.json +36 -0
  276. package/node_modules/@lezer/python/rollup.config.js +16 -0
  277. package/node_modules/@lezer/python/src/highlight.js +35 -0
  278. package/node_modules/@lezer/python/src/python.grammar +381 -0
  279. package/node_modules/@lezer/python/src/tokens.js +224 -0
  280. package/node_modules/@lezer/python/test/expression.txt +231 -0
  281. package/node_modules/@lezer/python/test/statement.txt +442 -0
  282. package/node_modules/@lezer/python/test/test-incremental.js +33 -0
  283. package/node_modules/@lezer/python/test/test-python.js +17 -0
  284. package/node_modules/@marijn/find-cluster-break/LICENSE +21 -0
  285. package/node_modules/@marijn/find-cluster-break/README.md +28 -0
  286. package/node_modules/@marijn/find-cluster-break/dist/index.cjs +85 -0
  287. package/node_modules/@marijn/find-cluster-break/dist/index.d.cts +15 -0
  288. package/node_modules/@marijn/find-cluster-break/package.json +35 -0
  289. package/node_modules/@marijn/find-cluster-break/rollup.config.js +7 -0
  290. package/node_modules/@marijn/find-cluster-break/src/index.d.ts +15 -0
  291. package/node_modules/@marijn/find-cluster-break/src/index.js +87 -0
  292. package/node_modules/@marijn/find-cluster-break/test/test-cluster.js +30 -0
  293. package/node_modules/crelt/LICENSE +19 -0
  294. package/node_modules/crelt/README.md +23 -0
  295. package/node_modules/crelt/dist/index.cjs +31 -0
  296. package/node_modules/crelt/dist/index.d.cts +4 -0
  297. package/node_modules/crelt/index.d.ts +4 -0
  298. package/node_modules/crelt/index.js +28 -0
  299. package/node_modules/crelt/package.json +35 -0
  300. package/node_modules/crelt/rollup.config.js +13 -0
  301. package/node_modules/style-mod/LICENSE +19 -0
  302. package/node_modules/style-mod/README.md +98 -0
  303. package/node_modules/style-mod/dist/style-mod.cjs +165 -0
  304. package/node_modules/style-mod/dist/style-mod.d.cts +16 -0
  305. package/node_modules/style-mod/package.json +39 -0
  306. package/node_modules/style-mod/src/README.md +34 -0
  307. package/node_modules/style-mod/src/style-mod.d.ts +16 -0
  308. package/node_modules/style-mod/src/style-mod.js +172 -0
  309. package/node_modules/style-mod/test/test-style-mod.js +104 -0
  310. package/node_modules/w3c-keyname/.tern-port +1 -0
  311. package/node_modules/w3c-keyname/LICENSE +19 -0
  312. package/node_modules/w3c-keyname/README.md +18 -0
  313. package/node_modules/w3c-keyname/index.cjs +127 -0
  314. package/node_modules/w3c-keyname/index.d.cts +5 -0
  315. package/node_modules/w3c-keyname/index.d.ts +5 -0
  316. package/node_modules/w3c-keyname/index.js +119 -0
  317. package/node_modules/w3c-keyname/package.json +37 -0
  318. package/package.json +1 -1
  319. package/packages/daemon/src/api.js +157 -2
  320. package/packages/daemon/src/filewatcher.js +59 -0
  321. package/packages/daemon/src/index.js +28 -1
  322. package/packages/daemon/src/skills.js +20 -0
  323. package/packages/gui/dist/assets/index-Dxg9hdf3.js +103 -0
  324. package/packages/gui/dist/index.html +1 -1
  325. package/packages/gui/package.json +15 -2
  326. package/packages/gui/src/App.jsx +3 -0
  327. package/packages/gui/src/components/CodeEditor.jsx +143 -0
  328. package/packages/gui/src/components/EditorTabs.jsx +83 -0
  329. package/packages/gui/src/components/FileTree.jsx +193 -0
  330. package/packages/gui/src/stores/groove.js +158 -1
  331. package/packages/gui/src/views/FileEditor.jsx +142 -0
  332. package/packages/gui/src/views/SkillsMarketplace.jsx +112 -1
  333. package/node_modules/@groove-dev/gui/dist/assets/index-CNCSwHwH.js +0 -74
  334. package/packages/gui/dist/assets/index-CNCSwHwH.js +0 -74
@@ -0,0 +1,735 @@
1
+ @dialects { jsx, ts }
2
+
3
+ @precedence {
4
+ typeargs,
5
+ typeMember,
6
+ typePrefix,
7
+ intersectionPrefixed @left,
8
+ intersection @left,
9
+ unionPrefixed @left,
10
+ union @left,
11
+ typeExtends @right,
12
+ else @right,
13
+ member,
14
+ readonly,
15
+ newArgs,
16
+ call,
17
+ instantiate,
18
+ taggedTemplate,
19
+ prefix,
20
+ postfix,
21
+ typeof,
22
+ exp @left,
23
+ times @left,
24
+ plus @left,
25
+ shift @left,
26
+ loop,
27
+ rel @left,
28
+ satisfies,
29
+ equal @left,
30
+ bitAnd @left,
31
+ bitXor @left,
32
+ bitOr @left,
33
+ and @left,
34
+ or @left,
35
+ ternary @right,
36
+ assign @right,
37
+ comma @left,
38
+ statement @cut,
39
+ predicate
40
+ }
41
+
42
+ @top Script { Hashbang? statement* }
43
+
44
+ @top SingleExpression { expression }
45
+
46
+ @top SingleClassItem { classItem }
47
+
48
+ statement[@isGroup=Statement] {
49
+ ExportDeclaration |
50
+ ImportDeclaration |
51
+ ForStatement { kw<"for"> ckw<"await">? (ForSpec | ForInSpec | ForOfSpec) statement } |
52
+ WhileStatement { kw<"while"> ParenthesizedExpression statement } |
53
+ WithStatement { kw<"with"> ParenthesizedExpression statement } |
54
+ DoStatement { kw<"do"> statement kw<"while"> ParenthesizedExpression semi } |
55
+ IfStatement { kw<"if"> ParenthesizedExpression statement (!else kw<"else"> statement)? } |
56
+ SwitchStatement { kw<"switch"> ParenthesizedExpression SwitchBody { "{" switchItem* "}" } } |
57
+ TryStatement {
58
+ kw<"try"> Block
59
+ CatchClause { kw<"catch"> ("(" pattern ")")? Block }?
60
+ FinallyClause { kw<"finally"> Block }?
61
+ } |
62
+ ReturnStatement { kw<"return"> (noSemi expression)? semi } |
63
+ ThrowStatement { kw<"throw"> expression semi } |
64
+ BreakStatement { kw<"break"> (noSemi Label)? semi } |
65
+ ContinueStatement { kw<"continue"> (noSemi Label)? semi } |
66
+ DebuggerStatement { kw<"debugger"> semi } |
67
+ Block |
68
+ LabeledStatement { Label ":" statement } |
69
+ declaration |
70
+ ExpressionStatement { expression semi } |
71
+ ";"
72
+ }
73
+
74
+ ExportDeclaration {
75
+ kw<"export"> Star (ckw<"as"> (VariableName | String))? ckw<"from"> String semi |
76
+ kw<"export"> kw<"default"> (FunctionDeclaration | ClassDeclaration | expression semi) |
77
+ kw<"export"> tskw<"type">? declaration |
78
+ kw<"export"> tskw<"type">? ExportGroup (ckw<"from"> String)? semi |
79
+ kw<"export"> "=" expression semi
80
+ }
81
+
82
+ ExportGroup {
83
+ "{" commaSep<(VariableName | String | kw<"default">) (ckw<"as"> (VariableName { word } | String))?> "}"
84
+ }
85
+
86
+ ImportDeclaration {
87
+ kw<"import"> ckw<"defer">? tskw<"type">? (Star ckw<"as"> VariableDefinition | commaSep<VariableDefinition | ImportGroup>)
88
+ ckw<"from"> String semi |
89
+ kw<"import"> ckw<"defer">? String semi
90
+ }
91
+
92
+ ImportGroup {
93
+ "{" commaSep<tskw<"type">? (VariableDefinition | (VariableName | String | kw<"default">) ckw<"as"> VariableDefinition)> "}"
94
+ }
95
+
96
+ ForSpec {
97
+ "("
98
+ (VariableDeclaration | expression ";" | ";") expression? ";" expression?
99
+ ")"
100
+ }
101
+
102
+ forXSpec<op> {
103
+ "("
104
+ (variableDeclarationKeyword pattern | VariableName | MemberExpression | ArrayPattern | ObjectPattern)
105
+ !loop op expression
106
+ ")"
107
+ }
108
+
109
+ ForInSpec { forXSpec<kw<"in">> }
110
+ ForOfSpec { forXSpec<ckw<"of">> }
111
+
112
+ declaration {
113
+ FunctionDeclaration |
114
+ ClassDeclaration |
115
+ VariableDeclaration |
116
+ TypeAliasDeclaration |
117
+ InterfaceDeclaration |
118
+ EnumDeclaration |
119
+ NamespaceDeclaration |
120
+ AmbientDeclaration
121
+ }
122
+
123
+ FunctionDeclaration {
124
+ async? !statement kw<"function"> Star? VariableDefinition? functionSignature (Block | semi)
125
+ }
126
+
127
+ ClassDeclaration {
128
+ !statement Decorator* tskw<"abstract">? kw<"class"> VariableDefinition TypeParamList?
129
+ (kw<"extends"> ((VariableName | MemberExpression) !typeargs TypeArgList | expression))?
130
+ (tskw<"implements"> commaSep1<type>)?
131
+ ClassBody
132
+ }
133
+
134
+ classItem { MethodDeclaration | PropertyDeclaration | StaticBlock | ";" }
135
+
136
+ ClassBody { "{" classItem* "}" }
137
+
138
+ privacy {
139
+ @extend[@name=Privacy,@dialect=ts]<word, "public" | "private" | "protected">
140
+ }
141
+
142
+ privacyArg {
143
+ @extend[@name=Privacy,@dialect=ts]<identifier, "public" | "private" | "protected">
144
+ }
145
+
146
+ propModifier {
147
+ Decorator |
148
+ tsPkwMod<"declare"> |
149
+ privacy |
150
+ pkwMod<"static"> |
151
+ tsPkwMod<"abstract"> |
152
+ tsPkwMod<"override">
153
+ }
154
+
155
+ classPropName { propName | PrivatePropertyDefinition }
156
+
157
+ MethodDeclaration[group=ClassItem] {
158
+ propModifier*
159
+ pkwMod<"async">?
160
+ (pkwMod<"get"> | pkwMod<"set"> | Star)?
161
+ classPropName
162
+ functionSignature
163
+ (Block | semi)
164
+ }
165
+
166
+ StaticBlock[group=ClassItem] {
167
+ pkwMod<"static"> Block
168
+ }
169
+
170
+ PropertyDeclaration[group=ClassItem] {
171
+ propModifier*
172
+ (tsPkwMod<"readonly"> | pkwMod<"accessor">)?
173
+ classPropName
174
+ (Optional | LogicOp<"!">)?
175
+ TypeAnnotation?
176
+ ("=" expressionNoComma)?
177
+ semi
178
+ }
179
+
180
+ variableDeclarationKeyword {
181
+ kw<"let"> | kw<"var"> | kw<"const"> | ckw<"await">? ckw<"using">
182
+ }
183
+
184
+ VariableDeclaration {
185
+ variableDeclarationKeyword commaSep1<patternAssignTyped> semi
186
+ }
187
+
188
+ TypeAliasDeclaration {
189
+ tskw<"type"> TypeDefinition TypeParamList? "=" type semi
190
+ }
191
+
192
+ InterfaceDeclaration {
193
+ tskw<"interface"> TypeDefinition TypeParamList? (kw<"extends"> commaSep1<type>)? ObjectType
194
+ }
195
+
196
+ EnumDeclaration {
197
+ kw<"const">? tskw<"enum"> TypeDefinition EnumBody { "{" commaSep<PropertyName ("=" expressionNoComma)?> "}" }
198
+ }
199
+
200
+ NamespaceDeclaration {
201
+ (tskw<"namespace"> | tskw<"module">) VariableDefinition ("." PropertyDefinition)* Block
202
+ }
203
+
204
+ AmbientDeclaration {
205
+ tskw<"declare"> (
206
+ VariableDeclaration |
207
+ TypeAliasDeclaration |
208
+ EnumDeclaration |
209
+ InterfaceDeclaration |
210
+ NamespaceDeclaration |
211
+ GlobalDeclaration { tskw<"global"> Block } |
212
+ ClassDeclaration {
213
+ tskw<"abstract">? kw<"class"> VariableDefinition TypeParamList?
214
+ (kw<"extends"> expression)?
215
+ (tskw<"implements"> commaSep1<type>)?
216
+ ClassBody { "{" (
217
+ MethodDeclaration |
218
+ PropertyDeclaration |
219
+ IndexSignature semi
220
+ )* "}" }
221
+ } |
222
+ AmbientFunctionDeclaration {
223
+ async? kw<"function"> Star? VariableDefinition? TypeParamList? ParamList (TypeAnnotation | TypePredicate) semi
224
+ }
225
+ )
226
+ }
227
+
228
+ decoratorExpression {
229
+ VariableName |
230
+ MemberExpression { decoratorExpression !member ("." | questionDot) (PropertyName | PrivatePropertyName) } |
231
+ CallExpression { decoratorExpression !call TypeArgList? questionDot? ArgList } |
232
+ ParenthesizedExpression
233
+ }
234
+
235
+ Decorator { "@" decoratorExpression }
236
+
237
+ pattern { VariableDefinition | ArrayPattern | ObjectPattern }
238
+
239
+ ArrayPattern { "[" commaSep<("..."? patternAssign)?> ~destructure "]" }
240
+
241
+ ObjectPattern { "{" commaSep<PatternProperty> ~destructure "}" }
242
+
243
+ patternAssign {
244
+ pattern ("=" expressionNoComma)?
245
+ }
246
+
247
+ TypeAnnotation { ":" type }
248
+
249
+ TypePredicate {
250
+ ":" (
251
+ tskw<"asserts"> (VariableName | kw<"this">) !predicate (tskw<"is"> type)? |
252
+ (VariableName | kw<"this">) !predicate tskw<"is"> type
253
+ )
254
+ }
255
+
256
+ patternAssignTyped {
257
+ pattern Optional? TypeAnnotation? ("=" expressionNoComma)?
258
+ }
259
+
260
+ ParamList {
261
+ "(" commaSep<"..." patternAssignTyped | Decorator* privacyArg? tskw<"readonly">? patternAssignTyped | kw<"this"> TypeAnnotation> ")"
262
+ }
263
+
264
+ Block {
265
+ !statement "{" statement* "}"
266
+ }
267
+
268
+ switchItem {
269
+ CaseLabel { kw<"case"> expression ":" } |
270
+ DefaultLabel { kw<"default"> ":" } |
271
+ statement
272
+ }
273
+
274
+ expression[@isGroup=Expression] {
275
+ expressionNoComma | SequenceExpression
276
+ }
277
+
278
+ SequenceExpression {
279
+ expressionNoComma !comma ("," expressionNoComma)+
280
+ }
281
+
282
+ expressionNoComma {
283
+ Number |
284
+ String |
285
+ TemplateString |
286
+ VariableName |
287
+ boolean |
288
+ kw<"this"> |
289
+ kw<"null"> |
290
+ kw<"super"> |
291
+ RegExp |
292
+ ArrayExpression |
293
+ ObjectExpression { "{" commaSep<Property> ~destructure "}" } |
294
+ NewTarget { kw<"new"> "." PropertyName } |
295
+ NewExpression { kw<"new"> expressionNoComma (!newArgs ArgList)? } |
296
+ UnaryExpression |
297
+ YieldExpression |
298
+ AwaitExpression |
299
+ ParenthesizedExpression |
300
+ ClassExpression |
301
+ FunctionExpression |
302
+ ArrowFunction |
303
+ MemberExpression |
304
+ BinaryExpression |
305
+ ConditionalExpression { expressionNoComma !ternary questionOp expressionNoComma LogicOp<":"> expressionNoComma } |
306
+ AssignmentExpression |
307
+ PostfixExpression { expressionNoComma !postfix (incdec | LogicOp<"!">) } |
308
+ CallExpression { expressionNoComma !call questionDot? ArgList } |
309
+ InstantiationExpression { (VariableName | MemberExpression) !instantiate TypeArgList } |
310
+ TaggedTemplateExpression { expressionNoComma !taggedTemplate TemplateString } |
311
+ DynamicImport { kw<"import"> "(" expressionNoComma ")" } |
312
+ ImportMeta { kw<"import"> "." PropertyName } |
313
+ JSXElement |
314
+ PrefixCast { tsAngleOpen (type | kw<"const">) ~tsAngle ">" expressionNoComma } |
315
+ ArrowFunction[@dynamicPrecedence=1] {
316
+ TypeParamList { tsAngleOpen commaSep<typeParam> ">" } ParamList TypeAnnotation? "=>" (Block | expressionNoComma)
317
+ }
318
+ }
319
+
320
+ ParenthesizedExpression { "(" expression ")" }
321
+
322
+ ArrayExpression {
323
+ "[" commaSep1<"..."? expressionNoComma | ""> ~destructure "]"
324
+ }
325
+
326
+ propName { PropertyDefinition | "[" expression "]" ~destructure | Number ~destructure | String ~destructure }
327
+
328
+ Property {
329
+ pkwMod<"async">? (pkwMod<"get"> | pkwMod<"set"> | Star)? propName functionSignature Block |
330
+ propName ~destructure (":" expressionNoComma)? |
331
+ "..." expressionNoComma
332
+ }
333
+
334
+ PatternProperty {
335
+ "..." patternAssign |
336
+ ((PropertyName | Number | String) ~destructure (":" pattern)? |
337
+ ("[" expression "]" ~destructure ":" pattern)) ("=" expressionNoComma)?
338
+ }
339
+
340
+ ClassExpression {
341
+ kw<"class"> VariableDefinition? (kw<"extends"> expression)? ClassBody
342
+ }
343
+
344
+ functionSignature { TypeParamList? ParamList (TypeAnnotation | TypePredicate)? }
345
+
346
+ FunctionExpression {
347
+ async? kw<"function"> Star? VariableDefinition? functionSignature Block
348
+ }
349
+
350
+ YieldExpression[@dynamicPrecedence=1] {
351
+ !prefix ckw<"yield"> Star? expressionNoComma
352
+ }
353
+
354
+ AwaitExpression[@dynamicPrecedence=1] {
355
+ !prefix ckw<"await"> expressionNoComma
356
+ }
357
+
358
+ UnaryExpression {
359
+ !prefix (kw<"void"> | kw<"typeof"> | kw<"delete"> |
360
+ LogicOp<"!"> | BitOp<"~"> | incdec | incdecPrefix | plusMin)
361
+ expressionNoComma
362
+ }
363
+
364
+ BinaryExpression {
365
+ expressionNoComma !exp ArithOp<"**"> expressionNoComma |
366
+ expressionNoComma !times (divide | ArithOp<"%"> | ArithOp<"*">) expressionNoComma |
367
+ expressionNoComma !plus plusMin expressionNoComma |
368
+ expressionNoComma !shift BitOp<">>" ">"? | "<<"> expressionNoComma |
369
+ expressionNoComma !rel (LessThan | CompareOp<"<=" | ">" "="?> | kw<"instanceof">) expressionNoComma |
370
+ expressionNoComma !satisfies tskw<"satisfies"> type |
371
+ (expressionNoComma | PrivatePropertyName) !rel ~tsIn kw<"in"> expressionNoComma |
372
+ expressionNoComma !rel ckw<"as"> (kw<"const"> | type) |
373
+ expressionNoComma !rel tskw<"satisfies"> type |
374
+ expressionNoComma !equal CompareOp<"==" "="? | "!=" "="?> expressionNoComma |
375
+ expressionNoComma !bitOr BitOp { "|" } expressionNoComma |
376
+ expressionNoComma !bitXor BitOp<"^"> expressionNoComma |
377
+ expressionNoComma !bitAnd BitOp { "&" } expressionNoComma |
378
+ expressionNoComma !and LogicOp<"&&"> expressionNoComma |
379
+ expressionNoComma !or LogicOp<"||" | "??"> expressionNoComma
380
+ }
381
+
382
+ AssignmentExpression {
383
+ (VariableName | MemberExpression) !assign UpdateOp<($[+\-/%^] | "*" "*"? | "|" "|"? | "&" "&"? | "<<" | ">>" ">"? | "??") "=">
384
+ expressionNoComma |
385
+ (VariableName | MemberExpression | ArrayPattern | ObjectPattern) !assign "=" expressionNoComma
386
+ }
387
+
388
+ MemberExpression {
389
+ expressionNoComma !member (("." | questionDot) (PropertyName | PrivatePropertyName) | questionDot? "[" expression "]")
390
+ }
391
+
392
+ ArgList {
393
+ "(" commaSep<"..."? expressionNoComma> ")"
394
+ }
395
+
396
+ ArrowFunction {
397
+ async? (ParamList { VariableDefinition } | ParamList TypeAnnotation?) "=>" (Block | expressionNoComma)
398
+ }
399
+
400
+ TypeArgList[@dynamicPrecedence=1] {
401
+ @extend[@dialect=ts,@name="<"]<LessThan, "<"> commaSep<type> ">"
402
+ }
403
+
404
+ TypeParamList {
405
+ "<" commaSep<typeParam> ">"
406
+ }
407
+
408
+ typeParam { (kw<"in"> | tskw<"out"> | kw<"const">)? TypeDefinition ~tsAngle (kw<"extends"> type)? ("=" type)? }
409
+
410
+ typeofExpression {
411
+ MemberExpression { typeofExpression !member (("." | questionDot) PropertyName | "[" expression "]") } |
412
+ InstantiationExpression { typeofExpression !instantiate TypeArgList } |
413
+ VariableName
414
+ }
415
+
416
+ type[@isGroup=Type] {
417
+ ThisType { kw<"this"> } |
418
+ LiteralType {
419
+ plusMin? Number |
420
+ boolean |
421
+ String
422
+ } |
423
+ TemplateType |
424
+ NullType { kw<"null"> } |
425
+ VoidType { kw<"void"> } |
426
+ TypeofType { kw<"typeof"> typeofExpression } |
427
+ KeyofType { !typePrefix tskw<"keyof"> type } |
428
+ UniqueType { !typePrefix tskw<"unique"> type } |
429
+ ImportType { kw<"import"> "(" String ")" } |
430
+ InferredType { tskw<"infer"> TypeName } |
431
+ ParenthesizedType { "(" type ")" } |
432
+ FunctionSignature { TypeParamList? ParamTypeList "=>" type } |
433
+ NewSignature { kw<"new"> ParamTypeList "=>" type } |
434
+ IndexedType |
435
+ TupleType { "[" commaSep<(Label ":")? type | "..." type> ~destructure "]" } |
436
+ ArrayType { type noSemiType "[" "]" } |
437
+ ReadonlyType { tskw<"readonly"> !readonly type } |
438
+ ObjectType |
439
+ UnionType {
440
+ type (!union unionOp type)+ |
441
+ unionOp type (!unionPrefixed unionOp type)*
442
+ } |
443
+ IntersectionType {
444
+ type (!intersection intersectionOp type)+ |
445
+ intersectionOp type (!intersectionPrefixed intersectionOp type)*
446
+ } |
447
+ ConditionalType { type !typeExtends kw<"extends"> type questionOp ~arrow type LogicOp<":"> type } |
448
+ ParameterizedType { (TypeName | IndexedType) !typeargs TypeArgList } |
449
+ TypeName
450
+ }
451
+
452
+ IndexedType {
453
+ type !typeMember ("." TypeName | noSemiType "[" type "]")+
454
+ }
455
+
456
+ ObjectType {
457
+ "{" (
458
+ (MethodType |
459
+ PropertyType |
460
+ IndexSignature |
461
+ CallSignature { ParamTypeList (TypeAnnotation | TypePredicate) } |
462
+ NewSignature[@dynamicPrecedence=1] { @extend[@name=new]<word, "new"> ParamTypeList TypeAnnotation })
463
+ ("," | semi)
464
+ )* ~destructure "}"
465
+ }
466
+
467
+ IndexSignature {
468
+ (plusMin? tsPkwMod<"readonly">)?
469
+ "[" PropertyDefinition { identifier } (TypeAnnotation | ~tsIn kw<"in"> type (ckw<"as"> type)?) "]"
470
+ (plusMin? Optional)?
471
+ TypeAnnotation
472
+ }
473
+
474
+ MethodType {
475
+ pkwMod<"async">?
476
+ (pkwMod<"get"> | pkwMod<"set"> | Star)?
477
+ propName
478
+ (plusMin? Optional)?
479
+ functionSignature
480
+ }
481
+
482
+ PropertyType {
483
+ (plusMin? tsPkwMod<"readonly">)?
484
+ propName
485
+ (plusMin? Optional)?
486
+ TypeAnnotation
487
+ }
488
+
489
+ ParamTypeList[@name=ParamList] {
490
+ "(" commaSep<"..."? pattern ~arrow Optional? ~arrow TypeAnnotation? | kw<"this"> TypeAnnotation> ")"
491
+ }
492
+
493
+ @skip {} {
494
+ TemplateString[isolate] {
495
+ templateStart (templateEscape | templateContent | templateExpr)* templateEnd
496
+ }
497
+
498
+ TemplateType[isolate] {
499
+ templateStart (templateContent | templateType)* templateEnd
500
+ }
501
+
502
+ String[isolate] {
503
+ '"' (stringContentDouble | Escape)* ('"' | "\n") |
504
+ "'" (stringContentSingle | Escape)* ("'" | "\n")
505
+ }
506
+
507
+ BlockComment[isolate] { "/*" (blockCommentContent | blockCommentNewline)* blockCommentEnd }
508
+ }
509
+
510
+ templateExpr[@name=Interpolation,isolate] { InterpolationStart expression? InterpolationEnd }
511
+
512
+ templateType[@name=Interpolation,isolate] { InterpolationStart type? InterpolationEnd }
513
+
514
+ @skip {} {
515
+ JSXElement {
516
+ JSXSelfClosingTag |
517
+ (JSXOpenTag | JSXFragmentTag) (JSXText | JSXElement | JSXEscape)* JSXCloseTag
518
+ }
519
+ }
520
+
521
+ JSXSelfClosingTag { JSXStartTag jsxElementName jsxAttribute* JSXSelfCloseEndTag }
522
+
523
+ JSXOpenTag { JSXStartTag jsxElementName jsxAttribute* JSXEndTag }
524
+
525
+ JSXFragmentTag { JSXStartTag JSXEndTag }
526
+
527
+ JSXCloseTag { JSXStartCloseTag jsxElementName? JSXEndTag }
528
+
529
+ jsxElementName {
530
+ JSXIdentifier |
531
+ JSXBuiltin { JSXLowerIdentifier } |
532
+ JSXNamespacedName |
533
+ JSXMemberExpression
534
+ }
535
+
536
+ JSXMemberExpression { (JSXMemberExpression | JSXIdentifier | JSXLowerIdentifier) "." (JSXIdentifier | JSXLowerIdentifier) }
537
+
538
+ JSXNamespacedName { (JSXIdentifier | JSXNamespacedName | JSXLowerIdentifier) ":" (JSXIdentifier | JSXLowerIdentifier) }
539
+
540
+ jsxAttribute {
541
+ JSXSpreadAttribute { "{" "..." expression "}" } |
542
+ JSXAttribute { (JSXIdentifier | JSXNamespacedName | JSXLowerIdentifier) ("=" jsxAttributeValue)? }
543
+ }
544
+
545
+ jsxAttributeValue {
546
+ JSXAttributeValue |
547
+ JSXEscape { "{" expression "}" } |
548
+ JSXElement
549
+ }
550
+
551
+ JSXEscape { "{" "..."? expression "}" }
552
+
553
+ commaSep<content> {
554
+ "" | content ("," content?)*
555
+ }
556
+
557
+ commaSep1<content> {
558
+ content ("," content)*
559
+ }
560
+
561
+ // Keywords
562
+
563
+ kw<term> { @specialize[@name={term}]<identifier, term> }
564
+
565
+ // Contextual keywords
566
+
567
+ ckw<term> { @extend[@name={term}]<identifier, term> }
568
+
569
+ tskw<term> { @extend[@name={term},@dialect=ts]<identifier, term> }
570
+
571
+ async { @extend[@name=async]<identifier, "async"> }
572
+
573
+ // Contextual keyword in property context
574
+
575
+ pkwMod<term> { @extend[@name={term}]<word, term> }
576
+
577
+ tsPkwMod<term> { @extend[@name={term},@dialect=ts]<word, term> }
578
+
579
+ semi { ";" | insertSemi }
580
+
581
+ boolean { @specialize[@name=BooleanLiteral]<identifier, "true" | "false"> }
582
+
583
+ Star { "*" }
584
+
585
+ VariableName { identifier ~arrow }
586
+
587
+ VariableDefinition { identifier ~arrow }
588
+
589
+ TypeDefinition { identifier }
590
+
591
+ TypeName { identifier ~arrow }
592
+
593
+ Label { identifier }
594
+
595
+ PropertyName { word ~propName }
596
+
597
+ PropertyDefinition { word ~propName }
598
+
599
+ PrivatePropertyName { privateIdentifier }
600
+
601
+ PrivatePropertyDefinition { privateIdentifier }
602
+
603
+ Optional { "?" }
604
+
605
+ questionOp[@name=LogicOp] { "?" }
606
+
607
+ unionOp[@name=LogicOp] { "|" }
608
+
609
+ plusMin { ArithOp<"+" | "-"> }
610
+
611
+ intersectionOp[@name=LogicOp] { "&" }
612
+
613
+ @skip { spaces | newline | LineComment | BlockComment }
614
+
615
+ @context trackNewline from "./tokens.js"
616
+
617
+ @external tokens noSemicolon from "./tokens" { noSemi }
618
+
619
+ @external tokens noSemicolonType from "./tokens" { noSemiType }
620
+
621
+ @external tokens operatorToken from "./tokens" {
622
+ incdec[@name=ArithOp],
623
+ incdecPrefix[@name=ArithOp]
624
+ questionDot[@name="?."]
625
+ }
626
+
627
+ @external tokens jsx from "./tokens" { JSXStartTag }
628
+
629
+ @local tokens {
630
+ InterpolationStart[closedBy=InterpolationEnd] { "${" }
631
+ templateEnd { "`" }
632
+ templateEscape[@name=Escape] { Escape }
633
+ @else templateContent
634
+ }
635
+
636
+ @local tokens {
637
+ blockCommentEnd { "*/" }
638
+ blockCommentNewline { "\n" }
639
+ @else blockCommentContent
640
+ }
641
+
642
+ @tokens {
643
+ spaces[@export] { $[\u0009 \u000b\u00a0\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]+ }
644
+ newline[@export] { $[\r\n\u2028\u2029] }
645
+
646
+ LineComment[isolate] { "//" ![\n]* }
647
+
648
+ Hashbang { "#!" ![\n]* }
649
+
650
+ divide[@name=ArithOp] { "/" }
651
+
652
+ @precedence { "/*", LineComment, divide }
653
+
654
+ @precedence { "/*", LineComment, RegExp }
655
+
656
+ identifierChar { @asciiLetter | $[_$\u{a1}-\u{10ffff}] }
657
+
658
+ word { identifierChar (identifierChar | @digit)* }
659
+
660
+ identifier { word }
661
+
662
+ privateIdentifier { "#" word }
663
+
664
+ @precedence { spaces, newline, identifier }
665
+
666
+ @precedence { spaces, newline, JSXIdentifier, JSXLowerIdentifier }
667
+
668
+ @precedence { spaces, newline, word }
669
+
670
+ hex { @digit | $[a-fA-F] }
671
+
672
+ Number {
673
+ (@digit ("_" | @digit)* ("." ("_" | @digit)*)? | "." @digit ("_" | @digit)*)
674
+ (("e" | "E") ("+" | "-")? ("_" | @digit)+)? |
675
+ @digit ("_" | @digit)* "n" |
676
+ "0x" (hex | "_")+ "n"? |
677
+ "0b" $[01_]+ "n"? |
678
+ "0o" $[0-7_]+ "n"?
679
+ }
680
+
681
+ @precedence { Number "." }
682
+
683
+ Escape {
684
+ "\\" ("x" hex hex | "u" ("{" hex+ "}" | hex hex hex hex) | ![xu])
685
+ }
686
+
687
+ stringContentSingle { ![\\\n']+ }
688
+
689
+ stringContentDouble { ![\\\n"]+ }
690
+
691
+ templateStart { "`" }
692
+
693
+ InterpolationEnd[openedBy=InterpolationStart] { "}" }
694
+
695
+ ArithOp<expr> { expr }
696
+ LogicOp<expr> { expr }
697
+ BitOp<expr> { expr }
698
+ CompareOp<expr> { expr }
699
+ UpdateOp<expr> { expr }
700
+
701
+ @precedence { "*", ArithOp }
702
+
703
+ RegExp[isolate] { "/" (![/\\\n[] | "\\" ![\n] | "[" (![\n\\\]] | "\\" ![\n])* "]")+ ("/" $[dgimsuvy]*)? }
704
+
705
+ LessThan[@name=CompareOp] { "<" }
706
+
707
+ "="[@name=Equals]
708
+ "..."[@name=Spread]
709
+ "=>"[@name=Arrow]
710
+
711
+ "(" ")" "[" "]" "{" "}" "<" ">"
712
+
713
+ "." "," ";" ":" "@"
714
+
715
+ JSXIdentifier { $[A-Z_$\u{a1}-\u{10ffff}] (identifierChar | @digit | "-")* }
716
+ JSXLowerIdentifier[@name=JSXIdentifier] { $[a-z] (identifierChar | @digit | "-")* }
717
+
718
+ JSXAttributeValue { '"' !["]* '"' | "'" ![']* "'" }
719
+
720
+ JSXStartCloseTag { "</" }
721
+
722
+ JSXEndTag { ">" }
723
+
724
+ JSXSelfCloseEndTag { "/>" }
725
+
726
+ JSXText { ![<{]+ }
727
+
728
+ tsAngleOpen[@dialect=ts,@name="<"] { "<" }
729
+ }
730
+
731
+ @external tokens insertSemicolon from "./tokens" { insertSemi }
732
+
733
+ @external propSource jsHighlight from "./highlight"
734
+
735
+ @detectDelim