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.
Files changed (109) hide show
  1. package/README.md +574 -20
  2. package/lib/callback.d.ts +20 -0
  3. package/lib/callback.js +6 -16
  4. package/lib/firebird.msg.json +1370 -1370
  5. package/lib/gdscodes.d.ts +1519 -1520
  6. package/lib/gdscodes.js +5 -5
  7. package/lib/ieee754-decimal.d.ts +38 -0
  8. package/lib/ieee754-decimal.js +71 -118
  9. package/lib/index.d.ts +37 -338
  10. package/lib/index.js +97 -86
  11. package/lib/messages.d.ts +6 -0
  12. package/lib/messages.js +135 -162
  13. package/lib/pool.d.ts +23 -0
  14. package/lib/pool.js +34 -47
  15. package/lib/srp.d.ts +51 -0
  16. package/lib/srp.js +62 -72
  17. package/lib/types.d.ts +375 -0
  18. package/lib/types.js +22 -0
  19. package/lib/unix-crypt.d.ts +1 -0
  20. package/lib/unix-crypt.js +126 -152
  21. package/lib/utils.d.ts +16 -0
  22. package/lib/utils.js +24 -48
  23. package/lib/wire/connection.d.ts +100 -0
  24. package/lib/wire/connection.js +1029 -1009
  25. package/lib/wire/const.d.ts +567 -0
  26. package/lib/wire/const.js +620 -599
  27. package/lib/wire/database.d.ts +57 -0
  28. package/lib/wire/database.js +111 -108
  29. package/lib/wire/eventConnection.d.ts +16 -0
  30. package/lib/wire/eventConnection.js +29 -31
  31. package/lib/wire/fbEventManager.d.ts +45 -0
  32. package/lib/wire/fbEventManager.js +38 -57
  33. package/lib/wire/serialize.d.ts +97 -0
  34. package/lib/wire/serialize.js +42 -141
  35. package/lib/wire/service.d.ts +66 -0
  36. package/lib/wire/service.js +374 -401
  37. package/lib/wire/socket.d.ts +59 -0
  38. package/lib/wire/socket.js +79 -40
  39. package/lib/wire/statement.d.ts +25 -0
  40. package/lib/wire/statement.js +13 -9
  41. package/lib/wire/transaction.d.ts +21 -0
  42. package/lib/wire/transaction.js +33 -61
  43. package/lib/wire/xsqlvar.d.ts +175 -0
  44. package/lib/wire/xsqlvar.js +169 -269
  45. package/package.json +12 -4
  46. package/src/callback.ts +55 -0
  47. package/{poc/node_modules/node-firebird/lib/gdscodes.js → src/gdscodes.ts} +3 -3
  48. package/{poc/node_modules/node-firebird/lib/ieee754-decimal.js → src/ieee754-decimal.ts} +7 -14
  49. package/src/index.ts +157 -0
  50. package/{poc/node_modules/node-firebird/lib/messages.js → src/messages.ts} +163 -162
  51. package/src/pool.ts +209 -0
  52. package/{poc/node_modules/node-firebird/lib/srp.js → src/srp.ts} +74 -33
  53. package/src/types.ts +419 -0
  54. package/{poc/node_modules/node-firebird/lib/unix-crypt.js → src/unix-crypt.ts} +6 -12
  55. package/{poc/node_modules/node-firebird/lib/utils.js → src/utils.ts} +11 -20
  56. package/{poc/node_modules/node-firebird/lib/wire/connection.js → src/wire/connection.ts} +611 -129
  57. package/{poc/node_modules/node-firebird/lib/wire/const.js → src/wire/const.ts} +96 -9
  58. package/{poc/node_modules/node-firebird/lib/wire/database.js → src/wire/database.ts} +110 -44
  59. package/{poc/node_modules/node-firebird/lib/wire/eventConnection.js → src/wire/eventConnection.ts} +29 -14
  60. package/{poc/node_modules/node-firebird/lib/wire/fbEventManager.js → src/wire/fbEventManager.ts} +39 -30
  61. package/{poc/node_modules/node-firebird/lib/wire/serialize.js → src/wire/serialize.ts} +78 -59
  62. package/{poc/node_modules/node-firebird/lib/wire/service.js → src/wire/service.ts} +90 -88
  63. package/src/wire/socket.ts +262 -0
  64. package/src/wire/statement.ts +71 -0
  65. package/{poc/node_modules/node-firebird/lib/wire/transaction.js → src/wire/transaction.ts} +25 -19
  66. package/{poc/node_modules/node-firebird/lib/wire/xsqlvar.js → src/wire/xsqlvar.ts} +244 -143
  67. package/.eslintrc.json +0 -12
  68. package/.github/workflows/codeql.yml +0 -76
  69. package/.github/workflows/node.js.yml +0 -95
  70. package/BIGINT_MIGRATION.md +0 -374
  71. package/CI_DEBUGGING_GUIDE.md +0 -148
  72. package/ENCRYPTION_CALLBACK.md +0 -152
  73. package/FIREBIRD_LOG_FEATURE.md +0 -145
  74. package/MINIMAL_CHANGES_SUMMARY.md +0 -136
  75. package/PR_SUMMARY.md +0 -96
  76. package/ROADMAP.md +0 -223
  77. package/SRP_PROTOCOL.md +0 -482
  78. package/poc/README.md +0 -160
  79. package/poc/helpers.js +0 -59
  80. package/poc/node_modules/.package-lock.json +0 -14
  81. package/poc/node_modules/node-firebird/.eslintrc.json +0 -12
  82. package/poc/node_modules/node-firebird/.github/workflows/codeql.yml +0 -76
  83. package/poc/node_modules/node-firebird/.github/workflows/node.js.yml +0 -95
  84. package/poc/node_modules/node-firebird/BIGINT_MIGRATION.md +0 -374
  85. package/poc/node_modules/node-firebird/CI_DEBUGGING_GUIDE.md +0 -148
  86. package/poc/node_modules/node-firebird/ENCRYPTION_CALLBACK.md +0 -152
  87. package/poc/node_modules/node-firebird/FIREBIRD_LOG_FEATURE.md +0 -145
  88. package/poc/node_modules/node-firebird/LICENSE +0 -373
  89. package/poc/node_modules/node-firebird/MINIMAL_CHANGES_SUMMARY.md +0 -136
  90. package/poc/node_modules/node-firebird/PR_SUMMARY.md +0 -96
  91. package/poc/node_modules/node-firebird/README.md +0 -794
  92. package/poc/node_modules/node-firebird/ROADMAP.md +0 -223
  93. package/poc/node_modules/node-firebird/SRP_PROTOCOL.md +0 -482
  94. package/poc/node_modules/node-firebird/lib/callback.js +0 -38
  95. package/poc/node_modules/node-firebird/lib/gdscodes.d.ts +0 -1524
  96. package/poc/node_modules/node-firebird/lib/index.d.ts +0 -316
  97. package/poc/node_modules/node-firebird/lib/index.js +0 -128
  98. package/poc/node_modules/node-firebird/lib/pool.js +0 -108
  99. package/poc/node_modules/node-firebird/lib/wire/socket.js +0 -175
  100. package/poc/node_modules/node-firebird/lib/wire/statement.js +0 -48
  101. package/poc/node_modules/node-firebird/package.json +0 -38
  102. package/poc/node_modules/node-firebird/vitest.config.js +0 -24
  103. package/poc/package-lock.json +0 -21
  104. package/poc/package.json +0 -12
  105. package/poc/reproduce-fixed.js +0 -150
  106. package/poc/reproduce.js +0 -133
  107. package/vitest.config.js +0 -27
  108. /package/{poc/node_modules/node-firebird/lib → src}/firebird.msg +0 -0
  109. /package/{poc/node_modules/node-firebird/lib → src}/firebird.msg.json +0 -0
@@ -1,8 +1,8 @@
1
- const Events = require('events');
2
- const stream = require('stream');
3
- const Const = require('./const');
4
- const {BlrReader} = require('./serialize');
5
- const {doError} = require('../callback');
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
- constructor(connection) {
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
- ServiceManager.ShutdownMode = ShutdownMode;
1056
- ServiceManager.ShutdownKind = ShutdownKind;
1057
-
1058
- module.exports = ServiceManager;
1060
+ export = ServiceManager;