@webda/core 2.0.0-beta.3 → 2.0.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 (276) hide show
  1. package/lib/application.d.ts +5 -5
  2. package/lib/application.js +71 -84
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +121 -140
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +20 -24
  7. package/lib/core.js +222 -315
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +332 -406
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +49 -48
  12. package/lib/index.js +53 -70
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +2 -2
  15. package/lib/models/aclmodel.js +63 -90
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +127 -152
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +7 -6
  20. package/lib/models/coremodel.js +65 -113
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +88 -107
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/deployment.js +1 -2
  25. package/lib/models/ident.d.ts +3 -3
  26. package/lib/models/ident.js +4 -9
  27. package/lib/models/ident.js.map +1 -1
  28. package/lib/models/ident.spec.js +9 -11
  29. package/lib/models/ident.spec.js.map +1 -1
  30. package/lib/models/ownermodel.d.ts +2 -2
  31. package/lib/models/ownermodel.js +39 -62
  32. package/lib/models/ownermodel.js.map +1 -1
  33. package/lib/models/ownermodel.spec.js +126 -168
  34. package/lib/models/ownermodel.spec.js.map +1 -1
  35. package/lib/models/rolemodel.d.ts +1 -1
  36. package/lib/models/rolemodel.js +24 -40
  37. package/lib/models/rolemodel.js.map +1 -1
  38. package/lib/models/rolemodel.spec.js +44 -63
  39. package/lib/models/rolemodel.spec.js.map +1 -1
  40. package/lib/models/user.d.ts +3 -3
  41. package/lib/models/user.js +3 -8
  42. package/lib/models/user.js.map +1 -1
  43. package/lib/models/user.spec.js +14 -16
  44. package/lib/models/user.spec.js.map +1 -1
  45. package/lib/queues/filequeue.d.ts +2 -2
  46. package/lib/queues/filequeue.js +72 -93
  47. package/lib/queues/filequeue.js.map +1 -1
  48. package/lib/queues/filequeue.spec.js +53 -70
  49. package/lib/queues/filequeue.spec.js.map +1 -1
  50. package/lib/queues/memoryqueue.d.ts +2 -2
  51. package/lib/queues/memoryqueue.js +37 -61
  52. package/lib/queues/memoryqueue.js.map +1 -1
  53. package/lib/queues/memoryqueue.spec.js +142 -165
  54. package/lib/queues/memoryqueue.spec.js.map +1 -1
  55. package/lib/queues/pubsubservice.d.ts +2 -2
  56. package/lib/queues/pubsubservice.js +3 -7
  57. package/lib/queues/pubsubservice.js.map +1 -1
  58. package/lib/queues/queue.spec.d.ts +1 -1
  59. package/lib/queues/queue.spec.js +42 -56
  60. package/lib/queues/queue.spec.js.map +1 -1
  61. package/lib/queues/queueservice.d.ts +3 -3
  62. package/lib/queues/queueservice.js +51 -67
  63. package/lib/queues/queueservice.js.map +1 -1
  64. package/lib/router.d.ts +3 -3
  65. package/lib/router.js +46 -47
  66. package/lib/router.js.map +1 -1
  67. package/lib/router.spec.js +64 -61
  68. package/lib/router.spec.js.map +1 -1
  69. package/lib/services/asyncevents.d.ts +2 -2
  70. package/lib/services/asyncevents.js +44 -64
  71. package/lib/services/asyncevents.js.map +1 -1
  72. package/lib/services/asyncevents.spec.js +81 -98
  73. package/lib/services/asyncevents.spec.js.map +1 -1
  74. package/lib/services/authentication.d.ts +23 -13
  75. package/lib/services/authentication.js +537 -563
  76. package/lib/services/authentication.js.map +1 -1
  77. package/lib/services/authentication.spec.js +411 -447
  78. package/lib/services/authentication.spec.js.map +1 -1
  79. package/lib/services/binary.d.ts +7 -5
  80. package/lib/services/binary.js +211 -244
  81. package/lib/services/binary.js.map +1 -1
  82. package/lib/services/binary.spec.d.ts +3 -3
  83. package/lib/services/binary.spec.js +390 -443
  84. package/lib/services/binary.spec.js.map +1 -1
  85. package/lib/services/cloudbinary.d.ts +3 -3
  86. package/lib/services/cloudbinary.js +45 -70
  87. package/lib/services/cloudbinary.js.map +1 -1
  88. package/lib/services/cloudbinary.spec.d.ts +3 -3
  89. package/lib/services/cloudbinary.spec.js +133 -162
  90. package/lib/services/cloudbinary.spec.js.map +1 -1
  91. package/lib/services/configuration.d.ts +1 -1
  92. package/lib/services/configuration.js +78 -105
  93. package/lib/services/configuration.js.map +1 -1
  94. package/lib/services/configuration.spec.js +63 -83
  95. package/lib/services/configuration.spec.js.map +1 -1
  96. package/lib/services/cron.d.ts +3 -2
  97. package/lib/services/cron.js +9 -13
  98. package/lib/services/cron.js.map +1 -1
  99. package/lib/services/cron.spec.js +18 -21
  100. package/lib/services/cron.spec.js.map +1 -1
  101. package/lib/services/cryptoservice.d.ts +9 -4
  102. package/lib/services/cryptoservice.js +187 -221
  103. package/lib/services/cryptoservice.js.map +1 -1
  104. package/lib/services/cryptoservice.spec.js +88 -115
  105. package/lib/services/cryptoservice.spec.js.map +1 -1
  106. package/lib/services/debugmailer.d.ts +1 -1
  107. package/lib/services/debugmailer.js +13 -34
  108. package/lib/services/debugmailer.js.map +1 -1
  109. package/lib/services/debugmailer.spec.js +16 -29
  110. package/lib/services/debugmailer.spec.js.map +1 -1
  111. package/lib/services/echo.d.ts +2 -2
  112. package/lib/services/echo.js +15 -31
  113. package/lib/services/echo.js.map +1 -1
  114. package/lib/services/echo.spec.js +27 -40
  115. package/lib/services/echo.spec.js.map +1 -1
  116. package/lib/services/filebinary.d.ts +5 -5
  117. package/lib/services/filebinary.js +165 -210
  118. package/lib/services/filebinary.js.map +1 -1
  119. package/lib/services/filebinary.spec.d.ts +2 -1
  120. package/lib/services/filebinary.spec.js +106 -116
  121. package/lib/services/filebinary.spec.js.map +1 -1
  122. package/lib/services/fileconfiguration.d.ts +1 -1
  123. package/lib/services/fileconfiguration.js +25 -44
  124. package/lib/services/fileconfiguration.js.map +1 -1
  125. package/lib/services/fileconfiguration.spec.js +79 -109
  126. package/lib/services/fileconfiguration.spec.js.map +1 -1
  127. package/lib/services/invitationservice.d.ts +7 -7
  128. package/lib/services/invitationservice.js +274 -314
  129. package/lib/services/invitationservice.js.map +1 -1
  130. package/lib/services/invitationservice.spec.js +442 -448
  131. package/lib/services/invitationservice.spec.js.map +1 -1
  132. package/lib/services/kubernetesconfiguration.d.ts +1 -1
  133. package/lib/services/kubernetesconfiguration.js +41 -60
  134. package/lib/services/kubernetesconfiguration.js.map +1 -1
  135. package/lib/services/kubernetesconfiguration.spec.js +80 -98
  136. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  137. package/lib/services/mailer.d.ts +4 -4
  138. package/lib/services/mailer.js +62 -86
  139. package/lib/services/mailer.js.map +1 -1
  140. package/lib/services/mailer.spec.js +86 -127
  141. package/lib/services/mailer.spec.js.map +1 -1
  142. package/lib/services/notificationservice.d.ts +3 -3
  143. package/lib/services/notificationservice.js +21 -42
  144. package/lib/services/notificationservice.js.map +1 -1
  145. package/lib/services/notificationservice.spec.js +47 -73
  146. package/lib/services/notificationservice.spec.js.map +1 -1
  147. package/lib/services/oauth.d.ts +4 -4
  148. package/lib/services/oauth.js +68 -83
  149. package/lib/services/oauth.js.map +1 -1
  150. package/lib/services/oauth.spec.js +130 -156
  151. package/lib/services/oauth.spec.js.map +1 -1
  152. package/lib/services/proxy.d.ts +2 -6
  153. package/lib/services/proxy.js +45 -58
  154. package/lib/services/proxy.js.map +1 -1
  155. package/lib/services/proxy.spec.js +34 -53
  156. package/lib/services/proxy.spec.js.map +1 -1
  157. package/lib/services/resource.d.ts +2 -2
  158. package/lib/services/resource.js +12 -18
  159. package/lib/services/resource.js.map +1 -1
  160. package/lib/services/resource.spec.js +67 -99
  161. package/lib/services/resource.spec.js.map +1 -1
  162. package/lib/services/service.d.ts +26 -3
  163. package/lib/services/service.js +68 -40
  164. package/lib/services/service.js.map +1 -1
  165. package/lib/services/service.spec.js +62 -67
  166. package/lib/services/service.spec.js.map +1 -1
  167. package/lib/services/version.d.ts +1 -1
  168. package/lib/services/version.js +3 -8
  169. package/lib/services/version.js.map +1 -1
  170. package/lib/services/version.spec.js +11 -24
  171. package/lib/services/version.spec.js.map +1 -1
  172. package/lib/stores/aggregator.d.ts +2 -2
  173. package/lib/stores/aggregator.js +37 -58
  174. package/lib/stores/aggregator.js.map +1 -1
  175. package/lib/stores/file.d.ts +3 -3
  176. package/lib/stores/file.js +93 -131
  177. package/lib/stores/file.js.map +1 -1
  178. package/lib/stores/file.spec.d.ts +2 -2
  179. package/lib/stores/file.spec.js +261 -289
  180. package/lib/stores/file.spec.js.map +1 -1
  181. package/lib/stores/mapper.d.ts +3 -3
  182. package/lib/stores/mapper.js +110 -137
  183. package/lib/stores/mapper.js.map +1 -1
  184. package/lib/stores/mapper.spec.js +131 -150
  185. package/lib/stores/mapper.spec.js.map +1 -1
  186. package/lib/stores/memory.d.ts +3 -3
  187. package/lib/stores/memory.js +98 -144
  188. package/lib/stores/memory.js.map +1 -1
  189. package/lib/stores/memory.spec.d.ts +2 -2
  190. package/lib/stores/memory.spec.js +124 -145
  191. package/lib/stores/memory.spec.js.map +1 -1
  192. package/lib/stores/store.d.ts +17 -13
  193. package/lib/stores/store.js +819 -847
  194. package/lib/stores/store.js.map +1 -1
  195. package/lib/stores/store.spec.d.ts +5 -4
  196. package/lib/stores/store.spec.js +624 -669
  197. package/lib/stores/store.spec.js.map +1 -1
  198. package/lib/stores/webdaql/WebdaQLLexer.d.ts +4 -4
  199. package/lib/stores/webdaql/WebdaQLLexer.js +9 -13
  200. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  201. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +4 -4
  202. package/lib/stores/webdaql/WebdaQLParserLexer.js +9 -13
  203. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  204. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +2 -2
  205. package/lib/stores/webdaql/WebdaQLParserListener.js +1 -2
  206. package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -1
  207. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +10 -10
  208. package/lib/stores/webdaql/WebdaQLParserParser.js +62 -91
  209. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  210. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +2 -2
  211. package/lib/stores/webdaql/WebdaQLParserVisitor.js +1 -2
  212. package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -1
  213. package/lib/stores/webdaql/query.d.ts +4 -5
  214. package/lib/stores/webdaql/query.js +16 -19
  215. package/lib/stores/webdaql/query.js.map +1 -1
  216. package/lib/stores/webdaql/query.spec.js +30 -32
  217. package/lib/stores/webdaql/query.spec.js.map +1 -1
  218. package/lib/test.d.ts +3 -3
  219. package/lib/test.js +73 -100
  220. package/lib/test.js.map +1 -1
  221. package/lib/unpackedapplication.d.ts +1 -1
  222. package/lib/unpackedapplication.js +25 -31
  223. package/lib/unpackedapplication.js.map +1 -1
  224. package/lib/utils/abstractdeployer.js +1 -5
  225. package/lib/utils/abstractdeployer.js.map +1 -1
  226. package/lib/utils/abstractdeployer.spec.js +6 -8
  227. package/lib/utils/abstractdeployer.spec.js.map +1 -1
  228. package/lib/utils/context.d.ts +7 -5
  229. package/lib/utils/context.js +95 -103
  230. package/lib/utils/context.js.map +1 -1
  231. package/lib/utils/context.spec.js +139 -163
  232. package/lib/utils/context.spec.js.map +1 -1
  233. package/lib/utils/cookie.d.ts +3 -3
  234. package/lib/utils/cookie.js +42 -61
  235. package/lib/utils/cookie.js.map +1 -1
  236. package/lib/utils/cookie.spec.js +42 -64
  237. package/lib/utils/cookie.spec.js.map +1 -1
  238. package/lib/utils/esm.d.ts +4 -0
  239. package/lib/utils/esm.js +10 -0
  240. package/lib/utils/esm.js.map +1 -0
  241. package/lib/utils/httpcontext.d.ts +3 -0
  242. package/lib/utils/httpcontext.js +48 -65
  243. package/lib/utils/httpcontext.js.map +1 -1
  244. package/lib/utils/httpcontext.spec.js +37 -56
  245. package/lib/utils/httpcontext.spec.js.map +1 -1
  246. package/lib/utils/logger.d.ts +2 -2
  247. package/lib/utils/logger.js +15 -28
  248. package/lib/utils/logger.js.map +1 -1
  249. package/lib/utils/logger.spec.js +9 -11
  250. package/lib/utils/logger.spec.js.map +1 -1
  251. package/lib/utils/serializers.js +17 -20
  252. package/lib/utils/serializers.js.map +1 -1
  253. package/lib/utils/serializers.spec.js +43 -44
  254. package/lib/utils/serializers.spec.js.map +1 -1
  255. package/lib/utils/session.d.ts +6 -6
  256. package/lib/utils/session.js +37 -59
  257. package/lib/utils/session.js.map +1 -1
  258. package/lib/utils/session.spec.js +38 -51
  259. package/lib/utils/session.spec.js.map +1 -1
  260. package/lib/utils/waiter.d.ts +1 -1
  261. package/lib/utils/waiter.js +32 -52
  262. package/lib/utils/waiter.js.map +1 -1
  263. package/lib/utils/waiter.spec.js +75 -92
  264. package/lib/utils/waiter.spec.js.map +1 -1
  265. package/package.json +17 -12
  266. package/test/config-invitation.json +1 -3
  267. package/test/config.json +1 -2
  268. package/test/config.old.json +1 -2
  269. package/test/moddas/annotatedservice.js +5 -5
  270. package/test/moddas/debugmailer.js +2 -3
  271. package/test/moddas/fakeservice.js +2 -3
  272. package/test/moddas/voidstore.js +6 -4
  273. package/test/models/ident.js +2 -6
  274. package/test/models/task.js +3 -7
  275. package/test/package.json +2 -1
  276. package/webda.module.json +956 -189
@@ -1,35 +1,21 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.FileQueue = exports.FileQueueParameters = void 0;
13
- const fs = require("fs");
14
- const path_1 = require("path");
15
- const uuid = require("uuid");
16
- const serializers_1 = require("../utils/serializers");
17
- const queueservice_1 = require("./queueservice");
18
- class FileQueueParameters extends queueservice_1.QueueParameters {
1
+ import * as fs from "fs";
2
+ import { join } from "path";
3
+ import * as uuid from "uuid";
4
+ import { JSONUtils } from "../utils/serializers.js";
5
+ import { Queue, QueueParameters } from "./queueservice.js";
6
+ export class FileQueueParameters extends QueueParameters {
19
7
  constructor(params) {
20
- var _a;
21
8
  super(params);
22
- this.expire = (_a = this.expire) !== null && _a !== void 0 ? _a : 30;
9
+ this.expire = this.expire ?? 30;
23
10
  this.expire *= 1000;
24
11
  }
25
12
  }
26
- exports.FileQueueParameters = FileQueueParameters;
27
13
  /**
28
14
  * FIFO Queue on filesystem
29
15
  * @category CoreServices
30
16
  * @WebdaModda
31
17
  */
32
- class FileQueue extends queueservice_1.Queue {
18
+ export class FileQueue extends Queue {
33
19
  /**
34
20
  * @inheritdoc
35
21
  */
@@ -48,10 +34,8 @@ class FileQueue extends queueservice_1.Queue {
48
34
  /**
49
35
  * @inheritdoc
50
36
  */
51
- size() {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- return fs.readdirSync(this.parameters.folder).filter(f => f.endsWith(".json")).length;
54
- });
37
+ async size() {
38
+ return fs.readdirSync(this.parameters.folder).filter(f => f.endsWith(".json")).length;
55
39
  }
56
40
  /**
57
41
  * Return file
@@ -59,94 +43,89 @@ class FileQueue extends queueservice_1.Queue {
59
43
  * @returns
60
44
  */
61
45
  getFile(uid) {
62
- return (0, path_1.join)(this.parameters.folder, `${uid}.json`);
46
+ return join(this.parameters.folder, `${uid}.json`);
63
47
  }
64
48
  /**
65
49
  * @inheritdoc
66
50
  */
67
- sendMessage(params) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- var uid = uuid.v4();
70
- let file = this.getFile(uid);
71
- // Avoid duplication
72
- while (fs.existsSync(file)) {
73
- uid = uuid.v4();
74
- file = this.getFile(uid);
75
- }
76
- serializers_1.JSONUtils.saveFile(params, file);
77
- });
51
+ async sendMessage(params) {
52
+ let uid = uuid.v4();
53
+ let file = this.getFile(uid);
54
+ // Avoid duplication
55
+ while (fs.existsSync(file)) {
56
+ uid = uuid.v4();
57
+ file = this.getFile(uid);
58
+ }
59
+ JSONUtils.saveFile(params, file);
78
60
  }
79
61
  /**
80
62
  * @inheritdoc
81
63
  */
82
- receiveMessage(proto) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- const files = fs
85
- .readdirSync(this.parameters.folder)
86
- .filter(f => f.endsWith(".json"))
87
- .map(f => {
88
- const lockFile = (0, path_1.join)(this.parameters.folder, f + ".lock");
89
- let res = Object.assign(Object.assign({}, fs.lstatSync((0, path_1.join)(this.parameters.folder, f))), { path: (0, path_1.join)(this.parameters.folder, f), hasLock: fs.existsSync(lockFile), uid: f.substring(0, f.length - 5) });
90
- if (res.hasLock) {
91
- const lock = fs.lstatSync(lockFile);
92
- if (lock.ctimeMs < Date.now() - this.parameters.expire) {
93
- res.hasLock = false;
94
- fs.unlinkSync(lockFile);
95
- }
96
- }
97
- return res;
98
- })
99
- .filter(f => !f.hasLock)
100
- .sort((a, b) => {
101
- // It is not relevant as it is fs based
102
- /* istanbul ignore if */
103
- if (a.ctime > b.ctime) {
104
- return 1;
64
+ async receiveMessage(proto) {
65
+ const files = fs
66
+ .readdirSync(this.parameters.folder)
67
+ .filter(f => f.endsWith(".json"))
68
+ .map(f => {
69
+ const lockFile = join(this.parameters.folder, f + ".lock");
70
+ let res = {
71
+ ...fs.lstatSync(join(this.parameters.folder, f)),
72
+ path: join(this.parameters.folder, f),
73
+ hasLock: fs.existsSync(lockFile),
74
+ uid: f.substring(0, f.length - 5)
75
+ };
76
+ if (res.hasLock) {
77
+ const lock = fs.lstatSync(lockFile);
78
+ if (lock.ctimeMs < Date.now() - this.parameters.expire) {
79
+ res.hasLock = false;
80
+ fs.unlinkSync(lockFile);
105
81
  }
106
- /* istanbul ignore next */
107
- return -1;
108
- });
109
- if (files.length) {
110
- let el = files.shift();
111
- // Create the lock
112
- fs.writeFileSync(el.path + ".lock", "");
113
- return [
114
- {
115
- ReceiptHandle: el.uid,
116
- Message: this.unserialize(fs.readFileSync(el.path).toString(), proto)
117
- }
118
- ];
119
82
  }
120
- else {
121
- yield new Promise(resolve => setTimeout(resolve, 10000));
83
+ return res;
84
+ })
85
+ .filter(f => !f.hasLock)
86
+ .sort((a, b) => {
87
+ // It is not relevant as it is fs based
88
+ /* c8 ignore next 4 */
89
+ if (a.ctime > b.ctime) {
90
+ return 1;
122
91
  }
123
- return [];
92
+ return -1;
124
93
  });
94
+ if (files.length) {
95
+ let el = files.shift();
96
+ // Create the lock
97
+ fs.writeFileSync(el.path + ".lock", "");
98
+ return [
99
+ {
100
+ ReceiptHandle: el.uid,
101
+ Message: this.unserialize(fs.readFileSync(el.path).toString(), proto)
102
+ }
103
+ ];
104
+ }
105
+ else {
106
+ await new Promise(resolve => setTimeout(resolve, 10000));
107
+ }
108
+ return [];
125
109
  }
126
110
  /**
127
111
  * @inheritdoc
128
112
  */
129
- deleteMessage(receipt) {
130
- return __awaiter(this, void 0, void 0, function* () {
131
- const file = this.getFile(receipt);
132
- if (fs.existsSync(file)) {
133
- fs.unlinkSync(file);
134
- if (fs.existsSync(file + ".lock")) {
135
- fs.unlinkSync(file + ".lock");
136
- }
113
+ async deleteMessage(receipt) {
114
+ const file = this.getFile(receipt);
115
+ if (fs.existsSync(file)) {
116
+ fs.unlinkSync(file);
117
+ if (fs.existsSync(file + ".lock")) {
118
+ fs.unlinkSync(file + ".lock");
137
119
  }
138
- });
120
+ }
139
121
  }
140
122
  /**
141
123
  * @inheritdoc
142
124
  */
143
- __clean() {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- // Use require on purpose to avoid adding fs-extra as runtime dep
146
- // The __clean method is only used by unit test
147
- require("fs-extra").emptyDirSync(this.parameters.folder);
148
- });
125
+ async __clean() {
126
+ // Use require on purpose to avoid adding fs-extra as runtime dep
127
+ // The __clean method is only used by unit test
128
+ (await import("fs-extra")).emptyDirSync(this.parameters.folder);
149
129
  }
150
130
  }
151
- exports.FileQueue = FileQueue;
152
131
  //# sourceMappingURL=filequeue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filequeue.js","sourceRoot":"","sources":["../../src/queues/filequeue.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yBAAyB;AACzB,+BAA4B;AAC5B,6BAA6B;AAE7B,sDAAiD;AACjD,iDAAwE;AAExE,MAAa,mBAAoB,SAAQ,8BAAe;IAYtD,YAAY,MAAW;;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtB,CAAC;CACF;AAjBD,kDAiBC;AAED;;;;GAIG;AACH,MAAa,SAAwE,SAAQ,oBAAW;IACtG;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACtC;IACH,CAAC;IAED;;OAEG;IACG,IAAI;;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,CAAC;KAAA;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAW;QACjB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACG,WAAW,CAAC,MAAM;;YACtB,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACpB,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,oBAAoB;YACpB,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC1B,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAChB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC1B;YACD,uBAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;IAED;;OAEG;IACG,cAAc,CAAI,KAAqB;;YAC3C,MAAM,KAAK,GAAG,EAAE;iBACb,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC3D,IAAI,GAAG,mCACF,EAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAChD,IAAI,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EACrC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAClC,CAAC;gBACF,IAAI,GAAG,CAAC,OAAO,EAAE;oBACf,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;wBACtD,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;wBACpB,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;qBACzB;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;iBACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,uCAAuC;gBACvC,yBAAyB;gBACzB,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE;oBACrB,OAAO,CAAC,CAAC;iBACV;gBACD,2BAA2B;gBAC3B,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;YACL,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACvB,kBAAkB;gBAClB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxC,OAAO;oBACL;wBACE,aAAa,EAAE,EAAE,CAAC,GAAG;wBACrB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;qBACtE;iBACF,CAAC;aACH;iBAAM;gBACL,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAC1D;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAED;;OAEG;IACG,aAAa,CAAC,OAAO;;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE;oBACjC,EAAE,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;iBAC/B;aACF;QACH,CAAC;KAAA;IAED;;OAEG;IACG,OAAO;;YACX,iEAAiE;YACjE,+CAA+C;YAC/C,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KAAA;CACF;AAvHD,8BAuHC"}
1
+ {"version":3,"file":"filequeue.js","sourceRoot":"","sources":["../../src/queues/filequeue.ts"],"names":[],"mappings":"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"}
@@ -1,89 +1,72 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const mocha_1 = require("@testdeck/mocha");
19
- const assert = require("assert");
20
- const fs = require("fs");
21
- const fs_1 = require("fs");
22
- const fs_extra_1 = require("fs-extra");
23
- const filequeue_1 = require("./filequeue");
24
- const queue_spec_1 = require("./queue.spec");
25
- let FileQueueTest = class FileQueueTest extends queue_spec_1.QueueTest {
26
- basic() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- let queue = this.getService("FileQueue");
29
- yield queue.__clean();
30
- yield this.simple(queue);
31
- });
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import * as fs from "fs";
10
+ import { unlinkSync } from "fs";
11
+ import { emptyDirSync } from "fs-extra";
12
+ import { FileQueue } from "./filequeue.js";
13
+ import { QueueTest } from "./queue.spec.js";
14
+ let FileQueueTest = class FileQueueTest extends QueueTest {
15
+ async basic() {
16
+ let queue = this.getService("FileQueue");
17
+ await queue.__clean();
18
+ await this.simple(queue);
32
19
  }
33
- lock() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- let queue = this.getService("FileQueue");
36
- yield queue.__clean();
37
- yield queue.sendMessage({ test: "plop" });
38
- let msg = yield queue.receiveMessage();
39
- let msg2 = yield queue.receiveMessage();
40
- assert.strictEqual(msg.length, 1);
41
- assert.strictEqual(msg2.length, 0);
42
- yield this.sleep(1000);
43
- yield queue.sendMessage({ test: "plop2" });
44
- msg2 = yield queue.receiveMessage();
45
- assert.strictEqual(msg2.length, 1);
46
- assert.deepStrictEqual(msg2[0], msg[0]);
47
- (0, fs_1.unlinkSync)(`${queue.getParameters().folder}/${msg[0].ReceiptHandle}.json.lock`);
48
- yield queue.deleteMessage(msg[0].ReceiptHandle);
49
- msg2 = yield queue.receiveMessage();
50
- (0, fs_1.unlinkSync)(`${queue.getParameters().folder}/${msg2[0].ReceiptHandle}.json`);
51
- yield queue.deleteMessage(msg2[0].ReceiptHandle);
52
- queue = new filequeue_1.FileQueue(this.webda, "q", {});
53
- assert.strictEqual(queue.getParameters().expire, 30000);
54
- });
20
+ async lock() {
21
+ let queue = this.getService("FileQueue");
22
+ await queue.__clean();
23
+ await queue.sendMessage({ test: "plop" });
24
+ let msg = await queue.receiveMessage();
25
+ let msg2 = await queue.receiveMessage();
26
+ assert.strictEqual(msg.length, 1);
27
+ assert.strictEqual(msg2.length, 0);
28
+ await this.sleep(1000);
29
+ await queue.sendMessage({ test: "plop2" });
30
+ msg2 = await queue.receiveMessage();
31
+ assert.strictEqual(msg2.length, 1);
32
+ assert.deepStrictEqual(msg2[0], msg[0]);
33
+ unlinkSync(`${queue.getParameters().folder}/${msg[0].ReceiptHandle}.json.lock`);
34
+ await queue.deleteMessage(msg[0].ReceiptHandle);
35
+ msg2 = await queue.receiveMessage();
36
+ unlinkSync(`${queue.getParameters().folder}/${msg2[0].ReceiptHandle}.json`);
37
+ await queue.deleteMessage(msg2[0].ReceiptHandle);
38
+ queue = new FileQueue(this.webda, "q", {});
39
+ assert.strictEqual(queue.getParameters().expire, 30000);
55
40
  }
56
- sendMessage() {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- let queue = this.getService("FileQueue");
59
- let firstCall = true;
60
- queue.getFile = (uid) => {
61
- if (firstCall) {
62
- fs.writeFileSync(`${queue.getParameters().folder}/${uid}.json`, "{}");
63
- firstCall = false;
64
- }
65
- return `${queue.getParameters().folder}/${uid}.json`;
66
- };
67
- yield queue.sendMessage({ plop: "test" });
68
- (0, fs_extra_1.emptyDirSync)(queue.getParameters().folder);
69
- fs.rmdirSync(queue.getParameters().folder);
70
- assert.ok(!fs.existsSync(queue.getParameters().folder));
71
- queue.computeParameters();
72
- assert.ok(fs.existsSync(queue.getParameters().folder));
73
- queue.computeParameters();
74
- });
41
+ async sendMessage() {
42
+ let queue = this.getService("FileQueue");
43
+ let firstCall = true;
44
+ queue.getFile = (uid) => {
45
+ if (firstCall) {
46
+ fs.writeFileSync(`${queue.getParameters().folder}/${uid}.json`, "{}");
47
+ firstCall = false;
48
+ }
49
+ return `${queue.getParameters().folder}/${uid}.json`;
50
+ };
51
+ await queue.sendMessage({ plop: "test" });
52
+ emptyDirSync(queue.getParameters().folder);
53
+ fs.rmdirSync(queue.getParameters().folder);
54
+ assert.ok(!fs.existsSync(queue.getParameters().folder));
55
+ queue.computeParameters();
56
+ assert.ok(fs.existsSync(queue.getParameters().folder));
57
+ queue.computeParameters();
75
58
  }
76
59
  };
77
60
  __decorate([
78
- mocha_1.test
61
+ test
79
62
  ], FileQueueTest.prototype, "basic", null);
80
63
  __decorate([
81
- mocha_1.test
64
+ test
82
65
  ], FileQueueTest.prototype, "lock", null);
83
66
  __decorate([
84
- mocha_1.test
67
+ test
85
68
  ], FileQueueTest.prototype, "sendMessage", null);
86
69
  FileQueueTest = __decorate([
87
- mocha_1.suite
70
+ suite
88
71
  ], FileQueueTest);
89
72
  //# sourceMappingURL=filequeue.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filequeue.spec.js","sourceRoot":"","sources":["../../src/queues/filequeue.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filequeue.spec.js","sourceRoot":"","sources":["../../src/queues/filequeue.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ServiceParameters } from "../services/service";
2
- import { MessageReceipt, Queue, QueueParameters } from "./queueservice";
1
+ import { ServiceParameters } from "../services/service.js";
2
+ import { MessageReceipt, Queue, QueueParameters } from "./queueservice.js";
3
3
  export declare class MemoryQueueParameters extends QueueParameters {
4
4
  /**
5
5
  * Number of seconds before droping message
@@ -1,33 +1,20 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryQueue = exports.MemoryQueueParameters = void 0;
13
- const uuid = require("uuid");
14
- const serializers_1 = require("../utils/serializers");
15
- const queueservice_1 = require("./queueservice");
16
- class MemoryQueueParameters extends queueservice_1.QueueParameters {
2
+ import * as uuid from "uuid";
3
+ import { JSONUtils } from "../utils/serializers.js";
4
+ import { Queue, QueueParameters } from "./queueservice.js";
5
+ export class MemoryQueueParameters extends QueueParameters {
17
6
  constructor(params) {
18
- var _a;
19
7
  super(params);
20
- this.expire = (_a = this.expire) !== null && _a !== void 0 ? _a : 30;
8
+ this.expire = this.expire ?? 30;
21
9
  this.expire *= 1000;
22
10
  }
23
11
  }
24
- exports.MemoryQueueParameters = MemoryQueueParameters;
25
12
  /**
26
13
  * FIFO Queue in Memory
27
14
  * @category CoreServices
28
15
  * @WebdaModda
29
16
  */
30
- class MemoryQueue extends queueservice_1.Queue {
17
+ export class MemoryQueue extends Queue {
31
18
  constructor() {
32
19
  super(...arguments);
33
20
  this._queue = {};
@@ -44,62 +31,51 @@ class MemoryQueue extends queueservice_1.Queue {
44
31
  /**
45
32
  * Return queue size
46
33
  */
47
- size() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- return Object.keys(this._queue).length;
50
- });
34
+ async size() {
35
+ return Object.keys(this._queue).length;
51
36
  }
52
- sendMessage(params) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- var uid = uuid.v4();
55
- // Avoid duplication
56
- while (this._queue[uid]) {
57
- uid = uuid.v4();
58
- }
59
- this._queue[uid] = {
60
- Body: serializers_1.JSONUtils.stringify(params, undefined, 0),
61
- Claimed: 0,
62
- ReceiptHandle: uid
63
- };
64
- });
37
+ async sendMessage(params) {
38
+ let uid = uuid.v4();
39
+ // Avoid duplication
40
+ while (this._queue[uid]) {
41
+ uid = uuid.v4();
42
+ }
43
+ this._queue[uid] = {
44
+ Body: JSONUtils.stringify(params, undefined, 0),
45
+ Claimed: 0,
46
+ ReceiptHandle: uid
47
+ };
65
48
  }
66
49
  /**
67
50
  * @inheritdoc
68
51
  */
69
- receiveMessage(proto) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- for (var i in this._queue) {
72
- if (this._queue[i].Claimed < new Date().getTime() - this.parameters.expire) {
73
- this._queue[i].Claimed = new Date().getTime();
74
- return [
75
- {
76
- ReceiptHandle: this._queue[i].ReceiptHandle,
77
- Message: this.unserialize(this._queue[i].Body, proto)
78
- }
79
- ];
80
- }
52
+ async receiveMessage(proto) {
53
+ for (let i in this._queue) {
54
+ if (this._queue[i].Claimed < new Date().getTime() - this.parameters.expire) {
55
+ this._queue[i].Claimed = new Date().getTime();
56
+ return [
57
+ {
58
+ ReceiptHandle: this._queue[i].ReceiptHandle,
59
+ Message: this.unserialize(this._queue[i].Body, proto)
60
+ }
61
+ ];
81
62
  }
82
- return [];
83
- });
63
+ }
64
+ return [];
84
65
  }
85
66
  /**
86
67
  * @inheritdoc
87
68
  */
88
- deleteMessage(receipt) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- if (this._queue[receipt]) {
91
- delete this._queue[receipt];
92
- }
93
- });
69
+ async deleteMessage(receipt) {
70
+ if (this._queue[receipt]) {
71
+ delete this._queue[receipt];
72
+ }
94
73
  }
95
74
  /**
96
75
  * @inheritdoc
97
76
  */
98
- __clean() {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- this._queue = {};
101
- });
77
+ async __clean() {
78
+ this._queue = {};
102
79
  }
103
80
  }
104
- exports.MemoryQueue = MemoryQueue;
105
81
  //# sourceMappingURL=memoryqueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryqueue.js","sourceRoot":"","sources":["../../src/queues/memoryqueue.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb,6BAA6B;AAE7B,sDAAiD;AACjD,iDAAwE;AAMxE,MAAa,qBAAsB,SAAQ,8BAAe;IAQxD,YAAY,MAAW;;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtB,CAAC;CACF;AAbD,sDAaC;AAED;;;;GAIG;AACH,MAAa,WAA8E,SAAQ,oBAAW;IAA9G;;QACU,WAAM,GAAa,EAAE,CAAC;IAiEhC,CAAC;IA/DC;;;;;OAKG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACG,IAAI;;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACzC,CAAC;KAAA;IAEK,WAAW,CAAC,MAAM;;YACtB,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACpB,oBAAoB;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACvB,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;aACjB;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;gBACjB,IAAI,EAAE,uBAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;gBACV,aAAa,EAAE,GAAG;aACnB,CAAC;QACJ,CAAC;KAAA;IAED;;OAEG;IACG,cAAc,CAAI,KAAqB;;YAC3C,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC1E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC9C,OAAO;wBACL;4BACE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa;4BAC3C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;yBACtD;qBACF,CAAC;iBACH;aACF;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAED;;OAEG;IACG,aAAa,CAAC,OAAO;;YACzB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAC7B;QACH,CAAC;KAAA;IAED;;OAEG;IACG,OAAO;;YACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KAAA;CACF;AAlED,kCAkEC"}
1
+ {"version":3,"file":"memoryqueue.js","sourceRoot":"","sources":["../../src/queues/memoryqueue.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAkB,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMxE,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAQxD,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAA8E,SAAQ,KAAW;IAA9G;;QACU,WAAM,GAAa,EAAE,CAAC;IAiEhC,CAAC;IA/DC;;;;;OAKG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACpB,oBAAoB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;SACjB;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACjB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,GAAG;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAI,KAAqB;QAC3C,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC1E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO;oBACL;wBACE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa;wBAC3C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;qBACtD;iBACF,CAAC;aACH;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAO;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}