Repository navigation
refactor!: move linting out of the domain and merge duplicated domain concepts - #116
Merged
Merged
Conversation
… concepts - bpmnlint integration moves to adapters/out/bpmnlint; conventions text and the ops schema move to the report adapter - one Finding type and one FindingMatcher replace the parallel finding types and comparisons - KINDS is the single element-kind registry, TRIGGERS the single trigger table - the read views share ElementSummary, FlowRef and one element-line formatter - editing is grouped into elements, connections, properties, events, extensions and ids; classes take one EditSession - diagram commands live in domain/diagram/commands behind one dispatch - one DocumentPort loads, targets and saves a document - CliError is renamed to BpmnError (CliError stays as a deprecated alias); domain classes no longer end in Service; code says command instead of op - duplicated geometry and moddle helpers are merged; KindError is replaced by coded errors - tests mirror src; biome warns on complex functions and nested ternaries BREAKING CHANGE: the bpmn-auto-layout engine is removed, together with the `engine` option and the `--engine` flag. Full redraws always use the built-in clean engine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A multi-perspective review found that the domain mixed in non-domain code (the bpmnlint integration, presentation text, a second layout engine) and modelled several concepts many times over. This PR moves that code out and merges the parallel concepts, keeping the hexagon strict: CLI and entries reach the domain only through use cases.
adapters/out/bpmnlint; the conventions text andOpsSchemaBuildermove toadapters/in/report.engineoption and--engine.Finding+FindingMatcherinstead of ~7 finding types and several comparisons;KINDSas the single kind registry andTRIGGERSas the single trigger table;ElementSummary,FlowRefand one element-line formatter shared by the four read views.domain/editingis grouped into elements, connections, properties, events, extensions and ids, with classes constructed from oneEditSession; all diagram commands live indomain/diagram/commands; oneDocumentPortloads, targets and saves a document.CliError→BpmnError(deprecated alias kept), noServicesuffix in the domain,commandinstead ofopin code (the JSON keyopstays).src/, biome as a warn-only complexity check in the gate.Output is unchanged apart from the removed engine:
bpmn showtext and JSON were compared byte for byte over all 169 repo models (54,964 views), and the layout regression score stays at 370.Not done here, tracked separately: #113 (renderer behind a port), #114 (engine rules as bpmnlint rules), #115 (drop the learned id style).
Checklist
npm run typecheckpassesnpm run gatepassessrc/report/guide.tsand the matching page indocs/are updated (only if a command, option or output changed)Linked issue
Refs #113, #114, #115