From e81d8481b169ed2622e256a6d605a404a0ed56f5 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 9 Sep 2026 16:15:14 -0400 Subject: [PATCH 1/2] Refuse or carry the edits a re-read would undo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four findings from a test sweep of the unified table-edit path, all one shape: the table accepted an edit, showed it, and the next read of the file spelled something else. Renaming a catalogued Architectural Data entry demoted it. System Composer keeps its type catalog in a SEPARATE part of the dictionary that references entries BY NAME — a JSON object in a textual .sldd, a zipped MF0 XML member in a compressed-binary one — so a rename left the catalog defining a name nothing carries: a struct type re-read as a plain data interface, on both formats, in the file. ScCatalog.ts now holds that vocabulary in one place; a section moves the key when one of its entries is renamed (_entryRenamed), which is what keeps a narrow repaint honest, since rebuilding an entry from a record classifies it through the catalog. The scan/rename/apply helpers are exported because patching the FILE belongs to the host: it owns the open document's text and the zip members, and this package can splice neither for it. Renaming a struct, object or .mat struct array left its elements labelled after the old name. The label was baked at parse time; it is now derived from an ElementSubscript and the parent's CURRENT displayed name, so an element row follows the row above it at any depth. A Simulink.Parameter's Value row offered a rename that serialize discarded in silence: the property is written under the key `Value` whatever the node is called. That row is a class property bag exactly as an object's children are, so it says so, and setProperty asks nameEditable before renaming anything — the model no longer accepts a rename the table already declined to offer. A Description typed onto a plain variable or a struct went nowhere: those serialize as {name, metadata, value}, with no property bag to hold one. `descriptionEditable` joins the nameEditable/valueEditable family — declared true, false in the two classes that cannot keep one — and is consulted by the row, by the property inspector, and by setProperty. Refusing an edit and carrying it are the same rule from two sides: what the cell shows is what the file will say. --- dist/datamodel/node/BaseNode.d.ts | 10 + dist/datamodel/node/BaseNode.d.ts.map | 2 +- dist/datamodel/node/BaseNode.js | 46 +- dist/datamodel/node/BaseNode.js.map | 2 +- dist/datamodel/node/DataNode.d.ts.map | 2 +- dist/datamodel/node/DataNode.js | 44 +- dist/datamodel/node/DataNode.js.map | 2 +- .../datamodel/node/container/SectionNode.d.ts | 3 +- .../node/container/SectionNode.d.ts.map | 2 +- dist/datamodel/node/container/SectionNode.js | 17 +- .../node/container/SectionNode.js.map | 2 +- dist/datamodel/node/container/SlddNode.d.ts | 6 +- .../node/container/SlddNode.d.ts.map | 2 +- dist/datamodel/node/container/SlddNode.js | 47 +- dist/datamodel/node/container/SlddNode.js.map | 2 +- .../node/data/MatlabVariableNode.d.ts | 1 + .../node/data/MatlabVariableNode.d.ts.map | 2 +- .../datamodel/node/data/MatlabVariableNode.js | 12 +- .../node/data/MatlabVariableNode.js.map | 2 +- dist/datamodel/node/data/ObjectNode.d.ts.map | 2 +- dist/datamodel/node/data/ObjectNode.js | 7 +- dist/datamodel/node/data/ObjectNode.js.map | 2 +- dist/datamodel/node/data/ParameterNode.d.ts | 1 + .../node/data/ParameterNode.d.ts.map | 2 +- dist/datamodel/node/data/ParameterNode.js | 9 + dist/datamodel/node/data/ParameterNode.js.map | 2 +- dist/datamodel/node/data/StructNode.d.ts | 1 + dist/datamodel/node/data/StructNode.d.ts.map | 2 +- dist/datamodel/node/data/StructNode.js | 12 +- dist/datamodel/node/data/StructNode.js.map | 2 +- .../parser/BinarySlddParser.d.ts.map | 2 +- dist/datamodel/parser/BinarySlddParser.js | 37 ++ dist/datamodel/parser/BinarySlddParser.js.map | 2 +- dist/datamodel/parser/ScCatalog.d.ts | 98 +++ dist/datamodel/parser/ScCatalog.d.ts.map | 1 + dist/datamodel/parser/ScCatalog.js | 441 ++++++++++++++ dist/datamodel/parser/ScCatalog.js.map | 1 + dist/index.d.ts | 2 + dist/index.d.ts.map | 2 +- dist/index.js | 10 + dist/index.js.map | 2 +- src/datamodel/node/BaseNode.ts | 71 ++- src/datamodel/node/DataNode.ts | 44 +- src/datamodel/node/container/SectionNode.ts | 23 +- src/datamodel/node/container/SlddNode.ts | 64 +- src/datamodel/node/data/MatlabVariable.md | 8 +- src/datamodel/node/data/MatlabVariableNode.ts | 13 +- src/datamodel/node/data/ObjectNode.ts | 7 +- src/datamodel/node/data/ParameterNode.ts | 10 + src/datamodel/node/data/StructNode.ts | 13 +- src/datamodel/parser/BinarySlddParser.ts | 48 ++ src/datamodel/parser/ScCatalog.ts | 560 ++++++++++++++++++ src/index.ts | 22 + test/editsTheFormatCannotKeep.test.ts | 128 ++++ test/elementLabelFollowsName.test.ts | 158 +++++ test/fixtures/arch_binary.sldd | Bin 0 -> 2067 bytes test/fixtures/arch_binary_as_text.sldd | 267 +++++++++ test/fixtures/make-fixtures.mjs | 273 ++++++++- test/mcosTypedNode.test.ts | 4 +- test/objectArrayExpansion.test.ts | 10 +- test/scCatalog.test.ts | 342 +++++++++++ test/structNode.test.ts | 10 +- 62 files changed, 2762 insertions(+), 159 deletions(-) create mode 100644 dist/datamodel/parser/ScCatalog.d.ts create mode 100644 dist/datamodel/parser/ScCatalog.d.ts.map create mode 100644 dist/datamodel/parser/ScCatalog.js create mode 100644 dist/datamodel/parser/ScCatalog.js.map create mode 100644 src/datamodel/parser/ScCatalog.ts create mode 100644 test/editsTheFormatCannotKeep.test.ts create mode 100644 test/elementLabelFollowsName.test.ts create mode 100644 test/fixtures/arch_binary.sldd create mode 100644 test/fixtures/arch_binary_as_text.sldd create mode 100644 test/scCatalog.test.ts diff --git a/dist/datamodel/node/BaseNode.d.ts b/dist/datamodel/node/BaseNode.d.ts index 6c62c7a..09addba 100644 --- a/dist/datamodel/node/BaseNode.d.ts +++ b/dist/datamodel/node/BaseNode.d.ts @@ -1,3 +1,4 @@ +import type { Bracket, ElementOrder } from '../display/Subscript.js'; export interface PropClass { key: string; displayName: string; @@ -32,6 +33,7 @@ export interface RowData { }; Value?: unknown; _valueEditable?: boolean; + _descriptionEditable?: boolean; DataType?: string | { text: string; linkTarget?: string; @@ -86,11 +88,18 @@ export interface PIObject { showDefaultGroup: boolean; } export type MatlabVariableKind = 'scalar' | 'array' | 'cell' | 'string'; +export interface ElementSubscript { + index: number; + dims: number[] | undefined; + order: ElementOrder; + bracket: Bracket; +} export default class BaseNode { name: string; parent: BaseNode | null; children: BaseNode[]; _displayName?: string; + _subscript?: ElementSubscript; _kind?: MatlabVariableKind; _dims?: number[]; constructor(name: string, parent: BaseNode | null); @@ -116,6 +125,7 @@ export default class BaseNode { flatten(): BaseNode[]; get displayName(): string; get valueEditable(): boolean; + get descriptionEditable(): boolean; getPropInfo(PropClassRef: PropClass): PropInfo; toRow(): RowData | null; getProperties(): PropClass[]; diff --git a/dist/datamodel/node/BaseNode.d.ts.map b/dist/datamodel/node/BaseNode.d.ts.map index 4d5475e..07551c2 100644 --- a/dist/datamodel/node/BaseNode.d.ts.map +++ b/dist/datamodel/node/BaseNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/BaseNode.js b/dist/datamodel/node/BaseNode.js index 167cde6..f0471ec 100644 --- a/dist/datamodel/node/BaseNode.js +++ b/dist/datamodel/node/BaseNode.js @@ -49,11 +49,12 @@ export default class BaseNode { } // The sole signal for graying a Name cell: this node's displayed name is a // synthetic positional subscript, not a user-assigned identifier. Covers bare - // array/cell/string indices (isIndexedName) and struct-array elements (which - // carry a `Name(i)` alias in `_displayName`). Structural and independent of file - // format — entries and struct FIELDS are never elements, so they render normally. + // array/cell/string indices (isIndexedName), struct/object-array elements (which + // carry an `_subscript` into their parent) and an explicit `_displayName` alias. + // Structural and independent of file format — entries and struct FIELDS are never + // elements, so they render normally. get isElementName() { - return this.isIndexedName || !!this._displayName; + return this.isIndexedName || !!this._subscript || !!this._displayName; } // True when this node's CHILDREN are the properties of a MATLAB class object // (ObjectNode overrides it). A class property's name is fixed by the class @@ -68,7 +69,7 @@ export default class BaseNode { if (this.isIndexedName) { return false; } - if (this._displayName) { + if (this._subscript || this._displayName) { return false; } // A class property name is fixed by the class definition. @@ -218,6 +219,13 @@ export default class BaseNode { // label->value pairing is wrong. return subscriptLabel(this.parent.displayName, this.parent.children.indexOf(this), this.parent._dims, this.parent._kind === 'array' ? 'row-major' : 'column-major', this.parent._kind === 'cell' ? '{}' : '()'); } + // A struct/object-array element: the same derivation, off the spec its parse + // site recorded. Read live from the parent's CURRENT displayed name, which is + // what makes an element row follow a rename of the array above it. + if (this._subscript && this.parent) { + const s = this._subscript; + return subscriptLabel(this.parent.displayName, s.index, s.dims, s.order, s.bracket); + } return this._displayName || this.name; } get valueEditable() { @@ -227,6 +235,23 @@ export default class BaseNode { } return true; } + // Whether a Description typed onto this row could be SAVED — the third member of the + // nameEditable/valueEditable family, and one for the same reason: the Description + // column exists for every row, but only a node that serializes a MATLAB property bag + // has anywhere to put one. A plain variable (and a struct) goes out as + // `{name, metadata, value}`, so a Description set on it showed in the cell and was + // gone on the next read of the file. + // + // True here, false in the two classes that cannot hold one, rather than the other way + // round: every Simulink object can be described, and a new class that cannot has to + // say so — which is the same direction nameEditable and valueEditable are declared in. + // + // It used to be answered by `valueEditable`, which is a different question: a + // Parameter whose value displays as a `<1x12 double>` summary takes no value editor + // and can still be described. + get descriptionEditable() { + return true; + } getPropInfo(PropClassRef) { const key = PropClassRef.key; let displayValue; @@ -243,6 +268,12 @@ export default class BaseNode { if (key === 'Value') { editable = editable && this.valueEditable; } + // Consulted HERE and not only in toRow so the property inspector honours it too: it + // builds its fields from getPropInfo, and it offered the same unkeepable Description + // the table did. + if (key === 'Description') { + editable = editable && this.descriptionEditable; + } return { key, displayName: PropClassRef.displayName, @@ -313,6 +344,11 @@ export default class BaseNode { if (!('Description' in row)) { row.Description = this.Description || ''; } + // Unconditional, and beside the cell rather than inside it: Description renders + // through a dedicated webview branch that consumes a plain string (see + // DEDICATED_COLUMNS), so the editability has to travel as its own key — the same + // arrangement `_valueEditable` already has, and for the same reason. + row._descriptionEditable = this.descriptionEditable; // The reverse projection, reached through the resolver the session stamped on this // node's source root rather than through a session reference a node must not hold. // This is the seam that makes the column non-blank in a host that changed nothing: diff --git a/dist/datamodel/node/BaseNode.js.map b/dist/datamodel/node/BaseNode.js.map index 7b5516a..afcc0e8 100644 --- a/dist/datamodel/node/BaseNode.js.map +++ b/dist/datamodel/node/BaseNode.js.map @@ -1 +1 @@ -{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/DataNode.d.ts.map b/dist/datamodel/node/DataNode.d.ts.map index 1b25d09..cfc5b84 100644 --- a/dist/datamodel/node/DataNode.d.ts.map +++ b/dist/datamodel/node/DataNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/DataNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/DataNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/DataNode.js b/dist/datamodel/node/DataNode.js index 5a0f417..f8eeadf 100644 --- a/dist/datamodel/node/DataNode.js +++ b/dist/datamodel/node/DataNode.js @@ -174,9 +174,10 @@ export default class DataNode extends BaseNode { const by = m.lastModifiedBy ?? m.modifiedby; return typeof by === 'string' ? by : ''; } - // nameEditable is inherited from BaseNode: the three things that fix a name — a - // synthetic positional index, a `_displayName` alias, and an object-property-bag - // parent — are all structural, so the base rule already covers every data node. + // nameEditable is inherited from BaseNode: the things that fix a name — a + // synthetic positional index, an element subscript, a `_displayName` alias, and an + // object-property-bag parent — are all structural, so the base rule already covers + // every data node. get disabled() { return !this.isEntry; } @@ -206,6 +207,21 @@ export default class DataNode extends BaseNode { } const resolved = this._resolveProperty(propName); if (resolved === 'name') { + // The node already answers "can this name be typed into", and every path that + // fixes a name fixes it because the FORMAT has no other spelling for it: a + // positional element index, an element subscript, a class property's name. Ask + // that question here too, or a rename the table declined to offer still lands when + // something asks for it directly — renaming a Simulink.Parameter's `Value` row was + // exactly that, accepted by the model and dropped by serialize, which writes the + // key `Value` whatever the node is called. + if (!this.nameEditable) { + return { + error: true, + reason: `'${this.displayName}' is not a name this entry can carry, so it cannot be renamed.`, + invalidValue: stringValue, + validValue: this.displayName, + }; + } const error = validateMatlabName(stringValue); if (error) { return { error: true, reason: error, invalidValue: stringValue, validValue: this.name }; @@ -242,9 +258,31 @@ export default class DataNode extends BaseNode { if (typeof renameField === 'function') { renameField.call(this.parent, oldName, stringValue); } + // The same obligation one level out: a SECTION's parent is the dictionary, which + // keys the System Composer catalog by entry name, so renaming an ENTRY has to move + // that key too or the entry is reclassified the next time it is rebuilt from a + // record (see SectionNode._entryRenamed). Only a top-level entry has a section for + // a parent, which is what scopes this to the names the catalog can be about. + const entryRenamed = this.parent + ?._entryRenamed; + if (typeof entryRenamed === 'function') { + entryRenamed.call(this.parent, oldName, stringValue); + } this._markModified(); return true; } + // Same shape as the name guard: a node that has nowhere to serialize a Description + // refuses one rather than holding it until the file is read again (see + // BaseNode.descriptionEditable). The generic tail below would otherwise write it, + // because the FIELD exists on every node whether the format carries it or not. + if (resolved === 'Description' && !this.descriptionEditable) { + return { + error: true, + reason: `A ${this.kind || 'value'} has no Description in a dictionary, so one cannot be saved for '${this.displayName}'.`, + invalidValue: stringValue, + validValue: this.Description || '', + }; + } const self = this; const current = self[resolved]; const type = typeof current; diff --git a/dist/datamodel/node/DataNode.js.map b/dist/datamodel/node/DataNode.js.map index e6ce0ba..9a061d8 100644 --- a/dist/datamodel/node/DataNode.js.map +++ b/dist/datamodel/node/DataNode.js.map @@ -1 +1 @@ -{"version":3,"file":"DataNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/DataNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/DataNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/container/SectionNode.d.ts b/dist/datamodel/node/container/SectionNode.d.ts index 0956857..68960a1 100644 --- a/dist/datamodel/node/container/SectionNode.d.ts +++ b/dist/datamodel/node/container/SectionNode.d.ts @@ -2,7 +2,7 @@ import ContainerNode from '../ContainerNode.js'; import type { TableColumnConfig } from '../ContainerNode.js'; import type BaseNode from '../BaseNode.js'; import type DataNode from '../DataNode.js'; -import type { SystemComposerCatalog } from './SlddNode.js'; +import type { SystemComposerCatalog } from '../../parser/ScCatalog.js'; import { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE } from '../../SectionConstants.js'; export { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE }; export declare function generateUuid(): string; @@ -16,6 +16,7 @@ export default class SectionNode extends ContainerNode { getAllowedTypes(): string[]; allowsType(className: string): boolean; _namespaceEntryNames(): string[]; + _entryRenamed(oldName: string, newName: string): void; addEntry(className: string, entryName?: string): DataNode | null; execAddEntry(className: string, entryName?: string): { node: DataNode; diff --git a/dist/datamodel/node/container/SectionNode.d.ts.map b/dist/datamodel/node/container/SectionNode.d.ts.map index bdc23f6..0a9cf45 100644 --- a/dist/datamodel/node/container/SectionNode.d.ts.map +++ b/dist/datamodel/node/container/SectionNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"SectionNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SectionNode.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAwCrE,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMhF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,iBAAiB,IAAI,iBAAiB,CAKzC;IAED,eAAe,IAAI,MAAM,EAAE;IAQ3B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAUtC,oBAAoB,IAAI,MAAM,EAAE;IAiBhC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IA6BhE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAiBlH,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAiB9E,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAerC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAAG,QAAQ;CA+BvG"} \ No newline at end of file +{"version":3,"file":"SectionNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SectionNode.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAMvE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAwCrE,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMhF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,iBAAiB,IAAI,iBAAiB,CAKzC;IAED,eAAe,IAAI,MAAM,EAAE;IAQ3B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAUtC,oBAAoB,IAAI,MAAM,EAAE;IA4BhC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAKrD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IA6BhE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAiBlH,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAiB9E,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAerC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAAG,QAAQ;CA+BvG"} \ No newline at end of file diff --git a/dist/datamodel/node/container/SectionNode.js b/dist/datamodel/node/container/SectionNode.js index b8db02b..2f49fc5 100644 --- a/dist/datamodel/node/container/SectionNode.js +++ b/dist/datamodel/node/container/SectionNode.js @@ -5,7 +5,7 @@ import ContainerNode from '../ContainerNode.js'; // reach the class map without a cycle. NodeClassMap installs itself into it. import * as NodeRegistry from '../NodeRegistry.js'; import { matlabTimestampNow } from '../../parser/XmlUtils.js'; -import { classificationOf as _classificationOf } from './SlddNode.js'; +import { classificationOf as _classificationOf, renameInCatalog as _renameInCatalog, } from '../../parser/ScCatalog.js'; import { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE } from '../../SectionConstants.js'; export { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE }; const ALLOWED_TYPES = { @@ -108,6 +108,21 @@ export default class SectionNode extends ContainerNode { } return names; } + // One of MY entries was renamed — follow it wherever else the dictionary spells that + // name. Today that is the System Composer catalog, which keys its definitions by + // entry name and so decides an architectural entry's Kind by it: a catalog left + // holding the old name reclassifies the entry (a struct type re-reads as a plain data + // interface) the next time anything rebuilds it from a record. + // + // Called by DataNode.setProperty for the same reason `_renameField` is: a rename is + // only complete when every structure keyed by the name has been told, and only the + // parent knows which those are. Nested children (bus elements, struct fields) have no + // such parent, which is what keeps an element that happens to share a definition's + // name from moving the catalog under the entry that really carries it. + _entryRenamed(oldName, newName) { + const dictionary = this.parent; + _renameInCatalog(dictionary?.systemComposer, oldName, newName); + } addEntry(className, entryName) { const NodeClass = NodeRegistry.getClass(className); if (!NodeClass || !NodeClass.createDefault) { diff --git a/dist/datamodel/node/container/SectionNode.js.map b/dist/datamodel/node/container/SectionNode.js.map index f808b71..906d338 100644 --- a/dist/datamodel/node/container/SectionNode.js.map +++ b/dist/datamodel/node/container/SectionNode.js.map @@ -1 +1 @@ -{"version":3,"file":"SectionNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SectionNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SectionNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/container/SectionNode.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAIhD,wEAAwE;AACxE,iFAAiF;AACjF,6EAA6E;AAC7E,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EACL,gBAAgB,IAAI,iBAAiB,EACrC,eAAe,IAAI,gBAAgB,GACpC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAErE,MAAM,aAAa,GAA6B;IAC9C,MAAM,EAAE;QACN,gBAAgB;QAChB,cAAc;QACd,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,iBAAiB;QACjB,cAAc;QACd,wBAAwB;QACxB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;QACpB,6CAA6C;QAC7C,4BAA4B;QAC5B,yBAAyB;QACzB,0BAA0B;QAC1B,sBAAsB;QACtB,+BAA+B;QAC/B,cAAc;KACf;IACD,IAAI,EAAE;QACJ,UAAU;QACV,iBAAiB;QACjB,cAAc;QACd,wBAAwB;QACxB,qBAAqB;QACrB,6CAA6C;QAC7C,oBAAoB;QACpB,2EAA2E;QAC3E,4EAA4E;QAC5E,oBAAoB;QACpB,sBAAsB;KACvB;IACD,MAAM,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,mCAAmC,EAAE,gCAAgC,CAAC;IAC9H,KAAK,EAAE,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,cAAc,CAAC;CACpG,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,kBAAkB,CAAC;IAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,QAAQ;SACZ,GAAG,CAAC,UAAU,GAAG;QAChB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IAIpD,YAAY,IAAY,EAAE,MAAuB,EAAE,KAAa,EAAE,MAAc;QAC9E,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,eAAe;QACb,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,6CAA6C;IAC7C,UAAU,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,mDAAmD;IACnD,oBAAoB;QAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAsB,CAAC;QACtE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,iBAAiB,CAAE,CAAiB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qFAAqF;IACrF,iFAAiF;IACjF,gFAAgF;IAChF,sFAAsF;IACtF,+DAA+D;IAC/D,EAAE;IACF,oFAAoF;IACpF,mFAAmF;IACnF,sFAAsF;IACtF,mFAAmF;IACnF,uEAAuE;IACvE,aAAa,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAA6E,CAAC;QACtG,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,QAAQ,CAAC,SAAiB,EAAE,SAAkB;QAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAa,CAAC;QAEnE,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,EAAE,YAAY,EAAE;YACpB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;YACnD,OAAO,EAAE,kBAAkB,EAAE;YAC7B,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SAC5C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,SAAkB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,IAAc;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YAClC,CAAC,EAAE,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,qEAAqE;IACrE,iFAAiF;IACjF,4EAA4E;IAC5E,UAAU,CAAC,QAAiC,EAAE,cAA6C;QACzF,MAAM,SAAS,GAAI,QAAQ,CAAC,IAAe,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAa,CAAC;QACpF,QAAQ,CAAC,QAAQ,GAAI,QAAQ,CAAC,QAAoC,IAAI,IAAI,CAAC;QAC3E,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAgB,CAAC;QAC9C,CAAC;QAED,uEAAuE;QACvE,4EAA4E;QAC5E,8EAA8E;QAC9E,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,gFAAgF;QAChF,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;YACzC,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;gBACnC,QAAkD,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"} \ 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 4cfee28..1a8868b 100644 --- a/dist/datamodel/node/container/SlddNode.d.ts +++ b/dist/datamodel/node/container/SlddNode.d.ts @@ -3,11 +3,7 @@ import SectionNode from './SectionNode.js'; import type DataNode from '../DataNode.js'; import type { PropClass, PIGroupDef } from '../BaseNode.js'; import type { ParseWarning } from '../../parser/ParseWarning.js'; -export interface SystemComposerCatalog { - interfaces: Record; - modeledDataTypes: Record; -} -export declare function classificationOf(catalog: SystemComposerCatalog | null | undefined, entryName: string): string | null; +import type { SystemComposerCatalog } from '../../parser/ScCatalog.js'; export default class SlddNode extends ContainerNode { coreProperties: Record | null; dictionaryReferences: unknown[]; diff --git a/dist/datamodel/node/container/SlddNode.d.ts.map b/dist/datamodel/node/container/SlddNode.d.ts.map index bdcd7aa..130f73d 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;AAoBjE,MAAM,WAAW,qBAAqB;IAIlC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAmBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMpH;AAED,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;IA6ElG,MAAM,CAAC,oBAAoB,CACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACrC,QAAQ,CAAC,EAAE,YAAY,EAAE,GAC1B,qBAAqB,GAAG,IAAI;IAuE/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;AAevE,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;IAoFlG,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 diff --git a/dist/datamodel/node/container/SlddNode.js b/dist/datamodel/node/container/SlddNode.js index 0a28dda..e95e11a 100644 --- a/dist/datamodel/node/container/SlddNode.js +++ b/dist/datamodel/node/container/SlddNode.js @@ -7,41 +7,17 @@ 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'; const SECTION_DEFS = [ { key: 'design', label: 'Design Data', icon: 'databaseFolderDesign' }, { key: 'arch', label: 'Architectural Data', icon: 'databaseFolderArchitecture' }, { key: 'config', label: 'Configurations', icon: 'databaseFolderConfiguration' }, { key: 'other', label: 'Other Data', icon: 'databaseFolder' } ]; -// The part path of the systemcomposer interface dictionary, named once because it is -// used three times now: to look the part up, and — when it is there and unreadable — in -// the message and in the `part` field of the warning that says so. A warning naming a -// different string from the one that was looked up would be a lie no reader could -// detect, and a `part` a host cannot match against the package is no better than none. -const SC_PART = 'simulink/systemcomposer/interfaceDictionary'; -// Maps a systemcomposer type string to the semantic classification token that -// drives the entry's Kind. The token is derived from the type, not the entry -// name (which is user-chosen), so it stays correct regardless of the name. -const SC_TYPE_TO_CLASSIFICATION = { - 'systemcomposer.architecture.model.interface.CompositeDataInterface': 'DataInterface', - 'systemcomposer.architecture.model.interface.CompositePhysicalInterface': 'PhysicalInterface', - 'systemcomposer.architecture.model.swarch.ServiceInterface': 'ServiceInterface', - 'systemcomposer.architecture.model.interface.ValueTypeInterface': 'ValueType', - 'systemcomposer.property.StructDataType': 'StructType', - 'systemcomposer.property.NumericType': 'NumericType', - 'systemcomposer.property.EnumDataType': 'EnumType', - 'systemcomposer.property.AliasType': 'AliasType', -}; -// Resolve the classification token (e.g. 'DataInterface', 'StructType') for an -// entry name, or null if the catalog doesn't classify it. Interfaces are checked -// before modeled data types. -export function classificationOf(catalog, entryName) { - if (!catalog) { - return null; - } - const scType = catalog.interfaces[entryName] || catalog.modeledDataTypes[entryName]; - return (scType && SC_TYPE_TO_CLASSIFICATION[scType]) || null; -} +// The catalog vocabulary — the part path, the type map, the classification rule — +// lives in the parser module both dictionary formats read it through (ScCatalog), so +// a textual and a compressed-binary dictionary cannot classify the same entry +// differently. export default class SlddNode extends ContainerNode { constructor(name) { super(name, null); @@ -122,7 +98,14 @@ export default class SlddNode extends ContainerNode { const content = slddChunkContent(json); // Parse the systemcomposer catalog first so entry parsing can use it to // classify architectural entries (e.g. StructType vs DataInterface). - node.systemComposer = SlddNode._parseSystemComposer(parts, warnings); + // + // A compressed-binary dictionary arrives with the catalog already read: its + // interface dictionary is a zipped XML member, which the binary reader is the + // only layer holding the bytes of, so it scans it and hands the finished catalog + // 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); 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 @@ -198,9 +181,7 @@ export default class SlddNode extends ContainerNode { if (part) { warnings?.push({ code: 'part-unreadable', - message: `The dictionary part "${SC_PART}" holds nothing readable, so ` - + 'architectural entries are reported by their Simulink class rather than ' - + 'their System Composer type.', + message: scPartUnreadableMessage(SC_PART), part: SC_PART, }); } diff --git a/dist/datamodel/node/container/SlddNode.js.map b/dist/datamodel/node/container/SlddNode.js.map index f05dc8a..f9f308a 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/node/data/MatlabVariableNode.d.ts b/dist/datamodel/node/data/MatlabVariableNode.d.ts index 91309f9..e6bdd1f 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.d.ts +++ b/dist/datamodel/node/data/MatlabVariableNode.d.ts @@ -41,6 +41,7 @@ export default class MatlabVariableNode extends DataNode { _formatArray(): string; _formatCell(): string; _formatString(): string; + get descriptionEditable(): boolean; getProperties(): PropClass[]; getPILayout(): { group: string; diff --git a/dist/datamodel/node/data/MatlabVariableNode.d.ts.map b/dist/datamodel/node/data/MatlabVariableNode.d.ts.map index 40e4ca6..a02e8d2 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.d.ts.map +++ b/dist/datamodel/node/data/MatlabVariableNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MatlabVariableNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatlabVariableNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/MatlabVariableNode.js b/dist/datamodel/node/data/MatlabVariableNode.js index deb3433..f03d616 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.js +++ b/dist/datamodel/node/data/MatlabVariableNode.js @@ -16,7 +16,6 @@ import { parseMatrix } from '../../parser/MatParser.js'; import { uudecode } from '../../parser/CdataCodec.js'; import { encodeCdata } from '../../parser/MatWriter.js'; import { EMPTY_CELL, EMPTY_NUMERIC, MISSING_STRING, effectiveDims, elementCount, needsSummary, overCharBudget, summaryForm, } from '../../display/DisplayConvention.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { charNeedsShape, charTextFromCodes, escapeXml, formatDoubleXml, formatNumericXml, formatComplexXml, formatMatlabNum, formatMxCharSerial, formatNumLiteral, formatMatrixSerial, parseMatlabNum, parseExactNum, needsExactInt, exactForClass, transposeToColumnMajorND, transposeFromColumnMajorND, pad as xmlPad, } from '../../parser/XmlUtils.js'; // ---- Pure value helpers ---- // None of these read node state, which is why they are module-local functions and @@ -625,6 +624,14 @@ export default class MatlabVariableNode extends DataNode { return overCharBudget(text) ? summaryForm(d, 'string') : text; } // ---- Property set + Property Inspector layout ---- + // A plain variable goes out as `{name, metadata, value}` — there is no property bag + // in that shape, and serializeValue emits the VALUE alone. So a Description set here + // could only ever live until the file was read again. The prop stays declared (the + // column and the inspector field exist for every row); what changes is that neither + // offers an editor, and setProperty refuses it. + get descriptionEditable() { + return false; + } getProperties() { return [PropName, PropValue, PropDataType, PropDescription]; } @@ -2076,7 +2083,8 @@ export default class MatlabVariableNode extends DataNode { elemNode._scalarType = 'struct'; elemNode._scalarValue = null; elemNode._dims = [1, 1]; - elemNode._displayName = subscriptLabel(name, ei, node._dims, 'column-major', '()'); + // Derived, not baked: see BaseNode.ElementSubscript. + elemNode._subscript = { index: ei, dims: node._dims, order: 'column-major', bracket: '()' }; for (const fieldName of fieldNames) { const fieldVar = variable.fields[fieldName]; const childVar = Array.isArray(fieldVar) ? fieldVar[ei] : fieldVar; diff --git a/dist/datamodel/node/data/MatlabVariableNode.js.map b/dist/datamodel/node/data/MatlabVariableNode.js.map index f64c7e3..705bcb5 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.js.map +++ b/dist/datamodel/node/data/MatlabVariableNode.js.map @@ -1 +1 @@ -{"version":3,"file":"MatlabVariableNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatlabVariableNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ObjectNode.d.ts.map b/dist/datamodel/node/data/ObjectNode.d.ts.map index c4e4fa9..1a041e3 100644 --- a/dist/datamodel/node/data/ObjectNode.d.ts.map +++ b/dist/datamodel/node/data/ObjectNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ObjectNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ObjectNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAY5D,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,QAAQ;IAC5C,UAAU,EAAE,MAAM,CAAC;IAKnB,eAAe,CAAC,EAAE,OAAO,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKvG,IAAI,IAAI,IAAI,MAAM,CAkBjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAID,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAMD,IAAI,IAAI,IAAI,MAAM,EAAE,CAKnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAc3B,cAAc,IAAI,OAAO;IA2CzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAuChG,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;IAyDhG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI;IAepG,uFAAuF;IACvF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAO3F"} \ No newline at end of file +{"version":3,"file":"ObjectNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ObjectNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAW5D,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,QAAQ;IAC5C,UAAU,EAAE,MAAM,CAAC;IAKnB,eAAe,CAAC,EAAE,OAAO,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKvG,IAAI,IAAI,IAAI,MAAM,CAkBjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAID,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAMD,IAAI,IAAI,IAAI,MAAM,EAAE,CAKnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAc3B,cAAc,IAAI,OAAO;IA2CzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAuChG,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;IA2DhG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI;IAepG,uFAAuF;IACvF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAO3F"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ObjectNode.js b/dist/datamodel/node/data/ObjectNode.js index b3017c9..00413a8 100644 --- a/dist/datamodel/node/data/ObjectNode.js +++ b/dist/datamodel/node/data/ObjectNode.js @@ -9,7 +9,6 @@ import PropKind from '../../prop/PropKind.js'; import PropClassAtom from '../../prop/PropClass.js'; import { OBJECT_ICON } from '../icons.js'; import { escapeXml, pad as xmlPad } from '../../parser/XmlUtils.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { effectiveDims, summaryForm } from '../../display/DisplayConvention.js'; export default class ObjectNode extends DataNode { constructor(name, parent, arrayClass, serial) { @@ -211,8 +210,10 @@ export default class ObjectNode extends DataNode { // The MCOS decoder and both SLDD paths deliver elements in MATLAB's // own COLUMN-major order, so element ei is MATLAB's linear index // ei+1. Reading it row-major named 4 of the 6 elements of a 2x3 - // array after the wrong object. - elemNode._displayName = subscriptLabel(name, ei, dims, 'column-major', '()'); + // array after the wrong object. The label itself is derived from + // this spec on demand (BaseNode.displayName), so it follows a + // rename of the array. + elemNode._subscript = { index: ei, dims, order: 'column-major', bracket: '()' }; node.addChild(elemNode); }); } diff --git a/dist/datamodel/node/data/ObjectNode.js.map b/dist/datamodel/node/data/ObjectNode.js.map index e4f9e15..f00d14b 100644 --- a/dist/datamodel/node/data/ObjectNode.js.map +++ b/dist/datamodel/node/data/ObjectNode.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ObjectNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ObjectNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ObjectNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ParameterNode.d.ts b/dist/datamodel/node/data/ParameterNode.d.ts index d36b0a0..3e44f30 100644 --- a/dist/datamodel/node/data/ParameterNode.d.ts +++ b/dist/datamodel/node/data/ParameterNode.d.ts @@ -19,6 +19,7 @@ export default class ParameterNode extends DataNode { get displayValue(): string; _adoptValueNode(rawValue: unknown, edited?: boolean): void; childStructureChanged(child: BaseNode): void; + get isObjectPropertyBag(): boolean; getProperties(): PropClass[]; setProperty(propName: string, stringValue: string): true | SetPropertyResult; _getSerializedProperties(): Record; diff --git a/dist/datamodel/node/data/ParameterNode.d.ts.map b/dist/datamodel/node/data/ParameterNode.d.ts.map index 6369845..3e7b50b 100644 --- a/dist/datamodel/node/data/ParameterNode.d.ts.map +++ b/dist/datamodel/node/data/ParameterNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ParameterNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAe3C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ;IAC/C,KAAK,EAAE,OAAO,CAAC;IAKf,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBlH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAQD,IAAI,SAAS,IAAI,MAAM,CAGtB;IAQD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,YAAY,IAAI,MAAM,CAKzB;IAwCD,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAiB1D,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAgB5C,aAAa,IAAI,SAAS,EAAE;IAO5B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB;IAsH5E,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBnD,cAAc,IAAI,OAAO;IAOzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhG,MAAM,KAAK,WAAW,IAAI,MAAM,CAAoB;IAEpD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa;IAa1E,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAKzD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa;CAUtG"} \ No newline at end of file +{"version":3,"file":"ParameterNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAe3C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ;IAC/C,KAAK,EAAE,OAAO,CAAC;IAKf,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBlH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAQD,IAAI,SAAS,IAAI,MAAM,CAGtB;IAQD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,YAAY,IAAI,MAAM,CAKzB;IAwCD,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAiB1D,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAsB5C,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,aAAa,IAAI,SAAS,EAAE;IAO5B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB;IAsH5E,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBnD,cAAc,IAAI,OAAO;IAOzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhG,MAAM,KAAK,WAAW,IAAI,MAAM,CAAoB;IAEpD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa;IAa1E,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAKzD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa;CAUtG"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ParameterNode.js b/dist/datamodel/node/data/ParameterNode.js index 8cf3a06..3cf2fa9 100644 --- a/dist/datamodel/node/data/ParameterNode.js +++ b/dist/datamodel/node/data/ParameterNode.js @@ -128,6 +128,15 @@ export default class ParameterNode extends DataNode { // pointing back at this Parameter. this.children = []; } + // This node's one child IS the class's `Value` property, exactly as an object's + // children are its properties — so its name is fixed by the class, not chosen by the + // user. Saying so here is what makes the Value row's Name cell read-only, through the + // rule children already consult (BaseNode.nameEditable). Without it the table offered + // a rename that serialize discarded in silence: the property is written under the key + // `Value` whatever the node is called, so a re-read showed `Value` again. + get isObjectPropertyBag() { + return true; + } getProperties() { return [PropName, PropValue, PropDataType, PropMin, PropMax, PropUnit, PropDescription, ...schemaColumns(this.className)]; } diff --git a/dist/datamodel/node/data/ParameterNode.js.map b/dist/datamodel/node/data/ParameterNode.js.map index 6eaea16..36a7f32 100644 --- a/dist/datamodel/node/data/ParameterNode.js.map +++ b/dist/datamodel/node/data/ParameterNode.js.map @@ -1 +1 @@ -{"version":3,"file":"ParameterNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ParameterNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/StructNode.d.ts b/dist/datamodel/node/data/StructNode.d.ts index a2131c2..1d797ee 100644 --- a/dist/datamodel/node/data/StructNode.d.ts +++ b/dist/datamodel/node/data/StructNode.d.ts @@ -12,6 +12,7 @@ export default class StructNode extends DataNode { get dims(): number[]; get _numElements(): number; get _isScalarStruct(): boolean; + get descriptionEditable(): boolean; getProperties(): PropClass[]; getPILayout(): PIGroupDef[]; serializeElement(): Record; diff --git a/dist/datamodel/node/data/StructNode.d.ts.map b/dist/datamodel/node/data/StructNode.d.ts.map index 854b003..2d4b132 100644 --- a/dist/datamodel/node/data/StructNode.d.ts.map +++ b/dist/datamodel/node/data/StructNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"StructNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/StructNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWnE,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAGD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAGD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAUD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAOD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAKD,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAQ3B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU3C,cAAc,IAAI,OAAO;IAgCzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8ChG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAkB5C,cAAc,IAAI,OAAO;IAIzB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IActC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAStD,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,QAAQ;IAmBxB,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAC7C,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAEvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;IAuChG,MAAM,KAAK,WAAW,IAAI,MAAM,CAAqB;IAErD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;CAU1E"} \ No newline at end of file +{"version":3,"file":"StructNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/StructNode.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAUnE,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAGD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAGD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAUD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAOD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAKD,IAAI,eAAe,IAAI,OAAO,CAE7B;IAID,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,UAAU,EAAE;IAQ3B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU3C,cAAc,IAAI,OAAO;IAgCzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8ChG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAkB5C,cAAc,IAAI,OAAO;IAIzB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IActC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAStD,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,QAAQ;IAmBxB,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAC7C,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAEvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;IAyChG,MAAM,KAAK,WAAW,IAAI,MAAM,CAAqB;IAErD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU;CAU1E"} \ No newline at end of file diff --git a/dist/datamodel/node/data/StructNode.js b/dist/datamodel/node/data/StructNode.js index 3131cf2..b449b02 100644 --- a/dist/datamodel/node/data/StructNode.js +++ b/dist/datamodel/node/data/StructNode.js @@ -9,7 +9,6 @@ import PropDescription from '../../prop/PropDescription.js'; import PropKind from '../../prop/PropKind.js'; import PropClassAtom from '../../prop/PropClass.js'; import { escapeXml, pad as xmlPad } from '../../parser/XmlUtils.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { effectiveDims, elementCount, summaryForm } from '../../display/DisplayConvention.js'; export default class StructNode extends DataNode { get icon() { @@ -54,6 +53,11 @@ export default class StructNode extends DataNode { get _isScalarStruct() { return this._numElements === 1; } + // A struct serializes as its fields and nothing else — the same limit a plain + // variable has, and for the same reason (see MatlabVariableNode.descriptionEditable). + get descriptionEditable() { + return false; + } getProperties() { return [PropName, PropValue, PropDataType, PropDescription]; } @@ -234,8 +238,10 @@ export default class StructNode extends DataNode { }; const elemNode = new StructNode(String(ei), node, elemSerial); elemNode._isElementNode = true; - // Column-major, as MATLAB stores it — see ObjectNode. - elemNode._displayName = subscriptLabel(name, ei, dims, 'column-major', '()'); + // Column-major, as MATLAB stores it — see ObjectNode. The label is + // DERIVED from this spec by BaseNode.displayName rather than baked + // here, so renaming the array relabels its elements. + elemNode._subscript = { index: ei, dims, order: 'column-major', bracket: '()' }; fields.forEach((field) => { const childNode = NodeRegistry.parseValue(elem[field], field, elemNode); elemNode.addChild(childNode); diff --git a/dist/datamodel/node/data/StructNode.js.map b/dist/datamodel/node/data/StructNode.js.map index decd59a..0426f71 100644 --- a/dist/datamodel/node/data/StructNode.js.map +++ b/dist/datamodel/node/data/StructNode.js.map @@ -1 +1 @@ -{"version":3,"file":"StructNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/StructNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StructNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/StructNode.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 55c1cea..edb4261 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;AAuChE;;;;;;;;;;;;;;;;;;;;;;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,CAuIzB;AAwRD,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;AA8ChE;;;;;;;;;;;;;;;;;;;;;;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;AAgUD,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 78c57d0..c2fc877 100644 --- a/dist/datamodel/parser/BinarySlddParser.js +++ b/dist/datamodel/parser/BinarySlddParser.js @@ -45,6 +45,7 @@ import { unzipSync } from 'fflate'; import { XMLParser } from 'fast-xml-parser'; import { reasonOf } from './ParseWarning.js'; +import { SC_PART_XML, catalogFromDefinitions, scPartUnreadableMessage, scanScXml, } from './ScCatalog.js'; import { charNeedsShape, formatMatrixSerial, formatMxCharSerial, formatNumLiteral, needsExactInt, parseExactBody, parseMatlabNum, parseNumericBody, transposeFromColumnMajorND, SAVEOBJ_KEY, } from './XmlUtils.js'; const xmlParser = new XMLParser({ ignoreAttributes: false, @@ -261,8 +262,44 @@ export function parseBinarySlddParts(xmlString, zipMetadata, warnings) { __rawXml: xmlString, __zipMetadata: zipMetadata, __dataSourceAttrs: dataSourceAttrs, + ...scCatalogOf(zipMetadata, decoder, warnings), }; } +/** + * The System Composer catalog of a compressed-binary dictionary, read from the zipped + * interface-dictionary member. + * + * 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. + * + * 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. + */ +function scCatalogOf(zipMetadata, decoder, warnings) { + 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) }; +} function extractEntryFragments(xmlString) { const fragments = []; const openTag = ''; diff --git a/dist/datamodel/parser/BinarySlddParser.js.map b/dist/datamodel/parser/BinarySlddParser.js.map index d9f340e..7990ac5 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 new file mode 100644 index 0000000..bf3bb36 --- /dev/null +++ b/dist/datamodel/parser/ScCatalog.d.ts @@ -0,0 +1,98 @@ +export declare const SC_PART = "simulink/systemcomposer/interfaceDictionary"; +export declare const SC_PART_XML = "simulink/systemcomposer/interfaceDictionary.xml"; +export interface SystemComposerCatalog { + interfaces: Record; + modeledDataTypes: Record; +} +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; + end: number; +} +/** + * One catalog definition: what it is called, what models it, and every place the + * source spells its name. + * + * `nameSites` is plural because a value type definition writes its name TWICE — on + * the definition and on the value-type descriptor nested inside it, which MATLAB + * keeps equal (11,964 of 11,964 in the customer dictionary this was measured on). + * A rename that moved only one of them would leave the descriptor naming a type + * that no longer exists. + */ +export interface ScDefinition { + name: string; + /** The systemcomposer type, e.g. `…interface.CompositeDataInterface`. */ + type: string; + /** Whether the definition is an interface or a modeled data type. */ + container: 'interfaces' | 'modeledDataTypes'; + nameSites: ScNameSite[]; +} +/** Fold definitions into the catalog the model classifies entries with. */ +export declare function catalogFromDefinitions(defs: ScDefinition[]): SystemComposerCatalog; +/** + * Scan the MF0 XML of a compressed-binary dictionary's interface dictionary. + * + * A tag walk rather than a DOM parse for two reasons: the part is 20 MB in a real + * customer dictionary, and a rename has to know the BYTE RANGE of each name so the + * member can be patched in place instead of re-serialized (which would rewrite 20 MB + * of a file the user did not touch). + * + * Names are compared and returned raw. Dictionary entry names are MATLAB + * identifiers, so there is nothing for XML escaping to do to them. + */ +export declare function scanScXml(xml: string): ScDefinition[]; +/** + * Scan the JSON text of an uncompressed-text dictionary's interface dictionary. + * + * The text and not the parsed object, because that is what the host holds: a textual + * `.sldd` is an open TEXT DOCUMENT, edited by splicing spans, and a rename has to + * become a span replacement in it. Re-serializing the part instead would rewrite 20 MB + * of a customer's file — and reformat every line of it — to change one name. + * + * The walk is deliberately shallow: it finds the two container keys, then reads only + * what a definition is (its type, its name, and the value-type descriptor nested + * directly in it), skipping every other value wholesale. Whitespace is irrelevant to + * it, so it reads MATLAB's tab-indented layout and a re-saved minified one alike. + */ +export declare function scanScJsonText(text: string): ScDefinition[]; +/** One replacement in a source text, as a half-open span and the text to put there. */ +export interface ScTextEdit { + start: number; + end: number; + text: string; +} +/** + * The edits that carry a rename into the catalog: every place the definition named + * `oldName` spells that name, and nothing else. + * + * Nothing else is the point. In a real dictionary a catalog name occurs three times + * in this part — on the definition, on the definition's own value-type descriptor, + * and on a bus element in ANOTHER interface that happens to be named after the type + * it references. The first two are the definition's name and move with it; the third + * is an element's name in someone else's interface and must not move. A global + * string replace gets that wrong every time. + * + * Returns edits in ascending position, or an empty array when no definition carries + * the name (the overwhelming majority of renames: an entry no catalog classifies). + */ +export declare function scRenameEdits(defs: ScDefinition[], oldName: string, newName: string): ScTextEdit[]; +/** Apply non-overlapping edits to a text, back to front so earlier spans stay valid. */ +export declare function applyScEdits(text: string, edits: ScTextEdit[]): string; +/** + * Move a definition's key in a catalog the model is holding, to follow a rename. + * + * The other half of `scRenameEdits`, and the one that is about the TREE rather than the + * file: the catalog is keyed by name, and every narrow repaint rebuilds an entry through + * `parseEntry(record, catalog)`, so a catalog left keyed by the old name re-derives a + * Kind the renamed entry no longer has. The host writes the part; this keeps the tree it + * is holding saying the same thing. + * + * Returns whether anything moved, so a caller can tell "the catalog classified this + * entry" from "there was nothing to follow" — which is also the gate on carrying the + * rename into the file at all. + */ +export declare function renameInCatalog(catalog: SystemComposerCatalog | null | undefined, oldName: string, newName: string): boolean; +//# sourceMappingURL=ScCatalog.d.ts.map \ No newline at end of file diff --git a/dist/datamodel/parser/ScCatalog.d.ts.map b/dist/datamodel/parser/ScCatalog.d.ts.map new file mode 100644 index 0000000..6a4c1c3 --- /dev/null +++ b/dist/datamodel/parser/ScCatalog.d.ts.map @@ -0,0 +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 diff --git a/dist/datamodel/parser/ScCatalog.js b/dist/datamodel/parser/ScCatalog.js new file mode 100644 index 0000000..45349f3 --- /dev/null +++ b/dist/datamodel/parser/ScCatalog.js @@ -0,0 +1,441 @@ +// src/datamodel/parser/ScCatalog.ts +// Copyright 2026 The MathWorks, Inc. +// +// THE SYSTEM COMPOSER CATALOG — ONE VOCABULARY, TWO FILE FORMATS. +// +// An Architectural Data entry is stored as an ordinary Simulink object: a data +// interface and a struct type are BOTH a `Simulink.Bus` in `data/chunk0`, and +// nothing in the entry says which one it is. What says so is a second part of the +// dictionary — the System Composer interface dictionary — which lists each +// definition by NAME with the System Composer type that models it. Two storage +// forms, one catalog: +// +// uncompressed-text `.sldd` a JSON object at `__MW_TEXT_PARTS__/` +// compressed-binary `.sldd` an MF0 XML member at `` +// +// The type map and the classification rule live HERE, once, so the two readers +// cannot answer differently about the same dictionary. What each reader owns is +// only the walk over its own syntax. +// +// The catalog is keyed by NAME because that is the only link the file has: an +// entry's uuid appears in `simulink/ArchitecturePart` but never in this part, and +// this part's uuids appear nowhere else. So a rename has to be carried into the +// catalog or it silently reclassifies the entry — which is what `scRenameEdits` +// (the file) and `renameInCatalog` (the tree) exist for, and why the scans record +// where each name SITS as well as what it is. +// The part path of the systemcomposer interface dictionary in an uncompressed-text +// dictionary, named once because it is used to look the part up and to name it in +// the warning raised when it is there and unreadable. A warning naming a different +// string from the one that was looked up would be a lie no reader could detect. +export const SC_PART = 'simulink/systemcomposer/interfaceDictionary'; +// The same part as a member of a compressed-binary (zip) dictionary. The `.xml` +// suffix is part of the member name, and a host matching a warning's `part` against +// the package needs the name the package uses. +export const SC_PART_XML = `${SC_PART}.xml`; +// Maps a systemcomposer type string to the semantic classification token that +// drives the entry's Kind. The token is derived from the type, not the entry +// name (which is user-chosen), so it stays correct regardless of the name. +export const SC_TYPE_TO_CLASSIFICATION = { + 'systemcomposer.architecture.model.interface.CompositeDataInterface': 'DataInterface', + 'systemcomposer.architecture.model.interface.CompositePhysicalInterface': 'PhysicalInterface', + 'systemcomposer.architecture.model.swarch.ServiceInterface': 'ServiceInterface', + 'systemcomposer.architecture.model.interface.ValueTypeInterface': 'ValueType', + 'systemcomposer.property.StructDataType': 'StructType', + 'systemcomposer.property.NumericType': 'NumericType', + 'systemcomposer.property.EnumDataType': 'EnumType', + 'systemcomposer.property.AliasType': 'AliasType', +}; +// Resolve the classification token (e.g. 'DataInterface', 'StructType') for an +// entry name, or null if the catalog doesn't classify it. Interfaces are checked +// before modeled data types. +export function classificationOf(catalog, entryName) { + if (!catalog) { + return null; + } + 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.'; +} +// 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 +// `p_BuiltInValueTypes` / `p_valueType` children are MATLAB's built-in types +// (`double`, `int16`, …) — none of them is a dictionary entry. +const IFACE_KEY = 'p_Interfaces'; +const MODELED_KEY = 'p_ModeledDataTypes'; +const DESCRIPTOR_TYPE = 'systemcomposer.property.ValueTypeDescriptor'; +/** Fold definitions into the catalog the model classifies entries with. */ +export function catalogFromDefinitions(defs) { + const catalog = { interfaces: {}, modeledDataTypes: {} }; + defs.forEach((def) => { + if (def.name) { + catalog[def.container][def.name] = def.type; + } + }); + return catalog; +} +// A tag: ``, `` or ``. Attribute values are quoted, +// so `[^>"]|"[^"]*"` skips a `>` inside a value rather than ending the tag on it. +const TAG_RE = /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g; +const attrOf = (attrs, name) => { + const m = new RegExp(`${name}="([^"]*)"`).exec(attrs); + return m ? m[1] : ''; +}; +/** + * Scan the MF0 XML of a compressed-binary dictionary's interface dictionary. + * + * A tag walk rather than a DOM parse for two reasons: the part is 20 MB in a real + * customer dictionary, and a rename has to know the BYTE RANGE of each name so the + * member can be patched in place instead of re-serialized (which would rewrite 20 MB + * of a file the user did not touch). + * + * Names are compared and returned raw. Dictionary entry names are MATLAB + * identifiers, so there is nothing for XML escaping to do to them. + */ +export function scanScXml(xml) { + const defs = []; + const stack = []; + TAG_RE.lastIndex = 0; + let tag; + while ((tag = TAG_RE.exec(xml))) { + const [whole, closing, name, attrs, selfClosing] = tag; + if (selfClosing) { + // An empty element carries no name text, so it can only be a descriptor + // with nothing in it — nothing to record either way. + continue; + } + if (!closing) { + stack.push({ + tag: name, + type: attrOf(attrs, 'type'), + descriptorSites: [], + textStart: tag.index + whole.length, + }); + continue; + } + const frame = stack.pop(); + if (!frame) { + continue; + } + const parent = stack[stack.length - 1]; + if (frame.tag === 'p_Name') { + if (parent) { + parent.nameSite = { start: frame.textStart, end: tag.index }; + } + continue; + } + if (frame.type === DESCRIPTOR_TYPE && frame.nameSite && parent) { + parent.descriptorSites.push(frame.nameSite); + continue; + } + if (frame.tag !== IFACE_KEY && frame.tag !== MODELED_KEY) { + continue; + } + if (!frame.nameSite) { + continue; + } + defs.push(definitionOf(xml.slice(frame.nameSite.start, frame.nameSite.end), frame.type, frame.tag === IFACE_KEY ? 'interfaces' : 'modeledDataTypes', frame.nameSite, frame.descriptorSites.map((site) => ({ site, text: xml.slice(site.start, site.end) })))); + } + return defs; +} +// Assemble a definition, keeping only the nested descriptor names that ARE this +// definition's name. A descriptor naming something else is naming something else: +// it is a reference to another type, and renaming this definition must not touch it. +function definitionOf(name, type, container, nameSite, descriptors) { + const sites = [nameSite]; + descriptors.forEach((d) => { + if (d.text === name) { + sites.push(d.site); + } + }); + return { name, type, container, nameSites: sites }; +} +/** + * Scan the JSON text of an uncompressed-text dictionary's interface dictionary. + * + * The text and not the parsed object, because that is what the host holds: a textual + * `.sldd` is an open TEXT DOCUMENT, edited by splicing spans, and a rename has to + * become a span replacement in it. Re-serializing the part instead would rewrite 20 MB + * of a customer's file — and reformat every line of it — to change one name. + * + * The walk is deliberately shallow: it finds the two container keys, then reads only + * what a definition is (its type, its name, and the value-type descriptor nested + * directly in it), skipping every other value wholesale. Whitespace is irrelevant to + * it, so it reads MATLAB's tab-indented layout and a re-saved minified one alike. + */ +export function scanScJsonText(text) { + const region = scPartRegion(text); + if (!region) { + return []; + } + const defs = []; + [[IFACE_KEY, 'interfaces'], [MODELED_KEY, 'modeledDataTypes']].forEach(([key, container]) => { + eachKeyedArray(text, region, key, (elemStart) => { + const def = readJsonDefinition(text, elemStart, container); + if (def) { + defs.push(def); + } + }); + }); + return defs; +} +// The span of the interface dictionary part's VALUE inside the whole document text. +// Scoping the scan to it keeps `p_Interfaces` from being looked for in 40 MB of entry +// data that cannot contain one. +function scPartRegion(text) { + const key = `"__MW_TEXT_PART__/${SC_PART}"`; + const at = text.indexOf(key); + if (at < 0) { + return null; + } + const colon = skipWs(text, at + key.length); + if (text[colon] !== ':') { + return null; + } + const start = skipWs(text, colon + 1); + if (text[start] !== '{') { + return null; + } + return { start, end: skipValue(text, start) }; +} +// Every element of every array under `key` within the region. A quoted string +// followed by a colon is a KEY and nothing else in JSON, which is the whole test: +// `p_Interfaces` names the interface catalog's list wherever it appears. +function eachKeyedArray(text, region, key, onElement) { + const quoted = `"${key}"`; + let at = text.indexOf(quoted, region.start); + while (at >= 0 && at < region.end) { + const colon = skipWs(text, at + quoted.length); + if (text[colon] === ':') { + const value = skipWs(text, colon + 1); + if (text[value] === '[') { + eachElement(text, value, onElement); + } + } + at = text.indexOf(quoted, at + quoted.length); + } +} +// Read one definition object: `{ "content": { "p_Name": …, : {…} }, "type": … }`. +function readJsonDefinition(text, objStart, container) { + if (text[objStart] !== '{') { + return null; + } + let type = ''; + let contentStart = -1; + eachMember(text, objStart, (key, valueStart) => { + if (key === 'type' && text[valueStart] === '"') { + type = text.slice(valueStart + 1, skipValue(text, valueStart) - 1); + } + else if (key === 'content' && text[valueStart] === '{') { + contentStart = valueStart; + } + }); + if (contentStart < 0) { + return null; + } + let nameSite; + const descriptors = []; + eachMember(text, contentStart, (key, valueStart) => { + if (key === 'p_Name' && text[valueStart] === '"') { + nameSite = { start: valueStart + 1, end: skipValue(text, valueStart) - 1 }; + } + else if (text[valueStart] === '{') { + // A direct child object: the second place a value type's name is written + // is the descriptor nested here. Deeper objects are other definitions' + // business — a data element's owned interface, a struct element's + // descriptor — and their names are their own. + const site = descriptorNameSite(text, valueStart); + if (site) { + descriptors.push({ site, text: text.slice(site.start, site.end) }); + } + } + }); + if (!nameSite) { + return null; + } + return definitionOf(text.slice(nameSite.start, nameSite.end), type, container, nameSite, descriptors); +} +// The name span of a value-type descriptor object, or null if this object is not one. +function descriptorNameSite(text, objStart) { + let isDescriptor = false; + let contentStart = -1; + eachMember(text, objStart, (key, valueStart) => { + if (key === 'type' && text[valueStart] === '"') { + isDescriptor = text.slice(valueStart + 1, skipValue(text, valueStart) - 1) === DESCRIPTOR_TYPE; + } + else if (key === 'content' && text[valueStart] === '{') { + contentStart = valueStart; + } + }); + if (!isDescriptor || contentStart < 0) { + return null; + } + let site = null; + eachMember(text, contentStart, (key, valueStart) => { + if (key === 'p_Name' && text[valueStart] === '"') { + site = { start: valueStart + 1, end: skipValue(text, valueStart) - 1 }; + } + }); + return site; +} +const skipWs = (text, i) => { + let at = i; + while (at < text.length && (text[at] === ' ' || text[at] === '\t' || text[at] === '\n' || text[at] === '\r')) { + at++; + } + return at; +}; +// The index just past the value starting at `i`. Strings are skipped with escape +// awareness, so a `}` or a `"` inside one does not end anything. +function skipValue(text, i) { + const ch = text[i]; + if (ch === '"') { + return skipString(text, i); + } + if (ch === '{' || ch === '[') { + const close = ch === '{' ? '}' : ']'; + let depth = 0; + let at = i; + while (at < text.length) { + const c = text[at]; + if (c === '"') { + at = skipString(text, at); + continue; + } + if (c === '{' || c === '[') { + depth++; + } + else if (c === '}' || c === ']') { + depth--; + if (depth === 0) { + return c === close ? at + 1 : at + 1; + } + } + at++; + } + return text.length; + } + // A number, true/false/null: everything up to whatever ends a value. + let at = i; + while (at < text.length && !',}] \t\n\r'.includes(text[at])) { + at++; + } + return at; +} +function skipString(text, i) { + let at = i + 1; + while (at < text.length) { + if (text[at] === '\\') { + at += 2; + continue; + } + if (text[at] === '"') { + return at + 1; + } + at++; + } + return text.length; +} +// Each `"key": value` of the object starting at `objStart`, without descending. +function eachMember(text, objStart, onMember) { + let at = skipWs(text, objStart + 1); + while (at < text.length && text[at] !== '}') { + if (text[at] !== '"') { + return; + } + const keyEnd = skipString(text, at); + const key = text.slice(at + 1, keyEnd - 1); + const colon = skipWs(text, keyEnd); + if (text[colon] !== ':') { + return; + } + const valueStart = skipWs(text, colon + 1); + onMember(key, valueStart); + at = skipWs(text, skipValue(text, valueStart)); + if (text[at] === ',') { + at = skipWs(text, at + 1); + } + } +} +// Each element of the array starting at `arrStart`, without descending. +function eachElement(text, arrStart, onElement) { + let at = skipWs(text, arrStart + 1); + while (at < text.length && text[at] !== ']') { + onElement(at); + at = skipWs(text, skipValue(text, at)); + if (text[at] === ',') { + at = skipWs(text, at + 1); + } + } +} +/** + * The edits that carry a rename into the catalog: every place the definition named + * `oldName` spells that name, and nothing else. + * + * Nothing else is the point. In a real dictionary a catalog name occurs three times + * in this part — on the definition, on the definition's own value-type descriptor, + * and on a bus element in ANOTHER interface that happens to be named after the type + * it references. The first two are the definition's name and move with it; the third + * is an element's name in someone else's interface and must not move. A global + * string replace gets that wrong every time. + * + * Returns edits in ascending position, or an empty array when no definition carries + * the name (the overwhelming majority of renames: an entry no catalog classifies). + */ +export function scRenameEdits(defs, oldName, newName) { + const edits = []; + defs.forEach((def) => { + if (def.name !== oldName) { + return; + } + def.nameSites.forEach((site) => edits.push({ start: site.start, end: site.end, text: newName })); + }); + return edits.sort((a, b) => a.start - b.start); +} +/** Apply non-overlapping edits to a text, back to front so earlier spans stay valid. */ +export function applyScEdits(text, edits) { + let out = text; + [...edits].sort((a, b) => b.start - a.start).forEach((edit) => { + out = out.slice(0, edit.start) + edit.text + out.slice(edit.end); + }); + return out; +} +/** + * Move a definition's key in a catalog the model is holding, to follow a rename. + * + * The other half of `scRenameEdits`, and the one that is about the TREE rather than the + * file: the catalog is keyed by name, and every narrow repaint rebuilds an entry through + * `parseEntry(record, catalog)`, so a catalog left keyed by the old name re-derives a + * Kind the renamed entry no longer has. The host writes the part; this keeps the tree it + * is holding saying the same thing. + * + * Returns whether anything moved, so a caller can tell "the catalog classified this + * entry" from "there was nothing to follow" — which is also the gate on carrying the + * rename into the file at all. + */ +export function renameInCatalog(catalog, oldName, newName) { + if (!catalog || oldName === newName) { + return false; + } + let moved = false; + [catalog.interfaces, catalog.modeledDataTypes].forEach((bag) => { + if (!Object.prototype.hasOwnProperty.call(bag, oldName)) { + return; + } + bag[newName] = bag[oldName]; + delete bag[oldName]; + moved = true; + }); + return moved; +} +//# sourceMappingURL=ScCatalog.js.map \ No newline at end of file diff --git a/dist/datamodel/parser/ScCatalog.js.map b/dist/datamodel/parser/ScCatalog.js.map new file mode 100644 index 0000000..0818efe --- /dev/null +++ b/dist/datamodel/parser/ScCatalog.js.map @@ -0,0 +1 @@ +{"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/dist/index.d.ts b/dist/index.d.ts index 6b75c19..011da85 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -32,6 +32,8 @@ export { ingest } from './core/ingest.js'; export type { IngestContent, IngestOptions } from './core/ingest.js'; export { extOf, basenameOf, refBasename, modelNameOf, isModelFile, isSlddFile, isMatFile, isProjectFile, } from './datamodel/fileKinds.js'; export { readSlddContent, slddChunkContent, isJsonTextBytes, normalizeRefNames } from './datamodel/parser/SlddContent.js'; +export { SC_PART, SC_PART_XML, SC_TYPE_TO_CLASSIFICATION, applyScEdits, catalogFromDefinitions, classificationOf, scRenameEdits, scanScJsonText, scanScXml, } from './datamodel/parser/ScCatalog.js'; +export type { ScDefinition, ScNameSite, ScTextEdit, SystemComposerCatalog } from './datamodel/parser/ScCatalog.js'; export { buildUsageIndex, summarizeFiles, resolveName } from './datamodel/usage/UsageIndex.js'; export type { UsageIndex, UsageFile, FileSummaries, ModelSummary, DataSummary, ParamOrigin, OriginKind, } from './datamodel/usage/UsageIndex.js'; export { toDTO } from './core/dto.js'; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index ddd1be8..364184d 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 1ae4a5b..1d97602 100644 --- a/dist/index.js +++ b/dist/index.js @@ -63,6 +63,16 @@ export { extOf, basenameOf, refBasename, modelNameOf, isModelFile, isSlddFile, i // depending on which writer produced the file, so a reader that accepts only strings // resolves the sub-dictionaries of one flavour and none of the other. export { readSlddContent, slddChunkContent, isJsonTextBytes, normalizeRefNames } from './datamodel/parser/SlddContent.js'; +// The System Composer catalog: what says a `Simulink.Bus` is a struct type rather than +// a data interface. It is a SEPARATE part of the dictionary that references its entries +// BY NAME, so a host that renames a catalogued entry has to carry the rename into that +// part or the entry silently loses its classification on the next read — and the part is +// stored two ways (a JSON object in a textual `.sldd`, a zipped MF0 XML member in a +// compressed-binary one), so the carry needs one rule and two readers. Public because +// the rename happens in the HOST: it owns the open document's text and the zip members, +// and this package cannot splice either for it. `classificationOf` is the read side, for +// a consumer that wants an entry's System Composer type without walking the tree. +export { SC_PART, SC_PART_XML, SC_TYPE_TO_CLASSIFICATION, applyScEdits, catalogFromDefinitions, classificationOf, scRenameEdits, scanScJsonText, scanScXml, } from './datamodel/parser/ScCatalog.js'; // Usage across a SET OF FILES rather than across a session — which blocks refer to a // definition, and where a block parameter's names resolve, over files a caller has read // but need not have opened. session.findUsages answers the same question for registered diff --git a/dist/index.js.map b/dist/index.js.map index 8323683..4d1d23d 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/datamodel/node/BaseNode.ts b/src/datamodel/node/BaseNode.ts index 6b91412..fb0fd6e 100644 --- a/src/datamodel/node/BaseNode.ts +++ b/src/datamodel/node/BaseNode.ts @@ -3,6 +3,7 @@ import { buildPILayout } from './schemaBridge.js'; import { buildOtherRows } from './piOther.js'; import { subscriptLabel } from '../display/Subscript.js'; +import type { Bracket, ElementOrder } from '../display/Subscript.js'; export interface PropClass { key: string; @@ -47,6 +48,10 @@ export interface RowData { Name?: { label: string; iconId: string; disabled: boolean; editable: boolean; element: boolean }; Value?: unknown; _valueEditable?: boolean; + // Whether the Description cell takes an editor. Carried separately for the same + // reason as `_valueEditable`: the column renders through a dedicated branch that + // consumes a plain string. + _descriptionEditable?: boolean; DataType?: string | { text: string; linkTarget?: string }; Class?: string; Kind?: string; @@ -109,11 +114,30 @@ const DEDICATED_COLUMNS = new Set(['Name', 'Value', 'DataType', 'Class', 'Kind', // four switches refuse. export type MatlabVariableKind = 'scalar' | 'array' | 'cell' | 'string'; +// Where an element sits in its parent's array — everything needed to SPELL the +// element's row label, and nothing that is the label itself. A struct-array, +// object-array or .mat struct-array element is named by a subscript into its +// parent (`s(2,1)`), so the three parse sites that build such elements record +// this and displayName derives the text on demand. +// +// Deliberately not the finished string, which is what this replaced: baked at +// parse time, it went stale the moment the parent was renamed and every element +// row under `newName` still read `oldName(1,1)` until the file was reopened. The +// parent's own displayed name is read live, so a nested array's elements follow +// the row above them at any depth. +export interface ElementSubscript { + index: number; + dims: number[] | undefined; + order: ElementOrder; + bracket: Bracket; +} + export default class BaseNode { name: string; parent: BaseNode | null; children: BaseNode[]; _displayName?: string; + _subscript?: ElementSubscript; _kind?: MatlabVariableKind; _dims?: number[]; @@ -169,11 +193,12 @@ export default class BaseNode { // The sole signal for graying a Name cell: this node's displayed name is a // synthetic positional subscript, not a user-assigned identifier. Covers bare - // array/cell/string indices (isIndexedName) and struct-array elements (which - // carry a `Name(i)` alias in `_displayName`). Structural and independent of file - // format — entries and struct FIELDS are never elements, so they render normally. + // array/cell/string indices (isIndexedName), struct/object-array elements (which + // carry an `_subscript` into their parent) and an explicit `_displayName` alias. + // Structural and independent of file format — entries and struct FIELDS are never + // elements, so they render normally. get isElementName(): boolean { - return this.isIndexedName || !!this._displayName; + return this.isIndexedName || !!this._subscript || !!this._displayName; } // True when this node's CHILDREN are the properties of a MATLAB class object @@ -190,7 +215,7 @@ export default class BaseNode { if (this.isIndexedName) { return false; } - if (this._displayName) { + if (this._subscript || this._displayName) { return false; } // A class property name is fixed by the class definition. @@ -357,6 +382,13 @@ export default class BaseNode { this.parent._kind === 'cell' ? '{}' : '()', ); } + // A struct/object-array element: the same derivation, off the spec its parse + // site recorded. Read live from the parent's CURRENT displayed name, which is + // what makes an element row follow a rename of the array above it. + if (this._subscript && this.parent) { + const s = this._subscript; + return subscriptLabel(this.parent.displayName, s.index, s.dims, s.order, s.bracket); + } return this._displayName || this.name; } @@ -368,6 +400,24 @@ export default class BaseNode { return true; } + // Whether a Description typed onto this row could be SAVED — the third member of the + // nameEditable/valueEditable family, and one for the same reason: the Description + // column exists for every row, but only a node that serializes a MATLAB property bag + // has anywhere to put one. A plain variable (and a struct) goes out as + // `{name, metadata, value}`, so a Description set on it showed in the cell and was + // gone on the next read of the file. + // + // True here, false in the two classes that cannot hold one, rather than the other way + // round: every Simulink object can be described, and a new class that cannot has to + // say so — which is the same direction nameEditable and valueEditable are declared in. + // + // It used to be answered by `valueEditable`, which is a different question: a + // Parameter whose value displays as a `<1x12 double>` summary takes no value editor + // and can still be described. + get descriptionEditable(): boolean { + return true; + } + getPropInfo(PropClassRef: PropClass): PropInfo { const key = PropClassRef.key; let displayValue: string; @@ -384,6 +434,12 @@ export default class BaseNode { if (key === 'Value') { editable = editable && this.valueEditable; } + // Consulted HERE and not only in toRow so the property inspector honours it too: it + // builds its fields from getPropInfo, and it offered the same unkeepable Description + // the table did. + if (key === 'Description') { + editable = editable && this.descriptionEditable; + } return { key, @@ -456,6 +512,11 @@ export default class BaseNode { if (!('Description' in row)) { row.Description = (this as unknown as { Description?: string }).Description || ''; } + // Unconditional, and beside the cell rather than inside it: Description renders + // through a dedicated webview branch that consumes a plain string (see + // DEDICATED_COLUMNS), so the editability has to travel as its own key — the same + // arrangement `_valueEditable` already has, and for the same reason. + row._descriptionEditable = this.descriptionEditable; // The reverse projection, reached through the resolver the session stamped on this // node's source root rather than through a session reference a node must not hold. diff --git a/src/datamodel/node/DataNode.ts b/src/datamodel/node/DataNode.ts index 092108e..510f813 100644 --- a/src/datamodel/node/DataNode.ts +++ b/src/datamodel/node/DataNode.ts @@ -223,9 +223,10 @@ export default class DataNode extends BaseNode { return typeof by === 'string' ? by : ''; } - // nameEditable is inherited from BaseNode: the three things that fix a name — a - // synthetic positional index, a `_displayName` alias, and an object-property-bag - // parent — are all structural, so the base rule already covers every data node. + // nameEditable is inherited from BaseNode: the things that fix a name — a + // synthetic positional index, an element subscript, a `_displayName` alias, and an + // object-property-bag parent — are all structural, so the base rule already covers + // every data node. get disabled(): boolean { return !this.isEntry; @@ -261,6 +262,21 @@ export default class DataNode extends BaseNode { } const resolved = this._resolveProperty(propName); if (resolved === 'name') { + // The node already answers "can this name be typed into", and every path that + // fixes a name fixes it because the FORMAT has no other spelling for it: a + // positional element index, an element subscript, a class property's name. Ask + // that question here too, or a rename the table declined to offer still lands when + // something asks for it directly — renaming a Simulink.Parameter's `Value` row was + // exactly that, accepted by the model and dropped by serialize, which writes the + // key `Value` whatever the node is called. + if (!this.nameEditable) { + return { + error: true, + reason: `'${this.displayName}' is not a name this entry can carry, so it cannot be renamed.`, + invalidValue: stringValue, + validValue: this.displayName, + }; + } const error = validateMatlabName(stringValue); if (error) { return { error: true, reason: error, invalidValue: stringValue, validValue: this.name }; @@ -298,9 +314,31 @@ export default class DataNode extends BaseNode { if (typeof renameField === 'function') { renameField.call(this.parent, oldName, stringValue); } + // The same obligation one level out: a SECTION's parent is the dictionary, which + // keys the System Composer catalog by entry name, so renaming an ENTRY has to move + // that key too or the entry is reclassified the next time it is rebuilt from a + // record (see SectionNode._entryRenamed). Only a top-level entry has a section for + // a parent, which is what scopes this to the names the catalog can be about. + const entryRenamed = (this.parent as unknown as { _entryRenamed?: (from: string, to: string) => void }) + ?._entryRenamed; + if (typeof entryRenamed === 'function') { + entryRenamed.call(this.parent, oldName, stringValue); + } this._markModified(); return true; } + // Same shape as the name guard: a node that has nowhere to serialize a Description + // refuses one rather than holding it until the file is read again (see + // BaseNode.descriptionEditable). The generic tail below would otherwise write it, + // because the FIELD exists on every node whether the format carries it or not. + if (resolved === 'Description' && !this.descriptionEditable) { + return { + error: true, + reason: `A ${this.kind || 'value'} has no Description in a dictionary, so one cannot be saved for '${this.displayName}'.`, + invalidValue: stringValue, + validValue: (this as unknown as { Description?: string }).Description || '', + }; + } const self = this as unknown as Record; const current = self[resolved]; const type = typeof current; diff --git a/src/datamodel/node/container/SectionNode.ts b/src/datamodel/node/container/SectionNode.ts index a30b38f..acbbbd8 100644 --- a/src/datamodel/node/container/SectionNode.ts +++ b/src/datamodel/node/container/SectionNode.ts @@ -9,8 +9,11 @@ import type DataNode from '../DataNode.js'; // reach the class map without a cycle. NodeClassMap installs itself into it. import * as NodeRegistry from '../NodeRegistry.js'; import { matlabTimestampNow } from '../../parser/XmlUtils.js'; -import type { SystemComposerCatalog } from './SlddNode.js'; -import { classificationOf as _classificationOf } from './SlddNode.js'; +import type { SystemComposerCatalog } from '../../parser/ScCatalog.js'; +import { + classificationOf as _classificationOf, + renameInCatalog as _renameInCatalog, +} from '../../parser/ScCatalog.js'; import { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE } from '../../SectionConstants.js'; export { NS_DESIGN, NS_CONFIGURATIONS, NS_OTHER, SECTION_NAMESPACE }; @@ -127,6 +130,22 @@ export default class SectionNode extends ContainerNode { return names; } + // One of MY entries was renamed — follow it wherever else the dictionary spells that + // name. Today that is the System Composer catalog, which keys its definitions by + // entry name and so decides an architectural entry's Kind by it: a catalog left + // holding the old name reclassifies the entry (a struct type re-reads as a plain data + // interface) the next time anything rebuilds it from a record. + // + // Called by DataNode.setProperty for the same reason `_renameField` is: a rename is + // only complete when every structure keyed by the name has been told, and only the + // parent knows which those are. Nested children (bus elements, struct fields) have no + // such parent, which is what keeps an element that happens to share a definition's + // name from moving the catalog under the entry that really carries it. + _entryRenamed(oldName: string, newName: string): void { + const dictionary = this.parent as unknown as { systemComposer?: SystemComposerCatalog | null } | null; + _renameInCatalog(dictionary?.systemComposer, oldName, newName); + } + addEntry(className: string, entryName?: string): DataNode | null { const NodeClass = NodeRegistry.getClass(className); if (!NodeClass || !NodeClass.createDefault) { diff --git a/src/datamodel/node/container/SlddNode.ts b/src/datamodel/node/container/SlddNode.ts index b53b2e6..de499a7 100644 --- a/src/datamodel/node/container/SlddNode.ts +++ b/src/datamodel/node/container/SlddNode.ts @@ -11,6 +11,8 @@ import PropFileFormat from '../../prop/PropFileFormat.js'; 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'; const SECTION_DEFS = [ { key: 'design', label: 'Design Data', icon: 'databaseFolderDesign' }, @@ -19,51 +21,10 @@ const SECTION_DEFS = [ { key: 'other', label: 'Other Data', icon: 'databaseFolder' } ]; -// The part path of the systemcomposer interface dictionary, named once because it is -// used three times now: to look the part up, and — when it is there and unreadable — in -// the message and in the `part` field of the warning that says so. A warning naming a -// different string from the one that was looked up would be a lie no reader could -// detect, and a `part` a host cannot match against the package is no better than none. -const SC_PART = 'simulink/systemcomposer/interfaceDictionary'; - -// The systemcomposer interface dictionary classifies architectural entries -// (which are stored as ordinary Simulink objects) into interface/type kinds. -// Captured at parse time so the rest of the model can distinguish, e.g., a -// StructType from a DataInterface (both are Simulink.Bus). -export interface SystemComposerCatalog { - // Interface name -> systemcomposer type, from the PortInterfaceCatalog - // (e.g. CompositeDataInterface, CompositePhysicalInterface, ServiceInterface, - // ValueTypeInterface). - interfaces: Record; - // Modeled data type name -> systemcomposer type, from the TypeCatalog - // (e.g. StructDataType, NumericType, EnumDataType, AliasType). - modeledDataTypes: Record; -} - -// Maps a systemcomposer type string to the semantic classification token that -// drives the entry's Kind. The token is derived from the type, not the entry -// name (which is user-chosen), so it stays correct regardless of the name. -const SC_TYPE_TO_CLASSIFICATION: Record = { - 'systemcomposer.architecture.model.interface.CompositeDataInterface': 'DataInterface', - 'systemcomposer.architecture.model.interface.CompositePhysicalInterface': 'PhysicalInterface', - 'systemcomposer.architecture.model.swarch.ServiceInterface': 'ServiceInterface', - 'systemcomposer.architecture.model.interface.ValueTypeInterface': 'ValueType', - 'systemcomposer.property.StructDataType': 'StructType', - 'systemcomposer.property.NumericType': 'NumericType', - 'systemcomposer.property.EnumDataType': 'EnumType', - 'systemcomposer.property.AliasType': 'AliasType', -}; - -// Resolve the classification token (e.g. 'DataInterface', 'StructType') for an -// entry name, or null if the catalog doesn't classify it. Interfaces are checked -// before modeled data types. -export function classificationOf(catalog: SystemComposerCatalog | null | undefined, entryName: string): string | null { - if (!catalog) { - return null; - } - const scType = catalog.interfaces[entryName] || catalog.modeledDataTypes[entryName]; - return (scType && SC_TYPE_TO_CLASSIFICATION[scType]) || null; -} +// The catalog vocabulary — the part path, the type map, the classification rule — +// lives in the parser module both dictionary formats read it through (ScCatalog), so +// a textual and a compressed-binary dictionary cannot classify the same entry +// differently. export default class SlddNode extends ContainerNode { coreProperties: Record | null; @@ -169,7 +130,14 @@ export default class SlddNode extends ContainerNode { // Parse the systemcomposer catalog first so entry parsing can use it to // classify architectural entries (e.g. StructType vs DataInterface). - node.systemComposer = SlddNode._parseSystemComposer(parts, warnings); + // + // A compressed-binary dictionary arrives with the catalog already read: its + // interface dictionary is a zipped XML member, which the binary reader is the + // only layer holding the bytes of, so it scans it and hands the finished catalog + // 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); if (!content) { // The four sections are built by the constructor, so a content-less dictionary @@ -253,9 +221,7 @@ export default class SlddNode extends ContainerNode { if (part) { warnings?.push({ code: 'part-unreadable', - message: `The dictionary part "${SC_PART}" holds nothing readable, so ` - + 'architectural entries are reported by their Simulink class rather than ' - + 'their System Composer type.', + message: scPartUnreadableMessage(SC_PART), part: SC_PART, }); } diff --git a/src/datamodel/node/data/MatlabVariable.md b/src/datamodel/node/data/MatlabVariable.md index 747fb6a..5060b2b 100644 --- a/src/datamodel/node/data/MatlabVariable.md +++ b/src/datamodel/node/data/MatlabVariable.md @@ -138,9 +138,11 @@ fields are editable as individual children. ### A struct ARRAY expands to one row per element, not one row per field `MatParser` reads a struct array as one `MatVariable` per element per field (`fields[f][ei]`), in MATLAB's own column-major order. A 1x1 struct keeps its -fields as its direct children; a struct array gets one child per ELEMENT, -subscript-labelled through `subscriptLabel(name, ei, dims, 'column-major', '()')` -— `s(1,1) s(2,1) s(1,2) …` — with that element's fields beneath it. Keeping only +fields as its direct children; a struct array gets one child per ELEMENT, carrying +an `_subscript` spec (`{index: ei, dims, 'column-major', '()'}`) that +`BaseNode.displayName` spells as `s(1,1) s(2,1) s(1,2) …` on demand — derived, so +renaming the variable relabels its elements — with that element's fields beneath +it. Keeping only `fields[f][0]` used to make every element after the first invisible, and forced `_buildVarObject` to replay elements 2..N from the parse snapshot, so an edit to any element but the first was discarded on save. The rebuild now reads the live diff --git a/src/datamodel/node/data/MatlabVariableNode.ts b/src/datamodel/node/data/MatlabVariableNode.ts index 57d5478..9f30623 100644 --- a/src/datamodel/node/data/MatlabVariableNode.ts +++ b/src/datamodel/node/data/MatlabVariableNode.ts @@ -30,7 +30,6 @@ import { overCharBudget, summaryForm, } from '../../display/DisplayConvention.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { charNeedsShape, charTextFromCodes, @@ -732,6 +731,15 @@ export default class MatlabVariableNode extends DataNode { // ---- Property set + Property Inspector layout ---- + // A plain variable goes out as `{name, metadata, value}` — there is no property bag + // in that shape, and serializeValue emits the VALUE alone. So a Description set here + // could only ever live until the file was read again. The prop stays declared (the + // column and the inspector field exist for every row); what changes is that neither + // offers an editor, and setProperty refuses it. + get descriptionEditable(): boolean { + return false; + } + getProperties(): PropClass[] { return [PropName, PropValue, PropDataType, PropDescription]; } @@ -2261,7 +2269,8 @@ export default class MatlabVariableNode extends DataNode { elemNode._scalarType = 'struct'; elemNode._scalarValue = null; elemNode._dims = [1, 1]; - elemNode._displayName = subscriptLabel(name, ei, node._dims, 'column-major', '()'); + // Derived, not baked: see BaseNode.ElementSubscript. + elemNode._subscript = { index: ei, dims: node._dims, order: 'column-major', bracket: '()' }; for (const fieldName of fieldNames) { const fieldVar = variable.fields[fieldName]; const childVar = Array.isArray(fieldVar) ? fieldVar[ei] : fieldVar; diff --git a/src/datamodel/node/data/ObjectNode.ts b/src/datamodel/node/data/ObjectNode.ts index ca84dc2..1c7c70d 100644 --- a/src/datamodel/node/data/ObjectNode.ts +++ b/src/datamodel/node/data/ObjectNode.ts @@ -12,7 +12,6 @@ import PropKind from '../../prop/PropKind.js'; import PropClassAtom from '../../prop/PropClass.js'; import { OBJECT_ICON } from '../icons.js'; import { escapeXml, pad as xmlPad } from '../../parser/XmlUtils.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { effectiveDims, summaryForm } from '../../display/DisplayConvention.js'; export default class ObjectNode extends DataNode { @@ -231,8 +230,10 @@ export default class ObjectNode extends DataNode { // The MCOS decoder and both SLDD paths deliver elements in MATLAB's // own COLUMN-major order, so element ei is MATLAB's linear index // ei+1. Reading it row-major named 4 of the 6 elements of a 2x3 - // array after the wrong object. - elemNode._displayName = subscriptLabel(name, ei, dims, 'column-major', '()'); + // array after the wrong object. The label itself is derived from + // this spec on demand (BaseNode.displayName), so it follows a + // rename of the array. + elemNode._subscript = { index: ei, dims, order: 'column-major', bracket: '()' }; node.addChild(elemNode); }); } else if (elements.length === 1) { diff --git a/src/datamodel/node/data/ParameterNode.ts b/src/datamodel/node/data/ParameterNode.ts index c3c377a..ed3eb18 100644 --- a/src/datamodel/node/data/ParameterNode.ts +++ b/src/datamodel/node/data/ParameterNode.ts @@ -155,6 +155,16 @@ export default class ParameterNode extends DataNode { this.children = []; } + // This node's one child IS the class's `Value` property, exactly as an object's + // children are its properties — so its name is fixed by the class, not chosen by the + // user. Saying so here is what makes the Value row's Name cell read-only, through the + // rule children already consult (BaseNode.nameEditable). Without it the table offered + // a rename that serialize discarded in silence: the property is written under the key + // `Value` whatever the node is called, so a re-read showed `Value` again. + get isObjectPropertyBag(): boolean { + return true; + } + getProperties(): PropClass[] { return [PropName, PropValue, PropDataType, PropMin, PropMax, PropUnit, PropDescription, ...schemaColumns(this.className)]; } diff --git a/src/datamodel/node/data/StructNode.ts b/src/datamodel/node/data/StructNode.ts index 2d4bed3..e8a30a9 100644 --- a/src/datamodel/node/data/StructNode.ts +++ b/src/datamodel/node/data/StructNode.ts @@ -13,7 +13,6 @@ import PropDescription from '../../prop/PropDescription.js'; import PropKind from '../../prop/PropKind.js'; import PropClassAtom from '../../prop/PropClass.js'; import { escapeXml, pad as xmlPad } from '../../parser/XmlUtils.js'; -import { subscriptLabel } from '../../display/Subscript.js'; import { effectiveDims, elementCount, summaryForm } from '../../display/DisplayConvention.js'; export default class StructNode extends DataNode { @@ -69,6 +68,12 @@ export default class StructNode extends DataNode { return this._numElements === 1; } + // A struct serializes as its fields and nothing else — the same limit a plain + // variable has, and for the same reason (see MatlabVariableNode.descriptionEditable). + get descriptionEditable(): boolean { + return false; + } + getProperties(): PropClass[] { return [PropName, PropValue, PropDataType, PropDescription]; } @@ -261,8 +266,10 @@ export default class StructNode extends DataNode { }; const elemNode = new StructNode(String(ei), node, elemSerial); elemNode._isElementNode = true; - // Column-major, as MATLAB stores it — see ObjectNode. - elemNode._displayName = subscriptLabel(name, ei, dims, 'column-major', '()'); + // Column-major, as MATLAB stores it — see ObjectNode. The label is + // DERIVED from this spec by BaseNode.displayName rather than baked + // here, so renaming the array relabels its elements. + elemNode._subscript = { index: ei, dims, order: 'column-major', bracket: '()' }; fields.forEach((field) => { const childNode = NodeRegistry.parseValue(elem[field], field, elemNode); elemNode.addChild(childNode); diff --git a/src/datamodel/parser/BinarySlddParser.ts b/src/datamodel/parser/BinarySlddParser.ts index 17e51de..1e905d5 100644 --- a/src/datamodel/parser/BinarySlddParser.ts +++ b/src/datamodel/parser/BinarySlddParser.ts @@ -46,6 +46,13 @@ import { unzipSync } from 'fflate'; import { XMLParser } from 'fast-xml-parser'; import { reasonOf, type ParseWarning } from './ParseWarning.js'; +import type { SystemComposerCatalog } from './ScCatalog.js'; +import { + SC_PART_XML, + catalogFromDefinitions, + scPartUnreadableMessage, + scanScXml, +} from './ScCatalog.js'; import { charNeedsShape, formatDoubleXml, @@ -308,9 +315,50 @@ export function parseBinarySlddParts( __rawXml: xmlString, __zipMetadata: zipMetadata, __dataSourceAttrs: dataSourceAttrs, + ...scCatalogOf(zipMetadata, decoder, warnings), }; } +/** + * The System Composer catalog of a compressed-binary dictionary, read from the zipped + * interface-dictionary member. + * + * 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. + * + * 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. + */ +function scCatalogOf( + zipMetadata: Record, + decoder: TextDecoder, + warnings?: ParseWarning[], +): { __scCatalog?: SystemComposerCatalog } { + 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) }; +} + function extractEntryFragments(xmlString: string): string[] { const fragments: string[] = []; const openTag = ''; diff --git a/src/datamodel/parser/ScCatalog.ts b/src/datamodel/parser/ScCatalog.ts new file mode 100644 index 0000000..d21a55e --- /dev/null +++ b/src/datamodel/parser/ScCatalog.ts @@ -0,0 +1,560 @@ +// src/datamodel/parser/ScCatalog.ts +// Copyright 2026 The MathWorks, Inc. +// +// THE SYSTEM COMPOSER CATALOG — ONE VOCABULARY, TWO FILE FORMATS. +// +// An Architectural Data entry is stored as an ordinary Simulink object: a data +// interface and a struct type are BOTH a `Simulink.Bus` in `data/chunk0`, and +// nothing in the entry says which one it is. What says so is a second part of the +// dictionary — the System Composer interface dictionary — which lists each +// definition by NAME with the System Composer type that models it. Two storage +// forms, one catalog: +// +// uncompressed-text `.sldd` a JSON object at `__MW_TEXT_PARTS__/` +// compressed-binary `.sldd` an MF0 XML member at `` +// +// The type map and the classification rule live HERE, once, so the two readers +// cannot answer differently about the same dictionary. What each reader owns is +// only the walk over its own syntax. +// +// The catalog is keyed by NAME because that is the only link the file has: an +// entry's uuid appears in `simulink/ArchitecturePart` but never in this part, and +// this part's uuids appear nowhere else. So a rename has to be carried into the +// catalog or it silently reclassifies the entry — which is what `scRenameEdits` +// (the file) and `renameInCatalog` (the tree) exist for, and why the scans record +// where each name SITS as well as what it is. + +// The part path of the systemcomposer interface dictionary in an uncompressed-text +// dictionary, named once because it is used to look the part up and to name it in +// the warning raised when it is there and unreadable. A warning naming a different +// string from the one that was looked up would be a lie no reader could detect. +export const SC_PART = 'simulink/systemcomposer/interfaceDictionary'; + +// The same part as a member of a compressed-binary (zip) dictionary. The `.xml` +// suffix is part of the member name, and a host matching a warning's `part` against +// the package needs the name the package uses. +export const SC_PART_XML = `${SC_PART}.xml`; + +// The systemcomposer interface dictionary classifies architectural entries +// (which are stored as ordinary Simulink objects) into interface/type kinds. +// Captured at parse time so the rest of the model can distinguish, e.g., a +// StructType from a DataInterface (both are Simulink.Bus). +export interface SystemComposerCatalog { + // Interface name -> systemcomposer type, from the PortInterfaceCatalog + // (e.g. CompositeDataInterface, CompositePhysicalInterface, ServiceInterface, + // ValueTypeInterface). + interfaces: Record; + // Modeled data type name -> systemcomposer type, from the TypeCatalog + // (e.g. StructDataType, NumericType, EnumDataType, AliasType). + modeledDataTypes: Record; +} + +// Maps a systemcomposer type string to the semantic classification token that +// drives the entry's Kind. The token is derived from the type, not the entry +// name (which is user-chosen), so it stays correct regardless of the name. +export const SC_TYPE_TO_CLASSIFICATION: Record = { + 'systemcomposer.architecture.model.interface.CompositeDataInterface': 'DataInterface', + 'systemcomposer.architecture.model.interface.CompositePhysicalInterface': 'PhysicalInterface', + 'systemcomposer.architecture.model.swarch.ServiceInterface': 'ServiceInterface', + 'systemcomposer.architecture.model.interface.ValueTypeInterface': 'ValueType', + 'systemcomposer.property.StructDataType': 'StructType', + 'systemcomposer.property.NumericType': 'NumericType', + 'systemcomposer.property.EnumDataType': 'EnumType', + 'systemcomposer.property.AliasType': 'AliasType', +}; + +// Resolve the classification token (e.g. 'DataInterface', 'StructType') for an +// entry name, or null if the catalog doesn't classify it. Interfaces are checked +// before modeled data types. +export function classificationOf( + catalog: SystemComposerCatalog | null | undefined, + entryName: string, +): string | null { + if (!catalog) { + return null; + } + 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: 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.'; +} + +// 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 +// `p_BuiltInValueTypes` / `p_valueType` children are MATLAB's built-in types +// (`double`, `int16`, …) — none of them is a dictionary entry. +const IFACE_KEY = 'p_Interfaces'; +const MODELED_KEY = 'p_ModeledDataTypes'; + +const DESCRIPTOR_TYPE = 'systemcomposer.property.ValueTypeDescriptor'; + +/** Where a name is written in the source text, as a half-open span. */ +export interface ScNameSite { + start: number; + end: number; +} + +/** + * One catalog definition: what it is called, what models it, and every place the + * source spells its name. + * + * `nameSites` is plural because a value type definition writes its name TWICE — on + * the definition and on the value-type descriptor nested inside it, which MATLAB + * keeps equal (11,964 of 11,964 in the customer dictionary this was measured on). + * A rename that moved only one of them would leave the descriptor naming a type + * that no longer exists. + */ +export interface ScDefinition { + name: string; + /** The systemcomposer type, e.g. `…interface.CompositeDataInterface`. */ + type: string; + /** Whether the definition is an interface or a modeled data type. */ + container: 'interfaces' | 'modeledDataTypes'; + nameSites: ScNameSite[]; +} + +/** Fold definitions into the catalog the model classifies entries with. */ +export function catalogFromDefinitions(defs: ScDefinition[]): SystemComposerCatalog { + const catalog: SystemComposerCatalog = { interfaces: {}, modeledDataTypes: {} }; + defs.forEach((def) => { + if (def.name) { + catalog[def.container][def.name] = def.type; + } + }); + return catalog; +} + +// A tag: ``, `` or ``. Attribute values are quoted, +// so `[^>"]|"[^"]*"` skips a `>` inside a value rather than ending the tag on it. +const TAG_RE = /<(\/?)([A-Za-z_][\w.-]*)((?:[^>"]|"[^"]*")*?)(\/?)>/g; + +const attrOf = (attrs: string, name: string): string => { + const m = new RegExp(`${name}="([^"]*)"`).exec(attrs); + return m ? m[1] : ''; +}; + +interface XmlFrame { + tag: string; + type: string; + /** Text span of this element's own direct-child ``, once seen. */ + nameSite?: ScNameSite; + /** Direct-child value-type descriptors, which carry a second copy of the name. */ + descriptorSites: ScNameSite[]; + /** Where this element's text content starts (used only by `p_Name` itself). */ + textStart: number; +} + +/** + * Scan the MF0 XML of a compressed-binary dictionary's interface dictionary. + * + * A tag walk rather than a DOM parse for two reasons: the part is 20 MB in a real + * customer dictionary, and a rename has to know the BYTE RANGE of each name so the + * member can be patched in place instead of re-serialized (which would rewrite 20 MB + * of a file the user did not touch). + * + * Names are compared and returned raw. Dictionary entry names are MATLAB + * identifiers, so there is nothing for XML escaping to do to them. + */ +export function scanScXml(xml: string): ScDefinition[] { + const defs: ScDefinition[] = []; + const stack: XmlFrame[] = []; + TAG_RE.lastIndex = 0; + let tag: RegExpExecArray | null; + + while ((tag = TAG_RE.exec(xml))) { + const [whole, closing, name, attrs, selfClosing] = tag; + if (selfClosing) { + // An empty element carries no name text, so it can only be a descriptor + // with nothing in it — nothing to record either way. + continue; + } + if (!closing) { + stack.push({ + tag: name, + type: attrOf(attrs, 'type'), + descriptorSites: [], + textStart: tag.index + whole.length, + }); + continue; + } + + const frame = stack.pop(); + if (!frame) { + continue; + } + const parent = stack[stack.length - 1]; + if (frame.tag === 'p_Name') { + if (parent) { + parent.nameSite = { start: frame.textStart, end: tag.index }; + } + continue; + } + if (frame.type === DESCRIPTOR_TYPE && frame.nameSite && parent) { + parent.descriptorSites.push(frame.nameSite); + continue; + } + if (frame.tag !== IFACE_KEY && frame.tag !== MODELED_KEY) { + continue; + } + if (!frame.nameSite) { + continue; + } + defs.push(definitionOf( + xml.slice(frame.nameSite.start, frame.nameSite.end), + frame.type, + frame.tag === IFACE_KEY ? 'interfaces' : 'modeledDataTypes', + frame.nameSite, + frame.descriptorSites.map((site) => ({ site, text: xml.slice(site.start, site.end) })), + )); + } + + return defs; +} + +// Assemble a definition, keeping only the nested descriptor names that ARE this +// definition's name. A descriptor naming something else is naming something else: +// it is a reference to another type, and renaming this definition must not touch it. +function definitionOf( + name: string, + type: string, + container: 'interfaces' | 'modeledDataTypes', + nameSite: ScNameSite, + descriptors: { site: ScNameSite; text: string }[], +): ScDefinition { + const sites = [nameSite]; + descriptors.forEach((d) => { + if (d.text === name) { + sites.push(d.site); + } + }); + return { name, type, container, nameSites: sites }; +} + +/** + * Scan the JSON text of an uncompressed-text dictionary's interface dictionary. + * + * The text and not the parsed object, because that is what the host holds: a textual + * `.sldd` is an open TEXT DOCUMENT, edited by splicing spans, and a rename has to + * become a span replacement in it. Re-serializing the part instead would rewrite 20 MB + * of a customer's file — and reformat every line of it — to change one name. + * + * The walk is deliberately shallow: it finds the two container keys, then reads only + * what a definition is (its type, its name, and the value-type descriptor nested + * directly in it), skipping every other value wholesale. Whitespace is irrelevant to + * it, so it reads MATLAB's tab-indented layout and a re-saved minified one alike. + */ +export function scanScJsonText(text: string): ScDefinition[] { + const region = scPartRegion(text); + if (!region) { + return []; + } + const defs: ScDefinition[] = []; + ([[IFACE_KEY, 'interfaces'], [MODELED_KEY, 'modeledDataTypes']] as const).forEach( + ([key, container]) => { + eachKeyedArray(text, region, key, (elemStart) => { + const def = readJsonDefinition(text, elemStart, container); + if (def) { + defs.push(def); + } + }); + }, + ); + return defs; +} + +// The span of the interface dictionary part's VALUE inside the whole document text. +// Scoping the scan to it keeps `p_Interfaces` from being looked for in 40 MB of entry +// data that cannot contain one. +function scPartRegion(text: string): ScNameSite | null { + const key = `"__MW_TEXT_PART__/${SC_PART}"`; + const at = text.indexOf(key); + if (at < 0) { + return null; + } + const colon = skipWs(text, at + key.length); + if (text[colon] !== ':') { + return null; + } + const start = skipWs(text, colon + 1); + if (text[start] !== '{') { + return null; + } + return { start, end: skipValue(text, start) }; +} + +// Every element of every array under `key` within the region. A quoted string +// followed by a colon is a KEY and nothing else in JSON, which is the whole test: +// `p_Interfaces` names the interface catalog's list wherever it appears. +function eachKeyedArray( + text: string, + region: ScNameSite, + key: string, + onElement: (start: number) => void, +): void { + const quoted = `"${key}"`; + let at = text.indexOf(quoted, region.start); + while (at >= 0 && at < region.end) { + const colon = skipWs(text, at + quoted.length); + if (text[colon] === ':') { + const value = skipWs(text, colon + 1); + if (text[value] === '[') { + eachElement(text, value, onElement); + } + } + at = text.indexOf(quoted, at + quoted.length); + } +} + +// Read one definition object: `{ "content": { "p_Name": …, : {…} }, "type": … }`. +function readJsonDefinition( + text: string, + objStart: number, + container: 'interfaces' | 'modeledDataTypes', +): ScDefinition | null { + if (text[objStart] !== '{') { + return null; + } + let type = ''; + let contentStart = -1; + eachMember(text, objStart, (key, valueStart) => { + if (key === 'type' && text[valueStart] === '"') { + type = text.slice(valueStart + 1, skipValue(text, valueStart) - 1); + } else if (key === 'content' && text[valueStart] === '{') { + contentStart = valueStart; + } + }); + if (contentStart < 0) { + return null; + } + + let nameSite: ScNameSite | undefined; + const descriptors: { site: ScNameSite; text: string }[] = []; + eachMember(text, contentStart, (key, valueStart) => { + if (key === 'p_Name' && text[valueStart] === '"') { + nameSite = { start: valueStart + 1, end: skipValue(text, valueStart) - 1 }; + } else if (text[valueStart] === '{') { + // A direct child object: the second place a value type's name is written + // is the descriptor nested here. Deeper objects are other definitions' + // business — a data element's owned interface, a struct element's + // descriptor — and their names are their own. + const site = descriptorNameSite(text, valueStart); + if (site) { + descriptors.push({ site, text: text.slice(site.start, site.end) }); + } + } + }); + if (!nameSite) { + return null; + } + return definitionOf(text.slice(nameSite.start, nameSite.end), type, container, nameSite, descriptors); +} + +// The name span of a value-type descriptor object, or null if this object is not one. +function descriptorNameSite(text: string, objStart: number): ScNameSite | null { + let isDescriptor = false; + let contentStart = -1; + eachMember(text, objStart, (key, valueStart) => { + if (key === 'type' && text[valueStart] === '"') { + isDescriptor = text.slice(valueStart + 1, skipValue(text, valueStart) - 1) === DESCRIPTOR_TYPE; + } else if (key === 'content' && text[valueStart] === '{') { + contentStart = valueStart; + } + }); + if (!isDescriptor || contentStart < 0) { + return null; + } + let site: ScNameSite | null = null; + eachMember(text, contentStart, (key, valueStart) => { + if (key === 'p_Name' && text[valueStart] === '"') { + site = { start: valueStart + 1, end: skipValue(text, valueStart) - 1 }; + } + }); + return site; +} + +const skipWs = (text: string, i: number): number => { + let at = i; + while (at < text.length && (text[at] === ' ' || text[at] === '\t' || text[at] === '\n' || text[at] === '\r')) { + at++; + } + return at; +}; + +// The index just past the value starting at `i`. Strings are skipped with escape +// awareness, so a `}` or a `"` inside one does not end anything. +function skipValue(text: string, i: number): number { + const ch = text[i]; + if (ch === '"') { + return skipString(text, i); + } + if (ch === '{' || ch === '[') { + const close = ch === '{' ? '}' : ']'; + let depth = 0; + let at = i; + while (at < text.length) { + const c = text[at]; + if (c === '"') { + at = skipString(text, at); + continue; + } + if (c === '{' || c === '[') { + depth++; + } else if (c === '}' || c === ']') { + depth--; + if (depth === 0) { + return c === close ? at + 1 : at + 1; + } + } + at++; + } + return text.length; + } + // A number, true/false/null: everything up to whatever ends a value. + let at = i; + while (at < text.length && !',}] \t\n\r'.includes(text[at])) { + at++; + } + return at; +} + +function skipString(text: string, i: number): number { + let at = i + 1; + while (at < text.length) { + if (text[at] === '\\') { + at += 2; + continue; + } + if (text[at] === '"') { + return at + 1; + } + at++; + } + return text.length; +} + +// Each `"key": value` of the object starting at `objStart`, without descending. +function eachMember( + text: string, + objStart: number, + onMember: (key: string, valueStart: number) => void, +): void { + let at = skipWs(text, objStart + 1); + while (at < text.length && text[at] !== '}') { + if (text[at] !== '"') { + return; + } + const keyEnd = skipString(text, at); + const key = text.slice(at + 1, keyEnd - 1); + const colon = skipWs(text, keyEnd); + if (text[colon] !== ':') { + return; + } + const valueStart = skipWs(text, colon + 1); + onMember(key, valueStart); + at = skipWs(text, skipValue(text, valueStart)); + if (text[at] === ',') { + at = skipWs(text, at + 1); + } + } +} + +// Each element of the array starting at `arrStart`, without descending. +function eachElement(text: string, arrStart: number, onElement: (start: number) => void): void { + let at = skipWs(text, arrStart + 1); + while (at < text.length && text[at] !== ']') { + onElement(at); + at = skipWs(text, skipValue(text, at)); + if (text[at] === ',') { + at = skipWs(text, at + 1); + } + } +} + +/** One replacement in a source text, as a half-open span and the text to put there. */ +export interface ScTextEdit { + start: number; + end: number; + text: string; +} + +/** + * The edits that carry a rename into the catalog: every place the definition named + * `oldName` spells that name, and nothing else. + * + * Nothing else is the point. In a real dictionary a catalog name occurs three times + * in this part — on the definition, on the definition's own value-type descriptor, + * and on a bus element in ANOTHER interface that happens to be named after the type + * it references. The first two are the definition's name and move with it; the third + * is an element's name in someone else's interface and must not move. A global + * string replace gets that wrong every time. + * + * Returns edits in ascending position, or an empty array when no definition carries + * the name (the overwhelming majority of renames: an entry no catalog classifies). + */ +export function scRenameEdits( + defs: ScDefinition[], + oldName: string, + newName: string, +): ScTextEdit[] { + const edits: ScTextEdit[] = []; + defs.forEach((def) => { + if (def.name !== oldName) { + return; + } + def.nameSites.forEach((site) => edits.push({ start: site.start, end: site.end, text: newName })); + }); + return edits.sort((a, b) => a.start - b.start); +} + +/** Apply non-overlapping edits to a text, back to front so earlier spans stay valid. */ +export function applyScEdits(text: string, edits: ScTextEdit[]): string { + let out = text; + [...edits].sort((a, b) => b.start - a.start).forEach((edit) => { + out = out.slice(0, edit.start) + edit.text + out.slice(edit.end); + }); + return out; +} + +/** + * Move a definition's key in a catalog the model is holding, to follow a rename. + * + * The other half of `scRenameEdits`, and the one that is about the TREE rather than the + * file: the catalog is keyed by name, and every narrow repaint rebuilds an entry through + * `parseEntry(record, catalog)`, so a catalog left keyed by the old name re-derives a + * Kind the renamed entry no longer has. The host writes the part; this keeps the tree it + * is holding saying the same thing. + * + * Returns whether anything moved, so a caller can tell "the catalog classified this + * entry" from "there was nothing to follow" — which is also the gate on carrying the + * rename into the file at all. + */ +export function renameInCatalog( + catalog: SystemComposerCatalog | null | undefined, + oldName: string, + newName: string, +): boolean { + if (!catalog || oldName === newName) { + return false; + } + let moved = false; + ([catalog.interfaces, catalog.modeledDataTypes] as Record[]).forEach((bag) => { + if (!Object.prototype.hasOwnProperty.call(bag, oldName)) { + return; + } + bag[newName] = bag[oldName]; + delete bag[oldName]; + moved = true; + }); + return moved; +} diff --git a/src/index.ts b/src/index.ts index d8e07cc..90baa2b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -118,6 +118,28 @@ export { // resolves the sub-dictionaries of one flavour and none of the other. export { readSlddContent, slddChunkContent, isJsonTextBytes, normalizeRefNames } from './datamodel/parser/SlddContent.js'; +// The System Composer catalog: what says a `Simulink.Bus` is a struct type rather than +// a data interface. It is a SEPARATE part of the dictionary that references its entries +// BY NAME, so a host that renames a catalogued entry has to carry the rename into that +// part or the entry silently loses its classification on the next read — and the part is +// stored two ways (a JSON object in a textual `.sldd`, a zipped MF0 XML member in a +// compressed-binary one), so the carry needs one rule and two readers. Public because +// the rename happens in the HOST: it owns the open document's text and the zip members, +// and this package cannot splice either for it. `classificationOf` is the read side, for +// a consumer that wants an entry's System Composer type without walking the tree. +export { + SC_PART, + SC_PART_XML, + SC_TYPE_TO_CLASSIFICATION, + applyScEdits, + catalogFromDefinitions, + classificationOf, + scRenameEdits, + scanScJsonText, + scanScXml, +} from './datamodel/parser/ScCatalog.js'; +export type { ScDefinition, ScNameSite, ScTextEdit, SystemComposerCatalog } from './datamodel/parser/ScCatalog.js'; + // Usage across a SET OF FILES rather than across a session — which blocks refer to a // definition, and where a block parameter's names resolve, over files a caller has read // but need not have opened. session.findUsages answers the same question for registered diff --git a/test/editsTheFormatCannotKeep.test.ts b/test/editsTheFormatCannotKeep.test.ts new file mode 100644 index 0000000..f06d284 --- /dev/null +++ b/test/editsTheFormatCannotKeep.test.ts @@ -0,0 +1,128 @@ +// Copyright 2026 The MathWorks, Inc. +// +// One rule, stated once: THE MODEL DOES NOT ACCEPT AN EDIT ITS OWN SERIALIZER DROPS. +// +// Two cells used to break it, and both broke it the same way — a node declares a +// property because the COLUMN exists, the generic setProperty tail writes it onto the +// node because the field is there, and serialize() has nowhere to put it. The row then +// shows text the file will not hold, until the next read of that file takes it away. A +// cell that reverts on reload is worse than a cell that refuses, because the user has +// already moved on. +// +// • Description on a plain MATLAB variable (or a struct). Those serialize as +// `{name, metadata, value}` — no property bag, so no Description. A Simulink object +// has one and keeps it, which is what makes this a per-node answer and not a +// per-column one. +// • The Name of a Simulink.Parameter's Value row. That row is the class's `Value` +// property, exactly as an object's property rows are: serialize writes it under the +// key `Value` whatever the node is called, so a rename is discarded in silence. +// +// The fix for both is the same shape as the model's existing refusals: the node says +// whether the cell can be typed into (so the table never opens an editor), and +// setProperty says no if it is asked anyway. +import { describe, it, expect } from 'vitest'; +import ParameterNode from '../src/datamodel/node/data/ParameterNode.js'; +import MatlabVariableNode from '../src/datamodel/node/data/MatlabVariableNode.js'; +import StructNode from '../src/datamodel/node/data/StructNode.js'; +import * as NodeClassMap from '../src/datamodel/node/NodeClassMap.js'; + +void NodeClassMap; + +type Any = any; + +// The raw shape the .sldd parsers hand ParameterNode.parse. +const parseParam = (props: Record): Any => + ParameterNode.parse( + { + _array_class: 'Simulink.Parameter', + _dimensions: [1, 1], + _mw_element_type: 'MATLABArray', + _elements: [{ _id: '1', _properties: Object.assign({ Complexity: 'real', Dimensions: [1, 1] }, props) }], + } as unknown as Record, + 'p', + null, + ); + +describe('a Description the entry has nowhere to put', () => { + it('is refused on a plain MATLAB variable, and the cell never offers an editor', () => { + const v: Any = MatlabVariableNode.parse(5, 'Number', null); + expect(v.toRow()._descriptionEditable).toBe(false); + + const result = v.setProperty('Description', 'why this exists'); + expect(result).not.toBe(true); + expect((result as Any).error).toBe(true); + expect(v.Description ?? '').toBe(''); + // The whole point: nothing about the node changed, so nothing shows and nothing is + // dropped later. + expect(v.toRow().Description).toBe(''); + expect(JSON.stringify(v.serializeValue())).not.toContain('why this exists'); + }); + + it('is refused on a struct, which serializes the same way', () => { + const s: Any = StructNode.parse( + { _dimensions: [1, 1], _fields: ['a'], _elements: [{ a: 1 }] } as unknown as Record, + 'S', + null, + ); + expect(s.toRow()._descriptionEditable).toBe(false); + expect(s.setProperty('Description', 'notes')).not.toBe(true); + }); + + it('is kept on a Simulink object, which has a property bag for it', () => { + const p = parseParam({ Value: 5 }); + expect(p.toRow()._descriptionEditable).toBe(true); + expect(p.setProperty('Description', 'gain of the outer loop')).toBe(true); + expect(p.toRow().Description).toBe('gain of the outer loop'); + expect(JSON.stringify(p.serializeValue())).toContain('gain of the outer loop'); + }); + + it('is kept on an object whose VALUE cell is read-only', () => { + // The bug this replaces: the table decided the Description cell from + // `_valueEditable`, so a Parameter holding more elements than a one-line literal + // carries — whose Value displays as the summary `<1x12 double>` and rightly takes no + // editor — could not be described either. The two questions are unrelated, and are + // now answered separately. + const p = parseParam({ Value: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] }); + expect(p.displayValue).toBe('<1x12 double>'); + expect(p.toRow()._valueEditable).toBe(false); + expect(p.toRow()._descriptionEditable).toBe(true); + }); +}); + +describe("the Name of a Simulink.Parameter's Value row", () => { + const valueRowOf = (p: Any): Any => { + expect(p.children.length, 'the fixture value must be one the Value row expands').toBe(1); + return p.children[0]; + }; + + it('cannot be typed into: it is the class property name, not an identifier', () => { + const row = valueRowOf(parseParam({ Value: [1, 2, 3] })); + expect(row.name).toBe('Value'); + expect(row.nameEditable).toBe(false); + expect(row.toRow().Name.editable).toBe(false); + }); + + it('is refused when set anyway, rather than renamed and dropped on save', () => { + const p = parseParam({ Value: [1, 2, 3] }); + const row = valueRowOf(p); + const result = row.setProperty('Name', 'Value_renamed'); + expect(result).not.toBe(true); + expect((result as Any).error).toBe(true); + expect(row.name).toBe('Value'); + // What made the old behaviour silent: the key is 'Value' in the file whatever the + // node is called, so a rename left no trace to notice. + expect(JSON.stringify(p.serializeValue())).not.toContain('Value_renamed'); + }); + + it('leaves a struct field renameable — a field name IS the identifier', () => { + const s: Any = StructNode.parse( + { _dimensions: [1, 1], _fields: ['a'], _elements: [{ a: 1 }] } as unknown as Record, + 'S', + null, + ); + const field = s.children[0]; + expect(field.nameEditable).toBe(true); + expect(field.setProperty('Name', 'b')).toBe(true); + expect(field.name).toBe('b'); + }); +}); diff --git a/test/elementLabelFollowsName.test.ts b/test/elementLabelFollowsName.test.ts new file mode 100644 index 0000000..cbe6ea0 --- /dev/null +++ b/test/elementLabelFollowsName.test.ts @@ -0,0 +1,158 @@ +// Copyright 2026 The MathWorks, Inc. +// +// AN ELEMENT LABEL IS DERIVED FROM ITS PARENT'S NAME, SO IT MUST FOLLOW THAT NAME. +// +// A struct-array / object-array element has no name of its own: its row reads +// `parent(2,1)`, a subscript INTO the parent. Three parse sites used to bake that +// string once, at parse time, and store it on the element — so renaming the array +// left every element row spelling the old name (`oldName(1,1)` under a row now +// called `newName`), until the file was closed and read again. +// +// This is the repo's "one rule, two paths" class in its derived-value form: the +// label and the name it is derived from were two facts that could disagree. The +// rule pinned here is BETWEEN them — the label is not stored, it is asked for. +import { describe, it, expect } from 'vitest'; +import StructNode from '../src/datamodel/node/data/StructNode.js'; +import MatlabVariableNode from '../src/datamodel/node/data/MatlabVariableNode.js'; +import * as NodeRegistry from '../src/datamodel/node/NodeRegistry.js'; +import '../src/datamodel/node/NodeClassMap.js'; +import type { MatVariable } from '../src/datamodel/parser/MatParser.js'; + +type Any = any; + +const labels = (node: Any): string[] => node.children.map((c: Any) => c.displayName); + +// A struct array exactly as both sldd parsers hand it up. +const structValue = (dims: number[], elements: Record[]) => ({ + _array_type: 'Struct', + _dimensions: dims, + _fields: Object.keys(elements[0]), + _mw_element_type: 'MATLABArray', + _elements: elements, +}); + +// A value object of N elements, as every parser emits it. +const objectValue = (arrayClass: string, dims: number[], props: Record[]) => ({ + _array_class: arrayClass, + _array_type: 'MATLABArray', + _dimensions: dims, + _mw_element_type: 'MATLABArray', + _elements: props.map((p) => ({ _properties: p })), +}); + +// A .mat struct array as MatParser reports it: fields[f] is one MatVariable per +// element, in MATLAB's column-major order. +const matStructArray = (dims: number[], values: number[]): MatVariable => ({ + name: 's', + className: 'struct', + dimensions: dims, + isComplex: false, + isLogical: false, + value: null, + fields: { + a: values.map((v) => ({ + name: 'a', className: 'double', dimensions: [1, 1], + isComplex: false, isLogical: false, value: v, fields: null, + })), + } as never, +}); + +describe('an element label follows its parent\'s name', () => { + it('relabels a struct VECTOR\'s elements when the array is renamed', () => { + const node: Any = StructNode.parse( + structValue([1, 3], [{ a: 1 }, { a: 2 }, { a: 3 }]) as Any, + 'structArray', + null, + ); + expect(labels(node)).toEqual(['structArray(1)', 'structArray(2)', 'structArray(3)']); + + expect(node.setProperty('Name', 'renamedArray')).toBe(true); + + expect(labels(node)).toEqual(['renamedArray(1)', 'renamedArray(2)', 'renamedArray(3)']); + }); + + it('relabels a struct MATRIX\'s elements, keeping MATLAB\'s column-major subscripts', () => { + const node: Any = StructNode.parse( + structValue([2, 2], [{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }]) as Any, + 'structMatrix', + null, + ); + expect(labels(node)).toEqual([ + 'structMatrix(1,1)', 'structMatrix(2,1)', 'structMatrix(1,2)', 'structMatrix(2,2)', + ]); + + expect(node.setProperty('Name', 'sm')).toBe(true); + + // Only the NAME changes: element 2 is still MATLAB's (2,1), and each label + // still sits beside the value MATLAB stores at that subscript. + expect(node.children.map((c: Any) => [c.displayName, c.children[0].displayValue])).toEqual([ + ['sm(1,1)', '1'], ['sm(2,1)', '2'], ['sm(1,2)', '3'], ['sm(2,2)', '4'], + ]); + }); + + it('relabels an OBJECT array\'s elements when the array is renamed', () => { + const node: Any = NodeRegistry.parseValue( + objectValue('My.Thing', [1, 2], [{ Gain: 1 }, { Gain: 2 }]), + 'objArray', + null, + ); + expect(labels(node)).toEqual(['objArray(1)', 'objArray(2)']); + + expect(node.setProperty('Name', 'renamedObjs')).toBe(true); + + expect(labels(node)).toEqual(['renamedObjs(1)', 'renamedObjs(2)']); + }); + + it('relabels a .mat struct array\'s elements when the variable is renamed', () => { + const node: Any = MatlabVariableNode.parseMatVariable(matStructArray([1, 3], [1, 2, 3]), 's', null); + expect(labels(node)).toEqual(['s(1)', 's(2)', 's(3)']); + + expect(node.setProperty('Name', 'sv')).toBe(true); + + expect(labels(node)).toEqual(['sv(1)', 'sv(2)', 'sv(3)']); + }); + + it('keeps an element\'s Name cell read-only and marked as an element after a rename', () => { + // The label being derived is also what makes the cell uneditable — losing the + // marker would silently offer a rename that has nowhere to go. + const node: Any = StructNode.parse( + structValue([1, 2], [{ a: 1 }, { a: 2 }]) as Any, + 'structArray', + null, + ); + node.setProperty('Name', 'renamedArray'); + + const element: Any = node.children[0]; + expect(element.isElementName).toBe(true); + expect(element.nameEditable).toBe(false); + const cell = element.toRow().Name as { label: string; editable: boolean; element: boolean }; + expect(cell.label).toBe('renamedArray(1)'); + expect(cell.editable).toBe(false); + expect(cell.element).toBe(true); + // And the model refuses one asked for directly, as it does for every fixed name. + expect(element.setProperty('Name', 'nope')).toMatchObject({ error: true }); + }); + + it('relabels a struct array nested inside a renamed entry\'s field', () => { + // The label is a subscript into whatever the PARENT ROW reads, so a nested + // array's elements move with the name above them too — one derivation, not a + // special case per depth. + const outer: Any = StructNode.parse( + { + _array_type: 'Struct', + _dimensions: [1, 1], + _fields: ['inner'], + _mw_element_type: 'MATLABArray', + _elements: [{ inner: structValue([1, 2], [{ a: 1 }, { a: 2 }]) }], + } as Any, + 'outer', + null, + ); + const inner: Any = outer.children[0]; + expect(labels(inner)).toEqual(['inner(1)', 'inner(2)']); + + expect(inner.setProperty('Name', 'renamedField')).toBe(true); + + expect(labels(inner)).toEqual(['renamedField(1)', 'renamedField(2)']); + }); +}); diff --git a/test/fixtures/arch_binary.sldd b/test/fixtures/arch_binary.sldd new file mode 100644 index 0000000000000000000000000000000000000000..7ac6c7e91aba9ed10b6273e4b434ae6ec87f7d73 GIT binary patch literal 2067 zcmb7_c{JNu8^?c^hIZ^irERp768q3nCa9{N3awZ|MG1mLWN9k3*C|t5>}m=RD`$bD!s)d(ZcLz6c90ZZH4h4X!`>Ltj$N8-wU3|yXz`>u()M)n7sPh#jNrS`6 z+{3?BW8JI`)5=h|1Ku>3!BBneo}%SQzM3e5J#;L2wch^af-@YR>s7J=DjYD4ZY^ix&B}26ndnB-rM9;*^r+dKlXh*|#h-H@>vTVM_-Ye{8v^lH5@*KeWt? zu{CSy-|nvHTSIM%-kx_Z9Lx|t)jIigVsm{`paz<$Xl}h(%228aaH#9X$MvYio@RRdsm`r$_yi-IsXj*+;(7SYd;T0{NS<#@lDS`?4*chRnzBt`6KP+xgymGxj z%H4XX>El`5s5;mNT_!F2r}9$itU|T7cDtG8^hE(;a%fy^jE?z=n8R76ynPI4mkH%H zPNgA7`X|oqD_hQ1k<#gc{h6JIk?j>x7`j?_ zM01Gnw7Y3gq4O_c&5}6A-WUCCjLn))#HuONaU5JDw-oc*icmRT)TPVD(`A%|88HwD z;F+XwuGsW$@6*WscPAJ(dA|DYd(_3-O<>^7dM@>^6En@9A9lXAH9E(`p7%nV)|* zEBC|th(F>VI^0PR^!>mE0O$AtK=nw6BrJ~NhsFDew7diDL} z#0E!Hwrv*vY*3XwjJ zGd*N+g1QLA>!DWWlk_U>v>_jsM%xta>VA`0Sj;GU)`z982iHBr7f-FltUyP;8rtkP zv4|8+*joO#D)L6PS}~FYhcvD96Uv>%r#<9f{LEg6;GR}at@rv|Z^;tUwjX`YFUz0Z+dBija6m|w z9rmCgog{1@*0$J)7}!du4zsZ7qJS8=+&t_JG!|r<6X!+c{p%1ldCy*JeKBYx?wzMa z?Ki03L=(yRnqzmVBTqM>i0#6ghD#<+p8HUAV8+S3^y2T{5(hHy91AWiPUEO!K zXb-9Twed~ed3(pI4R&g+0|iZ~X47((PTs=Qhp~Jhrqzs5q1$|;dKC_>_syS$DmDzu z=BD-CdaU22)`K9j!9VwUOY0`EqBczm5n#$7hc#8>h33YO!pX!Bx`dkeT8V7#mN+v? zTkt8^6;t?HcAl-J`lS<(8_y4}8#cG!s`=$bNYDdTEp#W}$6F2&{AoAo8DmT?+6uLJ z#T)URMTVjh%m7kgQZCh7m4jwx+KBJfAVxjh( z+GQou$PSr3^tk|Iqo>eWb_Ly55(TR}P@il(Ic&XLZ~S{EBUn$b;Y{euy`3&st<$-^ z`Um&mG^eqJ-R14Ug+BS zA(F8e(sw{qm6TU?S}Ap!S)MZQF|$&-$^1cGT}|D(dcZ`CIZ#&41t2UqIKjYwcgCX| z{$m{T$>YVxarSp*^pV;ApKv?g{P@HFZr%X;AK!qmIB|3Y0Jx6k{85(R`M&xWjlr2c literal 0 HcmV?d00001 diff --git a/test/fixtures/arch_binary_as_text.sldd b/test/fixtures/arch_binary_as_text.sldd new file mode 100644 index 0000000..6aa08fc --- /dev/null +++ b/test/fixtures/arch_binary_as_text.sldd @@ -0,0 +1,267 @@ +{ + "__MW_TEXT_COREPROPERTIES__": { + "release": "R2027a" + }, + "__MW_TEXT_PARTS__": { + "__MW_TEXT_PART__/data/chunk0": { + "__MW_TEXT_content": { + "entries": [ + { + "name": "StructType", + "metadata": { + "uuid": "35295363-c32f-46ee-be90-558c6ac74ee0", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20260806T151506.676643", + "modifiedby": "user", + "isderived": "1" + }, + "value": { + "_array_class": "Simulink.Bus", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "1", + "_properties": { + "DataScope": "Auto", + "Description": "", + "Elements_internal": { + "_array_class": "Simulink.BusElement", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "Element", + "_properties": { + "Complexity": "real", + "Dimensions": 1, + "DimensionsMode": "Fixed", + "Name": "Element" + } + } + ] + } + } + } + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "DataInterface", + "metadata": { + "uuid": "287f5dd2-a9f4-4992-a068-ef8cc14ce0e3", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20260806T151506.676643", + "modifiedby": "user", + "isderived": "1" + }, + "value": { + "_array_class": "Simulink.Bus", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "1", + "_properties": { + "DataScope": "Auto", + "Description": "", + "Elements_internal": { + "_array_class": "Simulink.BusElement", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "ValueType", + "_properties": { + "Complexity": "real", + "Dimensions": 1, + "DimensionsMode": "Fixed", + "Name": "ValueType", + "DataType_internal": "ValueType: ValueType" + } + } + ] + } + } + } + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "ValueType", + "metadata": { + "uuid": "eff4f621-407e-4a3c-9cba-54bf03d1e5fb", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20260806T151506.676643", + "modifiedby": "user", + "isderived": "1" + }, + "value": { + "_array_class": "Simulink.ValueType", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "1", + "_properties": { + "Description": "" + } + } + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "NumericType", + "metadata": { + "uuid": "630fe342-234d-4a0e-aee2-7589ceeb1d8e", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20260806T151506.676643", + "modifiedby": "user", + "isderived": "1" + }, + "value": { + "_array_class": "Simulink.NumericType", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_id": "1", + "_properties": { + "DataTypeMode": "Double", + "IsAlias": false + } + } + ], + "_mw_element_type": "MATLABArray" + } + } + ], + "Dictionary References": [], + "AllowAccessBWS": false + } + }, + "__MW_TEXT_PART__/simulink/systemcomposer/interfaceDictionary": { + "__MW_TEXT_content": { + "entries": [ + { + "content": {}, + "type": "systemcomposer.property.UnitQueryClientWrapper", + "uuid": "398f5b73-d3b9-43cb-a2a8-99ec65c79483" + }, + { + "content": { + "p_Name": "arch", + "p_PortInterfaceCatalog": { + "content": { + "p_Interfaces": [ + { + "content": { + "p_Name": "ValueType", + "p_ValueType": { + "content": { + "p_Name": "ValueType" + }, + "type": "systemcomposer.property.ValueTypeDescriptor", + "uuid": "82927978-4c91-4892-80d8-c2370f926b6d" + }, + "elemProxy": { + "content": {}, + "type": "systemcomposer.services.proxy.ProxyTarget", + "uuid": "86f959b6-8ae7-4ade-964d-f9b09dd5fd69" + } + }, + "type": "systemcomposer.architecture.model.interface.ValueTypeInterface", + "uuid": "46cb9da0-fc40-4566-a6a7-cc5d6d953c46" + }, + { + "content": { + "p_DataElements": [ + { + "content": { + "p_Index": "1", + "p_Name": "ValueType" + }, + "type": "systemcomposer.architecture.model.interface.DataElement", + "uuid": "a4c32884-42b1-408e-bc27-e55141143e37" + } + ], + "p_Name": "DataInterface" + }, + "type": "systemcomposer.architecture.model.interface.CompositeDataInterface", + "uuid": "61e42015-fa86-4b2f-bd2f-04350e68a7b0" + } + ] + }, + "type": "systemcomposer.architecture.model.interface.InterfaceCatalog", + "uuid": "144e27c1-b244-4360-ba96-0cb8df225695" + } + }, + "type": "systemcomposer.architecture.model.SystemComposerModel", + "uuid": "127f28ec-e357-4fa3-8a7e-52f7437bff42" + }, + { + "content": { + "p_BuiltInValueTypes": [ + { + "content": { + "p_Name": "double" + }, + "type": "systemcomposer.property.ValueTypeDescriptor", + "uuid": "44f10ce9-bfc8-414b-b9dd-c5ba0f83352d" + } + ], + "p_ModeledDataTypes": [ + { + "content": { + "p_Name": "StructType", + "p_StructElements": [ + { + "content": { + "p_Index": "1", + "p_Name": "Element", + "p_Descriptor": { + "content": {}, + "type": "systemcomposer.property.ValueTypeDescriptor", + "uuid": "6bc4a743-cd34-4ed6-b5e5-b510ba531389" + } + }, + "type": "systemcomposer.property.StructElement", + "uuid": "37453b4c-60be-4a11-a657-ccd189cc5e4a" + } + ] + }, + "type": "systemcomposer.property.StructDataType", + "uuid": "beac7d1c-c596-438c-af7a-d94d268e9b11" + }, + { + "content": { + "p_Name": "NumericType" + }, + "type": "systemcomposer.property.NumericType", + "uuid": "ac8c1b34-e43d-4eef-b1e0-56fd8ef78928" + } + ] + }, + "type": "systemcomposer.property.TypeCatalog", + "uuid": "fee70a44-2c9c-4c19-acfb-329cd36f6fc7" + } + ] + } + } + } +} diff --git a/test/fixtures/make-fixtures.mjs b/test/fixtures/make-fixtures.mjs index d037143..62a7a58 100644 --- a/test/fixtures/make-fixtures.mjs +++ b/test/fixtures/make-fixtures.mjs @@ -93,4 +93,275 @@ writeFileSync( }), ); -console.log('wrote model_with_refs.slx, compressed.sldd, object_array_binary.sldd'); +// --- arch_binary.sldd + arch_binary_as_text.sldd: ONE architectural dictionary, +// written in both dictionary formats, so the System Composer catalog reader can be +// held to the same answer whichever format it read. +// +// Shapes are copied from real MATLAB output (a customer System Composer interface +// dictionary); only the names are invented. The parts that matter: +// - the catalog lists a definition by NAME and by System Composer TYPE, and the +// type is what says `Simulink.Bus` StructType from `Simulink.Bus` interface; +// - `DataInterface` holds a bus element NAMED after the value type it uses +// (`ValueType`), which is how System Composer writes a bus of value types — a +// third occurrence of that name that is not a definition of anything; +// - the TypeCatalog also lists MATLAB's built-in types (`double`), which are not +// dictionary entries either. +const NS_ARCH = 'dacaf35e-55a5-454d-a7c1-93db038a210e'; +const U = { + unit: '398f5b73-d3b9-43cb-a2a8-99ec65c79483', + model: '127f28ec-e357-4fa3-8a7e-52f7437bff42', + typeCat: 'fee70a44-2c9c-4c19-acfb-329cd36f6fc7', + ifaceCat: '144e27c1-b244-4360-ba96-0cb8df225695', + valueType: '46cb9da0-fc40-4566-a6a7-cc5d6d953c46', + valueTypeDesc: '82927978-4c91-4892-80d8-c2370f926b6d', + dataIface: '61e42015-fa86-4b2f-bd2f-04350e68a7b0', + dataElem: 'a4c32884-42b1-408e-bc27-e55141143e37', + structType: 'beac7d1c-c596-438c-af7a-d94d268e9b11', + structElem: '37453b4c-60be-4a11-a657-ccd189cc5e4a', + structElemDesc: '6bc4a743-cd34-4ed6-b5e5-b510ba531389', + numericType: 'ac8c1b34-e43d-4eef-b1e0-56fd8ef78928', + builtInDouble: '44f10ce9-bfc8-414b-b9dd-c5ba0f83352d', + modelId: '5ef7b605-9341-4c8a-a85f-6a125a1daf7e', + proxyTarget: '86f959b6-8ae7-4ade-964d-f9b09dd5fd69', +}; +const SC_TYPE = { + valueTypeIface: 'systemcomposer.architecture.model.interface.ValueTypeInterface', + compositeData: 'systemcomposer.architecture.model.interface.CompositeDataInterface', + dataElement: 'systemcomposer.architecture.model.interface.DataElement', + descriptor: 'systemcomposer.property.ValueTypeDescriptor', + structDataType: 'systemcomposer.property.StructDataType', + structElement: 'systemcomposer.property.StructElement', + numericType: 'systemcomposer.property.NumericType', + proxyTarget: 'systemcomposer.services.proxy.ProxyTarget', + unitChecker: 'systemcomposer.property.UnitQueryClientWrapper', +}; +const archEntryNames = ['StructType', 'DataInterface', 'ValueType', 'NumericType']; +const archEntryUuid = { + StructType: '35295363-c32f-46ee-be90-558c6ac74ee0', + DataInterface: '287f5dd2-a9f4-4992-a068-ef8cc14ce0e3', + ValueType: 'eff4f621-407e-4a3c-9cba-54bf03d1e5fb', + NumericType: '630fe342-234d-4a0e-aee2-7589ceeb1d8e', +}; +const archEntryClass = { + StructType: 'Simulink.Bus', + DataInterface: 'Simulink.Bus', + ValueType: 'Simulink.ValueType', + NumericType: 'Simulink.NumericType', +}; + +const scXml = + `\n` + + `\n` + + ` <${SC_TYPE.unitChecker} type="${SC_TYPE.unitChecker}" uuid="${U.unit}"/>\n` + + ` \n` + + ` \n` + + ` arch\n` + + ` \n` + + ` \n` + + ` \n` + + ` ValueType\n` + + ` \n` + + ` ValueType\n` + + ` \n` + + ` \n` + + ` \n` + + ` \n` + + ` \n` + + ` 1\n` + + ` ValueType\n` + + ` \n` + + ` \n` + + ` DataInterface\n` + + ` \n` + + ` \n` + + ` \n` + + ` \n` + + ` \n` + + ` double\n` + + ` \n` + + ` \n` + + ` \n` + + ` 1\n` + + ` Element\n` + + ` \n` + + ` \n` + + ` StructType\n` + + ` \n` + + ` \n` + + ` NumericType\n` + + ` \n` + + ` \n` + + ` \n` + + ` arch\n` + + ` DICTIONARY_MODEL\n` + + ` \n` + + `\n`; + +// The four entries as the compressed-binary reader sees them: DD.ENTRY objects +// whose Value is one per MATLAB object. +const busElemXml = (name, dataType) => + `` + + `

Fixed

` + + `

${name}

` + + (dataType ? `

${dataType}

` : '') + + `

real

` + + `

1.0

` + + `
`; +const archValueXml = { + StructType: + `` + + `

${busElemXml('Element')}

` + + `

` + + `

Auto

` + + `
`, + // The element named after the value type it references, exactly as MATLAB writes it. + DataInterface: + `` + + `

${busElemXml('ValueType', 'ValueType: ValueType')}

` + + `

` + + `

Auto

` + + `
`, + ValueType: `

`, + NumericType: + `` + + `

Double

` + + `

0

` + + `
`, +}; +const archChunkXml = + `\n` + + `\n` + + archEntryNames + .map( + (name) => + ` \n` + + `

${name}

\n` + + `

${archEntryUuid[name]}

\n` + + `

${NS_ARCH}

\n` + + `

20260806T151506.676643

\n` + + `

user

\n` + + `

1

\n` + + `

${archValueXml[name]}

\n` + + `
\n`, + ) + .join('') + + `
\n`; +writeFileSync( + here('arch_binary.sldd'), + zipSync({ + 'data/chunk0.xml': strToU8(archChunkXml), + 'simulink/systemcomposer/interfaceDictionary.xml': strToU8(scXml), + 'metadata/mwcoreProperties.xml': strToU8(`R2027a`), + }), +); + +// The same dictionary as uncompressed text. Written from the same tables above, so +// the two fixtures cannot drift into describing different dictionaries. +const scObj = (type, uuid, content) => ({ content, type, uuid }); +const archTextSldd = { + __MW_TEXT_COREPROPERTIES__: { release: 'R2027a' }, + __MW_TEXT_PARTS__: { + '__MW_TEXT_PART__/data/chunk0': { + __MW_TEXT_content: { + entries: archEntryNames.map((name) => ({ + name, + metadata: { + uuid: archEntryUuid[name], + namespace: NS_ARCH, + lastmod: '20260806T151506.676643', + modifiedby: 'user', + isderived: '1', + }, + value: { + _array_class: archEntryClass[name], + _dimensions: [1, 1], + _elements: [{ _id: '1', _properties: archTextProps(name) }], + _mw_element_type: 'MATLABArray', + }, + })), + 'Dictionary References': [], + AllowAccessBWS: false, + }, + }, + '__MW_TEXT_PART__/simulink/systemcomposer/interfaceDictionary': { + __MW_TEXT_content: { + entries: [ + scObj(SC_TYPE.unitChecker, U.unit, {}), + scObj('systemcomposer.architecture.model.SystemComposerModel', U.model, { + p_Name: 'arch', + p_PortInterfaceCatalog: scObj( + 'systemcomposer.architecture.model.interface.InterfaceCatalog', + U.ifaceCat, + { + p_Interfaces: [ + scObj(SC_TYPE.valueTypeIface, U.valueType, { + p_Name: 'ValueType', + p_ValueType: scObj(SC_TYPE.descriptor, U.valueTypeDesc, { p_Name: 'ValueType' }), + elemProxy: scObj(SC_TYPE.proxyTarget, U.proxyTarget, {}), + }), + scObj(SC_TYPE.compositeData, U.dataIface, { + p_DataElements: [ + scObj(SC_TYPE.dataElement, U.dataElem, { p_Index: '1', p_Name: 'ValueType' }), + ], + p_Name: 'DataInterface', + }), + ], + }, + ), + }), + scObj('systemcomposer.property.TypeCatalog', U.typeCat, { + p_BuiltInValueTypes: [scObj(SC_TYPE.descriptor, U.builtInDouble, { p_Name: 'double' })], + p_ModeledDataTypes: [ + scObj(SC_TYPE.structDataType, U.structType, { + p_Name: 'StructType', + p_StructElements: [ + scObj(SC_TYPE.structElement, U.structElem, { + p_Index: '1', + p_Name: 'Element', + p_Descriptor: scObj(SC_TYPE.descriptor, U.structElemDesc, {}), + }), + ], + }), + scObj(SC_TYPE.numericType, U.numericType, { p_Name: 'NumericType' }), + ], + }), + ], + }, + }, + }, +}; +function archTextProps(name) { + const busElem = (elemName, dataType) => ({ + _id: elemName, + _properties: { + Complexity: 'real', + Dimensions: 1, + DimensionsMode: 'Fixed', + Name: elemName, + ...(dataType ? { DataType_internal: dataType } : {}), + }, + }); + if (name === 'StructType' || name === 'DataInterface') { + const elem = + name === 'StructType' ? busElem('Element') : busElem('ValueType', 'ValueType: ValueType'); + return { + DataScope: 'Auto', + Description: '', + Elements_internal: { + _array_class: 'Simulink.BusElement', + _dimensions: [1, 1], + _elements: [elem], + }, + }; + } + if (name === 'NumericType') { + return { DataTypeMode: 'Double', IsAlias: false }; + } + return { Description: '' }; +} +writeFileSync(here('arch_binary_as_text.sldd'), JSON.stringify(archTextSldd, null, 1) + '\n'); + +console.log( + 'wrote model_with_refs.slx, compressed.sldd, object_array_binary.sldd, ' + + 'arch_binary.sldd, arch_binary_as_text.sldd', +); diff --git a/test/mcosTypedNode.test.ts b/test/mcosTypedNode.test.ts index 07ef58e..669ef19 100644 --- a/test/mcosTypedNode.test.ts +++ b/test/mcosTypedNode.test.ts @@ -139,7 +139,7 @@ describe('buildTypedNodeFromMcos — object ARRAYS (the .slx/.mat entry point)', expect(node.children).toHaveLength(3); node.children.forEach((child: any, i: number) => { expect(child).toBeInstanceOf(ParameterNode); - expect(child._displayName).toBe(`p(${i + 1})`); + expect(child.displayName).toBe(`p(${i + 1})`); }); expect((node.children[0] as ParameterNode).Value).toBe(10); expect((node.children[2] as ParameterNode).Value).toBe(30); @@ -159,7 +159,7 @@ describe('buildTypedNodeFromMcos — object ARRAYS (the .slx/.mat entry point)', expect(node.children).toHaveLength(2); node.children.forEach((child: any, i: number) => { expect(child.constructor.name).toBe('ObjectNode'); - expect(child._displayName).toBe(`u(${i + 1})`); + expect(child.displayName).toBe(`u(${i + 1})`); }); }); diff --git a/test/objectArrayExpansion.test.ts b/test/objectArrayExpansion.test.ts index 1c7b52d..ffa2691 100644 --- a/test/objectArrayExpansion.test.ts +++ b/test/objectArrayExpansion.test.ts @@ -41,7 +41,7 @@ describe('general array rule — NodeClassMap.parseValue routing (format-indepen // Each element is a KNOWN typed node (ParameterNode), labeled p(i). node.children.forEach((child: any, i: number) => { expect(child.constructor.name).toBe('ParameterNode'); - expect(child._displayName).toBe(`p(${i + 1})`); + expect(child.displayName).toBe(`p(${i + 1})`); }); expect((node.children[1] as any).Value).toBe(20); }); @@ -56,7 +56,7 @@ describe('general array rule — NodeClassMap.parseValue routing (format-indepen expect(node.children).toHaveLength(2); node.children.forEach((child: any, i: number) => { expect(child.constructor.name).toBe('ObjectNode'); - expect(child._displayName).toBe(`u(${i + 1})`); + expect(child.displayName).toBe(`u(${i + 1})`); }); }); @@ -73,7 +73,7 @@ describe('general array rule — NodeClassMap.parseValue routing (format-indepen ]); const node = NodeRegistry.parseValue(val, 'm', null); // The elements arrive in MATLAB's own order, so element 2 IS m(2,1). - expect(node.children.map((c: any) => c._displayName)).toEqual([ + expect(node.children.map((c: any) => c.displayName)).toEqual([ 'm(1,1)', 'm(2,1)', 'm(1,2)', 'm(2,2)', ]); }); @@ -86,7 +86,7 @@ describe('general array rule — NodeClassMap.parseValue routing (format-indepen { Value: 22 }, { Value: 13 }, { Value: 23 }, ]); const node = NodeRegistry.parseValue(val, 'w', null); - const pairs = node.children.map((c: any) => [c._displayName, c.Value]); + const pairs = node.children.map((c: any) => [c.displayName, c.Value]); expect(pairs).toEqual([ ['w(1,1)', 11], ['w(2,1)', 21], ['w(1,2)', 12], ['w(2,2)', 22], ['w(1,3)', 13], ['w(2,3)', 23], @@ -97,7 +97,7 @@ describe('general array rule — NodeClassMap.parseValue routing (format-indepen const elems = Array.from({ length: 12 }, (_, i) => ({ Value: i + 1 })); const val = arrayValue('Simulink.Parameter', [2, 3, 2], elems); const node = NodeRegistry.parseValue(val, 'v', null); - const labels = node.children.map((c: any) => c._displayName); + const labels = node.children.map((c: any) => c.displayName); expect(labels[0]).toBe('v(1,1,1)'); expect(labels[11]).toBe('v(2,3,2)'); expect(labels.some((s: string) => /\(3,|\(4,/.test(s))).toBe(false); diff --git a/test/scCatalog.test.ts b/test/scCatalog.test.ts new file mode 100644 index 0000000..39d1ded --- /dev/null +++ b/test/scCatalog.test.ts @@ -0,0 +1,342 @@ +// Copyright 2026 The MathWorks, Inc. +// +// THE SYSTEM COMPOSER CATALOG IS ONE RULE OVER TWO FILE FORMATS. +// +// An Architectural Data entry is an ordinary Simulink object on disk — a +// `Simulink.Bus` is a Bus whether System Composer models it as a data interface or +// as a struct type. What tells the two apart is a SEPARATE part of the dictionary, +// the System Composer interface dictionary, which lists each definition with its +// System Composer type. That part is stored two ways: +// +// uncompressed-text `.sldd` → a JSON object under +// `__MW_TEXT_PARTS__/…/interfaceDictionary` +// compressed-binary `.sldd` → an MF0 XML member at +// `simulink/systemcomposer/interfaceDictionary.xml` +// +// The catalog those two produce must be the SAME catalog: the same dictionary +// saved in either format is the same dictionary, so an entry's Kind cannot depend +// on which format it was read from. These tests pin that equality on a pair of +// fixtures that hold the same catalog in the two forms, and they pin the traps a +// name-keyed catalog invites — a bus element that happens to share a value type's +// name, and the built-in types the catalog also lists. + +import { describe, it, expect } from 'vitest'; +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { unzipSync } from 'fflate'; +// Through the barrel: it is what registers the node classes the entry parser +// resolves values with. +import { + SlddNode, + parseBinarySldd, + parseBinarySlddParts, + applyScEdits, + catalogFromDefinitions, + scRenameEdits, + scanScJsonText, + scanScXml, + SC_PART_XML, +} from '../src/index.js'; + +const fixture = (name: string) => fileURLToPath(new URL(`./fixtures/${name}`, import.meta.url)); +const textAt = (name: string) => readFileSync(fixture(name), 'utf8'); + +function loadJsonSldd(name: string): SlddNode { + const json = JSON.parse(readFileSync(fixture(name), 'utf8')) as Record; + return SlddNode.parse(json, name); +} + +function loadBinarySldd(name: string): SlddNode { + const u8 = new Uint8Array(readFileSync(fixture(name))); + const buf = u8.buffer.slice(u8.byteOffset, u8.byteOffset + u8.byteLength) as ArrayBuffer; + return SlddNode.parse(parseBinarySldd(buf), name); +} + +/* eslint-disable @typescript-eslint/no-explicit-any */ +const entryNamed = (sldd: SlddNode, name: string): any => + (sldd.children as any[]).flatMap((s) => s.children as any[]).find((e) => e.name === name); + +function kindsOf(sldd: SlddNode): Record { + const out: Record = {}; + sldd.children.forEach((section) => { + section.children.forEach((entry) => { + out[entry.name] = (entry as unknown as { kind: string }).kind; + }); + }); + return out; +} + +describe('System Composer catalog, read from either format', () => { + it('classifies a compressed-binary dictionary from its zipped XML catalog', () => { + const sldd = loadBinarySldd('arch_binary.sldd'); + + // Without the catalog every one of these is its raw Simulink class: two Buses + // that both read 'Data Interface', and a NumericType that reads 'Numeric Type' + // by luck rather than by the catalog saying so. + expect(kindsOf(sldd)).toMatchObject({ + StructType: 'Struct Type', + DataInterface: 'Data Interface', + ValueType: 'Value Type', + NumericType: 'Numeric Type', + }); + }); + + it('reads the same catalog out of the JSON and the binary form of one dictionary', () => { + const json = loadJsonSldd('arch_binary_as_text.sldd'); + const binary = loadBinarySldd('arch_binary.sldd'); + + expect(binary.systemComposer).toEqual(json.systemComposer); + expect(kindsOf(binary)).toEqual(kindsOf(json)); + }); + + it('reads the same catalog out of the JSON TEXT as out of the parsed JSON', () => { + // Two readers over one syntax, because the host holds the dictionary as TEXT (it + // edits a document, not a file) and core holds it as a parsed object. They must + // not disagree about what the catalog says. + const text = textAt('arch.sldd'); + const fromText = catalogFromDefinitions(scanScJsonText(text)); + + expect(fromText).toEqual(loadJsonSldd('arch.sldd').systemComposer); + // All eight classifications, so the type map is exercised rather than sampled. + expect(Object.keys(fromText.interfaces).sort()) + .toEqual(['DataInterface', 'PhysicalInterface', 'ServiceInterface', 'ValueType', 'ValueType1']); + expect(Object.keys(fromText.modeledDataTypes).sort()) + .toEqual(['AliasType', 'EnumType', 'NumericType', 'StructType']); + }); + + it('reads the catalog out of the JSON text however the writer laid it out', () => { + // MATLAB writes a `.sldd` tab-indented; a host that has re-saved one may not. The + // catalog is in the text, not in its whitespace. + const parsed = JSON.parse(textAt('arch.sldd')) as unknown; + const expected = catalogFromDefinitions(scanScJsonText(textAt('arch.sldd'))); + + expect(catalogFromDefinitions(scanScJsonText(JSON.stringify(parsed)))).toEqual(expected); + expect(catalogFromDefinitions(scanScJsonText(JSON.stringify(parsed, null, '\t')))).toEqual(expected); + expect(catalogFromDefinitions(scanScJsonText(JSON.stringify(parsed, null, 4)))).toEqual(expected); + }); + + it('finds no definitions in a dictionary that has no interface dictionary', () => { + // Which is nearly every `.sldd`: the part is absent, and that is the limit of the + // file rather than a failure to read it. + expect(scanScJsonText(textAt('numeric_json.sldd'))).toEqual([]); + }); + + 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!; + + // `DataInterface` holds one element NAMED after the value type it uses, which is + // how System Composer writes a bus of value types — and it is not a definition + // of anything. Only the two definitions carry the name. + expect(Object.keys(catalog.interfaces).sort()).toEqual(['DataInterface', 'ValueType']); + // The catalog also lists MATLAB's built-in types (double, int16, …). They are + // not dictionary entries, so they are not classifications of anything. + expect(Object.keys(catalog.modeledDataTypes).sort()).toEqual(['NumericType', 'StructType']); + }); +}); + +// Renaming a catalogued entry without carrying the rename into the catalog breaks the +// file in both directions at once: the entry is now unclassified (a `Simulink.Bus` +// struct type re-reads as a plain data interface, and a value type as a plain +// `Simulink.ValueType`), and the catalog is left defining an interface no entry backs. +// Both are file-level damage, and neither is visible until the file is read again. +describe('carrying a rename into the catalog', () => { + // The entry's own name in a compressed-binary chunk, anchored on the UUID that + // follows it so the identically-spelled bus element inside another entry is left + // alone. The real thing is the host's entry splice; this is the same rename. + const renameChunkEntry = (chunkXml: string, oldName: string, newName: string): string => + chunkXml.replace( + new RegExp(`(

)${oldName}(

\\s*

} { + const u8 = new Uint8Array(readFileSync(fixture(name))); + const files = unzipSync(u8); + const zipMeta: Record = {}; + Object.entries(files).forEach(([member, data]) => { + if (member !== 'data/chunk0.xml') { + zipMeta[member] = data; + } + }); + return { chunkXml: new TextDecoder().decode(files['data/chunk0.xml']), zipMeta }; + } + + it('moves both copies of a value type name in the XML form, and nothing else', () => { + const { zipMeta } = binaryParts('arch_binary.sldd'); + const xml = new TextDecoder().decode(zipMeta[SC_PART_XML]); + + const edits = scRenameEdits(scanScXml(xml), 'ValueType', 'Speed'); + const patched = applyScEdits(xml, edits); + + // Two sites: the definition, and the value-type descriptor nested in it that + // MATLAB keeps equal to it. + expect(edits).toHaveLength(2); + expect(patched.match(/Speed<\/p_Name>/g)).toHaveLength(2); + // The third occurrence is a bus element in ANOTHER interface, named after the type + // it references. An element's name in someone else's interface is not this + // definition's name, and a global replace would have taken it too. + expect(patched.match(/ValueType<\/p_Name>/g)).toHaveLength(1); + }); + + it('keeps a renamed entry classified, in a compressed-binary dictionary', () => { + const { chunkXml, zipMeta } = binaryParts('arch_binary.sldd'); + const xml = new TextDecoder().decode(zipMeta[SC_PART_XML]); + + zipMeta[SC_PART_XML] = new TextEncoder().encode( + applyScEdits(xml, scRenameEdits(scanScXml(xml), 'ValueType', 'Speed')), + ); + const sldd = SlddNode.parse( + parseBinarySlddParts(renameChunkEntry(chunkXml, 'ValueType', 'Speed'), zipMeta), + 'arch_binary.sldd', + ); + + expect(kindsOf(sldd)).toEqual({ + StructType: 'Struct Type', + DataInterface: 'Data Interface', + Speed: 'Value Type', + NumericType: 'Numeric Type', + }); + }); + + it('keeps a renamed entry classified, in an uncompressed-text dictionary', () => { + const text = textAt('arch_binary_as_text.sldd'); + + const edits = scRenameEdits(scanScJsonText(text), 'ValueType', 'Speed'); + const patched = applyScEdits(text, edits).replace('"name": "ValueType"', '"name": "Speed"'); + const sldd = SlddNode.parse(JSON.parse(patched) as Record, 'arch.sldd'); + + expect(edits).toHaveLength(2); + expect(kindsOf(sldd)).toEqual({ + StructType: 'Struct Type', + DataInterface: 'Data Interface', + Speed: 'Value Type', + NumericType: 'Numeric Type', + }); + }); + + it('renames a modeled data type the same way it renames an interface', () => { + // A struct type is the case this bug was found on: a `Simulink.Bus` that the + // catalog models as a struct type, which re-reads as a data interface — a + // different thing entirely — the moment the catalog stops naming it. + const text = textAt('arch_binary_as_text.sldd'); + const patched = applyScEdits(text, scRenameEdits(scanScJsonText(text), 'StructType', 'Wheel')) + .replace('"name": "StructType"', '"name": "Wheel"'); + + const sldd = SlddNode.parse(JSON.parse(patched) as Record, 'arch.sldd'); + expect(kindsOf(sldd).Wheel).toBe('Struct Type'); + }); + + it('leaves a name no definition carries alone', () => { + // The overwhelming majority of renames: an ordinary Design Data entry, or an + // element inside an entry. Nothing to carry, so no edits — and in particular not + // an edit to the bus element that happens to share a value type's name. + const text = textAt('arch_binary_as_text.sldd'); + const xml = new TextDecoder().decode(binaryParts('arch_binary.sldd').zipMeta[SC_PART_XML]); + + expect(scRenameEdits(scanScJsonText(text), 'Element', 'Elem')).toEqual([]); + expect(scRenameEdits(scanScXml(xml), 'Element', 'Elem')).toEqual([]); + expect(scRenameEdits(scanScXml(xml), 'double', 'float')).toEqual([]); + }); + + it('agrees between the two formats about what a rename changes', () => { + // The invariant BETWEEN the paths, which is the one that keeps them honest: the + // same dictionary, renamed the same way in either storage form, must come back + // classifying its entries identically. + const text = textAt('arch_binary_as_text.sldd'); + const { chunkXml, zipMeta } = binaryParts('arch_binary.sldd'); + const xml = new TextDecoder().decode(zipMeta[SC_PART_XML]); + + const jsonSldd = SlddNode.parse( + JSON.parse( + applyScEdits(text, scRenameEdits(scanScJsonText(text), 'DataInterface', 'Bus1')) + .replace('"name": "DataInterface"', '"name": "Bus1"'), + ) as Record, + 'arch.sldd', + ); + zipMeta[SC_PART_XML] = new TextEncoder().encode( + applyScEdits(xml, scRenameEdits(scanScXml(xml), 'DataInterface', 'Bus1')), + ); + const binarySldd = SlddNode.parse( + parseBinarySlddParts(renameChunkEntry(chunkXml, 'DataInterface', 'Bus1'), zipMeta), + 'arch_binary.sldd', + ); + + expect(binarySldd.systemComposer).toEqual(jsonSldd.systemComposer); + expect(kindsOf(binarySldd)).toEqual(kindsOf(jsonSldd)); + expect(kindsOf(binarySldd).Bus1).toBe('Data Interface'); + }); +}); + +// The catalog is a name-keyed structure elsewhere in the file, so renaming an entry in +// the MODEL leaves it behind exactly as renaming it in the FILE does. The two are +// separate obligations: the host carries the rename into the part's bytes (above), and +// the tree the host is holding has to follow too — every narrow repaint rebuilds an +// entry through `parseEntry(record, catalog)`, so a catalog still keyed by the old name +// re-derives a Kind the file no longer agrees with. This is the same rule +// `_renameField` already applies to a struct's field list, one level up. +describe('the in-memory catalog follows a rename', () => { + const STRUCT_TYPE = 'systemcomposer.property.StructDataType'; + const NUMERIC_TYPE = 'systemcomposer.property.NumericType'; + const VALUE_TYPE_IFACE = 'systemcomposer.architecture.model.interface.ValueTypeInterface'; + const COMPOSITE_DATA = 'systemcomposer.architecture.model.interface.CompositeDataInterface'; + + // What the host's narrow repaint does with the renamed entry: serialize it and build + // it back through the catalog, which is where a stale key shows up as a wrong Kind. + const kindAfterRebuild = (sldd: SlddNode, entry: any): string => { + const rebuilt = entry.parent.parseEntry(entry.serialize(), sldd.systemComposer); + entry.parent.removeChild(rebuilt); + return rebuilt.kind; + }; + + it('re-keys a modeled data type, so the entry stays a struct type', () => { + const sldd = loadBinarySldd('arch_binary.sldd'); + const entry = entryNamed(sldd, 'StructType'); + + expect(entry.setProperty('Name', 'Wheel')).toBe(true); + + expect(sldd.systemComposer!.modeledDataTypes).toEqual({ + Wheel: STRUCT_TYPE, + NumericType: NUMERIC_TYPE, + }); + expect(kindAfterRebuild(sldd, entry)).toBe('Struct Type'); + }); + + it('re-keys an interface, so the entry stays a value type', () => { + const sldd = loadBinarySldd('arch_binary.sldd'); + const entry = entryNamed(sldd, 'ValueType'); + + expect(entry.setProperty('Name', 'Speed')).toBe(true); + + expect(sldd.systemComposer!.interfaces).toEqual({ + Speed: VALUE_TYPE_IFACE, + DataInterface: COMPOSITE_DATA, + }); + expect(kindAfterRebuild(sldd, entry)).toBe('Value Type'); + }); + + it('does not follow a rename of a nested element that shares a catalog name', () => { + // `DataInterface` holds a bus element named after the value type it references. It + // is not a definition, and the catalog must not move under it — the entry that + // really is called `ValueType` would lose its classification. + const sldd = loadBinarySldd('arch_binary.sldd'); + const element = entryNamed(sldd, 'DataInterface').children.find((c: any) => c.name === 'ValueType'); + + expect(element.setProperty('Name', 'Speed')).toBe(true); + + expect(sldd.systemComposer!.interfaces).toEqual({ + ValueType: VALUE_TYPE_IFACE, + DataInterface: COMPOSITE_DATA, + }); + expect(kindsOf(sldd).ValueType).toBe('Value Type'); + }); + + it('renames an entry in a dictionary that has no catalog at all', () => { + // Nearly every `.sldd`. There is nothing to follow, and nothing to invent either. + const sldd = loadBinarySldd('compressed.sldd'); + const entry = entryNamed(sldd, 'Kp'); + + expect(entry.setProperty('Name', 'Ki')).toBe(true); + expect(sldd.systemComposer).toBeNull(); + }); +}); diff --git a/test/structNode.test.ts b/test/structNode.test.ts index 3e6e54a..b6ed2bd 100644 --- a/test/structNode.test.ts +++ b/test/structNode.test.ts @@ -43,7 +43,7 @@ describe('StructNode parse', () => { // losing the 2-D structure that MATLAB shows. The element list arrives in // MATLAB's own COLUMN-major order, so element 2 is S(2,1), not S(1,2). const node = parseStruct(['x'], [{ x: 1 }, { x: 2 }, { x: 3 }, { x: 4 }], [2, 2]); - expect(node.children.map((c) => (c as any)._displayName)).toEqual([ + expect(node.children.map((c) => c.displayName)).toEqual([ 'S(1,1)', 'S(2,1)', 'S(1,2)', 'S(2,2)', ]); }); @@ -55,7 +55,7 @@ describe('StructNode parse', () => { const node = parseStruct(['a'], [11, 21, 12, 22, 13, 23].map((n) => ({ a: { _type: 'double', _value: String(n) }, })), [2, 3]); - const pairs = node.children.map((c) => [(c as any)._displayName, c.children[0].displayValue]); + const pairs = node.children.map((c) => [c.displayName, c.children[0].displayValue]); expect(pairs).toEqual([ ['S(1,1)', '11'], ['S(2,1)', '21'], ['S(1,2)', '12'], ['S(2,2)', '22'], ['S(1,3)', '13'], ['S(2,3)', '23'], @@ -67,7 +67,7 @@ describe('StructNode parse', () => { // (1,1,1)(2,1,1)(1,2,1)…(2,3,2) and never mention a row 3. const elems = Array.from({ length: 12 }, (_, i) => ({ a: i + 1 })); const node = parseStruct(['a'], elems, [2, 3, 2]); - const labels = node.children.map((c) => (c as any)._displayName as string); + const labels = node.children.map((c) => c.displayName); expect(labels[0]).toBe('S(1,1,1)'); expect(labels[1]).toBe('S(2,1,1)'); expect(labels[11]).toBe('S(2,3,2)'); @@ -76,7 +76,7 @@ describe('StructNode parse', () => { it('uses linear subscripts for a vector struct array', () => { const node = parseStruct(['a'], [{ a: 1 }, { a: 2 }], [2, 1]); - expect(node.children.map((c) => (c as any)._displayName)).toEqual(['S(1)', 'S(2)']); + expect(node.children.map((c) => c.displayName)).toEqual(['S(1)', 'S(2)']); }); it('types each element of a struct array as a struct, and each field by its own value', () => { @@ -88,7 +88,7 @@ describe('StructNode parse', () => { { n: { _type: 'int32', _value: '5' }, tag: 'lo' }, { n: { _type: 'int32', _value: '6' }, tag: 'hi' }, ], [1, 2]); - expect(node.children.map((c) => [(c as any)._displayName, c.dataType])).toEqual([ + expect(node.children.map((c) => [c.displayName, c.dataType])).toEqual([ ['S(1)', 'struct'], ['S(2)', 'struct'], ]); From e7a95a4327fd56417e7ec30235e7e513f4546cd3 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 9 Sep 2026 16:15:17 -0400 Subject: [PATCH 2/2] Bump to 1.12.0 for the rename carry and the refused cells --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 093987f..417d2bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "data-explorer-core", - "version": "1.11.1", + "version": "1.12.0", "description": "Parser, data model, and node schema for Simulink data-dictionary, model, MAT-file, and project files. Presentation-independent; embeddable in-process.", "license": "BSD-3-Clause", "type": "module",