@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.
- package/README.md +40 -0
- package/built/src/drivers/Auth0Driver.js +9 -9
- package/built/src/drivers/Auth0Driver.js.map +1 -1
- package/built/src/drivers/AwsDriver.d.ts +6 -0
- package/built/src/drivers/AwsDriver.js +87 -7
- package/built/src/drivers/AwsDriver.js.map +1 -1
- package/built/src/drivers/BaseDriver.d.ts +1 -1
- package/built/src/drivers/BaseDriver.js +4 -6
- package/built/src/drivers/BaseDriver.js.map +1 -1
- package/built/src/drivers/DBDriverResolver.js.map +1 -1
- package/built/src/drivers/DBError.js.map +1 -1
- package/built/src/drivers/KeycloakDriver.d.ts +2 -3
- package/built/src/drivers/KeycloakDriver.js +27 -262
- package/built/src/drivers/KeycloakDriver.js.map +1 -1
- package/built/src/drivers/MemcacheDriver.d.ts +0 -1
- package/built/src/drivers/MemcacheDriver.js +5 -5
- package/built/src/drivers/MemcacheDriver.js.map +1 -1
- package/built/src/drivers/MqttDriver.d.ts +0 -1
- package/built/src/drivers/MqttDriver.js +4 -4
- package/built/src/drivers/MqttDriver.js.map +1 -1
- package/built/src/drivers/MySQLDriver.js +12 -12
- package/built/src/drivers/MySQLDriver.js.map +1 -1
- package/built/src/drivers/OracleDriver.js +13 -13
- package/built/src/drivers/OracleDriver.js.map +1 -1
- package/built/src/drivers/PostgresDriver.js +22 -2
- package/built/src/drivers/PostgresDriver.js.map +1 -1
- package/built/src/drivers/RDSBaseDriver.d.ts +1 -1
- package/built/src/drivers/RDSBaseDriver.js +6 -6
- package/built/src/drivers/RDSBaseDriver.js.map +1 -1
- package/built/src/drivers/RedisDriver.js +2 -2
- package/built/src/drivers/RedisDriver.js.map +1 -1
- package/built/src/drivers/SQLServerDriver.js +7 -7
- package/built/src/drivers/SQLServerDriver.js.map +1 -1
- package/built/src/drivers/SQLiteDriver.d.ts +1 -1
- package/built/src/drivers/SQLiteDriver.js +7 -7
- package/built/src/drivers/SQLiteDriver.js.map +1 -1
- package/built/src/drivers/aws/AwsCloudFormationServiceClient.d.ts +35 -0
- package/built/src/drivers/aws/AwsCloudFormationServiceClient.js +197 -0
- package/built/src/drivers/aws/AwsCloudFormationServiceClient.js.map +1 -0
- package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +4 -7
- package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsDynamoServiceClient.js +8 -11
- package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsS3ServiceClient.js +28 -30
- package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSESServiceClient.js +23 -0
- package/built/src/drivers/aws/AwsSESServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSQSServiceClient.d.ts +1 -0
- package/built/src/drivers/aws/AwsSQSServiceClient.js +40 -8
- package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSecretsManagerServiceClient.d.ts +19 -0
- package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js +118 -0
- package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js.map +1 -0
- package/built/src/drivers/aws/AwsServiceClient.d.ts +1 -0
- package/built/src/drivers/aws/AwsServiceClient.js +13 -2
- package/built/src/drivers/aws/AwsServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSsmServiceClient.d.ts +19 -0
- package/built/src/drivers/aws/AwsSsmServiceClient.js +116 -0
- package/built/src/drivers/aws/AwsSsmServiceClient.js.map +1 -0
- package/built/src/drivers/aws/index.d.ts +3 -0
- package/built/src/drivers/aws/index.js +3 -0
- package/built/src/drivers/aws/index.js.map +1 -1
- package/built/src/drivers/keycloak/resourceTreeBuilder.d.ts +5 -0
- package/built/src/drivers/keycloak/resourceTreeBuilder.js +37 -0
- package/built/src/drivers/keycloak/resourceTreeBuilder.js.map +1 -0
- package/built/src/drivers/keycloak/scanResultBuilder.d.ts +8 -0
- package/built/src/drivers/keycloak/scanResultBuilder.js +212 -0
- package/built/src/drivers/keycloak/scanResultBuilder.js.map +1 -0
- package/built/src/drivers/memcache/helper.d.ts +0 -1
- package/built/src/drivers/memcache/helper.js +13 -14
- package/built/src/drivers/memcache/helper.js.map +1 -1
- package/built/src/helpers/ProposalHelper.js +3 -3
- package/built/src/helpers/ProposalHelper.js.map +1 -1
- package/built/src/helpers/RdhRecordRuleHelper.js.map +1 -1
- package/built/src/helpers/RuleEngine.d.ts +5 -5
- package/built/src/helpers/RuleEngine.js +14 -14
- package/built/src/helpers/RuleEngine.js.map +1 -1
- package/built/src/helpers/SQLHelper.d.ts +8 -115
- package/built/src/helpers/SQLHelper.js +35 -1084
- package/built/src/helpers/SQLHelper.js.map +1 -1
- package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/AwsPromptHelper.js +93 -2
- package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/RdsPromptHelper.js +1 -1
- package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -1
- package/built/src/helpers/sql/dynamoConversion.d.ts +2 -0
- package/built/src/helpers/sql/dynamoConversion.js +27 -0
- package/built/src/helpers/sql/dynamoConversion.js.map +1 -0
- package/built/src/helpers/sql/formatQuery.d.ts +6 -0
- package/built/src/helpers/sql/formatQuery.js +45 -0
- package/built/src/helpers/sql/formatQuery.js.map +1 -0
- package/built/src/helpers/sql/mutationQuery.d.ts +54 -0
- package/built/src/helpers/sql/mutationQuery.js +250 -0
- package/built/src/helpers/sql/mutationQuery.js.map +1 -0
- package/built/src/helpers/sql/parameterNormalizer.d.ts +16 -0
- package/built/src/helpers/sql/parameterNormalizer.js +166 -0
- package/built/src/helpers/sql/parameterNormalizer.js.map +1 -0
- package/built/src/helpers/sql/queryParser.d.ts +6 -0
- package/built/src/helpers/sql/queryParser.js +239 -0
- package/built/src/helpers/sql/queryParser.js.map +1 -0
- package/built/src/helpers/sql/quote.d.ts +17 -0
- package/built/src/helpers/sql/quote.js +140 -0
- package/built/src/helpers/sql/quote.js.map +1 -0
- package/built/src/helpers/sql/selectQuery.d.ts +24 -0
- package/built/src/helpers/sql/selectQuery.js +262 -0
- package/built/src/helpers/sql/selectQuery.js.map +1 -0
- package/built/src/resource/aws.d.ts +106 -0
- package/built/src/resource/aws.js +219 -0
- package/built/src/resource/aws.js.map +1 -0
- package/built/src/resource/base.d.ts +28 -0
- package/built/src/resource/base.js +76 -0
- package/built/src/resource/base.js.map +1 -0
- package/built/src/resource/connection.d.ts +35 -0
- package/built/src/resource/connection.js +52 -0
- package/built/src/resource/connection.js.map +1 -0
- package/built/src/resource/fromJson.d.ts +2 -0
- package/built/src/resource/fromJson.js +125 -0
- package/built/src/resource/fromJson.js.map +1 -0
- package/built/src/resource/iam.d.ts +70 -0
- package/built/src/resource/iam.js +175 -0
- package/built/src/resource/iam.js.map +1 -0
- package/built/src/resource/index.d.ts +8 -1
- package/built/src/resource/index.js +8 -1
- package/built/src/resource/index.js.map +1 -1
- package/built/src/resource/keyValue.d.ts +85 -0
- package/built/src/resource/keyValue.js +74 -0
- package/built/src/resource/keyValue.js.map +1 -0
- package/built/src/resource/rdb.d.ts +49 -0
- package/built/src/resource/rdb.js +155 -0
- package/built/src/resource/rdb.js.map +1 -0
- package/built/src/resource/types.d.ts +18 -0
- package/built/src/resource/types.js +3 -0
- package/built/src/resource/types.js.map +1 -0
- package/built/src/types/drivers/Keycloak.js +1 -1
- package/built/src/types/drivers/Keycloak.js.map +1 -1
- package/built/src/types/drivers/MemcachedParams.d.ts +0 -1
- package/built/src/types/drivers/ScanParams.d.ts +15 -1
- package/built/src/types/helpers/index.js +1 -1
- package/built/src/types/helpers/index.js.map +1 -1
- package/built/src/types/resource/AwsCfnStackAttributes.d.ts +164 -0
- package/built/src/types/resource/AwsCfnStackAttributes.js +56 -0
- package/built/src/types/resource/AwsCfnStackAttributes.js.map +1 -0
- package/built/src/types/resource/AwsSESIdentityAttributes.d.ts +17 -0
- package/built/src/types/resource/AwsSESIdentityAttributes.js +3 -0
- package/built/src/types/resource/AwsSESIdentityAttributes.js.map +1 -0
- package/built/src/types/resource/AwsSQSAttributes.d.ts +1 -0
- package/built/src/types/resource/AwsSecretAttributes.d.ts +6 -0
- package/built/src/types/resource/AwsSecretAttributes.js +3 -0
- package/built/src/types/resource/AwsSecretAttributes.js.map +1 -0
- package/built/src/types/resource/AwsServiceType.d.ts +4 -1
- package/built/src/types/resource/AwsServiceType.js +3 -0
- package/built/src/types/resource/AwsServiceType.js.map +1 -1
- package/built/src/types/resource/AwsSsmParameterAttributes.d.ts +12 -0
- package/built/src/types/resource/AwsSsmParameterAttributes.js +3 -0
- package/built/src/types/resource/AwsSsmParameterAttributes.js.map +1 -0
- package/built/src/types/resource/ConnectionSetting.d.ts +2 -2
- package/built/src/types/resource/ConnectionSetting.js.map +1 -1
- package/built/src/types/resource/MySQLColumnType.js +2 -2
- package/built/src/types/resource/MySQLColumnType.js.map +1 -1
- package/built/src/types/resource/OracleColumnType.js +2 -2
- package/built/src/types/resource/OracleColumnType.js.map +1 -1
- package/built/src/types/resource/PartiQLAttrType.js.map +1 -1
- package/built/src/types/resource/PostgresColumnType.js +2 -2
- package/built/src/types/resource/PostgresColumnType.js.map +1 -1
- package/built/src/types/resource/ResourceType.d.ts +5 -0
- package/built/src/types/resource/ResourceType.js +5 -0
- package/built/src/types/resource/ResourceType.js.map +1 -1
- package/built/src/types/resource/SQLServerColumnType.js +2 -2
- package/built/src/types/resource/SQLServerColumnType.js.map +1 -1
- package/built/src/types/resource/index.d.ts +4 -0
- package/built/src/types/resource/index.js +4 -0
- package/built/src/types/resource/index.js.map +1 -1
- package/built/src/types/utils/index.js +2 -2
- package/built/src/types/utils/index.js.map +1 -1
- package/built/src/utils/base.js +1 -1
- package/built/src/utils/base.js.map +1 -1
- package/built/src/utils/cfn/applicationDiagram.d.ts +2 -0
- package/built/src/utils/cfn/applicationDiagram.js +174 -0
- package/built/src/utils/cfn/applicationDiagram.js.map +1 -0
- package/built/src/utils/cfn/applicationRelations.d.ts +28 -0
- package/built/src/utils/cfn/applicationRelations.js +430 -0
- package/built/src/utils/cfn/applicationRelations.js.map +1 -0
- package/built/src/utils/cfn/cfnDependencyGraphDiagram.d.ts +2 -0
- package/built/src/utils/cfn/cfnDependencyGraphDiagram.js +198 -0
- package/built/src/utils/cfn/cfnDependencyGraphDiagram.js.map +1 -0
- package/built/src/utils/cfn/deploymentTopology.d.ts +132 -0
- package/built/src/utils/cfn/deploymentTopology.js +637 -0
- package/built/src/utils/cfn/deploymentTopology.js.map +1 -0
- package/built/src/utils/cfn/diagramFileModel.d.ts +2 -0
- package/built/src/utils/cfn/diagramFileModel.js +178 -0
- package/built/src/utils/cfn/diagramFileModel.js.map +1 -0
- package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.d.ts +3 -0
- package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js +174 -0
- package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js.map +1 -0
- package/built/src/utils/cfn/drawio/commonCells.d.ts +22 -0
- package/built/src/utils/cfn/drawio/commonCells.js +83 -0
- package/built/src/utils/cfn/drawio/commonCells.js.map +1 -0
- package/built/src/utils/cfn/drawio/edgeRouting.d.ts +34 -0
- package/built/src/utils/cfn/drawio/edgeRouting.js +77 -0
- package/built/src/utils/cfn/drawio/edgeRouting.js.map +1 -0
- package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.d.ts +3 -0
- package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js +812 -0
- package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js.map +1 -0
- package/built/src/utils/cfn/drawioApplicationDiagram.d.ts +3 -0
- package/built/src/utils/cfn/drawioApplicationDiagram.js +455 -0
- package/built/src/utils/cfn/drawioApplicationDiagram.js.map +1 -0
- package/built/src/utils/cfn/drawioInfrastructureDiagrams.d.ts +2 -0
- package/built/src/utils/cfn/drawioInfrastructureDiagrams.js +10 -0
- package/built/src/utils/cfn/drawioInfrastructureDiagrams.js.map +1 -0
- package/built/src/utils/cfn/drawioXml.d.ts +1 -0
- package/built/src/utils/cfn/drawioXml.js +11 -0
- package/built/src/utils/cfn/drawioXml.js.map +1 -0
- package/built/src/utils/cfn/generateDiagram.d.ts +2 -0
- package/built/src/utils/cfn/generateDiagram.js +22 -0
- package/built/src/utils/cfn/generateDiagram.js.map +1 -0
- package/built/src/utils/cfn/icons.d.ts +1 -0
- package/built/src/utils/cfn/icons.js +60 -0
- package/built/src/utils/cfn/icons.js.map +1 -0
- package/built/src/utils/cfn/index.d.ts +11 -0
- package/built/src/utils/cfn/index.js +34 -0
- package/built/src/utils/cfn/index.js.map +1 -0
- package/built/src/utils/cfn/intrinsics.d.ts +12 -0
- package/built/src/utils/cfn/intrinsics.js +158 -0
- package/built/src/utils/cfn/intrinsics.js.map +1 -0
- package/built/src/utils/cfn/mermaidFlowchart.d.ts +3 -0
- package/built/src/utils/cfn/mermaidFlowchart.js +14 -0
- package/built/src/utils/cfn/mermaidFlowchart.js.map +1 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.d.ts +27 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js +409 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js.map +1 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.d.ts +2 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js +286 -0
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map +1 -0
- package/built/src/utils/cfn/naming.d.ts +7 -0
- package/built/src/utils/cfn/naming.js +33 -0
- package/built/src/utils/cfn/naming.js.map +1 -0
- package/built/src/utils/cfn/resourceDependencies.d.ts +2 -0
- package/built/src/utils/cfn/resourceDependencies.js +33 -0
- package/built/src/utils/cfn/resourceDependencies.js.map +1 -0
- package/built/src/utils/cfn/templateParsing.d.ts +3 -0
- package/built/src/utils/cfn/templateParsing.js +58 -0
- package/built/src/utils/cfn/templateParsing.js.map +1 -0
- package/built/src/utils/cfn/viewpoints.d.ts +3 -0
- package/built/src/utils/cfn/viewpoints.js +122 -0
- package/built/src/utils/cfn/viewpoints.js.map +1 -0
- package/built/src/utils/csv.js.map +1 -1
- package/built/src/utils/dbType.js.map +1 -1
- package/built/src/utils/diagramLayout/elkLayoutEngine.d.ts +3 -0
- package/built/src/utils/diagramLayout/elkLayoutEngine.js +199 -0
- package/built/src/utils/diagramLayout/elkLayoutEngine.js.map +1 -0
- package/built/src/utils/diagramLayout/index.d.ts +4 -0
- package/built/src/utils/diagramLayout/index.js +13 -0
- package/built/src/utils/diagramLayout/index.js.map +1 -0
- package/built/src/utils/diagramLayout/normalizeLayout.d.ts +33 -0
- package/built/src/utils/diagramLayout/normalizeLayout.js +116 -0
- package/built/src/utils/diagramLayout/normalizeLayout.js.map +1 -0
- package/built/src/utils/diagramLayout/types.d.ts +64 -0
- package/built/src/utils/diagramLayout/types.js +3 -0
- package/built/src/utils/diagramLayout/types.js.map +1 -0
- package/built/src/utils/drawio/drawioXml.d.ts +24 -0
- package/built/src/utils/drawio/drawioXml.js +47 -0
- package/built/src/utils/drawio/drawioXml.js.map +1 -0
- package/built/src/utils/drawio/index.d.ts +2 -0
- package/built/src/utils/drawio/index.js +10 -0
- package/built/src/utils/drawio/index.js.map +1 -0
- package/built/src/utils/driverUtil.d.ts +1 -1
- package/built/src/utils/driverUtil.js.map +1 -1
- package/built/src/utils/er/erDiagramDrawioGenerator.d.ts +26 -0
- package/built/src/utils/er/erDiagramDrawioGenerator.js +99 -0
- package/built/src/utils/er/erDiagramDrawioGenerator.js.map +1 -0
- package/built/src/utils/er/erDiagramDrawioGeneratorAuto.d.ts +2 -0
- package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js +103 -0
- package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js.map +1 -0
- package/built/src/utils/er/erDiagramGenerator.d.ts +7 -0
- package/built/src/utils/er/erDiagramGenerator.js +321 -0
- package/built/src/utils/er/erDiagramGenerator.js.map +1 -0
- package/built/src/utils/er/index.d.ts +4 -0
- package/built/src/utils/er/index.js +13 -0
- package/built/src/utils/er/index.js.map +1 -0
- package/built/src/utils/er/types.d.ts +31 -0
- package/built/src/utils/er/types.js +3 -0
- package/built/src/utils/er/types.js.map +1 -0
- package/built/src/utils/index.d.ts +2 -0
- package/built/src/utils/index.js +2 -0
- package/built/src/utils/index.js.map +1 -1
- package/built/src/utils/log/LogParser.js.map +1 -1
- package/built/src/utils/log/buildSqlExecutions.js +3 -4
- package/built/src/utils/log/buildSqlExecutions.js.map +1 -1
- package/built/src/utils/log/classify/classifyEvent.js +2 -3
- package/built/src/utils/log/classify/classifyEvent.js.map +1 -1
- package/built/src/utils/log/detect/presetDetector.js +4 -5
- package/built/src/utils/log/detect/presetDetector.js.map +1 -1
- package/built/src/utils/log/extract/runExtractors.js +1 -2
- package/built/src/utils/log/extract/runExtractors.js.map +1 -1
- package/built/src/utils/log/logSummary.js +5 -5
- package/built/src/utils/log/logSummary.js.map +1 -1
- package/built/src/utils/log/pattern/logEventPattern.js +2 -3
- package/built/src/utils/log/pattern/logEventPattern.js.map +1 -1
- package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js +2 -3
- package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js.map +1 -1
- package/built/src/utils/log/split/splitLogEvents.js +1 -2
- package/built/src/utils/log/split/splitLogEvents.js.map +1 -1
- package/built/src/utils/log/sql/removeSqlComments.js +2 -3
- package/built/src/utils/log/sql/removeSqlComments.js.map +1 -1
- package/built/src/utils/log/validator.js +8 -5
- package/built/src/utils/log/validator.js.map +1 -1
- package/package.json +21 -9
- package/built/src/resource/DbResource.d.ts +0 -355
- package/built/src/resource/DbResource.js +0 -755
- 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,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"}
|