@webda/core 1.6.0-beta.2 → 2.0.0-beta.1

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 (253) hide show
  1. package/lib/application.d.ts +351 -195
  2. package/lib/application.js +188 -682
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +109 -289
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +108 -214
  7. package/lib/core.js +169 -71
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +103 -42
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.js +9 -1
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +3 -1
  15. package/lib/models/aclmodel.js +6 -3
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +10 -5
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +11 -18
  20. package/lib/models/coremodel.js +36 -36
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +2 -2
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/ident.d.ts +3 -3
  25. package/lib/models/ident.js +2 -1
  26. package/lib/models/ident.js.map +1 -1
  27. package/lib/models/ident.spec.js +1 -1
  28. package/lib/models/ident.spec.js.map +1 -1
  29. package/lib/models/ownermodel.d.ts +8 -4
  30. package/lib/models/ownermodel.js +9 -4
  31. package/lib/models/ownermodel.js.map +1 -1
  32. package/lib/models/ownermodel.spec.js +1 -1
  33. package/lib/models/ownermodel.spec.js.map +1 -1
  34. package/lib/models/rolemodel.js.map +1 -1
  35. package/lib/models/rolemodel.spec.js +5 -2
  36. package/lib/models/rolemodel.spec.js.map +1 -1
  37. package/lib/models/user.d.ts +4 -3
  38. package/lib/models/user.js +2 -1
  39. package/lib/models/user.js.map +1 -1
  40. package/lib/models/user.spec.js +1 -1
  41. package/lib/models/user.spec.js.map +1 -1
  42. package/lib/queues/filequeue.d.ts +2 -7
  43. package/lib/queues/filequeue.js +4 -13
  44. package/lib/queues/filequeue.js.map +1 -1
  45. package/lib/queues/filequeue.spec.js +2 -3
  46. package/lib/queues/filequeue.spec.js.map +1 -1
  47. package/lib/queues/memoryqueue.d.ts +2 -7
  48. package/lib/queues/memoryqueue.js +1 -11
  49. package/lib/queues/memoryqueue.js.map +1 -1
  50. package/lib/queues/memoryqueue.spec.js +1 -1
  51. package/lib/queues/memoryqueue.spec.js.map +1 -1
  52. package/lib/queues/queue.spec.d.ts +1 -1
  53. package/lib/queues/queue.spec.js +12 -10
  54. package/lib/queues/queue.spec.js.map +1 -1
  55. package/lib/queues/queueservice.d.ts +1 -1
  56. package/lib/queues/queueservice.js +1 -1
  57. package/lib/queues/queueservice.js.map +1 -1
  58. package/lib/router.d.ts +48 -2
  59. package/lib/router.js +78 -51
  60. package/lib/router.js.map +1 -1
  61. package/lib/router.spec.js +23 -6
  62. package/lib/router.spec.js.map +1 -1
  63. package/lib/services/asyncevents.d.ts +1 -0
  64. package/lib/services/asyncevents.js +4 -3
  65. package/lib/services/asyncevents.js.map +1 -1
  66. package/lib/services/asyncevents.spec.js +2 -2
  67. package/lib/services/asyncevents.spec.js.map +1 -1
  68. package/lib/services/authentication.d.ts +39 -11
  69. package/lib/services/authentication.js +60 -55
  70. package/lib/services/authentication.js.map +1 -1
  71. package/lib/services/authentication.spec.js +2 -1
  72. package/lib/services/authentication.spec.js.map +1 -1
  73. package/lib/services/binary.d.ts +127 -65
  74. package/lib/services/binary.js +255 -98
  75. package/lib/services/binary.js.map +1 -1
  76. package/lib/services/binary.spec.d.ts +2 -1
  77. package/lib/services/binary.spec.js +101 -30
  78. package/lib/services/binary.spec.js.map +1 -1
  79. package/lib/services/cloudbinary.d.ts +67 -0
  80. package/lib/services/cloudbinary.js +178 -0
  81. package/lib/services/cloudbinary.js.map +1 -0
  82. package/lib/services/cloudbinary.spec.d.ts +13 -0
  83. package/lib/services/cloudbinary.spec.js +212 -0
  84. package/lib/services/cloudbinary.spec.js.map +1 -0
  85. package/lib/services/configuration.d.ts +7 -2
  86. package/lib/services/configuration.js +6 -5
  87. package/lib/services/configuration.js.map +1 -1
  88. package/lib/services/configuration.spec.js +3 -2
  89. package/lib/services/configuration.spec.js.map +1 -1
  90. package/lib/services/cron.d.ts +5 -6
  91. package/lib/services/cron.js +5 -12
  92. package/lib/services/cron.js.map +1 -1
  93. package/lib/services/cron.spec.js +3 -4
  94. package/lib/services/cron.spec.js.map +1 -1
  95. package/lib/services/debugmailer.d.ts +3 -5
  96. package/lib/services/debugmailer.js +3 -11
  97. package/lib/services/debugmailer.js.map +1 -1
  98. package/lib/services/debugmailer.spec.js +1 -1
  99. package/lib/services/debugmailer.spec.js.map +1 -1
  100. package/lib/services/echo.d.ts +3 -7
  101. package/lib/services/echo.js +1 -11
  102. package/lib/services/echo.js.map +1 -1
  103. package/lib/services/echo.spec.js +4 -3
  104. package/lib/services/echo.spec.js.map +1 -1
  105. package/lib/services/filebinary.d.ts +40 -16
  106. package/lib/services/filebinary.js +142 -50
  107. package/lib/services/filebinary.js.map +1 -1
  108. package/lib/services/filebinary.spec.d.ts +4 -2
  109. package/lib/services/filebinary.spec.js +50 -12
  110. package/lib/services/filebinary.spec.js.map +1 -1
  111. package/lib/services/fileconfiguration.d.ts +1 -5
  112. package/lib/services/fileconfiguration.js +3 -12
  113. package/lib/services/fileconfiguration.js.map +1 -1
  114. package/lib/services/fileconfiguration.spec.js +2 -2
  115. package/lib/services/fileconfiguration.spec.js.map +1 -1
  116. package/lib/services/invitationservice.d.ts +28 -4
  117. package/lib/services/invitationservice.js +9 -6
  118. package/lib/services/invitationservice.js.map +1 -1
  119. package/lib/services/invitationservice.spec.js +4 -3
  120. package/lib/services/invitationservice.spec.js.map +1 -1
  121. package/lib/services/kubernetesconfiguration.d.ts +3 -5
  122. package/lib/services/kubernetesconfiguration.js +7 -14
  123. package/lib/services/kubernetesconfiguration.js.map +1 -1
  124. package/lib/services/kubernetesconfiguration.spec.js +5 -5
  125. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  126. package/lib/services/mailer.d.ts +1 -5
  127. package/lib/services/mailer.js +1 -10
  128. package/lib/services/mailer.js.map +1 -1
  129. package/lib/services/mailer.spec.js +3 -3
  130. package/lib/services/mailer.spec.js.map +1 -1
  131. package/lib/services/notificationservice.d.ts +2 -0
  132. package/lib/services/notificationservice.js +2 -0
  133. package/lib/services/notificationservice.js.map +1 -1
  134. package/lib/services/notificationservice.spec.js +2 -2
  135. package/lib/services/notificationservice.spec.js.map +1 -1
  136. package/lib/services/oauth.d.ts +8 -6
  137. package/lib/services/oauth.js +30 -14
  138. package/lib/services/oauth.js.map +1 -1
  139. package/lib/services/oauth.spec.js +10 -10
  140. package/lib/services/oauth.spec.js.map +1 -1
  141. package/lib/services/resource.d.ts +18 -5
  142. package/lib/services/resource.js +42 -23
  143. package/lib/services/resource.js.map +1 -1
  144. package/lib/services/resource.spec.js +4 -4
  145. package/lib/services/resource.spec.js.map +1 -1
  146. package/lib/services/service.d.ts +22 -25
  147. package/lib/services/service.js +16 -22
  148. package/lib/services/service.js.map +1 -1
  149. package/lib/services/service.spec.js +2 -2
  150. package/lib/services/service.spec.js.map +1 -1
  151. package/lib/services/version.d.ts +2 -5
  152. package/lib/services/version.js +1 -10
  153. package/lib/services/version.js.map +1 -1
  154. package/lib/services/version.spec.js +1 -1
  155. package/lib/services/version.spec.js.map +1 -1
  156. package/lib/stores/aggregator.d.ts +3 -5
  157. package/lib/stores/aggregator.js +3 -10
  158. package/lib/stores/aggregator.js.map +1 -1
  159. package/lib/stores/file.d.ts +15 -8
  160. package/lib/stores/file.js +21 -18
  161. package/lib/stores/file.js.map +1 -1
  162. package/lib/stores/file.spec.d.ts +3 -1
  163. package/lib/stores/file.spec.js +32 -8
  164. package/lib/stores/file.spec.js.map +1 -1
  165. package/lib/stores/mapper.d.ts +1 -5
  166. package/lib/stores/mapper.js +4 -13
  167. package/lib/stores/mapper.js.map +1 -1
  168. package/lib/stores/mapper.spec.js +2 -2
  169. package/lib/stores/mapper.spec.js.map +1 -1
  170. package/lib/stores/memory.d.ts +5 -9
  171. package/lib/stores/memory.js +5 -17
  172. package/lib/stores/memory.js.map +1 -1
  173. package/lib/stores/memory.spec.d.ts +2 -1
  174. package/lib/stores/memory.spec.js +36 -4
  175. package/lib/stores/memory.spec.js.map +1 -1
  176. package/lib/stores/store.d.ts +137 -26
  177. package/lib/stores/store.js +431 -75
  178. package/lib/stores/store.js.map +1 -1
  179. package/lib/stores/store.spec.d.ts +31 -4
  180. package/lib/stores/store.spec.js +206 -35
  181. package/lib/stores/store.spec.js.map +1 -1
  182. package/lib/stores/webdaql/WebdaQLLexer.d.ts +53 -0
  183. package/lib/stores/webdaql/WebdaQLLexer.js +290 -0
  184. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -0
  185. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +53 -0
  186. package/lib/stores/webdaql/WebdaQLParserLexer.js +290 -0
  187. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -0
  188. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +284 -0
  189. package/lib/stores/webdaql/WebdaQLParserListener.js +4 -0
  190. package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -0
  191. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +301 -0
  192. package/lib/stores/webdaql/WebdaQLParserParser.js +1781 -0
  193. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -0
  194. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +174 -0
  195. package/lib/stores/webdaql/WebdaQLParserVisitor.js +4 -0
  196. package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -0
  197. package/lib/stores/webdaql/query.d.ts +300 -0
  198. package/lib/stores/webdaql/query.js +471 -0
  199. package/lib/stores/webdaql/query.js.map +1 -0
  200. package/lib/stores/webdaql/query.spec.d.ts +1 -0
  201. package/lib/stores/webdaql/query.spec.js +136 -0
  202. package/lib/stores/webdaql/query.spec.js.map +1 -0
  203. package/lib/test.d.ts +54 -9
  204. package/lib/test.js +139 -25
  205. package/lib/test.js.map +1 -1
  206. package/lib/unpackedapplication.d.ts +66 -0
  207. package/lib/unpackedapplication.js +219 -0
  208. package/lib/unpackedapplication.js.map +1 -0
  209. package/lib/utils/abstractdeployer.spec.js +1 -1
  210. package/lib/utils/abstractdeployer.spec.js.map +1 -1
  211. package/lib/utils/context.d.ts +17 -58
  212. package/lib/utils/context.js +33 -124
  213. package/lib/utils/context.js.map +1 -1
  214. package/lib/utils/context.spec.js +49 -28
  215. package/lib/utils/context.spec.js.map +1 -1
  216. package/lib/utils/cookie.d.ts +6 -3
  217. package/lib/utils/cookie.js +9 -5
  218. package/lib/utils/cookie.js.map +1 -1
  219. package/lib/utils/cookie.spec.js +5 -5
  220. package/lib/utils/cookie.spec.js.map +1 -1
  221. package/lib/utils/httpcontext.d.ts +157 -0
  222. package/lib/utils/httpcontext.js +279 -0
  223. package/lib/utils/httpcontext.js.map +1 -0
  224. package/lib/utils/httpcontext.spec.d.ts +5 -0
  225. package/lib/utils/httpcontext.spec.js +82 -0
  226. package/lib/utils/httpcontext.spec.js.map +1 -0
  227. package/lib/utils/logger.d.ts +18 -5
  228. package/lib/utils/logger.js +17 -4
  229. package/lib/utils/logger.js.map +1 -1
  230. package/lib/utils/logger.spec.js.map +1 -1
  231. package/lib/utils/serializers.js +5 -1
  232. package/lib/utils/serializers.js.map +1 -1
  233. package/lib/utils/serializers.spec.js +3 -3
  234. package/lib/utils/serializers.spec.js.map +1 -1
  235. package/lib/utils/waiter.d.ts +1 -1
  236. package/lib/utils/waiter.js.map +1 -1
  237. package/lib/utils/waiter.spec.js +2 -2
  238. package/lib/utils/waiter.spec.js.map +1 -1
  239. package/package.json +25 -18
  240. package/test/config-file-no-reload.json +2 -1
  241. package/test/config-file-reload.json +2 -1
  242. package/test/config-kube-reload.json +2 -1
  243. package/test/config-reload.json +1 -1
  244. package/test/config.json +8 -11
  245. package/test/config.old.json +1 -1
  246. package/test/moddas/annotatedservice.js +1 -3
  247. package/test/moddas/debugmailer.js +2 -7
  248. package/test/moddas/fakeservice.js +1 -1
  249. package/test/moddas/voidstore.js +2 -4
  250. package/test/models/ident.js +1 -1
  251. package/test/models/task.js +1 -6
  252. package/webda.module.json +1124 -0
  253. package/test/config.old-default.json +0 -151
package/lib/core.js CHANGED
@@ -11,13 +11,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Core = exports.Route = exports.Bean = exports.WebsiteOriginFilter = exports.OriginFilter = exports.WebdaError = void 0;
13
13
  const ajv_1 = require("ajv");
14
- const deepmerge = require("deepmerge");
14
+ const ajv_formats_1 = require("ajv-formats");
15
15
  const events = require("events");
16
16
  const jsonpath = require("jsonpath");
17
17
  const vm = require("vm");
18
18
  const index_1 = require("./index");
19
19
  const coremodel_1 = require("./models/coremodel");
20
20
  const router_1 = require("./router");
21
+ const uuid_1 = require("uuid");
22
+ const validation_error_1 = require("ajv/dist/runtime/validation_error");
23
+ const deepmerge_ts_1 = require("deepmerge-ts");
24
+ const crypto = require("crypto");
21
25
  /**
22
26
  * Error with a code
23
27
  */
@@ -65,10 +69,10 @@ class OriginFilter {
65
69
  return __awaiter(this, void 0, void 0, function* () {
66
70
  let httpContext = context.getHttpContext();
67
71
  for (let regexp of this.regexs) {
68
- if (httpContext.origin.match(regexp)) {
72
+ if (httpContext.hostname.match(regexp)) {
69
73
  return true;
70
74
  }
71
- if (httpContext.root.match(regexp)) {
75
+ if (httpContext.origin.match(regexp)) {
72
76
  return true;
73
77
  }
74
78
  }
@@ -98,8 +102,8 @@ class WebsiteOriginFilter {
98
102
  checkRequest(context) {
99
103
  return __awaiter(this, void 0, void 0, function* () {
100
104
  let httpContext = context.getHttpContext();
101
- if (this.websites.indexOf(httpContext.root) >= 0 ||
102
- this.websites.indexOf(httpContext.origin) >= 0 ||
105
+ if (this.websites.indexOf(httpContext.origin) >= 0 ||
106
+ this.websites.indexOf(httpContext.host) >= 0 ||
103
107
  this.websites.indexOf("*") >= 0) {
104
108
  return true;
105
109
  }
@@ -118,7 +122,7 @@ function Bean(constructor) {
118
122
  exports.Bean = Bean;
119
123
  // @Route to declare route on Bean
120
124
  function Route(route, methods = ["GET"], allowPath = false, openapi = {}) {
121
- return function (target, executor, descriptor) {
125
+ return function (target, executor) {
122
126
  let targetName = target.constructor.name.toLowerCase();
123
127
  beans[targetName] = beans[targetName] || {
124
128
  constructor: target.constructor
@@ -145,8 +149,8 @@ class Core extends events.EventEmitter {
145
149
  * @params {Object} config - The configuration Object, if undefined will load the configuration file
146
150
  */
147
151
  constructor(application) {
148
- var _a, _b, _c, _d;
149
- var _e, _f, _g, _h;
152
+ var _a, _b, _c;
153
+ var _d, _e, _f;
150
154
  /** @ignore */
151
155
  super();
152
156
  /**
@@ -158,37 +162,54 @@ class Core extends events.EventEmitter {
158
162
  this._initiated = false;
159
163
  this.failedServices = {};
160
164
  /**
161
- * CORS Filter registry
165
+ * Request Filter registry
162
166
  *
163
167
  * Added via [[Webda.registerRequestFilter]]
164
168
  * See [[CorsFilter]]
165
169
  */
166
170
  this._requestFilters = [];
171
+ /**
172
+ * CORS Filter registry
173
+ *
174
+ * Added via [[Webda.registerCORSRequestFilter]]
175
+ * See [[CorsFilter]]
176
+ */
177
+ this._requestCORSFilters = [];
167
178
  this.workerOutput = application.getWorkerOutput();
168
179
  this.logger = new index_1.Logger(this.workerOutput, "@webda/core/lib/core.js");
169
180
  this.application = application;
170
181
  this._initTime = new Date().getTime();
171
182
  // Schema validations
172
183
  this._ajv = new ajv_1.default();
184
+ (0, ajv_formats_1.default)(this._ajv);
173
185
  this._ajvSchemas = {};
174
186
  // Load the configuration and migrate
175
187
  this.configuration = this.application.getCurrentConfiguration();
176
188
  // Set the global context
177
- index_1.Context.setGlobalContext(new (this.getModel(this.parameter("contextModel") || "WebdaCore/Context"))(this));
189
+ index_1.Context.setGlobalContext(new (this.getModel(this.parameter("contextModel") || "Webda/Context"))(this));
178
190
  // Init default values for configuration
179
- (_a = (_e = this.configuration).parameters) !== null && _a !== void 0 ? _a : (_e.parameters = {});
180
- (_b = (_f = this.configuration.parameters).apiUrl) !== null && _b !== void 0 ? _b : (_f.apiUrl = "http://localhost:18080");
181
- (_c = (_g = this.configuration).services) !== null && _c !== void 0 ? _c : (_g.services = {});
182
- (_d = (_h = this.configuration).module) !== null && _d !== void 0 ? _d : (_h.module = {});
191
+ (_a = (_d = this.configuration).parameters) !== null && _a !== void 0 ? _a : (_d.parameters = {});
192
+ (_b = (_e = this.configuration.parameters).apiUrl) !== null && _b !== void 0 ? _b : (_e.apiUrl = "http://localhost:18080");
193
+ (_c = (_f = this.configuration).services) !== null && _c !== void 0 ? _c : (_f.services = {});
183
194
  // Add CSRF origins filtering
184
195
  if (this.configuration.parameters.csrfOrigins) {
185
- this.registerRequestFilter(new OriginFilter(this.configuration.parameters.csrfOrigins));
196
+ this.registerCORSFilter(new OriginFilter(this.configuration.parameters.csrfOrigins));
186
197
  }
187
198
  // Add CSRF website filtering
188
199
  if (this.configuration.parameters.website) {
189
- this.registerRequestFilter(new WebsiteOriginFilter(this.configuration.parameters.website));
200
+ this.registerCORSFilter(new WebsiteOriginFilter(this.configuration.parameters.website));
190
201
  }
191
202
  }
203
+ /**
204
+ * Return Core instance id
205
+ *
206
+ * It is a random generated string
207
+ */
208
+ getInstanceId() {
209
+ var _a;
210
+ (_a = this.instanceId) !== null && _a !== void 0 ? _a : (this.instanceId = this.getUuid());
211
+ return this.instanceId;
212
+ }
192
213
  /**
193
214
  * Get absolute url with subpath
194
215
  * @param subpath
@@ -231,12 +252,6 @@ class Core extends events.EventEmitter {
231
252
  getModules() {
232
253
  return this.application.getModules();
233
254
  }
234
- /**
235
- * Retrieve all deployers
236
- */
237
- getDeployers() {
238
- return this.application.getDeployers();
239
- }
240
255
  /**
241
256
  * Return application definition
242
257
  */
@@ -293,7 +308,7 @@ class Core extends events.EventEmitter {
293
308
  (_b = (_d = cfg.webda).services) !== null && _b !== void 0 ? _b : (_d.services = {});
294
309
  this.configuration.parameters = Object.assign(Object.assign({}, this.configuration.parameters), cfg.webda.parameters);
295
310
  for (let i in this.configuration.services) {
296
- this.configuration.services[i] = Object.assign(Object.assign({}, deepmerge.all([this.configuration.services[i], cfg.webda.services[i] || {}])), { type: this.configuration.services[i].type });
311
+ this.configuration.services[i] = Object.assign(Object.assign({}, (0, deepmerge_ts_1.deepmerge)(this.configuration.services[i], cfg.webda.services[i] || {})), { type: this.configuration.services[i].type });
297
312
  }
298
313
  }
299
314
  yield this.getService(this.configuration.parameters.configurationService).init();
@@ -318,15 +333,30 @@ class Core extends events.EventEmitter {
318
333
  }
319
334
  }
320
335
  yield Promise.all(inits);
321
- this.emitSync("Webda.Init.Services", this.services);
336
+ yield this.emitSync("Webda.Init.Services", this.services);
322
337
  resolve();
323
338
  }));
324
339
  return this._init;
325
340
  });
326
341
  }
342
+ /**
343
+ * Register a request filtering
344
+ *
345
+ * Will apply to all requests regardless of the devMode
346
+ * @param filter
347
+ */
327
348
  registerRequestFilter(filter) {
328
349
  this._requestFilters.push(filter);
329
350
  }
351
+ /**
352
+ * Register a CORS request filtering
353
+ *
354
+ * Does not apply in devMode
355
+ * @param filter
356
+ */
357
+ registerCORSFilter(filter) {
358
+ this._requestCORSFilters.push(filter);
359
+ }
330
360
  /**
331
361
  *
332
362
  * @param {Object} executor The executor to expose as executor
@@ -351,23 +381,22 @@ class Core extends events.EventEmitter {
351
381
  * @param object to validate
352
382
  */
353
383
  validateSchema(webdaObject, object) {
354
- let name = this.application.getFullNameFromPrototype(Object.getPrototypeOf(webdaObject));
384
+ let name = typeof webdaObject === "string"
385
+ ? webdaObject
386
+ : this.application.getFullNameFromPrototype(Object.getPrototypeOf(webdaObject));
355
387
  if (!this._ajvSchemas[name]) {
356
- let schema = this.application.getSchemaResolver().fromPrototype(Object.getPrototypeOf(webdaObject));
388
+ let schema = this.application.getSchema(name);
357
389
  if (!schema) {
358
- return true;
390
+ return null;
359
391
  }
360
392
  this.log("TRACE", "Add schema for", name);
361
393
  this._ajv.addSchema(schema, name);
362
394
  this._ajvSchemas[name] = true;
363
395
  }
364
- return this._ajv.validate(name, object);
365
- }
366
- /**
367
- * Get last errors from AJV schema validator ( called through validate method )
368
- */
369
- validationLastErrors() {
370
- return this._ajv.errors;
396
+ if (this._ajv.validate(name, object)) {
397
+ return true;
398
+ }
399
+ throw new validation_error_1.default(this._ajv.errors);
371
400
  }
372
401
  /**
373
402
  * Return webda current version
@@ -396,7 +425,7 @@ class Core extends events.EventEmitter {
396
425
  getLogger(clazz) {
397
426
  let className = clazz;
398
427
  if (typeof clazz !== "string") {
399
- let definitions = this.application.getServices();
428
+ let definitions = this.application.getModdas();
400
429
  for (let i in definitions) {
401
430
  if (definitions[i] === clazz.constructor) {
402
431
  className = i.replace(/\//g, ".");
@@ -450,7 +479,7 @@ class Core extends events.EventEmitter {
450
479
  * @param type The type of implementation
451
480
  * @returns {{}}
452
481
  */
453
- getServicesImplementations(type = undefined) {
482
+ getServicesOfType(type = undefined) {
454
483
  let result = {};
455
484
  for (let i in this.services) {
456
485
  let service = this.services[i];
@@ -468,7 +497,7 @@ class Core extends events.EventEmitter {
468
497
  * @returns {{}}
469
498
  */
470
499
  getStores() {
471
- return this.getServicesImplementations(index_1.Store);
500
+ return this.getServicesOfType(index_1.Store);
472
501
  }
473
502
  /**
474
503
  * Return a map of defined models
@@ -477,12 +506,6 @@ class Core extends events.EventEmitter {
477
506
  getModels() {
478
507
  return this.application.getModels();
479
508
  }
480
- /**
481
- * Register model
482
- */
483
- registerModel(name, clazz) {
484
- this.application.addModel(name, clazz);
485
- }
486
509
  /**
487
510
  * Check for a model name and return the wanted class or throw exception if none found
488
511
  *
@@ -504,6 +527,16 @@ class Core extends events.EventEmitter {
504
527
  // For now a static config file but should have a rolling service secret
505
528
  return this.configuration.parameters.sessionSecret;
506
529
  }
530
+ /**
531
+ * Retrieve a HMAC for a string
532
+ * @param data
533
+ * @returns
534
+ */
535
+ getHmac(data) {
536
+ return __awaiter(this, void 0, void 0, function* () {
537
+ return crypto.createHmac("sha256", this.getSecret()).update(data).digest("hex");
538
+ });
539
+ }
507
540
  /**
508
541
  * Return a salt to use when doing digest
509
542
  *
@@ -534,13 +567,13 @@ class Core extends events.EventEmitter {
534
567
  *
535
568
  * @abstract
536
569
  */
537
- flushHeaders(context) {
570
+ flushHeaders(_context) {
538
571
  // Should be overriden by implementation
539
572
  }
540
573
  /**
541
574
  * Flush the entire response to the client
542
575
  */
543
- flush(context) {
576
+ flush(_context) {
544
577
  // Should be overriden by implementation
545
578
  }
546
579
  /**
@@ -608,12 +641,7 @@ class Core extends events.EventEmitter {
608
641
  (_a = configuration.parameters) !== null && _a !== void 0 ? _a : (configuration.parameters = {});
609
642
  (_b = configuration.services) !== null && _b !== void 0 ? _b : (configuration.services = {});
610
643
  (_c = (_d = configuration.services)[service]) !== null && _c !== void 0 ? _c : (_d[service] = {});
611
- const params = deepmerge.all([
612
- this.configuration.parameters || {},
613
- configuration.parameters || {},
614
- this.configuration.services[service] || {},
615
- configuration.services[service] || {}
616
- ]);
644
+ const params = (0, deepmerge_ts_1.deepmerge)(this.configuration.parameters || {}, configuration.parameters || {}, this.configuration.services[service] || {}, configuration.services[service] || {});
617
645
  delete params.require;
618
646
  return params;
619
647
  }
@@ -624,7 +652,7 @@ class Core extends events.EventEmitter {
624
652
  }
625
653
  var serviceConstructor = undefined;
626
654
  try {
627
- serviceConstructor = this.application.getService(type);
655
+ serviceConstructor = this.application.getModda(type);
628
656
  }
629
657
  catch (ex) {
630
658
  this.log("ERROR", `Create service ${service}(${type}) failed ${ex.message}`);
@@ -646,7 +674,8 @@ class Core extends events.EventEmitter {
646
674
  *
647
675
  */
648
676
  createServices(excludes = []) {
649
- var services = this.configuration.services;
677
+ const services = this.configuration.services;
678
+ this.log("DEBUG", beans);
650
679
  for (let i in beans) {
651
680
  if (!beans[i].bean) {
652
681
  this.log("DEBUG", "Implicit @Bean due to a @Route", beans[i].constructor.name);
@@ -688,16 +717,25 @@ class Core extends events.EventEmitter {
688
717
  autoConnectServices() {
689
718
  for (let service in this.services) {
690
719
  this.log("TRACE", "Auto-connect", service);
691
- let serviceBean = this.services[service];
692
- serviceBean.resolve();
693
- let setters = this._getSetters(serviceBean);
694
- setters.forEach(setter => {
695
- let targetService = this.services[setter.substr(3).toLowerCase()];
696
- if (targetService) {
697
- this.log("TRACE", "Auto-connecting", serviceBean.getName(), targetService.getName());
698
- serviceBean[setter](targetService);
720
+ try {
721
+ let serviceBean = this.services[service];
722
+ if (!serviceBean.resolve) {
723
+ this.log("ERROR", `${service} seems to not extend Service`);
724
+ continue;
699
725
  }
700
- });
726
+ serviceBean.resolve();
727
+ let setters = this._getSetters(serviceBean);
728
+ setters.forEach(setter => {
729
+ let targetService = this.services[setter.substr(3).toLowerCase()];
730
+ if (targetService) {
731
+ this.log("TRACE", "Auto-connecting", serviceBean.getName(), targetService.getName());
732
+ serviceBean[setter](targetService);
733
+ }
734
+ });
735
+ }
736
+ catch (err) {
737
+ this.log("ERROR", err);
738
+ }
701
739
  }
702
740
  }
703
741
  jsonFilter(key, value) {
@@ -705,6 +743,9 @@ class Core extends events.EventEmitter {
705
743
  return undefined;
706
744
  return value;
707
745
  }
746
+ /**
747
+ * Init services and Beans along with Routes
748
+ */
708
749
  initStatics() {
709
750
  if (this.configuration.services !== undefined) {
710
751
  this.createServices(Object.keys(this.services));
@@ -748,11 +789,11 @@ class Core extends events.EventEmitter {
748
789
  */
749
790
  newContext(httpContext, stream = undefined, noInit = false) {
750
791
  return __awaiter(this, void 0, void 0, function* () {
751
- let res = (new (this.getModel(this.parameter("contextModel") || "WebdaCore/Context"))(this, httpContext, stream));
792
+ let res = (new (this.getModel(this.parameter("contextModel") || "Webda/Context"))(this, httpContext, stream));
752
793
  if (!noInit) {
753
794
  yield res.init();
754
795
  }
755
- this.emitSync("Webda.NewContext", res);
796
+ yield this.emitSync("Webda.NewContext", res);
756
797
  return res;
757
798
  });
758
799
  }
@@ -766,6 +807,31 @@ class Core extends events.EventEmitter {
766
807
  toPublicJSON(object) {
767
808
  return JSON.stringify(object, this.jsonFilter);
768
809
  }
810
+ /**
811
+ * Return a UUID
812
+ *
813
+ * @param format to return different type of format
814
+ * Plan to implement base64 and maybe base85
815
+ */
816
+ getUuid(format = "uuid") {
817
+ if (format === "uuid") {
818
+ return (0, uuid_1.v4)().toString();
819
+ }
820
+ let buffer = Buffer.alloc(16);
821
+ (0, uuid_1.v4)(undefined, buffer);
822
+ if (format === "base64") {
823
+ // Remove useless = we won't transfer back to original value or could just add ==
824
+ // https://datatracker.ietf.org/doc/html/rfc4648#page-7
825
+ return buffer.toString(format).replace(/=/g, "").replace(/\//g, "_").replace(/\+/g, "-");
826
+ }
827
+ return buffer.toString(format);
828
+ }
829
+ /**
830
+ * @override
831
+ */
832
+ emit(eventType, event, ...data) {
833
+ return super.emit(eventType, event, ...data);
834
+ }
769
835
  /**
770
836
  * Emit the event with data and wait for Promise to finish if listener returned a Promise
771
837
  */
@@ -781,6 +847,17 @@ class Core extends events.EventEmitter {
781
847
  }
782
848
  return Promise.all(promises);
783
849
  }
850
+ /**
851
+ * Type the listener part
852
+ * @param event
853
+ * @param listener
854
+ * @param queue
855
+ * @returns
856
+ */
857
+ on(event, listener) {
858
+ super.on(event, listener);
859
+ return this;
860
+ }
784
861
  /**
785
862
  * Logs
786
863
  * @param level
@@ -796,33 +873,53 @@ class Core extends events.EventEmitter {
796
873
  return this.getGlobalParams()[name];
797
874
  }
798
875
  /**
799
- * Verify if an origin is allowed to do request on the API
876
+ * Verify if a request can be done
800
877
  *
801
878
  * @param context Context of the request
802
879
  */
803
880
  checkRequest(ctx) {
804
881
  return __awaiter(this, void 0, void 0, function* () {
805
- return (yield Promise.all(this._requestFilters.map(filter => filter.checkRequest(ctx)))).reduce((prev, cur) => prev || cur);
882
+ // Do not need to filter on OPTIONS as CORS is for that
883
+ if (ctx.getHttpContext().getMethod() === "OPTIONS") {
884
+ return true;
885
+ }
886
+ return (yield Promise.all(this._requestFilters.map(filter => filter.checkRequest(ctx)))).some(v => v);
887
+ });
888
+ }
889
+ /**
890
+ * Verify if an origin is allowed to do request on the API
891
+ *
892
+ * @param context Context of the request
893
+ */
894
+ checkCORSRequest(ctx) {
895
+ return __awaiter(this, void 0, void 0, function* () {
896
+ return (yield Promise.all(this._requestCORSFilters.map(filter => filter.checkRequest(ctx)))).some(v => v);
806
897
  });
807
898
  }
808
899
  exportOpenAPI(skipHidden = true) {
809
900
  var _a;
810
901
  var _b;
811
902
  let packageInfo = this.application.getPackageDescription();
812
- let contact = packageInfo.author;
903
+ let contact;
813
904
  if (typeof packageInfo.author === "string") {
814
905
  contact = {
815
906
  name: packageInfo.author
816
907
  };
817
908
  }
818
- let license = packageInfo.license;
909
+ else if (packageInfo.author) {
910
+ contact = packageInfo.author;
911
+ }
912
+ let license;
819
913
  if (typeof packageInfo.license === "string") {
820
914
  license = {
821
915
  name: packageInfo.license
822
916
  };
823
917
  }
824
- let openapi = deepmerge({
825
- openapi: "3.0",
918
+ else if (packageInfo.license) {
919
+ license = packageInfo.license;
920
+ }
921
+ let openapi = (0, deepmerge_ts_1.deepmerge)({
922
+ openapi: "3.0.3",
826
923
  info: {
827
924
  description: packageInfo.description,
828
925
  version: packageInfo.version || "0.0.0",
@@ -852,9 +949,10 @@ class Core extends events.EventEmitter {
852
949
  if (!this.application.extends(modelDescription, coremodel_1.CoreModel)) {
853
950
  continue;
854
951
  }
855
- let schema = this.application.getSchemaResolver().fromPrototype(modelDescription);
952
+ let schema = this.application.getSchema(i);
856
953
  if (schema) {
857
954
  for (let j in schema.definitions) {
955
+ // @ts-ignore
858
956
  (_a = (_b = openapi.definitions)[j]) !== null && _a !== void 0 ? _a : (_b[j] = schema.definitions[j]);
859
957
  }
860
958
  delete schema.definitions;
package/lib/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}