@hydranium/cli 1.0.0-next.38 → 1.0.0-next.381

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 (339) hide show
  1. package/README.md +102 -204
  2. package/bin/hydranium-cli.js +13 -0
  3. package/heap-analysis/heap/core/load.mjs +2 -2
  4. package/heap-analysis/heap/langium/langium.classifier.mjs +22 -11
  5. package/lib/cli-version.js.map +1 -1
  6. package/lib/cli.js +7 -2
  7. package/lib/cli.js.map +1 -1
  8. package/lib/commands/analyze-heap-args.d.ts.map +1 -1
  9. package/lib/commands/analyze-heap-args.js +1 -2
  10. package/lib/commands/analyze-heap-args.js.map +1 -1
  11. package/lib/commands/analyze-heap.d.ts +3 -0
  12. package/lib/commands/analyze-heap.d.ts.map +1 -1
  13. package/lib/commands/analyze-heap.js +2 -1
  14. package/lib/commands/analyze-heap.js.map +1 -1
  15. package/lib/commands/ast-ground-truth-args.d.ts +3 -2
  16. package/lib/commands/ast-ground-truth-args.d.ts.map +1 -1
  17. package/lib/commands/ast-ground-truth-args.js +11 -9
  18. package/lib/commands/ast-ground-truth-args.js.map +1 -1
  19. package/lib/commands/ast-ground-truth-driver.js +4 -2
  20. package/lib/commands/ast-ground-truth-driver.js.map +1 -1
  21. package/lib/commands/ast-ground-truth.js +1 -1
  22. package/lib/commands/ast-ground-truth.js.map +1 -1
  23. package/lib/commands/client-session.d.ts +17 -0
  24. package/lib/commands/client-session.d.ts.map +1 -0
  25. package/lib/commands/client-session.js +27 -0
  26. package/lib/commands/client-session.js.map +1 -0
  27. package/lib/commands/create-args.d.ts +17 -0
  28. package/lib/commands/create-args.d.ts.map +1 -0
  29. package/lib/commands/create-args.js +53 -0
  30. package/lib/commands/create-args.js.map +1 -0
  31. package/lib/commands/create.d.ts +38 -0
  32. package/lib/commands/create.d.ts.map +1 -0
  33. package/lib/commands/create.js +43 -0
  34. package/lib/commands/create.js.map +1 -0
  35. package/lib/commands/delete-args.d.ts +17 -0
  36. package/lib/commands/delete-args.d.ts.map +1 -0
  37. package/lib/commands/delete-args.js +49 -0
  38. package/lib/commands/delete-args.js.map +1 -0
  39. package/lib/commands/delete.d.ts +30 -0
  40. package/lib/commands/delete.d.ts.map +1 -0
  41. package/lib/commands/delete.js +32 -0
  42. package/lib/commands/delete.js.map +1 -0
  43. package/lib/commands/generate-ast-builder.d.ts.map +1 -1
  44. package/lib/commands/generate-ast-builder.js +1 -10
  45. package/lib/commands/generate-ast-builder.js.map +1 -1
  46. package/lib/commands/generate-languages.d.ts +35 -0
  47. package/lib/commands/generate-languages.d.ts.map +1 -0
  48. package/lib/commands/generate-languages.js +105 -0
  49. package/lib/commands/generate-languages.js.map +1 -0
  50. package/lib/commands/generate-transfer-builder.d.ts +33 -0
  51. package/lib/commands/generate-transfer-builder.d.ts.map +1 -0
  52. package/lib/commands/generate-transfer-builder.js +86 -0
  53. package/lib/commands/generate-transfer-builder.js.map +1 -0
  54. package/lib/commands/generate-transfer-model-args.d.ts.map +1 -1
  55. package/lib/commands/generate-transfer-model-args.js +20 -5
  56. package/lib/commands/generate-transfer-model-args.js.map +1 -1
  57. package/lib/commands/generate-transfer-model-config.d.ts.map +1 -1
  58. package/lib/commands/generate-transfer-model-config.js +8 -3
  59. package/lib/commands/generate-transfer-model-config.js.map +1 -1
  60. package/lib/commands/generate-transfer-model.d.ts +40 -9
  61. package/lib/commands/generate-transfer-model.d.ts.map +1 -1
  62. package/lib/commands/generate-transfer-model.js +219 -67
  63. package/lib/commands/generate-transfer-model.js.map +1 -1
  64. package/lib/commands/generated-module-path.d.ts +16 -0
  65. package/lib/commands/generated-module-path.d.ts.map +1 -0
  66. package/lib/commands/generated-module-path.js +21 -0
  67. package/lib/commands/generated-module-path.js.map +1 -0
  68. package/lib/commands/harness-args.d.ts +44 -42
  69. package/lib/commands/harness-args.d.ts.map +1 -1
  70. package/lib/commands/harness-args.js +109 -27
  71. package/lib/commands/harness-args.js.map +1 -1
  72. package/lib/commands/headless-harness.d.ts +37 -20
  73. package/lib/commands/headless-harness.d.ts.map +1 -1
  74. package/lib/commands/headless-harness.js +71 -19
  75. package/lib/commands/headless-harness.js.map +1 -1
  76. package/lib/commands/init-args.d.ts +2 -0
  77. package/lib/commands/init-args.d.ts.map +1 -1
  78. package/lib/commands/init-args.js +74 -31
  79. package/lib/commands/init-args.js.map +1 -1
  80. package/lib/commands/init-hosts.d.ts +24 -0
  81. package/lib/commands/init-hosts.d.ts.map +1 -0
  82. package/lib/commands/init-hosts.js +37 -0
  83. package/lib/commands/init-hosts.js.map +1 -0
  84. package/lib/commands/init-prompt.d.ts +3 -3
  85. package/lib/commands/init-prompt.d.ts.map +1 -1
  86. package/lib/commands/init-prompt.js +4 -5
  87. package/lib/commands/init-prompt.js.map +1 -1
  88. package/lib/commands/init-templates.d.ts +26 -14
  89. package/lib/commands/init-templates.d.ts.map +1 -1
  90. package/lib/commands/init-templates.js +2989 -746
  91. package/lib/commands/init-templates.js.map +1 -1
  92. package/lib/commands/init-wizard.d.ts +3 -0
  93. package/lib/commands/init-wizard.d.ts.map +1 -1
  94. package/lib/commands/init-wizard.js +46 -31
  95. package/lib/commands/init-wizard.js.map +1 -1
  96. package/lib/commands/init-workspace.d.ts +13 -11
  97. package/lib/commands/init-workspace.d.ts.map +1 -1
  98. package/lib/commands/init-workspace.js +21 -7
  99. package/lib/commands/init-workspace.js.map +1 -1
  100. package/lib/commands/init.d.ts +58 -22
  101. package/lib/commands/init.d.ts.map +1 -1
  102. package/lib/commands/init.js +206 -48
  103. package/lib/commands/init.js.map +1 -1
  104. package/lib/commands/kebab.d.ts +15 -0
  105. package/lib/commands/kebab.d.ts.map +1 -0
  106. package/lib/commands/kebab.js +17 -0
  107. package/lib/commands/kebab.js.map +1 -0
  108. package/lib/commands/lint-grammar-args.d.ts +3 -2
  109. package/lib/commands/lint-grammar-args.d.ts.map +1 -1
  110. package/lib/commands/lint-grammar-args.js +13 -10
  111. package/lib/commands/lint-grammar-args.js.map +1 -1
  112. package/lib/commands/lint-grammar-driver.js +2 -1
  113. package/lib/commands/lint-grammar-driver.js.map +1 -1
  114. package/lib/commands/lint-grammar-report.js.map +1 -1
  115. package/lib/commands/lint-grammar.js +1 -1
  116. package/lib/commands/lint-grammar.js.map +1 -1
  117. package/lib/commands/measure-memory-args.d.ts +3 -2
  118. package/lib/commands/measure-memory-args.d.ts.map +1 -1
  119. package/lib/commands/measure-memory-args.js +22 -11
  120. package/lib/commands/measure-memory-args.js.map +1 -1
  121. package/lib/commands/measure-memory-driver.js +5 -3
  122. package/lib/commands/measure-memory-driver.js.map +1 -1
  123. package/lib/commands/measure-memory.js +1 -1
  124. package/lib/commands/measure-memory.js.map +1 -1
  125. package/lib/commands/model-docs-args.d.ts +4 -3
  126. package/lib/commands/model-docs-args.d.ts.map +1 -1
  127. package/lib/commands/model-docs-args.js +12 -10
  128. package/lib/commands/model-docs-args.js.map +1 -1
  129. package/lib/commands/model-docs-driver.js +2 -1
  130. package/lib/commands/model-docs-driver.js.map +1 -1
  131. package/lib/commands/model-docs.js +1 -1
  132. package/lib/commands/model-docs.js.map +1 -1
  133. package/lib/commands/projects-args.d.ts.map +1 -1
  134. package/lib/commands/projects-args.js +5 -5
  135. package/lib/commands/projects-args.js.map +1 -1
  136. package/lib/commands/projects.d.ts +3 -4
  137. package/lib/commands/projects.d.ts.map +1 -1
  138. package/lib/commands/projects.js +2 -2
  139. package/lib/commands/projects.js.map +1 -1
  140. package/lib/commands/query-args.d.ts.map +1 -1
  141. package/lib/commands/query-args.js +6 -5
  142. package/lib/commands/query-args.js.map +1 -1
  143. package/lib/commands/query.d.ts +6 -5
  144. package/lib/commands/query.d.ts.map +1 -1
  145. package/lib/commands/query.js +5 -4
  146. package/lib/commands/query.js.map +1 -1
  147. package/lib/commands/reflect-args.d.ts +3 -2
  148. package/lib/commands/reflect-args.d.ts.map +1 -1
  149. package/lib/commands/reflect-args.js +13 -10
  150. package/lib/commands/reflect-args.js.map +1 -1
  151. package/lib/commands/reflect-driver.js +2 -1
  152. package/lib/commands/reflect-driver.js.map +1 -1
  153. package/lib/commands/reflect-report.js.map +1 -1
  154. package/lib/commands/reflect.js +1 -1
  155. package/lib/commands/reflect.js.map +1 -1
  156. package/lib/commands/save-args.d.ts.map +1 -1
  157. package/lib/commands/save-args.js +7 -4
  158. package/lib/commands/save-args.js.map +1 -1
  159. package/lib/commands/save.d.ts +8 -4
  160. package/lib/commands/save.d.ts.map +1 -1
  161. package/lib/commands/save.js +12 -23
  162. package/lib/commands/save.js.map +1 -1
  163. package/lib/commands/validate-args.d.ts +3 -2
  164. package/lib/commands/validate-args.d.ts.map +1 -1
  165. package/lib/commands/validate-args.js +13 -10
  166. package/lib/commands/validate-args.js.map +1 -1
  167. package/lib/commands/validate-driver.js +2 -1
  168. package/lib/commands/validate-driver.js.map +1 -1
  169. package/lib/commands/validate-report.js.map +1 -1
  170. package/lib/commands/validate.js +1 -1
  171. package/lib/commands/validate.js.map +1 -1
  172. package/lib/commands/watch-args.d.ts.map +1 -1
  173. package/lib/commands/watch-args.js +6 -4
  174. package/lib/commands/watch-args.js.map +1 -1
  175. package/lib/commands/watch.d.ts +3 -4
  176. package/lib/commands/watch.d.ts.map +1 -1
  177. package/lib/commands/watch.js +20 -2
  178. package/lib/commands/watch.js.map +1 -1
  179. package/lib/driver-heap.d.ts +52 -0
  180. package/lib/driver-heap.d.ts.map +1 -0
  181. package/lib/driver-heap.js +51 -0
  182. package/lib/driver-heap.js.map +1 -0
  183. package/lib/index.d.ts +2 -0
  184. package/lib/index.d.ts.map +1 -1
  185. package/lib/index.js +2 -0
  186. package/lib/index.js.map +1 -1
  187. package/lib/log-level.d.ts +21 -11
  188. package/lib/log-level.d.ts.map +1 -1
  189. package/lib/log-level.js +25 -14
  190. package/lib/log-level.js.map +1 -1
  191. package/lib/spawn-data-server.d.ts +9 -4
  192. package/lib/spawn-data-server.d.ts.map +1 -1
  193. package/lib/spawn-data-server.js +5 -4
  194. package/lib/spawn-data-server.js.map +1 -1
  195. package/lib/stderr-connection-logger.d.ts +12 -0
  196. package/lib/stderr-connection-logger.d.ts.map +1 -0
  197. package/lib/stderr-connection-logger.js +16 -0
  198. package/lib/stderr-connection-logger.js.map +1 -0
  199. package/lib/testing/echo-server.js +9 -1
  200. package/lib/testing/echo-server.js.map +1 -1
  201. package/package.json +90 -39
  202. package/src/cli.ts +7 -2
  203. package/src/commands/analyze-heap-args.ts +1 -2
  204. package/src/commands/analyze-heap.ts +4 -1
  205. package/src/commands/ast-ground-truth-args.ts +15 -12
  206. package/src/commands/ast-ground-truth-driver.ts +4 -2
  207. package/src/commands/ast-ground-truth.ts +1 -1
  208. package/src/commands/client-session.ts +33 -0
  209. package/src/commands/create-args.ts +68 -0
  210. package/src/commands/create.ts +83 -0
  211. package/src/commands/delete-args.ts +64 -0
  212. package/src/commands/delete.ts +61 -0
  213. package/src/commands/generate-ast-builder.ts +1 -11
  214. package/src/commands/generate-languages.ts +132 -0
  215. package/src/commands/generate-transfer-builder.ts +101 -0
  216. package/src/commands/generate-transfer-model-args.ts +20 -5
  217. package/src/commands/generate-transfer-model-config.ts +8 -3
  218. package/src/commands/generate-transfer-model.ts +291 -65
  219. package/src/commands/generated-module-path.ts +22 -0
  220. package/src/commands/harness-args.ts +99 -31
  221. package/src/commands/headless-harness.ts +89 -28
  222. package/src/commands/init-args.ts +76 -31
  223. package/src/commands/init-hosts.ts +51 -0
  224. package/src/commands/init-prompt.ts +5 -6
  225. package/src/commands/init-templates.ts +3161 -759
  226. package/src/commands/init-wizard.ts +55 -31
  227. package/src/commands/init-workspace.ts +31 -16
  228. package/src/commands/init.ts +266 -63
  229. package/src/commands/kebab.ts +17 -0
  230. package/src/commands/lint-grammar-args.ts +17 -13
  231. package/src/commands/lint-grammar-driver.ts +2 -1
  232. package/src/commands/lint-grammar.ts +1 -1
  233. package/src/commands/measure-memory-args.ts +27 -14
  234. package/src/commands/measure-memory-driver.ts +5 -3
  235. package/src/commands/measure-memory.ts +1 -1
  236. package/src/commands/model-docs-args.ts +16 -13
  237. package/src/commands/model-docs-driver.ts +2 -1
  238. package/src/commands/model-docs.ts +1 -1
  239. package/src/commands/projects-args.ts +5 -4
  240. package/src/commands/projects.ts +4 -6
  241. package/src/commands/query-args.ts +6 -4
  242. package/src/commands/query.ts +9 -9
  243. package/src/commands/reflect-args.ts +17 -13
  244. package/src/commands/reflect-driver.ts +2 -1
  245. package/src/commands/reflect.ts +1 -1
  246. package/src/commands/save-args.ts +7 -3
  247. package/src/commands/save.ts +24 -27
  248. package/src/commands/validate-args.ts +17 -13
  249. package/src/commands/validate-driver.ts +2 -1
  250. package/src/commands/validate.ts +1 -1
  251. package/src/commands/watch-args.ts +6 -3
  252. package/src/commands/watch.ts +28 -7
  253. package/src/driver-heap.ts +65 -0
  254. package/src/index.ts +2 -0
  255. package/src/log-level.ts +42 -14
  256. package/src/spawn-data-server.ts +17 -5
  257. package/src/stderr-connection-logger.ts +18 -0
  258. package/src/testing/echo-server.ts +11 -2
  259. package/templates/client/gitignore +3 -0
  260. package/templates/client/src/__GRAMMAR_ID__-diagram-module.ts +82 -0
  261. package/templates/editorconfig +15 -0
  262. package/templates/gitignore +1 -0
  263. package/templates/host-browser/esbuild.mjs +82 -0
  264. package/templates/host-browser/gitignore +4 -0
  265. package/templates/host-browser/hydranium-mark.svg +40 -0
  266. package/templates/host-browser/index.html +287 -0
  267. package/templates/host-browser/playwright.config.mts +24 -0
  268. package/templates/host-browser/src/data-status.ts +15 -0
  269. package/templates/host-browser/src/diagram-save.ts +60 -0
  270. package/templates/host-browser/src/diagram.ts +118 -0
  271. package/templates/host-browser/src/editor.ts +102 -0
  272. package/templates/host-browser/src/log.ts +14 -0
  273. package/templates/host-browser/src/monaco-editor-core-worker.d.ts +7 -0
  274. package/templates/host-browser/src/monaco-editor-worker.ts +10 -0
  275. package/templates/host-browser/src/posix-path-shim.ts +23 -0
  276. package/templates/host-browser/src/shown-file.ts +61 -0
  277. package/templates/host-browser/src/workspace.ts +5 -0
  278. package/templates/host-browser/tsconfig.e2e.json +16 -0
  279. package/templates/host-browser/tsconfig.page.json +16 -0
  280. package/templates/host-browser/tsconfig.worker.json +16 -0
  281. package/templates/host-theia-browser/esbuild.mjs +24 -0
  282. package/templates/host-theia-browser/gitignore +9 -0
  283. package/templates/host-theia-browser/playwright.config.mts +42 -0
  284. package/templates/host-theia-browser/start.mjs +50 -0
  285. package/templates/host-theia-browser/tsconfig.e2e.json +16 -0
  286. package/templates/host-theia-electron/esbuild.mjs +27 -0
  287. package/templates/host-theia-electron/gitignore +8 -0
  288. package/templates/host-theia-electron/playwright.config.mts +12 -0
  289. package/templates/host-theia-electron/start.mjs +47 -0
  290. package/templates/host-theia-electron/tsconfig.e2e.json +16 -0
  291. package/templates/host-vscode/esbuild.mjs +38 -0
  292. package/templates/host-vscode/gitignore +7 -0
  293. package/templates/host-vscode/playwright.config.mts +14 -0
  294. package/templates/host-vscode/src/__GRAMMAR_ID__-diagram-editor.ts +19 -0
  295. package/templates/host-vscode/src/show-model-command.ts +24 -0
  296. package/templates/host-vscode/src/webview/__GRAMMAR_ID__-diagram.ts +18 -0
  297. package/templates/host-vscode/src/webview/diagram.css +40 -0
  298. package/templates/host-vscode/start.mjs +22 -0
  299. package/templates/host-vscode/test/install-vscode.mts +21 -0
  300. package/templates/host-vscode/test/vscode-version.mts +10 -0
  301. package/templates/host-vscode/tsconfig.e2e.json +17 -0
  302. package/templates/host-vscode/tsconfig.json +19 -0
  303. package/templates/host-vscode/tsconfig.webview.json +17 -0
  304. package/templates/oxlintrc.json +4 -0
  305. package/templates/protocol/gitignore +3 -0
  306. package/templates/protocol/src/__GRAMMAR_ID__-diagram-types.ts +47 -0
  307. package/templates/server/gitignore +6 -0
  308. package/templates/server/src/glsp/__GRAMMAR_ID__/create-node-operation-handler.ts +62 -0
  309. package/templates/server/src/glsp/__GRAMMAR_ID__/delete-operation-handler.ts +63 -0
  310. package/templates/server/src/glsp/__GRAMMAR_ID__/gmodel-factory.ts +144 -0
  311. package/templates/server/src/glsp/__GRAMMAR_ID__/state.ts +18 -0
  312. package/templates/server/src/glsp/__GRAMMAR_ID__/storage.ts +16 -0
  313. package/templates/server/src/glsp/__GRAMMAR_ID__/submission-handler.ts +24 -0
  314. package/templates/server/src/grammar/common.langium +12 -0
  315. package/templates/server/src/language-server/__GRAMMAR_ID__-serializer.ts +53 -0
  316. package/templates/server/src/language-server/__GRAMMAR_ID__-validation.ts +30 -0
  317. package/templates/server/src/language-server/ast.ts +23 -0
  318. package/templates/server/src/node/services.ts +16 -0
  319. package/templates/server/test/__GRAMMAR_ID__-diagram.test.ts +388 -0
  320. package/templates/server/test/tsconfig.json +4 -0
  321. package/templates/server/tsconfig.test.json +10 -0
  322. package/templates/server/vitest.config.ts +14 -0
  323. package/templates/theia/gitignore +3 -0
  324. package/templates/theia/src/browser/__GRAMMAR_ID__-diagram-frontend-module.ts +65 -0
  325. package/templates/theia/src/browser/__PROJECT_ID__-connection-preload-module.ts +15 -0
  326. package/templates/theia/src/browser/__PROJECT_ID__-data-connection.ts +15 -0
  327. package/templates/theia/src/browser/__PROJECT_ID__-data-port.ts +11 -0
  328. package/templates/theia/src/browser/__PROJECT_ID__-glsp-client-contribution.ts +13 -0
  329. package/templates/theia/src/browser/__PROJECT_ID__-show-model-command.ts +51 -0
  330. package/templates/theia/src/common/__PROJECT_ID__-glsp-contribution.ts +3 -0
  331. package/templates/theia/src/node/__PROJECT_ID__-connection-backend-module.ts +12 -0
  332. package/templates/theia/src/node/__PROJECT_ID__-data-backend-module.ts +15 -0
  333. package/templates/theia/src/node/__PROJECT_ID__-glsp-backend-module.ts +16 -0
  334. package/templates/theia/style/diagram.css +20 -0
  335. package/templates/theia/tsconfig.json +24 -0
  336. package/templates/vscode-servers/gitignore +4 -0
  337. package/templates/vscode-servers/tsconfig.json +19 -0
  338. package/templates/workspace/nodes.__EXTENSION__ +5 -0
  339. package/templates/workspace/references.__EXTENSION__ +2 -0
@@ -9,7 +9,10 @@
9
9
  import * as fs from 'fs';
10
10
  import * as path from 'path';
11
11
  import { emitAstBuilder } from './generate-ast-builder.js';
12
- import { Project, SyntaxKind } from 'ts-morph';
12
+ import { emitLanguages } from './generate-languages.js';
13
+ import { emitTransferBuilder } from './generate-transfer-builder.js';
14
+ import { Project, SyntaxKind, ts } from 'ts-morph';
15
+ import { describeError } from '@hydranium/protocol';
13
16
  const DEFAULT_ELEMENT_TYPE_NAME = 'TransferElement';
14
17
  const DEFAULT_TERMINALS_NAME = 'ModelTerminals';
15
18
  const DEFAULT_REGEN_COMMAND = 'Run the hydranium-cli generate-transfer-model command to regenerate.';
@@ -19,11 +22,20 @@ const DEFAULT_REGEN_COMMAND = 'Run the hydranium-cli generate-transfer-model com
19
22
  * `<LanguageId>Terminals` const then spreads these.
20
23
  */
21
24
  const NAMESPACED_TERMINALS_NAME = 'Terminals';
25
+ /** How often `--watch` polls its input files. */
26
+ const WATCH_POLL_INTERVAL_MS = 250;
22
27
  /**
23
- * Generate once, then re-generate whenever the AST or augmentation file changes,
28
+ * Generate once, then re-generate whenever an input file changes (the AST, the
29
+ * augmentation file, and `module.ts` when a languages file is written),
24
30
  * until `signal` aborts (the CLI wires this to SIGINT). Regeneration is debounced
25
31
  * so an editor's multi-event save fires a single run, and a generation error is
26
32
  * logged without tearing down the watch. Resolves when the signal aborts.
33
+ *
34
+ * Polled by path rather than watched through OS events: langium-cli removes
35
+ * its output directory and writes the files back, which an event watch, Node's
36
+ * and chokidar's alike, stops hearing after the first run. A run that finds an
37
+ * input missing is skipped, since the file's return is a change of its own, so
38
+ * nothing generates from a half-written output.
27
39
  */
28
40
  export function watchTransferModel(options, context) {
29
41
  const runSafely = () => {
@@ -31,23 +43,42 @@ export function watchTransferModel(options, context) {
31
43
  generateTransferModel(options);
32
44
  }
33
45
  catch (error) {
34
- console.error(`Transfer-model generation failed: ${error instanceof Error ? error.message : String(error)}`);
46
+ console.error(`Transfer-model generation failed: ${describeError(error)}`);
35
47
  }
36
48
  };
37
49
  runSafely();
38
- console.log(`Watching ${options.astFile} and ${options.augmentationFile} for changes. Press Ctrl-C to stop.`);
50
+ // A grammar's language id and extensions reach only `module.ts`, so the
51
+ // languages module would go stale without it.
52
+ const watched = [
53
+ options.astFile,
54
+ options.augmentationFile,
55
+ ...(options.languagesFile !== undefined ? [languagesModuleFile(options)] : [])
56
+ ];
39
57
  let timer;
40
- const scheduleRerun = () => {
58
+ const rerun = () => {
59
+ if (watched.every(file => fs.existsSync(file))) {
60
+ runSafely();
61
+ }
62
+ };
63
+ // The poll reports every stat it takes; a replaced file has a new inode, a
64
+ // rewritten one a new mtime, a removed or returning one zeroed stats.
65
+ const onPoll = (current, previous) => {
66
+ if (current.ino === previous.ino && current.mtimeMs === previous.mtimeMs && current.size === previous.size) {
67
+ return;
68
+ }
41
69
  if (timer) {
42
70
  clearTimeout(timer);
43
71
  }
44
- timer = setTimeout(runSafely, 150);
72
+ timer = setTimeout(rerun, 150);
45
73
  };
46
- const watchers = [options.astFile, options.augmentationFile].map(file => fs.watch(file, scheduleRerun));
74
+ for (const file of watched) {
75
+ fs.watchFile(file, { interval: WATCH_POLL_INTERVAL_MS }, onPoll);
76
+ }
77
+ console.log(`Watching ${watched.join(', ')} for changes. Press Ctrl-C to stop.`);
47
78
  return new Promise(resolve => {
48
79
  context.signal.addEventListener('abort', () => {
49
- for (const watcher of watchers) {
50
- watcher.close();
80
+ for (const file of watched) {
81
+ fs.unwatchFile(file, onPoll);
51
82
  }
52
83
  if (timer) {
53
84
  clearTimeout(timer);
@@ -56,6 +87,10 @@ export function watchTransferModel(options, context) {
56
87
  }, { once: true });
57
88
  });
58
89
  }
90
+ /** The langium-cli `module.ts` beside the AST file, which the languages module is read from. */
91
+ function languagesModuleFile(options) {
92
+ return path.join(path.dirname(options.astFile), 'module.ts');
93
+ }
59
94
  /** Run the transfer-model generator. */
60
95
  export function generateTransferModel(options) {
61
96
  const elementTypeName = options.elementTypeName ?? DEFAULT_ELEMENT_TYPE_NAME;
@@ -93,9 +128,13 @@ export function generateTransferModel(options) {
93
128
  if (skipTypeAliases.has(name)) {
94
129
  continue;
95
130
  }
96
- const typeText = alias.getTypeNode()?.getText();
97
- if (typeText) {
98
- typeAliases.push({ name, definition: mapType(resolveNamespacedStringUnion(astSource, typeText), elementTypeName) });
131
+ const typeNode = alias.getTypeNode();
132
+ if (typeNode) {
133
+ typeAliases.push({
134
+ name,
135
+ definition: mapType(resolveNamespacedStringUnion(astSource, typeNode.getText()), elementTypeName),
136
+ members: unionMembers(typeNode).map(member => mapType(member, elementTypeName))
137
+ });
99
138
  }
100
139
  }
101
140
  // 5. Parse augmentations from the consumer's `declare module` blocks.
@@ -109,7 +148,6 @@ export function generateTransferModel(options) {
109
148
  // 7. Classify interfaces: abstract (union $type) vs concrete (literal $type).
110
149
  const interfaceNames = [];
111
150
  const abstractTypes = new Set();
112
- const concreteTypes = new Set();
113
151
  for (const name of Object.keys(reflectionTypes)) {
114
152
  const iface = astInterfaces.get(name);
115
153
  if (!iface) {
@@ -121,9 +159,6 @@ export function generateTransferModel(options) {
121
159
  if (typeText.includes('|')) {
122
160
  abstractTypes.add(name);
123
161
  }
124
- else {
125
- concreteTypes.add(name);
126
- }
127
162
  }
128
163
  // 8. Resolve extends-chains. Filter out type-alias supertypes (Langium reflection
129
164
  // includes them for the grammar hierarchy but TypeScript can't extend a union
@@ -158,12 +193,13 @@ export function generateTransferModel(options) {
158
193
  out.push(' readonly $type: string;');
159
194
  out.push('}');
160
195
  out.push('');
161
- // Type constants for concrete types.
196
+ // Langium's per-type constant under the same name, for every reflection type
197
+ // the model emits, abstract ones and unions included.
198
+ const reflectedTypes = Object.keys(reflectionTypes).filter(name => astInterfaces.has(name) || typeAliasNames.has(name));
162
199
  out.push('// --- Type Constants ---');
163
- for (const name of sorted) {
164
- if (concreteTypes.has(name)) {
165
- out.push(`export const ${name}Type = '${name}';`);
166
- }
200
+ for (const name of reflectedTypes) {
201
+ const keys = reflectionTypes[name].properties.map(property => `${property.name}: '${property.name}'`);
202
+ out.push(`export const ${name} = { ${[`$type: '${name}'`, ...keys].join(', ')} } as const;`);
167
203
  }
168
204
  out.push('');
169
205
  // Type aliases.
@@ -173,7 +209,7 @@ export function generateTransferModel(options) {
173
209
  out.push(`export type ${name} = ${definition};`);
174
210
  const literals = extractStringLiterals(definition);
175
211
  if (literals) {
176
- const items = literals.map(l => `'${l}'`).join(', ');
212
+ const items = literals.map(quote).join(', ');
177
213
  out.push(`export const ${name}Values = [${items}] as const;`);
178
214
  }
179
215
  }
@@ -201,7 +237,7 @@ export function generateTransferModel(options) {
201
237
  out.push(` readonly $type: ${typeValue};`);
202
238
  }
203
239
  else {
204
- out.push(` readonly $type: typeof ${name}Type;`);
240
+ out.push(` readonly $type: '${name}';`);
205
241
  }
206
242
  const emitted = new Set(['$type']);
207
243
  for (const prop of iface.getProperties()) {
@@ -257,24 +293,24 @@ export function generateTransferModel(options) {
257
293
  out.push(` return is${elementTypeName}(item) && (${checks});`);
258
294
  }
259
295
  else {
260
- out.push(` return is${elementTypeName}(item) && item.$type === ${name}Type;`);
296
+ out.push(` return is${elementTypeName}(item) && item.$type === '${name}';`);
261
297
  }
262
298
  out.push('}');
263
299
  out.push('');
264
300
  }
265
- for (const { name, definition } of typeAliases) {
301
+ for (const { name, definition, members } of typeAliases) {
266
302
  const literals = extractStringLiterals(definition);
267
303
  if (literals) {
268
- const checks = literals.map(l => `item === '${l}'`).join(' || ');
304
+ const checks = literals.map(l => `item === ${quote(l)}`).join(' || ') || 'false';
269
305
  out.push(`export function is${name}(item: unknown): item is ${name} {`);
270
306
  out.push(` return ${checks};`);
271
307
  out.push('}');
272
308
  out.push('');
273
309
  }
274
310
  else {
275
- // Union (or single) of named members and/or Langium data-type primitives. Each member maps
276
- // to its own check (typeof / instanceof / named-guard) via typeAliasMemberGuard.
277
- const members = definition.split('|').map(s => s.trim());
311
+ // Union (or single) of named members, Langium data-type primitives and the string
312
+ // literals a data-type rule's keywords add beside them. Each member maps to its own
313
+ // check via typeAliasMemberGuard.
278
314
  const checks = members.map(typeAliasMemberGuard).join(' || ');
279
315
  out.push(`export function is${name}(item: unknown): item is ${name} {`);
280
316
  out.push(` return ${checks};`);
@@ -282,6 +318,8 @@ export function generateTransferModel(options) {
282
318
  out.push('');
283
319
  }
284
320
  }
321
+ out.push(...renderTypeMap(languageId, reflectedTypes));
322
+ out.push(...renderReflection(languageId, elementTypeName, reflectedTypes, reflectionTypes));
285
323
  // Coverage check: warn on reflection types not emitted.
286
324
  const processedSet = new Set(sorted);
287
325
  for (const name of Object.keys(reflectionTypes)) {
@@ -310,6 +348,73 @@ export function generateTransferModel(options) {
310
348
  console.warn(`Warning: no '${languageId}AstType' alias in ${options.astFile}; skipping the AST builder.`);
311
349
  }
312
350
  }
351
+ if (options.transferBuilderFile !== undefined) {
352
+ emitTransferBuilder({ outFile: options.transferBuilderFile, transferModelFile: options.outFile, languageId, regenCommand });
353
+ }
354
+ if (options.languagesFile !== undefined) {
355
+ const moduleSource = project.addSourceFileAtPath(languagesModuleFile(options));
356
+ emitLanguages(moduleSource, { outFile: options.languagesFile, regenCommand });
357
+ }
358
+ }
359
+ /**
360
+ * `<LanguageId>TransferTypes`, each `$type` to its interface, so an encoder or a
361
+ * builder can type a node by the grammar the way Langium's `<LanguageId>AstType`
362
+ * does on the AST side.
363
+ */
364
+ function renderTypeMap(languageId, types) {
365
+ return ['// --- Type Map ---', `export type ${languageId}TransferTypes = {`, ...types.map(name => ` ${name}: ${name};`), '};', ''];
366
+ }
367
+ /**
368
+ * `<LanguageId>TransferReflection`, the grammar metadata with the method names
369
+ * Langium's `AstReflection` uses. A plain object with no framework import, so
370
+ * the file stays self-contained, and nothing references it but its importers:
371
+ * the `is` guards test `$type` directly, so a guard never pulls it in. `types`
372
+ * keeps its literal type, which is how the transfer-node builder tells which
373
+ * fields the grammar defaults.
374
+ */
375
+ function renderReflection(languageId, elementTypeName, types, reflectionTypes) {
376
+ const metaData = `${languageId}TransferTypeMetaData`;
377
+ // Index signatures, not `Readonly<Record<…>>`: a grammar type may be named
378
+ // `Record` or `Readonly`, which Langium does not reserve as it does `Object`.
379
+ const out = [
380
+ '// --- Reflection ---',
381
+ `export interface ${metaData} {`,
382
+ ' readonly name: string;',
383
+ ' readonly properties: {',
384
+ ' readonly [name: string]: { readonly name: string; readonly defaultValue?: unknown; readonly optional?: boolean; readonly referenceType?: string };',
385
+ ' };',
386
+ ' readonly superTypes: readonly string[];',
387
+ '}',
388
+ '',
389
+ `export const ${languageId}TransferReflection = {`,
390
+ ' types: {'
391
+ ];
392
+ for (const name of types) {
393
+ const { properties, superTypes } = reflectionTypes[name];
394
+ const propertyEntries = properties.map(property => {
395
+ const fields = [`name: '${property.name}'`];
396
+ if (property.defaultValue !== undefined) {
397
+ fields.push(`defaultValue: ${property.defaultValue}`);
398
+ }
399
+ if (property.optional) {
400
+ fields.push('optional: true');
401
+ }
402
+ if (property.referenceType !== undefined) {
403
+ fields.push(`referenceType: '${property.referenceType}'`);
404
+ }
405
+ return `${property.name}: { ${fields.join(', ')} }`;
406
+ });
407
+ const supers = superTypes.map(superType => `'${superType}'`).join(', ');
408
+ const propertiesText = propertyEntries.length > 0 ? `{ ${propertyEntries.join(', ')} }` : '{}';
409
+ out.push(` ${name}: { name: '${name}', properties: ${propertiesText}, superTypes: [${supers}] },`);
410
+ }
411
+ out.push(` } as const satisfies { readonly [type: string]: ${metaData} },`, '', ' getAllTypes(): string[] {', ' return Object.keys(this.types);', ' },', '',
412
+ // An own-property check, not `types[type] ?? …`: a name the object
413
+ // prototype carries, `toString` say, would read the inherited member and
414
+ // make `isSubtype` throw. `hasOwnProperty.call` rather than `Object.hasOwn`
415
+ // because the adopter's protocol package may target a lib without it.
416
+ ` getTypeMetaData(type: string): ${metaData} {`, ' return Object.prototype.hasOwnProperty.call(this.types, type)', ` ? (this.types as { readonly [type: string]: ${metaData} })[type]`, ' : { name: type, properties: {}, superTypes: [] };', ' },', '', ' isSubtype(subtype: string, supertype: string): boolean {', ' return subtype === supertype || this.getTypeMetaData(subtype).superTypes.some(type => this.isSubtype(type, supertype));', ' },', '', ' getAllSubTypes(type: string): string[] {', ' return this.getAllTypes().filter(candidate => this.isSubtype(candidate, type));', ' },', '', ' isInstance(item: unknown, type: string): boolean {', ` return is${elementTypeName}(item) && this.isSubtype(item.$type, type);`, ' }', '};', '');
417
+ return out;
313
418
  }
314
419
  // ---------------------------------------------------------------------------
315
420
  // AST source parsing helpers
@@ -348,10 +453,11 @@ function findAstReflectionClass(source) {
348
453
  throw new Error('Could not find a class extending AbstractAstReflection in the AST source.');
349
454
  }
350
455
  /**
351
- * Extract `superTypes` for each entry of the reflection class's `types` property
352
- * initializer. We rely on the Langium convention that `X.$type === 'X'`, so a
353
- * supertype expression resolves to the literal type-name string by stripping
354
- * `.$type`.
456
+ * Extract `superTypes` and the grammar properties for each entry of the
457
+ * reflection class's `types` property initializer. We rely on the Langium
458
+ * convention that `X.$type === 'X'` and `X.p === 'p'`, so a type expression
459
+ * resolves to the literal type-name string by stripping `.$type`, and a
460
+ * property's name is its key.
355
461
  */
356
462
  function parseReflectionTypes(reflectionClass) {
357
463
  const result = {};
@@ -372,29 +478,31 @@ function parseReflectionTypes(reflectionClass) {
372
478
  const value = entry.getLastChildByKind(SyntaxKind.ObjectLiteralExpression);
373
479
  const supersProp = value?.getProperty('superTypes');
374
480
  const supersInit = supersProp?.getFirstChildByKind(SyntaxKind.ArrayLiteralExpression);
375
- const superTypes = [];
376
- if (supersInit) {
377
- for (const element of supersInit.getElements()) {
378
- const text = element.getText();
379
- const dotMatch = /^([A-Za-z_$][\w$]*)\.\$type$/.exec(text);
380
- if (dotMatch) {
381
- superTypes.push(dotMatch[1]);
382
- continue;
383
- }
384
- // Bare identifier or quoted string fall-back.
385
- const stringMatch = /^['"](.+)['"]$/.exec(text);
386
- if (stringMatch) {
387
- superTypes.push(stringMatch[1]);
388
- }
389
- else {
390
- superTypes.push(text);
391
- }
392
- }
393
- }
394
- result[name] = { superTypes };
481
+ const superTypes = supersInit?.getElements().map(element => typeNameOf(element.getText())) ?? [];
482
+ result[name] = { superTypes, properties: parseReflectionProperties(value) };
395
483
  }
396
484
  return result;
397
485
  }
486
+ function parseReflectionProperties(entry) {
487
+ const propertiesInit = entry?.getProperty('properties')?.getFirstChildByKind(SyntaxKind.ObjectLiteralExpression);
488
+ const properties = [];
489
+ for (const property of propertiesInit?.getChildrenOfKind(SyntaxKind.PropertyAssignment) ?? []) {
490
+ const meta = property.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);
491
+ const field = (key) => meta?.getProperty(key)?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer()?.getText();
492
+ const referenceType = field('referenceType');
493
+ properties.push({
494
+ name: property.getName(),
495
+ defaultValue: field('defaultValue'),
496
+ optional: field('optional') === 'true',
497
+ referenceType: referenceType === undefined ? undefined : typeNameOf(referenceType)
498
+ });
499
+ }
500
+ return properties;
501
+ }
502
+ /** `X.$type` or a quoted `'X'` to `X`; any other text passes through. */
503
+ function typeNameOf(text) {
504
+ return /^([A-Za-z_$][\w$]*)\.\$type$/.exec(text)?.[1] ?? /^['"](.+)['"]$/.exec(text)?.[1] ?? text;
505
+ }
398
506
  /**
399
507
  * Collect terminal regex literals from the AST file.
400
508
  *
@@ -513,12 +621,16 @@ function mapType(text, elementTypeName) {
513
621
  }
514
622
  /**
515
623
  * Type-guard expression (against an `item: unknown`) for one member of a non-literal type-alias
516
- * union. Covers the full set of Langium data-type primitives: the `typeof`-checkable ones
517
- * (`string`/`number`/`boolean`/`bigint`) use `typeof`; `Date` — the one Langium primitive `typeof`
518
- * reports as `'object'` — uses `instanceof`; any other member is a named type whose generated
519
- * `is<Member>` guard is called.
624
+ * union. A string literal is compared as written, so the escapes Langium wrote stay valid.
625
+ * Covers the full set of Langium data-type primitives. The `typeof`-checkable ones
626
+ * (`string`/`number`/`boolean`/`bigint`) use `typeof`, and `Date`, the one Langium primitive
627
+ * `typeof` reports as `'object'`, uses `instanceof`. Any other member is a named type whose
628
+ * generated `is<Member>` guard is called.
520
629
  */
521
630
  export function typeAliasMemberGuard(member) {
631
+ if (member.startsWith("'") || member.startsWith('"')) {
632
+ return `item === ${member}`;
633
+ }
522
634
  switch (member) {
523
635
  case 'string':
524
636
  case 'number':
@@ -541,10 +653,11 @@ export function typeAliasMemberGuard(member) {
541
653
  * name.
542
654
  *
543
655
  * Each referenced member is inlined and de-duplicated, preserving first-seen
544
- * order. The definition is returned UNCHANGED when it holds no
545
- * namespace-qualified reference (the single-language case) or when any referenced
546
- * member is not a pure string-literal union — passing it through rather than
547
- * emitting a half-resolved union.
656
+ * order; when no member holds a literal, the union is `never`. The definition
657
+ * is returned UNCHANGED when it holds no namespace-qualified reference (the
658
+ * single-language case) or when any referenced member is not a pure
659
+ * string-literal union — passing it through rather than emitting a
660
+ * half-resolved union.
548
661
  */
549
662
  export function resolveNamespacedStringUnion(astSource, definition) {
550
663
  const references = [...definition.matchAll(/\b([A-Za-z_]\w*)\.([A-Za-z_]\w*)\b/g)];
@@ -566,15 +679,54 @@ export function resolveNamespacedStringUnion(astSource, definition) {
566
679
  }
567
680
  }
568
681
  }
569
- return literals.map(literal => `'${literal}'`).join(' | ');
682
+ return literals.length > 0 ? literals.map(quote).join(' | ') : 'never';
570
683
  }
571
- /** Extract string literals from a union definition, or undefined if not pure literals. */
684
+ /**
685
+ * The members of a type-alias union as TypeScript parses them. If a data-type rule groups
686
+ * alternatives in parentheses, the alias Langium generates contains the same group, as in
687
+ * `'a' | ('b' | Keyword)`, so each group is flattened into its members. Splitting the text on
688
+ * `|` breaks such a group and any keyword that contains `|`, such as `'||'`, and the
689
+ * resulting guard does not compile.
690
+ */
691
+ function unionMembers(typeNode) {
692
+ if (typeNode.isKind(SyntaxKind.UnionType)) {
693
+ return typeNode.getTypeNodes().flatMap(member => unionMembers(member));
694
+ }
695
+ if (typeNode.isKind(SyntaxKind.ParenthesizedType)) {
696
+ return unionMembers(typeNode.getTypeNode());
697
+ }
698
+ return [typeNode.getText()];
699
+ }
700
+ /**
701
+ * The values of a union of string literals, or undefined when the definition holds anything
702
+ * else. The TypeScript scanner decodes each literal, so a keyword with a quote in it reads the
703
+ * same whichever quotes and escapes Langium wrote it with. Langium writes the keyword names of
704
+ * a language without keywords as `never`, which adds no value.
705
+ */
572
706
  function extractStringLiterals(definition) {
573
- const stringLiteral = '(?:\'[^\']*\'|"[^"]*")';
574
- if (!new RegExp(`^\\|?\\s*${stringLiteral}(\\s*\\|\\s*${stringLiteral})*$`).test(definition.trim())) {
575
- return undefined;
707
+ const scanner = ts.createScanner(ts.ScriptTarget.Latest, true, ts.LanguageVariant.Standard, definition);
708
+ const literals = [];
709
+ let members = 0;
710
+ for (let token = scanner.scan(); token !== ts.SyntaxKind.EndOfFileToken; token = scanner.scan()) {
711
+ if (token === ts.SyntaxKind.StringLiteral) {
712
+ literals.push(scanner.getTokenValue());
713
+ members++;
714
+ }
715
+ else if (token === ts.SyntaxKind.NeverKeyword) {
716
+ members++;
717
+ }
718
+ else if (token !== ts.SyntaxKind.BarToken) {
719
+ return undefined;
720
+ }
576
721
  }
577
- return [...definition.matchAll(/'([^']*)'|"([^"]*)"/g)].map(m => m[1] ?? m[2]);
722
+ return members > 0 ? literals : undefined;
723
+ }
724
+ /**
725
+ * `value` as a string literal in the single quotes the generated file uses. A keyword can
726
+ * contain a quote or a backslash, and either one ends or escapes the literal unless escaped.
727
+ */
728
+ function quote(value) {
729
+ return `'${value.replaceAll('\\', '\\\\').replaceAll("'", "\\'")}'`;
578
730
  }
579
731
  function topologicalSort(names, getDeps) {
580
732
  const visited = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-transfer-model.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * Module specifier for `targetFile` as seen from the generated module
11
+ * `outFile`'s own directory. Emitted with a `.js` extension and posix
12
+ * separators because the output is ESM TypeScript, where the specifier names
13
+ * the compiled sibling.
14
+ */
15
+ export declare function relativeImportPath(outFile: string, targetFile: string): string;
16
+ //# sourceMappingURL=generated-module-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-module-path.d.ts","sourceRoot":"","sources":["../../src/commands/generated-module-path.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI9E"}
@@ -0,0 +1,21 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import * as path from 'path';
10
+ /**
11
+ * Module specifier for `targetFile` as seen from the generated module
12
+ * `outFile`'s own directory. Emitted with a `.js` extension and posix
13
+ * separators because the output is ESM TypeScript, where the specifier names
14
+ * the compiled sibling.
15
+ */
16
+ export function relativeImportPath(outFile, targetFile) {
17
+ const relative = path.relative(path.dirname(path.resolve(outFile)), path.resolve(targetFile));
18
+ const posix = relative.split(path.sep).join('/').replace(/\.ts$/, '.js');
19
+ return posix.startsWith('.') ? posix : `./${posix}`;
20
+ }
21
+ //# sourceMappingURL=generated-module-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-module-path.js","sourceRoot":"","sources":["../../src/commands/generated-module-path.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,UAAkB;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;AACvD,CAAC"}