@l-v-yonsama/multi-platform-database-drivers 0.13.29 → 1.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 (92) hide show
  1. package/built/src/drivers/Auth0Driver.d.ts +3 -3
  2. package/built/src/drivers/Auth0Driver.js +10 -10
  3. package/built/src/drivers/Auth0Driver.js.map +1 -1
  4. package/built/src/drivers/BaseDriver.d.ts +2 -2
  5. package/built/src/drivers/KeycloakDriver.d.ts +3 -3
  6. package/built/src/drivers/KeycloakDriver.js +8 -8
  7. package/built/src/drivers/KeycloakDriver.js.map +1 -1
  8. package/built/src/drivers/MemcacheDriver.d.ts +3 -3
  9. package/built/src/drivers/MemcacheDriver.js +10 -9
  10. package/built/src/drivers/MemcacheDriver.js.map +1 -1
  11. package/built/src/drivers/MqttDriver.d.ts +5 -3
  12. package/built/src/drivers/MqttDriver.js +56 -5
  13. package/built/src/drivers/MqttDriver.js.map +1 -1
  14. package/built/src/drivers/MySQLDriver.js +5 -1
  15. package/built/src/drivers/MySQLDriver.js.map +1 -1
  16. package/built/src/drivers/PostgresDriver.js +3 -0
  17. package/built/src/drivers/PostgresDriver.js.map +1 -1
  18. package/built/src/drivers/RedisDriver.d.ts +4 -4
  19. package/built/src/drivers/RedisDriver.js +4 -4
  20. package/built/src/drivers/RedisDriver.js.map +1 -1
  21. package/built/src/drivers/SQLServerDriver.js +11 -2
  22. package/built/src/drivers/SQLServerDriver.js.map +1 -1
  23. package/built/src/drivers/SQLiteDriver.js +7 -0
  24. package/built/src/drivers/SQLiteDriver.js.map +1 -1
  25. package/built/src/drivers/aws/AwsCloudwatchServiceClient.d.ts +7 -5
  26. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +14 -15
  27. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
  28. package/built/src/drivers/aws/AwsDynamoServiceClient.d.ts +2 -4
  29. package/built/src/drivers/aws/AwsDynamoServiceClient.js +0 -5
  30. package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
  31. package/built/src/drivers/aws/AwsS3ServiceClient.d.ts +3 -3
  32. package/built/src/drivers/aws/AwsS3ServiceClient.js +6 -6
  33. package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
  34. package/built/src/drivers/aws/AwsSQSServiceClient.d.ts +3 -3
  35. package/built/src/drivers/aws/AwsSQSServiceClient.js +5 -4
  36. package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
  37. package/built/src/helpers/ProposalHelper.d.ts +5 -0
  38. package/built/src/helpers/ProposalHelper.js +275 -0
  39. package/built/src/helpers/ProposalHelper.js.map +1 -0
  40. package/built/src/helpers/SQLHelper.d.ts +4 -9
  41. package/built/src/helpers/SQLHelper.js +23 -391
  42. package/built/src/helpers/SQLHelper.js.map +1 -1
  43. package/built/src/helpers/index.d.ts +2 -0
  44. package/built/src/helpers/index.js +2 -0
  45. package/built/src/helpers/index.js.map +1 -1
  46. package/built/src/helpers/prompts/Auth0PromptHelper.d.ts +2 -0
  47. package/built/src/helpers/prompts/Auth0PromptHelper.js +45 -0
  48. package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -0
  49. package/built/src/helpers/prompts/AwsPromptHelper.d.ts +6 -0
  50. package/built/src/helpers/prompts/AwsPromptHelper.js +200 -0
  51. package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -0
  52. package/built/src/helpers/prompts/KeycloakPromptHelper.d.ts +2 -0
  53. package/built/src/helpers/prompts/KeycloakPromptHelper.js +38 -0
  54. package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -0
  55. package/built/src/helpers/prompts/MemcachePromptHelper.d.ts +2 -0
  56. package/built/src/helpers/prompts/MemcachePromptHelper.js +31 -0
  57. package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -0
  58. package/built/src/helpers/prompts/MqttPromptHelper.d.ts +2 -0
  59. package/built/src/helpers/prompts/MqttPromptHelper.js +31 -0
  60. package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -0
  61. package/built/src/helpers/prompts/RdsPromptHelper.d.ts +7 -0
  62. package/built/src/helpers/prompts/RdsPromptHelper.js +164 -0
  63. package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -0
  64. package/built/src/helpers/prompts/RedisPromptHelper.d.ts +2 -0
  65. package/built/src/helpers/prompts/RedisPromptHelper.js +22 -0
  66. package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -0
  67. package/built/src/helpers/prompts/SchemaPromptHelper.d.ts +2 -0
  68. package/built/src/helpers/prompts/SchemaPromptHelper.js +82 -0
  69. package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -0
  70. package/built/src/helpers/prompts/index.d.ts +8 -0
  71. package/built/src/helpers/prompts/index.js +12 -0
  72. package/built/src/helpers/prompts/index.js.map +1 -0
  73. package/built/src/helpers/prompts/promptFormatUtils.d.ts +1 -0
  74. package/built/src/helpers/prompts/promptFormatUtils.js +8 -0
  75. package/built/src/helpers/prompts/promptFormatUtils.js.map +1 -0
  76. package/built/src/resource/DbResource.d.ts +3 -1
  77. package/built/src/resource/DbResource.js +3 -0
  78. package/built/src/resource/DbResource.js.map +1 -1
  79. package/built/src/types/drivers/ScanParams.d.ts +66 -8
  80. package/built/src/types/helpers/index.d.ts +38 -1
  81. package/built/src/types/helpers/index.js.map +1 -1
  82. package/built/src/types/resource/AwsDynamoTableAttributes.d.ts +1 -0
  83. package/built/src/types/resource/ConnectionSetting.d.ts +12 -0
  84. package/built/src/types/resource/ConnectionSetting.js +9 -0
  85. package/built/src/types/resource/ConnectionSetting.js.map +1 -1
  86. package/built/src/types/resource/SQLServerAuthenticationType.d.ts +2 -1
  87. package/built/src/types/resource/SQLServerAuthenticationType.js +1 -0
  88. package/built/src/types/resource/SQLServerAuthenticationType.js.map +1 -1
  89. package/built/src/utils/dbType.d.ts +1 -0
  90. package/built/src/utils/dbType.js +11 -1
  91. package/built/src/utils/dbType.js.map +1 -1
  92. package/package.json +5 -7
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.separateMultipleQueries = exports.toCreateTableDDL = exports.needsQuoting = exports.wrapQuote = exports.wrapBackQuote = exports.wrapDoubleQuote = exports.wrapSingleQuote = exports.resolveLastOrderByColumn = exports.getResourcePositions = exports.getProposals = exports.createTableDefinisionsForPrompt = exports.normalizeSimpleParametersQuery = exports.normalizePositionedParametersQuery = exports.normalizeQuery = exports.parseQuery = exports.hasSetVariableClause = exports.toSafeQueryForPgsqlAst = exports.toViewDataNormalizedQuery = exports.toViewDataQuery = exports.createColumnNames = exports.createTableNames = exports.toCountRecordsQuery = exports.toViewRecordsQuery = exports.toDeleteStatement = exports.toUpdateStatement = exports.toInsertStatement = exports.createUndoChangeSQL = exports.formatQuery = exports.getSqlLanguage = void 0;
3
+ exports.toRdsDatabase = exports.separateMultipleQueries = exports.needsQuoting = exports.wrapQuote = exports.wrapBackQuote = exports.wrapDoubleQuote = exports.wrapSingleQuote = exports.normalizeSimpleParametersQuery = exports.normalizePositionedParametersQuery = exports.normalizeQuery = exports.isReadOnlyQuery = exports.parseQuery = exports.hasSetVariableClause = exports.toSafeQueryForPgsqlAst = exports.toViewDataNormalizedQuery = exports.toViewDataQuery = exports.createColumnNames = exports.createTableNames = exports.toCountRecordsQuery = exports.toViewRecordsQuery = exports.toDeleteStatement = exports.toUpdateStatement = exports.toInsertStatement = exports.createUndoChangeSQL = exports.formatQuery = exports.getSqlLanguage = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const rdh_1 = require("@l-v-yonsama/rdh");
6
6
  const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
@@ -512,7 +512,7 @@ const toSafeQueryForPgsqlAst = (query) => {
512
512
  replacedSql = replacedSql.replace(/\s*WAITFOR\s+DELAY\s+'([\d:]+)'/i, 'SELECT pg_sleep(1)');
513
513
  replacedSql = replacedSql.replace(/\bWITHIN\s+GROUP\s*\([^)]+?\)/gi, ' ');
514
514
  replacedSql = replacedSql.replace(/\.\[(notnull|from|table|to)\]/gi, '.a1');
515
- replacedSql = replacedSql.replace(/\bDATETIME/gi, 'TIMESTAMP');
515
+ replacedSql = replacedSql.replace(/\bDATETIME2?\b/gi, 'TIMESTAMP');
516
516
  replacedSql = replacedSql.replace(/\bAUTOINCREMENT/gi, '');
517
517
  replacedSql = replacedSql.replace(/\b(authorization)/i, '$1_1');
518
518
  replacedSql = replacedSql.replace(/\[([^\]]+)\]/g, '"$1"');
@@ -601,6 +601,26 @@ const parseQuery = (sql) => {
601
601
  return undefined;
602
602
  };
603
603
  exports.parseQuery = parseQuery;
604
+ const READ_ONLY_STATEMENT_TYPES = new Set([
605
+ 'select',
606
+ 'show',
607
+ 'union',
608
+ 'union all',
609
+ 'values',
610
+ ]);
611
+ const isReadOnlyQuery = (sql) => {
612
+ var _a;
613
+ const qst = (0, exports.parseQuery)(sql);
614
+ const type = (_a = qst === null || qst === void 0 ? void 0 : qst.ast) === null || _a === void 0 ? void 0 : _a.type;
615
+ if (!type) {
616
+ return false;
617
+ }
618
+ if (type === 'pragma') {
619
+ return !/\bpragma\s+[a-zA-Z0-9\-_.()]+\s*=\s*.+/i.test(sql);
620
+ }
621
+ return READ_ONLY_STATEMENT_TYPES.has(type);
622
+ };
623
+ exports.isReadOnlyQuery = isReadOnlyQuery;
604
624
  const normalizeQuery = ({ query, toPositionedParameter, toPositionalCharacter, bindParams, }) => {
605
625
  if (toPositionedParameter) {
606
626
  return (0, exports.normalizePositionedParametersQuery)(query, bindParams, toPositionalCharacter);
@@ -756,355 +776,11 @@ const normalizeSimpleParametersQuery = (query, bindParams) => {
756
776
  return { query: newLines.join('\n'), binds };
757
777
  };
758
778
  exports.normalizeSimpleParametersQuery = normalizeSimpleParametersQuery;
759
- const createTableDefinisionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
760
- const { db: idb, sql, rdsDriver } = params;
761
- const db = idb instanceof DbResource_1.RdsDatabase ? idb : toRdsDatabase(idb);
762
- try {
763
- if (db) {
764
- const qst = (0, exports.parseQuery)(sql);
765
- if (qst === undefined || qst.names === undefined) {
766
- return undefined;
767
- }
768
- const dbTableWithSchemas = [];
769
- const qnameList = [qst.names];
770
- if (qst.additionalNames) {
771
- qnameList.push(...qst.additionalNames);
772
- }
773
- qnameList.forEach(({ schemaName, tableName }) => {
774
- var _a, _b;
775
- const schemas = db.children.filter((it) => schemaName ? (0, rdh_1.equalsIgnoreCase)(it.name, schemaName) : true);
776
- for (const schema of schemas) {
777
- const tbl = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, tableName));
778
- if (tbl) {
779
- dbTableWithSchemas.push({ table: tbl, schemaName: schema.name });
780
- if ((_a = tbl.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) {
781
- Object.values(tbl.foreignKeys.referenceTo).forEach((refTo) => {
782
- const tblTo = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, refTo.tableName));
783
- if (tblTo &&
784
- dbTableWithSchemas.find((it) => it.table.name === tblTo.name) === undefined) {
785
- dbTableWithSchemas.push({
786
- table: tblTo,
787
- schemaName: schema.name,
788
- });
789
- }
790
- });
791
- }
792
- if ((_b = tbl.foreignKeys) === null || _b === void 0 ? void 0 : _b.referencedFrom) {
793
- Object.values(tbl.foreignKeys.referencedFrom).forEach((refFrom) => {
794
- const tblFrom = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, refFrom.tableName));
795
- if (tblFrom &&
796
- dbTableWithSchemas.find((it) => it.table.name === tblFrom.name) === undefined) {
797
- dbTableWithSchemas.push({
798
- table: tblFrom,
799
- schemaName: schema.name,
800
- });
801
- }
802
- });
803
- }
804
- break;
805
- }
806
- }
807
- });
808
- if (dbTableWithSchemas.length === 0) {
809
- return undefined;
810
- }
811
- const lines = [];
812
- for (const dbTable of dbTableWithSchemas) {
813
- let tableDDL = '';
814
- if (rdsDriver && rdsDriver.supportsShowCreate()) {
815
- tableDDL = yield rdsDriver.getTableDDL({
816
- schemaName: dbTable.schemaName,
817
- tableName: dbTable.table.name,
818
- });
819
- }
820
- if (tableDDL) {
821
- lines.push(tableDDL);
822
- }
823
- else {
824
- const tableDef = (0, exports.toCreateTableDDL)({ dbTable: dbTable.table });
825
- lines.push(tableDef);
826
- }
827
- lines.push('');
828
- }
829
- return lines.join('\n');
830
- }
831
- }
832
- catch (_) {
833
- console.error(_);
834
- }
835
- return undefined;
836
- });
837
- exports.createTableDefinisionsForPrompt = createTableDefinisionsForPrompt;
838
- const getProposals = (params) => {
839
- const { db: idb, sql, lastChar, keyword, parentWord } = params;
840
- const upperKeyword = keyword.toUpperCase();
841
- const upperParentWord = parentWord === null || parentWord === void 0 ? void 0 : parentWord.toUpperCase();
842
- let ast;
843
- const retList = [];
844
- const db = idb instanceof DbResource_1.RdsDatabase ? idb : toRdsDatabase(idb);
845
- try {
846
- if (db) {
847
- try {
848
- [ast] = (0, pgsql_ast_parser_1.parse)(sql, { locationTracking: true });
849
- }
850
- catch (_) {
851
- }
852
- if (parentWord) {
853
- let list = getProposalsByKeywordWithParent(db, ast, upperKeyword, upperParentWord, lastChar);
854
- if (list.length === 0) {
855
- list = getProposalsByKeyword(db, upperKeyword, lastChar);
856
- }
857
- retList.push(...list);
858
- }
859
- else {
860
- if (keyword) {
861
- const list = getProposalsByKeyword(db, upperKeyword, lastChar);
862
- retList.push(...list);
863
- }
864
- else {
865
- retList.push(...getAllProposals(db));
866
- }
867
- }
868
- }
869
- if (lastChar !== '.' && !parentWord) {
870
- constant_1.RESERVED_WORDS.filter((s) => s.startsWith(upperKeyword)).forEach((s) => {
871
- retList.push({
872
- label: s,
873
- kind: types_1.ProposalKind.ReservedWord,
874
- });
875
- });
876
- }
877
- }
878
- catch (_) {
879
- }
880
- const uniqueRetList = Array.from(retList
881
- .reduce((map, p) => {
882
- const key = `${p.kind}:${p.label}`;
883
- const existing = map.get(key);
884
- if (!existing || (!existing.detail && p.detail)) {
885
- map.set(key, p);
886
- }
887
- return map;
888
- }, new Map())
889
- .values());
890
- return uniqueRetList;
891
- };
892
- exports.getProposals = getProposals;
893
- const getResourcePositions = (params) => {
894
- const { db: idb, sql } = params;
895
- const sqlLowerCase = sql.toLocaleLowerCase();
896
- const retList = [];
897
- if (idb === undefined) {
898
- return retList;
899
- }
900
- const schema = idb instanceof DbResource_1.RdsDatabase
901
- ? idb.getSchema({ isDefault: true })
902
- : toRdsDatabase(idb).getSchema({ isDefault: true });
903
- const tableNames = schema.children
904
- .map((it) => it.name.toLocaleLowerCase())
905
- .join('|');
906
- const reg = new RegExp('\\b(' + tableNames + ')\\b', 'g');
907
- let m;
908
- const tableResList = [];
909
- const columnNameSet = new Set();
910
- while ((m = reg.exec(sqlLowerCase)) !== null) {
911
- const name = m[0];
912
- let comment = undefined;
913
- const tableRes = schema.children.find((it) => it.name.toLocaleLowerCase() === name);
914
- if (tableRes) {
915
- tableResList.push(tableRes);
916
- comment = tableRes.comment;
917
- tableRes.children.forEach((it) => {
918
- columnNameSet.add(it.name.toLowerCase());
919
- });
920
- }
921
- retList.push({
922
- kind: types_1.ProposalKind.Table,
923
- name: tableRes.name,
924
- comment,
925
- offset: m.index,
926
- length: name.length,
927
- });
928
- }
929
- if (columnNameSet.size > 0) {
930
- const reg2 = new RegExp('\\b(' + Array.from(columnNameSet).join('|') + ')\\b', 'g');
931
- let m2;
932
- while ((m2 = reg2.exec(sqlLowerCase)) !== null) {
933
- const name = m2[0];
934
- const columnRes = tableResList
935
- .flatMap((table) => table.children)
936
- .find((column) => column.name.toLocaleLowerCase() === name);
937
- if (!columnRes) {
938
- continue;
939
- }
940
- retList.push({
941
- kind: types_1.ProposalKind.Column,
942
- name: columnRes.name,
943
- comment: columnRes.comment,
944
- offset: m2.index,
945
- length: name.length,
946
- });
947
- }
948
- }
949
- return retList;
950
- };
951
- exports.getResourcePositions = getResourcePositions;
952
- const resolveAlias = (ast, alias) => {
953
- if (!ast || !alias) {
954
- return undefined;
955
- }
956
- if (ast.type === 'select') {
957
- for (const tbl of ast.from) {
958
- if (tbl.type === 'table') {
959
- if (tbl.name.alias.toUpperCase() === alias) {
960
- return tbl.name.name;
961
- }
962
- }
963
- }
964
- }
965
- return undefined;
966
- };
967
- const matchKeyword = (list, keyword) => {
968
- return list.some((it) => it.toUpperCase().startsWith(keyword));
969
- };
970
- function resolveLastOrderByColumn(table) {
971
- const columns = table.children;
972
- if (!(columns === null || columns === void 0 ? void 0 : columns.length)) {
973
- return undefined;
974
- }
975
- const dateColumn = columns.find((col) => {
976
- const name = col.name.toLowerCase();
977
- const looksLikeCreated = /created(_at)?$/.test(name) ||
978
- /create(d)?date$/.test(name) ||
979
- /insert(ed)?(_at)?$/.test(name);
980
- return (0, rdh_1.isDateTimeOrDate)(col.colType) && looksLikeCreated;
981
- });
982
- if (dateColumn) {
983
- return dateColumn.name;
984
- }
985
- const pks = table.getPrimaryColumnNames();
986
- if (pks.length === 1) {
987
- const pkCol = columns.find((c) => c.name === pks[0]);
988
- if (pkCol && (0, rdh_1.isNumericLike)(pkCol.colType)) {
989
- return pkCol.name;
990
- }
991
- }
992
- return undefined;
993
- }
994
- exports.resolveLastOrderByColumn = resolveLastOrderByColumn;
995
- const getProposalsByKeywordWithParent = (db, ast, keyword, parentWord, lastChar) => {
996
- var _a;
997
- const retList = [];
998
- const schema = db.children.find((it) => it.name.toUpperCase() === parentWord);
999
- if (schema) {
1000
- schema.children.forEach((table) => {
1001
- var _a;
1002
- const table_comment = (_a = table.comment) !== null && _a !== void 0 ? _a : '';
1003
- if (keyword === '' ||
1004
- matchKeyword([table.name, table_comment], keyword)) {
1005
- retList.push(createTableProposal(schema, table));
1006
- }
1007
- });
1008
- }
1009
- const defaultSchema = db.getSchema({ isDefault: true });
1010
- let table = defaultSchema.children.find((it) => it.name.toUpperCase() === parentWord);
1011
- if (!table) {
1012
- const resolvedName = resolveAlias(ast, parentWord);
1013
- if (resolvedName) {
1014
- table = defaultSchema.children.find((it) => it.name.toUpperCase() === resolvedName.toUpperCase());
1015
- }
1016
- }
1017
- if (table) {
1018
- const table_comment = (_a = table.comment) !== null && _a !== void 0 ? _a : '';
1019
- if (matchKeyword([table.name, table_comment], keyword)) {
1020
- retList.push(createTableProposal(schema, table));
1021
- }
1022
- table.children.forEach((column) => {
1023
- var _a;
1024
- const columnComment = (_a = column.comment) !== null && _a !== void 0 ? _a : '';
1025
- if (keyword === '' ||
1026
- matchKeyword([column.name, columnComment], keyword)) {
1027
- retList.push(createColumnProposal(table, column));
1028
- }
1029
- });
1030
- }
1031
- return retList;
1032
- };
1033
- const getProposalsByKeyword = (db, keyword, lastChar) => {
1034
- const retList = [];
1035
- const schema = db.getSchema({ isDefault: true });
1036
- if (lastChar === ' ') {
1037
- if (['INTO', 'UPDATE', 'FROM'].includes(keyword)) {
1038
- schema.children.forEach((table) => {
1039
- retList.push(createTableProposal(schema, table));
1040
- });
1041
- return retList;
1042
- }
1043
- if ('DELETE' === keyword) {
1044
- retList.push(createReservedWordProposal('FROM'));
1045
- }
1046
- }
1047
- schema.children.forEach((table) => {
1048
- var _a;
1049
- const table_comment = (_a = table.comment) !== null && _a !== void 0 ? _a : '';
1050
- if (matchKeyword([table.name, table_comment], keyword)) {
1051
- retList.push(createTableProposal(schema, table));
1052
- }
1053
- table.children.forEach((column) => {
1054
- var _a;
1055
- const columnComment = (_a = column.comment) !== null && _a !== void 0 ? _a : '';
1056
- if (matchKeyword([column.name, columnComment], keyword)) {
1057
- retList.push(createColumnProposal(table, column));
1058
- }
1059
- });
1060
- });
1061
- return retList;
1062
- };
1063
- const getAllProposals = (db) => {
1064
- const retList = [];
1065
- const schema = db.getSchema({ isDefault: true });
1066
- schema.children.forEach((table) => {
1067
- retList.push(createTableProposal(schema, table));
1068
- });
1069
- schema.getUniqColumnNameWithComments().forEach((it) => {
1070
- var _a;
1071
- retList.push({
1072
- label: it.name,
1073
- kind: types_1.ProposalKind.Column,
1074
- detail: (_a = it.comment) !== null && _a !== void 0 ? _a : '',
1075
- });
1076
- });
1077
- return retList;
1078
- };
1079
- const createTableProposal = (schema, table) => {
1080
- var _a;
1081
- const detail = (_a = table.comment) !== null && _a !== void 0 ? _a : '';
1082
- return {
1083
- label: table.name,
1084
- kind: types_1.ProposalKind.Table,
1085
- detail,
1086
- };
1087
- };
1088
- const createColumnProposal = (table, column) => {
1089
- var _a;
1090
- const detail = (_a = column.comment) !== null && _a !== void 0 ? _a : '';
1091
- return {
1092
- label: column.name,
1093
- kind: types_1.ProposalKind.Column,
1094
- detail,
1095
- };
1096
- };
1097
779
  const stripComment = (query) => {
1098
780
  return query
1099
781
  .replace(/\/\*[^*]*\*\//gm, '')
1100
782
  .replace(/(\s)?(#|--)\s+.*$/gm, '$1');
1101
783
  };
1102
- const createReservedWordProposal = (word) => {
1103
- return {
1104
- label: word,
1105
- kind: types_1.ProposalKind.ReservedWord,
1106
- };
1107
- };
1108
784
  const wrapSingleQuote = (input) => (0, exports.wrapQuote)(input, "'");
1109
785
  exports.wrapSingleQuote = wrapSingleQuote;
1110
786
  const wrapDoubleQuote = (input) => (0, exports.wrapQuote)(input, '"');
@@ -1315,51 +991,6 @@ const createQNamesUsingLocation = ({ tableName, schemaName, location, sql, }) =>
1315
991
  schemaName,
1316
992
  };
1317
993
  };
1318
- const toCreateTableDDL = ({ dbTable }) => {
1319
- var _a;
1320
- const columns = dbTable.children;
1321
- const colDefs = [];
1322
- columns.forEach((col) => {
1323
- let line = ` ${col.name} ${col.colType}`;
1324
- if (col.primaryKey) {
1325
- line += ' PRIMARY KEY';
1326
- }
1327
- else {
1328
- if (col.nullable === false) {
1329
- line += ' NOT NULL';
1330
- }
1331
- }
1332
- if (col.uniqKey) {
1333
- line += ' UNIQUE';
1334
- }
1335
- if (col.extra) {
1336
- if (col.extra.toLocaleLowerCase() === 'auto_increment') {
1337
- line += ' AUTO_INCREMENT';
1338
- }
1339
- }
1340
- if (col.default) {
1341
- line += ` DEFAULT ${col.default}`;
1342
- }
1343
- if (col.comment) {
1344
- line += ` COMMENT '${col.comment}'`;
1345
- }
1346
- colDefs.push(line);
1347
- });
1348
- if ((_a = dbTable.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) {
1349
- Object.entries(dbTable.foreignKeys.referenceTo).forEach(([colName, refTo]) => {
1350
- colDefs.push(` FOREIGN KEY ${refTo.constraintName}(${colName}) REFERENCES ${refTo.tableName}(${refTo.columnName})`);
1351
- });
1352
- }
1353
- let tableDef = `CREATE TABLE ${dbTable.name} (\n${colDefs.join(',\n')}\n)`;
1354
- if (dbTable.comment) {
1355
- tableDef += ` COMMENT '${dbTable.comment}';`;
1356
- }
1357
- else {
1358
- tableDef += `;`;
1359
- }
1360
- return tableDef;
1361
- };
1362
- exports.toCreateTableDDL = toCreateTableDDL;
1363
994
  const toGeneralQuery = ({ selectClause, tableRes, schemaName, conditions, quote, idQuoteCharacter, sqlLang, limit, limitAsTop, }) => {
1364
995
  const tableNameWithSchema = createTableNameWithSchema({
1365
996
  schema: schemaName,
@@ -1443,4 +1074,5 @@ const toRdsDatabase = (awsDb) => {
1443
1074
  });
1444
1075
  return db;
1445
1076
  };
1077
+ exports.toRdsDatabase = toRdsDatabase;
1446
1078
  //# sourceMappingURL=SQLHelper.js.map