@l-v-yonsama/multi-platform-database-drivers 0.1.7 → 0.1.9

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 (109) hide show
  1. package/built/src/db/drivers/AwsS3Driver.d.ts +1 -1
  2. package/built/src/db/drivers/AwsS3Driver.js +4 -4
  3. package/built/src/db/drivers/AwsS3Driver.js.map +1 -1
  4. package/built/src/db/drivers/BaseDriver.d.ts +6 -6
  5. package/built/src/db/drivers/BaseDriver.js +30 -49
  6. package/built/src/db/drivers/BaseDriver.js.map +1 -1
  7. package/built/src/db/drivers/MySQLDriver.d.ts +1 -1
  8. package/built/src/db/drivers/MySQLDriver.js +4 -3
  9. package/built/src/db/drivers/MySQLDriver.js.map +1 -1
  10. package/built/src/db/drivers/PostgresDriver.d.ts +1 -1
  11. package/built/src/db/drivers/PostgresDriver.js +4 -3
  12. package/built/src/db/drivers/PostgresDriver.js.map +1 -1
  13. package/built/src/db/drivers/RedisDriver.d.ts +2 -2
  14. package/built/src/db/drivers/RedisDriver.js +12 -12
  15. package/built/src/db/drivers/RedisDriver.js.map +1 -1
  16. package/built/src/db/index.d.ts +0 -1
  17. package/built/src/db/index.js +0 -1
  18. package/built/src/db/index.js.map +1 -1
  19. package/built/src/db/resource/DbResource.d.ts +43 -35
  20. package/built/src/db/resource/DbResource.js +80 -53
  21. package/built/src/db/resource/DbResource.js.map +1 -1
  22. package/built/src/db/resource/ResourceHelper.d.ts +6 -0
  23. package/built/src/db/resource/ResourceHelper.js +59 -0
  24. package/built/src/db/resource/ResourceHelper.js.map +1 -0
  25. package/built/src/db/resource/index.d.ts +1 -1
  26. package/built/src/db/resource/index.js +1 -1
  27. package/built/src/db/resource/index.js.map +1 -1
  28. package/built/src/db/resource/types/MySQLColumnType.js +9 -12
  29. package/built/src/db/resource/types/MySQLColumnType.js.map +1 -1
  30. package/built/src/{main.d.ts → index.d.ts} +1 -1
  31. package/built/src/{main.js → index.js} +2 -2
  32. package/built/src/index.js.map +1 -0
  33. package/built/src/service/DBAccessService.d.ts +20 -0
  34. package/built/src/service/DBAccessService.js +302 -0
  35. package/built/src/service/DBAccessService.js.map +1 -0
  36. package/built/src/service/DBDriverResolver.d.ts +17 -0
  37. package/built/src/service/DBDriverResolver.js +101 -0
  38. package/built/src/service/DBDriverResolver.js.map +1 -0
  39. package/built/src/service/SQLService.d.ts +5 -0
  40. package/built/src/service/SQLService.js +71 -0
  41. package/built/src/service/SQLService.js.map +1 -0
  42. package/built/src/service/index.d.ts +5 -0
  43. package/built/src/service/index.js +9 -0
  44. package/built/src/service/index.js.map +1 -0
  45. package/built/src/service/request/{redis_request.d.ts → RedisRequest.d.ts} +1 -1
  46. package/built/src/service/request/{redis_request.js → RedisRequest.js} +1 -1
  47. package/built/src/service/request/RedisRequest.js.map +1 -0
  48. package/built/src/service/request/{s3_request.d.ts → S3Request.d.ts} +1 -1
  49. package/built/src/service/request/{s3_request.js → S3Request.js} +1 -1
  50. package/built/src/service/request/S3Request.js.map +1 -0
  51. package/built/src/service/request/index.d.ts +69 -0
  52. package/built/src/service/request/index.js +19 -0
  53. package/built/src/service/request/index.js.map +1 -0
  54. package/built/src/service/response/GeneralDBResponse.d.ts +8 -0
  55. package/built/src/service/response/GeneralDBResponse.js +3 -0
  56. package/built/src/service/response/GeneralDBResponse.js.map +1 -0
  57. package/built/src/service/response/GeneralResponse.d.ts +6 -0
  58. package/built/src/service/response/GeneralResponse.js +13 -0
  59. package/built/src/service/response/GeneralResponse.js.map +1 -0
  60. package/built/src/service/response/index.d.ts +2 -0
  61. package/built/src/service/response/index.js +6 -0
  62. package/built/src/service/response/index.js.map +1 -0
  63. package/built/src/service/response/reply/ConnectionResult.d.ts +3 -0
  64. package/built/src/service/response/reply/ConnectionResult.js +3 -0
  65. package/built/src/service/response/reply/ConnectionResult.js.map +1 -0
  66. package/built/src/service/response/reply/FileExportReply.d.ts +10 -0
  67. package/built/src/service/response/reply/FileExportReply.js +17 -0
  68. package/built/src/service/response/reply/FileExportReply.js.map +1 -0
  69. package/built/src/service/response/reply/FileProcessResult.d.ts +14 -0
  70. package/built/src/service/response/reply/FileProcessResult.js +28 -0
  71. package/built/src/service/response/reply/FileProcessResult.js.map +1 -0
  72. package/built/src/service/response/{GeneralReponse.d.ts → reply/GeneralReply.d.ts} +1 -1
  73. package/built/src/service/response/{GeneralReponse.js → reply/GeneralReply.js} +3 -3
  74. package/built/src/service/response/reply/GeneralReply.js.map +1 -0
  75. package/built/src/service/response/reply/OutputReply.d.ts +9 -0
  76. package/built/src/service/response/reply/OutputReply.js +16 -0
  77. package/built/src/service/response/reply/OutputReply.js.map +1 -0
  78. package/built/src/service/response/reply/ProgressReply.d.ts +7 -0
  79. package/built/src/service/response/reply/ProgressReply.js +13 -0
  80. package/built/src/service/response/reply/ProgressReply.js.map +1 -0
  81. package/built/src/service/response/reply/types/FileExportType.d.ts +3 -0
  82. package/built/src/service/response/reply/types/FileExportType.js +9 -0
  83. package/built/src/service/response/reply/types/FileExportType.js.map +1 -0
  84. package/built/src/service/response/reply/types/OutputType.d.ts +11 -0
  85. package/built/src/service/response/reply/types/OutputType.js +16 -0
  86. package/built/src/service/response/reply/types/OutputType.js.map +1 -0
  87. package/built/src/service/response/reply/types/ReplyEventType.d.ts +10 -0
  88. package/built/src/service/response/reply/types/ReplyEventType.js +16 -0
  89. package/built/src/service/response/reply/types/ReplyEventType.js.map +1 -0
  90. package/package.json +10 -6
  91. package/built/src/db/manager.d.ts +0 -8
  92. package/built/src/db/manager.js +0 -87
  93. package/built/src/db/manager.js.map +0 -1
  94. package/built/src/db/resource/ResourceUtil.d.ts +0 -39
  95. package/built/src/db/resource/ResourceUtil.js +0 -337
  96. package/built/src/db/resource/ResourceUtil.js.map +0 -1
  97. package/built/src/main.js.map +0 -1
  98. package/built/src/service/request/general_db_request.d.ts +0 -18
  99. package/built/src/service/request/general_db_request.js +0 -14
  100. package/built/src/service/request/general_db_request.js.map +0 -1
  101. package/built/src/service/request/redis_request.js.map +0 -1
  102. package/built/src/service/request/s3_request.js.map +0 -1
  103. package/built/src/service/response/GeneralReponse.js.map +0 -1
  104. package/built/src/util/file_util.d.ts +0 -22
  105. package/built/src/util/file_util.js +0 -143
  106. package/built/src/util/file_util.js.map +0 -1
  107. package/built/src/util/index.d.ts +0 -1
  108. package/built/src/util/index.js +0 -5
  109. package/built/src/util/index.js.map +0 -1
@@ -70,23 +70,20 @@ var MySQLColumnType;
70
70
  }
71
71
  }
72
72
  else {
73
- if (numOfLength === 4294967295 ||
74
- numOfLength === 589815 ||
75
- numOfLength === 589779) {
76
- // flags:17, (length: 589815 | 589779) information_schema.COLUMNS.GENERATION_EXPRESSION => longtext
77
- return MySQLColumnType.LONGTEXT;
78
- }
79
- else if (numOfLength === 50331645) {
80
- return MySQLColumnType.MEDIUMTEXT;
73
+ if ([255, 510, 765, 1020].indexOf(numOfLength) >= 0) {
74
+ return MySQLColumnType.TINYTEXT;
81
75
  }
82
- else if (numOfLength === 196605) {
76
+ else if ([65535, 131070, 196605, 262140].indexOf(numOfLength) >= 0) {
83
77
  return MySQLColumnType.TEXT;
84
78
  }
85
- else if (numOfLength === 765) {
86
- return MySQLColumnType.TINYTEXT;
79
+ else if ([16777255, 33554510, 50331765, 67108860].indexOf(numOfLength) >= 0) {
80
+ return MySQLColumnType.MEDIUMTEXT;
81
+ }
82
+ else if (4294967295 === numOfLength) {
83
+ return MySQLColumnType.LONGTEXT;
87
84
  }
85
+ return MySQLColumnType.TEXT;
88
86
  }
89
- console.error(`L83 can't parse from `, fieldInfo);
90
87
  return MySQLColumnType.UNKNOWN;
91
88
  case 254:
92
89
  if (flags === 128) {
@@ -1 +1 @@
1
- {"version":3,"file":"MySQLColumnType.js","sourceRoot":"","sources":["../../../../../src/db/resource/types/MySQLColumnType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MySQLColumnType.js","sourceRoot":"","sources":["../../../../../src/db/resource/types/MySQLColumnType.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export * from './db';
2
2
  export * from './types';
3
- export * from './util';
3
+ export * from './service';
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./db"), exports);
5
5
  tslib_1.__exportStar(require("./types"), exports);
6
- tslib_1.__exportStar(require("./util"), exports);
7
- //# sourceMappingURL=main.js.map
6
+ tslib_1.__exportStar(require("./service"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAAqB;AACrB,kDAAwB;AACxB,oDAA0B"}
@@ -0,0 +1,20 @@
1
+ import { DbResource, TableRows } from '../db/resource/DbResource';
2
+ import ResultSetDataHolder from '../db/resource/ResultSetDataHolder';
3
+ import { AddConnectionSettingRequest, BatchInsertFromArrayRequest, ConnectRequest, CountTablesRequest, ExecuteSqlRequest, RemoveConnectionSettingRequest, RequestInConnectedState, TestConnectionSettingRequest, ViewDataRequest } from './request';
4
+ import { GeneralDBResponse } from './response';
5
+ export declare class DBAccessService {
6
+ static addConnectionSetting(req: AddConnectionSettingRequest): Promise<GeneralDBResponse>;
7
+ static removeConnectionSetting(req: RemoveConnectionSettingRequest): Promise<GeneralDBResponse>;
8
+ static testConnectionSetting(req: TestConnectionSettingRequest): Promise<GeneralDBResponse>;
9
+ static connect(req: ConnectRequest): Promise<GeneralDBResponse>;
10
+ static disconnect(req: RequestInConnectedState): Promise<GeneralDBResponse>;
11
+ static disconnectAll(): Promise<GeneralDBResponse>;
12
+ static batchInsertFromArray(req: BatchInsertFromArrayRequest): Promise<GeneralDBResponse>;
13
+ static viewData(req: ViewDataRequest): Promise<GeneralDBResponse<ResultSetDataHolder>>;
14
+ static executeSql(req: ExecuteSqlRequest): Promise<GeneralDBResponse<ResultSetDataHolder>>;
15
+ static countTables(req: CountTablesRequest): Promise<GeneralDBResponse<TableRows[]>>;
16
+ static getInfomationSchemas(req: CountTablesRequest): Promise<GeneralDBResponse<Array<DbResource>>>;
17
+ private static getDriver;
18
+ private static sendProgress;
19
+ private static createResponse;
20
+ }
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBAccessService = void 0;
4
+ const DbResource_1 = require("../db/resource/DbResource");
5
+ const ResultSetDataHolder_1 = require("../db/resource/ResultSetDataHolder");
6
+ const DBType_1 = require("../db/resource/types/DBType");
7
+ const DBDriverResolver_1 = require("./DBDriverResolver");
8
+ const request_1 = require("./request");
9
+ class DBAccessService {
10
+ static async addConnectionSetting(req) {
11
+ const command = request_1.GeneralDBCommandType.AddConnectionSetting;
12
+ const st_tm = new Date().getTime();
13
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
14
+ resolver.addConnectionSetting(req.setting);
15
+ return this.createResponse(command, true, '', st_tm);
16
+ }
17
+ static async removeConnectionSetting(req) {
18
+ const command = request_1.GeneralDBCommandType.RemoveConnectionSetting;
19
+ const st_tm = new Date().getTime();
20
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
21
+ resolver.removeConnectionSettingByName(req.connectionName);
22
+ return this.createResponse(command, true, '', st_tm);
23
+ }
24
+ static async testConnectionSetting(req) {
25
+ const command = request_1.GeneralDBCommandType.TestConnectionSetting;
26
+ const st_tm = new Date().getTime();
27
+ try {
28
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
29
+ const testCon = new DbResource_1.DbConnection(req.setting);
30
+ const driver = resolver.createDriver(testCon);
31
+ if (driver) {
32
+ const result = await driver.test(true);
33
+ if (result) {
34
+ return this.createResponse(command, false, result, st_tm, {});
35
+ }
36
+ return this.createResponse(command, true, '', st_tm);
37
+ }
38
+ return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
39
+ }
40
+ catch (e) {
41
+ console.error('error....', e);
42
+ return this.createResponse(command, false, '該当ドライバが見つかりません', st_tm, {});
43
+ }
44
+ }
45
+ static async connect(req) {
46
+ const command = request_1.GeneralDBCommandType.Connect;
47
+ const st_tm = new Date().getTime();
48
+ try {
49
+ const resolver = DBDriverResolver_1.DBDriverResolver.getInstance();
50
+ const setting = resolver.getSettingByName(req.connectionName);
51
+ if (!setting) {
52
+ throw new Error('Missing connection setting.');
53
+ }
54
+ const def = resolver.createDriver(setting);
55
+ const driver = resolver.getDriverById(def.getConnectionRes().id);
56
+ let errorMessage = '';
57
+ errorMessage = await driver.connect();
58
+ const ok = errorMessage.length === 0;
59
+ const result = {
60
+ connectionId: driver.getConnectionRes().id,
61
+ };
62
+ return this.createResponse(command, ok, errorMessage, st_tm, result);
63
+ }
64
+ catch (e) {
65
+ return this.createResponse(command, false, e.message, st_tm);
66
+ }
67
+ }
68
+ static async disconnect(req) {
69
+ const st_tm = new Date().getTime();
70
+ let errorMessage = '';
71
+ let ok = true;
72
+ try {
73
+ const driver = DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
74
+ errorMessage = await driver.disconnect();
75
+ ok = errorMessage.length === 0;
76
+ }
77
+ catch (e) {
78
+ ok = false;
79
+ errorMessage = e.message;
80
+ }
81
+ return this.createResponse(request_1.GeneralDBCommandType.Disconnect, ok, errorMessage, st_tm);
82
+ }
83
+ static async disconnectAll() {
84
+ const st_tm = new Date().getTime();
85
+ const errorMessage = await DBDriverResolver_1.DBDriverResolver.getInstance().closeAll();
86
+ const ok = errorMessage.length === 0;
87
+ return this.createResponse(request_1.GeneralDBCommandType.DisconnectAll, ok, errorMessage, st_tm);
88
+ }
89
+ static async batchInsertFromArray(req) {
90
+ const command = request_1.GeneralDBCommandType.BatchInsertFromArray;
91
+ const st_tm = new Date().getTime();
92
+ let rs;
93
+ try {
94
+ const driver = this.getDriver(req);
95
+ let requiredConnect = false;
96
+ if (!driver.isConnected && req.options && req.options.autoConnection) {
97
+ requiredConnect = true;
98
+ await driver.connect();
99
+ }
100
+ let error_message = '';
101
+ let schemaPrefix = '';
102
+ if (req.options.schemaName) {
103
+ schemaPrefix = `${req.options.schemaName}.`;
104
+ }
105
+ for (let i = 0; i < req.options.dataList.length; i++) {
106
+ const values = req.options.dataList[i];
107
+ const progress = Math.round(((i + 1) * 100) / req.options.dataList.length);
108
+ this.sendProgress('database.batch.insert.request', 'Insert', progress, {
109
+ name: driver.getName(),
110
+ });
111
+ const sql = `INSERT INTO ${schemaPrefix}${req.options.tableName} (${req.options.columns.join(',')}) VALUES(${values.join(',')})`;
112
+ rs = await driver.requestSql(sql, {
113
+ needs_column_resolve: false,
114
+ auto_connection: req.options.autoConnection,
115
+ });
116
+ if (rs.errorMessage) {
117
+ error_message = rs.errorMessage;
118
+ break;
119
+ }
120
+ }
121
+ if (requiredConnect) {
122
+ await driver.disconnect();
123
+ }
124
+ if (rs === undefined) {
125
+ rs = ResultSetDataHolder_1.default.createEmpty();
126
+ }
127
+ if (error_message) {
128
+ // response.ok = false;
129
+ // response.message = rs.errorMessage;
130
+ return this.createResponse(command, false, error_message, st_tm, rs);
131
+ }
132
+ return this.createResponse(command, true, '', st_tm, rs);
133
+ }
134
+ catch (e) {
135
+ return this.createResponse(command, false, e.message, st_tm);
136
+ }
137
+ }
138
+ static async viewData(req) {
139
+ const command = request_1.GeneralDBCommandType.ViewData;
140
+ const st_tm = new Date().getTime();
141
+ let error_message = '';
142
+ let rs;
143
+ try {
144
+ const driver = this.getDriver(req);
145
+ let requiredConnect = false;
146
+ if (!driver.isConnected && req.options && req.options.autoConnection) {
147
+ requiredConnect = true;
148
+ error_message = await driver.connect();
149
+ }
150
+ rs = ResultSetDataHolder_1.default.createEmpty();
151
+ if (!error_message) {
152
+ switch (driver.getConnectionRes().dbType) {
153
+ case DBType_1.DBType.AwsS3:
154
+ case DBType_1.DBType.Minio:
155
+ case DBType_1.DBType.Mongodb:
156
+ case DBType_1.DBType.Redis:
157
+ error_message = 'Not supported.';
158
+ break;
159
+ default:
160
+ {
161
+ let sp = '';
162
+ let cols = '';
163
+ if (req.options.schemaName) {
164
+ sp = `${req.options.schemaName}.`;
165
+ }
166
+ if (req.options.columns && req.options.columns.length > 0) {
167
+ cols = req.options.columns.join(',');
168
+ }
169
+ else {
170
+ cols = '*';
171
+ }
172
+ rs = await driver.requestSql(`SELECT ${cols} FROM ${sp}${req.options.tableName} `, {
173
+ needs_column_resolve: false,
174
+ auto_connection: req.options.autoConnection,
175
+ progress_callback: (message, progress) => {
176
+ this.sendProgress('database.general.request', message, progress, {
177
+ name: driver.getName(),
178
+ });
179
+ },
180
+ });
181
+ if (rs.errorMessage) {
182
+ error_message = rs.errorMessage;
183
+ }
184
+ }
185
+ break;
186
+ }
187
+ if (requiredConnect) {
188
+ await driver.disconnect();
189
+ }
190
+ }
191
+ if (error_message) {
192
+ return this.createResponse(command, false, error_message, st_tm, rs);
193
+ }
194
+ return this.createResponse(command, true, '', st_tm, rs);
195
+ }
196
+ catch (e) {
197
+ return this.createResponse(command, false, e.message, st_tm);
198
+ }
199
+ }
200
+ static async executeSql(req) {
201
+ const command = request_1.GeneralDBCommandType.ExecuteSql;
202
+ const st_tm = new Date().getTime();
203
+ try {
204
+ const driver = this.getDriver(req);
205
+ const execOptions = {
206
+ needs_column_resolve: req.options.needsColumnResolve,
207
+ auto_connection: req.options.autoConnection,
208
+ progress_callback: (message, progress) => {
209
+ this.sendProgress('database.general.request', message, progress, {
210
+ name: driver.getName(),
211
+ });
212
+ },
213
+ };
214
+ if (req.options) {
215
+ execOptions.max_rows = req.options.maxRows;
216
+ }
217
+ let connectionIsNotReady = false;
218
+ let requiredConnect = false;
219
+ if (!driver.isConnected) {
220
+ if (execOptions.auto_connection) {
221
+ requiredConnect = true;
222
+ await driver.connect();
223
+ }
224
+ else {
225
+ connectionIsNotReady = true;
226
+ }
227
+ }
228
+ if (connectionIsNotReady) {
229
+ throw new Error(`Connection DB first.`);
230
+ }
231
+ else {
232
+ const rs = await driver.requestSql(req.options.sql, execOptions);
233
+ this.sendProgress('database.general.request', 'Server process end.', 75, { name: driver.getName() });
234
+ if (requiredConnect) {
235
+ await driver.disconnect();
236
+ }
237
+ if (rs.errorMessage) {
238
+ return this.createResponse(command, false, rs.errorMessage, st_tm, rs);
239
+ }
240
+ return this.createResponse(command, true, '', st_tm, rs);
241
+ }
242
+ }
243
+ catch (e) {
244
+ return this.createResponse(command, false, e.message, st_tm);
245
+ }
246
+ }
247
+ static async countTables(req) {
248
+ const command = request_1.GeneralDBCommandType.CountTables;
249
+ const st_tm = new Date().getTime();
250
+ try {
251
+ const driver = this.getDriver(req);
252
+ const execOptions = {
253
+ progress_callback: (message, progress) => {
254
+ this.sendProgress('database.general.count', message, progress, {
255
+ name: driver.getName(),
256
+ });
257
+ },
258
+ };
259
+ const rows = await driver.countTables(req.options.tables, execOptions);
260
+ this.sendProgress('database.general.count', 'Server process end.', 75, {
261
+ name: driver.getName(),
262
+ });
263
+ return this.createResponse(command, true, '', st_tm, rows);
264
+ }
265
+ catch (e) {
266
+ return this.createResponse(command, false, e.message, st_tm);
267
+ }
268
+ }
269
+ static async getInfomationSchemas(req) {
270
+ const command = request_1.GeneralDBCommandType.GetInfomationSchemas;
271
+ const st_tm = new Date().getTime();
272
+ try {
273
+ const driver = this.getDriver(req);
274
+ const result = await driver.getInfomationSchemas({});
275
+ return this.createResponse(command, true, '', st_tm, result);
276
+ }
277
+ catch (e) {
278
+ return this.createResponse(command, false, e.message, st_tm);
279
+ }
280
+ }
281
+ static getDriver(req) {
282
+ return DBDriverResolver_1.DBDriverResolver.getInstance().getDriverById(req.connectionId);
283
+ }
284
+ static sendProgress(source, message, progress, options) {
285
+ // mainWindow.webContents.send(
286
+ // 'progress',
287
+ // new ProgressReply(source, message, progress, options)
288
+ // )
289
+ }
290
+ static createResponse(command, ok, message, st_tm, result) {
291
+ const r = {
292
+ command,
293
+ ok,
294
+ message,
295
+ elapsed_time: new Date().getTime() - st_tm,
296
+ result,
297
+ };
298
+ return r;
299
+ }
300
+ }
301
+ exports.DBAccessService = DBAccessService;
302
+ //# sourceMappingURL=DBAccessService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBAccessService.js","sourceRoot":"","sources":["../../../src/service/DBAccessService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import BaseDriver from '../db/drivers/BaseDriver';
2
+ import { ConnectionSetting, DbConnection } from '../db/resource/DbResource';
3
+ export declare class DBDriverResolver {
4
+ private driverMap;
5
+ private connectionList;
6
+ private connectionSettingList;
7
+ private static instance;
8
+ static getInstance(): DBDriverResolver;
9
+ private constructor();
10
+ addConnectionSetting(setting: ConnectionSetting): void;
11
+ removeConnectionSettingByName(name: string): void;
12
+ getConResList(): Array<DbConnection>;
13
+ getSettingByName(defName: string): ConnectionSetting;
14
+ getDriverById(connectionId: string): BaseDriver;
15
+ createDriver(setting: ConnectionSetting): BaseDriver;
16
+ closeAll(): Promise<string>;
17
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBDriverResolver = void 0;
4
+ // import MongoDriver from './drivers/MongoDriver'
5
+ // import ODBCDriver from './drivers/ODBCDriver';
6
+ const RedisDriver_1 = require("../db/drivers/RedisDriver");
7
+ const MySQLDriver_1 = require("../db/drivers/MySQLDriver");
8
+ const PostgresDriver_1 = require("../db/drivers/PostgresDriver");
9
+ const AwsS3Driver_1 = require("../db/drivers/AwsS3Driver");
10
+ const DbResource_1 = require("../db/resource/DbResource");
11
+ const DBType_1 = require("../db/resource/types/DBType");
12
+ const short_unique_id_1 = require("short-unique-id");
13
+ const uid = new short_unique_id_1.default();
14
+ class DBDriverResolver {
15
+ static getInstance() {
16
+ if (!this.instance) {
17
+ this.instance = new DBDriverResolver();
18
+ }
19
+ return this.instance;
20
+ }
21
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
22
+ constructor() {
23
+ this.connectionList = new Array();
24
+ this.connectionSettingList = new Array();
25
+ this.driverMap = new Map();
26
+ }
27
+ addConnectionSetting(setting) {
28
+ if (this.connectionSettingList.some((it) => it.name === setting.name)) {
29
+ return;
30
+ }
31
+ this.connectionSettingList.push(setting);
32
+ }
33
+ removeConnectionSettingByName(name) {
34
+ const idx = this.connectionSettingList.findIndex((it) => it.name === name);
35
+ if (idx >= 0) {
36
+ this.connectionSettingList.splice(idx, 1);
37
+ }
38
+ }
39
+ getConResList() {
40
+ return this.connectionList;
41
+ }
42
+ getSettingByName(defName) {
43
+ return this.connectionSettingList.find((def) => def.name === defName);
44
+ }
45
+ getDriverById(connectionId) {
46
+ if (!this.driverMap.has(connectionId)) {
47
+ throw new Error(`Connection resource for 'ID:${connectionId}' not found.`);
48
+ }
49
+ return this.driverMap.get(connectionId);
50
+ }
51
+ createDriver(setting) {
52
+ const conRes = new DbResource_1.DbConnection(Object.assign(Object.assign({}, setting), { id: uid.randomUUID(8) }));
53
+ let driver = undefined;
54
+ switch (conRes.dbType) {
55
+ // case DBType.ODBC:
56
+ // driver = new ODBCDriver(conRes);
57
+ // break;
58
+ case DBType_1.DBType.MySQL:
59
+ driver = new MySQLDriver_1.default(conRes);
60
+ break;
61
+ case DBType_1.DBType.Postgres:
62
+ driver = new PostgresDriver_1.default(conRes);
63
+ break;
64
+ case DBType_1.DBType.Redis:
65
+ driver = new RedisDriver_1.default(conRes);
66
+ break;
67
+ // case DBType.Firestore:
68
+ // // driver = new FirestoreDriver(conRes);
69
+ // break;
70
+ case DBType_1.DBType.AwsS3:
71
+ case DBType_1.DBType.Minio:
72
+ driver = new AwsS3Driver_1.default(conRes);
73
+ break;
74
+ // case DBType.Mongodb:
75
+ // // driver = new MongoDriver(conDef)
76
+ // break
77
+ // case DBType.IndexedDB:
78
+ // driver = new IndexedDBDriver(conRes);
79
+ // break;
80
+ default:
81
+ throw new Error(`${conRes.dbType} is not supported.`);
82
+ }
83
+ this.connectionList.push(conRes);
84
+ this.driverMap.set(conRes.id, driver);
85
+ return driver;
86
+ }
87
+ async closeAll() {
88
+ let errorMessage = '';
89
+ this.driverMap.forEach(async (driver) => {
90
+ try {
91
+ await driver.disconnect();
92
+ }
93
+ catch (e) {
94
+ errorMessage += e.message + '\n';
95
+ }
96
+ });
97
+ return errorMessage;
98
+ }
99
+ }
100
+ exports.DBDriverResolver = DBDriverResolver;
101
+ //# sourceMappingURL=DBDriverResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBDriverResolver.js","sourceRoot":"","sources":["../../../src/service/DBDriverResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { DbSchema } from '../db/resource/DbResource';
2
+ import { GeneralResponse } from './response';
3
+ export declare class SQLService {
4
+ static validate(sql: string, schema: DbSchema): GeneralResponse;
5
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLService = void 0;
4
+ const mariadb_1 = require("node-sql-parser/build/mariadb");
5
+ class SQLService {
6
+ static validate(sql, schema) {
7
+ const missingColumns = [];
8
+ try {
9
+ const parser = new mariadb_1.default.Parser();
10
+ const { tableList, columnList, ast } = parser.parse(sql, {
11
+ database: 'MariaDB',
12
+ });
13
+ const type = ast.type;
14
+ // console.log('----------------');
15
+ // console.log('tableList', tableList);
16
+ // console.log('columnList', columnList);
17
+ // console.log('----------------');
18
+ const dbTables = new Map();
19
+ const allColumnNameList = [];
20
+ tableList.forEach((s) => {
21
+ const m = s.match(/([^:]+)::([^:]+)::(.*)/);
22
+ if (m) {
23
+ const name = m[3];
24
+ const table = schema.getChildByName(name);
25
+ if (table) {
26
+ dbTables.set(name, table);
27
+ allColumnNameList.push(...table.getChildren().map((it) => it.name.toUpperCase()));
28
+ }
29
+ }
30
+ });
31
+ columnList.forEach((s) => {
32
+ const m = s.match(/([^:]+)::([^:]+)::(.*)/);
33
+ if (m) {
34
+ let tableName = m[2];
35
+ if (tableName === 'null') {
36
+ tableName = '';
37
+ }
38
+ const columnName = m[3];
39
+ if (!['(.*)'].includes(columnName)) {
40
+ let acceptColumnNames;
41
+ if (tableName && dbTables.has(tableName)) {
42
+ acceptColumnNames = dbTables
43
+ .get(tableName)
44
+ .getChildren()
45
+ .map((it) => it.name.toUpperCase());
46
+ }
47
+ else {
48
+ acceptColumnNames = allColumnNameList;
49
+ }
50
+ if (!acceptColumnNames.includes(columnName.toUpperCase())) {
51
+ missingColumns.push({
52
+ type,
53
+ table: tableName,
54
+ column: columnName,
55
+ });
56
+ }
57
+ }
58
+ }
59
+ });
60
+ if (missingColumns.length === 0) {
61
+ return { ok: true, message: '' };
62
+ }
63
+ return { ok: false, message: '', result: missingColumns };
64
+ }
65
+ catch (e) {
66
+ return { ok: false, message: 'Parse Error:' + e.message };
67
+ }
68
+ }
69
+ }
70
+ exports.SQLService = SQLService;
71
+ //# sourceMappingURL=SQLService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLService.js","sourceRoot":"","sources":["../../../src/service/SQLService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './DBAccessService';
2
+ export * from './request';
3
+ export * from './response';
4
+ export * from './DBAccessService';
5
+ export * from './SQLService';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./DBAccessService"), exports);
5
+ tslib_1.__exportStar(require("./request"), exports);
6
+ tslib_1.__exportStar(require("./response"), exports);
7
+ tslib_1.__exportStar(require("./DBAccessService"), exports);
8
+ tslib_1.__exportStar(require("./SQLService"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,oDAA0B;AAC1B,qDAA2B;AAC3B,4DAAkC;AAClC,uDAA6B"}