node-firebird 2.3.4 → 2.4.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/README.md +574 -20
- package/lib/callback.d.ts +20 -0
- package/lib/callback.js +6 -16
- package/lib/firebird.msg.json +1370 -1370
- package/lib/gdscodes.d.ts +1519 -1520
- package/lib/gdscodes.js +5 -5
- package/lib/ieee754-decimal.d.ts +38 -0
- package/lib/ieee754-decimal.js +71 -118
- package/lib/index.d.ts +37 -338
- package/lib/index.js +97 -86
- package/lib/messages.d.ts +6 -0
- package/lib/messages.js +135 -162
- package/lib/pool.d.ts +23 -0
- package/lib/pool.js +34 -47
- package/lib/srp.d.ts +51 -0
- package/lib/srp.js +62 -72
- package/lib/types.d.ts +375 -0
- package/lib/types.js +22 -0
- package/lib/unix-crypt.d.ts +1 -0
- package/lib/unix-crypt.js +126 -152
- package/lib/utils.d.ts +16 -0
- package/lib/utils.js +24 -48
- package/lib/wire/connection.d.ts +100 -0
- package/lib/wire/connection.js +1029 -1009
- package/lib/wire/const.d.ts +567 -0
- package/lib/wire/const.js +620 -599
- package/lib/wire/database.d.ts +57 -0
- package/lib/wire/database.js +111 -108
- package/lib/wire/eventConnection.d.ts +16 -0
- package/lib/wire/eventConnection.js +29 -31
- package/lib/wire/fbEventManager.d.ts +45 -0
- package/lib/wire/fbEventManager.js +38 -57
- package/lib/wire/serialize.d.ts +97 -0
- package/lib/wire/serialize.js +42 -141
- package/lib/wire/service.d.ts +66 -0
- package/lib/wire/service.js +374 -401
- package/lib/wire/socket.d.ts +59 -0
- package/lib/wire/socket.js +79 -40
- package/lib/wire/statement.d.ts +25 -0
- package/lib/wire/statement.js +13 -9
- package/lib/wire/transaction.d.ts +21 -0
- package/lib/wire/transaction.js +33 -61
- package/lib/wire/xsqlvar.d.ts +175 -0
- package/lib/wire/xsqlvar.js +169 -269
- package/package.json +12 -4
- package/src/callback.ts +55 -0
- package/{poc/node_modules/node-firebird/lib/gdscodes.js → src/gdscodes.ts} +3 -3
- package/{poc/node_modules/node-firebird/lib/ieee754-decimal.js → src/ieee754-decimal.ts} +7 -14
- package/src/index.ts +157 -0
- package/{poc/node_modules/node-firebird/lib/messages.js → src/messages.ts} +163 -162
- package/src/pool.ts +209 -0
- package/{poc/node_modules/node-firebird/lib/srp.js → src/srp.ts} +74 -33
- package/src/types.ts +419 -0
- package/{poc/node_modules/node-firebird/lib/unix-crypt.js → src/unix-crypt.ts} +6 -12
- package/{poc/node_modules/node-firebird/lib/utils.js → src/utils.ts} +11 -20
- package/{poc/node_modules/node-firebird/lib/wire/connection.js → src/wire/connection.ts} +611 -129
- package/{poc/node_modules/node-firebird/lib/wire/const.js → src/wire/const.ts} +96 -9
- package/{poc/node_modules/node-firebird/lib/wire/database.js → src/wire/database.ts} +110 -44
- package/{poc/node_modules/node-firebird/lib/wire/eventConnection.js → src/wire/eventConnection.ts} +29 -14
- package/{poc/node_modules/node-firebird/lib/wire/fbEventManager.js → src/wire/fbEventManager.ts} +39 -30
- package/{poc/node_modules/node-firebird/lib/wire/serialize.js → src/wire/serialize.ts} +78 -59
- package/{poc/node_modules/node-firebird/lib/wire/service.js → src/wire/service.ts} +90 -88
- package/src/wire/socket.ts +262 -0
- package/src/wire/statement.ts +71 -0
- package/{poc/node_modules/node-firebird/lib/wire/transaction.js → src/wire/transaction.ts} +25 -19
- package/{poc/node_modules/node-firebird/lib/wire/xsqlvar.js → src/wire/xsqlvar.ts} +244 -143
- package/.eslintrc.json +0 -12
- package/.github/workflows/codeql.yml +0 -76
- package/.github/workflows/node.js.yml +0 -95
- package/BIGINT_MIGRATION.md +0 -374
- package/CI_DEBUGGING_GUIDE.md +0 -148
- package/ENCRYPTION_CALLBACK.md +0 -152
- package/FIREBIRD_LOG_FEATURE.md +0 -145
- package/MINIMAL_CHANGES_SUMMARY.md +0 -136
- package/PR_SUMMARY.md +0 -96
- package/ROADMAP.md +0 -223
- package/SRP_PROTOCOL.md +0 -482
- package/poc/README.md +0 -160
- package/poc/helpers.js +0 -59
- package/poc/node_modules/.package-lock.json +0 -14
- package/poc/node_modules/node-firebird/.eslintrc.json +0 -12
- package/poc/node_modules/node-firebird/.github/workflows/codeql.yml +0 -76
- package/poc/node_modules/node-firebird/.github/workflows/node.js.yml +0 -95
- package/poc/node_modules/node-firebird/BIGINT_MIGRATION.md +0 -374
- package/poc/node_modules/node-firebird/CI_DEBUGGING_GUIDE.md +0 -148
- package/poc/node_modules/node-firebird/ENCRYPTION_CALLBACK.md +0 -152
- package/poc/node_modules/node-firebird/FIREBIRD_LOG_FEATURE.md +0 -145
- package/poc/node_modules/node-firebird/LICENSE +0 -373
- package/poc/node_modules/node-firebird/MINIMAL_CHANGES_SUMMARY.md +0 -136
- package/poc/node_modules/node-firebird/PR_SUMMARY.md +0 -96
- package/poc/node_modules/node-firebird/README.md +0 -794
- package/poc/node_modules/node-firebird/ROADMAP.md +0 -223
- package/poc/node_modules/node-firebird/SRP_PROTOCOL.md +0 -482
- package/poc/node_modules/node-firebird/lib/callback.js +0 -38
- package/poc/node_modules/node-firebird/lib/gdscodes.d.ts +0 -1524
- package/poc/node_modules/node-firebird/lib/index.d.ts +0 -316
- package/poc/node_modules/node-firebird/lib/index.js +0 -128
- package/poc/node_modules/node-firebird/lib/pool.js +0 -108
- package/poc/node_modules/node-firebird/lib/wire/socket.js +0 -175
- package/poc/node_modules/node-firebird/lib/wire/statement.js +0 -48
- package/poc/node_modules/node-firebird/package.json +0 -38
- package/poc/node_modules/node-firebird/vitest.config.js +0 -24
- package/poc/package-lock.json +0 -21
- package/poc/package.json +0 -12
- package/poc/reproduce-fixed.js +0 -150
- package/poc/reproduce.js +0 -133
- package/vitest.config.js +0 -27
- /package/{poc/node_modules/node-firebird/lib → src}/firebird.msg +0 -0
- /package/{poc/node_modules/node-firebird/lib → src}/firebird.msg.json +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import Events from 'events';
|
|
2
|
+
import stream from 'stream';
|
|
3
|
+
import Const from './const';
|
|
4
|
+
import { BlrReader } from './serialize';
|
|
5
|
+
import { doError } from '../callback';
|
|
6
6
|
|
|
7
7
|
/***************************************
|
|
8
8
|
*
|
|
@@ -10,22 +10,22 @@ const {doError} = require('../callback');
|
|
|
10
10
|
*
|
|
11
11
|
***************************************/
|
|
12
12
|
|
|
13
|
-
function isEmpty(obj){
|
|
13
|
+
function isEmpty(obj: any): boolean {
|
|
14
14
|
for(var p in obj) return false;
|
|
15
15
|
return true;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const SHUTDOWN_KIND = {
|
|
18
|
+
const SHUTDOWN_KIND: Record<number, number> = {
|
|
19
19
|
0: Const.isc_spb_prp_shutdown_db,
|
|
20
20
|
1: Const.isc_spb_prp_deny_new_transactions,
|
|
21
21
|
2: Const.isc_spb_prp_deny_new_attachments
|
|
22
22
|
};
|
|
23
|
-
const SHUTDOWNEX_KIND = {
|
|
23
|
+
const SHUTDOWNEX_KIND: Record<number, number> = {
|
|
24
24
|
0: Const.isc_spb_prp_force_shutdown,
|
|
25
25
|
1: Const.isc_spb_prp_transactions_shutdown,
|
|
26
26
|
2: Const.isc_spb_prp_attachments_shutdown
|
|
27
27
|
};
|
|
28
|
-
const SHUTDOWNEX_MODE = {
|
|
28
|
+
const SHUTDOWNEX_MODE: Record<number, number> = {
|
|
29
29
|
//0: isc_spb_prp_sm_normal,
|
|
30
30
|
1: Const.isc_spb_prp_sm_multi,
|
|
31
31
|
2: Const.isc_spb_prp_sm_single,
|
|
@@ -41,20 +41,25 @@ const ShutdownKind = { FORCED: 0, DENY_TRANSACTION: 1, DENY_ATTACHMENT: 2 };
|
|
|
41
41
|
***************************************/
|
|
42
42
|
|
|
43
43
|
class ServiceManager extends Events.EventEmitter {
|
|
44
|
-
|
|
44
|
+
static ShutdownMode = ShutdownMode;
|
|
45
|
+
static ShutdownKind = ShutdownKind;
|
|
46
|
+
|
|
47
|
+
connection: any;
|
|
48
|
+
|
|
49
|
+
constructor(connection: any) {
|
|
45
50
|
super();
|
|
46
51
|
this.connection = connection;
|
|
47
52
|
connection.svc = this;
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
_createOutputStream(optread, buffersize, callback) {
|
|
55
|
+
_createOutputStream(optread: string | null | undefined, buffersize: number | null | undefined, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
51
56
|
var self = this;
|
|
52
57
|
optread = optread || 'byline';
|
|
53
58
|
var t = new stream.Readable({ objectMode: optread === 'byline' }); // chunk by line
|
|
54
|
-
t.__proto__._read = function () {
|
|
59
|
+
(t as any).__proto__._read = function (this: stream.Readable) {
|
|
55
60
|
var selfread = this;
|
|
56
61
|
var fct = optread === 'byline' ? self.readline : self.readeof;
|
|
57
|
-
fct.call(self, { buffersize: buffersize }, function (err, data) {
|
|
62
|
+
fct.call(self, { buffersize: buffersize }, function (err: any, data: any) {
|
|
58
63
|
if (err) {
|
|
59
64
|
selfread.push(err.message, Const.DEFAULT_ENCODING);
|
|
60
65
|
return;
|
|
@@ -69,7 +74,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
69
74
|
callback(null, t);
|
|
70
75
|
}
|
|
71
76
|
|
|
72
|
-
_infosmapping = {
|
|
77
|
+
_infosmapping: Record<string | number, string> = {
|
|
73
78
|
"50"/*isc_info_svc_svr_db_info*/ : "dbinfo",
|
|
74
79
|
"51"/*isc_info_svc_get_license*/ : "licenses",
|
|
75
80
|
"52"/*isc_info_svc_get_license_mask*/ : "licenseoptions",
|
|
@@ -92,7 +97,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
92
97
|
"78"/*isc_info_svc_stdin*/ : ""
|
|
93
98
|
};
|
|
94
99
|
|
|
95
|
-
_processcapabilities(blr, res) {
|
|
100
|
+
_processcapabilities(blr: BlrReader, res: any): void {
|
|
96
101
|
var capArray = [
|
|
97
102
|
"WAL_SUPPORT",
|
|
98
103
|
"MULTI_CLIENT_SUPPORT",
|
|
@@ -106,7 +111,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
106
111
|
"SERVER_CONFIG_SUPPORT",
|
|
107
112
|
"QUOTED_FILENAME_SUPPORT"
|
|
108
113
|
];
|
|
109
|
-
var dbcapa = res[this._infosmapping[57]] = [];
|
|
114
|
+
var dbcapa: string[] = res[this._infosmapping[57]] = [];
|
|
110
115
|
var caps = blr.readInt32();
|
|
111
116
|
|
|
112
117
|
for (var i = 0; i < capArray.length; ++i)
|
|
@@ -114,9 +119,9 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
114
119
|
dbcapa.push(capArray[i]);
|
|
115
120
|
}
|
|
116
121
|
|
|
117
|
-
_processdbinfo(blr, res) {
|
|
122
|
+
_processdbinfo(blr: BlrReader, res: any): void {
|
|
118
123
|
var tinfo = blr.readByteCode();
|
|
119
|
-
var dbinfo = res[this._infosmapping[50]] = {};
|
|
124
|
+
var dbinfo: any = res[this._infosmapping[50]] = {};
|
|
120
125
|
|
|
121
126
|
dbinfo.database = [];
|
|
122
127
|
for (; tinfo != Const.isc_info_flag_end; tinfo = blr.readByteCode()) {
|
|
@@ -134,7 +139,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
134
139
|
}
|
|
135
140
|
}
|
|
136
141
|
|
|
137
|
-
_processquery(buffer, callback) {
|
|
142
|
+
_processquery(buffer: Buffer, callback: (err: any, res?: any) => void): void {
|
|
138
143
|
if (!Buffer.isBuffer(buffer)) {
|
|
139
144
|
doError(new Error('Malformed service-manager response: missing BLR buffer'), callback);
|
|
140
145
|
return;
|
|
@@ -143,7 +148,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
143
148
|
try {
|
|
144
149
|
var br = new BlrReader(buffer);
|
|
145
150
|
var tinfo = br.readByteCode();
|
|
146
|
-
var res = {};
|
|
151
|
+
var res: any = {};
|
|
147
152
|
res.result = 0;
|
|
148
153
|
for (; tinfo !== Const.isc_info_end; tinfo = br.readByteCode()) {
|
|
149
154
|
switch (tinfo) {
|
|
@@ -163,7 +168,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
163
168
|
break;
|
|
164
169
|
case Const.isc_info_svc_limbo_trans:
|
|
165
170
|
// not implemented
|
|
166
|
-
for (; tinfo !== isc_info_flag_end; tinfo = br.readByteCode())
|
|
171
|
+
for (; tinfo !== Const.isc_info_flag_end; tinfo = br.readByteCode())
|
|
167
172
|
break;
|
|
168
173
|
case Const.isc_info_svc_get_users:
|
|
169
174
|
br.pos += 2
|
|
@@ -237,11 +242,11 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
237
242
|
}
|
|
238
243
|
callback(null, res);
|
|
239
244
|
} catch (err) {
|
|
240
|
-
doError(new Error('Malformed service-manager response: ' + err.message), callback);
|
|
245
|
+
doError(new Error('Malformed service-manager response: ' + (err as Error).message), callback);
|
|
241
246
|
}
|
|
242
247
|
}
|
|
243
248
|
|
|
244
|
-
detach(callback, force) {
|
|
249
|
+
detach(callback?: (err?: any, obj?: any) => void, force?: boolean): this {
|
|
245
250
|
var self = this;
|
|
246
251
|
|
|
247
252
|
if (!force && self.connection._pending.length > 0) {
|
|
@@ -250,7 +255,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
250
255
|
return self;
|
|
251
256
|
}
|
|
252
257
|
|
|
253
|
-
self.connection.svcdetach(function (err, obj) {
|
|
258
|
+
self.connection.svcdetach(function (err: any, obj: any) {
|
|
254
259
|
|
|
255
260
|
self.connection.disconnect();
|
|
256
261
|
self.emit('detach', false);
|
|
@@ -263,7 +268,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
263
268
|
return self;
|
|
264
269
|
}
|
|
265
270
|
|
|
266
|
-
backup(options, callback) {
|
|
271
|
+
backup(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
267
272
|
var dbpath = options.database || this.connection.options.filename || this.connection.options.database;
|
|
268
273
|
var verbose = options.verbose || false;
|
|
269
274
|
// format of bckfile {filename:'name', sizefile:''} sizefile is length of part in bytes
|
|
@@ -318,7 +323,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
318
323
|
if (verbose)
|
|
319
324
|
blr.addByte(Const.isc_spb_verbose);
|
|
320
325
|
var self = this;
|
|
321
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
326
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
322
327
|
if (err) {
|
|
323
328
|
doError(new Error(err), callback);
|
|
324
329
|
return;
|
|
@@ -327,7 +332,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
327
332
|
});
|
|
328
333
|
}
|
|
329
334
|
|
|
330
|
-
nbackup(options, callback) {
|
|
335
|
+
nbackup(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
331
336
|
var dbpath = options.database || this.connection.options.filename || this.connection.options.database;
|
|
332
337
|
var bckfile = options.backupfile || options.file || null;
|
|
333
338
|
var level = options.level || 0; // nb day for incremental
|
|
@@ -355,7 +360,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
355
360
|
if (notriggers) opts = opts | Const.isc_spb_nbk_no_triggers;
|
|
356
361
|
blr.addByteInt32(Const.isc_spb_options, opts);
|
|
357
362
|
var self = this;
|
|
358
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
363
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
359
364
|
if (err) {
|
|
360
365
|
doError(new Error(err), callback);
|
|
361
366
|
return;
|
|
@@ -364,7 +369,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
364
369
|
});
|
|
365
370
|
}
|
|
366
371
|
|
|
367
|
-
restore(options, callback) {
|
|
372
|
+
restore(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
368
373
|
var bckfiles = options.backupfiles || options.files || null; // format bckfiles ['file1', 'file2', 'file3']
|
|
369
374
|
// for convenience
|
|
370
375
|
if (bckfiles) bckfiles = bckfiles.constructor !== Array?[bckfiles]:bckfiles;
|
|
@@ -426,7 +431,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
426
431
|
if (verbose)
|
|
427
432
|
blr.addByte(Const.isc_spb_verbose);
|
|
428
433
|
var self = this;
|
|
429
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
434
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
430
435
|
if (err) {
|
|
431
436
|
doError(new Error(err), callback);
|
|
432
437
|
return;
|
|
@@ -435,7 +440,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
435
440
|
});
|
|
436
441
|
}
|
|
437
442
|
|
|
438
|
-
nrestore(options, callback) {
|
|
443
|
+
nrestore(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
439
444
|
var bckfiles = options.backupfiles || options.files || null; // format bckfiles ['file1', 'file2', 'file3']
|
|
440
445
|
// for convenience
|
|
441
446
|
if (bckfiles) bckfiles = bckfiles.constructor !== Array?[bckfiles]:bckfiles;
|
|
@@ -458,7 +463,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
458
463
|
}
|
|
459
464
|
blr.addString2(Const.isc_spb_dbname, dbpath, Const.DEFAULT_ENCODING);
|
|
460
465
|
var self = this;
|
|
461
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
466
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
462
467
|
if (err) {
|
|
463
468
|
doError(new Error(err), callback);
|
|
464
469
|
return;
|
|
@@ -467,7 +472,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
467
472
|
});
|
|
468
473
|
}
|
|
469
474
|
|
|
470
|
-
_fixpropertie(options, callback) {
|
|
475
|
+
_fixpropertie(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
471
476
|
var dbpath = options.database || this.connection.options.filename || this.connection.options.database;
|
|
472
477
|
var dialect = options.dialect || null;
|
|
473
478
|
var sweep = options.sweepinterval || null;
|
|
@@ -524,7 +529,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
524
529
|
if (opts)
|
|
525
530
|
blr.addByteInt32(Const.isc_spb_options, opts);
|
|
526
531
|
var self = this;
|
|
527
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
532
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
528
533
|
if (err) {
|
|
529
534
|
doError(new Error(err), callback);
|
|
530
535
|
return;
|
|
@@ -533,23 +538,23 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
533
538
|
});
|
|
534
539
|
}
|
|
535
540
|
|
|
536
|
-
setDialect(db, dialect, callback) {
|
|
541
|
+
setDialect(db: string, dialect: number, callback: any): void {
|
|
537
542
|
this._fixpropertie({ database: db, dialect: dialect }, callback);
|
|
538
543
|
}
|
|
539
544
|
|
|
540
|
-
setSweepinterval(db, sweepinterval, callback) {
|
|
545
|
+
setSweepinterval(db: string, sweepinterval: number, callback: any): void {
|
|
541
546
|
this._fixpropertie({ database: db, sweepinterval: sweepinterval }, callback);
|
|
542
547
|
}
|
|
543
548
|
|
|
544
|
-
setCachebuffer(db, nbpages, callback) {
|
|
549
|
+
setCachebuffer(db: string, nbpages: number, callback: any): void {
|
|
545
550
|
this._fixpropertie({ database: db, nbpagebuffers: nbpages }, callback);
|
|
546
551
|
}
|
|
547
552
|
|
|
548
|
-
BringOnline(db, callback) {
|
|
553
|
+
BringOnline(db: string, callback: any): void {
|
|
549
554
|
this._fixpropertie({ database: db, bringonline: true }, callback);
|
|
550
555
|
}
|
|
551
556
|
|
|
552
|
-
Shutdown(db, kind, delay, mode, callback) {
|
|
557
|
+
Shutdown(db: string, kind: number, delay: number, mode?: any, callback?: any): void {
|
|
553
558
|
// mode parameter is for server version >= 2.0
|
|
554
559
|
if (mode instanceof Function) {
|
|
555
560
|
callback = mode;
|
|
@@ -559,27 +564,27 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
559
564
|
this._fixpropertie({ database: db, shutdown: kind, shutdowndelay: delay, shutdownmode: mode }, callback);
|
|
560
565
|
}
|
|
561
566
|
|
|
562
|
-
setShadow(db, val, callback) {
|
|
567
|
+
setShadow(db: string, val: boolean, callback: any): void {
|
|
563
568
|
this._fixpropertie({ database: db, activateshadow : val }, callback);
|
|
564
569
|
}
|
|
565
570
|
|
|
566
|
-
setForcewrite(db, val, callback) {
|
|
571
|
+
setForcewrite(db: string, val: boolean, callback: any): void {
|
|
567
572
|
this._fixpropertie({ database: db, forcewrite : val }, callback);
|
|
568
573
|
}
|
|
569
574
|
|
|
570
|
-
setReservespace(db, val, callback) {
|
|
575
|
+
setReservespace(db: string, val: boolean, callback: any): void {
|
|
571
576
|
this._fixpropertie({ database: db, reservespace : val }, callback);
|
|
572
577
|
}
|
|
573
578
|
|
|
574
|
-
setReadonlyMode(db, callback) {
|
|
579
|
+
setReadonlyMode(db: string, callback: any): void {
|
|
575
580
|
this._fixpropertie({ database: db, accessmode : 0 }, callback);
|
|
576
581
|
}
|
|
577
582
|
|
|
578
|
-
setReadwriteMode(db, callback) {
|
|
583
|
+
setReadwriteMode(db: string, callback: any): void {
|
|
579
584
|
this._fixpropertie({ database: db, accessmode : 1 }, callback);
|
|
580
585
|
}
|
|
581
586
|
|
|
582
|
-
validate(options, callback) {
|
|
587
|
+
validate(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
583
588
|
var dbpath = options.database || this.connection.options.filename || this.connection.options.database;
|
|
584
589
|
var checkdb = options.checkdb || false;
|
|
585
590
|
var ignorechecksums = options.ignorechecksums || false;
|
|
@@ -612,7 +617,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
612
617
|
if (icu) opts = opts | Const.isc_spb_rpr_icu;
|
|
613
618
|
blr.addByteInt32(Const.isc_spb_options, opts);
|
|
614
619
|
var self = this;
|
|
615
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
620
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
616
621
|
if (err) {
|
|
617
622
|
doError(new Error(err), callback);
|
|
618
623
|
return;
|
|
@@ -621,7 +626,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
621
626
|
});
|
|
622
627
|
}
|
|
623
628
|
|
|
624
|
-
commit(db, transactid, callback) {
|
|
629
|
+
commit(db: string, transactid: number, callback: any): void {
|
|
625
630
|
var dbpath = db || this.connection.options.filename || this.connection.options.database;
|
|
626
631
|
if (dbpath == null || dbpath.length === 0) {
|
|
627
632
|
doError(new Error('No database specified'), callback);
|
|
@@ -634,7 +639,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
634
639
|
blr.addString2(Const.isc_spb_dbname, dbpath, Const.DEFAULT_ENCODING);
|
|
635
640
|
blr.addByteInt32(Const.isc_spb_rpr_commit_trans, transactid);
|
|
636
641
|
var self = this;
|
|
637
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
642
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
638
643
|
if (err) {
|
|
639
644
|
doError(new Error(err), callback);
|
|
640
645
|
return;
|
|
@@ -643,7 +648,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
643
648
|
});
|
|
644
649
|
}
|
|
645
650
|
|
|
646
|
-
rollback(db, transactid, callback) {
|
|
651
|
+
rollback(db: string, transactid: number, callback: any): void {
|
|
647
652
|
var dbpath = db || this.connection.options.filename || this.connection.options.database;
|
|
648
653
|
if (dbpath == null || dbpath.length === 0) {
|
|
649
654
|
doError(new Error('No database specified'), callback);
|
|
@@ -656,7 +661,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
656
661
|
blr.addString2(Const.isc_spb_dbname, dbpath, Const.DEFAULT_ENCODING);
|
|
657
662
|
blr.addByteInt32(Const.isc_spb_rpr_rollback_trans, transactid);
|
|
658
663
|
var self = this;
|
|
659
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
664
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
660
665
|
if (err) {
|
|
661
666
|
doError(new Error(err), callback);
|
|
662
667
|
return;
|
|
@@ -665,7 +670,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
665
670
|
});
|
|
666
671
|
}
|
|
667
672
|
|
|
668
|
-
recover(db, transactid, callback) {
|
|
673
|
+
recover(db: string, transactid: number, callback: any): void {
|
|
669
674
|
var dbpath = db || this.connection.options.filename || this.connection.options.database;
|
|
670
675
|
if (dbpath == null || dbpath.length === 0) {
|
|
671
676
|
doError(new Error('No database specified'), callback);
|
|
@@ -678,7 +683,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
678
683
|
blr.addString2(Const.isc_spb_dbname, dbpath, Const.DEFAULT_ENCODING);
|
|
679
684
|
blr.addByteInt32(Const.isc_spb_rpr_recover_two_phase, transactid);
|
|
680
685
|
var self = this;
|
|
681
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
686
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
682
687
|
if (err) {
|
|
683
688
|
doError(new Error(err), callback);
|
|
684
689
|
return;
|
|
@@ -687,7 +692,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
687
692
|
});
|
|
688
693
|
}
|
|
689
694
|
|
|
690
|
-
getStats(options, callback) {
|
|
695
|
+
getStats(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
691
696
|
var dbpath = options.database || this.connection.options.filename || this.connection.options.database;
|
|
692
697
|
var record = options.record || false;
|
|
693
698
|
var nocreation = options.nocreation || false;
|
|
@@ -720,7 +725,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
720
725
|
blr.addByteInt32(Const.isc_spb_options, opts);
|
|
721
726
|
if (objects) blr.addString2(Const.isc_spb_command_line, objects, Const.DEFAULT_ENCODING);
|
|
722
727
|
var self = this;
|
|
723
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
728
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
724
729
|
if (err) {
|
|
725
730
|
doError(new Error(err), callback);
|
|
726
731
|
return;
|
|
@@ -730,13 +735,13 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
730
735
|
|
|
731
736
|
}
|
|
732
737
|
|
|
733
|
-
getLog(options, callback) {
|
|
738
|
+
getLog(options: any, callback: (err: any, stream?: stream.Readable) => void): void {
|
|
734
739
|
var self = this;
|
|
735
740
|
var blr = this.connection._blr;
|
|
736
741
|
var optread = options.optread || 'byline';
|
|
737
742
|
blr.pos = 0;
|
|
738
743
|
blr.addByte(Const.isc_action_svc_get_fb_log);
|
|
739
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
744
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
740
745
|
if (err) {
|
|
741
746
|
doError(new Error(err), callback);
|
|
742
747
|
return;
|
|
@@ -745,13 +750,13 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
745
750
|
});
|
|
746
751
|
}
|
|
747
752
|
|
|
748
|
-
getUsers(username, callback) {
|
|
753
|
+
getUsers(username: string | null, callback: any): void {
|
|
749
754
|
var self = this;
|
|
750
755
|
var blr = this.connection._blr;
|
|
751
756
|
blr.pos = 0;
|
|
752
757
|
blr.addByte(Const.isc_action_svc_display_user);
|
|
753
758
|
if (username) blr.addString2(Const.isc_spb_sec_username, username, Const.DEFAULT_ENCODING);
|
|
754
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
759
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
755
760
|
if (err) {
|
|
756
761
|
doError(new Error(err), callback);
|
|
757
762
|
return;
|
|
@@ -760,7 +765,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
760
765
|
});
|
|
761
766
|
}
|
|
762
767
|
|
|
763
|
-
addUser(username, password, options, callback) {
|
|
768
|
+
addUser(username: string, password: string, options: any, callback: any): void {
|
|
764
769
|
var rolename = options.rolename || null;
|
|
765
770
|
var groupname = options.groupname || null;
|
|
766
771
|
var firsname = options.firstname || null;
|
|
@@ -785,7 +790,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
785
790
|
if (admin != null) blr.addByteInt32(Const.isc_spb_sec_admin, admin);
|
|
786
791
|
|
|
787
792
|
var self = this;
|
|
788
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
793
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
789
794
|
if (err) {
|
|
790
795
|
doError(new Error(err), callback);
|
|
791
796
|
return;
|
|
@@ -794,7 +799,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
794
799
|
});
|
|
795
800
|
}
|
|
796
801
|
|
|
797
|
-
editUser(username, options, callback) {
|
|
802
|
+
editUser(username: string, options: any, callback: any): void {
|
|
798
803
|
var rolename = options.rolename || null;
|
|
799
804
|
var groupname = options.groupname || null;
|
|
800
805
|
var firsname = options.firstname || null;
|
|
@@ -819,7 +824,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
819
824
|
if (admin != null) blr.addByteInt32(Const.isc_spb_sec_admin, admin);
|
|
820
825
|
|
|
821
826
|
var self = this;
|
|
822
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
827
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
823
828
|
if (err) {
|
|
824
829
|
doError(new Error(err), callback);
|
|
825
830
|
return;
|
|
@@ -828,15 +833,15 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
828
833
|
});
|
|
829
834
|
}
|
|
830
835
|
|
|
831
|
-
removeUser(username, rolename, callback) {
|
|
836
|
+
removeUser(username: string, rolename: string | null, callback: any): void {
|
|
832
837
|
var blr = this.connection._blr;
|
|
833
838
|
blr.pos = 0;
|
|
834
839
|
blr.addByte(Const.isc_action_svc_delete_user);
|
|
835
840
|
blr.addString2(Const.isc_spb_sec_username, username, Const.DEFAULT_ENCODING);
|
|
836
841
|
if (rolename) blr.addString2(Const.isc_dpb_sql_role_name, rolename, Const.DEFAULT_ENCODING);
|
|
837
842
|
|
|
838
|
-
var self = this, options = {};
|
|
839
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
843
|
+
var self = this, options: any = {};
|
|
844
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
840
845
|
if (err) {
|
|
841
846
|
doError(new Error(err), callback);
|
|
842
847
|
return;
|
|
@@ -845,10 +850,10 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
845
850
|
});
|
|
846
851
|
}
|
|
847
852
|
|
|
848
|
-
getFbserverInfos(infos, options, callback) {
|
|
853
|
+
getFbserverInfos(infos: any, options: any, callback: any): void {
|
|
849
854
|
var buffersize = options.buffersize || 2048;
|
|
850
855
|
var timeout = options.timeout || 1;
|
|
851
|
-
var opts = {
|
|
856
|
+
var opts: Record<string, number> = {
|
|
852
857
|
"dbinfo" : Const.isc_info_svc_svr_db_info,
|
|
853
858
|
"fbconfig" : Const.isc_info_svc_get_config,
|
|
854
859
|
"svcversion" : Const.isc_info_svc_version,
|
|
@@ -862,13 +867,13 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
862
867
|
};
|
|
863
868
|
// if infos is empty all options are asked to the service
|
|
864
869
|
|
|
865
|
-
var tops = [], empty = isEmpty(infos);
|
|
870
|
+
var tops: number[] = [], empty = isEmpty(infos);
|
|
866
871
|
for (let popts in opts)
|
|
867
872
|
if (empty || infos[popts])
|
|
868
873
|
tops.push(opts[popts]);
|
|
869
874
|
|
|
870
875
|
var self = this;
|
|
871
|
-
this.connection.svcquery(tops, buffersize, timeout, function (err, data) {
|
|
876
|
+
this.connection.svcquery(tops, buffersize, timeout, function (err: any, data: any) {
|
|
872
877
|
if (err || !data.buffer) {
|
|
873
878
|
doError(new Error(err||'Bad query return'), callback);
|
|
874
879
|
return;
|
|
@@ -877,7 +882,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
877
882
|
});
|
|
878
883
|
}
|
|
879
884
|
|
|
880
|
-
startTrace(options, callback) {
|
|
885
|
+
startTrace(options: any, callback: any): void {
|
|
881
886
|
var self = this;
|
|
882
887
|
var blr = this.connection._blr;
|
|
883
888
|
var configfile = options.configfile || '';
|
|
@@ -896,7 +901,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
896
901
|
blr.addByte(Const.isc_action_svc_trace_start);
|
|
897
902
|
blr.addString2(Const.isc_spb_trc_cfg, configfile, Const.DEFAULT_ENCODING);
|
|
898
903
|
blr.addString2(Const.isc_spb_trc_name, tracename, Const.DEFAULT_ENCODING);
|
|
899
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
904
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
900
905
|
if (err) {
|
|
901
906
|
doError(new Error(err), callback);
|
|
902
907
|
return;
|
|
@@ -905,7 +910,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
905
910
|
});
|
|
906
911
|
}
|
|
907
912
|
|
|
908
|
-
suspendTrace(options, callback) {
|
|
913
|
+
suspendTrace(options: any, callback: any): void {
|
|
909
914
|
var self = this;
|
|
910
915
|
var blr = this.connection._blr;
|
|
911
916
|
var traceid = options.traceid || null;
|
|
@@ -918,7 +923,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
918
923
|
blr.pos = 0;
|
|
919
924
|
blr.addByte(Const.isc_action_svc_trace_suspend);
|
|
920
925
|
blr.addByteInt32(Const.isc_spb_trc_id, traceid);
|
|
921
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
926
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
922
927
|
if (err) {
|
|
923
928
|
doError(new Error(err), callback);
|
|
924
929
|
return;
|
|
@@ -927,7 +932,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
927
932
|
});
|
|
928
933
|
}
|
|
929
934
|
|
|
930
|
-
resumeTrace(options, callback) {
|
|
935
|
+
resumeTrace(options: any, callback: any): void {
|
|
931
936
|
var self = this;
|
|
932
937
|
var blr = this.connection._blr;
|
|
933
938
|
var traceid = options.traceid || null;
|
|
@@ -940,7 +945,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
940
945
|
blr.pos = 0;
|
|
941
946
|
blr.addByte(Const.isc_action_svc_trace_resume);
|
|
942
947
|
blr.addByteInt32(Const.isc_spb_trc_id, traceid);
|
|
943
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
948
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
944
949
|
if (err) {
|
|
945
950
|
doError(new Error(err), callback);
|
|
946
951
|
return;
|
|
@@ -949,7 +954,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
949
954
|
});
|
|
950
955
|
}
|
|
951
956
|
|
|
952
|
-
stopTrace(options, callback) {
|
|
957
|
+
stopTrace(options: any, callback: any): void {
|
|
953
958
|
var self = this;
|
|
954
959
|
var blr = this.connection._blr;
|
|
955
960
|
var traceid = options.traceid || null;
|
|
@@ -962,7 +967,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
962
967
|
blr.pos = 0;
|
|
963
968
|
blr.addByte(Const.isc_action_svc_trace_stop);
|
|
964
969
|
blr.addByteInt32(Const.isc_spb_trc_id, traceid);
|
|
965
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
970
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
966
971
|
if (err) {
|
|
967
972
|
doError(new Error(err), callback);
|
|
968
973
|
return;
|
|
@@ -971,12 +976,12 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
971
976
|
});
|
|
972
977
|
}
|
|
973
978
|
|
|
974
|
-
getTraceList(options, callback) {
|
|
979
|
+
getTraceList(options: any, callback: any): void {
|
|
975
980
|
var self = this;
|
|
976
981
|
var blr = this.connection._blr;
|
|
977
982
|
blr.pos = 0;
|
|
978
983
|
blr.addByte(Const.isc_action_svc_trace_list);
|
|
979
|
-
this.connection.svcstart(blr, function (err, data) {
|
|
984
|
+
this.connection.svcstart(blr, function (err: any, data: any) {
|
|
980
985
|
if (err) {
|
|
981
986
|
doError(new Error(err), callback);
|
|
982
987
|
return;
|
|
@@ -985,7 +990,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
985
990
|
});
|
|
986
991
|
}
|
|
987
992
|
|
|
988
|
-
readline(options, callback) {
|
|
993
|
+
readline(options: any, callback: any): void {
|
|
989
994
|
var buffersize = options.buffersize || 2048;
|
|
990
995
|
var timeout = options.timeout || 60;
|
|
991
996
|
var self = this;
|
|
@@ -998,7 +1003,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
998
1003
|
});
|
|
999
1004
|
}
|
|
1000
1005
|
|
|
1001
|
-
readeof(options, callback) {
|
|
1006
|
+
readeof(options: any, callback: any): void {
|
|
1002
1007
|
var buffersize = options.buffersize || (8 * 1024);
|
|
1003
1008
|
var timeout = options.timeout || 60;
|
|
1004
1009
|
var self = this;
|
|
@@ -1011,7 +1016,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
1011
1016
|
});
|
|
1012
1017
|
}
|
|
1013
1018
|
|
|
1014
|
-
hasRunningAction(options, callback) {
|
|
1019
|
+
hasRunningAction(options: any, callback: any): void {
|
|
1015
1020
|
var buffersize = options.buffersize || 2048;
|
|
1016
1021
|
var timeout = options.timeout || 60;
|
|
1017
1022
|
var self = this;
|
|
@@ -1024,7 +1029,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
1024
1029
|
});
|
|
1025
1030
|
}
|
|
1026
1031
|
|
|
1027
|
-
readusers(options, callback) {
|
|
1032
|
+
readusers(options: any, callback: any): void {
|
|
1028
1033
|
var buffersize = options.buffersize || 2048;
|
|
1029
1034
|
var timeout = options.timeout || 60;
|
|
1030
1035
|
var self = this;
|
|
@@ -1037,7 +1042,7 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
1037
1042
|
});
|
|
1038
1043
|
}
|
|
1039
1044
|
|
|
1040
|
-
readlimbo(options, callback) {
|
|
1045
|
+
readlimbo(options: any, callback: any): void {
|
|
1041
1046
|
var buffersize = options.buffersize || 2048;
|
|
1042
1047
|
var timeout = options.timeout || 60;
|
|
1043
1048
|
var self = this;
|
|
@@ -1052,7 +1057,4 @@ class ServiceManager extends Events.EventEmitter {
|
|
|
1052
1057
|
|
|
1053
1058
|
}
|
|
1054
1059
|
|
|
1055
|
-
|
|
1056
|
-
ServiceManager.ShutdownKind = ShutdownKind;
|
|
1057
|
-
|
|
1058
|
-
module.exports = ServiceManager;
|
|
1060
|
+
export = ServiceManager;
|