@based/server 3.4.3 → 3.4.5

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 (138) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/auth/authorize.d.ts +2 -0
  3. package/dist/auth/authorize.js +8 -0
  4. package/dist/auth/authorize.js.map +1 -0
  5. package/dist/auth/dummyAuth.d.ts +2 -0
  6. package/dist/auth/dummyAuth.js +7 -0
  7. package/dist/auth/dummyAuth.js.map +1 -0
  8. package/dist/auth/index.d.ts +11 -0
  9. package/dist/auth/index.js +44 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/clientContext.d.ts +0 -0
  12. package/dist/clientContext.js +83 -0
  13. package/dist/clientContext.js.map +1 -0
  14. package/dist/error.d.ts +66 -0
  15. package/dist/error.js +149 -0
  16. package/dist/error.js.map +1 -0
  17. package/dist/functions/index.d.ts +48 -0
  18. package/dist/functions/index.js +399 -0
  19. package/dist/functions/index.js.map +1 -0
  20. package/dist/functions/timeout.d.ts +3 -0
  21. package/dist/functions/timeout.js +23 -0
  22. package/dist/functions/timeout.js.map +1 -0
  23. package/dist/functions/workerPool.d.ts +0 -0
  24. package/dist/functions/workerPool.js +5 -0
  25. package/dist/functions/workerPool.js.map +1 -0
  26. package/dist/handlers/rest/file/formStream.js +5 -1
  27. package/dist/handlers/rest/file/formStream.js.map +1 -1
  28. package/dist/handlers/rest/file/storeFile.d.ts +2 -1
  29. package/dist/handlers/rest/file/storeFile.js +34 -24
  30. package/dist/handlers/rest/file/storeFile.js.map +1 -1
  31. package/dist/handlers/rest/file/stream.js +5 -1
  32. package/dist/handlers/rest/file/stream.js.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/network/http/authorize.d.ts +3 -0
  36. package/dist/network/http/authorize.js +28 -0
  37. package/dist/network/http/authorize.js.map +1 -0
  38. package/dist/network/http/compress.d.ts +6 -0
  39. package/dist/network/http/compress.js +56 -0
  40. package/dist/network/http/compress.js.map +1 -0
  41. package/dist/network/http/end.d.ts +4 -0
  42. package/dist/network/http/end.js +19 -0
  43. package/dist/network/http/end.js.map +1 -0
  44. package/dist/network/http/function.d.ts +3 -0
  45. package/dist/network/http/function.js +47 -0
  46. package/dist/network/http/function.js.map +1 -0
  47. package/dist/network/http/get.d.ts +3 -0
  48. package/dist/network/http/get.js +129 -0
  49. package/dist/network/http/get.js.map +1 -0
  50. package/dist/network/http/index.d.ts +3 -0
  51. package/dist/network/http/index.js +122 -0
  52. package/dist/network/http/index.js.map +1 -0
  53. package/dist/network/http/readBody.d.ts +3 -0
  54. package/dist/network/http/readBody.js +112 -0
  55. package/dist/network/http/readBody.js.map +1 -0
  56. package/dist/network/http/send.d.ts +5 -0
  57. package/dist/network/http/send.js +60 -0
  58. package/dist/network/http/send.js.map +1 -0
  59. package/dist/network/http/streamFunction/DataStream.d.ts +7 -0
  60. package/dist/network/http/streamFunction/DataStream.js +19 -0
  61. package/dist/network/http/streamFunction/DataStream.js.map +1 -0
  62. package/dist/network/http/streamFunction/getExtension.d.ts +2 -0
  63. package/dist/network/http/streamFunction/getExtension.js +29 -0
  64. package/dist/network/http/streamFunction/getExtension.js.map +1 -0
  65. package/dist/network/http/streamFunction/index.d.ts +3 -0
  66. package/dist/network/http/streamFunction/index.js +81 -0
  67. package/dist/network/http/streamFunction/index.js.map +1 -0
  68. package/dist/network/http/streamFunction/multipartStream.d.ts +12 -0
  69. package/dist/network/http/streamFunction/multipartStream.js +208 -0
  70. package/dist/network/http/streamFunction/multipartStream.js.map +1 -0
  71. package/dist/network/http/streamFunction/stream.d.ts +5 -0
  72. package/dist/network/http/streamFunction/stream.js +103 -0
  73. package/dist/network/http/streamFunction/stream.js.map +1 -0
  74. package/dist/network/index.d.ts +4 -0
  75. package/dist/network/index.js +84 -0
  76. package/dist/network/index.js.map +1 -0
  77. package/dist/network/message/auth.d.ts +4 -0
  78. package/dist/network/message/auth.js +32 -0
  79. package/dist/network/message/auth.js.map +1 -0
  80. package/dist/network/message/function.d.ts +3 -0
  81. package/dist/network/message/function.js +67 -0
  82. package/dist/network/message/function.js.map +1 -0
  83. package/dist/network/message/get.d.ts +3 -0
  84. package/dist/network/message/get.js +109 -0
  85. package/dist/network/message/get.js.map +1 -0
  86. package/dist/network/message/index.d.ts +3 -0
  87. package/dist/network/message/index.js +62 -0
  88. package/dist/network/message/index.js.map +1 -0
  89. package/dist/network/message/observable.d.ts +5 -0
  90. package/dist/network/message/observable.js +103 -0
  91. package/dist/network/message/observable.js.map +1 -0
  92. package/dist/network/message/send.d.ts +4 -0
  93. package/dist/network/message/send.js +11 -0
  94. package/dist/network/message/send.js.map +1 -0
  95. package/dist/network/upgrade.d.ts +4 -0
  96. package/dist/network/upgrade.js +49 -0
  97. package/dist/network/upgrade.js.map +1 -0
  98. package/dist/network/worker/get.d.ts +0 -0
  99. package/dist/network/worker/get.js +122 -0
  100. package/dist/network/worker/get.js.map +1 -0
  101. package/dist/network/worker/observable.d.ts +0 -0
  102. package/dist/network/worker/observable.js +120 -0
  103. package/dist/network/worker/observable.js.map +1 -0
  104. package/dist/observable/index.d.ts +8 -0
  105. package/dist/observable/index.js +154 -0
  106. package/dist/observable/index.js.map +1 -0
  107. package/dist/protocol.d.ts +19 -0
  108. package/dist/protocol.js +212 -0
  109. package/dist/protocol.js.map +1 -0
  110. package/dist/security/index.d.ts +2 -0
  111. package/dist/security/index.js +57 -0
  112. package/dist/security/index.js.map +1 -0
  113. package/dist/server.d.ts +35 -0
  114. package/dist/server.js +99 -0
  115. package/dist/server.js.map +1 -0
  116. package/dist/types.d.ts +1 -0
  117. package/dist/worker/authorize.d.ts +5 -0
  118. package/dist/worker/authorize.js +15 -0
  119. package/dist/worker/authorize.js.map +1 -0
  120. package/dist/worker/fnMap.d.ts +2 -0
  121. package/dist/worker/fnMap.js +5 -0
  122. package/dist/worker/fnMap.js.map +1 -0
  123. package/dist/worker/functions.d.ts +3 -0
  124. package/dist/worker/functions.js +8 -0
  125. package/dist/worker/functions.js.map +1 -0
  126. package/dist/worker/http/function.d.ts +4 -0
  127. package/dist/worker/http/function.js +75 -0
  128. package/dist/worker/http/function.js.map +1 -0
  129. package/dist/worker/index.d.ts +1 -0
  130. package/dist/worker/index.js +101 -0
  131. package/dist/worker/index.js.map +1 -0
  132. package/dist/worker/observable.d.ts +15 -0
  133. package/dist/worker/observable.js +110 -0
  134. package/dist/worker/observable.js.map +1 -0
  135. package/dist/worker/ws/function.d.ts +3 -0
  136. package/dist/worker/ws/function.js +42 -0
  137. package/dist/worker/ws/function.js.map +1 -0
  138. package/package.json +1 -1
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasedFunctions = exports.isObservableFunctionSpec = void 0;
4
+ const types_1 = require("../types");
5
+ Object.defineProperty(exports, "isObservableFunctionSpec", { enumerable: true, get: function () { return types_1.isObservableFunctionSpec; } });
6
+ const utils_1 = require("@saulx/utils");
7
+ const timeout_1 = require("./timeout");
8
+ const observable_1 = require("../observable");
9
+ const node_worker_threads_1 = require("node:worker_threads");
10
+ const path_1 = require("path");
11
+ let reqId = 0;
12
+ const WORKER_PATH = (0, path_1.join)(__dirname, '../worker');
13
+ class BasedFunctions {
14
+ constructor(server, config) {
15
+ this.workers = [];
16
+ this.workerResponseListeners = new Map();
17
+ this.paths = {};
18
+ this.observables = {};
19
+ this.functions = {};
20
+ this.beingUninstalled = {};
21
+ this.server = server;
22
+ if (config) {
23
+ this.updateConfig(config);
24
+ }
25
+ }
26
+ workerSortLoop() {
27
+ // or something else?
28
+ // this.workerSortTimeout
29
+ }
30
+ uninstallLoop() {
31
+ this.unregisterTimeout = setTimeout(async () => {
32
+ const q = [];
33
+ for (const name in this.functions) {
34
+ const spec = this.functions[name];
35
+ if ((0, timeout_1.fnIsTimedOut)(spec)) {
36
+ q.push(this.uninstall(name, spec));
37
+ }
38
+ }
39
+ for (const name in this.observables) {
40
+ const spec = this.observables[name];
41
+ if (this.server.activeObservables[name]) {
42
+ (0, timeout_1.updateTimeoutCounter)(spec);
43
+ }
44
+ else if ((0, timeout_1.fnIsTimedOut)(spec)) {
45
+ q.push(this.uninstall(name, spec));
46
+ }
47
+ }
48
+ await Promise.all(q);
49
+ this.uninstallLoop();
50
+ }, 3e3);
51
+ }
52
+ updateConfig(config) {
53
+ if (this.config) {
54
+ (0, utils_1.deepMerge)(this.config, config);
55
+ }
56
+ else {
57
+ this.config = config;
58
+ }
59
+ if (this.config.idleTimeout === undefined) {
60
+ this.config.idleTimeout = 60e3; // 1 min
61
+ }
62
+ if (this.config.memCacheTimeout === undefined) {
63
+ this.config.memCacheTimeout = 3e3;
64
+ }
65
+ if (this.config.maxWorkers === undefined) {
66
+ this.config.maxWorkers = 1;
67
+ }
68
+ if (this.config.log === undefined) {
69
+ this.config.log = (opts) => {
70
+ console.info(opts);
71
+ };
72
+ }
73
+ if (this.unregisterTimeout) {
74
+ clearTimeout(this.unregisterTimeout);
75
+ }
76
+ const d = this.config.maxWorkers - this.workers.length;
77
+ // clean all this stuff up.....
78
+ if (d !== 0) {
79
+ if (d < 0) {
80
+ for (let i = 0; i < d; i++) {
81
+ // active into account
82
+ const w = this.workers.pop();
83
+ w.worker.terminate();
84
+ }
85
+ }
86
+ else {
87
+ for (let i = 0; i < d; i++) {
88
+ const worker = new node_worker_threads_1.Worker(WORKER_PATH, {});
89
+ this.workers.push({
90
+ worker,
91
+ index: this.workers.length,
92
+ activeObservables: 0,
93
+ activeFunctions: 0,
94
+ });
95
+ if (this.server.auth) {
96
+ // allways install authorize
97
+ worker.postMessage({
98
+ type: 5,
99
+ name: 'authorize',
100
+ path: this.server.auth.config.authorizePath,
101
+ });
102
+ }
103
+ worker.on('message', (data) => {
104
+ // type 0 is just install fn
105
+ // subscribe and close will just go the normal way
106
+ if (data.type === 0) {
107
+ this.install(data.name)
108
+ .then((spec) => {
109
+ if (spec) {
110
+ worker.postMessage({
111
+ type: 5,
112
+ name: spec.name,
113
+ path: spec.functionPath,
114
+ });
115
+ }
116
+ else {
117
+ worker.postMessage({
118
+ type: 7,
119
+ name: data.name,
120
+ });
121
+ }
122
+ })
123
+ .catch(() => {
124
+ worker.postMessage({
125
+ type: 7,
126
+ name: data.name,
127
+ });
128
+ });
129
+ }
130
+ else if (data.id) {
131
+ const listener = this.workerResponseListeners.get(data.id);
132
+ // prob need more here
133
+ if (listener) {
134
+ listener(data.err, data.payload);
135
+ }
136
+ }
137
+ });
138
+ }
139
+ }
140
+ }
141
+ if (this.workers.length === 0) {
142
+ throw new Error('Needs at least 1 worker');
143
+ }
144
+ this.lowestWorker = this.workers.sort((a, b) => {
145
+ // will be RATE LIMIT TOKEN
146
+ return a.activeFunctions < b.activeFunctions
147
+ ? -1
148
+ : a.activeFunctions === b.activeFunctions
149
+ ? 0
150
+ : 1;
151
+ })[0];
152
+ this.uninstallLoop();
153
+ }
154
+ async install(name) {
155
+ let spec = this.getFromStore(name);
156
+ if (spec) {
157
+ return spec;
158
+ }
159
+ spec = await this.config.install({
160
+ server: this.server,
161
+ name,
162
+ });
163
+ if (spec) {
164
+ this.update(spec);
165
+ return this.getFromStore(name);
166
+ }
167
+ return false;
168
+ }
169
+ getNameFromPath(path) {
170
+ return this.paths[path];
171
+ }
172
+ route(name, path) {
173
+ const result = this.config.route({ server: this.server, name, path });
174
+ if (result && !result.maxPayloadSize) {
175
+ if (result.observable) {
176
+ // 50kb
177
+ result.maxPayloadSize = 50000;
178
+ }
179
+ else {
180
+ if (result.stream) {
181
+ result.maxPayloadSize = -1;
182
+ }
183
+ else {
184
+ result.maxPayloadSize = 250000;
185
+ }
186
+ }
187
+ }
188
+ return result;
189
+ }
190
+ getFromStore(name) {
191
+ const spec = this.observables[name] || this.functions[name];
192
+ if (spec) {
193
+ if (this.beingUninstalled[name]) {
194
+ console.info('getFromStore is being uninstalled', name);
195
+ delete this.beingUninstalled[name];
196
+ }
197
+ (0, timeout_1.updateTimeoutCounter)(spec);
198
+ return spec;
199
+ }
200
+ return false;
201
+ }
202
+ update(spec) {
203
+ // force uninstall in workers (and clear require cache - so it hopefully re-evaluates authorize etc)
204
+ // will make the 'call' function to be able to call a user defined authorize
205
+ if (spec) {
206
+ if (!spec.idleTimeout) {
207
+ spec.idleTimeout = this.config.idleTimeout;
208
+ }
209
+ if (spec.timeoutCounter === undefined) {
210
+ spec.timeoutCounter =
211
+ spec.idleTimeout === 0 ? -1 : Math.ceil(spec.idleTimeout / 1e3);
212
+ }
213
+ if (spec.path) {
214
+ this.paths[spec.path] = spec.name;
215
+ }
216
+ if ((0, types_1.isObservableFunctionSpec)(spec)) {
217
+ if (this.functions[spec.name]) {
218
+ this.remove(spec.name);
219
+ }
220
+ else if (this.observables[spec.name]) {
221
+ for (const w of this.workers) {
222
+ w.worker.postMessage({
223
+ type: 6,
224
+ name: spec.name,
225
+ });
226
+ }
227
+ }
228
+ this.observables[spec.name] = spec;
229
+ if (this.server.activeObservables[spec.name]) {
230
+ for (const [id] of this.server.activeObservables[spec.name]) {
231
+ (0, observable_1.initFunction)(this.server, id);
232
+ }
233
+ }
234
+ }
235
+ else {
236
+ if (this.observables[spec.name]) {
237
+ this.remove(spec.name);
238
+ }
239
+ else if (this.functions[spec.name]) {
240
+ for (const w of this.workers) {
241
+ w.worker.postMessage({
242
+ type: 6,
243
+ name: spec.name,
244
+ });
245
+ }
246
+ }
247
+ this.functions[spec.name] = spec;
248
+ }
249
+ }
250
+ return false;
251
+ }
252
+ remove(name) {
253
+ // Does not call unregister!
254
+ if (this.observables[name]) {
255
+ if (this.observables[name].path) {
256
+ delete this.paths[this.observables[name].path];
257
+ }
258
+ delete this.observables[name];
259
+ const activeObs = this.server.activeObservables[name];
260
+ if (activeObs) {
261
+ for (const [id] of activeObs) {
262
+ (0, observable_1.destroy)(this.server, id);
263
+ }
264
+ delete this.server.activeObservables[name];
265
+ }
266
+ // this is a bit harder... not allways relevant
267
+ for (const w of this.workers) {
268
+ w.worker.postMessage({
269
+ type: 6,
270
+ name,
271
+ });
272
+ }
273
+ return true;
274
+ }
275
+ else if (this.functions[name]) {
276
+ if (this.functions[name].path) {
277
+ delete this.paths[this.functions[name].path];
278
+ }
279
+ delete this.functions[name];
280
+ for (const w of this.workers) {
281
+ w.worker.postMessage({
282
+ type: 6,
283
+ name,
284
+ });
285
+ }
286
+ return true;
287
+ }
288
+ return false;
289
+ }
290
+ async uninstall(name, spec) {
291
+ if (this.beingUninstalled[name]) {
292
+ console.error('Allready being unregistered...', name);
293
+ }
294
+ if (!spec && spec !== false) {
295
+ spec = this.getFromStore(name);
296
+ }
297
+ if (spec) {
298
+ this.beingUninstalled[name] = true;
299
+ if (await this.config.uninstall({
300
+ server: this.server,
301
+ function: spec,
302
+ name,
303
+ })) {
304
+ if (this.beingUninstalled[name]) {
305
+ delete this.beingUninstalled[name];
306
+ return this.remove(name);
307
+ }
308
+ else {
309
+ console.info('got requested while being unregistered', name);
310
+ }
311
+ }
312
+ }
313
+ return false;
314
+ }
315
+ // from other worker fn
316
+ runObservableFunction(spec, id, error, update, payload) {
317
+ // TODO: move selection criteria etc to other file
318
+ const selectedWorker = this.lowestWorker;
319
+ this.workerResponseListeners.set(id, (err, p) => {
320
+ if (err) {
321
+ error(err);
322
+ }
323
+ else {
324
+ update(p.diff, p.data, p.checksum, p.isDeflate);
325
+ }
326
+ });
327
+ selectedWorker.worker.postMessage({
328
+ type: 1,
329
+ id,
330
+ name: spec.name,
331
+ path: spec.functionPath,
332
+ payload,
333
+ });
334
+ return () => {
335
+ this.workerResponseListeners.delete(id);
336
+ selectedWorker.worker.postMessage({
337
+ id,
338
+ type: 2,
339
+ });
340
+ };
341
+ }
342
+ async runFunction(type,
343
+ // 0 is normal function WS
344
+ // 3 is POST payload
345
+ // 4 is GET payload
346
+ spec, context, // make this specific
347
+ payload) {
348
+ // TODO: move selection criteria etc to other file
349
+ return new Promise((resolve, reject) => {
350
+ const listenerId = ++reqId;
351
+ // max concurrent execution is 1 mil...
352
+ if (this.workerResponseListeners.size >= 1e6) {
353
+ throw new Error('MAX CONCURRENT SERVER FUNCTION EXECUTION REACHED (1 MIL)');
354
+ }
355
+ if (reqId > 1e6) {
356
+ reqId = 0;
357
+ }
358
+ const selectedWorker = this.lowestWorker;
359
+ this.workerResponseListeners.set(listenerId, (err, p) => {
360
+ this.workerResponseListeners.delete(listenerId);
361
+ // include observables
362
+ selectedWorker.activeFunctions--;
363
+ if (selectedWorker.activeFunctions < this.lowestWorker.activeFunctions) {
364
+ this.lowestWorker = selectedWorker;
365
+ }
366
+ if (err) {
367
+ reject(err);
368
+ }
369
+ else {
370
+ // prob shared array buffer...
371
+ resolve(p);
372
+ }
373
+ });
374
+ selectedWorker.activeFunctions++;
375
+ let next = selectedWorker.index + 1;
376
+ if (next >= this.workers.length) {
377
+ next = 0;
378
+ }
379
+ if (selectedWorker.activeFunctions > this.workers[next].activeFunctions) {
380
+ this.lowestWorker = this.workers[next];
381
+ }
382
+ selectedWorker.worker.postMessage({
383
+ type,
384
+ path: spec.functionPath,
385
+ name: spec.name,
386
+ payload,
387
+ context,
388
+ id: listenerId,
389
+ });
390
+ // console.info(
391
+ // 'SPEED',
392
+ // selectedWorker.worker.threadId,
393
+ // selectedWorker.worker.performance.eventLoopUtilization()
394
+ // )
395
+ });
396
+ }
397
+ }
398
+ exports.BasedFunctions = BasedFunctions;
399
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BasedFunctionSpec, BasedObservableFunctionSpec } from '../types';
2
+ export declare const fnIsTimedOut: (spec: BasedObservableFunctionSpec | BasedFunctionSpec) => boolean;
3
+ export declare const updateTimeoutCounter: (spec: BasedObservableFunctionSpec | BasedFunctionSpec) => void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTimeoutCounter = exports.fnIsTimedOut = void 0;
4
+ const fnIsTimedOut = (spec) => {
5
+ if (spec.timeoutCounter !== -1) {
6
+ if (spec.timeoutCounter === 0) {
7
+ return true;
8
+ }
9
+ if (spec.idleTimeout > 0 && spec.timeoutCounter > 0) {
10
+ spec.timeoutCounter--;
11
+ }
12
+ }
13
+ return false;
14
+ };
15
+ exports.fnIsTimedOut = fnIsTimedOut;
16
+ const updateTimeoutCounter = (spec) => {
17
+ if (spec.timeoutCounter !== -1) {
18
+ spec.timeoutCounter =
19
+ spec.idleTimeout === -1 ? -1 : Math.ceil(spec.idleTimeout / 1e3 / 3);
20
+ }
21
+ };
22
+ exports.updateTimeoutCounter = updateTimeoutCounter;
23
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/functions/timeout.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CAC1B,IAAqD,EAC5C,EAAE;IACX,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,cAAc,EAAE,CAAA;SACtB;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAEM,MAAM,oBAAoB,GAAG,CAClC,IAAqD,EACrD,EAAE;IACF,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;KACvE;AACH,CAAC,CAAA;AAPY,QAAA,oBAAoB,wBAOhC"}
File without changes
@@ -0,0 +1,5 @@
1
+ // add a few worker also handle errors of observables
2
+ // think about making a dedicated worker for based client
3
+ // also make a thing 'sticky worker'
4
+ // cant get the server in a function like this , also not the client just PAYLOAD / OUTGOING PAYLOAD - outgoing
5
+ //# sourceMappingURL=workerPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerPool.js","sourceRoot":"","sources":["../../src/functions/workerPool.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,yDAAyD;AACzD,oCAAoC;AAEpC,+GAA+G"}
@@ -6,10 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const DataStream_1 = require("./DataStream");
7
7
  const storeFile_1 = __importDefault(require("./storeFile"));
8
8
  const getExtenstion_1 = __importDefault(require("./getExtenstion"));
9
+ const Client_1 = require("../../../Client");
9
10
  const isCompleteOpts = (options) => {
10
11
  return !!(options.id && options.size && options.type && options.extension);
11
12
  };
12
13
  const setHeader = (server, file, res) => {
14
+ if (!res.client) {
15
+ res.client = new Client_1.Client(server, undefined, res);
16
+ }
13
17
  file.headersSet++;
14
18
  if (file.headersSet === 2) {
15
19
  const opts = file.opts;
@@ -63,7 +67,7 @@ const setHeader = (server, file, res) => {
63
67
  updateProgress();
64
68
  });
65
69
  }
66
- (0, storeFile_1.default)(server, file.stream, opts);
70
+ (0, storeFile_1.default)(server, file.stream, opts, res.client);
67
71
  }
68
72
  else {
69
73
  invalidFile(res);
@@ -1 +1 @@
1
- {"version":3,"file":"formStream.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/formStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formStream.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/formStream.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Readable } from 'stream';
2
2
  import { BasedServer } from '../../..';
3
3
  import { FileOptions } from './types';
4
- declare const _default: (server: BasedServer, stream: Readable, opts: FileOptions) => Promise<void>;
4
+ import { Client } from '../../../Client';
5
+ declare const _default: (server: BasedServer, stream: Readable, opts: FileOptions, user: Client) => Promise<void>;
5
6
  export default _default;
@@ -1,34 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = async (server, stream, opts) => {
3
+ exports.default = async (server, stream, opts, user) => {
4
4
  const storeFile = server.config.storeFile;
5
5
  if (!storeFile) {
6
6
  throw new Error('No file upload handler available!');
7
7
  }
8
- const result = await storeFile({
9
- based: server.based,
10
- stream,
11
- id: opts.id,
12
- mimeType: opts.type,
13
- extension: opts.extension,
14
- size: opts.size,
15
- });
16
- // thumb
17
- const setObj = {
18
- $id: opts.id,
19
- src: result.src,
20
- origin: result.origin,
21
- status: result.status,
22
- version: result.version,
23
- mimeType: result.mimeType || opts.type,
24
- };
25
- if (result.thumb) {
26
- setObj.thumb = result.thumb;
8
+ try {
9
+ const result = await storeFile({
10
+ based: server.based,
11
+ stream,
12
+ id: opts.id,
13
+ mimeType: opts.type,
14
+ extension: opts.extension,
15
+ size: opts.size,
16
+ user,
17
+ });
18
+ const setObj = {
19
+ $id: opts.id,
20
+ src: result.src,
21
+ origin: result.origin,
22
+ status: result.status,
23
+ version: result.version,
24
+ mimeType: result.mimeType || opts.type,
25
+ };
26
+ if (result.thumb) {
27
+ setObj.thumb = result.thumb;
28
+ }
29
+ if (result.statusText) {
30
+ setObj.statusText = result.statusText;
31
+ }
32
+ // add version
33
+ server.based.set(setObj);
27
34
  }
28
- if (result.statusText) {
29
- setObj.statusText = result.statusText;
35
+ catch (err) {
36
+ console.error('Could not upload file, error:\n', err);
37
+ server.based.set({
38
+ $id: opts.id,
39
+ status: 4,
40
+ statusText: 'error',
41
+ });
30
42
  }
31
- // add version
32
- server.based.set(setObj);
33
43
  };
34
44
  //# sourceMappingURL=storeFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storeFile.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/storeFile.ts"],"names":[],"mappings":";;AAIA,kBAAe,KAAK,EAClB,MAAmB,EACnB,MAAgB,EAChB,IAAiB,EACF,EAAE;IACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAA;IAEzC,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAA;IAEF,QAAQ;IAER,MAAM,MAAM,GAAQ;QAClB,GAAG,EAAE,IAAI,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI;KACvC,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;KAC5B;IAED,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;KACtC;IAED,cAAc;IACd,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"storeFile.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/storeFile.ts"],"names":[],"mappings":";;AAKA,kBAAe,KAAK,EAClB,MAAmB,EACnB,MAAgB,EAChB,IAAiB,EACjB,IAAY,EACG,EAAE;IACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAA;IAEzC,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,MAAM,GAAQ;YAClB,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI;SACvC,CAAA;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;SAC5B;QAED,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;SACtC;QAED,cAAc;QACd,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACzB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;QACrD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACf,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,OAAO;SACpB,CAAC,CAAA;KACH;AACH,CAAC,CAAA"}
@@ -95,7 +95,11 @@ exports.default = async (server, res, opts) => {
95
95
  catch (err) { }
96
96
  }
97
97
  else {
98
- await (0, storeFile_1.default)(server, stream, opts);
98
+ if (!res.client) {
99
+ res.client = new Client_1.Client(server, undefined, res);
100
+ }
101
+ // @ts-ignore
102
+ await (0, storeFile_1.default)(server, stream, { user: res.client, ...opts });
99
103
  }
100
104
  };
101
105
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/handlers/rest/file/stream.ts"],"names":[],"mappings":"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"}