node-server-dev 3.1.5 → 3.1.7
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/dist/cjs/browser.js +1 -1
- package/dist/cjs/getAllRouter/index.js +1 -1
- package/dist/cjs/hash/index.js +1 -1
- package/dist/cjs/id/index.js +1 -1
- package/dist/cjs/id/random.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/jwt/index.js +1 -1
- package/dist/cjs/mac/index.js +1 -1
- package/dist/cjs/package/mysql2/License +19 -0
- package/dist/cjs/package/mysql2/README.md +114 -0
- package/dist/cjs/package/mysql2/index.d.ts +1 -0
- package/dist/cjs/package/mysql2/index.js +77 -0
- package/dist/cjs/package/mysql2/lib/auth_41.js +95 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/caching_sha2_password.js +108 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/caching_sha2_password.md +18 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/index.js +8 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/mysql_clear_password.js +17 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/mysql_native_password.js +34 -0
- package/dist/cjs/package/mysql2/lib/auth_plugins/sha256_password.js +59 -0
- package/dist/cjs/package/mysql2/lib/base/connection.js +945 -0
- package/dist/cjs/package/mysql2/lib/base/pool.js +233 -0
- package/dist/cjs/package/mysql2/lib/base/pool_connection.js +63 -0
- package/dist/cjs/package/mysql2/lib/commands/auth_switch.js +111 -0
- package/dist/cjs/package/mysql2/lib/commands/binlog_dump.js +109 -0
- package/dist/cjs/package/mysql2/lib/commands/change_user.js +68 -0
- package/dist/cjs/package/mysql2/lib/commands/client_handshake.js +241 -0
- package/dist/cjs/package/mysql2/lib/commands/close_statement.js +18 -0
- package/dist/cjs/package/mysql2/lib/commands/command.js +54 -0
- package/dist/cjs/package/mysql2/lib/commands/execute.js +112 -0
- package/dist/cjs/package/mysql2/lib/commands/index.js +27 -0
- package/dist/cjs/package/mysql2/lib/commands/ping.js +36 -0
- package/dist/cjs/package/mysql2/lib/commands/prepare.js +143 -0
- package/dist/cjs/package/mysql2/lib/commands/query.js +329 -0
- package/dist/cjs/package/mysql2/lib/commands/quit.js +29 -0
- package/dist/cjs/package/mysql2/lib/commands/register_slave.js +27 -0
- package/dist/cjs/package/mysql2/lib/commands/server_handshake.js +203 -0
- package/dist/cjs/package/mysql2/lib/compressed_protocol.js +127 -0
- package/dist/cjs/package/mysql2/lib/connection.js +12 -0
- package/dist/cjs/package/mysql2/lib/connection_config.js +292 -0
- package/dist/cjs/package/mysql2/lib/constants/charset_encodings.js +316 -0
- package/dist/cjs/package/mysql2/lib/constants/charsets.js +317 -0
- package/dist/cjs/package/mysql2/lib/constants/client.js +39 -0
- package/dist/cjs/package/mysql2/lib/constants/commands.js +36 -0
- package/dist/cjs/package/mysql2/lib/constants/cursor.js +8 -0
- package/dist/cjs/package/mysql2/lib/constants/encoding_charset.js +49 -0
- package/dist/cjs/package/mysql2/lib/constants/errors.js +3973 -0
- package/dist/cjs/package/mysql2/lib/constants/field_flags.js +20 -0
- package/dist/cjs/package/mysql2/lib/constants/server_status.js +44 -0
- package/dist/cjs/package/mysql2/lib/constants/session_track.js +11 -0
- package/dist/cjs/package/mysql2/lib/constants/ssl_profiles.js +11 -0
- package/dist/cjs/package/mysql2/lib/constants/types.js +64 -0
- package/dist/cjs/package/mysql2/lib/create_connection.js +10 -0
- package/dist/cjs/package/mysql2/lib/create_pool.js +10 -0
- package/dist/cjs/package/mysql2/lib/create_pool_cluster.js +9 -0
- package/dist/cjs/package/mysql2/lib/helpers.js +86 -0
- package/dist/cjs/package/mysql2/lib/packet_parser.js +195 -0
- package/dist/cjs/package/mysql2/lib/packets/auth_next_factor.js +35 -0
- package/dist/cjs/package/mysql2/lib/packets/auth_switch_request.js +38 -0
- package/dist/cjs/package/mysql2/lib/packets/auth_switch_request_more_data.js +33 -0
- package/dist/cjs/package/mysql2/lib/packets/auth_switch_response.js +30 -0
- package/dist/cjs/package/mysql2/lib/packets/binary_row.js +95 -0
- package/dist/cjs/package/mysql2/lib/packets/binlog_dump.js +33 -0
- package/dist/cjs/package/mysql2/lib/packets/binlog_query_statusvars.js +115 -0
- package/dist/cjs/package/mysql2/lib/packets/change_user.js +97 -0
- package/dist/cjs/package/mysql2/lib/packets/close_statement.js +21 -0
- package/dist/cjs/package/mysql2/lib/packets/column_definition.js +291 -0
- package/dist/cjs/package/mysql2/lib/packets/execute.js +214 -0
- package/dist/cjs/package/mysql2/lib/packets/handshake.js +112 -0
- package/dist/cjs/package/mysql2/lib/packets/handshake_response.js +144 -0
- package/dist/cjs/package/mysql2/lib/packets/index.js +152 -0
- package/dist/cjs/package/mysql2/lib/packets/packet.js +931 -0
- package/dist/cjs/package/mysql2/lib/packets/prepare_statement.js +27 -0
- package/dist/cjs/package/mysql2/lib/packets/prepared_statement_header.js +16 -0
- package/dist/cjs/package/mysql2/lib/packets/query.js +27 -0
- package/dist/cjs/package/mysql2/lib/packets/register_slave.js +46 -0
- package/dist/cjs/package/mysql2/lib/packets/resultset_header.js +118 -0
- package/dist/cjs/package/mysql2/lib/packets/ssl_request.js +25 -0
- package/dist/cjs/package/mysql2/lib/packets/text_row.js +47 -0
- package/dist/cjs/package/mysql2/lib/parsers/binary_parser.js +231 -0
- package/dist/cjs/package/mysql2/lib/parsers/parser_cache.js +66 -0
- package/dist/cjs/package/mysql2/lib/parsers/static_binary_parser.js +211 -0
- package/dist/cjs/package/mysql2/lib/parsers/static_text_parser.js +152 -0
- package/dist/cjs/package/mysql2/lib/parsers/string.js +50 -0
- package/dist/cjs/package/mysql2/lib/parsers/text_parser.js +214 -0
- package/dist/cjs/package/mysql2/lib/pool.js +12 -0
- package/dist/cjs/package/mysql2/lib/pool_cluster.js +369 -0
- package/dist/cjs/package/mysql2/lib/pool_config.js +30 -0
- package/dist/cjs/package/mysql2/lib/pool_connection.js +12 -0
- package/dist/cjs/package/mysql2/lib/promise/connection.js +222 -0
- package/dist/cjs/package/mysql2/lib/promise/inherit_events.js +27 -0
- package/dist/cjs/package/mysql2/lib/promise/make_done_cb.js +19 -0
- package/dist/cjs/package/mysql2/lib/promise/pool.js +112 -0
- package/dist/cjs/package/mysql2/lib/promise/pool_cluster.js +54 -0
- package/dist/cjs/package/mysql2/lib/promise/pool_connection.js +19 -0
- package/dist/cjs/package/mysql2/lib/promise/prepared_statement_info.js +32 -0
- package/dist/cjs/package/mysql2/lib/results_stream.js +38 -0
- package/dist/cjs/package/mysql2/lib/server.js +37 -0
- package/dist/cjs/package/mysql2/package.json +80 -0
- package/dist/cjs/package/mysql2/promise.d.ts +131 -0
- package/dist/cjs/package/mysql2/promise.js +202 -0
- package/dist/cjs/package/mysql2/typings/mysql/LICENSE.txt +15 -0
- package/dist/cjs/package/mysql2/typings/mysql/index.d.ts +95 -0
- package/dist/cjs/package/mysql2/typings/mysql/info.txt +1 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/Auth.d.ts +30 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/Connection.d.ts +428 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/Pool.d.ts +69 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/PoolCluster.d.ts +90 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/PoolConnection.d.ts +10 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/Server.d.ts +11 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/constants/CharsetToEncoding.d.ts +8 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/constants/Charsets.d.ts +326 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/constants/Types.d.ts +70 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/constants/index.d.ts +5 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/ParserCache.d.ts +4 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/index.d.ts +18 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +54 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts +10 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/FieldPacket.d.ts +27 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/OkPacket.d.ts +23 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +13 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +18 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts +9 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/index.d.ts +28 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts +6 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts +9 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +40 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Prepare.d.ts +65 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Query.d.ts +170 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +40 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts +5 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +21 -0
- package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +21 -0
- package/dist/cjs/package/mysql_backup/index.js +69 -0
- package/dist/cjs/package/mysql_backup/promise.js +187 -0
- package/dist/cjs/server.d.ts +1 -1
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +1 -1
- package/dist/cjs/start.js +1 -1
- package/dist/cjs/update.js +1 -1
- package/dist/esm/browser.js +1 -1
- package/dist/esm/getAllRouter/index.js +1 -1
- package/dist/esm/hash/index.js +1 -1
- package/dist/esm/id/index.js +1 -1
- package/dist/esm/id/random.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/jwt/index.js +1 -1
- package/dist/esm/mac/index.js +1 -1
- package/dist/esm/package/mysql2/License +19 -0
- package/dist/esm/package/mysql2/README.md +114 -0
- package/dist/esm/package/mysql2/index.d.ts +1 -0
- package/dist/esm/package/mysql2/index.js +77 -0
- package/dist/esm/package/mysql2/lib/auth_41.js +95 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/caching_sha2_password.js +108 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/caching_sha2_password.md +18 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/index.js +8 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/mysql_clear_password.js +17 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/mysql_native_password.js +34 -0
- package/dist/esm/package/mysql2/lib/auth_plugins/sha256_password.js +59 -0
- package/dist/esm/package/mysql2/lib/base/connection.js +945 -0
- package/dist/esm/package/mysql2/lib/base/pool.js +233 -0
- package/dist/esm/package/mysql2/lib/base/pool_connection.js +63 -0
- package/dist/esm/package/mysql2/lib/commands/auth_switch.js +111 -0
- package/dist/esm/package/mysql2/lib/commands/binlog_dump.js +109 -0
- package/dist/esm/package/mysql2/lib/commands/change_user.js +68 -0
- package/dist/esm/package/mysql2/lib/commands/client_handshake.js +241 -0
- package/dist/esm/package/mysql2/lib/commands/close_statement.js +18 -0
- package/dist/esm/package/mysql2/lib/commands/command.js +54 -0
- package/dist/esm/package/mysql2/lib/commands/execute.js +112 -0
- package/dist/esm/package/mysql2/lib/commands/index.js +27 -0
- package/dist/esm/package/mysql2/lib/commands/ping.js +36 -0
- package/dist/esm/package/mysql2/lib/commands/prepare.js +143 -0
- package/dist/esm/package/mysql2/lib/commands/query.js +329 -0
- package/dist/esm/package/mysql2/lib/commands/quit.js +29 -0
- package/dist/esm/package/mysql2/lib/commands/register_slave.js +27 -0
- package/dist/esm/package/mysql2/lib/commands/server_handshake.js +203 -0
- package/dist/esm/package/mysql2/lib/compressed_protocol.js +127 -0
- package/dist/esm/package/mysql2/lib/connection.js +12 -0
- package/dist/esm/package/mysql2/lib/connection_config.js +292 -0
- package/dist/esm/package/mysql2/lib/constants/charset_encodings.js +316 -0
- package/dist/esm/package/mysql2/lib/constants/charsets.js +317 -0
- package/dist/esm/package/mysql2/lib/constants/client.js +39 -0
- package/dist/esm/package/mysql2/lib/constants/commands.js +36 -0
- package/dist/esm/package/mysql2/lib/constants/cursor.js +8 -0
- package/dist/esm/package/mysql2/lib/constants/encoding_charset.js +49 -0
- package/dist/esm/package/mysql2/lib/constants/errors.js +3973 -0
- package/dist/esm/package/mysql2/lib/constants/field_flags.js +20 -0
- package/dist/esm/package/mysql2/lib/constants/server_status.js +44 -0
- package/dist/esm/package/mysql2/lib/constants/session_track.js +11 -0
- package/dist/esm/package/mysql2/lib/constants/ssl_profiles.js +11 -0
- package/dist/esm/package/mysql2/lib/constants/types.js +64 -0
- package/dist/esm/package/mysql2/lib/create_connection.js +10 -0
- package/dist/esm/package/mysql2/lib/create_pool.js +10 -0
- package/dist/esm/package/mysql2/lib/create_pool_cluster.js +9 -0
- package/dist/esm/package/mysql2/lib/helpers.js +86 -0
- package/dist/esm/package/mysql2/lib/packet_parser.js +195 -0
- package/dist/esm/package/mysql2/lib/packets/auth_next_factor.js +35 -0
- package/dist/esm/package/mysql2/lib/packets/auth_switch_request.js +38 -0
- package/dist/esm/package/mysql2/lib/packets/auth_switch_request_more_data.js +33 -0
- package/dist/esm/package/mysql2/lib/packets/auth_switch_response.js +30 -0
- package/dist/esm/package/mysql2/lib/packets/binary_row.js +95 -0
- package/dist/esm/package/mysql2/lib/packets/binlog_dump.js +33 -0
- package/dist/esm/package/mysql2/lib/packets/binlog_query_statusvars.js +115 -0
- package/dist/esm/package/mysql2/lib/packets/change_user.js +97 -0
- package/dist/esm/package/mysql2/lib/packets/close_statement.js +21 -0
- package/dist/esm/package/mysql2/lib/packets/column_definition.js +291 -0
- package/dist/esm/package/mysql2/lib/packets/execute.js +214 -0
- package/dist/esm/package/mysql2/lib/packets/handshake.js +112 -0
- package/dist/esm/package/mysql2/lib/packets/handshake_response.js +144 -0
- package/dist/esm/package/mysql2/lib/packets/index.js +152 -0
- package/dist/esm/package/mysql2/lib/packets/packet.js +931 -0
- package/dist/esm/package/mysql2/lib/packets/prepare_statement.js +27 -0
- package/dist/esm/package/mysql2/lib/packets/prepared_statement_header.js +16 -0
- package/dist/esm/package/mysql2/lib/packets/query.js +27 -0
- package/dist/esm/package/mysql2/lib/packets/register_slave.js +46 -0
- package/dist/esm/package/mysql2/lib/packets/resultset_header.js +118 -0
- package/dist/esm/package/mysql2/lib/packets/ssl_request.js +25 -0
- package/dist/esm/package/mysql2/lib/packets/text_row.js +47 -0
- package/dist/esm/package/mysql2/lib/parsers/binary_parser.js +231 -0
- package/dist/esm/package/mysql2/lib/parsers/parser_cache.js +66 -0
- package/dist/esm/package/mysql2/lib/parsers/static_binary_parser.js +211 -0
- package/dist/esm/package/mysql2/lib/parsers/static_text_parser.js +152 -0
- package/dist/esm/package/mysql2/lib/parsers/string.js +50 -0
- package/dist/esm/package/mysql2/lib/parsers/text_parser.js +214 -0
- package/dist/esm/package/mysql2/lib/pool.js +12 -0
- package/dist/esm/package/mysql2/lib/pool_cluster.js +369 -0
- package/dist/esm/package/mysql2/lib/pool_config.js +30 -0
- package/dist/esm/package/mysql2/lib/pool_connection.js +12 -0
- package/dist/esm/package/mysql2/lib/promise/connection.js +222 -0
- package/dist/esm/package/mysql2/lib/promise/inherit_events.js +27 -0
- package/dist/esm/package/mysql2/lib/promise/make_done_cb.js +19 -0
- package/dist/esm/package/mysql2/lib/promise/pool.js +112 -0
- package/dist/esm/package/mysql2/lib/promise/pool_cluster.js +54 -0
- package/dist/esm/package/mysql2/lib/promise/pool_connection.js +19 -0
- package/dist/esm/package/mysql2/lib/promise/prepared_statement_info.js +32 -0
- package/dist/esm/package/mysql2/lib/results_stream.js +38 -0
- package/dist/esm/package/mysql2/lib/server.js +37 -0
- package/dist/esm/package/mysql2/package.json +80 -0
- package/dist/esm/package/mysql2/promise.d.ts +131 -0
- package/dist/esm/package/mysql2/promise.js +202 -0
- package/dist/esm/package/mysql2/typings/mysql/LICENSE.txt +15 -0
- package/dist/esm/package/mysql2/typings/mysql/index.d.ts +95 -0
- package/dist/esm/package/mysql2/typings/mysql/info.txt +1 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/Auth.d.ts +30 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/Connection.d.ts +428 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/Pool.d.ts +69 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/PoolCluster.d.ts +90 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/PoolConnection.d.ts +10 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/Server.d.ts +11 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/constants/CharsetToEncoding.d.ts +8 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/constants/Charsets.d.ts +326 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/constants/Types.d.ts +70 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/constants/index.d.ts +5 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/parsers/ParserCache.d.ts +4 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/parsers/index.d.ts +18 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +54 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts +10 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/FieldPacket.d.ts +27 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/OkPacket.d.ts +23 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +13 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +18 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts +9 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/index.d.ts +28 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts +6 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts +9 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +40 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Prepare.d.ts +65 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Query.d.ts +170 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +40 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts +5 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +21 -0
- package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +21 -0
- package/dist/esm/package/mysql_backup/index.js +69 -0
- package/dist/esm/package/mysql_backup/promise.js +187 -0
- package/dist/esm/server.d.ts +1 -1
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/start.js +1 -1
- package/dist/esm/update.js +1 -1
- package/package.json +3 -4
@@ -0,0 +1,20 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// Manually extracted from mysql-5.5.23/include/mysql_com.h
|
4
|
+
exports.NOT_NULL = 1; /* Field can't be NULL */
|
5
|
+
exports.PRI_KEY = 2; /* Field is part of a primary key */
|
6
|
+
exports.UNIQUE_KEY = 4; /* Field is part of a unique key */
|
7
|
+
exports.MULTIPLE_KEY = 8; /* Field is part of a key */
|
8
|
+
exports.BLOB = 16; /* Field is a blob */
|
9
|
+
exports.UNSIGNED = 32; /* Field is unsigned */
|
10
|
+
exports.ZEROFILL = 64; /* Field is zerofill */
|
11
|
+
exports.BINARY = 128; /* Field is binary */
|
12
|
+
|
13
|
+
/* The following are only sent to new clients */
|
14
|
+
exports.ENUM = 256; /* field is an enum */
|
15
|
+
exports.AUTO_INCREMENT = 512; /* field is a autoincrement field */
|
16
|
+
exports.TIMESTAMP = 1024; /* Field is a timestamp */
|
17
|
+
exports.SET = 2048; /* field is a set */
|
18
|
+
exports.NO_DEFAULT_VALUE = 4096; /* Field doesn't have default value */
|
19
|
+
exports.ON_UPDATE_NOW = 8192; /* Field is set to NOW on UPDATE */
|
20
|
+
exports.NUM = 32768; /* Field is num (for clients) */
|
@@ -0,0 +1,44 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// Manually extracted from mysql-5.5.23/include/mysql_com.h
|
4
|
+
|
5
|
+
/**
|
6
|
+
Is raised when a multi-statement transaction
|
7
|
+
has been started, either explicitly, by means
|
8
|
+
of BEGIN or COMMIT AND CHAIN, or
|
9
|
+
implicitly, by the first transactional
|
10
|
+
statement, when autocommit=off.
|
11
|
+
*/
|
12
|
+
exports.SERVER_STATUS_IN_TRANS = 1;
|
13
|
+
exports.SERVER_STATUS_AUTOCOMMIT = 2; /* Server in auto_commit mode */
|
14
|
+
exports.SERVER_MORE_RESULTS_EXISTS = 8; /* Multi query - next query exists */
|
15
|
+
exports.SERVER_QUERY_NO_GOOD_INDEX_USED = 16;
|
16
|
+
exports.SERVER_QUERY_NO_INDEX_USED = 32;
|
17
|
+
/**
|
18
|
+
The server was able to fulfill the clients request and opened a
|
19
|
+
read-only non-scrollable cursor for a query. This flag comes
|
20
|
+
in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands.
|
21
|
+
*/
|
22
|
+
exports.SERVER_STATUS_CURSOR_EXISTS = 64;
|
23
|
+
/**
|
24
|
+
This flag is sent when a read-only cursor is exhausted, in reply to
|
25
|
+
COM_STMT_FETCH command.
|
26
|
+
*/
|
27
|
+
exports.SERVER_STATUS_LAST_ROW_SENT = 128;
|
28
|
+
exports.SERVER_STATUS_DB_DROPPED = 256; /* A database was dropped */
|
29
|
+
exports.SERVER_STATUS_NO_BACKSLASH_ESCAPES = 512;
|
30
|
+
/**
|
31
|
+
Sent to the client if after a prepared statement reprepare
|
32
|
+
we discovered that the new statement returns a different
|
33
|
+
number of result set columns.
|
34
|
+
*/
|
35
|
+
exports.SERVER_STATUS_METADATA_CHANGED = 1024;
|
36
|
+
exports.SERVER_QUERY_WAS_SLOW = 2048;
|
37
|
+
|
38
|
+
/**
|
39
|
+
To mark ResultSet containing output parameter values.
|
40
|
+
*/
|
41
|
+
exports.SERVER_PS_OUT_PARAMS = 4096;
|
42
|
+
|
43
|
+
exports.SERVER_STATUS_IN_TRANS_READONLY = 0x2000; // in a read-only transaction
|
44
|
+
exports.SERVER_SESSION_STATE_CHANGED = 0x4000;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
exports.SYSTEM_VARIABLES = 0;
|
4
|
+
exports.SCHEMA = 1;
|
5
|
+
exports.STATE_CHANGE = 2;
|
6
|
+
exports.STATE_GTIDS = 3;
|
7
|
+
exports.TRANSACTION_CHARACTERISTICS = 4;
|
8
|
+
exports.TRANSACTION_STATE = 5;
|
9
|
+
|
10
|
+
exports.FIRST_KEY = exports.SYSTEM_VARIABLES;
|
11
|
+
exports.LAST_KEY = exports.TRANSACTION_STATE;
|
@@ -0,0 +1,64 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
module.exports = {
|
4
|
+
0x00: 'DECIMAL', // aka DECIMAL
|
5
|
+
0x01: 'TINY', // aka TINYINT, 1 byte
|
6
|
+
0x02: 'SHORT', // aka SMALLINT, 2 bytes
|
7
|
+
0x03: 'LONG', // aka INT, 4 bytes
|
8
|
+
0x04: 'FLOAT', // aka FLOAT, 4-8 bytes
|
9
|
+
0x05: 'DOUBLE', // aka DOUBLE, 8 bytes
|
10
|
+
0x06: 'NULL', // NULL (used for prepared statements, I think)
|
11
|
+
0x07: 'TIMESTAMP', // aka TIMESTAMP
|
12
|
+
0x08: 'LONGLONG', // aka BIGINT, 8 bytes
|
13
|
+
0x09: 'INT24', // aka MEDIUMINT, 3 bytes
|
14
|
+
0x0a: 'DATE', // aka DATE
|
15
|
+
0x0b: 'TIME', // aka TIME
|
16
|
+
0x0c: 'DATETIME', // aka DATETIME
|
17
|
+
0x0d: 'YEAR', // aka YEAR, 1 byte (don't ask)
|
18
|
+
0x0e: 'NEWDATE', // aka ?
|
19
|
+
0x0f: 'VARCHAR', // aka VARCHAR (?)
|
20
|
+
0x10: 'BIT', // aka BIT, 1-8 byte
|
21
|
+
0xf5: 'JSON',
|
22
|
+
0xf6: 'NEWDECIMAL', // aka DECIMAL
|
23
|
+
0xf7: 'ENUM', // aka ENUM
|
24
|
+
0xf8: 'SET', // aka SET
|
25
|
+
0xf9: 'TINY_BLOB', // aka TINYBLOB, TINYTEXT
|
26
|
+
0xfa: 'MEDIUM_BLOB', // aka MEDIUMBLOB, MEDIUMTEXT
|
27
|
+
0xfb: 'LONG_BLOB', // aka LONGBLOG, LONGTEXT
|
28
|
+
0xfc: 'BLOB', // aka BLOB, TEXT
|
29
|
+
0xfd: 'VAR_STRING', // aka VARCHAR, VARBINARY
|
30
|
+
0xfe: 'STRING', // aka CHAR, BINARY
|
31
|
+
0xff: 'GEOMETRY', // aka GEOMETRY
|
32
|
+
};
|
33
|
+
|
34
|
+
// Manually extracted from mysql-5.5.23/include/mysql_com.h
|
35
|
+
// some more info here: http://dev.mysql.com/doc/refman/5.5/en/c-api-prepared-statement-type-codes.html
|
36
|
+
module.exports.DECIMAL = 0x00; // aka DECIMAL (http://dev.mysql.com/doc/refman/5.0/en/precision-math-decimal-changes.html)
|
37
|
+
module.exports.TINY = 0x01; // aka TINYINT, 1 byte
|
38
|
+
module.exports.SHORT = 0x02; // aka SMALLINT, 2 bytes
|
39
|
+
module.exports.LONG = 0x03; // aka INT, 4 bytes
|
40
|
+
module.exports.FLOAT = 0x04; // aka FLOAT, 4-8 bytes
|
41
|
+
module.exports.DOUBLE = 0x05; // aka DOUBLE, 8 bytes
|
42
|
+
module.exports.NULL = 0x06; // NULL (used for prepared statements, I think)
|
43
|
+
module.exports.TIMESTAMP = 0x07; // aka TIMESTAMP
|
44
|
+
module.exports.LONGLONG = 0x08; // aka BIGINT, 8 bytes
|
45
|
+
module.exports.INT24 = 0x09; // aka MEDIUMINT, 3 bytes
|
46
|
+
module.exports.DATE = 0x0a; // aka DATE
|
47
|
+
module.exports.TIME = 0x0b; // aka TIME
|
48
|
+
module.exports.DATETIME = 0x0c; // aka DATETIME
|
49
|
+
module.exports.YEAR = 0x0d; // aka YEAR, 1 byte (don't ask)
|
50
|
+
module.exports.NEWDATE = 0x0e; // aka ?
|
51
|
+
module.exports.VARCHAR = 0x0f; // aka VARCHAR (?)
|
52
|
+
module.exports.BIT = 0x10; // aka BIT, 1-8 byte
|
53
|
+
module.exports.VECTOR = 0xf2;
|
54
|
+
module.exports.JSON = 0xf5;
|
55
|
+
module.exports.NEWDECIMAL = 0xf6; // aka DECIMAL
|
56
|
+
module.exports.ENUM = 0xf7; // aka ENUM
|
57
|
+
module.exports.SET = 0xf8; // aka SET
|
58
|
+
module.exports.TINY_BLOB = 0xf9; // aka TINYBLOB, TINYTEXT
|
59
|
+
module.exports.MEDIUM_BLOB = 0xfa; // aka MEDIUMBLOB, MEDIUMTEXT
|
60
|
+
module.exports.LONG_BLOB = 0xfb; // aka LONGBLOG, LONGTEXT
|
61
|
+
module.exports.BLOB = 0xfc; // aka BLOB, TEXT
|
62
|
+
module.exports.VAR_STRING = 0xfd; // aka VARCHAR, VARBINARY
|
63
|
+
module.exports.STRING = 0xfe; // aka CHAR, BINARY
|
64
|
+
module.exports.GEOMETRY = 0xff; // aka GEOMETRY
|
@@ -0,0 +1,10 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Connection = require('./connection.js');
|
4
|
+
const ConnectionConfig = require('./connection_config.js');
|
5
|
+
|
6
|
+
function createConnection(opts) {
|
7
|
+
return new Connection({ config: new ConnectionConfig(opts) });
|
8
|
+
}
|
9
|
+
|
10
|
+
module.exports = createConnection;
|
@@ -0,0 +1,86 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
/*
|
4
|
+
|
5
|
+
this seems to be not only shorter, but faster than
|
6
|
+
string.replace(/\\/g, '\\\\').
|
7
|
+
replace(/\u0008/g, '\\b').
|
8
|
+
replace(/\t/g, '\\t').
|
9
|
+
replace(/\n/g, '\\n').
|
10
|
+
replace(/\f/g, '\\f').
|
11
|
+
replace(/\r/g, '\\r').
|
12
|
+
replace(/'/g, '\\\'').
|
13
|
+
replace(/"/g, '\\"');
|
14
|
+
or string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")
|
15
|
+
see http://jsperf.com/string-escape-regexp-vs-json-stringify
|
16
|
+
*/
|
17
|
+
function srcEscape(str) {
|
18
|
+
return JSON.stringify({
|
19
|
+
[str]: 1,
|
20
|
+
}).slice(1, -3);
|
21
|
+
}
|
22
|
+
|
23
|
+
exports.srcEscape = srcEscape;
|
24
|
+
|
25
|
+
let highlightFn;
|
26
|
+
let cardinalRecommended = false;
|
27
|
+
try {
|
28
|
+
// the purpose of this is to prevent projects using Webpack from displaying a warning during runtime if cardinal is not a dependency
|
29
|
+
const REQUIRE_TERMINATOR = '';
|
30
|
+
highlightFn = require(`cardinal${REQUIRE_TERMINATOR}`).highlight;
|
31
|
+
} catch (err) {
|
32
|
+
highlightFn = (text) => {
|
33
|
+
if (!cardinalRecommended) {
|
34
|
+
// eslint-disable-next-line no-console
|
35
|
+
console.log('For nicer debug output consider install cardinal@^2.0.0');
|
36
|
+
cardinalRecommended = true;
|
37
|
+
}
|
38
|
+
return text;
|
39
|
+
};
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Prints debug message with code frame, will try to use `cardinal` if available.
|
44
|
+
*/
|
45
|
+
function printDebugWithCode(msg, code) {
|
46
|
+
// eslint-disable-next-line no-console
|
47
|
+
console.log(`\n\n${msg}:\n`);
|
48
|
+
// eslint-disable-next-line no-console
|
49
|
+
console.log(`${highlightFn(code)}\n`);
|
50
|
+
}
|
51
|
+
|
52
|
+
exports.printDebugWithCode = printDebugWithCode;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* checks whether the `type` is in the `list`
|
56
|
+
*/
|
57
|
+
function typeMatch(type, list, Types) {
|
58
|
+
if (Array.isArray(list)) {
|
59
|
+
return list.some((t) => type === Types[t]);
|
60
|
+
}
|
61
|
+
|
62
|
+
return !!list;
|
63
|
+
}
|
64
|
+
|
65
|
+
exports.typeMatch = typeMatch;
|
66
|
+
|
67
|
+
const privateObjectProps = new Set([
|
68
|
+
'__defineGetter__',
|
69
|
+
'__defineSetter__',
|
70
|
+
'__lookupGetter__',
|
71
|
+
'__lookupSetter__',
|
72
|
+
'__proto__',
|
73
|
+
]);
|
74
|
+
|
75
|
+
exports.privateObjectProps = privateObjectProps;
|
76
|
+
|
77
|
+
const fieldEscape = (field, isEval = true) => {
|
78
|
+
if (privateObjectProps.has(field)) {
|
79
|
+
throw new Error(
|
80
|
+
`The field name (${field}) can't be the same as an object's private property.`
|
81
|
+
);
|
82
|
+
}
|
83
|
+
|
84
|
+
return isEval ? srcEscape(field) : field;
|
85
|
+
};
|
86
|
+
exports.fieldEscape = fieldEscape;
|
@@ -0,0 +1,195 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const Packet = require('./packets/packet.js');
|
4
|
+
|
5
|
+
const MAX_PACKET_LENGTH = 16777215;
|
6
|
+
|
7
|
+
function readPacketLength(b, off) {
|
8
|
+
const b0 = b[off];
|
9
|
+
const b1 = b[off + 1];
|
10
|
+
const b2 = b[off + 2];
|
11
|
+
if (b1 + b2 === 0) {
|
12
|
+
return b0;
|
13
|
+
}
|
14
|
+
return b0 + (b1 << 8) + (b2 << 16);
|
15
|
+
}
|
16
|
+
|
17
|
+
class PacketParser {
|
18
|
+
constructor(onPacket, packetHeaderLength) {
|
19
|
+
// 4 for normal packets, 7 for comprssed protocol packets
|
20
|
+
if (typeof packetHeaderLength === 'undefined') {
|
21
|
+
packetHeaderLength = 4;
|
22
|
+
}
|
23
|
+
// array of last payload chunks
|
24
|
+
// only used when current payload is not complete
|
25
|
+
this.buffer = [];
|
26
|
+
// total length of chunks on buffer
|
27
|
+
this.bufferLength = 0;
|
28
|
+
this.packetHeaderLength = packetHeaderLength;
|
29
|
+
// incomplete header state: number of header bytes received
|
30
|
+
this.headerLen = 0;
|
31
|
+
// expected payload length
|
32
|
+
this.length = 0;
|
33
|
+
this.largePacketParts = [];
|
34
|
+
this.firstPacketSequenceId = 0;
|
35
|
+
this.onPacket = onPacket;
|
36
|
+
this.execute = PacketParser.prototype.executeStart;
|
37
|
+
this._flushLargePacket =
|
38
|
+
packetHeaderLength === 7
|
39
|
+
? this._flushLargePacket7
|
40
|
+
: this._flushLargePacket4;
|
41
|
+
}
|
42
|
+
|
43
|
+
_flushLargePacket4() {
|
44
|
+
const numPackets = this.largePacketParts.length;
|
45
|
+
this.largePacketParts.unshift(Buffer.from([0, 0, 0, 0])); // insert header
|
46
|
+
const body = Buffer.concat(this.largePacketParts);
|
47
|
+
const packet = new Packet(this.firstPacketSequenceId, body, 0, body.length);
|
48
|
+
this.largePacketParts.length = 0;
|
49
|
+
packet.numPackets = numPackets;
|
50
|
+
this.onPacket(packet);
|
51
|
+
}
|
52
|
+
|
53
|
+
_flushLargePacket7() {
|
54
|
+
const numPackets = this.largePacketParts.length;
|
55
|
+
this.largePacketParts.unshift(Buffer.from([0, 0, 0, 0, 0, 0, 0])); // insert header
|
56
|
+
const body = Buffer.concat(this.largePacketParts);
|
57
|
+
this.largePacketParts.length = 0;
|
58
|
+
const packet = new Packet(this.firstPacketSequenceId, body, 0, body.length);
|
59
|
+
packet.numPackets = numPackets;
|
60
|
+
this.onPacket(packet);
|
61
|
+
}
|
62
|
+
|
63
|
+
executeStart(chunk) {
|
64
|
+
let start = 0;
|
65
|
+
const end = chunk.length;
|
66
|
+
while (end - start >= 3) {
|
67
|
+
this.length = readPacketLength(chunk, start);
|
68
|
+
if (end - start >= this.length + this.packetHeaderLength) {
|
69
|
+
// at least one full packet
|
70
|
+
const sequenceId = chunk[start + 3];
|
71
|
+
if (
|
72
|
+
this.length < MAX_PACKET_LENGTH &&
|
73
|
+
this.largePacketParts.length === 0
|
74
|
+
) {
|
75
|
+
this.onPacket(
|
76
|
+
new Packet(
|
77
|
+
sequenceId,
|
78
|
+
chunk,
|
79
|
+
start,
|
80
|
+
start + this.packetHeaderLength + this.length
|
81
|
+
)
|
82
|
+
);
|
83
|
+
} else {
|
84
|
+
// first large packet - remember it's id
|
85
|
+
if (this.largePacketParts.length === 0) {
|
86
|
+
this.firstPacketSequenceId = sequenceId;
|
87
|
+
}
|
88
|
+
this.largePacketParts.push(
|
89
|
+
chunk.slice(
|
90
|
+
start + this.packetHeaderLength,
|
91
|
+
start + this.packetHeaderLength + this.length
|
92
|
+
)
|
93
|
+
);
|
94
|
+
if (this.length < MAX_PACKET_LENGTH) {
|
95
|
+
this._flushLargePacket();
|
96
|
+
}
|
97
|
+
}
|
98
|
+
start += this.packetHeaderLength + this.length;
|
99
|
+
} else {
|
100
|
+
// payload is incomplete
|
101
|
+
this.buffer = [chunk.slice(start + 3, end)];
|
102
|
+
this.bufferLength = end - start - 3;
|
103
|
+
this.execute = PacketParser.prototype.executePayload;
|
104
|
+
return;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
if (end - start > 0) {
|
108
|
+
// there is start of length header, but it's not full 3 bytes
|
109
|
+
this.headerLen = end - start; // 1 or 2 bytes
|
110
|
+
this.length = chunk[start];
|
111
|
+
if (this.headerLen === 2) {
|
112
|
+
this.length = chunk[start] + (chunk[start + 1] << 8);
|
113
|
+
this.execute = PacketParser.prototype.executeHeader3;
|
114
|
+
} else {
|
115
|
+
this.execute = PacketParser.prototype.executeHeader2;
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
executePayload(chunk) {
|
121
|
+
let start = 0;
|
122
|
+
const end = chunk.length;
|
123
|
+
const remainingPayload =
|
124
|
+
this.length - this.bufferLength + this.packetHeaderLength - 3;
|
125
|
+
if (end - start >= remainingPayload) {
|
126
|
+
// last chunk for payload
|
127
|
+
const payload = Buffer.allocUnsafe(this.length + this.packetHeaderLength);
|
128
|
+
let offset = 3;
|
129
|
+
for (let i = 0; i < this.buffer.length; ++i) {
|
130
|
+
this.buffer[i].copy(payload, offset);
|
131
|
+
offset += this.buffer[i].length;
|
132
|
+
}
|
133
|
+
chunk.copy(payload, offset, start, start + remainingPayload);
|
134
|
+
const sequenceId = payload[3];
|
135
|
+
if (
|
136
|
+
this.length < MAX_PACKET_LENGTH &&
|
137
|
+
this.largePacketParts.length === 0
|
138
|
+
) {
|
139
|
+
this.onPacket(
|
140
|
+
new Packet(
|
141
|
+
sequenceId,
|
142
|
+
payload,
|
143
|
+
0,
|
144
|
+
this.length + this.packetHeaderLength
|
145
|
+
)
|
146
|
+
);
|
147
|
+
} else {
|
148
|
+
// first large packet - remember it's id
|
149
|
+
if (this.largePacketParts.length === 0) {
|
150
|
+
this.firstPacketSequenceId = sequenceId;
|
151
|
+
}
|
152
|
+
this.largePacketParts.push(
|
153
|
+
payload.slice(
|
154
|
+
this.packetHeaderLength,
|
155
|
+
this.packetHeaderLength + this.length
|
156
|
+
)
|
157
|
+
);
|
158
|
+
if (this.length < MAX_PACKET_LENGTH) {
|
159
|
+
this._flushLargePacket();
|
160
|
+
}
|
161
|
+
}
|
162
|
+
this.buffer = [];
|
163
|
+
this.bufferLength = 0;
|
164
|
+
this.execute = PacketParser.prototype.executeStart;
|
165
|
+
start += remainingPayload;
|
166
|
+
if (end - start > 0) {
|
167
|
+
return this.execute(chunk.slice(start, end));
|
168
|
+
}
|
169
|
+
} else {
|
170
|
+
this.buffer.push(chunk);
|
171
|
+
this.bufferLength += chunk.length;
|
172
|
+
}
|
173
|
+
return null;
|
174
|
+
}
|
175
|
+
|
176
|
+
executeHeader2(chunk) {
|
177
|
+
this.length += chunk[0] << 8;
|
178
|
+
if (chunk.length > 1) {
|
179
|
+
this.length += chunk[1] << 16;
|
180
|
+
this.execute = PacketParser.prototype.executePayload;
|
181
|
+
return this.executePayload(chunk.slice(2));
|
182
|
+
}
|
183
|
+
this.execute = PacketParser.prototype.executeHeader3;
|
184
|
+
|
185
|
+
return null;
|
186
|
+
}
|
187
|
+
|
188
|
+
executeHeader3(chunk) {
|
189
|
+
this.length += chunk[0] << 16;
|
190
|
+
this.execute = PacketParser.prototype.executePayload;
|
191
|
+
return this.executePayload(chunk.slice(1));
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|
195
|
+
module.exports = PacketParser;
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// Copyright (c) 2021, Oracle and/or its affiliates.
|
2
|
+
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
const Packet = require('../packets/packet');
|
6
|
+
|
7
|
+
class AuthNextFactor {
|
8
|
+
constructor(opts) {
|
9
|
+
this.pluginName = opts.pluginName;
|
10
|
+
this.pluginData = opts.pluginData;
|
11
|
+
}
|
12
|
+
|
13
|
+
toPacket(encoding) {
|
14
|
+
const length = 6 + this.pluginName.length + this.pluginData.length;
|
15
|
+
const buffer = Buffer.allocUnsafe(length);
|
16
|
+
const packet = new Packet(0, buffer, 0, length);
|
17
|
+
packet.offset = 4;
|
18
|
+
packet.writeInt8(0x02);
|
19
|
+
packet.writeNullTerminatedString(this.pluginName, encoding);
|
20
|
+
packet.writeBuffer(this.pluginData);
|
21
|
+
return packet;
|
22
|
+
}
|
23
|
+
|
24
|
+
static fromPacket(packet, encoding) {
|
25
|
+
packet.readInt8(); // marker
|
26
|
+
const name = packet.readNullTerminatedString(encoding);
|
27
|
+
const data = packet.readBuffer();
|
28
|
+
return new AuthNextFactor({
|
29
|
+
pluginName: name,
|
30
|
+
pluginData: data,
|
31
|
+
});
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
module.exports = AuthNextFactor;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchRequest
|
4
|
+
|
5
|
+
const Packet = require('../packets/packet');
|
6
|
+
|
7
|
+
class AuthSwitchRequest {
|
8
|
+
constructor(opts) {
|
9
|
+
this.pluginName = opts.pluginName;
|
10
|
+
this.pluginData = opts.pluginData;
|
11
|
+
}
|
12
|
+
|
13
|
+
toPacket() {
|
14
|
+
const length = 6 + this.pluginName.length + this.pluginData.length;
|
15
|
+
const buffer = Buffer.allocUnsafe(length);
|
16
|
+
const packet = new Packet(0, buffer, 0, length);
|
17
|
+
packet.offset = 4;
|
18
|
+
packet.writeInt8(0xfe);
|
19
|
+
// TODO: use server encoding
|
20
|
+
packet.writeNullTerminatedString(this.pluginName, 'cesu8');
|
21
|
+
packet.writeBuffer(this.pluginData);
|
22
|
+
return packet;
|
23
|
+
}
|
24
|
+
|
25
|
+
static fromPacket(packet) {
|
26
|
+
packet.readInt8(); // marker
|
27
|
+
// assert marker == 0xfe?
|
28
|
+
// TODO: use server encoding
|
29
|
+
const name = packet.readNullTerminatedString('cesu8');
|
30
|
+
const data = packet.readBuffer();
|
31
|
+
return new AuthSwitchRequest({
|
32
|
+
pluginName: name,
|
33
|
+
pluginData: data,
|
34
|
+
});
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
module.exports = AuthSwitchRequest;
|
@@ -0,0 +1,33 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchRequest
|
4
|
+
|
5
|
+
const Packet = require('../packets/packet');
|
6
|
+
|
7
|
+
class AuthSwitchRequestMoreData {
|
8
|
+
constructor(data) {
|
9
|
+
this.data = data;
|
10
|
+
}
|
11
|
+
|
12
|
+
toPacket() {
|
13
|
+
const length = 5 + this.data.length;
|
14
|
+
const buffer = Buffer.allocUnsafe(length);
|
15
|
+
const packet = new Packet(0, buffer, 0, length);
|
16
|
+
packet.offset = 4;
|
17
|
+
packet.writeInt8(0x01);
|
18
|
+
packet.writeBuffer(this.data);
|
19
|
+
return packet;
|
20
|
+
}
|
21
|
+
|
22
|
+
static fromPacket(packet) {
|
23
|
+
packet.readInt8(); // marker
|
24
|
+
const data = packet.readBuffer();
|
25
|
+
return new AuthSwitchRequestMoreData(data);
|
26
|
+
}
|
27
|
+
|
28
|
+
static verifyMarker(packet) {
|
29
|
+
return packet.peekByte() === 0x01;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
module.exports = AuthSwitchRequestMoreData;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchRequest
|
4
|
+
|
5
|
+
const Packet = require('../packets/packet');
|
6
|
+
|
7
|
+
class AuthSwitchResponse {
|
8
|
+
constructor(data) {
|
9
|
+
if (!Buffer.isBuffer(data)) {
|
10
|
+
data = Buffer.from(data);
|
11
|
+
}
|
12
|
+
this.data = data;
|
13
|
+
}
|
14
|
+
|
15
|
+
toPacket() {
|
16
|
+
const length = 4 + this.data.length;
|
17
|
+
const buffer = Buffer.allocUnsafe(length);
|
18
|
+
const packet = new Packet(0, buffer, 0, length);
|
19
|
+
packet.offset = 4;
|
20
|
+
packet.writeBuffer(this.data);
|
21
|
+
return packet;
|
22
|
+
}
|
23
|
+
|
24
|
+
static fromPacket(packet) {
|
25
|
+
const data = packet.readBuffer();
|
26
|
+
return new AuthSwitchResponse(data);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
module.exports = AuthSwitchResponse;
|