@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,51 +1,37 @@
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.CryptoService = exports.CryptoServiceParameters = void 0;
19
- const crypto_1 = require("crypto");
20
- const jwt = require("jsonwebtoken");
21
- const pem_jwk_1 = require("pem-jwk");
22
- const serializers_1 = require("../utils/serializers");
23
- const service_1 = require("./service");
24
- class CryptoServiceParameters extends service_1.ServiceParameters {
7
+ import { createCipheriv, createDecipheriv, createHmac, generateKeyPairSync, randomBytes } from "crypto";
8
+ import jwt from "jsonwebtoken";
9
+ import { pem2jwk } from "pem-jwk";
10
+ import { JSONUtils } from "../utils/serializers.js";
11
+ import { Inject, Route, Service, ServiceParameters } from "./service.js";
12
+ export class CryptoServiceParameters extends ServiceParameters {
25
13
  constructor(params) {
26
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
27
- var _p, _q, _r, _s, _t, _u, _v, _w;
14
+ var _a, _b, _c, _d, _e, _f, _g, _h;
28
15
  super(params);
29
- (_a = this.symetricKeyLength) !== null && _a !== void 0 ? _a : (this.symetricKeyLength = 256);
30
- (_b = this.symetricCipher) !== null && _b !== void 0 ? _b : (this.symetricCipher = "aes-256-ctr");
31
- (_c = this.asymetricType) !== null && _c !== void 0 ? _c : (this.asymetricType = "rsa");
32
- (_d = this.asymetricOptions) !== null && _d !== void 0 ? _d : (this.asymetricOptions = {});
33
- (_e = (_p = this.asymetricOptions).modulusLength) !== null && _e !== void 0 ? _e : (_p.modulusLength = 2048);
34
- (_f = (_q = this.asymetricOptions).privateKeyEncoding) !== null && _f !== void 0 ? _f : (_q.privateKeyEncoding = {});
35
- (_g = (_r = this.asymetricOptions.privateKeyEncoding).format) !== null && _g !== void 0 ? _g : (_r.format = "pem");
36
- (_h = (_s = this.asymetricOptions.privateKeyEncoding).type) !== null && _h !== void 0 ? _h : (_s.type = "pkcs8");
37
- (_j = (_t = this.asymetricOptions).publicKeyEncoding) !== null && _j !== void 0 ? _j : (_t.publicKeyEncoding = {});
38
- (_k = (_u = this.asymetricOptions.publicKeyEncoding).format) !== null && _k !== void 0 ? _k : (_u.format = "pem");
39
- (_l = (_v = this.asymetricOptions.publicKeyEncoding).type) !== null && _l !== void 0 ? _l : (_v.type = "spki");
40
- (_m = this.jwt) !== null && _m !== void 0 ? _m : (this.jwt = {});
41
- (_o = (_w = this.jwt).algorithm) !== null && _o !== void 0 ? _o : (_w.algorithm = "HS256");
16
+ this.symetricKeyLength ?? (this.symetricKeyLength = 256);
17
+ this.symetricCipher ?? (this.symetricCipher = "aes-256-ctr");
18
+ this.asymetricType ?? (this.asymetricType = "rsa");
19
+ this.asymetricOptions ?? (this.asymetricOptions = {});
20
+ (_a = this.asymetricOptions).modulusLength ?? (_a.modulusLength = 2048);
21
+ (_b = this.asymetricOptions).privateKeyEncoding ?? (_b.privateKeyEncoding = {});
22
+ (_c = this.asymetricOptions.privateKeyEncoding).format ?? (_c.format = "pem");
23
+ (_d = this.asymetricOptions.privateKeyEncoding).type ?? (_d.type = "pkcs8");
24
+ (_e = this.asymetricOptions).publicKeyEncoding ?? (_e.publicKeyEncoding = {});
25
+ (_f = this.asymetricOptions.publicKeyEncoding).format ?? (_f.format = "pem");
26
+ (_g = this.asymetricOptions.publicKeyEncoding).type ?? (_g.type = "spki");
27
+ this.jwt ?? (this.jwt = {});
28
+ (_h = this.jwt).algorithm ?? (_h.algorithm = "HS256");
42
29
  }
43
30
  }
44
- exports.CryptoServiceParameters = CryptoServiceParameters;
45
31
  /**
46
32
  * @WebdaModda
47
33
  */
48
- class CryptoService extends service_1.Service {
34
+ export default class CryptoService extends Service {
49
35
  constructor() {
50
36
  super(...arguments);
51
37
  /**
@@ -62,73 +48,61 @@ class CryptoService extends service_1.Service {
62
48
  /**
63
49
  * @override
64
50
  */
65
- init() {
66
- const _super = Object.create(null, {
67
- init: { get: () => super.init }
68
- });
69
- return __awaiter(this, void 0, void 0, function* () {
70
- yield _super.init.call(this);
71
- // Load keys
72
- if (!(yield this.load()) && this.parameters.autoRotate) {
73
- yield this.rotate();
74
- }
75
- if (this.parameters.expose) {
76
- this.addRoute(this.parameters.expose, ["GET"], this.serveJWKS);
77
- }
78
- return this;
79
- });
51
+ async init() {
52
+ await super.init();
53
+ // Load keys
54
+ if (!(await this.load()) && this.parameters.autoCreate) {
55
+ await this.rotate();
56
+ }
57
+ return this;
80
58
  }
81
59
  /**
82
60
  *
83
61
  */
84
- serveJWKS(context) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- context.write({
87
- keys: Object.keys(this.keys).map(k => {
88
- if (!this.jwks[k]) {
89
- /*
90
- when Node >= 16
91
- this.jwks[k] = createPublicKey(this.keys[k].publicKey).export({ format: "jwk" });
92
- and remove pem-jwk
93
- */
94
- this.jwks[k] = (0, pem_jwk_1.pem2jwk)(this.keys[k].publicKey);
95
- }
96
- return {
97
- kty: "RSA",
98
- kid: k,
99
- n: this.jwks[k].n,
100
- e: this.jwks[k].e
101
- };
102
- })
103
- });
62
+ async serveJWKS(context) {
63
+ context.write({
64
+ keys: Object.keys(this.keys).map(k => {
65
+ if (!this.jwks[k]) {
66
+ /*
67
+ when Node >= 16
68
+ this.jwks[k] = createPublicKey(this.keys[k].publicKey).export({ format: "jwk" });
69
+ and remove pem-jwk
70
+ */
71
+ this.jwks[k] = pem2jwk(this.keys[k].publicKey);
72
+ }
73
+ return {
74
+ kty: "RSA",
75
+ kid: k,
76
+ n: this.jwks[k].n,
77
+ e: this.jwks[k].e
78
+ };
79
+ })
104
80
  });
105
81
  }
106
82
  /**
107
83
  * Load keys from registry
108
84
  */
109
- load() {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- let load = yield this.registry.get("keys");
112
- if (!load) {
113
- return false;
114
- }
115
- this.keys = {};
116
- Object.keys(load)
117
- .filter(k => k.startsWith("key_"))
118
- .forEach(k => {
119
- this.keys[k.substring(4)] = load[k];
120
- });
121
- this.current = load.current.startsWith("init-") ? undefined : load.current;
122
- this.age = parseInt(this.current, 36);
123
- return true;
85
+ async load() {
86
+ let load = await this.registry.get("keys");
87
+ if (!load) {
88
+ return false;
89
+ }
90
+ this.keys = {};
91
+ Object.keys(load)
92
+ .filter(k => k.startsWith("key_"))
93
+ .forEach(k => {
94
+ this.keys[k.substring(4)] = load[k];
124
95
  });
96
+ this.current = load.current.startsWith("init-") ? undefined : load.current;
97
+ this.age = parseInt(this.current, 36);
98
+ return true;
125
99
  }
126
100
  /**
127
101
  * Generate asymetric key
128
102
  * @returns
129
103
  */
130
104
  generateAsymetricKeys() {
131
- const { publicKey, privateKey } = (0, crypto_1.generateKeyPairSync)(
105
+ const { publicKey, privateKey } = generateKeyPairSync(
132
106
  // @ts-ignore
133
107
  this.parameters.asymetricType, this.parameters.asymetricOptions);
134
108
  return { publicKey, privateKey };
@@ -138,18 +112,16 @@ class CryptoService extends service_1.Service {
138
112
  * @returns
139
113
  */
140
114
  generateSymetricKey() {
141
- return (0, crypto_1.randomBytes)(this.parameters.symetricKeyLength / 8).toString("base64");
115
+ return randomBytes(this.parameters.symetricKeyLength / 8).toString("base64");
142
116
  }
143
117
  /**
144
118
  * Return current key set
145
119
  */
146
- getCurrentKeys() {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- if (!this.keys || !this.current || !this.keys[this.current]) {
149
- throw new Error("CryptoService not initialized");
150
- }
151
- return { keys: this.keys[this.current], id: this.current };
152
- });
120
+ async getCurrentKeys() {
121
+ if (!this.keys || !this.current || !this.keys[this.current]) {
122
+ throw new Error("CryptoService not initialized");
123
+ }
124
+ return { keys: this.keys[this.current], id: this.current };
153
125
  }
154
126
  /**
155
127
  * Retrieve a HMAC for a string
@@ -157,131 +129,120 @@ class CryptoService extends service_1.Service {
157
129
  * @param keyId to use
158
130
  * @returns
159
131
  */
160
- hmac(data, keyId) {
161
- return __awaiter(this, void 0, void 0, function* () {
162
- if (typeof data !== "string") {
163
- data = serializers_1.JSONUtils.stringify(data);
164
- }
165
- let key = keyId ? { id: keyId, keys: this.keys[keyId] } : yield this.getCurrentKeys();
166
- return key.id + "." + (0, crypto_1.createHmac)("sha256", key.keys.symetric).update(data).digest("hex");
167
- });
132
+ async hmac(data, keyId) {
133
+ if (typeof data !== "string") {
134
+ data = JSONUtils.stringify(data);
135
+ }
136
+ let key = keyId ? { id: keyId, keys: this.keys[keyId] } : await this.getCurrentKeys();
137
+ return key.id + "." + createHmac("sha256", key.keys.symetric).update(data).digest("hex");
168
138
  }
169
139
  /**
170
140
  * Verify a HMAC for a string
171
141
  * @param data
172
142
  * @returns
173
143
  */
174
- hmacVerify(data, hmac) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- if (typeof data !== "string") {
177
- data = serializers_1.JSONUtils.stringify(data);
178
- }
179
- let [keyId, mac] = hmac.split(".");
180
- if (!(yield this.checkKey(keyId))) {
181
- return false;
182
- }
183
- return (0, crypto_1.createHmac)("sha256", this.keys[keyId].symetric).update(data).digest("hex") === mac;
184
- });
144
+ async hmacVerify(data, hmac) {
145
+ if (typeof data !== "string") {
146
+ data = JSONUtils.stringify(data);
147
+ }
148
+ let [keyId, mac] = hmac.split(".");
149
+ if (!(await this.checkKey(keyId))) {
150
+ return false;
151
+ }
152
+ return createHmac("sha256", this.keys[keyId].symetric).update(data).digest("hex") === mac;
185
153
  }
186
154
  /**
187
155
  * JWT token generation
188
156
  */
189
- jwtSign(data, options) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- let res = Object.assign(Object.assign({}, this.parameters.jwt), options);
192
- let key = res.secretOrPublicKey;
193
- // Default to our current private key
194
- if (!res.secretOrPublicKey) {
195
- let keyInfo = yield this.getCurrentKeys();
196
- // Depending on the algo fallback to the right key
197
- if (res.algorithm.startsWith("HS")) {
198
- key = keyInfo.keys.symetric;
199
- res.keyid = "S" + keyInfo.id;
200
- }
201
- else {
202
- key = keyInfo.keys.privateKey;
203
- res.keyid = "A" + keyInfo.id;
204
- }
157
+ async jwtSign(data, options) {
158
+ let res = { ...this.parameters.jwt, ...options };
159
+ let key = res.secretOrPublicKey;
160
+ // Default to our current private key
161
+ if (!res.secretOrPublicKey) {
162
+ let keyInfo = await this.getCurrentKeys();
163
+ // Depending on the algo fallback to the right key
164
+ if (res.algorithm.startsWith("HS")) {
165
+ key = keyInfo.keys.symetric;
166
+ res.keyid = "S" + keyInfo.id;
205
167
  }
206
- delete res.secretOrPublicKey;
207
- return jwt.sign(data, key, res);
208
- });
168
+ else {
169
+ key = keyInfo.keys.privateKey;
170
+ res.keyid = "A" + keyInfo.id;
171
+ }
172
+ }
173
+ delete res.secretOrPublicKey;
174
+ return jwt.sign(data, key, res);
209
175
  }
210
176
  /**
211
177
  *
212
178
  * @param keyId
213
179
  * @returns
214
180
  */
215
- checkKey(keyId) {
216
- return __awaiter(this, void 0, void 0, function* () {
181
+ async checkKey(keyId) {
182
+ if (!this.keys[keyId]) {
183
+ // Key is more recent than current one so try to reload
184
+ if (parseInt(keyId, 36) > this.age) {
185
+ await this.load();
186
+ }
187
+ // Key is still not found
217
188
  if (!this.keys[keyId]) {
218
- // Key is more recent than current one so try to reload
219
- if (parseInt(keyId, 36) > this.age) {
220
- yield this.load();
221
- }
222
- // Key is still not found
223
- if (!this.keys[keyId]) {
224
- return false;
225
- }
189
+ return false;
226
190
  }
227
- return true;
228
- });
191
+ }
192
+ return true;
229
193
  }
230
194
  /**
231
195
  * Get JWT key based on kid
232
196
  */
233
- getJWTKey(header, callback) {
234
- return __awaiter(this, void 0, void 0, function* () {
235
- if (!header.kid) {
236
- callback(new Error("Unknown key"));
237
- return;
238
- }
239
- let keyId = header.kid.substring(1);
240
- if (!(yield this.checkKey(keyId))) {
241
- callback(new Error("Unknown key"));
242
- return;
243
- }
244
- // Check first letter that define Symetric or Asymetric
245
- if (header.kid.startsWith("S")) {
246
- callback(null, this.keys[keyId].symetric);
247
- }
248
- else if (header.kid.startsWith("A")) {
249
- callback(null, this.keys[keyId].publicKey);
250
- }
251
- else {
252
- callback(new Error("Unknown key"));
253
- }
254
- });
197
+ async getJWTKey(header, callback) {
198
+ if (!header.kid) {
199
+ callback(new Error("Unknown key"));
200
+ return;
201
+ }
202
+ let keyId = header.kid.substring(1);
203
+ if (!(await this.checkKey(keyId))) {
204
+ callback(new Error("Unknown key"));
205
+ return;
206
+ }
207
+ // Check first letter that define Symetric or Asymetric
208
+ if (header.kid.startsWith("S")) {
209
+ callback(null, this.keys[keyId].symetric);
210
+ }
211
+ else if (header.kid.startsWith("A")) {
212
+ callback(null, this.keys[keyId].publicKey);
213
+ }
214
+ else {
215
+ callback(new Error("Unknown key"));
216
+ }
255
217
  }
256
218
  /**
257
219
  * JWT token verification
258
220
  */
259
- jwtVerify(token, options) {
260
- return __awaiter(this, void 0, void 0, function* () {
261
- return new Promise((resolve, reject) => {
262
- jwt.verify(token, (options === null || options === void 0 ? void 0 : options.secretOrPublicKey) || this.getJWTKey.bind(this), Object.assign(Object.assign({}, options), { secretOrPublicKey: undefined }), (err, result) => {
263
- if (err) {
264
- reject(err);
265
- }
266
- else {
267
- resolve(result);
268
- }
269
- });
221
+ async jwtVerify(token, options) {
222
+ return new Promise((resolve, reject) => {
223
+ jwt.verify(token, options?.secretOrPublicKey || this.getJWTKey.bind(this), {
224
+ ...options,
225
+ secretOrPublicKey: undefined
226
+ }, (err, result) => {
227
+ if (err) {
228
+ reject(err);
229
+ }
230
+ else {
231
+ resolve(result);
232
+ }
270
233
  });
271
234
  });
272
235
  }
273
236
  /**
274
237
  * Encrypt data
275
238
  */
276
- encrypt(data) {
277
- return __awaiter(this, void 0, void 0, function* () {
278
- let key = yield this.getCurrentKeys();
279
- // Initialization Vector
280
- let iv = (0, crypto_1.randomBytes)(16);
281
- let cipher = (0, crypto_1.createCipheriv)(this.parameters.symetricCipher, Buffer.from(key.keys.symetric, "base64"), iv);
282
- let encrypted = Buffer.concat([iv, cipher.update(Buffer.from(JSON.stringify(data))), cipher.final()]).toString("base64");
283
- return this.jwtSign(encrypted, { keyid: `S${key.id}`, secretOrPublicKey: key.keys.symetric });
284
- });
239
+ async encrypt(data) {
240
+ let key = await this.getCurrentKeys();
241
+ // Initialization Vector
242
+ let iv = randomBytes(16);
243
+ let cipher = createCipheriv(this.parameters.symetricCipher, Buffer.from(key.keys.symetric, "base64"), iv);
244
+ let encrypted = Buffer.concat([iv, cipher.update(Buffer.from(JSON.stringify(data))), cipher.final()]).toString("base64");
245
+ return this.jwtSign(encrypted, { keyid: `S${key.id}`, secretOrPublicKey: key.keys.symetric });
285
246
  }
286
247
  /**
287
248
  * Parse the JWT header section
@@ -292,14 +253,12 @@ class CryptoService extends service_1.Service {
292
253
  /**
293
254
  * Decrypt data
294
255
  */
295
- decrypt(token) {
296
- return __awaiter(this, void 0, void 0, function* () {
297
- let input = Buffer.from(yield this.jwtVerify(token), "base64");
298
- let header = this.getJWTHeader(token);
299
- let iv = input.slice(0, 16);
300
- let decipher = (0, crypto_1.createDecipheriv)(this.parameters.symetricCipher, Buffer.from(this.keys[header.kid.substring(1)].symetric, "base64"), iv);
301
- return JSON.parse(decipher.update(input.slice(16)).toString() + decipher.final().toString());
302
- });
256
+ async decrypt(token) {
257
+ let input = Buffer.from(await this.jwtVerify(token), "base64");
258
+ let header = this.getJWTHeader(token);
259
+ let iv = input.slice(0, 16);
260
+ let decipher = createDecipheriv(this.parameters.symetricCipher, Buffer.from(this.keys[header.kid.substring(1)].symetric, "base64"), iv);
261
+ return JSON.parse(decipher.update(input.slice(16)).toString() + decipher.final().toString());
303
262
  }
304
263
  /**
305
264
  * Get next id
@@ -312,35 +271,42 @@ class CryptoService extends service_1.Service {
312
271
  /**
313
272
  * Rotate keys
314
273
  */
315
- rotate() {
316
- var _a;
317
- return __awaiter(this, void 0, void 0, function* () {
318
- const { age, id } = this.getNextId();
319
- let next = {
320
- current: id,
321
- rotationInstance: this.getWebda().getInstanceId()
322
- };
323
- next[`key_${id}`] = Object.assign(Object.assign({}, this.generateAsymetricKeys()), { symetric: this.generateSymetricKey() });
324
- if (!(yield this.registry.exists("keys"))) {
325
- this.current = `init-${this.getWebda().getInstanceId()}`;
326
- yield this.registry.put("keys", { current: this.current });
327
- }
328
- if (yield this.registry.conditionalPatch("keys", next, "current", this.current)) {
329
- (_a = this.keys) !== null && _a !== void 0 ? _a : (this.keys = {});
330
- this.keys[id] = next[`key_${id}`];
331
- this.current = id;
332
- this.age = age;
333
- }
334
- else {
335
- // Reload as something else has modified
336
- yield this.load();
337
- }
338
- });
274
+ async rotate() {
275
+ const { age, id } = this.getNextId();
276
+ let next = {
277
+ current: id,
278
+ rotationInstance: this.getWebda().getInstanceId()
279
+ };
280
+ next[`key_${id}`] = {
281
+ ...this.generateAsymetricKeys(),
282
+ symetric: this.generateSymetricKey()
283
+ };
284
+ if (!(await this.registry.exists("keys"))) {
285
+ this.current = `init-${this.getWebda().getInstanceId()}`;
286
+ await this.registry.put("keys", { current: this.current });
287
+ }
288
+ if (await this.registry.conditionalPatch("keys", next, "current", this.current)) {
289
+ this.keys ?? (this.keys = {});
290
+ this.keys[id] = next[`key_${id}`];
291
+ this.current = id;
292
+ this.age = age;
293
+ }
294
+ else {
295
+ // Reload as something else has modified
296
+ await this.load();
297
+ }
339
298
  }
340
299
  }
341
300
  __decorate([
342
- (0, service_1.Inject)("Registry")
301
+ Inject("Registry")
343
302
  ], CryptoService.prototype, "registry", void 0);
344
- exports.default = CryptoService;
345
- exports.CryptoService = CryptoService;
303
+ __decorate([
304
+ Route(".", ["GET"], false, {
305
+ description: "Serve JWKS keys",
306
+ get: {
307
+ operationId: "getJWKS"
308
+ }
309
+ })
310
+ ], CryptoService.prototype, "serveJWKS", null);
311
+ export { CryptoService };
346
312
  //# sourceMappingURL=cryptoservice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cryptoservice.js","sourceRoot":"","sources":["../../src/services/cryptoservice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cryptoservice.js","sourceRoot":"","sources":["../../src/services/cryptoservice.ts"],"names":[],"mappings":"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"}