@terra-graph/core 1.0.0-rc.4

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 (596) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/Graph/Adapter.d.ts +8 -0
  4. package/dist/cjs/Graph/Adapter.js +5 -0
  5. package/dist/cjs/Graph/Adapters/DotAdapter.d.ts +17 -0
  6. package/dist/cjs/Graph/Adapters/DotAdapter.js +31 -0
  7. package/dist/cjs/Graph/Adapters/DotAdapter.test.d.ts +1 -0
  8. package/dist/cjs/Graph/Adapters/DotAdapter.test.js +45 -0
  9. package/dist/cjs/Graph/Adapters/GraphologyAdapter.d.ts +36 -0
  10. package/dist/cjs/Graph/Adapters/GraphologyAdapter.js +273 -0
  11. package/dist/cjs/Graph/Adapters/GraphologyAdapter.test.d.ts +1 -0
  12. package/dist/cjs/Graph/Adapters/GraphologyAdapter.test.js +561 -0
  13. package/dist/cjs/Graph/Adapters/index.d.ts +2 -0
  14. package/dist/cjs/Graph/Adapters/index.js +18 -0
  15. package/dist/cjs/Graph/GraphPlugin.d.ts +53 -0
  16. package/dist/cjs/Graph/GraphPlugin.js +223 -0
  17. package/dist/cjs/Graph/GraphPlugin.test.d.ts +1 -0
  18. package/dist/cjs/Graph/GraphPlugin.test.js +831 -0
  19. package/dist/cjs/Graph/GraphResolver.d.ts +21 -0
  20. package/dist/cjs/Graph/GraphResolver.js +80 -0
  21. package/dist/cjs/Graph/GraphResolver.test.d.ts +1 -0
  22. package/dist/cjs/Graph/GraphResolver.test.js +273 -0
  23. package/dist/cjs/Graph/Importer.d.ts +7 -0
  24. package/dist/cjs/Graph/Importer.js +2 -0
  25. package/dist/cjs/Graph/Importers/TerraformDotImporter.d.ts +12 -0
  26. package/dist/cjs/Graph/Importers/TerraformDotImporter.js +245 -0
  27. package/dist/cjs/Graph/Importers/TerraformDotImporter.test.d.ts +1 -0
  28. package/dist/cjs/Graph/Importers/TerraformDotImporter.test.js +343 -0
  29. package/dist/cjs/Graph/Importers/index.d.ts +1 -0
  30. package/dist/cjs/Graph/Importers/index.js +17 -0
  31. package/dist/cjs/Graph/Operations/Matchers/NodeMatchFn.d.ts +3 -0
  32. package/dist/cjs/Graph/Operations/Matchers/NodeMatchFn.js +2 -0
  33. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/NodeQuery.d.ts +21 -0
  34. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/NodeQuery.js +143 -0
  35. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/NodeQuery.test.d.ts +1 -0
  36. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/NodeQuery.test.js +308 -0
  37. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/QuerySchema.d.ts +155 -0
  38. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/QuerySchema.js +67 -0
  39. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/QuerySchema.test.d.ts +1 -0
  40. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/QuerySchema.test.js +51 -0
  41. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/index.d.ts +2 -0
  42. package/dist/cjs/Graph/Operations/Matchers/NodeQuery/index.js +18 -0
  43. package/dist/cjs/Graph/Operations/Matchers/index.d.ts +2 -0
  44. package/dist/cjs/Graph/Operations/Matchers/index.js +18 -0
  45. package/dist/cjs/Graph/Operations/Operations.d.ts +21 -0
  46. package/dist/cjs/Graph/Operations/Operations.js +2 -0
  47. package/dist/cjs/Graph/Operations/index.d.ts +2 -0
  48. package/dist/cjs/Graph/Operations/index.js +18 -0
  49. package/dist/cjs/Graph/Profile.d.ts +55 -0
  50. package/dist/cjs/Graph/Profile.js +223 -0
  51. package/dist/cjs/Graph/Profile.test.d.ts +1 -0
  52. package/dist/cjs/Graph/Profile.test.js +841 -0
  53. package/dist/cjs/Graph/ProfileRegistry.d.ts +18 -0
  54. package/dist/cjs/Graph/ProfileRegistry.js +61 -0
  55. package/dist/cjs/Graph/ProfileRegistry.test.d.ts +1 -0
  56. package/dist/cjs/Graph/ProfileRegistry.test.js +98 -0
  57. package/dist/cjs/Graph/Renderer.d.ts +9 -0
  58. package/dist/cjs/Graph/Renderer.js +2 -0
  59. package/dist/cjs/Graph/Renderers/DotRenderer.d.ts +27 -0
  60. package/dist/cjs/Graph/Renderers/DotRenderer.js +186 -0
  61. package/dist/cjs/Graph/Renderers/DotRenderer.test.d.ts +1 -0
  62. package/dist/cjs/Graph/Renderers/DotRenderer.test.js +1143 -0
  63. package/dist/cjs/Graph/Renderers/JsonRenderer.d.ts +5 -0
  64. package/dist/cjs/Graph/Renderers/JsonRenderer.js +13 -0
  65. package/dist/cjs/Graph/Renderers/JsonRenderer.test.d.ts +1 -0
  66. package/dist/cjs/Graph/Renderers/JsonRenderer.test.js +29 -0
  67. package/dist/cjs/Graph/Renderers/RendererRegistry.d.ts +15 -0
  68. package/dist/cjs/Graph/Renderers/RendererRegistry.js +33 -0
  69. package/dist/cjs/Graph/Renderers/RendererRegistry.test.d.ts +1 -0
  70. package/dist/cjs/Graph/Renderers/RendererRegistry.test.js +39 -0
  71. package/dist/cjs/Graph/Renderers/TgNodeLabel.d.ts +11 -0
  72. package/dist/cjs/Graph/Renderers/TgNodeLabel.js +43 -0
  73. package/dist/cjs/Graph/Renderers/TgNodeLabel.test.d.ts +1 -0
  74. package/dist/cjs/Graph/Renderers/TgNodeLabel.test.js +76 -0
  75. package/dist/cjs/Graph/Renderers/index.d.ts +4 -0
  76. package/dist/cjs/Graph/Renderers/index.js +20 -0
  77. package/dist/cjs/Graph/RuleError.d.ts +12 -0
  78. package/dist/cjs/Graph/RuleError.js +19 -0
  79. package/dist/cjs/Graph/RuleError.test.d.ts +1 -0
  80. package/dist/cjs/Graph/RuleError.test.js +25 -0
  81. package/dist/cjs/Graph/Rules/Edge/AlignNodes.d.ts +7 -0
  82. package/dist/cjs/Graph/Rules/Edge/AlignNodes.js +39 -0
  83. package/dist/cjs/Graph/Rules/Edge/AlignNodes.test.d.ts +1 -0
  84. package/dist/cjs/Graph/Rules/Edge/AlignNodes.test.js +194 -0
  85. package/dist/cjs/Graph/Rules/Edge/EdgeDirectionSemantic.d.ts +8 -0
  86. package/dist/cjs/Graph/Rules/Edge/EdgeDirectionSemantic.js +78 -0
  87. package/dist/cjs/Graph/Rules/Edge/EdgeDirectionSemantic.test.d.ts +1 -0
  88. package/dist/cjs/Graph/Rules/Edge/EdgeDirectionSemantic.test.js +454 -0
  89. package/dist/cjs/Graph/Rules/Edge/EdgeDotProperties.d.ts +9 -0
  90. package/dist/cjs/Graph/Rules/Edge/EdgeDotProperties.js +50 -0
  91. package/dist/cjs/Graph/Rules/Edge/EdgeDotProperties.test.d.ts +1 -0
  92. package/dist/cjs/Graph/Rules/Edge/EdgeDotProperties.test.js +333 -0
  93. package/dist/cjs/Graph/Rules/Edge/EdgeLegend.d.ts +8 -0
  94. package/dist/cjs/Graph/Rules/Edge/EdgeLegend.js +47 -0
  95. package/dist/cjs/Graph/Rules/Edge/EdgeLegend.test.d.ts +1 -0
  96. package/dist/cjs/Graph/Rules/Edge/EdgeLegend.test.js +186 -0
  97. package/dist/cjs/Graph/Rules/Edge/EdgeReverse.d.ts +6 -0
  98. package/dist/cjs/Graph/Rules/Edge/EdgeReverse.js +30 -0
  99. package/dist/cjs/Graph/Rules/Edge/EdgeReverse.test.d.ts +1 -0
  100. package/dist/cjs/Graph/Rules/Edge/EdgeReverse.test.js +134 -0
  101. package/dist/cjs/Graph/Rules/Edge/EdgeSemanticLegend.d.ts +8 -0
  102. package/dist/cjs/Graph/Rules/Edge/EdgeSemanticLegend.js +72 -0
  103. package/dist/cjs/Graph/Rules/Edge/EdgeSemanticLegend.test.d.ts +1 -0
  104. package/dist/cjs/Graph/Rules/Edge/EdgeSemanticLegend.test.js +511 -0
  105. package/dist/cjs/Graph/Rules/Edge/ExplicitEdge.d.ts +6 -0
  106. package/dist/cjs/Graph/Rules/Edge/ExplicitEdge.js +28 -0
  107. package/dist/cjs/Graph/Rules/Edge/ExplicitEdge.test.d.ts +1 -0
  108. package/dist/cjs/Graph/Rules/Edge/ExplicitEdge.test.js +125 -0
  109. package/dist/cjs/Graph/Rules/Edge/RemoveEdge.d.ts +6 -0
  110. package/dist/cjs/Graph/Rules/Edge/RemoveEdge.js +28 -0
  111. package/dist/cjs/Graph/Rules/Edge/RemoveEdge.test.d.ts +1 -0
  112. package/dist/cjs/Graph/Rules/Edge/RemoveEdge.test.js +135 -0
  113. package/dist/cjs/Graph/Rules/Edge/index.d.ts +8 -0
  114. package/dist/cjs/Graph/Rules/Edge/index.js +24 -0
  115. package/dist/cjs/Graph/Rules/NamedRuleRegistry.d.ts +20 -0
  116. package/dist/cjs/Graph/Rules/NamedRuleRegistry.js +71 -0
  117. package/dist/cjs/Graph/Rules/NamedRuleRegistry.test.d.ts +1 -0
  118. package/dist/cjs/Graph/Rules/NamedRuleRegistry.test.js +243 -0
  119. package/dist/cjs/Graph/Rules/NamedRuleSetRegistry.d.ts +19 -0
  120. package/dist/cjs/Graph/Rules/NamedRuleSetRegistry.js +62 -0
  121. package/dist/cjs/Graph/Rules/NamedRuleSetRegistry.test.d.ts +1 -0
  122. package/dist/cjs/Graph/Rules/NamedRuleSetRegistry.test.js +80 -0
  123. package/dist/cjs/Graph/Rules/Node/ConvertNodeToEdge.d.ts +6 -0
  124. package/dist/cjs/Graph/Rules/Node/ConvertNodeToEdge.js +32 -0
  125. package/dist/cjs/Graph/Rules/Node/ConvertNodeToEdge.test.d.ts +1 -0
  126. package/dist/cjs/Graph/Rules/Node/ConvertNodeToEdge.test.js +152 -0
  127. package/dist/cjs/Graph/Rules/Node/NodeDotProperties.d.ts +9 -0
  128. package/dist/cjs/Graph/Rules/Node/NodeDotProperties.js +43 -0
  129. package/dist/cjs/Graph/Rules/Node/NodeDotProperties.test.d.ts +1 -0
  130. package/dist/cjs/Graph/Rules/Node/NodeDotProperties.test.js +226 -0
  131. package/dist/cjs/Graph/Rules/Node/NodeProperties.d.ts +12 -0
  132. package/dist/cjs/Graph/Rules/Node/NodeProperties.js +81 -0
  133. package/dist/cjs/Graph/Rules/Node/NodeProperties.test.d.ts +1 -0
  134. package/dist/cjs/Graph/Rules/Node/NodeProperties.test.js +371 -0
  135. package/dist/cjs/Graph/Rules/Node/RemoveLeafChain.d.ts +12 -0
  136. package/dist/cjs/Graph/Rules/Node/RemoveLeafChain.js +82 -0
  137. package/dist/cjs/Graph/Rules/Node/RemoveLeafChain.test.d.ts +1 -0
  138. package/dist/cjs/Graph/Rules/Node/RemoveLeafChain.test.js +399 -0
  139. package/dist/cjs/Graph/Rules/Node/RemoveNode.d.ts +6 -0
  140. package/dist/cjs/Graph/Rules/Node/RemoveNode.js +14 -0
  141. package/dist/cjs/Graph/Rules/Node/RemoveNode.test.d.ts +1 -0
  142. package/dist/cjs/Graph/Rules/Node/RemoveNode.test.js +33 -0
  143. package/dist/cjs/Graph/Rules/Node/RemoveNodeAndReconnectEdges.d.ts +6 -0
  144. package/dist/cjs/Graph/Rules/Node/RemoveNodeAndReconnectEdges.js +38 -0
  145. package/dist/cjs/Graph/Rules/Node/RemoveNodeAndReconnectEdges.test.d.ts +1 -0
  146. package/dist/cjs/Graph/Rules/Node/RemoveNodeAndReconnectEdges.test.js +113 -0
  147. package/dist/cjs/Graph/Rules/Node/index.d.ts +6 -0
  148. package/dist/cjs/Graph/Rules/Node/index.js +22 -0
  149. package/dist/cjs/Graph/Rules/Rule.d.ts +40 -0
  150. package/dist/cjs/Graph/Rules/Rule.js +91 -0
  151. package/dist/cjs/Graph/Rules/Rule.test.d.ts +1 -0
  152. package/dist/cjs/Graph/Rules/Rule.test.js +127 -0
  153. package/dist/cjs/Graph/Rules/RuleConfig.d.ts +20 -0
  154. package/dist/cjs/Graph/Rules/RuleConfig.js +2 -0
  155. package/dist/cjs/Graph/Rules/RulePlan.d.ts +27 -0
  156. package/dist/cjs/Graph/Rules/RulePlan.js +28 -0
  157. package/dist/cjs/Graph/Rules/RuleSet.d.ts +25 -0
  158. package/dist/cjs/Graph/Rules/RuleSet.js +89 -0
  159. package/dist/cjs/Graph/Rules/RuleSet.test.d.ts +1 -0
  160. package/dist/cjs/Graph/Rules/RuleSet.test.js +222 -0
  161. package/dist/cjs/Graph/Rules/index.d.ts +8 -0
  162. package/dist/cjs/Graph/Rules/index.js +24 -0
  163. package/dist/cjs/Graph/Rules/registerAll.d.ts +14 -0
  164. package/dist/cjs/Graph/Rules/registerAll.js +16 -0
  165. package/dist/cjs/Graph/Serialization/Registry.d.ts +5 -0
  166. package/dist/cjs/Graph/Serialization/Registry.js +2 -0
  167. package/dist/cjs/Graph/Serialization/index.d.ts +1 -0
  168. package/dist/cjs/Graph/Serialization/index.js +17 -0
  169. package/dist/cjs/Graph/TgGraph.d.ts +82 -0
  170. package/dist/cjs/Graph/TgGraph.js +55 -0
  171. package/dist/cjs/Graph/TgGraph.test.d.ts +1 -0
  172. package/dist/cjs/Graph/TgGraph.test.js +61 -0
  173. package/dist/cjs/Graph/index.d.ts +15 -0
  174. package/dist/cjs/Graph/index.js +31 -0
  175. package/dist/cjs/Output/ArtifactTransformer/DotCliArtifactTransformer.d.ts +25 -0
  176. package/dist/cjs/Output/ArtifactTransformer/DotCliArtifactTransformer.js +86 -0
  177. package/dist/cjs/Output/ArtifactTransformer/DotCliArtifactTransformer.test.d.ts +1 -0
  178. package/dist/cjs/Output/ArtifactTransformer/DotCliArtifactTransformer.test.js +200 -0
  179. package/dist/cjs/Output/ArtifactTransformer/index.d.ts +1 -0
  180. package/dist/cjs/Output/ArtifactTransformer/index.js +17 -0
  181. package/dist/cjs/Output/ArtifactTransformer.d.ts +7 -0
  182. package/dist/cjs/Output/ArtifactTransformer.js +2 -0
  183. package/dist/cjs/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.d.ts +17 -0
  184. package/dist/cjs/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.js +78 -0
  185. package/dist/cjs/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.test.d.ts +1 -0
  186. package/dist/cjs/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.test.js +80 -0
  187. package/dist/cjs/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.d.ts +9 -0
  188. package/dist/cjs/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.js +80 -0
  189. package/dist/cjs/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.test.d.ts +1 -0
  190. package/dist/cjs/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.test.js +156 -0
  191. package/dist/cjs/Output/ArtifactTransformerFactory/index.d.ts +2 -0
  192. package/dist/cjs/Output/ArtifactTransformerFactory/index.js +18 -0
  193. package/dist/cjs/Output/ArtifactTransformerFactory.d.ts +10 -0
  194. package/dist/cjs/Output/ArtifactTransformerFactory.js +2 -0
  195. package/dist/cjs/Output/ArtifactWriter/FileArtifactWriter.d.ts +9 -0
  196. package/dist/cjs/Output/ArtifactWriter/FileArtifactWriter.js +25 -0
  197. package/dist/cjs/Output/ArtifactWriter/FileArtifactWriter.test.d.ts +1 -0
  198. package/dist/cjs/Output/ArtifactWriter/FileArtifactWriter.test.js +77 -0
  199. package/dist/cjs/Output/ArtifactWriter/StdoutArtifactWriter.d.ts +6 -0
  200. package/dist/cjs/Output/ArtifactWriter/StdoutArtifactWriter.js +17 -0
  201. package/dist/cjs/Output/ArtifactWriter/StdoutArtifactWriter.test.d.ts +1 -0
  202. package/dist/cjs/Output/ArtifactWriter/StdoutArtifactWriter.test.js +83 -0
  203. package/dist/cjs/Output/ArtifactWriter/index.d.ts +2 -0
  204. package/dist/cjs/Output/ArtifactWriter/index.js +18 -0
  205. package/dist/cjs/Output/ArtifactWriter.d.ts +8 -0
  206. package/dist/cjs/Output/ArtifactWriter.js +2 -0
  207. package/dist/cjs/Output/RenderPipeline.d.ts +12 -0
  208. package/dist/cjs/Output/RenderPipeline.js +17 -0
  209. package/dist/cjs/Output/RenderPipeline.test.d.ts +1 -0
  210. package/dist/cjs/Output/RenderPipeline.test.js +80 -0
  211. package/dist/cjs/Output/index.d.ts +7 -0
  212. package/dist/cjs/Output/index.js +23 -0
  213. package/dist/cjs/Runtime/RuntimeCatalog.d.ts +25 -0
  214. package/dist/cjs/Runtime/RuntimeCatalog.js +51 -0
  215. package/dist/cjs/Runtime/RuntimeCatalog.test.d.ts +1 -0
  216. package/dist/cjs/Runtime/RuntimeCatalog.test.js +165 -0
  217. package/dist/cjs/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.d.ts +5 -0
  218. package/dist/cjs/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.js +10 -0
  219. package/dist/cjs/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.test.d.ts +1 -0
  220. package/dist/cjs/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.test.js +31 -0
  221. package/dist/cjs/Runtime/RuntimeCatalogBuilder/index.d.ts +1 -0
  222. package/dist/cjs/Runtime/RuntimeCatalogBuilder/index.js +17 -0
  223. package/dist/cjs/Runtime/RuntimeCatalogBuilder.d.ts +11 -0
  224. package/dist/cjs/Runtime/RuntimeCatalogBuilder.js +2 -0
  225. package/dist/cjs/Runtime/RuntimeCatalogBuilder.test.d.ts +1 -0
  226. package/dist/cjs/Runtime/RuntimeCatalogBuilder.test.js +27 -0
  227. package/dist/cjs/Runtime/RuntimeCatalogLoader.d.ts +37 -0
  228. package/dist/cjs/Runtime/RuntimeCatalogLoader.js +106 -0
  229. package/dist/cjs/Runtime/RuntimeCatalogLoader.test.d.ts +1 -0
  230. package/dist/cjs/Runtime/RuntimeCatalogLoader.test.js +454 -0
  231. package/dist/cjs/Runtime/RuntimeConfigLoader.d.ts +33 -0
  232. package/dist/cjs/Runtime/RuntimeConfigLoader.js +93 -0
  233. package/dist/cjs/Runtime/RuntimeConfigLoader.test.d.ts +1 -0
  234. package/dist/cjs/Runtime/RuntimeConfigLoader.test.js +345 -0
  235. package/dist/cjs/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.d.ts +5 -0
  236. package/dist/cjs/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.js +16 -0
  237. package/dist/cjs/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.test.d.ts +1 -0
  238. package/dist/cjs/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.test.js +22 -0
  239. package/dist/cjs/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.d.ts +5 -0
  240. package/dist/cjs/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.js +20 -0
  241. package/dist/cjs/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.test.d.ts +1 -0
  242. package/dist/cjs/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.test.js +31 -0
  243. package/dist/cjs/Runtime/RuntimeConfigParser/index.d.ts +2 -0
  244. package/dist/cjs/Runtime/RuntimeConfigParser/index.js +18 -0
  245. package/dist/cjs/Runtime/RuntimeConfigParser.d.ts +5 -0
  246. package/dist/cjs/Runtime/RuntimeConfigParser.js +6 -0
  247. package/dist/cjs/Runtime/RuntimeConfigParser.test.d.ts +1 -0
  248. package/dist/cjs/Runtime/RuntimeConfigParser.test.js +8 -0
  249. package/dist/cjs/Runtime/RuntimeConfigParserRegistry.d.ts +9 -0
  250. package/dist/cjs/Runtime/RuntimeConfigParserRegistry.js +36 -0
  251. package/dist/cjs/Runtime/RuntimeConfigParserRegistry.test.d.ts +1 -0
  252. package/dist/cjs/Runtime/RuntimeConfigParserRegistry.test.js +53 -0
  253. package/dist/cjs/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.d.ts +7 -0
  254. package/dist/cjs/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.js +21 -0
  255. package/dist/cjs/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.test.d.ts +1 -0
  256. package/dist/cjs/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.test.js +40 -0
  257. package/dist/cjs/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.d.ts +8 -0
  258. package/dist/cjs/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.js +21 -0
  259. package/dist/cjs/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.test.d.ts +1 -0
  260. package/dist/cjs/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.test.js +21 -0
  261. package/dist/cjs/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.d.ts +6 -0
  262. package/dist/cjs/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.js +17 -0
  263. package/dist/cjs/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.test.d.ts +1 -0
  264. package/dist/cjs/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.test.js +37 -0
  265. package/dist/cjs/Runtime/RuntimeConfigSource/index.d.ts +3 -0
  266. package/dist/cjs/Runtime/RuntimeConfigSource/index.js +19 -0
  267. package/dist/cjs/Runtime/RuntimeConfigSource.d.ts +10 -0
  268. package/dist/cjs/Runtime/RuntimeConfigSource.js +20 -0
  269. package/dist/cjs/Runtime/RuntimeConfigSource.test.d.ts +1 -0
  270. package/dist/cjs/Runtime/RuntimeConfigSource.test.js +23 -0
  271. package/dist/cjs/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.d.ts +5 -0
  272. package/dist/cjs/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.js +77 -0
  273. package/dist/cjs/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.test.d.ts +1 -0
  274. package/dist/cjs/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.test.js +62 -0
  275. package/dist/cjs/Runtime/RuntimeConfigValidator/index.d.ts +1 -0
  276. package/dist/cjs/Runtime/RuntimeConfigValidator/index.js +17 -0
  277. package/dist/cjs/Runtime/RuntimeConfigValidator.d.ts +4 -0
  278. package/dist/cjs/Runtime/RuntimeConfigValidator.js +2 -0
  279. package/dist/cjs/Runtime/RuntimeConfigValidator.test.d.ts +1 -0
  280. package/dist/cjs/Runtime/RuntimeConfigValidator.test.js +40 -0
  281. package/dist/cjs/Runtime/RuntimeProvider.d.ts +5 -0
  282. package/dist/cjs/Runtime/RuntimeProvider.js +2 -0
  283. package/dist/cjs/Runtime/RuntimeProvider.test.d.ts +1 -0
  284. package/dist/cjs/Runtime/RuntimeProvider.test.js +12 -0
  285. package/dist/cjs/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.d.ts +14 -0
  286. package/dist/cjs/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.js +87 -0
  287. package/dist/cjs/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.test.d.ts +1 -0
  288. package/dist/cjs/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.test.js +148 -0
  289. package/dist/cjs/Runtime/RuntimeProviderLoader/index.d.ts +1 -0
  290. package/dist/cjs/Runtime/RuntimeProviderLoader/index.js +17 -0
  291. package/dist/cjs/Runtime/RuntimeProviderLoader.d.ts +8 -0
  292. package/dist/cjs/Runtime/RuntimeProviderLoader.js +2 -0
  293. package/dist/cjs/Runtime/RuntimeProviderLoader.test.d.ts +1 -0
  294. package/dist/cjs/Runtime/RuntimeProviderLoader.test.js +25 -0
  295. package/dist/cjs/Runtime/index.d.ts +15 -0
  296. package/dist/cjs/Runtime/index.js +31 -0
  297. package/dist/cjs/index.d.ts +3 -0
  298. package/dist/cjs/index.js +19 -0
  299. package/dist/cjs/package.json +1 -0
  300. package/dist/esm/Graph/Adapter.d.ts +8 -0
  301. package/dist/esm/Graph/Adapter.js +4 -0
  302. package/dist/esm/Graph/Adapters/DotAdapter.d.ts +17 -0
  303. package/dist/esm/Graph/Adapters/DotAdapter.js +27 -0
  304. package/dist/esm/Graph/Adapters/DotAdapter.test.d.ts +1 -0
  305. package/dist/esm/Graph/Adapters/DotAdapter.test.js +43 -0
  306. package/dist/esm/Graph/Adapters/GraphologyAdapter.d.ts +36 -0
  307. package/dist/esm/Graph/Adapters/GraphologyAdapter.js +269 -0
  308. package/dist/esm/Graph/Adapters/GraphologyAdapter.test.d.ts +1 -0
  309. package/dist/esm/Graph/Adapters/GraphologyAdapter.test.js +559 -0
  310. package/dist/esm/Graph/Adapters/index.d.ts +2 -0
  311. package/dist/esm/Graph/Adapters/index.js +2 -0
  312. package/dist/esm/Graph/GraphPlugin.d.ts +53 -0
  313. package/dist/esm/Graph/GraphPlugin.js +217 -0
  314. package/dist/esm/Graph/GraphPlugin.test.d.ts +1 -0
  315. package/dist/esm/Graph/GraphPlugin.test.js +829 -0
  316. package/dist/esm/Graph/GraphResolver.d.ts +21 -0
  317. package/dist/esm/Graph/GraphResolver.js +76 -0
  318. package/dist/esm/Graph/GraphResolver.test.d.ts +1 -0
  319. package/dist/esm/Graph/GraphResolver.test.js +271 -0
  320. package/dist/esm/Graph/Importer.d.ts +7 -0
  321. package/dist/esm/Graph/Importer.js +1 -0
  322. package/dist/esm/Graph/Importers/TerraformDotImporter.d.ts +12 -0
  323. package/dist/esm/Graph/Importers/TerraformDotImporter.js +238 -0
  324. package/dist/esm/Graph/Importers/TerraformDotImporter.test.d.ts +1 -0
  325. package/dist/esm/Graph/Importers/TerraformDotImporter.test.js +338 -0
  326. package/dist/esm/Graph/Importers/index.d.ts +1 -0
  327. package/dist/esm/Graph/Importers/index.js +1 -0
  328. package/dist/esm/Graph/Operations/Matchers/NodeMatchFn.d.ts +3 -0
  329. package/dist/esm/Graph/Operations/Matchers/NodeMatchFn.js +1 -0
  330. package/dist/esm/Graph/Operations/Matchers/NodeQuery/NodeQuery.d.ts +21 -0
  331. package/dist/esm/Graph/Operations/Matchers/NodeQuery/NodeQuery.js +139 -0
  332. package/dist/esm/Graph/Operations/Matchers/NodeQuery/NodeQuery.test.d.ts +1 -0
  333. package/dist/esm/Graph/Operations/Matchers/NodeQuery/NodeQuery.test.js +306 -0
  334. package/dist/esm/Graph/Operations/Matchers/NodeQuery/QuerySchema.d.ts +155 -0
  335. package/dist/esm/Graph/Operations/Matchers/NodeQuery/QuerySchema.js +64 -0
  336. package/dist/esm/Graph/Operations/Matchers/NodeQuery/QuerySchema.test.d.ts +1 -0
  337. package/dist/esm/Graph/Operations/Matchers/NodeQuery/QuerySchema.test.js +49 -0
  338. package/dist/esm/Graph/Operations/Matchers/NodeQuery/index.d.ts +2 -0
  339. package/dist/esm/Graph/Operations/Matchers/NodeQuery/index.js +2 -0
  340. package/dist/esm/Graph/Operations/Matchers/index.d.ts +2 -0
  341. package/dist/esm/Graph/Operations/Matchers/index.js +2 -0
  342. package/dist/esm/Graph/Operations/Operations.d.ts +21 -0
  343. package/dist/esm/Graph/Operations/Operations.js +1 -0
  344. package/dist/esm/Graph/Operations/index.d.ts +2 -0
  345. package/dist/esm/Graph/Operations/index.js +2 -0
  346. package/dist/esm/Graph/Profile.d.ts +55 -0
  347. package/dist/esm/Graph/Profile.js +219 -0
  348. package/dist/esm/Graph/Profile.test.d.ts +1 -0
  349. package/dist/esm/Graph/Profile.test.js +839 -0
  350. package/dist/esm/Graph/ProfileRegistry.d.ts +18 -0
  351. package/dist/esm/Graph/ProfileRegistry.js +57 -0
  352. package/dist/esm/Graph/ProfileRegistry.test.d.ts +1 -0
  353. package/dist/esm/Graph/ProfileRegistry.test.js +96 -0
  354. package/dist/esm/Graph/Renderer.d.ts +9 -0
  355. package/dist/esm/Graph/Renderer.js +1 -0
  356. package/dist/esm/Graph/Renderers/DotRenderer.d.ts +27 -0
  357. package/dist/esm/Graph/Renderers/DotRenderer.js +179 -0
  358. package/dist/esm/Graph/Renderers/DotRenderer.test.d.ts +1 -0
  359. package/dist/esm/Graph/Renderers/DotRenderer.test.js +1141 -0
  360. package/dist/esm/Graph/Renderers/JsonRenderer.d.ts +5 -0
  361. package/dist/esm/Graph/Renderers/JsonRenderer.js +9 -0
  362. package/dist/esm/Graph/Renderers/JsonRenderer.test.d.ts +1 -0
  363. package/dist/esm/Graph/Renderers/JsonRenderer.test.js +27 -0
  364. package/dist/esm/Graph/Renderers/RendererRegistry.d.ts +15 -0
  365. package/dist/esm/Graph/Renderers/RendererRegistry.js +29 -0
  366. package/dist/esm/Graph/Renderers/RendererRegistry.test.d.ts +1 -0
  367. package/dist/esm/Graph/Renderers/RendererRegistry.test.js +37 -0
  368. package/dist/esm/Graph/Renderers/TgNodeLabel.d.ts +11 -0
  369. package/dist/esm/Graph/Renderers/TgNodeLabel.js +39 -0
  370. package/dist/esm/Graph/Renderers/TgNodeLabel.test.d.ts +1 -0
  371. package/dist/esm/Graph/Renderers/TgNodeLabel.test.js +74 -0
  372. package/dist/esm/Graph/Renderers/index.d.ts +4 -0
  373. package/dist/esm/Graph/Renderers/index.js +4 -0
  374. package/dist/esm/Graph/RuleError.d.ts +12 -0
  375. package/dist/esm/Graph/RuleError.js +14 -0
  376. package/dist/esm/Graph/RuleError.test.d.ts +1 -0
  377. package/dist/esm/Graph/RuleError.test.js +23 -0
  378. package/dist/esm/Graph/Rules/Edge/AlignNodes.d.ts +7 -0
  379. package/dist/esm/Graph/Rules/Edge/AlignNodes.js +35 -0
  380. package/dist/esm/Graph/Rules/Edge/AlignNodes.test.d.ts +1 -0
  381. package/dist/esm/Graph/Rules/Edge/AlignNodes.test.js +192 -0
  382. package/dist/esm/Graph/Rules/Edge/EdgeDirectionSemantic.d.ts +8 -0
  383. package/dist/esm/Graph/Rules/Edge/EdgeDirectionSemantic.js +74 -0
  384. package/dist/esm/Graph/Rules/Edge/EdgeDirectionSemantic.test.d.ts +1 -0
  385. package/dist/esm/Graph/Rules/Edge/EdgeDirectionSemantic.test.js +452 -0
  386. package/dist/esm/Graph/Rules/Edge/EdgeDotProperties.d.ts +9 -0
  387. package/dist/esm/Graph/Rules/Edge/EdgeDotProperties.js +46 -0
  388. package/dist/esm/Graph/Rules/Edge/EdgeDotProperties.test.d.ts +1 -0
  389. package/dist/esm/Graph/Rules/Edge/EdgeDotProperties.test.js +331 -0
  390. package/dist/esm/Graph/Rules/Edge/EdgeLegend.d.ts +8 -0
  391. package/dist/esm/Graph/Rules/Edge/EdgeLegend.js +43 -0
  392. package/dist/esm/Graph/Rules/Edge/EdgeLegend.test.d.ts +1 -0
  393. package/dist/esm/Graph/Rules/Edge/EdgeLegend.test.js +184 -0
  394. package/dist/esm/Graph/Rules/Edge/EdgeReverse.d.ts +6 -0
  395. package/dist/esm/Graph/Rules/Edge/EdgeReverse.js +26 -0
  396. package/dist/esm/Graph/Rules/Edge/EdgeReverse.test.d.ts +1 -0
  397. package/dist/esm/Graph/Rules/Edge/EdgeReverse.test.js +132 -0
  398. package/dist/esm/Graph/Rules/Edge/EdgeSemanticLegend.d.ts +8 -0
  399. package/dist/esm/Graph/Rules/Edge/EdgeSemanticLegend.js +68 -0
  400. package/dist/esm/Graph/Rules/Edge/EdgeSemanticLegend.test.d.ts +1 -0
  401. package/dist/esm/Graph/Rules/Edge/EdgeSemanticLegend.test.js +509 -0
  402. package/dist/esm/Graph/Rules/Edge/ExplicitEdge.d.ts +6 -0
  403. package/dist/esm/Graph/Rules/Edge/ExplicitEdge.js +24 -0
  404. package/dist/esm/Graph/Rules/Edge/ExplicitEdge.test.d.ts +1 -0
  405. package/dist/esm/Graph/Rules/Edge/ExplicitEdge.test.js +123 -0
  406. package/dist/esm/Graph/Rules/Edge/RemoveEdge.d.ts +6 -0
  407. package/dist/esm/Graph/Rules/Edge/RemoveEdge.js +24 -0
  408. package/dist/esm/Graph/Rules/Edge/RemoveEdge.test.d.ts +1 -0
  409. package/dist/esm/Graph/Rules/Edge/RemoveEdge.test.js +133 -0
  410. package/dist/esm/Graph/Rules/Edge/index.d.ts +8 -0
  411. package/dist/esm/Graph/Rules/Edge/index.js +8 -0
  412. package/dist/esm/Graph/Rules/NamedRuleRegistry.d.ts +20 -0
  413. package/dist/esm/Graph/Rules/NamedRuleRegistry.js +67 -0
  414. package/dist/esm/Graph/Rules/NamedRuleRegistry.test.d.ts +1 -0
  415. package/dist/esm/Graph/Rules/NamedRuleRegistry.test.js +241 -0
  416. package/dist/esm/Graph/Rules/NamedRuleSetRegistry.d.ts +19 -0
  417. package/dist/esm/Graph/Rules/NamedRuleSetRegistry.js +58 -0
  418. package/dist/esm/Graph/Rules/NamedRuleSetRegistry.test.d.ts +1 -0
  419. package/dist/esm/Graph/Rules/NamedRuleSetRegistry.test.js +78 -0
  420. package/dist/esm/Graph/Rules/Node/ConvertNodeToEdge.d.ts +6 -0
  421. package/dist/esm/Graph/Rules/Node/ConvertNodeToEdge.js +28 -0
  422. package/dist/esm/Graph/Rules/Node/ConvertNodeToEdge.test.d.ts +1 -0
  423. package/dist/esm/Graph/Rules/Node/ConvertNodeToEdge.test.js +150 -0
  424. package/dist/esm/Graph/Rules/Node/NodeDotProperties.d.ts +9 -0
  425. package/dist/esm/Graph/Rules/Node/NodeDotProperties.js +39 -0
  426. package/dist/esm/Graph/Rules/Node/NodeDotProperties.test.d.ts +1 -0
  427. package/dist/esm/Graph/Rules/Node/NodeDotProperties.test.js +224 -0
  428. package/dist/esm/Graph/Rules/Node/NodeProperties.d.ts +12 -0
  429. package/dist/esm/Graph/Rules/Node/NodeProperties.js +77 -0
  430. package/dist/esm/Graph/Rules/Node/NodeProperties.test.d.ts +1 -0
  431. package/dist/esm/Graph/Rules/Node/NodeProperties.test.js +369 -0
  432. package/dist/esm/Graph/Rules/Node/RemoveLeafChain.d.ts +12 -0
  433. package/dist/esm/Graph/Rules/Node/RemoveLeafChain.js +78 -0
  434. package/dist/esm/Graph/Rules/Node/RemoveLeafChain.test.d.ts +1 -0
  435. package/dist/esm/Graph/Rules/Node/RemoveLeafChain.test.js +397 -0
  436. package/dist/esm/Graph/Rules/Node/RemoveNode.d.ts +6 -0
  437. package/dist/esm/Graph/Rules/Node/RemoveNode.js +10 -0
  438. package/dist/esm/Graph/Rules/Node/RemoveNode.test.d.ts +1 -0
  439. package/dist/esm/Graph/Rules/Node/RemoveNode.test.js +31 -0
  440. package/dist/esm/Graph/Rules/Node/RemoveNodeAndReconnectEdges.d.ts +6 -0
  441. package/dist/esm/Graph/Rules/Node/RemoveNodeAndReconnectEdges.js +34 -0
  442. package/dist/esm/Graph/Rules/Node/RemoveNodeAndReconnectEdges.test.d.ts +1 -0
  443. package/dist/esm/Graph/Rules/Node/RemoveNodeAndReconnectEdges.test.js +111 -0
  444. package/dist/esm/Graph/Rules/Node/index.d.ts +6 -0
  445. package/dist/esm/Graph/Rules/Node/index.js +6 -0
  446. package/dist/esm/Graph/Rules/Rule.d.ts +40 -0
  447. package/dist/esm/Graph/Rules/Rule.js +85 -0
  448. package/dist/esm/Graph/Rules/Rule.test.d.ts +1 -0
  449. package/dist/esm/Graph/Rules/Rule.test.js +125 -0
  450. package/dist/esm/Graph/Rules/RuleConfig.d.ts +20 -0
  451. package/dist/esm/Graph/Rules/RuleConfig.js +1 -0
  452. package/dist/esm/Graph/Rules/RulePlan.d.ts +27 -0
  453. package/dist/esm/Graph/Rules/RulePlan.js +22 -0
  454. package/dist/esm/Graph/Rules/RuleSet.d.ts +25 -0
  455. package/dist/esm/Graph/Rules/RuleSet.js +85 -0
  456. package/dist/esm/Graph/Rules/RuleSet.test.d.ts +1 -0
  457. package/dist/esm/Graph/Rules/RuleSet.test.js +220 -0
  458. package/dist/esm/Graph/Rules/index.d.ts +8 -0
  459. package/dist/esm/Graph/Rules/index.js +8 -0
  460. package/dist/esm/Graph/Rules/registerAll.d.ts +14 -0
  461. package/dist/esm/Graph/Rules/registerAll.js +14 -0
  462. package/dist/esm/Graph/Serialization/Registry.d.ts +5 -0
  463. package/dist/esm/Graph/Serialization/Registry.js +1 -0
  464. package/dist/esm/Graph/Serialization/index.d.ts +1 -0
  465. package/dist/esm/Graph/Serialization/index.js +1 -0
  466. package/dist/esm/Graph/TgGraph.d.ts +82 -0
  467. package/dist/esm/Graph/TgGraph.js +46 -0
  468. package/dist/esm/Graph/TgGraph.test.d.ts +1 -0
  469. package/dist/esm/Graph/TgGraph.test.js +59 -0
  470. package/dist/esm/Graph/index.d.ts +15 -0
  471. package/dist/esm/Graph/index.js +15 -0
  472. package/dist/esm/Output/ArtifactTransformer/DotCliArtifactTransformer.d.ts +25 -0
  473. package/dist/esm/Output/ArtifactTransformer/DotCliArtifactTransformer.js +82 -0
  474. package/dist/esm/Output/ArtifactTransformer/DotCliArtifactTransformer.test.d.ts +1 -0
  475. package/dist/esm/Output/ArtifactTransformer/DotCliArtifactTransformer.test.js +198 -0
  476. package/dist/esm/Output/ArtifactTransformer/index.d.ts +1 -0
  477. package/dist/esm/Output/ArtifactTransformer/index.js +1 -0
  478. package/dist/esm/Output/ArtifactTransformer.d.ts +7 -0
  479. package/dist/esm/Output/ArtifactTransformer.js +1 -0
  480. package/dist/esm/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.d.ts +17 -0
  481. package/dist/esm/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.js +74 -0
  482. package/dist/esm/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.test.d.ts +1 -0
  483. package/dist/esm/Output/ArtifactTransformerFactory/DefaultArtifactTransformerFactory.test.js +78 -0
  484. package/dist/esm/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.d.ts +9 -0
  485. package/dist/esm/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.js +76 -0
  486. package/dist/esm/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.test.d.ts +1 -0
  487. package/dist/esm/Output/ArtifactTransformerFactory/OclifTransformerFlagParser.test.js +154 -0
  488. package/dist/esm/Output/ArtifactTransformerFactory/index.d.ts +2 -0
  489. package/dist/esm/Output/ArtifactTransformerFactory/index.js +2 -0
  490. package/dist/esm/Output/ArtifactTransformerFactory.d.ts +10 -0
  491. package/dist/esm/Output/ArtifactTransformerFactory.js +1 -0
  492. package/dist/esm/Output/ArtifactWriter/FileArtifactWriter.d.ts +9 -0
  493. package/dist/esm/Output/ArtifactWriter/FileArtifactWriter.js +21 -0
  494. package/dist/esm/Output/ArtifactWriter/FileArtifactWriter.test.d.ts +1 -0
  495. package/dist/esm/Output/ArtifactWriter/FileArtifactWriter.test.js +75 -0
  496. package/dist/esm/Output/ArtifactWriter/StdoutArtifactWriter.d.ts +6 -0
  497. package/dist/esm/Output/ArtifactWriter/StdoutArtifactWriter.js +13 -0
  498. package/dist/esm/Output/ArtifactWriter/StdoutArtifactWriter.test.d.ts +1 -0
  499. package/dist/esm/Output/ArtifactWriter/StdoutArtifactWriter.test.js +81 -0
  500. package/dist/esm/Output/ArtifactWriter/index.d.ts +2 -0
  501. package/dist/esm/Output/ArtifactWriter/index.js +2 -0
  502. package/dist/esm/Output/ArtifactWriter.d.ts +8 -0
  503. package/dist/esm/Output/ArtifactWriter.js +1 -0
  504. package/dist/esm/Output/RenderPipeline.d.ts +12 -0
  505. package/dist/esm/Output/RenderPipeline.js +13 -0
  506. package/dist/esm/Output/RenderPipeline.test.d.ts +1 -0
  507. package/dist/esm/Output/RenderPipeline.test.js +78 -0
  508. package/dist/esm/Output/index.d.ts +7 -0
  509. package/dist/esm/Output/index.js +7 -0
  510. package/dist/esm/Runtime/RuntimeCatalog.d.ts +25 -0
  511. package/dist/esm/Runtime/RuntimeCatalog.js +47 -0
  512. package/dist/esm/Runtime/RuntimeCatalog.test.d.ts +1 -0
  513. package/dist/esm/Runtime/RuntimeCatalog.test.js +163 -0
  514. package/dist/esm/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.d.ts +5 -0
  515. package/dist/esm/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.js +6 -0
  516. package/dist/esm/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.test.d.ts +1 -0
  517. package/dist/esm/Runtime/RuntimeCatalogBuilder/RuntimeCatalogFromConfigBuilder.test.js +29 -0
  518. package/dist/esm/Runtime/RuntimeCatalogBuilder/index.d.ts +1 -0
  519. package/dist/esm/Runtime/RuntimeCatalogBuilder/index.js +1 -0
  520. package/dist/esm/Runtime/RuntimeCatalogBuilder.d.ts +11 -0
  521. package/dist/esm/Runtime/RuntimeCatalogBuilder.js +1 -0
  522. package/dist/esm/Runtime/RuntimeCatalogBuilder.test.d.ts +1 -0
  523. package/dist/esm/Runtime/RuntimeCatalogBuilder.test.js +25 -0
  524. package/dist/esm/Runtime/RuntimeCatalogLoader.d.ts +37 -0
  525. package/dist/esm/Runtime/RuntimeCatalogLoader.js +102 -0
  526. package/dist/esm/Runtime/RuntimeCatalogLoader.test.d.ts +1 -0
  527. package/dist/esm/Runtime/RuntimeCatalogLoader.test.js +452 -0
  528. package/dist/esm/Runtime/RuntimeConfigLoader.d.ts +33 -0
  529. package/dist/esm/Runtime/RuntimeConfigLoader.js +89 -0
  530. package/dist/esm/Runtime/RuntimeConfigLoader.test.d.ts +1 -0
  531. package/dist/esm/Runtime/RuntimeConfigLoader.test.js +343 -0
  532. package/dist/esm/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.d.ts +5 -0
  533. package/dist/esm/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.js +12 -0
  534. package/dist/esm/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.test.d.ts +1 -0
  535. package/dist/esm/Runtime/RuntimeConfigParser/JsonRuntimeConfigParser.test.js +20 -0
  536. package/dist/esm/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.d.ts +5 -0
  537. package/dist/esm/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.js +16 -0
  538. package/dist/esm/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.test.d.ts +1 -0
  539. package/dist/esm/Runtime/RuntimeConfigParser/YamlRuntimeConfigParser.test.js +29 -0
  540. package/dist/esm/Runtime/RuntimeConfigParser/index.d.ts +2 -0
  541. package/dist/esm/Runtime/RuntimeConfigParser/index.js +2 -0
  542. package/dist/esm/Runtime/RuntimeConfigParser.d.ts +5 -0
  543. package/dist/esm/Runtime/RuntimeConfigParser.js +2 -0
  544. package/dist/esm/Runtime/RuntimeConfigParser.test.d.ts +1 -0
  545. package/dist/esm/Runtime/RuntimeConfigParser.test.js +6 -0
  546. package/dist/esm/Runtime/RuntimeConfigParserRegistry.d.ts +9 -0
  547. package/dist/esm/Runtime/RuntimeConfigParserRegistry.js +32 -0
  548. package/dist/esm/Runtime/RuntimeConfigParserRegistry.test.d.ts +1 -0
  549. package/dist/esm/Runtime/RuntimeConfigParserRegistry.test.js +51 -0
  550. package/dist/esm/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.d.ts +7 -0
  551. package/dist/esm/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.js +17 -0
  552. package/dist/esm/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.test.d.ts +1 -0
  553. package/dist/esm/Runtime/RuntimeConfigSource/FileRuntimeConfigSource.test.js +38 -0
  554. package/dist/esm/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.d.ts +8 -0
  555. package/dist/esm/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.js +17 -0
  556. package/dist/esm/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.test.d.ts +1 -0
  557. package/dist/esm/Runtime/RuntimeConfigSource/InMemoryRuntimeConfigSource.test.js +19 -0
  558. package/dist/esm/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.d.ts +6 -0
  559. package/dist/esm/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.js +13 -0
  560. package/dist/esm/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.test.d.ts +1 -0
  561. package/dist/esm/Runtime/RuntimeConfigSource/YamlRuntimeConfigSource.test.js +35 -0
  562. package/dist/esm/Runtime/RuntimeConfigSource/index.d.ts +3 -0
  563. package/dist/esm/Runtime/RuntimeConfigSource/index.js +3 -0
  564. package/dist/esm/Runtime/RuntimeConfigSource.d.ts +10 -0
  565. package/dist/esm/Runtime/RuntimeConfigSource.js +15 -0
  566. package/dist/esm/Runtime/RuntimeConfigSource.test.d.ts +1 -0
  567. package/dist/esm/Runtime/RuntimeConfigSource.test.js +21 -0
  568. package/dist/esm/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.d.ts +5 -0
  569. package/dist/esm/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.js +73 -0
  570. package/dist/esm/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.test.d.ts +1 -0
  571. package/dist/esm/Runtime/RuntimeConfigValidator/ZodRuntimeConfigValidator.test.js +60 -0
  572. package/dist/esm/Runtime/RuntimeConfigValidator/index.d.ts +1 -0
  573. package/dist/esm/Runtime/RuntimeConfigValidator/index.js +1 -0
  574. package/dist/esm/Runtime/RuntimeConfigValidator.d.ts +4 -0
  575. package/dist/esm/Runtime/RuntimeConfigValidator.js +1 -0
  576. package/dist/esm/Runtime/RuntimeConfigValidator.test.d.ts +1 -0
  577. package/dist/esm/Runtime/RuntimeConfigValidator.test.js +39 -0
  578. package/dist/esm/Runtime/RuntimeProvider.d.ts +5 -0
  579. package/dist/esm/Runtime/RuntimeProvider.js +1 -0
  580. package/dist/esm/Runtime/RuntimeProvider.test.d.ts +1 -0
  581. package/dist/esm/Runtime/RuntimeProvider.test.js +11 -0
  582. package/dist/esm/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.d.ts +14 -0
  583. package/dist/esm/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.js +50 -0
  584. package/dist/esm/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.test.d.ts +1 -0
  585. package/dist/esm/Runtime/RuntimeProviderLoader/ModuleRuntimeProviderLoader.test.js +146 -0
  586. package/dist/esm/Runtime/RuntimeProviderLoader/index.d.ts +1 -0
  587. package/dist/esm/Runtime/RuntimeProviderLoader/index.js +1 -0
  588. package/dist/esm/Runtime/RuntimeProviderLoader.d.ts +8 -0
  589. package/dist/esm/Runtime/RuntimeProviderLoader.js +1 -0
  590. package/dist/esm/Runtime/RuntimeProviderLoader.test.d.ts +1 -0
  591. package/dist/esm/Runtime/RuntimeProviderLoader.test.js +24 -0
  592. package/dist/esm/Runtime/index.d.ts +15 -0
  593. package/dist/esm/Runtime/index.js +15 -0
  594. package/dist/esm/index.d.ts +3 -0
  595. package/dist/esm/index.js +3 -0
  596. package/package.json +110 -0
@@ -0,0 +1,343 @@
1
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { DotAdapter } from '../Graph/Adapters/DotAdapter.js';
5
+ import { Profile } from '../Graph/Profile.js';
6
+ import { ProfileRegistry } from '../Graph/ProfileRegistry.js';
7
+ import { NamedRuleRegistry } from '../Graph/Rules/NamedRuleRegistry.js';
8
+ import { NamedRuleSetRegistry } from '../Graph/Rules/NamedRuleSetRegistry.js';
9
+ import { RemoveNode } from '../Graph/Rules/Node/RemoveNode.js';
10
+ import { RuntimeConfigLoader } from './RuntimeConfigLoader.js';
11
+ import { RuntimeConfigParserRegistry } from './RuntimeConfigParserRegistry.js';
12
+ import { FileRuntimeConfigSource } from './RuntimeConfigSource/FileRuntimeConfigSource.js';
13
+ import { InMemoryRuntimeConfigSource } from './RuntimeConfigSource/InMemoryRuntimeConfigSource.js';
14
+ describe('RuntimeConfigParserRegistry.resolve', () => {
15
+ it('shoud resolve default json and yaml parsers', () => {
16
+ const registry = RuntimeConfigParserRegistry.defaults();
17
+ expect(registry.resolve('json').parse('{"a":1}')).toEqual({ a: 1 });
18
+ expect(registry.resolve('yaml').parse('value: ok')).toEqual({
19
+ value: 'ok',
20
+ });
21
+ });
22
+ it('shoud throw when no parser is registered for a format', () => {
23
+ const registry = RuntimeConfigParserRegistry.defaults();
24
+ expect(() => registry.resolve('toml')).toThrow("No RuntimeConfigParser registered for format 'toml'");
25
+ });
26
+ });
27
+ describe('FileRuntimeConfigSource.read', () => {
28
+ it('shoud read file contents and infer format from file extension', async () => {
29
+ const dir = await mkdtemp(join(tmpdir(), 'runtime-config-loader-'));
30
+ const filePath = join(dir, 'runtime.json');
31
+ await writeFile(filePath, '{"profiles":{}}', 'utf8');
32
+ try {
33
+ const source = new FileRuntimeConfigSource(filePath);
34
+ const doc = await source.read();
35
+ expect(doc.content).toBe('{"profiles":{}}');
36
+ expect(doc.format).toBe('json');
37
+ expect(doc.reference).toBe(filePath);
38
+ }
39
+ finally {
40
+ await rm(dir, { recursive: true, force: true });
41
+ }
42
+ });
43
+ });
44
+ describe('RuntimeConfigLoader.load', () => {
45
+ it('shoud load a runtime catalog from in-memory json config', async () => {
46
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
47
+ namedRules: {
48
+ removeAlways: {
49
+ id: RemoveNode.name,
50
+ config: { node: { any: true } },
51
+ },
52
+ },
53
+ profiles: {
54
+ profile: {
55
+ phases: [{ phase: 'main', rules: [{ namedRule: 'removeAlways' }] }],
56
+ },
57
+ },
58
+ }));
59
+ const loader = new RuntimeConfigLoader();
60
+ const loaded = await loader.load({ source });
61
+ const phases = loaded.catalog.resolveProfilePhases('profile');
62
+ expect(phases).toHaveLength(1);
63
+ expect(phases[0]).toHaveLength(1);
64
+ expect(phases[0][0].serialize()).toEqual({
65
+ id: 'RemoveNode',
66
+ config: { node: { any: true } },
67
+ });
68
+ });
69
+ it('shoud load a runtime catalog from in-memory yaml config', async () => {
70
+ const source = new InMemoryRuntimeConfigSource(`
71
+ namedRules:
72
+ removeAlways:
73
+ id: RemoveNode
74
+ config:
75
+ node:
76
+ any: true
77
+ profiles:
78
+ profile:
79
+ phases:
80
+ - phase: main
81
+ rules:
82
+ - namedRule: removeAlways
83
+ `, 'yaml');
84
+ const loader = new RuntimeConfigLoader();
85
+ const loaded = await loader.load({ source });
86
+ const phases = loaded.catalog.resolveProfilePhases('profile');
87
+ expect(phases).toHaveLength(1);
88
+ expect(phases[0]).toHaveLength(1);
89
+ expect(phases[0][0].serialize()).toEqual({
90
+ id: 'RemoveNode',
91
+ config: { node: { any: true } },
92
+ });
93
+ });
94
+ it('shoud fail when runtime config schema validation fails', async () => {
95
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
96
+ profiles: {
97
+ profile: {
98
+ phases: [{ phase: 'invalid_phase', rules: [] }],
99
+ },
100
+ },
101
+ }));
102
+ const loader = new RuntimeConfigLoader();
103
+ await expect(loader.load({ source })).rejects.toThrow(/Runtime config validation failed:/);
104
+ });
105
+ it('shoud support custom parsers via dependency injection', async () => {
106
+ class FakeYamlParser {
107
+ supports(format) {
108
+ return format === 'yaml';
109
+ }
110
+ parse(_content) {
111
+ return {
112
+ namedRules: {
113
+ removeAlways: {
114
+ id: RemoveNode.name,
115
+ config: { node: { any: true } },
116
+ },
117
+ },
118
+ profiles: {
119
+ profile: {
120
+ phases: [
121
+ { phase: 'main', rules: [{ namedRule: 'removeAlways' }] },
122
+ ],
123
+ },
124
+ },
125
+ };
126
+ }
127
+ }
128
+ const parserRegistry = new RuntimeConfigParserRegistry([
129
+ new FakeYamlParser(),
130
+ ]);
131
+ const loader = new RuntimeConfigLoader({ parserRegistry });
132
+ const source = new InMemoryRuntimeConfigSource('profiles:\n profile: {}', 'yaml');
133
+ const loaded = await loader.load({ source });
134
+ const phases = loaded.catalog.resolveProfilePhases('profile');
135
+ expect(phases).toHaveLength(1);
136
+ expect(phases[0]).toHaveLength(1);
137
+ expect(phases[0][0].serialize()).toEqual({
138
+ id: 'RemoveNode',
139
+ config: { node: { any: true } },
140
+ });
141
+ });
142
+ it('shoud infer the config format from the source reference', async () => {
143
+ class ReferencedSource {
144
+ async read() {
145
+ return {
146
+ content: JSON.stringify({
147
+ profiles: {
148
+ profile: { phases: [] },
149
+ },
150
+ }),
151
+ reference: '/tmp/runtime.json',
152
+ };
153
+ }
154
+ }
155
+ const loader = new RuntimeConfigLoader();
156
+ const loaded = await loader.load({ source: new ReferencedSource() });
157
+ expect(loaded.catalog.resolveProfilePhases('profile')).toEqual([]);
158
+ });
159
+ it('shoud fail when source format is unknown', async () => {
160
+ const source = new InMemoryRuntimeConfigSource('{}', 'custom');
161
+ const loader = new RuntimeConfigLoader();
162
+ await expect(loader.load({ source })).rejects.toThrow("Failed to parse runtime config as 'custom': No RuntimeConfigParser registered for format 'custom'");
163
+ });
164
+ it('shoud fail when runtime config format cannot be inferred', async () => {
165
+ class UnknownFormatSource {
166
+ async read() {
167
+ return { content: '{}' };
168
+ }
169
+ }
170
+ const source = new UnknownFormatSource();
171
+ const loader = new RuntimeConfigLoader();
172
+ await expect(loader.load({ source })).rejects.toThrow('Unable to determine runtime config format');
173
+ });
174
+ it('shoud include the source reference when format inference fails', async () => {
175
+ class UnknownReferencedSource {
176
+ async read() {
177
+ return { content: '{}', reference: '/tmp/runtime.unknown' };
178
+ }
179
+ }
180
+ const loader = new RuntimeConfigLoader();
181
+ await expect(loader.load({ source: new UnknownReferencedSource() })).rejects.toThrow("Unable to determine runtime config format from '/tmp/runtime.unknown'");
182
+ });
183
+ it('shoud surface non-error parser failures', async () => {
184
+ class ThrowingParser {
185
+ supports(format) {
186
+ return format === 'json';
187
+ }
188
+ parse(_content) {
189
+ throw 'parser-failed';
190
+ }
191
+ }
192
+ const parserRegistry = new RuntimeConfigParserRegistry([
193
+ new ThrowingParser(),
194
+ ]);
195
+ const loader = new RuntimeConfigLoader({ parserRegistry });
196
+ const source = new InMemoryRuntimeConfigSource('{}', 'json');
197
+ await expect(loader.load({ source })).rejects.toThrow("Failed to parse runtime config as 'json': parser-failed");
198
+ });
199
+ it('shoud surface non-error validation failures', async () => {
200
+ const validator = {
201
+ validate(_input) {
202
+ throw 'validation-failed';
203
+ },
204
+ };
205
+ const loader = new RuntimeConfigLoader({ validator });
206
+ const source = new InMemoryRuntimeConfigSource('{}', 'json');
207
+ await expect(loader.load({ source })).rejects.toThrow('Runtime config validation failed: validation-failed');
208
+ });
209
+ it('shoud surface non-error provider load failures', async () => {
210
+ class ThrowingProviderLoader {
211
+ async load(_input) {
212
+ throw 'provider-failed';
213
+ }
214
+ }
215
+ const loader = new RuntimeConfigLoader({
216
+ providerLoader: new ThrowingProviderLoader(),
217
+ });
218
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
219
+ providers: ['@example/runtime-provider'],
220
+ profiles: {
221
+ profile: {
222
+ phases: [],
223
+ },
224
+ },
225
+ }), 'json');
226
+ await expect(loader.load({ source })).rejects.toThrow("Failed to load runtime provider '@example/runtime-provider': provider-failed");
227
+ });
228
+ it('shoud return validated config alongside catalog with load', async () => {
229
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
230
+ profiles: {
231
+ profile: {
232
+ phases: [],
233
+ },
234
+ },
235
+ run: {
236
+ profile: 'profile',
237
+ },
238
+ }));
239
+ const loader = new RuntimeConfigLoader();
240
+ const loaded = await loader.load({ source });
241
+ expect(loaded.config.run?.profile).toBe('profile');
242
+ expect(loaded.catalog.resolveProfilePhases('profile')).toEqual([]);
243
+ });
244
+ it('shoud load runtime providers declared in config and merge adapter support registries', async () => {
245
+ class FakeRuntimeProviderLoader {
246
+ async load(_input) {
247
+ return {
248
+ supportedAdapterOperationsRegistry: {
249
+ ExternalDotAdapter: DotAdapter,
250
+ },
251
+ };
252
+ }
253
+ }
254
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
255
+ providers: ['@example/runtime-provider'],
256
+ profiles: {
257
+ profile: {
258
+ supports: 'ExternalDotAdapter',
259
+ phases: [],
260
+ },
261
+ },
262
+ }), 'json', '/tmp/runtime.json');
263
+ const loader = new RuntimeConfigLoader({
264
+ providerLoader: new FakeRuntimeProviderLoader(),
265
+ });
266
+ const loaded = await loader.load({ source });
267
+ const profile = loaded.catalog.resolveProfile('profile');
268
+ expect(profile.supports).toBe(DotAdapter);
269
+ });
270
+ it('shoud merge base provider adapter support registries configured on the loader', async () => {
271
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
272
+ profiles: {
273
+ profile: {
274
+ supports: 'ExternalDotAdapter',
275
+ phases: [],
276
+ },
277
+ },
278
+ }), 'json', '/tmp/runtime.json');
279
+ const loader = new RuntimeConfigLoader({
280
+ baseProviders: [
281
+ {
282
+ supportedAdapterOperationsRegistry: {
283
+ ExternalDotAdapter: DotAdapter,
284
+ },
285
+ },
286
+ ],
287
+ });
288
+ const loaded = await loader.load({ source });
289
+ const profile = loaded.catalog.resolveProfile('profile');
290
+ expect(profile.supports).toBe(DotAdapter);
291
+ });
292
+ it('shoud merge provider catalog contributions declared in config', async () => {
293
+ class FakeRuntimeProviderLoader {
294
+ async load(_input) {
295
+ return {
296
+ namedRules: new NamedRuleRegistry({
297
+ removeAlways: new RemoveNode({
298
+ node: { any: true },
299
+ }),
300
+ }),
301
+ namedRuleSets: new NamedRuleSetRegistry({
302
+ wrapper: {
303
+ rules: [{ namedRule: 'removeAlways' }],
304
+ },
305
+ }),
306
+ profiles: new ProfileRegistry({
307
+ 'provider.profile': new Profile('provider.profile', {
308
+ phases: [{ phase: 'main', rules: [{ namedRuleSet: 'wrapper' }] }],
309
+ }),
310
+ }),
311
+ };
312
+ }
313
+ }
314
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
315
+ providers: ['@example/runtime-provider'],
316
+ }), 'json', '/tmp/runtime.json');
317
+ const loader = new RuntimeConfigLoader({
318
+ providerLoader: new FakeRuntimeProviderLoader(),
319
+ });
320
+ const loaded = await loader.load({ source });
321
+ const phases = loaded.catalog.resolveProfilePhases('provider.profile');
322
+ expect(phases).toHaveLength(1);
323
+ expect(phases[0]).toHaveLength(1);
324
+ expect(phases[0][0].serialize()).toEqual({
325
+ id: 'RemoveNode',
326
+ config: { node: { any: true } },
327
+ });
328
+ });
329
+ it('shoud throw a contextual error when loading a runtime provider fails', async () => {
330
+ class ThrowingRuntimeProviderLoader {
331
+ async load(_input) {
332
+ throw new Error('boom');
333
+ }
334
+ }
335
+ const source = new InMemoryRuntimeConfigSource(JSON.stringify({
336
+ providers: ['@example/broken-provider'],
337
+ }), 'json', '/tmp/runtime.json');
338
+ const loader = new RuntimeConfigLoader({
339
+ providerLoader: new ThrowingRuntimeProviderLoader(),
340
+ });
341
+ await expect(loader.load({ source })).rejects.toThrow("Failed to load runtime provider '@example/broken-provider': boom");
342
+ });
343
+ });
@@ -0,0 +1,5 @@
1
+ import { RuntimeConfigParser } from '../RuntimeConfigParser.js';
2
+ export declare class JsonRuntimeConfigParser implements RuntimeConfigParser {
3
+ supports(format: string): boolean;
4
+ parse(content: string): unknown;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { normalizeRuntimeConfigParserFormat, } from '../RuntimeConfigParser.js';
2
+ export class JsonRuntimeConfigParser {
3
+ supports(format) {
4
+ const normalized = normalizeRuntimeConfigParserFormat(format);
5
+ return (normalized === 'json' ||
6
+ normalized === '.json' ||
7
+ normalized === 'application/json');
8
+ }
9
+ parse(content) {
10
+ return JSON.parse(content);
11
+ }
12
+ }
@@ -0,0 +1,20 @@
1
+ import { JsonRuntimeConfigParser } from './JsonRuntimeConfigParser.js';
2
+ describe('JsonRuntimeConfigParser.supports', () => {
3
+ it('shoud support json aliases', () => {
4
+ const parser = new JsonRuntimeConfigParser();
5
+ expect(parser.supports('json')).toBe(true);
6
+ expect(parser.supports('.json')).toBe(true);
7
+ expect(parser.supports('application/json')).toBe(true);
8
+ expect(parser.supports('yaml')).toBe(false);
9
+ });
10
+ });
11
+ describe('JsonRuntimeConfigParser.parse', () => {
12
+ it('shoud parse json content into an object', () => {
13
+ const parser = new JsonRuntimeConfigParser();
14
+ expect(parser.parse('{"value":1}')).toEqual({ value: 1 });
15
+ });
16
+ it('shoud throw when json is invalid', () => {
17
+ const parser = new JsonRuntimeConfigParser();
18
+ expect(() => parser.parse('{invalid-json')).toThrow();
19
+ });
20
+ });
@@ -0,0 +1,5 @@
1
+ import { RuntimeConfigParser } from '../RuntimeConfigParser.js';
2
+ export declare class YamlRuntimeConfigParser implements RuntimeConfigParser {
3
+ supports(format: string): boolean;
4
+ parse(content: string): unknown;
5
+ }
@@ -0,0 +1,16 @@
1
+ import { parse } from 'yaml';
2
+ import { normalizeRuntimeConfigParserFormat, } from '../RuntimeConfigParser.js';
3
+ export class YamlRuntimeConfigParser {
4
+ supports(format) {
5
+ const normalized = normalizeRuntimeConfigParserFormat(format);
6
+ return (normalized === 'yaml' ||
7
+ normalized === '.yaml' ||
8
+ normalized === '.yml' ||
9
+ normalized === 'application/yaml' ||
10
+ normalized === 'application/x-yaml' ||
11
+ normalized === 'text/yaml');
12
+ }
13
+ parse(content) {
14
+ return parse(content);
15
+ }
16
+ }
@@ -0,0 +1,29 @@
1
+ import { YamlRuntimeConfigParser } from './YamlRuntimeConfigParser.js';
2
+ describe('YamlRuntimeConfigParser.supports', () => {
3
+ it('shoud support yaml aliases and mime types', () => {
4
+ const parser = new YamlRuntimeConfigParser();
5
+ expect(parser.supports('yaml')).toBe(true);
6
+ expect(parser.supports('.yaml')).toBe(true);
7
+ expect(parser.supports('.yml')).toBe(true);
8
+ expect(parser.supports('application/yaml')).toBe(true);
9
+ expect(parser.supports('application/x-yaml')).toBe(true);
10
+ expect(parser.supports('text/yaml')).toBe(true);
11
+ expect(parser.supports('json')).toBe(false);
12
+ });
13
+ });
14
+ describe('YamlRuntimeConfigParser.parse', () => {
15
+ it('shoud parse yaml documents into objects', () => {
16
+ const parser = new YamlRuntimeConfigParser();
17
+ expect(parser.parse('profiles:\n test:\n phases: []')).toEqual({
18
+ profiles: {
19
+ test: {
20
+ phases: [],
21
+ },
22
+ },
23
+ });
24
+ });
25
+ it('shoud throw when yaml is invalid', () => {
26
+ const parser = new YamlRuntimeConfigParser();
27
+ expect(() => parser.parse('profiles: [')).toThrow();
28
+ });
29
+ });
@@ -0,0 +1,2 @@
1
+ export * from './JsonRuntimeConfigParser.js';
2
+ export * from './YamlRuntimeConfigParser.js';
@@ -0,0 +1,2 @@
1
+ export * from './JsonRuntimeConfigParser.js';
2
+ export * from './YamlRuntimeConfigParser.js';
@@ -0,0 +1,5 @@
1
+ export interface RuntimeConfigParser {
2
+ supports(format: string): boolean;
3
+ parse(content: string): unknown;
4
+ }
5
+ export declare const normalizeRuntimeConfigParserFormat: (format: string) => string;
@@ -0,0 +1,2 @@
1
+ import { normalizeRuntimeConfigFormat } from './RuntimeConfigSource.js';
2
+ export const normalizeRuntimeConfigParserFormat = (format) => normalizeRuntimeConfigFormat(format);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { normalizeRuntimeConfigParserFormat } from './RuntimeConfigParser.js';
2
+ describe('RuntimeConfigParser.normalizeRuntimeConfigParserFormat', () => {
3
+ it('shoud normalize parser format values by trimming and lowering case', () => {
4
+ expect(normalizeRuntimeConfigParserFormat(' APPLICATION/JSON ')).toBe('application/json');
5
+ });
6
+ });
@@ -0,0 +1,9 @@
1
+ import { RuntimeConfigParser } from './RuntimeConfigParser.js';
2
+ export declare class RuntimeConfigParserRegistry {
3
+ private readonly parsers;
4
+ constructor(parsers?: RuntimeConfigParser[]);
5
+ static defaults(): RuntimeConfigParserRegistry;
6
+ register(parser: RuntimeConfigParser): RuntimeConfigParserRegistry;
7
+ use(registry: RuntimeConfigParserRegistry): RuntimeConfigParserRegistry;
8
+ resolve(format: string): RuntimeConfigParser;
9
+ }
@@ -0,0 +1,32 @@
1
+ import { normalizeRuntimeConfigParserFormat, } from './RuntimeConfigParser.js';
2
+ import { JsonRuntimeConfigParser } from './RuntimeConfigParser/JsonRuntimeConfigParser.js';
3
+ import { YamlRuntimeConfigParser } from './RuntimeConfigParser/YamlRuntimeConfigParser.js';
4
+ export class RuntimeConfigParserRegistry {
5
+ parsers;
6
+ constructor(parsers = []) {
7
+ this.parsers = Object.freeze([...parsers]);
8
+ }
9
+ static defaults() {
10
+ return new RuntimeConfigParserRegistry([
11
+ new JsonRuntimeConfigParser(),
12
+ new YamlRuntimeConfigParser(),
13
+ ]);
14
+ }
15
+ register(parser) {
16
+ return new RuntimeConfigParserRegistry([...this.parsers, parser]);
17
+ }
18
+ use(registry) {
19
+ return new RuntimeConfigParserRegistry([
20
+ ...this.parsers,
21
+ ...registry.parsers,
22
+ ]);
23
+ }
24
+ resolve(format) {
25
+ const normalized = normalizeRuntimeConfigParserFormat(format);
26
+ const parser = this.parsers.find((candidate) => candidate.supports(normalized));
27
+ if (!parser) {
28
+ throw new Error(`No RuntimeConfigParser registered for format '${format}'`);
29
+ }
30
+ return parser;
31
+ }
32
+ }
@@ -0,0 +1,51 @@
1
+ import { RuntimeConfigParserRegistry } from './RuntimeConfigParserRegistry.js';
2
+ class FakeYamlParser {
3
+ supports(format) {
4
+ return format === 'yaml';
5
+ }
6
+ parse(content) {
7
+ return { content };
8
+ }
9
+ }
10
+ describe('RuntimeConfigParserRegistry.defaults', () => {
11
+ it('shoud include json and yaml parsers by default', () => {
12
+ const registry = RuntimeConfigParserRegistry.defaults();
13
+ expect(registry.resolve('json').parse('{"ok":true}')).toEqual({ ok: true });
14
+ expect(registry.resolve('yaml').parse('value: ok')).toEqual({
15
+ value: 'ok',
16
+ });
17
+ });
18
+ });
19
+ describe('RuntimeConfigParserRegistry.register', () => {
20
+ it('shoud return a new registry without mutating the original', () => {
21
+ const base = RuntimeConfigParserRegistry.defaults();
22
+ const next = base.register(new FakeYamlParser());
23
+ expect(base.resolve('yaml').parse('value: ok')).toEqual({ value: 'ok' });
24
+ expect(next.resolve('yaml').parse('value: ok')).toEqual({ value: 'ok' });
25
+ });
26
+ it('shoud allow registering parsers on an empty registry', () => {
27
+ const base = new RuntimeConfigParserRegistry();
28
+ const next = base.register(new FakeYamlParser());
29
+ expect(() => base.resolve('yaml')).toThrow("No RuntimeConfigParser registered for format 'yaml'");
30
+ expect(next.resolve('yaml').parse('value: ok')).toEqual({
31
+ content: 'value: ok',
32
+ });
33
+ });
34
+ });
35
+ describe('RuntimeConfigParserRegistry.use', () => {
36
+ it('shoud combine parser registries immutably', () => {
37
+ const one = RuntimeConfigParserRegistry.defaults();
38
+ const two = new RuntimeConfigParserRegistry([new FakeYamlParser()]);
39
+ const combined = one.use(two);
40
+ expect(one.resolve('yaml').parse('value: ok')).toEqual({ value: 'ok' });
41
+ expect(combined.resolve('yaml').parse('value: ok')).toEqual({
42
+ value: 'ok',
43
+ });
44
+ });
45
+ });
46
+ describe('RuntimeConfigParserRegistry.resolve', () => {
47
+ it('shoud throw when parser format is not registered', () => {
48
+ const registry = RuntimeConfigParserRegistry.defaults();
49
+ expect(() => registry.resolve('toml')).toThrow("No RuntimeConfigParser registered for format 'toml'");
50
+ });
51
+ });
@@ -0,0 +1,7 @@
1
+ import { RuntimeConfigDocument, RuntimeConfigSource } from '../RuntimeConfigSource.js';
2
+ export declare class FileRuntimeConfigSource implements RuntimeConfigSource {
3
+ readonly filePath: string;
4
+ private readonly format?;
5
+ constructor(filePath: string, format?: string | undefined);
6
+ read(): Promise<RuntimeConfigDocument>;
7
+ }
@@ -0,0 +1,17 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { inferRuntimeConfigFormatFromReference, } from '../RuntimeConfigSource.js';
3
+ export class FileRuntimeConfigSource {
4
+ filePath;
5
+ format;
6
+ constructor(filePath, format) {
7
+ this.filePath = filePath;
8
+ this.format = format;
9
+ }
10
+ async read() {
11
+ return {
12
+ content: await readFile(this.filePath, 'utf8'),
13
+ format: this.format ?? inferRuntimeConfigFormatFromReference(this.filePath),
14
+ reference: this.filePath,
15
+ };
16
+ }
17
+ }
@@ -0,0 +1,38 @@
1
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { FileRuntimeConfigSource } from './FileRuntimeConfigSource.js';
5
+ describe('FileRuntimeConfigSource.read', () => {
6
+ it('shoud infer format from file extension when format is omitted', async () => {
7
+ const dir = await mkdtemp(join(tmpdir(), 'runtime-config-source-file-'));
8
+ const filePath = join(dir, 'runtime.json');
9
+ await writeFile(filePath, '{"profiles":{}}', 'utf8');
10
+ try {
11
+ const source = new FileRuntimeConfigSource(filePath);
12
+ await expect(source.read()).resolves.toEqual({
13
+ content: '{"profiles":{}}',
14
+ format: 'json',
15
+ reference: filePath,
16
+ });
17
+ }
18
+ finally {
19
+ await rm(dir, { recursive: true, force: true });
20
+ }
21
+ });
22
+ it('shoud prefer explicit format over inferred extension format', async () => {
23
+ const dir = await mkdtemp(join(tmpdir(), 'runtime-config-source-file-'));
24
+ const filePath = join(dir, 'runtime.json');
25
+ await writeFile(filePath, 'profiles: {}', 'utf8');
26
+ try {
27
+ const source = new FileRuntimeConfigSource(filePath, 'yaml');
28
+ await expect(source.read()).resolves.toEqual({
29
+ content: 'profiles: {}',
30
+ format: 'yaml',
31
+ reference: filePath,
32
+ });
33
+ }
34
+ finally {
35
+ await rm(dir, { recursive: true, force: true });
36
+ }
37
+ });
38
+ });
@@ -0,0 +1,8 @@
1
+ import { RuntimeConfigDocument, RuntimeConfigSource } from '../RuntimeConfigSource.js';
2
+ export declare class InMemoryRuntimeConfigSource implements RuntimeConfigSource {
3
+ private readonly content;
4
+ private readonly format;
5
+ private readonly reference;
6
+ constructor(content: string, format?: string, reference?: string);
7
+ read(): Promise<RuntimeConfigDocument>;
8
+ }