@tdengine/websocket 3.0.0 → 3.1.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 (144) hide show
  1. package/lib/example/basicSchemaless.d.ts +2 -0
  2. package/lib/example/basicSchemaless.d.ts.map +1 -0
  3. package/lib/example/basicSchemaless.js +47 -0
  4. package/lib/example/basicSql.d.ts +2 -0
  5. package/lib/example/basicSql.d.ts.map +1 -0
  6. package/lib/example/basicSql.js +52 -0
  7. package/lib/example/basicStmt.d.ts +2 -0
  8. package/lib/example/basicStmt.d.ts.map +1 -0
  9. package/lib/example/basicStmt.js +58 -0
  10. package/lib/example/basicTmq.d.ts +2 -0
  11. package/lib/example/basicTmq.d.ts.map +1 -0
  12. package/lib/example/basicTmq.js +71 -0
  13. package/lib/index.d.ts +26 -0
  14. package/lib/index.d.ts.map +1 -0
  15. package/lib/index.js +41 -0
  16. package/lib/src/client/wsClient.d.ts +22 -0
  17. package/lib/src/client/wsClient.d.ts.map +1 -0
  18. package/lib/src/client/wsClient.js +253 -0
  19. package/lib/src/client/wsConnector.d.ts +17 -0
  20. package/lib/src/client/wsConnector.d.ts.map +1 -0
  21. package/lib/src/client/wsConnector.js +140 -0
  22. package/lib/src/client/wsConnectorPool.d.ts +13 -0
  23. package/lib/src/client/wsConnectorPool.d.ts.map +1 -0
  24. package/lib/src/client/wsConnectorPool.js +107 -0
  25. package/lib/src/client/wsEventCallback.d.ts +22 -0
  26. package/lib/src/client/wsEventCallback.d.ts.map +1 -0
  27. package/lib/src/client/wsEventCallback.js +97 -0
  28. package/lib/src/client/wsResponse.d.ts +66 -0
  29. package/lib/src/client/wsResponse.d.ts.map +1 -0
  30. package/lib/src/client/wsResponse.js +76 -0
  31. package/lib/src/common/config.d.ts +22 -0
  32. package/lib/src/common/config.d.ts.map +1 -0
  33. package/lib/src/common/config.js +45 -0
  34. package/lib/src/common/constant.d.ts +13 -0
  35. package/lib/src/common/constant.d.ts.map +1 -0
  36. package/{src/constant.ts → lib/src/common/constant.js} +25 -24
  37. package/lib/src/common/log.d.ts +5 -0
  38. package/lib/src/common/log.d.ts.map +1 -0
  39. package/lib/src/common/log.js +40 -0
  40. package/lib/src/common/reqid.d.ts +8 -0
  41. package/lib/src/common/reqid.d.ts.map +1 -0
  42. package/lib/src/common/reqid.js +59 -0
  43. package/lib/src/common/taosResult.d.ts +51 -0
  44. package/lib/src/common/taosResult.d.ts.map +1 -0
  45. package/lib/src/common/taosResult.js +419 -0
  46. package/lib/src/common/ut8Helper.d.ts +2 -0
  47. package/lib/src/common/ut8Helper.d.ts.map +1 -0
  48. package/{src/ut8Helper.ts → lib/src/common/ut8Helper.js} +22 -21
  49. package/lib/src/common/utils.d.ts +5 -0
  50. package/lib/src/common/utils.d.ts.map +1 -0
  51. package/lib/src/common/utils.js +33 -0
  52. package/lib/src/common/wsError.d.ts +29 -0
  53. package/lib/src/common/wsError.d.ts.map +1 -0
  54. package/lib/src/common/wsError.js +51 -0
  55. package/{src/wsOptions.ts → lib/src/common/wsOptions.d.ts} +4 -2
  56. package/lib/src/common/wsOptions.d.ts.map +1 -0
  57. package/lib/src/common/wsOptions.js +2 -0
  58. package/lib/src/index.d.ts +9 -0
  59. package/lib/src/index.d.ts.map +1 -0
  60. package/lib/src/index.js +58 -0
  61. package/lib/src/sql/wsProto.d.ts +26 -0
  62. package/lib/src/sql/wsProto.d.ts.map +1 -0
  63. package/lib/src/sql/wsProto.js +19 -0
  64. package/lib/src/sql/wsRows.d.ts +16 -0
  65. package/lib/src/sql/wsRows.d.ts.map +1 -0
  66. package/lib/src/sql/wsRows.js +76 -0
  67. package/lib/src/sql/wsSql.d.ts +24 -0
  68. package/lib/src/sql/wsSql.d.ts.map +1 -0
  69. package/lib/src/sql/wsSql.js +164 -0
  70. package/lib/src/stmt/wsParams.d.ts +41 -0
  71. package/lib/src/stmt/wsParams.d.ts.map +1 -0
  72. package/lib/src/stmt/wsParams.js +428 -0
  73. package/lib/src/stmt/wsProto.d.ts +27 -0
  74. package/lib/src/stmt/wsProto.d.ts.map +1 -0
  75. package/lib/src/stmt/wsProto.js +67 -0
  76. package/lib/src/stmt/wsStmt.d.ts +30 -0
  77. package/lib/src/stmt/wsStmt.d.ts.map +1 -0
  78. package/lib/src/stmt/wsStmt.js +207 -0
  79. package/lib/src/tmq/config.d.ts +14 -0
  80. package/lib/src/tmq/config.d.ts.map +1 -0
  81. package/lib/src/tmq/config.js +42 -0
  82. package/lib/src/tmq/constant.d.ts +85 -0
  83. package/lib/src/tmq/constant.d.ts.map +1 -0
  84. package/lib/src/tmq/constant.js +89 -0
  85. package/lib/src/tmq/tmqResponse.d.ts +80 -0
  86. package/lib/src/tmq/tmqResponse.d.ts.map +1 -0
  87. package/lib/src/tmq/tmqResponse.js +204 -0
  88. package/lib/src/tmq/wsTmq.d.ts +32 -0
  89. package/lib/src/tmq/wsTmq.d.ts.map +1 -0
  90. package/lib/src/tmq/wsTmq.js +316 -0
  91. package/lib/test/bulkPulling/queryTables.test.d.ts +2 -0
  92. package/lib/test/bulkPulling/queryTables.test.d.ts.map +1 -0
  93. package/lib/test/bulkPulling/queryTables.test.js +297 -0
  94. package/lib/test/bulkPulling/schemaless.test.d.ts +2 -0
  95. package/lib/test/bulkPulling/schemaless.test.d.ts.map +1 -0
  96. package/lib/test/bulkPulling/schemaless.test.js +94 -0
  97. package/lib/test/bulkPulling/sql.test.d.ts +2 -0
  98. package/lib/test/bulkPulling/sql.test.d.ts.map +1 -0
  99. package/lib/test/bulkPulling/sql.test.js +124 -0
  100. package/lib/test/bulkPulling/stmt.func.test.d.ts +2 -0
  101. package/lib/test/bulkPulling/stmt.func.test.d.ts.map +1 -0
  102. package/lib/test/bulkPulling/stmt.func.test.js +381 -0
  103. package/lib/test/bulkPulling/stmt.type.test.d.ts +2 -0
  104. package/lib/test/bulkPulling/stmt.type.test.d.ts.map +1 -0
  105. package/lib/test/bulkPulling/stmt.type.test.js +273 -0
  106. package/lib/test/bulkPulling/tmq.test.d.ts +2 -0
  107. package/lib/test/bulkPulling/tmq.test.d.ts.map +1 -0
  108. package/lib/test/bulkPulling/tmq.test.js +177 -0
  109. package/lib/test/bulkPulling/wsConnectPool.test.d.ts +2 -0
  110. package/lib/test/bulkPulling/wsConnectPool.test.d.ts.map +1 -0
  111. package/lib/test/bulkPulling/wsConnectPool.test.js +129 -0
  112. package/lib/test/utils.d.ts +18 -0
  113. package/lib/test/utils.d.ts.map +1 -0
  114. package/lib/test/utils.js +318 -0
  115. package/package.json +27 -14
  116. package/readme.md +302 -0
  117. package/README.md +0 -59
  118. package/dist/browser/index.js +0 -778
  119. package/dist/main/index.js +0 -711
  120. package/dist/main/index.js.map +0 -1
  121. package/dist/module/index.mjs +0 -704
  122. package/dist/module/index.mjs.map +0 -1
  123. package/dist/types.d.ts +0 -103
  124. package/dist/types.d.ts.map +0 -1
  125. package/example/basicUsageAsync.ts +0 -48
  126. package/example/basicUsagePrimse.ts +0 -43
  127. package/example/cloudUsage.ts +0 -55
  128. package/example/continousConnectAndVersion.ts +0 -16
  129. package/example/test.mjs +0 -51
  130. package/index.ts +0 -7
  131. package/jest.config.js +0 -8
  132. package/src/taosResult.ts +0 -269
  133. package/src/tdengineWebsocket.ts +0 -39
  134. package/src/wsClient.ts +0 -196
  135. package/src/wsError.ts +0 -5
  136. package/src/wsQuery.ts +0 -30
  137. package/src/wsQueryInterface.ts +0 -212
  138. package/src/wsQueryResponse.ts +0 -112
  139. package/tdengine-websocket-3.0.0.tgz +0 -0
  140. package/test/bulkPulling/connect.test.ts +0 -27
  141. package/test/bulkPulling/queryTables.test.ts +0 -274
  142. package/test/bulkPulling/version.test.ts +0 -19
  143. package/test/utils.ts +0 -235
  144. package/tsconfig.json +0 -101
@@ -1,42 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appendRune = void 0;
1
4
  // Numbers fundamental to the encoding.
2
5
  // the "error" Rune or "Unicode replacement character"
3
- const RuneError = '\uFFFD'
6
+ const RuneError = '\uFFFD';
4
7
  // Maximum valid Unicode code point.
5
- const MaxRune = '\U0010FFFF'
8
+ const MaxRune = '\U0010FFFF';
6
9
  // Code points in the surrogate range are not valid for UTF-8.
7
- const surrogateMin = 0xD800
8
- const surrogateMax = 0xDFFF
10
+ const surrogateMin = 0xD800;
11
+ const surrogateMax = 0xDFFF;
9
12
  const tx = 128;
10
13
  const t2 = 192;
11
14
  const t3 = 224;
12
15
  const t4 = 240;
13
16
  const maskx = 63;
14
17
  const rune1Max = (1 << 7) - 1;
15
-
16
18
  const rune2Max = (1 << 11) - 1;
17
19
  const rune3Max = (1 << 16) - 1;
18
-
19
-
20
20
  // AppendRune appends the UTF-8 encoding of r to the end of p and
21
21
  // returns the extended buffer. If the rune is out of range,
22
22
  // it appends the encoding of RuneError.
23
- export function AppendRune(r:any) {
24
- let p:Array<any> = [];
25
- // console.log("== AppendRun r:");
26
- // console.log(r)
23
+ function appendRune(r) {
24
+ let p = [];
27
25
  if (r <= rune1Max) {
28
- p.push(r & 0xff);
26
+ p.push(r & 0xff);
29
27
  return Buffer.from(p).toString();
30
28
  }
31
29
  if (r <= rune2Max) {
32
- p.push(t2 | ((r >> 6) & 0xff), tx | (r & 0xff) & maskx)
33
- } else if ((r > MaxRune) || (surrogateMax <= r && r <= surrogateMax)) {
34
- p.push(RuneError)
35
- } else if (r <= rune3Max) {
36
- p.push(t3 | ((r >> 12) & 0xff), tx | ((r >> 6) & 0xff) & maskx, tx | (r & 0xff) & maskx)
37
- } else {
38
- p.push(t4 | ((r >> 18) & 0xff), tx | ((r >> 12) & 0xff) & maskx, tx | ((r >> 6) & 0xff) & maskx, tx | (r & 0xff) & maskx)
30
+ p.push(t2 | ((r >> 6) & 0xff), tx | (r & 0xff) & maskx);
31
+ }
32
+ else if ((r > MaxRune) || (surrogateMax <= r && r <= surrogateMax)) {
33
+ p.push(RuneError);
34
+ }
35
+ else if (r <= rune3Max) {
36
+ p.push(t3 | ((r >> 12) & 0xff), tx | ((r >> 6) & 0xff) & maskx, tx | (r & 0xff) & maskx);
37
+ }
38
+ else {
39
+ p.push(t4 | ((r >> 18) & 0xff), tx | ((r >> 12) & 0xff) & maskx, tx | ((r >> 6) & 0xff) & maskx, tx | (r & 0xff) & maskx);
39
40
  }
40
-
41
41
  return Buffer.from(p).toString();
42
- }
42
+ }
43
+ exports.appendRune = appendRune;
@@ -0,0 +1,5 @@
1
+ import { WSConfig } from "./config";
2
+ export declare function getUrl(wsConfig: WSConfig): URL;
3
+ export declare function sleep(ms: number): Promise<void>;
4
+ export declare function isEmpty(value: any): boolean;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,wBAAgB,MAAM,CAAC,QAAQ,EAAC,QAAQ,GAAE,GAAG,CAe5C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAGD,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAM3C"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEmpty = exports.sleep = exports.getUrl = void 0;
4
+ function getUrl(wsConfig) {
5
+ let url = new URL(wsConfig.getUrl());
6
+ if (wsConfig.getUser()) {
7
+ url.username = wsConfig.getUser() || '';
8
+ }
9
+ if (wsConfig.getPwd()) {
10
+ url.password = wsConfig.getPwd() || '';
11
+ }
12
+ let token = wsConfig.getToken();
13
+ if (token) {
14
+ url.searchParams.set("token", token);
15
+ }
16
+ url.pathname = '/ws';
17
+ return url;
18
+ }
19
+ exports.getUrl = getUrl;
20
+ function sleep(ms) {
21
+ return new Promise(resolve => setTimeout(resolve, ms));
22
+ }
23
+ exports.sleep = sleep;
24
+ function isEmpty(value) {
25
+ if (value === null || value === undefined)
26
+ return true;
27
+ // if (typeof value === 'string' && value.trim() === '') return true;
28
+ if (Array.isArray(value) && value.length === 0)
29
+ return true;
30
+ // if (typeof value === 'object' && Object.keys(value).length === 0) return true;
31
+ return false;
32
+ }
33
+ exports.isEmpty = isEmpty;
@@ -0,0 +1,29 @@
1
+ export declare class TDWebSocketClientError extends Error {
2
+ code: number;
3
+ constructor(code: number, message?: string);
4
+ }
5
+ export declare class WebSocketQueryError extends TDWebSocketClientError {
6
+ }
7
+ export declare class WebSocketInterfaceError extends TDWebSocketClientError {
8
+ }
9
+ export declare class WebSocketQueryInterFaceError extends WebSocketInterfaceError {
10
+ }
11
+ export declare class TaosResultError extends TDWebSocketClientError {
12
+ }
13
+ export declare class TaosError extends TDWebSocketClientError {
14
+ }
15
+ export declare enum ErrorCode {
16
+ ERR_INVALID_PARAMS = 100,
17
+ ERR_INVALID_URL = 101,
18
+ ERR_WS_NO_CALLBACK = 102,
19
+ ERR_INVALID_MESSAGE_TYPE = 103,
20
+ ERR_WEBSOCKET_CONNECTION_FAIL = 104,
21
+ ERR_WEBSOCKET_QUERY_TIMEOUT = 105,
22
+ ERR_INVALID_AUTHENTICATION = 106,
23
+ ERR_UNSUPPORTED_TDENGINE_TYPE = 107,
24
+ ERR_CONNECTION_CLOSED = 108,
25
+ ERR_INVALID_FETCH_MESSAGE_DATA = 109,
26
+ ERR_WEBSOCKET_CONNECTION_ARRIVED_LIMIT = 110,
27
+ ERR_PARTITIONS_TOPIC_VGROUP_LENGTH_NOT_EQUAL = 111
28
+ }
29
+ //# sourceMappingURL=wsError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsError.d.ts","sourceRoot":"","sources":["../../../src/common/wsError.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAuB,SAAQ,KAAK;IAC7C,IAAI,EAAC,MAAM,CAAK;gBACJ,IAAI,EAAC,MAAM,EAAE,OAAO,GAAE,MAAW;CAahD;AACD,qBAAa,mBAAoB,SAAQ,sBAAsB;CAAI;AACnE,qBAAa,uBAAwB,SAAQ,sBAAsB;CAAG;AACtE,qBAAa,4BAA6B,SAAQ,uBAAuB;CAAE;AAC3E,qBAAa,eAAgB,SAAQ,sBAAsB;CAAE;AAC7D,qBAAa,SAAU,SAAQ,sBAAsB;CAAE;AAEvD,oBAAY,SAAS;IACjB,kBAAkB,MAAM;IACxB,eAAe,MAAM;IACrB,kBAAkB,MAAM;IACxB,wBAAwB,MAAM;IAC9B,6BAA6B,MAAM;IACnC,2BAA2B,MAAM;IACjC,0BAA0B,MAAM;IAChC,6BAA6B,MAAM;IACnC,qBAAqB,MAAM;IAC3B,8BAA8B,MAAM;IACpC,sCAAsC,MAAM;IAC5C,4CAA4C,MAAM;CAErD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorCode = exports.TaosError = exports.TaosResultError = exports.WebSocketQueryInterFaceError = exports.WebSocketInterfaceError = exports.WebSocketQueryError = exports.TDWebSocketClientError = void 0;
4
+ class TDWebSocketClientError extends Error {
5
+ constructor(code, message = '') {
6
+ super(message);
7
+ this.code = 0;
8
+ this.name = new.target.name;
9
+ this.code = code;
10
+ if (typeof Error.captureStackTrace === 'function') {
11
+ Error.captureStackTrace(this, new.target);
12
+ }
13
+ if (typeof Object.setPrototypeOf === 'function') {
14
+ Object.setPrototypeOf(this, new.target.prototype);
15
+ }
16
+ else {
17
+ this.__proto__ = new.target.prototype;
18
+ }
19
+ }
20
+ }
21
+ exports.TDWebSocketClientError = TDWebSocketClientError;
22
+ class WebSocketQueryError extends TDWebSocketClientError {
23
+ }
24
+ exports.WebSocketQueryError = WebSocketQueryError;
25
+ class WebSocketInterfaceError extends TDWebSocketClientError {
26
+ }
27
+ exports.WebSocketInterfaceError = WebSocketInterfaceError;
28
+ class WebSocketQueryInterFaceError extends WebSocketInterfaceError {
29
+ }
30
+ exports.WebSocketQueryInterFaceError = WebSocketQueryInterFaceError;
31
+ class TaosResultError extends TDWebSocketClientError {
32
+ }
33
+ exports.TaosResultError = TaosResultError;
34
+ class TaosError extends TDWebSocketClientError {
35
+ }
36
+ exports.TaosError = TaosError;
37
+ var ErrorCode;
38
+ (function (ErrorCode) {
39
+ ErrorCode[ErrorCode["ERR_INVALID_PARAMS"] = 100] = "ERR_INVALID_PARAMS";
40
+ ErrorCode[ErrorCode["ERR_INVALID_URL"] = 101] = "ERR_INVALID_URL";
41
+ ErrorCode[ErrorCode["ERR_WS_NO_CALLBACK"] = 102] = "ERR_WS_NO_CALLBACK";
42
+ ErrorCode[ErrorCode["ERR_INVALID_MESSAGE_TYPE"] = 103] = "ERR_INVALID_MESSAGE_TYPE";
43
+ ErrorCode[ErrorCode["ERR_WEBSOCKET_CONNECTION_FAIL"] = 104] = "ERR_WEBSOCKET_CONNECTION_FAIL";
44
+ ErrorCode[ErrorCode["ERR_WEBSOCKET_QUERY_TIMEOUT"] = 105] = "ERR_WEBSOCKET_QUERY_TIMEOUT";
45
+ ErrorCode[ErrorCode["ERR_INVALID_AUTHENTICATION"] = 106] = "ERR_INVALID_AUTHENTICATION";
46
+ ErrorCode[ErrorCode["ERR_UNSUPPORTED_TDENGINE_TYPE"] = 107] = "ERR_UNSUPPORTED_TDENGINE_TYPE";
47
+ ErrorCode[ErrorCode["ERR_CONNECTION_CLOSED"] = 108] = "ERR_CONNECTION_CLOSED";
48
+ ErrorCode[ErrorCode["ERR_INVALID_FETCH_MESSAGE_DATA"] = 109] = "ERR_INVALID_FETCH_MESSAGE_DATA";
49
+ ErrorCode[ErrorCode["ERR_WEBSOCKET_CONNECTION_ARRIVED_LIMIT"] = 110] = "ERR_WEBSOCKET_CONNECTION_ARRIVED_LIMIT";
50
+ ErrorCode[ErrorCode["ERR_PARTITIONS_TOPIC_VGROUP_LENGTH_NOT_EQUAL"] = 111] = "ERR_PARTITIONS_TOPIC_VGROUP_LENGTH_NOT_EQUAL";
51
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
@@ -2,13 +2,15 @@ export interface User {
2
2
  user?: string;
3
3
  passwd?: string;
4
4
  }
5
-
6
5
  export interface Uri {
7
6
  scheme: string;
8
7
  url?: string;
9
8
  host?: string | undefined | null;
10
9
  path: '/rest/sql/' | string;
11
10
  port?: number | undefined | null;
12
- query?: { [key: string]: string };
11
+ query?: {
12
+ [key: string]: string;
13
+ };
13
14
  fragment?: string | undefined | null;
14
15
  }
16
+ //# sourceMappingURL=wsOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsOptions.d.ts","sourceRoot":"","sources":["../../../src/common/wsOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { WsSql } from './sql/wsSql';
2
+ import { WSConfig } from './common/config';
3
+ import { WsConsumer } from './tmq/wsTmq';
4
+ declare let sqlConnect: (conf: WSConfig) => Promise<WsSql>;
5
+ declare let tmqConnect: (configMap: Map<string, string>) => Promise<WsConsumer>;
6
+ declare let setLogLevel: (level: string) => void;
7
+ declare let destroy: () => void;
8
+ export { sqlConnect, tmqConnect, setLogLevel, destroy };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,QAAA,IAAI,UAAU,SAAgB,QAAQ,mBAQrC,CAAC;AAEF,QAAA,IAAI,UAAU,cAAqB,IAAI,MAAM,EAAE,MAAM,CAAC,wBAOrD,CAAC;AAEF,QAAA,IAAI,WAAW,UAAW,MAAM,SAE/B,CAAC;AAEF,QAAA,IAAI,OAAO,YAEV,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.destroy = exports.setLogLevel = exports.tmqConnect = exports.sqlConnect = void 0;
27
+ const wsSql_1 = require("./sql/wsSql");
28
+ const wsTmq_1 = require("./tmq/wsTmq");
29
+ const log_1 = __importStar(require("./common/log"));
30
+ const wsConnectorPool_1 = require("./client/wsConnectorPool");
31
+ let sqlConnect = async (conf) => {
32
+ try {
33
+ return await wsSql_1.WsSql.open(conf);
34
+ }
35
+ catch (err) {
36
+ log_1.default.error(err);
37
+ throw err;
38
+ }
39
+ };
40
+ exports.sqlConnect = sqlConnect;
41
+ let tmqConnect = async (configMap) => {
42
+ try {
43
+ return await wsTmq_1.WsConsumer.newConsumer(configMap);
44
+ }
45
+ catch (err) {
46
+ log_1.default.error(err);
47
+ throw err;
48
+ }
49
+ };
50
+ exports.tmqConnect = tmqConnect;
51
+ let setLogLevel = (level) => {
52
+ (0, log_1.setLevel)(level);
53
+ };
54
+ exports.setLogLevel = setLogLevel;
55
+ let destroy = () => {
56
+ wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed();
57
+ };
58
+ exports.destroy = destroy;
@@ -0,0 +1,26 @@
1
+ export interface SchemalessMessageInfo {
2
+ action: string;
3
+ args: SchemalessParamsInfo;
4
+ }
5
+ export interface SchemalessParamsInfo {
6
+ req_id?: number | undefined | null;
7
+ protocol: number;
8
+ ttl?: number;
9
+ precision: string;
10
+ data: string;
11
+ }
12
+ export declare enum Precision {
13
+ NOT_CONFIGURED = "",
14
+ HOURS = "h",
15
+ MINUTES = "m",
16
+ SECONDS = "s",
17
+ MILLI_SECONDS = "ms",
18
+ MICRO_SECONDS = "u",
19
+ NANO_SECONDS = "ns"
20
+ }
21
+ export declare enum SchemalessProto {
22
+ InfluxDBLineProtocol = 1,
23
+ OpenTSDBTelnetLineProtocol = 2,
24
+ OpenTSDBJsonFormatProtocol = 3
25
+ }
26
+ //# sourceMappingURL=wsProto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsProto.d.ts","sourceRoot":"","sources":["../../../src/sql/wsProto.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,SAAS;IACjB,cAAc,KAAK;IACnB,KAAK,MAAM;IACX,OAAO,MAAM;IACb,OAAO,MAAM;IACb,aAAa,OAAO;IACpB,aAAa,MAAM;IACnB,YAAY,OAAO;CACtB;AAED,oBAAY,eAAe;IACvB,oBAAoB,IAAU;IAC9B,0BAA0B,IAAI;IAC9B,0BAA0B,IAAI;CACjC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemalessProto = exports.Precision = void 0;
4
+ var Precision;
5
+ (function (Precision) {
6
+ Precision["NOT_CONFIGURED"] = "";
7
+ Precision["HOURS"] = "h";
8
+ Precision["MINUTES"] = "m";
9
+ Precision["SECONDS"] = "s";
10
+ Precision["MILLI_SECONDS"] = "ms";
11
+ Precision["MICRO_SECONDS"] = "u";
12
+ Precision["NANO_SECONDS"] = "ns";
13
+ })(Precision || (exports.Precision = Precision = {}));
14
+ var SchemalessProto;
15
+ (function (SchemalessProto) {
16
+ SchemalessProto[SchemalessProto["InfluxDBLineProtocol"] = 1] = "InfluxDBLineProtocol";
17
+ SchemalessProto[SchemalessProto["OpenTSDBTelnetLineProtocol"] = 2] = "OpenTSDBTelnetLineProtocol";
18
+ SchemalessProto[SchemalessProto["OpenTSDBJsonFormatProtocol"] = 3] = "OpenTSDBJsonFormatProtocol";
19
+ })(SchemalessProto || (exports.SchemalessProto = SchemalessProto = {}));
@@ -0,0 +1,16 @@
1
+ import { TDengineMeta } from '../common/taosResult';
2
+ import { WSQueryResponse } from '../client/wsResponse';
3
+ import { WsClient } from '../client/wsClient';
4
+ export declare class WSRows {
5
+ private _wsClient;
6
+ private readonly _wsQueryResponse;
7
+ private _taosResult;
8
+ private _isClose;
9
+ constructor(wsInterface: WsClient, resp: WSQueryResponse);
10
+ next(): Promise<boolean>;
11
+ private getBlockData;
12
+ getMeta(): Array<TDengineMeta> | null;
13
+ getData(): Array<any> | undefined;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=wsRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsRows.d.ts","sourceRoot":"","sources":["../../../src/sql/wsRows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,qBAAa,MAAM;IACf,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAW;gBACf,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe;IAOlD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;YAoBhB,YAAY;IAkB1B,OAAO,IAAG,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI;IAIpC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAc3B,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;CAQ9B"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WSRows = void 0;
7
+ const taosResult_1 = require("../common/taosResult");
8
+ const wsError_1 = require("../common/wsError");
9
+ const log_1 = __importDefault(require("../common/log"));
10
+ class WSRows {
11
+ constructor(wsInterface, resp) {
12
+ this._wsClient = wsInterface;
13
+ this._wsQueryResponse = resp;
14
+ this._taosResult = new taosResult_1.TaosResult(resp);
15
+ this._isClose = false;
16
+ }
17
+ async next() {
18
+ if (this._wsQueryResponse.is_update || this._isClose) {
19
+ log_1.default.debug("WSRows::Next::End=>", this._taosResult, this._isClose);
20
+ return false;
21
+ }
22
+ let data = this._taosResult.getData();
23
+ if (this._taosResult && data != null) {
24
+ if (data && Array.isArray(this._taosResult.getData()) && data.length > 0) {
25
+ return true;
26
+ }
27
+ }
28
+ this._taosResult = await this.getBlockData();
29
+ if (this._taosResult.getData()) {
30
+ return true;
31
+ }
32
+ return false;
33
+ }
34
+ async getBlockData() {
35
+ try {
36
+ let wsFetchResponse = await this._wsClient.fetch(this._wsQueryResponse);
37
+ log_1.default.debug("[wsQuery.execute.wsFetchResponse]==>\n", wsFetchResponse);
38
+ if (wsFetchResponse.completed) {
39
+ this.close();
40
+ this._taosResult.setData(null);
41
+ }
42
+ else {
43
+ this._taosResult.setRowsAndTime(wsFetchResponse.rows, wsFetchResponse.timing);
44
+ return await this._wsClient.fetchBlock(wsFetchResponse, this._taosResult);
45
+ }
46
+ return this._taosResult;
47
+ }
48
+ catch (err) {
49
+ this.close();
50
+ throw new wsError_1.TaosResultError(err.code, err.message);
51
+ }
52
+ }
53
+ getMeta() {
54
+ return this._taosResult.getMeta();
55
+ }
56
+ getData() {
57
+ if (this._wsQueryResponse.is_update) {
58
+ return undefined;
59
+ }
60
+ let data = this._taosResult.getData();
61
+ if (this._taosResult && data != null) {
62
+ if (Array.isArray(data) && data.length > 0) {
63
+ return data.pop();
64
+ }
65
+ }
66
+ return undefined;
67
+ }
68
+ async close() {
69
+ if (this._isClose) {
70
+ return;
71
+ }
72
+ this._isClose = true;
73
+ await this._wsClient.freeResult(this._wsQueryResponse);
74
+ }
75
+ }
76
+ exports.WSRows = WSRows;
@@ -0,0 +1,24 @@
1
+ import { WSRows } from './wsRows';
2
+ import { TaosResult } from '../common/taosResult';
3
+ import { WSConfig } from '../common/config';
4
+ import { Precision, SchemalessProto } from './wsProto';
5
+ import { WsStmt } from '../stmt/wsStmt';
6
+ export declare class WsSql {
7
+ private wsConfig;
8
+ private _wsClient;
9
+ constructor(wsConfig: WSConfig);
10
+ static open(wsConfig: WSConfig): Promise<WsSql>;
11
+ state(): number;
12
+ /**
13
+ * return client version.
14
+ */
15
+ version(): Promise<string>;
16
+ close(): Promise<void>;
17
+ schemalessInsert(lines: Array<string>, protocol: SchemalessProto, precision: Precision, ttl: number, reqId?: number): Promise<void>;
18
+ stmtInit(reqId?: number): Promise<WsStmt>;
19
+ exec(sql: string, reqId?: number, action?: string): Promise<TaosResult>;
20
+ private executeSchemalessInsert;
21
+ query(sql: string, reqId?: number): Promise<WSRows>;
22
+ private getSql;
23
+ }
24
+ //# sourceMappingURL=wsSql.d.ts.map
@@ -0,0 +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,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,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,MAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;YA6BvE,uBAAuB;IAa/B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD,OAAO,CAAC,MAAM;CAYjB"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WsSql = void 0;
7
+ const wsRows_1 = require("./wsRows");
8
+ const taosResult_1 = require("../common/taosResult");
9
+ const wsClient_1 = require("../client/wsClient");
10
+ const wsError_1 = require("../common/wsError");
11
+ const utils_1 = require("../common/utils");
12
+ const wsStmt_1 = require("../stmt/wsStmt");
13
+ const reqid_1 = require("../common/reqid");
14
+ const constant_1 = require("../common/constant");
15
+ const log_1 = __importDefault(require("../common/log"));
16
+ class WsSql {
17
+ constructor(wsConfig) {
18
+ let url = (0, utils_1.getUrl)(wsConfig);
19
+ this._wsClient = new wsClient_1.WsClient(url, wsConfig.getTimeOut());
20
+ this.wsConfig = wsConfig;
21
+ }
22
+ static async open(wsConfig) {
23
+ if (!wsConfig.getUrl()) {
24
+ throw new wsError_1.WebSocketInterfaceError(wsError_1.ErrorCode.ERR_INVALID_URL, 'invalid url, password or username needed.');
25
+ }
26
+ let wsSql = new WsSql(wsConfig);
27
+ let database = wsConfig.getDb();
28
+ try {
29
+ await wsSql._wsClient.connect(database);
30
+ if (database && database.length > 0) {
31
+ await wsSql.exec(`use ${database}`);
32
+ }
33
+ return wsSql;
34
+ }
35
+ catch (e) {
36
+ log_1.default.error(e.code, e.message);
37
+ throw (e);
38
+ }
39
+ }
40
+ state() {
41
+ return this._wsClient.getState();
42
+ }
43
+ /**
44
+ * return client version.
45
+ */
46
+ async version() {
47
+ return await this._wsClient.version();
48
+ }
49
+ async close() {
50
+ await this._wsClient.close();
51
+ }
52
+ async schemalessInsert(lines, protocol, precision, ttl, reqId) {
53
+ let data = '';
54
+ if (!lines || lines.length == 0 || !protocol) {
55
+ throw new wsError_1.TaosResultError(wsError_1.ErrorCode.ERR_INVALID_PARAMS, 'WsSchemaless Insert params is error!');
56
+ }
57
+ lines.forEach((element, index) => {
58
+ data += element;
59
+ if (index < lines.length - 1) {
60
+ data += '\n';
61
+ }
62
+ });
63
+ let queryMsg = {
64
+ action: 'insert',
65
+ args: {
66
+ req_id: reqid_1.ReqId.getReqID(reqId),
67
+ protocol: protocol,
68
+ precision: precision,
69
+ data: data,
70
+ ttl: ttl,
71
+ },
72
+ };
73
+ return await this.executeSchemalessInsert(queryMsg);
74
+ }
75
+ async stmtInit(reqId) {
76
+ if (this._wsClient) {
77
+ try {
78
+ let precision = constant_1.PrecisionLength["ms"];
79
+ if (this.wsConfig.getDb()) {
80
+ let sql = "select `precision` from information_schema.ins_databases where name = '" + this.wsConfig.getDb() + "'";
81
+ let result = await this.exec(sql);
82
+ let data = result.getData();
83
+ if (data && data[0] && data[0][0]) {
84
+ precision = constant_1.PrecisionLength[data[0][0]];
85
+ }
86
+ }
87
+ return await wsStmt_1.WsStmt.newStmt(this._wsClient, precision, reqId);
88
+ }
89
+ catch (e) {
90
+ log_1.default.error(e.code, e.message);
91
+ throw (e);
92
+ }
93
+ }
94
+ throw (new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "stmt connect closed"));
95
+ }
96
+ async exec(sql, reqId, action = 'query') {
97
+ try {
98
+ let wsQueryResponse = await this._wsClient.exec(this.getSql(sql, reqId, action));
99
+ let taosResult = new taosResult_1.TaosResult(wsQueryResponse);
100
+ if (wsQueryResponse.is_update) {
101
+ return taosResult;
102
+ }
103
+ else {
104
+ try {
105
+ while (true) {
106
+ let wsFetchResponse = await this._wsClient.fetch(wsQueryResponse);
107
+ if (wsFetchResponse.completed) {
108
+ break;
109
+ }
110
+ else {
111
+ taosResult.setRowsAndTime(wsFetchResponse.rows, wsFetchResponse.timing);
112
+ taosResult = await this._wsClient.fetchBlock(wsFetchResponse, taosResult);
113
+ }
114
+ }
115
+ return taosResult;
116
+ }
117
+ catch (err) {
118
+ throw new wsError_1.TaosResultError(err.code, err.message);
119
+ }
120
+ finally {
121
+ this._wsClient.freeResult(wsQueryResponse);
122
+ }
123
+ }
124
+ }
125
+ catch (err) {
126
+ throw new wsError_1.TaosResultError(err.code, err.message);
127
+ }
128
+ }
129
+ async executeSchemalessInsert(queryMsg) {
130
+ return new Promise(async (resolve, reject) => {
131
+ try {
132
+ let reqMsg = JSON.stringify(queryMsg);
133
+ let result = await this._wsClient.exec(reqMsg);
134
+ log_1.default.debug("executeSchemalessInsert:", reqMsg, result);
135
+ resolve();
136
+ }
137
+ catch (e) {
138
+ reject(new wsError_1.TaosResultError(e.code, e.message));
139
+ }
140
+ });
141
+ }
142
+ async query(sql, reqId) {
143
+ try {
144
+ let wsQueryResponse = await this._wsClient.exec(this.getSql(sql, reqId));
145
+ return new wsRows_1.WSRows(this._wsClient, wsQueryResponse);
146
+ }
147
+ catch (err) {
148
+ throw new wsError_1.TaosResultError(err.code, err.message);
149
+ }
150
+ }
151
+ getSql(sql, reqId, action = 'query') {
152
+ // construct msg
153
+ let queryMsg = {
154
+ action: action,
155
+ args: {
156
+ req_id: reqid_1.ReqId.getReqID(reqId),
157
+ sql: sql,
158
+ id: 0
159
+ },
160
+ };
161
+ return JSON.stringify(queryMsg);
162
+ }
163
+ }
164
+ exports.WsSql = WsSql;