@memoarchitect/tools 0.4.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +5 -5
  2. package/package.json +3 -3
  3. package/packages/tools/lib/bin/memo.js +1 -1
  4. package/packages/tools/lib/browser/index.d.ts +2 -0
  5. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  6. package/packages/tools/lib/browser/index.js +2 -0
  7. package/packages/tools/lib/browser/index.js.map +1 -1
  8. package/packages/tools/lib/commands/create-package.js +1 -1
  9. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  10. package/packages/tools/lib/commands/dev.js +40 -5
  11. package/packages/tools/lib/commands/dev.js.map +1 -1
  12. package/packages/tools/lib/commands/install.js +1 -1
  13. package/packages/tools/lib/commands/ontology.js +1 -1
  14. package/packages/tools/lib/commands/ontology.js.map +1 -1
  15. package/packages/tools/lib/dhf/document-registry.js +5 -5
  16. package/packages/tools/lib/dhf/document-registry.js.map +1 -1
  17. package/packages/tools/lib/dhf/template-engine.js +3 -3
  18. package/packages/tools/lib/dhf/template-engine.js.map +1 -1
  19. package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -1
  20. package/packages/tools/lib/importer/cameo-importer.js +5 -2
  21. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  22. package/packages/tools/lib/importer/ea-importer.d.ts +1 -1
  23. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  24. package/packages/tools/lib/importer/ea-importer.js +6 -4
  25. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  26. package/packages/tools/lib/index.d.ts +2 -0
  27. package/packages/tools/lib/index.d.ts.map +1 -1
  28. package/packages/tools/lib/index.js +2 -0
  29. package/packages/tools/lib/index.js.map +1 -1
  30. package/packages/tools/lib/language/generated/ast.d.ts +409 -42
  31. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  32. package/packages/tools/lib/language/generated/ast.js +318 -12
  33. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  34. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  35. package/packages/tools/lib/language/generated/grammar.js +1732 -513
  36. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  37. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  38. package/packages/tools/lib/model/builder.js +38 -14
  39. package/packages/tools/lib/model/builder.js.map +1 -1
  40. package/packages/tools/lib/model/config.d.ts +11 -1
  41. package/packages/tools/lib/model/config.d.ts.map +1 -1
  42. package/packages/tools/lib/model/kind-registry.d.ts +9 -0
  43. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  44. package/packages/tools/lib/model/kind-registry.js +26 -3
  45. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  46. package/packages/tools/lib/model/layer-resolver.d.ts.map +1 -1
  47. package/packages/tools/lib/model/layer-resolver.js +15 -0
  48. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  49. package/packages/tools/lib/model/ontology-loader.d.ts +2 -0
  50. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  51. package/packages/tools/lib/model/ontology-loader.js +92 -28
  52. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  53. package/packages/tools/lib/model/parser-utils.d.ts +9 -0
  54. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  55. package/packages/tools/lib/model/parser-utils.js +24 -0
  56. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  57. package/packages/tools/lib/model/paths.d.ts +0 -2
  58. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  59. package/packages/tools/lib/model/paths.js +0 -2
  60. package/packages/tools/lib/model/paths.js.map +1 -1
  61. package/packages/tools/lib/model/relationship-legality.d.ts +261 -0
  62. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -0
  63. package/packages/tools/lib/model/relationship-legality.js +391 -0
  64. package/packages/tools/lib/model/relationship-legality.js.map +1 -0
  65. package/packages/tools/lib/model/relationship-registry.d.ts +38 -4
  66. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  67. package/packages/tools/lib/model/relationship-registry.js +109 -1
  68. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  69. package/packages/tools/lib/model/semantic.d.ts +42 -0
  70. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  71. package/packages/tools/lib/model/semantic.js +3 -0
  72. package/packages/tools/lib/model/semantic.js.map +1 -1
  73. package/packages/tools/lib/model/short-id.js +1 -1
  74. package/packages/tools/lib/model/short-id.js.map +1 -1
  75. package/packages/tools/lib/model/source-affinity.d.ts +21 -0
  76. package/packages/tools/lib/model/source-affinity.d.ts.map +1 -0
  77. package/packages/tools/lib/model/source-affinity.js +42 -0
  78. package/packages/tools/lib/model/source-affinity.js.map +1 -0
  79. package/packages/tools/lib/model/source-graph.d.ts +30 -0
  80. package/packages/tools/lib/model/source-graph.d.ts.map +1 -0
  81. package/packages/tools/lib/model/source-graph.js +154 -0
  82. package/packages/tools/lib/model/source-graph.js.map +1 -0
  83. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  84. package/packages/tools/lib/model/view-kinds.js +1 -0
  85. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  86. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  87. package/packages/tools/lib/operations/project-snapshot.js +2 -15
  88. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  89. package/packages/tools/lib/protocol/messages.d.ts +92 -8
  90. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  91. package/packages/tools/lib/server/dev-server.d.ts +16 -0
  92. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  93. package/packages/tools/lib/server/dev-server.js +190 -16
  94. package/packages/tools/lib/server/dev-server.js.map +1 -1
  95. package/packages/tools/lib/server/file-watcher.d.ts +21 -2
  96. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  97. package/packages/tools/lib/server/file-watcher.js +55 -23
  98. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  99. package/packages/tools/lib/server/persistor.d.ts +0 -13
  100. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  101. package/packages/tools/lib/server/persistor.js +3 -31
  102. package/packages/tools/lib/server/persistor.js.map +1 -1
  103. package/packages/tools/lib/server/relationship-writer.d.ts +104 -0
  104. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -0
  105. package/packages/tools/lib/server/relationship-writer.js +402 -0
  106. package/packages/tools/lib/server/relationship-writer.js.map +1 -0
  107. package/packages/tools/lib/server/view-layout-store.d.ts +14 -1
  108. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  109. package/packages/tools/lib/server/view-layout-store.js +63 -11
  110. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  111. package/packages/tools/src/grammar/memo-sysml.langium +102 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-legality.js","sourceRoot":"","sources":["../../src/model/relationship-legality.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import type { RelationshipType } from './config.js';
2
2
  import type { ParsedDocument } from './parser-utils.js';
3
+ import type { MultiplicityDTO, RelationshipDefinitionDTO } from './relationship-legality.js';
4
+ /** One `end` declaration on a connection definition */
5
+ export interface RelationshipEnd {
6
+ name: string;
7
+ type?: string;
8
+ /** Declared multiplicity, e.g. `end owner : Requirement [0..1];` */
9
+ multiplicity?: MultiplicityDTO;
10
+ }
3
11
  /** Entry in the RelationshipRegistry */
4
12
  export interface RelationshipRegistryEntry {
5
13
  /** Relationship name in PascalCase as defined in SysML (e.g. "Mitigates") */
@@ -10,11 +18,24 @@ export interface RelationshipRegistryEntry {
10
18
  label: string;
11
19
  /** Architecture layer derived from directory path */
12
20
  layer: string;
21
+ /** Doc comment on the connection definition */
22
+ description?: string;
23
+ /** Abstract definitions (e.g. MemoRelationship) are not instantiable */
24
+ isAbstract?: boolean;
25
+ /**
26
+ * Whether an element may be related to itself by this relation, from the
27
+ * `isReflexive` attribute. Undefined when the ontology does not say.
28
+ */
29
+ isReflexive?: boolean;
30
+ /**
31
+ * Whether the same ordered pair may be linked more than once, from the
32
+ * `isUnique` attribute. Undefined when the ontology does not say.
33
+ */
34
+ isUnique?: boolean;
35
+ /** Supertype connection definition, when the relationship specializes one */
36
+ superType?: string;
13
37
  /** End names from the connection definition */
14
- ends: Array<{
15
- name: string;
16
- type?: string;
17
- }>;
38
+ ends: RelationshipEnd[];
18
39
  }
19
40
  /**
20
41
  * Convert PascalCase to camelCase.
@@ -51,6 +72,19 @@ export declare class RelationshipRegistry {
51
72
  relTypeNames(): string[];
52
73
  /** Get all entries */
53
74
  entries(): RelationshipRegistryEntry[];
75
+ /**
76
+ * Project the registry into serializable definitions for the web client.
77
+ * The first declared end becomes the source, the second the target; a
78
+ * definition with fewer than two ends still yields a definition with the
79
+ * missing end untyped, so it accepts any kind rather than disappearing.
80
+ */
81
+ toDefinitionDTOs(): RelationshipDefinitionDTO[];
82
+ /**
83
+ * Resolve a structural property up the specialization chain: a connection
84
+ * def that says nothing inherits whatever its supertype declared, so a
85
+ * value set once on MemoRelationship reaches every relation.
86
+ */
87
+ private inherited;
54
88
  /** Register a relationship type manually (for testing or config fallback) */
55
89
  register(entry: RelationshipRegistryEntry): void;
56
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-registry.d.ts","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,wCAAwC;AACxC,MAAM,WAAW,yBAAyB;IACtC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAUD;;;GAGG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IAEzE,8CAA8C;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI/D;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAW9D;;;OAGG;IACH,wBAAwB,IAAI,gBAAgB,EAAE;IAS9C,iDAAiD;IACjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kDAAkD;IAClD,YAAY,IAAI,MAAM,EAAE;IAIxB,sBAAsB;IACtB,OAAO,IAAI,yBAAyB,EAAE;IAItC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAIhD;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAaxD,6EAA6E;IAC7E,OAAO,CAAC,WAAW;CAmCtB"}
1
+ {"version":3,"file":"relationship-registry.d.ts","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EACR,eAAe,EACf,yBAAyB,EAE5B,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,wCAAwC;AACxC,MAAM,WAAW,yBAAyB;IACtC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAyDD;;;GAGG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IAEzE,8CAA8C;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI/D;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAW9D;;;OAGG;IACH,wBAAwB,IAAI,gBAAgB,EAAE;IAS9C,iDAAiD;IACjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kDAAkD;IAClD,YAAY,IAAI,MAAM,EAAE;IAIxB,sBAAsB;IACtB,OAAO,IAAI,yBAAyB,EAAE;IAItC;;;;;OAKG;IACH,gBAAgB,IAAI,yBAAyB,EAAE;IAe/C;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAkBjB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAIhD;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAaxD,6EAA6E;IAC7E,OAAO,CAAC,WAAW;CAsDtB"}
@@ -10,7 +10,7 @@
10
10
  // registry.populateFromDocuments(parsedDocs);
11
11
  // const rel = registry.getRelType("mitigates");
12
12
  // ─────────────────────────────────────────────────────────────────────────────
13
- import { isConnectionDefinition, isEndDeclaration, isPackageDeclaration, } from '../language/generated/ast.js';
13
+ import { isAttributeMember, isConnectionDefinition, isDocComment, isEndDeclaration, isPackageDeclaration, } from '../language/generated/ast.js';
14
14
  import { resolveLayerFromPath } from './layer-resolver.js';
15
15
  /**
16
16
  * Convert PascalCase to camelCase.
@@ -28,6 +28,52 @@ export function pascalToCamelCase(name) {
28
28
  function pascalToLabel(name) {
29
29
  return name.replace(/([a-z])([A-Z])/g, '$1 $2');
30
30
  }
31
+ /** Strip the `doc /* … *​/` wrapper and per-line asterisks from a doc comment. */
32
+ function cleanDocComment(content) {
33
+ const text = content
34
+ .replace(/^doc\s+\/\*\s*/, '')
35
+ .replace(/\s*\*\/$/, '')
36
+ .replace(/\n\s*\*\s?/g, ' ')
37
+ .trim();
38
+ return text || undefined;
39
+ }
40
+ /** Convert a parsed Multiplicity node into its serializable bounds. */
41
+ function toMultiplicityDTO(multiplicity) {
42
+ if (!multiplicity)
43
+ return undefined;
44
+ // `[3]` — an exact bound pins both ends.
45
+ if (multiplicity.exact !== undefined) {
46
+ const exact = Number(multiplicity.exact);
47
+ return { lower: exact, upper: exact };
48
+ }
49
+ // `[*]` — no lower bound was written, so it stays 0.
50
+ if (multiplicity.lower === undefined) {
51
+ return { lower: 0, upper: multiplicity.unbounded ? null : null };
52
+ }
53
+ // `[0..1]` / `[1..*]`
54
+ return {
55
+ lower: Number(multiplicity.lower),
56
+ upper: multiplicity.unbounded || multiplicity.upper === undefined
57
+ ? null
58
+ : Number(multiplicity.upper),
59
+ };
60
+ }
61
+ /**
62
+ * Read a Boolean attribute value, or undefined when the attribute declares a
63
+ * type rather than stating a value. Undefined is meaningful: it means the
64
+ * ontology is silent, and the caller applies the documented default.
65
+ */
66
+ function booleanAttributeValue(value) {
67
+ if (!value || value.$type !== 'BooleanValue')
68
+ return undefined;
69
+ return value.value === 'true';
70
+ }
71
+ /** Project one registry end (possibly absent) into its DTO. */
72
+ function toEndDTO(end, fallbackName) {
73
+ if (!end)
74
+ return { name: fallbackName };
75
+ return { name: end.name || fallbackName, type: end.type, multiplicity: end.multiplicity };
76
+ }
31
77
  /**
32
78
  * Registry that discovers relationship types from SysML AST ConnectionDefinition nodes.
33
79
  * Replaces config.relationshipTypes lookups in the builder.
@@ -85,6 +131,46 @@ export class RelationshipRegistry {
85
131
  entries() {
86
132
  return Array.from(this.relTypes.values());
87
133
  }
134
+ /**
135
+ * Project the registry into serializable definitions for the web client.
136
+ * The first declared end becomes the source, the second the target; a
137
+ * definition with fewer than two ends still yields a definition with the
138
+ * missing end untyped, so it accepts any kind rather than disappearing.
139
+ */
140
+ toDefinitionDTOs() {
141
+ return Array.from(this.relTypes.values()).map(entry => ({
142
+ name: entry.name,
143
+ sysmlName: entry.sysmlName,
144
+ label: entry.label,
145
+ description: entry.description,
146
+ layer: entry.layer,
147
+ isAbstract: entry.isAbstract,
148
+ isReflexive: this.inherited(entry, 'isReflexive'),
149
+ isUnique: this.inherited(entry, 'isUnique'),
150
+ sourceEnd: toEndDTO(entry.ends[0], 'source'),
151
+ targetEnd: toEndDTO(entry.ends[1], 'target'),
152
+ }));
153
+ }
154
+ /**
155
+ * Resolve a structural property up the specialization chain: a connection
156
+ * def that says nothing inherits whatever its supertype declared, so a
157
+ * value set once on MemoRelationship reaches every relation.
158
+ */
159
+ inherited(entry, property) {
160
+ let current = entry;
161
+ const seen = new Set();
162
+ while (current && !seen.has(current.sysmlName)) {
163
+ if (current[property] !== undefined)
164
+ return current[property];
165
+ seen.add(current.sysmlName);
166
+ const superName = current.superType;
167
+ // Supertypes are keyed by camelCase name like every other entry.
168
+ current = superName
169
+ ? this.relTypes.get(pascalToCamelCase(superName))
170
+ : undefined;
171
+ }
172
+ return undefined;
173
+ }
88
174
  /** Register a relationship type manually (for testing or config fallback) */
89
175
  register(entry) {
90
176
  this.relTypes.set(entry.name, entry);
@@ -119,19 +205,41 @@ export class RelationshipRegistry {
119
205
  const label = pascalToLabel(sysmlName);
120
206
  // Extract end declarations
121
207
  const ends = [];
208
+ let description;
209
+ let isReflexive;
210
+ let isUnique;
122
211
  for (const bodyMember of member.body) {
123
212
  if (isEndDeclaration(bodyMember)) {
124
213
  ends.push({
125
214
  name: bodyMember.name || '',
126
215
  type: bodyMember.type || undefined,
216
+ multiplicity: toMultiplicityDTO(bodyMember.multiplicity),
127
217
  });
128
218
  }
219
+ else if (isDocComment(bodyMember) && description === undefined) {
220
+ description = cleanDocComment(bodyMember.content);
221
+ }
222
+ else if (isAttributeMember(bodyMember)) {
223
+ // Only a valued attribute states anything — a bare
224
+ // `attribute isUnique : Boolean;` declares the slot.
225
+ if (bodyMember.name === 'isReflexive') {
226
+ isReflexive = booleanAttributeValue(bodyMember.value) ?? isReflexive;
227
+ }
228
+ else if (bodyMember.name === 'isUnique') {
229
+ isUnique = booleanAttributeValue(bodyMember.value) ?? isUnique;
230
+ }
231
+ }
129
232
  }
130
233
  this.relTypes.set(name, {
131
234
  sysmlName,
132
235
  name,
133
236
  label,
134
237
  layer,
238
+ description,
239
+ isAbstract: member.isAbstract || undefined,
240
+ superType: member.specialization?.superType || undefined,
241
+ isReflexive,
242
+ isUnique,
135
243
  ends,
136
244
  });
137
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-registry.js","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-registry.js","sourceRoot":"","sources":["../../src/model/relationship-registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { OntologyRegistriesDTO } from './relationship-legality.js';
1
2
  /** Direction of a port or action parameter */
2
3
  export type ParameterDirection = 'in' | 'out' | 'inout';
3
4
  /** Port specification on a port usage element */
@@ -69,6 +70,12 @@ export interface MemoRelationship {
69
70
  targetEnd: string;
70
71
  /** Source file path (relative) */
71
72
  file: string;
73
+ /**
74
+ * True when `id` is the connection usage's declared name in SysML, so it
75
+ * addresses exactly one declaration and survives a rebuild. Anonymous
76
+ * connections get a positional id instead and cannot be edited by id.
77
+ */
78
+ named?: boolean;
72
79
  /** Item type being transported (for flow relationships) */
73
80
  flowItem?: string;
74
81
  /** Source port element ID (when connection endpoint is a port) */
@@ -130,6 +137,21 @@ export interface DiagramDTO {
130
137
  relationshipTypes?: string[];
131
138
  /** SysML source containing the view definition (project-relative). */
132
139
  sourceFile?: string;
140
+ /**
141
+ * Every project-relative file whose change can alter what this view
142
+ * renders: its own source, the files owning its elements, and the
143
+ * transitive import closure of both. See model/source-graph.ts.
144
+ */
145
+ sourceFiles?: string[];
146
+ }
147
+ /**
148
+ * File-level dependency graph of the model's SysML sources.
149
+ *
150
+ * `dependsOn[file]` lists the files `file` can draw names from, transitively
151
+ * through package imports. Files with no dependencies are omitted.
152
+ */
153
+ export interface SourceGraphDTO {
154
+ dependsOn: Record<string, string[]>;
133
155
  }
134
156
  /** Architecture layer info (serializable subset of config) */
135
157
  export interface ArchLayerDTO {
@@ -163,12 +185,32 @@ export interface MemoModelDTO {
163
185
  diagrams?: DiagramDTO[];
164
186
  /** Model metadata for versioning and attribution */
165
187
  metadata?: ModelMetadata;
188
+ /**
189
+ * Ontology relationship and kind definitions. The client needs these to
190
+ * decide relationship legality from the ontology rather than a hardcoded
191
+ * table — see model/relationship-legality.ts.
192
+ */
193
+ registries?: OntologyRegistriesDTO;
194
+ /**
195
+ * Build counter for this model. Increments on every rebuild, so a client
196
+ * can tell a fresh model from a re-delivered one and order source-change
197
+ * notifications against it.
198
+ */
199
+ revision?: number;
200
+ /**
201
+ * Import dependencies between source files, so any surface can decide
202
+ * whether a changed file affects what it is showing.
203
+ */
204
+ sourceGraph?: SourceGraphDTO;
166
205
  }
167
206
  /** Convert MemoModel to a plain JSON-serializable object */
168
207
  export declare function modelToDTO(model: MemoModel, options?: {
169
208
  viewpoints?: ViewpointDTO[];
170
209
  architectureLayers?: ArchLayerDTO[];
171
210
  diagrams?: DiagramDTO[];
211
+ registries?: OntologyRegistriesDTO;
212
+ revision?: number;
213
+ sourceGraph?: SourceGraphDTO;
172
214
  }): MemoModelDTO;
173
215
  /** Reconstruct a MemoModel from a DTO (e.g. received over WebSocket) */
174
216
  export declare function dtoToModel(dto: MemoModelDTO): MemoModel;
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/model/semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/model/semantic.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ export function modelToDTO(model, options) {
17
17
  viewpoints: options?.viewpoints,
18
18
  architectureLayers: options?.architectureLayers,
19
19
  diagrams: options?.diagrams,
20
+ registries: options?.registries,
21
+ revision: options?.revision,
22
+ sourceGraph: options?.sourceGraph,
20
23
  };
21
24
  }
22
25
  /** Reconstruct a MemoModel from a DTO (e.g. received over WebSocket) */
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/model/semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/model/semantic.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ const KIND_PREFIX_OVERRIDES = {
20
20
  HazardousEvent: 'HZD-EVT',
21
21
  HazardousSituation: 'HZD-SIT',
22
22
  Risk: 'RISK',
23
- RiskControl: 'RISK-CTL',
23
+ RiskControlMeasure: 'RISK-CTL',
24
24
  MitigationMeasure: 'MIT',
25
25
  ResidualRisk: 'RRISK',
26
26
  // Requirements
@@ -1 +1 @@
1
- {"version":3,"file":"short-id.js","sourceRoot":"","sources":["../../src/model/short-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"short-id.js","sourceRoot":"","sources":["../../src/model/short-id.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,qEAAqE;AACrE,4DAA4D;AAC5D,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,qBAAqB,GAA2B;IAClD,OAAO;IACP,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,SAAS;IAC7B,IAAI,EAAE,MAAM;IACZ,kBAAkB,EAAE,UAAU;IAC9B,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,OAAO;IACrB,eAAe;IACf,sBAAsB,EAAE,SAAS;IACjC,WAAW,EAAE,KAAK;IAClB,qBAAqB,EAAE,SAAS;IAChC,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,UAAU;IAClC,iBAAiB,EAAE,SAAS;IAC5B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,KAAK;IAC5B,wBAAwB,EAAE,KAAK;IAC/B,eAAe;IACf,eAAe,EAAE,UAAU;IAC3B,iBAAiB,EAAE,SAAS;IAC5B,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,MAAM;IACZ,qBAAqB;IACrB,MAAM,EAAE,KAAK;IACb,gBAAgB,EAAE,SAAS;IAC3B,OAAO,EAAE,IAAI;IACb,cAAc;IACd,WAAW,EAAE,KAAK;IAClB,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,KAAK;IACjB,mBAAmB;IACnB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,oBAAoB,EAAE,KAAK;IAC3B,kBAAkB,EAAE,KAAK;IACzB,QAAQ,EAAE,IAAI;IACd,oBAAoB;IACpB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;CACf,CAAC;AAEF;;;GAGG;AACH,SAAS,cAAc,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,IAAY;IAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACxE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACpC,IAAY,EACZ,UAAoB;IAEpB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { SourceGraphDTO } from './semantic.js';
2
+ /**
3
+ * Every file whose change can alter what `file` means: the file itself plus
4
+ * everything it imports, transitively.
5
+ */
6
+ export declare function affectingFiles(file: string, graph?: SourceGraphDTO): Set<string>;
7
+ /**
8
+ * Whether any changed file is one the given files depend on.
9
+ *
10
+ * `dependencies` is the already-expanded closure — a view's `sourceFiles`, or
11
+ * the result of `affectingFiles` for a single file. An empty closure never
12
+ * matches: a surface that cannot state what it depends on should not claim
13
+ * every change as its own.
14
+ */
15
+ export declare function changeAffects(changedFiles: readonly string[], dependencies: Iterable<string>): boolean;
16
+ /**
17
+ * The subset of `changedFiles` the dependency closure actually covers, for
18
+ * telling the user which file moved rather than only that something did.
19
+ */
20
+ export declare function affectedBy(changedFiles: readonly string[], dependencies: Iterable<string>): string[];
21
+ //# sourceMappingURL=source-affinity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-affinity.d.ts","sourceRoot":"","sources":["../../src/model/source-affinity.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAEhF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC/B,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACtB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC/B,MAAM,EAAE,CAGV"}
@@ -0,0 +1,42 @@
1
+ // ─── Source Affinity ──────────────────────────────────────────────────────────
2
+ //
3
+ // "Does this file change affect what I am showing?"
4
+ //
5
+ // Pure DTO reasoning over the source graph shipped with the model, so the same
6
+ // answer is available in the browser (an open editor, a rendered view, an
7
+ // element inspector) as on the server. Building the graph needs the parser;
8
+ // consuming it does not — that split is what lets these live in the browser
9
+ // entrypoint.
10
+ // ─────────────────────────────────────────────────────────────────────────────
11
+ /** Empty graph, so callers can ask before the model has arrived. */
12
+ const EMPTY_GRAPH = { dependsOn: {} };
13
+ /**
14
+ * Every file whose change can alter what `file` means: the file itself plus
15
+ * everything it imports, transitively.
16
+ */
17
+ export function affectingFiles(file, graph) {
18
+ return new Set([file, ...((graph ?? EMPTY_GRAPH).dependsOn[file] ?? [])]);
19
+ }
20
+ /**
21
+ * Whether any changed file is one the given files depend on.
22
+ *
23
+ * `dependencies` is the already-expanded closure — a view's `sourceFiles`, or
24
+ * the result of `affectingFiles` for a single file. An empty closure never
25
+ * matches: a surface that cannot state what it depends on should not claim
26
+ * every change as its own.
27
+ */
28
+ export function changeAffects(changedFiles, dependencies) {
29
+ const watched = dependencies instanceof Set ? dependencies : new Set(dependencies);
30
+ if (watched.size === 0)
31
+ return false;
32
+ return changedFiles.some(file => watched.has(file));
33
+ }
34
+ /**
35
+ * The subset of `changedFiles` the dependency closure actually covers, for
36
+ * telling the user which file moved rather than only that something did.
37
+ */
38
+ export function affectedBy(changedFiles, dependencies) {
39
+ const watched = dependencies instanceof Set ? dependencies : new Set(dependencies);
40
+ return changedFiles.filter(file => watched.has(file));
41
+ }
42
+ //# sourceMappingURL=source-affinity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-affinity.js","sourceRoot":"","sources":["../../src/model/source-affinity.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,cAAc;AACd,gFAAgF;AAIhF,oEAAoE;AACpE,MAAM,WAAW,GAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAsB;IAC/D,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CACzB,YAA+B,EAC/B,YAA8B;IAE9B,MAAM,OAAO,GAAG,YAAY,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACnF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACtB,YAA+B,EAC/B,YAA8B;IAE9B,MAAM,OAAO,GAAG,YAAY,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACnF,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ParsedDocument } from './parser-utils.js';
2
+ import type { DiagramDTO, MemoElement, SourceGraphDTO } from './semantic.js';
3
+ /** A file and the files it can draw names from. */
4
+ export interface SourceGraph {
5
+ /** file → files it depends on, transitively (never includes itself). */
6
+ dependsOn: Map<string, Set<string>>;
7
+ /** file → files that depend on it, transitively. */
8
+ dependents: Map<string, Set<string>>;
9
+ }
10
+ /**
11
+ * Build the file-level dependency graph from parsed documents.
12
+ *
13
+ * Import paths name packages, not files, so resolution goes
14
+ * package → declaring file. A package declared across several files
15
+ * contributes all of them: any one can supply the imported name.
16
+ */
17
+ export declare function buildSourceGraph(documents: ParsedDocument[]): SourceGraph;
18
+ /**
19
+ * Every file that can change what a view renders.
20
+ *
21
+ * That is the view's own source, the files owning the elements it displays,
22
+ * and the transitive import closure of both. A view with no explicit element
23
+ * selection shows whatever the model gives it, so its own closure is all that
24
+ * can be stated.
25
+ */
26
+ export declare function viewSourceFiles(diagram: Pick<DiagramDTO, 'sourceFile' | 'elementIds'>, elements: ReadonlyMap<string, MemoElement> | Record<string, MemoElement>, graph: SourceGraph): string[];
27
+ /** Serializable form of the graph, shipped with the model DTO. */
28
+ export declare function sourceGraphToDTO(graph: SourceGraph): SourceGraphDTO;
29
+ export { affectedBy, affectingFiles, changeAffects } from './source-affinity.js';
30
+ //# sourceMappingURL=source-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-graph.d.ts","sourceRoot":"","sources":["../../src/model/source-graph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7E,mDAAmD;AACnD,MAAM,WAAW,WAAW;IACxB,wEAAwE;IACxE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,oDAAoD;IACpD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,CA2CzE;AA0CD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,CAAC,EACtD,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACxE,KAAK,EAAE,WAAW,GACnB,MAAM,EAAE,CAiBV;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAMnE;AAaD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}