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 +8 -0
- package/lib/connection.js +24 -87
- package/lib/packets/resultset_header.js +2 -0
- package/package.json +2 -2
- package/promise.d.ts +1 -1
- package/promise.js +1 -1
- package/typings/mysql/lib/PoolCluster.d.ts +1 -1
- package/typings/mysql/lib/protocol/packets/OkPacket.d.ts +8 -0
- package/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +4 -9
- package/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +5 -1
- package/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +4 -0
- package/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +4 -0
- package/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +4 -0
- package/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +4 -0
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
|
|
358
|
+
const servername = this.config.host;
|
|
359
359
|
|
|
360
360
|
let secureEstablished = false;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
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('
|
|
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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mysql2",
|
|
3
|
-
"version": "3.5.
|
|
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": "^
|
|
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: '
|
|
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, ['
|
|
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: '
|
|
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[]
|
|
6
|
+
T = [RowDataPacket[], ResultSetHeader] | ResultSetHeader,
|
|
7
7
|
> = T extends RowDataPacket[]
|
|
8
|
-
? [
|
|
9
|
-
: T extends
|
|
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
|
-
|
|
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[]
|