@shapediver/viewer.shared.services 2.10.1-rc.0 → 2.11.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 (58) hide show
  1. package/dist/converter/Converter.d.ts +15 -7
  2. package/dist/converter/Converter.d.ts.map +1 -1
  3. package/dist/converter/Converter.js +63 -52
  4. package/dist/converter/Converter.js.map +1 -1
  5. package/dist/dom-event-engine/DomEventEngine.js +9 -5
  6. package/dist/dom-event-engine/DomEventEngine.js.map +1 -1
  7. package/dist/dom-event-engine/IDomEventListener.js +2 -1
  8. package/dist/event-engine/EventEngine.js +16 -12
  9. package/dist/event-engine/EventEngine.js.map +1 -1
  10. package/dist/event-engine/EventTypes.js +18 -15
  11. package/dist/event-engine/EventTypes.js.map +1 -1
  12. package/dist/event-engine/interfaces/ICallback.js +2 -1
  13. package/dist/event-engine/interfaces/IEvent.js +2 -1
  14. package/dist/event-engine/interfaces/IEvent.js.map +1 -1
  15. package/dist/event-engine/interfaces/IListener.js +2 -1
  16. package/dist/http-client/HttpClient.d.ts +75 -2
  17. package/dist/http-client/HttpClient.d.ts.map +1 -1
  18. package/dist/http-client/HttpClient.js +200 -27
  19. package/dist/http-client/HttpClient.js.map +1 -1
  20. package/dist/http-client/HttpResponse.d.ts +1 -0
  21. package/dist/http-client/HttpResponse.d.ts.map +1 -1
  22. package/dist/http-client/HttpResponse.js +2 -1
  23. package/dist/index.js +80 -32
  24. package/dist/index.js.map +1 -1
  25. package/dist/input-validator/InputValidator.js +16 -9
  26. package/dist/input-validator/InputValidator.js.map +1 -1
  27. package/dist/logger/ErrorTypeGuards.js +55 -35
  28. package/dist/logger/ErrorTypeGuards.js.map +1 -1
  29. package/dist/logger/Logger.js +7 -3
  30. package/dist/logger/Logger.js.map +1 -1
  31. package/dist/logger/ShapeDiverBackendErrors.js +13 -7
  32. package/dist/logger/ShapeDiverBackendErrors.js.map +1 -1
  33. package/dist/logger/ShapeDiverError.js +9 -4
  34. package/dist/logger/ShapeDiverError.js.map +1 -1
  35. package/dist/logger/ShapeDiverViewerErrors.js +40 -25
  36. package/dist/logger/ShapeDiverViewerErrors.js.map +1 -1
  37. package/dist/performance-evaluator/PerformanceEvaluator.d.ts +13 -0
  38. package/dist/performance-evaluator/PerformanceEvaluator.d.ts.map +1 -1
  39. package/dist/performance-evaluator/PerformanceEvaluator.js +39 -3
  40. package/dist/performance-evaluator/PerformanceEvaluator.js.map +1 -1
  41. package/dist/settings-engine/SettingsEngine.js +20 -16
  42. package/dist/settings-engine/SettingsEngine.js.map +1 -1
  43. package/dist/state-engine/StateEngine.js +8 -4
  44. package/dist/state-engine/StateEngine.js.map +1 -1
  45. package/dist/state-engine/StatePromise.js +5 -1
  46. package/dist/state-engine/StatePromise.js.map +1 -1
  47. package/dist/system-info/SystemInfo.js +10 -3
  48. package/dist/system-info/SystemInfo.js.map +1 -1
  49. package/dist/type-check/TypeChecker.js +5 -1
  50. package/dist/type-check/TypeChecker.js.map +1 -1
  51. package/dist/uuid-generator/UuidGenerator.js +10 -6
  52. package/dist/uuid-generator/UuidGenerator.js.map +1 -1
  53. package/package.json +4 -4
  54. package/src/converter/Converter.ts +69 -62
  55. package/src/http-client/HttpClient.ts +224 -31
  56. package/src/http-client/HttpResponse.ts +3 -1
  57. package/src/performance-evaluator/PerformanceEvaluator.ts +33 -3
  58. package/src/settings-engine/SettingsEngine.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EventTypes.js","sourceRoot":"","sources":["../../src/event-engine/EventTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;AAC7B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC3B,sFAA+D,CAAA;AACnE,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,QAE9B;AAED,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,wEAAqD,CAAA;AACzD,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,WAAW;AACX,gBAAgB;AAChB,kBAAkB;AAClB,0BAA0B;AAC1B,2BAA2B;AAC3B,wBAAwB;AACxB,oBAAoB;AACpB,qBAAqB;AAErB,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC1B,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;IACnC,0EAAoD,CAAA;IACpD,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;AACvC,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,oFAA+D,CAAA;AACnE,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,2CAAyB,CAAA;IACzB,+CAA6B,CAAA;IAC7B,uCAAqB,CAAA;IACrB,6CAA2B,CAAA;AAC/B,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAN,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC7B,8DAAqC,CAAA;IACrC,4DAAmC,CAAA;IACnC,0DAAiC,CAAA;IACjC,0DAAiC,CAAA;IACjC,4DAAmC,CAAA;IACnC,4DAAmC,CAAA;IACnC,8DAAqC,CAAA;AACzC,CAAC,EARW,qBAAqB,KAArB,qBAAqB,QAQhC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,cAAc;CACvB,CAAC"}
1
+ {"version":3,"file":"EventTypes.js","sourceRoot":"","sources":["../../src/event-engine/EventTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;AAC7B,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAED,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC3B,sFAA+D,CAAA;AACnE,CAAC,EAFW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAE9B;AAED,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,wEAAqD,CAAA;AACzD,CAAC,EAFW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAE1B;AAED,WAAW;AACX,gBAAgB;AAChB,kBAAkB;AAClB,0BAA0B;AAC1B,2BAA2B;AAC3B,wBAAwB;AACxB,oBAAoB;AACpB,qBAAqB;AAErB,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC1B,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;IACnC,0EAAoD,CAAA;IACpD,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;AACvC,CAAC,EATW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAS7B;AAED,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,oFAA+D,CAAA;AACnE,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAED,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,2CAAyB,CAAA;IACzB,+CAA6B,CAAA;IAC7B,uCAAqB,CAAA;IACrB,6CAA2B,CAAA;AAC/B,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC7B,8DAAqC,CAAA;IACrC,4DAAmC,CAAA;IACnC,0DAAiC,CAAA;IACjC,0DAAiC,CAAA;IACjC,4DAAmC,CAAA;IACnC,4DAAmC,CAAA;IACnC,8DAAqC,CAAA;AACzC,CAAC,EARW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAQhC;AAEY,QAAA,SAAS,GAAG;IACrB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,cAAc;CACvB,CAAC"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=ICallback.js.map
@@ -1,3 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
1
3
  ;
2
- export {};
3
4
  //# sourceMappingURL=IEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEvent.js","sourceRoot":"","sources":["../../../src/event-engine/interfaces/IEvent.ts"],"names":[],"mappings":"AAA0B,CAAC"}
1
+ {"version":3,"file":"IEvent.js","sourceRoot":"","sources":["../../../src/event-engine/interfaces/IEvent.ts"],"names":[],"mappings":";;AAA0B,CAAC"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=IListener.js.map
@@ -3,9 +3,25 @@ import { ShapeDiverError as ShapeDiverBackendError } from '@shapediver/sdk.geome
3
3
  import { HttpResponse } from './HttpResponse';
4
4
  export declare class HttpClient {
5
5
  private static _instance;
6
+ private _dataCache;
7
+ private _enableCaching;
8
+ private _excludedQueryParameters;
9
+ private _maxCacheSize;
6
10
  private _sessionLoading;
7
11
  private constructor();
8
12
  static get instance(): HttpClient;
13
+ get enableCaching(): boolean;
14
+ set enableCaching(value: boolean);
15
+ get excludedQueryParameters(): string[];
16
+ set excludedQueryParameters(value: string[]);
17
+ get maxCacheSize(): number;
18
+ set maxCacheSize(value: number);
19
+ /**
20
+ * Add the data loading options from a session.
21
+ *
22
+ * @param sessionId
23
+ * @param callbacks
24
+ */
9
25
  addDataLoading(sessionId: string, callbacks: {
10
26
  getAsset: (url: string) => Promise<[ArrayBuffer, string, string]>;
11
27
  downloadTexture: (sessionId: string, url: string) => Promise<[ArrayBuffer, string]>;
@@ -20,9 +36,66 @@ export declare class HttpClient {
20
36
  * @param e
21
37
  */
22
38
  convertError(e: ShapeDiverBackendError | Error | unknown): void;
23
- get(href: string, config?: AxiosRequestConfig, textureLoading?: boolean): Promise<HttpResponse<any>>;
24
- loadTexture(href: string): Promise<HttpResponse<ArrayBuffer>>;
39
+ /**
40
+ * Get the requested resource either as a download or from the cache.
41
+ * If available, the registered session loading is used for download.
42
+ * Textures are downloaded via a specific endpoint and can be converted in this step as well.
43
+ * Depending on the provided caching options, the requested resource might already be cached.
44
+ *
45
+ * @param href
46
+ * @param config
47
+ * @param textureLoading
48
+ * @param textureConversion
49
+ * @returns
50
+ */
51
+ get(href: string, config?: AxiosRequestConfig, textureLoading?: boolean, textureConversion?: boolean): Promise<HttpResponse<unknown>>;
52
+ /**
53
+ * Get the requested texture either as a download or from the cache.
54
+ *
55
+ * @param href
56
+ * @returns
57
+ */
58
+ loadTexture(href: string): Promise<HttpResponse<HTMLImageElement>>;
59
+ /**
60
+ * Add the data loading options from a session.
61
+ *
62
+ * @param sessionId
63
+ */
25
64
  removeDataLoading(sessionId: string): void;
65
+ /**
66
+ * Add
67
+ *
68
+ * @param key
69
+ * @param value
70
+ */
71
+ private addToCache;
72
+ /**
73
+ * Calculate the current cache size from all resolved promises.
74
+ *
75
+ * @returns
76
+ */
77
+ private calculateCacheSize;
78
+ /**
79
+ * Get the value of an object from the cache.
80
+ *
81
+ * @param key
82
+ * @returns
83
+ */
84
+ private getFromCache;
85
+ /**
86
+ * Get the session id of the provided href.
87
+ *
88
+ * @param href
89
+ * @returns
90
+ */
26
91
  private getSessionId;
92
+ /**
93
+ * Convert the provided href to a data cache key.
94
+ * In this conversion the excludedQueryParameters are removed from the href.
95
+ *
96
+ * @param href
97
+ * @returns
98
+ */
99
+ private hrefToDataKey;
27
100
  }
28
101
  //# sourceMappingURL=HttpClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAkD,MAAM,qCAAqC,CAAA;AAE/I,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,UAAU;IAGnB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IAErC,OAAO,CAAC,eAAe,CAKhB;IAMP,OAAO;IAMP,WAAkB,QAAQ,eAEzB;IAMM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QAChD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;KACvF;IAID;;;;;;;;OAQG;IACI,YAAY,CAAC,CAAC,EAAE,sBAAsB,GAAG,KAAK,GAAG,OAAO;IAUlD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,kBAAoD,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAiE5I,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAInE,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAQ1C,OAAO,CAAC,YAAY;CAgBvB"}
1
+ {"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAkD,MAAM,qCAAqC,CAAC;AAEhJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,qBAAa,UAAU;IAEnB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IAErC,OAAO,CAAC,UAAU,CAOC;IACnB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,wBAAwB,CAAqD;IACrF,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,eAAe,CAKhB;IAOP,OAAO;IAMP,WAAkB,QAAQ,eAEzB;IAMD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,OAAO,EAItC;IAED,IAAW,uBAAuB,IAAI,MAAM,EAAE,CAE7C;IAED,IAAW,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjD;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAEpC;IAMD;;;;;OAKG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QAChD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;KACvF;IAID;;;;;;;;OAQG;IACI,YAAY,CAAC,CAAC,EAAE,sBAAsB,GAAG,KAAK,GAAG,OAAO;IAU/D;;;;;;;;;;;OAWG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,kBAAoD,EAAE,cAAc,GAAE,OAAe,EAAE,iBAAiB,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IA0GjM;;;;;OAKG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAI/E;;;;OAIG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAQ1C;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAmBlB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAepB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;CAkBxB"}
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -7,13 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
- import axios from 'axios';
11
- import { isGBResponseError, isGBRequestError, isGBError } from '@shapediver/sdk.geometry-api-sdk-v2';
12
- import { ShapeDiverGeometryBackendError, ShapeDiverGeometryBackendRequestError, ShapeDiverGeometryBackendResponseError } from '../logger/ShapeDiverBackendErrors';
13
- export class HttpClient {
14
- // #endregion Properties (2)
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HttpClient = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const sdk_geometry_api_sdk_v2_1 = require("@shapediver/sdk.geometry-api-sdk-v2");
18
+ const ShapeDiverBackendErrors_1 = require("../logger/ShapeDiverBackendErrors");
19
+ const Converter_1 = require("../converter/Converter");
20
+ class HttpClient {
21
+ // #endregion Properties (7)
15
22
  // #region Constructors (1)
23
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
16
24
  constructor() {
25
+ this._dataCache = new Map();
26
+ this._enableCaching = true;
27
+ this._excludedQueryParameters = ['Expires', 'Signature', 'Key-Pair-Id'];
28
+ this._maxCacheSize = 1024 * 1024 * 32;
17
29
  this._sessionLoading = {};
18
30
  }
19
31
  // #endregion Constructors (1)
@@ -22,7 +34,35 @@ export class HttpClient {
22
34
  return this._instance || (this._instance = new this());
23
35
  }
24
36
  // #endregion Public Static Accessors (1)
37
+ // #region Public Accessors (6)
38
+ get enableCaching() {
39
+ return this._enableCaching;
40
+ }
41
+ set enableCaching(value) {
42
+ this._enableCaching = value;
43
+ if (this._enableCaching === false)
44
+ this._dataCache.clear();
45
+ }
46
+ get excludedQueryParameters() {
47
+ return this._excludedQueryParameters;
48
+ }
49
+ set excludedQueryParameters(value) {
50
+ this._excludedQueryParameters = value;
51
+ }
52
+ get maxCacheSize() {
53
+ return this._maxCacheSize;
54
+ }
55
+ set maxCacheSize(value) {
56
+ this._maxCacheSize = value;
57
+ }
58
+ // #endregion Public Accessors (6)
25
59
  // #region Public Methods (5)
60
+ /**
61
+ * Add the data loading options from a session.
62
+ *
63
+ * @param sessionId
64
+ * @param callbacks
65
+ */
26
66
  addDataLoading(sessionId, callbacks) {
27
67
  this._sessionLoading[sessionId] = callbacks;
28
68
  }
@@ -36,18 +76,34 @@ export class HttpClient {
36
76
  * @param e
37
77
  */
38
78
  convertError(e) {
39
- if (isGBResponseError(e)) {
40
- throw new ShapeDiverGeometryBackendResponseError(e.message, e.status, e.error, e.desc);
79
+ if ((0, sdk_geometry_api_sdk_v2_1.isGBResponseError)(e)) {
80
+ throw new ShapeDiverBackendErrors_1.ShapeDiverGeometryBackendResponseError(e.message, e.status, e.error, e.desc);
41
81
  }
42
- else if (isGBRequestError(e)) {
43
- throw new ShapeDiverGeometryBackendRequestError(e.message, e.desc);
82
+ else if ((0, sdk_geometry_api_sdk_v2_1.isGBRequestError)(e)) {
83
+ throw new ShapeDiverBackendErrors_1.ShapeDiverGeometryBackendRequestError(e.message, e.desc);
44
84
  }
45
- else if (isGBError(e)) {
46
- throw new ShapeDiverGeometryBackendError(e.message);
85
+ else if ((0, sdk_geometry_api_sdk_v2_1.isGBError)(e)) {
86
+ throw new ShapeDiverBackendErrors_1.ShapeDiverGeometryBackendError(e.message);
47
87
  }
48
88
  }
49
- get(href, config = { responseType: 'arraybuffer' }, textureLoading = false) {
89
+ /**
90
+ * Get the requested resource either as a download or from the cache.
91
+ * If available, the registered session loading is used for download.
92
+ * Textures are downloaded via a specific endpoint and can be converted in this step as well.
93
+ * Depending on the provided caching options, the requested resource might already be cached.
94
+ *
95
+ * @param href
96
+ * @param config
97
+ * @param textureLoading
98
+ * @param textureConversion
99
+ * @returns
100
+ */
101
+ get(href, config = { responseType: 'arraybuffer' }, textureLoading = false, textureConversion = false) {
50
102
  return __awaiter(this, void 0, void 0, function* () {
103
+ const dataKey = this.hrefToDataKey(href);
104
+ // return element if it exists in cache
105
+ if (this._dataCache.has(dataKey))
106
+ return this.getFromCache(dataKey);
51
107
  // try to get sessionId from href
52
108
  let sessionId = this.getSessionId(href);
53
109
  // if href does not have sessionId, use the first session, if available
@@ -57,38 +113,69 @@ export class HttpClient {
57
113
  let sessionLoading;
58
114
  if (sessionId)
59
115
  sessionLoading = this._sessionLoading[sessionId];
116
+ let loadingPromise;
60
117
  // separation texture vs everything else
61
118
  if (textureLoading) {
62
119
  // if we have a sessionId and the sessionLoading functions and the image is not a blob or data, we load it via the sdk
63
120
  if (sessionLoading !== undefined && sessionId !== undefined && !href.startsWith('blob:') && !href.startsWith('data:')) {
64
121
  // take first session to load a texture that is not session related
65
- return new Promise((resolve, reject) => {
66
- sessionLoading.downloadTexture(sessionId, href).then((result) => {
67
- resolve({
68
- data: result[0],
69
- headers: {
70
- 'content-type': result[1]
71
- }
72
- });
73
- }).catch(e => reject(e));
122
+ loadingPromise = new Promise((resolve, reject) => {
123
+ sessionLoading.downloadTexture(sessionId, href).then((result) => __awaiter(this, void 0, void 0, function* () {
124
+ if (textureConversion) {
125
+ const image = yield Converter_1.Converter.instance.responseToImage({
126
+ data: result[0],
127
+ headers: {
128
+ 'content-type': result[1]
129
+ }
130
+ });
131
+ resolve({
132
+ data: image,
133
+ size: result[0].byteLength,
134
+ headers: {
135
+ 'content-type': result[1]
136
+ }
137
+ });
138
+ }
139
+ else {
140
+ resolve({
141
+ data: result[0],
142
+ headers: {
143
+ 'content-type': result[1]
144
+ }
145
+ });
146
+ }
147
+ })).catch(e => reject(e));
74
148
  }).catch(e => { throw this.convertError(e); });
75
149
  }
76
150
  else {
77
151
  // we can load blobs and data urls directly
78
152
  // or load it directly if we don't have a session
79
- return axios(href, Object.assign({ method: 'get' }, config))
153
+ loadingPromise = (0, axios_1.default)(href, Object.assign({ method: 'get' }, config))
154
+ .then((result) => __awaiter(this, void 0, void 0, function* () {
155
+ if (textureConversion) {
156
+ const image = yield Converter_1.Converter.instance.responseToImage(result);
157
+ return {
158
+ data: image,
159
+ size: result.data.byteLength,
160
+ headers: result.headers
161
+ };
162
+ }
163
+ else {
164
+ return result;
165
+ }
166
+ }))
80
167
  .catch(e => { throw this.convertError(e); });
81
168
  }
82
169
  }
83
170
  else {
84
171
  if (!sessionLoading) {
85
172
  // if there is no session to load from, we use the fallback option
86
- return axios(href, Object.assign({ method: 'get' }, config))
173
+ loadingPromise = (0, axios_1.default)(href, Object.assign({ method: 'get' }, config))
87
174
  .catch(e => { throw this.convertError(e); });
88
175
  }
89
176
  else {
90
177
  // all data links where we could somehow find a session to load it with
91
- return new Promise((resolve, reject) => {
178
+ loadingPromise = new Promise((resolve, reject) => {
92
179
  sessionLoading.getAsset(href)
93
180
  .then((result) => {
94
181
  resolve({
@@ -100,25 +187,91 @@ export class HttpClient {
100
187
  })
101
188
  .catch(() => {
102
189
  // if this fails, we just load it directly
103
- const axiosPromise = axios(href, Object.assign({ method: 'get' }, config));
190
+ const axiosPromise = (0, axios_1.default)(href, Object.assign({ method: 'get' }, config));
104
191
  axiosPromise.catch(e => reject(e));
105
192
  resolve(axiosPromise);
106
193
  });
107
194
  }).catch(e => { throw this.convertError(e); });
108
195
  }
109
196
  }
197
+ if (this.enableCaching)
198
+ this.addToCache(dataKey, loadingPromise);
199
+ return loadingPromise;
110
200
  });
111
201
  }
202
+ /**
203
+ * Get the requested texture either as a download or from the cache.
204
+ *
205
+ * @param href
206
+ * @returns
207
+ */
112
208
  loadTexture(href) {
113
209
  return __awaiter(this, void 0, void 0, function* () {
114
- return this.get(href, undefined, true);
210
+ return this.get(href, undefined, true, true);
115
211
  });
116
212
  }
213
+ /**
214
+ * Add the data loading options from a session.
215
+ *
216
+ * @param sessionId
217
+ */
117
218
  removeDataLoading(sessionId) {
118
219
  delete this._sessionLoading[sessionId];
119
220
  }
120
221
  // #endregion Public Methods (5)
121
- // #region Private Methods (1)
222
+ // #region Private Methods (5)
223
+ /**
224
+ * Add
225
+ *
226
+ * @param key
227
+ * @param value
228
+ */
229
+ addToCache(key, value) {
230
+ // Remove items from the cache until the cache size is smaller than the maximum cache size.
231
+ // Only resolved promises are evaluated, as unresolved promises don't add any size.
232
+ while (this.calculateCacheSize() >= this._maxCacheSize) {
233
+ // Remove the oldest entry if the cache is full
234
+ const oldestKey = this._dataCache.keys().next().value;
235
+ this._dataCache.delete(oldestKey);
236
+ }
237
+ const timestamp = Date.now();
238
+ this._dataCache.set(key, { value, timestamp, resolved: false });
239
+ // once the promise resolves, set resolved and size properties
240
+ value.then((promiseResult) => {
241
+ const size = promiseResult.size ? promiseResult.size : promiseResult.data.byteLength;
242
+ this._dataCache.set(key, { value, timestamp, resolved: true, size });
243
+ }).catch(e => { throw this.convertError(e); });
244
+ }
245
+ /**
246
+ * Calculate the current cache size from all resolved promises.
247
+ *
248
+ * @returns
249
+ */
250
+ calculateCacheSize() {
251
+ let size = 0;
252
+ this._dataCache.forEach(value => {
253
+ if (value.resolved === true)
254
+ size += value.size;
255
+ });
256
+ return size;
257
+ }
258
+ /**
259
+ * Get the value of an object from the cache.
260
+ *
261
+ * @param key
262
+ * @returns
263
+ */
264
+ getFromCache(key) {
265
+ const cachedObject = this._dataCache.get(key);
266
+ this._dataCache.set(key, { value: cachedObject.value, timestamp: Date.now(), resolved: cachedObject.resolved, size: cachedObject.size });
267
+ return cachedObject.value;
268
+ }
269
+ /**
270
+ * Get the session id of the provided href.
271
+ *
272
+ * @param href
273
+ * @returns
274
+ */
122
275
  getSessionId(href) {
123
276
  // searching for "/session/SESSION_ID/{'output' | 'export' | 'texture'}/ASSET_DATA"
124
277
  const parts = href.split('/');
@@ -133,5 +286,25 @@ export class HttpClient {
133
286
  }
134
287
  return;
135
288
  }
289
+ /**
290
+ * Convert the provided href to a data cache key.
291
+ * In this conversion the excludedQueryParameters are removed from the href.
292
+ *
293
+ * @param href
294
+ * @returns
295
+ */
296
+ hrefToDataKey(href) {
297
+ const url = new URL(href);
298
+ // Create a URLSearchParams object from the existing query parameters
299
+ const params = new URLSearchParams(url.search);
300
+ for (let i = 0; i < this._excludedQueryParameters.length; i++)
301
+ // Remove specific query parameters
302
+ params.delete(this._excludedQueryParameters[i]);
303
+ // Reconstruct the URL with the modified query parameters
304
+ url.search = params.toString();
305
+ const hrefAsKey = url.toString();
306
+ return window.btoa(hrefAsKey);
307
+ }
136
308
  }
309
+ exports.HttpClient = HttpClient;
137
310
  //# sourceMappingURL=HttpClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export interface HttpResponse<T = any> {
2
2
  data: T;
3
3
  headers: any;
4
+ size?: number;
4
5
  }
5
6
  //# sourceMappingURL=HttpResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpResponse.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpResponse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,GAAG,CAAA;CACf"}
1
+ {"version":3,"file":"HttpResponse.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpResponse.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=HttpResponse.js.map