node-server-dev 3.1.5 → 3.1.6

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 (347) hide show
  1. package/dist/cjs/browser.js +1 -1
  2. package/dist/cjs/build.d.ts +2 -0
  3. package/dist/cjs/build.d.ts.map +1 -0
  4. package/dist/cjs/build.js +1 -0
  5. package/dist/cjs/getAllRouter/index.js +1 -1
  6. package/dist/cjs/hash/index.js +1 -1
  7. package/dist/cjs/id/index.js +1 -1
  8. package/dist/cjs/id/random.js +1 -1
  9. package/dist/cjs/index.js +1 -1
  10. package/dist/cjs/jwt/index.js +1 -1
  11. package/dist/cjs/mac/index.js +1 -1
  12. package/dist/cjs/package/mysql2/License +19 -0
  13. package/dist/cjs/package/mysql2/README.md +114 -0
  14. package/dist/cjs/package/mysql2/index.d.ts +1 -0
  15. package/dist/cjs/package/mysql2/index.js +77 -0
  16. package/dist/cjs/package/mysql2/lib/auth_41.js +95 -0
  17. package/dist/cjs/package/mysql2/lib/auth_plugins/caching_sha2_password.js +108 -0
  18. package/dist/cjs/package/mysql2/lib/auth_plugins/caching_sha2_password.md +18 -0
  19. package/dist/cjs/package/mysql2/lib/auth_plugins/index.js +8 -0
  20. package/dist/cjs/package/mysql2/lib/auth_plugins/mysql_clear_password.js +17 -0
  21. package/dist/cjs/package/mysql2/lib/auth_plugins/mysql_native_password.js +34 -0
  22. package/dist/cjs/package/mysql2/lib/auth_plugins/sha256_password.js +59 -0
  23. package/dist/cjs/package/mysql2/lib/base/connection.js +945 -0
  24. package/dist/cjs/package/mysql2/lib/base/pool.js +233 -0
  25. package/dist/cjs/package/mysql2/lib/base/pool_connection.js +63 -0
  26. package/dist/cjs/package/mysql2/lib/commands/auth_switch.js +111 -0
  27. package/dist/cjs/package/mysql2/lib/commands/binlog_dump.js +109 -0
  28. package/dist/cjs/package/mysql2/lib/commands/change_user.js +68 -0
  29. package/dist/cjs/package/mysql2/lib/commands/client_handshake.js +241 -0
  30. package/dist/cjs/package/mysql2/lib/commands/close_statement.js +18 -0
  31. package/dist/cjs/package/mysql2/lib/commands/command.js +54 -0
  32. package/dist/cjs/package/mysql2/lib/commands/execute.js +112 -0
  33. package/dist/cjs/package/mysql2/lib/commands/index.js +27 -0
  34. package/dist/cjs/package/mysql2/lib/commands/ping.js +36 -0
  35. package/dist/cjs/package/mysql2/lib/commands/prepare.js +143 -0
  36. package/dist/cjs/package/mysql2/lib/commands/query.js +329 -0
  37. package/dist/cjs/package/mysql2/lib/commands/quit.js +29 -0
  38. package/dist/cjs/package/mysql2/lib/commands/register_slave.js +27 -0
  39. package/dist/cjs/package/mysql2/lib/commands/server_handshake.js +203 -0
  40. package/dist/cjs/package/mysql2/lib/compressed_protocol.js +127 -0
  41. package/dist/cjs/package/mysql2/lib/connection.js +12 -0
  42. package/dist/cjs/package/mysql2/lib/connection_config.js +292 -0
  43. package/dist/cjs/package/mysql2/lib/constants/charset_encodings.js +316 -0
  44. package/dist/cjs/package/mysql2/lib/constants/charsets.js +317 -0
  45. package/dist/cjs/package/mysql2/lib/constants/client.js +39 -0
  46. package/dist/cjs/package/mysql2/lib/constants/commands.js +36 -0
  47. package/dist/cjs/package/mysql2/lib/constants/cursor.js +8 -0
  48. package/dist/cjs/package/mysql2/lib/constants/encoding_charset.js +49 -0
  49. package/dist/cjs/package/mysql2/lib/constants/errors.js +3973 -0
  50. package/dist/cjs/package/mysql2/lib/constants/field_flags.js +20 -0
  51. package/dist/cjs/package/mysql2/lib/constants/server_status.js +44 -0
  52. package/dist/cjs/package/mysql2/lib/constants/session_track.js +11 -0
  53. package/dist/cjs/package/mysql2/lib/constants/ssl_profiles.js +11 -0
  54. package/dist/cjs/package/mysql2/lib/constants/types.js +64 -0
  55. package/dist/cjs/package/mysql2/lib/create_connection.js +10 -0
  56. package/dist/cjs/package/mysql2/lib/create_pool.js +10 -0
  57. package/dist/cjs/package/mysql2/lib/create_pool_cluster.js +9 -0
  58. package/dist/cjs/package/mysql2/lib/helpers.js +86 -0
  59. package/dist/cjs/package/mysql2/lib/packet_parser.js +195 -0
  60. package/dist/cjs/package/mysql2/lib/packets/auth_next_factor.js +35 -0
  61. package/dist/cjs/package/mysql2/lib/packets/auth_switch_request.js +38 -0
  62. package/dist/cjs/package/mysql2/lib/packets/auth_switch_request_more_data.js +33 -0
  63. package/dist/cjs/package/mysql2/lib/packets/auth_switch_response.js +30 -0
  64. package/dist/cjs/package/mysql2/lib/packets/binary_row.js +95 -0
  65. package/dist/cjs/package/mysql2/lib/packets/binlog_dump.js +33 -0
  66. package/dist/cjs/package/mysql2/lib/packets/binlog_query_statusvars.js +115 -0
  67. package/dist/cjs/package/mysql2/lib/packets/change_user.js +97 -0
  68. package/dist/cjs/package/mysql2/lib/packets/close_statement.js +21 -0
  69. package/dist/cjs/package/mysql2/lib/packets/column_definition.js +291 -0
  70. package/dist/cjs/package/mysql2/lib/packets/execute.js +214 -0
  71. package/dist/cjs/package/mysql2/lib/packets/handshake.js +112 -0
  72. package/dist/cjs/package/mysql2/lib/packets/handshake_response.js +144 -0
  73. package/dist/cjs/package/mysql2/lib/packets/index.js +152 -0
  74. package/dist/cjs/package/mysql2/lib/packets/packet.js +931 -0
  75. package/dist/cjs/package/mysql2/lib/packets/prepare_statement.js +27 -0
  76. package/dist/cjs/package/mysql2/lib/packets/prepared_statement_header.js +16 -0
  77. package/dist/cjs/package/mysql2/lib/packets/query.js +27 -0
  78. package/dist/cjs/package/mysql2/lib/packets/register_slave.js +46 -0
  79. package/dist/cjs/package/mysql2/lib/packets/resultset_header.js +118 -0
  80. package/dist/cjs/package/mysql2/lib/packets/ssl_request.js +25 -0
  81. package/dist/cjs/package/mysql2/lib/packets/text_row.js +47 -0
  82. package/dist/cjs/package/mysql2/lib/parsers/binary_parser.js +231 -0
  83. package/dist/cjs/package/mysql2/lib/parsers/parser_cache.js +66 -0
  84. package/dist/cjs/package/mysql2/lib/parsers/static_binary_parser.js +211 -0
  85. package/dist/cjs/package/mysql2/lib/parsers/static_text_parser.js +152 -0
  86. package/dist/cjs/package/mysql2/lib/parsers/string.js +50 -0
  87. package/dist/cjs/package/mysql2/lib/parsers/text_parser.js +214 -0
  88. package/dist/cjs/package/mysql2/lib/pool.js +12 -0
  89. package/dist/cjs/package/mysql2/lib/pool_cluster.js +369 -0
  90. package/dist/cjs/package/mysql2/lib/pool_config.js +30 -0
  91. package/dist/cjs/package/mysql2/lib/pool_connection.js +12 -0
  92. package/dist/cjs/package/mysql2/lib/promise/connection.js +222 -0
  93. package/dist/cjs/package/mysql2/lib/promise/inherit_events.js +27 -0
  94. package/dist/cjs/package/mysql2/lib/promise/make_done_cb.js +19 -0
  95. package/dist/cjs/package/mysql2/lib/promise/pool.js +112 -0
  96. package/dist/cjs/package/mysql2/lib/promise/pool_cluster.js +54 -0
  97. package/dist/cjs/package/mysql2/lib/promise/pool_connection.js +19 -0
  98. package/dist/cjs/package/mysql2/lib/promise/prepared_statement_info.js +32 -0
  99. package/dist/cjs/package/mysql2/lib/results_stream.js +38 -0
  100. package/dist/cjs/package/mysql2/lib/server.js +37 -0
  101. package/dist/cjs/package/mysql2/package.json +80 -0
  102. package/dist/cjs/package/mysql2/promise.d.ts +131 -0
  103. package/dist/cjs/package/mysql2/promise.js +202 -0
  104. package/dist/cjs/package/mysql2/typings/mysql/LICENSE.txt +15 -0
  105. package/dist/cjs/package/mysql2/typings/mysql/index.d.ts +95 -0
  106. package/dist/cjs/package/mysql2/typings/mysql/info.txt +1 -0
  107. package/dist/cjs/package/mysql2/typings/mysql/lib/Auth.d.ts +30 -0
  108. package/dist/cjs/package/mysql2/typings/mysql/lib/Connection.d.ts +428 -0
  109. package/dist/cjs/package/mysql2/typings/mysql/lib/Pool.d.ts +69 -0
  110. package/dist/cjs/package/mysql2/typings/mysql/lib/PoolCluster.d.ts +90 -0
  111. package/dist/cjs/package/mysql2/typings/mysql/lib/PoolConnection.d.ts +10 -0
  112. package/dist/cjs/package/mysql2/typings/mysql/lib/Server.d.ts +11 -0
  113. package/dist/cjs/package/mysql2/typings/mysql/lib/constants/CharsetToEncoding.d.ts +8 -0
  114. package/dist/cjs/package/mysql2/typings/mysql/lib/constants/Charsets.d.ts +326 -0
  115. package/dist/cjs/package/mysql2/typings/mysql/lib/constants/Types.d.ts +70 -0
  116. package/dist/cjs/package/mysql2/typings/mysql/lib/constants/index.d.ts +5 -0
  117. package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/ParserCache.d.ts +4 -0
  118. package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/index.d.ts +18 -0
  119. package/dist/cjs/package/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +54 -0
  120. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts +10 -0
  121. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/FieldPacket.d.ts +27 -0
  122. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/OkPacket.d.ts +23 -0
  123. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +13 -0
  124. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +18 -0
  125. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts +9 -0
  126. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/index.d.ts +28 -0
  127. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts +6 -0
  128. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts +9 -0
  129. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +40 -0
  130. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Prepare.d.ts +65 -0
  131. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Query.d.ts +170 -0
  132. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +40 -0
  133. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts +5 -0
  134. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +21 -0
  135. package/dist/cjs/package/mysql2/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +21 -0
  136. package/dist/cjs/server.d.ts +1 -1
  137. package/dist/cjs/server.d.ts.map +1 -1
  138. package/dist/cjs/server.js +1 -1
  139. package/dist/cjs/src/browser.d.ts +3 -0
  140. package/dist/cjs/src/browser.d.ts.map +1 -0
  141. package/dist/cjs/src/browser.js +1 -0
  142. package/dist/cjs/src/getAllRouter/index.d.ts +3 -0
  143. package/dist/cjs/src/getAllRouter/index.d.ts.map +1 -0
  144. package/dist/cjs/src/getAllRouter/index.js +1 -0
  145. package/dist/cjs/src/hash/index.d.ts +4 -0
  146. package/dist/cjs/src/hash/index.d.ts.map +1 -0
  147. package/dist/cjs/src/hash/index.js +1 -0
  148. package/dist/cjs/src/id/index.d.ts +3 -0
  149. package/dist/cjs/src/id/index.d.ts.map +1 -0
  150. package/dist/cjs/src/id/index.js +1 -0
  151. package/dist/cjs/src/id/random.d.ts +4 -0
  152. package/dist/cjs/src/id/random.d.ts.map +1 -0
  153. package/dist/cjs/src/id/random.js +1 -0
  154. package/dist/cjs/src/index.d.ts +25 -0
  155. package/dist/cjs/src/index.d.ts.map +1 -0
  156. package/dist/cjs/src/index.js +1 -0
  157. package/dist/cjs/src/jwt/index.d.ts +9 -0
  158. package/dist/cjs/src/jwt/index.d.ts.map +1 -0
  159. package/dist/cjs/src/jwt/index.js +1 -0
  160. package/dist/cjs/src/mac/index.d.ts +6 -0
  161. package/dist/cjs/src/mac/index.d.ts.map +1 -0
  162. package/dist/cjs/src/mac/index.js +1 -0
  163. package/dist/cjs/src/server.d.ts +7 -0
  164. package/dist/cjs/src/server.d.ts.map +1 -0
  165. package/dist/cjs/src/server.js +1 -0
  166. package/dist/cjs/src/start.d.ts +4 -0
  167. package/dist/cjs/src/start.d.ts.map +1 -0
  168. package/dist/cjs/src/start.js +1 -0
  169. package/dist/cjs/src/update.d.ts +3 -0
  170. package/dist/cjs/src/update.d.ts.map +1 -0
  171. package/dist/cjs/src/update.js +1 -0
  172. package/dist/cjs/start.js +1 -1
  173. package/dist/cjs/update.js +1 -1
  174. package/dist/esm/browser.js +1 -1
  175. package/dist/esm/build.d.ts +2 -0
  176. package/dist/esm/build.d.ts.map +1 -0
  177. package/dist/esm/build.js +1 -0
  178. package/dist/esm/getAllRouter/index.js +1 -1
  179. package/dist/esm/hash/index.js +1 -1
  180. package/dist/esm/id/index.js +1 -1
  181. package/dist/esm/id/random.js +1 -1
  182. package/dist/esm/index.js +1 -1
  183. package/dist/esm/jwt/index.js +1 -1
  184. package/dist/esm/mac/index.js +1 -1
  185. package/dist/esm/package/mysql2/License +19 -0
  186. package/dist/esm/package/mysql2/README.md +114 -0
  187. package/dist/esm/package/mysql2/index.d.ts +1 -0
  188. package/dist/esm/package/mysql2/index.js +77 -0
  189. package/dist/esm/package/mysql2/lib/auth_41.js +95 -0
  190. package/dist/esm/package/mysql2/lib/auth_plugins/caching_sha2_password.js +108 -0
  191. package/dist/esm/package/mysql2/lib/auth_plugins/caching_sha2_password.md +18 -0
  192. package/dist/esm/package/mysql2/lib/auth_plugins/index.js +8 -0
  193. package/dist/esm/package/mysql2/lib/auth_plugins/mysql_clear_password.js +17 -0
  194. package/dist/esm/package/mysql2/lib/auth_plugins/mysql_native_password.js +34 -0
  195. package/dist/esm/package/mysql2/lib/auth_plugins/sha256_password.js +59 -0
  196. package/dist/esm/package/mysql2/lib/base/connection.js +945 -0
  197. package/dist/esm/package/mysql2/lib/base/pool.js +233 -0
  198. package/dist/esm/package/mysql2/lib/base/pool_connection.js +63 -0
  199. package/dist/esm/package/mysql2/lib/commands/auth_switch.js +111 -0
  200. package/dist/esm/package/mysql2/lib/commands/binlog_dump.js +109 -0
  201. package/dist/esm/package/mysql2/lib/commands/change_user.js +68 -0
  202. package/dist/esm/package/mysql2/lib/commands/client_handshake.js +241 -0
  203. package/dist/esm/package/mysql2/lib/commands/close_statement.js +18 -0
  204. package/dist/esm/package/mysql2/lib/commands/command.js +54 -0
  205. package/dist/esm/package/mysql2/lib/commands/execute.js +112 -0
  206. package/dist/esm/package/mysql2/lib/commands/index.js +27 -0
  207. package/dist/esm/package/mysql2/lib/commands/ping.js +36 -0
  208. package/dist/esm/package/mysql2/lib/commands/prepare.js +143 -0
  209. package/dist/esm/package/mysql2/lib/commands/query.js +329 -0
  210. package/dist/esm/package/mysql2/lib/commands/quit.js +29 -0
  211. package/dist/esm/package/mysql2/lib/commands/register_slave.js +27 -0
  212. package/dist/esm/package/mysql2/lib/commands/server_handshake.js +203 -0
  213. package/dist/esm/package/mysql2/lib/compressed_protocol.js +127 -0
  214. package/dist/esm/package/mysql2/lib/connection.js +12 -0
  215. package/dist/esm/package/mysql2/lib/connection_config.js +292 -0
  216. package/dist/esm/package/mysql2/lib/constants/charset_encodings.js +316 -0
  217. package/dist/esm/package/mysql2/lib/constants/charsets.js +317 -0
  218. package/dist/esm/package/mysql2/lib/constants/client.js +39 -0
  219. package/dist/esm/package/mysql2/lib/constants/commands.js +36 -0
  220. package/dist/esm/package/mysql2/lib/constants/cursor.js +8 -0
  221. package/dist/esm/package/mysql2/lib/constants/encoding_charset.js +49 -0
  222. package/dist/esm/package/mysql2/lib/constants/errors.js +3973 -0
  223. package/dist/esm/package/mysql2/lib/constants/field_flags.js +20 -0
  224. package/dist/esm/package/mysql2/lib/constants/server_status.js +44 -0
  225. package/dist/esm/package/mysql2/lib/constants/session_track.js +11 -0
  226. package/dist/esm/package/mysql2/lib/constants/ssl_profiles.js +11 -0
  227. package/dist/esm/package/mysql2/lib/constants/types.js +64 -0
  228. package/dist/esm/package/mysql2/lib/create_connection.js +10 -0
  229. package/dist/esm/package/mysql2/lib/create_pool.js +10 -0
  230. package/dist/esm/package/mysql2/lib/create_pool_cluster.js +9 -0
  231. package/dist/esm/package/mysql2/lib/helpers.js +86 -0
  232. package/dist/esm/package/mysql2/lib/packet_parser.js +195 -0
  233. package/dist/esm/package/mysql2/lib/packets/auth_next_factor.js +35 -0
  234. package/dist/esm/package/mysql2/lib/packets/auth_switch_request.js +38 -0
  235. package/dist/esm/package/mysql2/lib/packets/auth_switch_request_more_data.js +33 -0
  236. package/dist/esm/package/mysql2/lib/packets/auth_switch_response.js +30 -0
  237. package/dist/esm/package/mysql2/lib/packets/binary_row.js +95 -0
  238. package/dist/esm/package/mysql2/lib/packets/binlog_dump.js +33 -0
  239. package/dist/esm/package/mysql2/lib/packets/binlog_query_statusvars.js +115 -0
  240. package/dist/esm/package/mysql2/lib/packets/change_user.js +97 -0
  241. package/dist/esm/package/mysql2/lib/packets/close_statement.js +21 -0
  242. package/dist/esm/package/mysql2/lib/packets/column_definition.js +291 -0
  243. package/dist/esm/package/mysql2/lib/packets/execute.js +214 -0
  244. package/dist/esm/package/mysql2/lib/packets/handshake.js +112 -0
  245. package/dist/esm/package/mysql2/lib/packets/handshake_response.js +144 -0
  246. package/dist/esm/package/mysql2/lib/packets/index.js +152 -0
  247. package/dist/esm/package/mysql2/lib/packets/packet.js +931 -0
  248. package/dist/esm/package/mysql2/lib/packets/prepare_statement.js +27 -0
  249. package/dist/esm/package/mysql2/lib/packets/prepared_statement_header.js +16 -0
  250. package/dist/esm/package/mysql2/lib/packets/query.js +27 -0
  251. package/dist/esm/package/mysql2/lib/packets/register_slave.js +46 -0
  252. package/dist/esm/package/mysql2/lib/packets/resultset_header.js +118 -0
  253. package/dist/esm/package/mysql2/lib/packets/ssl_request.js +25 -0
  254. package/dist/esm/package/mysql2/lib/packets/text_row.js +47 -0
  255. package/dist/esm/package/mysql2/lib/parsers/binary_parser.js +231 -0
  256. package/dist/esm/package/mysql2/lib/parsers/parser_cache.js +66 -0
  257. package/dist/esm/package/mysql2/lib/parsers/static_binary_parser.js +211 -0
  258. package/dist/esm/package/mysql2/lib/parsers/static_text_parser.js +152 -0
  259. package/dist/esm/package/mysql2/lib/parsers/string.js +50 -0
  260. package/dist/esm/package/mysql2/lib/parsers/text_parser.js +214 -0
  261. package/dist/esm/package/mysql2/lib/pool.js +12 -0
  262. package/dist/esm/package/mysql2/lib/pool_cluster.js +369 -0
  263. package/dist/esm/package/mysql2/lib/pool_config.js +30 -0
  264. package/dist/esm/package/mysql2/lib/pool_connection.js +12 -0
  265. package/dist/esm/package/mysql2/lib/promise/connection.js +222 -0
  266. package/dist/esm/package/mysql2/lib/promise/inherit_events.js +27 -0
  267. package/dist/esm/package/mysql2/lib/promise/make_done_cb.js +19 -0
  268. package/dist/esm/package/mysql2/lib/promise/pool.js +112 -0
  269. package/dist/esm/package/mysql2/lib/promise/pool_cluster.js +54 -0
  270. package/dist/esm/package/mysql2/lib/promise/pool_connection.js +19 -0
  271. package/dist/esm/package/mysql2/lib/promise/prepared_statement_info.js +32 -0
  272. package/dist/esm/package/mysql2/lib/results_stream.js +38 -0
  273. package/dist/esm/package/mysql2/lib/server.js +37 -0
  274. package/dist/esm/package/mysql2/package.json +80 -0
  275. package/dist/esm/package/mysql2/promise.d.ts +131 -0
  276. package/dist/esm/package/mysql2/promise.js +202 -0
  277. package/dist/esm/package/mysql2/typings/mysql/LICENSE.txt +15 -0
  278. package/dist/esm/package/mysql2/typings/mysql/index.d.ts +95 -0
  279. package/dist/esm/package/mysql2/typings/mysql/info.txt +1 -0
  280. package/dist/esm/package/mysql2/typings/mysql/lib/Auth.d.ts +30 -0
  281. package/dist/esm/package/mysql2/typings/mysql/lib/Connection.d.ts +428 -0
  282. package/dist/esm/package/mysql2/typings/mysql/lib/Pool.d.ts +69 -0
  283. package/dist/esm/package/mysql2/typings/mysql/lib/PoolCluster.d.ts +90 -0
  284. package/dist/esm/package/mysql2/typings/mysql/lib/PoolConnection.d.ts +10 -0
  285. package/dist/esm/package/mysql2/typings/mysql/lib/Server.d.ts +11 -0
  286. package/dist/esm/package/mysql2/typings/mysql/lib/constants/CharsetToEncoding.d.ts +8 -0
  287. package/dist/esm/package/mysql2/typings/mysql/lib/constants/Charsets.d.ts +326 -0
  288. package/dist/esm/package/mysql2/typings/mysql/lib/constants/Types.d.ts +70 -0
  289. package/dist/esm/package/mysql2/typings/mysql/lib/constants/index.d.ts +5 -0
  290. package/dist/esm/package/mysql2/typings/mysql/lib/parsers/ParserCache.d.ts +4 -0
  291. package/dist/esm/package/mysql2/typings/mysql/lib/parsers/index.d.ts +18 -0
  292. package/dist/esm/package/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +54 -0
  293. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/Field.d.ts +10 -0
  294. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/FieldPacket.d.ts +27 -0
  295. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/OkPacket.d.ts +23 -0
  296. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/ProcedurePacket.d.ts +13 -0
  297. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/ResultSetHeader.d.ts +18 -0
  298. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/RowDataPacket.d.ts +9 -0
  299. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/index.d.ts +28 -0
  300. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/params/ErrorPacketParams.d.ts +6 -0
  301. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/packets/params/OkPacketParams.d.ts +9 -0
  302. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/ExecutableBase.d.ts +40 -0
  303. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Prepare.d.ts +65 -0
  304. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Query.d.ts +170 -0
  305. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/QueryableBase.d.ts +40 -0
  306. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/Sequence.d.ts +5 -0
  307. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/promise/ExecutableBase.d.ts +21 -0
  308. package/dist/esm/package/mysql2/typings/mysql/lib/protocol/sequences/promise/QueryableBase.d.ts +21 -0
  309. package/dist/esm/server.d.ts +1 -1
  310. package/dist/esm/server.d.ts.map +1 -1
  311. package/dist/esm/server.js +1 -1
  312. package/dist/esm/src/browser.d.ts +3 -0
  313. package/dist/esm/src/browser.d.ts.map +1 -0
  314. package/dist/esm/src/browser.js +1 -0
  315. package/dist/esm/src/getAllRouter/index.d.ts +3 -0
  316. package/dist/esm/src/getAllRouter/index.d.ts.map +1 -0
  317. package/dist/esm/src/getAllRouter/index.js +1 -0
  318. package/dist/esm/src/hash/index.d.ts +4 -0
  319. package/dist/esm/src/hash/index.d.ts.map +1 -0
  320. package/dist/esm/src/hash/index.js +1 -0
  321. package/dist/esm/src/id/index.d.ts +3 -0
  322. package/dist/esm/src/id/index.d.ts.map +1 -0
  323. package/dist/esm/src/id/index.js +1 -0
  324. package/dist/esm/src/id/random.d.ts +4 -0
  325. package/dist/esm/src/id/random.d.ts.map +1 -0
  326. package/dist/esm/src/id/random.js +1 -0
  327. package/dist/esm/src/index.d.ts +25 -0
  328. package/dist/esm/src/index.d.ts.map +1 -0
  329. package/dist/esm/src/index.js +1 -0
  330. package/dist/esm/src/jwt/index.d.ts +9 -0
  331. package/dist/esm/src/jwt/index.d.ts.map +1 -0
  332. package/dist/esm/src/jwt/index.js +1 -0
  333. package/dist/esm/src/mac/index.d.ts +6 -0
  334. package/dist/esm/src/mac/index.d.ts.map +1 -0
  335. package/dist/esm/src/mac/index.js +1 -0
  336. package/dist/esm/src/server.d.ts +7 -0
  337. package/dist/esm/src/server.d.ts.map +1 -0
  338. package/dist/esm/src/server.js +1 -0
  339. package/dist/esm/src/start.d.ts +4 -0
  340. package/dist/esm/src/start.d.ts.map +1 -0
  341. package/dist/esm/src/start.js +1 -0
  342. package/dist/esm/src/update.d.ts +3 -0
  343. package/dist/esm/src/update.d.ts.map +1 -0
  344. package/dist/esm/src/update.js +1 -0
  345. package/dist/esm/start.js +1 -1
  346. package/dist/esm/update.js +1 -1
  347. package/package.json +3 -4
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ const Types = require('../constants/types');
4
+ const Packet = require('../packets/packet');
5
+
6
+ const binaryReader = new Array(256);
7
+
8
+ class BinaryRow {
9
+ constructor(columns) {
10
+ this.columns = columns || [];
11
+ }
12
+
13
+ static toPacket(columns, encoding) {
14
+ // throw new Error('Not implemented');
15
+ const sequenceId = 0; // TODO remove, this is calculated now in connecton
16
+ let length = 0;
17
+ columns.forEach((val) => {
18
+ if (val === null || typeof val === 'undefined') {
19
+ ++length;
20
+ return;
21
+ }
22
+ length += Packet.lengthCodedStringLength(val.toString(10), encoding);
23
+ });
24
+
25
+ length = length + 2;
26
+
27
+ const buffer = Buffer.allocUnsafe(length + 4);
28
+ const packet = new Packet(sequenceId, buffer, 0, length + 4);
29
+ packet.offset = 4;
30
+
31
+ packet.writeInt8(0);
32
+
33
+ let bitmap = 0;
34
+ let bitValue = 1;
35
+ columns.forEach((parameter) => {
36
+ if (parameter.type === Types.NULL) {
37
+ bitmap += bitValue;
38
+ }
39
+ bitValue *= 2;
40
+ if (bitValue === 256) {
41
+ packet.writeInt8(bitmap);
42
+ bitmap = 0;
43
+ bitValue = 1;
44
+ }
45
+ });
46
+ if (bitValue !== 1) {
47
+ packet.writeInt8(bitmap);
48
+ }
49
+
50
+ columns.forEach((val) => {
51
+ if (val === null) {
52
+ packet.writeNull();
53
+ return;
54
+ }
55
+ if (typeof val === 'undefined') {
56
+ packet.writeInt8(0);
57
+ return;
58
+ }
59
+ packet.writeLengthCodedString(val.toString(10), encoding);
60
+ });
61
+ return packet;
62
+ }
63
+
64
+ // TODO: complete list of types...
65
+ static fromPacket(fields, packet) {
66
+ const columns = new Array(fields.length);
67
+ packet.readInt8(); // TODO check it's 0
68
+ const nullBitmapLength = Math.floor((fields.length + 7 + 2) / 8);
69
+ // TODO: read and interpret null bitmap
70
+ packet.skip(nullBitmapLength);
71
+ for (let i = 0; i < columns.length; ++i) {
72
+ columns[i] = binaryReader[fields[i].columnType].apply(packet);
73
+ }
74
+ return new BinaryRow(columns);
75
+ }
76
+ }
77
+
78
+ // TODO: replace with constants.MYSQL_TYPE_*
79
+ binaryReader[Types.DECIMAL] = Packet.prototype.readLengthCodedString;
80
+ binaryReader[1] = Packet.prototype.readInt8; // tiny
81
+ binaryReader[2] = Packet.prototype.readInt16; // short
82
+ binaryReader[3] = Packet.prototype.readInt32; // long
83
+ binaryReader[4] = Packet.prototype.readFloat; // float
84
+ binaryReader[5] = Packet.prototype.readDouble; // double
85
+ binaryReader[6] = Packet.prototype.assertInvalid; // null, should be skipped vie null bitmap
86
+ binaryReader[7] = Packet.prototype.readTimestamp; // timestamp, http://dev.mysql.com/doc/internals/en/prepared-statements.html#packet-ProtocolBinary::MYSQL_TYPE_TIMESTAMP
87
+ binaryReader[8] = Packet.prototype.readInt64; // long long
88
+ binaryReader[9] = Packet.prototype.readInt32; // int24
89
+ binaryReader[10] = Packet.prototype.readTimestamp; // date
90
+ binaryReader[11] = Packet.prototype.readTime; // time, http://dev.mysql.com/doc/internals/en/prepared-statements.html#packet-ProtocolBinary::MYSQL_TYPE_TIME
91
+ binaryReader[12] = Packet.prototype.readDateTime; // datetime, http://dev.mysql.com/doc/internals/en/prepared-statements.html#packet-ProtocolBinary::MYSQL_TYPE_DATETIME
92
+ binaryReader[13] = Packet.prototype.readInt16; // year
93
+ binaryReader[Types.VAR_STRING] = Packet.prototype.readLengthCodedString; // var string
94
+
95
+ module.exports = BinaryRow;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ // http://dev.mysql.com/doc/internals/en/com-binlog-dump.html#packet-COM_BINLOG_DUMP
4
+
5
+ const Packet = require('../packets/packet');
6
+ const CommandCodes = require('../constants/commands');
7
+
8
+ // TODO: add flag to constants
9
+ // 0x01 - BINLOG_DUMP_NON_BLOCK
10
+ // send EOF instead of blocking
11
+ class BinlogDump {
12
+ constructor(opts) {
13
+ this.binlogPos = opts.binlogPos || 0;
14
+ this.serverId = opts.serverId || 0;
15
+ this.flags = opts.flags || 0;
16
+ this.filename = opts.filename || '';
17
+ }
18
+
19
+ toPacket() {
20
+ const length = 15 + Buffer.byteLength(this.filename, 'utf8'); // TODO: should be ascii?
21
+ const buffer = Buffer.allocUnsafe(length);
22
+ const packet = new Packet(0, buffer, 0, length);
23
+ packet.offset = 4;
24
+ packet.writeInt8(CommandCodes.BINLOG_DUMP);
25
+ packet.writeInt32(this.binlogPos);
26
+ packet.writeInt16(this.flags);
27
+ packet.writeInt32(this.serverId);
28
+ packet.writeString(this.filename);
29
+ return packet;
30
+ }
31
+ }
32
+
33
+ module.exports = BinlogDump;
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ // http://dev.mysql.com/doc/internals/en/query-event.html
4
+
5
+ const keys = {
6
+ FLAGS2: 0,
7
+ SQL_MODE: 1,
8
+ CATALOG: 2,
9
+ AUTO_INCREMENT: 3,
10
+ CHARSET: 4,
11
+ TIME_ZONE: 5,
12
+ CATALOG_NZ: 6,
13
+ LC_TIME_NAMES: 7,
14
+ CHARSET_DATABASE: 8,
15
+ TABLE_MAP_FOR_UPDATE: 9,
16
+ MASTER_DATA_WRITTEN: 10,
17
+ INVOKERS: 11,
18
+ UPDATED_DB_NAMES: 12,
19
+ MICROSECONDS: 3,
20
+ };
21
+
22
+ module.exports = function parseStatusVars(buffer) {
23
+ const result = {};
24
+ let offset = 0;
25
+ let key, length, prevOffset;
26
+ while (offset < buffer.length) {
27
+ key = buffer[offset++];
28
+ switch (key) {
29
+ case keys.FLAGS2:
30
+ result.flags = buffer.readUInt32LE(offset);
31
+ offset += 4;
32
+ break;
33
+ case keys.SQL_MODE:
34
+ // value is 8 bytes, but all dcumented flags are in first 4 bytes
35
+ result.sqlMode = buffer.readUInt32LE(offset);
36
+ offset += 8;
37
+ break;
38
+ case keys.CATALOG:
39
+ length = buffer[offset++];
40
+ result.catalog = buffer.toString('utf8', offset, offset + length);
41
+ offset += length + 1; // null byte after string
42
+ break;
43
+ case keys.CHARSET:
44
+ result.clientCharset = buffer.readUInt16LE(offset);
45
+ result.connectionCollation = buffer.readUInt16LE(offset + 2);
46
+ result.serverCharset = buffer.readUInt16LE(offset + 4);
47
+ offset += 6;
48
+ break;
49
+ case keys.TIME_ZONE:
50
+ length = buffer[offset++];
51
+ result.timeZone = buffer.toString('utf8', offset, offset + length);
52
+ offset += length; // no null byte
53
+ break;
54
+ case keys.CATALOG_NZ:
55
+ length = buffer[offset++];
56
+ result.catalogNz = buffer.toString('utf8', offset, offset + length);
57
+ offset += length; // no null byte
58
+ break;
59
+ case keys.LC_TIME_NAMES:
60
+ result.lcTimeNames = buffer.readUInt16LE(offset);
61
+ offset += 2;
62
+ break;
63
+ case keys.CHARSET_DATABASE:
64
+ result.schemaCharset = buffer.readUInt16LE(offset);
65
+ offset += 2;
66
+ break;
67
+ case keys.TABLE_MAP_FOR_UPDATE:
68
+ result.mapForUpdate1 = buffer.readUInt32LE(offset);
69
+ result.mapForUpdate2 = buffer.readUInt32LE(offset + 4);
70
+ offset += 8;
71
+ break;
72
+ case keys.MASTER_DATA_WRITTEN:
73
+ result.masterDataWritten = buffer.readUInt32LE(offset);
74
+ offset += 4;
75
+ break;
76
+ case keys.INVOKERS:
77
+ length = buffer[offset++];
78
+ result.invokerUsername = buffer.toString(
79
+ 'utf8',
80
+ offset,
81
+ offset + length
82
+ );
83
+ offset += length;
84
+ length = buffer[offset++];
85
+ result.invokerHostname = buffer.toString(
86
+ 'utf8',
87
+ offset,
88
+ offset + length
89
+ );
90
+ offset += length;
91
+ break;
92
+ case keys.UPDATED_DB_NAMES:
93
+ length = buffer[offset++];
94
+ // length - number of null-terminated strings
95
+ result.updatedDBs = []; // we'll store them as array here
96
+ for (; length; --length) {
97
+ prevOffset = offset;
98
+ // fast forward to null terminating byte
99
+ while (buffer[offset++] && offset < buffer.length) {
100
+ // empty body, everything inside while condition
101
+ }
102
+ result.updatedDBs.push(
103
+ buffer.toString('utf8', prevOffset, offset - 1)
104
+ );
105
+ }
106
+ break;
107
+ case keys.MICROSECONDS:
108
+ result.microseconds =
109
+ // REVIEW: INVALID UNKNOWN VARIABLE!
110
+ buffer.readInt16LE(offset) + (buffer[offset + 2] << 16);
111
+ offset += 3;
112
+ }
113
+ }
114
+ return result;
115
+ };
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ const CommandCode = require('../constants/commands.js');
4
+ const ClientConstants = require('../constants/client.js');
5
+ const Packet = require('../packets/packet.js');
6
+ const auth41 = require('../auth_41.js');
7
+ const CharsetToEncoding = require('../constants/charset_encodings.js');
8
+
9
+ // https://dev.mysql.com/doc/internals/en/com-change-user.html#packet-COM_CHANGE_USER
10
+ class ChangeUser {
11
+ constructor(opts) {
12
+ this.flags = opts.flags;
13
+ this.user = opts.user || '';
14
+ this.database = opts.database || '';
15
+ this.password = opts.password || '';
16
+ this.passwordSha1 = opts.passwordSha1;
17
+ this.authPluginData1 = opts.authPluginData1;
18
+ this.authPluginData2 = opts.authPluginData2;
19
+ this.connectAttributes = opts.connectAttrinutes || {};
20
+ let authToken;
21
+ if (this.passwordSha1) {
22
+ authToken = auth41.calculateTokenFromPasswordSha(
23
+ this.passwordSha1,
24
+ this.authPluginData1,
25
+ this.authPluginData2
26
+ );
27
+ } else {
28
+ authToken = auth41.calculateToken(
29
+ this.password,
30
+ this.authPluginData1,
31
+ this.authPluginData2
32
+ );
33
+ }
34
+ this.authToken = authToken;
35
+ this.charsetNumber = opts.charsetNumber;
36
+ }
37
+
38
+ // TODO
39
+ // ChangeUser.fromPacket = function(packet)
40
+ // };
41
+ serializeToBuffer(buffer) {
42
+ const isSet = (flag) => this.flags & ClientConstants[flag];
43
+ const packet = new Packet(0, buffer, 0, buffer.length);
44
+ packet.offset = 4;
45
+ const encoding = CharsetToEncoding[this.charsetNumber];
46
+ packet.writeInt8(CommandCode.CHANGE_USER);
47
+ packet.writeNullTerminatedString(this.user, encoding);
48
+ if (isSet('SECURE_CONNECTION')) {
49
+ packet.writeInt8(this.authToken.length);
50
+ packet.writeBuffer(this.authToken);
51
+ } else {
52
+ packet.writeBuffer(this.authToken);
53
+ packet.writeInt8(0);
54
+ }
55
+ packet.writeNullTerminatedString(this.database, encoding);
56
+ packet.writeInt16(this.charsetNumber);
57
+ if (isSet('PLUGIN_AUTH')) {
58
+ // TODO: read this from parameters
59
+ packet.writeNullTerminatedString('mysql_native_password', 'latin1');
60
+ }
61
+ if (isSet('CONNECT_ATTRS')) {
62
+ const connectAttributes = this.connectAttributes;
63
+ const attrNames = Object.keys(connectAttributes);
64
+ let keysLength = 0;
65
+ for (let k = 0; k < attrNames.length; ++k) {
66
+ keysLength += Packet.lengthCodedStringLength(attrNames[k], encoding);
67
+ keysLength += Packet.lengthCodedStringLength(
68
+ connectAttributes[attrNames[k]],
69
+ encoding
70
+ );
71
+ }
72
+ packet.writeLengthCodedNumber(keysLength);
73
+ for (let k = 0; k < attrNames.length; ++k) {
74
+ packet.writeLengthCodedString(attrNames[k], encoding);
75
+ packet.writeLengthCodedString(
76
+ connectAttributes[attrNames[k]],
77
+ encoding
78
+ );
79
+ }
80
+ }
81
+ return packet;
82
+ }
83
+
84
+ toPacket() {
85
+ if (typeof this.user !== 'string') {
86
+ throw new Error('"user" connection config property must be a string');
87
+ }
88
+ if (typeof this.database !== 'string') {
89
+ throw new Error('"database" connection config property must be a string');
90
+ }
91
+ // dry run: calculate resulting packet length
92
+ const p = this.serializeToBuffer(Packet.MockBuffer());
93
+ return this.serializeToBuffer(Buffer.allocUnsafe(p.offset));
94
+ }
95
+ }
96
+
97
+ module.exports = ChangeUser;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ const Packet = require('../packets/packet');
4
+ const CommandCodes = require('../constants/commands');
5
+
6
+ class CloseStatement {
7
+ constructor(id) {
8
+ this.id = id;
9
+ }
10
+
11
+ // note: no response sent back
12
+ toPacket() {
13
+ const packet = new Packet(0, Buffer.allocUnsafe(9), 0, 9);
14
+ packet.offset = 4;
15
+ packet.writeInt8(CommandCodes.STMT_CLOSE);
16
+ packet.writeInt32(this.id);
17
+ return packet;
18
+ }
19
+ }
20
+
21
+ module.exports = CloseStatement;
@@ -0,0 +1,291 @@
1
+ 'use strict';
2
+
3
+ const Packet = require('../packets/packet');
4
+ const StringParser = require('../parsers/string');
5
+ const CharsetToEncoding = require('../constants/charset_encodings.js');
6
+
7
+ const fields = ['catalog', 'schema', 'table', 'orgTable', 'name', 'orgName'];
8
+
9
+ // creating JS string is relatively expensive (compared to
10
+ // reading few bytes from buffer) because all string properties
11
+ // except for name are unlikely to be used we postpone
12
+ // string conversion until property access
13
+ //
14
+ // TODO: watch for integration benchmarks (one with real network buffer)
15
+ // there could be bad side effect as keeping reference to a buffer makes it
16
+ // sit in the memory longer (usually until final .query() callback)
17
+ // Latest v8 perform much better in regard to bufferer -> string conversion,
18
+ // at some point of time this optimisation might become unnecessary
19
+ // see https://github.com/sidorares/node-mysql2/pull/137
20
+ //
21
+ class ColumnDefinition {
22
+ constructor(packet, clientEncoding) {
23
+ this._buf = packet.buffer;
24
+ this._clientEncoding = clientEncoding;
25
+ this._catalogLength = packet.readLengthCodedNumber();
26
+ this._catalogStart = packet.offset;
27
+ packet.offset += this._catalogLength;
28
+ this._schemaLength = packet.readLengthCodedNumber();
29
+ this._schemaStart = packet.offset;
30
+ packet.offset += this._schemaLength;
31
+ this._tableLength = packet.readLengthCodedNumber();
32
+ this._tableStart = packet.offset;
33
+ packet.offset += this._tableLength;
34
+ this._orgTableLength = packet.readLengthCodedNumber();
35
+ this._orgTableStart = packet.offset;
36
+ packet.offset += this._orgTableLength;
37
+ // name is always used, don't make it lazy
38
+ const _nameLength = packet.readLengthCodedNumber();
39
+ const _nameStart = packet.offset;
40
+ packet.offset += _nameLength;
41
+ this._orgNameLength = packet.readLengthCodedNumber();
42
+ this._orgNameStart = packet.offset;
43
+ packet.offset += this._orgNameLength;
44
+ packet.skip(1); // length of the following fields (always 0x0c)
45
+ this.characterSet = packet.readInt16();
46
+ this.encoding = CharsetToEncoding[this.characterSet];
47
+ this.name = StringParser.decode(
48
+ this._buf,
49
+ this.encoding === 'binary' ? this._clientEncoding : this.encoding,
50
+ _nameStart,
51
+ _nameStart + _nameLength
52
+ );
53
+ this.columnLength = packet.readInt32();
54
+ this.columnType = packet.readInt8();
55
+ this.type = this.columnType;
56
+ this.flags = packet.readInt16();
57
+ this.decimals = packet.readInt8();
58
+ }
59
+
60
+ inspect() {
61
+ return {
62
+ catalog: this.catalog,
63
+ schema: this.schema,
64
+ name: this.name,
65
+ orgName: this.orgName,
66
+ table: this.table,
67
+ orgTable: this.orgTable,
68
+ characterSet: this.characterSet,
69
+ encoding: this.encoding,
70
+ columnLength: this.columnLength,
71
+ type: this.columnType,
72
+ flags: this.flags,
73
+ decimals: this.decimals,
74
+ };
75
+ }
76
+
77
+ [Symbol.for('nodejs.util.inspect.custom')](depth, inspectOptions, inspect) {
78
+ const Types = require('../constants/types.js');
79
+ const typeNames = [];
80
+ for (const t in Types) {
81
+ typeNames[Types[t]] = t;
82
+ }
83
+ const fiedFlags = require('../constants/field_flags.js');
84
+ const flagNames = [];
85
+ // TODO: respect inspectOptions.showHidden
86
+ //const inspectFlags = inspectOptions.showHidden ? this.flags : this.flags & ~fiedFlags.PRI_KEY;
87
+ const inspectFlags = this.flags;
88
+ for (const f in fiedFlags) {
89
+ if (inspectFlags & fiedFlags[f]) {
90
+ if (f === 'PRI_KEY') {
91
+ flagNames.push('PRIMARY KEY');
92
+ } else if (f === 'NOT_NULL') {
93
+ flagNames.push('NOT NULL');
94
+ } else if (f === 'BINARY') {
95
+ // ignore flag for now
96
+ } else if (f === 'MULTIPLE_KEY') {
97
+ // not sure if that should be part of inspection.
98
+ // in the schema usually this is part of index definition
99
+ // example: UNIQUE KEY `my_uniq_id` (`id_box_elements`,`id_router`)
100
+ // note that only first column has MULTIPLE_KEY flag set in this case
101
+ // so there is no good way of knowing that this is part of index just
102
+ // by looking at indifidual field flags
103
+ } else if (f === 'NO_DEFAULT_VALUE') {
104
+ // almost the same as NOT_NULL?
105
+ } else if (f === 'BLOB') {
106
+ // included in the type
107
+ } else if (f === 'UNSIGNED') {
108
+ // this should be first after type
109
+ } else if (f === 'TIMESTAMP') {
110
+ // timestamp flag is redundant for inspection - already included in type
111
+ } else if (f === 'ON_UPDATE_NOW') {
112
+ flagNames.push('ON UPDATE CURRENT_TIMESTAMP');
113
+ } else {
114
+ flagNames.push(f);
115
+ }
116
+ }
117
+ }
118
+
119
+ if (depth > 1) {
120
+ return inspect({
121
+ ...this.inspect(),
122
+ typeName: typeNames[this.columnType],
123
+ flags: flagNames,
124
+ });
125
+ }
126
+
127
+ const isUnsigned = this.flags & fiedFlags.UNSIGNED;
128
+
129
+ let typeName = typeNames[this.columnType];
130
+ if (typeName === 'BLOB') {
131
+ // TODO: check for non-utf8mb4 encoding
132
+ if (this.columnLength === 4294967295) {
133
+ typeName = 'LONGTEXT';
134
+ } else if (this.columnLength === 67108860) {
135
+ typeName = 'MEDIUMTEXT';
136
+ } else if (this.columnLength === 262140) {
137
+ typeName = 'TEXT';
138
+ } else if (this.columnLength === 1020) {
139
+ // 255*4
140
+ typeName = 'TINYTEXT';
141
+ } else {
142
+ typeName = `BLOB(${this.columnLength})`;
143
+ }
144
+ } else if (typeName === 'VAR_STRING') {
145
+ // TODO: check for non-utf8mb4 encoding
146
+ typeName = `VARCHAR(${Math.ceil(this.columnLength / 4)})`;
147
+ } else if (typeName === 'TINY') {
148
+ if (
149
+ (this.columnLength === 3 && isUnsigned) ||
150
+ (this.columnLength === 4 && !isUnsigned)
151
+ ) {
152
+ typeName = 'TINYINT';
153
+ } else {
154
+ typeName = `TINYINT(${this.columnLength})`;
155
+ }
156
+ } else if (typeName === 'LONGLONG') {
157
+ if (this.columnLength === 20) {
158
+ typeName = 'BIGINT';
159
+ } else {
160
+ typeName = `BIGINT(${this.columnLength})`;
161
+ }
162
+ } else if (typeName === 'SHORT') {
163
+ if (isUnsigned && this.columnLength === 5) {
164
+ typeName = 'SMALLINT';
165
+ } else if (!isUnsigned && this.columnLength === 6) {
166
+ typeName = 'SMALLINT';
167
+ } else {
168
+ typeName = `SMALLINT(${this.columnLength})`;
169
+ }
170
+ } else if (typeName === 'LONG') {
171
+ if (isUnsigned && this.columnLength === 10) {
172
+ typeName = 'INT';
173
+ } else if (!isUnsigned && this.columnLength === 11) {
174
+ typeName = 'INT';
175
+ } else {
176
+ typeName = `INT(${this.columnLength})`;
177
+ }
178
+ } else if (typeName === 'INT24') {
179
+ if (isUnsigned && this.columnLength === 8) {
180
+ typeName = 'MEDIUMINT';
181
+ } else if (!isUnsigned && this.columnLength === 9) {
182
+ typeName = 'MEDIUMINT';
183
+ } else {
184
+ typeName = `MEDIUMINT(${this.columnLength})`;
185
+ }
186
+ } else if (typeName === 'DOUBLE') {
187
+ // DOUBLE without modifiers is reported as DOUBLE(22, 31)
188
+ if (this.columnLength === 22 && this.decimals === 31) {
189
+ typeName = 'DOUBLE';
190
+ } else {
191
+ typeName = `DOUBLE(${this.columnLength},${this.decimals})`;
192
+ }
193
+ } else if (typeName === 'FLOAT') {
194
+ // FLOAT without modifiers is reported as FLOAT(12, 31)
195
+ if (this.columnLength === 12 && this.decimals === 31) {
196
+ typeName = 'FLOAT';
197
+ } else {
198
+ typeName = `FLOAT(${this.columnLength},${this.decimals})`;
199
+ }
200
+ } else if (typeName === 'NEWDECIMAL') {
201
+ if (this.columnLength === 11 && this.decimals === 0) {
202
+ typeName = 'DECIMAL';
203
+ } else if (this.decimals === 0) {
204
+ // not sure why, but DECIMAL(13) is reported as DECIMAL(14, 0)
205
+ // and DECIMAL(13, 9) is reported as NEWDECIMAL(15, 9)
206
+ if (isUnsigned) {
207
+ typeName = `DECIMAL(${this.columnLength})`;
208
+ } else {
209
+ typeName = `DECIMAL(${this.columnLength - 1})`;
210
+ }
211
+ } else {
212
+ typeName = `DECIMAL(${this.columnLength - 2},${this.decimals})`;
213
+ }
214
+ } else {
215
+ typeName = `${typeNames[this.columnType]}(${this.columnLength})`;
216
+ }
217
+
218
+ if (isUnsigned) {
219
+ typeName += ' UNSIGNED';
220
+ }
221
+
222
+ // TODO respect colors option
223
+ return `\`${this.name}\` ${[typeName, ...flagNames].join(' ')}`;
224
+ }
225
+
226
+ static toPacket(column, sequenceId) {
227
+ let length = 17; // = 4 padding + 1 + 12 for the rest
228
+ fields.forEach((field) => {
229
+ length += Packet.lengthCodedStringLength(
230
+ column[field],
231
+ CharsetToEncoding[column.characterSet]
232
+ );
233
+ });
234
+ const buffer = Buffer.allocUnsafe(length);
235
+
236
+ const packet = new Packet(sequenceId, buffer, 0, length);
237
+ function writeField(name) {
238
+ packet.writeLengthCodedString(
239
+ column[name],
240
+ CharsetToEncoding[column.characterSet]
241
+ );
242
+ }
243
+ packet.offset = 4;
244
+ fields.forEach(writeField);
245
+ packet.writeInt8(0x0c);
246
+ packet.writeInt16(column.characterSet);
247
+ packet.writeInt32(column.columnLength);
248
+ packet.writeInt8(column.columnType);
249
+ packet.writeInt16(column.flags);
250
+ packet.writeInt8(column.decimals);
251
+ packet.writeInt16(0); // filler
252
+ return packet;
253
+ }
254
+
255
+ // node-mysql compatibility: alias "db" to "schema"
256
+ get db() {
257
+ return this.schema;
258
+ }
259
+ }
260
+
261
+ const addString = function (name) {
262
+ Object.defineProperty(ColumnDefinition.prototype, name, {
263
+ get: function () {
264
+ const start = this[`_${name}Start`];
265
+ const end = start + this[`_${name}Length`];
266
+ const val = StringParser.decode(
267
+ this._buf,
268
+ this.encoding === 'binary' ? this._clientEncoding : this.encoding,
269
+ start,
270
+ end
271
+ );
272
+
273
+ Object.defineProperty(this, name, {
274
+ value: val,
275
+ writable: false,
276
+ configurable: false,
277
+ enumerable: false,
278
+ });
279
+
280
+ return val;
281
+ },
282
+ });
283
+ };
284
+
285
+ addString('catalog');
286
+ addString('schema');
287
+ addString('table');
288
+ addString('orgTable');
289
+ addString('orgName');
290
+
291
+ module.exports = ColumnDefinition;