@shapediver/viewer.session-engine.session-engine 3.14.6 → 3.14.8

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 (44) hide show
  1. package/dist/implementation/SessionEngine.d.ts.map +1 -1
  2. package/dist/implementation/SessionEngine.js +5 -4
  3. package/dist/implementation/SessionEngine.js.map +1 -1
  4. package/dist/implementation/SessionEngineCore.d.ts +145 -0
  5. package/dist/implementation/SessionEngineCore.d.ts.map +1 -0
  6. package/dist/implementation/SessionEngineCore.js +544 -0
  7. package/dist/implementation/SessionEngineCore.js.map +1 -0
  8. package/dist/implementation/SessionEngineFacade.d.ts +101 -0
  9. package/dist/implementation/SessionEngineFacade.d.ts.map +1 -0
  10. package/dist/implementation/SessionEngineFacade.js +190 -0
  11. package/dist/implementation/SessionEngineFacade.js.map +1 -0
  12. package/dist/implementation/managers/CustomizationManager.d.ts +32 -0
  13. package/dist/implementation/managers/CustomizationManager.d.ts.map +1 -0
  14. package/dist/implementation/managers/CustomizationManager.js +266 -0
  15. package/dist/implementation/managers/CustomizationManager.js.map +1 -0
  16. package/dist/implementation/managers/ExportManager.d.ts +31 -0
  17. package/dist/implementation/managers/ExportManager.d.ts.map +1 -0
  18. package/dist/implementation/managers/ExportManager.js +150 -0
  19. package/dist/implementation/managers/ExportManager.js.map +1 -0
  20. package/dist/implementation/managers/FileUploadManager.d.ts +36 -0
  21. package/dist/implementation/managers/FileUploadManager.d.ts.map +1 -0
  22. package/dist/implementation/managers/FileUploadManager.js +178 -0
  23. package/dist/implementation/managers/FileUploadManager.js.map +1 -0
  24. package/dist/implementation/managers/ModelStateManager.d.ts +16 -0
  25. package/dist/implementation/managers/ModelStateManager.d.ts.map +1 -0
  26. package/dist/implementation/managers/ModelStateManager.js +130 -0
  27. package/dist/implementation/managers/ModelStateManager.js.map +1 -0
  28. package/dist/implementation/managers/OutputManager.d.ts +61 -0
  29. package/dist/implementation/managers/OutputManager.d.ts.map +1 -0
  30. package/dist/implementation/managers/OutputManager.js +358 -0
  31. package/dist/implementation/managers/OutputManager.js.map +1 -0
  32. package/dist/implementation/managers/ParameterManager.d.ts +28 -0
  33. package/dist/implementation/managers/ParameterManager.d.ts.map +1 -0
  34. package/dist/implementation/managers/ParameterManager.js +84 -0
  35. package/dist/implementation/managers/ParameterManager.js.map +1 -0
  36. package/dist/implementation/managers/SettingsManager.d.ts +55 -0
  37. package/dist/implementation/managers/SettingsManager.d.ts.map +1 -0
  38. package/dist/implementation/managers/SettingsManager.js +456 -0
  39. package/dist/implementation/managers/SettingsManager.js.map +1 -0
  40. package/dist/implementation/managers/UtilsManager.d.ts +65 -0
  41. package/dist/implementation/managers/UtilsManager.d.ts.map +1 -0
  42. package/dist/implementation/managers/UtilsManager.js +345 -0
  43. package/dist/implementation/managers/UtilsManager.js.map +1 -0
  44. package/package.json +8 -8
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UtilsManager = void 0;
13
+ const sdk_geometry_api_sdk_v2_1 = require("@shapediver/sdk.geometry-api-sdk-v2");
14
+ const viewer_shared_global_access_objects_1 = require("@shapediver/viewer.shared.global-access-objects");
15
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
16
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
17
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
18
+ const DraggingParameter_1 = require("../dto/interaction/DraggingParameter");
19
+ const GumballParameter_1 = require("../dto/interaction/GumballParameter");
20
+ const SelectionParameter_1 = require("../dto/interaction/SelectionParameter");
21
+ const Parameter_1 = require("../dto/Parameter");
22
+ const SessionTreeNode_1 = require("../SessionTreeNode");
23
+ class UtilsManager {
24
+ constructor(sessionEngineCore) {
25
+ this._converter = viewer_shared_services_1.Converter.instance;
26
+ this._eventEngine = viewer_shared_services_1.EventEngine.instance;
27
+ this._httpClient = viewer_shared_services_1.HttpClient.instance;
28
+ this._logger = viewer_shared_services_1.Logger.instance;
29
+ this._globalAccessObjects = viewer_shared_global_access_objects_1.GlobalAccessObjects.instance;
30
+ this._sceneTree = viewer_shared_node_tree_1.Tree.instance;
31
+ this._stateEngine = viewer_shared_services_1.StateEngine.instance;
32
+ this._retryCounter = 0;
33
+ this._sessionEngineCore = sessionEngineCore;
34
+ }
35
+ addBusyMode(busyId) {
36
+ for (const r in this._stateEngine.viewportEngines) {
37
+ if (this._stateEngine.viewportEngines[r] &&
38
+ !this._sessionEngineCore.excludeViewports.includes(r)) {
39
+ this._stateEngine.viewportEngines[r].busy.push(busyId);
40
+ this._sessionEngineCore.customizationBusyModes.push(busyId);
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Create an interaction parameter based on the parameter definition.
46
+ *
47
+ * @param parameter
48
+ * @returns
49
+ */
50
+ createInteractionParameter(parameter) {
51
+ const result = (0, viewer_shared_types_1.validateInteractionParameterSettings)(parameter.settings);
52
+ if (result.success) {
53
+ switch (parameter.settings.type) {
54
+ case "selection":
55
+ return new SelectionParameter_1.SelectionParameter(parameter, this._sessionEngineCore);
56
+ case "gumball":
57
+ return new GumballParameter_1.GumballParameter(parameter, this._sessionEngineCore);
58
+ case "dragging":
59
+ return new DraggingParameter_1.DraggingParameter(parameter, this._sessionEngineCore);
60
+ }
61
+ }
62
+ else {
63
+ this._logger.warn(`SessionEngine.createInteractionParameter: The value ${parameter.settings} is not a valid InteractionParameter: ${result.error.message}`);
64
+ }
65
+ return new Parameter_1.Parameter(parameter, this._sessionEngineCore);
66
+ }
67
+ waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ // call the update callback function on the session
70
+ if (this._sessionEngineCore.updateCallback)
71
+ yield Promise.resolve(this._sessionEngineCore.updateCallback(newNode, oldNode));
72
+ const promises = [];
73
+ // call the update callback functions on the outputs
74
+ for (const outputId in this._sessionEngineCore.outputs) {
75
+ if (oldOutputVersions[outputId] !== newOutputVersions[outputId]) {
76
+ promises.push(this._sessionEngineCore.outputs[outputId].triggerUpdateCallback(newNode.children.find((c) => c.name === outputId), oldNode.children.find((c) => c.name === outputId)));
77
+ }
78
+ }
79
+ yield Promise.all(promises);
80
+ // now that all callbacks are done
81
+ // we apply the materialDatabase (if there is one)
82
+ if (this._globalAccessObjects.assignMaterialFromDatabase)
83
+ yield this._globalAccessObjects.assignMaterialFromDatabase(newNode);
84
+ });
85
+ }
86
+ warningCreator(outputs, exports, throwError = false) {
87
+ const outputsWithIssues = {};
88
+ const exportsWithIssues = {};
89
+ for (const outputId in outputs) {
90
+ const outputObj = outputs[outputId];
91
+ if ((throwError === false && outputObj.msg !== undefined) ||
92
+ (outputObj.status_collect &&
93
+ outputObj.status_collect !==
94
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS) ||
95
+ (outputObj.status_computation &&
96
+ outputObj.status_computation !==
97
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)) {
98
+ outputsWithIssues[outputId] = outputObj;
99
+ }
100
+ }
101
+ for (const exportId in exports) {
102
+ const exportObj = exports[exportId];
103
+ if ((throwError === false && exportObj.msg !== undefined) ||
104
+ (exportObj.status_collect &&
105
+ exportObj.status_collect !==
106
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS) ||
107
+ (exportObj.status_computation &&
108
+ exportObj.status_computation !==
109
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)) {
110
+ exportsWithIssues[exportId] = exportObj;
111
+ }
112
+ }
113
+ if (Object.keys(outputsWithIssues).length > 0 ||
114
+ Object.keys(exportsWithIssues).length > 0) {
115
+ if (throwError) {
116
+ throw new viewer_shared_services_1.ShapeDiverViewerCustomizationError("There was at least one output or export with issues.", { outputs: outputsWithIssues, exports: exportsWithIssues });
117
+ }
118
+ else {
119
+ // create warning messages for outputs
120
+ for (const outputId in outputsWithIssues) {
121
+ let warning = "";
122
+ if (outputsWithIssues[outputId].msg)
123
+ warning += `\n\t- ${outputsWithIssues[outputId].msg}`;
124
+ if (outputsWithIssues[outputId].status_collect &&
125
+ outputsWithIssues[outputId].status_collect !==
126
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)
127
+ warning += `\n\t- status_collect is ${outputsWithIssues[outputId].status_collect}`;
128
+ if (outputsWithIssues[outputId].status_computation &&
129
+ outputsWithIssues[outputId].status_computation !==
130
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)
131
+ warning += `\n\t- status_computation is ${outputsWithIssues[outputId].status_computation}`;
132
+ if (warning)
133
+ this._logger.warn(`\nOutput(${outputId}):${warning}`);
134
+ }
135
+ // create warning messages for exports
136
+ for (const exportId in exportsWithIssues) {
137
+ let warning = "";
138
+ if (exportsWithIssues[exportId].msg)
139
+ warning += `\n\t- ${exportsWithIssues[exportId].msg}`;
140
+ if (exportsWithIssues[exportId].status_collect &&
141
+ exportsWithIssues[exportId].status_collect !==
142
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)
143
+ warning += `\n\t- status_collect is ${exportsWithIssues[exportId].status_collect}`;
144
+ if (exportsWithIssues[exportId].status_computation &&
145
+ exportsWithIssues[exportId].status_computation !==
146
+ sdk_geometry_api_sdk_v2_1.ResComputationStatus.SUCCESS)
147
+ warning += `\n\t- status_computation is ${exportsWithIssues[exportId].status_computation}`;
148
+ if (warning)
149
+ this._logger.warn(`\nExport(${exportId}):${warning}`);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ addToSceneTree(node) {
155
+ this._sceneTree.addNode(node);
156
+ this._sceneTree.root.updateVersion();
157
+ }
158
+ cancelProcess(eventInfo, customizationId, newNode = new SessionTreeNode_1.SessionTreeNode()) {
159
+ if (this._sessionEngineCore.customizationProcess !== customizationId) {
160
+ this.removeBusyMode(customizationId);
161
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, Object.assign(Object.assign({}, eventInfo), { status: "The request was exceeded by another customization request" }));
162
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).cancelProcess: The request was was exceeded by another request.`);
163
+ return newNode;
164
+ }
165
+ else if (this._sessionEngineCore.closed === true) {
166
+ this.removeBusyMode(customizationId);
167
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).cancelProcess: The session was closed during the request.`);
168
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "The session was closed during the request." }));
169
+ return new SessionTreeNode_1.SessionTreeNode();
170
+ }
171
+ }
172
+ checkAvailability(action, checkForModelId = false) {
173
+ var _a;
174
+ if (!this._sessionEngineCore.responseDto)
175
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError("Session.checkAvailability: responseDto not available.");
176
+ if (!this._sessionEngineCore.sessionId)
177
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError("Session.checkAvailability: sessionId not available.");
178
+ if (checkForModelId && !this._sessionEngineCore.modelId)
179
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError("Session.checkAvailability: modelId not available.");
180
+ if (action && !this._sessionEngineCore.responseDto.actions)
181
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError("Session.checkAvailability: actions not available.");
182
+ const responseDtoAction = (_a = this._sessionEngineCore.responseDto.actions) === null || _a === void 0 ? void 0 : _a.find((a) => a.name === action);
183
+ if (action && !responseDtoAction)
184
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: action ${action} not available.`);
185
+ }
186
+ handleError(err, retry = false) {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ if (!(err instanceof Error))
189
+ throw this._httpClient.convertError(err);
190
+ // Process the error
191
+ const e = (0, sdk_geometry_api_sdk_v2_1.processError)(err);
192
+ if (e instanceof sdk_geometry_api_sdk_v2_1.ResponseError) {
193
+ if (e.type === sdk_geometry_api_sdk_v2_1.ResErrorType.SESSION_GONE_ERROR) {
194
+ // case 1: the session is no longer available
195
+ // we try to re-initialize the session 3 times, if that does not work, we close it
196
+ this._logger.warn("The session has been closed, trying to re-initialize.");
197
+ if (this._sessionEngineCore.sessionId)
198
+ this._httpClient.removeDataLoading(this._sessionEngineCore.sessionId);
199
+ if (this._retryCounter < 3) {
200
+ // we retry this 3 times, the `retry` option in the init function is set to true and passed on
201
+ this._retryCounter = retry ? this._retryCounter + 1 : 1;
202
+ this._sessionEngineCore.initialized = false;
203
+ yield this._sessionEngineCore.init(this._sessionEngineCore.parameterValues, true);
204
+ }
205
+ else {
206
+ // the retries were exceeded, we close the session
207
+ this._logger.warn("Tried to retry the connect multiple times, bearer token still not valid. Closing Session.");
208
+ // eslint-disable-next-line no-empty
209
+ try {
210
+ yield this._sessionEngineCore.closeOnFailure();
211
+ }
212
+ catch (e) {
213
+ /* empty */
214
+ }
215
+ throw this._httpClient.convertError(e);
216
+ }
217
+ }
218
+ else if (e.type === sdk_geometry_api_sdk_v2_1.ResErrorType.JWT_VALIDATION_ERROR) {
219
+ // if any of the above errors occur, we try to get a new bearer token
220
+ // if we get a new one, we retry 3 times (by requiring new bearer tokens every time)
221
+ if (this._retryCounter < 3) {
222
+ if (this._sessionEngineCore.refreshJwtToken) {
223
+ yield this._sessionEngineCore.setJwtToken(yield this._sessionEngineCore.refreshJwtToken());
224
+ this._retryCounter = retry ? this._retryCounter + 1 : 1;
225
+ this._logger.warn("Re-trying with new bearer token.");
226
+ }
227
+ else {
228
+ // no bearer tokens are supplied, we close the session
229
+ this._logger.warn("No retry possible, no new bearer token was supplied. Closing Session.");
230
+ // eslint-disable-next-line no-empty
231
+ try {
232
+ yield this._sessionEngineCore.closeOnFailure();
233
+ }
234
+ catch (e) {
235
+ /* empty */
236
+ }
237
+ throw this._httpClient.convertError(e);
238
+ }
239
+ }
240
+ else {
241
+ // the retries were exceeded, we close the session
242
+ this._logger.warn("Tried to retry the connect multiple times, bearer token still not valid. Closing Session.");
243
+ // eslint-disable-next-line no-empty
244
+ try {
245
+ yield this._sessionEngineCore.closeOnFailure();
246
+ }
247
+ catch (e) {
248
+ /* empty */
249
+ }
250
+ throw this._httpClient.convertError(e);
251
+ }
252
+ }
253
+ else {
254
+ throw this._httpClient.convertError(e);
255
+ }
256
+ }
257
+ else {
258
+ throw this._httpClient.convertError(e);
259
+ }
260
+ });
261
+ }
262
+ /**
263
+ * Process the image input and return the image data and array buffer.
264
+ *
265
+ * In the case of the image being a Blob or File, the image data is constructed from the Blob or File.
266
+ * In the case of the image being a string, we check if it is a data URL or a URL.
267
+ * If it is a data URL, we convert it to a Blob and construct the image data from the Blob.
268
+ * If it is a URL, we download the image and return the image data and array buffer.
269
+ *
270
+ * @param image
271
+ * @returns
272
+ */
273
+ processImageInput(image) {
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ if (image instanceof File || image instanceof Blob)
276
+ return this._converter.constructImageData(image);
277
+ let imageString;
278
+ if (image instanceof Promise) {
279
+ imageString = yield image;
280
+ }
281
+ else if (typeof image === "function") {
282
+ const result = image();
283
+ if (result instanceof Promise) {
284
+ imageString = yield result;
285
+ }
286
+ else {
287
+ imageString = result;
288
+ }
289
+ }
290
+ else {
291
+ imageString = image;
292
+ }
293
+ if (imageString.startsWith("data:")) {
294
+ // case where the image is a data URL
295
+ const { blob, arrayBuffer } = this._converter.dataURLtoBlob(imageString);
296
+ return {
297
+ imageData: {
298
+ format: blob.type,
299
+ size: blob.size,
300
+ },
301
+ arrayBuffer: arrayBuffer,
302
+ };
303
+ }
304
+ else {
305
+ // case where the image is a URL
306
+ const file = yield new sdk_geometry_api_sdk_v2_1.UtilsApi(this._sessionEngineCore.sdkConfig).downloadImage(this._sessionEngineCore.sessionId, imageString, {
307
+ responseType: "arraybuffer",
308
+ });
309
+ return {
310
+ imageData: {
311
+ format: file.data.type,
312
+ size: file.data.size,
313
+ },
314
+ arrayBuffer: yield file.data.arrayBuffer(),
315
+ };
316
+ }
317
+ });
318
+ }
319
+ /**
320
+ * Returns a promise that resolves after the amount of milliseconds provided.
321
+ *
322
+ * @param ms the milliseconds
323
+ * @returns promise that resolve after specified milliseconds
324
+ */
325
+ timeout(ms) {
326
+ return __awaiter(this, void 0, void 0, function* () {
327
+ return new Promise((resolve) => setTimeout(resolve, ms));
328
+ });
329
+ }
330
+ removeBusyMode(busyId) {
331
+ for (const r in this._stateEngine.viewportEngines) {
332
+ if (this._stateEngine.viewportEngines[r] &&
333
+ this._stateEngine.viewportEngines[r].busy.includes(busyId))
334
+ this._stateEngine.viewportEngines[r].busy.splice(this._stateEngine.viewportEngines[r].busy.indexOf(busyId), 1);
335
+ if (this._sessionEngineCore.customizationBusyModes.includes(busyId))
336
+ this._sessionEngineCore.customizationBusyModes.splice(this._sessionEngineCore.customizationBusyModes.indexOf(busyId), 1);
337
+ }
338
+ }
339
+ removeFromSceneTree(node) {
340
+ this._sceneTree.removeNode(node);
341
+ this._sceneTree.root.updateVersion();
342
+ }
343
+ }
344
+ exports.UtilsManager = UtilsManager;
345
+ //# sourceMappingURL=UtilsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtilsManager.js","sourceRoot":"","sources":["../../../src/implementation/managers/UtilsManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.session-engine.session-engine",
3
- "version": "3.14.6",
3
+ "version": "3.14.8",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -39,15 +39,15 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@shapediver/sdk.geometry-api-sdk-v2": "2.10.0",
42
- "@shapediver/viewer.data-engine.shared-types": "3.14.6",
42
+ "@shapediver/viewer.data-engine.shared-types": "3.14.8",
43
43
  "@shapediver/viewer.settings": "1.2.1",
44
- "@shapediver/viewer.shared.build-data": "3.14.6",
45
- "@shapediver/viewer.shared.global-access-objects": "3.14.6",
46
- "@shapediver/viewer.shared.node-tree": "3.14.6",
47
- "@shapediver/viewer.shared.services": "3.14.6",
48
- "@shapediver/viewer.shared.types": "3.14.6",
44
+ "@shapediver/viewer.shared.build-data": "3.14.8",
45
+ "@shapediver/viewer.shared.global-access-objects": "3.14.8",
46
+ "@shapediver/viewer.shared.node-tree": "3.14.8",
47
+ "@shapediver/viewer.shared.services": "3.14.8",
48
+ "@shapediver/viewer.shared.types": "3.14.8",
49
49
  "@shapediver/viewer.utils.mime-type": "1.1.0",
50
50
  "gl-matrix": "3.3.0"
51
51
  },
52
- "gitHead": "1b388e6511202138c2da10028d87b8566367d971"
52
+ "gitHead": "74cd1875c554a54c2cd67d7955d3e823ae7805f5"
53
53
  }