@hydranium/cli 1.0.0-next.40 → 1.0.0-next.400
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.
- package/README.md +102 -204
- package/bin/hydranium-cli.js +13 -0
- package/heap-analysis/heap/core/load.mjs +2 -2
- package/heap-analysis/heap/langium/langium.classifier.mjs +22 -11
- package/lib/cli-version.js.map +1 -1
- package/lib/cli.js +7 -2
- package/lib/cli.js.map +1 -1
- package/lib/commands/analyze-heap-args.d.ts.map +1 -1
- package/lib/commands/analyze-heap-args.js +1 -2
- package/lib/commands/analyze-heap-args.js.map +1 -1
- package/lib/commands/analyze-heap.d.ts +3 -0
- package/lib/commands/analyze-heap.d.ts.map +1 -1
- package/lib/commands/analyze-heap.js +2 -1
- package/lib/commands/analyze-heap.js.map +1 -1
- package/lib/commands/ast-ground-truth-args.d.ts +3 -2
- package/lib/commands/ast-ground-truth-args.d.ts.map +1 -1
- package/lib/commands/ast-ground-truth-args.js +11 -9
- package/lib/commands/ast-ground-truth-args.js.map +1 -1
- package/lib/commands/ast-ground-truth-driver.js +4 -2
- package/lib/commands/ast-ground-truth-driver.js.map +1 -1
- package/lib/commands/ast-ground-truth.js +1 -1
- package/lib/commands/ast-ground-truth.js.map +1 -1
- package/lib/commands/client-session.d.ts +17 -0
- package/lib/commands/client-session.d.ts.map +1 -0
- package/lib/commands/client-session.js +27 -0
- package/lib/commands/client-session.js.map +1 -0
- package/lib/commands/create-args.d.ts +17 -0
- package/lib/commands/create-args.d.ts.map +1 -0
- package/lib/commands/create-args.js +53 -0
- package/lib/commands/create-args.js.map +1 -0
- package/lib/commands/create.d.ts +38 -0
- package/lib/commands/create.d.ts.map +1 -0
- package/lib/commands/create.js +43 -0
- package/lib/commands/create.js.map +1 -0
- package/lib/commands/delete-args.d.ts +17 -0
- package/lib/commands/delete-args.d.ts.map +1 -0
- package/lib/commands/delete-args.js +49 -0
- package/lib/commands/delete-args.js.map +1 -0
- package/lib/commands/delete.d.ts +30 -0
- package/lib/commands/delete.d.ts.map +1 -0
- package/lib/commands/delete.js +32 -0
- package/lib/commands/delete.js.map +1 -0
- package/lib/commands/generate-ast-builder.d.ts.map +1 -1
- package/lib/commands/generate-ast-builder.js +1 -10
- package/lib/commands/generate-ast-builder.js.map +1 -1
- package/lib/commands/generate-languages.d.ts +35 -0
- package/lib/commands/generate-languages.d.ts.map +1 -0
- package/lib/commands/generate-languages.js +105 -0
- package/lib/commands/generate-languages.js.map +1 -0
- package/lib/commands/generate-transfer-builder.d.ts +33 -0
- package/lib/commands/generate-transfer-builder.d.ts.map +1 -0
- package/lib/commands/generate-transfer-builder.js +86 -0
- package/lib/commands/generate-transfer-builder.js.map +1 -0
- package/lib/commands/generate-transfer-model-args.d.ts.map +1 -1
- package/lib/commands/generate-transfer-model-args.js +20 -5
- package/lib/commands/generate-transfer-model-args.js.map +1 -1
- package/lib/commands/generate-transfer-model-config.d.ts.map +1 -1
- package/lib/commands/generate-transfer-model-config.js +8 -3
- package/lib/commands/generate-transfer-model-config.js.map +1 -1
- package/lib/commands/generate-transfer-model.d.ts +40 -9
- package/lib/commands/generate-transfer-model.d.ts.map +1 -1
- package/lib/commands/generate-transfer-model.js +219 -67
- package/lib/commands/generate-transfer-model.js.map +1 -1
- package/lib/commands/generated-module-path.d.ts +16 -0
- package/lib/commands/generated-module-path.d.ts.map +1 -0
- package/lib/commands/generated-module-path.js +21 -0
- package/lib/commands/generated-module-path.js.map +1 -0
- package/lib/commands/harness-args.d.ts +44 -42
- package/lib/commands/harness-args.d.ts.map +1 -1
- package/lib/commands/harness-args.js +109 -27
- package/lib/commands/harness-args.js.map +1 -1
- package/lib/commands/headless-harness.d.ts +37 -20
- package/lib/commands/headless-harness.d.ts.map +1 -1
- package/lib/commands/headless-harness.js +71 -19
- package/lib/commands/headless-harness.js.map +1 -1
- package/lib/commands/init-args.d.ts +2 -0
- package/lib/commands/init-args.d.ts.map +1 -1
- package/lib/commands/init-args.js +74 -31
- package/lib/commands/init-args.js.map +1 -1
- package/lib/commands/init-hosts.d.ts +24 -0
- package/lib/commands/init-hosts.d.ts.map +1 -0
- package/lib/commands/init-hosts.js +37 -0
- package/lib/commands/init-hosts.js.map +1 -0
- package/lib/commands/init-prompt.d.ts +3 -3
- package/lib/commands/init-prompt.d.ts.map +1 -1
- package/lib/commands/init-prompt.js +4 -5
- package/lib/commands/init-prompt.js.map +1 -1
- package/lib/commands/init-templates.d.ts +20 -14
- package/lib/commands/init-templates.d.ts.map +1 -1
- package/lib/commands/init-templates.js +2983 -752
- package/lib/commands/init-templates.js.map +1 -1
- package/lib/commands/init-wizard.d.ts +3 -0
- package/lib/commands/init-wizard.d.ts.map +1 -1
- package/lib/commands/init-wizard.js +46 -31
- package/lib/commands/init-wizard.js.map +1 -1
- package/lib/commands/init-workspace.d.ts +13 -11
- package/lib/commands/init-workspace.d.ts.map +1 -1
- package/lib/commands/init-workspace.js +21 -7
- package/lib/commands/init-workspace.js.map +1 -1
- package/lib/commands/init.d.ts +58 -22
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +203 -48
- package/lib/commands/init.js.map +1 -1
- package/lib/commands/kebab.d.ts +15 -0
- package/lib/commands/kebab.d.ts.map +1 -0
- package/lib/commands/kebab.js +17 -0
- package/lib/commands/kebab.js.map +1 -0
- package/lib/commands/lint-grammar-args.d.ts +3 -2
- package/lib/commands/lint-grammar-args.d.ts.map +1 -1
- package/lib/commands/lint-grammar-args.js +13 -10
- package/lib/commands/lint-grammar-args.js.map +1 -1
- package/lib/commands/lint-grammar-driver.js +2 -1
- package/lib/commands/lint-grammar-driver.js.map +1 -1
- package/lib/commands/lint-grammar-report.js.map +1 -1
- package/lib/commands/lint-grammar.js +1 -1
- package/lib/commands/lint-grammar.js.map +1 -1
- package/lib/commands/measure-memory-args.d.ts +3 -2
- package/lib/commands/measure-memory-args.d.ts.map +1 -1
- package/lib/commands/measure-memory-args.js +22 -11
- package/lib/commands/measure-memory-args.js.map +1 -1
- package/lib/commands/measure-memory-driver.js +5 -3
- package/lib/commands/measure-memory-driver.js.map +1 -1
- package/lib/commands/measure-memory.js +1 -1
- package/lib/commands/measure-memory.js.map +1 -1
- package/lib/commands/model-docs-args.d.ts +4 -3
- package/lib/commands/model-docs-args.d.ts.map +1 -1
- package/lib/commands/model-docs-args.js +12 -10
- package/lib/commands/model-docs-args.js.map +1 -1
- package/lib/commands/model-docs-driver.js +2 -1
- package/lib/commands/model-docs-driver.js.map +1 -1
- package/lib/commands/model-docs.js +1 -1
- package/lib/commands/model-docs.js.map +1 -1
- package/lib/commands/projects-args.d.ts.map +1 -1
- package/lib/commands/projects-args.js +5 -5
- package/lib/commands/projects-args.js.map +1 -1
- package/lib/commands/projects.d.ts +3 -4
- package/lib/commands/projects.d.ts.map +1 -1
- package/lib/commands/projects.js +2 -2
- package/lib/commands/projects.js.map +1 -1
- package/lib/commands/query-args.d.ts.map +1 -1
- package/lib/commands/query-args.js +6 -5
- package/lib/commands/query-args.js.map +1 -1
- package/lib/commands/query.d.ts +6 -5
- package/lib/commands/query.d.ts.map +1 -1
- package/lib/commands/query.js +5 -4
- package/lib/commands/query.js.map +1 -1
- package/lib/commands/reflect-args.d.ts +3 -2
- package/lib/commands/reflect-args.d.ts.map +1 -1
- package/lib/commands/reflect-args.js +13 -10
- package/lib/commands/reflect-args.js.map +1 -1
- package/lib/commands/reflect-driver.js +2 -1
- package/lib/commands/reflect-driver.js.map +1 -1
- package/lib/commands/reflect-report.js.map +1 -1
- package/lib/commands/reflect.js +1 -1
- package/lib/commands/reflect.js.map +1 -1
- package/lib/commands/save-args.d.ts.map +1 -1
- package/lib/commands/save-args.js +7 -4
- package/lib/commands/save-args.js.map +1 -1
- package/lib/commands/save.d.ts +8 -4
- package/lib/commands/save.d.ts.map +1 -1
- package/lib/commands/save.js +12 -23
- package/lib/commands/save.js.map +1 -1
- package/lib/commands/validate-args.d.ts +3 -2
- package/lib/commands/validate-args.d.ts.map +1 -1
- package/lib/commands/validate-args.js +13 -10
- package/lib/commands/validate-args.js.map +1 -1
- package/lib/commands/validate-driver.js +2 -1
- package/lib/commands/validate-driver.js.map +1 -1
- package/lib/commands/validate-report.js.map +1 -1
- package/lib/commands/validate.js +1 -1
- package/lib/commands/validate.js.map +1 -1
- package/lib/commands/watch-args.d.ts.map +1 -1
- package/lib/commands/watch-args.js +6 -4
- package/lib/commands/watch-args.js.map +1 -1
- package/lib/commands/watch.d.ts +3 -4
- package/lib/commands/watch.d.ts.map +1 -1
- package/lib/commands/watch.js +5 -2
- package/lib/commands/watch.js.map +1 -1
- package/lib/driver-heap.d.ts +52 -0
- package/lib/driver-heap.d.ts.map +1 -0
- package/lib/driver-heap.js +51 -0
- package/lib/driver-heap.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/log-level.d.ts +21 -11
- package/lib/log-level.d.ts.map +1 -1
- package/lib/log-level.js +25 -14
- package/lib/log-level.js.map +1 -1
- package/lib/spawn-data-server.d.ts +9 -4
- package/lib/spawn-data-server.d.ts.map +1 -1
- package/lib/spawn-data-server.js +5 -4
- package/lib/spawn-data-server.js.map +1 -1
- package/lib/stderr-connection-logger.d.ts +12 -0
- package/lib/stderr-connection-logger.d.ts.map +1 -0
- package/lib/stderr-connection-logger.js +16 -0
- package/lib/stderr-connection-logger.js.map +1 -0
- package/lib/testing/echo-server.js +9 -1
- package/lib/testing/echo-server.js.map +1 -1
- package/package.json +90 -39
- package/src/cli.ts +7 -2
- package/src/commands/analyze-heap-args.ts +1 -2
- package/src/commands/analyze-heap.ts +4 -1
- package/src/commands/ast-ground-truth-args.ts +15 -12
- package/src/commands/ast-ground-truth-driver.ts +4 -2
- package/src/commands/ast-ground-truth.ts +1 -1
- package/src/commands/client-session.ts +33 -0
- package/src/commands/create-args.ts +68 -0
- package/src/commands/create.ts +83 -0
- package/src/commands/delete-args.ts +64 -0
- package/src/commands/delete.ts +61 -0
- package/src/commands/generate-ast-builder.ts +1 -11
- package/src/commands/generate-languages.ts +132 -0
- package/src/commands/generate-transfer-builder.ts +101 -0
- package/src/commands/generate-transfer-model-args.ts +20 -5
- package/src/commands/generate-transfer-model-config.ts +8 -3
- package/src/commands/generate-transfer-model.ts +291 -65
- package/src/commands/generated-module-path.ts +22 -0
- package/src/commands/harness-args.ts +99 -31
- package/src/commands/headless-harness.ts +89 -28
- package/src/commands/init-args.ts +76 -31
- package/src/commands/init-hosts.ts +51 -0
- package/src/commands/init-prompt.ts +5 -6
- package/src/commands/init-templates.ts +3150 -761
- package/src/commands/init-wizard.ts +55 -31
- package/src/commands/init-workspace.ts +31 -16
- package/src/commands/init.ts +261 -63
- package/src/commands/kebab.ts +17 -0
- package/src/commands/lint-grammar-args.ts +17 -13
- package/src/commands/lint-grammar-driver.ts +2 -1
- package/src/commands/lint-grammar.ts +1 -1
- package/src/commands/measure-memory-args.ts +27 -14
- package/src/commands/measure-memory-driver.ts +5 -3
- package/src/commands/measure-memory.ts +1 -1
- package/src/commands/model-docs-args.ts +16 -13
- package/src/commands/model-docs-driver.ts +2 -1
- package/src/commands/model-docs.ts +1 -1
- package/src/commands/projects-args.ts +5 -4
- package/src/commands/projects.ts +4 -6
- package/src/commands/query-args.ts +6 -4
- package/src/commands/query.ts +9 -9
- package/src/commands/reflect-args.ts +17 -13
- package/src/commands/reflect-driver.ts +2 -1
- package/src/commands/reflect.ts +1 -1
- package/src/commands/save-args.ts +7 -3
- package/src/commands/save.ts +24 -27
- package/src/commands/validate-args.ts +17 -13
- package/src/commands/validate-driver.ts +2 -1
- package/src/commands/validate.ts +1 -1
- package/src/commands/watch-args.ts +6 -3
- package/src/commands/watch.ts +7 -6
- package/src/driver-heap.ts +65 -0
- package/src/index.ts +2 -0
- package/src/log-level.ts +42 -14
- package/src/spawn-data-server.ts +17 -5
- package/src/stderr-connection-logger.ts +18 -0
- package/src/testing/echo-server.ts +11 -2
- package/templates/client/gitignore +3 -0
- package/templates/client/src/__GRAMMAR_ID__-diagram-module.ts +82 -0
- package/templates/editorconfig +15 -0
- package/templates/gitignore +1 -0
- package/templates/host-browser/esbuild.mjs +82 -0
- package/templates/host-browser/gitignore +4 -0
- package/templates/host-browser/hydranium-mark.svg +40 -0
- package/templates/host-browser/index.html +287 -0
- package/templates/host-browser/playwright.config.mts +24 -0
- package/templates/host-browser/src/data-status.ts +15 -0
- package/templates/host-browser/src/diagram-save.ts +60 -0
- package/templates/host-browser/src/diagram.ts +121 -0
- package/templates/host-browser/src/editor.ts +102 -0
- package/templates/host-browser/src/log.ts +14 -0
- package/templates/host-browser/src/monaco-editor-core-worker.d.ts +7 -0
- package/templates/host-browser/src/monaco-editor-worker.ts +10 -0
- package/templates/host-browser/src/posix-path-shim.ts +23 -0
- package/templates/host-browser/src/shown-file.ts +61 -0
- package/templates/host-browser/src/workspace.ts +5 -0
- package/templates/host-browser/tsconfig.e2e.json +16 -0
- package/templates/host-browser/tsconfig.page.json +16 -0
- package/templates/host-browser/tsconfig.worker.json +16 -0
- package/templates/host-theia-browser/esbuild.mjs +24 -0
- package/templates/host-theia-browser/gitignore +9 -0
- package/templates/host-theia-browser/playwright.config.mts +42 -0
- package/templates/host-theia-browser/start.mjs +50 -0
- package/templates/host-theia-browser/tsconfig.e2e.json +16 -0
- package/templates/host-theia-electron/esbuild.mjs +27 -0
- package/templates/host-theia-electron/gitignore +8 -0
- package/templates/host-theia-electron/playwright.config.mts +12 -0
- package/templates/host-theia-electron/start.mjs +47 -0
- package/templates/host-theia-electron/tsconfig.e2e.json +16 -0
- package/templates/host-vscode/esbuild.mjs +38 -0
- package/templates/host-vscode/gitignore +7 -0
- package/templates/host-vscode/playwright.config.mts +14 -0
- package/templates/host-vscode/src/__GRAMMAR_ID__-diagram-editor.ts +19 -0
- package/templates/host-vscode/src/show-model-command.ts +24 -0
- package/templates/host-vscode/src/webview/__GRAMMAR_ID__-diagram.ts +18 -0
- package/templates/host-vscode/src/webview/diagram.css +40 -0
- package/templates/host-vscode/start.mjs +22 -0
- package/templates/host-vscode/test/install-vscode.mts +21 -0
- package/templates/host-vscode/test/vscode-version.mts +10 -0
- package/templates/host-vscode/tsconfig.e2e.json +17 -0
- package/templates/host-vscode/tsconfig.json +19 -0
- package/templates/host-vscode/tsconfig.webview.json +17 -0
- package/templates/oxlintrc.json +4 -0
- package/templates/protocol/gitignore +3 -0
- package/templates/protocol/src/__GRAMMAR_ID__-diagram-types.ts +47 -0
- package/templates/server/gitignore +6 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/create-node-operation-handler.ts +62 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/delete-operation-handler.ts +63 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/gmodel-factory.ts +144 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/state.ts +18 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/storage.ts +16 -0
- package/templates/server/src/glsp/__GRAMMAR_ID__/submission-handler.ts +24 -0
- package/templates/server/src/grammar/common.langium +12 -0
- package/templates/server/src/language-server/__GRAMMAR_ID__-serializer.ts +53 -0
- package/templates/server/src/language-server/__GRAMMAR_ID__-validation.ts +30 -0
- package/templates/server/src/language-server/ast.ts +23 -0
- package/templates/server/src/node/services.ts +16 -0
- package/templates/server/test/__GRAMMAR_ID__-diagram.test.ts +403 -0
- package/templates/server/test/tsconfig.json +4 -0
- package/templates/server/tsconfig.test.json +10 -0
- package/templates/server/vitest.config.ts +14 -0
- package/templates/theia/gitignore +3 -0
- package/templates/theia/src/browser/__GRAMMAR_ID__-diagram-frontend-module.ts +65 -0
- package/templates/theia/src/browser/__PROJECT_ID__-connection-preload-module.ts +15 -0
- package/templates/theia/src/browser/__PROJECT_ID__-data-connection.ts +15 -0
- package/templates/theia/src/browser/__PROJECT_ID__-data-port.ts +11 -0
- package/templates/theia/src/browser/__PROJECT_ID__-glsp-client-contribution.ts +13 -0
- package/templates/theia/src/browser/__PROJECT_ID__-show-model-command.ts +51 -0
- package/templates/theia/src/common/__PROJECT_ID__-glsp-contribution.ts +3 -0
- package/templates/theia/src/node/__PROJECT_ID__-connection-backend-module.ts +12 -0
- package/templates/theia/src/node/__PROJECT_ID__-data-backend-module.ts +15 -0
- package/templates/theia/src/node/__PROJECT_ID__-glsp-backend-module.ts +16 -0
- package/templates/theia/style/diagram.css +20 -0
- package/templates/theia/tsconfig.json +24 -0
- package/templates/vscode-servers/gitignore +4 -0
- package/templates/vscode-servers/tsconfig.json +19 -0
- package/templates/workspace/nodes.__EXTENSION__ +5 -0
- package/templates/workspace/references.__EXTENSION__ +2 -0
package/lib/commands/init.js
CHANGED
|
@@ -6,20 +6,52 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
+
import { spawnSync } from 'node:child_process';
|
|
9
10
|
import * as fs from 'node:fs';
|
|
11
|
+
import { createRequire } from 'node:module';
|
|
10
12
|
import * as path from 'node:path';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
+
import { editingHeads, INIT_HOSTS, isInitHost, isTheiaHost } from './init-hosts.js';
|
|
14
|
+
import { buildInitTemplates, readFrameworkVersion, workspaceRootPins } from './init-templates.js';
|
|
15
|
+
import { kebab } from './kebab.js';
|
|
16
|
+
import { createNodeWorkspaceProbe, detectWorkspace, parseNpmVersion, workspaceGlobCovers } from './init-workspace.js';
|
|
13
17
|
/**
|
|
14
|
-
* The protocol heads a scaffold can start, in composition order.
|
|
15
|
-
*
|
|
16
|
-
* `lsp` is mandatory rather than optional: it owns the workspace, the build
|
|
17
|
-
* pipeline and the shared service tier every other head reads through, so a
|
|
18
|
-
* project without it has nothing for `data` or `glsp` to serve.
|
|
18
|
+
* The protocol heads a scaffold can start, in composition order. Any non-empty
|
|
19
|
+
* set: without `lsp`, the socket heads bring the workspace up themselves.
|
|
19
20
|
*/
|
|
20
21
|
export const INIT_HEADS = ['lsp', 'data', 'glsp'];
|
|
21
22
|
/** The heads a scaffold emits when `--heads` is not given. */
|
|
22
23
|
export const DEFAULT_INIT_HEADS = ['lsp', 'data'];
|
|
24
|
+
/**
|
|
25
|
+
* The packages a scaffold with these heads and hosts emits, in the order a
|
|
26
|
+
* workspace lists them. `client` comes with the `glsp` head, which always
|
|
27
|
+
* brings a diagram, and each host is a package of its own. `vscode-servers`
|
|
28
|
+
* comes with the VS Code host, whose server launch it holds, and with a Theia
|
|
29
|
+
* application, which sideloads it; `theia` is the Theia extension the Theia
|
|
30
|
+
* applications run.
|
|
31
|
+
*/
|
|
32
|
+
export function initMembers(heads, hosts) {
|
|
33
|
+
return [
|
|
34
|
+
'protocol',
|
|
35
|
+
'server',
|
|
36
|
+
...(heads.includes('glsp') ? ['client'] : []),
|
|
37
|
+
...(hosts.includes('vscode') || hosts.some(isTheiaHost) ? ['vscode-servers'] : []),
|
|
38
|
+
...(hosts.some(isTheiaHost) ? ['theia'] : []),
|
|
39
|
+
...hosts.map(host => `host-${host}`)
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Where each member lands in a detected workspace.
|
|
44
|
+
*
|
|
45
|
+
* Judged per member rather than for the project directory, which holds no
|
|
46
|
+
* package: a root listing its members one by one needs an entry for each,
|
|
47
|
+
* while a `packages/*` glob covers none of them one level deeper.
|
|
48
|
+
*/
|
|
49
|
+
export function memberPlacements(detection, members) {
|
|
50
|
+
return members.map(member => {
|
|
51
|
+
const memberPath = `${detection.targetPath}/${member}`;
|
|
52
|
+
return { path: memberPath, coveredBy: detection.workspaces.find(glob => workspaceGlobCovers(glob, memberPath)) };
|
|
53
|
+
});
|
|
54
|
+
}
|
|
23
55
|
/** True for a string naming one of {@link INIT_HEADS}. */
|
|
24
56
|
export function isInitHead(value) {
|
|
25
57
|
return INIT_HEADS.includes(value);
|
|
@@ -36,19 +68,22 @@ export function isInitHead(value) {
|
|
|
36
68
|
* nobody chose; `--public` is the opt-out for a project that has picked one.
|
|
37
69
|
*/
|
|
38
70
|
export const STANDALONE_PACKAGING = { private: true };
|
|
39
|
-
/** Kebab-case a PascalCase/camelCase name. */
|
|
40
|
-
export function kebab(name) {
|
|
41
|
-
return name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
42
|
-
}
|
|
43
71
|
/** True for a PascalCase identifier legal as a generated TypeScript symbol prefix. */
|
|
44
72
|
function isPascalIdentifier(value) {
|
|
45
73
|
return /^[A-Za-z][A-Za-z0-9]*$/.test(value);
|
|
46
74
|
}
|
|
47
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* True for a file extension, without its leading dot, that is safe in an
|
|
77
|
+
* emitted file name and string literal: letters, digits and dashes.
|
|
78
|
+
*/
|
|
79
|
+
export function isUsableExtension(extension) {
|
|
80
|
+
return /^[A-Za-z0-9][A-Za-z0-9-]*$/.test(extension);
|
|
81
|
+
}
|
|
82
|
+
/** Strip a leading dot and reject an extension {@link isUsableExtension} refuses. */
|
|
48
83
|
function normalizeExtension(value, grammar) {
|
|
49
84
|
const extension = value.replace(/^\./, '');
|
|
50
|
-
if (extension
|
|
51
|
-
throw new Error(`Invalid extension '${value}' for grammar '${grammar}':
|
|
85
|
+
if (!isUsableExtension(extension)) {
|
|
86
|
+
throw new Error(`Invalid extension '${value}' for grammar '${grammar}': use letters, digits and dashes, starting with a letter or digit.`);
|
|
52
87
|
}
|
|
53
88
|
return extension;
|
|
54
89
|
}
|
|
@@ -69,6 +104,9 @@ function resolveGrammar(spec, projectId, qualify, diagram) {
|
|
|
69
104
|
if (extensions.length === 0) {
|
|
70
105
|
throw new Error(`Invalid --extensions for grammar '${spec.name}': at least one extension is required.`);
|
|
71
106
|
}
|
|
107
|
+
if (spec.languageId !== undefined && !/^[a-z0-9][a-z0-9-]*$/.test(spec.languageId)) {
|
|
108
|
+
throw new Error(`Invalid --language-id '${spec.languageId}' for grammar '${spec.name}': use lowercase letters, digits and dashes, e.g. 'my-lang'.`);
|
|
109
|
+
}
|
|
72
110
|
return {
|
|
73
111
|
grammar: spec.name,
|
|
74
112
|
grammarId,
|
|
@@ -84,8 +122,9 @@ function resolveGrammar(spec, projectId, qualify, diagram) {
|
|
|
84
122
|
*
|
|
85
123
|
* With the `glsp` head on and nothing marked, a lone grammar is unambiguous and
|
|
86
124
|
* is taken as the diagram's; with several it is a real choice, so it is required
|
|
87
|
-
* rather than guessed —
|
|
88
|
-
*
|
|
125
|
+
* rather than guessed — the scaffolded state, storage and GModel factory are
|
|
126
|
+
* typed over the chosen grammar's model, so a wrong guess emits a diagram of
|
|
127
|
+
* the wrong model.
|
|
89
128
|
*/
|
|
90
129
|
function resolveDiagrams(specs, heads) {
|
|
91
130
|
const marked = specs.map(spec => spec.diagram === true);
|
|
@@ -106,20 +145,32 @@ function resolveDiagrams(specs, heads) {
|
|
|
106
145
|
throw new Error(`--heads includes 'glsp' but no grammar carries --diagram. Mark the one the diagram edits: ` +
|
|
107
146
|
`${specs.map(spec => spec.name).join(', ')}.`);
|
|
108
147
|
}
|
|
109
|
-
/** Validate the head set: known names only
|
|
148
|
+
/** Validate the head set: known names only. */
|
|
110
149
|
function resolveHeads(heads) {
|
|
111
150
|
const resolved = heads === undefined || heads.length === 0 ? DEFAULT_INIT_HEADS : heads;
|
|
112
151
|
const unknown = resolved.filter(head => !isInitHead(head));
|
|
113
152
|
if (unknown.length > 0) {
|
|
114
153
|
throw new Error(`Unknown head(s) '${unknown.join(', ')}': expected one of ${INIT_HEADS.join(', ')}.`);
|
|
115
154
|
}
|
|
116
|
-
if (!resolved.includes('lsp')) {
|
|
117
|
-
throw new Error("--heads must include 'lsp': it owns the workspace, the build pipeline and the shared service tier the other heads read through.");
|
|
118
|
-
}
|
|
119
155
|
// De-duplicated and put back in composition order, so the order the heads
|
|
120
156
|
// were named in does not change the emitted project.
|
|
121
157
|
return INIT_HEADS.filter(head => resolved.includes(head));
|
|
122
158
|
}
|
|
159
|
+
/** Validate the host set against the heads: known names only, and one of the heads each host edits through. */
|
|
160
|
+
function resolveHosts(hosts, heads) {
|
|
161
|
+
const unknown = hosts.filter(host => !isInitHost(host));
|
|
162
|
+
if (unknown.length > 0) {
|
|
163
|
+
throw new Error(`Unknown host(s) '${unknown.join(', ')}': expected one of ${INIT_HOSTS.join(', ')}.`);
|
|
164
|
+
}
|
|
165
|
+
for (const host of hosts) {
|
|
166
|
+
const editing = editingHeads(host);
|
|
167
|
+
if (!editing.some(head => heads.includes(head))) {
|
|
168
|
+
const needed = editing.length === 1 ? `the '${editing[0]}' head` : `one of the '${editing.join(', ')}' heads`;
|
|
169
|
+
throw new Error(`--hosts ${host} needs ${needed}, but the head set is '${heads.join(',')}'.`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return INIT_HOSTS.filter(host => hosts.includes(host));
|
|
173
|
+
}
|
|
123
174
|
/**
|
|
124
175
|
* Reject the collisions that would otherwise surface as a confusing generator
|
|
125
176
|
* or runtime failure rather than as a bad invocation.
|
|
@@ -144,13 +195,16 @@ function assertNoCollisions(grammars) {
|
|
|
144
195
|
throw new Error(`Duplicate language id '${grammar.languageId}': claimed by both '${clashingLanguage}' and '${grammar.grammar}'.`);
|
|
145
196
|
}
|
|
146
197
|
byLanguageId.set(grammar.languageId, grammar.grammar);
|
|
198
|
+
// Case-folded: a starter file is named by extension, and `nodes.Foo` and
|
|
199
|
+
// `nodes.foo` are one file on a case-insensitive file system.
|
|
147
200
|
for (const extension of grammar.extensions) {
|
|
148
|
-
const
|
|
201
|
+
const key = extension.toLowerCase();
|
|
202
|
+
const clashingExtension = byExtension.get(key);
|
|
149
203
|
if (clashingExtension !== undefined) {
|
|
150
204
|
throw new Error(`File extension '.${extension}' is claimed by both '${clashingExtension}' and '${grammar.grammar}'. ` +
|
|
151
205
|
'Langium routes documents by extension, so each grammar needs its own.');
|
|
152
206
|
}
|
|
153
|
-
byExtension.set(
|
|
207
|
+
byExtension.set(key, grammar.grammar);
|
|
154
208
|
}
|
|
155
209
|
}
|
|
156
210
|
}
|
|
@@ -162,7 +216,7 @@ function assertNoCollisions(grammars) {
|
|
|
162
216
|
* With no grammars given, one is synthesised from the project name, which is
|
|
163
217
|
* the single-language starter shape.
|
|
164
218
|
*/
|
|
165
|
-
export function resolveInitComposition(name, grammars = [], heads, packaging = STANDALONE_PACKAGING) {
|
|
219
|
+
export function resolveInitComposition(name, grammars = [], heads, packaging = STANDALONE_PACKAGING, hosts = []) {
|
|
166
220
|
if (!isPascalIdentifier(name)) {
|
|
167
221
|
throw new Error(`Invalid --name '${name}': must be a PascalCase identifier (letters and digits, starting with a letter), e.g. 'Bookstore'.`);
|
|
168
222
|
}
|
|
@@ -171,11 +225,20 @@ export function resolveInitComposition(name, grammars = [], heads, packaging = S
|
|
|
171
225
|
throw new Error(`Invalid --scope '${packaging.scope}': an npm scope starts with '@', e.g. '@acme'.`);
|
|
172
226
|
}
|
|
173
227
|
const resolvedHeads = resolveHeads(heads);
|
|
228
|
+
const resolvedHosts = resolveHosts(hosts, resolvedHeads);
|
|
174
229
|
const specs = grammars.length > 0 ? grammars : [{ name }];
|
|
175
230
|
const diagrams = resolveDiagrams(specs, resolvedHeads);
|
|
176
231
|
const resolved = specs.map((spec, index) => resolveGrammar(spec, projectId, specs.length > 1, diagrams[index]));
|
|
177
232
|
assertNoCollisions(resolved);
|
|
178
|
-
return {
|
|
233
|
+
return {
|
|
234
|
+
name,
|
|
235
|
+
projectId,
|
|
236
|
+
heads: resolvedHeads,
|
|
237
|
+
hosts: resolvedHosts,
|
|
238
|
+
grammars: resolved,
|
|
239
|
+
packaging,
|
|
240
|
+
frameworkVersion: readFrameworkVersion()
|
|
241
|
+
};
|
|
179
242
|
}
|
|
180
243
|
/**
|
|
181
244
|
* Plan the files a scaffold emits — every template rendered for this
|
|
@@ -219,23 +282,54 @@ export function resolveInitPackaging(targetDir, options) {
|
|
|
219
282
|
baseTsconfig: detection.baseTsconfig,
|
|
220
283
|
baseCompilerOptions: detection.baseCompilerOptions,
|
|
221
284
|
printWidth: detection.printWidth,
|
|
222
|
-
eslintConfig: detection.eslintConfig
|
|
285
|
+
eslintConfig: detection.eslintConfig,
|
|
286
|
+
oxlintConfig: detection.oxlintConfig,
|
|
287
|
+
packageManagerNpm: detection.packageManagerNpm,
|
|
288
|
+
npmVersion: options.npmVersion ?? parseNpmVersion(process.env.npm_config_user_agent)
|
|
223
289
|
}
|
|
224
290
|
};
|
|
225
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Format a standalone scaffold as its own `format` script would, with the
|
|
294
|
+
* `oxfmt` its root pins and the config it emits. A template is written at one
|
|
295
|
+
* length of the names its tokens stand for, so only a formatter run lets every
|
|
296
|
+
* project name pass `format:check`. Only the written files, because `--force`
|
|
297
|
+
* scaffolds beside files that are not ours to restyle. A failure leaves the
|
|
298
|
+
* files as written, which build all the same, and says so.
|
|
299
|
+
*/
|
|
300
|
+
function formatScaffold(targetDir, files, write) {
|
|
301
|
+
let reason;
|
|
302
|
+
try {
|
|
303
|
+
// Not `findPackageJSON`: Node 22.13, which `engines` admits, lacks it.
|
|
304
|
+
const manifestPath = createRequire(import.meta.url).resolve('oxfmt/package.json');
|
|
305
|
+
const bin = JSON.parse(fs.readFileSync(manifestPath, 'utf-8')).bin.oxfmt;
|
|
306
|
+
const args = [path.join(path.dirname(manifestPath), bin), ...files.map(file => file.path)];
|
|
307
|
+
const result = spawnSync(process.execPath, args, { cwd: targetDir, encoding: 'utf-8' });
|
|
308
|
+
if (result.status !== 0) {
|
|
309
|
+
reason = result.error?.message ?? `${result.stdout}${result.stderr}${result.signal === null ? '' : `killed by ${result.signal}`}`;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
reason = error instanceof Error ? error.message : String(error);
|
|
314
|
+
}
|
|
315
|
+
if (reason !== undefined) {
|
|
316
|
+
write(`Warning: oxfmt did not format the scaffold, so run \`npm run format\` after \`npm install\`:\n${reason.trim()}\n`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
226
319
|
/**
|
|
227
320
|
* Scaffold a new Hydranium language project end-to-end: one starter grammar per
|
|
228
321
|
* `--grammar`, `create<Name>Services` DI wiring, a launcher for each head in
|
|
229
322
|
* `--heads`, `langium-config.json`, `package.json`, and scripts. Does NOT run `npm install`
|
|
230
323
|
* or `langium generate` — those are printed as next steps, so the command stays
|
|
231
|
-
* offline and
|
|
232
|
-
* target directory unless
|
|
324
|
+
* offline and changes nothing beyond the files it writes, which a standalone
|
|
325
|
+
* scaffold's oxfmt then formats. Refuses a non-empty target directory unless
|
|
326
|
+
* `force`.
|
|
233
327
|
*/
|
|
234
328
|
export function runInit(options) {
|
|
235
329
|
const write = options.write ?? ((line) => process.stdout.write(line));
|
|
236
330
|
const targetDir = path.resolve(options.targetDir);
|
|
237
331
|
const detection = options.monorepo ? detectWorkspace(targetDir, options.probe ?? createNodeWorkspaceProbe()) : undefined;
|
|
238
|
-
const composition = resolveInitComposition(options.name, options.grammars, options.heads, resolveInitPackaging(targetDir, options));
|
|
332
|
+
const composition = resolveInitComposition(options.name, options.grammars, options.heads, resolveInitPackaging(targetDir, options), options.hosts);
|
|
239
333
|
if (!options.force && isNonEmptyDir(targetDir)) {
|
|
240
334
|
throw new Error(`Target directory '${targetDir}' is not empty. Pass --force to scaffold into it anyway.`);
|
|
241
335
|
}
|
|
@@ -249,53 +343,114 @@ export function runInit(options) {
|
|
|
249
343
|
fs.mkdirSync(path.dirname(absolute), { recursive: true });
|
|
250
344
|
fs.writeFileSync(absolute, file.content, 'utf-8');
|
|
251
345
|
}
|
|
346
|
+
if (composition.packaging.workspace === undefined) {
|
|
347
|
+
formatScaffold(targetDir, files, write);
|
|
348
|
+
}
|
|
252
349
|
}
|
|
253
350
|
const grammarList = composition.grammars.map(grammar => (grammar.diagram ? `${grammar.grammar} (diagram)` : grammar.grammar)).join(', ');
|
|
254
351
|
write(`Scaffolded ${composition.name} (${files.length} files, heads: ${composition.heads.join(',')}, ` +
|
|
352
|
+
(composition.hosts.length > 0 ? `hosts: ${composition.hosts.join(',')}, ` : '') +
|
|
255
353
|
`${composition.grammars.length} grammar(s): ${grammarList}) into ${targetDir}\n`);
|
|
256
354
|
if (detection !== undefined) {
|
|
257
355
|
write('\n');
|
|
258
356
|
write(`Workspace root: ${detection.rootDir}\n`);
|
|
259
357
|
if (detection.baseTsconfig !== undefined) {
|
|
260
|
-
write(` tsconfig.json extends ${detection.baseTsconfig}, minus the options it inherits unchanged.\n`);
|
|
358
|
+
write(` Each library package's tsconfig.json extends the root's ${path.posix.basename(detection.baseTsconfig)}, minus the options it inherits unchanged.\n`);
|
|
359
|
+
if (composition.hosts.length > 0) {
|
|
360
|
+
// A host's projects compile its page, worker and tests apart, each under options of its own.
|
|
361
|
+
const members = initMembers(composition.heads, composition.hosts);
|
|
362
|
+
const extensions = [
|
|
363
|
+
...(members.includes('vscode-servers') ? ["the VS Code servers extension's"] : []),
|
|
364
|
+
...(members.includes('theia') ? ["the Theia extension's"] : [])
|
|
365
|
+
];
|
|
366
|
+
const also = extensions.length === 0 ? '' : `, as ${extensions.join(' and ')} ${extensions.length === 1 ? 'does' : 'do'}`;
|
|
367
|
+
write(` Each host's tsconfigs stand alone${also}.\n`);
|
|
368
|
+
}
|
|
261
369
|
}
|
|
262
370
|
else {
|
|
263
|
-
write(
|
|
371
|
+
write(" No root tsconfig carries compilerOptions, so each package's stands alone.\n");
|
|
264
372
|
}
|
|
265
|
-
write(" .gitignore holds `syntaxes/` only — the workspace root's covers the rest.\n");
|
|
266
373
|
if (detection.printWidth !== undefined) {
|
|
267
|
-
write(` Sources wrapped at ${detection.printWidth} columns, from ${detection.rootDir}'s
|
|
374
|
+
write(` Sources wrapped at ${detection.printWidth} columns, from ${detection.rootDir}'s formatter config.\n`);
|
|
268
375
|
}
|
|
269
|
-
if (detection.eslintConfig !== undefined) {
|
|
270
|
-
write(`
|
|
376
|
+
if (detection.oxlintConfig !== undefined || detection.eslintConfig !== undefined) {
|
|
377
|
+
write(` Each package got a lint script — ${detection.oxlintConfig ?? detection.eslintConfig} says this repo lints. Adjust them if your invocation differs.\n`);
|
|
271
378
|
}
|
|
272
379
|
// Printed rather than applied: `init` writes inside the target directory
|
|
273
380
|
// and nowhere else, so a scaffold can never surprise-edit a manifest that
|
|
274
381
|
// is under review, mid-rebase, or simply not the caller's to change.
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
382
|
+
const placements = memberPlacements(detection, initMembers(composition.heads, composition.hosts));
|
|
383
|
+
const uncovered = placements.filter(placement => placement.coveredBy === undefined);
|
|
384
|
+
if (uncovered.length > 0) {
|
|
385
|
+
write(` Add ${uncovered.length === 1 ? 'this' : 'these'} to "workspaces" in ${path.join(detection.rootDir, 'package.json')}:\n`);
|
|
386
|
+
write(`${uncovered.map(placement => ` "${placement.path}"`).join(',\n')}\n`);
|
|
278
387
|
}
|
|
279
|
-
|
|
280
|
-
write(`
|
|
388
|
+
for (const placement of placements.filter(candidate => candidate.coveredBy !== undefined)) {
|
|
389
|
+
write(` ${placement.path} is already covered by the "${placement.coveredBy}" workspaces entry.\n`);
|
|
281
390
|
}
|
|
391
|
+
const pins = workspaceRootPins(composition).map(([name, version]) => ` "${name}": "${version}"`);
|
|
392
|
+
write(` Add these to "devDependencies" in ${path.join(detection.rootDir, 'package.json')}, so another member's version of one ` +
|
|
393
|
+
`cannot displace the copy these packages share with the framework:\n${pins.join(',\n')}\n`);
|
|
282
394
|
if (composition.packaging.scope === undefined && detection.scope !== undefined) {
|
|
283
395
|
write(` Sibling packages all use the "${detection.scope}" scope; pass --scope ${detection.scope} to match them.\n`);
|
|
284
396
|
}
|
|
285
397
|
}
|
|
286
398
|
write('\n');
|
|
287
399
|
write('Next steps:\n');
|
|
288
|
-
|
|
289
|
-
//
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
400
|
+
// A workspace member's project has no manifest of its own, so its steps run
|
|
401
|
+
// from the workspace root and name the server by `--prefix`.
|
|
402
|
+
const server = detection === undefined ? 'server' : `${detection.targetPath}/server`;
|
|
403
|
+
if (detection === undefined) {
|
|
404
|
+
write(` cd ${options.targetDir}\n`);
|
|
405
|
+
// oxfmt and oxlint skip whatever an enclosing repository ignores, this
|
|
406
|
+
// folder included: https://github.com/oxc-project/oxc/issues/25603
|
|
407
|
+
if (spawnSync('git', ['check-ignore', '-q', targetDir], { cwd: targetDir }).status === 0) {
|
|
408
|
+
write(' git init # an enclosing repository ignores this folder, so lint and format find no file until then\n');
|
|
409
|
+
}
|
|
410
|
+
write(' npm install\n');
|
|
411
|
+
write(' npm run build # langium generate + tsc, every package\n');
|
|
412
|
+
write(' npm test # the server tests\n');
|
|
413
|
+
write(' npm run watch # rebuild the members on every change; watch:<host> adds a host\n');
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
write(` cd ${detection.rootDir}\n`);
|
|
417
|
+
write(' npm install\n');
|
|
418
|
+
write(` npm --prefix ${server} run build # langium generate + tsc, protocol included\n`);
|
|
419
|
+
// The server's build reaches protocol through its project reference and
|
|
420
|
+
// nothing else, so each further member is built on its own.
|
|
421
|
+
for (const member of initMembers(composition.heads, composition.hosts).filter(name => name !== 'protocol' && name !== 'server')) {
|
|
422
|
+
write(` npm --prefix ${detection.targetPath}/${member} run build\n`);
|
|
423
|
+
}
|
|
424
|
+
write(` npm --prefix ${server} test\n`);
|
|
425
|
+
}
|
|
296
426
|
// `npx`, not a bare invocation: `@hydranium/cli` is a devDependency of the
|
|
297
427
|
// scaffold, so the binary is on PATH inside an npm script and nowhere else.
|
|
298
|
-
write(
|
|
428
|
+
write(` npx hydranium-cli reflect --services ./${server}/lib/node/services.js\n`);
|
|
429
|
+
const hostDir = (host) => (detection === undefined ? `host-${host}` : `${detection.targetPath}/host-${host}`);
|
|
430
|
+
// A standalone root runs a host as `start:<host>`. A surrounding workspace's root is not ours to add to.
|
|
431
|
+
const start = (host) => (detection === undefined ? `npm run start:${host}` : `npm --prefix ${hostDir(host)} start`);
|
|
432
|
+
if (composition.hosts.includes('browser')) {
|
|
433
|
+
const browser = hostDir('browser');
|
|
434
|
+
write(` ${start('browser')} # serve the page at http://localhost:4937, Ctrl+C to stop\n`);
|
|
435
|
+
// The smoke test serves the page itself, on the same port.
|
|
436
|
+
write(` npm --prefix ${browser} run test:e2e:install && npm --prefix ${browser} run test:e2e # with start stopped\n`);
|
|
437
|
+
}
|
|
438
|
+
if (composition.hosts.includes('vscode')) {
|
|
439
|
+
const vscode = hostDir('vscode');
|
|
440
|
+
write(` ${start('vscode')} # VS Code with the extension, on the workspace (needs \`code\` on the PATH)\n`);
|
|
441
|
+
write(` npm --prefix ${vscode} run test:e2e:install && npm --prefix ${vscode} run test:e2e\n`);
|
|
442
|
+
}
|
|
443
|
+
if (composition.hosts.includes('theia-browser')) {
|
|
444
|
+
const theia = hostDir('theia-browser');
|
|
445
|
+
write(` ${start('theia-browser')} # Theia at http://localhost:3000 on the workspace, Ctrl+C to stop\n`);
|
|
446
|
+
// The smoke test starts its own backend, on a port of its own.
|
|
447
|
+
write(` npm --prefix ${theia} run test:e2e:install && npm --prefix ${theia} run test:e2e\n`);
|
|
448
|
+
}
|
|
449
|
+
if (composition.hosts.includes('theia-electron')) {
|
|
450
|
+
const electron = hostDir('theia-electron');
|
|
451
|
+
write(` ${start('theia-electron')} # the Theia desktop application on the workspace\n`);
|
|
452
|
+
write(` npm --prefix ${electron} run test:e2e\n`);
|
|
453
|
+
}
|
|
299
454
|
write('\n');
|
|
300
455
|
write('The emitted sources carry no license header — run your own header tool if\n');
|
|
301
456
|
write('your repo gates them. See the README section on that.\n');
|
package/lib/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
* Kebab-case a PascalCase/camelCase name. Shared by `init`, which derives a
|
|
11
|
+
* grammar's id from it, and the languages emitter, whose constant names have
|
|
12
|
+
* to split a grammar name the same way.
|
|
13
|
+
*/
|
|
14
|
+
export declare function kebab(name: string): string;
|
|
15
|
+
//# sourceMappingURL=kebab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebab.d.ts","sourceRoot":"","sources":["../../src/commands/kebab.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
* Kebab-case a PascalCase/camelCase name. Shared by `init`, which derives a
|
|
11
|
+
* grammar's id from it, and the languages emitter, whose constant names have
|
|
12
|
+
* to split a grammar name the same way.
|
|
13
|
+
*/
|
|
14
|
+
export function kebab(name) {
|
|
15
|
+
return name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=kebab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebab.js","sourceRoot":"","sources":["../../src/commands/kebab.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -10,8 +10,9 @@ import { type UsageError } from './harness-args.js';
|
|
|
10
10
|
import { type LintGrammarCommandOptions } from './lint-grammar.js';
|
|
11
11
|
/**
|
|
12
12
|
* Every flag `lint-grammar` accepts, derived from the sets the parser is handed
|
|
13
|
-
* so the list cannot claim a flag the parser would reject.
|
|
14
|
-
* consumed by the shared harness parser itself,
|
|
13
|
+
* so the list cannot claim a flag the parser would reject.
|
|
14
|
+
* {@link HARNESS_VALUE_FLAGS} are consumed by the shared harness parser itself,
|
|
15
|
+
* so they are in neither set.
|
|
15
16
|
*/
|
|
16
17
|
export declare const LINT_GRAMMAR_FLAGS: readonly string[];
|
|
17
18
|
/** The subset that takes a value, so `--help` in a value position reads as data. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-grammar-args.d.ts","sourceRoot":"","sources":["../../src/commands/lint-grammar-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,
|
|
1
|
+
{"version":3,"file":"lint-grammar-args.d.ts","sourceRoot":"","sources":["../../src/commands/lint-grammar-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAUJ,KAAK,UAAU,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAkB,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMnF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuF,CAAC;AAExI,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAAwE,CAAC;AAE/H,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAmB9C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAA0B,GAAG,yBAAyB,CAcnH;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE"}
|
|
@@ -6,22 +6,23 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { exitWithUsage, helpRequested,
|
|
9
|
+
import { exitWithUsage, HARNESS_VALUE_FLAGS, helpRequested, importHelpLines, LOG_VALUE_FLAGS, logHelpLines, logOptions, parseHarnessArgs, printHelp } from './harness-args.js';
|
|
10
10
|
import { runLintGrammar } from './lint-grammar.js';
|
|
11
|
-
const VALUE_FLAGS = [
|
|
11
|
+
const VALUE_FLAGS = [...LOG_VALUE_FLAGS];
|
|
12
12
|
const BOOL_FLAGS = ['--strict', '--json'];
|
|
13
13
|
const REPEATABLE_VALUE_FLAGS = ['--name-property'];
|
|
14
14
|
/**
|
|
15
15
|
* Every flag `lint-grammar` accepts, derived from the sets the parser is handed
|
|
16
|
-
* so the list cannot claim a flag the parser would reject.
|
|
17
|
-
* consumed by the shared harness parser itself,
|
|
16
|
+
* so the list cannot claim a flag the parser would reject.
|
|
17
|
+
* {@link HARNESS_VALUE_FLAGS} are consumed by the shared harness parser itself,
|
|
18
|
+
* so they are in neither set.
|
|
18
19
|
*/
|
|
19
|
-
export const LINT_GRAMMAR_FLAGS = [
|
|
20
|
+
export const LINT_GRAMMAR_FLAGS = [...HARNESS_VALUE_FLAGS, ...REPEATABLE_VALUE_FLAGS, ...VALUE_FLAGS, ...BOOL_FLAGS];
|
|
20
21
|
/** The subset that takes a value, so `--help` in a value position reads as data. */
|
|
21
|
-
export const LINT_GRAMMAR_VALUE_FLAGS = [
|
|
22
|
+
export const LINT_GRAMMAR_VALUE_FLAGS = [...HARNESS_VALUE_FLAGS, ...REPEATABLE_VALUE_FLAGS, ...VALUE_FLAGS];
|
|
22
23
|
/** The `--help` text, as data, held to {@link LINT_GRAMMAR_FLAGS} by a test. */
|
|
23
24
|
export const LINT_GRAMMAR_HELP = [
|
|
24
|
-
'Usage: hydranium-cli lint-grammar --services <module> [--name-property <p>]... [--strict] [--json] [--log-level <lvl>]',
|
|
25
|
+
'Usage: hydranium-cli lint-grammar --services <module> [--import <specifier>]... [--name-property <p>]... [--strict] [--json] [--log-level <lvl>] [--log-file <file>] [--log-file-level <lvl>]',
|
|
25
26
|
'',
|
|
26
27
|
"Check a head's grammar against the framework's conventions — a CI gate: the",
|
|
27
28
|
'process exits non-zero when a violation is found. Read-only: no workspace is',
|
|
@@ -33,24 +34,26 @@ export const LINT_GRAMMAR_HELP = [
|
|
|
33
34
|
'',
|
|
34
35
|
'Options:',
|
|
35
36
|
' --services <module> ESM module exporting `createServices(): { shared }` (required).',
|
|
37
|
+
...importHelpLines(23),
|
|
36
38
|
' --name-property <p> Property that satisfies the nameability convention',
|
|
37
39
|
' (repeatable). Default: name.',
|
|
38
40
|
' --strict Also fail (non-zero exit) on warnings, not only errors.',
|
|
39
41
|
' --json Emit the raw JSON result instead of the human report.',
|
|
40
|
-
|
|
42
|
+
...logHelpLines(23)
|
|
41
43
|
];
|
|
42
44
|
export function parseLintGrammarArgs(args, onError = exitWithUsage) {
|
|
43
|
-
const { servicesModule, options, values } = parseHarnessArgs(args, 'lint-grammar', VALUE_FLAGS, BOOL_FLAGS, {
|
|
45
|
+
const { servicesModule, imports, options, values } = parseHarnessArgs(args, 'lint-grammar', VALUE_FLAGS, BOOL_FLAGS, {
|
|
44
46
|
requireWorkspace: false,
|
|
45
47
|
repeatableValueFlags: REPEATABLE_VALUE_FLAGS,
|
|
46
48
|
onError
|
|
47
49
|
});
|
|
48
50
|
return {
|
|
49
51
|
servicesModule,
|
|
52
|
+
imports,
|
|
50
53
|
nameProperties: values['--name-property'],
|
|
51
54
|
strict: options['--strict'] === 'true',
|
|
52
55
|
json: options['--json'] === 'true',
|
|
53
|
-
|
|
56
|
+
...logOptions(options)
|
|
54
57
|
};
|
|
55
58
|
}
|
|
56
59
|
export function runLintGrammarCommand(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-grammar-args.js","sourceRoot":"","sources":["../../src/commands/lint-grammar-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,aAAa,EACb,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"lint-grammar-args.js","sourceRoot":"","sources":["../../src/commands/lint-grammar-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,SAAS,EAEX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAkC,MAAM,mBAAmB,CAAC;AAEnF,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAU,CAAC;AAClD,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AACnD,MAAM,sBAAsB,GAAG,CAAC,iBAAiB,CAAU,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,GAAG,mBAAmB,EAAE,GAAG,sBAAsB,EAAE,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC;AAExI,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAsB,CAAC,GAAG,mBAAmB,EAAE,GAAG,sBAAsB,EAAE,GAAG,WAAW,CAAC,CAAC;AAE/H,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IACjD,+LAA+L;IAC/L,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,mFAAmF;IACnF,+EAA+E;IAC/E,0EAA0E;IAC1E,uEAAuE;IACvE,EAAE;IACF,UAAU;IACV,0FAA0F;IAC1F,GAAG,eAAe,CAAC,EAAE,CAAC;IACtB,6EAA6E;IAC7E,uDAAuD;IACvD,kFAAkF;IAClF,gFAAgF;IAChF,GAAG,YAAY,CAAC,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,IAAc,EAAE,OAAO,GAAe,aAAa;IACrF,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;QAClH,gBAAgB,EAAE,KAAK;QACvB,oBAAoB,EAAE,sBAAsB;QAC5C,OAAO;KACT,CAAC,CAAC;IACH,OAAO;QACJ,cAAc;QACd,OAAO;QACP,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,MAAM;QACtC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM;QAClC,GAAG,UAAU,CAAC,OAAO,CAAC;KACxB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAc;IACjD,IAAI,aAAa,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACjD,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* code (non-zero on errors; `--strict` also fails on warnings). Never imported —
|
|
15
15
|
* only spawned.
|
|
16
16
|
*/
|
|
17
|
+
import { describeError } from '@hydranium/protocol';
|
|
17
18
|
import { loadHeadlessContext } from './headless-harness.js';
|
|
18
19
|
import { formatLintReport, lintExitCode } from './lint-grammar-report.js';
|
|
19
20
|
function parseArgs(argv) {
|
|
@@ -66,7 +67,7 @@ async function main(argv) {
|
|
|
66
67
|
main(process.argv.slice(2))
|
|
67
68
|
.then(code => process.exit(code))
|
|
68
69
|
.catch((error) => {
|
|
69
|
-
console.error(
|
|
70
|
+
console.error(describeError(error));
|
|
70
71
|
process.exit(1);
|
|
71
72
|
});
|
|
72
73
|
//# sourceMappingURL=lint-grammar-driver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-grammar-driver.js","sourceRoot":"","sources":["../../src/commands/lint-grammar-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS1E,SAAS,SAAS,CAAC,IAAc;IAC9B,MAAM,MAAM,GAAe,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,GAAW,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,IAAI,EAAE,CAAC;YACZ,KAAK,YAAY;gBACd,MAAM,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;gBAC/B,MAAM;YACT,KAAK,iBAAiB;gBACnB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM;YACT,KAAK,QAAQ;gBACV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM;YACT,KAAK,UAAU;gBACZ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrB,MAAM;YACT;gBACG,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;QACjC,cAAc;QACd,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC9E,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"lint-grammar-driver.js","sourceRoot":"","sources":["../../src/commands/lint-grammar-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAS1E,SAAS,SAAS,CAAC,IAAc;IAC9B,MAAM,MAAM,GAAe,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,GAAW,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,IAAI,EAAE,CAAC;YACZ,KAAK,YAAY;gBACd,MAAM,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;gBAC/B,MAAM;YACT,KAAK,iBAAiB;gBACnB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM;YACT,KAAK,QAAQ;gBACV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM;YACT,KAAK,UAAU;gBACZ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrB,MAAM;YACT;gBACG,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;QACjC,cAAc;QACd,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC9E,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
|