@reqlan/cli 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/out/commands/barrel.js +1 -1
- package/out/commands/barrel.js.map +1 -1
- package/out/commands/export.js +1 -1
- package/out/commands/export.js.map +1 -1
- package/out/commands/init.js +1 -1
- package/out/commands/init.js.map +1 -1
- package/out/commands/parse.js +21 -22
- package/out/commands/parse.js.map +1 -1
- package/out/runtime.d.ts +2 -2
- package/out/runtime.js +9 -6
- package/out/runtime.js.map +1 -1
- package/package.json +2 -4
- package/out/util.d.ts +0 -14
- package/out/util.js +0 -35
- package/out/util.js.map +0 -1
package/README.md
CHANGED
|
@@ -44,6 +44,21 @@ The ideas index is shared application memory at `<workspace>/.reqlan/ideas-index
|
|
|
44
44
|
|
|
45
45
|
## Changelog
|
|
46
46
|
|
|
47
|
+
### 0.7.0
|
|
48
|
+
|
|
49
|
+
#### Minor Changes
|
|
50
|
+
|
|
51
|
+
- e9b7e8a: rust
|
|
52
|
+
|
|
53
|
+
#### Patch Changes
|
|
54
|
+
|
|
55
|
+
- 72246b6: up pnpm
|
|
56
|
+
- 70ccc6f: up pnpm version
|
|
57
|
+
- Updated dependencies [72246b6]
|
|
58
|
+
- Updated dependencies [e9b7e8a]
|
|
59
|
+
- Updated dependencies [70ccc6f]
|
|
60
|
+
- @reqlan/analytical@0.10.0
|
|
61
|
+
|
|
47
62
|
### 0.6.1
|
|
48
63
|
|
|
49
64
|
#### Patch Changes
|
package/out/commands/barrel.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Command, Option } from 'clipanion';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { barrelPage } from '@reqlan/analytical';
|
|
4
3
|
import { emit } from '../output.js';
|
|
5
4
|
/**
|
|
6
5
|
* rq:["../../../reqlan rq/extension/features-commands.rq".barrel_page]
|
|
@@ -21,6 +20,7 @@ export class BarrelCommand extends Command {
|
|
|
21
20
|
}
|
|
22
21
|
async execute() {
|
|
23
22
|
try {
|
|
23
|
+
const { barrelPage } = await import('@reqlan/analytical/core');
|
|
24
24
|
const result = await barrelPage(resolve(this.file), {
|
|
25
25
|
containerName: this.name,
|
|
26
26
|
dryRun: this.dryRun
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barrel.js","sourceRoot":"","sources":["../../src/commands/barrel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"barrel.js","sourceRoot":"","sources":["../../src/commands/barrel.ts"],"names":[],"mappings":"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"}
|
package/out/commands/export.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, Option } from 'clipanion';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { toWorkspaceRelativePath } from '@reqlan/analytical';
|
|
3
|
+
import { toWorkspaceRelativePath } from '@reqlan/analytical/core';
|
|
4
4
|
import { withAnalysisApi, resolveWorkspaceRoot } from '../runtime.js';
|
|
5
5
|
import { emit } from '../output.js';
|
|
6
6
|
const RUNTIME_MODES = new Set(['interactive', 'document', 'print']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,uBAAuB,EAI1B,MAAM,
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,uBAAuB,EAI1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACvF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAwB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAEvF,MAAM,OAAO,aAAc,SAAQ,OAAO;IAA1C;;QAqBI,WAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YAClC,WAAW,EAAE,uEAAuE;SACvF,CAAC,CAAC;QACH,SAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE;YAC/C,WAAW,EAAE,6CAA6C;SAC7D,CAAC,CAAC;QACH,SAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;YAC9B,WAAW,EAAE,oDAAoD;SACpE,CAAC,CAAC;QACH,gBAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,EAAE;YACzD,WAAW,EAAE,0EAA0E;SAC1F,CAAC,CAAC;QACH,oBAAe,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,EAAE;YAC5D,WAAW,EAAE,4DAA4D;SAC5E,CAAC,CAAC;QACH,kBAAa,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE;YACtD,WAAW,EAAE,wCAAwC;SACxD,CAAC,CAAC;QACH,mBAAc,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,EAAE;YACxD,WAAW,EAAE,yDAAyD;SACzE,CAAC,CAAC;QACH,YAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YAClC,WAAW,EAAE,uEAAuE;SACvF,CAAC,CAAC;QACH,eAAU,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;YACxC,WAAW,EAAE,iDAAiD;SACjE,CAAC,CAAC;QACH,gBAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC1C,WAAW,EAAE,qDAAqD;SACrE,CAAC,CAAC;QACH,QAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACzB,WAAW,EAAE,8DAA8D;SAC9E,CAAC,CAAC;QACH,SAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;YACnC,WAAW,EAAE,8CAA8C;SAC9D,CAAC,CAAC;IAuFP,CAAC;IArFG,KAAK,CAAC,OAAO;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,WAAgC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACrB,2BAA2B,IAAI,CAAC,WAAW,gDAAgD,CAC9F,CAAC;YACF,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAwC,CAAC;QACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACrB,+BAA+B,IAAI,CAAC,eAAe,wCAAwC,CAC9F,CAAC;YACF,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACrB,kFAAkF,CACrF,CAAC;YACF,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC3E,OAAO,CAAC,CAAC;QACb,CAAC;QAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI;YAC3B,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;YAC3E,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,CAAC;YACD,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;gBACxC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;oBAChC,MAAM,EAAE,MAAM;oBACd,SAAS;oBACT,UAAU;oBACV,UAAU,EAAE,SAAS;oBACrB,KAAK;oBACL,aAAa;oBACb,uBAAuB,EAAE,IAAI;oBAC7B,gBAAgB,EAAE,IAAI;oBACtB,kBAAkB,EAAE,YAAY;oBAChC,WAAW;oBACX,eAAe;oBACf,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,IAAI;oBACtB,oBAAoB,EAAE,IAAI;oBAC1B,mBAAmB,EAAE,IAAI;oBACzB,qBAAqB,EAAE,IAAI;oBAC3B,iBAAiB,EAAE,IAAI;oBACvB,kBAAkB,EAAE,IAAI,CAAC,aAAa;oBACtC,mBAAmB,EAAE,IAAI,CAAC,cAAc;oBACxC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS;oBAC1C,UAAU,EAAE,UAAU,IAAI,WAAW;wBACjC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;wBAC1C,CAAC,CAAC,SAAS;iBAClB,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACD,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,YAAY,EAAE,MAAM,CAAC,YAAY;qBACpC,EAAE,IAAI,CAAC,CAAC;oBACT,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,yBAAyB,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;;AA7Ie,mBAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,AAAnC,CAAoC;AAEzC,mBAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,WAAW,EAAE,gEAAgE;IAC7E,OAAO,EAAE;;;;SAIR;IACD,QAAQ,EAAE;QACN,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;QAChF,CAAC,yBAAyB,EAAE,4DAA4D,CAAC;QACzF;YACI,mCAAmC;YACnC,mHAAmH;SACtH;QACD,CAAC,oBAAoB,EAAE,kEAAkE,CAAC;KAC7F;CACJ,CAAC,AAhBmB,CAgBlB"}
|
package/out/commands/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, Option } from 'clipanion';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { createBase } from '@reqlan/analytical';
|
|
3
|
+
import { createBase } from '@reqlan/analytical/core';
|
|
4
4
|
import { emit } from '../output.js';
|
|
5
5
|
export class InitCommand extends Command {
|
|
6
6
|
constructor() {
|
package/out/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,OAAO,WAAY,SAAQ,OAAO;IAAxC;;QAgBI,cAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,SAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;YACnC,WAAW,EAAE,4BAA4B;SAC5C,CAAC,CAAC;IAiCP,CAAC;IA/BG,KAAK,CAAC,OAAO;QACT,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG;gBACZ,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBACtB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACrB,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;oBAC9C,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAC5C,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACrB,iCAAiC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;oBACjD,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAC5C,CAAC;YACN,CAAC;YACD,OAAO,CAAC,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;;AAlDe,iBAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,AAAb,CAAc;AAEnB,iBAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,WAAW,EAAE,oEAAoE;IACjF,OAAO,EAAE;;;SAGR;IACD,QAAQ,EAAE;QACN,CAAC,4BAA4B,EAAE,SAAS,CAAC;QACzC,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;QAClD,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACpC;CACJ,CAAC,AAXmB,CAWlB"}
|
package/out/commands/parse.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { Command, Option } from 'clipanion';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { extname, resolve } from 'node:path';
|
|
4
|
+
import { parseReqlanSource } from '@reqlan/analytical/core';
|
|
5
5
|
import { emit } from '../output.js';
|
|
6
|
-
function elementSummary(model) {
|
|
7
|
-
return model.elements.map(element => ({
|
|
8
|
-
type: element.$type,
|
|
9
|
-
name: 'name' in element ? element.name : undefined
|
|
10
|
-
}));
|
|
11
|
-
}
|
|
12
6
|
export class ParseCommand extends Command {
|
|
13
7
|
constructor() {
|
|
14
8
|
super(...arguments);
|
|
@@ -18,32 +12,37 @@ export class ParseCommand extends Command {
|
|
|
18
12
|
});
|
|
19
13
|
}
|
|
20
14
|
async execute() {
|
|
21
|
-
const services = createReqlanServices(NodeFileSystem).Reqlan;
|
|
22
15
|
try {
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
if (extname(this.file) !== '.rq') {
|
|
17
|
+
throw new Error('Please choose a file with one of these extensions: .rq.');
|
|
18
|
+
}
|
|
19
|
+
if (!existsSync(this.file)) {
|
|
20
|
+
throw new Error(`File ${this.file} does not exist.`);
|
|
21
|
+
}
|
|
22
|
+
const source = readFileSync(resolve(this.file), 'utf8');
|
|
23
|
+
const parsed = parseReqlanSource(source);
|
|
25
24
|
const payload = {
|
|
26
25
|
file: this.file,
|
|
27
|
-
ok:
|
|
28
|
-
errorCount,
|
|
29
|
-
diagnostics,
|
|
30
|
-
elements:
|
|
26
|
+
ok: parsed.ok,
|
|
27
|
+
errorCount: parsed.errorCount,
|
|
28
|
+
diagnostics: parsed.diagnostics,
|
|
29
|
+
elements: parsed.elements
|
|
31
30
|
};
|
|
32
31
|
if (this.json) {
|
|
33
32
|
emit(payload, true);
|
|
34
33
|
}
|
|
35
|
-
else if (errorCount > 0) {
|
|
34
|
+
else if (parsed.errorCount > 0) {
|
|
36
35
|
this.context.stderr.write('There are validation errors:\n');
|
|
37
|
-
for (const
|
|
38
|
-
this.context.stderr.write(`line ${
|
|
36
|
+
for (const diagnostic of parsed.diagnostics.filter(item => item.severity === 1)) {
|
|
37
|
+
this.context.stderr.write(`line ${diagnostic.line}: ${diagnostic.message} [${diagnostic.text}]\n`);
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
else {
|
|
42
|
-
const lines =
|
|
41
|
+
const lines = parsed.elements.map(element => element.name ? `${element.type} ${element.name}` : element.type);
|
|
43
42
|
this.context.stdout.write(`Parsed ${this.file}: ${lines.length} top-level element(s)\n` +
|
|
44
|
-
(lines.length > 0 ? lines.map(
|
|
43
|
+
(lines.length > 0 ? lines.map(line => ` - ${line}`).join('\n') + '\n' : ''));
|
|
45
44
|
}
|
|
46
|
-
return errorCount > 0 ? 1 : 0;
|
|
45
|
+
return parsed.errorCount > 0 ? 1 : 0;
|
|
47
46
|
}
|
|
48
47
|
catch (error) {
|
|
49
48
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"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"}
|
package/out/runtime.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type HeadlessAnalysisApi } from '@reqlan/analytical/core';
|
|
2
2
|
export declare function resolveWorkspaceRoot(cwd?: string): string;
|
|
3
|
-
export declare function withAnalysisApi<T>(cwd: string | undefined, run: (api:
|
|
3
|
+
export declare function withAnalysisApi<T>(cwd: string | undefined, run: (api: HeadlessAnalysisApi) => Promise<T>): Promise<T>;
|
package/out/runtime.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI runtime uses the core analytical engine, not Langium.
|
|
3
|
+
* rq:["../../../reqlan rq/core_analysis/rust_port.rq".cutover]
|
|
4
|
+
* rq:["../../../reqlan rq/cli/cli_package.rq".architecture]
|
|
5
|
+
*/
|
|
1
6
|
import { existsSync } from 'node:fs';
|
|
2
7
|
import { dirname, resolve } from 'node:path';
|
|
3
|
-
import {
|
|
8
|
+
import { openAnalysisApi } from '@reqlan/analytical/core';
|
|
4
9
|
export function resolveWorkspaceRoot(cwd) {
|
|
5
10
|
const fromEnv = process.env.REQLAN_WORKSPACE?.trim();
|
|
6
11
|
if (fromEnv) {
|
|
@@ -20,17 +25,15 @@ export function resolveWorkspaceRoot(cwd) {
|
|
|
20
25
|
}
|
|
21
26
|
export async function withAnalysisApi(cwd, run) {
|
|
22
27
|
const workspaceRoot = resolveWorkspaceRoot(cwd);
|
|
23
|
-
const
|
|
28
|
+
const opened = await openAnalysisApi({
|
|
24
29
|
workspaceRoot,
|
|
25
|
-
cwd: cwd ? resolve(cwd) : process.cwd(),
|
|
26
30
|
storagePath: process.env.REQLAN_INDEX_PATH
|
|
27
31
|
});
|
|
28
|
-
await activateAnalysisRuntime(runtime);
|
|
29
32
|
try {
|
|
30
|
-
return await run(
|
|
33
|
+
return await run(opened.api);
|
|
31
34
|
}
|
|
32
35
|
finally {
|
|
33
|
-
await
|
|
36
|
+
await opened.dispose();
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
//# sourceMappingURL=runtime.js.map
|
package/out/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAA4B,MAAM,yBAAyB,CAAC;AAEpF,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,SAAS,CAAC;QACN,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO,GAAG,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,GAAuB,EACvB,GAA6C;IAE7C,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACjC,aAAa;QACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;YAAS,CAAC;QACP,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reqlan/cli",
|
|
3
3
|
"description": "CLI for parsing, analysing, and exporting reqlan requirement graphs",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
@@ -25,9 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"clipanion": "3.2.1",
|
|
28
|
-
"
|
|
29
|
-
"@reqlan/analytical": "0.9.1",
|
|
30
|
-
"@reqlan/language": "1.8.3"
|
|
28
|
+
"@reqlan/analytical": "0.10.0"
|
|
31
29
|
},
|
|
32
30
|
"devDependencies": {
|
|
33
31
|
"shx": "~0.4.0",
|
package/out/util.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { AstNode, LangiumCoreServices, LangiumDocument } from 'langium';
|
|
2
|
-
export interface ParseResult {
|
|
3
|
-
document: LangiumDocument;
|
|
4
|
-
diagnostics: Array<{
|
|
5
|
-
severity: number;
|
|
6
|
-
line: number;
|
|
7
|
-
character: number;
|
|
8
|
-
message: string;
|
|
9
|
-
text: string;
|
|
10
|
-
}>;
|
|
11
|
-
errorCount: number;
|
|
12
|
-
}
|
|
13
|
-
export declare function parseDocument(fileName: string, services: LangiumCoreServices): Promise<ParseResult>;
|
|
14
|
-
export declare function extractAstNode<T extends AstNode>(fileName: string, services: LangiumCoreServices): Promise<T>;
|
package/out/util.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as path from 'node:path';
|
|
2
|
-
import * as fs from 'node:fs';
|
|
3
|
-
import { URI } from 'langium';
|
|
4
|
-
export async function parseDocument(fileName, services) {
|
|
5
|
-
const extensions = services.LanguageMetaData.fileExtensions;
|
|
6
|
-
if (!extensions.includes(path.extname(fileName))) {
|
|
7
|
-
throw new Error(`Please choose a file with one of these extensions: ${extensions.join(', ')}.`);
|
|
8
|
-
}
|
|
9
|
-
if (!fs.existsSync(fileName)) {
|
|
10
|
-
throw new Error(`File ${fileName} does not exist.`);
|
|
11
|
-
}
|
|
12
|
-
const document = await services.shared.workspace.LangiumDocuments.getOrCreateDocument(URI.file(path.resolve(fileName)));
|
|
13
|
-
await services.shared.workspace.DocumentBuilder.build([document], { validation: true });
|
|
14
|
-
const diagnostics = (document.diagnostics ?? []).map(d => ({
|
|
15
|
-
severity: d.severity ?? 0,
|
|
16
|
-
line: d.range.start.line + 1,
|
|
17
|
-
character: d.range.start.character + 1,
|
|
18
|
-
message: typeof d.message === 'string' ? d.message : d.message.value,
|
|
19
|
-
text: document.textDocument.getText(d.range)
|
|
20
|
-
}));
|
|
21
|
-
const errorCount = diagnostics.filter(d => d.severity === 1).length;
|
|
22
|
-
return { document, diagnostics, errorCount };
|
|
23
|
-
}
|
|
24
|
-
export async function extractAstNode(fileName, services) {
|
|
25
|
-
const { document, errorCount, diagnostics } = await parseDocument(fileName, services);
|
|
26
|
-
if (errorCount > 0) {
|
|
27
|
-
const details = diagnostics
|
|
28
|
-
.filter(d => d.severity === 1)
|
|
29
|
-
.map(d => `line ${d.line}: ${d.message}`)
|
|
30
|
-
.join('\n');
|
|
31
|
-
throw new Error(`Validation errors:\n${details}`);
|
|
32
|
-
}
|
|
33
|
-
return document.parseResult?.value;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=util.js.map
|
package/out/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAc9B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,QAA6B;IAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,sDAAsD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CACjF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CACnC,CAAC;IACF,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAExF,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;QACpE,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KAC/C,CAAC,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,QAAgB,EAChB,QAA6B;IAE7B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,WAAW;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAU,CAAC;AAC5C,CAAC"}
|