@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,26 @@
1
+ import { xmlEscape } from '../drawio';
2
+ import { ERDiagramParams, TableRelation } from './types';
3
+ export { xmlEscape };
4
+ export declare const relationLabel: (relation: TableRelation) => string;
5
+ export declare const erRelationshipLegendCells: (legendY: number) => string[];
6
+ export declare const wrapErDiagramPage: (cells: string[]) => string;
7
+ export declare const tableCell: (id: string, tableName: string, comment: string, columns: {
8
+ name: string;
9
+ key: string;
10
+ type: string;
11
+ nullable: boolean;
12
+ }[], x: number, y: number, width: number, height: number) => string;
13
+ export type ErTableColumnLayout = {
14
+ name: string;
15
+ key: string;
16
+ type: string;
17
+ nullable: boolean;
18
+ };
19
+ export type ErTableLayout = {
20
+ item: ERDiagramParams['tableItems'][number];
21
+ index: number;
22
+ columnsData: ErTableColumnLayout[];
23
+ height: number;
24
+ };
25
+ export declare const buildTableLayouts: (params: ERDiagramParams) => ErTableLayout[];
26
+ export declare const createDrawioErDiagram: (params: ERDiagramParams) => string;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDrawioErDiagram = exports.buildTableLayouts = exports.tableCell = exports.wrapErDiagramPage = exports.erRelationshipLegendCells = exports.relationLabel = exports.xmlEscape = void 0;
4
+ const rdh_1 = require("@l-v-yonsama/rdh");
5
+ const drawio_1 = require("../drawio");
6
+ Object.defineProperty(exports, "xmlEscape", { enumerable: true, get: function () { return drawio_1.xmlEscape; } });
7
+ const relationLabel = (relation) => `${relation.name}: ${relation.referencedFrom.columnName} ${relation.referencedFrom.cardinality} → ${relation.referenceTo.columnName} ${relation.referenceTo.cardinality}`;
8
+ exports.relationLabel = relationLabel;
9
+ const erRelationshipLegendCells = (legendY) => [
10
+ `<mxCell id="legend_title" value="Relationship legend" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;fontStyle=1;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="40" y="${legendY}" width="180" height="22" as="geometry"/></mxCell>`,
11
+ `<mxCell id="legend_solid_line" style="shape=line;html=1;rounded=0;strokeColor=#64748b;strokeWidth=2;" vertex="1" parent="1"><mxGeometry x="40" y="${legendY + 30}" width="42" height="2" as="geometry"/></mxCell>`,
12
+ `<mxCell id="legend_solid_text" value="Solid: identifying relationship" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;fontColor=#64748b;" vertex="1" parent="1"><mxGeometry x="92" y="${legendY + 19}" width="240" height="22" as="geometry"/></mxCell>`,
13
+ `<mxCell id="legend_dashed_line" style="shape=line;html=1;rounded=0;strokeColor=#64748b;strokeWidth=2;dashed=1;dashPattern=6 6;" vertex="1" parent="1"><mxGeometry x="40" y="${legendY + 60}" width="42" height="2" as="geometry"/></mxCell>`,
14
+ `<mxCell id="legend_dashed_text" value="Dashed: non-identifying relationship" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;fontColor=#64748b;" vertex="1" parent="1"><mxGeometry x="92" y="${legendY + 49}" width="260" height="22" as="geometry"/></mxCell>`,
15
+ ];
16
+ exports.erRelationshipLegendCells = erRelationshipLegendCells;
17
+ const wrapErDiagramPage = (cells) => (0, drawio_1.wrapDrawioPages)([(0, drawio_1.drawioPage)('er-diagram', 'ER Diagram', cells)]);
18
+ exports.wrapErDiagramPage = wrapErDiagramPage;
19
+ const tableCell = (id, tableName, comment, columns, x, y, width, height) => {
20
+ const header = comment ? `${tableName} — ${comment}` : tableName;
21
+ const headerHeight = 32;
22
+ const keyWidth = 68;
23
+ const rowHeight = 24;
24
+ const cells = columns.map((column, index) => {
25
+ const value = `${column.name}: ${column.type}`;
26
+ const rowY = headerHeight + index * rowHeight;
27
+ return [
28
+ `<mxCell id="${id}_key_${index}" value="${(0, drawio_1.xmlEscape)(column.key)}" style="text;html=1;align=left;verticalAlign=middle;strokeColor=#c9d7d7;fillColor=none;spacingLeft=8;fontStyle=1;fontSize=12;" vertex="1" parent="${id}"><mxGeometry x="0" y="${rowY}" width="${keyWidth}" height="${rowHeight}" as="geometry"/></mxCell>`,
29
+ `<mxCell id="${id}_column_${index}" value="${(0, drawio_1.xmlEscape)(value)}" style="text;html=1;align=left;verticalAlign=middle;strokeColor=#c9d7d7;fillColor=none;spacingLeft=8;" vertex="1" parent="${id}"><mxGeometry x="${keyWidth}" y="${rowY}" width="${width - keyWidth}" height="${rowHeight}" as="geometry"/></mxCell>`,
30
+ ].join('');
31
+ }).join('');
32
+ return `<mxCell id="${id}" value="${(0, drawio_1.xmlEscape)(header)}" style="swimlane;html=1;rounded=1;horizontal=1;startSize=${headerHeight};fillColor=#2aaea7;swimlaneFillColor=#f5fbfa;fontColor=#ffffff;strokeColor=#4b8f8d;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=nowrap;overflow=hidden;spacing=8;" vertex="1" parent="1"><mxGeometry x="${x}" y="${y}" width="${width}" height="${height}" as="geometry"/></mxCell>${cells}`;
33
+ };
34
+ exports.tableCell = tableCell;
35
+ const buildTableLayouts = (params) => params.tableItems.map((item, index) => {
36
+ const selectedColumns = item.tableRes.children.filter((column) => item.columnNames.includes(column.name));
37
+ const columnsData = selectedColumns.map((column) => {
38
+ var _a, _b;
39
+ const isForeignKey = Boolean((_b = (_a = item.tableRes.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) === null || _b === void 0 ? void 0 : _b[column.name]);
40
+ const key = column.primaryKey ? 'PK' : isForeignKey ? `FK${column.nullable ? '' : ' NN'}` : column.nullable ? '' : 'NN';
41
+ return {
42
+ name: column.name,
43
+ key,
44
+ type: (0, rdh_1.displayGeneralColumnType)(column.colType),
45
+ nullable: column.nullable,
46
+ };
47
+ });
48
+ return {
49
+ item,
50
+ index,
51
+ columnsData,
52
+ height: Math.max(90, 32 + columnsData.length * 24),
53
+ };
54
+ });
55
+ exports.buildTableLayouts = buildTableLayouts;
56
+ const createDrawioErDiagram = (params) => {
57
+ const tableWidth = 280;
58
+ const columnGap = 45;
59
+ const rowGap = 35;
60
+ const tableX = 40;
61
+ const tableY = 70;
62
+ const columns = 3;
63
+ const cells = [];
64
+ const tableIds = new Map();
65
+ const tableLayouts = (0, exports.buildTableLayouts)(params);
66
+ const rowHeights = [];
67
+ tableLayouts.forEach((layout) => {
68
+ var _a;
69
+ const rowIndex = Math.floor(layout.index / columns);
70
+ rowHeights[rowIndex] = Math.max((_a = rowHeights[rowIndex]) !== null && _a !== void 0 ? _a : 0, layout.height);
71
+ });
72
+ const rowOffsets = rowHeights.reduce((offsets, height, index) => {
73
+ offsets[index] = index === 0 ? tableY : offsets[index - 1] + rowHeights[index - 1] + rowGap;
74
+ return offsets;
75
+ }, []);
76
+ tableLayouts.forEach((layout) => {
77
+ var _a;
78
+ const tableId = `table_${layout.index}`;
79
+ tableIds.set(layout.item.tableRes.name, tableId);
80
+ const x = tableX + (layout.index % columns) * (tableWidth + columnGap);
81
+ const y = rowOffsets[Math.floor(layout.index / columns)];
82
+ cells.push((0, exports.tableCell)(tableId, layout.item.tableRes.name, (_a = layout.item.tableRes.comment) !== null && _a !== void 0 ? _a : '', layout.columnsData, x, y, tableWidth, layout.height));
83
+ });
84
+ params.relations.forEach((relation, index) => {
85
+ const source = tableIds.get(relation.referencedFrom.tableName);
86
+ const target = tableIds.get(relation.referenceTo.tableName);
87
+ if (!source || !target)
88
+ return;
89
+ const label = (0, exports.relationLabel)(relation);
90
+ const dashed = relation.dotted ? 'dashed=1;dashPattern=6 6;' : '';
91
+ cells.push(`<mxCell id="edge_${index}" value="${(0, drawio_1.xmlEscape)(label)}" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=2;${dashed}endArrow=block;" edge="1" parent="1" source="${source}" target="${target}"><mxGeometry relative="1" as="geometry"/></mxCell>`);
92
+ });
93
+ const diagramHeight = rowHeights.reduce((total, height) => total + height, 0) + Math.max(0, rowHeights.length - 1) * rowGap;
94
+ const legendY = tableY + diagramHeight + 20;
95
+ cells.push(...(0, exports.erRelationshipLegendCells)(legendY));
96
+ return (0, exports.wrapErDiagramPage)(cells);
97
+ };
98
+ exports.createDrawioErDiagram = createDrawioErDiagram;
99
+ //# sourceMappingURL=erDiagramDrawioGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erDiagramDrawioGenerator.js","sourceRoot":"","sources":["../../../../src/utils/er/erDiagramDrawioGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ERDiagramParams } from './types';
2
+ export declare const createDrawioErDiagramAsync: (params: ERDiagramParams) => Promise<string>;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDrawioErDiagramAsync = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const diagramLayout_1 = require("../diagramLayout");
6
+ const erDiagramDrawioGenerator_1 = require("./erDiagramDrawioGenerator");
7
+ const tableWidth = 280;
8
+ const headerHeight = 32;
9
+ const rowHeight = 24;
10
+ const columnPorts = (tableIndex, columnsData) => columnsData.flatMap((column, rowIndex) => {
11
+ const y = headerHeight + rowIndex * rowHeight + rowHeight / 2;
12
+ return [
13
+ { id: `table_${tableIndex}_${column.name}_left`, x: 0, y },
14
+ { id: `table_${tableIndex}_${column.name}_right`, x: tableWidth, y },
15
+ ];
16
+ });
17
+ const createDrawioErDiagramAsync = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
18
+ const tableLayouts = (0, erDiagramDrawioGenerator_1.buildTableLayouts)(params);
19
+ const tableIds = new Map();
20
+ const tableIndexByName = new Map();
21
+ const displayedColumnNamesByIndex = new Map();
22
+ tableLayouts.forEach((layout) => {
23
+ tableIds.set(layout.item.tableRes.name, `table_${layout.index}`);
24
+ tableIndexByName.set(layout.item.tableRes.name, layout.index);
25
+ displayedColumnNamesByIndex.set(layout.index, new Set(layout.columnsData.map((c) => c.name)));
26
+ });
27
+ const layoutNodes = tableLayouts.map((layout) => ({
28
+ id: `table_${layout.index}`,
29
+ width: tableWidth,
30
+ height: layout.height,
31
+ ports: columnPorts(layout.index, layout.columnsData),
32
+ }));
33
+ const layoutEdges = params.relations
34
+ .map((relation, index) => {
35
+ var _a, _b;
36
+ const fromIndex = tableIndexByName.get(relation.referencedFrom.tableName);
37
+ const toIndex = tableIndexByName.get(relation.referenceTo.tableName);
38
+ if (fromIndex === undefined || toIndex === undefined)
39
+ return undefined;
40
+ const label = (0, erDiagramDrawioGenerator_1.relationLabel)(relation);
41
+ const fromColumnShown = (_a = displayedColumnNamesByIndex.get(fromIndex)) === null || _a === void 0 ? void 0 : _a.has(relation.referencedFrom.columnName);
42
+ const toColumnShown = (_b = displayedColumnNamesByIndex.get(toIndex)) === null || _b === void 0 ? void 0 : _b.has(relation.referenceTo.columnName);
43
+ return {
44
+ id: `edge_${index}`,
45
+ source: {
46
+ nodeId: `table_${fromIndex}`,
47
+ portId: fromColumnShown ? `table_${fromIndex}_${relation.referencedFrom.columnName}_right` : undefined,
48
+ },
49
+ target: {
50
+ nodeId: `table_${toIndex}`,
51
+ portId: toColumnShown ? `table_${toIndex}_${relation.referenceTo.columnName}_left` : undefined,
52
+ },
53
+ label,
54
+ labelSize: (0, diagramLayout_1.estimateLabelSize)(label),
55
+ };
56
+ })
57
+ .filter((edge) => edge !== undefined);
58
+ const layout = yield (0, diagramLayout_1.computeAutoLayout)({
59
+ id: 'er-diagram',
60
+ direction: 'RIGHT',
61
+ nodes: layoutNodes,
62
+ edges: layoutEdges,
63
+ layoutOptions: {
64
+ 'elk.layered.spacing.nodeNodeBetweenLayers': '30',
65
+ },
66
+ });
67
+ const cells = [];
68
+ tableLayouts.forEach((tableLayout) => {
69
+ var _a;
70
+ const box = layout.nodes.get(`table_${tableLayout.index}`);
71
+ if (!box)
72
+ return;
73
+ cells.push((0, erDiagramDrawioGenerator_1.tableCell)(`table_${tableLayout.index}`, tableLayout.item.tableRes.name, (_a = tableLayout.item.tableRes.comment) !== null && _a !== void 0 ? _a : '', tableLayout.columnsData, box.x, box.y, tableWidth, box.height));
74
+ });
75
+ params.relations.forEach((relation, index) => {
76
+ const source = tableIds.get(relation.referencedFrom.tableName);
77
+ const target = tableIds.get(relation.referenceTo.tableName);
78
+ const edge = layout.edges.get(`edge_${index}`);
79
+ if (!source || !target || !edge)
80
+ return;
81
+ const sourceBox = layout.nodes.get(source);
82
+ const targetBox = layout.nodes.get(target);
83
+ const label = (0, erDiagramDrawioGenerator_1.relationLabel)(relation);
84
+ const dashed = relation.dotted ? 'dashed=1;dashPattern=6 6;' : '';
85
+ const anchorStyle = layout.usedAutoLayout && sourceBox && targetBox
86
+ ? (function buildAnchorStyle() {
87
+ const exit = (0, diagramLayout_1.anchorFraction)(edge.sourcePoint, sourceBox);
88
+ const entry = (0, diagramLayout_1.anchorFraction)(edge.targetPoint, targetBox);
89
+ return `exitX=${exit.x};exitY=${exit.y};exitDx=0;exitDy=0;entryX=${entry.x};entryY=${entry.y};entryDx=0;entryDy=0;`;
90
+ })()
91
+ : '';
92
+ const pointsXml = layout.usedAutoLayout && edge.bendPoints.length > 0
93
+ ? `<Array as="points">${edge.bendPoints.map((point) => `<mxPoint x="${point.x}" y="${point.y}"/>`).join('')}</Array>`
94
+ : '';
95
+ cells.push(`<mxCell id="edge_${index}" value="${(0, erDiagramDrawioGenerator_1.xmlEscape)(label)}" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=2;${dashed}endArrow=block;labelBackgroundColor=#ffffff;${anchorStyle}" edge="1" parent="1" source="${source}" target="${target}"><mxGeometry relative="1" as="geometry">${pointsXml}<mxPoint as="offset" y="-10"/></mxGeometry></mxCell>`);
96
+ });
97
+ const maxHeight = Math.max(70, ...[...layout.nodes.values()].map((box) => box.y + box.height));
98
+ const legendY = maxHeight + 40;
99
+ cells.push(...(0, erDiagramDrawioGenerator_1.erRelationshipLegendCells)(legendY));
100
+ return (0, erDiagramDrawioGenerator_1.wrapErDiagramPage)(cells);
101
+ });
102
+ exports.createDrawioErDiagramAsync = createDrawioErDiagramAsync;
103
+ //# sourceMappingURL=erDiagramDrawioGeneratorAuto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erDiagramDrawioGeneratorAuto.js","sourceRoot":"","sources":["../../../../src/utils/er/erDiagramDrawioGeneratorAuto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { DbSchema, DbTable } from '../../resource';
2
+ import { ERDiagramParams, ERDiagramSettingParams } from './types';
3
+ export { createErDiagram, createERDiagramParams, createFullSchemaERDiagramParams, createSimpleERDiagramParams, };
4
+ declare function createERDiagramParams(allTables: DbTable[], params: ERDiagramSettingParams): ERDiagramParams;
5
+ declare function createSimpleERDiagramParams(schema: DbSchema | undefined, tableRes: DbTable): ERDiagramParams;
6
+ declare function createFullSchemaERDiagramParams(schema: DbSchema): ERDiagramParams;
7
+ declare function createErDiagram(params: ERDiagramParams): string;
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createErDiagram = createErDiagram;
4
+ exports.createERDiagramParams = createERDiagramParams;
5
+ exports.createFullSchemaERDiagramParams = createFullSchemaERDiagramParams;
6
+ exports.createSimpleERDiagramParams = createSimpleERDiagramParams;
7
+ const rdh_1 = require("@l-v-yonsama/rdh");
8
+ const relationKey = (constraintName, fromTable, fromColumn, toTable, toColumn) => `${constraintName}|${fromTable}.${fromColumn}->${toTable}.${toColumn}`;
9
+ function createERDiagramParams(allTables, params) {
10
+ const tableItems = [];
11
+ const relations = [];
12
+ const seenRelationKeys = new Set();
13
+ params.items.forEach((item) => {
14
+ const tableRes = allTables.find((it) => it.name === item.tableName);
15
+ if (tableRes) {
16
+ tableItems.push({
17
+ tableRes,
18
+ columnNames: item.columnNames,
19
+ });
20
+ }
21
+ });
22
+ params.items.forEach((item) => {
23
+ var _a, _b;
24
+ const tableRes = allTables.find((it) => it.name === item.tableName);
25
+ if (tableRes) {
26
+ if ((_a = tableRes.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) {
27
+ for (const [columnName, v] of Object.entries(tableRes.foreignKeys.referenceTo)) {
28
+ const key = relationKey(v.constraintName, tableRes.name, columnName, v.tableName, v.columnName);
29
+ if (seenRelationKeys.has(key)) {
30
+ continue;
31
+ }
32
+ if (params.items.some((it) => it.tableName === v.tableName)) {
33
+ let dotted = true;
34
+ if (tableRes.getPrimaryColumnNames().length > 1 &&
35
+ tableRes.getPrimaryColumnNames().includes(columnName)) {
36
+ dotted = false;
37
+ }
38
+ const fromColumn = tableRes.getChildByName(columnName);
39
+ if (!fromColumn) {
40
+ continue;
41
+ }
42
+ const toTable = allTables.find((it) => it.name === v.tableName);
43
+ if (!toTable) {
44
+ continue;
45
+ }
46
+ const toColumn = toTable.getChildByName(v.columnName);
47
+ if (!toColumn) {
48
+ continue;
49
+ }
50
+ seenRelationKeys.add(key);
51
+ relations.push({
52
+ name: v.constraintName,
53
+ dotted,
54
+ referencedFrom: {
55
+ tableName: tableRes.name,
56
+ columnName,
57
+ cardinality: makeCardinality(tableRes, fromColumn),
58
+ },
59
+ referenceTo: {
60
+ tableName: v.tableName,
61
+ columnName: v.columnName,
62
+ cardinality: makeCardinality(toTable, toColumn),
63
+ },
64
+ });
65
+ }
66
+ }
67
+ }
68
+ if ((_b = tableRes.foreignKeys) === null || _b === void 0 ? void 0 : _b.referencedFrom) {
69
+ for (const [columnName, v] of Object.entries(tableRes.foreignKeys.referencedFrom)) {
70
+ const key = relationKey(v.constraintName, v.tableName, v.columnName, tableRes.name, columnName);
71
+ if (seenRelationKeys.has(key)) {
72
+ continue;
73
+ }
74
+ const fromTable = allTables.find((it) => it.name === v.tableName);
75
+ if (!fromTable) {
76
+ continue;
77
+ }
78
+ const fromColumn = fromTable.getChildByName(v.columnName);
79
+ if (!fromColumn) {
80
+ continue;
81
+ }
82
+ if (params.items.some((it) => it.tableName === v.tableName)) {
83
+ const toColumn = tableRes.getChildByName(columnName);
84
+ if (!toColumn) {
85
+ continue;
86
+ }
87
+ let dotted = true;
88
+ if (fromTable.getPrimaryColumnNames().length > 1 &&
89
+ fromTable.getPrimaryColumnNames().includes(v.columnName)) {
90
+ dotted = false;
91
+ }
92
+ seenRelationKeys.add(key);
93
+ relations.push({
94
+ name: v.constraintName,
95
+ dotted,
96
+ referencedFrom: {
97
+ tableName: fromTable.name,
98
+ columnName: v.columnName,
99
+ cardinality: makeCardinality(fromTable, fromColumn),
100
+ },
101
+ referenceTo: {
102
+ tableName: tableRes.name,
103
+ columnName: columnName,
104
+ cardinality: makeCardinality(tableRes, toColumn),
105
+ },
106
+ });
107
+ }
108
+ }
109
+ }
110
+ }
111
+ });
112
+ return {
113
+ title: params.title,
114
+ tableItems,
115
+ relations,
116
+ };
117
+ }
118
+ function createSimpleERDiagramParams(schema, tableRes) {
119
+ var _a, _b, _c;
120
+ const title = (_a = tableRes.comment) !== null && _a !== void 0 ? _a : tableRes.name;
121
+ const tableItems = [];
122
+ const relations = [];
123
+ const seenRelationKeys = new Set();
124
+ tableItems.push({ tableRes, columnNames: tableRes.children.map((it) => it.name) });
125
+ if (schema) {
126
+ if ((_b = tableRes.foreignKeys) === null || _b === void 0 ? void 0 : _b.referenceTo) {
127
+ for (const [columnName, v] of Object.entries(tableRes.foreignKeys.referenceTo)) {
128
+ const key = relationKey(v.constraintName, tableRes.name, columnName, v.tableName, v.columnName);
129
+ if (seenRelationKeys.has(key)) {
130
+ continue;
131
+ }
132
+ const fromColumn = tableRes.getChildByName(columnName);
133
+ if (!fromColumn) {
134
+ continue;
135
+ }
136
+ const toTable = schema.getChildByName(v.tableName);
137
+ if (!toTable) {
138
+ continue;
139
+ }
140
+ if (tableItems.every((it) => it.tableRes.name !== toTable.name)) {
141
+ tableItems.push({
142
+ tableRes: toTable,
143
+ columnNames: toTable.children.map((it) => it.name),
144
+ });
145
+ }
146
+ const toColumn = toTable.getChildByName(v.columnName);
147
+ if (!toColumn) {
148
+ continue;
149
+ }
150
+ let dotted = true;
151
+ if (tableRes.getPrimaryColumnNames().length > 1 &&
152
+ tableRes.getPrimaryColumnNames().includes(columnName)) {
153
+ dotted = false;
154
+ }
155
+ seenRelationKeys.add(key);
156
+ relations.push({
157
+ name: v.constraintName,
158
+ dotted,
159
+ referencedFrom: {
160
+ tableName: tableRes.name,
161
+ columnName,
162
+ cardinality: makeCardinality(tableRes, fromColumn),
163
+ },
164
+ referenceTo: {
165
+ tableName: v.tableName,
166
+ columnName: v.columnName,
167
+ cardinality: makeCardinality(toTable, toColumn),
168
+ },
169
+ });
170
+ }
171
+ }
172
+ if ((_c = tableRes.foreignKeys) === null || _c === void 0 ? void 0 : _c.referencedFrom) {
173
+ for (const [columnName, v] of Object.entries(tableRes.foreignKeys.referencedFrom)) {
174
+ const key = relationKey(v.constraintName, v.tableName, v.columnName, tableRes.name, columnName);
175
+ if (seenRelationKeys.has(key)) {
176
+ continue;
177
+ }
178
+ const fromTable = schema.getChildByName(v.tableName);
179
+ if (!fromTable) {
180
+ continue;
181
+ }
182
+ const fromColumn = fromTable.getChildByName(v.columnName);
183
+ if (!fromColumn) {
184
+ continue;
185
+ }
186
+ if (tableItems.every((it) => it.tableRes.name !== fromTable.name)) {
187
+ tableItems.push({
188
+ tableRes: fromTable,
189
+ columnNames: fromTable.children.map((it) => it.name),
190
+ });
191
+ }
192
+ const toColumn = tableRes.getChildByName(columnName);
193
+ if (!toColumn) {
194
+ continue;
195
+ }
196
+ let dotted = true;
197
+ if (fromTable.getPrimaryColumnNames().length > 1 &&
198
+ fromTable.getPrimaryColumnNames().includes(v.columnName)) {
199
+ dotted = false;
200
+ }
201
+ seenRelationKeys.add(key);
202
+ relations.push({
203
+ name: v.constraintName,
204
+ dotted,
205
+ referencedFrom: {
206
+ tableName: fromTable.name,
207
+ columnName: v.columnName,
208
+ cardinality: makeCardinality(fromTable, fromColumn),
209
+ },
210
+ referenceTo: {
211
+ tableName: tableRes.name,
212
+ columnName: columnName,
213
+ cardinality: makeCardinality(tableRes, toColumn),
214
+ },
215
+ });
216
+ }
217
+ }
218
+ }
219
+ return {
220
+ title,
221
+ tableItems,
222
+ relations,
223
+ };
224
+ }
225
+ function createFullSchemaERDiagramParams(schema) {
226
+ var _a;
227
+ const tables = schema.children;
228
+ return createERDiagramParams(tables, {
229
+ title: (_a = schema.comment) !== null && _a !== void 0 ? _a : schema.name,
230
+ items: tables.map((table) => ({
231
+ tableName: table.name,
232
+ columnNames: table.children.map((column) => column.name),
233
+ })),
234
+ });
235
+ }
236
+ function createErDiagram(params) {
237
+ const { title, tableItems, relations } = params;
238
+ let text = `\`\`\`mermaid\n---\ntitle: ${JSON.stringify(title)}\n---\n\nerDiagram\n\n`;
239
+ tableItems.forEach((tableItem) => {
240
+ const { tableRes, columnNames } = tableItem;
241
+ text += `${escapeQuot(tableRes.name)} {\n`;
242
+ tableRes.children
243
+ .filter((it) => columnNames.includes(it.name))
244
+ .forEach((columnRes) => {
245
+ var _a, _b;
246
+ let pkOrFk = '';
247
+ if (columnRes.primaryKey) {
248
+ pkOrFk = 'PK';
249
+ }
250
+ else if ((_b = (_a = tableRes.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) === null || _b === void 0 ? void 0 : _b[columnRes.name]) {
251
+ pkOrFk = 'FK';
252
+ }
253
+ const notNullNote = !columnRes.primaryKey && !columnRes.nullable ? 'NN' : '';
254
+ const comment = [columnRes.comment, notNullNote]
255
+ .filter(Boolean)
256
+ .join(' [');
257
+ const commentText = comment
258
+ ? `${comment}${notNullNote && columnRes.comment ? ']' : ''}`
259
+ : '';
260
+ if (commentText) {
261
+ text += ` ${(0, rdh_1.displayGeneralColumnType)(columnRes.colType)} ${escapeQuot(columnRes.name)} ${pkOrFk} "${escapeQuot(commentText)}"\n`;
262
+ }
263
+ else {
264
+ text += ` ${(0, rdh_1.displayGeneralColumnType)(columnRes.colType)} ${escapeQuot(columnRes.name)} ${pkOrFk}\n`;
265
+ }
266
+ });
267
+ text += `}\n\n`;
268
+ });
269
+ relations.forEach((relation) => {
270
+ const { name, dotted, referencedFrom, referenceTo } = relation;
271
+ text += `${escapeQuot(referencedFrom.tableName)} `;
272
+ switch (referencedFrom.cardinality) {
273
+ case '0':
274
+ text += '|o';
275
+ break;
276
+ case '1':
277
+ text += '||';
278
+ break;
279
+ case '>=0':
280
+ text += '}o';
281
+ break;
282
+ case '>=1':
283
+ text += '}|';
284
+ break;
285
+ }
286
+ text += dotted ? '..' : '--';
287
+ switch (referenceTo.cardinality) {
288
+ case '0':
289
+ text += 'o|';
290
+ break;
291
+ case '1':
292
+ text += '||';
293
+ break;
294
+ case '>=0':
295
+ text += 'o{';
296
+ break;
297
+ case '>=1':
298
+ text += '|{';
299
+ break;
300
+ }
301
+ text += ` ${escapeQuot(referenceTo.tableName)}: "${escapeQuot(name)}"\n`;
302
+ });
303
+ text += '```\n';
304
+ return text;
305
+ }
306
+ function makeCardinality(table, column) {
307
+ if (column.primaryKey) {
308
+ if (table.getPrimaryColumnNames().length > 1) {
309
+ return '>=1';
310
+ }
311
+ return '1';
312
+ }
313
+ else if (column.uniqKey) {
314
+ return column.nullable ? '0' : '1';
315
+ }
316
+ return column.nullable ? '>=0' : '>=1';
317
+ }
318
+ function escapeQuot(s) {
319
+ return s.replace(/"/g, '#quot;');
320
+ }
321
+ //# sourceMappingURL=erDiagramGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erDiagramGenerator.js","sourceRoot":"","sources":["../../../../src/utils/er/erDiagramGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { ERDiagramOutputFormat, ERDiagramParams, ERDiagramSettingItem, ERDiagramSettingParams, ERDiagramTableItem, TableColumn, TableRelation, } from './types';
2
+ export { createErDiagram, createERDiagramParams, createFullSchemaERDiagramParams, createSimpleERDiagramParams, } from './erDiagramGenerator';
3
+ export { createDrawioErDiagram } from './erDiagramDrawioGenerator';
4
+ export { createDrawioErDiagramAsync } from './erDiagramDrawioGeneratorAuto';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDrawioErDiagramAsync = exports.createDrawioErDiagram = exports.createSimpleERDiagramParams = exports.createFullSchemaERDiagramParams = exports.createERDiagramParams = exports.createErDiagram = void 0;
4
+ var erDiagramGenerator_1 = require("./erDiagramGenerator");
5
+ Object.defineProperty(exports, "createErDiagram", { enumerable: true, get: function () { return erDiagramGenerator_1.createErDiagram; } });
6
+ Object.defineProperty(exports, "createERDiagramParams", { enumerable: true, get: function () { return erDiagramGenerator_1.createERDiagramParams; } });
7
+ Object.defineProperty(exports, "createFullSchemaERDiagramParams", { enumerable: true, get: function () { return erDiagramGenerator_1.createFullSchemaERDiagramParams; } });
8
+ Object.defineProperty(exports, "createSimpleERDiagramParams", { enumerable: true, get: function () { return erDiagramGenerator_1.createSimpleERDiagramParams; } });
9
+ var erDiagramDrawioGenerator_1 = require("./erDiagramDrawioGenerator");
10
+ Object.defineProperty(exports, "createDrawioErDiagram", { enumerable: true, get: function () { return erDiagramDrawioGenerator_1.createDrawioErDiagram; } });
11
+ var erDiagramDrawioGeneratorAuto_1 = require("./erDiagramDrawioGeneratorAuto");
12
+ Object.defineProperty(exports, "createDrawioErDiagramAsync", { enumerable: true, get: function () { return erDiagramDrawioGeneratorAuto_1.createDrawioErDiagramAsync; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/er/index.ts"],"names":[],"mappings":";;;AAaA,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,2HAAA,qBAAqB,OAAA;AACrB,qIAAA,+BAA+B,OAAA;AAC/B,iIAAA,2BAA2B,OAAA;AAE7B,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA"}