@coherentglobal/spark-execute-sdk 0.3.2 → 0.3.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coherentglobal/spark-execute-sdk",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "",
5
5
  "mains": "index.js",
6
6
  "browser": "dist/browser.js",
@@ -20,7 +20,7 @@
20
20
  "author": "",
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
- "@coherentglobal/wasm-runner": "^0.0.45",
23
+ "@coherentglobal/wasm-runner": "^0.0.46",
24
24
  "@types/node": "^18.7.18",
25
25
  "axios": "^0.27.2",
26
26
  "chai": "^4.3.6",
package/src/browser.js CHANGED
@@ -4,8 +4,7 @@ const { WasmRunner } = require("@coherentglobal/wasm-runner");
4
4
  const validate = require("./validate.js");
5
5
  const processModels = require("./models.js");
6
6
 
7
- let registry = [];
8
- let INVOCATION_CACHE = [];
7
+ let registry = {};
9
8
 
10
9
  class Spark {
11
10
  /**
@@ -84,31 +83,6 @@ class Spark {
84
83
 
85
84
  return model;
86
85
  }
87
- /**
88
- *
89
- * @param {string} versionId
90
- */
91
- async load(versionId) {
92
- const { versionId: versionUuid, binary: modelPath } =
93
- this._getModel(versionId);
94
-
95
- console.log("SPARK load: ", modelPath);
96
- if (!utils.isEmpty(registry)) {
97
- registry = new WasmRunner();
98
- }
99
-
100
- await registry.append({
101
- id: versionUuid,
102
- url: modelPath,
103
- // size,
104
- });
105
-
106
- INVOCATION_CACHE = [...INVOCATION_CACHE, { id: versionUuid }];
107
- }
108
-
109
- isExist = (model) => {
110
- return registry.isExist(model);
111
- };
112
86
 
113
87
  /**
114
88
  * Execute model
@@ -118,22 +92,14 @@ class Spark {
118
92
  * @returns {object}
119
93
  */
120
94
  async execute(input, version_id) {
121
- if (!input.request_meta.version_id && !input.request_meta.version_uuid) {
122
- input.request_meta.version_id = version_id;
123
- }
124
95
  const versionID =
125
- input.request_meta.version_id || input.request_meta.version_uuid;
96
+ version_id ||
97
+ input.request_meta.version_id ||
98
+ input.request_meta.version_uuid;
126
99
 
127
100
  const model = this._getModel(versionID);
128
101
 
129
- await this.load(model.versionId);
130
-
131
- // logger.info({
132
- // EventType: "ExecuteModel",
133
- // TextMessage: `Execute uuid: ${model.versionId}`,
134
- // });
135
-
136
- if (input && this.isExist(model.versionId)) {
102
+ if (input) {
137
103
  let modelUrl = "";
138
104
 
139
105
  if (
@@ -163,7 +129,6 @@ class Spark {
163
129
  headers: { ...{ "content-type": "application/json" }, ...header },
164
130
  };
165
131
 
166
- // console.log("OPTIONS", options);
167
132
  modelUrl = new URL(
168
133
  `/${this.tenant}/api/v3/version/${input.request_meta.version_id}`,
169
134
  this.url
@@ -177,13 +142,18 @@ class Spark {
177
142
  throw new WasmRunnerErrors.UnauthorizedError();
178
143
  }
179
144
  } else if (this.isCompatible) {
180
- const modelIndex = INVOCATION_CACHE.findIndex(
181
- (item) => item.id === model.versionId
182
- );
183
-
184
- INVOCATION_CACHE[modelIndex].lastUsed = Date.now();
145
+ if (!(registry instanceof WasmRunner)) {
146
+ registry = new WasmRunner();
147
+ }
185
148
 
186
- const result = await registry.execute(input, model.versionId, true);
149
+ if (!registry.isExist(versionID)) {
150
+ await registry.append({
151
+ id: versionID,
152
+ url: model.binary,
153
+ // size,
154
+ });
155
+ }
156
+ const result = await registry.execute(input, versionID);
187
157
 
188
158
  return result;
189
159
  } else {
package/src/node.js CHANGED
@@ -6,9 +6,8 @@ const validate = require("./validate.js");
6
6
  const processModels = require("./models.js");
7
7
  const got = require("got");
8
8
 
9
- // const resolverDir = path.join(__dirname, "/tenant_resolver");
10
9
  let registry = [];
11
- let INVOCATION_CACHE = [];
10
+
12
11
  class Spark {
13
12
  /**
14
13
  * @param {object} config
@@ -52,12 +51,6 @@ class Spark {
52
51
  * @private
53
52
  */
54
53
  this.fallbackEnabled = false;
55
-
56
- // (async () => {
57
- // if (!(await utils.isPathExist(resolverDir))) {
58
- // await fs.promises.mkdir(resolverDir, { mode: 0o750 });
59
- // }
60
- // })();
61
54
  }
62
55
 
63
56
  /**
@@ -101,66 +94,6 @@ class Spark {
101
94
  return model;
102
95
  }
103
96
 
104
- /**
105
- *
106
- * @param {string} versionId
107
- */
108
- async load(versionId) {
109
- const { versionId: versionUuid, binary: modelPath } =
110
- this._getModel(versionId);
111
-
112
- logger.info({
113
- EventType: "ModelInfo",
114
- TextMessage: `Append model tenant: ${this.tenant} uuid: ${versionUuid}`,
115
- });
116
-
117
- // if (!registry[this.tenant]) {
118
- if (!utils.isEmpty(registry)) {
119
- // const resolverPath = path.join(
120
- // resolverDir,
121
- // `externalResolver_${this.tenant}.js`
122
- // );
123
-
124
- // const template = await fs.promises.readFile(
125
- // require.resolve("./resolver/externalResolver"),
126
- // {
127
- // encoding: "utf8",
128
- // flag: "r",
129
- // }
130
- // );
131
-
132
- // await fs.promises.writeFile(
133
- // resolverPath,
134
- // template.replace("%%tenant_to_replace%%", this.tenant)
135
- // );
136
-
137
- registry = new WasmRunner();
138
- }
139
-
140
- console.log("APPENDING");
141
- await registry.append({
142
- id: versionUuid,
143
- url: modelPath,
144
- // size,
145
- });
146
-
147
- INVOCATION_CACHE = [
148
- ...INVOCATION_CACHE,
149
- { id: versionUuid },
150
- // { id: versionUuid, tenant: this.tenant },
151
- ];
152
- }
153
-
154
- /**
155
- * Check for exiting Model
156
- *
157
- * @param {string} model
158
- * @returns {boolean}
159
- */
160
- isExist = (model) => {
161
- return registry.isExist(model);
162
- };
163
-
164
97
  /**
165
98
  * Execute model
166
99
  *
@@ -169,22 +102,21 @@ class Spark {
169
102
  * @returns {object}
170
103
  */
171
104
  async execute(input, version_id) {
172
- if (!input.request_meta.version_id && !input.request_meta.version_uuid) {
173
- input.request_meta.version_id = version_id;
174
- }
175
105
  const versionID =
176
- input.request_meta.version_id || input.request_meta.version_uuid;
106
+ version_id ||
107
+ input.request_meta.version_id ||
108
+ input.request_meta.version_uuid;
177
109
 
178
110
  const model = this._getModel(versionID);
179
111
 
180
- await this.load(model.versionId);
112
+ // await this.load(model.versionId);
181
113
 
182
114
  logger.info({
183
115
  EventType: "ExecuteModel",
184
116
  TextMessage: `Execute uuid: ${model.versionId}`,
185
117
  });
186
118
 
187
- if (this.isExist(model.versionId)) {
119
+ if (input) {
188
120
  let modelUrl = "";
189
121
 
190
122
  if (
@@ -226,13 +158,18 @@ class Spark {
226
158
  throw new WasmRunnerErrors.UnauthorizedError();
227
159
  }
228
160
  } else if (this.isCompatible) {
229
- const modelIndex = INVOCATION_CACHE.findIndex(
230
- (item) => item.id === model.versionId
231
- );
232
-
233
- INVOCATION_CACHE[modelIndex].lastUsed = Date.now();
161
+ if (!(registry instanceof WasmRunner)) {
162
+ registry = new WasmRunner();
163
+ }
234
164
 
235
- const result = await registry.execute(input, model.versionId, true);
165
+ if (!registry.isExist(versionID)) {
166
+ await registry.append({
167
+ id: versionID,
168
+ url: model.binary,
169
+ // size,
170
+ });
171
+ }
172
+ const result = await registry.execute(input, versionID);
236
173
 
237
174
  return result;
238
175
  } else {
@@ -1,26 +1,18 @@
1
- const Spark = require("../src/index");
1
+ const Spark = require("../src/node");
2
2
  const dummyConfig = require("./mock-data/dummy-config.json");
3
3
  const should = require("should");
4
4
  const validMockData = require("./mock-data/valid.json");
5
5
 
6
6
  describe("Spark Execute", async function () {
7
- it("should load model", async function () {
8
- const tenant = "test";
9
- const model = "dummy-model-uuid";
10
- const spark = new Spark(dummyConfig);
11
- await spark.load(model);
12
-
13
- should(spark.isExist(tenant, model)).be.true();
14
- });
15
-
16
7
  it("should execute model", async function () {
17
8
  const model = "dummy-model-uuid";
18
9
  const spark = new Spark(dummyConfig);
19
- await spark.load(model);
20
10
 
21
11
  const res = await spark.execute(validMockData);
22
- const data = JSON.parse(res);
23
- // typeof res === "object" ? JSON.parse(JSON.stringify(res)) : res;
12
+
13
+ // const data = JSON.parse(res);
14
+ const data =
15
+ typeof res === "object" ? JSON.parse(JSON.stringify(res)) : res;
24
16
 
25
17
  data.response_data.should.exist;
26
18
  data.response_data.outputs.should.exist;
@@ -54,12 +54,6 @@ declare class Spark {
54
54
  * @returns {boolean}
55
55
  */
56
56
  _getModel(id: string): boolean;
57
- /**
58
- *
59
- * @param {string} versionId
60
- */
61
- load(versionId: string): Promise<void>;
62
- isExist: (model: any) => any;
63
57
  /**
64
58
  * Execute model
65
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.js"],"names":[],"mappings":";AASA;IACE;;OAEG;IACH,oBAFW,MAAM,EAwChB;IArCC;;OAEG;IACH,eAAyC;IAMzC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,iBAAwB;IACxB;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,YAAc;IACd;;OAEG;IACH,qBAA2C;IAC3C;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,wBAA4B;IAE9B;;;;OAIG;IACH,iBAHW,MAAM,GACJ,MAAM,CAKlB;IACD;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAUlB;IACD;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAOnB;IACD;;;OAGG;IACH,gBAFW,MAAM,iBAkBhB;IAED,6BAEE;IAEF;;;;;;OAMG;IACH,eAJW,MAAM,cACN,MAAM,GACJ,MAAM,CA6ElB;CACF"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.js"],"names":[],"mappings":";AAQA;IACE;;OAEG;IACH,oBAFW,MAAM,EAwChB;IArCC;;OAEG;IACH,eAAyC;IAMzC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,iBAAwB;IACxB;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,YAAc;IACd;;OAEG;IACH,qBAA2C;IAC3C;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,wBAA4B;IAE9B;;;;OAIG;IACH,iBAHW,MAAM,GACJ,MAAM,CAKlB;IACD;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAUlB;IACD;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAOnB;IAED;;;;;;OAMG;IACH,eAJW,MAAM,cACN,MAAM,GACJ,MAAM,CAyElB;CACF"}
package/types/node.d.ts CHANGED
@@ -54,18 +54,6 @@ declare class Spark {
54
54
  * @returns {boolean}
55
55
  */
56
56
  _getModel(id: string): boolean;
57
- /**
58
- *
59
- * @param {string} versionId
60
- */
61
- load(versionId: string): Promise<void>;
62
- /**
63
- * Check for exiting Model
64
- *
65
- * @param {string} model
66
- * @returns {boolean}
67
- */
68
- isExist: (model: string) => boolean;
69
57
  /**
70
58
  * Execute model
71
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.js"],"names":[],"mappings":";AAWA;IACE;;OAEG;IACH,oBAFW,MAAM,EA+ChB;IA5CC;;OAEG;IACH,eAAyC;IAMzC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,iBAAwB;IACxB;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,YAAc;IACd;;OAEG;IACH,qBAA2C;IAC3C;;OAEG;IACH,cAAwC;IAExC;;OAEG;IACH,wBAA4B;IAS9B;;;;OAIG;IACH,iBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAclB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAOnB;IAED;;;OAGG;IACH,gBAFW,MAAM,iBA8ChB;IAED;;;;;OAKG;IACH,iBAHW,MAAM,KACJ,OAAO,CAIlB;IAEF;;;;;;OAMG;IACH,eAJW,MAAM,cACN,MAAM,GACJ,MAAM,CA6ElB;CAMF"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.js"],"names":[],"mappings":";AAUA;IACE;;OAEG;IACH,oBAFW,MAAM,EAyChB;IAtCC;;OAEG;IACH,eAAyC;IAMzC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,iBAAwB;IACxB;;OAEG;IACH,cAAwC;IACxC;;OAEG;IACH,YAAc;IACd;;OAEG;IACH,qBAA2C;IAC3C;;OAEG;IACH,cAAwC;IAExC;;OAEG;IACH,wBAA4B;IAG9B;;;;OAIG;IACH,iBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAclB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAOnB;IAED;;;;;;OAMG;IACH,eAJW,MAAM,cACN,MAAM,GACJ,MAAM,CAmFlB;CAMF"}