@memoarchitect/tools 0.13.2 → 0.15.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 (824) hide show
  1. package/README.md +40 -26
  2. package/corpus/README.md +20 -36
  3. package/package.json +9 -10
  4. package/packages/tools/lib/analysis/impact.d.ts +30 -0
  5. package/packages/tools/lib/analysis/impact.d.ts.map +1 -1
  6. package/packages/tools/lib/analysis/impact.js +47 -74
  7. package/packages/tools/lib/analysis/impact.js.map +1 -1
  8. package/packages/tools/lib/analysis/interfaces-between.d.ts +36 -0
  9. package/packages/tools/lib/analysis/interfaces-between.d.ts.map +1 -0
  10. package/packages/tools/lib/analysis/interfaces-between.js +66 -0
  11. package/packages/tools/lib/analysis/interfaces-between.js.map +1 -0
  12. package/packages/tools/lib/analysis/suspect-links.d.ts +45 -0
  13. package/packages/tools/lib/analysis/suspect-links.d.ts.map +1 -0
  14. package/packages/tools/lib/analysis/suspect-links.js +66 -0
  15. package/packages/tools/lib/analysis/suspect-links.js.map +1 -0
  16. package/packages/tools/lib/analysis-starters.d.ts +2 -0
  17. package/packages/tools/lib/analysis-starters.d.ts.map +1 -1
  18. package/packages/tools/lib/analysis-starters.js +73 -68
  19. package/packages/tools/lib/analysis-starters.js.map +1 -1
  20. package/packages/tools/lib/authoring/outline-identity.d.ts +34 -0
  21. package/packages/tools/lib/authoring/outline-identity.d.ts.map +1 -0
  22. package/packages/tools/lib/authoring/outline-identity.js +95 -0
  23. package/packages/tools/lib/authoring/outline-identity.js.map +1 -0
  24. package/packages/tools/lib/authoring/outline-source.d.ts +57 -0
  25. package/packages/tools/lib/authoring/outline-source.d.ts.map +1 -0
  26. package/packages/tools/lib/authoring/outline-source.js +203 -0
  27. package/packages/tools/lib/authoring/outline-source.js.map +1 -0
  28. package/packages/tools/lib/authoring/source-outline.d.ts +82 -0
  29. package/packages/tools/lib/authoring/source-outline.d.ts.map +1 -0
  30. package/packages/tools/lib/authoring/source-outline.js +267 -0
  31. package/packages/tools/lib/authoring/source-outline.js.map +1 -0
  32. package/packages/tools/lib/bin/memo.js +181 -632
  33. package/packages/tools/lib/bin/memo.js.map +1 -1
  34. package/packages/tools/lib/browser/index.d.ts +12 -0
  35. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  36. package/packages/tools/lib/browser/index.js +8 -0
  37. package/packages/tools/lib/browser/index.js.map +1 -1
  38. package/packages/tools/lib/cli/project-commands.d.ts +3 -0
  39. package/packages/tools/lib/cli/project-commands.d.ts.map +1 -0
  40. package/packages/tools/lib/cli/project-commands.js +577 -0
  41. package/packages/tools/lib/cli/project-commands.js.map +1 -0
  42. package/packages/tools/lib/commands/ask.d.ts.map +1 -1
  43. package/packages/tools/lib/commands/ask.js +10 -18
  44. package/packages/tools/lib/commands/ask.js.map +1 -1
  45. package/packages/tools/lib/commands/compile.d.ts +18 -0
  46. package/packages/tools/lib/commands/compile.d.ts.map +1 -0
  47. package/packages/tools/lib/commands/compile.js +122 -0
  48. package/packages/tools/lib/commands/compile.js.map +1 -0
  49. package/packages/tools/lib/commands/convert.js +2 -2
  50. package/packages/tools/lib/commands/convert.js.map +1 -1
  51. package/packages/tools/lib/commands/create-package.js +4 -4
  52. package/packages/tools/lib/commands/create-package.js.map +1 -1
  53. package/packages/tools/lib/commands/dev.d.ts +20 -2
  54. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  55. package/packages/tools/lib/commands/dev.js +386 -97
  56. package/packages/tools/lib/commands/dev.js.map +1 -1
  57. package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -1
  58. package/packages/tools/lib/commands/dhf-draft.js +7 -16
  59. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  60. package/packages/tools/lib/commands/dhf-init.js +3 -3
  61. package/packages/tools/lib/commands/dhf-init.js.map +1 -1
  62. package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/dhf-lint.js +4 -3
  64. package/packages/tools/lib/commands/dhf-lint.js.map +1 -1
  65. package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -1
  66. package/packages/tools/lib/commands/dhf-preview.js +5 -26
  67. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  68. package/packages/tools/lib/commands/dhf.d.ts +4 -0
  69. package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
  70. package/packages/tools/lib/commands/dhf.js +77 -31
  71. package/packages/tools/lib/commands/dhf.js.map +1 -1
  72. package/packages/tools/lib/commands/element.d.ts.map +1 -1
  73. package/packages/tools/lib/commands/element.js +44 -6
  74. package/packages/tools/lib/commands/element.js.map +1 -1
  75. package/packages/tools/lib/commands/export.d.ts +1 -1
  76. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  77. package/packages/tools/lib/commands/export.js +25 -18
  78. package/packages/tools/lib/commands/export.js.map +1 -1
  79. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  80. package/packages/tools/lib/commands/generate.js +10 -30
  81. package/packages/tools/lib/commands/generate.js.map +1 -1
  82. package/packages/tools/lib/commands/ids-rebase.d.ts +15 -0
  83. package/packages/tools/lib/commands/ids-rebase.d.ts.map +1 -0
  84. package/packages/tools/lib/commands/ids-rebase.js +133 -0
  85. package/packages/tools/lib/commands/ids-rebase.js.map +1 -0
  86. package/packages/tools/lib/commands/import-ea.d.ts +3 -3
  87. package/packages/tools/lib/commands/import-ea.d.ts.map +1 -1
  88. package/packages/tools/lib/commands/import-ea.js +12 -9
  89. package/packages/tools/lib/commands/import-ea.js.map +1 -1
  90. package/packages/tools/lib/commands/import-owl.d.ts +1 -1
  91. package/packages/tools/lib/commands/import-owl.js +2 -2
  92. package/packages/tools/lib/commands/import-owl.js.map +1 -1
  93. package/packages/tools/lib/commands/import-sysand.d.ts +1 -1
  94. package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -1
  95. package/packages/tools/lib/commands/import-sysand.js +15 -6
  96. package/packages/tools/lib/commands/import-sysand.js.map +1 -1
  97. package/packages/tools/lib/commands/import.d.ts +13 -0
  98. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  99. package/packages/tools/lib/commands/import.js +89 -29
  100. package/packages/tools/lib/commands/import.js.map +1 -1
  101. package/packages/tools/lib/commands/init.d.ts +0 -8
  102. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  103. package/packages/tools/lib/commands/init.js +56 -51
  104. package/packages/tools/lib/commands/init.js.map +1 -1
  105. package/packages/tools/lib/commands/inspect.d.ts.map +1 -1
  106. package/packages/tools/lib/commands/inspect.js +22 -15
  107. package/packages/tools/lib/commands/inspect.js.map +1 -1
  108. package/packages/tools/lib/commands/install.d.ts.map +1 -1
  109. package/packages/tools/lib/commands/install.js +9 -6
  110. package/packages/tools/lib/commands/install.js.map +1 -1
  111. package/packages/tools/lib/commands/interfaces.d.ts +8 -0
  112. package/packages/tools/lib/commands/interfaces.d.ts.map +1 -0
  113. package/packages/tools/lib/commands/interfaces.js +71 -0
  114. package/packages/tools/lib/commands/interfaces.js.map +1 -0
  115. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  116. package/packages/tools/lib/commands/lock.js +13 -6
  117. package/packages/tools/lib/commands/lock.js.map +1 -1
  118. package/packages/tools/lib/commands/mcp.js +7 -7
  119. package/packages/tools/lib/commands/mcp.js.map +1 -1
  120. package/packages/tools/lib/commands/migrate-layout.d.ts +5 -0
  121. package/packages/tools/lib/commands/migrate-layout.d.ts.map +1 -0
  122. package/packages/tools/lib/commands/migrate-layout.js +90 -0
  123. package/packages/tools/lib/commands/migrate-layout.js.map +1 -0
  124. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  125. package/packages/tools/lib/commands/ontology.js +26 -22
  126. package/packages/tools/lib/commands/ontology.js.map +1 -1
  127. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  128. package/packages/tools/lib/commands/pack.js +14 -9
  129. package/packages/tools/lib/commands/pack.js.map +1 -1
  130. package/packages/tools/lib/commands/pinned-target.d.ts +12 -0
  131. package/packages/tools/lib/commands/pinned-target.d.ts.map +1 -0
  132. package/packages/tools/lib/commands/pinned-target.js +74 -0
  133. package/packages/tools/lib/commands/pinned-target.js.map +1 -0
  134. package/packages/tools/lib/commands/plugin.d.ts.map +1 -1
  135. package/packages/tools/lib/commands/plugin.js +13 -22
  136. package/packages/tools/lib/commands/plugin.js.map +1 -1
  137. package/packages/tools/lib/commands/prune.d.ts +5 -0
  138. package/packages/tools/lib/commands/prune.d.ts.map +1 -0
  139. package/packages/tools/lib/commands/prune.js +27 -0
  140. package/packages/tools/lib/commands/prune.js.map +1 -0
  141. package/packages/tools/lib/commands/retired.d.ts +10 -0
  142. package/packages/tools/lib/commands/retired.d.ts.map +1 -0
  143. package/packages/tools/lib/commands/retired.js +35 -0
  144. package/packages/tools/lib/commands/retired.js.map +1 -0
  145. package/packages/tools/lib/commands/rules.d.ts +49 -5
  146. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  147. package/packages/tools/lib/commands/rules.js +340 -172
  148. package/packages/tools/lib/commands/rules.js.map +1 -1
  149. package/packages/tools/lib/commands/ship-library.d.ts +4 -0
  150. package/packages/tools/lib/commands/ship-library.d.ts.map +1 -0
  151. package/packages/tools/lib/commands/ship-library.js +45 -0
  152. package/packages/tools/lib/commands/ship-library.js.map +1 -0
  153. package/packages/tools/lib/commands/standards.d.ts +2 -2
  154. package/packages/tools/lib/commands/standards.d.ts.map +1 -1
  155. package/packages/tools/lib/commands/standards.js +78 -33
  156. package/packages/tools/lib/commands/standards.js.map +1 -1
  157. package/packages/tools/lib/commands/sysand-publish.d.ts +16 -1
  158. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  159. package/packages/tools/lib/commands/sysand-publish.js +75 -193
  160. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  161. package/packages/tools/lib/commands/toolchain.d.ts +5 -0
  162. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -1
  163. package/packages/tools/lib/commands/toolchain.js +50 -1
  164. package/packages/tools/lib/commands/toolchain.js.map +1 -1
  165. package/packages/tools/lib/commands/validate-client.d.ts +11 -0
  166. package/packages/tools/lib/commands/validate-client.d.ts.map +1 -0
  167. package/packages/tools/lib/commands/validate-client.js +54 -0
  168. package/packages/tools/lib/commands/validate-client.js.map +1 -0
  169. package/packages/tools/lib/commands/validate.d.ts +33 -2
  170. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  171. package/packages/tools/lib/commands/validate.js +432 -186
  172. package/packages/tools/lib/commands/validate.js.map +1 -1
  173. package/packages/tools/lib/dhf/device-dhf.d.ts +57 -0
  174. package/packages/tools/lib/dhf/device-dhf.d.ts.map +1 -0
  175. package/packages/tools/lib/dhf/device-dhf.js +152 -0
  176. package/packages/tools/lib/dhf/device-dhf.js.map +1 -0
  177. package/packages/tools/lib/dhf/dhf-config-v2.d.ts +1 -1
  178. package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -1
  179. package/packages/tools/lib/dhf/query-engine.d.ts +9 -2
  180. package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
  181. package/packages/tools/lib/dhf/query-engine.js +29 -25
  182. package/packages/tools/lib/dhf/query-engine.js.map +1 -1
  183. package/packages/tools/lib/dhf/query-executor.d.ts +1 -1
  184. package/packages/tools/lib/dhf/query-executor.js +1 -1
  185. package/packages/tools/lib/dhf/query-executor.js.map +1 -1
  186. package/packages/tools/lib/dhf/standards-block.js +1 -1
  187. package/packages/tools/lib/dhf/standards-block.js.map +1 -1
  188. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -1
  189. package/packages/tools/lib/dhf/standards-library.js +16 -9
  190. package/packages/tools/lib/dhf/standards-library.js.map +1 -1
  191. package/packages/tools/lib/dhf/standards-report.d.ts +11 -3
  192. package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -1
  193. package/packages/tools/lib/dhf/standards-report.js +43 -13
  194. package/packages/tools/lib/dhf/standards-report.js.map +1 -1
  195. package/packages/tools/lib/dhf/template-engine.d.ts +2 -0
  196. package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -1
  197. package/packages/tools/lib/dhf/template-engine.js +5 -5
  198. package/packages/tools/lib/dhf/template-engine.js.map +1 -1
  199. package/packages/tools/lib/import/import-diff.d.ts +31 -1
  200. package/packages/tools/lib/import/import-diff.d.ts.map +1 -1
  201. package/packages/tools/lib/import/import-diff.js +91 -19
  202. package/packages/tools/lib/import/import-diff.js.map +1 -1
  203. package/packages/tools/lib/import/import-sources.d.ts +21 -0
  204. package/packages/tools/lib/import/import-sources.d.ts.map +1 -0
  205. package/packages/tools/lib/import/import-sources.js +36 -0
  206. package/packages/tools/lib/import/import-sources.js.map +1 -0
  207. package/packages/tools/lib/import/reqif.d.ts +23 -0
  208. package/packages/tools/lib/import/reqif.d.ts.map +1 -0
  209. package/packages/tools/lib/import/reqif.js +151 -0
  210. package/packages/tools/lib/import/reqif.js.map +1 -0
  211. package/packages/tools/lib/import/source-import.d.ts +128 -0
  212. package/packages/tools/lib/import/source-import.d.ts.map +1 -0
  213. package/packages/tools/lib/import/source-import.js +305 -0
  214. package/packages/tools/lib/import/source-import.js.map +1 -0
  215. package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -1
  216. package/packages/tools/lib/importer/cameo-importer.js +4 -1
  217. package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
  218. package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
  219. package/packages/tools/lib/importer/ea-importer.js +4 -1
  220. package/packages/tools/lib/importer/ea-importer.js.map +1 -1
  221. package/packages/tools/lib/importer/sysand-importer.d.ts +2 -1
  222. package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -1
  223. package/packages/tools/lib/importer/sysand-importer.js +27 -10
  224. package/packages/tools/lib/importer/sysand-importer.js.map +1 -1
  225. package/packages/tools/lib/index.d.ts +20 -6
  226. package/packages/tools/lib/index.d.ts.map +1 -1
  227. package/packages/tools/lib/index.js +22 -8
  228. package/packages/tools/lib/index.js.map +1 -1
  229. package/packages/tools/lib/llm/draft-engine.js +1 -1
  230. package/packages/tools/lib/llm/draft-engine.js.map +1 -1
  231. package/packages/tools/lib/llm/model-context.js +1 -1
  232. package/packages/tools/lib/llm/model-context.js.map +1 -1
  233. package/packages/tools/lib/lock.d.ts +37 -2
  234. package/packages/tools/lib/lock.d.ts.map +1 -1
  235. package/packages/tools/lib/lock.js +93 -8
  236. package/packages/tools/lib/lock.js.map +1 -1
  237. package/packages/tools/lib/mcp/index.js +1 -1
  238. package/packages/tools/lib/mcp/index.js.map +1 -1
  239. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  240. package/packages/tools/lib/mcp/model-loader.js +6 -18
  241. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  242. package/packages/tools/lib/mcp/server.js +2 -2
  243. package/packages/tools/lib/mcp/server.js.map +1 -1
  244. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  245. package/packages/tools/lib/mcp/tools.js +5 -4
  246. package/packages/tools/lib/mcp/tools.js.map +1 -1
  247. package/packages/tools/lib/methodology/guide-service.d.ts +28 -0
  248. package/packages/tools/lib/methodology/guide-service.d.ts.map +1 -0
  249. package/packages/tools/lib/methodology/guide-service.js +32 -0
  250. package/packages/tools/lib/methodology/guide-service.js.map +1 -0
  251. package/packages/tools/lib/methodology/guide.d.ts +56 -0
  252. package/packages/tools/lib/methodology/guide.d.ts.map +1 -0
  253. package/packages/tools/lib/methodology/guide.js +80 -0
  254. package/packages/tools/lib/methodology/guide.js.map +1 -0
  255. package/packages/tools/lib/model/census-projects.d.ts +26 -0
  256. package/packages/tools/lib/model/census-projects.d.ts.map +1 -0
  257. package/packages/tools/lib/model/census-projects.js +53 -0
  258. package/packages/tools/lib/model/census-projects.js.map +1 -0
  259. package/packages/tools/lib/model/census.d.ts +103 -0
  260. package/packages/tools/lib/model/census.d.ts.map +1 -0
  261. package/packages/tools/lib/model/census.js +229 -0
  262. package/packages/tools/lib/model/census.js.map +1 -0
  263. package/packages/tools/lib/model/complete-model.d.ts +52 -0
  264. package/packages/tools/lib/model/complete-model.d.ts.map +1 -0
  265. package/packages/tools/lib/model/complete-model.js +287 -0
  266. package/packages/tools/lib/model/complete-model.js.map +1 -0
  267. package/packages/tools/lib/model/config-loader.d.ts +8 -3
  268. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  269. package/packages/tools/lib/model/config-loader.js +37 -6
  270. package/packages/tools/lib/model/config-loader.js.map +1 -1
  271. package/packages/tools/lib/model/config.d.ts +21 -7
  272. package/packages/tools/lib/model/config.d.ts.map +1 -1
  273. package/packages/tools/lib/model/effective-scope.d.ts +55 -28
  274. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -1
  275. package/packages/tools/lib/model/effective-scope.js +96 -35
  276. package/packages/tools/lib/model/effective-scope.js.map +1 -1
  277. package/packages/tools/lib/model/element-index.d.ts +207 -0
  278. package/packages/tools/lib/model/element-index.d.ts.map +1 -0
  279. package/packages/tools/lib/model/element-index.js +316 -0
  280. package/packages/tools/lib/model/element-index.js.map +1 -0
  281. package/packages/tools/lib/model/id-rebase.d.ts +35 -0
  282. package/packages/tools/lib/model/id-rebase.d.ts.map +1 -0
  283. package/packages/tools/lib/model/id-rebase.js +199 -0
  284. package/packages/tools/lib/model/id-rebase.js.map +1 -0
  285. package/packages/tools/lib/model/identity-registry.d.ts +34 -3
  286. package/packages/tools/lib/model/identity-registry.d.ts.map +1 -1
  287. package/packages/tools/lib/model/identity-registry.js +40 -7
  288. package/packages/tools/lib/model/identity-registry.js.map +1 -1
  289. package/packages/tools/lib/model/impact.d.ts +75 -0
  290. package/packages/tools/lib/model/impact.d.ts.map +1 -0
  291. package/packages/tools/lib/model/impact.js +167 -0
  292. package/packages/tools/lib/model/impact.js.map +1 -0
  293. package/packages/tools/lib/model/ir-identity.d.ts +3 -51
  294. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -1
  295. package/packages/tools/lib/model/ir-identity.js +14 -121
  296. package/packages/tools/lib/model/ir-identity.js.map +1 -1
  297. package/packages/tools/lib/model/kind-registry.d.ts +66 -22
  298. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  299. package/packages/tools/lib/model/kind-registry.js +104 -145
  300. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  301. package/packages/tools/lib/model/manifest.d.ts +2 -2
  302. package/packages/tools/lib/model/manifest.d.ts.map +1 -1
  303. package/packages/tools/lib/model/manifest.js +5 -4
  304. package/packages/tools/lib/model/manifest.js.map +1 -1
  305. package/packages/tools/lib/model/methodology-loader.d.ts +11 -2
  306. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  307. package/packages/tools/lib/model/methodology-loader.js +24 -130
  308. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  309. package/packages/tools/lib/model/methodology-resolver.d.ts +71 -6
  310. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -1
  311. package/packages/tools/lib/model/methodology-resolver.js +210 -24
  312. package/packages/tools/lib/model/methodology-resolver.js.map +1 -1
  313. package/packages/tools/lib/model/model-diff.d.ts +73 -0
  314. package/packages/tools/lib/model/model-diff.d.ts.map +1 -0
  315. package/packages/tools/lib/model/model-diff.js +91 -0
  316. package/packages/tools/lib/model/model-diff.js.map +1 -0
  317. package/packages/tools/lib/model/narrow-model.d.ts +9 -0
  318. package/packages/tools/lib/model/narrow-model.d.ts.map +1 -0
  319. package/packages/tools/lib/model/narrow-model.js +54 -0
  320. package/packages/tools/lib/model/narrow-model.js.map +1 -0
  321. package/packages/tools/lib/model/native-project.d.ts +92 -11
  322. package/packages/tools/lib/model/native-project.d.ts.map +1 -1
  323. package/packages/tools/lib/model/native-project.js +163 -269
  324. package/packages/tools/lib/model/native-project.js.map +1 -1
  325. package/packages/tools/lib/model/ontology-loader.d.ts +10 -61
  326. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  327. package/packages/tools/lib/model/ontology-loader.js +11 -512
  328. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  329. package/packages/tools/lib/model/package-manifest.d.ts +8 -2
  330. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
  331. package/packages/tools/lib/model/package-manifest.js +14 -2
  332. package/packages/tools/lib/model/package-manifest.js.map +1 -1
  333. package/packages/tools/lib/model/pinned.d.ts +216 -0
  334. package/packages/tools/lib/model/pinned.d.ts.map +1 -0
  335. package/packages/tools/lib/model/pinned.js +481 -0
  336. package/packages/tools/lib/model/pinned.js.map +1 -0
  337. package/packages/tools/lib/model/project-conversion.d.ts +3 -2
  338. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -1
  339. package/packages/tools/lib/model/project-conversion.js +55 -10
  340. package/packages/tools/lib/model/project-conversion.js.map +1 -1
  341. package/packages/tools/lib/model/project-settings.d.ts +10 -0
  342. package/packages/tools/lib/model/project-settings.d.ts.map +1 -0
  343. package/packages/tools/lib/model/project-settings.js +48 -0
  344. package/packages/tools/lib/model/project-settings.js.map +1 -0
  345. package/packages/tools/lib/model/relation-selection.d.ts +25 -0
  346. package/packages/tools/lib/model/relation-selection.d.ts.map +1 -0
  347. package/packages/tools/lib/model/relation-selection.js +65 -0
  348. package/packages/tools/lib/model/relation-selection.js.map +1 -0
  349. package/packages/tools/lib/model/relationship-legality.d.ts +6 -0
  350. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  351. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  352. package/packages/tools/lib/model/relationship-registry.d.ts +21 -8
  353. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  354. package/packages/tools/lib/model/relationship-registry.js +77 -129
  355. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  356. package/packages/tools/lib/model/relationship-subjects.d.ts +28 -0
  357. package/packages/tools/lib/model/relationship-subjects.d.ts.map +1 -0
  358. package/packages/tools/lib/model/relationship-subjects.js +126 -0
  359. package/packages/tools/lib/model/relationship-subjects.js.map +1 -0
  360. package/packages/tools/lib/model/release-target.d.ts +12 -0
  361. package/packages/tools/lib/model/release-target.d.ts.map +1 -0
  362. package/packages/tools/lib/model/release-target.js +35 -0
  363. package/packages/tools/lib/model/release-target.js.map +1 -0
  364. package/packages/tools/lib/model/selector-vocabulary.d.ts +47 -0
  365. package/packages/tools/lib/model/selector-vocabulary.d.ts.map +1 -0
  366. package/packages/tools/lib/model/selector-vocabulary.js +181 -0
  367. package/packages/tools/lib/model/selector-vocabulary.js.map +1 -0
  368. package/packages/tools/lib/model/semantic.d.ts +99 -7
  369. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  370. package/packages/tools/lib/model/semantic.js +13 -1
  371. package/packages/tools/lib/model/semantic.js.map +1 -1
  372. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -1
  373. package/packages/tools/lib/model/settings-boundary.js +9 -8
  374. package/packages/tools/lib/model/settings-boundary.js.map +1 -1
  375. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  376. package/packages/tools/lib/model/short-id.js +4 -0
  377. package/packages/tools/lib/model/short-id.js.map +1 -1
  378. package/packages/tools/lib/model/source-graph.d.ts +9 -7
  379. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  380. package/packages/tools/lib/model/source-graph.js +19 -24
  381. package/packages/tools/lib/model/source-graph.js.map +1 -1
  382. package/packages/tools/lib/model/source-provenance.d.ts +5 -1
  383. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -1
  384. package/packages/tools/lib/model/source-provenance.js.map +1 -1
  385. package/packages/tools/lib/model/sysml-files.js +1 -1
  386. package/packages/tools/lib/model/sysml-ir.d.ts +2 -5
  387. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -1
  388. package/packages/tools/lib/model/sysml-ir.js +1 -100
  389. package/packages/tools/lib/model/sysml-ir.js.map +1 -1
  390. package/packages/tools/lib/model/toolchain-merge.d.ts +4 -0
  391. package/packages/tools/lib/model/toolchain-merge.d.ts.map +1 -0
  392. package/packages/tools/lib/model/toolchain-merge.js +34 -0
  393. package/packages/tools/lib/model/toolchain-merge.js.map +1 -0
  394. package/packages/tools/lib/model/user-settings.d.ts +13 -0
  395. package/packages/tools/lib/model/user-settings.d.ts.map +1 -0
  396. package/packages/tools/lib/model/user-settings.js +83 -0
  397. package/packages/tools/lib/model/user-settings.js.map +1 -0
  398. package/packages/tools/lib/model/variability.d.ts +56 -0
  399. package/packages/tools/lib/model/variability.d.ts.map +1 -0
  400. package/packages/tools/lib/model/variability.js +116 -0
  401. package/packages/tools/lib/model/variability.js.map +1 -0
  402. package/packages/tools/lib/model/version-range.d.ts +2 -0
  403. package/packages/tools/lib/model/version-range.d.ts.map +1 -0
  404. package/packages/tools/lib/model/version-range.js +37 -0
  405. package/packages/tools/lib/model/version-range.js.map +1 -0
  406. package/packages/tools/lib/model/view-deriver.d.ts +16 -0
  407. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  408. package/packages/tools/lib/model/view-deriver.js +100 -26
  409. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  410. package/packages/tools/lib/model/view-layout-block.d.ts +81 -0
  411. package/packages/tools/lib/model/view-layout-block.d.ts.map +1 -0
  412. package/packages/tools/lib/model/view-layout-block.js +525 -0
  413. package/packages/tools/lib/model/view-layout-block.js.map +1 -0
  414. package/packages/tools/lib/model/view-layout-migration.d.ts +54 -0
  415. package/packages/tools/lib/model/view-layout-migration.d.ts.map +1 -0
  416. package/packages/tools/lib/model/view-layout-migration.js +156 -0
  417. package/packages/tools/lib/model/view-layout-migration.js.map +1 -0
  418. package/packages/tools/lib/model/workspace-membership.d.ts +99 -0
  419. package/packages/tools/lib/model/workspace-membership.d.ts.map +1 -0
  420. package/packages/tools/lib/model/workspace-membership.js +281 -0
  421. package/packages/tools/lib/model/workspace-membership.js.map +1 -0
  422. package/packages/tools/lib/ontology/owl-exporter.d.ts +1 -1
  423. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  424. package/packages/tools/lib/ontology/owl-exporter.js +1 -1
  425. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  426. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -1
  427. package/packages/tools/lib/operations/ai-authoring.js +7 -5
  428. package/packages/tools/lib/operations/ai-authoring.js.map +1 -1
  429. package/packages/tools/lib/operations/authoring.d.ts +10 -4
  430. package/packages/tools/lib/operations/authoring.d.ts.map +1 -1
  431. package/packages/tools/lib/operations/authoring.js +27 -11
  432. package/packages/tools/lib/operations/authoring.js.map +1 -1
  433. package/packages/tools/lib/operations/index.d.ts +2 -0
  434. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  435. package/packages/tools/lib/operations/index.js +1 -0
  436. package/packages/tools/lib/operations/index.js.map +1 -1
  437. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  438. package/packages/tools/lib/operations/project-snapshot.js +7 -13
  439. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  440. package/packages/tools/lib/plugin/plugin-scaffold.js +2 -2
  441. package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -1
  442. package/packages/tools/lib/protocol/messages.d.ts +375 -7
  443. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  444. package/packages/tools/lib/serializer/csv-io.d.ts +37 -29
  445. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  446. package/packages/tools/lib/serializer/csv-io.js +64 -31
  447. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  448. package/packages/tools/lib/serializer/sysml-generator.d.ts +15 -2
  449. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  450. package/packages/tools/lib/serializer/sysml-generator.js +45 -17
  451. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  452. package/packages/tools/lib/server/conflict-policy.js +1 -1
  453. package/packages/tools/lib/server/conflict-policy.js.map +1 -1
  454. package/packages/tools/lib/server/dashboard-store.d.ts +1 -7
  455. package/packages/tools/lib/server/dashboard-store.d.ts.map +1 -1
  456. package/packages/tools/lib/server/dashboard-store.js +3 -14
  457. package/packages/tools/lib/server/dashboard-store.js.map +1 -1
  458. package/packages/tools/lib/server/dev-server.d.ts +48 -1
  459. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  460. package/packages/tools/lib/server/dev-server.js +529 -80
  461. package/packages/tools/lib/server/dev-server.js.map +1 -1
  462. package/packages/tools/lib/server/dev-validate.d.ts +30 -0
  463. package/packages/tools/lib/server/dev-validate.d.ts.map +1 -0
  464. package/packages/tools/lib/server/dev-validate.js +82 -0
  465. package/packages/tools/lib/server/dev-validate.js.map +1 -0
  466. package/packages/tools/lib/server/element-writer.d.ts +4 -1
  467. package/packages/tools/lib/server/element-writer.d.ts.map +1 -1
  468. package/packages/tools/lib/server/element-writer.js +56 -35
  469. package/packages/tools/lib/server/element-writer.js.map +1 -1
  470. package/packages/tools/lib/server/mutation-domain.d.ts +10 -0
  471. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
  472. package/packages/tools/lib/server/mutation-domain.js +45 -8
  473. package/packages/tools/lib/server/mutation-domain.js.map +1 -1
  474. package/packages/tools/lib/server/package-source.d.ts +13 -3
  475. package/packages/tools/lib/server/package-source.d.ts.map +1 -1
  476. package/packages/tools/lib/server/package-source.js +31 -39
  477. package/packages/tools/lib/server/package-source.js.map +1 -1
  478. package/packages/tools/lib/server/package-writer.d.ts +19 -6
  479. package/packages/tools/lib/server/package-writer.d.ts.map +1 -1
  480. package/packages/tools/lib/server/package-writer.js +90 -39
  481. package/packages/tools/lib/server/package-writer.js.map +1 -1
  482. package/packages/tools/lib/server/persistor.d.ts +33 -7
  483. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  484. package/packages/tools/lib/server/persistor.js +63 -48
  485. package/packages/tools/lib/server/persistor.js.map +1 -1
  486. package/packages/tools/lib/server/project-gitignore.d.ts +9 -0
  487. package/packages/tools/lib/server/project-gitignore.d.ts.map +1 -0
  488. package/packages/tools/lib/server/project-gitignore.js +27 -0
  489. package/packages/tools/lib/server/project-gitignore.js.map +1 -0
  490. package/packages/tools/lib/server/relationship-writer.d.ts +31 -2
  491. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  492. package/packages/tools/lib/server/relationship-writer.js +255 -95
  493. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  494. package/packages/tools/lib/server/release-writer.d.ts +46 -0
  495. package/packages/tools/lib/server/release-writer.d.ts.map +1 -0
  496. package/packages/tools/lib/server/release-writer.js +133 -0
  497. package/packages/tools/lib/server/release-writer.js.map +1 -0
  498. package/packages/tools/lib/server/rule-policy-writer.d.ts +17 -4
  499. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -1
  500. package/packages/tools/lib/server/rule-policy-writer.js +92 -7
  501. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -1
  502. package/packages/tools/lib/server/rule-service.d.ts +50 -0
  503. package/packages/tools/lib/server/rule-service.d.ts.map +1 -0
  504. package/packages/tools/lib/server/rule-service.js +89 -0
  505. package/packages/tools/lib/server/rule-service.js.map +1 -0
  506. package/packages/tools/lib/server/rule-writer.d.ts +87 -0
  507. package/packages/tools/lib/server/rule-writer.d.ts.map +1 -0
  508. package/packages/tools/lib/server/rule-writer.js +165 -0
  509. package/packages/tools/lib/server/rule-writer.js.map +1 -0
  510. package/packages/tools/lib/server/suspect-review.d.ts +11 -0
  511. package/packages/tools/lib/server/suspect-review.d.ts.map +1 -0
  512. package/packages/tools/lib/server/suspect-review.js +28 -0
  513. package/packages/tools/lib/server/suspect-review.js.map +1 -0
  514. package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
  515. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
  516. package/packages/tools/lib/server/sysml-notation.js +5 -0
  517. package/packages/tools/lib/server/sysml-notation.js.map +1 -1
  518. package/packages/tools/lib/server/user-preferences.d.ts +8 -0
  519. package/packages/tools/lib/server/user-preferences.d.ts.map +1 -0
  520. package/packages/tools/lib/server/user-preferences.js +47 -0
  521. package/packages/tools/lib/server/user-preferences.js.map +1 -0
  522. package/packages/tools/lib/server/version-servers.d.ts +60 -0
  523. package/packages/tools/lib/server/version-servers.d.ts.map +1 -0
  524. package/packages/tools/lib/server/version-servers.js +106 -0
  525. package/packages/tools/lib/server/version-servers.js.map +1 -0
  526. package/packages/tools/lib/server/view-layout-store.d.ts +28 -13
  527. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  528. package/packages/tools/lib/server/view-layout-store.js +106 -106
  529. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  530. package/packages/tools/lib/server/view-writer.d.ts +22 -2
  531. package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
  532. package/packages/tools/lib/server/view-writer.js +99 -44
  533. package/packages/tools/lib/server/view-writer.js.map +1 -1
  534. package/packages/tools/lib/server/write-guard.d.ts +7 -0
  535. package/packages/tools/lib/server/write-guard.d.ts.map +1 -0
  536. package/packages/tools/lib/server/write-guard.js +77 -0
  537. package/packages/tools/lib/server/write-guard.js.map +1 -0
  538. package/packages/tools/lib/stage2/api-model.d.ts +160 -0
  539. package/packages/tools/lib/stage2/api-model.d.ts.map +1 -0
  540. package/packages/tools/lib/stage2/api-model.js +341 -0
  541. package/packages/tools/lib/stage2/api-model.js.map +1 -0
  542. package/packages/tools/lib/stage2/build-from-api.d.ts +47 -0
  543. package/packages/tools/lib/stage2/build-from-api.d.ts.map +1 -0
  544. package/packages/tools/lib/stage2/build-from-api.js +1462 -0
  545. package/packages/tools/lib/stage2/build-from-api.js.map +1 -0
  546. package/packages/tools/lib/stage2/guide-from-api.d.ts +38 -0
  547. package/packages/tools/lib/stage2/guide-from-api.d.ts.map +1 -0
  548. package/packages/tools/lib/stage2/guide-from-api.js +97 -0
  549. package/packages/tools/lib/stage2/guide-from-api.js.map +1 -0
  550. package/packages/tools/lib/stage2/handoff-files.d.ts +13 -0
  551. package/packages/tools/lib/stage2/handoff-files.d.ts.map +1 -0
  552. package/packages/tools/lib/stage2/handoff-files.js +32 -0
  553. package/packages/tools/lib/stage2/handoff-files.js.map +1 -0
  554. package/packages/tools/lib/stage2/methodology-from-api.d.ts +10 -0
  555. package/packages/tools/lib/stage2/methodology-from-api.d.ts.map +1 -0
  556. package/packages/tools/lib/stage2/methodology-from-api.js +109 -0
  557. package/packages/tools/lib/stage2/methodology-from-api.js.map +1 -0
  558. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts +15 -0
  559. package/packages/tools/lib/stage2/package-metadata-from-api.d.ts.map +1 -0
  560. package/packages/tools/lib/stage2/package-metadata-from-api.js +238 -0
  561. package/packages/tools/lib/stage2/package-metadata-from-api.js.map +1 -0
  562. package/packages/tools/lib/stage2/project-from-api.d.ts +60 -0
  563. package/packages/tools/lib/stage2/project-from-api.d.ts.map +1 -0
  564. package/packages/tools/lib/stage2/project-from-api.js +328 -0
  565. package/packages/tools/lib/stage2/project-from-api.js.map +1 -0
  566. package/packages/tools/lib/stage2/registries-from-api.d.ts +68 -0
  567. package/packages/tools/lib/stage2/registries-from-api.d.ts.map +1 -0
  568. package/packages/tools/lib/stage2/registries-from-api.js +313 -0
  569. package/packages/tools/lib/stage2/registries-from-api.js.map +1 -0
  570. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts +26 -0
  571. package/packages/tools/lib/stage2/stage2-from-handoff.d.ts.map +1 -0
  572. package/packages/tools/lib/stage2/stage2-from-handoff.js +34 -0
  573. package/packages/tools/lib/stage2/stage2-from-handoff.js.map +1 -0
  574. package/packages/tools/lib/stage2/sysml-names.d.ts +9 -0
  575. package/packages/tools/lib/stage2/sysml-names.d.ts.map +1 -0
  576. package/packages/tools/lib/stage2/sysml-names.js +39 -0
  577. package/packages/tools/lib/stage2/sysml-names.js.map +1 -0
  578. package/packages/tools/lib/toolchain/default-registry.d.ts +2 -2
  579. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -1
  580. package/packages/tools/lib/toolchain/default-registry.js +9 -5
  581. package/packages/tools/lib/toolchain/default-registry.js.map +1 -1
  582. package/packages/tools/lib/toolchain/diagnostic.d.ts +2 -2
  583. package/packages/tools/lib/toolchain/diagnostic.js +1 -1
  584. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -1
  585. package/packages/tools/lib/toolchain/effective.d.ts +25 -17
  586. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -1
  587. package/packages/tools/lib/toolchain/effective.js +45 -40
  588. package/packages/tools/lib/toolchain/effective.js.map +1 -1
  589. package/packages/tools/lib/toolchain/exceptions.d.ts +27 -0
  590. package/packages/tools/lib/toolchain/exceptions.d.ts.map +1 -0
  591. package/packages/tools/lib/toolchain/exceptions.js +77 -0
  592. package/packages/tools/lib/toolchain/exceptions.js.map +1 -0
  593. package/packages/tools/lib/toolchain/index.d.ts +2 -2
  594. package/packages/tools/lib/toolchain/index.d.ts.map +1 -1
  595. package/packages/tools/lib/toolchain/index.js +2 -2
  596. package/packages/tools/lib/toolchain/index.js.map +1 -1
  597. package/packages/tools/lib/toolchain/operations.d.ts +45 -10
  598. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -1
  599. package/packages/tools/lib/toolchain/operations.js +107 -8
  600. package/packages/tools/lib/toolchain/operations.js.map +1 -1
  601. package/packages/tools/lib/toolchain/ownership.d.ts +13 -0
  602. package/packages/tools/lib/toolchain/ownership.d.ts.map +1 -0
  603. package/packages/tools/lib/toolchain/ownership.js +57 -0
  604. package/packages/tools/lib/toolchain/ownership.js.map +1 -0
  605. package/packages/tools/lib/toolchain/process.d.ts +2 -2
  606. package/packages/tools/lib/toolchain/process.js +2 -2
  607. package/packages/tools/lib/toolchain/project-config.d.ts +4 -0
  608. package/packages/tools/lib/toolchain/project-config.d.ts.map +1 -0
  609. package/packages/tools/lib/toolchain/project-config.js +13 -0
  610. package/packages/tools/lib/toolchain/project-config.js.map +1 -0
  611. package/packages/tools/lib/toolchain/project-model.d.ts +75 -0
  612. package/packages/tools/lib/toolchain/project-model.d.ts.map +1 -0
  613. package/packages/tools/lib/toolchain/project-model.js +92 -0
  614. package/packages/tools/lib/toolchain/project-model.js.map +1 -0
  615. package/packages/tools/lib/toolchain/providers/internal-package.d.ts +6 -0
  616. package/packages/tools/lib/toolchain/providers/internal-package.d.ts.map +1 -0
  617. package/packages/tools/lib/toolchain/providers/internal-package.js +47 -0
  618. package/packages/tools/lib/toolchain/providers/internal-package.js.map +1 -0
  619. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts +20 -0
  620. package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts.map +1 -0
  621. package/packages/tools/lib/toolchain/providers/opensysml-check.js +95 -0
  622. package/packages/tools/lib/toolchain/providers/opensysml-check.js.map +1 -0
  623. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts +17 -0
  624. package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts.map +1 -0
  625. package/packages/tools/lib/toolchain/providers/opensysml-compact.js +69 -0
  626. package/packages/tools/lib/toolchain/providers/opensysml-compact.js.map +1 -0
  627. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts +50 -0
  628. package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts.map +1 -0
  629. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js +646 -0
  630. package/packages/tools/lib/toolchain/providers/opensysml-lowering.js.map +1 -0
  631. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts +16 -0
  632. package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts.map +1 -0
  633. package/packages/tools/lib/toolchain/providers/opensysml-names.js +37 -0
  634. package/packages/tools/lib/toolchain/providers/opensysml-names.js.map +1 -0
  635. package/packages/tools/lib/toolchain/providers/opensysml.d.ts +88 -0
  636. package/packages/tools/lib/toolchain/providers/opensysml.d.ts.map +1 -0
  637. package/packages/tools/lib/toolchain/providers/opensysml.js +178 -0
  638. package/packages/tools/lib/toolchain/providers/opensysml.js.map +1 -0
  639. package/packages/tools/lib/toolchain/providers/recommended.d.ts +2 -0
  640. package/packages/tools/lib/toolchain/providers/recommended.d.ts.map +1 -0
  641. package/packages/tools/lib/toolchain/providers/recommended.js +13 -0
  642. package/packages/tools/lib/toolchain/providers/recommended.js.map +1 -0
  643. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts +60 -0
  644. package/packages/tools/lib/toolchain/providers/sysand-project.d.ts.map +1 -0
  645. package/packages/tools/lib/toolchain/providers/sysand-project.js +160 -0
  646. package/packages/tools/lib/toolchain/providers/sysand-project.js.map +1 -0
  647. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -1
  648. package/packages/tools/lib/toolchain/providers/sysand.js +26 -2
  649. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -1
  650. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts +29 -0
  651. package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts.map +1 -0
  652. package/packages/tools/lib/toolchain/providers/syside-lowering.js +497 -0
  653. package/packages/tools/lib/toolchain/providers/syside-lowering.js.map +1 -0
  654. package/packages/tools/lib/toolchain/providers/syside-python.d.ts +9 -0
  655. package/packages/tools/lib/toolchain/providers/syside-python.d.ts.map +1 -0
  656. package/packages/tools/lib/toolchain/providers/syside-python.js +69 -0
  657. package/packages/tools/lib/toolchain/providers/syside-python.js.map +1 -0
  658. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -1
  659. package/packages/tools/lib/toolchain/providers/syside.js +2 -0
  660. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -1
  661. package/packages/tools/lib/toolchain/registry.d.ts +118 -21
  662. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -1
  663. package/packages/tools/lib/toolchain/registry.js +18 -24
  664. package/packages/tools/lib/toolchain/registry.js.map +1 -1
  665. package/packages/tools/lib/toolchain/schema.d.ts +6 -5
  666. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -1
  667. package/packages/tools/lib/toolchain/schema.js +8 -13
  668. package/packages/tools/lib/toolchain/schema.js.map +1 -1
  669. package/packages/tools/lib/toolchain/shipped-library.d.ts +28 -0
  670. package/packages/tools/lib/toolchain/shipped-library.d.ts.map +1 -0
  671. package/packages/tools/lib/toolchain/shipped-library.js +120 -0
  672. package/packages/tools/lib/toolchain/shipped-library.js.map +1 -0
  673. package/packages/tools/lib/toolchain/source-fingerprint.d.ts +2 -0
  674. package/packages/tools/lib/toolchain/source-fingerprint.d.ts.map +1 -0
  675. package/packages/tools/lib/toolchain/source-fingerprint.js +30 -0
  676. package/packages/tools/lib/toolchain/source-fingerprint.js.map +1 -0
  677. package/packages/tools/lib/toolchain/user-settings-status.d.ts +51 -0
  678. package/packages/tools/lib/toolchain/user-settings-status.d.ts.map +1 -0
  679. package/packages/tools/lib/toolchain/user-settings-status.js +104 -0
  680. package/packages/tools/lib/toolchain/user-settings-status.js.map +1 -0
  681. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  682. package/packages/tools/lib/validator/architecture-validator.js +2 -1
  683. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  684. package/packages/tools/lib/validator/behavior-validator.js +1 -1
  685. package/packages/tools/lib/validator/behavior-validator.js.map +1 -1
  686. package/packages/tools/lib/validator/builtin-rules.js +1 -1
  687. package/packages/tools/lib/validator/builtin-rules.js.map +1 -1
  688. package/packages/tools/lib/validator/constraint-eval.d.ts +30 -4
  689. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  690. package/packages/tools/lib/validator/constraint-eval.js +101 -59
  691. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  692. package/packages/tools/lib/validator/constraint-loader-api.d.ts +22 -0
  693. package/packages/tools/lib/validator/constraint-loader-api.d.ts.map +1 -0
  694. package/packages/tools/lib/validator/constraint-loader-api.js +160 -0
  695. package/packages/tools/lib/validator/constraint-loader-api.js.map +1 -0
  696. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -18
  697. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  698. package/packages/tools/lib/validator/constraint-loader.js +33 -141
  699. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  700. package/packages/tools/lib/validator/rule-clauses.d.ts +51 -0
  701. package/packages/tools/lib/validator/rule-clauses.d.ts.map +1 -0
  702. package/packages/tools/lib/validator/rule-clauses.js +87 -0
  703. package/packages/tools/lib/validator/rule-clauses.js.map +1 -0
  704. package/packages/tools/lib/validator/rule-engine.d.ts +9 -1
  705. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  706. package/packages/tools/lib/validator/rule-engine.js +50 -6
  707. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  708. package/packages/tools/lib/validator/rule-registry.d.ts +4 -8
  709. package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -1
  710. package/packages/tools/lib/validator/rule-registry.js +42 -79
  711. package/packages/tools/lib/validator/rule-registry.js.map +1 -1
  712. package/packages/tools/lib/validator/rule-tailoring.d.ts +62 -0
  713. package/packages/tools/lib/validator/rule-tailoring.d.ts.map +1 -0
  714. package/packages/tools/lib/validator/rule-tailoring.js +85 -0
  715. package/packages/tools/lib/validator/rule-tailoring.js.map +1 -0
  716. package/packages/tools/lib/validator/types.d.ts +12 -1
  717. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  718. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts +9 -0
  719. package/packages/tools/lib/validator/workspace-boundary-validator.d.ts.map +1 -0
  720. package/packages/tools/lib/validator/workspace-boundary-validator.js +28 -0
  721. package/packages/tools/lib/validator/workspace-boundary-validator.js.map +1 -0
  722. package/packages/tools/python/memo_model.py +243 -0
  723. package/packages/tools/python/memo_stage1_syside.py +389 -0
  724. package/packages/tools/lib/commands/check.d.ts +0 -6
  725. package/packages/tools/lib/commands/check.d.ts.map +0 -1
  726. package/packages/tools/lib/commands/check.js +0 -191
  727. package/packages/tools/lib/commands/check.js.map +0 -1
  728. package/packages/tools/lib/commands/conformance.d.ts +0 -36
  729. package/packages/tools/lib/commands/conformance.d.ts.map +0 -1
  730. package/packages/tools/lib/commands/conformance.js +0 -212
  731. package/packages/tools/lib/commands/conformance.js.map +0 -1
  732. package/packages/tools/lib/commands/roundtrip.d.ts +0 -6
  733. package/packages/tools/lib/commands/roundtrip.d.ts.map +0 -1
  734. package/packages/tools/lib/commands/roundtrip.js +0 -145
  735. package/packages/tools/lib/commands/roundtrip.js.map +0 -1
  736. package/packages/tools/lib/conformance/baseline.d.ts +0 -26
  737. package/packages/tools/lib/conformance/baseline.d.ts.map +0 -1
  738. package/packages/tools/lib/conformance/baseline.js +0 -170
  739. package/packages/tools/lib/conformance/baseline.js.map +0 -1
  740. package/packages/tools/lib/conformance/bnf.d.ts +0 -84
  741. package/packages/tools/lib/conformance/bnf.d.ts.map +0 -1
  742. package/packages/tools/lib/conformance/bnf.js +0 -166
  743. package/packages/tools/lib/conformance/bnf.js.map +0 -1
  744. package/packages/tools/lib/conformance/corpus.d.ts +0 -125
  745. package/packages/tools/lib/conformance/corpus.d.ts.map +0 -1
  746. package/packages/tools/lib/conformance/corpus.js +0 -190
  747. package/packages/tools/lib/conformance/corpus.js.map +0 -1
  748. package/packages/tools/lib/conformance/diff-xmi.d.ts +0 -118
  749. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +0 -1
  750. package/packages/tools/lib/conformance/diff-xmi.js +0 -276
  751. package/packages/tools/lib/conformance/diff-xmi.js.map +0 -1
  752. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +0 -10
  753. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +0 -1
  754. package/packages/tools/lib/conformance/generated/syside-rules.js +0 -1142
  755. package/packages/tools/lib/conformance/generated/syside-rules.js.map +0 -1
  756. package/packages/tools/lib/conformance/index.d.ts +0 -7
  757. package/packages/tools/lib/conformance/index.d.ts.map +0 -1
  758. package/packages/tools/lib/conformance/index.js +0 -19
  759. package/packages/tools/lib/conformance/index.js.map +0 -1
  760. package/packages/tools/lib/conformance/run.d.ts +0 -117
  761. package/packages/tools/lib/conformance/run.d.ts.map +0 -1
  762. package/packages/tools/lib/conformance/run.js +0 -0
  763. package/packages/tools/lib/conformance/run.js.map +0 -1
  764. package/packages/tools/lib/conformance/xmi.d.ts +0 -45
  765. package/packages/tools/lib/conformance/xmi.d.ts.map +0 -1
  766. package/packages/tools/lib/conformance/xmi.js +0 -148
  767. package/packages/tools/lib/conformance/xmi.js.map +0 -1
  768. package/packages/tools/lib/language/generated/ast.d.ts +0 -3571
  769. package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
  770. package/packages/tools/lib/language/generated/ast.js +0 -2980
  771. package/packages/tools/lib/language/generated/ast.js.map +0 -1
  772. package/packages/tools/lib/language/generated/grammar.d.ts +0 -7
  773. package/packages/tools/lib/language/generated/grammar.d.ts.map +0 -1
  774. package/packages/tools/lib/language/generated/grammar.js +0 -10687
  775. package/packages/tools/lib/language/generated/grammar.js.map +0 -1
  776. package/packages/tools/lib/language/generated/module.d.ts +0 -14
  777. package/packages/tools/lib/language/generated/module.d.ts.map +0 -1
  778. package/packages/tools/lib/language/generated/module.js +0 -21
  779. package/packages/tools/lib/language/generated/module.js.map +0 -1
  780. package/packages/tools/lib/language/memo-sysml-module.d.ts +0 -24
  781. package/packages/tools/lib/language/memo-sysml-module.d.ts.map +0 -1
  782. package/packages/tools/lib/language/memo-sysml-module.js +0 -20
  783. package/packages/tools/lib/language/memo-sysml-module.js.map +0 -1
  784. package/packages/tools/lib/model/builder.d.ts +0 -27
  785. package/packages/tools/lib/model/builder.d.ts.map +0 -1
  786. package/packages/tools/lib/model/builder.js +0 -2112
  787. package/packages/tools/lib/model/builder.js.map +0 -1
  788. package/packages/tools/lib/model/package-registry.d.ts +0 -64
  789. package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
  790. package/packages/tools/lib/model/package-registry.js +0 -184
  791. package/packages/tools/lib/model/package-registry.js.map +0 -1
  792. package/packages/tools/lib/model/parser-utils.d.ts +0 -65
  793. package/packages/tools/lib/model/parser-utils.d.ts.map +0 -1
  794. package/packages/tools/lib/model/parser-utils.js +0 -201
  795. package/packages/tools/lib/model/parser-utils.js.map +0 -1
  796. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +0 -3
  797. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +0 -1
  798. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +0 -97
  799. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +0 -1
  800. package/packages/tools/lib/sysmlc/index.d.ts +0 -2
  801. package/packages/tools/lib/sysmlc/index.d.ts.map +0 -1
  802. package/packages/tools/lib/sysmlc/index.js +0 -7
  803. package/packages/tools/lib/sysmlc/index.js.map +0 -1
  804. package/packages/tools/lib/sysmlc/server.d.ts +0 -29
  805. package/packages/tools/lib/sysmlc/server.d.ts.map +0 -1
  806. package/packages/tools/lib/sysmlc/server.js +0 -168
  807. package/packages/tools/lib/sysmlc/server.js.map +0 -1
  808. package/packages/tools/lib/toolchain/lowering.d.ts +0 -63
  809. package/packages/tools/lib/toolchain/lowering.d.ts.map +0 -1
  810. package/packages/tools/lib/toolchain/lowering.js +0 -100
  811. package/packages/tools/lib/toolchain/lowering.js.map +0 -1
  812. package/packages/tools/lib/toolchain/providers/internal.d.ts +0 -33
  813. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +0 -1
  814. package/packages/tools/lib/toolchain/providers/internal.js +0 -286
  815. package/packages/tools/lib/toolchain/providers/internal.js.map +0 -1
  816. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +0 -77
  817. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +0 -1
  818. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  819. package/packages/tools/lib/toolchain/sysmlc-client.js.map +0 -1
  820. package/packages/tools/lib/validator/sysml-constraints.d.ts +0 -64
  821. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +0 -1
  822. package/packages/tools/lib/validator/sysml-constraints.js +0 -251
  823. package/packages/tools/lib/validator/sysml-constraints.js.map +0 -1
  824. package/packages/tools/src/grammar/memo-sysml.langium +0 -1064
@@ -0,0 +1,81 @@
1
+ import type { DiagramLayout } from '../protocol/messages.js';
2
+ /** The canvas fields the client keeps that `DiagramLayout` does not type. */
3
+ export type Canvas = NonNullable<DiagramLayout['canvas']> & {
4
+ coordinateSpace?: string;
5
+ layout?: {
6
+ provider: string;
7
+ providerVersion?: string;
8
+ contractVersion?: string;
9
+ preset?: string;
10
+ seed?: number;
11
+ };
12
+ };
13
+ type Scalar = string | number | boolean | {
14
+ literal: string;
15
+ } | number[];
16
+ /** One `@MemoLayout…` usage found in a view body. */
17
+ export interface LayoutStatement {
18
+ /** The metadata definition, e.g. `MemoLayoutNode`. */
19
+ definition: string;
20
+ values: Record<string, Scalar>;
21
+ /** Offsets into the scanned text: the `@` and one past the closing `}`. */
22
+ start: number;
23
+ end: number;
24
+ }
25
+ /** A `view` usage and the layout statements its body holds. */
26
+ export interface ScannedView {
27
+ /** `package::…::view`, which is the view element's id. */
28
+ id: string;
29
+ /** Offset of the first character after the opening `{`. */
30
+ bodyStart: number;
31
+ /** Offset of the closing `}`. */
32
+ bodyEnd: number;
33
+ statements: LayoutStatement[];
34
+ }
35
+ /**
36
+ * Walk SysML text and report each `view` usage with the layout statements in
37
+ * its body. Statements anywhere else (a part, a package) are not layout and are
38
+ * ignored here, so they survive untouched.
39
+ */
40
+ export declare function scanViewLayouts(text: string): ScannedView[];
41
+ /** The layout a view's statements describe, or null when it has none. */
42
+ export declare function layoutFromStatements(statements: readonly LayoutStatement[]): DiagramLayout | null;
43
+ /**
44
+ * The statements that state this layout, one per line, in a fixed order (so a
45
+ * drag changes only the lines of the boxes that moved). Empty when the layout
46
+ * holds nothing the model does not already say.
47
+ *
48
+ * Not written: the camera (`zoom`, `pan`), which is one person's window and not
49
+ * the drawing, and the IBD display toggles, which the view declares as its own
50
+ * attributes and which the canvas reads from there.
51
+ */
52
+ export declare function layoutToStatements(layout: DiagramLayout, indent: string): string[];
53
+ /** The text with every view's layout statements removed; the text itself when there are none. */
54
+ export declare function stripLayout(text: string): string;
55
+ /**
56
+ * The revision a source file is known by, ignoring layout.
57
+ *
58
+ * Every place that asks "has this file changed" — the rebuild check, the
59
+ * precondition on a semantic edit, the hash the client carries — uses this one
60
+ * function, so a layout save is invisible to all of them and a semantic change
61
+ * is visible to all of them.
62
+ */
63
+ export declare function layoutBlindRevision(text: string): string;
64
+ /** Layout of every view in a file, keyed by the view's id. Views with none are absent. */
65
+ export declare function readFileLayouts(text: string): Record<string, DiagramLayout>;
66
+ /**
67
+ * The text with one view's layout replaced. `layout` null (or one that holds
68
+ * nothing) removes the view's statements. Returns undefined when the file has
69
+ * no view of that id — a layout that cannot be written is not invented a home.
70
+ */
71
+ export declare function replaceViewLayout(text: string, viewId: string, layout: DiagramLayout | null): string | undefined;
72
+ /**
73
+ * The statements are typed by metadata definitions in the ontology's layout
74
+ * package, so the file that uses them must import it. Added once, to the file's
75
+ * outermost package, where every view in the file can see it; never removed,
76
+ * because other views in the file may use it and an unused import is harmless.
77
+ */
78
+ /** Whether the file already imports the package the statements are typed by. */
79
+ export declare function importsLayoutPackage(text: string): boolean;
80
+ export {};
81
+ //# sourceMappingURL=view-layout-block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-layout-block.d.ts","sourceRoot":"","sources":["../../src/model/view-layout-block.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAA2D,MAAM,yBAAyB,CAAC;AAItH,6EAA6E;AAC7E,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrH,CAAC;AACF,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAAC;AAEzE,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IACxB,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,eAAe,EAAE,CAAC;CACjC;AAQD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE3D;AA2JD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,aAAa,GAAG,IAAI,CAmGjG;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAqElF;AAuBD,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAQ3E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAgBhH;AAID;;;;;GAKG;AACH,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D"}
@@ -0,0 +1,525 @@
1
+ // ─── A view's layout, as the SysML written in the view ──────────────────────
2
+ //
3
+ // `@MemoLayout`, `@MemoLayoutNode`, `@MemoLayoutPort`, `@MemoLayoutPortWall`,
4
+ // `@MemoLayoutEdge` and `@MemoLayoutNote` (ontology: `memo_viewpoints_definitions_layout`) are
5
+ // metadata usages inside a `view` body. This module is the one reader and the one
6
+ // writer of them, in both directions between those statements and the
7
+ // `DiagramLayout` the canvas works with.
8
+ //
9
+ // It reads the TEXT, not the compiled model, on purpose. A layout is saved at
10
+ // the end of a drag, and a model read would need a recompile to see its own
11
+ // write; the text is current the moment it is written, it reads the same from a
12
+ // pinned worktree, and the compiler still checks every write (the statements are
13
+ // ordinary SysML, so a bad one is refused before it reaches disk).
14
+ //
15
+ // The reader is a scanner, not a SysML parser, and says so: it knows comments,
16
+ // strings, quoted names and brace nesting, enough to know which `view` a
17
+ // statement sits in and where the statement ends. It reads only the shape this
18
+ // module writes — `@MemoLayoutX { :>> name = value; … }`, with a literal, an
19
+ // enum literal or a parenthesised list of numbers as the value. Anything else in
20
+ // a view body is left exactly as it was.
21
+ //
22
+ // `layoutBlindRevision` is the other half of "a drag is not an edit": the hash a
23
+ // source file is known by ignores these statements, so moving a box neither
24
+ // triggers a rebuild nor makes the next semantic edit of that file look stale.
25
+ // ─────────────────────────────────────────────────────────────────────────────
26
+ import { createHash } from 'node:crypto';
27
+ const LAYOUT_PREFIX = 'MemoLayout';
28
+ const DECLARATION_PREFIXES = /^(?:(?:#[\w:]+|@[\w:]+)\s+)*(?:(?:private|protected|public|abstract|standard|library|variation|individual|ref|in|out|inout|readonly|derived|end|constant)\s+)*/;
29
+ const DECLARATION = /^([A-Za-z]+)\s+(?:def\s+)?(?:<[^>]*>\s*)?('(?:[^'\\]|\\.)*'|[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*)/;
30
+ /**
31
+ * Walk SysML text and report each `view` usage with the layout statements in
32
+ * its body. Statements anywhere else (a part, a package) are not layout and are
33
+ * ignored here, so they survive untouched.
34
+ */
35
+ export function scanViewLayouts(text) {
36
+ return scan(text).views;
37
+ }
38
+ function scan(text) {
39
+ const views = [];
40
+ let rootBodyStart;
41
+ const stack = [];
42
+ let header = '';
43
+ let i = 0;
44
+ const n = text.length;
45
+ const closeHeader = () => { header = ''; };
46
+ while (i < n) {
47
+ const c = text[i];
48
+ const next = text[i + 1];
49
+ // comments
50
+ if (c === '/' && next === '/') {
51
+ while (i < n && text[i] !== '\n')
52
+ i++;
53
+ continue;
54
+ }
55
+ if (c === '/' && next === '*') {
56
+ const end = text.indexOf('*/', i + 2);
57
+ i = end < 0 ? n : end + 2;
58
+ continue;
59
+ }
60
+ // strings and quoted names belong to the header text
61
+ if (c === '"' || c === "'") {
62
+ const end = skipQuoted(text, i);
63
+ header += text.slice(i, end);
64
+ i = end;
65
+ continue;
66
+ }
67
+ if (c === '@' && /MemoLayout/.test(text.slice(i + 1, i + 1 + LAYOUT_PREFIX.length + 1)) && inView(stack)) {
68
+ const statement = readStatement(text, i);
69
+ if (statement) {
70
+ stack[stack.length - 1].view.statements.push(statement);
71
+ i = statement.end;
72
+ closeHeader();
73
+ continue;
74
+ }
75
+ }
76
+ if (c === '{') {
77
+ const scope = scopeFor(header);
78
+ if (scope.isView) {
79
+ const parents = stack.map(s => s.name).filter(Boolean);
80
+ scope.view = {
81
+ id: [...parents, scope.name].join('::'),
82
+ bodyStart: i + 1, bodyEnd: i + 1, statements: [],
83
+ };
84
+ views.push(scope.view);
85
+ }
86
+ if (stack.length === 0 && rootBodyStart === undefined)
87
+ rootBodyStart = i + 1;
88
+ stack.push(scope);
89
+ closeHeader();
90
+ i++;
91
+ continue;
92
+ }
93
+ if (c === '}') {
94
+ const closed = stack.pop();
95
+ if (closed?.view)
96
+ closed.view.bodyEnd = i;
97
+ closeHeader();
98
+ i++;
99
+ continue;
100
+ }
101
+ if (c === ';') {
102
+ closeHeader();
103
+ i++;
104
+ continue;
105
+ }
106
+ header += c;
107
+ i++;
108
+ }
109
+ return { views, rootBodyStart };
110
+ }
111
+ const inView = (stack) => stack.length > 0 && stack[stack.length - 1].isView;
112
+ function scopeFor(header) {
113
+ const trimmed = header.trim().replace(DECLARATION_PREFIXES, '');
114
+ const match = DECLARATION.exec(trimmed);
115
+ if (!match)
116
+ return { name: '', isView: false };
117
+ const name = match[2].startsWith("'") ? match[2].slice(1, -1) : match[2];
118
+ const isDefinition = /^\w+\s+def\b/.test(trimmed);
119
+ return { name, isView: match[1] === 'view' && !isDefinition };
120
+ }
121
+ function skipQuoted(text, start) {
122
+ const quote = text[start];
123
+ let i = start + 1;
124
+ while (i < text.length && text[i] !== quote)
125
+ i += text[i] === '\\' ? 2 : 1;
126
+ return Math.min(i + 1, text.length);
127
+ }
128
+ /** `@MemoLayoutX { :>> a = 1; … }` starting at `start`, or undefined when it is not that shape. */
129
+ function readStatement(text, start) {
130
+ const head = /^@(MemoLayout\w*)\s*\{/.exec(text.slice(start, start + 64));
131
+ if (!head)
132
+ return undefined;
133
+ const bodyStart = start + head[0].length;
134
+ let i = bodyStart;
135
+ while (i < text.length && text[i] !== '}')
136
+ i += text[i] === '"' ? skipQuoted(text, i) - i : 1;
137
+ if (text[i] !== '}')
138
+ return undefined;
139
+ const values = parseAssignments(text.slice(bodyStart, i));
140
+ return values ? { definition: head[1], values, start, end: i + 1 } : undefined;
141
+ }
142
+ function parseAssignments(body) {
143
+ const values = {};
144
+ let i = 0;
145
+ const skipSpace = () => { while (i < body.length && /\s/.test(body[i]))
146
+ i++; };
147
+ for (;;) {
148
+ skipSpace();
149
+ if (i >= body.length)
150
+ return values;
151
+ const head = /^:>>\s*(\w+)\s*=\s*/.exec(body.slice(i));
152
+ if (!head)
153
+ return undefined;
154
+ i += head[0].length;
155
+ const parsed = readValue(body, i);
156
+ if (!parsed)
157
+ return undefined;
158
+ values[head[1]] = parsed.value;
159
+ i = parsed.end;
160
+ skipSpace();
161
+ if (body[i] !== ';')
162
+ return undefined;
163
+ i++;
164
+ }
165
+ }
166
+ function readValue(body, i) {
167
+ if (body[i] === '"') {
168
+ const end = skipQuoted(body, i);
169
+ return { value: unescapeString(body.slice(i + 1, end - 1)), end };
170
+ }
171
+ if (body[i] === '(') {
172
+ const close = body.indexOf(')', i);
173
+ if (close < 0)
174
+ return undefined;
175
+ const items = body.slice(i + 1, close).split(',').map(s => s.trim()).filter(Boolean);
176
+ const numbers = items.map(Number);
177
+ return numbers.some(Number.isNaN) ? undefined : { value: numbers, end: close + 1 };
178
+ }
179
+ const token = /^[^;\s]+/.exec(body.slice(i));
180
+ if (!token)
181
+ return undefined;
182
+ const raw = token[0];
183
+ const end = i + raw.length;
184
+ if (raw === 'true' || raw === 'false')
185
+ return { value: raw === 'true', end };
186
+ if (/^-?\d+(\.\d+)?([eE][-+]?\d+)?$/.test(raw))
187
+ return { value: Number(raw), end };
188
+ if (/^\w+(::\w+)+$/.test(raw))
189
+ return { value: { literal: raw.split('::').pop() }, end };
190
+ return undefined;
191
+ }
192
+ const unescapeString = (s) => s.replace(/\\(["\\nrt])/g, (_, ch) => ch === 'n' ? '\n' : ch === 'r' ? '\r' : ch === 't' ? '\t' : ch);
193
+ // ─── statements ⇄ DiagramLayout ──────────────────────────────────────────────
194
+ const str = (v) => typeof v === 'string' ? v : undefined;
195
+ const num = (v) => typeof v === 'number' ? v : undefined;
196
+ const bool = (v) => typeof v === 'boolean' ? v : undefined;
197
+ const lit = (v) => v && typeof v === 'object' && !Array.isArray(v) ? v.literal : undefined;
198
+ function put(target, key, value) {
199
+ if (value !== undefined)
200
+ target[key] = value;
201
+ }
202
+ /** The layout a view's statements describe, or null when it has none. */
203
+ export function layoutFromStatements(statements) {
204
+ if (statements.length === 0)
205
+ return null;
206
+ const layout = { nodes: {}, edges: {}, annotations: {} };
207
+ const canvas = {};
208
+ for (const { definition, values: v } of statements) {
209
+ switch (definition) {
210
+ case 'MemoLayout':
211
+ put(canvas, 'autoLayout', bool(v.autoLayout));
212
+ put(canvas, 'grid', num(v.grid));
213
+ put(canvas, 'snap', bool(v.snap));
214
+ put(canvas, 'coordinateSpace', str(v.coordinateSpace));
215
+ if (str(v.layoutProvider) !== undefined) {
216
+ canvas.layout = { provider: str(v.layoutProvider) };
217
+ put(canvas.layout, 'providerVersion', str(v.layoutProviderVersion));
218
+ put(canvas.layout, 'contractVersion', str(v.layoutContractVersion));
219
+ put(canvas.layout, 'preset', str(v.layoutPreset));
220
+ put(canvas.layout, 'seed', num(v.layoutSeed));
221
+ }
222
+ break;
223
+ case 'MemoLayoutNode': {
224
+ const id = str(v.element);
225
+ if (id === undefined)
226
+ break;
227
+ const node = layout.nodes[id] ?? { x: 0, y: 0, ports: {} };
228
+ node.x = num(v.x) ?? 0;
229
+ node.y = num(v.y) ?? 0;
230
+ // "" is the board; absent is a frame nobody recorded.
231
+ if (v.parentElement !== undefined)
232
+ node.parent = str(v.parentElement) || null;
233
+ put(node, 'width', num(v.width));
234
+ put(node, 'height', num(v.height));
235
+ put(node, 'color', str(v.fillColor));
236
+ put(node, 'borderColor', str(v.borderColor));
237
+ put(node, 'textColor', str(v.textColor));
238
+ put(node, 'fontSize', num(v.fontSize));
239
+ put(node, 'fontWeight', num(v.fontWeight));
240
+ put(node, 'textAlign', lit(v.textAlign));
241
+ put(node, 'verticalAlign', lit(v.verticalAlign));
242
+ put(node, 'opacity', num(v.opacity));
243
+ layout.nodes[id] = node;
244
+ break;
245
+ }
246
+ case 'MemoLayoutPort': {
247
+ const id = str(v.element);
248
+ const name = str(v.portName);
249
+ if (id === undefined || name === undefined)
250
+ break;
251
+ const node = layout.nodes[id] ?? (layout.nodes[id] = { x: 0, y: 0, ports: {} });
252
+ const port = { x: num(v.x) ?? 0, y: num(v.y) ?? 0 };
253
+ put(port, 'side', lit(v.side));
254
+ put(port, 'size', num(v.size));
255
+ (node.ports ??= {})[name] = port;
256
+ break;
257
+ }
258
+ case 'MemoLayoutPortWall': {
259
+ const port = str(v.portId);
260
+ const wall = lit(v.wall);
261
+ if (port && wall)
262
+ (canvas.portWalls ??= {})[port] = wall;
263
+ break;
264
+ }
265
+ case 'MemoLayoutEdge': {
266
+ const id = str(v.edge);
267
+ if (id === undefined)
268
+ break;
269
+ const edge = {};
270
+ put(edge, 'color', str(v.color));
271
+ put(edge, 'strokeWidth', num(v.strokeWidth));
272
+ put(edge, 'labelVisible', bool(v.labelVisible));
273
+ put(edge, 'style', lit(v.lineStyle));
274
+ const route = Array.isArray(v.route) ? v.route : [];
275
+ if (route.length >= 2) {
276
+ edge.points = [];
277
+ for (let k = 0; k + 1 < route.length; k += 2)
278
+ edge.points.push({ x: route[k], y: route[k + 1] });
279
+ }
280
+ put(edge, 'source', str(v.sourceElement));
281
+ put(edge, 'target', str(v.targetElement));
282
+ put(edge, 'sourcePortId', str(v.sourcePortId));
283
+ put(edge, 'targetPortId', str(v.targetPortId));
284
+ put(edge, 'manualLanding', bool(v.manualLanding));
285
+ put(edge, 'sourceSide', lit(v.sourceSide));
286
+ put(edge, 'sourceT', num(v.sourceT));
287
+ put(edge, 'targetSide', lit(v.targetSide));
288
+ put(edge, 'targetT', num(v.targetT));
289
+ layout.edges[id] = edge;
290
+ break;
291
+ }
292
+ case 'MemoLayoutNote': {
293
+ const id = str(v.noteId);
294
+ if (id === undefined)
295
+ break;
296
+ const note = {
297
+ kind: (str(v.noteKind) ?? 'note'),
298
+ x: num(v.x) ?? 0, y: num(v.y) ?? 0, text: str(v.text) ?? '',
299
+ };
300
+ put(note, 'width', num(v.width));
301
+ put(note, 'height', num(v.height));
302
+ put(note, 'color', str(v.fillColor));
303
+ layout.annotations[id] = note;
304
+ break;
305
+ }
306
+ }
307
+ }
308
+ if (Object.keys(canvas).length > 0)
309
+ layout.canvas = canvas;
310
+ return layout;
311
+ }
312
+ const round = (n) => {
313
+ const r = Math.round(n * 100) / 100;
314
+ return Object.is(r, -0) ? 0 : r;
315
+ };
316
+ const q = (s) => `"${s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\r/g, '\\r').replace(/\n/g, '\\n')}"`;
317
+ /** A hand-drawn route as x, y, x, y, …; absent unless every point is a finite pair. */
318
+ function routeLiteral(points) {
319
+ if (!Array.isArray(points) || points.length === 0)
320
+ return undefined;
321
+ const flat = points.flatMap(p => [p?.x, p?.y]);
322
+ return flat.every(v => typeof v === 'number' && Number.isFinite(v)) ? `(${flat.map(v => round(v)).join(', ')})` : undefined;
323
+ }
324
+ function statement(definition, fields, indent) {
325
+ const body = fields.filter(([, v]) => v !== undefined).map(([k, v]) => `:>> ${k} = ${v};`).join(' ');
326
+ return `${indent}@${definition} { ${body} }`;
327
+ }
328
+ // The layout comes from a client, so nothing in it is trusted to be SysML: a number
329
+ // that is not finite would be written as text no compiler reads, and an enum literal
330
+ // outside its set would not resolve. Such a value is left out, not repaired.
331
+ const n = (v) => typeof v === 'number' && Number.isFinite(v) ? String(round(v)) : undefined;
332
+ const s = (v) => typeof v === 'string' ? q(v) : undefined;
333
+ const b = (v) => typeof v === 'boolean' ? String(v) : undefined;
334
+ const SIDES = new Set(['top', 'bottom', 'left', 'right']);
335
+ const LINE_STYLES = new Set(['solid', 'dashed', 'dotted']);
336
+ const ALIGNS = new Set(['left', 'center', 'right']);
337
+ const VERTICAL_ALIGNS = new Set(['top', 'middle', 'bottom']);
338
+ const literal = (type, allowed, v) => typeof v === 'string' && allowed.has(v) ? `${type}::${v}` : undefined;
339
+ const side = (v) => literal('MemoLayoutSide', SIDES, v);
340
+ /**
341
+ * The statements that state this layout, one per line, in a fixed order (so a
342
+ * drag changes only the lines of the boxes that moved). Empty when the layout
343
+ * holds nothing the model does not already say.
344
+ *
345
+ * Not written: the camera (`zoom`, `pan`), which is one person's window and not
346
+ * the drawing, and the IBD display toggles, which the view declares as its own
347
+ * attributes and which the canvas reads from there.
348
+ */
349
+ export function layoutToStatements(layout, indent) {
350
+ const lines = [];
351
+ const canvas = layout.canvas;
352
+ const canvasFields = [
353
+ ['autoLayout', canvas?.autoLayout === false ? 'false' : undefined],
354
+ ['grid', n(canvas?.grid)],
355
+ ['snap', b(canvas?.snap)],
356
+ ['coordinateSpace', s(canvas?.coordinateSpace)],
357
+ ['layoutProvider', s(canvas?.layout?.provider)],
358
+ ['layoutProviderVersion', s(canvas?.layout?.providerVersion)],
359
+ ['layoutContractVersion', s(canvas?.layout?.contractVersion)],
360
+ ['layoutPreset', s(canvas?.layout?.preset)],
361
+ ['layoutSeed', n(canvas?.layout?.seed)],
362
+ ];
363
+ if (canvasFields.some(([, v]) => v !== undefined))
364
+ lines.push(statement('MemoLayout', canvasFields, indent));
365
+ for (const id of Object.keys(layout.nodes ?? {}).sort()) {
366
+ const node = layout.nodes[id];
367
+ if (n(node?.x) === undefined || n(node?.y) === undefined)
368
+ continue;
369
+ lines.push(statement('MemoLayoutNode', [
370
+ ['element', q(id)],
371
+ ['parentElement', node.parent === undefined ? undefined : q(typeof node.parent === 'string' ? node.parent : '')],
372
+ ['x', n(node.x)], ['y', n(node.y)],
373
+ ['width', n(node.width)], ['height', n(node.height)],
374
+ ['fillColor', s(node.color)], ['borderColor', s(node.borderColor)], ['textColor', s(node.textColor)],
375
+ ['fontSize', n(node.fontSize)], ['fontWeight', n(node.fontWeight)],
376
+ ['textAlign', literal('MemoLayoutAlign', ALIGNS, node.textAlign)],
377
+ ['verticalAlign', literal('MemoLayoutVerticalAlign', VERTICAL_ALIGNS, node.verticalAlign)],
378
+ ['opacity', n(node.opacity)],
379
+ ], indent));
380
+ for (const name of Object.keys(node.ports ?? {}).sort()) {
381
+ const port = node.ports[name];
382
+ if (n(port?.x) === undefined || n(port?.y) === undefined)
383
+ continue;
384
+ lines.push(statement('MemoLayoutPort', [
385
+ ['element', q(id)], ['portName', q(name)], ['x', n(port.x)], ['y', n(port.y)],
386
+ ['side', side(port.side)], ['size', n(port.size)],
387
+ ], indent));
388
+ }
389
+ }
390
+ for (const id of Object.keys(canvas?.portWalls ?? {}).sort()) {
391
+ lines.push(statement('MemoLayoutPortWall', [
392
+ ['portId', q(id)], ['wall', side(canvas.portWalls[id])],
393
+ ], indent));
394
+ }
395
+ for (const id of Object.keys(layout.edges ?? {}).sort()) {
396
+ const edge = layout.edges[id];
397
+ const fields = [
398
+ ['color', s(edge.color)], ['strokeWidth', n(edge.strokeWidth)], ['labelVisible', b(edge.labelVisible)],
399
+ ['lineStyle', literal('MemoLayoutLineStyle', LINE_STYLES, edge.style)],
400
+ ['route', routeLiteral(edge.points)],
401
+ ['sourceElement', s(edge.source)], ['targetElement', s(edge.target)],
402
+ ['sourcePortId', s(edge.sourcePortId)], ['targetPortId', s(edge.targetPortId)],
403
+ ['manualLanding', b(edge.manualLanding)],
404
+ ['sourceSide', side(edge.sourceSide)], ['sourceT', n(edge.sourceT)],
405
+ ['targetSide', side(edge.targetSide)], ['targetT', n(edge.targetT)],
406
+ ];
407
+ // An edge entry that overrides nothing says nothing.
408
+ if (fields.every(([, v]) => v === undefined))
409
+ continue;
410
+ lines.push(statement('MemoLayoutEdge', [['edge', q(id)], ...fields], indent));
411
+ }
412
+ for (const id of Object.keys(layout.annotations ?? {}).sort()) {
413
+ const note = layout.annotations[id];
414
+ if (typeof note?.kind !== 'string' || n(note.x) === undefined || n(note.y) === undefined)
415
+ continue;
416
+ lines.push(statement('MemoLayoutNote', [
417
+ ['noteId', q(id)], ['noteKind', q(note.kind)], ['x', n(note.x)], ['y', n(note.y)],
418
+ ['width', n(note.width)], ['height', n(note.height)], ['text', q(note.text)], ['fillColor', s(note.color)],
419
+ ], indent));
420
+ }
421
+ return lines;
422
+ }
423
+ // ─── editing a source file ───────────────────────────────────────────────────
424
+ /** Remove every layout statement, with the line it sits on when it is alone there. */
425
+ function removeStatements(text, statements) {
426
+ let out = text;
427
+ for (const st of [...statements].sort((a, z) => z.start - a.start)) {
428
+ let from = st.start;
429
+ let to = st.end;
430
+ const lineStart = out.lastIndexOf('\n', from - 1) + 1;
431
+ const lineEnd = out.indexOf('\n', to);
432
+ const before = out.slice(lineStart, from);
433
+ const after = out.slice(to, lineEnd < 0 ? out.length : lineEnd);
434
+ if (/^[ \t]*$/.test(before) && /^[ \t\r]*$/.test(after)) {
435
+ from = lineStart;
436
+ to = lineEnd < 0 ? out.length : lineEnd + 1;
437
+ }
438
+ out = out.slice(0, from) + out.slice(to);
439
+ }
440
+ return out;
441
+ }
442
+ /** The text with every view's layout statements removed; the text itself when there are none. */
443
+ export function stripLayout(text) {
444
+ if (!text.includes('@MemoLayout'))
445
+ return text;
446
+ const statements = scanViewLayouts(text).flatMap(view => view.statements);
447
+ return statements.length === 0 ? text : removeStatements(text, statements);
448
+ }
449
+ /**
450
+ * The revision a source file is known by, ignoring layout.
451
+ *
452
+ * Every place that asks "has this file changed" — the rebuild check, the
453
+ * precondition on a semantic edit, the hash the client carries — uses this one
454
+ * function, so a layout save is invisible to all of them and a semantic change
455
+ * is visible to all of them.
456
+ */
457
+ export function layoutBlindRevision(text) {
458
+ return createHash('sha256').update(stripLayout(text)).digest('hex').slice(0, 16);
459
+ }
460
+ /** Layout of every view in a file, keyed by the view's id. Views with none are absent. */
461
+ export function readFileLayouts(text) {
462
+ const layouts = {};
463
+ if (!text.includes('@MemoLayout'))
464
+ return layouts;
465
+ for (const view of scanViewLayouts(text)) {
466
+ const layout = layoutFromStatements(view.statements);
467
+ if (layout)
468
+ layouts[view.id] = layout;
469
+ }
470
+ return layouts;
471
+ }
472
+ /**
473
+ * The text with one view's layout replaced. `layout` null (or one that holds
474
+ * nothing) removes the view's statements. Returns undefined when the file has
475
+ * no view of that id — a layout that cannot be written is not invented a home.
476
+ */
477
+ export function replaceViewLayout(text, viewId, layout) {
478
+ const view = scanViewLayouts(text).find(candidate => candidate.id === viewId);
479
+ if (!view)
480
+ return undefined;
481
+ const bodyIndent = indentOfBody(text, view);
482
+ const lines = layout ? layoutToStatements(layout, bodyIndent) : [];
483
+ const without = removeStatements(text, view.statements);
484
+ if (lines.length === 0)
485
+ return without;
486
+ // Re-find the view: its offsets moved when the old statements went.
487
+ const rescanned = scanViewLayouts(without).find(candidate => candidate.id === viewId);
488
+ const closeLineStart = without.lastIndexOf('\n', rescanned.bodyEnd - 1) + 1;
489
+ const closeIsOwnLine = /^[ \t]*$/.test(without.slice(closeLineStart, rescanned.bodyEnd));
490
+ const block = lines.join('\n');
491
+ const inserted = closeIsOwnLine
492
+ ? `${without.slice(0, closeLineStart)}${block}\n${without.slice(closeLineStart)}`
493
+ : `${without.slice(0, rescanned.bodyEnd)}\n${block}\n${without.slice(rescanned.bodyEnd)}`;
494
+ return withLayoutImport(inserted);
495
+ }
496
+ const LAYOUT_PACKAGE = 'memo_viewpoints_definitions_layout';
497
+ /**
498
+ * The statements are typed by metadata definitions in the ontology's layout
499
+ * package, so the file that uses them must import it. Added once, to the file's
500
+ * outermost package, where every view in the file can see it; never removed,
501
+ * because other views in the file may use it and an unused import is harmless.
502
+ */
503
+ /** Whether the file already imports the package the statements are typed by. */
504
+ export function importsLayoutPackage(text) {
505
+ return new RegExp(`\\bimport\\s+${LAYOUT_PACKAGE}::`).test(text);
506
+ }
507
+ function withLayoutImport(text) {
508
+ if (importsLayoutPackage(text))
509
+ return text;
510
+ const { rootBodyStart } = scan(text);
511
+ if (rootBodyStart === undefined)
512
+ return text;
513
+ const lineStart = text.lastIndexOf('\n', rootBodyStart - 1) + 1;
514
+ const indent = `${/^[ \t]*/.exec(text.slice(lineStart))[0]} `;
515
+ return `${text.slice(0, rootBodyStart)}\n${indent}private import ${LAYOUT_PACKAGE}::*;${text.slice(rootBodyStart)}`;
516
+ }
517
+ /** The indentation the view's other members use, else one level in from the view. */
518
+ function indentOfBody(text, view) {
519
+ const firstMember = /\n([ \t]+)\S/.exec(text.slice(view.bodyStart, view.bodyEnd));
520
+ if (firstMember)
521
+ return firstMember[1];
522
+ const declStart = text.lastIndexOf('\n', view.bodyStart) + 1;
523
+ return `${/^[ \t]*/.exec(text.slice(declStart))[0]} `;
524
+ }
525
+ //# sourceMappingURL=view-layout-block.js.map