@tdengine/websocket 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/lib/example/all_type_query.d.ts +2 -0
  2. package/lib/example/all_type_query.d.ts.map +1 -0
  3. package/lib/example/all_type_query.js +89 -0
  4. package/lib/example/all_type_stmt.d.ts +2 -0
  5. package/lib/example/all_type_stmt.d.ts.map +1 -0
  6. package/lib/example/all_type_stmt.js +130 -0
  7. package/lib/example/basicBatchTmq.d.ts +2 -0
  8. package/lib/example/basicBatchTmq.d.ts.map +1 -0
  9. package/lib/example/basicBatchTmq.js +129 -0
  10. package/lib/example/basicSql.js +9 -7
  11. package/lib/example/basicStmt.js +34 -20
  12. package/lib/example/basicTmq.js +22 -20
  13. package/lib/example/logs/.007e668bb78549e9a304b8466671945ab2a1553e-audit.json +15 -0
  14. package/lib/example/logs/app-2024-10-12.log.gz +0 -0
  15. package/lib/example/logs/app-2024-11-06.log +542 -0
  16. package/lib/example/test.d.ts +2 -0
  17. package/lib/example/test.d.ts.map +1 -0
  18. package/lib/example/test.js +88 -0
  19. package/lib/src/client/wsClient.d.ts +2 -5
  20. package/lib/src/client/wsClient.d.ts.map +1 -1
  21. package/lib/src/client/wsClient.js +4 -54
  22. package/lib/src/client/wsConnector.js +3 -3
  23. package/lib/src/client/wsResponse.d.ts +10 -15
  24. package/lib/src/client/wsResponse.d.ts.map +1 -1
  25. package/lib/src/client/wsResponse.js +31 -19
  26. package/lib/src/common/constant.d.ts +23 -1
  27. package/lib/src/common/constant.d.ts.map +1 -1
  28. package/lib/src/common/constant.js +25 -22
  29. package/lib/src/common/log.js +1 -1
  30. package/lib/src/common/taosResult.d.ts +11 -5
  31. package/lib/src/common/taosResult.d.ts.map +1 -1
  32. package/lib/src/common/taosResult.js +106 -76
  33. package/lib/src/common/utils.d.ts +2 -0
  34. package/lib/src/common/utils.d.ts.map +1 -1
  35. package/lib/src/common/utils.js +34 -1
  36. package/lib/src/sql/wsRows.d.ts.map +1 -1
  37. package/lib/src/sql/wsRows.js +21 -10
  38. package/lib/src/sql/wsSql.d.ts.map +1 -1
  39. package/lib/src/sql/wsSql.js +29 -19
  40. package/lib/src/stmt/wsParams.js +40 -40
  41. package/lib/src/tmq/constant.d.ts +15 -0
  42. package/lib/src/tmq/constant.d.ts.map +1 -1
  43. package/lib/src/tmq/constant.js +17 -1
  44. package/lib/src/tmq/tmqResponse.d.ts +20 -8
  45. package/lib/src/tmq/tmqResponse.d.ts.map +1 -1
  46. package/lib/src/tmq/tmqResponse.js +214 -89
  47. package/lib/src/tmq/wsTmq.d.ts +0 -1
  48. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  49. package/lib/src/tmq/wsTmq.js +18 -32
  50. package/lib/test/bulkPulling/log.test.d.ts +2 -0
  51. package/lib/test/bulkPulling/log.test.d.ts.map +1 -0
  52. package/lib/test/bulkPulling/log.test.js +44 -0
  53. package/lib/test/bulkPulling/schemaless.test.js +7 -6
  54. package/lib/test/bulkPulling/sql.test.js +38 -18
  55. package/lib/test/bulkPulling/stmt.func.test.js +72 -56
  56. package/lib/test/bulkPulling/stmt.type.test.js +1 -5
  57. package/lib/test/bulkPulling/tmq.test.js +22 -15
  58. package/lib/test/bulkPulling/wsConnectPool.test.js +9 -2
  59. package/lib/test/utils.d.ts +0 -1
  60. package/lib/test/utils.d.ts.map +1 -1
  61. package/lib/test/utils.js +17 -17
  62. package/package.json +2 -2
@@ -15,8 +15,9 @@ const topics = ['topic_ws_bean'];
15
15
  let createTopic = `create topic if not exists ${topics[0]} as select * from ${db}.${stable}`;
16
16
  let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
17
17
  // let dropTopic2 = `DROP TOPIC IF EXISTS ${topic2};`
18
+ let dsn = 'ws://root:taosdata@localhost:6041';
19
+ let tmqDsn = 'ws://localhost:6041';
18
20
  beforeAll(async () => {
19
- let dsn = 'ws://root:taosdata@localhost:6041';
20
21
  let conf = new config_1.WSConfig(dsn);
21
22
  const createDB = `create database if not exists ${db} keep 3650`;
22
23
  const dropDB = `drop database if exists ${db}`;
@@ -59,7 +60,7 @@ describe('TDWebSocket.Tmq()', () => {
59
60
  [constant_1.TMQConstants.CONNECT_PASS, "taosdata"],
60
61
  [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
61
62
  [constant_1.TMQConstants.CLIENT_ID, 'test_tmq_client'],
62
- [constant_1.TMQConstants.WS_URL, 'ws://localhost:6041'],
63
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
63
64
  [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
64
65
  [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
65
66
  ]);
@@ -77,7 +78,7 @@ describe('TDWebSocket.Tmq()', () => {
77
78
  [constant_1.TMQConstants.CONNECT_PASS, "test"],
78
79
  [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest1"],
79
80
  [constant_1.TMQConstants.CLIENT_ID, 'test_tmq_client'],
80
- [constant_1.TMQConstants.WS_URL, 'ws://localhost:6041'],
81
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
81
82
  [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
82
83
  [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
83
84
  ]);
@@ -100,7 +101,7 @@ describe('TDWebSocket.Tmq()', () => {
100
101
  await consumer.subscribe(topics);
101
102
  let assignment = await consumer.assignment();
102
103
  console.log(assignment);
103
- let counts = [0, 0];
104
+ let counts = 0;
104
105
  let useTime = [];
105
106
  for (let i = 0; i < 5; i++) {
106
107
  let startTime = new Date().getTime();
@@ -108,13 +109,14 @@ describe('TDWebSocket.Tmq()', () => {
108
109
  let currTime = new Date().getTime();
109
110
  useTime.push(Math.abs(currTime - startTime));
110
111
  for (let [key, value] of res) {
112
+ console.log(key, value.getMeta());
111
113
  let data = value.getData();
112
- if (data) {
113
- counts[0] += data.length;
114
+ if (data == null || data.length == 0) {
115
+ break;
116
+ }
117
+ for (let record of data) {
118
+ console.log("-----===>>", record);
114
119
  }
115
- }
116
- if (res.size == 0) {
117
- break;
118
120
  }
119
121
  // await Sleep(100)
120
122
  }
@@ -125,25 +127,30 @@ describe('TDWebSocket.Tmq()', () => {
125
127
  let currTime = new Date().getTime();
126
128
  useTime.push(Math.abs(currTime - startTime));
127
129
  for (let [key, value] of res) {
130
+ console.log(key, value.getMeta());
128
131
  let data = value.getData();
129
- if (data) {
130
- counts[1] += data.length;
132
+ if (data == null || data.length == 0) {
133
+ break;
131
134
  }
132
- }
133
- if (res.size == 0) {
134
- break;
135
+ counts += data.length;
135
136
  }
136
137
  // await Sleep(100)
137
138
  }
139
+ let topicArray = await consumer.subscription();
140
+ expect(topics.length).toEqual(topicArray.length);
141
+ for (let index = 0; index < topicArray.length; index++) {
142
+ expect(topics[index]).toEqual(topicArray[index]);
143
+ }
138
144
  assignment = await consumer.commit();
139
145
  console.log(assignment);
140
146
  assignment = await consumer.committed(assignment);
147
+ assignment = await consumer.commitOffsets(assignment);
141
148
  console.log(assignment);
142
149
  await consumer.unsubscribe();
143
150
  await consumer.close();
144
151
  console.log("------------->", useTime);
145
152
  console.log("------------->", counts);
146
- expect(counts).toEqual([10, 10]);
153
+ expect(counts).toEqual(10);
147
154
  });
148
155
  test('Topic not exist', async () => {
149
156
  let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
@@ -6,6 +6,7 @@ const reqid_1 = require("../../src/common/reqid");
6
6
  const wsSql_1 = require("../../src/sql/wsSql");
7
7
  const constant_1 = require("../../src/tmq/constant");
8
8
  const wsTmq_1 = require("../../src/tmq/wsTmq");
9
+ let dsn = 'ws://root:taosdata@localhost:6041';
9
10
  let tags = ['California.SanFrancisco', 3];
10
11
  let multi = [
11
12
  [1709183268567, 1709183268568, 1709183268569],
@@ -78,7 +79,14 @@ async function tmqConnect() {
78
79
  await consumer.subscribe(topics);
79
80
  let res = await consumer.poll(500);
80
81
  for (let [key, value] of res) {
81
- console.log(key, value);
82
+ console.log(key, value.getMeta());
83
+ let data = value.getData();
84
+ if (data == null || data.length == 0) {
85
+ break;
86
+ }
87
+ for (let record of data) {
88
+ console.log(record);
89
+ }
82
90
  }
83
91
  await consumer.commit();
84
92
  let assignment = await consumer.assignment();
@@ -97,7 +105,6 @@ async function tmqConnect() {
97
105
  }
98
106
  }
99
107
  beforeAll(async () => {
100
- let dsn = 'ws://root:taosdata@localhost:6041';
101
108
  let conf = new config_1.WSConfig(dsn);
102
109
  let ws = await wsSql_1.WsSql.open(conf);
103
110
  await ws.exec(createTopic, reqid_1.ReqId.getReqID());
@@ -13,6 +13,5 @@ export declare function createSTableJSON(stable: string): string;
13
13
  export declare function createTable(table: string): string;
14
14
  export declare function expectStableData(rows: Array<Array<any>>, tags: Array<any>): Array<Array<any>>;
15
15
  export declare function hexToBytes(hex: string): ArrayBuffer;
16
- export declare function createStmtData(varbinary?: string, geoHex?: string): Array<Array<any>>;
17
16
  export declare function compareUint8Arrays(arr1: Uint8Array, arr2: Uint8Array): boolean;
18
17
  //# 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;AAIxD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAapG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgB,GAAG,MAAM,CAkCzH;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7E;AAGD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,YAAY,CAsFzC,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAAY,CAMxC,CAAA;AACD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,YAAY,CAkEvC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AACD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3D;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAM7F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAQnD;AAED,wBAAgB,cAAc,CAAC,SAAS,GAAC,MAAa,EAClD,MAAM,GAAC,MAA6D,GAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAgB1F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAY9E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAapG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgB,GAAG,MAAM,CAkCzH;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB7E;AAGD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,YAAY,CAsFzC,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAAY,CAMxC,CAAA;AACD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,YAAY,CAkEvC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AACD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3D;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAM7F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAQnD;AAqBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAY9E"}
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.compareUint8Arrays = exports.createStmtData = exports.hexToBytes = exports.expectStableData = exports.createTable = exports.createSTableJSON = exports.createSTable = exports.createBaseTable = exports.createBaseSTableJSON = exports.createBaseSTable = exports.tagMeta = exports.jsonMeta = exports.tableMeta = exports.insertNTable = exports.insertStable = exports.getInsertBind = void 0;
6
+ exports.compareUint8Arrays = exports.hexToBytes = exports.expectStableData = exports.createTable = exports.createSTableJSON = exports.createSTable = exports.createBaseTable = exports.createBaseSTableJSON = exports.createBaseSTable = exports.tagMeta = exports.jsonMeta = exports.tableMeta = exports.insertNTable = exports.insertStable = exports.getInsertBind = void 0;
7
7
  const log_1 = __importDefault(require("../src/common/log"));
8
8
  function getInsertBind(valuesLen, tagsLen, db, stable) {
9
9
  let sql = `insert into ? using ${db}.${stable} tags ( ?`;
@@ -286,22 +286,22 @@ function hexToBytes(hex) {
286
286
  return a.buffer;
287
287
  }
288
288
  exports.hexToBytes = hexToBytes;
289
- function createStmtData(varbinary = "ab", geoHex = "0101000020E6100000000000000000F03F0000000000000040") {
290
- let multi = [
291
- [1709183268567, 1709183268568, 1709183268569],
292
- [10.2, 10.3, 10.4],
293
- [292, 293, 294],
294
- [0.32, 0.33, 0.34],
295
- ];
296
- let res = hexToBytes(geoHex);
297
- let geom = Array.from(new Uint8Array(res));
298
- multi.push([geom, geom, geom]);
299
- res = new TextEncoder().encode(varbinary);
300
- let binary = Array.from(new Uint8Array(res));
301
- multi.push([binary, binary, binary]);
302
- return multi;
303
- }
304
- exports.createStmtData = createStmtData;
289
+ // export function createStmtData(varbinary:string = "ab",
290
+ // geoHex:string = "0101000020E6100000000000000000F03F0000000000000040"):Array<Array<any>> {
291
+ // let multi:any[][] = [
292
+ // [1709183268567, 1709183268568, 1709183268569],
293
+ // [10.2, 10.3, 10.4],
294
+ // [292, 293, 294],
295
+ // [0.32, 0.33, 0.34],
296
+ // ];
297
+ // let res = hexToBytes(geoHex)
298
+ // let geom = Array.from(new Uint8Array(res))
299
+ // multi.push([geom, geom, geom])
300
+ // res = new TextEncoder().encode(varbinary)
301
+ // let binary = Array.from(new Uint8Array(res))
302
+ // multi.push([binary, binary, binary])
303
+ // return multi
304
+ // }
305
305
  function compareUint8Arrays(arr1, arr2) {
306
306
  if (arr1.length !== arr2.length) {
307
307
  log_1.default.debug(`${arr1.length} !== ${arr2.length}`);
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@tdengine/websocket",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "TDengine Connector for nodejs and browser using WebSocket.",
5
5
  "source": "index.ts",
6
6
  "main": "lib/index.js",
7
- "module": "lib/module/index.mjs",
7
+ "module": "lib/index.js",
8
8
  "types": "lib/index.d.ts",
9
9
  "directories": {
10
10
  "example": "example",