@miragon/design-iq-validator 5.0.0-rc.0 → 5.1.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 CHANGED
@@ -1,13 +1,13 @@
1
1
  # @miragon/design-iq-validator
2
2
 
3
- Deterministic validator for BPM content repositories: `designiq.yml` discovery, BPMN structural
4
- checks (flow soundness, complete BPMNDI coverage), the generic cross-model reference rule
5
- (every required reference — `callActivity` calls, `businessRuleTask` decides — must resolve
6
- in the repo), and a per-mediaKind parse baseline for every other registered notation (a
7
- broken `.tt`/`.vc.json` is an ERROR; DSL notations are lenient by design). Every finding
8
- carries a stable `ruleId` (e.g. `bpmn/flow`, `dmn/di`, `refs/dangling`). It treats the
9
- target repo as pure data — it never executes content-repo code. Exit code 0 = no errors
10
- (warnings allowed), 1 = errors.
3
+ Deterministic validator for designIQ content repositories: `designiq.yml` discovery, BPMN
4
+ structural checks (flow soundness, complete BPMNDI coverage), DMN structure and DMNDI coverage,
5
+ the generic cross-model reference rule (every required reference — `callActivity` calls,
6
+ `businessRuleTask` decides — must resolve in the repo), and a per-mediaKind parse baseline for
7
+ every other registered notation (a broken `.tt`/`.vc.json` is an ERROR; DSL notations are
8
+ lenient by design). Every finding carries a stable `ruleId` (e.g. `bpmn/flow`, `dmn/di`,
9
+ `refs/dangling`). It treats the target repo as pure data — it never executes content-repo code.
10
+ Exit code 0 = no errors (warnings allowed), 1 = errors.
11
11
 
12
12
  ## Usage
13
13
 
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as runCli } from "./validate-C9ZythtW.js";
2
+ import { a as runCli } from "./validate-D5Lo0E8X.js";
3
3
  //#region src/cli.ts
4
4
  /**
5
5
  * CLI entry for the platform validator. A dedicated entry file (instead of an
@@ -41,8 +41,8 @@ const NOTATIONS = [
41
41
  id: "wardley",
42
42
  label: "Wardley Map",
43
43
  noun: {
44
- singular: "wardley map",
45
- plural: "wardley maps"
44
+ singular: "Wardley Map",
45
+ plural: "Wardley Maps"
46
46
  },
47
47
  extensions: [".owm", ".wmap"],
48
48
  mediaKind: "dsl",
@@ -57,8 +57,8 @@ const NOTATIONS = [
57
57
  id: "team-topology",
58
58
  label: "Team Topology",
59
59
  noun: {
60
- singular: "team topology",
61
- plural: "team topologies"
60
+ singular: "Team Topology",
61
+ plural: "Team Topologies"
62
62
  },
63
63
  extensions: [".tt", ".ttm.json"],
64
64
  mediaKind: "json",
@@ -69,8 +69,8 @@ const NOTATIONS = [
69
69
  id: "event-storming",
70
70
  label: "Event Storming",
71
71
  noun: {
72
- singular: "event storming board",
73
- plural: "event storming boards"
72
+ singular: "Event Storming board",
73
+ plural: "Event Storming boards"
74
74
  },
75
75
  extensions: [".storm"],
76
76
  mediaKind: "dsl",
@@ -85,8 +85,8 @@ const NOTATIONS = [
85
85
  id: "context-map",
86
86
  label: "Context Map",
87
87
  noun: {
88
- singular: "context map",
89
- plural: "context maps"
88
+ singular: "Context Map",
89
+ plural: "Context Maps"
90
90
  },
91
91
  extensions: [".cm.json"],
92
92
  mediaKind: "json",
@@ -107,8 +107,8 @@ const NOTATIONS = [
107
107
  id: "value-chain",
108
108
  label: "Value Chain",
109
109
  noun: {
110
- singular: "value chain",
111
- plural: "value chains"
110
+ singular: "Value Chain",
111
+ plural: "Value Chains"
112
112
  },
113
113
  extensions: [".vc.json"],
114
114
  mediaKind: "json",
@@ -1,2 +1,2 @@
1
- import { a as discoverModels, i as contentConfigConflict, o as legacyContentConfigFile, s as loadContentConfig, t as CONTENT_CONFIG_FILE } from "./content-BoFksK67.js";
1
+ import { a as discoverModels, i as contentConfigConflict, o as legacyContentConfigFile, s as loadContentConfig, t as CONTENT_CONFIG_FILE } from "./content-Bsv9ZLFd.js";
2
2
  export { CONTENT_CONFIG_FILE, contentConfigConflict, discoverModels, legacyContentConfigFile, loadContentConfig };
@@ -1,4 +1,4 @@
1
- import { _ as byId, c as resolveContentConfigFile, d as extractModelGraph, f as parseXml, g as byExtension, h as kindOf, l as XMLValidator, m as requirementHref, p as readBpmn, r as CONTENT_CONFIG_NAMES, u as asArray } from "./content-BoFksK67.js";
1
+ import { _ as byId, c as resolveContentConfigFile, d as extractModelGraph, f as parseXml, g as byExtension, h as kindOf, l as XMLValidator, m as requirementHref, p as readBpmn, r as CONTENT_CONFIG_NAMES, u as asArray } from "./content-Bsv9ZLFd.js";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { relative, resolve } from "node:path";
4
4
  //#region ../notations/refs.ts
@@ -86,7 +86,7 @@ const notContentRepoError = (root) => {
86
86
  //#endregion
87
87
  //#region src/validate.ts
88
88
  /**
89
- * Deterministic validation of a BPM content repository (the slim contract).
89
+ * Deterministic validation of a content repository (the slim contract).
90
90
  *
91
91
  * A content repo is a root `designiq.yml` naming the folder its BPMN processes
92
92
  * live in (@designiq/notations/content); a process IS a `.bpmn` file there. This
@@ -436,7 +436,7 @@ async function runCli() {
436
436
  /** optional single-model filter (a model file stem) */
437
437
  const only = argv[0];
438
438
  const rel = (p) => p.startsWith("/") ? relative(ROOT, p) : p;
439
- const { CONTENT_CONFIG_FILE, contentConfigConflict, discoverModels, legacyContentConfigFile, loadContentConfig } = await import("./content-B_0zdBLT.js");
439
+ const { CONTENT_CONFIG_FILE, contentConfigConflict, discoverModels, legacyContentConfigFile, loadContentConfig } = await import("./content-DgyuLYdD.js");
440
440
  const cfg = loadContentConfig(ROOT);
441
441
  if (!cfg) {
442
442
  console.error(notContentRepoError(ROOT));
package/dist/validate.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as runCli, i as checkModelBaseline, n as checkDmnXml, r as checkModel, t as checkBpmnXml } from "./validate-C9ZythtW.js";
1
+ import { a as runCli, i as checkModelBaseline, n as checkDmnXml, r as checkModel, t as checkBpmnXml } from "./validate-D5Lo0E8X.js";
2
2
  export { checkBpmnXml, checkDmnXml, checkModel, checkModelBaseline, runCli };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@miragon/design-iq-validator",
3
- "version": "5.0.0-rc.0",
3
+ "version": "5.1.0",
4
4
  "type": "module",
5
- "description": "Platform-owned validator for BPM content repos — designiq.yml discovery + BPMN structure and BPMNDI coverage. Runs against any checkout via --root; never executes content-repo code.",
5
+ "description": "Platform-owned validator for designIQ content repos — designiq.yml discovery, BPMN/DMN structure and diagram coverage, cross-model references, and a parse check for every other notation. Runs against any checkout via --root; never executes content-repo code.",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
@@ -10,8 +10,10 @@
10
10
  "directory": "packages/validator"
11
11
  },
12
12
  "keywords": [
13
+ "modeling",
13
14
  "bpm",
14
15
  "bpmn",
16
+ "dmn",
15
17
  "validator",
16
18
  "cli"
17
19
  ],
@@ -32,7 +34,7 @@
32
34
  },
33
35
  "//": "fast-xml-parser stays a RUNTIME dependency although src/ no longer imports it directly: tsdown inlines @designiq/notations (whose extract.ts imports it) but keeps npm deps external, so the published dist/ resolves it from here. Removing it breaks the npm artifact at import time while the workspace keeps working.",
34
36
  "dependencies": {
35
- "fast-xml-parser": "5.11.1",
37
+ "fast-xml-parser": "5.11.2",
36
38
  "yaml": "2.9.1"
37
39
  },
38
40
  "devDependencies": {