@l-v-yonsama/multi-platform-database-drivers 1.2.0 → 2.0.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 (315) hide show
  1. package/README.md +40 -0
  2. package/built/src/drivers/Auth0Driver.js +9 -9
  3. package/built/src/drivers/Auth0Driver.js.map +1 -1
  4. package/built/src/drivers/AwsDriver.d.ts +6 -0
  5. package/built/src/drivers/AwsDriver.js +87 -7
  6. package/built/src/drivers/AwsDriver.js.map +1 -1
  7. package/built/src/drivers/BaseDriver.d.ts +1 -1
  8. package/built/src/drivers/BaseDriver.js +4 -6
  9. package/built/src/drivers/BaseDriver.js.map +1 -1
  10. package/built/src/drivers/DBDriverResolver.js.map +1 -1
  11. package/built/src/drivers/DBError.js.map +1 -1
  12. package/built/src/drivers/KeycloakDriver.d.ts +2 -3
  13. package/built/src/drivers/KeycloakDriver.js +27 -262
  14. package/built/src/drivers/KeycloakDriver.js.map +1 -1
  15. package/built/src/drivers/MemcacheDriver.d.ts +0 -1
  16. package/built/src/drivers/MemcacheDriver.js +5 -5
  17. package/built/src/drivers/MemcacheDriver.js.map +1 -1
  18. package/built/src/drivers/MqttDriver.d.ts +0 -1
  19. package/built/src/drivers/MqttDriver.js +4 -4
  20. package/built/src/drivers/MqttDriver.js.map +1 -1
  21. package/built/src/drivers/MySQLDriver.js +12 -12
  22. package/built/src/drivers/MySQLDriver.js.map +1 -1
  23. package/built/src/drivers/OracleDriver.js +13 -13
  24. package/built/src/drivers/OracleDriver.js.map +1 -1
  25. package/built/src/drivers/PostgresDriver.js +22 -2
  26. package/built/src/drivers/PostgresDriver.js.map +1 -1
  27. package/built/src/drivers/RDSBaseDriver.d.ts +1 -1
  28. package/built/src/drivers/RDSBaseDriver.js +6 -6
  29. package/built/src/drivers/RDSBaseDriver.js.map +1 -1
  30. package/built/src/drivers/RedisDriver.js +2 -2
  31. package/built/src/drivers/RedisDriver.js.map +1 -1
  32. package/built/src/drivers/SQLServerDriver.js +7 -7
  33. package/built/src/drivers/SQLServerDriver.js.map +1 -1
  34. package/built/src/drivers/SQLiteDriver.d.ts +1 -1
  35. package/built/src/drivers/SQLiteDriver.js +7 -7
  36. package/built/src/drivers/SQLiteDriver.js.map +1 -1
  37. package/built/src/drivers/aws/AwsCloudFormationServiceClient.d.ts +35 -0
  38. package/built/src/drivers/aws/AwsCloudFormationServiceClient.js +197 -0
  39. package/built/src/drivers/aws/AwsCloudFormationServiceClient.js.map +1 -0
  40. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +4 -7
  41. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
  42. package/built/src/drivers/aws/AwsDynamoServiceClient.js +8 -11
  43. package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
  44. package/built/src/drivers/aws/AwsS3ServiceClient.js +28 -30
  45. package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
  46. package/built/src/drivers/aws/AwsSESServiceClient.js +23 -0
  47. package/built/src/drivers/aws/AwsSESServiceClient.js.map +1 -1
  48. package/built/src/drivers/aws/AwsSQSServiceClient.d.ts +1 -0
  49. package/built/src/drivers/aws/AwsSQSServiceClient.js +40 -8
  50. package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
  51. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.d.ts +19 -0
  52. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js +118 -0
  53. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js.map +1 -0
  54. package/built/src/drivers/aws/AwsServiceClient.d.ts +1 -0
  55. package/built/src/drivers/aws/AwsServiceClient.js +13 -2
  56. package/built/src/drivers/aws/AwsServiceClient.js.map +1 -1
  57. package/built/src/drivers/aws/AwsSsmServiceClient.d.ts +19 -0
  58. package/built/src/drivers/aws/AwsSsmServiceClient.js +116 -0
  59. package/built/src/drivers/aws/AwsSsmServiceClient.js.map +1 -0
  60. package/built/src/drivers/aws/index.d.ts +3 -0
  61. package/built/src/drivers/aws/index.js +3 -0
  62. package/built/src/drivers/aws/index.js.map +1 -1
  63. package/built/src/drivers/keycloak/resourceTreeBuilder.d.ts +5 -0
  64. package/built/src/drivers/keycloak/resourceTreeBuilder.js +37 -0
  65. package/built/src/drivers/keycloak/resourceTreeBuilder.js.map +1 -0
  66. package/built/src/drivers/keycloak/scanResultBuilder.d.ts +8 -0
  67. package/built/src/drivers/keycloak/scanResultBuilder.js +212 -0
  68. package/built/src/drivers/keycloak/scanResultBuilder.js.map +1 -0
  69. package/built/src/drivers/memcache/helper.d.ts +0 -1
  70. package/built/src/drivers/memcache/helper.js +13 -14
  71. package/built/src/drivers/memcache/helper.js.map +1 -1
  72. package/built/src/helpers/ProposalHelper.js +3 -3
  73. package/built/src/helpers/ProposalHelper.js.map +1 -1
  74. package/built/src/helpers/RdhRecordRuleHelper.js.map +1 -1
  75. package/built/src/helpers/RuleEngine.d.ts +5 -5
  76. package/built/src/helpers/RuleEngine.js +14 -14
  77. package/built/src/helpers/RuleEngine.js.map +1 -1
  78. package/built/src/helpers/SQLHelper.d.ts +8 -115
  79. package/built/src/helpers/SQLHelper.js +35 -1084
  80. package/built/src/helpers/SQLHelper.js.map +1 -1
  81. package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -1
  82. package/built/src/helpers/prompts/AwsPromptHelper.js +93 -2
  83. package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -1
  84. package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -1
  85. package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -1
  86. package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -1
  87. package/built/src/helpers/prompts/RdsPromptHelper.js +1 -1
  88. package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -1
  89. package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -1
  90. package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -1
  91. package/built/src/helpers/sql/dynamoConversion.d.ts +2 -0
  92. package/built/src/helpers/sql/dynamoConversion.js +27 -0
  93. package/built/src/helpers/sql/dynamoConversion.js.map +1 -0
  94. package/built/src/helpers/sql/formatQuery.d.ts +6 -0
  95. package/built/src/helpers/sql/formatQuery.js +45 -0
  96. package/built/src/helpers/sql/formatQuery.js.map +1 -0
  97. package/built/src/helpers/sql/mutationQuery.d.ts +54 -0
  98. package/built/src/helpers/sql/mutationQuery.js +250 -0
  99. package/built/src/helpers/sql/mutationQuery.js.map +1 -0
  100. package/built/src/helpers/sql/parameterNormalizer.d.ts +16 -0
  101. package/built/src/helpers/sql/parameterNormalizer.js +166 -0
  102. package/built/src/helpers/sql/parameterNormalizer.js.map +1 -0
  103. package/built/src/helpers/sql/queryParser.d.ts +6 -0
  104. package/built/src/helpers/sql/queryParser.js +239 -0
  105. package/built/src/helpers/sql/queryParser.js.map +1 -0
  106. package/built/src/helpers/sql/quote.d.ts +17 -0
  107. package/built/src/helpers/sql/quote.js +140 -0
  108. package/built/src/helpers/sql/quote.js.map +1 -0
  109. package/built/src/helpers/sql/selectQuery.d.ts +24 -0
  110. package/built/src/helpers/sql/selectQuery.js +262 -0
  111. package/built/src/helpers/sql/selectQuery.js.map +1 -0
  112. package/built/src/resource/aws.d.ts +106 -0
  113. package/built/src/resource/aws.js +219 -0
  114. package/built/src/resource/aws.js.map +1 -0
  115. package/built/src/resource/base.d.ts +28 -0
  116. package/built/src/resource/base.js +76 -0
  117. package/built/src/resource/base.js.map +1 -0
  118. package/built/src/resource/connection.d.ts +35 -0
  119. package/built/src/resource/connection.js +52 -0
  120. package/built/src/resource/connection.js.map +1 -0
  121. package/built/src/resource/fromJson.d.ts +2 -0
  122. package/built/src/resource/fromJson.js +125 -0
  123. package/built/src/resource/fromJson.js.map +1 -0
  124. package/built/src/resource/iam.d.ts +70 -0
  125. package/built/src/resource/iam.js +175 -0
  126. package/built/src/resource/iam.js.map +1 -0
  127. package/built/src/resource/index.d.ts +8 -1
  128. package/built/src/resource/index.js +8 -1
  129. package/built/src/resource/index.js.map +1 -1
  130. package/built/src/resource/keyValue.d.ts +85 -0
  131. package/built/src/resource/keyValue.js +74 -0
  132. package/built/src/resource/keyValue.js.map +1 -0
  133. package/built/src/resource/rdb.d.ts +49 -0
  134. package/built/src/resource/rdb.js +155 -0
  135. package/built/src/resource/rdb.js.map +1 -0
  136. package/built/src/resource/types.d.ts +18 -0
  137. package/built/src/resource/types.js +3 -0
  138. package/built/src/resource/types.js.map +1 -0
  139. package/built/src/types/drivers/Keycloak.js +1 -1
  140. package/built/src/types/drivers/Keycloak.js.map +1 -1
  141. package/built/src/types/drivers/MemcachedParams.d.ts +0 -1
  142. package/built/src/types/drivers/ScanParams.d.ts +15 -1
  143. package/built/src/types/helpers/index.js +1 -1
  144. package/built/src/types/helpers/index.js.map +1 -1
  145. package/built/src/types/resource/AwsCfnStackAttributes.d.ts +164 -0
  146. package/built/src/types/resource/AwsCfnStackAttributes.js +56 -0
  147. package/built/src/types/resource/AwsCfnStackAttributes.js.map +1 -0
  148. package/built/src/types/resource/AwsSESIdentityAttributes.d.ts +17 -0
  149. package/built/src/types/resource/AwsSESIdentityAttributes.js +3 -0
  150. package/built/src/types/resource/AwsSESIdentityAttributes.js.map +1 -0
  151. package/built/src/types/resource/AwsSQSAttributes.d.ts +1 -0
  152. package/built/src/types/resource/AwsSecretAttributes.d.ts +6 -0
  153. package/built/src/types/resource/AwsSecretAttributes.js +3 -0
  154. package/built/src/types/resource/AwsSecretAttributes.js.map +1 -0
  155. package/built/src/types/resource/AwsServiceType.d.ts +4 -1
  156. package/built/src/types/resource/AwsServiceType.js +3 -0
  157. package/built/src/types/resource/AwsServiceType.js.map +1 -1
  158. package/built/src/types/resource/AwsSsmParameterAttributes.d.ts +12 -0
  159. package/built/src/types/resource/AwsSsmParameterAttributes.js +3 -0
  160. package/built/src/types/resource/AwsSsmParameterAttributes.js.map +1 -0
  161. package/built/src/types/resource/ConnectionSetting.d.ts +2 -2
  162. package/built/src/types/resource/ConnectionSetting.js.map +1 -1
  163. package/built/src/types/resource/MySQLColumnType.js +2 -2
  164. package/built/src/types/resource/MySQLColumnType.js.map +1 -1
  165. package/built/src/types/resource/OracleColumnType.js +2 -2
  166. package/built/src/types/resource/OracleColumnType.js.map +1 -1
  167. package/built/src/types/resource/PartiQLAttrType.js.map +1 -1
  168. package/built/src/types/resource/PostgresColumnType.js +2 -2
  169. package/built/src/types/resource/PostgresColumnType.js.map +1 -1
  170. package/built/src/types/resource/ResourceType.d.ts +5 -0
  171. package/built/src/types/resource/ResourceType.js +5 -0
  172. package/built/src/types/resource/ResourceType.js.map +1 -1
  173. package/built/src/types/resource/SQLServerColumnType.js +2 -2
  174. package/built/src/types/resource/SQLServerColumnType.js.map +1 -1
  175. package/built/src/types/resource/index.d.ts +4 -0
  176. package/built/src/types/resource/index.js +4 -0
  177. package/built/src/types/resource/index.js.map +1 -1
  178. package/built/src/types/utils/index.js +2 -2
  179. package/built/src/types/utils/index.js.map +1 -1
  180. package/built/src/utils/base.js +1 -1
  181. package/built/src/utils/base.js.map +1 -1
  182. package/built/src/utils/cfn/applicationDiagram.d.ts +2 -0
  183. package/built/src/utils/cfn/applicationDiagram.js +174 -0
  184. package/built/src/utils/cfn/applicationDiagram.js.map +1 -0
  185. package/built/src/utils/cfn/applicationRelations.d.ts +28 -0
  186. package/built/src/utils/cfn/applicationRelations.js +430 -0
  187. package/built/src/utils/cfn/applicationRelations.js.map +1 -0
  188. package/built/src/utils/cfn/cfnDependencyGraphDiagram.d.ts +2 -0
  189. package/built/src/utils/cfn/cfnDependencyGraphDiagram.js +198 -0
  190. package/built/src/utils/cfn/cfnDependencyGraphDiagram.js.map +1 -0
  191. package/built/src/utils/cfn/deploymentTopology.d.ts +132 -0
  192. package/built/src/utils/cfn/deploymentTopology.js +637 -0
  193. package/built/src/utils/cfn/deploymentTopology.js.map +1 -0
  194. package/built/src/utils/cfn/diagramFileModel.d.ts +2 -0
  195. package/built/src/utils/cfn/diagramFileModel.js +178 -0
  196. package/built/src/utils/cfn/diagramFileModel.js.map +1 -0
  197. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.d.ts +3 -0
  198. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js +174 -0
  199. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js.map +1 -0
  200. package/built/src/utils/cfn/drawio/commonCells.d.ts +22 -0
  201. package/built/src/utils/cfn/drawio/commonCells.js +83 -0
  202. package/built/src/utils/cfn/drawio/commonCells.js.map +1 -0
  203. package/built/src/utils/cfn/drawio/edgeRouting.d.ts +34 -0
  204. package/built/src/utils/cfn/drawio/edgeRouting.js +77 -0
  205. package/built/src/utils/cfn/drawio/edgeRouting.js.map +1 -0
  206. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.d.ts +3 -0
  207. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js +812 -0
  208. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js.map +1 -0
  209. package/built/src/utils/cfn/drawioApplicationDiagram.d.ts +3 -0
  210. package/built/src/utils/cfn/drawioApplicationDiagram.js +455 -0
  211. package/built/src/utils/cfn/drawioApplicationDiagram.js.map +1 -0
  212. package/built/src/utils/cfn/drawioInfrastructureDiagrams.d.ts +2 -0
  213. package/built/src/utils/cfn/drawioInfrastructureDiagrams.js +10 -0
  214. package/built/src/utils/cfn/drawioInfrastructureDiagrams.js.map +1 -0
  215. package/built/src/utils/cfn/drawioXml.d.ts +1 -0
  216. package/built/src/utils/cfn/drawioXml.js +11 -0
  217. package/built/src/utils/cfn/drawioXml.js.map +1 -0
  218. package/built/src/utils/cfn/generateDiagram.d.ts +2 -0
  219. package/built/src/utils/cfn/generateDiagram.js +22 -0
  220. package/built/src/utils/cfn/generateDiagram.js.map +1 -0
  221. package/built/src/utils/cfn/icons.d.ts +1 -0
  222. package/built/src/utils/cfn/icons.js +60 -0
  223. package/built/src/utils/cfn/icons.js.map +1 -0
  224. package/built/src/utils/cfn/index.d.ts +11 -0
  225. package/built/src/utils/cfn/index.js +34 -0
  226. package/built/src/utils/cfn/index.js.map +1 -0
  227. package/built/src/utils/cfn/intrinsics.d.ts +12 -0
  228. package/built/src/utils/cfn/intrinsics.js +158 -0
  229. package/built/src/utils/cfn/intrinsics.js.map +1 -0
  230. package/built/src/utils/cfn/mermaidFlowchart.d.ts +3 -0
  231. package/built/src/utils/cfn/mermaidFlowchart.js +14 -0
  232. package/built/src/utils/cfn/mermaidFlowchart.js.map +1 -0
  233. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.d.ts +27 -0
  234. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js +409 -0
  235. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js.map +1 -0
  236. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.d.ts +2 -0
  237. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js +286 -0
  238. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map +1 -0
  239. package/built/src/utils/cfn/naming.d.ts +7 -0
  240. package/built/src/utils/cfn/naming.js +33 -0
  241. package/built/src/utils/cfn/naming.js.map +1 -0
  242. package/built/src/utils/cfn/resourceDependencies.d.ts +2 -0
  243. package/built/src/utils/cfn/resourceDependencies.js +33 -0
  244. package/built/src/utils/cfn/resourceDependencies.js.map +1 -0
  245. package/built/src/utils/cfn/templateParsing.d.ts +3 -0
  246. package/built/src/utils/cfn/templateParsing.js +58 -0
  247. package/built/src/utils/cfn/templateParsing.js.map +1 -0
  248. package/built/src/utils/cfn/viewpoints.d.ts +3 -0
  249. package/built/src/utils/cfn/viewpoints.js +122 -0
  250. package/built/src/utils/cfn/viewpoints.js.map +1 -0
  251. package/built/src/utils/csv.js.map +1 -1
  252. package/built/src/utils/dbType.js.map +1 -1
  253. package/built/src/utils/diagramLayout/elkLayoutEngine.d.ts +3 -0
  254. package/built/src/utils/diagramLayout/elkLayoutEngine.js +199 -0
  255. package/built/src/utils/diagramLayout/elkLayoutEngine.js.map +1 -0
  256. package/built/src/utils/diagramLayout/index.d.ts +4 -0
  257. package/built/src/utils/diagramLayout/index.js +13 -0
  258. package/built/src/utils/diagramLayout/index.js.map +1 -0
  259. package/built/src/utils/diagramLayout/normalizeLayout.d.ts +33 -0
  260. package/built/src/utils/diagramLayout/normalizeLayout.js +116 -0
  261. package/built/src/utils/diagramLayout/normalizeLayout.js.map +1 -0
  262. package/built/src/utils/diagramLayout/types.d.ts +64 -0
  263. package/built/src/utils/diagramLayout/types.js +3 -0
  264. package/built/src/utils/diagramLayout/types.js.map +1 -0
  265. package/built/src/utils/drawio/drawioXml.d.ts +24 -0
  266. package/built/src/utils/drawio/drawioXml.js +47 -0
  267. package/built/src/utils/drawio/drawioXml.js.map +1 -0
  268. package/built/src/utils/drawio/index.d.ts +2 -0
  269. package/built/src/utils/drawio/index.js +10 -0
  270. package/built/src/utils/drawio/index.js.map +1 -0
  271. package/built/src/utils/driverUtil.d.ts +1 -1
  272. package/built/src/utils/driverUtil.js.map +1 -1
  273. package/built/src/utils/er/erDiagramDrawioGenerator.d.ts +26 -0
  274. package/built/src/utils/er/erDiagramDrawioGenerator.js +99 -0
  275. package/built/src/utils/er/erDiagramDrawioGenerator.js.map +1 -0
  276. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.d.ts +2 -0
  277. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js +103 -0
  278. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js.map +1 -0
  279. package/built/src/utils/er/erDiagramGenerator.d.ts +7 -0
  280. package/built/src/utils/er/erDiagramGenerator.js +321 -0
  281. package/built/src/utils/er/erDiagramGenerator.js.map +1 -0
  282. package/built/src/utils/er/index.d.ts +4 -0
  283. package/built/src/utils/er/index.js +13 -0
  284. package/built/src/utils/er/index.js.map +1 -0
  285. package/built/src/utils/er/types.d.ts +31 -0
  286. package/built/src/utils/er/types.js +3 -0
  287. package/built/src/utils/er/types.js.map +1 -0
  288. package/built/src/utils/index.d.ts +2 -0
  289. package/built/src/utils/index.js +2 -0
  290. package/built/src/utils/index.js.map +1 -1
  291. package/built/src/utils/log/LogParser.js.map +1 -1
  292. package/built/src/utils/log/buildSqlExecutions.js +3 -4
  293. package/built/src/utils/log/buildSqlExecutions.js.map +1 -1
  294. package/built/src/utils/log/classify/classifyEvent.js +2 -3
  295. package/built/src/utils/log/classify/classifyEvent.js.map +1 -1
  296. package/built/src/utils/log/detect/presetDetector.js +4 -5
  297. package/built/src/utils/log/detect/presetDetector.js.map +1 -1
  298. package/built/src/utils/log/extract/runExtractors.js +1 -2
  299. package/built/src/utils/log/extract/runExtractors.js.map +1 -1
  300. package/built/src/utils/log/logSummary.js +5 -5
  301. package/built/src/utils/log/logSummary.js.map +1 -1
  302. package/built/src/utils/log/pattern/logEventPattern.js +2 -3
  303. package/built/src/utils/log/pattern/logEventPattern.js.map +1 -1
  304. package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js +2 -3
  305. package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js.map +1 -1
  306. package/built/src/utils/log/split/splitLogEvents.js +1 -2
  307. package/built/src/utils/log/split/splitLogEvents.js.map +1 -1
  308. package/built/src/utils/log/sql/removeSqlComments.js +2 -3
  309. package/built/src/utils/log/sql/removeSqlComments.js.map +1 -1
  310. package/built/src/utils/log/validator.js +8 -5
  311. package/built/src/utils/log/validator.js.map +1 -1
  312. package/package.json +21 -9
  313. package/built/src/resource/DbResource.d.ts +0 -355
  314. package/built/src/resource/DbResource.js +0 -755
  315. package/built/src/resource/DbResource.js.map +0 -1
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDiagramMultiAzDeploymentTrafficPathsAndProtection = void 0;
4
+ const deploymentTopology_1 = require("./deploymentTopology");
5
+ const diagramFileModel_1 = require("./diagramFileModel");
6
+ const multiAzDeploymentTrafficPathsAndProtection_1 = require("./multiAzDeploymentTrafficPathsAndProtection");
7
+ const mermaidFlowchart_1 = require("./mermaidFlowchart");
8
+ const naming_1 = require("./naming");
9
+ const pathStyle = {
10
+ 'client-request-response': { color: '#2563eb', width: 3, dashed: false },
11
+ 'egress-return': { color: '#0d9488', width: 2, dashed: false },
12
+ 'event-delivery': { color: '#d97706', width: 2, dashed: true },
13
+ 'data-access': { color: '#059669', width: 2, dashed: false },
14
+ 'resource-membership': { color: '#64748b', width: 2, dashed: true },
15
+ 'security-permission': { color: '#7c3aed', width: 2, dashed: true },
16
+ 'security-protection': { color: '#dc2626', width: 2, dashed: false },
17
+ };
18
+ const vpcId = (vpc) => `f${vpc.fileIndex}_vpc_${vpc.logicalId}`;
19
+ const resourceId = (vpc, fileIndex, logicalId) => `${vpcId(vpc)}_f${fileIndex}_${logicalId}`;
20
+ const subnetId = (vpc, subnet) => resourceId(vpc, subnet.fileIndex, subnet.logicalId);
21
+ const subnetResourceId = (vpc, subnet, fileIndex, logicalId) => `${subnetId(vpc, subnet)}_f${fileIndex}_${logicalId}`;
22
+ const resourceLabel = (logicalId, type, detail) => (0, mermaidFlowchart_1.mermaidTextCardLabel)(logicalId, [(0, naming_1.shortResourceTypeName)(type), detail].filter(Boolean).join(' · '));
23
+ const displayCidr = (value) => value.replace(/_(\d+)$/, '/$1').replace(/_/g, '.');
24
+ const displayAvailabilityZone = (value) => value.startsWith('Availability_Zone_')
25
+ ? value.replace(/_/g, ' ')
26
+ : value.replace(/_/g, '-');
27
+ const generateDiagramMultiAzDeploymentTrafficPathsAndProtection = (params) => {
28
+ var _a;
29
+ const diagramFiles = (0, diagramFileModel_1.parseDiagramFiles)(Object.assign(Object.assign({}, params), { options: { includeOutputs: true, includeParameters: true } }));
30
+ const structure = new deploymentTopology_1.CfnDeploymentTopologyStructure(diagramFiles);
31
+ const trafficPathsAndProtection = (0, multiAzDeploymentTrafficPathsAndProtection_1.buildMultiAzDeploymentTrafficPathsAndProtection)(diagramFiles, structure);
32
+ const contents = ['```mermaid', 'flowchart TB'];
33
+ const hasInternet = trafficPathsAndProtection.paths.some((path) => path.from.id === multiAzDeploymentTrafficPathsAndProtection_1.internetEndpoint.id ||
34
+ path.to.id === multiAzDeploymentTrafficPathsAndProtection_1.internetEndpoint.id);
35
+ if (hasInternet) {
36
+ contents.push(' internet(["Internet"])');
37
+ }
38
+ const containedMemberIds = new Set();
39
+ structure.vpcs.forEach((vpc) => renderVpc(contents, vpc, trafficPathsAndProtection, containedMemberIds));
40
+ if (structure.standaloneResources.length > 0) {
41
+ renderStandaloneResources(contents, structure.standaloneResources);
42
+ }
43
+ renderRegionalServices(contents, trafficPathsAndProtection.regionalNodes);
44
+ const renderedPaths = trafficPathsAndProtection.paths.filter((path) => !(path.kind === 'resource-membership' && containedMemberIds.has(path.from.id)));
45
+ const edgeStyles = [];
46
+ renderedPaths.forEach((path) => {
47
+ const source = nodeIdForEndpoint(structure, trafficPathsAndProtection.regionalNodes, path.from);
48
+ const target = nodeIdForEndpoint(structure, trafficPathsAndProtection.regionalNodes, path.to);
49
+ if (!source || !target)
50
+ return;
51
+ const edge = path.bidirectional
52
+ ? '<-->'
53
+ : pathStyle[path.kind].dashed
54
+ ? '-.->'
55
+ : '-->';
56
+ contents.push(` ${source} ${edge}|"${(0, mermaidFlowchart_1.escapeMermaidLabel)(path.label)}"| ${target}`);
57
+ const style = pathStyle[path.kind];
58
+ edgeStyles.push(` linkStyle ${edgeStyles.length} stroke:${style.color},stroke-width:${style.width}px${style.dashed ? ',stroke-dasharray:5 5' : ''}`);
59
+ });
60
+ contents.push(...edgeStyles);
61
+ const legendEntries = [
62
+ ['client-request-response', 'Blue: client request / response'],
63
+ ['egress-return', 'Teal: egress / return'],
64
+ ['event-delivery', 'Orange dashed: event delivery'],
65
+ ['data-access', 'Green: data access'],
66
+ ['resource-membership', 'Gray dashed: membership'],
67
+ ['security-permission', 'Purple dashed: security-group permission'],
68
+ ['security-protection', 'Red: security protection'],
69
+ ];
70
+ const usedPathKinds = new Set(renderedPaths.map((path) => path.kind));
71
+ const visibleLegendLabels = legendEntries
72
+ .filter(([kind]) => usedPathKinds.has(kind))
73
+ .map(([, label]) => label);
74
+ const showLegend = ((_a = params.options) === null || _a === void 0 ? void 0 : _a.includeLegend) !== false && visibleLegendLabels.length > 0;
75
+ if (showLegend) {
76
+ contents.push(' subgraph path_legend["Traffic and protection types"]');
77
+ contents.push(` path_legend_card["${(0, mermaidFlowchart_1.mermaidCompactLegendLabel)('Edge styles', visibleLegendLabels)}"]`);
78
+ contents.push(' end');
79
+ }
80
+ contents.push(' classDef resourceNode fill:#ffffff,stroke:#64748b,color:#0f172a,stroke-width:1px');
81
+ contents.push(' classDef internetNode fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e,stroke-width:2px');
82
+ contents.push(' classDef legendNode fill:#ffffff,stroke:#94a3b8,color:#334155,font-size:11px');
83
+ if (hasInternet)
84
+ contents.push(' class internet internetNode');
85
+ if (showLegend) {
86
+ contents.push(' class path_legend_card legendNode');
87
+ contents.push(' style path_legend fill:#f8fafc,stroke:#94a3b8,stroke-dasharray:4 3');
88
+ }
89
+ contents.push('```');
90
+ return contents.join('\n');
91
+ };
92
+ exports.generateDiagramMultiAzDeploymentTrafficPathsAndProtection = generateDiagramMultiAzDeploymentTrafficPathsAndProtection;
93
+ const renderVpc = (contents, vpc, trafficPathsAndProtection, containedMemberIds) => {
94
+ const groupId = vpcId(vpc);
95
+ contents.push(` subgraph ${groupId}["VPC ${(0, mermaidFlowchart_1.escapeMermaidLabel)(displayCidr(vpc.cidrBlock))}"]`);
96
+ contents.push(' direction TB');
97
+ vpc.availabilityZones.forEach((az) => renderAvailabilityZone(contents, vpc, az));
98
+ if (vpc.resources.length > 0) {
99
+ const vpcResourceEndpointIds = new Set(vpc.resources.map((resource) => `f${resource.fileIndex}_${resource.logicalId}`));
100
+ const memberParentId = new Map();
101
+ trafficPathsAndProtection.paths
102
+ .filter((path) => path.kind === 'resource-membership')
103
+ .forEach((path) => {
104
+ if (vpcResourceEndpointIds.has(path.from.id) && vpcResourceEndpointIds.has(path.to.id)) {
105
+ memberParentId.set(path.from.id, path.to.id);
106
+ }
107
+ });
108
+ const parentMembers = new Map();
109
+ vpc.resources.forEach((resource) => {
110
+ var _a;
111
+ const endpointId = `f${resource.fileIndex}_${resource.logicalId}`;
112
+ const parentId = memberParentId.get(endpointId);
113
+ if (!parentId)
114
+ return;
115
+ parentMembers.set(parentId, [...(_a = parentMembers.get(parentId)) !== null && _a !== void 0 ? _a : [], resource]);
116
+ containedMemberIds.add(endpointId);
117
+ });
118
+ const topLevelResources = vpc.resources.filter((resource) => !memberParentId.has(`f${resource.fileIndex}_${resource.logicalId}`));
119
+ const multiAzGroupId = `${groupId}_multi_az`;
120
+ contents.push(` subgraph ${multiAzGroupId}["Multi-AZ / VPC resources"]`);
121
+ topLevelResources.forEach((resource) => {
122
+ var _a, _b;
123
+ const endpointId = `f${resource.fileIndex}_${resource.logicalId}`;
124
+ const placement = [
125
+ resource.placement,
126
+ ...(resource.multiAz ? ['Multi-AZ'] : []),
127
+ ...((_a = resource.traits) !== null && _a !== void 0 ? _a : []),
128
+ ].join('; ');
129
+ const parentCellId = resourceId(vpc, resource.fileIndex, resource.logicalId);
130
+ const members = (_b = parentMembers.get(endpointId)) !== null && _b !== void 0 ? _b : [];
131
+ if (members.length === 0) {
132
+ contents.push(` ${parentCellId}["${resourceLabel(resource.logicalId, resource.detail.Type, placement)}"]`);
133
+ return;
134
+ }
135
+ contents.push(` subgraph ${parentCellId}["${resourceLabel(resource.logicalId, resource.detail.Type, placement)}"]`);
136
+ members.forEach((member) => {
137
+ contents.push(` ${resourceId(vpc, member.fileIndex, member.logicalId)}["${resourceLabel(member.logicalId, member.detail.Type)}"]`);
138
+ });
139
+ contents.push(' end');
140
+ contents.push(` style ${parentCellId} fill:#ffffff,stroke:#64748b,stroke-width:1px`);
141
+ });
142
+ contents.push(' end');
143
+ contents.push(` style ${multiAzGroupId} fill:#f5f3ff,stroke:#7c3aed,stroke-dasharray:4 3`);
144
+ }
145
+ vpc.loadBalancers.forEach((loadBalancer) => renderLoadBalancer(contents, vpc, loadBalancer));
146
+ if (vpc.igw) {
147
+ const type = 'AWS::EC2::InternetGateway';
148
+ contents.push(` ${resourceId(vpc, vpc.igw.fileIndex, vpc.igw.logicalId)}["${resourceLabel(vpc.igw.logicalId, type)}"]`);
149
+ }
150
+ contents.push(' end');
151
+ contents.push(` style ${groupId} fill:#eff6ff,stroke:#2563eb,stroke-width:2px`);
152
+ };
153
+ const renderAvailabilityZone = (contents, vpc, az) => {
154
+ const azId = `${vpcId(vpc)}_${az.id.replace(/[^a-zA-Z0-9_]/g, '_')}`;
155
+ contents.push(` subgraph ${azId}["Availability Zone ${(0, mermaidFlowchart_1.escapeMermaidLabel)(displayAvailabilityZone(az.id))}"]`);
156
+ az.subnets.forEach((subnet) => renderSubnet(contents, vpc, subnet));
157
+ contents.push(' end');
158
+ contents.push(` style ${azId} fill:#f8fafc,stroke:#64748b,stroke-width:1px`);
159
+ };
160
+ const renderSubnet = (contents, vpc, subnet) => {
161
+ const groupId = subnetId(vpc, subnet);
162
+ const title = `${subnet.connectivity[0].toUpperCase()}${subnet.connectivity.slice(1)} subnet ${displayCidr(subnet.cidrBlock)}`;
163
+ contents.push(` subgraph ${groupId}["${(0, mermaidFlowchart_1.escapeMermaidLabel)(title)}"]`);
164
+ subnet.resources.forEach((resource) => {
165
+ contents.push(` ${subnetResourceId(vpc, subnet, resource.fileIndex, resource.logicalId)}["${resourceLabel(resource.logicalId, resource.detail.Type)}"]`);
166
+ });
167
+ contents.push(' end');
168
+ const palette = {
169
+ public: 'fill:#e0f2fe,stroke:#0284c7',
170
+ private: 'fill:#fef3c7,stroke:#d97706',
171
+ isolated: 'fill:#dcfce7,stroke:#059669',
172
+ }[subnet.connectivity];
173
+ contents.push(` style ${groupId} ${palette},stroke-width:2px`);
174
+ };
175
+ const renderLoadBalancer = (contents, vpc, loadBalancer) => {
176
+ const lbType = 'AWS::ElasticLoadBalancingV2::LoadBalancer';
177
+ contents.push(` ${resourceId(vpc, loadBalancer.fileIndex, loadBalancer.logicalId)}["${resourceLabel(loadBalancer.logicalId, lbType, loadBalancer.internetFacing ? 'internet-facing' : 'internal')}"]`);
178
+ const renderedTargetGroups = new Set();
179
+ const renderTargetGroup = (targetGroup) => {
180
+ const id = resourceId(vpc, targetGroup.fileIndex, targetGroup.logicalId);
181
+ if (renderedTargetGroups.has(id))
182
+ return;
183
+ renderedTargetGroups.add(id);
184
+ const detail = [
185
+ targetGroup.protocol,
186
+ targetGroup.port ? `port ${targetGroup.port}` : undefined,
187
+ targetGroup.targetType
188
+ ? `target type ${targetGroup.targetType}`
189
+ : undefined,
190
+ ]
191
+ .filter(Boolean)
192
+ .join(' · ');
193
+ contents.push(` ${id}["${resourceLabel(targetGroup.logicalId, 'AWS::ElasticLoadBalancingV2::TargetGroup', detail)}"]`);
194
+ };
195
+ loadBalancer.listeners.forEach((listener) => {
196
+ const detail = [
197
+ listener.protocol,
198
+ listener.port ? `port ${listener.port}` : undefined,
199
+ ]
200
+ .filter(Boolean)
201
+ .join(' · ');
202
+ contents.push(` ${resourceId(vpc, listener.fileIndex, listener.logicalId)}["${resourceLabel(listener.logicalId, 'AWS::ElasticLoadBalancingV2::Listener', detail)}"]`);
203
+ listener.targetGroups.forEach(renderTargetGroup);
204
+ listener.rules.forEach((rule) => {
205
+ const detail = [
206
+ ...rule.conditions,
207
+ rule.priority ? `priority ${rule.priority}` : undefined,
208
+ ]
209
+ .filter(Boolean)
210
+ .join(' · ');
211
+ contents.push(` ${resourceId(vpc, rule.fileIndex, rule.logicalId)}["${resourceLabel(rule.logicalId, 'AWS::ElasticLoadBalancingV2::ListenerRule', detail)}"]`);
212
+ rule.targetGroups.forEach(renderTargetGroup);
213
+ });
214
+ });
215
+ loadBalancer.targetGroups.forEach(renderTargetGroup);
216
+ };
217
+ const renderRegionalServices = (contents, nodes) => {
218
+ if (nodes.length === 0)
219
+ return;
220
+ contents.push(' subgraph regional["Regional managed services"]');
221
+ nodes.forEach((node) => {
222
+ contents.push(` regional_${node.endpoint.id}["${resourceLabel(node.label, node.type)}"]`);
223
+ });
224
+ contents.push(' end');
225
+ contents.push(' style regional fill:#fff7ed,stroke:#ea580c,stroke-width:2px');
226
+ };
227
+ const renderStandaloneResources = (contents, standaloneResources) => {
228
+ contents.push(' subgraph standalone["Standalone resources (no resolvable VPC/subnet)"]');
229
+ standaloneResources.forEach((resource) => {
230
+ contents.push(` f${resource.fileIndex}_${resource.logicalId}["${resourceLabel(resource.logicalId, resource.detail.Type)}"]`);
231
+ });
232
+ contents.push(' end');
233
+ contents.push(' style standalone fill:#f8fafc,stroke:#64748b,stroke-dasharray:4 3');
234
+ };
235
+ const nodeIdForEndpoint = (structure, regionalNodes, endpoint) => {
236
+ var _a;
237
+ if (endpoint.id === multiAzDeploymentTrafficPathsAndProtection_1.internetEndpoint.id)
238
+ return 'internet';
239
+ for (const vpc of structure.vpcs) {
240
+ if (((_a = vpc.igw) === null || _a === void 0 ? void 0 : _a.fileIndex) === endpoint.fileIndex &&
241
+ vpc.igw.logicalId === endpoint.logicalId) {
242
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
243
+ }
244
+ if (vpc.resources.some((resource) => resource.fileIndex === endpoint.fileIndex &&
245
+ resource.logicalId === endpoint.logicalId)) {
246
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
247
+ }
248
+ for (const loadBalancer of vpc.loadBalancers) {
249
+ if (loadBalancer.fileIndex === endpoint.fileIndex &&
250
+ loadBalancer.logicalId === endpoint.logicalId) {
251
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
252
+ }
253
+ if (loadBalancer.targetGroups.some((candidate) => candidate.fileIndex === endpoint.fileIndex &&
254
+ candidate.logicalId === endpoint.logicalId)) {
255
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
256
+ }
257
+ for (const listener of loadBalancer.listeners) {
258
+ if (listener.fileIndex === endpoint.fileIndex &&
259
+ listener.logicalId === endpoint.logicalId) {
260
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
261
+ }
262
+ if (listener.rules.some((candidate) => candidate.fileIndex === endpoint.fileIndex &&
263
+ candidate.logicalId === endpoint.logicalId)) {
264
+ return resourceId(vpc, endpoint.fileIndex, endpoint.logicalId);
265
+ }
266
+ }
267
+ }
268
+ for (const az of vpc.availabilityZones) {
269
+ for (const subnet of az.subnets) {
270
+ if (subnet.resources.some((candidate) => candidate.fileIndex === endpoint.fileIndex &&
271
+ candidate.logicalId === endpoint.logicalId)) {
272
+ return subnetResourceId(vpc, subnet, endpoint.fileIndex, endpoint.logicalId);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ if (regionalNodes.some((node) => node.endpoint.id === endpoint.id)) {
278
+ return `regional_${endpoint.id}`;
279
+ }
280
+ if (structure.standaloneResources.some((resource) => resource.fileIndex === endpoint.fileIndex &&
281
+ resource.logicalId === endpoint.logicalId)) {
282
+ return `f${endpoint.fileIndex}_${endpoint.logicalId}`;
283
+ }
284
+ return undefined;
285
+ };
286
+ //# sourceMappingURL=multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiAzDeploymentTrafficPathsAndProtectionDiagram.js","sourceRoot":"","sources":["../../../../src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Refable } from '../../types';
2
+ import { CfnStringResolutionContext } from './intrinsics';
3
+ export declare const sanitizeLogicalId: (id: string) => string;
4
+ export declare const sanitizeAwsType: (s: string) => string;
5
+ export declare const shortResourceTypeName: (type: string) => string;
6
+ export declare const resourceServiceLabel: (logicalId: string, type: string, iconStr: string) => string;
7
+ export declare const getCidrBlock: (properties?: Record<string, Refable>, context?: CfnStringResolutionContext) => string;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCidrBlock = exports.resourceServiceLabel = exports.shortResourceTypeName = exports.sanitizeAwsType = exports.sanitizeLogicalId = void 0;
4
+ const intrinsics_1 = require("./intrinsics");
5
+ const sanitizeLogicalId = (id) => {
6
+ return id.replace(/["{}!_\]\\[]/g, '').replace(/[^a-zA-Z0-9_]/g, '_');
7
+ };
8
+ exports.sanitizeLogicalId = sanitizeLogicalId;
9
+ const sanitizeAwsType = (s) => {
10
+ return s.replace(/::/g, '_').replace(/[<>]/g, '_');
11
+ };
12
+ exports.sanitizeAwsType = sanitizeAwsType;
13
+ const shortResourceTypeName = (type) => {
14
+ const withoutGenericParam = type.split('<')[0];
15
+ const segments = withoutGenericParam.split('::');
16
+ return segments[segments.length - 1] || type;
17
+ };
18
+ exports.shortResourceTypeName = shortResourceTypeName;
19
+ const resourceServiceLabel = (logicalId, type, iconStr) => iconStr ? logicalId : `${logicalId} ${(0, exports.shortResourceTypeName)(type)}`;
20
+ exports.resourceServiceLabel = resourceServiceLabel;
21
+ const getCidrBlock = (properties, context) => {
22
+ var _a;
23
+ if (!properties || !properties.CidrBlock) {
24
+ return '';
25
+ }
26
+ if (typeof properties.CidrBlock === 'object') {
27
+ const resolved = (0, intrinsics_1.resolveCfnString)(properties.CidrBlock, context !== null && context !== void 0 ? context : {});
28
+ return typeof resolved === 'string' ? resolved.replace(/[/.]/g, '_') : '';
29
+ }
30
+ return ((_a = properties === null || properties === void 0 ? void 0 : properties.CidrBlock) !== null && _a !== void 0 ? _a : '').replace(/[/.]/g, '_');
31
+ };
32
+ exports.getCidrBlock = getCidrBlock;
33
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../../src/utils/cfn/naming.ts"],"names":[],"mappings":";;;AACA,6CAA4E;AAErE,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE;IACtD,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,MAAM,eAAe,GAAG,CAAC,CAAS,EAAU,EAAE;IACnD,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAUK,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/C,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AASK,MAAM,oBAAoB,GAAG,CAClC,SAAiB,EACjB,IAAY,EACZ,OAAe,EACP,EAAE,CACV,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAA,6BAAqB,EAAC,IAAI,CAAC,EAAE,CAAC;AALzD,QAAA,oBAAoB,wBAKqC;AAE/D,MAAM,YAAY,GAAG,CAC1B,UAAoC,EACpC,OAAoC,EAC5B,EAAE;;IACV,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAU7C,MAAM,QAAQ,GAAG,IAAA,6BAAgB,EAAC,UAAU,CAAC,SAAS,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC;QACvE,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC,CAAC;AArBW,QAAA,YAAY,gBAqBvB"}
@@ -0,0 +1,2 @@
1
+ import { AwsCfnStackResourceDependency, CloudFormationTemplate } from '../../types';
2
+ export declare const extractResourceDependencies: (cfnTemplate: CloudFormationTemplate) => Record<string, AwsCfnStackResourceDependency[]>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractResourceDependencies = void 0;
4
+ const intrinsics_1 = require("./intrinsics");
5
+ const extractResourceDependencies = (cfnTemplate) => {
6
+ const resourceIds = new Set(Object.keys(cfnTemplate.Resources));
7
+ const result = {};
8
+ Object.entries(cfnTemplate.Resources).forEach(([logicalId, resource]) => {
9
+ const deps = [];
10
+ const pushIfResource = (targetId, via) => {
11
+ if (resourceIds.has(targetId) && targetId !== logicalId) {
12
+ deps.push({ logicalId: targetId, via });
13
+ }
14
+ };
15
+ const dependsOn = resource.DependsOn;
16
+ if (typeof dependsOn === 'string') {
17
+ pushIfResource(dependsOn, 'DependsOn');
18
+ }
19
+ else if (Array.isArray(dependsOn)) {
20
+ dependsOn.forEach((dep) => pushIfResource(dep, 'DependsOn'));
21
+ }
22
+ if (resource.Properties) {
23
+ (0, intrinsics_1.walkIntrinsicRefs)(resource.Properties, (via, targetId) => pushIfResource(targetId, via));
24
+ }
25
+ const unique = Array.from(new Map(deps.map((d) => [`${d.logicalId}:${d.via}`, d])).values());
26
+ if (unique.length > 0) {
27
+ result[logicalId] = unique;
28
+ }
29
+ });
30
+ return result;
31
+ };
32
+ exports.extractResourceDependencies = extractResourceDependencies;
33
+ //# sourceMappingURL=resourceDependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceDependencies.js","sourceRoot":"","sources":["../../../../src/utils/cfn/resourceDependencies.ts"],"names":[],"mappings":";;;AAIA,6CAAiD;AAa1C,MAAM,2BAA2B,GAAG,CACzC,WAAmC,EACc,EAAE;IACnD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAoD,EAAE,CAAC;IAEnE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;QACtE,MAAM,IAAI,GAAoC,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,CACrB,QAAgB,EAChB,GAAyC,EACnC,EAAE;YACR,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,IAAA,8BAAiB,EAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CACvD,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC9B,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAClE,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAvCW,QAAA,2BAA2B,+BAuCtC"}
@@ -0,0 +1,3 @@
1
+ import { CloudFormationTemplate } from '../../types';
2
+ export declare const parseCfnYamlTemplate: (yamlText: string) => CloudFormationTemplate;
3
+ export declare const parseCfnJsonTemplate: (templateJSONString: string) => CloudFormationTemplate;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCfnJsonTemplate = exports.parseCfnYamlTemplate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
6
+ const CFN_INTRINSIC_TAGS = [
7
+ '!And',
8
+ '!If',
9
+ '!Not',
10
+ '!Equals',
11
+ '!Or',
12
+ '!FindInMap',
13
+ '!Base64',
14
+ '!Cidr',
15
+ '!Ref',
16
+ '!Sub',
17
+ '!GetAtt',
18
+ '!GetAZs',
19
+ '!ImportValue',
20
+ '!Select',
21
+ '!Split',
22
+ '!Join',
23
+ ];
24
+ const CFN_TAG_KINDS = ['scalar', 'sequence', 'mapping'];
25
+ const parseCfnYamlTemplate = (yamlText) => {
26
+ const customTags = CFN_INTRINSIC_TAGS.flatMap((tag) => CFN_TAG_KINDS.map((kind) => new js_yaml_1.default.Type(tag, {
27
+ kind,
28
+ construct: (data) => ({
29
+ [tag]: data,
30
+ }),
31
+ })));
32
+ const customSchema = js_yaml_1.default.DEFAULT_SCHEMA.extend(customTags);
33
+ const jsonObj = js_yaml_1.default.load(yamlText, { schema: customSchema });
34
+ return jsonObj;
35
+ };
36
+ exports.parseCfnYamlTemplate = parseCfnYamlTemplate;
37
+ const parseCfnJsonTemplate = (templateJSONString) => {
38
+ if (!templateJSONString || templateJSONString.trim() === '') {
39
+ throw new Error('TemplateBody is undefined or empty.');
40
+ }
41
+ let jsonObj;
42
+ try {
43
+ jsonObj = JSON.parse(templateJSONString);
44
+ }
45
+ catch (_a) {
46
+ throw new Error('TemplateBody is not a valid JSON string.');
47
+ }
48
+ if (typeof jsonObj !== 'object' || jsonObj === null) {
49
+ throw new Error('TemplateBody does not contain a valid JSON object.');
50
+ }
51
+ const template = jsonObj;
52
+ if (!template.Resources || typeof template.Resources !== 'object') {
53
+ throw new Error('TemplateBody does not contain valid Resources.');
54
+ }
55
+ return template;
56
+ };
57
+ exports.parseCfnJsonTemplate = parseCfnJsonTemplate;
58
+ //# sourceMappingURL=templateParsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateParsing.js","sourceRoot":"","sources":["../../../../src/utils/cfn/templateParsing.ts"],"names":[],"mappings":";;;;AAAA,8DAA2B;AAkB3B,MAAM,kBAAkB,GAAG;IACzB,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,KAAK;IACL,YAAY;IACZ,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,cAAc;IACd,SAAS;IACT,QAAQ;IACR,OAAO;CACR,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAQ1D,MAAM,oBAAoB,GAAG,CAClC,QAAgB,EACQ,EAAE;IAC1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACpD,aAAa,CAAC,GAAG,CACf,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,iBAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,IAAI;QACJ,SAAS,EAAE,CAAC,IAAa,EAA2B,EAAE,CAAC,CAAC;YACtD,CAAC,GAAG,CAAC,EAAE,IAAI;SACZ,CAAC;KACH,CAAC,CACL,CACF,CAAC;IACF,MAAM,YAAY,GAAG,iBAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,iBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAiC,CAAC;AAC3C,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B;AAEK,MAAM,oBAAoB,GAAG,CAClC,kBAA0B,EACF,EAAE;IAC1B,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAiC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
@@ -0,0 +1,3 @@
1
+ import { DiagramViewpoint } from '../../types';
2
+ export declare const isFocusResourceType: (viewpoint: DiagramViewpoint, cfnType: string) => boolean;
3
+ export declare const isFocusParameterOrOutput: (viewpoint: DiagramViewpoint) => boolean;
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFocusParameterOrOutput = exports.isFocusResourceType = void 0;
4
+ const APPLICATION_VIEW_FOCUS_TYPES = new Set([
5
+ 'AWS::CloudFront::Distribution',
6
+ 'AWS::WAFv2::WebACL',
7
+ 'AWS::WAFv2::WebACLAssociation',
8
+ 'AWS::WAF::WebACL',
9
+ 'AWS::WAFRegional::WebACL',
10
+ 'AWS::ElasticLoadBalancingV2::LoadBalancer',
11
+ 'AWS::ElasticLoadBalancingV2::Listener',
12
+ 'AWS::ElasticLoadBalancingV2::ListenerRule',
13
+ 'AWS::ElasticLoadBalancingV2::TargetGroup',
14
+ 'AWS::ApiGateway::RestApi',
15
+ 'AWS::ApiGateway::Resource',
16
+ 'AWS::ApiGateway::Method',
17
+ 'AWS::ApiGatewayV2::Api',
18
+ 'AWS::ApiGatewayV2::Route',
19
+ 'AWS::ApiGatewayV2::Integration',
20
+ 'AWS::Lambda::Function',
21
+ 'AWS::Lambda::EventSourceMapping',
22
+ 'AWS::ECS::Cluster',
23
+ 'AWS::ECS::Service',
24
+ 'AWS::ECS::TaskDefinition',
25
+ 'AWS::EC2::Instance',
26
+ 'AWS::StepFunctions::StateMachine',
27
+ 'AWS::SQS::Queue',
28
+ 'AWS::SNS::Topic',
29
+ 'AWS::SNS::Subscription',
30
+ 'AWS::Events::Rule',
31
+ 'AWS::Events::EventBus',
32
+ 'AWS::Kinesis::Stream',
33
+ 'AWS::MSK::Cluster',
34
+ 'AWS::AmazonMQ::Broker',
35
+ 'AWS::DynamoDB::Table',
36
+ 'AWS::S3::Bucket',
37
+ 'AWS::RDS::DBInstance',
38
+ 'AWS::RDS::DBCluster',
39
+ 'AWS::ElastiCache::CacheCluster',
40
+ 'AWS::ElastiCache::ReplicationGroup',
41
+ 'AWS::ElastiCache::ServerlessCache',
42
+ 'AWS::SES::EmailIdentity',
43
+ 'AWS::SES::Template',
44
+ 'AWS::SES::ConfigurationSet',
45
+ ]);
46
+ const INFRASTRUCTURE_VIEW_FOCUS_TYPES = new Set([
47
+ 'AWS::IAM::Role',
48
+ 'AWS::IAM::Policy',
49
+ 'AWS::IAM::ManagedPolicy',
50
+ 'AWS::Lambda::Permission',
51
+ 'AWS::EC2::VPC',
52
+ 'AWS::EC2::Subnet',
53
+ 'AWS::EC2::SecurityGroup',
54
+ 'AWS::EC2::NetworkAcl',
55
+ 'AWS::EC2::NetworkAclEntry',
56
+ 'AWS::EC2::SubnetNetworkAclAssociation',
57
+ 'AWS::EC2::RouteTable',
58
+ 'AWS::EC2::Route',
59
+ 'AWS::EC2::SubnetRouteTableAssociation',
60
+ 'AWS::EC2::InternetGateway',
61
+ 'AWS::EC2::VPCGatewayAttachment',
62
+ 'AWS::EC2::NatGateway',
63
+ 'AWS::EC2::EIP',
64
+ 'AWS::ApiGateway::Stage',
65
+ 'AWS::ApiGatewayV2::Stage',
66
+ 'AWS::Logs::LogGroup',
67
+ ]);
68
+ const DB_VIEW_FOCUS_TYPES = new Set([
69
+ 'AWS::RDS::DBInstance',
70
+ 'AWS::RDS::DBCluster',
71
+ 'AWS::RDS::DBProxy',
72
+ 'AWS::RDS::DBProxyTargetGroup',
73
+ 'AWS::ElastiCache::CacheCluster',
74
+ 'AWS::ElastiCache::ReplicationGroup',
75
+ 'AWS::ElastiCache::ServerlessCache',
76
+ 'AWS::DynamoDB::Table',
77
+ 'AWS::SecretsManager::Secret',
78
+ 'AWS::SSM::Parameter',
79
+ ]);
80
+ const SECURITY_VIEW_FOCUS_TYPES = new Set([
81
+ 'AWS::IAM::Role',
82
+ 'AWS::IAM::Policy',
83
+ 'AWS::IAM::ManagedPolicy',
84
+ 'AWS::S3::BucketPolicy',
85
+ 'AWS::SQS::QueuePolicy',
86
+ 'AWS::SNS::TopicPolicy',
87
+ 'AWS::KMS::Key',
88
+ 'AWS::KMS::Alias',
89
+ 'AWS::SecretsManager::Secret',
90
+ 'AWS::WAFv2::WebACL',
91
+ 'AWS::WAFv2::WebACLAssociation',
92
+ 'AWS::WAF::WebACL',
93
+ 'AWS::WAFRegional::WebACL',
94
+ 'AWS::Cognito::UserPool',
95
+ 'AWS::Cognito::UserPoolClient',
96
+ 'AWS::Cognito::IdentityPool',
97
+ 'AWS::ApiGateway::Authorizer',
98
+ 'AWS::ApiGatewayV2::Authorizer',
99
+ 'AWS::Lambda::Permission',
100
+ ]);
101
+ const OPERATIONS_VIEW_FOCUS_TYPES = new Set([
102
+ 'AWS::Logs::LogGroup',
103
+ 'AWS::CloudWatch::Alarm',
104
+ 'AWS::SQS::Queue',
105
+ 'AWS::Events::Rule',
106
+ 'AWS::Lambda::Function',
107
+ 'AWS::XRay::Group',
108
+ 'AWS::XRay::SamplingRule',
109
+ ]);
110
+ const FOCUS_TYPES_BY_VIEWPOINT = {
111
+ ApplicationView: APPLICATION_VIEW_FOCUS_TYPES,
112
+ InfrastructureView: INFRASTRUCTURE_VIEW_FOCUS_TYPES,
113
+ DBView: DB_VIEW_FOCUS_TYPES,
114
+ SecurityView: SECURITY_VIEW_FOCUS_TYPES,
115
+ OperationsView: OPERATIONS_VIEW_FOCUS_TYPES,
116
+ };
117
+ const isFocusResourceType = (viewpoint, cfnType) => viewpoint === 'CloudFormationView' ||
118
+ FOCUS_TYPES_BY_VIEWPOINT[viewpoint].has(cfnType);
119
+ exports.isFocusResourceType = isFocusResourceType;
120
+ const isFocusParameterOrOutput = (viewpoint) => viewpoint === 'CloudFormationView';
121
+ exports.isFocusParameterOrOutput = isFocusParameterOrOutput;
122
+ //# sourceMappingURL=viewpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewpoints.js","sourceRoot":"","sources":["../../../../src/utils/cfn/viewpoints.ts"],"names":[],"mappings":";;;AA6BA,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAS;IACnD,+BAA+B;IAC/B,oBAAoB;IACpB,+BAA+B;IAC/B,kBAAkB;IAClB,0BAA0B;IAC1B,2CAA2C;IAC3C,uCAAuC;IACvC,2CAA2C;IAC3C,0CAA0C;IAC1C,0BAA0B;IAC1B,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;IACxB,0BAA0B;IAC1B,gCAAgC;IAChC,uBAAuB;IACvB,iCAAiC;IACjC,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,oBAAoB;IACpB,kCAAkC;IAClC,iBAAiB;IACjB,iBAAiB;IACjB,wBAAwB;IACxB,mBAAmB;IACnB,uBAAuB;IACvB,sBAAsB;IACtB,mBAAmB;IACnB,uBAAuB;IACvB,sBAAsB;IACtB,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,gCAAgC;IAChC,oCAAoC;IACpC,mCAAmC;IACnC,yBAAyB;IACzB,oBAAoB;IACpB,4BAA4B;CAC7B,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAS;IACtD,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,yBAAyB;IACzB,eAAe;IACf,kBAAkB;IAClB,yBAAyB;IACzB,sBAAsB;IACtB,2BAA2B;IAC3B,uCAAuC;IACvC,sBAAsB;IACtB,iBAAiB;IACjB,uCAAuC;IACvC,2BAA2B;IAC3B,gCAAgC;IAChC,sBAAsB;IACtB,eAAe;IACf,wBAAwB;IACxB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS;IAC1C,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,8BAA8B;IAC9B,gCAAgC;IAChC,oCAAoC;IACpC,mCAAmC;IACnC,sBAAsB;IACtB,6BAA6B;IAC7B,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS;IAChD,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,eAAe;IACf,iBAAiB;IACjB,6BAA6B;IAC7B,oBAAoB;IACpB,+BAA+B;IAC/B,kBAAkB;IAClB,0BAA0B;IAC1B,wBAAwB;IACxB,8BAA8B;IAC9B,4BAA4B;IAC5B,6BAA6B;IAC7B,+BAA+B;IAC/B,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAS;IAClD,qBAAqB;IACrB,wBAAwB;IACxB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAG1B;IACF,eAAe,EAAE,4BAA4B;IAC7C,kBAAkB,EAAE,+BAA+B;IACnD,MAAM,EAAE,mBAAmB;IAC3B,YAAY,EAAE,yBAAyB;IACvC,cAAc,EAAE,2BAA2B;CAC5C,CAAC;AAOK,MAAM,mBAAmB,GAAG,CACjC,SAA2B,EAC3B,OAAe,EACN,EAAE,CACX,SAAS,KAAK,oBAAoB;IAClC,wBAAwB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AALtC,QAAA,mBAAmB,uBAKmB;AAQ5C,MAAM,wBAAwB,GAAG,CAAC,SAA2B,EAAW,EAAE,CAC/E,SAAS,KAAK,oBAAoB,CAAC;AADxB,QAAA,wBAAwB,4BACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":";;;;AAAA,0CAAsE;AACtE,yCAA2C;AAC3C,+CAAyB;AACzB,mCAAkC;AAClC,8CAA2C;AA+CpC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,OAAiB,EACc,EAAE;IACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC,CAAA,CAAC;AAPW,QAAA,gBAAgB,oBAO3B;AAEK,MAAM,kBAAkB,GAAG,CAChC,SAAiB,EACjB,OAAiB,EACc,EAAE;IACjC,OAAO,oBAAoB,CAAC,iBAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAA,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEF,MAAM,oBAAoB,GAAG,CAC3B,QAAkB,EAClB,OAAiB,EACc,EAAE;IACjC,IAAI,GAAG,GAAqC,SAAS,CAAC;IAEtD,MAAM,MAAM,GAAG,QAAQ;SACpB,IAAI,CACH,IAAA,iBAAK,kBACH,cAAc,EAAE,IAAI,EACpB,oBAAoB,EAAE,IAAI,IACvB,OAAO,EACV,CACH;SACA,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,kBAAY,EAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACvE,GAAG,GAAG,IAAI,0BAAoB,CAAC,IAAI,CAAC,CAAC;SACtC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEL,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KAClC;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;QACjB,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACzB,GAAG,CAAC,sBAAsB,EAAE,CAAC;KAC9B;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":";;;;AAAA,0CAAsE;AACtE,yCAA2C;AAC3C,+CAAyB;AACzB,mCAAkC;AAClC,8CAA2C;AA+CpC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,OAAiB,EACc,EAAE;IACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC,CAAA,CAAC;AAPW,QAAA,gBAAgB,oBAO3B;AAEK,MAAM,kBAAkB,GAAG,CAChC,SAAiB,EACjB,OAAiB,EACc,EAAE;IACjC,OAAO,oBAAoB,CAAC,iBAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAA,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEF,MAAM,oBAAoB,GAAG,CAC3B,QAAkB,EAClB,OAAiB,EACc,EAAE;IACjC,IAAI,GAAG,GAAqC,SAAS,CAAC;IAEtD,MAAM,MAAM,GAAG,QAAQ;SACpB,IAAI,CACH,IAAA,iBAAK,kBACH,cAAc,EAAE,IAAI,EACpB,oBAAoB,EAAE,IAAI,IACvB,OAAO,EACV,CACH;SACA,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,kBAAY,EAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACvE,GAAG,GAAG,IAAI,0BAAoB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEL,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QAClB,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACzB,GAAG,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dbType.js","sourceRoot":"","sources":["../../../src/utils/dbType.ts"],"names":[],"mappings":";;;AAAA,oCAA8D;AAEvD,MAAM,KAAK,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,cAAM,CAAC,GAAG,KAAK,MAAM,CAAC;AAA3D,QAAA,KAAK,SAAsD;AAEjE,MAAM,SAAS,GAAG,CAAC,MAAc,EAAW,EAAE;IACnD,QAAQ,MAAM,EAAE;QACd,KAAK,cAAM,CAAC,KAAK,CAAC;QAClB,KAAK,cAAM,CAAC,QAAQ,CAAC;QACrB,KAAK,cAAM,CAAC,SAAS,CAAC;QACtB,KAAK,cAAM,CAAC,MAAM,CAAC;QACnB,KAAK,cAAM,CAAC,MAAM;YAChB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,SAAS,aAUpB;AAkBK,MAAM,6BAA6B,GAAG,CAAC,MAAc,EAAW,EAAE;IACvE,QAAQ,MAAM,EAAE;QACd,KAAK,cAAM,CAAC,KAAK,CAAC;QAClB,KAAK,cAAM,CAAC,QAAQ,CAAC;QACrB,KAAK,cAAM,CAAC,MAAM;YAChB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC;AAEK,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,UAAuB,EACd,EAAE;IACX,IAAI,MAAM,KAAK,cAAM,CAAC,GAAG,IAAI,UAAU,KAAK,SAAS,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAc,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB"}
1
+ {"version":3,"file":"dbType.js","sourceRoot":"","sources":["../../../src/utils/dbType.ts"],"names":[],"mappings":";;;AAAA,oCAA8D;AAEvD,MAAM,KAAK,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,cAAM,CAAC,GAAG,KAAK,MAAM,CAAC;AAA3D,QAAA,KAAK,SAAsD;AAEjE,MAAM,SAAS,GAAG,CAAC,MAAc,EAAW,EAAE;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAM,CAAC,KAAK,CAAC;QAClB,KAAK,cAAM,CAAC,QAAQ,CAAC;QACrB,KAAK,cAAM,CAAC,SAAS,CAAC;QACtB,KAAK,cAAM,CAAC,MAAM,CAAC;QACnB,KAAK,cAAM,CAAC,MAAM;YAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,SAAS,aAUpB;AAkBK,MAAM,6BAA6B,GAAG,CAAC,MAAc,EAAW,EAAE;IACvE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAM,CAAC,KAAK,CAAC;QAClB,KAAK,cAAM,CAAC,QAAQ,CAAC;QACrB,KAAK,cAAM,CAAC,MAAM;YAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC;AAEK,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,UAAuB,EACd,EAAE;IACX,IAAI,MAAM,KAAK,cAAM,CAAC,GAAG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAc,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB"}
@@ -0,0 +1,3 @@
1
+ import type { LayoutEngineOptions, LayoutGraph, LayoutResult } from './types';
2
+ export declare const disposeAutoLayoutEngine: () => void;
3
+ export declare const runElkLayout: (graph: LayoutGraph, options?: LayoutEngineOptions) => Promise<LayoutResult>;