@nativescript-community/sqlite 3.4.1 → 3.5.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 +59 -7
- package/nanosql/index.js +3 -1
- package/nanosql/index.js.map +1 -1
- package/package.json +13 -6
- package/platforms/android/native-api-usage.json +4 -3
- package/scripts/before-prepare.js +30 -0
- package/scripts/before-prepare.js.map +1 -1
- package/sqlite.android.d.ts +3 -2
- package/sqlite.android.js +4 -5
- package/sqlite.android.js.map +1 -1
- package/sqlite.common.d.ts +8 -8
- package/sqlite.common.js +1 -0
- package/sqlite.common.js.map +1 -1
- package/sqlite.ios.d.ts +6 -6
- package/sqlite.ios.js +276 -28
- package/sqlite.ios.js.map +1 -1
- package/sqlitedatabase.android.d.ts +9 -39
- package/sqlitedatabase.android.js +25 -21
- package/sqlitedatabase.android.js.map +1 -1
- package/sqlitedatabase.d.ts +1 -0
- package/typeorm/NativescriptDriver.d.ts +37 -5
- package/typeorm/NativescriptDriver.js +29 -4
- package/typeorm/NativescriptDriver.js.map +1 -1
- package/typeorm/NativescriptQueryRunner.d.ts +16 -10
- package/typeorm/NativescriptQueryRunner.js +29 -7
- package/typeorm/NativescriptQueryRunner.js.map +1 -1
- package/typeorm/index.d.ts +17 -2
- package/typeorm/index.js +8 -1
- package/typeorm/index.js.map +1 -1
- package/typings/objc!FMDB.d.ts +487 -0
- package/worker.js +31 -2
- package/worker.js.map +1 -1
- package/CHANGELOG.md +0 -230
- package/before-prepare.js.map +0 -1
- package/postinstall.d.ts +0 -0
- package/postinstall.js +0 -2
- package/postinstall.js.map +0 -1
- package/preuninstall.d.ts +0 -0
- package/preuninstall.js +0 -2
- package/preuninstall.js.map +0 -1
package/sqlite.ios.js
CHANGED
@@ -1,26 +1,93 @@
|
|
1
|
-
import { paramsToStringArray, throwError
|
1
|
+
import { paramsToStringArray, throwError } from './sqlite.common';
|
2
2
|
const iosProperty = (_self, property) => {
|
3
3
|
if (typeof property === 'function') {
|
4
|
+
// xCode < 8
|
4
5
|
return property.call(_self);
|
5
6
|
}
|
6
7
|
else {
|
8
|
+
// xCode >= 8
|
7
9
|
return property;
|
8
10
|
}
|
9
11
|
};
|
10
|
-
const toCharPtr = (str) => {
|
11
|
-
const objcStr = NSString.stringWithString(str);
|
12
|
-
const size = strlen(objcStr.UTF8String) + 1;
|
13
|
-
const buffer = interop.alloc(size);
|
14
|
-
objcStr.getCStringMaxLengthEncoding(buffer, size, NSUTF8StringEncoding);
|
15
|
-
return buffer;
|
16
|
-
};
|
17
12
|
const getNewCursorStatement = (statement) => ({
|
18
13
|
statement,
|
19
14
|
built: false,
|
20
15
|
columns: [],
|
21
|
-
count: undefined
|
16
|
+
count: undefined
|
22
17
|
});
|
18
|
+
// const getValuesAsString = (
|
19
|
+
// statement: interop.Reference<any>,
|
20
|
+
// column: number
|
21
|
+
// ) => {
|
22
|
+
// const type = sqlite3_column_type(statement, column);
|
23
|
+
// switch (type) {
|
24
|
+
// case 1: // Int
|
25
|
+
// case 2: // Float
|
26
|
+
// case 3: // Text
|
27
|
+
// return NSString.stringWithUTF8String(
|
28
|
+
// sqlite3_column_text(statement, column)
|
29
|
+
// ).toString();
|
30
|
+
// case 4: // Blob
|
31
|
+
// return NSData.dataWithBytesLength(
|
32
|
+
// sqlite3_column_blob(statement, column),
|
33
|
+
// sqlite3_column_bytes(statement, column)
|
34
|
+
// );
|
35
|
+
// case 5: // Null
|
36
|
+
// return null;
|
37
|
+
// default:
|
38
|
+
// throwError(`unknown.type: ${type}`);
|
39
|
+
// }
|
40
|
+
// };
|
41
|
+
// const getValues = (statement: FMResultSet, column: number) => {
|
42
|
+
// const type = statement.;
|
43
|
+
// switch (type) {
|
44
|
+
// case 1: // Int
|
45
|
+
// return sqlite3_column_int64(statement, column);
|
46
|
+
// case 2: // Float
|
47
|
+
// return sqlite3_column_double(statement, column);
|
48
|
+
// case 3: // Text
|
49
|
+
// return NSString.stringWithUTF8String(
|
50
|
+
// sqlite3_column_text(statement, column)
|
51
|
+
// ).toString();
|
52
|
+
// case 4: // Blob
|
53
|
+
// return NSData.dataWithBytesLength(
|
54
|
+
// sqlite3_column_blob(statement, column),
|
55
|
+
// sqlite3_column_bytes(statement, column)
|
56
|
+
// );
|
57
|
+
// case 5: // Null
|
58
|
+
// return null;
|
59
|
+
// default:
|
60
|
+
// throwError(`unknown.type: ${type}`);
|
61
|
+
// return null;
|
62
|
+
// }
|
63
|
+
// };
|
64
|
+
// const getColumns = (
|
65
|
+
// statement: interop.Reference<any>,
|
66
|
+
// cursorSt: CursorStatement,
|
67
|
+
// asObject: boolean
|
68
|
+
// ) => {
|
69
|
+
// if (!cursorSt.built) {
|
70
|
+
// cursorSt.count = sqlite3_column_count(statement);
|
71
|
+
// if (asObject) {
|
72
|
+
// for (let index = 0; index < cursorSt.count; index++) {
|
73
|
+
// let colName = NSString.stringWithUTF8String(
|
74
|
+
// sqlite3_column_name(statement, index)
|
75
|
+
// ).toString();
|
76
|
+
// if (!colName || cursorSt.columns.indexOf(colName) >= 0) {
|
77
|
+
// colName = `column[${index}]`;
|
78
|
+
// }
|
79
|
+
// cursorSt.columns = [...cursorSt.columns, colName];
|
80
|
+
// }
|
81
|
+
// }
|
82
|
+
// cursorSt.built = true;
|
83
|
+
// }
|
84
|
+
// return cursorSt.count;
|
85
|
+
// };
|
23
86
|
function getResultsAsObject(cursorSt, transformBlobs) {
|
87
|
+
// const count = cursorSt.columnCount;
|
88
|
+
// if (!count) {
|
89
|
+
// return null;
|
90
|
+
// }
|
24
91
|
const data = {};
|
25
92
|
const dict = cursorSt.resultDictionary;
|
26
93
|
dict.enumerateKeysAndObjectsUsingBlock((key, value) => {
|
@@ -30,9 +97,11 @@ function getResultsAsObject(cursorSt, transformBlobs) {
|
|
30
97
|
data[key] = value;
|
31
98
|
}
|
32
99
|
});
|
100
|
+
// for (let index = 0; index < count; index++) {
|
101
|
+
// data[cursorSt.columnNameForIndex(index)] = getValues(cursorSt, index);
|
102
|
+
// }
|
33
103
|
return data;
|
34
104
|
}
|
35
|
-
;
|
36
105
|
function getResultsAsArray(cursorSt, transformBlobs) {
|
37
106
|
const data = [];
|
38
107
|
const dict = cursorSt.resultDictionary;
|
@@ -43,25 +112,142 @@ function getResultsAsArray(cursorSt, transformBlobs) {
|
|
43
112
|
data.push(value);
|
44
113
|
}
|
45
114
|
});
|
115
|
+
// for (let index = 0; index < count; index++) {
|
116
|
+
// data[cursorSt.columnNameForIndex(index)] = getValues(cursorSt, index);
|
117
|
+
// }
|
46
118
|
return data;
|
47
119
|
}
|
48
|
-
;
|
49
120
|
function getRealPath(dbname, create = false) {
|
50
121
|
if (dbname === ':memory:') {
|
51
122
|
return null;
|
52
123
|
}
|
53
124
|
return dbname;
|
125
|
+
// if (dbname !== "") {
|
126
|
+
// let actualPath;
|
127
|
+
// if (dbname.indexOf("/") === -1) {
|
128
|
+
// actualPath = knownFolders.documents().path;
|
129
|
+
// dbname = actualPath + "/" + dbname;
|
130
|
+
// } else {
|
131
|
+
// actualPath = dbname.substr(0, dbname.lastIndexOf("/") + 1);
|
132
|
+
// }
|
133
|
+
// // Create "databases" folder if it is missing. This causes issues on Emulators if it is missing
|
134
|
+
// // So we create it if it is missing
|
135
|
+
// // try {
|
136
|
+
// // // noinspection JSUnresolvedVariable
|
137
|
+
// // if (!File.exists(actualPath) && create) {
|
138
|
+
// // //noinspection JSUnresolvedFunction
|
139
|
+
// // const fileManager = iosProperty(
|
140
|
+
// // NSFileManager,
|
141
|
+
// // NSFileManager.defaultManager
|
142
|
+
// // );
|
143
|
+
// // //noinspection JSUnresolvedFunction
|
144
|
+
// // if (
|
145
|
+
// // !fileManager.createDirectoryAtPathWithIntermediateDirectoriesAttributesError(
|
146
|
+
// // actualPath,
|
147
|
+
// // true,
|
148
|
+
// // null
|
149
|
+
// // )
|
150
|
+
// // ) {
|
151
|
+
// // console.warn(
|
152
|
+
// // "SQLITE.CONSTRUCTOR - Creating DB Folder Error"
|
153
|
+
// // );
|
154
|
+
// // }
|
155
|
+
// // }
|
156
|
+
// // } catch (err) {
|
157
|
+
// // console.warn("SQLITE.CONSTRUCTOR - Creating DB Folder Error", err);
|
158
|
+
// // }
|
159
|
+
// return actualPath;
|
160
|
+
// }
|
54
161
|
}
|
162
|
+
// function open(filePath: string, flags?: number, readOnly?: boolean): FMDatabase {
|
163
|
+
// const db = new interop.Reference<any>();
|
164
|
+
// console.log("open", filePath, flags, readOnly, getRealPath(filePath));
|
165
|
+
// const result = sqlite3_open_v2(
|
166
|
+
// toCharPtr(getRealPath(filePath)),
|
167
|
+
// db,
|
168
|
+
// (readOnly === true ? 65537 : 65542) | flags,
|
169
|
+
// null
|
170
|
+
// );
|
171
|
+
// if (result) {
|
172
|
+
// throwError(`open: ${result}`);
|
173
|
+
// }
|
174
|
+
// return db.value;
|
175
|
+
// }
|
176
|
+
// function prepareStatement(db: FMDatabase, query: string) {
|
177
|
+
// const statement = new interop.Reference<any>();
|
178
|
+
// const result = sqlite3_prepare_v2(db, query, -1, statement, null);
|
179
|
+
// if (result) {
|
180
|
+
// throwError(`prepareStatement: ${result}`);
|
181
|
+
// }
|
182
|
+
// return statement.value as interop.Reference<any>;
|
183
|
+
// }
|
184
|
+
// function step(statement: interop.Reference<any>) {
|
185
|
+
// const result = sqlite3_step(statement);
|
186
|
+
// if (result && result !== 100 && result !== 101) {
|
187
|
+
// finalize(statement);
|
188
|
+
// throwError(`step: ${result}`);
|
189
|
+
// }
|
190
|
+
// return result;
|
191
|
+
// }
|
192
|
+
// function bind(params: SqliteParams, statement: interop.Reference<any>) {
|
193
|
+
// paramsToStringArray(params).forEach((param, i) => {
|
194
|
+
// let result;
|
195
|
+
// if (param === null) {
|
196
|
+
// result = sqlite3_bind_null(statement, i + 1);
|
197
|
+
// } else {
|
198
|
+
// result = sqlite3_bind_text(
|
199
|
+
// statement,
|
200
|
+
// i + 1,
|
201
|
+
// param,
|
202
|
+
// -1,
|
203
|
+
// sqlitehelper.getTrans()
|
204
|
+
// );
|
205
|
+
// }
|
206
|
+
// if (result) {
|
207
|
+
// finalize(statement);
|
208
|
+
// throwError(`bind: ${result}`);
|
209
|
+
// }
|
210
|
+
// });
|
211
|
+
// }
|
212
|
+
// function finalize(statement: interop.Reference<any>) {
|
213
|
+
// const result = sqlite3_finalize(statement);
|
214
|
+
// if (result) {
|
215
|
+
// throwError(`finalize: ${result}`);
|
216
|
+
// }
|
217
|
+
// }
|
55
218
|
function getRaw(db, query, params, asObject, transformBlobs) {
|
219
|
+
// const statement = prepareStatement(db, query);
|
220
|
+
// const cursorSt = getNewCursorStatement(statement);
|
221
|
+
// bind(params, statement);
|
222
|
+
// const result = step(statement);
|
223
|
+
// let data;
|
224
|
+
// if (result === 100) {
|
225
|
+
// data = asObject
|
226
|
+
// ? getResultsAsObject(cursorSt)
|
227
|
+
// : getResultsAsArray(cursorSt);
|
228
|
+
// }
|
229
|
+
// finalize(statement);
|
230
|
+
// return data;
|
56
231
|
const s = db.executeQueryWithArgumentsInArray(query, paramsToStringArray(params));
|
57
232
|
if (s) {
|
58
233
|
return asObject ? getResultsAsObject(s, transformBlobs) : getResultsAsArray(s, transformBlobs);
|
234
|
+
// while (s.next()) {
|
235
|
+
// //retrieve values for each record
|
236
|
+
// const row = getResults(s);
|
237
|
+
// if (row) {
|
238
|
+
// rows = [...rows, row];
|
239
|
+
// }
|
240
|
+
// }
|
59
241
|
}
|
60
242
|
else {
|
61
243
|
throw db.lastError();
|
62
244
|
}
|
63
245
|
}
|
64
246
|
function eachRaw(db, query, params, asObject, callback, complete, transformBlobs) {
|
247
|
+
// const statement = prepareStatement(db, query);
|
248
|
+
// const cursorSt = getNewCursorStatement(statement);
|
249
|
+
// bind(params, statement);
|
250
|
+
// let rows = [];
|
65
251
|
const getResults = asObject ? getResultsAsObject : getResultsAsArray;
|
66
252
|
return Promise.resolve()
|
67
253
|
.then(() => {
|
@@ -69,6 +255,7 @@ function eachRaw(db, query, params, asObject, callback, complete, transformBlobs
|
|
69
255
|
const s = db.executeQueryWithArgumentsInArray(query, paramsToStringArray(params));
|
70
256
|
if (s) {
|
71
257
|
while (s.next()) {
|
258
|
+
//retrieve values for each record
|
72
259
|
const row = getResults(s, transformBlobs);
|
73
260
|
if (row) {
|
74
261
|
count++;
|
@@ -79,23 +266,44 @@ function eachRaw(db, query, params, asObject, callback, complete, transformBlobs
|
|
79
266
|
else {
|
80
267
|
throw db.lastError();
|
81
268
|
}
|
269
|
+
// while (true) {
|
270
|
+
// const result = step(statement);
|
271
|
+
// if (result === 100) {
|
272
|
+
// const row = getResults(cursorSt);
|
273
|
+
// if (row) {
|
274
|
+
// count++;
|
275
|
+
// callback(null, row);
|
276
|
+
// }
|
277
|
+
// } else if (result && result !== 101) {
|
278
|
+
// finalize(statement);
|
279
|
+
// throw new Error("db_error " + result);
|
280
|
+
// } else {
|
281
|
+
// break;
|
282
|
+
// }
|
283
|
+
// }
|
284
|
+
// finalize(statement);
|
82
285
|
complete && complete(null, count);
|
83
286
|
return count;
|
84
287
|
})
|
85
|
-
.catch(err => {
|
288
|
+
.catch((err) => {
|
86
289
|
const errorCB = complete || callback;
|
87
290
|
if (errorCB) {
|
88
291
|
errorCB(err, null);
|
89
292
|
}
|
90
293
|
return Promise.reject(err);
|
91
294
|
});
|
295
|
+
// return rows;
|
92
296
|
}
|
93
297
|
function selectRaw(db, query, params, asObject, transformBlobs) {
|
298
|
+
// const statement = prepareStatement(db, query);
|
299
|
+
// const cursorSt = getNewCursorStatement(statement);
|
300
|
+
// bind(params, statement);
|
94
301
|
let rows = [];
|
95
302
|
const getResults = asObject ? getResultsAsObject : getResultsAsArray;
|
96
303
|
const s = db.executeQueryWithArgumentsInArray(query, paramsToStringArray(params));
|
97
304
|
if (s) {
|
98
305
|
while (s.next()) {
|
306
|
+
//retrieve values for each record
|
99
307
|
const row = getResults(s, transformBlobs);
|
100
308
|
if (row) {
|
101
309
|
rows = [...rows, row];
|
@@ -105,11 +313,35 @@ function selectRaw(db, query, params, asObject, transformBlobs) {
|
|
105
313
|
else {
|
106
314
|
throw db.lastError();
|
107
315
|
}
|
316
|
+
// while (true) {
|
317
|
+
// const result = step(statement);
|
318
|
+
// if (result === 100) {
|
319
|
+
// const row = getResults(cursorSt);
|
320
|
+
// if (row) {
|
321
|
+
// rows = [...rows, row];
|
322
|
+
// }
|
323
|
+
// } else {
|
324
|
+
// break;
|
325
|
+
// }
|
326
|
+
// }
|
327
|
+
// finalize(statement);
|
108
328
|
return rows;
|
109
329
|
}
|
110
330
|
function execRaw(db, query, params) {
|
331
|
+
// const statement = prepareStatement(db, query);
|
332
|
+
// bind(params, statement);
|
333
|
+
// step(statement);
|
334
|
+
// finalize(statement);
|
111
335
|
const s = db.executeUpdateWithArgumentsInArray(query, paramsToStringArray(params));
|
112
336
|
if (!s) {
|
337
|
+
// while (s.next()) {
|
338
|
+
// //retrieve values for each record
|
339
|
+
// const row = getResults(s);
|
340
|
+
// if (row) {
|
341
|
+
// rows = [...rows, row];
|
342
|
+
// }
|
343
|
+
// }
|
344
|
+
// } else {
|
113
345
|
throw db.lastError();
|
114
346
|
}
|
115
347
|
}
|
@@ -135,7 +367,7 @@ async function transactionRaw(db, action, isFirstTransaction) {
|
|
135
367
|
if (isFirstTransaction) {
|
136
368
|
execRaw(db, 'ROLLBACK TRANSACTION');
|
137
369
|
}
|
138
|
-
throwError(
|
370
|
+
throwError(e);
|
139
371
|
return null;
|
140
372
|
}
|
141
373
|
}
|
@@ -146,7 +378,7 @@ export class SQLiteDatabase {
|
|
146
378
|
this._isInTransaction = false;
|
147
379
|
this.transformBlobs = !options || options.transformBlobs !== false;
|
148
380
|
}
|
149
|
-
|
381
|
+
open() {
|
150
382
|
if (!this.db) {
|
151
383
|
this.db = FMDatabase.databaseWithPath(getRealPath(this.filePath));
|
152
384
|
}
|
@@ -155,46 +387,62 @@ export class SQLiteDatabase {
|
|
155
387
|
}
|
156
388
|
return this.isOpen;
|
157
389
|
}
|
158
|
-
|
390
|
+
close() {
|
159
391
|
if (!this.isOpen)
|
160
392
|
return;
|
161
393
|
this.db.close();
|
394
|
+
// sqlite3_close_v2(db);
|
162
395
|
this.db = null;
|
163
396
|
this.isOpen = false;
|
164
397
|
}
|
165
|
-
|
398
|
+
setVersion(version) {
|
166
399
|
this.db.userVersion = version + 0;
|
400
|
+
// const query = "PRAGMA user_version=" + (version + 0).toString();
|
401
|
+
// execRaw(this.db, query);
|
167
402
|
}
|
168
|
-
|
403
|
+
getVersion() {
|
404
|
+
// const query = "PRAGMA user_version";
|
405
|
+
// const result = this.getArray(query);
|
406
|
+
// return result && (result[0] as number);
|
169
407
|
return this.db.userVersion;
|
170
408
|
}
|
171
409
|
async execute(query, params) {
|
172
410
|
return execRaw(this.db, query, params);
|
173
411
|
}
|
174
412
|
async get(query, params, transformBlobs) {
|
175
|
-
return
|
413
|
+
return getRaw(this.db, query, params, true, transformBlobs ?? this.transformBlobs) || null;
|
176
414
|
}
|
177
415
|
async getArray(query, params, transformBlobs) {
|
178
|
-
return (getRaw(this.db, query, params, false, transformBlobs
|
416
|
+
return (getRaw(this.db, query, params, false, transformBlobs ?? this.transformBlobs) || null);
|
179
417
|
}
|
180
418
|
async select(query, params, transformBlobs) {
|
181
|
-
return selectRaw(this.db, query, params, true, transformBlobs
|
419
|
+
return selectRaw(this.db, query, params, true, transformBlobs ?? this.transformBlobs);
|
182
420
|
}
|
183
421
|
async each(query, params, callback, complete, transformBlobs) {
|
184
|
-
return eachRaw(this.db, query, params, true, callback, complete, transformBlobs
|
422
|
+
return eachRaw(this.db, query, params, true, callback, complete, transformBlobs ?? this.transformBlobs);
|
185
423
|
}
|
186
424
|
async selectArray(query, params, transformBlobs) {
|
187
|
-
return selectRaw(this.db, query, params, false, transformBlobs
|
425
|
+
return selectRaw(this.db, query, params, false, transformBlobs ?? this.transformBlobs);
|
188
426
|
}
|
189
427
|
async transaction(action) {
|
190
428
|
let res;
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
429
|
+
let shouldFinishTransaction = false;
|
430
|
+
try {
|
431
|
+
if (!this._isInTransaction) {
|
432
|
+
this._isInTransaction = shouldFinishTransaction = true;
|
433
|
+
res = await transactionRaw(this.db, action, true);
|
434
|
+
}
|
435
|
+
else {
|
436
|
+
res = await transactionRaw(this.db, action, false);
|
437
|
+
}
|
195
438
|
}
|
196
|
-
|
197
|
-
|
439
|
+
catch (error) {
|
440
|
+
throw error;
|
441
|
+
}
|
442
|
+
finally {
|
443
|
+
if (shouldFinishTransaction) {
|
444
|
+
this._isInTransaction = false;
|
445
|
+
}
|
198
446
|
}
|
199
447
|
return res;
|
200
448
|
}
|
package/sqlite.ios.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sqlite.ios.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"sqlite.ios.js","sourceRoot":"../src/","sources":["sqlite.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2E,mBAAmB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE3I,MAAM,WAAW,GAAG,CAAgB,KAAK,EAAE,QAAW,EAAK,EAAE;IACzD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAChC,YAAY;QACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;SAAM;QACH,aAAa;QACb,OAAO,QAAQ,CAAC;KACnB;AACL,CAAC,CAAC;AAiBF,MAAM,qBAAqB,GAAG,CAAC,SAAiC,EAAmB,EAAE,CAAC,CAAC;IACnF,SAAS;IACT,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,8BAA8B;AAC9B,yCAAyC;AACzC,qBAAqB;AACrB,SAAS;AACT,2DAA2D;AAC3D,sBAAsB;AACtB,yBAAyB;AACzB,2BAA2B;AAC3B,0BAA0B;AAC1B,oDAAoD;AACpD,yDAAyD;AACzD,4BAA4B;AAE5B,0BAA0B;AAC1B,iDAAiD;AACjD,0DAA0D;AAC1D,0DAA0D;AAC1D,iBAAiB;AAEjB,0BAA0B;AAC1B,2BAA2B;AAE3B,mBAAmB;AACnB,mDAAmD;AACnD,QAAQ;AACR,KAAK;AAEL,kEAAkE;AAClE,+BAA+B;AAC/B,sBAAsB;AACtB,yBAAyB;AACzB,8DAA8D;AAE9D,2BAA2B;AAC3B,+DAA+D;AAE/D,0BAA0B;AAC1B,oDAAoD;AACpD,yDAAyD;AACzD,4BAA4B;AAE5B,0BAA0B;AAC1B,iDAAiD;AACjD,0DAA0D;AAC1D,0DAA0D;AAC1D,iBAAiB;AAEjB,0BAA0B;AAC1B,2BAA2B;AAE3B,mBAAmB;AACnB,mDAAmD;AACnD,2BAA2B;AAC3B,QAAQ;AACR,KAAK;AAEL,uBAAuB;AACvB,yCAAyC;AACzC,iCAAiC;AACjC,wBAAwB;AACxB,SAAS;AACT,6BAA6B;AAC7B,4DAA4D;AAC5D,0BAA0B;AAC1B,qEAAqE;AACrE,+DAA+D;AAC/D,4DAA4D;AAC5D,gCAAgC;AAChC,4EAA4E;AAC5E,oDAAoD;AACpD,oBAAoB;AACpB,qEAAqE;AACrE,gBAAgB;AAChB,YAAY;AACZ,iCAAiC;AACjC,QAAQ;AACR,6BAA6B;AAC7B,KAAK;AAEL,SAAS,kBAAkB,CAAC,QAAqB,EAAE,cAAwB;IACvE,sCAAsC;IACtC,gBAAgB;IAChB,mBAAmB;IACnB,IAAI;IACJ,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACvC,IAAI,CAAC,iCAAiC,CAAC,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;QAC5D,IAAI,cAAc,IAAI,KAAK,YAAY,MAAM,EAAE;SAC9C;aAAM;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACrB;IACL,CAAC,CAAC,CAAC;IACH,gDAAgD;IAChD,6EAA6E;IAC7E,IAAI;IACJ,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAqB,EAAE,cAAwB;IACtE,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACvC,IAAI,CAAC,iCAAiC,CAAC,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;QAC5D,IAAI,cAAc,IAAI,KAAK,YAAY,MAAM,EAAE;SAC9C;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;IACL,CAAC,CAAC,CAAC;IACH,gDAAgD;IAChD,6EAA6E;IAC7E,IAAI;IACJ,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAM,GAAG,KAAK;IAC/C,IAAI,MAAM,KAAK,UAAU,EAAE;QACvB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,MAAM,CAAC;IACd,uBAAuB;IACvB,sBAAsB;IACtB,wCAAwC;IACxC,sDAAsD;IACtD,8CAA8C;IAC9C,eAAe;IACf,sEAAsE;IACtE,QAAQ;IACR,uGAAuG;IACvG,0CAA0C;IAC1C,eAAe;IACf,kDAAkD;IAClD,uDAAuD;IACvD,qDAAqD;IACrD,kDAAkD;IAClD,oCAAoC;IACpC,kDAAkD;IAClD,oBAAoB;IACpB,qDAAqD;IACrD,sBAAsB;IACtB,mGAAmG;IACnG,qCAAqC;IACrC,+BAA+B;IAC/B,8BAA8B;IAC9B,uBAAuB;IACvB,qBAAqB;IACrB,mCAAmC;IACnC,yEAAyE;IACzE,wBAAwB;IACxB,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,iFAAiF;IACjF,WAAW;IACX,yBAAyB;IACzB,IAAI;AACR,CAAC;AAED,oFAAoF;AACpF,+CAA+C;AAC/C,6EAA6E;AAC7E,sCAAsC;AACtC,4CAA4C;AAC5C,cAAc;AACd,uDAAuD;AACvD,eAAe;AACf,SAAS;AACT,oBAAoB;AACpB,yCAAyC;AACzC,QAAQ;AACR,uBAAuB;AACvB,IAAI;AAEJ,6DAA6D;AAC7D,sDAAsD;AACtD,yEAAyE;AACzE,oBAAoB;AACpB,qDAAqD;AACrD,QAAQ;AACR,wDAAwD;AACxD,IAAI;AAEJ,qDAAqD;AACrD,8CAA8C;AAC9C,wDAAwD;AACxD,+BAA+B;AAC/B,yCAAyC;AACzC,QAAQ;AACR,qBAAqB;AACrB,IAAI;AAEJ,2EAA2E;AAC3E,0DAA0D;AAC1D,sBAAsB;AACtB,gCAAgC;AAChC,4DAA4D;AAC5D,mBAAmB;AACnB,0CAA0C;AAC1C,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,sBAAsB;AACtB,0CAA0C;AAC1C,iBAAiB;AACjB,YAAY;AACZ,wBAAwB;AACxB,mCAAmC;AACnC,6CAA6C;AAC7C,YAAY;AACZ,UAAU;AACV,IAAI;AAEJ,yDAAyD;AACzD,kDAAkD;AAClD,oBAAoB;AACpB,6CAA6C;AAC7C,QAAQ;AACR,IAAI;AAEJ,SAAS,MAAM,CAAC,EAAc,EAAE,KAAa,EAAE,MAAoB,EAAE,QAAiB,EAAE,cAAwB;IAC5G,iDAAiD;IACjD,qDAAqD;IACrD,2BAA2B;IAC3B,kCAAkC;IAClC,YAAY;IACZ,wBAAwB;IACxB,sBAAsB;IACtB,yCAAyC;IACzC,yCAAyC;IACzC,IAAI;IACJ,uBAAuB;IACvB,eAAe;IAEf,MAAM,CAAC,GAAG,EAAE,CAAC,gCAAgC,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,IAAI,CAAC,EAAE;QACH,OAAO,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAC/F,qBAAqB;QACrB,wCAAwC;QACxC,iCAAiC;QACjC,iBAAiB;QACjB,iCAAiC;QACjC,QAAQ;QACR,IAAI;KACP;SAAM;QACH,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;KACxB;AACL,CAAC;AAED,SAAS,OAAO,CACZ,EAAc,EACd,KAAa,EACb,MAAoB,EACpB,QAAiB,EACjB,QAAmE,EACnE,QAA+C,EAC/C,cAAwB;IAExB,iDAAiD;IACjD,qDAAqD;IACrD,2BAA2B;IAC3B,iBAAiB;IACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAErE,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC,GAAG,EAAE;QACP,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,EAAE,CAAC,gCAAgC,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,EAAE;YACH,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,iCAAiC;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC1C,IAAI,GAAG,EAAE;oBACL,KAAK,EAAE,CAAC;oBACR,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBACvB;aACJ;SACJ;aAAM;YACH,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;SACxB;QAED,iBAAiB;QACjB,sCAAsC;QACtC,4BAA4B;QAC5B,4CAA4C;QAC5C,qBAAqB;QACrB,uBAAuB;QACvB,mCAAmC;QACnC,YAAY;QACZ,6CAA6C;QAC7C,+BAA+B;QAC/B,iDAAiD;QACjD,eAAe;QACf,iBAAiB;QACjB,QAAQ;QACR,IAAI;QACJ,uBAAuB;QACvB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC;QACrC,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACtB;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEP,eAAe;AACnB,CAAC;AACD,SAAS,SAAS,CAAC,EAAc,EAAE,KAAa,EAAE,MAAoB,EAAE,QAAiB,EAAE,cAAwB;IAC/G,iDAAiD;IACjD,qDAAqD;IACrD,2BAA2B;IAC3B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACrE,MAAM,CAAC,GAAG,EAAE,CAAC,gCAAgC,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,IAAI,CAAC,EAAE;QACH,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,iCAAiC;YACjC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAC1C,IAAI,GAAG,EAAE;gBACL,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;aACzB;SACJ;KACJ;SAAM;QACH,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;KACxB;IACD,iBAAiB;IACjB,sCAAsC;IACtC,4BAA4B;IAC5B,4CAA4C;IAC5C,qBAAqB;IACrB,qCAAqC;IACrC,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,QAAQ;IACR,IAAI;IACJ,uBAAuB;IACvB,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,EAAc,EAAE,KAAa,EAAE,MAAqB;IACjE,iDAAiD;IACjD,2BAA2B;IAC3B,mBAAmB;IACnB,uBAAuB;IACvB,MAAM,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,CAAC,EAAE;QACJ,qBAAqB;QACrB,wCAAwC;QACxC,iCAAiC;QACjC,iBAAiB;QACjB,iCAAiC;QACjC,QAAQ;QACR,IAAI;QACJ,WAAW;QACX,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;KACxB;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAU,EAAc,EAAE,MAA2C,EAAE,kBAA2B;IAC3H,IAAI;QACA,IAAI,kBAAkB,EAAE;YACpB,OAAO,CAAC,EAAE,EAAE,6BAA6B,CAAC,CAAC;SAC9C;QACD,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,EAAE;YAChB,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,kBAAkB,EAAE;YACxC,OAAO,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;SACrC;aAAM,IAAI,SAAS,CAAC,KAAK,IAAI,kBAAkB,EAAE;YAC9C,OAAO,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;KACjB;IAAC,OAAO,CAAC,EAAE;QACR,IAAI,kBAAkB,EAAE;YACpB,OAAO,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;SACvC;QACD,UAAU,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAED,MAAM,OAAO,cAAc;IAGvB,YACW,QAAgB,EACvB,OAIC;QALM,aAAQ,GAAR,QAAQ,CAAQ;QAS3B,WAAM,GAAG,KAAK,CAAC;QA8Cf,qBAAgB,GAAG,KAAK,CAAC;QAhDrB,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC;IACvE,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAChB,wBAAwB;QACxB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;QAClC,mEAAmE;QACnE,2BAA2B;IAC/B,CAAC;IACD,UAAU;QACN,uCAAuC;QACvC,uCAAuC;QACvC,0CAA0C;QAC1C,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,MAAqB;QAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,MAAqB,EAAE,cAAwB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,MAAqB,EAAE,cAAwB;QACzE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAkB,CAAC;IACnH,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,MAAqB,EAAE,cAAwB;QACvE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAgB,CAAC;IACzG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,MAAoB,EAAE,QAAmD,EAAE,QAA+C,EAAE,cAAwB;QAC1K,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAA+C,EAAE,QAAQ,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;IACnJ,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAqB,EAAE,cAAwB;QAC5E,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAoB,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,WAAW,CAAU,MAA2C;QAClE,IAAI,GAAG,CAAC;QACR,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,GAAG,IAAI,CAAC;gBACvD,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;aACrD;iBACI;gBACD,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;aACtD;SACJ;QAAC,OAAM,KAAK,EAAE;YACX,MAAM,KAAK,CAAC;SACf;gBAAS;YACN,IAAI,uBAAuB,EAAE;gBACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACjC;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAED,MAAM,UAAU,YAAY,CACxB,QAAgB,EAChB,KAAc,EACd,OAIC;IAED,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;QACxC,OAAO,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;KACtD;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { SqliteParams
|
1
|
+
import { SqliteParams } from './sqlite.common';
|
2
2
|
export declare function byteArrayToBuffer(value: any): Uint8Array;
|
3
3
|
export declare class SQLiteDatabaseBase {
|
4
4
|
filePath: string;
|
@@ -22,46 +22,16 @@ export declare class SQLiteDatabaseBase {
|
|
22
22
|
};
|
23
23
|
}): void;
|
24
24
|
lastId: number;
|
25
|
-
sendMessageToWorker(nativeData: any, messageData: any, timeout?: number): Promise<
|
26
|
-
id: number;
|
27
|
-
nativeDatas?: {
|
28
|
-
[k: string]: any;
|
29
|
-
};
|
30
|
-
[k: string]: any;
|
31
|
-
}>;
|
25
|
+
sendMessageToWorker(nativeData: any, messageData: any, timeout?: number): Promise<any>;
|
32
26
|
get isOpen(): boolean;
|
33
|
-
close():
|
27
|
+
close(): void;
|
34
28
|
setVersion(version: number): Promise<void>;
|
35
|
-
getVersion():
|
36
|
-
execute(query: string, params?: SqliteParams): Promise<
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
};
|
42
|
-
}>;
|
43
|
-
get(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<SqliteRow>;
|
44
|
-
getArray(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any[] | {
|
45
|
-
[k: string]: any;
|
46
|
-
id: number;
|
47
|
-
nativeDatas?: {
|
48
|
-
[k: string]: any;
|
49
|
-
};
|
50
|
-
}>;
|
51
|
-
select(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<SqliteRow[] | {
|
52
|
-
[k: string]: any;
|
53
|
-
id: number;
|
54
|
-
nativeDatas?: {
|
55
|
-
[k: string]: any;
|
56
|
-
};
|
57
|
-
}>;
|
58
|
-
selectArray(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any[][] | {
|
59
|
-
[k: string]: any;
|
60
|
-
id: number;
|
61
|
-
nativeDatas?: {
|
62
|
-
[k: string]: any;
|
63
|
-
};
|
64
|
-
}>;
|
29
|
+
getVersion(): number;
|
30
|
+
execute(query: string, params?: SqliteParams): Promise<any>;
|
31
|
+
get(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any>;
|
32
|
+
getArray(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any>;
|
33
|
+
select(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any>;
|
34
|
+
selectArray(query: string, params?: SqliteParams, transformBlobs?: boolean): Promise<any>;
|
65
35
|
each(query: string, params: SqliteParams, callback: (error: Error, result: any) => void, complete: (error: Error, count: number) => void, transformBlobs?: boolean): Promise<number>;
|
66
36
|
transaction<T = any>(action: (cancel?: () => void) => Promise<T>): Promise<T>;
|
67
37
|
}
|