dbgate-types 6.1.6 → 6.2.1
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/dbinfo.d.ts +32 -1
- package/dialect.d.ts +13 -0
- package/dumper.d.ts +2 -1
- package/engines.d.ts +53 -37
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/test-engines.d.ts +87 -0
package/dbinfo.d.ts
CHANGED
|
@@ -163,7 +163,7 @@ export interface SchedulerEventInfo extends SqlObjectInfo {
|
|
|
163
163
|
onCompletion: 'PRESERVE' | 'NOT PRESERVE';
|
|
164
164
|
status: 'ENABLED' | 'DISABLED';
|
|
165
165
|
lastExecuted?: string;
|
|
166
|
-
intervalValue:
|
|
166
|
+
intervalValue: string;
|
|
167
167
|
intervalField: string;
|
|
168
168
|
starts: string;
|
|
169
169
|
executeAt: string;
|
|
@@ -189,3 +189,34 @@ export interface DatabaseInfoObjects {
|
|
|
189
189
|
export interface DatabaseInfo extends DatabaseInfoObjects {
|
|
190
190
|
engine?: string;
|
|
191
191
|
}
|
|
192
|
+
|
|
193
|
+
export interface ColumnReferenceTiny {
|
|
194
|
+
n: string; // name
|
|
195
|
+
r?: string; // ref name
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export interface PrimaryKeyInfoTiny {
|
|
199
|
+
c: ColumnReferenceTiny[]; // columns
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export interface ForeignKeyInfoTiny {
|
|
203
|
+
c: ColumnReferenceTiny[]; // columns
|
|
204
|
+
r: string; // reference table name
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export interface ColumnInfoTiny {
|
|
208
|
+
n: string; // name
|
|
209
|
+
t: string; // type
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface TableInfoTiny {
|
|
213
|
+
n: string; //name
|
|
214
|
+
o: string; // comment
|
|
215
|
+
c: ColumnInfoTiny[]; // columns
|
|
216
|
+
p?: PrimaryKeyInfoTiny; // primary key
|
|
217
|
+
f?: ForeignKeyInfoTiny[]; // foreign keys
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface DatabaseInfoTiny {
|
|
221
|
+
t: TableInfoTiny[]; // tables
|
|
222
|
+
}
|
package/dialect.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ColumnInfo } from './dbinfo';
|
|
2
|
+
|
|
1
3
|
export interface SqlDialect {
|
|
2
4
|
rangeSelect?: boolean;
|
|
3
5
|
limitSelect?: boolean;
|
|
@@ -6,12 +8,15 @@ export interface SqlDialect {
|
|
|
6
8
|
topRecords?: boolean;
|
|
7
9
|
stringEscapeChar: string;
|
|
8
10
|
offsetFetchRangeSyntax?: boolean;
|
|
11
|
+
offsetNotSupported?: boolean;
|
|
9
12
|
quoteIdentifier(s: string): string;
|
|
10
13
|
fallbackDataType?: string;
|
|
11
14
|
explicitDropConstraint?: boolean;
|
|
12
15
|
anonymousPrimaryKey?: boolean;
|
|
16
|
+
anonymousForeignKey?: boolean;
|
|
13
17
|
defaultSchemaName?: string;
|
|
14
18
|
enableConstraintsPerTable?: boolean;
|
|
19
|
+
enableAllForeignKeys?: boolean;
|
|
15
20
|
requireStandaloneSelectForScopeIdentity?: boolean;
|
|
16
21
|
allowMultipleValuesInsert?: boolean;
|
|
17
22
|
|
|
@@ -44,7 +49,14 @@ export interface SqlDialect {
|
|
|
44
49
|
omitForeignKeys?: boolean;
|
|
45
50
|
omitUniqueConstraints?: boolean;
|
|
46
51
|
omitIndexes?: boolean;
|
|
52
|
+
omitTableAliases?: boolean;
|
|
53
|
+
omitTableBeforeColumn?: boolean;
|
|
54
|
+
disableAutoIncrement?: boolean;
|
|
55
|
+
disableNonPrimaryKeyRename?: boolean;
|
|
56
|
+
disableRenameTable?: boolean;
|
|
57
|
+
defaultNewTableColumns?: ColumnInfo[];
|
|
47
58
|
sortingKeys?: boolean;
|
|
59
|
+
generateDefaultValueForUuid?: string;
|
|
48
60
|
|
|
49
61
|
// syntax for create column: ALTER TABLE table ADD COLUMN column
|
|
50
62
|
createColumnWithColumnKeyword?: boolean;
|
|
@@ -53,6 +65,7 @@ export interface SqlDialect {
|
|
|
53
65
|
requireFromDual?: boolean;
|
|
54
66
|
userDatabaseNamePrefix?: string; // c## in Oracle
|
|
55
67
|
upperCaseAllDbObjectNames?: boolean;
|
|
68
|
+
defaultValueBeforeNullability?: boolean;
|
|
56
69
|
|
|
57
70
|
predefinedDataTypes: string[];
|
|
58
71
|
|
package/dumper.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface SqlDumper extends AlterProcessor {
|
|
|
11
11
|
putRaw(s: string);
|
|
12
12
|
put(format: string, ...args);
|
|
13
13
|
putCmd(format: string, ...args);
|
|
14
|
-
putValue(value: string | number | Date);
|
|
14
|
+
putValue(value: string | number | Date, dataType?: string);
|
|
15
15
|
putCollection<T>(delimiter: string, collection: T[], lambda: (item: T) => void);
|
|
16
16
|
transform(type: TransformType, dumpExpr: () => void);
|
|
17
17
|
createDatabase(name: string);
|
|
@@ -24,4 +24,5 @@ export interface SqlDumper extends AlterProcessor {
|
|
|
24
24
|
truncateTable(table: NamedObjectInfo);
|
|
25
25
|
beginTransaction();
|
|
26
26
|
commitTransaction();
|
|
27
|
+
rollbackTransaction();
|
|
27
28
|
}
|
package/engines.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface RunScriptOptions {
|
|
|
32
32
|
export interface QueryOptions {
|
|
33
33
|
discardResult?: boolean;
|
|
34
34
|
importSqlDump?: boolean;
|
|
35
|
+
range?: { offset: number; limit: number };
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
export interface WriteTableOptions {
|
|
@@ -39,6 +40,7 @@ export interface WriteTableOptions {
|
|
|
39
40
|
truncate?: boolean;
|
|
40
41
|
createIfNotExists?: boolean;
|
|
41
42
|
commitAfterInsert?: boolean;
|
|
43
|
+
targetTableStructure?: TableInfo;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
export interface EngineAuthType {
|
|
@@ -133,8 +135,8 @@ export interface FilterBehaviourProvider {
|
|
|
133
135
|
getFilterBehaviour(dataType: string, standardFilterBehaviours: { [id: string]: FilterBehaviour }): FilterBehaviour;
|
|
134
136
|
}
|
|
135
137
|
|
|
136
|
-
export interface DatabaseHandle {
|
|
137
|
-
client:
|
|
138
|
+
export interface DatabaseHandle<TClient = any> {
|
|
139
|
+
client: TClient;
|
|
138
140
|
database?: string;
|
|
139
141
|
feedback?: (message: any) => void;
|
|
140
142
|
getDatabase?: () => any;
|
|
@@ -142,7 +144,7 @@ export interface DatabaseHandle {
|
|
|
142
144
|
treeKeySeparator?: string;
|
|
143
145
|
}
|
|
144
146
|
|
|
145
|
-
export interface EngineDriver extends FilterBehaviourProvider {
|
|
147
|
+
export interface EngineDriver<TClient = any> extends FilterBehaviourProvider {
|
|
146
148
|
engine: string;
|
|
147
149
|
title: string;
|
|
148
150
|
defaultPort?: number;
|
|
@@ -160,8 +162,9 @@ export interface EngineDriver extends FilterBehaviourProvider {
|
|
|
160
162
|
profilerTimestampFunction?: string;
|
|
161
163
|
profilerChartAggregateFunction?: string;
|
|
162
164
|
profilerChartMeasures?: { label: string; field: string }[];
|
|
163
|
-
isElectronOnly?: boolean;
|
|
165
|
+
// isElectronOnly?: boolean;
|
|
164
166
|
supportsTransactions?: boolean;
|
|
167
|
+
implicitTransactions?: boolean; // transaction is started with first SQL command, no BEGIN TRANSACTION is needed
|
|
165
168
|
|
|
166
169
|
collectionSingularLabel?: string;
|
|
167
170
|
collectionPluralLabel?: string;
|
|
@@ -180,57 +183,68 @@ export interface EngineDriver extends FilterBehaviourProvider {
|
|
|
180
183
|
beforeConnectionSave?: (values: any) => any;
|
|
181
184
|
databaseUrlPlaceholder?: string;
|
|
182
185
|
defaultAuthTypeName?: string;
|
|
186
|
+
defaultLocalDataCenter?: string;
|
|
183
187
|
defaultSocketPath?: string;
|
|
184
188
|
authTypeLabel?: string;
|
|
185
189
|
importExportArgs?: any[];
|
|
186
|
-
connect({ server, port, user, password, database }): Promise<DatabaseHandle
|
|
187
|
-
close(dbhan: DatabaseHandle): Promise<any>;
|
|
188
|
-
query(dbhan: DatabaseHandle
|
|
189
|
-
stream(dbhan: DatabaseHandle
|
|
190
|
-
readQuery(dbhan: DatabaseHandle
|
|
191
|
-
readJsonQuery(dbhan: DatabaseHandle
|
|
190
|
+
connect({ server, port, user, password, database }): Promise<DatabaseHandle<TClient>>;
|
|
191
|
+
close(dbhan: DatabaseHandle<TClient>): Promise<any>;
|
|
192
|
+
query(dbhan: DatabaseHandle<TClient>, sql: string, options?: QueryOptions): Promise<QueryResult>;
|
|
193
|
+
stream(dbhan: DatabaseHandle<TClient>, sql: string, options: StreamOptions);
|
|
194
|
+
readQuery(dbhan: DatabaseHandle<TClient>, sql: string, structure?: TableInfo): Promise<stream.Readable>;
|
|
195
|
+
readJsonQuery(dbhan: DatabaseHandle<TClient>, query: any, structure?: TableInfo): Promise<stream.Readable>;
|
|
192
196
|
// eg. PostgreSQL COPY FROM stdin
|
|
193
|
-
writeQueryFromStream(dbhan: DatabaseHandle
|
|
194
|
-
writeTable(
|
|
197
|
+
writeQueryFromStream(dbhan: DatabaseHandle<TClient>, sql: string): Promise<stream.Writable>;
|
|
198
|
+
writeTable(
|
|
199
|
+
dbhan: DatabaseHandle<TClient>,
|
|
200
|
+
name: NamedObjectInfo,
|
|
201
|
+
options: WriteTableOptions
|
|
202
|
+
): Promise<stream.Writable>;
|
|
195
203
|
analyseSingleObject(
|
|
196
|
-
dbhan: DatabaseHandle
|
|
204
|
+
dbhan: DatabaseHandle<TClient>,
|
|
197
205
|
name: NamedObjectInfo,
|
|
198
206
|
objectTypeField: keyof DatabaseInfo
|
|
199
207
|
): Promise<TableInfo | ViewInfo | ProcedureInfo | FunctionInfo | TriggerInfo>;
|
|
200
|
-
analyseSingleTable(dbhan: DatabaseHandle
|
|
201
|
-
getVersion(dbhan: DatabaseHandle): Promise<{ version: string; versionText?: string }>;
|
|
202
|
-
listDatabases(dbhan: DatabaseHandle): Promise<
|
|
208
|
+
analyseSingleTable(dbhan: DatabaseHandle<TClient>, name: NamedObjectInfo): Promise<TableInfo>;
|
|
209
|
+
getVersion(dbhan: DatabaseHandle<TClient>): Promise<{ version: string; versionText?: string }>;
|
|
210
|
+
listDatabases(dbhan: DatabaseHandle<TClient>): Promise<
|
|
203
211
|
{
|
|
204
212
|
name: string;
|
|
205
213
|
}[]
|
|
206
214
|
>;
|
|
207
|
-
loadKeys(dbhan: DatabaseHandle
|
|
208
|
-
exportKeys(dbhan: DatabaseHandle
|
|
209
|
-
loadKeyInfo(dbhan: DatabaseHandle
|
|
210
|
-
loadKeyTableRange(dbhan: DatabaseHandle
|
|
211
|
-
loadFieldValues(
|
|
212
|
-
|
|
213
|
-
|
|
215
|
+
loadKeys(dbhan: DatabaseHandle<TClient>, root: string, filter?: string): Promise;
|
|
216
|
+
exportKeys(dbhan: DatabaseHandle<TClient>, options: {}): Promise;
|
|
217
|
+
loadKeyInfo(dbhan: DatabaseHandle<TClient>, key): Promise;
|
|
218
|
+
loadKeyTableRange(dbhan: DatabaseHandle<TClient>, key, cursor, count): Promise;
|
|
219
|
+
loadFieldValues(
|
|
220
|
+
dbhan: DatabaseHandle<TClient>,
|
|
221
|
+
name: NamedObjectInfo,
|
|
222
|
+
field: string,
|
|
223
|
+
search: string,
|
|
224
|
+
dataType: string
|
|
225
|
+
): Promise;
|
|
226
|
+
analyseFull(dbhan: DatabaseHandle<TClient>, serverVersion): Promise<DatabaseInfo>;
|
|
227
|
+
analyseIncremental(dbhan: DatabaseHandle<TClient>, structure: DatabaseInfo, serverVersion): Promise<DatabaseInfo>;
|
|
214
228
|
dialect: SqlDialect;
|
|
215
229
|
dialectByVersion(version): SqlDialect;
|
|
216
230
|
createDumper(options = null): SqlDumper;
|
|
217
|
-
createBackupDumper(dbhan: DatabaseHandle
|
|
231
|
+
createBackupDumper(dbhan: DatabaseHandle<TClient>, options): Promise<SqlBackupDumper>;
|
|
218
232
|
getAuthTypes(): EngineAuthType[];
|
|
219
|
-
readCollection(dbhan: DatabaseHandle
|
|
220
|
-
updateCollection(dbhan: DatabaseHandle
|
|
233
|
+
readCollection(dbhan: DatabaseHandle<TClient>, options: ReadCollectionOptions): Promise<any>;
|
|
234
|
+
updateCollection(dbhan: DatabaseHandle<TClient>, changeSet: any): Promise<any>;
|
|
221
235
|
getCollectionUpdateScript(changeSet: any, collectionInfo: CollectionInfo): string;
|
|
222
|
-
createDatabase(dbhan: DatabaseHandle
|
|
223
|
-
dropDatabase(dbhan: DatabaseHandle
|
|
236
|
+
createDatabase(dbhan: DatabaseHandle<TClient>, name: string): Promise;
|
|
237
|
+
dropDatabase(dbhan: DatabaseHandle<TClient>, name: string): Promise;
|
|
224
238
|
getQuerySplitterOptions(usage: 'stream' | 'script' | 'editor' | 'import'): any;
|
|
225
|
-
script(dbhan: DatabaseHandle
|
|
226
|
-
operation(dbhan: DatabaseHandle
|
|
239
|
+
script(dbhan: DatabaseHandle<TClient>, sql: string, options?: RunScriptOptions): Promise;
|
|
240
|
+
operation(dbhan: DatabaseHandle<TClient>, operation: {}, options?: RunScriptOptions): Promise;
|
|
227
241
|
getNewObjectTemplates(): NewObjectTemplate[];
|
|
228
242
|
// direct call of dbhan.client method, only some methods could be supported, on only some drivers
|
|
229
|
-
callMethod(dbhan: DatabaseHandle
|
|
230
|
-
serverSummary(dbhan: DatabaseHandle): Promise<ServerSummary>;
|
|
231
|
-
summaryCommand(dbhan: DatabaseHandle
|
|
232
|
-
startProfiler(dbhan: DatabaseHandle
|
|
233
|
-
stopProfiler(dbhan: DatabaseHandle
|
|
243
|
+
callMethod(dbhan: DatabaseHandle<TClient>, method, args);
|
|
244
|
+
serverSummary(dbhan: DatabaseHandle<TClient>): Promise<ServerSummary>;
|
|
245
|
+
summaryCommand(dbhan: DatabaseHandle<TClient>, command, row): Promise<void>;
|
|
246
|
+
startProfiler(dbhan: DatabaseHandle<TClient>, options): Promise<any>;
|
|
247
|
+
stopProfiler(dbhan: DatabaseHandle<TClient>, profiler): Promise<void>;
|
|
234
248
|
getRedirectAuthUrl(connection, options): Promise<{ url: string; sid: string }>;
|
|
235
249
|
getAuthTokenFromCode(connection, options): Promise<string>;
|
|
236
250
|
getAccessTokenFromAuth(connection, req): Promise<string | null>;
|
|
@@ -241,11 +255,13 @@ export interface EngineDriver extends FilterBehaviourProvider {
|
|
|
241
255
|
createSaveChangeSetScript(
|
|
242
256
|
changeSet: any,
|
|
243
257
|
dbinfo: DatabaseInfo,
|
|
244
|
-
defaultCreator: (changeSet: any, dbinfo: DatabaseInfo) => any
|
|
258
|
+
defaultCreator: (changeSet: any, dbinfo: DatabaseInfo, dialect: SqlDialect) => any
|
|
245
259
|
): any[];
|
|
246
260
|
// adapts table info from different source (import, other database) to be suitable for this database
|
|
247
261
|
adaptTableInfo(table: TableInfo): TableInfo;
|
|
248
|
-
|
|
262
|
+
// simple data type adapter
|
|
263
|
+
adaptDataType(dataType: string): string;
|
|
264
|
+
listSchemas(dbhan: DatabaseHandle<TClient>): SchemaInfo[];
|
|
249
265
|
|
|
250
266
|
analyserClass?: any;
|
|
251
267
|
dumperClass?: any;
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ParameterInfo, SchedulerEventInfo, TriggerInfo } from './dbinfo';
|
|
2
|
+
|
|
3
|
+
export type TestObjectInfo = {
|
|
4
|
+
type: string;
|
|
5
|
+
create1: string;
|
|
6
|
+
create2: string;
|
|
7
|
+
drop1: string;
|
|
8
|
+
drop2: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type TestEngineInfo = {
|
|
12
|
+
label: string;
|
|
13
|
+
connection: {
|
|
14
|
+
engine: string;
|
|
15
|
+
server?: string;
|
|
16
|
+
databaseUrl?: string;
|
|
17
|
+
serviceName?: string;
|
|
18
|
+
password?: string;
|
|
19
|
+
user?: string;
|
|
20
|
+
port?: number;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
removeNotNull?: boolean;
|
|
24
|
+
|
|
25
|
+
skipOnCI?: boolean;
|
|
26
|
+
skipIncrementalAnalysis?: boolean;
|
|
27
|
+
skipDataModifications?: boolean;
|
|
28
|
+
skipReferences?: boolean;
|
|
29
|
+
skipIndexes?: boolean;
|
|
30
|
+
skipNullability?: boolean;
|
|
31
|
+
skipUnique?: boolean;
|
|
32
|
+
skipAutoIncrement?: boolean;
|
|
33
|
+
skipPkColumnTesting?: boolean;
|
|
34
|
+
skipDataDuplicator?: boolean;
|
|
35
|
+
skipDeploy?: boolean;
|
|
36
|
+
skipStringLength?: boolean;
|
|
37
|
+
skipChangeColumn?: boolean;
|
|
38
|
+
skipDefaultValue?: boolean;
|
|
39
|
+
skipNonPkRename?: boolean;
|
|
40
|
+
skipPkDrop?: boolean;
|
|
41
|
+
skipOrderBy?: boolean;
|
|
42
|
+
skipImportModel?: boolean;
|
|
43
|
+
|
|
44
|
+
forceSortResults?: boolean;
|
|
45
|
+
forceSortStructureColumns?: boolean;
|
|
46
|
+
alterTableAddColumnSyntax?: boolean;
|
|
47
|
+
dbSnapshotBySeconds?: boolean;
|
|
48
|
+
setNullDefaultInsteadOfDrop?: boolean;
|
|
49
|
+
|
|
50
|
+
useTextTypeForStrings?: boolean;
|
|
51
|
+
|
|
52
|
+
supportRenameSqlObject?: boolean;
|
|
53
|
+
supportSchemas?: boolean;
|
|
54
|
+
|
|
55
|
+
defaultSchemaName?: string;
|
|
56
|
+
|
|
57
|
+
generateDbFile?: boolean;
|
|
58
|
+
dbSnapshotBySeconds?: boolean;
|
|
59
|
+
dumpFile?: string;
|
|
60
|
+
dumpChecks?: Array<{ sql: string; res: string }>;
|
|
61
|
+
|
|
62
|
+
parametersOtherSql?: string[];
|
|
63
|
+
parameters?: Array<{
|
|
64
|
+
testName: string;
|
|
65
|
+
create: string;
|
|
66
|
+
drop: string;
|
|
67
|
+
objectTypeField: string;
|
|
68
|
+
list: Array<Partial<ParameterInfo>>;
|
|
69
|
+
}>;
|
|
70
|
+
triggers?: Array<{
|
|
71
|
+
testName: string;
|
|
72
|
+
create: string;
|
|
73
|
+
drop: string;
|
|
74
|
+
triggerOtherCreateSql?: string;
|
|
75
|
+
triggerOtherDropSql?: string;
|
|
76
|
+
objectTypeField: string;
|
|
77
|
+
expected: Partial<TriggerInfo>;
|
|
78
|
+
}>;
|
|
79
|
+
schedulerEvents?: Array<{
|
|
80
|
+
create: string;
|
|
81
|
+
drop: string;
|
|
82
|
+
objectTypeField: string;
|
|
83
|
+
expected: Partial<SchedulerEventInfo>;
|
|
84
|
+
}>;
|
|
85
|
+
|
|
86
|
+
objects?: Array<TestObjectInfo>;
|
|
87
|
+
};
|