mysql2 3.5.0 → 3.5.2

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 CHANGED
@@ -53,6 +53,14 @@ MySQL2 is free from native bindings and can be installed on Linux, Mac OS or Win
53
53
  npm install --save mysql2
54
54
  ```
55
55
 
56
+ If you are using TypeScript, you will need to install `@types/node`.
57
+
58
+ ```bash
59
+ npm install --save-dev @types/node
60
+ ```
61
+
62
+ > For TypeScript documentation and examples, see [here](./documentation/en/TypeScript-Examples.md).
63
+
56
64
  ## First Query
57
65
  ```js
58
66
  // get the client
package/lib/connection.js CHANGED
@@ -355,62 +355,43 @@ class Connection extends EventEmitter {
355
355
  });
356
356
  const rejectUnauthorized = this.config.ssl.rejectUnauthorized;
357
357
  const verifyIdentity = this.config.ssl.verifyIdentity;
358
- const host = this.config.host;
358
+ const servername = this.config.host;
359
359
 
360
360
  let secureEstablished = false;
361
- const secureSocket = new Tls.TLSSocket(this.stream, {
362
- rejectUnauthorized: rejectUnauthorized,
363
- requestCert: true,
364
- secureContext: secureContext,
365
- isServer: false
361
+ this.stream.removeAllListeners('data');
362
+ const secureSocket = Tls.connect({
363
+ rejectUnauthorized,
364
+ requestCert: rejectUnauthorized,
365
+ secureContext,
366
+ isServer: false,
367
+ socket: this.stream,
368
+ servername
369
+ }, () => {
370
+ secureEstablished = true;
371
+ if (rejectUnauthorized) {
372
+ if (typeof servername === 'string' && verifyIdentity) {
373
+ const cert = secureSocket.getPeerCertificate(true);
374
+ const serverIdentityCheckError = Tls.checkServerIdentity(servername, cert);
375
+ if (serverIdentityCheckError) {
376
+ onSecure(serverIdentityCheckError);
377
+ return;
378
+ }
379
+ }
380
+ }
381
+ onSecure();
366
382
  });
367
- if (typeof host === 'string') {
368
- secureSocket.setServername(host);
369
- }
370
383
  // error handler for secure socket
371
- secureSocket.on('_tlsError', err => {
384
+ secureSocket.on('error', err => {
372
385
  if (secureEstablished) {
373
386
  this._handleNetworkError(err);
374
387
  } else {
375
388
  onSecure(err);
376
389
  }
377
390
  });
378
- secureSocket.on('secure', () => {
379
- secureEstablished = true;
380
- let callbackValue = null;
381
- if (rejectUnauthorized) {
382
- callbackValue = secureSocket.ssl.verifyError()
383
- if (!callbackValue && typeof host === 'string' && verifyIdentity) {
384
- const cert = secureSocket.ssl.getPeerCertificate(true);
385
- callbackValue = Tls.checkServerIdentity(host, cert)
386
- }
387
- }
388
- onSecure(callbackValue);
389
- });
390
391
  secureSocket.on('data', data => {
391
392
  this.packetParser.execute(data);
392
393
  });
393
- this.write = buffer => {
394
- secureSocket.write(buffer);
395
- };
396
- // start TLS communications
397
- secureSocket._start();
398
- }
399
-
400
- pipe() {
401
- if (this.stream instanceof Net.Stream) {
402
- this.stream.ondata = (data, start, end) => {
403
- this.packetParser.execute(data, start, end);
404
- };
405
- } else {
406
- this.stream.on('data', data => {
407
- this.packetParser.execute(
408
- data.parent,
409
- data.offset,
410
- data.offset + data.length
411
- );
412
- });
413
- }
394
+ this.write = buffer => secureSocket.write(buffer);
414
395
  }
415
396
 
416
397
  protocolError(message, code) {
@@ -948,48 +929,4 @@ class Connection extends EventEmitter {
948
929
  }
949
930
  }
950
931
 
951
- if (Tls.TLSSocket) {
952
- // not supported
953
- } else {
954
- Connection.prototype.startTLS = function _startTLS(onSecure) {
955
- if (this.config.debug) {
956
- // eslint-disable-next-line no-console
957
- console.log('Upgrading connection to TLS');
958
- }
959
- const crypto = require('crypto');
960
- const config = this.config;
961
- const stream = this.stream;
962
- const rejectUnauthorized = this.config.ssl.rejectUnauthorized;
963
- const credentials = crypto.createCredentials({
964
- key: config.ssl.key,
965
- cert: config.ssl.cert,
966
- passphrase: config.ssl.passphrase,
967
- ca: config.ssl.ca,
968
- ciphers: config.ssl.ciphers
969
- });
970
- const securePair = Tls.createSecurePair(
971
- credentials,
972
- false,
973
- true,
974
- rejectUnauthorized
975
- );
976
-
977
- if (stream.ondata) {
978
- stream.ondata = null;
979
- }
980
- stream.removeAllListeners('data');
981
- stream.pipe(securePair.encrypted);
982
- securePair.encrypted.pipe(stream);
983
- securePair.cleartext.on('data', data => {
984
- this.packetParser.execute(data);
985
- });
986
- this.write = function(buffer) {
987
- securePair.cleartext.write(buffer);
988
- };
989
- securePair.on('secure', () => {
990
- onSecure(rejectUnauthorized ? securePair.ssl.verifyError() : null);
991
- });
992
- };
993
- }
994
-
995
932
  module.exports = Connection;
@@ -94,6 +94,8 @@ class ResultSetHeader {
94
94
  const m = this.info.match(/\schanged:\s*(\d+)/i);
95
95
  if (m !== null) {
96
96
  this.changedRows = parseInt(m[1], 10);
97
+ } else {
98
+ this.changedRows = 0;
97
99
  }
98
100
  }
99
101
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mysql2",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -81,7 +81,7 @@
81
81
  "husky": "^8.0.2",
82
82
  "lint-staged": "^13.0.3",
83
83
  "portfinder": "^1.0.28",
84
- "prettier": "^2.4.1",
84
+ "prettier": "^3.0.0",
85
85
  "progress": "^2.0.3",
86
86
  "typescript": "^5.0.2",
87
87
  "urun": "0.0.8",
package/promise.d.ts CHANGED
@@ -117,7 +117,7 @@ export interface PoolCluster extends EventEmitter {
117
117
 
118
118
  on(event: string, listener: (args: any[]) => void): this;
119
119
  on(event: 'remove', listener: (nodeId: number) => void): this;
120
- on(event: 'connection', listener: (connection: PoolConnection) => void): this;
120
+ on(event: 'warn', listener: (err: Error) => void): this;
121
121
  }
122
122
 
123
123
  export function createConnection(connectionUri: string): Promise<Connection>;
package/promise.js CHANGED
@@ -448,7 +448,7 @@ class PromisePoolCluster extends EventEmitter {
448
448
  super();
449
449
  this.poolCluster = poolCluster;
450
450
  this.Promise = thePromise || Promise;
451
- inheritEvents(poolCluster, this, ['acquire', 'connection', 'enqueue', 'release']);
451
+ inheritEvents(poolCluster, this, ['warn', 'remove']);
452
452
  }
453
453
 
454
454
  getConnection() {
@@ -80,7 +80,7 @@ declare class PoolCluster extends EventEmitter {
80
80
 
81
81
  on(event: string, listener: (args: any[]) => void): this;
82
82
  on(event: 'remove', listener: (nodeId: number) => void): this;
83
- on(event: 'connection', listener: (connection: PoolConnection) => void): this;
83
+ on(event: 'warn', listener: (err: Error) => void): this;
84
84
  }
85
85
 
86
86
  export { PoolCluster };
@@ -1,9 +1,17 @@
1
+ /**
2
+ * @deprecated
3
+ * `OkPacket` is deprecated and might be removed in the future major release. Please use `ResultSetHeader` instead.
4
+ */
1
5
  declare interface OkPacket {
2
6
  constructor: {
3
7
  name: 'OkPacket';
4
8
  };
5
9
  fieldCount: number;
6
10
  affectedRows: number;
11
+ /**
12
+ * @deprecated
13
+ * `changedRows` is deprecated and might be removed in the future major release. Please use `affectedRows` property instead.
14
+ */
7
15
  changedRows: number;
8
16
  insertId: number;
9
17
  serverStatus: number;
@@ -3,16 +3,11 @@ import { ResultSetHeader } from './ResultSetHeader.js';
3
3
  import { RowDataPacket } from './RowDataPacket.js';
4
4
 
5
5
  declare type ProcedureCallPacket<
6
- T = RowDataPacket[] | RowDataPacket[][] | ResultSetHeader
6
+ T = [RowDataPacket[], ResultSetHeader] | ResultSetHeader,
7
7
  > = T extends RowDataPacket[]
8
- ? [...T, ResultSetHeader]
9
- : T extends RowDataPacket[][]
10
- ? [...T, ResultSetHeader]
11
- : T extends ResultSetHeader | OkPacket | OkPacket[]
8
+ ? [T, ResultSetHeader]
9
+ : T extends ResultSetHeader | OkPacket
12
10
  ? ResultSetHeader
13
- :
14
- | [...RowDataPacket[], ResultSetHeader]
15
- | [...RowDataPacket[][], ResultSetHeader]
16
- | ResultSetHeader;
11
+ : [RowDataPacket[], ResultSetHeader] | ResultSetHeader;
17
12
 
18
13
  export { ProcedureCallPacket };
@@ -8,7 +8,11 @@ declare interface ResultSetHeader {
8
8
  insertId: number;
9
9
  serverStatus: number;
10
10
  warningStatus: number;
11
- changedRows?: number;
11
+ /**
12
+ * @deprecated
13
+ * `changedRows` is deprecated and might be removed in the future major release. Please use `affectedRows` property instead.
14
+ */
15
+ changedRows: number;
12
16
  }
13
17
 
14
18
  export { ResultSetHeader };
@@ -20,6 +20,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
20
20
  T extends
21
21
  | OkPacket
22
22
  | ResultSetHeader
23
+ | ResultSetHeader[]
23
24
  | RowDataPacket[]
24
25
  | RowDataPacket[][]
25
26
  | OkPacket[]
@@ -34,6 +35,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
34
35
  T extends
35
36
  | OkPacket
36
37
  | ResultSetHeader
38
+ | ResultSetHeader[]
37
39
  | RowDataPacket[]
38
40
  | RowDataPacket[][]
39
41
  | OkPacket[]
@@ -49,6 +51,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
49
51
  T extends
50
52
  | OkPacket
51
53
  | ResultSetHeader
54
+ | ResultSetHeader[]
52
55
  | RowDataPacket[]
53
56
  | RowDataPacket[][]
54
57
  | OkPacket[]
@@ -63,6 +66,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
63
66
  T extends
64
67
  | OkPacket
65
68
  | ResultSetHeader
69
+ | ResultSetHeader[]
66
70
  | RowDataPacket[]
67
71
  | RowDataPacket[][]
68
72
  | OkPacket[]
@@ -20,6 +20,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
20
20
  T extends
21
21
  | OkPacket
22
22
  | ResultSetHeader
23
+ | ResultSetHeader[]
23
24
  | RowDataPacket[]
24
25
  | RowDataPacket[][]
25
26
  | OkPacket[]
@@ -34,6 +35,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
34
35
  T extends
35
36
  | OkPacket
36
37
  | ResultSetHeader
38
+ | ResultSetHeader[]
37
39
  | RowDataPacket[]
38
40
  | RowDataPacket[][]
39
41
  | OkPacket[]
@@ -49,6 +51,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
49
51
  T extends
50
52
  | OkPacket
51
53
  | ResultSetHeader
54
+ | ResultSetHeader[]
52
55
  | RowDataPacket[]
53
56
  | RowDataPacket[][]
54
57
  | OkPacket[]
@@ -63,6 +66,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
63
66
  T extends
64
67
  | OkPacket
65
68
  | ResultSetHeader
69
+ | ResultSetHeader[]
66
70
  | RowDataPacket[]
67
71
  | RowDataPacket[][]
68
72
  | OkPacket[]
@@ -15,6 +15,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
15
15
  T extends
16
16
  | OkPacket
17
17
  | ResultSetHeader
18
+ | ResultSetHeader[]
18
19
  | RowDataPacket[]
19
20
  | RowDataPacket[][]
20
21
  | OkPacket[]
@@ -26,6 +27,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
26
27
  T extends
27
28
  | OkPacket
28
29
  | ResultSetHeader
30
+ | ResultSetHeader[]
29
31
  | RowDataPacket[]
30
32
  | RowDataPacket[][]
31
33
  | OkPacket[]
@@ -38,6 +40,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
38
40
  T extends
39
41
  | OkPacket
40
42
  | ResultSetHeader
43
+ | ResultSetHeader[]
41
44
  | RowDataPacket[]
42
45
  | RowDataPacket[][]
43
46
  | OkPacket[]
@@ -49,6 +52,7 @@ export declare function ExecutableBase<T extends QueryableConstructor>(
49
52
  T extends
50
53
  | OkPacket
51
54
  | ResultSetHeader
55
+ | ResultSetHeader[]
52
56
  | RowDataPacket[]
53
57
  | RowDataPacket[][]
54
58
  | OkPacket[]
@@ -15,6 +15,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
15
15
  T extends
16
16
  | OkPacket
17
17
  | ResultSetHeader
18
+ | ResultSetHeader[]
18
19
  | RowDataPacket[]
19
20
  | RowDataPacket[][]
20
21
  | OkPacket[]
@@ -26,6 +27,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
26
27
  T extends
27
28
  | OkPacket
28
29
  | ResultSetHeader
30
+ | ResultSetHeader[]
29
31
  | RowDataPacket[]
30
32
  | RowDataPacket[][]
31
33
  | OkPacket[]
@@ -38,6 +40,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
38
40
  T extends
39
41
  | OkPacket
40
42
  | ResultSetHeader
43
+ | ResultSetHeader[]
41
44
  | RowDataPacket[]
42
45
  | RowDataPacket[][]
43
46
  | OkPacket[]
@@ -49,6 +52,7 @@ export declare function QueryableBase<T extends QueryableConstructor>(
49
52
  T extends
50
53
  | OkPacket
51
54
  | ResultSetHeader
55
+ | ResultSetHeader[]
52
56
  | RowDataPacket[]
53
57
  | RowDataPacket[][]
54
58
  | OkPacket[]