From 6be8c6d4237e03233504de9d73074a116ca4cce8 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 30 Sep 2026 11:24:22 -0400 Subject: [PATCH] Stop warning about an empty System Composer interface dictionary Opening an ordinary .sldd could put a banner over the tab saying the part "simulink/systemcomposer/interfaceDictionary.xml" holds nothing readable and that architectural entries are therefore reported by their Simulink class. It was a false positive on a file with nothing wrong with it, and it was raised inconsistently: the compressed-binary reader warned where the uncompressed-text reader stayed quiet, so one dictionary said two different things depending on how it had been saved. An empty catalog part is what MATLAB writes into any dictionary System Composer has merely touched -- built-in value types and no definitions -- so the file is complete and there is nothing to act on. Two measurements settle that the fallback is not a degrade either: - Only Simulink.Bus is ambiguous. Over 14,668 derived entries in four real dictionaries every other class is 1:1 with its classification, so IsDerived plus the class already yields the identical Kind. IsDerived also drives the Architectural-vs-Design section split on its own. - For Simulink.Bus the fallback IS MATLAB's answer. Remove the part from a dictionary holding a StructType and a DataInterface, reopen it in MATLAB R2027a, and both come back as Simulink.dictionary.archdata.DataInterface -- exactly DERIVED_KIND_BY_CLASS['Simulink.Bus']. So both readers now stay silent on the same terms, whether the part is absent (nearly every .sldd) or present and empty. Four tests pin it: the kinds either reader falls back to, the kinds it produces when the catalog IS there, and the equality of the two formats' silence. test/dataModelSources.test.ts no longer had a .sldd reaching two layers once this warning was gone, so the shared-sink test now proves the same contract directly: the array the parser filled is the array the source carries, and the node layer appends to it rather than replacing it. --- dist/datamodel/kindMap.d.ts.map | 2 +- dist/datamodel/kindMap.js | 21 +++-- dist/datamodel/kindMap.js.map | 2 +- dist/datamodel/node/container/SlddNode.d.ts | 2 +- .../node/container/SlddNode.d.ts.map | 2 +- dist/datamodel/node/container/SlddNode.js | 45 +++++------ dist/datamodel/node/container/SlddNode.js.map | 2 +- .../parser/BinarySlddParser.d.ts.map | 2 +- dist/datamodel/parser/BinarySlddParser.js | 25 +++--- dist/datamodel/parser/BinarySlddParser.js.map | 2 +- dist/datamodel/parser/ScCatalog.d.ts | 1 - dist/datamodel/parser/ScCatalog.d.ts.map | 2 +- dist/datamodel/parser/ScCatalog.js | 32 +++++--- dist/datamodel/parser/ScCatalog.js.map | 2 +- src/datamodel/kindMap.ts | 21 +++-- src/datamodel/node/container/SlddNode.ts | 44 ++++------- src/datamodel/parser/BinarySlddParser.ts | 29 ++----- src/datamodel/parser/ScCatalog.ts | 32 +++++--- test/dataModelSources.test.ts | 48 +++++++++--- test/parseWarnings.test.ts | 43 +++++++++-- test/scCatalog.test.ts | 76 ++++++++++++++++++- 21 files changed, 275 insertions(+), 160 deletions(-) diff --git a/dist/datamodel/kindMap.d.ts.map b/dist/datamodel/kindMap.d.ts.map index b64649e..a0b3bde 100644 --- a/dist/datamodel/kindMap.d.ts.map +++ b/dist/datamodel/kindMap.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"kindMap.d.ts","sourceRoot":"","sources":["../../src/datamodel/kindMap.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgChD,CAAC;AAUF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGxD,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASzD,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE7D;AAQD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACtF,MAAM,CASR"} \ No newline at end of file +{"version":3,"file":"kindMap.d.ts","sourceRoot":"","sources":["../../src/datamodel/kindMap.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgChD,CAAC;AAiBF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGxD,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASzD,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE7D;AAQD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACtF,MAAM,CASR"} \ No newline at end of file diff --git a/dist/datamodel/kindMap.js b/dist/datamodel/kindMap.js index 54afc67..ed3e6d9 100644 --- a/dist/datamodel/kindMap.js +++ b/dist/datamodel/kindMap.js @@ -42,13 +42,20 @@ export const KIND_BY_CLASS = { 'Simulink.ConfigSetRef': 'Configuration Reference', }; // The default user-facing Kind for a DERIVED (architectural) entry when the -// SystemComposer catalog doesn't classify it — e.g. a freshly pasted entry, whose -// new name isn't in the catalog. Architectural data stores interfaces as ordinary -// Simulink objects, so the same Class means a different Kind there: a derived -// Simulink.Bus is a Data Interface, a derived Simulink.ConnectionBus a Physical -// Interface. Classes whose Kind is identical in both sections (e.g. -// Simulink.ServiceBus → 'Service Interface', value/numeric/alias types) are -// omitted — KIND_BY_CLASS already yields the right label for them. +// SystemComposer catalog doesn't classify it — a freshly pasted entry whose new name +// isn't in the catalog, or a dictionary with no catalog part at all. Architectural data +// stores interfaces as ordinary Simulink objects, so the same Class means a different +// Kind there: a derived Simulink.Bus is a Data Interface, a derived +// Simulink.ConnectionBus a Physical Interface. Classes whose Kind is identical in both +// sections (e.g. Simulink.ServiceBus → 'Service Interface', value/numeric/alias types) +// are omitted — KIND_BY_CLASS already yields the right label for them. +// +// `Simulink.Bus` is the ONLY class the catalog disambiguates (DataInterface vs +// StructType; measured 1:1 for every other class over 14,668 derived entries in four +// real dictionaries), and 'Data Interface' is not a guess: strip the interface +// dictionary from a `.sldd` holding both and MATLAB R2027a reports both as a +// DataInterface too. So this row is the catalog-less answer MATLAB gives, which is why +// a missing catalog is not worth a parse warning. See ScCatalog for the full note. export const DERIVED_KIND_BY_CLASS = { 'Simulink.Bus': 'Data Interface', 'Simulink.ConnectionBus': 'Physical Interface', diff --git a/dist/datamodel/kindMap.js.map b/dist/datamodel/kindMap.js.map index be864ab..f874d1d 100644 --- a/dist/datamodel/kindMap.js.map +++ b/dist/datamodel/kindMap.js.map @@ -1 +1 @@ -{"version":3,"file":"kindMap.js","sourceRoot":"","sources":["../../src/datamodel/kindMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"kindMap.js","sourceRoot":"","sources":["../../src/datamodel/kindMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/container/SlddNode.d.ts b/dist/datamodel/node/container/SlddNode.d.ts index 1a8868b..c8386b7 100644 --- a/dist/datamodel/node/container/SlddNode.d.ts +++ b/dist/datamodel/node/container/SlddNode.d.ts @@ -36,7 +36,7 @@ export default class SlddNode extends ContainerNode { * reports through one list no matter which flavour it arrived in. */ static parse(json: Record, filename: string, warnings?: ParseWarning[]): SlddNode; - static _parseSystemComposer(parts: Record | null, warnings?: ParseWarning[]): SystemComposerCatalog | null; + static _parseSystemComposer(parts: Record | null): SystemComposerCatalog | null; static getSectionKey(entry: Record): string; serialize(): unknown; serializeJson(): Record; diff --git a/dist/datamodel/node/container/SlddNode.d.ts.map b/dist/datamodel/node/container/SlddNode.d.ts.map index 68ee3d6..d6ce5fd 100644 --- a/dist/datamodel/node/container/SlddNode.d.ts.map +++ b/dist/datamodel/node/container/SlddNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"SlddNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SlddNode.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAgBvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,oBAAoB,EAAE,OAAO,EAAE,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;gBAEjC,IAAI,EAAE,MAAM;IAiBxB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,eAAe,IAAI,MAAM,CAM5B;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAM3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAI3C,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAQnF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,QAAQ;IA0FlG,MAAM,CAAC,oBAAoB,CACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACrC,QAAQ,CAAC,EAAE,YAAY,EAAE,GAC1B,qBAAqB,GAAG,IAAI;IAqE/B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAK5D,SAAS,IAAI,OAAO;IAKpB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAqB3C"} \ No newline at end of file +{"version":3,"file":"SlddNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SlddNode.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAgBvE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,oBAAoB,EAAE,OAAO,EAAE,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;gBAEjC,IAAI,EAAE,MAAM;IAiBxB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,eAAe,IAAI,MAAM,CAM5B;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAM3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAI3C,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAQnF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,QAAQ;IA0FlG,MAAM,CAAC,oBAAoB,CACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACtC,qBAAqB,GAAG,IAAI;IA0D/B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAK5D,SAAS,IAAI,OAAO;IAKpB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAqB3C"} \ No newline at end of file diff --git a/dist/datamodel/node/container/SlddNode.js b/dist/datamodel/node/container/SlddNode.js index 3e811fd..0b0818d 100644 --- a/dist/datamodel/node/container/SlddNode.js +++ b/dist/datamodel/node/container/SlddNode.js @@ -7,7 +7,7 @@ import PropRelease from '../../prop/PropRelease.js'; import PropFileFormat from '../../prop/PropFileFormat.js'; import PropNumberOfEntries from '../../prop/PropNumberOfEntries.js'; import { slddChunkContent } from '../../parser/SlddContent.js'; -import { SC_PART, scPartUnreadableMessage } from '../../parser/ScCatalog.js'; +import { SC_PART } from '../../parser/ScCatalog.js'; import { DATA_PART_KEY, TEXT_CONTENT, TEXT_PARTS } from '../../parser/SlddParts.js'; const SECTION_DEFS = [ { key: 'design', label: 'Design Data', icon: 'databaseFolderDesign' }, @@ -96,10 +96,10 @@ export default class SlddNode extends ContainerNode { // constant, and a reader in the same file spelling it by hand is the two-copies-of- // one-name shape SlddParts exists to close. A drift here would not empty the // dictionary — the entries arrive through `slddChunkContent` — it would drop only - // the System Composer catalog, and drop it QUIETLY: a bag that is not there looks - // exactly like a dictionary with no catalog part, which _parseSystemComposer is - // deliberately silent about. That is the degrade its own comment below calls the - // nastiest partial in this reader. + // the System Composer catalog, and drop it QUIETLY, since a bag that is not there is + // indistinguishable from a dictionary with no catalog part and nothing warns about + // either. What that costs is one Kind on one class (a struct type reads as a data + // interface), so the drift is worth naming here even though it is not worth a banner. const parts = json[TEXT_PARTS]; // The shared unwrap (SlddContent), not a local one: the same three-level path is what // the usage index reads a dictionary's entries through, and a second copy here is a @@ -114,7 +114,7 @@ export default class SlddNode extends ContainerNode { // over on `__scCatalog`. The textual flavour has no parser between the bytes and // here, so its catalog is read out of the parts below. node.systemComposer = json.__scCatalog - ?? SlddNode._parseSystemComposer(parts, warnings); + ?? SlddNode._parseSystemComposer(parts); if (!content) { // The four sections are built by the constructor, so a content-less dictionary // used to open as a perfectly ordinary tree with four empty sections and report @@ -167,33 +167,22 @@ export default class SlddNode extends ContainerNode { } // Extract the interface and modeled-data-type classifications from the // systemcomposer interface dictionary part, if present. - static _parseSystemComposer(parts, warnings) { + static _parseSystemComposer(parts) { const part = parts && parts[`__MW_TEXT_PART__/${SC_PART}`]; const content = part && part[TEXT_CONTENT]; const entries = content && content.entries; if (!entries) { - // The two reasons for a null catalog are opposites, and only one of them is a - // loss. A dictionary with no interfaceDictionary part is every `.sldd` that is - // not a System Composer interface dictionary — the overwhelming majority, and - // the limit of the file rather than of this reader — so it stays quiet. + // Both reasons for a null catalog stay quiet, and they are quiet on the SAME + // terms — which is the point, because this used to warn where the binary reader + // did not and the two flavours of one dictionary answered differently. // - // A part that is PRESENT and holds nothing readable is the file claiming the - // catalog is there. Losing it silently is the nastiest partial in the dictionary - // reader, because the tree still fills in: the catalog is what tells a StructType - // from a DataInterface (both are `Simulink.Bus`), so without it every - // architectural entry's Kind quietly degrades to its raw Simulink class. That is - // a wrong answer that looks exactly like a right one, which is worse than a - // missing one. - // - // `part-unreadable` with the part named, because the dictionary's entries are all - // still read and this is one piece of it that is not. - if (part) { - warnings?.push({ - code: 'part-unreadable', - message: scPartUnreadableMessage(SC_PART), - part: SC_PART, - }); - } + // A dictionary with no interfaceDictionary part is every `.sldd` that is not a + // System Composer interface dictionary: the overwhelming majority. A part that + // is present and holds nothing is a catalog with nothing in it — MATLAB writes + // exactly that into any dictionary System Composer has merely touched, built-in + // value types and no definitions. Neither one loses anything a reader could + // report: see the note below `classificationOf` in ScCatalog for the + // measurement, and `DERIVED_KIND_BY_CLASS` for the fallback it licenses. return null; } const interfaces = {}; diff --git a/dist/datamodel/node/container/SlddNode.js.map b/dist/datamodel/node/container/SlddNode.js.map index 90cf864..5e3f9db 100644 --- a/dist/datamodel/node/container/SlddNode.js.map +++ b/dist/datamodel/node/container/SlddNode.js.map @@ -1 +1 @@ -{"version":3,"file":"SlddNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SlddNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SlddNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SlddNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/BinarySlddParser.d.ts.map b/dist/datamodel/parser/BinarySlddParser.d.ts.map index 2a31d53..4f61dcc 100644 --- a/dist/datamodel/parser/BinarySlddParser.d.ts.map +++ b/dist/datamodel/parser/BinarySlddParser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BinarySlddParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"AA+CA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAyChE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAQD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwIzB;AAuYD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAExE"} \ No newline at end of file +{"version":3,"file":"BinarySlddParser.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"AA+CA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoChE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAQD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwIzB;AA+XD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAExE"} \ No newline at end of file diff --git a/dist/datamodel/parser/BinarySlddParser.js b/dist/datamodel/parser/BinarySlddParser.js index ae2618d..676d30f 100644 --- a/dist/datamodel/parser/BinarySlddParser.js +++ b/dist/datamodel/parser/BinarySlddParser.js @@ -45,7 +45,7 @@ import { unzipEntries } from './Inflate.js'; import { readDictionaryXml } from './XmlReader.js'; import { reasonOf } from './ParseWarning.js'; -import { SC_PART_XML, catalogFromDefinitions, scPartUnreadableMessage, scanScXml, } from './ScCatalog.js'; +import { SC_PART_XML, catalogFromDefinitions, scanScXml } from './ScCatalog.js'; import { DATA_PART_KEY, DATA_PART_XML, TEXT_CONTENT, TEXT_PARTS } from './SlddParts.js'; import { charNeedsShape, formatMatrixSerial, formatMxCharSerial, formatNumLiteral, needsExactInt, parseExactBody, parseMatlabNum, parseNumericBody, transposeFromColumnMajorND, SAVEOBJ_KEY, } from './XmlUtils.js'; /** @@ -256,7 +256,7 @@ export function parseBinarySlddParts(xmlString, zipMetadata, warnings) { __rawXml: xmlString, __zipMetadata: zipMetadata, __dataSourceAttrs: dataSourceAttrs, - ...scCatalogOf(zipMetadata, decoder, warnings), + ...scCatalogOf(zipMetadata, decoder), }; } /** @@ -266,30 +266,23 @@ export function parseBinarySlddParts(xmlString, zipMetadata, warnings) { * This reader is where it has to happen: the member is XML inside the package, and no * layer above ever sees those bytes — `SlddNode.parse` receives the parts bag, which * carries the member as raw pass-through bytes in `__zipMetadata`. Without this the - * catalog was simply absent for the binary flavour, and every architectural entry read - * as its raw Simulink class: a struct type reported as 'Data Interface', which is a - * wrong answer that looks exactly like a right one. + * catalog was simply absent for the binary flavour, so a struct type read as 'Data + * Interface' — which is what MATLAB itself answers with the part gone, but not what it + * answers with the part there, and the file is the authority when it has one. * * Spread into the content bag, so a dictionary with no interface dictionary (nearly * all of them) adds no key at all and `SlddNode.parse` falls through to the textual - * reader as before. + * reader as before. A member that is present but yields no definitions takes the same + * exit, and deliberately says nothing — see the note below `classificationOf` in + * ScCatalog for the MATLAB measurement that settled it. */ -function scCatalogOf(zipMetadata, decoder, warnings) { +function scCatalogOf(zipMetadata, decoder) { const member = zipMetadata[SC_PART_XML]; if (!member) { return {}; } const defs = scanScXml(decoder.decode(member)); if (!defs.length) { - // Present and holding no definitions: the package claims the catalog is there, and - // the entries all still read, so this is one piece of the dictionary missing rather - // than the dictionary. Same code, same words and the same reasoning as the textual - // reader's — see SlddNode._parseSystemComposer. - warnings?.push({ - code: 'part-unreadable', - message: scPartUnreadableMessage(SC_PART_XML), - part: SC_PART_XML, - }); return {}; } return { __scCatalog: catalogFromDefinitions(defs) }; diff --git a/dist/datamodel/parser/BinarySlddParser.js.map b/dist/datamodel/parser/BinarySlddParser.js.map index b86b0fe..d78bdca 100644 --- a/dist/datamodel/parser/BinarySlddParser.js.map +++ b/dist/datamodel/parser/BinarySlddParser.js.map @@ -1 +1 @@ -{"version":3,"file":"BinarySlddParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BinarySlddParser.js","sourceRoot":"","sources":["../../../src/datamodel/parser/BinarySlddParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/parser/ScCatalog.d.ts b/dist/datamodel/parser/ScCatalog.d.ts index bf3bb36..91a7dcb 100644 --- a/dist/datamodel/parser/ScCatalog.d.ts +++ b/dist/datamodel/parser/ScCatalog.d.ts @@ -6,7 +6,6 @@ export interface SystemComposerCatalog { } export declare const SC_TYPE_TO_CLASSIFICATION: Record; export declare function classificationOf(catalog: SystemComposerCatalog | null | undefined, entryName: string): string | null; -export declare function scPartUnreadableMessage(part: string): string; /** Where a name is written in the source text, as a half-open span. */ export interface ScNameSite { start: number; diff --git a/dist/datamodel/parser/ScCatalog.d.ts.map b/dist/datamodel/parser/ScCatalog.d.ts.map index 6a4c1c3..d7226a8 100644 --- a/dist/datamodel/parser/ScCatalog.d.ts.map +++ b/dist/datamodel/parser/ScCatalog.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScCatalog.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,OAAO,gDAAgD,CAAC;AAKrE,eAAO,MAAM,WAAW,oDAAmB,CAAC;AAM5C,MAAM,WAAW,qBAAqB;IAIlC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAKD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS5D,CAAC;AAKF,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAMf;AAQD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAYD,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,SAAS,EAAE,YAAY,GAAG,kBAAkB,CAAC;IAC7C,SAAS,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAQlF;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAsDrD;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAiB3D;AAkND,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,YAAY,EAAE,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,UAAU,EAAE,CASd;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,OAAO,CAcT"} \ No newline at end of file +{"version":3,"file":"ScCatalog.d.ts","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,OAAO,gDAAgD,CAAC;AAKrE,eAAO,MAAM,WAAW,oDAAmB,CAAC;AAM5C,MAAM,WAAW,qBAAqB;IAIlC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAKD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS5D,CAAC;AAKF,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAMf;AAkCD,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,SAAS,EAAE,YAAY,GAAG,kBAAkB,CAAC;IAC7C,SAAS,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAQlF;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAsDrD;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAiB3D;AAkND,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,YAAY,EAAE,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,UAAU,EAAE,CASd;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,OAAO,CAcT"} \ No newline at end of file diff --git a/dist/datamodel/parser/ScCatalog.js b/dist/datamodel/parser/ScCatalog.js index 45349f3..adaa8f4 100644 --- a/dist/datamodel/parser/ScCatalog.js +++ b/dist/datamodel/parser/ScCatalog.js @@ -55,17 +55,27 @@ export function classificationOf(catalog, entryName) { const scType = catalog.interfaces[entryName] || catalog.modeledDataTypes[entryName]; return (scType && SC_TYPE_TO_CLASSIFICATION[scType]) || null; } -// The message both readers raise when the part is THERE and holds nothing readable. -// Present-and-unreadable is the file claiming the catalog is there: the tree still -// fills in, but every architectural entry's Kind quietly degrades to its raw -// Simulink class — a wrong answer that looks exactly like a right one. Absent is a -// different thing entirely (every `.sldd` that is not an interface dictionary), and -// stays quiet. -export function scPartUnreadableMessage(part) { - return `The dictionary part "${part}" holds nothing readable, so ` - + 'architectural entries are reported by their Simulink class rather than ' - + 'their System Composer type.'; -} +// NEITHER reader warns when the catalog yields no definitions, whether the part is +// absent or present-and-empty. Both used to raise `part-unreadable` here, on the +// reasoning that a lost catalog silently downgrades every architectural entry's Kind. +// Measured against MATLAB (R2027a, 2026-09-30), that reasoning was wrong twice over: +// +// - Nothing but `Simulink.Bus` is ambiguous. Over 14,668 derived entries in four real +// dictionaries, every other class is 1:1 with its classification, so `IsDerived` +// plus the class already yields the identical Kind. `IsDerived` also drives the +// Architectural-vs-Design section split on its own (see `getSectionKey`), so a +// missing catalog costs nothing there either. +// - For `Simulink.Bus`, the fallback IS what MATLAB does. Removing this part from a +// dictionary holding a StructType and a DataInterface and reopening it in MATLAB +// reports BOTH as `Simulink.dictionary.archdata.DataInterface` +// (`getDataTypeNames` empty, `getInterfaceNames` listing both) — which is exactly +// `DERIVED_KIND_BY_CLASS['Simulink.Bus'] = 'Data Interface'`. MATLAB does not +// regenerate the part on save, and it ignores `simulink/ArchitecturePart.xml`, +// which still records the struct type under `DataTypes` and is therefore a truth +// we deliberately do NOT read: agreeing with MATLAB beats being right alone. +// +// So an empty catalog is a dictionary with nothing to classify, not a damaged one, and +// a banner over it claims a loss the user cannot act on and that MATLAB does not report. // The two container keys a definition can be listed under. Scoping by KEY, not by // type, is what keeps the catalog to actual definitions: a nested // `p_OwnedDataInterface` is a ValueTypeInterface too, and the TypeCatalog's diff --git a/dist/datamodel/parser/ScCatalog.js.map b/dist/datamodel/parser/ScCatalog.js.map index 0818efe..a34e737 100644 --- a/dist/datamodel/parser/ScCatalog.js.map +++ b/dist/datamodel/parser/ScCatalog.js.map @@ -1 +1 @@ -{"version":3,"file":"ScCatalog.js","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,qCAAqC;AACrC,EAAE;AACF,kEAAkE;AAClE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,kFAAkF;AAClF,2EAA2E;AAC3E,+EAA+E;AAC/E,sBAAsB;AACtB,EAAE;AACF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,qCAAqC;AACrC,EAAE;AACF,8EAA8E;AAC9E,kFAAkF;AAClF,gFAAgF;AAChF,gFAAgF;AAChF,kFAAkF;AAClF,8CAA8C;AAE9C,mFAAmF;AACnF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,MAAM,CAAC,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAErE,gFAAgF;AAChF,oFAAoF;AACpF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,OAAO,MAAM,CAAC;AAgB5C,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC7D,oEAAoE,EAAE,eAAe;IACrF,wEAAwE,EAAE,mBAAmB;IAC7F,2DAA2D,EAAE,kBAAkB;IAC/E,gEAAgE,EAAE,WAAW;IAC7E,wCAAwC,EAAE,YAAY;IACtD,qCAAqC,EAAE,aAAa;IACpD,sCAAsC,EAAE,UAAU;IAClD,mCAAmC,EAAE,WAAW;CACnD,CAAC;AAEF,+EAA+E;AAC/E,iFAAiF;AACjF,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAC5B,OAAiD,EACjD,SAAiB;IAEjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpF,OAAO,CAAC,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;AACjE,CAAC;AAED,oFAAoF;AACpF,mFAAmF;AACnF,6EAA6E;AAC7E,mFAAmF;AACnF,oFAAoF;AACpF,eAAe;AACf,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAChD,OAAO,wBAAwB,IAAI,+BAA+B;UAC5D,yEAAyE;UACzE,6BAA6B,CAAC;AACxC,CAAC;AAED,kFAAkF;AAClF,kEAAkE;AAClE,4EAA4E;AAC5E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAM,eAAe,GAAG,6CAA6C,CAAC;AA2BtE,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CAAC,IAAoB;IACvD,MAAM,OAAO,GAA0B,EAAE,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAChF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAChD,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oFAAoF;AACpF,kFAAkF;AAClF,MAAM,MAAM,GAAG,sDAAsD,CAAC;AAEtE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE;IACnD,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,CAAC,CAAC;AAaF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,IAAI,GAA2B,CAAC;IAEhC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YACd,wEAAwE;YACxE,qDAAqD;YACrD,SAAS;QACb,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC3B,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM;aACtC,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,SAAS;QACb,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;YACjE,CAAC;YACD,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YACvD,SAAS;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAClB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnD,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,EAC3D,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACzF,CAAC,CAAC;IACP,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,kFAAkF;AAClF,qFAAqF;AACrF,SAAS,YAAY,CACjB,IAAY,EACZ,IAAY,EACZ,SAA4C,EAC5C,QAAoB,EACpB,WAAiD;IAEjD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAmB,EAAE,CAAC;IAC/B,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAW,CAAC,OAAO,CAC7E,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;QACjB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;IACF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,sFAAsF;AACtF,gCAAgC;AAChC,SAAS,YAAY,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,qBAAqB,OAAO,GAAG,CAAC;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,yEAAyE;AACzE,SAAS,cAAc,CACnB,IAAY,EACZ,MAAkB,EAClB,GAAW,EACX,SAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;IAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QACD,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,SAAS,kBAAkB,CACvB,IAAY,EACZ,QAAgB,EAChB,SAA4C;IAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QAC3C,IAAI,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YACvD,YAAY,GAAG,UAAU,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAgC,CAAC;IACrC,MAAM,WAAW,GAAyC,EAAE,CAAC;IAC7D,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QAC/C,IAAI,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,QAAQ,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,yEAAyE;YACzE,uEAAuE;YACvE,kEAAkE;YAClE,8CAA8C;YAC9C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACP,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1G,CAAC;AAED,sFAAsF;AACtF,SAAS,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IACtD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QAC3C,IAAI,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC;QACnG,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YACvD,YAAY,GAAG,UAAU,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,GAAsB,IAAI,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QAC/C,IAAI,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,IAAI,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,CAAS,EAAU,EAAE;IAC/C,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3G,EAAE,EAAE,CAAC;IACT,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AAEF,iFAAiF;AACjF,iEAAiE;AACjE,SAAS,SAAS,CAAC,IAAY,EAAE,CAAS;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QACb,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACZ,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1B,SAAS;YACb,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzB,KAAK,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChC,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YACD,EAAE,EAAE,CAAC;QACT,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,qEAAqE;IACrE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1D,EAAE,EAAE,CAAC;IACT,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,CAAS;IACvC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACpB,EAAE,IAAI,CAAC,CAAC;YACR,SAAS;QACb,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,EAAE,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,EAAE,EAAE,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CACf,IAAY,EACZ,QAAgB,EAChB,QAAmD;IAEnD,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1B,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,SAAkC;IACnF,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;AACL,CAAC;AASD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CACzB,IAAoB,EACpB,OAAe,EACf,OAAe;IAEf,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAmB;IAC1D,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC3B,OAAiD,EACjD,OAAe,EACf,OAAe;IAEf,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IACjB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO;QACX,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC"} \ No newline at end of file +{"version":3,"file":"ScCatalog.js","sourceRoot":"","sources":["../../../src/datamodel/parser/ScCatalog.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/datamodel/kindMap.ts b/src/datamodel/kindMap.ts index 80e5a40..4cc9501 100644 --- a/src/datamodel/kindMap.ts +++ b/src/datamodel/kindMap.ts @@ -44,13 +44,20 @@ export const KIND_BY_CLASS: Record = { }; // The default user-facing Kind for a DERIVED (architectural) entry when the -// SystemComposer catalog doesn't classify it — e.g. a freshly pasted entry, whose -// new name isn't in the catalog. Architectural data stores interfaces as ordinary -// Simulink objects, so the same Class means a different Kind there: a derived -// Simulink.Bus is a Data Interface, a derived Simulink.ConnectionBus a Physical -// Interface. Classes whose Kind is identical in both sections (e.g. -// Simulink.ServiceBus → 'Service Interface', value/numeric/alias types) are -// omitted — KIND_BY_CLASS already yields the right label for them. +// SystemComposer catalog doesn't classify it — a freshly pasted entry whose new name +// isn't in the catalog, or a dictionary with no catalog part at all. Architectural data +// stores interfaces as ordinary Simulink objects, so the same Class means a different +// Kind there: a derived Simulink.Bus is a Data Interface, a derived +// Simulink.ConnectionBus a Physical Interface. Classes whose Kind is identical in both +// sections (e.g. Simulink.ServiceBus → 'Service Interface', value/numeric/alias types) +// are omitted — KIND_BY_CLASS already yields the right label for them. +// +// `Simulink.Bus` is the ONLY class the catalog disambiguates (DataInterface vs +// StructType; measured 1:1 for every other class over 14,668 derived entries in four +// real dictionaries), and 'Data Interface' is not a guess: strip the interface +// dictionary from a `.sldd` holding both and MATLAB R2027a reports both as a +// DataInterface too. So this row is the catalog-less answer MATLAB gives, which is why +// a missing catalog is not worth a parse warning. See ScCatalog for the full note. export const DERIVED_KIND_BY_CLASS: Record = { 'Simulink.Bus': 'Data Interface', 'Simulink.ConnectionBus': 'Physical Interface', diff --git a/src/datamodel/node/container/SlddNode.ts b/src/datamodel/node/container/SlddNode.ts index 222e50f..993afcc 100644 --- a/src/datamodel/node/container/SlddNode.ts +++ b/src/datamodel/node/container/SlddNode.ts @@ -12,7 +12,7 @@ import PropNumberOfEntries from '../../prop/PropNumberOfEntries.js'; import { slddChunkContent } from '../../parser/SlddContent.js'; import type { ParseWarning } from '../../parser/ParseWarning.js'; import type { SystemComposerCatalog } from '../../parser/ScCatalog.js'; -import { SC_PART, scPartUnreadableMessage } from '../../parser/ScCatalog.js'; +import { SC_PART } from '../../parser/ScCatalog.js'; import { DATA_PART_KEY, TEXT_CONTENT, TEXT_PARTS } from '../../parser/SlddParts.js'; const SECTION_DEFS = [ @@ -127,10 +127,10 @@ export default class SlddNode extends ContainerNode { // constant, and a reader in the same file spelling it by hand is the two-copies-of- // one-name shape SlddParts exists to close. A drift here would not empty the // dictionary — the entries arrive through `slddChunkContent` — it would drop only - // the System Composer catalog, and drop it QUIETLY: a bag that is not there looks - // exactly like a dictionary with no catalog part, which _parseSystemComposer is - // deliberately silent about. That is the degrade its own comment below calls the - // nastiest partial in this reader. + // the System Composer catalog, and drop it QUIETLY, since a bag that is not there is + // indistinguishable from a dictionary with no catalog part and nothing warns about + // either. What that costs is one Kind on one class (a struct type reads as a data + // interface), so the drift is worth naming here even though it is not worth a banner. const parts = json[TEXT_PARTS] as Record; // The shared unwrap (SlddContent), not a local one: the same three-level path is what // the usage index reads a dictionary's entries through, and a second copy here is a @@ -146,7 +146,7 @@ export default class SlddNode extends ContainerNode { // over on `__scCatalog`. The textual flavour has no parser between the bytes and // here, so its catalog is read out of the parts below. node.systemComposer = (json.__scCatalog as SystemComposerCatalog | undefined) - ?? SlddNode._parseSystemComposer(parts, warnings); + ?? SlddNode._parseSystemComposer(parts); if (!content) { // The four sections are built by the constructor, so a content-less dictionary @@ -204,34 +204,22 @@ export default class SlddNode extends ContainerNode { // systemcomposer interface dictionary part, if present. static _parseSystemComposer( parts: Record | null, - warnings?: ParseWarning[], ): SystemComposerCatalog | null { const part = parts && (parts[`__MW_TEXT_PART__/${SC_PART}`] as Record); const content = part && (part[TEXT_CONTENT] as Record); const entries = content && (content.entries as Record[]); if (!entries) { - // The two reasons for a null catalog are opposites, and only one of them is a - // loss. A dictionary with no interfaceDictionary part is every `.sldd` that is - // not a System Composer interface dictionary — the overwhelming majority, and - // the limit of the file rather than of this reader — so it stays quiet. + // Both reasons for a null catalog stay quiet, and they are quiet on the SAME + // terms — which is the point, because this used to warn where the binary reader + // did not and the two flavours of one dictionary answered differently. // - // A part that is PRESENT and holds nothing readable is the file claiming the - // catalog is there. Losing it silently is the nastiest partial in the dictionary - // reader, because the tree still fills in: the catalog is what tells a StructType - // from a DataInterface (both are `Simulink.Bus`), so without it every - // architectural entry's Kind quietly degrades to its raw Simulink class. That is - // a wrong answer that looks exactly like a right one, which is worse than a - // missing one. - // - // `part-unreadable` with the part named, because the dictionary's entries are all - // still read and this is one piece of it that is not. - if (part) { - warnings?.push({ - code: 'part-unreadable', - message: scPartUnreadableMessage(SC_PART), - part: SC_PART, - }); - } + // A dictionary with no interfaceDictionary part is every `.sldd` that is not a + // System Composer interface dictionary: the overwhelming majority. A part that + // is present and holds nothing is a catalog with nothing in it — MATLAB writes + // exactly that into any dictionary System Composer has merely touched, built-in + // value types and no definitions. Neither one loses anything a reader could + // report: see the note below `classificationOf` in ScCatalog for the + // measurement, and `DERIVED_KIND_BY_CLASS` for the fallback it licenses. return null; } diff --git a/src/datamodel/parser/BinarySlddParser.ts b/src/datamodel/parser/BinarySlddParser.ts index 74e00ec..6451024 100644 --- a/src/datamodel/parser/BinarySlddParser.ts +++ b/src/datamodel/parser/BinarySlddParser.ts @@ -47,12 +47,7 @@ import { unzipEntries } from './Inflate.js'; import { readDictionaryXml } from './XmlReader.js'; import { reasonOf, type ParseWarning } from './ParseWarning.js'; import type { SystemComposerCatalog } from './ScCatalog.js'; -import { - SC_PART_XML, - catalogFromDefinitions, - scPartUnreadableMessage, - scanScXml, -} from './ScCatalog.js'; +import { SC_PART_XML, catalogFromDefinitions, scanScXml } from './ScCatalog.js'; import { DATA_PART_KEY, DATA_PART_XML, TEXT_CONTENT, TEXT_PARTS } from './SlddParts.js'; import { charNeedsShape, @@ -310,7 +305,7 @@ export function parseBinarySlddParts( __rawXml: xmlString, __zipMetadata: zipMetadata, __dataSourceAttrs: dataSourceAttrs, - ...scCatalogOf(zipMetadata, decoder, warnings), + ...scCatalogOf(zipMetadata, decoder), }; } @@ -321,18 +316,19 @@ export function parseBinarySlddParts( * This reader is where it has to happen: the member is XML inside the package, and no * layer above ever sees those bytes — `SlddNode.parse` receives the parts bag, which * carries the member as raw pass-through bytes in `__zipMetadata`. Without this the - * catalog was simply absent for the binary flavour, and every architectural entry read - * as its raw Simulink class: a struct type reported as 'Data Interface', which is a - * wrong answer that looks exactly like a right one. + * catalog was simply absent for the binary flavour, so a struct type read as 'Data + * Interface' — which is what MATLAB itself answers with the part gone, but not what it + * answers with the part there, and the file is the authority when it has one. * * Spread into the content bag, so a dictionary with no interface dictionary (nearly * all of them) adds no key at all and `SlddNode.parse` falls through to the textual - * reader as before. + * reader as before. A member that is present but yields no definitions takes the same + * exit, and deliberately says nothing — see the note below `classificationOf` in + * ScCatalog for the MATLAB measurement that settled it. */ function scCatalogOf( zipMetadata: Record, decoder: TextDecoder, - warnings?: ParseWarning[], ): { __scCatalog?: SystemComposerCatalog } { const member = zipMetadata[SC_PART_XML]; if (!member) { @@ -340,15 +336,6 @@ function scCatalogOf( } const defs = scanScXml(decoder.decode(member)); if (!defs.length) { - // Present and holding no definitions: the package claims the catalog is there, and - // the entries all still read, so this is one piece of the dictionary missing rather - // than the dictionary. Same code, same words and the same reasoning as the textual - // reader's — see SlddNode._parseSystemComposer. - warnings?.push({ - code: 'part-unreadable', - message: scPartUnreadableMessage(SC_PART_XML), - part: SC_PART_XML, - }); return {}; } return { __scCatalog: catalogFromDefinitions(defs) }; diff --git a/src/datamodel/parser/ScCatalog.ts b/src/datamodel/parser/ScCatalog.ts index d21a55e..8fc447f 100644 --- a/src/datamodel/parser/ScCatalog.ts +++ b/src/datamodel/parser/ScCatalog.ts @@ -77,17 +77,27 @@ export function classificationOf( return (scType && SC_TYPE_TO_CLASSIFICATION[scType]) || null; } -// The message both readers raise when the part is THERE and holds nothing readable. -// Present-and-unreadable is the file claiming the catalog is there: the tree still -// fills in, but every architectural entry's Kind quietly degrades to its raw -// Simulink class — a wrong answer that looks exactly like a right one. Absent is a -// different thing entirely (every `.sldd` that is not an interface dictionary), and -// stays quiet. -export function scPartUnreadableMessage(part: string): string { - return `The dictionary part "${part}" holds nothing readable, so ` - + 'architectural entries are reported by their Simulink class rather than ' - + 'their System Composer type.'; -} +// NEITHER reader warns when the catalog yields no definitions, whether the part is +// absent or present-and-empty. Both used to raise `part-unreadable` here, on the +// reasoning that a lost catalog silently downgrades every architectural entry's Kind. +// Measured against MATLAB (R2027a, 2026-09-30), that reasoning was wrong twice over: +// +// - Nothing but `Simulink.Bus` is ambiguous. Over 14,668 derived entries in four real +// dictionaries, every other class is 1:1 with its classification, so `IsDerived` +// plus the class already yields the identical Kind. `IsDerived` also drives the +// Architectural-vs-Design section split on its own (see `getSectionKey`), so a +// missing catalog costs nothing there either. +// - For `Simulink.Bus`, the fallback IS what MATLAB does. Removing this part from a +// dictionary holding a StructType and a DataInterface and reopening it in MATLAB +// reports BOTH as `Simulink.dictionary.archdata.DataInterface` +// (`getDataTypeNames` empty, `getInterfaceNames` listing both) — which is exactly +// `DERIVED_KIND_BY_CLASS['Simulink.Bus'] = 'Data Interface'`. MATLAB does not +// regenerate the part on save, and it ignores `simulink/ArchitecturePart.xml`, +// which still records the struct type under `DataTypes` and is therefore a truth +// we deliberately do NOT read: agreeing with MATLAB beats being right alone. +// +// So an empty catalog is a dictionary with nothing to classify, not a damaged one, and +// a banner over it claims a loss the user cannot act on and that MATLAB does not report. // The two container keys a definition can be listed under. Scoping by KEY, not by // type, is what keeps the catalog to actual definitions: a nested diff --git a/test/dataModelSources.test.ts b/test/dataModelSources.test.ts index 427f570..33a9d9b 100644 --- a/test/dataModelSources.test.ts +++ b/test/dataModelSources.test.ts @@ -24,7 +24,7 @@ import { describe, it, expect } from 'vitest'; import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { unzipSync, zipSync, strToU8 } from 'fflate'; -import { createSession, ingest } from '../src/index.js'; +import { createSession, ingest, parseBinarySlddParts } from '../src/index.js'; import type { ParseWarning } from '../src/index.js'; import { parseSlx } from '../src/datamodel/parser/SlxParser.js'; import { parseMat } from '../src/datamodel/parser/MatParser.js'; @@ -396,18 +396,42 @@ describe('createSession() — a dictionary that came up short reaches the node, it('puts both layers’ warnings on one source, in one list', () => { // What the shared sink buys, and the reason it is a sink rather than a field on each - // layer's result: a half-written dictionary can lose its content part AND leave an - // unreadable System Composer catalog behind, and those two losses are found by two - // different layers. A host renders one list per file, so both have to be in it. + // layer's result: `ingest` creates the array, the dictionary reader fills it in, and + // `addDataSource` hands that same array to `SlddNode.parse`, which appends its OWN + // findings before it is attached. A host renders one list per file, so all of it has + // to be in that one list — a copy at either seam, or a fresh array inside + // `addDataSource`, silently loses whichever layer went first. + // + // The two halves are asserted separately because no single `.sldd` reaches both any + // more. The node layer's only warning is for a dictionary with no content part, and + // the binary reader always builds that part, so a file the parser warns about arrives + // here with content. The pair used to be reachable through the System Composer + // catalog, whose warning was removed once MATLAB R2027a was measured giving the same + // answer as the catalog-less fallback — so the second half below hands the adder a + // pre-filled sink directly rather than pretending a file produces both. const s = createSession(); - const halfWritten = { - __MW_TEXT_PARTS__: { - '__MW_TEXT_PART__/simulink/systemcomposer/interfaceDictionary': { nothing: 'readable' }, - }, - }; - const src = s.addDataSource('half.sldd', halfWritten); + + // Real parser output, into a real sink, through the real adder: a dictionary that + // says it inherits from another one and does not say which. The array the source + // carries must be that very array, which is what "one list" means mechanically. + const NAMELESS_REFERENCE = '\n' + + '\n' + + ' \n' + + '\n'; + const fromParser: ParseWarning[] = []; + const content = parseBinarySlddParts(NAMELESS_REFERENCE, {}, fromParser); + expect(fromParser.map((w) => w.code)).toEqual(['part-unreadable']); + const withRef = s.addDataSource('ref.sldd', content, undefined, fromParser); + expect(withRef.warnings).toBe(fromParser); + expect(withRef.warnings?.map((w) => w.code)).toEqual(['part-unreadable']); + + // And the append, which is the half a fresh array inside `addDataSource` would break: + // a sink already holding a parser's finding, plus content the node layer has something + // of its own to say about. Both are there, in the order the layers ran. + const src = s.addDataSource('half.sldd', { __MW_TEXT_PARTS__: {} }, undefined, [fromParser[0]]); expect(src.warnings?.map((w) => w.code)).toEqual(['part-unreadable', 'source-empty']); - expect(src.warnings?.map((w) => w.part)) - .toEqual(['simulink/systemcomposer/interfaceDictionary', undefined]); + // The node layer's own carries the filename, because it is about the source and not a + // part of it — the one thing that tells a host which open file it belongs to. + expect(src.warnings?.[1].message).toContain('half.sldd'); }); }); diff --git a/test/parseWarnings.test.ts b/test/parseWarnings.test.ts index 65c5a50..1082230 100644 --- a/test/parseWarnings.test.ts +++ b/test/parseWarnings.test.ts @@ -954,6 +954,12 @@ function readContent(content: Record, filename = 'd.sldd') { const entryNamesOf = (node: SlddNode) => node.children.flatMap((s) => s.children.map((c) => c.name)); +/** The user-facing Kind of one entry, by name — what a missing catalog is felt as. */ +function kindOf(node: SlddNode, name: string): string | undefined { + const entry = node.children.flatMap((s) => s.children).find((c) => c.name === name); + return (entry as unknown as { kind?: string } | undefined)?.kind; +} + describe('SlddNode.parse — the warnings channel', () => { it('reports nothing for either flavour of a dictionary it read completely', () => { expect(readContent(readJson(SLDD_TEXT), 'params.sldd').warnings).toEqual([]); @@ -996,20 +1002,41 @@ describe('SlddNode.parse — the warnings channel', () => { expect(entryNamesOf(node)).toEqual([]); }); - it('names the System Composer catalog part when it holds nothing readable', () => { - // An architectural dictionary's interface catalog is what tells a StructType from a - // DataInterface (both are `Simulink.Bus`), so losing it silently downgrades every - // architectural entry's Kind to its raw Simulink class — a wrong answer that looks - // like a right one. The part is PRESENT here, which is the file claiming the catalog - // is there. + it('says nothing when the System Composer catalog part holds no definitions, and falls back the way MATLAB does', () => { + // The part is PRESENT and empty here, which MATLAB writes into any dictionary System + // Composer has merely touched: built-in value types, no definitions. This used to + // raise `part-unreadable`, on the reasoning that the catalog is what tells a + // StructType from a DataInterface (both are `Simulink.Bus`). Measured against MATLAB + // R2027a, that is not a loss worth reporting — strip the part from a dictionary + // holding both and MATLAB reports BOTH as a DataInterface, which is exactly this + // fallback. A banner would claim a loss MATLAB itself does not see. const arch = readJson(SLDD_ARCH); const parts = arch.__MW_TEXT_PARTS__ as Record; parts[`__MW_TEXT_PART__/${INTERFACE_PART}`] = { nothing: 'readable' }; const { node, warnings } = readContent(arch, 'arch.sldd'); - expect(codesAndParts(warnings)).toEqual([['part-unreadable', INTERFACE_PART]]); + expect(warnings).toEqual([]); expect(node.systemComposer).toBeNull(); - // Every entry is still read: one part's loss is not the dictionary's. + // Every entry is still read, and the ONE ambiguous class takes MATLAB's answer. expect(entryNamesOf(node).length).toBeGreaterThan(0); + expect(kindOf(node, 'StructType')).toBe('Data Interface'); + expect(kindOf(node, 'DataInterface')).toBe('Data Interface'); + // Everything else is 1:1 with its Simulink class, so the catalog's absence costs it + // nothing — the measurement that made the warning pointless rather than merely noisy. + expect(kindOf(node, 'PhysicalInterface')).toBe('Physical Interface'); + expect(kindOf(node, 'ServiceInterface')).toBe('Service Interface'); + expect(kindOf(node, 'ValueType')).toBe('Value Type'); + expect(kindOf(node, 'NumericType')).toBe('Numeric Type'); + expect(kindOf(node, 'EnumType')).toBe('Enumerated Type'); + expect(kindOf(node, 'AliasType')).toBe('Alias Type'); + }); + + it('classifies the same dictionary properly when the catalog IS there', () => { + // The other side of the fallback above: with the part present the file is the + // authority, and it is the only thing that can tell these two apart. + const { node, warnings } = readContent(readJson(SLDD_ARCH), 'arch.sldd'); + expect(warnings).toEqual([]); + expect(kindOf(node, 'StructType')).toBe('Struct Type'); + expect(kindOf(node, 'DataInterface')).toBe('Data Interface'); }); it('stays silent for a System Composer dictionary read whole, and for one with no catalog', () => { diff --git a/test/scCatalog.test.ts b/test/scCatalog.test.ts index 39d1ded..a903c95 100644 --- a/test/scCatalog.test.ts +++ b/test/scCatalog.test.ts @@ -23,7 +23,8 @@ import { describe, it, expect } from 'vitest'; import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; -import { unzipSync } from 'fflate'; +import { unzipSync, zipSync } from 'fflate'; +import type { ParseWarning } from '../src/datamodel/parser/ParseWarning.js'; // Through the barrel: it is what registers the node classes the entry parser // resolves values with. import { @@ -121,6 +122,79 @@ describe('System Composer catalog, read from either format', () => { expect(scanScJsonText(textAt('numeric_json.sldd'))).toEqual([]); }); + it('says nothing when the binary catalog member holds no definitions, and agrees with the text form', () => { + // The member MATLAB writes into a dictionary System Composer has merely TOUCHED: a + // model, a type catalog of nothing but built-in value types, and an interface catalog + // holding only its storage context. Measured on a real customer `.sldd` — and it used + // to put a "could not be read" banner over a file with nothing wrong with it. + // + // The kinds below are the point. `Simulink.Bus` is the only class the catalog + // disambiguates, and 'Data Interface' is what MATLAB R2027a itself answers for BOTH + // buses once this part is gone, so the fallback is agreement rather than degradation. + const emptyScXml = '\n' + + '\n' + + ' \n' + + ' \n' + + ' double\n' + + ' \n' + + ' \n' + + ' \n' + + ' arch\n' + + ' \n' + + ' DICTIONARY\n' + + ' \n' + + ' \n' + + '\n'; + expect(scanScXml(emptyScXml)).toEqual([]); + + const original = new Uint8Array(readFileSync(fixture('arch_binary.sldd'))); + const members = unzipSync(original); + members[SC_PART_XML] = new TextEncoder().encode(emptyScXml); + const rebuilt = zipSync(members); + const buf = rebuilt.buffer.slice( + rebuilt.byteOffset, + rebuilt.byteOffset + rebuilt.byteLength, + ) as ArrayBuffer; + + const warnings: ParseWarning[] = []; + const sldd = SlddNode.parse(parseBinarySldd(buf), 'arch_binary.sldd', warnings); + expect(warnings).toEqual([]); + expect(sldd.systemComposer).toBeNull(); + expect(kindsOf(sldd)).toMatchObject({ + StructType: 'Data Interface', + DataInterface: 'Data Interface', + ValueType: 'Value Type', + NumericType: 'Numeric Type', + }); + }); + + it('is as silent about a missing catalog in one format as in the other', () => { + // The one-rule-two-paths pin, and the reason this reader raises nothing at all now: + // the text path used to stay quiet where the binary path warned, so the SAME + // dictionary said two different things depending on how it had been saved. + const textWarnings: ParseWarning[] = []; + const json = JSON.parse(textAt('arch_binary_as_text.sldd')) as Record; + const parts = json.__MW_TEXT_PARTS__ as Record; + parts['__MW_TEXT_PART__/simulink/systemcomposer/interfaceDictionary'] = { nothing: 'readable' }; + const fromText = SlddNode.parse(json, 'arch_binary_as_text.sldd', textWarnings); + + const binWarnings: ParseWarning[] = []; + const members = unzipSync(new Uint8Array(readFileSync(fixture('arch_binary.sldd')))); + delete members[SC_PART_XML]; + const rebuilt = zipSync(members); + const buf = rebuilt.buffer.slice( + rebuilt.byteOffset, + rebuilt.byteOffset + rebuilt.byteLength, + ) as ArrayBuffer; + const fromBinary = SlddNode.parse(parseBinarySldd(buf), 'arch_binary.sldd', binWarnings); + + expect(textWarnings).toEqual([]); + expect(binWarnings).toEqual(textWarnings); + expect(fromText.systemComposer).toBeNull(); + expect(fromBinary.systemComposer).toBeNull(); + expect(kindsOf(fromBinary)).toEqual(kindsOf(fromText)); + }); + it('does not take a bus element or a built-in type for a catalog definition', () => { const sldd = loadBinarySldd('arch_binary.sldd'); const catalog = sldd.systemComposer!;