@speckle/objectloader2 2.25.1 → 2.25.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.
Files changed (201) hide show
  1. package/dist/commonjs/helpers/aggregateQueue.d.ts +8 -0
  2. package/dist/commonjs/helpers/aggregateQueue.d.ts.map +1 -0
  3. package/dist/commonjs/helpers/aggregateQueue.js +19 -0
  4. package/dist/commonjs/helpers/aggregateQueue.js.map +1 -0
  5. package/dist/commonjs/helpers/asyncGeneratorQueue.d.ts +8 -0
  6. package/dist/commonjs/helpers/asyncGeneratorQueue.d.ts.map +1 -0
  7. package/dist/commonjs/helpers/asyncGeneratorQueue.js +35 -0
  8. package/dist/commonjs/helpers/asyncGeneratorQueue.js.map +1 -0
  9. package/dist/commonjs/helpers/batchedPool.d.ts +12 -0
  10. package/dist/commonjs/helpers/batchedPool.d.ts.map +1 -0
  11. package/dist/commonjs/helpers/batchedPool.js +45 -0
  12. package/dist/commonjs/helpers/batchedPool.js.map +1 -0
  13. package/dist/commonjs/helpers/batchingQueue.d.ts +14 -0
  14. package/dist/commonjs/helpers/batchingQueue.d.ts.map +1 -0
  15. package/dist/commonjs/helpers/batchingQueue.js +77 -0
  16. package/dist/commonjs/helpers/batchingQueue.js.map +1 -0
  17. package/dist/commonjs/helpers/bufferQueue.d.ts +7 -0
  18. package/dist/commonjs/helpers/bufferQueue.d.ts.map +1 -0
  19. package/dist/commonjs/helpers/bufferQueue.js +13 -0
  20. package/dist/commonjs/helpers/bufferQueue.js.map +1 -0
  21. package/dist/commonjs/helpers/cachePump.d.ts +21 -0
  22. package/dist/commonjs/helpers/cachePump.d.ts.map +1 -0
  23. package/dist/commonjs/helpers/cachePump.js +80 -0
  24. package/dist/commonjs/helpers/cachePump.js.map +1 -0
  25. package/dist/commonjs/helpers/cacheReader.d.ts +14 -0
  26. package/dist/commonjs/helpers/cacheReader.d.ts.map +1 -0
  27. package/dist/commonjs/helpers/cacheReader.js +58 -0
  28. package/dist/commonjs/helpers/cacheReader.js.map +1 -0
  29. package/dist/commonjs/helpers/defermentManager.d.ts +26 -0
  30. package/dist/commonjs/helpers/defermentManager.d.ts.map +1 -0
  31. package/dist/commonjs/helpers/defermentManager.js +131 -0
  32. package/dist/commonjs/helpers/defermentManager.js.map +1 -0
  33. package/dist/commonjs/helpers/deferredBase.d.ts +19 -0
  34. package/dist/commonjs/helpers/deferredBase.d.ts.map +1 -0
  35. package/dist/commonjs/helpers/deferredBase.js +51 -0
  36. package/dist/commonjs/helpers/deferredBase.js.map +1 -0
  37. package/dist/commonjs/helpers/keyedQueue.d.ts +11 -0
  38. package/dist/commonjs/helpers/keyedQueue.d.ts.map +1 -0
  39. package/dist/commonjs/helpers/keyedQueue.js +41 -0
  40. package/dist/commonjs/helpers/keyedQueue.js.map +1 -0
  41. package/dist/commonjs/helpers/memoryPump.d.ts +15 -0
  42. package/dist/commonjs/helpers/memoryPump.d.ts.map +1 -0
  43. package/dist/commonjs/helpers/memoryPump.js +34 -0
  44. package/dist/commonjs/helpers/memoryPump.js.map +1 -0
  45. package/dist/commonjs/helpers/pump.d.ts +8 -0
  46. package/dist/commonjs/helpers/pump.d.ts.map +1 -0
  47. package/dist/commonjs/helpers/pump.js +3 -0
  48. package/dist/commonjs/helpers/pump.js.map +1 -0
  49. package/dist/commonjs/helpers/queue.d.ts +4 -0
  50. package/dist/commonjs/helpers/queue.d.ts.map +1 -0
  51. package/dist/commonjs/helpers/queue.js +3 -0
  52. package/dist/commonjs/helpers/queue.js.map +1 -0
  53. package/dist/commonjs/index.d.ts +4 -0
  54. package/dist/commonjs/index.d.ts.map +1 -0
  55. package/dist/commonjs/index.js.map +1 -0
  56. package/dist/commonjs/operations/databases/indexedDatabase.d.ts +25 -0
  57. package/dist/commonjs/operations/databases/indexedDatabase.d.ts.map +1 -0
  58. package/dist/commonjs/operations/databases/indexedDatabase.js +117 -0
  59. package/dist/commonjs/operations/databases/indexedDatabase.js.map +1 -0
  60. package/dist/commonjs/operations/databases/memoryDatabase.d.ts +16 -0
  61. package/dist/commonjs/operations/databases/memoryDatabase.d.ts.map +1 -0
  62. package/dist/commonjs/operations/databases/memoryDatabase.js +40 -0
  63. package/dist/commonjs/operations/databases/memoryDatabase.js.map +1 -0
  64. package/dist/commonjs/operations/downloaders/memoryDownloader.d.ts +16 -0
  65. package/dist/commonjs/operations/downloaders/memoryDownloader.d.ts.map +1 -0
  66. package/dist/commonjs/operations/downloaders/memoryDownloader.js +35 -0
  67. package/dist/commonjs/operations/downloaders/memoryDownloader.js.map +1 -0
  68. package/dist/commonjs/operations/downloaders/serverDownloader.d.ts +32 -0
  69. package/dist/commonjs/operations/downloaders/serverDownloader.d.ts.map +1 -0
  70. package/dist/commonjs/operations/downloaders/serverDownloader.js +169 -0
  71. package/dist/commonjs/operations/downloaders/serverDownloader.js.map +1 -0
  72. package/dist/commonjs/operations/interfaces.d.ts +22 -0
  73. package/dist/commonjs/operations/interfaces.d.ts.map +1 -0
  74. package/dist/commonjs/operations/interfaces.js +3 -0
  75. package/dist/commonjs/operations/interfaces.js.map +1 -0
  76. package/dist/commonjs/operations/objectLoader2.d.ts +16 -0
  77. package/dist/commonjs/operations/objectLoader2.d.ts.map +1 -0
  78. package/dist/commonjs/operations/objectLoader2.js +95 -0
  79. package/dist/commonjs/operations/objectLoader2.js.map +1 -0
  80. package/dist/commonjs/operations/objectLoader2Factory.d.ts +21 -0
  81. package/dist/commonjs/operations/objectLoader2Factory.d.ts.map +1 -0
  82. package/dist/commonjs/operations/objectLoader2Factory.js +50 -0
  83. package/dist/commonjs/operations/objectLoader2Factory.js.map +1 -0
  84. package/dist/commonjs/operations/options.d.ts +26 -0
  85. package/dist/commonjs/operations/options.d.ts.map +1 -0
  86. package/dist/commonjs/operations/options.js +3 -0
  87. package/dist/commonjs/operations/options.js.map +1 -0
  88. package/dist/commonjs/operations/traverser.d.ts +19 -0
  89. package/dist/commonjs/operations/traverser.d.ts.map +1 -0
  90. package/dist/commonjs/operations/traverser.js +96 -0
  91. package/dist/commonjs/operations/traverser.js.map +1 -0
  92. package/dist/commonjs/package.json +3 -0
  93. package/dist/commonjs/types/errors.d.ts +21 -0
  94. package/dist/commonjs/types/errors.d.ts.map +1 -0
  95. package/dist/commonjs/types/errors.js +28 -0
  96. package/dist/commonjs/types/errors.js.map +1 -0
  97. package/dist/commonjs/types/types.d.ts +25 -0
  98. package/dist/commonjs/types/types.d.ts.map +1 -0
  99. package/dist/commonjs/types/types.js +39 -0
  100. package/dist/commonjs/types/types.js.map +1 -0
  101. package/dist/esm/helpers/aggregateQueue.d.ts +8 -0
  102. package/dist/esm/helpers/aggregateQueue.d.ts.map +1 -0
  103. package/dist/esm/helpers/aggregateQueue.js +16 -0
  104. package/dist/esm/helpers/aggregateQueue.js.map +1 -0
  105. package/dist/esm/helpers/asyncGeneratorQueue.d.ts +8 -0
  106. package/dist/esm/helpers/asyncGeneratorQueue.d.ts.map +1 -0
  107. package/dist/esm/helpers/asyncGeneratorQueue.js +32 -0
  108. package/dist/esm/helpers/asyncGeneratorQueue.js.map +1 -0
  109. package/dist/esm/helpers/batchedPool.d.ts +12 -0
  110. package/dist/esm/helpers/batchedPool.d.ts.map +1 -0
  111. package/dist/esm/helpers/batchedPool.js +42 -0
  112. package/dist/esm/helpers/batchedPool.js.map +1 -0
  113. package/dist/esm/helpers/batchingQueue.d.ts +14 -0
  114. package/dist/esm/helpers/batchingQueue.d.ts.map +1 -0
  115. package/dist/esm/helpers/batchingQueue.js +71 -0
  116. package/dist/esm/helpers/batchingQueue.js.map +1 -0
  117. package/dist/esm/helpers/bufferQueue.d.ts +7 -0
  118. package/dist/esm/helpers/bufferQueue.d.ts.map +1 -0
  119. package/dist/esm/helpers/bufferQueue.js +10 -0
  120. package/dist/esm/helpers/bufferQueue.js.map +1 -0
  121. package/dist/esm/helpers/cachePump.d.ts +21 -0
  122. package/dist/esm/helpers/cachePump.d.ts.map +1 -0
  123. package/dist/esm/helpers/cachePump.js +73 -0
  124. package/dist/esm/helpers/cachePump.js.map +1 -0
  125. package/dist/esm/helpers/cacheReader.d.ts +14 -0
  126. package/dist/esm/helpers/cacheReader.d.ts.map +1 -0
  127. package/dist/esm/helpers/cacheReader.js +51 -0
  128. package/dist/esm/helpers/cacheReader.js.map +1 -0
  129. package/dist/esm/helpers/defermentManager.d.ts +26 -0
  130. package/dist/esm/helpers/defermentManager.d.ts.map +1 -0
  131. package/dist/esm/helpers/defermentManager.js +127 -0
  132. package/dist/esm/helpers/defermentManager.js.map +1 -0
  133. package/dist/esm/helpers/deferredBase.d.ts +19 -0
  134. package/dist/esm/helpers/deferredBase.d.ts.map +1 -0
  135. package/dist/esm/helpers/deferredBase.js +47 -0
  136. package/dist/esm/helpers/deferredBase.js.map +1 -0
  137. package/dist/esm/helpers/keyedQueue.d.ts +11 -0
  138. package/dist/esm/helpers/keyedQueue.d.ts.map +1 -0
  139. package/dist/esm/helpers/keyedQueue.js +38 -0
  140. package/dist/esm/helpers/keyedQueue.js.map +1 -0
  141. package/dist/esm/helpers/memoryPump.d.ts +15 -0
  142. package/dist/esm/helpers/memoryPump.d.ts.map +1 -0
  143. package/dist/esm/helpers/memoryPump.js +30 -0
  144. package/dist/esm/helpers/memoryPump.js.map +1 -0
  145. package/dist/esm/helpers/pump.d.ts +8 -0
  146. package/dist/esm/helpers/pump.d.ts.map +1 -0
  147. package/dist/esm/helpers/pump.js +2 -0
  148. package/dist/esm/helpers/pump.js.map +1 -0
  149. package/dist/esm/helpers/queue.d.ts +4 -0
  150. package/dist/esm/helpers/queue.d.ts.map +1 -0
  151. package/dist/esm/helpers/queue.js +2 -0
  152. package/dist/esm/helpers/queue.js.map +1 -0
  153. package/dist/esm/index.d.ts +4 -0
  154. package/dist/esm/index.d.ts.map +1 -0
  155. package/dist/esm/index.js.map +1 -0
  156. package/dist/esm/operations/databases/indexedDatabase.d.ts +25 -0
  157. package/dist/esm/operations/databases/indexedDatabase.d.ts.map +1 -0
  158. package/dist/esm/operations/databases/indexedDatabase.js +114 -0
  159. package/dist/esm/operations/databases/indexedDatabase.js.map +1 -0
  160. package/dist/esm/operations/databases/memoryDatabase.d.ts +16 -0
  161. package/dist/esm/operations/databases/memoryDatabase.d.ts.map +1 -0
  162. package/dist/esm/operations/databases/memoryDatabase.js +36 -0
  163. package/dist/esm/operations/databases/memoryDatabase.js.map +1 -0
  164. package/dist/esm/operations/downloaders/memoryDownloader.d.ts +16 -0
  165. package/dist/esm/operations/downloaders/memoryDownloader.d.ts.map +1 -0
  166. package/dist/esm/operations/downloaders/memoryDownloader.js +31 -0
  167. package/dist/esm/operations/downloaders/memoryDownloader.js.map +1 -0
  168. package/dist/esm/operations/downloaders/serverDownloader.d.ts +32 -0
  169. package/dist/esm/operations/downloaders/serverDownloader.d.ts.map +1 -0
  170. package/dist/esm/operations/downloaders/serverDownloader.js +163 -0
  171. package/dist/esm/operations/downloaders/serverDownloader.js.map +1 -0
  172. package/dist/esm/operations/interfaces.d.ts +22 -0
  173. package/dist/esm/operations/interfaces.d.ts.map +1 -0
  174. package/dist/esm/operations/interfaces.js +2 -0
  175. package/dist/esm/operations/interfaces.js.map +1 -0
  176. package/dist/esm/operations/objectLoader2.d.ts +16 -0
  177. package/dist/esm/operations/objectLoader2.d.ts.map +1 -0
  178. package/dist/esm/operations/objectLoader2.js +88 -0
  179. package/dist/esm/operations/objectLoader2.js.map +1 -0
  180. package/dist/esm/operations/objectLoader2Factory.d.ts +21 -0
  181. package/dist/esm/operations/objectLoader2Factory.d.ts.map +1 -0
  182. package/dist/esm/operations/objectLoader2Factory.js +43 -0
  183. package/dist/esm/operations/objectLoader2Factory.js.map +1 -0
  184. package/dist/esm/operations/options.d.ts +26 -0
  185. package/dist/esm/operations/options.d.ts.map +1 -0
  186. package/dist/esm/operations/options.js +2 -0
  187. package/dist/esm/operations/options.js.map +1 -0
  188. package/dist/esm/operations/traverser.d.ts +19 -0
  189. package/dist/esm/operations/traverser.d.ts.map +1 -0
  190. package/dist/esm/operations/traverser.js +93 -0
  191. package/dist/esm/operations/traverser.js.map +1 -0
  192. package/dist/esm/package.json +3 -0
  193. package/dist/esm/types/errors.d.ts +21 -0
  194. package/dist/esm/types/errors.d.ts.map +1 -0
  195. package/dist/esm/types/errors.js +23 -0
  196. package/dist/esm/types/errors.js.map +1 -0
  197. package/dist/esm/types/types.d.ts +25 -0
  198. package/dist/esm/types/types.d.ts.map +1 -0
  199. package/dist/esm/types/types.js +33 -0
  200. package/dist/esm/types/types.js.map +1 -0
  201. package/package.json +2 -2
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefermentManager = void 0;
4
+ const deferredBase_js_1 = require("./deferredBase.js");
5
+ class DefermentManager {
6
+ options;
7
+ deferments = new Map();
8
+ timer;
9
+ logger;
10
+ currentSize = 0;
11
+ disposed = false;
12
+ constructor(options) {
13
+ this.options = options;
14
+ this.resetGlobalTimer();
15
+ this.logger = options.logger || (() => { });
16
+ }
17
+ now() {
18
+ return Date.now();
19
+ }
20
+ isDeferred(id) {
21
+ return this.deferments.has(id);
22
+ }
23
+ get(id) {
24
+ if (this.disposed)
25
+ throw new Error('DefermentManager is disposed');
26
+ return this.deferments.get(id);
27
+ }
28
+ async defer(params) {
29
+ if (this.disposed)
30
+ throw new Error('DefermentManager is disposed');
31
+ const now = this.now();
32
+ const deferredBase = this.deferments.get(params.id);
33
+ if (deferredBase) {
34
+ deferredBase.setAccess(now);
35
+ return deferredBase.getPromise();
36
+ }
37
+ const notYetFound = new deferredBase_js_1.DeferredBase(this.options.ttlms, params.id, now + this.options.ttlms);
38
+ this.deferments.set(params.id, notYetFound);
39
+ return notYetFound.getPromise();
40
+ }
41
+ undefer(item) {
42
+ if (this.disposed)
43
+ throw new Error('DefermentManager is disposed');
44
+ const now = this.now();
45
+ this.currentSize += item.size || 0;
46
+ //order matters here with found before undefer
47
+ const deferredBase = this.deferments.get(item.baseId);
48
+ if (deferredBase) {
49
+ deferredBase.found(item);
50
+ deferredBase.setAccess(now);
51
+ }
52
+ else {
53
+ const existing = new deferredBase_js_1.DeferredBase(this.options.ttlms, item.baseId, now);
54
+ existing.found(item);
55
+ this.deferments.set(item.baseId, existing);
56
+ }
57
+ }
58
+ resetGlobalTimer() {
59
+ const run = () => {
60
+ this.cleanDeferments();
61
+ this.timer = setTimeout(run, this.options.ttlms);
62
+ };
63
+ this.timer = setTimeout(run, this.options.ttlms);
64
+ }
65
+ dispose() {
66
+ if (this.disposed)
67
+ return;
68
+ this.disposed = true;
69
+ if (this.timer) {
70
+ clearTimeout(this.timer);
71
+ this.timer = undefined;
72
+ }
73
+ this.clearDeferments();
74
+ }
75
+ clearDeferments() {
76
+ let waiting = 0;
77
+ for (const deferredBase of this.deferments.values()) {
78
+ deferredBase.done(0);
79
+ if (deferredBase.getItem() === undefined) {
80
+ waiting++;
81
+ }
82
+ }
83
+ this.currentSize = 0;
84
+ this.deferments.clear();
85
+ this.logger('cleared deferments, left', waiting);
86
+ }
87
+ cleanDeferments() {
88
+ const maxSizeBytes = this.options.maxSizeInMb * 1024 * 1024;
89
+ if (this.currentSize < maxSizeBytes) {
90
+ this.logger('deferments size is ok, no need to clean', this.currentSize, maxSizeBytes);
91
+ return;
92
+ }
93
+ const now = this.now();
94
+ let cleaned = 0;
95
+ const start = performance.now();
96
+ for (const deferredBase of Array.from(this.deferments.values())
97
+ .filter((x) => x.isExpired(now))
98
+ .sort((a, b) => this.compareMaybeBasesBySize(a.getItem(), b.getItem()))) {
99
+ if (deferredBase.done(now)) {
100
+ this.currentSize -= deferredBase.getItem()?.size || 0;
101
+ this.deferments.delete(deferredBase.getId());
102
+ cleaned++;
103
+ if (this.currentSize < maxSizeBytes) {
104
+ break;
105
+ }
106
+ }
107
+ }
108
+ this.logger('cleaned deferments, cleaned, left', cleaned, this.deferments.size, performance.now() - start);
109
+ return;
110
+ }
111
+ compareMaybeBasesBySize(a, b) {
112
+ if (a === undefined && b === undefined)
113
+ return 0;
114
+ if (a === undefined)
115
+ return -1;
116
+ if (b === undefined)
117
+ return 1;
118
+ return this.compareMaybe(a.size, b.size);
119
+ }
120
+ compareMaybe(a, b) {
121
+ if (a === undefined && b === undefined)
122
+ return 0;
123
+ if (a === undefined)
124
+ return -1;
125
+ if (b === undefined)
126
+ return 1;
127
+ return a - b;
128
+ }
129
+ }
130
+ exports.DefermentManager = DefermentManager;
131
+ //# sourceMappingURL=defermentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defermentManager.js","sourceRoot":"","sources":["../../../src/helpers/defermentManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Base, Item } from '../types/types.js';
2
+ export declare class DeferredBase {
3
+ private promise;
4
+ private resolve;
5
+ private reject;
6
+ private item?;
7
+ private readonly id;
8
+ private expiresAt;
9
+ private ttl;
10
+ constructor(ttl: number, id: string, expiresAt: number);
11
+ getId(): string;
12
+ getItem(): Item | undefined;
13
+ getPromise(): Promise<Base>;
14
+ isExpired(now: number): boolean;
15
+ setAccess(now: number): void;
16
+ found(value: Item): void;
17
+ done(now: number): boolean;
18
+ }
19
+ //# sourceMappingURL=deferredBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferredBase.d.ts","sourceRoot":"","sources":["../../../src/helpers/deferredBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE9C,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,GAAG,CAAQ;gBAEP,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAUtD,KAAK,IAAI,MAAM;IAIf,OAAO,IAAI,IAAI,GAAG,SAAS;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAG/B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAS3B"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeferredBase = void 0;
4
+ class DeferredBase {
5
+ promise;
6
+ resolve;
7
+ reject;
8
+ item;
9
+ id;
10
+ expiresAt; // Timestamp in ms
11
+ ttl; // ttl in ms
12
+ constructor(ttl, id, expiresAt) {
13
+ this.expiresAt = expiresAt;
14
+ this.ttl = ttl;
15
+ this.id = id;
16
+ this.promise = new Promise((resolve, reject) => {
17
+ this.resolve = resolve;
18
+ this.reject = reject;
19
+ });
20
+ }
21
+ getId() {
22
+ return this.id;
23
+ }
24
+ getItem() {
25
+ return this.item;
26
+ }
27
+ getPromise() {
28
+ return this.promise;
29
+ }
30
+ isExpired(now) {
31
+ return this.item !== undefined && now > this.expiresAt;
32
+ }
33
+ setAccess(now) {
34
+ this.expiresAt = now + this.ttl;
35
+ }
36
+ found(value) {
37
+ this.item = value;
38
+ this.resolve(value.base);
39
+ }
40
+ done(now) {
41
+ if (this.item) {
42
+ this.resolve(this.item.base);
43
+ }
44
+ if (this.isExpired(now)) {
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ }
50
+ exports.DeferredBase = DeferredBase;
51
+ //# sourceMappingURL=deferredBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferredBase.js","sourceRoot":"","sources":["../../../src/helpers/deferredBase.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IACf,OAAO,CAAe;IACtB,OAAO,CAAwB;IAC/B,MAAM,CAA2B;IACjC,IAAI,CAAO;IAEF,EAAE,CAAQ;IACnB,SAAS,CAAQ,CAAC,kBAAkB;IACpC,GAAG,CAAQ,CAAC,YAAY;IAEhC,YAAY,GAAW,EAAE,EAAU,EAAE,SAAiB;QACpD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;IACxD,CAAC;IACD,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,KAAW;QACf,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,GAAW;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AApDD,oCAoDC"}
@@ -0,0 +1,11 @@
1
+ export default class KeyedQueue<K, V> {
2
+ private _map;
3
+ private _order;
4
+ constructor();
5
+ enqueue(key: K, value: V): boolean;
6
+ get(key: K): V | undefined;
7
+ has(key: K): boolean;
8
+ get size(): number;
9
+ spliceValues(start: number, deleteCount: number): V[];
10
+ }
11
+ //# sourceMappingURL=keyedQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyedQueue.d.ts","sourceRoot":"","sources":["../../../src/helpers/keyedQueue.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,MAAM,CAAK;;IAOnB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO;IASlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;CActD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class KeyedQueue {
4
+ _map;
5
+ _order;
6
+ constructor() {
7
+ this._map = new Map();
8
+ this._order = [];
9
+ }
10
+ enqueue(key, value) {
11
+ if (this._map.has(key)) {
12
+ return false; // Key already exists
13
+ }
14
+ this._map.set(key, value);
15
+ this._order.push(key);
16
+ return true;
17
+ }
18
+ get(key) {
19
+ return this._map.get(key);
20
+ }
21
+ has(key) {
22
+ return this._map.has(key);
23
+ }
24
+ get size() {
25
+ return this._order.length;
26
+ }
27
+ spliceValues(start, deleteCount) {
28
+ const splicedKeys = this._order.splice(start, deleteCount);
29
+ const result = [];
30
+ for (const key of splicedKeys) {
31
+ const value = this._map.get(key);
32
+ if (value !== undefined) {
33
+ result.push(value);
34
+ this._map.delete(key);
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ }
40
+ exports.default = KeyedQueue;
41
+ //# sourceMappingURL=keyedQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyedQueue.js","sourceRoot":"","sources":["../../../src/helpers/keyedQueue.ts"],"names":[],"mappings":";;AAAA,MAAqB,UAAU;IACrB,IAAI,CAAW;IACf,MAAM,CAAK;IAEnB;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAAM,EAAE,KAAQ;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA,CAAC,qBAAqB;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,WAAmB;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAQ,EAAE,CAAA;QAEtB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AA5CD,6BA4CC"}
@@ -0,0 +1,15 @@
1
+ import { Item } from '../types/types.js';
2
+ import { Pump } from './pump.js';
3
+ import Queue from './queue.js';
4
+ export declare class MemoryPump implements Pump {
5
+ #private;
6
+ add(item: Item): void;
7
+ pumpItems(params: {
8
+ ids: string[];
9
+ foundItems: Queue<Item>;
10
+ notFoundItems: Queue<string>;
11
+ }): Promise<void>;
12
+ gather(ids: string[]): AsyncGenerator<Item>;
13
+ disposeAsync(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=memoryPump.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryPump.d.ts","sourceRoot":"","sources":["../../../src/helpers/memoryPump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,qBAAa,UAAW,YAAW,IAAI;;IAGrC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIf,SAAS,CAAC,MAAM,EAAE;QACtB,GAAG,EAAE,MAAM,EAAE,CAAA;QACb,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;IAaV,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC;IAU5C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryPump = void 0;
4
+ class MemoryPump {
5
+ #items = new Map();
6
+ add(item) {
7
+ this.#items.set(item.baseId, item);
8
+ }
9
+ async pumpItems(params) {
10
+ const { ids, foundItems, notFoundItems } = params;
11
+ for (const id of ids) {
12
+ const item = this.#items.get(id);
13
+ if (item) {
14
+ foundItems.add(item);
15
+ }
16
+ else {
17
+ notFoundItems.add(id);
18
+ }
19
+ }
20
+ return Promise.resolve();
21
+ }
22
+ async *gather(ids) {
23
+ for (const id of ids) {
24
+ const item = this.#items.get(id);
25
+ if (item) {
26
+ yield item;
27
+ }
28
+ }
29
+ return Promise.resolve();
30
+ }
31
+ async disposeAsync() { }
32
+ }
33
+ exports.MemoryPump = MemoryPump;
34
+ //# sourceMappingURL=memoryPump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryPump.js","sourceRoot":"","sources":["../../../src/helpers/memoryPump.ts"],"names":[],"mappings":";;;AAIA,MAAa,UAAU;IACrB,MAAM,GAAsB,IAAI,GAAG,EAAE,CAAA;IAErC,GAAG,CAAC,IAAU;QACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAIf;QACC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;QACjD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAChC,IAAI,IAAI,EAAE,CAAC;gBACT,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,GAAa;QACzB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAChC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,CAAA;YACZ,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,KAAmB,CAAC;CACvC;AAnCD,gCAmCC"}
@@ -0,0 +1,8 @@
1
+ import { Downloader } from '../operations/interfaces.js';
2
+ import { Item } from '../types/types.js';
3
+ import Queue from './queue.js';
4
+ export interface Pump extends Queue<Item> {
5
+ gather(ids: string[], downloader: Downloader): AsyncGenerator<Item>;
6
+ disposeAsync(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=pump.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pump.d.ts","sourceRoot":"","sources":["../../../src/helpers/pump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,MAAM,WAAW,IAAK,SAAQ,KAAK,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACnE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pump.js","sourceRoot":"","sources":["../../../src/helpers/pump.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export default interface Queue<T> {
2
+ add(value: T): void;
3
+ }
4
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/helpers/queue.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/helpers/queue.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export { MemoryDatabase } from './operations/databases/memoryDatabase.js';
2
+ export { ObjectLoader2 } from './operations/objectLoader2.js';
3
+ export { ObjectLoader2Factory } from './operations/objectLoader2Factory.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,8EAAyE;AAAhE,mHAAA,cAAc,OAAA;AACvB,kEAA6D;AAApD,iHAAA,aAAa,OAAA;AACtB,gFAA2E;AAAlE,+HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,25 @@
1
+ import { CustomLogger, Item } from '../../types/types.js';
2
+ import { Database } from '../interfaces.js';
3
+ export interface IndexedDatabaseOptions {
4
+ logger?: CustomLogger;
5
+ indexedDB?: IDBFactory;
6
+ keyRange?: {
7
+ bound: Function;
8
+ lowerBound: Function;
9
+ upperBound: Function;
10
+ };
11
+ }
12
+ export default class IndexedDatabase implements Database {
13
+ #private;
14
+ constructor(options: IndexedDatabaseOptions);
15
+ getAll(keys: string[]): Promise<(Item | undefined)[]>;
16
+ add(item: Item): Promise<void>;
17
+ getItem(params: {
18
+ id: string;
19
+ }): Promise<Item | undefined>;
20
+ cacheSaveBatch(params: {
21
+ batch: Item[];
22
+ }): Promise<void>;
23
+ disposeAsync(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=indexedDatabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDatabase.d.ts","sourceRoot":"","sources":["../../../../src/operations/databases/indexedDatabase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAe3C,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,QAAQ,CAAA;QACf,UAAU,EAAE,QAAQ,CAAA;QACpB,UAAU,EAAE,QAAQ,CAAA;KACrB,CAAA;CACF;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,QAAQ;;gBAU1C,OAAO,EAAE,sBAAsB;IAKrC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAyCrD,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9B,OAAO,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAgB1D,cAAc,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCxD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAMpC"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const shared_1 = require("@speckle/shared");
4
+ const dexie_1 = require("dexie");
5
+ class ObjectStore extends dexie_1.Dexie {
6
+ static #databaseName = 'speckle-cache';
7
+ objects; // Table type: <entity, primaryKey>
8
+ constructor(options) {
9
+ super(ObjectStore.#databaseName, options);
10
+ this.version(1).stores({
11
+ objects: 'baseId, item' // baseId is primary key
12
+ });
13
+ }
14
+ }
15
+ class IndexedDatabase {
16
+ #options;
17
+ #logger;
18
+ #cacheDB;
19
+ #writeQueue;
20
+ // #count: number = 0
21
+ constructor(options) {
22
+ this.#options = options;
23
+ this.#logger = options.logger || (() => { });
24
+ }
25
+ async getAll(keys) {
26
+ await this.#setupCacheDb();
27
+ let items = [];
28
+ // this.#count++
29
+ // const startTime = performance.now()
30
+ // this.#logger('Start read ' + x + ' ' + batch.length)
31
+ //faster than BulkGet with dexie
32
+ await this.#cacheDB.transaction('r', this.#cacheDB.objects, async () => {
33
+ const gets = keys.map((key) => this.#cacheDB.objects.get(key));
34
+ const cachedData = await Promise.all(gets);
35
+ items = cachedData;
36
+ });
37
+ // const endTime = performance.now()
38
+ // const duration = endTime - startTime
39
+ //this.#logger('Saved batch ' + x + ' ' + batch.length + ' ' + duration / TIME_MS.second)
40
+ return items;
41
+ }
42
+ async #openDatabase() {
43
+ const db = new ObjectStore({
44
+ indexedDB: this.#options.indexedDB ?? globalThis.indexedDB,
45
+ IDBKeyRange: this.#options.keyRange ?? IDBKeyRange,
46
+ chromeTransactionDurability: 'relaxed'
47
+ });
48
+ await db.open();
49
+ return db;
50
+ }
51
+ async #setupCacheDb() {
52
+ if (this.#cacheDB !== undefined) {
53
+ return;
54
+ }
55
+ // Initialize
56
+ await this.#safariFix();
57
+ this.#cacheDB = await this.#openDatabase();
58
+ }
59
+ //this is for testing only - in the real world we will not use this
60
+ async add(item) {
61
+ await this.#setupCacheDb();
62
+ await this.#cacheDB.transaction('rw', this.#cacheDB.objects, async () => {
63
+ return await this.#cacheDB?.objects.add(item);
64
+ });
65
+ }
66
+ async getItem(params) {
67
+ const { id } = params;
68
+ await this.#setupCacheDb();
69
+ //might not be in the real DB yet, so check the write queue first
70
+ if (this.#writeQueue) {
71
+ const item = this.#writeQueue.get(id);
72
+ if (item) {
73
+ return item;
74
+ }
75
+ }
76
+ return this.#cacheDB.transaction('r', this.#cacheDB.objects, async () => {
77
+ return await this.#cacheDB?.objects.get(id);
78
+ });
79
+ }
80
+ async cacheSaveBatch(params) {
81
+ await this.#setupCacheDb();
82
+ const { batch } = params;
83
+ //const x = this.#count
84
+ //this.#count++
85
+ // const startTime = performance.now()
86
+ // this.#logger('Start save ' + x + ' ' + batch.length)
87
+ await this.#cacheDB.objects.bulkPut(batch);
88
+ // const endTime = performance.now()
89
+ // const duration = endTime - startTime
90
+ //this.#logger('Saved batch ' + x + ' ' + batch.length + ' ' + duration / TIME_MS.second)
91
+ }
92
+ /**
93
+ * Fixes a Safari bug where IndexedDB requests get lost and never resolve - invoke before you use IndexedDB
94
+ * @link Credits and more info: https://github.com/jakearchibald/safari-14-idb-fix
95
+ */
96
+ async #safariFix() {
97
+ // No point putting other browsers or older versions of Safari through this mess.
98
+ if (!(0, shared_1.isSafari)() || !this.#options.indexedDB?.databases)
99
+ return Promise.resolve();
100
+ let intervalId;
101
+ return new Promise((resolve) => {
102
+ const tryIdb = () => this.#options.indexedDB?.databases().finally(resolve);
103
+ intervalId = setInterval(() => {
104
+ void tryIdb();
105
+ }, 100);
106
+ void tryIdb();
107
+ }).finally(() => clearInterval(intervalId));
108
+ }
109
+ async disposeAsync() {
110
+ this.#cacheDB?.close();
111
+ this.#cacheDB = undefined;
112
+ await this.#writeQueue?.disposeAsync();
113
+ this.#writeQueue = undefined;
114
+ }
115
+ }
116
+ exports.default = IndexedDatabase;
117
+ //# sourceMappingURL=indexedDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDatabase.js","sourceRoot":"","sources":["../../../../src/operations/databases/indexedDatabase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Item } from '../../types/types.js';
2
+ import { Database } from '../interfaces.js';
3
+ import { MemoryDatabaseOptions } from '../options.js';
4
+ export declare class MemoryDatabase implements Database {
5
+ private items;
6
+ constructor(options?: MemoryDatabaseOptions);
7
+ getAll(keys: string[]): Promise<(Item | undefined)[]>;
8
+ cacheSaveBatch({ batch }: {
9
+ batch: Item[];
10
+ }): Promise<void>;
11
+ getItem(params: {
12
+ id: string;
13
+ }): Promise<Item | undefined>;
14
+ disposeAsync(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=memoryDatabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryDatabase.d.ts","sourceRoot":"","sources":["../../../../src/operations/databases/memoryDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,KAAK,CAAmB;gBAEpB,OAAO,CAAC,EAAE,qBAAqB;IAI3C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAarD,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D,OAAO,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQ1D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryDatabase = void 0;
4
+ class MemoryDatabase {
5
+ items;
6
+ constructor(options) {
7
+ this.items = options?.items || new Map();
8
+ }
9
+ getAll(keys) {
10
+ const found = [];
11
+ for (const key of keys) {
12
+ const item = this.items.get(key);
13
+ if (item) {
14
+ found.push({ baseId: key, base: item });
15
+ }
16
+ else {
17
+ found.push(undefined);
18
+ }
19
+ }
20
+ return Promise.resolve(found);
21
+ }
22
+ cacheSaveBatch({ batch }) {
23
+ for (const item of batch) {
24
+ this.items.set(item.baseId, item.base);
25
+ }
26
+ return Promise.resolve();
27
+ }
28
+ getItem(params) {
29
+ const item = this.items.get(params.id);
30
+ if (item) {
31
+ return Promise.resolve({ baseId: params.id, base: item });
32
+ }
33
+ return Promise.resolve(undefined);
34
+ }
35
+ disposeAsync() {
36
+ return Promise.resolve();
37
+ }
38
+ }
39
+ exports.MemoryDatabase = MemoryDatabase;
40
+ //# sourceMappingURL=memoryDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryDatabase.js","sourceRoot":"","sources":["../../../../src/operations/databases/memoryDatabase.ts"],"names":[],"mappings":";;;AAIA,MAAa,cAAc;IACjB,KAAK,CAAmB;IAEhC,YAAY,OAA+B;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,GAAG,EAAgB,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,MAAM,KAAK,GAAyB,EAAE,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,cAAc,CAAC,EAAE,KAAK,EAAqB;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,MAAsB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAtCD,wCAsCC"}
@@ -0,0 +1,16 @@
1
+ import Queue from '../../helpers/queue.js';
2
+ import { Base, Item } from '../../types/types.js';
3
+ import { Downloader } from '../interfaces.js';
4
+ export declare class MemoryDownloader implements Downloader {
5
+ #private;
6
+ constructor(rootId: string, items: Map<string, Base>);
7
+ initializePool(params: {
8
+ results: Queue<Item>;
9
+ total: number;
10
+ maxDownloadBatchWait?: number;
11
+ }): void;
12
+ downloadSingle(): Promise<Item>;
13
+ disposeAsync(): Promise<void>;
14
+ add(id: string): void;
15
+ }
16
+ //# sourceMappingURL=memoryDownloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryDownloader.d.ts","sourceRoot":"","sources":["../../../../src/operations/downloaders/memoryDownloader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,qBAAa,gBAAiB,YAAW,UAAU;;gBAKrC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAIpD,cAAc,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,GAAG,IAAI;IAGR,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAG7B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAQtB"}