sysml-validate 0.15.6 → 0.15.8
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 +7 -7
- package/out/main.js +13 -1
- package/out/main.js.map +2 -2
- package/package.json +1 -1
- package/resources/sysml.dimension-table.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Headless SysML v2 / KerML validation. Runs the same parser, linker, and
|
|
4
4
|
diagnostics as the
|
|
5
5
|
[SysML v2 VS Code extension](https://marketplace.visualstudio.com/items?itemName=voidaliot.vscode-sysml-v2)
|
|
6
|
-
|
|
6
|
+
Problems panel, in a terminal or a CI job. No VS Code, no browser, no
|
|
7
7
|
display server.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
@@ -26,7 +26,7 @@ models/vehicle.sysml
|
|
|
26
26
|
✓ 2 files checked, no problems found
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
Colour is used on a terminal and dropped everywhere else
|
|
29
|
+
Colour is used on a terminal and dropped everywhere else, a pipe, a log file,
|
|
30
30
|
or a coding agent's chat window gets exactly the plain text above. `--color` and
|
|
31
31
|
`--no-color` force it either way, and `NO_COLOR` is honoured.
|
|
32
32
|
|
|
@@ -62,7 +62,7 @@ and the rest resolve with nothing else installed.
|
|
|
62
62
|
## Examples
|
|
63
63
|
|
|
64
64
|
**Check one file while you work.** Paths, positions, severity, and the
|
|
65
|
-
diagnostic code
|
|
65
|
+
diagnostic code, everything needed to jump to the problem:
|
|
66
66
|
|
|
67
67
|
```console
|
|
68
68
|
$ sysml-validate models/vehicle.sysml
|
|
@@ -72,7 +72,7 @@ models/vehicle.sysml
|
|
|
72
72
|
✖ 1 problem (1 error) in 1 of 1 file
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
**See the advisory notices too.** Hints and info are out of the way by default
|
|
75
|
+
**See the advisory notices too.** Hints and info are out of the way by default,
|
|
76
76
|
`--all` brings them in:
|
|
77
77
|
|
|
78
78
|
```console
|
|
@@ -99,7 +99,7 @@ Compact prints **nothing at all** on a clean run, so `[ -s report.txt ]` and
|
|
|
99
99
|
**Structured output** for a script or a dashboard:
|
|
100
100
|
|
|
101
101
|
```console
|
|
102
|
-
$ sysml-validate models/ --format json | jq '.counts
|
|
102
|
+
$ sysml-validate models/ --format json | jq '.counts.diagnostics[0].code'
|
|
103
103
|
{
|
|
104
104
|
"error": 2,
|
|
105
105
|
"warning": 0,
|
|
@@ -143,14 +143,14 @@ exit=1
|
|
|
143
143
|
## Your project's configuration is honoured
|
|
144
144
|
|
|
145
145
|
The validator reads the settings your team commits, in the editor's own
|
|
146
|
-
precedence
|
|
146
|
+
precedence, `.vscode/settings.json` first, then `.vscode/sysml/project.json`:
|
|
147
147
|
|
|
148
148
|
| Setting | Effect |
|
|
149
149
|
|---|---|
|
|
150
150
|
| `sysml.lint.profile` | `default` / `quiet` / `strict` style-notice volume |
|
|
151
151
|
| `sysml.validation.severities` | Per-code severity overrides (e.g. `{ "SEM006": "warning" }`) |
|
|
152
152
|
| `sysml.diagnostics.unusedImports` | `off` / `warning` / `error` |
|
|
153
|
-
| `sysml.diagnostics.units` | UNIT001
|
|
153
|
+
| `sysml.diagnostics.units` | UNIT001 to UNIT005 dimensional analysis on/off |
|
|
154
154
|
|
|
155
155
|
`--lint-profile` overrides the profile for one run, and `--no-config` ignores
|
|
156
156
|
both files. Note that `sysml.validation.severities` covers the validator's own
|
package/out/main.js
CHANGED
|
@@ -61187,10 +61187,22 @@ ${baseIndent}}`;
|
|
|
61187
61187
|
// target feature, so each end must be able to hold it (OMG SysML v2 Part 1
|
|
61188
61188
|
// §7.12 ItemFlow / PayloadFeature). Reported per end, and only when the end
|
|
61189
61189
|
// resolves unambiguously and carries exactly one written type.
|
|
61190
|
+
//
|
|
61191
|
+
// A MESSAGE is deliberately exempt, though the grammar folds it into the same
|
|
61192
|
+
// statement. OMG SysML 8.2.2.16 gives `flow` FlowEndMembers — a FlowEnd is a
|
|
61193
|
+
// FlowFeature, the feature that holds the payload — while a message's `from`
|
|
61194
|
+
// and `to` are MessageEventMembers: `message m of i : I from evt1 to evt2` is
|
|
61195
|
+
// "parsed as an abstract FlowUsage, but without any flowEnds", its two ends
|
|
61196
|
+
// redefining Message::sourceEvent and Message::targetEvent (8.4.12.2). The
|
|
61197
|
+
// ends of a message are the two OCCURRENCES that exchange the payload, so
|
|
61198
|
+
// demanding that they be able to hold it reports every sequence-diagram
|
|
61199
|
+
// message as an error.
|
|
61190
61200
|
checkFlowPayload(decl, model, index, accept) {
|
|
61191
61201
|
if (decl.$type !== "FlowStmt")
|
|
61192
61202
|
return;
|
|
61193
61203
|
const flow = decl;
|
|
61204
|
+
if (flow.flowKind === "message")
|
|
61205
|
+
return;
|
|
61194
61206
|
const payload = flowPayloadType(flow.payload);
|
|
61195
61207
|
if (!payload || payload.conjugated)
|
|
61196
61208
|
return;
|
|
@@ -70012,7 +70024,7 @@ async function runValidation(command) {
|
|
|
70012
70024
|
}
|
|
70013
70025
|
|
|
70014
70026
|
// src/main.ts
|
|
70015
|
-
var VERSION2 = true ? "0.15.
|
|
70027
|
+
var VERSION2 = true ? "0.15.8" : "dev";
|
|
70016
70028
|
async function main(argv) {
|
|
70017
70029
|
const command = parseArgs(argv);
|
|
70018
70030
|
if (command.kind === "help") {
|