@ultipa-graph/ultipa-driver 5.0.0-s5.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 (202) hide show
  1. package/dist/.DS_Store +0 -0
  2. package/dist/connection/connection.final.d.ts +45 -0
  3. package/dist/connection/connection.final.js +600 -0
  4. package/dist/connection/connection.final.js.map +1 -0
  5. package/dist/connection/connection.pool.d.ts +26 -0
  6. package/dist/connection/connection.pool.js +121 -0
  7. package/dist/connection/connection.pool.js.map +1 -0
  8. package/dist/connection/extra/algos/algo.extra.d.ts +34 -0
  9. package/dist/connection/extra/algos/algo.extra.js +81 -0
  10. package/dist/connection/extra/algos/algo.extra.js.map +1 -0
  11. package/dist/connection/extra/algos/algo.utils.d.ts +3 -0
  12. package/dist/connection/extra/algos/algo.utils.js +71 -0
  13. package/dist/connection/extra/algos/algo.utils.js.map +1 -0
  14. package/dist/connection/extra/algos/community.d.ts +27 -0
  15. package/dist/connection/extra/algos/community.js +129 -0
  16. package/dist/connection/extra/algos/community.js.map +1 -0
  17. package/dist/connection/extra/algos/degrees.d.ts +10 -0
  18. package/dist/connection/extra/algos/degrees.js +43 -0
  19. package/dist/connection/extra/algos/degrees.js.map +1 -0
  20. package/dist/connection/extra/algos/embedding.d.ts +13 -0
  21. package/dist/connection/extra/algos/embedding.js +58 -0
  22. package/dist/connection/extra/algos/embedding.js.map +1 -0
  23. package/dist/connection/extra/algos/index.d.ts +5 -0
  24. package/dist/connection/extra/algos/index.js +14 -0
  25. package/dist/connection/extra/algos/index.js.map +1 -0
  26. package/dist/connection/extra/base.extra.d.ts +71 -0
  27. package/dist/connection/extra/base.extra.js +183 -0
  28. package/dist/connection/extra/base.extra.js.map +1 -0
  29. package/dist/connection/extra/connection.base.d.ts +82 -0
  30. package/dist/connection/extra/connection.base.js +623 -0
  31. package/dist/connection/extra/connection.base.js.map +1 -0
  32. package/dist/connection/extra/connection.d.ts +16 -0
  33. package/dist/connection/extra/connection.js +46 -0
  34. package/dist/connection/extra/connection.js.map +1 -0
  35. package/dist/connection/extra/graph.extra.d.ts +85 -0
  36. package/dist/connection/extra/graph.extra.js +241 -0
  37. package/dist/connection/extra/graph.extra.js.map +1 -0
  38. package/dist/connection/extra/index.extra.d.ts +70 -0
  39. package/dist/connection/extra/index.extra.js +201 -0
  40. package/dist/connection/extra/index.extra.js.map +1 -0
  41. package/dist/connection/extra/job.extra.d.ts +32 -0
  42. package/dist/connection/extra/job.extra.js +145 -0
  43. package/dist/connection/extra/job.extra.js.map +1 -0
  44. package/dist/connection/extra/meta.extra.d.ts +91 -0
  45. package/dist/connection/extra/meta.extra.js +441 -0
  46. package/dist/connection/extra/meta.extra.js.map +1 -0
  47. package/dist/connection/extra/property.extra.d.ts +81 -0
  48. package/dist/connection/extra/property.extra.js +268 -0
  49. package/dist/connection/extra/property.extra.js.map +1 -0
  50. package/dist/connection/extra/schema.extra.d.ts +50 -0
  51. package/dist/connection/extra/schema.extra.js +248 -0
  52. package/dist/connection/extra/schema.extra.js.map +1 -0
  53. package/dist/connection/extra/search.extra.d.ts +12 -0
  54. package/dist/connection/extra/search.extra.js +126 -0
  55. package/dist/connection/extra/search.extra.js.map +1 -0
  56. package/dist/connection/extra/task.extra.d.ts +24 -0
  57. package/dist/connection/extra/task.extra.js +126 -0
  58. package/dist/connection/extra/task.extra.js.map +1 -0
  59. package/dist/connection/extra/user.privilege.extra.d.ts +64 -0
  60. package/dist/connection/extra/user.privilege.extra.js +348 -0
  61. package/dist/connection/extra/user.privilege.extra.js.map +1 -0
  62. package/dist/connection/index.d.ts +4 -0
  63. package/dist/connection/index.js +10 -0
  64. package/dist/connection/index.js.map +1 -0
  65. package/dist/connection/network.manager.d.ts +27 -0
  66. package/dist/connection/network.manager.js +178 -0
  67. package/dist/connection/network.manager.js.map +1 -0
  68. package/dist/index.d.ts +4 -0
  69. package/dist/index.js +14 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/printers/alias.d.ts +2 -0
  72. package/dist/printers/alias.js +15 -0
  73. package/dist/printers/alias.js.map +1 -0
  74. package/dist/printers/any.d.ts +2 -0
  75. package/dist/printers/any.js +40 -0
  76. package/dist/printers/any.js.map +1 -0
  77. package/dist/printers/array.aio.d.ts +44 -0
  78. package/dist/printers/array.aio.js +240 -0
  79. package/dist/printers/array.aio.js.map +1 -0
  80. package/dist/printers/common.d.ts +0 -0
  81. package/dist/printers/common.js +1 -0
  82. package/dist/printers/common.js.map +1 -0
  83. package/dist/printers/edge.d.ts +5 -0
  84. package/dist/printers/edge.js +49 -0
  85. package/dist/printers/edge.js.map +1 -0
  86. package/dist/printers/explain.plan.d.ts +2 -0
  87. package/dist/printers/explain.plan.js +24 -0
  88. package/dist/printers/explain.plan.js.map +1 -0
  89. package/dist/printers/graph.d.ts +2 -0
  90. package/dist/printers/graph.js +34 -0
  91. package/dist/printers/graph.js.map +1 -0
  92. package/dist/printers/index.d.ts +25 -0
  93. package/dist/printers/index.js +44 -0
  94. package/dist/printers/index.js.map +1 -0
  95. package/dist/printers/node.d.ts +5 -0
  96. package/dist/printers/node.js +49 -0
  97. package/dist/printers/node.js.map +1 -0
  98. package/dist/printers/path.d.ts +3 -0
  99. package/dist/printers/path.js +42 -0
  100. package/dist/printers/path.js.map +1 -0
  101. package/dist/printers/status.d.ts +3 -0
  102. package/dist/printers/status.js +45 -0
  103. package/dist/printers/status.js.map +1 -0
  104. package/dist/printers/table.d.ts +2 -0
  105. package/dist/printers/table.js +31 -0
  106. package/dist/printers/table.js.map +1 -0
  107. package/dist/proto/tmp.js +366 -0
  108. package/dist/proto/ultipa_grpc_pb.d.ts +257 -0
  109. package/dist/proto/ultipa_grpc_pb.js +366 -0
  110. package/dist/proto/ultipa_grpc_pb.js.map +1 -0
  111. package/dist/proto/ultipa_pb.d.ts +1 -0
  112. package/dist/proto/ultipa_pb.js +11002 -0
  113. package/dist/proto/ultipa_pb.js.map +1 -0
  114. package/dist/transaction/UltipaSession.d.ts +28 -0
  115. package/dist/transaction/UltipaSession.js +148 -0
  116. package/dist/transaction/UltipaSession.js.map +1 -0
  117. package/dist/transaction/UltipaTransaction.Recorder.d.ts +20 -0
  118. package/dist/transaction/UltipaTransaction.Recorder.js +23 -0
  119. package/dist/transaction/UltipaTransaction.Recorder.js.map +1 -0
  120. package/dist/transaction/UltipaTransaction.d.ts +35 -0
  121. package/dist/transaction/UltipaTransaction.js +203 -0
  122. package/dist/transaction/UltipaTransaction.js.map +1 -0
  123. package/dist/transaction/UltipaTransactionSession.d.ts +15 -0
  124. package/dist/transaction/UltipaTransactionSession.js +46 -0
  125. package/dist/transaction/UltipaTransactionSession.js.map +1 -0
  126. package/dist/transaction/operations/Transaction.Deletes.d.ts +4 -0
  127. package/dist/transaction/operations/Transaction.Deletes.js +52 -0
  128. package/dist/transaction/operations/Transaction.Deletes.js.map +1 -0
  129. package/dist/transaction/operations/Transaction.Inserts.d.ts +4 -0
  130. package/dist/transaction/operations/Transaction.Inserts.js +78 -0
  131. package/dist/transaction/operations/Transaction.Inserts.js.map +1 -0
  132. package/dist/transaction/operations/Transaction.Update.d.ts +4 -0
  133. package/dist/transaction/operations/Transaction.Update.js +43 -0
  134. package/dist/transaction/operations/Transaction.Update.js.map +1 -0
  135. package/dist/types/index.d.ts +4 -0
  136. package/dist/types/index.js +13 -0
  137. package/dist/types/index.js.map +1 -0
  138. package/dist/types/types.algos.params.d.ts +545 -0
  139. package/dist/types/types.algos.params.js +16 -0
  140. package/dist/types/types.algos.params.js.map +1 -0
  141. package/dist/types/types.d.ts +496 -0
  142. package/dist/types/types.extra.d.ts +788 -0
  143. package/dist/types/types.extra.js +49 -0
  144. package/dist/types/types.extra.js.map +1 -0
  145. package/dist/types/types.js +706 -0
  146. package/dist/types/types.js.map +1 -0
  147. package/dist/types/util.d.ts +15 -0
  148. package/dist/types/util.js +163 -0
  149. package/dist/types/util.js.map +1 -0
  150. package/dist/utils/common.d.ts +3 -0
  151. package/dist/utils/common.js +31 -0
  152. package/dist/utils/common.js.map +1 -0
  153. package/dist/utils/config.d.ts +3 -0
  154. package/dist/utils/config.js +7 -0
  155. package/dist/utils/config.js.map +1 -0
  156. package/dist/utils/format.d.ts +49 -0
  157. package/dist/utils/format.js +990 -0
  158. package/dist/utils/format.js.map +1 -0
  159. package/dist/utils/index.d.ts +12 -0
  160. package/dist/utils/index.js +34 -0
  161. package/dist/utils/index.js.map +1 -0
  162. package/dist/utils/params.validate.d.ts +4 -0
  163. package/dist/utils/params.validate.js +14 -0
  164. package/dist/utils/params.validate.js.map +1 -0
  165. package/dist/utils/property.d.ts +15 -0
  166. package/dist/utils/property.js +117 -0
  167. package/dist/utils/property.js.map +1 -0
  168. package/dist/utils/raft.retry.d.ts +0 -0
  169. package/dist/utils/raft.retry.js +1 -0
  170. package/dist/utils/raft.retry.js.map +1 -0
  171. package/dist/utils/serialize/commont.d.ts +12 -0
  172. package/dist/utils/serialize/commont.js +46 -0
  173. package/dist/utils/serialize/commont.js.map +1 -0
  174. package/dist/utils/serialize/deserialize.d.ts +9 -0
  175. package/dist/utils/serialize/deserialize.js +164 -0
  176. package/dist/utils/serialize/deserialize.js.map +1 -0
  177. package/dist/utils/serialize/null.d.ts +24 -0
  178. package/dist/utils/serialize/null.js +133 -0
  179. package/dist/utils/serialize/null.js.map +1 -0
  180. package/dist/utils/serialize/serialize.d.ts +10 -0
  181. package/dist/utils/serialize/serialize.js +135 -0
  182. package/dist/utils/serialize/serialize.js.map +1 -0
  183. package/dist/utils/stream.helper.d.ts +9 -0
  184. package/dist/utils/stream.helper.js +97 -0
  185. package/dist/utils/stream.helper.js.map +1 -0
  186. package/dist/utils/time.record.d.ts +15 -0
  187. package/dist/utils/time.record.js +50 -0
  188. package/dist/utils/time.record.js.map +1 -0
  189. package/dist/utils/timezone.d.ts +7 -0
  190. package/dist/utils/timezone.js +21 -0
  191. package/dist/utils/timezone.js.map +1 -0
  192. package/dist/utils/ultipa.datetime.d.ts +8 -0
  193. package/dist/utils/ultipa.datetime.js +120 -0
  194. package/dist/utils/ultipa.datetime.js.map +1 -0
  195. package/dist/utils/uql-maker.d.ts +164 -0
  196. package/dist/utils/uql-maker.js +400 -0
  197. package/dist/utils/uql-maker.js.map +1 -0
  198. package/dist/utils/uql.parse.d.ts +27 -0
  199. package/dist/utils/uql.parse.js +206 -0
  200. package/dist/utils/uql.parse.js.map +1 -0
  201. package/package.json +62 -0
  202. package/readme.md +63 -0
@@ -0,0 +1,623 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __rest = (this && this.__rest) || function (s, e) {
35
+ var t = {};
36
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
+ t[p] = s[p];
38
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
+ t[p[i]] = s[p[i]];
42
+ }
43
+ return t;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.ConnectionBase = exports.RAFT_GLOBAL = void 0;
50
+ const grpc = __importStar(require("@grpc/grpc-js"));
51
+ const md5_1 = __importDefault(require("md5"));
52
+ const ultipa_pb_1 = require("../../proto/ultipa_pb");
53
+ const types_1 = require("../../types");
54
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
55
+ const ultipa_pb_2 = require("../../proto/ultipa_pb");
56
+ const utils_1 = require("../../utils");
57
+ const network_manager_1 = require("../network.manager");
58
+ const timezone_1 = require("../../utils/timezone");
59
+ const chalk_1 = __importDefault(require("chalk"));
60
+ let { CommandList } = utils_1.UQLMAKER;
61
+ let ClientType = types_1.ULTIPA.ClientType;
62
+ let ClientCache = {};
63
+ class GrpcClientInfo {
64
+ constructor(host, username, password, crt) {
65
+ this.host = host;
66
+ this.username = username;
67
+ this.password = password;
68
+ this.host = host;
69
+ this.crt = crt;
70
+ }
71
+ getMetadata(graphSetName, clusterId, timeZone, timeZoneOffset) {
72
+ let metadata = new grpc.Metadata();
73
+ metadata.add("user", this.username);
74
+ metadata.add("password", this.password);
75
+ metadata.add("graph_name", graphSetName);
76
+ let tzObj = (0, timezone_1.rpc_timezone)(timeZone, timeZoneOffset);
77
+ for (const key in tzObj) {
78
+ metadata.add(key, tzObj[key]);
79
+ }
80
+ if (!!clusterId) {
81
+ metadata.add("ns_cluster_id", clusterId);
82
+ }
83
+ return metadata;
84
+ }
85
+ getClient() {
86
+ return network_manager_1.grpcNetworkManager.getUltipaRpcsClient(this.host, this.crt);
87
+ }
88
+ }
89
+ exports.RAFT_GLOBAL = "global";
90
+ class ConnectionBase {
91
+ constructor(host, username, password, crt, defaultConfig, isMd5) {
92
+ if (!isMd5) {
93
+ password = (0, md5_1.default)(password).toUpperCase();
94
+ }
95
+ this.username = username;
96
+ this.password = password;
97
+ this.crt = crt;
98
+ this.setDefaultConfig(defaultConfig);
99
+ this.grpcClintInfo = new GrpcClientInfo(host, this.username, this.password, this.crt);
100
+ }
101
+ setDefaultConfig(config) {
102
+ if (!this.defaultConfig) {
103
+ // set default
104
+ this.defaultConfig = {
105
+ graphSetName: "default",
106
+ timeout: 15,
107
+ responseWithRequestInfo: false,
108
+ };
109
+ }
110
+ if (config === null || config === void 0 ? void 0 : config.useHost) {
111
+ this.defaultConfig.useHost = config === null || config === void 0 ? void 0 : config.useHost;
112
+ }
113
+ if (config === null || config === void 0 ? void 0 : config.graphSetName) {
114
+ this.defaultConfig.graphSetName = config === null || config === void 0 ? void 0 : config.graphSetName;
115
+ }
116
+ if ((config === null || config === void 0 ? void 0 : config.timeout) !== undefined) {
117
+ this.defaultConfig.timeout = config === null || config === void 0 ? void 0 : config.timeout;
118
+ }
119
+ if ((config === null || config === void 0 ? void 0 : config.threadNum) !== undefined) {
120
+ this.defaultConfig.threadNum = config === null || config === void 0 ? void 0 : config.threadNum;
121
+ }
122
+ if ((config === null || config === void 0 ? void 0 : config.responseWithRequestInfo) !== undefined) {
123
+ this.defaultConfig.responseWithRequestInfo =
124
+ config === null || config === void 0 ? void 0 : config.responseWithRequestInfo;
125
+ }
126
+ if ((config === null || config === void 0 ? void 0 : config.consistency) !== undefined) {
127
+ this.defaultConfig.consistency = config.consistency;
128
+ }
129
+ if (config === null || config === void 0 ? void 0 : config.logUql) {
130
+ this.defaultConfig.logUql = config === null || config === void 0 ? void 0 : config.logUql;
131
+ }
132
+ if (config === null || config === void 0 ? void 0 : config.timeZone) {
133
+ this.defaultConfig.timeZone = config.timeZone;
134
+ }
135
+ if (config === null || config === void 0 ? void 0 : config.timeZoneOffset) {
136
+ this.defaultConfig.timeZoneOffset = config.timeZoneOffset;
137
+ }
138
+ if ((config === null || config === void 0 ? void 0 : config.timestampToString) !== undefined) {
139
+ this.defaultConfig.timestampToString = config.timestampToString;
140
+ }
141
+ }
142
+ getGraphSetName(currentGraphName, uql, isGlobal) {
143
+ var _a;
144
+ if (isGlobal) {
145
+ return exports.RAFT_GLOBAL;
146
+ }
147
+ if (uql) {
148
+ let uqlParse = new utils_1.EasyUqlParse(uql);
149
+ if (uqlParse.isGlobal()) {
150
+ return exports.RAFT_GLOBAL;
151
+ }
152
+ // truncate,mount,unmount,update, 发给当前图集
153
+ if ([
154
+ CommandList.truncate, CommandList.mountGraph,
155
+ CommandList.unmountGraph,
156
+ ].includes(`${uqlParse.firstCommandName()}().${uqlParse.secondCommandName()}`)) {
157
+ let graphName = (_a = uqlParse.getCommand(1)) === null || _a === void 0 ? void 0 : _a.safelyGetFirstParams();
158
+ if (!!graphName) {
159
+ return graphName;
160
+ }
161
+ }
162
+ }
163
+ return currentGraphName || this.defaultConfig.graphSetName;
164
+ }
165
+ getTimeout(timeout) {
166
+ return timeout || this.defaultConfig.timeout;
167
+ }
168
+ getThreadNum(threadNum) {
169
+ return threadNum || this.defaultConfig.threadNum;
170
+ }
171
+ getLogUql(logUql) {
172
+ return logUql || this.defaultConfig.logUql;
173
+ }
174
+ getTimeZone(timeZone) {
175
+ return timeZone || this.defaultConfig.timeZone;
176
+ }
177
+ getTimeZoneOffset(timeZoneOffset) {
178
+ return timeZoneOffset || this.defaultConfig.timeZoneOffset;
179
+ }
180
+ getTimestampToString(timestampToString) {
181
+ if (timestampToString === true || timestampToString === false) {
182
+ return timestampToString;
183
+ }
184
+ return this.defaultConfig.timestampToString;
185
+ }
186
+ // public closeAll() {
187
+ // this.hostManagerControl.closeAll()
188
+ // }
189
+ getClientInfo(params) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ let { type, graphSetName, uql, isGlobal, useHost, clusterId, timeZone, timeZoneOffset, } = params;
192
+ let goGraphName = this.getGraphSetName(graphSetName, params.uql, isGlobal);
193
+ let metadata = this.grpcClintInfo.getMetadata(goGraphName, clusterId, this.getTimeZone(timeZone), this.getTimeZoneOffset(timeZoneOffset));
194
+ return {
195
+ client: this.grpcClintInfo.getClient(),
196
+ host: this.grpcClintInfo.host,
197
+ metadata,
198
+ goGraphName,
199
+ };
200
+ });
201
+ }
202
+ getTimeZoneType(commonReq) {
203
+ return {
204
+ timestampToString: this.getTimestampToString(commonReq === null || commonReq === void 0 ? void 0 : commonReq.timestampToString),
205
+ timeZone: this.getTimeZone(commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZone),
206
+ timeZoneOffset: this.getTimeZoneOffset(commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZoneOffset),
207
+ };
208
+ }
209
+ uql(uql, requestConfig) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ try {
212
+ return yield this._query_without_catch(uql, Object.assign(Object.assign({}, requestConfig), { ql: ultipa_pb_1.QueryType.UQL }));
213
+ }
214
+ catch (error) {
215
+ return utils_1.FormatResponse.catchUltipaUqlError(error);
216
+ }
217
+ });
218
+ }
219
+ uqlStream(uql, stream, requestConfig) {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ if (!requestConfig) {
222
+ requestConfig = {};
223
+ }
224
+ yield new Promise((resolve, reject) => {
225
+ this.uql(uql, Object.assign(Object.assign({}, requestConfig), { stream: {
226
+ onData: (_res) => __awaiter(this, void 0, void 0, function* () {
227
+ yield stream.onData(types_1.ULTIPA.formatBaseResponse(_res));
228
+ }),
229
+ onEnd: () => {
230
+ stream.onEnd();
231
+ resolve(true);
232
+ },
233
+ onClose: () => {
234
+ var _a;
235
+ resolve(true);
236
+ (_a = stream.onClose) === null || _a === void 0 ? void 0 : _a.call(stream);
237
+ },
238
+ onError: (err) => {
239
+ var _a;
240
+ resolve(true);
241
+ (_a = stream.onError) === null || _a === void 0 ? void 0 : _a.call(stream, err);
242
+ },
243
+ onPause: () => {
244
+ var _a;
245
+ (_a = stream.onPause) === null || _a === void 0 ? void 0 : _a.call(stream);
246
+ },
247
+ onReadable: () => {
248
+ var _a;
249
+ (_a = stream.onReadable) === null || _a === void 0 ? void 0 : _a.call(stream);
250
+ },
251
+ onResume: () => {
252
+ var _a;
253
+ (_a = stream.onResume) === null || _a === void 0 ? void 0 : _a.call(stream);
254
+ },
255
+ onStart: () => {
256
+ var _a;
257
+ (_a = stream.onStart) === null || _a === void 0 ? void 0 : _a.call(stream);
258
+ },
259
+ package_limit: stream.package_limit
260
+ } }));
261
+ });
262
+ });
263
+ }
264
+ gqlStream(gql, stream, requestConfig) {
265
+ return __awaiter(this, void 0, void 0, function* () {
266
+ if (!requestConfig) {
267
+ requestConfig = {};
268
+ }
269
+ yield new Promise((resolve, reject) => {
270
+ this.gql(gql, Object.assign(Object.assign({}, requestConfig), { stream: {
271
+ onData: (_res) => __awaiter(this, void 0, void 0, function* () {
272
+ yield stream.onData(types_1.ULTIPA.formatBaseResponse(_res));
273
+ }),
274
+ onEnd: () => {
275
+ stream.onEnd();
276
+ resolve(true);
277
+ },
278
+ onClose: () => {
279
+ var _a;
280
+ resolve(true);
281
+ (_a = stream.onClose) === null || _a === void 0 ? void 0 : _a.call(stream);
282
+ },
283
+ onError: (err) => {
284
+ var _a;
285
+ resolve(true);
286
+ (_a = stream.onError) === null || _a === void 0 ? void 0 : _a.call(stream, err);
287
+ },
288
+ onPause: () => {
289
+ var _a;
290
+ (_a = stream.onPause) === null || _a === void 0 ? void 0 : _a.call(stream);
291
+ },
292
+ onReadable: () => {
293
+ var _a;
294
+ (_a = stream.onReadable) === null || _a === void 0 ? void 0 : _a.call(stream);
295
+ },
296
+ onResume: () => {
297
+ var _a;
298
+ (_a = stream.onResume) === null || _a === void 0 ? void 0 : _a.call(stream);
299
+ },
300
+ onStart: () => {
301
+ var _a;
302
+ (_a = stream.onStart) === null || _a === void 0 ? void 0 : _a.call(stream);
303
+ },
304
+ package_limit: stream.package_limit
305
+ } }));
306
+ });
307
+ });
308
+ }
309
+ gql(gql, requestConfig) {
310
+ return __awaiter(this, void 0, void 0, function* () {
311
+ try {
312
+ return yield this._query_without_catch(gql, Object.assign(Object.assign({}, requestConfig), { ql: ultipa_pb_1.QueryType.GQL }));
313
+ }
314
+ catch (error) {
315
+ return utils_1.FormatResponse.catchUltipaUqlError(error);
316
+ }
317
+ });
318
+ }
319
+ /**
320
+ * 运行UQL
321
+ */
322
+ _query_without_catch(uql, commonReq) {
323
+ return __awaiter(this, void 0, void 0, function* () {
324
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
325
+ try {
326
+ let _TIME_MAP = {
327
+ main: `${uql.substr(0, 20) + (uql.length > 20 ? "..." : "")}`,
328
+ getClientInfo: "Get client info",
329
+ uql: "Execute UQL",
330
+ };
331
+ let logUql = this.getLogUql(commonReq === null || commonReq === void 0 ? void 0 : commonReq.logUql);
332
+ let timeRecordManager = new utils_1.TimeRecordManager(_TIME_MAP.main);
333
+ let response = new types_1.ULTIPA.QueryBaseResponse();
334
+ let onErrorCache_go_on_exec_onEnd = null;
335
+ let request = new ultipa_pb_2.QueryRequest();
336
+ request.setQueryText(uql);
337
+ request.setQueryType(commonReq === null || commonReq === void 0 ? void 0 : commonReq.ql);
338
+ request.setTimeout(this.getTimeout(commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeout));
339
+ request.setThreadNum(this.getThreadNum(commonReq === null || commonReq === void 0 ? void 0 : commonReq.threadNum) || 0);
340
+ let timeZoneType = this.getTimeZoneType();
341
+ if (timeZoneType.timeZone !== undefined) {
342
+ request.setTz(timeZoneType.timeZone);
343
+ }
344
+ if (timeZoneType.timeZoneOffset !== undefined) {
345
+ request.setTzOffset(timeZoneType.timeZoneOffset + "");
346
+ }
347
+ timeRecordManager.start(_TIME_MAP.getClientInfo);
348
+ let clientInfo = yield this.getClientInfo({
349
+ graphSetName: commonReq === null || commonReq === void 0 ? void 0 : commonReq.graphSetName,
350
+ clusterId: commonReq === null || commonReq === void 0 ? void 0 : commonReq.clusterId,
351
+ uql,
352
+ useHost: (commonReq === null || commonReq === void 0 ? void 0 : commonReq.useHost) || this.defaultConfig.useHost,
353
+ forceRefresh: commonReq === null || commonReq === void 0 ? void 0 : commonReq.forceRefresh,
354
+ timeZone: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZone,
355
+ timeZoneOffset: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZoneOffset,
356
+ });
357
+ timeRecordManager.stop(_TIME_MAP.getClientInfo);
358
+ timeRecordManager.start(_TIME_MAP.uql);
359
+ let getDateString = () => {
360
+ return `${(0, moment_timezone_1.default)().format("YYYY-DD-MM HH:mm:ss.SSS")} <${chalk_1.default.green(this.username)}>`;
361
+ };
362
+ let { goGraphName, metadata, host } = clientInfo;
363
+ if (logUql) {
364
+ console.log(`${getDateString()} SDK_LOG: [${host}-${goGraphName}] ${chalk_1.default.green(uql)} START! ${(commonReq === null || commonReq === void 0 ? void 0 : commonReq.forceRefresh) ? "Force Refresh!" : ""}`);
365
+ }
366
+ let uqlParse = new utils_1.EasyUqlParse(uql);
367
+ let isUseUqlExtra = uqlParse.isExtra();
368
+ // isUseUqlExtra = false
369
+ let stream = isUseUqlExtra
370
+ ? clientInfo.client.controlsClient.queryEx(request, metadata)
371
+ : clientInfo.client.rpcsClient.query(request, metadata);
372
+ let dataCustomDeal = utils_1.streamHelper.isUseStream(commonReq === null || commonReq === void 0 ? void 0 : commonReq.stream);
373
+ let addReq = () => {
374
+ var _a;
375
+ if ((_a = this.defaultConfig) === null || _a === void 0 ? void 0 : _a.responseWithRequestInfo) {
376
+ response.req = {
377
+ graphName: goGraphName,
378
+ uql,
379
+ host,
380
+ isUseUqlExtra,
381
+ forceRefresh: commonReq === null || commonReq === void 0 ? void 0 : commonReq.forceRefresh
382
+ };
383
+ }
384
+ };
385
+ let dealReq = dataCustomDeal
386
+ ? commonReq === null || commonReq === void 0 ? void 0 : commonReq.stream
387
+ : {
388
+ package_limit: commonReq === null || commonReq === void 0 ? void 0 : commonReq.package_limit,
389
+ onData: (_res) => {
390
+ if (!response.status) {
391
+ response = _res;
392
+ let res = types_1.ULTIPA.formatBaseResponse(response);
393
+ resolve(res);
394
+ return;
395
+ }
396
+ else {
397
+ response = (0, utils_1.mergeQueryResponse)(response, _res);
398
+ }
399
+ },
400
+ onEnd: () => __awaiter(this, void 0, void 0, function* () {
401
+ if (onErrorCache_go_on_exec_onEnd) {
402
+ return;
403
+ }
404
+ addReq();
405
+ timeRecordManager.stop(_TIME_MAP.uql);
406
+ timeRecordManager.stopTotal();
407
+ if (response.req) {
408
+ response.req.time_record = timeRecordManager.toString();
409
+ }
410
+ if (logUql) {
411
+ console.log(`${getDateString()} SDK_LOG: [${host}-${goGraphName}] ${chalk_1.default.green(uql)} END! ${(response.status.code === types_1.ULTIPA.Code.SUCCESS ? "✅" : "❌")} ${JSON.stringify(response.status)}`);
412
+ }
413
+ let res = types_1.ULTIPA.formatBaseResponse(response);
414
+ resolve(res);
415
+ }),
416
+ onError: (err) => __awaiter(this, void 0, void 0, function* () {
417
+ addReq();
418
+ // resolve here,and onData should be stop
419
+ onErrorCache_go_on_exec_onEnd = err;
420
+ stream.cancel();
421
+ let e = err;
422
+ if (e.code === 14 && !(commonReq === null || commonReq === void 0 ? void 0 : commonReq.forceRefresh)) {
423
+ let res = yield this.uql(uql, Object.assign(Object.assign({}, commonReq), { forceRefresh: true }));
424
+ resolve(res);
425
+ return;
426
+ }
427
+ response = utils_1.FormatResponse.unknownError(err, response);
428
+ if (logUql) {
429
+ console.log(`${getDateString()} SDK_LOG: [${host}-${goGraphName}] ${chalk_1.default.green(uql)} END! ${(response.status.code === types_1.ULTIPA.Code.SUCCESS ? "✅" : "❌")} ${JSON.stringify(response.status)}`);
430
+ }
431
+ let res = types_1.ULTIPA.formatBaseResponse(response);
432
+ resolve(res);
433
+ }),
434
+ };
435
+ utils_1.streamHelper.commonDeal(stream, dealReq, (_res) => {
436
+ let res = _res;
437
+ return utils_1.FormatType.queryResponse(res, this.getTimeZoneType(commonReq));
438
+ });
439
+ if (dataCustomDeal) {
440
+ resolve(null);
441
+ }
442
+ }
443
+ catch (error) {
444
+ reject(error);
445
+ }
446
+ }));
447
+ });
448
+ }
449
+ /**
450
+ * 通过UQLMaker运行uql
451
+ */
452
+ uqlSingle(uqlMaker) {
453
+ return __awaiter(this, void 0, void 0, function* () {
454
+ let res = yield this.uql(uqlMaker.toString(), uqlMaker.commonParams);
455
+ let QueryReply = res.data;
456
+ if (QueryReply) {
457
+ return {
458
+ responseWithoutData: {
459
+ status: res.status,
460
+ statistics: QueryReply.statistics,
461
+ req: res.req,
462
+ },
463
+ QueryReply: QueryReply,
464
+ };
465
+ }
466
+ return {
467
+ responseWithoutData: {
468
+ status: res.status,
469
+ req: res.req,
470
+ },
471
+ };
472
+ });
473
+ }
474
+ auth(req, commonReq) {
475
+ return __awaiter(this, void 0, void 0, function* () {
476
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
477
+ let authReq = new ultipa_pb_2.AuthenticateRequest();
478
+ authReq.setType(req.authType);
479
+ if (req.query_text) {
480
+ authReq.setQueryText(req.query_text);
481
+ }
482
+ let clientInfo = yield this.getClientInfo({
483
+ type: ClientType.Leader,
484
+ graphSetName: commonReq === null || commonReq === void 0 ? void 0 : commonReq.graphSetName,
485
+ clusterId: commonReq === null || commonReq === void 0 ? void 0 : commonReq.clusterId,
486
+ timeZone: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZone,
487
+ timeZoneOffset: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZoneOffset,
488
+ });
489
+ clientInfo.client.controlsClient.authenticate(authReq, clientInfo.metadata, (err, resp) => {
490
+ let response = new types_1.ULTIPA.QueryResponse();
491
+ if (err) {
492
+ response = utils_1.FormatResponse.unknownError(err, response);
493
+ resolve(response);
494
+ return;
495
+ }
496
+ response.status = utils_1.FormatType.status(resp.getStatus());
497
+ resolve(response);
498
+ });
499
+ }));
500
+ });
501
+ }
502
+ /**
503
+ * 登录
504
+ */
505
+ login(commonReq) {
506
+ return __awaiter(this, void 0, void 0, function* () {
507
+ network_manager_1.grpcNetworkManager.removeUltipaRpcsClient(this.grpcClintInfo.host, this.crt);
508
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
509
+ let v = yield this.test_has_message(commonReq);
510
+ if (v.connect) {
511
+ resolve(true);
512
+ }
513
+ else {
514
+ reject(v.msg);
515
+ }
516
+ }));
517
+ });
518
+ }
519
+ /**
520
+ * 测试连接
521
+ */
522
+ test(commonReq) {
523
+ return __awaiter(this, void 0, void 0, function* () {
524
+ let v = yield this.test_has_message(commonReq);
525
+ return v.connect;
526
+ });
527
+ }
528
+ /**
529
+ * 测试连接
530
+ */
531
+ test_has_message(commonReq) {
532
+ return __awaiter(this, void 0, void 0, function* () {
533
+ let createResult = (connect, msg) => {
534
+ return {
535
+ connect,
536
+ msg,
537
+ };
538
+ };
539
+ if (commonReq === null || commonReq === void 0 ? void 0 : commonReq.useHost.includes("UNAVAILABLE")) {
540
+ yield (0, utils_1.sleepSeconds)(3);
541
+ return createResult(false, `14 UNAVAILABLE: Name resolution failed for target dns: ${commonReq === null || commonReq === void 0 ? void 0 : commonReq.useHost}`);
542
+ }
543
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
544
+ setTimeout(() => {
545
+ resolve(createResult(false, "connect timeout"));
546
+ return;
547
+ }, 3000);
548
+ let clientInfo = yield this.getClientInfo({
549
+ isGlobal: true,
550
+ useHost: commonReq === null || commonReq === void 0 ? void 0 : commonReq.useHost,
551
+ timeZone: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZone,
552
+ timeZoneOffset: commonReq === null || commonReq === void 0 ? void 0 : commonReq.timeZoneOffset,
553
+ });
554
+ let name = "test";
555
+ let req = new ultipa_pb_2.HelloUltipaRequest();
556
+ req.setName(name);
557
+ clientInfo.client.controlsClient.sayHello(req, clientInfo.metadata, (err, res) => {
558
+ if (err) {
559
+ resolve(createResult(false, err.message || err.details)); // 发生错误也是连接不成功
560
+ return;
561
+ }
562
+ let msg = res.getMessage();
563
+ if (msg != `${name} Welcome To Ultipa!`) {
564
+ resolve(createResult(false, res.getStatus().getMsg()));
565
+ return;
566
+ }
567
+ resolve(createResult(true, "ok"));
568
+ });
569
+ }));
570
+ });
571
+ }
572
+ static UqlUpdateSimple(conn, uqlMaker) {
573
+ return __awaiter(this, void 0, void 0, function* () {
574
+ let res = yield conn.uqlSingle(uqlMaker);
575
+ return res.responseWithoutData;
576
+ });
577
+ }
578
+ static UqlListSimple(conn, uqlMaker, keyFormat) {
579
+ var _a;
580
+ return __awaiter(this, void 0, void 0, function* () {
581
+ let res = yield ConnectionBase.UqlListSimpleAuto(conn, uqlMaker, keyFormat);
582
+ let { data } = res, others = __rest(res, ["data"]);
583
+ return Object.assign(Object.assign({}, others), { data: ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.values) || [] });
584
+ });
585
+ }
586
+ static UqlListSimpleAuto(conn, uqlMaker, keyFormat) {
587
+ var _a;
588
+ return __awaiter(this, void 0, void 0, function* () {
589
+ let res = yield conn.uqlSingle(uqlMaker);
590
+ let QueryReply = res.QueryReply;
591
+ let tables = (QueryReply === null || QueryReply === void 0 ? void 0 : QueryReply.getTables()) || [];
592
+ let mockTables = (_a = keyFormat === null || keyFormat === void 0 ? void 0 : keyFormat.mockData) === null || _a === void 0 ? void 0 : _a.tables;
593
+ if (mockTables) {
594
+ tables = mockTables;
595
+ }
596
+ let data = [];
597
+ for (const table of tables) {
598
+ let d = table.toKV();
599
+ d = utils_1.FormatResponse.formatObjects(d, keyFormat);
600
+ data.push({
601
+ name: table.name,
602
+ values: d,
603
+ });
604
+ }
605
+ return Object.assign(Object.assign({}, res.responseWithoutData), { data });
606
+ });
607
+ }
608
+ static UqlGetSimple(conn, uqlMaker, keyFormat) {
609
+ var _a, _b;
610
+ return __awaiter(this, void 0, void 0, function* () {
611
+ let res = yield conn.uqlSingle(uqlMaker);
612
+ let QueryReply = res.QueryReply;
613
+ let data = null;
614
+ if (QueryReply) {
615
+ data = (_b = (_a = QueryReply.singleDataTables()) === null || _a === void 0 ? void 0 : _a.toKV()) === null || _b === void 0 ? void 0 : _b[0];
616
+ data = utils_1.FormatResponse.formatObject(data, keyFormat);
617
+ }
618
+ return Object.assign(Object.assign({}, res.responseWithoutData), { data });
619
+ });
620
+ }
621
+ }
622
+ exports.ConnectionBase = ConnectionBase;
623
+ //# sourceMappingURL=connection.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.base.js","sourceRoot":"","sources":["../../../src/connection/extra/connection.base.ts"],"names":[],"mappings":"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"}