@tdengine/websocket 3.2.2 → 3.3.0

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 (275) hide show
  1. package/lib/package.json +64 -0
  2. package/lib/src/client/retryConfig.d.ts +10 -0
  3. package/lib/src/client/retryConfig.d.ts.map +1 -0
  4. package/lib/src/client/retryConfig.js +46 -0
  5. package/lib/src/client/wsClient.d.ts +24 -7
  6. package/lib/src/client/wsClient.d.ts.map +1 -1
  7. package/lib/src/client/wsClient.js +164 -137
  8. package/lib/src/client/wsConnector.d.ts +55 -9
  9. package/lib/src/client/wsConnector.d.ts.map +1 -1
  10. package/lib/src/client/wsConnector.js +522 -102
  11. package/lib/src/client/wsConnectorPool.d.ts +5 -1
  12. package/lib/src/client/wsConnectorPool.d.ts.map +1 -1
  13. package/lib/src/client/wsConnectorPool.js +67 -52
  14. package/lib/src/client/wsEventCallback.d.ts +3 -0
  15. package/lib/src/client/wsEventCallback.d.ts.map +1 -1
  16. package/lib/src/client/wsEventCallback.js +67 -8
  17. package/lib/src/client/wsResponse.d.ts +0 -3
  18. package/lib/src/client/wsResponse.d.ts.map +1 -1
  19. package/lib/src/client/wsResponse.js +0 -3
  20. package/lib/src/common/addressConnectionTracker.d.ts +11 -0
  21. package/lib/src/common/addressConnectionTracker.d.ts.map +1 -0
  22. package/lib/src/common/addressConnectionTracker.js +53 -0
  23. package/lib/src/common/config.d.ts +3 -0
  24. package/lib/src/common/config.d.ts.map +1 -1
  25. package/lib/src/common/config.js +6 -0
  26. package/lib/src/common/constant.d.ts +1 -0
  27. package/lib/src/common/constant.d.ts.map +1 -1
  28. package/lib/src/common/constant.js +6 -1
  29. package/lib/src/common/dsn.d.ts +30 -0
  30. package/lib/src/common/dsn.d.ts.map +1 -0
  31. package/lib/src/common/dsn.js +221 -0
  32. package/lib/src/common/taosResult.d.ts.map +1 -1
  33. package/lib/src/common/taosResult.js +0 -5
  34. package/lib/src/common/urlParser.d.ts +32 -0
  35. package/lib/src/common/urlParser.d.ts.map +1 -0
  36. package/lib/src/common/urlParser.js +201 -0
  37. package/lib/src/common/utils.d.ts +6 -1
  38. package/lib/src/common/utils.d.ts.map +1 -1
  39. package/lib/src/common/utils.js +74 -22
  40. package/lib/src/index.d.ts.map +1 -1
  41. package/lib/src/sql/wsSql.d.ts.map +1 -1
  42. package/lib/src/sql/wsSql.js +2 -2
  43. package/lib/src/stmt/FieldBindParams.d.ts.map +1 -1
  44. package/lib/src/stmt/wsColumnInfo.d.ts.map +1 -1
  45. package/lib/src/stmt/wsParams1.d.ts.map +1 -1
  46. package/lib/src/stmt/wsParams1.js +26 -26
  47. package/lib/src/stmt/wsParams2.d.ts.map +1 -1
  48. package/lib/src/stmt/wsParams2.js +0 -3
  49. package/lib/src/stmt/wsParamsBase.d.ts.map +1 -1
  50. package/lib/src/stmt/wsProto.d.ts.map +1 -1
  51. package/lib/src/stmt/wsProto.js +16 -16
  52. package/lib/src/stmt/wsStmt1.d.ts.map +1 -1
  53. package/lib/src/stmt/wsStmt2.d.ts +12 -4
  54. package/lib/src/stmt/wsStmt2.d.ts.map +1 -1
  55. package/lib/src/stmt/wsStmt2.js +182 -64
  56. package/lib/src/stmt/wsTableInfo.d.ts.map +1 -1
  57. package/lib/src/tmq/config.d.ts +4 -2
  58. package/lib/src/tmq/config.d.ts.map +1 -1
  59. package/lib/src/tmq/config.js +30 -13
  60. package/lib/src/tmq/constant.d.ts +4 -0
  61. package/lib/src/tmq/constant.d.ts.map +1 -1
  62. package/lib/src/tmq/constant.js +4 -0
  63. package/lib/src/tmq/tmqResponse.d.ts.map +1 -1
  64. package/lib/src/tmq/tmqResponse.js +1 -4
  65. package/lib/src/tmq/wsTmq.d.ts +4 -1
  66. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  67. package/lib/src/tmq/wsTmq.js +55 -27
  68. package/lib/test/bulkPulling/a.test.d.ts +2 -0
  69. package/lib/test/bulkPulling/a.test.d.ts.map +1 -0
  70. package/lib/test/bulkPulling/a.test.js +166 -0
  71. package/lib/test/bulkPulling/cloud.tmq.test.js +3 -2
  72. package/lib/test/bulkPulling/decimal.test.js +8 -8
  73. package/lib/test/bulkPulling/dsn.test.d.ts +2 -0
  74. package/lib/test/bulkPulling/dsn.test.d.ts.map +1 -0
  75. package/lib/test/bulkPulling/dsn.test.js +397 -0
  76. package/lib/test/bulkPulling/queryTables.test.js +1 -1
  77. package/lib/test/bulkPulling/retryConfig.test.d.ts +2 -0
  78. package/lib/test/bulkPulling/retryConfig.test.d.ts.map +1 -0
  79. package/lib/test/bulkPulling/retryConfig.test.js +34 -0
  80. package/lib/test/bulkPulling/schemaless.test.js +15 -14
  81. package/lib/test/bulkPulling/sql.failover.test.d.ts +2 -0
  82. package/lib/test/bulkPulling/sql.failover.test.d.ts.map +1 -0
  83. package/lib/test/bulkPulling/sql.failover.test.js +338 -0
  84. package/lib/test/bulkPulling/sql.test.js +116 -44
  85. package/lib/test/bulkPulling/stmt1.func.test.js +31 -30
  86. package/lib/test/bulkPulling/stmt1.type.test.js +1 -1
  87. package/lib/test/bulkPulling/stmt2.failover.test.d.ts +2 -0
  88. package/lib/test/bulkPulling/stmt2.failover.test.d.ts.map +1 -0
  89. package/lib/test/bulkPulling/stmt2.failover.test.js +313 -0
  90. package/lib/test/bulkPulling/stmt2.func.test.js +37 -36
  91. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts +2 -0
  92. package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts.map +1 -0
  93. package/lib/test/bulkPulling/stmt2.init.failover.test.js +50 -0
  94. package/lib/test/bulkPulling/stmt2.type.test.js +1 -1
  95. package/lib/test/bulkPulling/tmq.config.test.d.ts +2 -0
  96. package/lib/test/bulkPulling/tmq.config.test.d.ts.map +1 -0
  97. package/lib/test/bulkPulling/tmq.config.test.js +77 -0
  98. package/lib/test/bulkPulling/tmq.failover.test.d.ts +2 -0
  99. package/lib/test/bulkPulling/tmq.failover.test.d.ts.map +1 -0
  100. package/lib/test/bulkPulling/tmq.failover.test.js +404 -0
  101. package/lib/test/bulkPulling/tmq.test.js +135 -14
  102. package/lib/test/bulkPulling/urlParser.test.d.ts +2 -0
  103. package/lib/test/bulkPulling/urlParser.test.d.ts.map +1 -0
  104. package/lib/test/bulkPulling/urlParser.test.js +452 -0
  105. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.d.ts +2 -0
  106. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.d.ts.map +1 -0
  107. package/lib/test/bulkPulling/wsClient.reconnect.integration.test.js +184 -0
  108. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts +2 -0
  109. package/lib/test/bulkPulling/wsClient.recovery.test.d.ts.map +1 -0
  110. package/lib/test/bulkPulling/wsClient.recovery.test.js +104 -0
  111. package/lib/test/bulkPulling/wsConfig.dsn.test.d.ts +2 -0
  112. package/lib/test/bulkPulling/wsConfig.dsn.test.d.ts.map +1 -0
  113. package/lib/test/bulkPulling/wsConfig.dsn.test.js +39 -0
  114. package/lib/test/bulkPulling/wsConnectPool.test.js +7 -7
  115. package/lib/test/bulkPulling/wsConnector.failover.test.d.ts +2 -0
  116. package/lib/test/bulkPulling/wsConnector.failover.test.d.ts.map +1 -0
  117. package/lib/test/bulkPulling/wsConnector.failover.test.js +497 -0
  118. package/lib/test/bulkPulling/wsConnectorPool.key.test.d.ts +2 -0
  119. package/lib/test/bulkPulling/wsConnectorPool.key.test.d.ts.map +1 -0
  120. package/lib/test/bulkPulling/wsConnectorPool.key.test.js +52 -0
  121. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts +2 -0
  122. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts.map +1 -0
  123. package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.js +28 -0
  124. package/lib/test/bulkPulling/wsEventCallback.test.d.ts +2 -0
  125. package/lib/test/bulkPulling/wsEventCallback.test.d.ts.map +1 -0
  126. package/lib/test/bulkPulling/wsEventCallback.test.js +54 -0
  127. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts +2 -0
  128. package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts.map +1 -0
  129. package/lib/test/bulkPulling/wsProxy.failover.integration.test.js +120 -0
  130. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts +2 -0
  131. package/lib/test/bulkPulling/wsProxy.failover.test.d.ts.map +1 -0
  132. package/lib/test/bulkPulling/wsProxy.failover.test.js +465 -0
  133. package/lib/test/client/wsClient.recovery.test.d.ts +2 -0
  134. package/lib/test/client/wsClient.recovery.test.d.ts.map +1 -0
  135. package/lib/test/client/wsClient.recovery.test.js +122 -0
  136. package/lib/test/client/wsConnectPool.test.d.ts +2 -0
  137. package/lib/test/client/wsConnectPool.test.d.ts.map +1 -0
  138. package/lib/test/client/wsConnectPool.test.js +147 -0
  139. package/lib/test/client/wsConnector.failover.test.d.ts +2 -0
  140. package/lib/test/client/wsConnector.failover.test.d.ts.map +1 -0
  141. package/lib/test/client/wsConnector.failover.test.js +681 -0
  142. package/lib/test/client/wsConnector.leastConnections.test.d.ts +2 -0
  143. package/lib/test/client/wsConnector.leastConnections.test.d.ts.map +1 -0
  144. package/lib/test/client/wsConnector.leastConnections.test.js +71 -0
  145. package/lib/test/client/wsConnectorPool.key.test.d.ts +2 -0
  146. package/lib/test/client/wsConnectorPool.key.test.d.ts.map +1 -0
  147. package/lib/test/client/wsConnectorPool.key.test.js +127 -0
  148. package/lib/test/client/wsEventCallback.test.d.ts +2 -0
  149. package/lib/test/client/wsEventCallback.test.d.ts.map +1 -0
  150. package/lib/test/client/wsEventCallback.test.js +98 -0
  151. package/lib/test/common/addressConnectionTracker.test.d.ts +2 -0
  152. package/lib/test/common/addressConnectionTracker.test.d.ts.map +1 -0
  153. package/lib/test/common/addressConnectionTracker.test.js +74 -0
  154. package/lib/test/common/dsn.test.d.ts +2 -0
  155. package/lib/test/common/dsn.test.d.ts.map +1 -0
  156. package/lib/test/common/dsn.test.js +406 -0
  157. package/lib/test/common/log.test.d.ts +2 -0
  158. package/lib/test/common/log.test.d.ts.map +1 -0
  159. package/lib/test/common/log.test.js +54 -0
  160. package/lib/test/common/utils.test.d.ts +2 -0
  161. package/lib/test/common/utils.test.d.ts.map +1 -0
  162. package/lib/test/common/utils.test.js +13 -0
  163. package/lib/test/common/wsConfig.dsn.test.d.ts +2 -0
  164. package/lib/test/common/wsConfig.dsn.test.d.ts.map +1 -0
  165. package/lib/test/common/wsConfig.dsn.test.js +39 -0
  166. package/lib/test/helpers/utils.d.ts +27 -0
  167. package/lib/test/helpers/utils.d.ts.map +1 -0
  168. package/lib/test/helpers/utils.js +341 -0
  169. package/lib/test/helpers/wsFailoverProxy.d.ts +109 -0
  170. package/lib/test/helpers/wsFailoverProxy.d.ts.map +1 -0
  171. package/lib/test/helpers/wsFailoverProxy.js +420 -0
  172. package/lib/test/helpers/wsProxy.d.ts +110 -0
  173. package/lib/test/helpers/wsProxy.d.ts.map +1 -0
  174. package/lib/test/helpers/wsProxy.js +429 -0
  175. package/lib/test/sql/core/decimal.test.d.ts +2 -0
  176. package/lib/test/sql/core/decimal.test.d.ts.map +1 -0
  177. package/lib/test/sql/core/decimal.test.js +153 -0
  178. package/lib/test/sql/core/queryTables.test.d.ts +2 -0
  179. package/lib/test/sql/core/queryTables.test.d.ts.map +1 -0
  180. package/lib/test/sql/core/queryTables.test.js +506 -0
  181. package/lib/test/sql/core/schemaless.test.d.ts +2 -0
  182. package/lib/test/sql/core/schemaless.test.d.ts.map +1 -0
  183. package/lib/test/sql/core/schemaless.test.js +102 -0
  184. package/lib/test/sql/core/sql.test.d.ts +2 -0
  185. package/lib/test/sql/core/sql.test.d.ts.map +1 -0
  186. package/lib/test/sql/core/sql.test.js +324 -0
  187. package/lib/test/sql/decimal.test.d.ts +2 -0
  188. package/lib/test/sql/decimal.test.d.ts.map +1 -0
  189. package/lib/test/sql/decimal.test.js +153 -0
  190. package/lib/test/sql/failover/sql.failover.test.d.ts +2 -0
  191. package/lib/test/sql/failover/sql.failover.test.d.ts.map +1 -0
  192. package/lib/test/sql/failover/sql.failover.test.js +341 -0
  193. package/lib/test/sql/queryTables.test.d.ts +2 -0
  194. package/lib/test/sql/queryTables.test.d.ts.map +1 -0
  195. package/lib/test/sql/queryTables.test.js +506 -0
  196. package/lib/test/sql/schemaless.test.d.ts +2 -0
  197. package/lib/test/sql/schemaless.test.d.ts.map +1 -0
  198. package/lib/test/sql/schemaless.test.js +102 -0
  199. package/lib/test/sql/sql.failover.test.d.ts +2 -0
  200. package/lib/test/sql/sql.failover.test.d.ts.map +1 -0
  201. package/lib/test/sql/sql.failover.test.js +341 -0
  202. package/lib/test/sql/sql.test.d.ts +2 -0
  203. package/lib/test/sql/sql.test.d.ts.map +1 -0
  204. package/lib/test/sql/sql.test.js +324 -0
  205. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts +2 -0
  206. package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts.map +1 -0
  207. package/lib/test/stmt/failover/stmt2.failover.mock.test.js +341 -0
  208. package/lib/test/stmt/failover/stmt2.failover.test.d.ts +2 -0
  209. package/lib/test/stmt/failover/stmt2.failover.test.d.ts.map +1 -0
  210. package/lib/test/stmt/failover/stmt2.failover.test.js +384 -0
  211. package/lib/test/stmt/stmt1.func.test.d.ts +2 -0
  212. package/lib/test/stmt/stmt1.func.test.d.ts.map +1 -0
  213. package/lib/test/stmt/stmt1.func.test.js +418 -0
  214. package/lib/test/stmt/stmt1.type.test.d.ts +2 -0
  215. package/lib/test/stmt/stmt1.type.test.d.ts.map +1 -0
  216. package/lib/test/stmt/stmt1.type.test.js +399 -0
  217. package/lib/test/stmt/stmt2.failover.mock.test.d.ts +2 -0
  218. package/lib/test/stmt/stmt2.failover.mock.test.d.ts.map +1 -0
  219. package/lib/test/stmt/stmt2.failover.mock.test.js +341 -0
  220. package/lib/test/stmt/stmt2.failover.test.d.ts +2 -0
  221. package/lib/test/stmt/stmt2.failover.test.d.ts.map +1 -0
  222. package/lib/test/stmt/stmt2.failover.test.js +384 -0
  223. package/lib/test/stmt/stmt2.func.test.d.ts +2 -0
  224. package/lib/test/stmt/stmt2.func.test.d.ts.map +1 -0
  225. package/lib/test/stmt/stmt2.func.test.js +537 -0
  226. package/lib/test/stmt/stmt2.type.test.d.ts +2 -0
  227. package/lib/test/stmt/stmt2.type.test.d.ts.map +1 -0
  228. package/lib/test/stmt/stmt2.type.test.js +401 -0
  229. package/lib/test/stmt/v1/stmt1.func.test.d.ts +2 -0
  230. package/lib/test/stmt/v1/stmt1.func.test.d.ts.map +1 -0
  231. package/lib/test/stmt/v1/stmt1.func.test.js +418 -0
  232. package/lib/test/stmt/v1/stmt1.type.test.d.ts +2 -0
  233. package/lib/test/stmt/v1/stmt1.type.test.d.ts.map +1 -0
  234. package/lib/test/stmt/v1/stmt1.type.test.js +399 -0
  235. package/lib/test/stmt/v2/stmt2.func.test.d.ts +2 -0
  236. package/lib/test/stmt/v2/stmt2.func.test.d.ts.map +1 -0
  237. package/lib/test/stmt/v2/stmt2.func.test.js +537 -0
  238. package/lib/test/stmt/v2/stmt2.type.test.d.ts +2 -0
  239. package/lib/test/stmt/v2/stmt2.type.test.d.ts.map +1 -0
  240. package/lib/test/stmt/v2/stmt2.type.test.js +401 -0
  241. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts +2 -0
  242. package/lib/test/tmq/cloud/cloud.tmq.test.d.ts.map +1 -0
  243. package/lib/test/tmq/cloud/cloud.tmq.test.js +84 -0
  244. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts +2 -0
  245. package/lib/test/tmq/cloud/tmq.cloud.test.d.ts.map +1 -0
  246. package/lib/test/tmq/cloud/tmq.cloud.test.js +82 -0
  247. package/lib/test/tmq/core/tmq.config.test.d.ts +2 -0
  248. package/lib/test/tmq/core/tmq.config.test.d.ts.map +1 -0
  249. package/lib/test/tmq/core/tmq.config.test.js +83 -0
  250. package/lib/test/tmq/core/tmq.test.d.ts +2 -0
  251. package/lib/test/tmq/core/tmq.test.d.ts.map +1 -0
  252. package/lib/test/tmq/core/tmq.test.js +513 -0
  253. package/lib/test/tmq/failover/tmq.failover.test.d.ts +2 -0
  254. package/lib/test/tmq/failover/tmq.failover.test.d.ts.map +1 -0
  255. package/lib/test/tmq/failover/tmq.failover.test.js +404 -0
  256. package/lib/test/tmq/tmq.cloud.test.d.ts +2 -0
  257. package/lib/test/tmq/tmq.cloud.test.d.ts.map +1 -0
  258. package/lib/test/tmq/tmq.cloud.test.js +82 -0
  259. package/lib/test/tmq/tmq.config.test.d.ts +2 -0
  260. package/lib/test/tmq/tmq.config.test.d.ts.map +1 -0
  261. package/lib/test/tmq/tmq.config.test.js +94 -0
  262. package/lib/test/tmq/tmq.failover.test.d.ts +2 -0
  263. package/lib/test/tmq/tmq.failover.test.d.ts.map +1 -0
  264. package/lib/test/tmq/tmq.failover.test.js +404 -0
  265. package/lib/test/tmq/tmq.test.d.ts +2 -0
  266. package/lib/test/tmq/tmq.test.d.ts.map +1 -0
  267. package/lib/test/tmq/tmq.test.js +513 -0
  268. package/lib/test/unit/connectionManager.test.d.ts +2 -0
  269. package/lib/test/unit/connectionManager.test.d.ts.map +1 -0
  270. package/lib/test/unit/connectionManager.test.js +91 -0
  271. package/lib/test/utils.d.ts +4 -0
  272. package/lib/test/utils.d.ts.map +1 -1
  273. package/lib/test/utils.js +11 -17
  274. package/package.json +1 -1
  275. package/readme.md +2 -2
@@ -0,0 +1,513 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constant_1 = require("@src/tmq/constant");
4
+ const wsTmq_1 = require("@src/tmq/wsTmq");
5
+ const config_1 = require("@src/common/config");
6
+ const wsSql_1 = require("@src/sql/wsSql");
7
+ const utils_1 = require("@test-helpers/utils");
8
+ const wsConnectorPool_1 = require("@src/client/wsConnectorPool");
9
+ const log_1 = require("@src/common/log");
10
+ (0, log_1.setLevel)("debug");
11
+ const stable = "st";
12
+ const db = "ws_tmq_test";
13
+ const topics = ["topic_ws_bean"];
14
+ const tokenTopic = "topic_token_test";
15
+ let createTopic = `create topic if not exists ${topics[0]} as select * from ${db}.${stable}`;
16
+ let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
17
+ let dsn = `ws://${(0, utils_1.testUsername)()}:${(0, utils_1.testPassword)()}@localhost:6041`;
18
+ let tmqDsn = "ws://localhost:6041";
19
+ beforeAll(async () => {
20
+ let conf = new config_1.WSConfig(dsn);
21
+ const createDB = `create database if not exists ${db} keep 3650`;
22
+ const dropDB = `drop database if exists ${db}`;
23
+ const useDB = `use ${db}`;
24
+ const stableTags = [
25
+ true,
26
+ -1,
27
+ -2,
28
+ -3,
29
+ BigInt(-4),
30
+ 1,
31
+ 2,
32
+ 3,
33
+ BigInt(4),
34
+ parseFloat((3.1415).toFixed(5)),
35
+ parseFloat((3.14159265).toFixed(15)),
36
+ "varchar_tag_1",
37
+ "nchar_tag_1",
38
+ ];
39
+ const tableValues = [
40
+ [
41
+ BigInt(1656677710000),
42
+ 0,
43
+ -1,
44
+ -2,
45
+ BigInt(-3),
46
+ 0,
47
+ 1,
48
+ 2,
49
+ BigInt(3),
50
+ parseFloat((3.1415).toFixed(5)),
51
+ parseFloat((3.14159265).toFixed(15)),
52
+ "varchar_col_1",
53
+ "nchar_col_1",
54
+ true,
55
+ "NULL",
56
+ "POINT (4.0 8.0)",
57
+ "0x7661726332",
58
+ ],
59
+ [
60
+ BigInt(1656677720000),
61
+ -1,
62
+ -2,
63
+ -3,
64
+ BigInt(-4),
65
+ 1,
66
+ 2,
67
+ 3,
68
+ BigInt(4),
69
+ parseFloat((3.1415 * 2).toFixed(5)),
70
+ parseFloat((3.14159265 * 2).toFixed(15)),
71
+ "varchar_col_2",
72
+ "nchar_col_2",
73
+ false,
74
+ "NULL",
75
+ "POINT (3.0 5.0)",
76
+ "0x7661726333",
77
+ ],
78
+ [
79
+ BigInt(1656677730000),
80
+ -2,
81
+ -3,
82
+ -4,
83
+ BigInt(-5),
84
+ 2,
85
+ 3,
86
+ 4,
87
+ BigInt(5),
88
+ parseFloat((3.1415 * 3).toFixed(5)),
89
+ parseFloat((3.14159265 * 3).toFixed(15)),
90
+ "varchar_col_3",
91
+ "nchar_col_3",
92
+ true,
93
+ "NULL",
94
+ "LINESTRING (1.000000 1.000000, 2.000000 2.000000, 5.000000 5.000000)",
95
+ "0x7661726334",
96
+ ],
97
+ [
98
+ BigInt(1656677740000),
99
+ -3,
100
+ -4,
101
+ -5,
102
+ BigInt(-6),
103
+ 3,
104
+ 4,
105
+ 5,
106
+ BigInt(6),
107
+ parseFloat((3.1415 * 4).toFixed(5)),
108
+ parseFloat((3.14159265 * 4).toFixed(15)),
109
+ "varchar_col_4",
110
+ "nchar_col_4",
111
+ false,
112
+ "NULL",
113
+ "POLYGON ((3.000000 6.000000, 5.000000 6.000000, 5.000000 8.000000, 3.000000 8.000000, 3.000000 6.000000))",
114
+ "0x7661726335",
115
+ ],
116
+ [
117
+ BigInt(1656677750000),
118
+ -4,
119
+ -5,
120
+ -6,
121
+ BigInt(-7),
122
+ 4,
123
+ 5,
124
+ 6,
125
+ BigInt(7),
126
+ parseFloat((3.1415 * 5).toFixed(5)),
127
+ parseFloat((3.14159265 * 5).toFixed(15)),
128
+ "varchar_col_5",
129
+ "nchar_col_5",
130
+ true,
131
+ "NULL",
132
+ "POINT (7.0 9.0)",
133
+ "0x7661726335",
134
+ ],
135
+ ];
136
+ const tableCNValues = [
137
+ [
138
+ BigInt(1656677760000),
139
+ 0,
140
+ -1,
141
+ -2,
142
+ BigInt(-3),
143
+ 0,
144
+ 1,
145
+ 2,
146
+ BigInt(3),
147
+ parseFloat((3.1415).toFixed(5)),
148
+ parseFloat((3.14159265).toFixed(15)),
149
+ "varchar_列_壹",
150
+ "nchar_列_甲",
151
+ true,
152
+ "NULL",
153
+ "POINT (4.0 8.0)",
154
+ "0x7661726332",
155
+ ],
156
+ [
157
+ BigInt(1656677770000),
158
+ -1,
159
+ -2,
160
+ -3,
161
+ BigInt(-4),
162
+ 1,
163
+ 2,
164
+ 3,
165
+ BigInt(4),
166
+ parseFloat((3.1415 * 2).toFixed(5)),
167
+ parseFloat((3.14159265 * 2).toFixed(15)),
168
+ "varchar_列_贰",
169
+ "nchar_列_乙",
170
+ false,
171
+ "NULL",
172
+ "POINT (3.0 5.0)",
173
+ "0x7661726333",
174
+ ],
175
+ [
176
+ BigInt(1656677780000),
177
+ -2,
178
+ -3,
179
+ -4,
180
+ BigInt(-5),
181
+ 2,
182
+ 3,
183
+ 4,
184
+ BigInt(5),
185
+ parseFloat((3.1415 * 3).toFixed(5)),
186
+ parseFloat((3.14159265 * 3).toFixed(15)),
187
+ "varchar_列_叁",
188
+ "nchar_列_丙",
189
+ true,
190
+ "NULL",
191
+ "LINESTRING (1.000000 1.000000, 2.000000 2.000000, 5.000000 5.000000)",
192
+ "0x7661726334",
193
+ ],
194
+ [
195
+ BigInt(1656677790000),
196
+ -3,
197
+ -4,
198
+ -5,
199
+ BigInt(-6),
200
+ 3,
201
+ 4,
202
+ 5,
203
+ BigInt(6),
204
+ parseFloat((3.1415 * 4).toFixed(5)),
205
+ parseFloat((3.14159265 * 4).toFixed(15)),
206
+ "varchar_列_肆",
207
+ "nchar_列_丁",
208
+ false,
209
+ "NULL",
210
+ "POLYGON ((3.000000 6.000000, 5.000000 6.000000, 5.000000 8.000000, 3.000000 8.000000, 3.000000 6.000000))",
211
+ "0x7661726335",
212
+ ],
213
+ [
214
+ BigInt(1656677800000),
215
+ -4,
216
+ -5,
217
+ -6,
218
+ BigInt(-7),
219
+ 4,
220
+ 5,
221
+ 6,
222
+ BigInt(7),
223
+ parseFloat((3.1415 * 5).toFixed(5)),
224
+ parseFloat((3.14159265 * 5).toFixed(15)),
225
+ "varchar_列_伍",
226
+ "nchar_列_戊",
227
+ true,
228
+ "NULL",
229
+ "POINT (7.0 9.0)",
230
+ "0x7661726335",
231
+ ],
232
+ ];
233
+ let ws = await wsSql_1.WsSql.open(conf);
234
+ await ws.exec(dropTopic);
235
+ await ws.exec(dropDB);
236
+ await ws.exec(createDB);
237
+ await ws.exec(useDB);
238
+ await ws.exec((0, utils_1.createSTable)(stable));
239
+ await ws.exec(createTopic);
240
+ let insert = (0, utils_1.insertStable)(tableValues, stableTags, stable);
241
+ let insertRes = await ws.exec(insert);
242
+ insert = (0, utils_1.insertStable)(tableCNValues, stableTags, stable);
243
+ insertRes = await ws.exec(insert);
244
+ await ws.exec(`create topic if not exists ${tokenTopic} as select * from ${db}.${stable}`);
245
+ await ws.close();
246
+ });
247
+ describe("TDWebSocket.Tmq()", () => {
248
+ jest.setTimeout(20 * 1000);
249
+ let configMap = new Map([
250
+ [constant_1.TMQConstants.GROUP_ID, "gId"],
251
+ [constant_1.TMQConstants.CONNECT_USER, (0, utils_1.testUsername)()],
252
+ [constant_1.TMQConstants.CONNECT_PASS, (0, utils_1.testPassword)()],
253
+ [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
254
+ [constant_1.TMQConstants.CLIENT_ID, "test_tmq_client"],
255
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
256
+ [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, "true"],
257
+ [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, "1000"],
258
+ ["session.timeout.ms", "10000"],
259
+ ["max.poll.interval.ms", "30000"],
260
+ ["msg.with.table.name", "true"],
261
+ ]);
262
+ console.log(configMap);
263
+ test("normal connect", async () => {
264
+ let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
265
+ await consumer.close();
266
+ });
267
+ test("connect error", async () => {
268
+ expect.assertions(1);
269
+ let consumer = null;
270
+ let errConfigMap = new Map([
271
+ [constant_1.TMQConstants.GROUP_ID, "test"],
272
+ [constant_1.TMQConstants.CONNECT_USER, "root"],
273
+ [constant_1.TMQConstants.CONNECT_PASS, "test"],
274
+ [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest1"],
275
+ [constant_1.TMQConstants.CLIENT_ID, "test_tmq_client"],
276
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
277
+ [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, "true"],
278
+ [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, "1000"],
279
+ ["session.timeout.ms", "10000"],
280
+ ["max.poll.interval.ms", "30000"],
281
+ ["msg.with.table.name", "true"],
282
+ ]);
283
+ try {
284
+ consumer = await wsTmq_1.WsConsumer.newConsumer(errConfigMap);
285
+ await consumer.subscribe(topics);
286
+ }
287
+ catch (e) {
288
+ console.log(e);
289
+ expect([104]).toContain(e.code);
290
+ }
291
+ finally {
292
+ if (consumer) {
293
+ await consumer.close();
294
+ }
295
+ }
296
+ });
297
+ test("normal Subscribe", async () => {
298
+ let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
299
+ await consumer.subscribe(topics);
300
+ let assignment = await consumer.assignment();
301
+ console.log(assignment);
302
+ let counts = 0;
303
+ let useTime = [];
304
+ for (let i = 0; i < 5; i++) {
305
+ let startTime = new Date().getTime();
306
+ let res = await consumer.poll(500);
307
+ let currTime = new Date().getTime();
308
+ useTime.push(Math.abs(currTime - startTime));
309
+ for (let [key, value] of res) {
310
+ console.log(key, value.getMeta());
311
+ let data = value.getData();
312
+ if (data == null || data.length == 0) {
313
+ break;
314
+ }
315
+ for (let record of data) {
316
+ console.log("-----===>>", record);
317
+ }
318
+ }
319
+ }
320
+ await consumer.seekToBeginning(assignment);
321
+ for (let i = 0; i < 5; i++) {
322
+ let startTime = new Date().getTime();
323
+ let res = await consumer.poll(500);
324
+ let currTime = new Date().getTime();
325
+ useTime.push(Math.abs(currTime - startTime));
326
+ for (let [key, value] of res) {
327
+ console.log(key, value.getMeta());
328
+ let data = value.getData();
329
+ if (data == null || data.length == 0) {
330
+ break;
331
+ }
332
+ counts += data.length;
333
+ }
334
+ }
335
+ let topicArray = await consumer.subscription();
336
+ expect(topics.length).toEqual(topicArray.length);
337
+ for (let index = 0; index < topicArray.length; index++) {
338
+ expect(topics[index]).toEqual(topicArray[index]);
339
+ }
340
+ assignment = await consumer.commit();
341
+ console.log(assignment);
342
+ assignment = await consumer.committed(assignment);
343
+ assignment = await consumer.commitOffsets(assignment);
344
+ console.log(assignment);
345
+ await consumer.unsubscribe();
346
+ await consumer.close();
347
+ console.log("------------->", useTime);
348
+ console.log("------------->", counts);
349
+ expect(counts).toEqual(10);
350
+ });
351
+ test("Topic not exist", async () => {
352
+ let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
353
+ try {
354
+ await consumer.subscribe(["aaa"]);
355
+ }
356
+ catch (e) {
357
+ expect(e.message).toMatch("Topic not exist");
358
+ }
359
+ await consumer.close();
360
+ });
361
+ test("normal seek", async () => {
362
+ let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
363
+ await consumer.subscribe(topics);
364
+ let assignment = await consumer.assignment();
365
+ console.log("------START--------", assignment);
366
+ await consumer.seekToEnd(assignment);
367
+ await consumer.seekToBeginning(assignment);
368
+ await consumer.seekToEnd(assignment);
369
+ assignment = await consumer.assignment();
370
+ console.log("------END--------", assignment);
371
+ for (let i = 0; i < assignment.length; i++) {
372
+ expect(assignment[i].offset).toEqual(assignment[i].end);
373
+ }
374
+ await consumer.unsubscribe();
375
+ await consumer.close();
376
+ });
377
+ (0, utils_1.testEnterprise)("connect with token", async () => {
378
+ const conf = new config_1.WSConfig(dsn);
379
+ const wsSql = await wsSql_1.WsSql.open(conf);
380
+ await wsSql.exec("drop token if exists test_tmq_token");
381
+ const wsRows = await wsSql.query(`create token test_tmq_token from user ${(0, utils_1.testUsername)()}`);
382
+ await wsRows.next();
383
+ const token = wsRows.getData()?.[0];
384
+ expect(token).toBeTruthy();
385
+ await wsRows.close();
386
+ const tmqConf = new Map([
387
+ [constant_1.TMQConstants.WS_URL, "ws://localhost:6041"],
388
+ [constant_1.TMQConstants.CONNECT_USER, "invalid_user"],
389
+ [constant_1.TMQConstants.CONNECT_PASS, "invalid_pass"],
390
+ [constant_1.TMQConstants.CONNECT_TOKEN, token],
391
+ [constant_1.TMQConstants.GROUP_ID, "g1101"],
392
+ [constant_1.TMQConstants.CLIENT_ID, "c1101"],
393
+ [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
394
+ [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, "false"],
395
+ [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, "1000"],
396
+ ]);
397
+ const consumer = await wsTmq_1.WsConsumer.newConsumer(tmqConf);
398
+ await consumer.subscribe([tokenTopic]);
399
+ let count = 0;
400
+ for (let i = 0; i < 5; i++) {
401
+ const res = await consumer.poll(500);
402
+ for (const [, value] of res) {
403
+ const data = value.getData();
404
+ if (data == null || data.length == 0) {
405
+ break;
406
+ }
407
+ count += data.length;
408
+ }
409
+ }
410
+ expect(count).toEqual(10);
411
+ await (0, utils_1.Sleep)(3000);
412
+ await consumer.unsubscribe();
413
+ await consumer.close();
414
+ await wsSql.exec("drop token if exists test_tmq_token");
415
+ await wsSql.close();
416
+ });
417
+ (0, utils_1.testEnterprise)("connect with token url", async () => {
418
+ const conf = new config_1.WSConfig(dsn);
419
+ const wsSql = await wsSql_1.WsSql.open(conf);
420
+ await wsSql.exec("drop token if exists test_tmq_token_url");
421
+ const wsRows = await wsSql.query(`create token test_tmq_token_url from user ${(0, utils_1.testUsername)()}`);
422
+ await wsRows.next();
423
+ const token = wsRows.getData()?.[0];
424
+ expect(token).toBeTruthy();
425
+ await wsRows.close();
426
+ const tmqConf = new Map([
427
+ [constant_1.TMQConstants.WS_URL, `ws://localhost:6041?bearer_token=${token}`],
428
+ [constant_1.TMQConstants.CONNECT_USER, "invalid_user"],
429
+ [constant_1.TMQConstants.CONNECT_PASS, "invalid_pass"],
430
+ [constant_1.TMQConstants.GROUP_ID, "g1103"],
431
+ [constant_1.TMQConstants.CLIENT_ID, "c1103"],
432
+ [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
433
+ [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, false],
434
+ [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, 1000],
435
+ ]);
436
+ const consumer = await wsTmq_1.WsConsumer.newConsumer(tmqConf);
437
+ await consumer.subscribe([tokenTopic]);
438
+ let count = 0;
439
+ for (let i = 0; i < 5; i++) {
440
+ const res = await consumer.poll(500);
441
+ for (const [, value] of res) {
442
+ const data = value.getData();
443
+ if (data == null || data.length == 0) {
444
+ break;
445
+ }
446
+ count += data.length;
447
+ }
448
+ }
449
+ expect(count).toEqual(10);
450
+ await (0, utils_1.Sleep)(3000);
451
+ await consumer.unsubscribe();
452
+ await consumer.close();
453
+ await wsSql.exec("drop token if exists test_tmq_token_url");
454
+ await wsSql.close();
455
+ });
456
+ (0, utils_1.testEnterprise)("connect with invalid token", async () => {
457
+ const conf = new Map([
458
+ [constant_1.TMQConstants.GROUP_ID, "g1102"],
459
+ [constant_1.TMQConstants.CLIENT_ID, "c1102"],
460
+ [constant_1.TMQConstants.WS_URL, "ws://localhost:6041?bearer_token=invalid_token"],
461
+ ]);
462
+ await expect(wsTmq_1.WsConsumer.newConsumer(conf)).rejects.toMatchObject({
463
+ message: expect.stringMatching(/invalid token/i),
464
+ });
465
+ conf.set(constant_1.TMQConstants.WS_URL, "ws://localhost:6041");
466
+ conf.set(constant_1.TMQConstants.CONNECT_TOKEN, "invalid_token1");
467
+ await expect(wsTmq_1.WsConsumer.newConsumer(conf)).rejects.toMatchObject({
468
+ message: expect.stringMatching(/invalid token/i),
469
+ });
470
+ conf.set(constant_1.TMQConstants.WS_URL, "ws://localhost:6041?bearer_token=");
471
+ conf.delete(constant_1.TMQConstants.CONNECT_TOKEN);
472
+ await expect(wsTmq_1.WsConsumer.newConsumer(conf)).rejects.toMatchObject({
473
+ message: expect.stringMatching(/invalid url/i),
474
+ });
475
+ conf.set(constant_1.TMQConstants.WS_URL, "ws://localhost:6041");
476
+ conf.set(constant_1.TMQConstants.CONNECT_TOKEN, "");
477
+ await expect(wsTmq_1.WsConsumer.newConsumer(conf)).rejects.toMatchObject({
478
+ message: expect.stringMatching(/invalid url/i),
479
+ });
480
+ });
481
+ (0, utils_1.testNon3360)("connector version info", async () => {
482
+ const consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
483
+ await consumer.subscribe(topics);
484
+ const conf = new config_1.WSConfig("ws://localhost:6041");
485
+ conf.setUser((0, utils_1.testUsername)());
486
+ conf.setPwd((0, utils_1.testPassword)());
487
+ const wsSql = await wsSql_1.WsSql.open(conf);
488
+ await (0, utils_1.Sleep)(2000);
489
+ const wsRows = await wsSql.query("show connections");
490
+ let count = 0;
491
+ while (await wsRows.next()) {
492
+ const data = wsRows.getData();
493
+ if (Array.isArray(data) && data.some(v => typeof v === "string" && v.includes("nodejs-ws"))) {
494
+ count++;
495
+ }
496
+ }
497
+ expect(count).toBeGreaterThanOrEqual(2);
498
+ await wsRows.close();
499
+ await wsSql.close();
500
+ await consumer.unsubscribe();
501
+ await consumer.close();
502
+ });
503
+ });
504
+ afterAll(async () => {
505
+ const dropDB = `drop database if exists ${db}`;
506
+ const conf = new config_1.WSConfig(dsn);
507
+ const ws = await wsSql_1.WsSql.open(conf);
508
+ await ws.exec(dropTopic);
509
+ await ws.exec(`drop topic if exists ${tokenTopic}`);
510
+ await ws.exec(dropDB);
511
+ await ws.close();
512
+ wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed();
513
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connectionManager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionManager.test.d.ts","sourceRoot":"","sources":["../../../test/unit/connectionManager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const wsConnectionManager_1 = require("../../src/client/wsConnectionManager");
4
+ function makeParsedUrl(hosts) {
5
+ return {
6
+ hosts,
7
+ scheme: "ws",
8
+ username: "root",
9
+ password: "taosdata",
10
+ database: "testdb",
11
+ params: new Map(),
12
+ };
13
+ }
14
+ function makeAuthInfo() {
15
+ return {
16
+ username: "root",
17
+ password: "taosdata",
18
+ database: "testdb",
19
+ };
20
+ }
21
+ describe("ConnectionManager", () => {
22
+ describe("constructor", () => {
23
+ test("initializes with CLOSED state", () => {
24
+ const parsed = makeParsedUrl([{ host: "host1", port: 6041 }]);
25
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo());
26
+ expect(cm.state).toBe(wsConnectionManager_1.ConnectionState.CLOSED);
27
+ });
28
+ test("random initial host selection is within range", () => {
29
+ const hosts = [
30
+ { host: "host1", port: 6041 },
31
+ { host: "host2", port: 6042 },
32
+ { host: "host3", port: 6043 },
33
+ ];
34
+ const parsed = makeParsedUrl(hosts);
35
+ // Run multiple times to verify randomness stays in bounds
36
+ for (let i = 0; i < 20; i++) {
37
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo());
38
+ const current = cm.currentHost;
39
+ expect(current).toBeDefined();
40
+ expect(hosts).toContainEqual(current);
41
+ }
42
+ });
43
+ test("applies custom retry options", () => {
44
+ const parsed = makeParsedUrl([{ host: "host1", port: 6041 }]);
45
+ const opts = {
46
+ retries: 5,
47
+ retryBackoffMs: 500,
48
+ retryBackoffMaxMs: 10000,
49
+ resendWrite: true,
50
+ };
51
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo(), opts);
52
+ expect(cm.state).toBe(wsConnectionManager_1.ConnectionState.CLOSED);
53
+ });
54
+ });
55
+ describe("state management", () => {
56
+ test("cannot connect when not in CLOSED state", async () => {
57
+ const parsed = makeParsedUrl([{ host: "localhost", port: 1 }]);
58
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo(), { retries: 0 }, 2000);
59
+ // First connect will fail (no server), putting us back to CLOSED
60
+ try {
61
+ await cm.connect();
62
+ }
63
+ catch (e) {
64
+ // expected
65
+ }
66
+ expect(cm.state).toBe(wsConnectionManager_1.ConnectionState.CLOSED);
67
+ }, 15000);
68
+ test("close on already closed is a no-op", async () => {
69
+ const parsed = makeParsedUrl([{ host: "host1", port: 6041 }]);
70
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo());
71
+ await cm.close(); // Should not throw
72
+ expect(cm.state).toBe(wsConnectionManager_1.ConnectionState.CLOSED);
73
+ });
74
+ test("getReadyState returns -1 when not connected", () => {
75
+ const parsed = makeParsedUrl([{ host: "host1", port: 6041 }]);
76
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo());
77
+ expect(cm.getReadyState()).toBe(-1);
78
+ });
79
+ });
80
+ describe("connection failure", () => {
81
+ test("throws ERR_ALL_HOSTS_EXHAUSTED after all retries", async () => {
82
+ const parsed = makeParsedUrl([
83
+ { host: "nonexistent1", port: 1 },
84
+ { host: "nonexistent2", port: 2 },
85
+ ]);
86
+ const cm = new wsConnectionManager_1.ConnectionManager(parsed, makeAuthInfo(), { retries: 0, retryBackoffMs: 1, retryBackoffMaxMs: 1 });
87
+ await expect(cm.connect()).rejects.toThrow("All hosts exhausted");
88
+ expect(cm.state).toBe(wsConnectionManager_1.ConnectionState.CLOSED);
89
+ }, 30000);
90
+ });
91
+ });
@@ -15,4 +15,8 @@ export declare function expectStableData(rows: Array<Array<any>>, tags: Array<an
15
15
  export declare function hexToBytes(hex: string): ArrayBuffer;
16
16
  export declare function compareUint8Arrays(arr1: Uint8Array, arr2: Uint8Array): boolean;
17
17
  export declare function Sleep(ms: number): Promise<void>;
18
+ export declare function testUsername(): string;
19
+ export declare function testPassword(): string;
20
+ export declare const testEnterprise: jest.It;
21
+ export declare const testNon3360: jest.It;
18
22
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,wBAAgB,aAAa,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACf,MAAM,CAcR;AAED,wBAAgB,YAAY,CACxB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAgB,GACxB,MAAM,CAkCR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7E;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,YAAY,CAsFzC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAAY,CAMxC,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,YAAY,CAkEvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AACD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKnD;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAMnB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAQnD;AAoBD,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,GACjB,OAAO,CAYT;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,wBAAgB,aAAa,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACf,MAAM,CAcR;AAED,wBAAgB,YAAY,CACxB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAgB,GACxB,MAAM,CAkCR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7E;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,YAAY,CAsFzC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAAY,CAMxC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,YAAY,CAkEvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AACD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKnD;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAMnB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAQnD;AAED,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,GACjB,OAAO,CAYT;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAO,MAAM,cAAc,SAA2E,CAAC;AACvG,eAAO,MAAM,WAAW,SAAqE,CAAC"}
package/lib/test/utils.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tagMeta = exports.jsonMeta = exports.tableMeta = void 0;
6
+ exports.testNon3360 = exports.testEnterprise = exports.tagMeta = exports.jsonMeta = exports.tableMeta = void 0;
7
7
  exports.getInsertBind = getInsertBind;
8
8
  exports.insertStable = insertStable;
9
9
  exports.insertNTable = insertNTable;
@@ -17,6 +17,8 @@ exports.expectStableData = expectStableData;
17
17
  exports.hexToBytes = hexToBytes;
18
18
  exports.compareUint8Arrays = compareUint8Arrays;
19
19
  exports.Sleep = Sleep;
20
+ exports.testUsername = testUsername;
21
+ exports.testPassword = testPassword;
20
22
  const log_1 = __importDefault(require("../src/common/log"));
21
23
  function getInsertBind(valuesLen, tagsLen, db, stable) {
22
24
  let sql = `insert into ? using ${db}.${stable} tags ( ?`;
@@ -289,22 +291,6 @@ function hexToBytes(hex) {
289
291
  }
290
292
  return a.buffer;
291
293
  }
292
- // export function createStmtData(varbinary:string = "ab",
293
- // geoHex:string = "0101000020E6100000000000000000F03F0000000000000040"):Array<Array<any>> {
294
- // let multi:any[][] = [
295
- // [1709183268567, 1709183268568, 1709183268569],
296
- // [10.2, 10.3, 10.4],
297
- // [292, 293, 294],
298
- // [0.32, 0.33, 0.34],
299
- // ];
300
- // let res = hexToBytes(geoHex)
301
- // let geom = Array.from(new Uint8Array(res))
302
- // multi.push([geom, geom, geom])
303
- // res = new TextEncoder().encode(varbinary)
304
- // let binary = Array.from(new Uint8Array(res))
305
- // multi.push([binary, binary, binary])
306
- // return multi
307
- // }
308
294
  function compareUint8Arrays(arr1, arr2) {
309
295
  if (arr1.length !== arr2.length) {
310
296
  log_1.default.debug(`${arr1.length} !== ${arr2.length}`);
@@ -321,3 +307,11 @@ function compareUint8Arrays(arr1, arr2) {
321
307
  function Sleep(ms) {
322
308
  return new Promise((resolve) => setTimeout(resolve, ms));
323
309
  }
310
+ function testUsername() {
311
+ return process.env.TDENGINE_TEST_USERNAME || "root";
312
+ }
313
+ function testPassword() {
314
+ return process.env.TDENGINE_TEST_PASSWORD || "taosdata";
315
+ }
316
+ exports.testEnterprise = process.env.TEST_ENTERPRISE?.toLowerCase() === "true" ? test : test.skip;
317
+ exports.testNon3360 = process.env.TEST_3360?.toLowerCase() === "true" ? test.skip : test;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tdengine/websocket",
3
- "version": "3.2.2",
3
+ "version": "3.3.0",
4
4
  "description": "The websocket Node.js connector for TDengine. TDengine versions 3.3.2.0 and above are recommended to use this connector.",
5
5
  "source": "index.ts",
6
6
  "main": "lib/index.js",