@coherentglobal/spark-execute-sdk 0.4.15 → 0.4.16
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/dist/browser.js +76 -21
- package/package.json +2 -2
- package/src/browser.js +61 -21
- package/types/browser.d.ts +5 -5
- package/types/browser.d.ts.map +1 -1
package/dist/browser.js
CHANGED
|
@@ -1056,15 +1056,30 @@ var WasmRunner = /*#__PURE__*/function () {
|
|
|
1056
1056
|
*
|
|
1057
1057
|
* @param {RunnerConfig} wasmRunnerConfig
|
|
1058
1058
|
*/
|
|
1059
|
-
function WasmRunner() {
|
|
1060
|
-
var license = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
1059
|
+
function WasmRunner(wasmRunnerConfig) {
|
|
1061
1060
|
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCallback;
|
|
1061
|
+
var license = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
|
|
1062
1062
|
(0, _classCallCheck2["default"])(this, WasmRunner);
|
|
1063
1063
|
utils.isCompatible();
|
|
1064
1064
|
this.license = license;
|
|
1065
1065
|
this.callback = callback;
|
|
1066
1066
|
this.models = [];
|
|
1067
1067
|
this._logger = new logger_1["default"]();
|
|
1068
|
+
if (!utils.isEmpty(wasmRunnerConfig)) {
|
|
1069
|
+
if (Array.isArray(wasmRunnerConfig)) {
|
|
1070
|
+
this.models = wasmRunnerConfig.map(function (wsconfig) {
|
|
1071
|
+
return {
|
|
1072
|
+
id: wsconfig.id,
|
|
1073
|
+
url: wsconfig.url
|
|
1074
|
+
};
|
|
1075
|
+
});
|
|
1076
|
+
} else if ((0, _typeof2["default"])(wasmRunnerConfig) === "object") {
|
|
1077
|
+
this.models = [{
|
|
1078
|
+
id: wasmRunnerConfig.id,
|
|
1079
|
+
url: wasmRunnerConfig.url
|
|
1080
|
+
}];
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1068
1083
|
}
|
|
1069
1084
|
(0, _createClass2["default"])(WasmRunner, [{
|
|
1070
1085
|
key: "setLogLevel",
|
|
@@ -7399,13 +7414,13 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7399
7414
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7400
7415
|
(0, _classCallCheck2["default"])(this, Spark);
|
|
7401
7416
|
/**
|
|
7402
|
-
|
|
7403
|
-
|
|
7417
|
+
* @private
|
|
7418
|
+
*/
|
|
7404
7419
|
this._registry = undefined;
|
|
7405
7420
|
|
|
7406
7421
|
/**
|
|
7407
|
-
|
|
7408
|
-
|
|
7422
|
+
* @private
|
|
7423
|
+
*/
|
|
7409
7424
|
if (options !== null && options !== void 0 && options.log) {
|
|
7410
7425
|
this.logger = options.log;
|
|
7411
7426
|
}
|
|
@@ -7442,8 +7457,8 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7442
7457
|
this.priority = ["model", "onlineEndpoint"];
|
|
7443
7458
|
|
|
7444
7459
|
/**
|
|
7445
|
-
|
|
7446
|
-
|
|
7460
|
+
* @private
|
|
7461
|
+
*/
|
|
7447
7462
|
this.model = this._models((_this$config6 = this.config) === null || _this$config6 === void 0 ? void 0 : _this$config6.nodeGenModels);
|
|
7448
7463
|
}
|
|
7449
7464
|
(0, _createClass2["default"])(Spark, [{
|
|
@@ -7462,7 +7477,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7462
7477
|
value: function _models(nodegen) {
|
|
7463
7478
|
this.log({
|
|
7464
7479
|
eventType: "spark._models",
|
|
7465
|
-
msg:
|
|
7480
|
+
msg: "Parse models"
|
|
7466
7481
|
});
|
|
7467
7482
|
var models = [];
|
|
7468
7483
|
for (var i = 0; i < nodegen.length; i++) {
|
|
@@ -7492,7 +7507,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7492
7507
|
value: function validateConfig(config) {
|
|
7493
7508
|
var start = Date.now();
|
|
7494
7509
|
this.log({
|
|
7495
|
-
eventType:
|
|
7510
|
+
eventType: "spark.validateconfig.start"
|
|
7496
7511
|
});
|
|
7497
7512
|
var _validate = validate(config),
|
|
7498
7513
|
value = _validate.value,
|
|
@@ -7500,7 +7515,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7500
7515
|
if (!error) {
|
|
7501
7516
|
var end = Date.now();
|
|
7502
7517
|
this.log({
|
|
7503
|
-
eventType:
|
|
7518
|
+
eventType: "spark.validateconfig.startend",
|
|
7504
7519
|
duration: end - start
|
|
7505
7520
|
});
|
|
7506
7521
|
return value;
|
|
@@ -7508,7 +7523,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7508
7523
|
var message = JSON.stringify(error.details);
|
|
7509
7524
|
var _end = Date.now();
|
|
7510
7525
|
this.log({
|
|
7511
|
-
eventType:
|
|
7526
|
+
eventType: "spark.validateconfig.startend.error",
|
|
7512
7527
|
duration: _end - start
|
|
7513
7528
|
});
|
|
7514
7529
|
throw new Error("ValidationError: ".concat(message));
|
|
@@ -7560,7 +7575,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7560
7575
|
_context.next = 2;
|
|
7561
7576
|
break;
|
|
7562
7577
|
}
|
|
7563
|
-
throw new WasmRunnerErrors.BadRequestError(
|
|
7578
|
+
throw new WasmRunnerErrors.BadRequestError("Spark initialize is required. Please call initialize method");
|
|
7564
7579
|
case 2:
|
|
7565
7580
|
versionID = version_id || (input === null || input === void 0 ? void 0 : (_input$request_meta = input.request_meta) === null || _input$request_meta === void 0 ? void 0 : _input$request_meta.version_id) || (input === null || input === void 0 ? void 0 : (_input$request_meta2 = input.request_meta) === null || _input$request_meta2 === void 0 ? void 0 : _input$request_meta2.version_uuid);
|
|
7566
7581
|
lookup = {
|
|
@@ -7598,7 +7613,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7598
7613
|
value: function () {
|
|
7599
7614
|
var _offlineModel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(input, versionID) {
|
|
7600
7615
|
var _this = this;
|
|
7601
|
-
var model, modelVersionId, callback, _model2$metaData$Engi, _model2$metaData, _model2$metaData$Engi2, _model2$metaData$Engi3, _model2$metaData2, _model2$metaData2$Eng, _model2, result;
|
|
7616
|
+
var model, modelVersionId, callback, _model2$metaData$Engi, _model2$metaData, _model2$metaData$Engi2, _model2$metaData$Engi3, _model2$metaData2, _model2$metaData2$Eng, _model2, retry, MAX_RETRY, error, duration, result, _model$metaData$Engin6, _model$metaData5, _model$metaData5$Engi, _model$metaData$Engin7, _model$metaData6, _model$metaData6$Engi, start;
|
|
7602
7617
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
7603
7618
|
while (1) {
|
|
7604
7619
|
switch (_context3.prev = _context3.next) {
|
|
@@ -7670,7 +7685,7 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7670
7685
|
return _ref2.apply(this, arguments);
|
|
7671
7686
|
};
|
|
7672
7687
|
}();
|
|
7673
|
-
this._registry = new WasmRunner(
|
|
7688
|
+
this._registry = new WasmRunner(undefined, callback, "");
|
|
7674
7689
|
}
|
|
7675
7690
|
if (this._registry.isExist(modelVersionId)) {
|
|
7676
7691
|
_context3.next = 10;
|
|
@@ -7687,21 +7702,61 @@ var Spark = /*#__PURE__*/function () {
|
|
|
7687
7702
|
}
|
|
7688
7703
|
});
|
|
7689
7704
|
case 10:
|
|
7690
|
-
|
|
7705
|
+
retry = 0;
|
|
7706
|
+
MAX_RETRY = 3;
|
|
7707
|
+
error = true;
|
|
7708
|
+
duration = 0;
|
|
7709
|
+
case 14:
|
|
7710
|
+
if (!(error && retry <= MAX_RETRY)) {
|
|
7711
|
+
_context3.next = 32;
|
|
7712
|
+
break;
|
|
7713
|
+
}
|
|
7714
|
+
_context3.next = 17;
|
|
7691
7715
|
return this._registry.execute(input, modelVersionId, function () {});
|
|
7692
|
-
case
|
|
7716
|
+
case 17:
|
|
7693
7717
|
result = _context3.sent;
|
|
7718
|
+
if (!result.executeError) {
|
|
7719
|
+
_context3.next = 27;
|
|
7720
|
+
break;
|
|
7721
|
+
}
|
|
7722
|
+
retry++;
|
|
7723
|
+
start = Date.now(); // this.log({ eventType: "spark.execute", msg: 'Retry Execute' });
|
|
7724
|
+
this._registry.remove(modelVersionId);
|
|
7725
|
+
_context3.next = 24;
|
|
7726
|
+
return this._registry.append({
|
|
7727
|
+
id: modelVersionId,
|
|
7728
|
+
url: model.binary,
|
|
7729
|
+
meta: {
|
|
7730
|
+
folder_name: (_model$metaData$Engin6 = model === null || model === void 0 ? void 0 : (_model$metaData5 = model.metaData) === null || _model$metaData5 === void 0 ? void 0 : (_model$metaData5$Engi = _model$metaData5.EngineInformation) === null || _model$metaData5$Engi === void 0 ? void 0 : _model$metaData5$Engi.ProductName) !== null && _model$metaData$Engin6 !== void 0 ? _model$metaData$Engin6 : "",
|
|
7731
|
+
service_name: (_model$metaData$Engin7 = model === null || model === void 0 ? void 0 : (_model$metaData6 = model.metaData) === null || _model$metaData6 === void 0 ? void 0 : (_model$metaData6$Engi = _model$metaData6.EngineInformation) === null || _model$metaData6$Engi === void 0 ? void 0 : _model$metaData6$Engi.ServiceName) !== null && _model$metaData$Engin7 !== void 0 ? _model$metaData$Engin7 : ""
|
|
7732
|
+
}
|
|
7733
|
+
});
|
|
7734
|
+
case 24:
|
|
7735
|
+
duration = duration + (Date.now() - start);
|
|
7736
|
+
_context3.next = 30;
|
|
7737
|
+
break;
|
|
7738
|
+
case 27:
|
|
7739
|
+
error = false;
|
|
7740
|
+
if (retry > 0 && result.response_meta && result.response_meta.process_time !== undefined) {
|
|
7741
|
+
result.response_meta.process_time = result.response_meta.process_time + duration;
|
|
7742
|
+
}
|
|
7694
7743
|
return _context3.abrupt("return", result);
|
|
7695
|
-
case
|
|
7696
|
-
_context3.
|
|
7744
|
+
case 30:
|
|
7745
|
+
_context3.next = 14;
|
|
7746
|
+
break;
|
|
7747
|
+
case 32:
|
|
7748
|
+
_context3.next = 37;
|
|
7749
|
+
break;
|
|
7750
|
+
case 34:
|
|
7751
|
+
_context3.prev = 34;
|
|
7697
7752
|
_context3.t0 = _context3["catch"](4);
|
|
7698
7753
|
return _context3.abrupt("return", _context3.t0);
|
|
7699
|
-
case
|
|
7754
|
+
case 37:
|
|
7700
7755
|
case "end":
|
|
7701
7756
|
return _context3.stop();
|
|
7702
7757
|
}
|
|
7703
7758
|
}
|
|
7704
|
-
}, _callee3, this, [[4,
|
|
7759
|
+
}, _callee3, this, [[4, 34]]);
|
|
7705
7760
|
}));
|
|
7706
7761
|
function offlineModel(_x3, _x4) {
|
|
7707
7762
|
return _offlineModel.apply(this, arguments);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coherentglobal/spark-execute-sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "src/node.js",
|
|
6
6
|
"browser": "dist/browser.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"author": "",
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@coherentglobal/wasm-runner": "^0.0.
|
|
26
|
+
"@coherentglobal/wasm-runner": "^0.0.82",
|
|
27
27
|
"@types/node": "^18.7.18",
|
|
28
28
|
"axios": "^0.27.2",
|
|
29
29
|
"fs": "^0.0.1-security",
|
package/src/browser.js
CHANGED
|
@@ -5,23 +5,21 @@ const validate = require("./validate.js");
|
|
|
5
5
|
const processModels = require("./models.js");
|
|
6
6
|
const findModel = require("./findModels.js");
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
8
|
class Spark {
|
|
11
9
|
/**
|
|
12
10
|
* @param {object} config
|
|
13
11
|
*/
|
|
14
12
|
constructor(config, options = {}) {
|
|
15
13
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
18
16
|
this._registry = undefined;
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
23
21
|
if (options?.log) {
|
|
24
|
-
this.logger = options.log
|
|
22
|
+
this.logger = options.log;
|
|
25
23
|
}
|
|
26
24
|
|
|
27
25
|
/**
|
|
@@ -59,13 +57,13 @@ class Spark {
|
|
|
59
57
|
this.priority = ["model", "onlineEndpoint"];
|
|
60
58
|
|
|
61
59
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
64
62
|
this.model = this._models(this.config?.nodeGenModels);
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
log(msg) {
|
|
68
|
-
this.logger && this.logger(msg)
|
|
66
|
+
this.logger && this.logger(msg);
|
|
69
67
|
}
|
|
70
68
|
|
|
71
69
|
/**
|
|
@@ -74,16 +72,23 @@ class Spark {
|
|
|
74
72
|
* @returns {object}
|
|
75
73
|
*/
|
|
76
74
|
_models(nodegen) {
|
|
77
|
-
this.log({ eventType: "spark._models", msg:
|
|
75
|
+
this.log({ eventType: "spark._models", msg: "Parse models" });
|
|
78
76
|
const models = [];
|
|
79
77
|
|
|
80
78
|
for (let i = 0; i < nodegen.length; i++) {
|
|
81
79
|
const startDate = Date.now();
|
|
82
|
-
this.log({
|
|
80
|
+
this.log({
|
|
81
|
+
eventType: "spark._models.processModels.start",
|
|
82
|
+
msg: `Start process model ${i}`,
|
|
83
|
+
});
|
|
83
84
|
const model = processModels(nodegen[i], i, this.log.bind(this));
|
|
84
85
|
const endDate = Date.now();
|
|
85
|
-
this.log({
|
|
86
|
-
|
|
86
|
+
this.log({
|
|
87
|
+
eventType: "spark._models.processModels.end",
|
|
88
|
+
msg: `End process model ${i}`,
|
|
89
|
+
duration: endDate - startDate,
|
|
90
|
+
});
|
|
91
|
+
models.push(model);
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
return models;
|
|
@@ -95,16 +100,22 @@ class Spark {
|
|
|
95
100
|
*/
|
|
96
101
|
validateConfig(config) {
|
|
97
102
|
const start = Date.now();
|
|
98
|
-
this.log({ eventType:
|
|
103
|
+
this.log({ eventType: "spark.validateconfig.start" });
|
|
99
104
|
const { value, error } = validate(config);
|
|
100
105
|
if (!error) {
|
|
101
106
|
const end = Date.now();
|
|
102
|
-
this.log({
|
|
107
|
+
this.log({
|
|
108
|
+
eventType: "spark.validateconfig.startend",
|
|
109
|
+
duration: end - start,
|
|
110
|
+
});
|
|
103
111
|
return value;
|
|
104
112
|
} else {
|
|
105
113
|
const message = JSON.stringify(error.details);
|
|
106
114
|
const end = Date.now();
|
|
107
|
-
this.log({
|
|
115
|
+
this.log({
|
|
116
|
+
eventType: "spark.validateconfig.startend.error",
|
|
117
|
+
duration: end - start,
|
|
118
|
+
});
|
|
108
119
|
throw new Error(`ValidationError: ${message}`);
|
|
109
120
|
}
|
|
110
121
|
}
|
|
@@ -140,7 +151,9 @@ class Spark {
|
|
|
140
151
|
*/
|
|
141
152
|
async execute(input, version_id) {
|
|
142
153
|
if (this.model == undefined) {
|
|
143
|
-
throw new WasmRunnerErrors.BadRequestError(
|
|
154
|
+
throw new WasmRunnerErrors.BadRequestError(
|
|
155
|
+
"Spark initialize is required. Please call initialize method"
|
|
156
|
+
);
|
|
144
157
|
}
|
|
145
158
|
|
|
146
159
|
const versionID =
|
|
@@ -211,7 +224,7 @@ class Spark {
|
|
|
211
224
|
}
|
|
212
225
|
return hasVersionId;
|
|
213
226
|
};
|
|
214
|
-
this._registry = new WasmRunner(
|
|
227
|
+
this._registry = new WasmRunner(undefined, callback, "");
|
|
215
228
|
}
|
|
216
229
|
|
|
217
230
|
if (!this._registry.isExist(modelVersionId)) {
|
|
@@ -226,8 +239,35 @@ class Spark {
|
|
|
226
239
|
},
|
|
227
240
|
});
|
|
228
241
|
}
|
|
229
|
-
|
|
230
|
-
|
|
242
|
+
let retry = 0;
|
|
243
|
+
const MAX_RETRY = 3;
|
|
244
|
+
let error = true;
|
|
245
|
+
let duration = 0
|
|
246
|
+
while (error && retry <= MAX_RETRY) {
|
|
247
|
+
const result = await this._registry.execute(input, modelVersionId, () => { });
|
|
248
|
+
|
|
249
|
+
if (result.executeError) {
|
|
250
|
+
retry++;
|
|
251
|
+
const start = Date.now()
|
|
252
|
+
// this.log({ eventType: "spark.execute", msg: 'Retry Execute' });
|
|
253
|
+
this._registry.remove(modelVersionId);
|
|
254
|
+
await this._registry.append({
|
|
255
|
+
id: modelVersionId,
|
|
256
|
+
url: model.binary,
|
|
257
|
+
meta: {
|
|
258
|
+
folder_name: model?.metaData?.EngineInformation?.ProductName ?? "",
|
|
259
|
+
service_name: model?.metaData?.EngineInformation?.ServiceName ?? "",
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
duration = duration + (Date.now() - start);
|
|
263
|
+
} else {
|
|
264
|
+
error = false;
|
|
265
|
+
if (retry > 0 && result.response_meta && result.response_meta.process_time !== undefined) {
|
|
266
|
+
result.response_meta.process_time = result.response_meta.process_time + duration;
|
|
267
|
+
}
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
231
271
|
} catch (err) {
|
|
232
272
|
return err;
|
|
233
273
|
}
|
package/types/browser.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ declare class Spark {
|
|
|
5
5
|
*/
|
|
6
6
|
constructor(config: object, options?: {});
|
|
7
7
|
/**
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
10
|
private _registry;
|
|
11
11
|
logger: any;
|
|
12
12
|
/**
|
|
@@ -38,8 +38,8 @@ declare class Spark {
|
|
|
38
38
|
*/
|
|
39
39
|
private priority;
|
|
40
40
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
43
|
private model;
|
|
44
44
|
log(msg: any): void;
|
|
45
45
|
/**
|
|
@@ -69,7 +69,7 @@ declare class Spark {
|
|
|
69
69
|
* @returns {object}
|
|
70
70
|
*/
|
|
71
71
|
execute(input: object, version_id?: string | undefined): object;
|
|
72
|
-
offlineModel(input: any, versionID: any): Promise<
|
|
72
|
+
offlineModel(input: any, versionID: any): Promise<any>;
|
|
73
73
|
onlineModelEndpoint(input: any, versionID: any): Promise<any>;
|
|
74
74
|
}
|
|
75
75
|
//# sourceMappingURL=browser.d.ts.map
|
package/types/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.js"],"names":[],"mappings":";AAOA;IACE;;OAEG;IACH,oBAFW,MAAM,gBAqDhB;IAlDC;;OAEG;IACH,kBAA0B;IAMxB,YAAyB;IAG3B;;OAEG;IACH,eAAyC;IAEzC;;OAEG;IACH,eAAsD;IACtD;;OAEG;IACH,iBAA0D;IAC1D;;OAEG;IACH,cAGI;IACJ;;OAEG;IACH,YAAgD;IAChD;;OAEG;IACH,qBAA2C;IAE3C;;OAEG;IACH,iBAA2C;IAE3C;;OAEG;IACH,cAAqD;IAGvD,oBAEC;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,MAAM,CAuBlB;IACD;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAsBlB;IACD;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAOnB;IAED,wDASC;IAED;;;;;;OAMG;IACH,eAJW,MAAM,oCAEJ,MAAM,CAyBlB;IAED,uDAiGC;IAED,8DA6CC;CACF"}
|