@reqlan/cli 0.2.4 → 0.3.1
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 +24 -3
- package/out/commands/init.d.ts +8 -0
- package/out/commands/init.js +57 -0
- package/out/commands/init.js.map +1 -0
- package/out/main.js +2 -0
- package/out/main.js.map +1 -1
- package/out/runtime.js +1 -0
- package/out/runtime.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/littletuna4/reqlan/HEAD/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/littletuna4/reqlan/HEAD/site/public/logo.svg" alt="reqlan logo" width="128" height="128">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# @reqlan/cli
|
|
@@ -36,14 +36,35 @@ The ideas index is shared application memory at `<workspace>/.reqlan/ideas-index
|
|
|
36
36
|
|
|
37
37
|
## Links
|
|
38
38
|
|
|
39
|
-
- [Site](https://
|
|
39
|
+
- [Site](https://reqlan.com)
|
|
40
40
|
- [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=reqlan.reqlan-extension)
|
|
41
41
|
- [Open VSX](https://open-vsx.org/extension/reqlan/reqlan-extension)
|
|
42
42
|
- [GitHub repository](https://github.com/littletuna4/reqlan)
|
|
43
|
-
- [Contact](mailto:reqlan@
|
|
43
|
+
- [Contact](mailto:reqlan@reqlan.com)
|
|
44
44
|
|
|
45
45
|
## Changelog
|
|
46
46
|
|
|
47
|
+
### 0.3.1
|
|
48
|
+
|
|
49
|
+
#### Patch Changes
|
|
50
|
+
|
|
51
|
+
- 0a5649e: update the site base path, and untrack build artifacts
|
|
52
|
+
- Updated dependencies [0a5649e]
|
|
53
|
+
- @reqlan/analytical@0.6.1
|
|
54
|
+
- @reqlan/language@1.6.1
|
|
55
|
+
|
|
56
|
+
### 0.3.0
|
|
57
|
+
|
|
58
|
+
#### Minor Changes
|
|
59
|
+
|
|
60
|
+
- 54a2536: introduce bases, refine config, improvements to summary, site improvements.
|
|
61
|
+
|
|
62
|
+
#### Patch Changes
|
|
63
|
+
|
|
64
|
+
- Updated dependencies [54a2536]
|
|
65
|
+
- @reqlan/analytical@0.6.0
|
|
66
|
+
- @reqlan/language@1.6.0
|
|
67
|
+
|
|
47
68
|
### 0.2.4
|
|
48
69
|
|
|
49
70
|
#### Patch Changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Command, Option } from 'clipanion';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { createBase } from '@reqlan/analytical';
|
|
4
|
+
import { emit } from '../output.js';
|
|
5
|
+
export class InitCommand extends Command {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.directory = Option.String({ required: false });
|
|
9
|
+
this.json = Option.Boolean('--json', false, {
|
|
10
|
+
description: 'Emit machine-readable JSON'
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async execute() {
|
|
14
|
+
try {
|
|
15
|
+
const root = resolve(this.directory ?? process.cwd());
|
|
16
|
+
const result = await createBase(root);
|
|
17
|
+
const payload = {
|
|
18
|
+
ok: true,
|
|
19
|
+
created: result.created,
|
|
20
|
+
root: result.base.root,
|
|
21
|
+
memoryPath: result.base.memoryPath,
|
|
22
|
+
label: result.base.label
|
|
23
|
+
};
|
|
24
|
+
if (this.json) {
|
|
25
|
+
emit(payload, true);
|
|
26
|
+
}
|
|
27
|
+
else if (result.created) {
|
|
28
|
+
this.context.stdout.write(`Initialized reqlan base at ${result.base.root}\n` +
|
|
29
|
+
`Marker: ${result.base.memoryPath}\n`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.context.stdout.write(`Reqlan base already exists at ${result.base.root}\n` +
|
|
33
|
+
`Marker: ${result.base.memoryPath}\n`);
|
|
34
|
+
}
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
39
|
+
this.context.stderr.write(`${message}\n`);
|
|
40
|
+
return 1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
InitCommand.paths = [['init']];
|
|
45
|
+
InitCommand.usage = Command.Usage({
|
|
46
|
+
description: 'Initialise a reqlan base by creating a `.reqlan` marker directory.',
|
|
47
|
+
details: `
|
|
48
|
+
Creates <directory>/.reqlan/ (empty directory is a valid base marker).
|
|
49
|
+
Idempotent: if the marker already exists, exits successfully and reports that.
|
|
50
|
+
`,
|
|
51
|
+
examples: [
|
|
52
|
+
['Init the current directory', '$0 init'],
|
|
53
|
+
['Init a specific folder', '$0 init ./my-project'],
|
|
54
|
+
['JSON output', '$0 init --json']
|
|
55
|
+
]
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +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,oBAAoB,CAAC;AAChD,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/main.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ParseCommand } from './commands/parse.js';
|
|
|
6
6
|
import { AnalyseCommand } from './commands/analyse.js';
|
|
7
7
|
import { SearchCommand } from './commands/search.js';
|
|
8
8
|
import { ExportCommand } from './commands/export.js';
|
|
9
|
+
import { InitCommand } from './commands/init.js';
|
|
9
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
11
|
const packageJson = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf8'));
|
|
11
12
|
const cli = new Cli({
|
|
@@ -19,5 +20,6 @@ cli.register(ParseCommand);
|
|
|
19
20
|
cli.register(AnalyseCommand);
|
|
20
21
|
cli.register(SearchCommand);
|
|
21
22
|
cli.register(ExportCommand);
|
|
23
|
+
cli.register(InitCommand);
|
|
22
24
|
await cli.runExit(process.argv.slice(2));
|
|
23
25
|
//# sourceMappingURL=main.js.map
|
package/out/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAE5F,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IAChB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,WAAW,CAAC,OAAO;CACrC,CAAC,CAAC;AAEH,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACtC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC7B,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC5B,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC5B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE1B,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/out/runtime.js
CHANGED
|
@@ -22,6 +22,7 @@ export async function withAnalysisApi(cwd, run) {
|
|
|
22
22
|
const workspaceRoot = resolveWorkspaceRoot(cwd);
|
|
23
23
|
const runtime = createAnalysisRuntime({
|
|
24
24
|
workspaceRoot,
|
|
25
|
+
cwd: cwd ? resolve(cwd) : process.cwd(),
|
|
25
26
|
storagePath: process.env.REQLAN_INDEX_PATH
|
|
26
27
|
});
|
|
27
28
|
await activateAnalysisRuntime(runtime);
|
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,EACH,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EAE5B,MAAM,oBAAoB,CAAC;AAE5B,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,GAAqC;IAErC,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAoB,qBAAqB,CAAC;QACnD,aAAa;QACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACP,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC"}
|
|
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,EACH,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EAE5B,MAAM,oBAAoB,CAAC;AAE5B,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,GAAqC;IAErC,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAoB,qBAAqB,CAAC;QACnD,aAAa;QACb,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACP,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC7C,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.3.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"clipanion": "3.2.1",
|
|
28
28
|
"langium": "~4.3.0",
|
|
29
|
-
"@reqlan/
|
|
30
|
-
"@reqlan/
|
|
29
|
+
"@reqlan/language": "1.6.1",
|
|
30
|
+
"@reqlan/analytical": "0.6.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"shx": "~0.4.0"
|