Skip to content

@veridtools/dmn-diff

0.5.1

Patch Changes

  • 1e9e89b: Add name field to ModifiedChange and the modified DiffToken. The semantic renderer now shows the element's human-readable name in the modified heading (~ decision "Loan Approval" (d1) modified) instead of repeating the id.

0.5.0

Minor Changes

  • 61b7977: Migrated the internal XML parser to @veridtools/dmn-parser, replacing the previous fast-xml-parser pipeline. The public API (diff, DiffResult, Change, etc.) is unchanged.

    • Parser now handles BOM, CDATA, DMNDI removal, and all DMN 1.0–1.5 normalizations
    • Expanded fixture coverage: all @veridtools/dmn-fixtures variants now pass, including outputLabel, isCollection on InputData, type on KnowledgeSource, and URI on PerformanceIndicator
    • Fixed performanceIndicator.URI field path in severity tracking
    • Removed internal src/parser/ directory — indexer moved to src/diff/

0.4.0

Minor Changes

  • 16aaa42: feat(detect-format): add detectFormat() to identify rendered string format ('json' | 'semantic' | 'rows' | 'xml')

0.3.0

Minor Changes

  • d4c1b67: feat(tokenize): parse rendered diff strings back into tokens

    Extend tokenize() to accept DiffResult | string. Auto-detects JSON,
    rows, and semantic formats; strips ANSI codes transparently. JSON
    round-trips losslessly; semantic and rows recover element types, ids,
    field changes, and severities (path/parentId not recoverable from text).
    
    Add parse-rows.ts and parse-semantic.ts for format-specific parsing.
    Add tests for added/removed token parsing in rows format.
    Update docs and README to document the new string input capability.
    

0.2.0

Minor Changes

  • d17c691: feat(cli): add --help flag, version display, unknown flag guard, and docs deploy

0.1.0

Minor Changes

  • f36b9a8: feat: initial release of @veridtools/dmn-diff

    Semantic diff library and CLI for DMN files. Matches elements by @id, classifies field changes as breaking/non-breaking/cosmetic, and supports four output modes: semantic prose, row-diff, JSON, and raw XML diff.

    • ID-based identity — reordering rules produces zero diff
    • Severity classification per field change
    • CLI with --rows, --json, --xml, --no-color, --skip-breaking flags
    • Exit code 1 on changes, 0 when clean — CI/CD native
    • Full normalization: CDATA, BOM, hitPolicy defaults, DMNDI exclusion
    • Programmatic API with DiffResult type
    • Interactive playground in VitePress docs (semantic/rows/json/xml tabs)
    • 582 tests across unit, integration, and CLI layers
    • DMN 1.1–1.5 support

Last updated:

Released under the MIT License.