@tdengine/websocket 3.1.1 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/example/basicSchemaless.js +1 -3
- package/lib/src/client/wsClient.d.ts +1 -4
- package/lib/src/client/wsClient.d.ts.map +1 -1
- package/lib/src/client/wsClient.js +0 -53
- package/lib/src/client/wsConnector.js +1 -1
- package/lib/src/client/wsResponse.d.ts +0 -13
- package/lib/src/client/wsResponse.d.ts.map +1 -1
- package/lib/src/client/wsResponse.js +1 -16
- package/lib/src/common/log.d.ts.map +1 -1
- package/lib/src/common/log.js +6 -12
- package/lib/src/sql/wsSql.d.ts.map +1 -1
- package/lib/src/tmq/wsTmq.d.ts +0 -1
- package/lib/src/tmq/wsTmq.d.ts.map +1 -1
- package/lib/src/tmq/wsTmq.js +0 -17
- package/lib/test/bulkPulling/schemaless.test.js +1 -1
- package/lib/test/bulkPulling/stmt.func.test.js +1 -1
- package/lib/test/bulkPulling/tmq.test.js +6 -0
- package/lib/test/utils.d.ts +0 -1
- package/lib/test/utils.d.ts.map +1 -1
- package/lib/test/utils.js +17 -17
- package/package.json +5 -4
|
@@ -14,9 +14,6 @@ async function Prepare() {
|
|
|
14
14
|
conf.setUser('root');
|
|
15
15
|
conf.setPwd('taosdata');
|
|
16
16
|
let wsSql = await (0, src_1.sqlConnect)(conf);
|
|
17
|
-
const topics = ['pwer_meters_topic'];
|
|
18
|
-
let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
|
|
19
|
-
await wsSql.exec(dropTopic);
|
|
20
17
|
await wsSql.exec(dropDB);
|
|
21
18
|
await wsSql.exec('create database if not exists power KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;');
|
|
22
19
|
await wsSql.exec('CREATE STABLE if not exists power.meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);');
|
|
@@ -25,6 +22,7 @@ async function Prepare() {
|
|
|
25
22
|
(async () => {
|
|
26
23
|
let wsSchemaless = null;
|
|
27
24
|
try {
|
|
25
|
+
await Prepare();
|
|
28
26
|
let conf = new config_1.WSConfig(dsn);
|
|
29
27
|
conf.setUser('root');
|
|
30
28
|
conf.setPwd('taosdata');
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { WSQueryResponse, WSFetchResponse } from './wsResponse';
|
|
1
|
+
import { WSQueryResponse } from './wsResponse';
|
|
3
2
|
export declare class WsClient {
|
|
4
3
|
private _wsConnector?;
|
|
5
4
|
private _timeout?;
|
|
@@ -11,8 +10,6 @@ export declare class WsClient {
|
|
|
11
10
|
sendBinaryMsg(reqId: bigint, action: string, message: ArrayBuffer, bSqlQuery?: boolean, bResultBinary?: boolean): Promise<any>;
|
|
12
11
|
getState(): number;
|
|
13
12
|
ready(): Promise<void>;
|
|
14
|
-
fetch(res: WSQueryResponse): Promise<WSFetchResponse>;
|
|
15
|
-
fetchBlock(fetchResponse: WSFetchResponse, taosResult: TaosResult): Promise<TaosResult>;
|
|
16
13
|
sendMsg(msg: string): Promise<any>;
|
|
17
14
|
freeResult(res: WSQueryResponse): Promise<unknown>;
|
|
18
15
|
version(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../../src/client/wsClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../../src/client/wsClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,eAAe,EAClB,MAAM,cAAc,CAAC;AAKtB,qBAAa,QAAQ;IACjB,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAK;gBAEd,GAAG,EAAE,GAAG,EAAE,OAAQ,CAAC,EAAC,MAAM,GAAG,SAAS,GAAG,IAAI;IAOnD,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAC,OAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAuB9D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,GAAC,OAAc,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IA0B/I,QAAQ;IAQF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,OAAO,CAAC,GAAG,EAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAajC,UAAU,CAAC,GAAG,EAAE,eAAe;IAqB/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA4B1B,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAS3B,QAAQ,CAAC,GAAG,EAAE,GAAG;CASpB"}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.WsClient = void 0;
|
|
7
7
|
const json_bigint_1 = __importDefault(require("json-bigint"));
|
|
8
8
|
const wsConnectorPool_1 = require("./wsConnectorPool");
|
|
9
|
-
const taosResult_1 = require("../common/taosResult");
|
|
10
9
|
const wsError_1 = require("../common/wsError");
|
|
11
10
|
const wsResponse_1 = require("./wsResponse");
|
|
12
11
|
const reqid_1 = require("../common/reqid");
|
|
@@ -126,58 +125,6 @@ class WsClient {
|
|
|
126
125
|
throw (new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, url: ${this._url}`));
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
|
-
async fetch(res) {
|
|
130
|
-
let fetchMsg = {
|
|
131
|
-
action: 'fetch',
|
|
132
|
-
args: {
|
|
133
|
-
req_id: reqid_1.ReqId.getReqID(),
|
|
134
|
-
id: res.id,
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
return new Promise((resolve, reject) => {
|
|
138
|
-
let jsonStr = json_bigint_1.default.stringify(fetchMsg);
|
|
139
|
-
log_1.default.debug('[wsQueryInterface.fetch.fetchMsg]===>' + jsonStr);
|
|
140
|
-
if (this._wsConnector && this._wsConnector.readyState() > 0) {
|
|
141
|
-
this._wsConnector.sendMsg(jsonStr).then((e) => {
|
|
142
|
-
if (e.msg.code == 0) {
|
|
143
|
-
resolve(new wsResponse_1.WSFetchResponse(e));
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
reject(new wsError_1.WebSocketInterfaceError(e.msg.code, e.msg.message));
|
|
147
|
-
}
|
|
148
|
-
}).catch((e) => { reject(e); });
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
reject(new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect"));
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
async fetchBlock(fetchResponse, taosResult) {
|
|
156
|
-
let fetchBlockMsg = {
|
|
157
|
-
action: 'fetch_block',
|
|
158
|
-
args: {
|
|
159
|
-
req_id: reqid_1.ReqId.getReqID(),
|
|
160
|
-
id: fetchResponse.id,
|
|
161
|
-
},
|
|
162
|
-
};
|
|
163
|
-
return new Promise((resolve, reject) => {
|
|
164
|
-
let jsonStr = json_bigint_1.default.stringify(fetchBlockMsg);
|
|
165
|
-
log_1.default.debug("[wsQueryInterface.fetchBlock.fetchBlockMsg]===>" + jsonStr);
|
|
166
|
-
if (this._wsConnector && this._wsConnector.readyState() > 0) {
|
|
167
|
-
this._wsConnector.sendMsg(jsonStr).then((e) => {
|
|
168
|
-
let resp = e;
|
|
169
|
-
taosResult.addTotalTime(resp.totalTime);
|
|
170
|
-
// if retrieve JSON then reject with message
|
|
171
|
-
// else is binary , so parse raw block to TaosResult
|
|
172
|
-
(0, taosResult_1.parseBlock)(new wsResponse_1.WSFetchBlockResponse(resp.msg), taosResult);
|
|
173
|
-
resolve(taosResult);
|
|
174
|
-
}).catch((e) => reject(e));
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
reject(new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect"));
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
128
|
async sendMsg(msg) {
|
|
182
129
|
return new Promise((resolve, reject) => {
|
|
183
130
|
log_1.default.debug("[wsQueryInterface.sendMsg]===>" + msg);
|
|
@@ -22,7 +22,7 @@ class WebSocketConnector {
|
|
|
22
22
|
if (timeout) {
|
|
23
23
|
this._timeout = timeout;
|
|
24
24
|
}
|
|
25
|
-
this._wsConn = new websocket_1.w3cwebsocket(origin.concat(pathname).concat(search));
|
|
25
|
+
this._wsConn = new websocket_1.w3cwebsocket(origin.concat(pathname).concat(search), undefined, undefined, undefined, undefined, { maxReceivedFrameSize: 0x60000000, maxReceivedMessageSize: 0x60000000 });
|
|
26
26
|
this._wsConn.onerror = function (err) { log_1.default.error(err.message); throw err; };
|
|
27
27
|
this._wsConn.onclose = this._onclose;
|
|
28
28
|
this._wsConn.onmessage = this._onmessage;
|
|
@@ -28,19 +28,6 @@ export declare class WSQueryResponse {
|
|
|
28
28
|
constructor(resp: MessageResp);
|
|
29
29
|
private initMsg;
|
|
30
30
|
}
|
|
31
|
-
export declare class WSFetchResponse {
|
|
32
|
-
code: number;
|
|
33
|
-
message: string;
|
|
34
|
-
action: string;
|
|
35
|
-
req_id: number;
|
|
36
|
-
timing: bigint;
|
|
37
|
-
id: bigint;
|
|
38
|
-
completed: boolean;
|
|
39
|
-
length: Array<number>;
|
|
40
|
-
rows: number;
|
|
41
|
-
totalTime: number;
|
|
42
|
-
constructor(resp: MessageResp);
|
|
43
|
-
}
|
|
44
31
|
export declare class WSFetchBlockResponse {
|
|
45
32
|
data: DataView | undefined;
|
|
46
33
|
action: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsResponse.d.ts","sourceRoot":"","sources":["../../../src/client/wsResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAe,MAAM,sBAAsB,CAAC;AAEhE,qBAAa,iBAAiB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;gBACN,IAAI,EAAC,WAAW;CAO/B;AAED,qBAAa,eAAe;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAC,WAAW;IAI5B,OAAO,CAAC,OAAO;CAoBlB;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"wsResponse.d.ts","sourceRoot":"","sources":["../../../src/client/wsResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAe,MAAM,sBAAsB,CAAC;AAEhE,qBAAa,iBAAiB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;gBACN,IAAI,EAAC,WAAW;CAO/B;AAED,qBAAa,eAAe;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAC,WAAW;IAI5B,OAAO,CAAC,OAAO;CAoBlB;AAED,qBAAa,oBAAoB;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,WAAW,EAAE,WAAW,CAAA;gBACZ,GAAG,EAAE,WAAW;CAgC/B;AAED,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;gBAEH,GAAG,EAAE,eAAe;CAOnC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* define ws Response type|class, for query?
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WSConnResponse = exports.WSFetchBlockResponse = exports.
|
|
6
|
+
exports.WSConnResponse = exports.WSFetchBlockResponse = exports.WSQueryResponse = exports.WSVersionResponse = void 0;
|
|
7
7
|
const taosResult_1 = require("../common/taosResult");
|
|
8
8
|
class WSVersionResponse {
|
|
9
9
|
constructor(resp) {
|
|
@@ -42,21 +42,6 @@ class WSQueryResponse {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
exports.WSQueryResponse = WSQueryResponse;
|
|
45
|
-
class WSFetchResponse {
|
|
46
|
-
constructor(resp) {
|
|
47
|
-
this.totalTime = resp.totalTime;
|
|
48
|
-
this.code = resp.msg.code;
|
|
49
|
-
this.message = resp.msg.message;
|
|
50
|
-
this.action = resp.msg.action;
|
|
51
|
-
this.req_id = resp.msg.req_id;
|
|
52
|
-
this.timing = BigInt(resp.msg.timing);
|
|
53
|
-
this.id = BigInt(resp.msg.id);
|
|
54
|
-
this.completed = resp.msg.completed;
|
|
55
|
-
this.length = resp.msg.length;
|
|
56
|
-
this.rows = resp.msg.rows;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.WSFetchResponse = WSFetchResponse;
|
|
60
45
|
class WSFetchBlockResponse {
|
|
61
46
|
constructor(msg) {
|
|
62
47
|
let dataView = new DataView(msg);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/common/log.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/common/log.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AA0B9B,QAAA,MAAM,MAAM,gBAGV,CAAC;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAC,MAAM,QAEpC;AAED,eAAe,MAAM,CAAC"}
|
package/lib/src/common/log.js
CHANGED
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.setLevel = void 0;
|
|
7
7
|
const winston_1 = __importDefault(require("winston"));
|
|
8
8
|
const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const customFormat = winston_1.default.format.printf(({ level, message, label, timestamp }) => {
|
|
10
|
+
if (message && typeof message === 'object' && typeof message.toJSON === 'function') {
|
|
11
|
+
message = message.toJSON();
|
|
12
|
+
}
|
|
13
|
+
return `${timestamp} [${label}] ${level}: ${message}`;
|
|
13
14
|
});
|
|
14
15
|
const transport = new winston_daily_rotate_file_1.default({
|
|
15
16
|
filename: './logs/app-%DATE%.log', // Here is the file name template
|
|
@@ -19,20 +20,13 @@ const transport = new winston_daily_rotate_file_1.default({
|
|
|
19
20
|
maxFiles: '14d', // Keep log files for 14 days
|
|
20
21
|
handleExceptions: true, // Whether to handle exceptions
|
|
21
22
|
json: false, // Whether to output logs in JSON format
|
|
22
|
-
format: winston_1.default.format.combine(winston_1.default.format.
|
|
23
|
+
format: winston_1.default.format.combine(winston_1.default.format.label({ label: 'node.js websocket' }), winston_1.default.format.timestamp(), customFormat),
|
|
23
24
|
level: 'info', // set log level
|
|
24
25
|
});
|
|
25
26
|
const logger = winston_1.default.createLogger({
|
|
26
27
|
transports: [transport],
|
|
27
28
|
exitOnError: false, // Do not exit the process when an error occurs
|
|
28
29
|
});
|
|
29
|
-
// 设置 BigInt 类型的序列化处理
|
|
30
|
-
transport.format = winston_1.default.format((info) => {
|
|
31
|
-
if (info && info.message && typeof info.message === 'object' && typeof info.message.toJSON === 'function') {
|
|
32
|
-
info.message = info.message.toJSON();
|
|
33
|
-
}
|
|
34
|
-
return info;
|
|
35
|
-
})();
|
|
36
30
|
function setLevel(level) {
|
|
37
31
|
transport.level = level;
|
|
38
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsSql.d.ts","sourceRoot":"","sources":["../../../src/sql/wsSql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAc,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAyB,eAAe,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"wsSql.d.ts","sourceRoot":"","sources":["../../../src/sql/wsSql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAc,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAyB,eAAe,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAKvC,qBAAa,KAAK;IACd,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAW;gBAChB,QAAQ,EAAC,QAAQ;WAMhB,IAAI,CAAC,QAAQ,EAAC,QAAQ,GAAE,OAAO,CAAC,KAAK,CAAC;IAmBnD,KAAK;IAIL;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAIrB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnI,QAAQ,CAAC,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAC,MAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;YA4C9E,uBAAuB;IAa/B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,OAAO,CAAC,MAAM;CAajB"}
|
package/lib/src/tmq/wsTmq.d.ts
CHANGED
|
@@ -22,7 +22,6 @@ export declare class WsConsumer {
|
|
|
22
22
|
seekToBeginning(partitions: Array<TopicPartition>): Promise<void>;
|
|
23
23
|
seekToEnd(partitions: Array<TopicPartition>): Promise<void>;
|
|
24
24
|
close(): Promise<void>;
|
|
25
|
-
private fetch;
|
|
26
25
|
private fetchBlockData;
|
|
27
26
|
private pollData;
|
|
28
27
|
private sendAssignmentReq;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsTmq.d.ts","sourceRoot":"","sources":["../../../src/tmq/wsTmq.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAkF,cAAc,EAA0D,MAAM,eAAe,CAAC;AAKvL,qBAAa,UAAU;IACnB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO;YAMO,IAAI;WAML,WAAW,CAAC,QAAQ,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAE,OAAO,CAAC,UAAU,CAAC;IAUjE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9D,WAAW,CAAC,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAgBvE,YAAY,CAAC,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAYlD,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAK5C,QAAQ;IAYhB,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IA0BzF,aAAa,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAc9E,YAAY,CAAC,SAAS,EAAC,cAAc,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAkBnE,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IA0BzF,IAAI,CAAC,SAAS,EAAC,cAAc,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAkB3D,eAAe,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC;IAQ/D,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC;IASzD,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;YAIb,
|
|
1
|
+
{"version":3,"file":"wsTmq.d.ts","sourceRoot":"","sources":["../../../src/tmq/wsTmq.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAkF,cAAc,EAA0D,MAAM,eAAe,CAAC;AAKvL,qBAAa,UAAU;IACnB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO;YAMO,IAAI;WAML,WAAW,CAAC,QAAQ,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAE,OAAO,CAAC,UAAU,CAAC;IAUjE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9D,WAAW,CAAC,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAgBvE,YAAY,CAAC,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAYlD,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAK5C,QAAQ;IAYhB,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IA0BzF,aAAa,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAc9E,YAAY,CAAC,SAAS,EAAC,cAAc,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAkBnE,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IA0BzF,IAAI,CAAC,SAAS,EAAC,cAAc,EAAE,KAAK,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAkB3D,eAAe,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC;IAQ/D,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,cAAc,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC;IASzD,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;YAIb,cAAc;YAwBd,QAAQ;YA4BR,iBAAiB;IAczB,UAAU,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,GAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAoBnD,gBAAgB;CA6BjC"}
|
package/lib/src/tmq/wsTmq.js
CHANGED
|
@@ -199,19 +199,6 @@ class WsConsumer {
|
|
|
199
199
|
async close() {
|
|
200
200
|
await this._wsClient.close();
|
|
201
201
|
}
|
|
202
|
-
async fetch(pollResp) {
|
|
203
|
-
let fetchMsg = {
|
|
204
|
-
action: 'fetch',
|
|
205
|
-
args: {
|
|
206
|
-
req_id: reqid_1.ReqId.getReqID(),
|
|
207
|
-
message_id: pollResp.message_id,
|
|
208
|
-
},
|
|
209
|
-
};
|
|
210
|
-
let jsonStr = JSON.stringify(fetchMsg);
|
|
211
|
-
log_1.default.debug('[wsQueryInterface.fetch.fetchMsg]===>' + jsonStr);
|
|
212
|
-
let result = await this._wsClient.exec(jsonStr, false);
|
|
213
|
-
return new tmqResponse_1.WsTmqQueryResponse(result);
|
|
214
|
-
}
|
|
215
202
|
async fetchBlockData(pollResp, taosResult) {
|
|
216
203
|
let fetchMsg = {
|
|
217
204
|
action: 'fetch_raw_data',
|
|
@@ -222,16 +209,12 @@ class WsConsumer {
|
|
|
222
209
|
};
|
|
223
210
|
let jsonStr = JSON.stringify(fetchMsg);
|
|
224
211
|
log_1.default.debug('[wsQueryInterface.fetch.fetchMsg]===>' + jsonStr);
|
|
225
|
-
// const startTime = new Date().getTime();
|
|
226
212
|
let result = await this._wsClient.sendMsg(jsonStr);
|
|
227
213
|
let wsResponse = new wsResponse_1.WSFetchBlockResponse(result.msg);
|
|
228
214
|
if (wsResponse && wsResponse.data && wsResponse.blockLen > 0) {
|
|
229
|
-
// const parseStartTime = new Date().getTime();
|
|
230
215
|
let wsTmqResponse = new tmqResponse_1.WSTmqFetchBlockInfo(wsResponse.data, taosResult);
|
|
231
216
|
log_1.default.debug('[WSTmqFetchBlockInfo.fetchBlockData]===>' + wsTmqResponse.taosResult);
|
|
232
217
|
if (wsTmqResponse.rows > 0) {
|
|
233
|
-
// const endTime = new Date().getTime();
|
|
234
|
-
// console.log(endTime - parseStartTime, endTime - startTime);
|
|
235
218
|
return true;
|
|
236
219
|
}
|
|
237
220
|
}
|
|
@@ -85,7 +85,7 @@ describe('TDWebSocket.WsSchemaless()', () => {
|
|
|
85
85
|
await wsSchemaless.schemalessInsert([influxdbData], wsProto_1.SchemalessProto.OpenTSDBTelnetLineProtocol, wsProto_1.Precision.NANO_SECONDS, 0);
|
|
86
86
|
}
|
|
87
87
|
catch (e) {
|
|
88
|
-
expect(e.message).toMatch('
|
|
88
|
+
expect(e.message).toMatch('parse timestamp failed');
|
|
89
89
|
}
|
|
90
90
|
await wsSchemaless.close();
|
|
91
91
|
});
|
|
@@ -136,9 +136,15 @@ describe('TDWebSocket.Tmq()', () => {
|
|
|
136
136
|
}
|
|
137
137
|
// await Sleep(100)
|
|
138
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
|
+
}
|
|
139
144
|
assignment = await consumer.commit();
|
|
140
145
|
console.log(assignment);
|
|
141
146
|
assignment = await consumer.committed(assignment);
|
|
147
|
+
assignment = await consumer.commitOffsets(assignment);
|
|
142
148
|
console.log(assignment);
|
|
143
149
|
await consumer.unsubscribe();
|
|
144
150
|
await consumer.close();
|
package/lib/test/utils.d.ts
CHANGED
|
@@ -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
|
package/lib/test/utils.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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",
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tdengine/websocket",
|
|
3
|
-
"version": "3.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.1.3",
|
|
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",
|
|
7
7
|
"module": "lib/index.js",
|
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
"test": "test"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
-
"test": "jest --coverage",
|
|
14
|
+
"test": "jest --coverage --coverageDirectory=../coverage",
|
|
15
15
|
"example": "tsc && node lib/example/basicSql.js",
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"prepublish": "node ./prepare.js"
|
|
18
18
|
},
|
|
19
|
+
|
|
19
20
|
"repository": {
|
|
20
21
|
"type": "git",
|
|
21
22
|
"url": "git+https://github.com/taosdata/taos-connector-node.git"
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
"typescript": "^5.3.3",
|
|
49
50
|
"uuid": "^9.0.1",
|
|
50
51
|
"websocket": "^1.0.34",
|
|
51
|
-
"winston": "^3.
|
|
52
|
+
"winston": "^3.17.0",
|
|
52
53
|
"winston-daily-rotate-file": "^5.0.0"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|