@memoarchitect/tools 0.13.0 → 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 -267
  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 +129 -30
  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 -3565
  769. package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
  770. package/packages/tools/lib/language/generated/ast.js +0 -2975
  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 -10643
  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 -2103
  787. package/packages/tools/lib/model/builder.js.map +0 -1
  788. package/packages/tools/lib/model/package-registry.d.ts +0 -62
  789. package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
  790. package/packages/tools/lib/model/package-registry.js +0 -175
  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 -1056
@@ -0,0 +1,57 @@
1
+ import type { MEMOConfig } from '../model/config.js';
2
+ import type { IrIdentityIndex } from '../model/ir-identity.js';
3
+ import type { ApiModel } from '../stage2/api-model.js';
4
+ import { type ProjectModel } from '../toolchain/project-model.js';
5
+ import { type SourceOutline } from './source-outline.js';
6
+ /** The outline of one project file, given its current text. */
7
+ export interface OutlineSource {
8
+ /**
9
+ * The outline of a file as it is on disk. `file` is project-relative.
10
+ * Rejects with a message when the text is not one the selected compiler
11
+ * accepts: there is no outline to edit then.
12
+ */
13
+ outline(file: string, text: string): Promise<SourceOutline>;
14
+ /**
15
+ * Compile the project with `text` in place of the file, before it reaches
16
+ * disk. Rejects with the compiler's diagnostics when it does not accept
17
+ * the result: an edit that would make the project invalid SysML is not
18
+ * written. `also` is every other file the same edit changes, project-relative,
19
+ * since an edit that spans files is valid only as a whole: one file alone can
20
+ * leave a reference to what another file's edit removed. Gives the outline of
21
+ * the text when the compile states one;
22
+ * OpenSysML's verdict on a content document does not, since stating it
23
+ * would cost a conversion of the whole model.
24
+ */
25
+ verify(file: string, text: string, also?: ReadonlyMap<string, string>): Promise<SourceOutline | undefined>;
26
+ }
27
+ /**
28
+ * Outlines from a handoff, recompiling when a file changed since it was
29
+ * compiled. `texts` are the files' contents as that compile read them.
30
+ */
31
+ export declare function handoffOutlineSource(options: {
32
+ projectRoot: string;
33
+ config: MEMOConfig;
34
+ api: ApiModel;
35
+ texts: ReadonlyMap<string, string>;
36
+ }): OutlineSource;
37
+ /**
38
+ * The outline source of the selected compiler, for a caller holding no loaded
39
+ * project: the project loads on first use, reusing `.memo/stage1/` when
40
+ * nothing changed.
41
+ */
42
+ export declare function selectedOutlineSource(projectRoot: string, config: MEMOConfig): OutlineSource;
43
+ /** The outline source for a loaded project: its compiler's. */
44
+ export declare function outlineSourceFor(projectRoot: string, config: MEMOConfig, project: ProjectModel): OutlineSource;
45
+ /** The outlines of every project file of a loaded project. */
46
+ export declare function projectOutlines(projectRoot: string, project: ProjectModel): SourceOutline[];
47
+ /** The outlines of a handoff's project files, read against the files on disk. */
48
+ export declare function outlinesFromHandoff(projectRoot: string, api: ApiModel): SourceOutline[];
49
+ /**
50
+ * The identity index a write resolves against: every declaration with an
51
+ * identity, and each element's.
52
+ */
53
+ export declare function outlineIdentityIndex(outlines: readonly SourceOutline[], elements: Iterable<{
54
+ id: string;
55
+ file?: string;
56
+ }>, projectRoot: string): IrIdentityIndex;
57
+ //# sourceMappingURL=outline-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline-source.d.ts","sourceRoot":"","sources":["../../src/authoring/outline-source.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMzG,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE3F,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC9G;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,GAAG,aAAa,CAoBhB;AA0ED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,CAY5F;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,CAE9G;AAiCD,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE3F;AASD,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,aAAa,EAAE,CAWvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,QAAQ,EAAE,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACjD,WAAW,EAAE,MAAM,GACpB,eAAe,CAQjB"}
@@ -0,0 +1,203 @@
1
+ // ─── Outlines of a project, from whichever compiler is selected ─────────────
2
+ //
3
+ // A write resolves its identity against the outline of the file as it is on
4
+ // disk now (plans/memo-write-back-from-handoff.md). That is the last handoff,
5
+ // when the file is unchanged since that compile, and otherwise a fresh compile:
6
+ // an outline read from a handoff of other bytes would put every range in the
7
+ // wrong place.
8
+ // ─────────────────────────────────────────────────────────────────────────────
9
+ import { createHash } from 'node:crypto';
10
+ import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
11
+ import { tmpdir } from 'node:os';
12
+ import { basename, dirname, isAbsolute, join, relative, resolve } from 'node:path';
13
+ import { loadProjectModel, Stage1RejectedError } from '../toolchain/project-model.js';
14
+ import { resolveToolchain } from '../toolchain/effective.js';
15
+ import { defaultRegistry } from '../toolchain/default-registry.js';
16
+ import { OPENSYSML_PROVIDER_ID } from '../toolchain/providers/opensysml.js';
17
+ import { checkWithOpenSysML } from '../toolchain/providers/opensysml-check.js';
18
+ import { outlineIdentities, outlineIdentityTable } from './outline-identity.js';
19
+ import { emptyOutline, outlineFromHandoff } from './source-outline.js';
20
+ const sha = (text) => createHash('sha256').update(text).digest('hex');
21
+ /**
22
+ * Outlines from a handoff, recompiling when a file changed since it was
23
+ * compiled. `texts` are the files' contents as that compile read them.
24
+ */
25
+ export function handoffOutlineSource(options) {
26
+ let { api } = options;
27
+ let hashes = new Map([...options.texts].map(([file, text]) => [file, sha(text)]));
28
+ return {
29
+ async outline(file, text) {
30
+ // An empty file declares nothing, whether or not it was compiled.
31
+ if (!text.trim())
32
+ return emptyOutline(file, text);
33
+ if (hashes.get(file) !== sha(text)) {
34
+ const project = await loadProjectModel({ projectRoot: options.projectRoot, config: options.config });
35
+ if (!project.api)
36
+ throw new Error(`${project.compiler} built no handoff to outline ${file} from`);
37
+ api = project.api;
38
+ hashes = new Map([...projectTexts(options.projectRoot, project)].map(([f, t]) => [f, sha(t)]));
39
+ if (hashes.get(file) !== sha(text)) {
40
+ throw new Error(`${file} changed while it was being compiled; repeat the edit`);
41
+ }
42
+ }
43
+ return outlineFromHandoff(api, resolve(options.projectRoot, file), file, text);
44
+ },
45
+ verify: (file, text, also) => verifyWithSelected(options.projectRoot, options.config, file, text, also),
46
+ };
47
+ }
48
+ /**
49
+ * Verify an edit with the selected compiler: OpenSysML compiles the edited
50
+ * text as a content document, any other compiler a scratch copy of the
51
+ * project.
52
+ */
53
+ function verifyWithSelected(projectRoot, config, file, text, also) {
54
+ return resolveToolchain(config, defaultRegistry).lowering === OPENSYSML_PROVIDER_ID
55
+ ? verifyAsContent(projectRoot, config, file, text, also)
56
+ : verifyInScratchCopy(projectRoot, config, file, text, also);
57
+ }
58
+ /** OpenSysML's verdict on the project with the file's text replaced, read without writing it. */
59
+ async function verifyAsContent(projectRoot, config, file, text, also) {
60
+ const absolute = resolve(projectRoot, file);
61
+ const replaced = new Map([...(also ?? [])].map(([path, content]) => [resolve(projectRoot, path), content]));
62
+ replaced.set(absolute, text);
63
+ const errors = await checkWithOpenSysML(config, projectRoot, replaced);
64
+ if (errors.length > 0) {
65
+ const where = (d) => `${d.file ? relativeTo(projectRoot, resolve(projectRoot, d.file)) : file}:${d.range?.start.line ?? '?'}`;
66
+ throw new Error(`opensysml rejects the updated ${file}: ${errors.slice(0, 3).map(d => `${where(d)} ${d.message}`).join('; ')}`);
67
+ }
68
+ return undefined;
69
+ }
70
+ /** What a scratch copy of a project leaves out: tool state and dependencies, which are linked. */
71
+ const NOT_COPIED = new Set(['.memo', '.git', 'node_modules']);
72
+ /**
73
+ * Compile the project with one file's text replaced, in a scratch copy of the
74
+ * project: every stage 1 compiler reads its documents from disk, and the
75
+ * project's own file must not change until the edit is known to be valid.
76
+ * The libraries are not copied; the copy resolves them as the project does.
77
+ */
78
+ async function verifyInScratchCopy(projectRoot, config, file, text, also) {
79
+ const scratch = realpathSync(mkdtempSync(join(tmpdir(), 'memo-verify-')));
80
+ try {
81
+ cpSync(projectRoot, scratch, {
82
+ recursive: true,
83
+ filter: source => !NOT_COPIED.has(basename(source)) || source === projectRoot,
84
+ });
85
+ const modules = join(projectRoot, 'node_modules');
86
+ if (existsSync(modules))
87
+ symlinkSync(modules, join(scratch, 'node_modules'), 'dir');
88
+ for (const [path, content] of [...(also ?? []), [file, text]]) {
89
+ const target = join(scratch, path);
90
+ mkdirSync(dirname(target), { recursive: true });
91
+ writeFileSync(target, content, 'utf8');
92
+ }
93
+ const target = join(scratch, file);
94
+ let project;
95
+ try {
96
+ project = await loadProjectModel({ projectRoot: scratch, config, cache: false });
97
+ }
98
+ catch (e) {
99
+ if (e instanceof Stage1RejectedError) {
100
+ const errors = e.diagnostics.filter(d => d.severity === 'error')
101
+ .map(d => `${d.file ? relative(scratch, resolve(scratch, d.file)) : file}:${d.range?.start.line ?? '?'} ${d.message}`);
102
+ throw new Error(`${e.compiler} rejects the updated ${file}: ${errors.slice(0, 3).join('; ')}`);
103
+ }
104
+ throw e;
105
+ }
106
+ if (!project.api)
107
+ throw new Error(`${project.compiler} built no handoff to verify ${file} with`);
108
+ return outlineFromHandoff(project.api, target, file, text);
109
+ }
110
+ finally {
111
+ rmSync(scratch, { recursive: true, force: true });
112
+ }
113
+ }
114
+ /**
115
+ * The outline source of the selected compiler, for a caller holding no loaded
116
+ * project: the project loads on first use, reusing `.memo/stage1/` when
117
+ * nothing changed.
118
+ */
119
+ export function selectedOutlineSource(projectRoot, config) {
120
+ let loaded;
121
+ const source = () => (loaded ??= loadProjectModel({ projectRoot, config })
122
+ .then(project => outlineSourceFor(projectRoot, config, project)));
123
+ return {
124
+ async outline(file, text) {
125
+ return (await source()).outline(file, text);
126
+ },
127
+ async verify(file, text) {
128
+ return verifyWithSelected(projectRoot, config, file, text);
129
+ },
130
+ };
131
+ }
132
+ /** The outline source for a loaded project: its compiler's. */
133
+ export function outlineSourceFor(projectRoot, config, project) {
134
+ return handoffOutlineSource({ projectRoot, config, api: project.api, texts: projectTexts(projectRoot, project) });
135
+ }
136
+ /** The project's own files and their text, by project-relative path. */
137
+ function projectTexts(projectRoot, project) {
138
+ const texts = new Map();
139
+ for (const file of projectFilesOf(project.api, projectRoot)) {
140
+ if (existsSync(file))
141
+ texts.set(relative(projectRoot, file), readFileSync(file, 'utf8'));
142
+ }
143
+ return texts;
144
+ }
145
+ /**
146
+ * The absolute files of the project's own documents: the handoff's project
147
+ * documents, and those of a library root inside the project directory (a
148
+ * project's `methodology/`), which the handoff marks as library documents but
149
+ * which are the project's files to edit. A library outside it is not.
150
+ */
151
+ function projectFilesOf(api, projectRoot) {
152
+ const root = resolve(projectRoot);
153
+ const inProject = (file) => !relative(root, file).startsWith('..') && !isAbsolute(relative(root, file));
154
+ const files = new Set();
155
+ for (const [file, namespaces] of api.rootNamespacesByFile()) {
156
+ for (const namespace of namespaces) {
157
+ const role = api.source(namespace['@id'])?.role;
158
+ if (role === 'project' || (role === 'library' && inProject(resolve(file))))
159
+ files.add(file);
160
+ }
161
+ }
162
+ return [...files];
163
+ }
164
+ const relativeTo = (projectRoot, file) => (isAbsolute(file) ? relative(projectRoot, file) : file).replaceAll('\\', '/');
165
+ /** The outlines of every project file of a loaded project. */
166
+ export function projectOutlines(projectRoot, project) {
167
+ return outlinesFromHandoff(projectRoot, project.api);
168
+ }
169
+ /**
170
+ * An outline kept with the document it was read from: a document the last
171
+ * compile did not convert keeps its element objects, so the same root
172
+ * namespace and the same text give the same outline.
173
+ */
174
+ const keptOutlines = new WeakMap();
175
+ /** The outlines of a handoff's project files, read against the files on disk. */
176
+ export function outlinesFromHandoff(projectRoot, api) {
177
+ return projectFilesOf(api, projectRoot).filter(file => existsSync(file)).map(file => {
178
+ const name = relativeTo(projectRoot, file);
179
+ const text = readFileSync(file, 'utf8');
180
+ const roots = api.rootNamespacesIn(file);
181
+ const kept = roots.length > 0 ? keptOutlines.get(roots[0]) : undefined;
182
+ if (kept && kept.name === name && kept.text === text && kept.roots === roots.length)
183
+ return kept.outline;
184
+ const outline = outlineFromHandoff(api, file, name, text);
185
+ if (roots.length > 0)
186
+ keptOutlines.set(roots[0], { name, text, roots: roots.length, outline });
187
+ return outline;
188
+ });
189
+ }
190
+ /**
191
+ * The identity index a write resolves against: every declaration with an
192
+ * identity, and each element's.
193
+ */
194
+ export function outlineIdentityIndex(outlines, elements, projectRoot) {
195
+ const byMemoElement = outlineIdentityTable(outlines, elements, projectRoot);
196
+ const elementOf = new Map(Object.entries(byMemoElement).map(([element, identity]) => [identity, element]));
197
+ const byIdentity = new Map();
198
+ for (const [identity, { node }] of outlineIdentities(outlines)) {
199
+ byIdentity.set(identity, { identity: { id: identity, metaclass: node.metaclass }, memoElementId: elementOf.get(identity) });
200
+ }
201
+ return { byMemoElement, byIdentity };
202
+ }
203
+ //# sourceMappingURL=outline-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline-source.js","sourceRoot":"","sources":["../../src/authoring/outline-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ApiModel } from '../stage2/api-model.js';
2
+ /** What a writer does with a member: regenerate it, carry it, or address it. */
3
+ export type OutlineRole = 'package' | 'attribute' | 'doc' | 'metadata' | 'expose' | 'import' | 'connection' | 'declaration';
4
+ export interface OutlineNode {
5
+ /** The SysML metaclass, as the API names it: `PartUsage`, `AttributeUsage`, `Package`. */
6
+ metaclass: string;
7
+ role: OutlineRole;
8
+ /** The name the declaration declares, when it declares one. */
9
+ name?: string;
10
+ /**
11
+ * What addresses the declaration within its file: its owner's key and its
12
+ * name — its qualified name, for a declaration in named owners — or, when
13
+ * it declares no name, its place among the anonymous declarations of its
14
+ * metaclass there (`P::@ConnectionUsage[1]`). A redefinition
15
+ * (`attribute :>> x`) is named by the feature it redefines.
16
+ */
17
+ key: string;
18
+ /** Offset of the declaration's first character. */
19
+ start: number;
20
+ /** Offset just past its last character. */
21
+ end: number;
22
+ /** Offset just past the body's `{`, and the offset of its `}`. */
23
+ body?: {
24
+ open: number;
25
+ close: number;
26
+ };
27
+ members: OutlineNode[];
28
+ /** The features a metadata annotation sets (`providedId`, `label`). */
29
+ fields: string[];
30
+ }
31
+ export interface SourceOutline {
32
+ /** The file, as the caller named it. */
33
+ file: string;
34
+ text: string;
35
+ roots: OutlineNode[];
36
+ }
37
+ /** Every node of an outline, depth first in source order. */
38
+ export declare function outlineNodes(outline: SourceOutline | readonly OutlineNode[]): Generator<OutlineNode>;
39
+ /**
40
+ * The members written inside a declaration's body. A compiler also places
41
+ * features it reads from the declaration's head under it — the ends of
42
+ * `connect a to b`, a flow's payload — and a writer must never move those.
43
+ */
44
+ export declare function bodyMembers(node: OutlineNode): OutlineNode[];
45
+ /**
46
+ * The braces of a declaration's body: the first `{` at the top level of its
47
+ * text and the `}` that closes it, skipping strings and comments. Undefined for
48
+ * a declaration that ends in `;`.
49
+ */
50
+ export declare function findBody(text: string, start: number, end: number): {
51
+ open: number;
52
+ close: number;
53
+ } | undefined;
54
+ /**
55
+ * The outline of one file from a handoff that compiled it.
56
+ *
57
+ * `absoluteFile` names the file as the handoff's index resolves it; `text` is
58
+ * the file's bytes at the time of that compile, which the caller checks.
59
+ * Elements the handoff gives no range — the ones a compiler implies rather than
60
+ * reads — are not declarations; their ranged members are kept under the
61
+ * nearest ranged owner.
62
+ */
63
+ export declare function outlineFromHandoff(api: ApiModel, absoluteFile: string, file: string, text: string): SourceOutline;
64
+ /**
65
+ * The outline of one file from MEMO's parse of it: the same facts, read from
66
+ * the syntax tree, so the writers work alike under MEMO's compiler. `root` is
67
+ * the parsed document's model.
68
+ */
69
+ export declare function outlineFromParse(root: {
70
+ members?: unknown[];
71
+ }, file: string, text: string): SourceOutline;
72
+ /**
73
+ * The outline of the text after replacing `[from, to)` with `inserted`, without
74
+ * compiling it: a declaration inside the replaced range is gone, one after it
75
+ * moves by the length difference, and one around it grows or shrinks. A writer
76
+ * that removes a declaration and then inserts elsewhere in the same text needs
77
+ * the outline of a text no compiler has seen.
78
+ */
79
+ export declare function spliceOutline(outline: SourceOutline, from: number, to: number, inserted: string): SourceOutline;
80
+ /** An outline with nothing in it: the outline of an empty or new file. */
81
+ export declare function emptyOutline(file: string, text?: string): SourceOutline;
82
+ //# sourceMappingURL=source-outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-outline.d.ts","sourceRoot":"","sources":["../../src/authoring/source-outline.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEnE,gFAAgF;AAChF,MAAM,MAAM,WAAW,GACjB,SAAS,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAC;AAExG,MAAM,WAAW,WAAW;IACxB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,uEAAuE;IACvE,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,6DAA6D;AAC7D,wBAAiB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAOrG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAI5D;AAqBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA6B9G;AAgDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAgCjH;AAmCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAuBzG;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiB/G;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,aAAa,CAEnE"}
@@ -0,0 +1,267 @@
1
+ // ─── Source outline ──────────────────────────────────────────────────────────
2
+ //
3
+ // What a write-back needs to know about a file, and no more: where each
4
+ // declaration is, what it is called, where its body opens and closes, and its
5
+ // members (plans/memo-write-back-from-handoff.md). The writers used to read
6
+ // these from MEMO's syntax tree, which tied them to MEMO's grammar. An outline
7
+ // is built from a stage 1 handoff — every element states its byte range and
8
+ // qualified name — or, while MEMO's compiler exists, from MEMO's parse; the
9
+ // writers read the outline either way.
10
+ //
11
+ // Offsets are JavaScript string offsets into the file's text, the unit a splice
12
+ // is made in. A handoff states byte offsets; they are converted here.
13
+ // ─────────────────────────────────────────────────────────────────────────────
14
+ /** Every node of an outline, depth first in source order. */
15
+ export function* outlineNodes(outline) {
16
+ const stack = [...('roots' in outline ? outline.roots : outline)].reverse();
17
+ while (stack.length > 0) {
18
+ const node = stack.pop();
19
+ yield node;
20
+ stack.push(...[...node.members].reverse());
21
+ }
22
+ }
23
+ /**
24
+ * The members written inside a declaration's body. A compiler also places
25
+ * features it reads from the declaration's head under it — the ends of
26
+ * `connect a to b`, a flow's payload — and a writer must never move those.
27
+ */
28
+ export function bodyMembers(node) {
29
+ const body = node.body;
30
+ if (!body)
31
+ return [];
32
+ return node.members.filter(member => member.start >= body.open && member.end <= body.close);
33
+ }
34
+ // ─── Roles ───────────────────────────────────────────────────────────────────
35
+ const CONNECTIONS = new Set([
36
+ 'ConnectionUsage', 'InterfaceUsage', 'AllocationUsage', 'FlowUsage', 'SuccessionFlowUsage',
37
+ ]);
38
+ function roleOf(metaclass) {
39
+ if (metaclass === 'Package' || metaclass === 'LibraryPackage')
40
+ return 'package';
41
+ if (metaclass === 'AttributeUsage')
42
+ return 'attribute';
43
+ if (metaclass === 'Documentation')
44
+ return 'doc';
45
+ if (metaclass === 'MetadataUsage')
46
+ return 'metadata';
47
+ if (metaclass.endsWith('Expose'))
48
+ return 'expose';
49
+ if (metaclass.endsWith('Import'))
50
+ return 'import';
51
+ if (CONNECTIONS.has(metaclass))
52
+ return 'connection';
53
+ return 'declaration';
54
+ }
55
+ // ─── Bodies ──────────────────────────────────────────────────────────────────
56
+ /**
57
+ * The braces of a declaration's body: the first `{` at the top level of its
58
+ * text and the `}` that closes it, skipping strings and comments. Undefined for
59
+ * a declaration that ends in `;`.
60
+ */
61
+ export function findBody(text, start, end) {
62
+ let depth = 0;
63
+ let open = -1;
64
+ for (let i = start; i < end; i++) {
65
+ const c = text[i];
66
+ if (c === '"' || c === "'") {
67
+ for (i++; i < end && text[i] !== c; i++)
68
+ if (text[i] === '\\')
69
+ i++;
70
+ continue;
71
+ }
72
+ if (c === '/' && text[i + 1] === '/') {
73
+ while (i < end && text[i] !== '\n')
74
+ i++;
75
+ continue;
76
+ }
77
+ if (c === '/' && text[i + 1] === '*') {
78
+ const close = text.indexOf('*/', i + 2);
79
+ i = close < 0 ? end : close + 1;
80
+ continue;
81
+ }
82
+ if (c === '{') {
83
+ if (depth === 0 && open < 0)
84
+ open = i;
85
+ depth++;
86
+ }
87
+ else if (c === '}') {
88
+ depth--;
89
+ if (depth === 0 && open >= 0)
90
+ return { open: open + 1, close: i };
91
+ }
92
+ else if (c === ';' && depth === 0 && open < 0) {
93
+ return undefined;
94
+ }
95
+ }
96
+ return undefined;
97
+ }
98
+ /** Turn raw nodes into outline nodes, keying each under its owner. */
99
+ function finish(text, raws, ownerKey) {
100
+ const anonymous = new Map();
101
+ return raws.map(raw => {
102
+ let key;
103
+ if (raw.name)
104
+ key = ownerKey ? `${ownerKey}::${raw.name}` : raw.name;
105
+ else {
106
+ const n = anonymous.get(raw.metaclass) ?? 0;
107
+ anonymous.set(raw.metaclass, n + 1);
108
+ key = `${ownerKey ? `${ownerKey}::` : ''}@${raw.metaclass}[${n}]`;
109
+ }
110
+ return {
111
+ metaclass: raw.metaclass,
112
+ role: roleOf(raw.metaclass),
113
+ ...(raw.name ? { name: raw.name } : {}),
114
+ key,
115
+ start: raw.start,
116
+ end: raw.end,
117
+ ...(() => { const body = findBody(text, raw.start, raw.end); return body ? { body } : {}; })(),
118
+ members: finish(text, raw.members, key),
119
+ fields: raw.fields,
120
+ };
121
+ });
122
+ }
123
+ // ─── From a stage 1 handoff ──────────────────────────────────────────────────
124
+ /** Byte offset → string offset, for one file's text. */
125
+ function byteToChar(text) {
126
+ // eslint-disable-next-line no-control-regex
127
+ if (!/[^\u0000-\u007f]/.test(text))
128
+ return byte => byte;
129
+ const bytes = Buffer.from(text, 'utf8');
130
+ return byte => bytes.subarray(0, byte).toString('utf8').length;
131
+ }
132
+ /**
133
+ * The outline of one file from a handoff that compiled it.
134
+ *
135
+ * `absoluteFile` names the file as the handoff's index resolves it; `text` is
136
+ * the file's bytes at the time of that compile, which the caller checks.
137
+ * Elements the handoff gives no range — the ones a compiler implies rather than
138
+ * reads — are not declarations; their ranged members are kept under the
139
+ * nearest ranged owner.
140
+ */
141
+ export function outlineFromHandoff(api, absoluteFile, file, text) {
142
+ const toChar = byteToChar(text);
143
+ const ranged = (element) => {
144
+ const entry = api.source(element['@id']);
145
+ return entry?.startByte !== undefined && entry.endByte !== undefined ? entry : undefined;
146
+ };
147
+ const visit = (element) => {
148
+ const entry = ranged(element);
149
+ const metaclass = String(element['@type']);
150
+ // A metadata annotation's fields are `fields`, not declarations.
151
+ const children = metaclass === 'MetadataUsage' ? [] : api.ownedMembers(element['@id']).flatMap(visit);
152
+ if (!entry)
153
+ return children;
154
+ return [{
155
+ metaclass,
156
+ // `attribute :>> x = …` declares no name; the name it is written
157
+ // with is the feature it redefines. `variant x;` is written with
158
+ // the name of the feature it references.
159
+ name: api.name(element['@id']) ?? variantName(api, element),
160
+ start: toChar(entry.startByte),
161
+ end: toChar(entry.endByte),
162
+ members: children,
163
+ fields: metaclass === 'MetadataUsage'
164
+ ? api.ownedMembers(element['@id']).map(m => api.name(m['@id'])).filter((n) => Boolean(n))
165
+ : [],
166
+ }];
167
+ };
168
+ const roots = [];
169
+ for (const namespace of api.rootNamespacesIn(absoluteFile)) {
170
+ for (const member of api.ownedMembers(namespace['@id']))
171
+ roots.push(...visit(member));
172
+ }
173
+ roots.sort((a, b) => a.start - b.start);
174
+ return { file, text, roots: finish(text, roots, '') };
175
+ }
176
+ /** The name of the feature `variant x;` references: a variant member declares none. */
177
+ function variantName(api, element) {
178
+ const owning = api.element(String(element.owningRelationship?.['@id'] ?? ''));
179
+ if (owning?.['@type'] !== 'VariantMembership')
180
+ return undefined;
181
+ const referenced = api.related(element['@id'], ['ReferenceSubsetting'], 'referencedFeature')[0];
182
+ return referenced ? api.name(referenced['@id']) : undefined;
183
+ }
184
+ // ─── From MEMO's parse ───────────────────────────────────────────────────────
185
+ /** MEMO's syntax-tree node types that do not carry the metaclass's own name. */
186
+ const PARSE_METACLASS = {
187
+ PackageDeclaration: 'Package',
188
+ PartMember: 'PartUsage',
189
+ AttributeMember: 'AttributeUsage',
190
+ RefMember: 'ReferenceUsage',
191
+ DocComment: 'Documentation',
192
+ MetadataApplication: 'MetadataUsage',
193
+ PrefixMetadataAnnotation: 'MetadataUsage',
194
+ ExposeMember: 'NamespaceExpose',
195
+ ImportDeclaration: 'NamespaceImport',
196
+ EnumDefinition: 'EnumerationDefinition',
197
+ EnumLiteral: 'EnumerationUsage',
198
+ FlowConnectionUsage: 'FlowUsage',
199
+ AllocateUsage: 'AllocationUsage',
200
+ MessageUsage: 'FlowUsage',
201
+ BindingUsage: 'BindingConnectorAsUsage',
202
+ SuccessionUsage: 'SuccessionAsUsage',
203
+ ActorMember: 'PartUsage',
204
+ StakeholderMember: 'PartUsage',
205
+ SubjectMember: 'ReferenceUsage',
206
+ };
207
+ /**
208
+ * The outline of one file from MEMO's parse of it: the same facts, read from
209
+ * the syntax tree, so the writers work alike under MEMO's compiler. `root` is
210
+ * the parsed document's model.
211
+ */
212
+ export function outlineFromParse(root, file, text) {
213
+ // A key is the owner's key and the declared name, as `finish` makes it.
214
+ const visit = (node) => {
215
+ const cst = node?.$cstNode;
216
+ if (!node || typeof node !== 'object' || !node.$type || !cst)
217
+ return [];
218
+ const metaclass = PARSE_METACLASS[node.$type] ?? node.$type;
219
+ const name = typeof node.name === 'string' ? node.name : undefined;
220
+ // A metadata annotation's fields are `fields`, not declarations.
221
+ const children = metaclass === 'MetadataUsage' ? []
222
+ : [...(node.members ?? []), ...(node.body ?? []), ...(node.usageBody ?? [])].flatMap(visit);
223
+ return [{
224
+ metaclass,
225
+ name,
226
+ start: cst.offset,
227
+ end: cst.offset + cst.length,
228
+ members: children,
229
+ fields: metaclass === 'MetadataUsage'
230
+ ? (node.body ?? []).map((field) => field.name).filter(Boolean)
231
+ : [],
232
+ }];
233
+ };
234
+ const roots = (root.members ?? []).flatMap(visit);
235
+ return { file, text, roots: finish(text, roots, '') };
236
+ }
237
+ // ─── Editing an outline with its text ────────────────────────────────────────
238
+ /**
239
+ * The outline of the text after replacing `[from, to)` with `inserted`, without
240
+ * compiling it: a declaration inside the replaced range is gone, one after it
241
+ * moves by the length difference, and one around it grows or shrinks. A writer
242
+ * that removes a declaration and then inserts elsewhere in the same text needs
243
+ * the outline of a text no compiler has seen.
244
+ */
245
+ export function spliceOutline(outline, from, to, inserted) {
246
+ const delta = inserted.length - (to - from);
247
+ const moved = (offset) => (offset >= to ? offset + delta : offset);
248
+ const map = (nodes) => nodes
249
+ .filter(node => !(to > from && node.start >= from && node.end <= to))
250
+ .map(node => ({
251
+ ...node,
252
+ start: moved(node.start),
253
+ end: moved(node.end),
254
+ ...(node.body ? { body: { open: moved(node.body.open), close: moved(node.body.close) } } : {}),
255
+ members: map(node.members),
256
+ }));
257
+ return {
258
+ ...outline,
259
+ text: outline.text.slice(0, from) + inserted + outline.text.slice(to),
260
+ roots: map(outline.roots),
261
+ };
262
+ }
263
+ /** An outline with nothing in it: the outline of an empty or new file. */
264
+ export function emptyOutline(file, text = '') {
265
+ return { file, text, roots: [] };
266
+ }
267
+ //# sourceMappingURL=source-outline.js.map