@webda/core 2.0.0-beta.3 → 2.1.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 +21 -25
  7. package/lib/core.js +233 -320
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +334 -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 +128 -152
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +33 -14
  20. package/lib/models/coremodel.js +160 -117
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +143 -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 +9 -9
  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 +540 -566
  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 +8 -6
  80. package/lib/services/binary.js +212 -245
  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 +8 -8
  128. package/lib/services/invitationservice.js +274 -314
  129. package/lib/services/invitationservice.js.map +1 -1
  130. package/lib/services/invitationservice.spec.js +443 -449
  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 +262 -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 +133 -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 +27 -17
  193. package/lib/stores/store.js +833 -849
  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 +625 -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 +49 -39
  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 +18 -13
  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 +895 -190
@@ -1,38 +1,23 @@
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
- exports.UnknownSession = exports.Session = exports.CookieSessionManager = exports.CookieSessionParameters = exports.SessionManager = void 0;
19
- const coremodel_1 = require("../models/coremodel");
20
- const service_1 = require("../services/service");
21
- const cookie_1 = require("./cookie");
7
+ import { NotEnumerable } from "../models/coremodel.js";
8
+ import { Inject, Service, ServiceParameters } from "../services/service.js";
9
+ import { CookieOptions, SecureCookie } from "./cookie.js";
22
10
  /**
23
11
  * Manage load and save of sessions
24
12
  */
25
- class SessionManager extends service_1.Service {
13
+ export class SessionManager extends Service {
26
14
  }
27
- exports.SessionManager = SessionManager;
28
- class CookieSessionParameters extends service_1.ServiceParameters {
15
+ export class CookieSessionParameters extends ServiceParameters {
29
16
  constructor(params) {
30
- var _a;
31
17
  super(params);
32
- (_a = this.cookie) !== null && _a !== void 0 ? _a : (this.cookie = new cookie_1.CookieOptions({}));
18
+ this.cookie ?? (this.cookie = new CookieOptions({}));
33
19
  }
34
20
  }
35
- exports.CookieSessionParameters = CookieSessionParameters;
36
21
  /**
37
22
  * SessionManager that store info in a cookie
38
23
  *
@@ -41,7 +26,7 @@ exports.CookieSessionParameters = CookieSessionParameters;
41
26
  *
42
27
  * @WebdaModda
43
28
  */
44
- class CookieSessionManager extends SessionManager {
29
+ export class CookieSessionManager extends SessionManager {
45
30
  /**
46
31
  * @override
47
32
  */
@@ -61,55 +46,50 @@ class CookieSessionManager extends SessionManager {
61
46
  /**
62
47
  * @override
63
48
  */
64
- load(context) {
65
- var _a, _b;
66
- return __awaiter(this, void 0, void 0, function* () {
67
- const session = new Session();
68
- let cookie = yield cookie_1.SecureCookie.load(this.parameters.cookie.name, context, this.parameters.jwt);
69
- if (this.sessionStore) {
70
- if (cookie.sub) {
71
- Object.assign(session, (_a = (yield this.sessionStore.get(cookie.sub))) === null || _a === void 0 ? void 0 : _a.session);
72
- }
73
- (_b = session.uuid) !== null && _b !== void 0 ? _b : (session.uuid = context.getWebda().getUuid("base64"));
49
+ async load(context) {
50
+ const session = new Session();
51
+ let cookie = await SecureCookie.load(this.parameters.cookie.name, context, this.parameters.jwt);
52
+ if (this.sessionStore) {
53
+ if (cookie.sub) {
54
+ Object.assign(session, (await this.sessionStore.get(cookie.sub))?.session);
55
+ session.uuid = cookie.sub;
74
56
  }
75
- else {
76
- Object.assign(session, cookie);
77
- }
78
- return session;
79
- });
57
+ session.uuid ?? (session.uuid = context.getWebda().getUuid("base64"));
58
+ }
59
+ else {
60
+ Object.assign(session, cookie);
61
+ }
62
+ return session;
80
63
  }
81
64
  /**
82
65
  * @override
83
66
  */
84
- save(context, session) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- // If store is found session info are stored in db
87
- if (this.sessionStore) {
88
- yield this.sessionStore.save({
89
- uuid: session.uuid,
90
- session,
91
- ttl: Date.now() + this.parameters.cookie.maxAge * 1000
92
- });
93
- cookie_1.SecureCookie.save(this.parameters.cookie.name, context, {}, Object.assign(Object.assign({}, this.parameters.jwt), { subject: session.uuid }));
94
- return;
95
- }
96
- cookie_1.SecureCookie.save(this.parameters.cookie.name, context, session, this.parameters.jwt);
97
- });
67
+ async save(context, session) {
68
+ // If store is found session info are stored in db
69
+ if (this.sessionStore) {
70
+ await this.sessionStore.save({
71
+ uuid: session.uuid,
72
+ session,
73
+ ttl: Date.now() + this.parameters.cookie.maxAge * 1000
74
+ });
75
+ SecureCookie.save(this.parameters.cookie.name, context, {}, { ...this.parameters.jwt, subject: session.uuid.toString() });
76
+ return;
77
+ }
78
+ SecureCookie.save(this.parameters.cookie.name, context, session, this.parameters.jwt);
98
79
  }
99
80
  }
100
81
  __decorate([
101
- (0, service_1.Inject)("CryptoService")
82
+ Inject("CryptoService")
102
83
  ], CookieSessionManager.prototype, "cryptoService", void 0);
103
84
  __decorate([
104
- (0, service_1.Inject)("SessionStore", true)
85
+ Inject("SessionStore", true)
105
86
  ], CookieSessionManager.prototype, "sessionStore", void 0);
106
- exports.CookieSessionManager = CookieSessionManager;
107
87
  /**
108
88
  * Session model
109
89
  *
110
90
  * @WebdaModel
111
91
  */
112
- class Session {
92
+ export class Session {
113
93
  constructor() {
114
94
  this.changed = false;
115
95
  }
@@ -165,13 +145,11 @@ class Session {
165
145
  }
166
146
  }
167
147
  __decorate([
168
- coremodel_1.NotEnumerable
148
+ NotEnumerable
169
149
  ], Session.prototype, "changed", void 0);
170
- exports.Session = Session;
171
150
  /**
172
151
  * Unknown session that allows all keys
173
152
  */
174
- class UnknownSession extends Session {
153
+ export class UnknownSession extends Session {
175
154
  }
176
- exports.UnknownSession = UnknownSession;
177
155
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,17 @@
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 memory_1 = require("../stores/memory");
21
- const test_1 = require("../test");
22
- const session_1 = require("./session");
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import { MemoryStore } from "../stores/memory.js";
10
+ import { WebdaTest } from "../test.js";
11
+ import { UnknownSession } from "./session.js";
23
12
  let SessionTest = class SessionTest {
24
13
  basic() {
25
- let session = new session_1.UnknownSession().getProxy();
14
+ let session = new UnknownSession().getProxy();
26
15
  session.plop = "test";
27
16
  assert.ok(session.isDirty());
28
17
  assert.ok(!session.isLogged());
@@ -33,47 +22,45 @@ let SessionTest = class SessionTest {
33
22
  }
34
23
  };
35
24
  __decorate([
36
- mocha_1.test
25
+ test
37
26
  ], SessionTest.prototype, "basic", null);
38
27
  SessionTest = __decorate([
39
- mocha_1.suite
28
+ suite
40
29
  ], SessionTest);
41
- let SessionStoreTest = class SessionStoreTest extends test_1.WebdaTest {
42
- sessionStore() {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- // Test MemoryStore
45
- const store = (this.webda.getServices()["sessionstore"] = yield new memory_1.MemoryStore(this.webda, "SessionStore", {})
46
- .resolve()
47
- .init());
48
- store.getParameters().expose = { url: "url" };
49
- assert.throws(() => this.getService("SessionManager").resolve(), /SessionStore should not be exposed/);
50
- store.getParameters().expose = undefined;
51
- this.getService("SessionManager").resolve();
52
- let ctx = yield this.newContext();
53
- ctx.getSession().identUsed = "bouzouf";
54
- yield ctx.end();
55
- let sessions = yield store.getAll();
56
- assert.strictEqual(sessions.length, 1);
57
- let cookie = yield this.webda.getCrypto().jwtVerify(ctx.getResponseCookies()["test"].value);
58
- assert.strictEqual(cookie.uuid, undefined);
59
- assert.strictEqual(cookie.identUsed, undefined);
60
- assert.strictEqual(cookie.sub, sessions[0].getUuid());
61
- let ctx2 = yield this.newContext();
62
- ctx2.getHttpContext().cookies = {
63
- test: ctx.getResponseCookies()["test"].value
64
- };
65
- yield ctx2.init();
66
- let session = ctx2.getSession();
67
- assert.strictEqual(session.uuid, sessions[0].getUuid());
68
- assert.strictEqual(session.identUsed, "bouzouf");
69
- assert.strictEqual(session.sub, undefined);
70
- });
30
+ let SessionStoreTest = class SessionStoreTest extends WebdaTest {
31
+ async sessionStore() {
32
+ // Test MemoryStore
33
+ const store = (this.webda.getServices()["sessionstore"] = await new MemoryStore(this.webda, "SessionStore", {})
34
+ .resolve()
35
+ .init());
36
+ store.getParameters().expose = { url: "url" };
37
+ assert.throws(() => this.getService("SessionManager").resolve(), /SessionStore should not be exposed/);
38
+ store.getParameters().expose = undefined;
39
+ this.getService("SessionManager").resolve();
40
+ let ctx = await this.newContext();
41
+ ctx.getSession().identUsed = "bouzouf";
42
+ await ctx.end();
43
+ let sessions = await store.getAll();
44
+ assert.strictEqual(sessions.length, 1);
45
+ let cookie = await this.webda.getCrypto().jwtVerify(ctx.getResponseCookies()["test"].value);
46
+ assert.strictEqual(cookie.uuid, undefined);
47
+ assert.strictEqual(cookie.identUsed, undefined);
48
+ assert.strictEqual(cookie.sub, sessions[0].getUuid());
49
+ let ctx2 = await this.newContext();
50
+ ctx2.getHttpContext().cookies = {
51
+ test: ctx.getResponseCookies()["test"].value
52
+ };
53
+ await ctx2.init();
54
+ let session = ctx2.getSession();
55
+ assert.strictEqual(session.uuid, sessions[0].getUuid());
56
+ assert.strictEqual(session.identUsed, "bouzouf");
57
+ assert.strictEqual(session.sub, undefined);
71
58
  }
72
59
  };
73
60
  __decorate([
74
- mocha_1.test
61
+ test
75
62
  ], SessionStoreTest.prototype, "sessionStore", null);
76
63
  SessionStoreTest = __decorate([
77
- mocha_1.suite
64
+ suite
78
65
  ], SessionStoreTest);
79
66
  //# sourceMappingURL=session.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.spec.js","sourceRoot":"","sources":["../../src/utils/session.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.spec.js","sourceRoot":"","sources":["../../src/utils/session.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Logger } from "..";
1
+ import { Logger } from "../index.js";
2
2
  /**
3
3
  * Function that define the amount of time between calls
4
4
  */
@@ -1,38 +1,24 @@
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.CancelableLoopPromise = exports.CancelablePromise = exports.WaitFor = exports.WaitDelayerFactories = exports.WaitExponentialDelay = exports.WaitLinearDelay = void 0;
13
- const uuid_1 = require("uuid");
1
+ import { v4 as uuidv4 } from "uuid";
14
2
  /**
15
3
  * Return a delayer that always wait for the same amount of time
16
4
  * @param pause amount of time to wait
17
5
  * @returns
18
6
  */
19
- function WaitLinearDelay(pause) {
7
+ export function WaitLinearDelay(pause) {
20
8
  return () => pause;
21
9
  }
22
- exports.WaitLinearDelay = WaitLinearDelay;
23
10
  /**
24
11
  * Return a delayer that always wait for the same amount of time
25
12
  * @param pause amount of time to wait
26
13
  * @returns
27
14
  */
28
- function WaitExponentialDelay(pause) {
15
+ export function WaitExponentialDelay(pause) {
29
16
  return (retries) => Math.pow(2, retries - 1) * pause;
30
17
  }
31
- exports.WaitExponentialDelay = WaitExponentialDelay;
32
18
  /**
33
19
  * Registry for DelayerFactory
34
20
  */
35
- class WaitDelayerFactories {
21
+ export class WaitDelayerFactories {
36
22
  /**
37
23
  * Add a delayer
38
24
  * @param type
@@ -58,7 +44,6 @@ class WaitDelayerFactories {
58
44
  return WaitDelayerFactories.getFactory(definition.type)(definition.interval);
59
45
  }
60
46
  }
61
- exports.WaitDelayerFactories = WaitDelayerFactories;
62
47
  WaitDelayerFactories.registry = {
63
48
  linear: WaitLinearDelay,
64
49
  exponential: WaitExponentialDelay
@@ -80,72 +65,68 @@ WaitDelayerFactories.registry = {
80
65
  * @param logger logger to use to report
81
66
  * @param delayer function that return pause between each call default to WaitExponential(1000)
82
67
  */
83
- function WaitFor(callback, retries, title, logger, delayer) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- if (!delayer) {
86
- delayer = WaitDelayerFactories.get();
68
+ export async function WaitFor(callback, retries, title, logger, delayer) {
69
+ if (!delayer) {
70
+ delayer = WaitDelayerFactories.get();
71
+ }
72
+ return new Promise(async (mainResolve, mainReject) => {
73
+ let tries = 0;
74
+ let uuid = uuidv4();
75
+ if (logger) {
76
+ logger.logProgressStart(uuid, retries, title);
87
77
  }
88
- return new Promise((mainResolve, mainReject) => __awaiter(this, void 0, void 0, function* () {
89
- let tries = 0;
90
- let uuid = (0, uuid_1.v4)();
78
+ while (retries > tries++) {
79
+ if (title && logger) {
80
+ logger.log("DEBUG", "[" + tries + "/" + retries + "]", title);
81
+ }
91
82
  if (logger) {
92
- logger.logProgressStart(uuid, retries, title);
83
+ logger.logProgressUpdate(tries, uuid);
93
84
  }
94
- while (retries > tries++) {
95
- if (title && logger) {
96
- logger.log("DEBUG", "[" + tries + "/" + retries + "]", title);
97
- }
85
+ if (await callback(mainResolve, mainReject)) {
98
86
  if (logger) {
99
- logger.logProgressUpdate(tries, uuid);
87
+ logger.logProgressUpdate(retries);
100
88
  }
101
- if (yield callback(mainResolve, mainReject)) {
102
- if (logger) {
103
- logger.logProgressUpdate(retries);
104
- }
105
- return;
106
- }
107
- yield new Promise(resolve => setTimeout(resolve, delayer(tries)));
89
+ return;
108
90
  }
109
- mainReject("Timeout while waiting for " + title);
110
- }));
91
+ await new Promise(resolve => setTimeout(resolve, delayer(tries)));
92
+ }
93
+ mainReject("Timeout while waiting for " + title);
111
94
  });
112
95
  }
113
- exports.WaitFor = WaitFor;
114
96
  /**
115
97
  * Return a promise that can be cancelled
116
98
  */
117
- class CancelablePromise extends Promise {
99
+ export class CancelablePromise extends Promise {
118
100
  constructor(callback = () => {
119
101
  // noop
120
102
  }, onCancel = undefined) {
121
103
  let localReject;
122
104
  super((resolve, reject) => {
123
- localReject = () => __awaiter(this, void 0, void 0, function* () {
105
+ localReject = async () => {
124
106
  if (onCancel) {
125
- yield onCancel();
107
+ await onCancel();
126
108
  }
127
109
  reject("Cancelled");
128
- });
110
+ };
129
111
  callback(resolve, reject);
130
112
  });
131
113
  this.cancel = localReject;
132
114
  }
133
115
  }
134
- exports.CancelablePromise = CancelablePromise;
135
116
  /**
136
117
  * Create a promise that will loop on the same callback until cancelled
137
118
  */
138
- class CancelableLoopPromise extends Promise {
119
+ export class CancelableLoopPromise extends Promise {
139
120
  constructor(callback, onCancel = undefined) {
140
121
  let localReject;
141
122
  let shouldRun = true;
142
123
  super(resolve => {
143
- localReject = () => __awaiter(this, void 0, void 0, function* () {
124
+ localReject = async () => {
144
125
  if (onCancel) {
145
- yield onCancel();
126
+ await onCancel();
146
127
  }
147
128
  shouldRun = false;
148
- });
129
+ };
149
130
  let loop = () => {
150
131
  if (shouldRun) {
151
132
  return callback(localReject).then(loop);
@@ -159,5 +140,4 @@ class CancelableLoopPromise extends Promise {
159
140
  return Promise;
160
141
  }
161
142
  }
162
- exports.CancelableLoopPromise = CancelableLoopPromise;
163
143
  //# sourceMappingURL=waiter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waiter.js","sourceRoot":"","sources":["../../src/utils/waiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waiter.js","sourceRoot":"","sources":["../../src/utils/waiter.ts"],"names":[],"mappings":"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"}