@webda/core 1.2.1 → 1.6.0-beta.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 (199) hide show
  1. package/lib/application.d.ts +3 -0
  2. package/lib/application.js +26 -22
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +185 -2
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +62 -6
  7. package/lib/core.js +127 -86
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +151 -6
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.js +4 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +42 -3
  15. package/lib/models/aclmodel.js +58 -3
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +46 -0
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +58 -10
  20. package/lib/models/coremodel.js +39 -32
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +68 -6
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/ident.d.ts +8 -2
  25. package/lib/models/ident.js.map +1 -1
  26. package/lib/models/ident.spec.js +16 -0
  27. package/lib/models/ident.spec.js.map +1 -1
  28. package/lib/models/ownermodel.d.ts +1 -1
  29. package/lib/models/ownermodel.js.map +1 -1
  30. package/lib/models/ownermodel.spec.js +22 -19
  31. package/lib/models/ownermodel.spec.js.map +1 -1
  32. package/lib/models/user.d.ts +2 -0
  33. package/lib/models/user.js +4 -2
  34. package/lib/models/user.js.map +1 -1
  35. package/lib/models/user.spec.js +9 -2
  36. package/lib/models/user.spec.js.map +1 -1
  37. package/lib/queues/filequeue.d.ts +63 -0
  38. package/lib/queues/filequeue.js +161 -0
  39. package/lib/queues/filequeue.js.map +1 -0
  40. package/lib/queues/filequeue.spec.d.ts +1 -0
  41. package/lib/queues/filequeue.spec.js +90 -0
  42. package/lib/queues/filequeue.spec.js.map +1 -0
  43. package/lib/queues/memoryqueue.d.ts +18 -4
  44. package/lib/queues/memoryqueue.js +20 -13
  45. package/lib/queues/memoryqueue.js.map +1 -1
  46. package/lib/queues/memoryqueue.spec.js +142 -39
  47. package/lib/queues/memoryqueue.spec.js.map +1 -1
  48. package/lib/queues/pubsubservice.d.ts +27 -0
  49. package/lib/queues/pubsubservice.js +21 -0
  50. package/lib/queues/pubsubservice.js.map +1 -0
  51. package/lib/queues/queue.spec.js +16 -7
  52. package/lib/queues/queue.spec.js.map +1 -1
  53. package/lib/queues/queueservice.d.ts +108 -13
  54. package/lib/queues/queueservice.js +100 -36
  55. package/lib/queues/queueservice.js.map +1 -1
  56. package/lib/router.js +4 -6
  57. package/lib/router.js.map +1 -1
  58. package/lib/router.spec.js +27 -2
  59. package/lib/router.spec.js.map +1 -1
  60. package/lib/services/asyncevents.d.ts +110 -5
  61. package/lib/services/asyncevents.js +134 -39
  62. package/lib/services/asyncevents.js.map +1 -1
  63. package/lib/services/asyncevents.spec.js +58 -4
  64. package/lib/services/asyncevents.spec.js.map +1 -1
  65. package/lib/services/authentication.d.ts +57 -5
  66. package/lib/services/authentication.js +93 -84
  67. package/lib/services/authentication.js.map +1 -1
  68. package/lib/services/authentication.spec.js +118 -82
  69. package/lib/services/authentication.spec.js.map +1 -1
  70. package/lib/services/binary.d.ts +175 -48
  71. package/lib/services/binary.js +205 -170
  72. package/lib/services/binary.js.map +1 -1
  73. package/lib/services/binary.spec.d.ts +22 -3
  74. package/lib/services/binary.spec.js +327 -22
  75. package/lib/services/binary.spec.js.map +1 -1
  76. package/lib/services/configuration.d.ts +94 -13
  77. package/lib/services/configuration.js +98 -28
  78. package/lib/services/configuration.js.map +1 -1
  79. package/lib/services/configuration.spec.js +40 -1
  80. package/lib/services/configuration.spec.js.map +1 -1
  81. package/lib/services/cron.d.ts +4 -4
  82. package/lib/services/cron.js +37 -53
  83. package/lib/services/cron.js.map +1 -1
  84. package/lib/services/cron.spec.d.ts +1 -0
  85. package/lib/services/cron.spec.js +76 -0
  86. package/lib/services/cron.spec.js.map +1 -0
  87. package/lib/services/debugmailer.spec.js +18 -4
  88. package/lib/services/debugmailer.spec.js.map +1 -1
  89. package/lib/services/echo.js +22 -13
  90. package/lib/services/echo.js.map +1 -1
  91. package/lib/services/echo.spec.d.ts +1 -0
  92. package/lib/services/echo.spec.js +52 -0
  93. package/lib/services/echo.spec.js.map +1 -0
  94. package/lib/services/filebinary.d.ts +16 -9
  95. package/lib/services/filebinary.js +58 -73
  96. package/lib/services/filebinary.js.map +1 -1
  97. package/lib/services/filebinary.spec.d.ts +8 -1
  98. package/lib/services/filebinary.spec.js +133 -7
  99. package/lib/services/filebinary.spec.js.map +1 -1
  100. package/lib/services/fileconfiguration.d.ts +9 -3
  101. package/lib/services/fileconfiguration.js +13 -6
  102. package/lib/services/fileconfiguration.js.map +1 -1
  103. package/lib/services/fileconfiguration.spec.js +100 -5
  104. package/lib/services/fileconfiguration.spec.js.map +1 -1
  105. package/lib/services/kubernetesconfiguration.d.ts +8 -2
  106. package/lib/services/kubernetesconfiguration.js +16 -5
  107. package/lib/services/kubernetesconfiguration.js.map +1 -1
  108. package/lib/services/kubernetesconfiguration.spec.js +53 -16
  109. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  110. package/lib/services/mailer.d.ts +11 -2
  111. package/lib/services/mailer.js +28 -34
  112. package/lib/services/mailer.js.map +1 -1
  113. package/lib/services/mailer.spec.js +69 -23
  114. package/lib/services/mailer.spec.js.map +1 -1
  115. package/lib/services/oauth.d.ts +5 -2
  116. package/lib/services/oauth.js +22 -8
  117. package/lib/services/oauth.js.map +1 -1
  118. package/lib/services/oauth.spec.js +33 -3
  119. package/lib/services/oauth.spec.js.map +1 -1
  120. package/lib/services/resource.spec.js +39 -2
  121. package/lib/services/resource.spec.js.map +1 -1
  122. package/lib/services/service.d.ts +16 -0
  123. package/lib/services/service.js +47 -6
  124. package/lib/services/service.js.map +1 -1
  125. package/lib/services/service.spec.d.ts +1 -0
  126. package/lib/services/service.spec.js +119 -0
  127. package/lib/services/service.spec.js.map +1 -0
  128. package/lib/stores/aggregator.d.ts +43 -0
  129. package/lib/stores/aggregator.js +106 -0
  130. package/lib/stores/aggregator.js.map +1 -0
  131. package/lib/stores/file.d.ts +49 -11
  132. package/lib/stores/file.js +84 -81
  133. package/lib/stores/file.js.map +1 -1
  134. package/lib/stores/file.spec.d.ts +6 -1
  135. package/lib/stores/file.spec.js +134 -9
  136. package/lib/stores/file.spec.js.map +1 -1
  137. package/lib/stores/mapper.d.ts +151 -0
  138. package/lib/stores/mapper.js +294 -0
  139. package/lib/stores/mapper.js.map +1 -0
  140. package/lib/stores/mapper.spec.d.ts +1 -0
  141. package/lib/stores/mapper.spec.js +55 -0
  142. package/lib/stores/mapper.spec.js.map +1 -0
  143. package/lib/stores/memory.d.ts +52 -7
  144. package/lib/stores/memory.js +71 -33
  145. package/lib/stores/memory.js.map +1 -1
  146. package/lib/stores/memory.spec.d.ts +6 -1
  147. package/lib/stores/memory.spec.js +65 -4
  148. package/lib/stores/memory.spec.js.map +1 -1
  149. package/lib/stores/store.d.ts +263 -126
  150. package/lib/stores/store.js +285 -493
  151. package/lib/stores/store.js.map +1 -1
  152. package/lib/stores/store.spec.d.ts +20 -0
  153. package/lib/stores/store.spec.js +242 -18
  154. package/lib/stores/store.spec.js.map +1 -1
  155. package/lib/test.d.ts +1 -7
  156. package/lib/test.js +3 -12
  157. package/lib/test.js.map +1 -1
  158. package/lib/utils/abstractdeployer.spec.d.ts +1 -0
  159. package/lib/utils/abstractdeployer.spec.js +23 -0
  160. package/lib/utils/abstractdeployer.spec.js.map +1 -0
  161. package/lib/utils/context.d.ts +25 -2
  162. package/lib/utils/context.js +33 -12
  163. package/lib/utils/context.js.map +1 -1
  164. package/lib/utils/context.spec.js +81 -11
  165. package/lib/utils/context.spec.js.map +1 -1
  166. package/lib/utils/cookie.d.ts +12 -0
  167. package/lib/utils/cookie.js +13 -1
  168. package/lib/utils/cookie.js.map +1 -1
  169. package/lib/utils/cookie.spec.js +42 -11
  170. package/lib/utils/cookie.spec.js.map +1 -1
  171. package/lib/utils/logger.d.ts +23 -4
  172. package/lib/utils/logger.js +29 -6
  173. package/lib/utils/logger.js.map +1 -1
  174. package/lib/utils/logger.spec.js +8 -0
  175. package/lib/utils/logger.spec.js.map +1 -1
  176. package/lib/utils/serializers.d.ts +5 -5
  177. package/lib/utils/serializers.js +10 -10
  178. package/lib/utils/serializers.js.map +1 -1
  179. package/lib/utils/serializers.spec.js +41 -16
  180. package/lib/utils/serializers.spec.js.map +1 -1
  181. package/lib/utils/waiter.d.ts +59 -1
  182. package/lib/utils/waiter.js +86 -3
  183. package/lib/utils/waiter.js.map +1 -1
  184. package/lib/utils/waiter.spec.js +48 -4
  185. package/lib/utils/waiter.spec.js.map +1 -1
  186. package/package.json +16 -11
  187. package/test/badapp/package.json +4 -0
  188. package/test/badapp/webda.config.json +1 -0
  189. package/test/cachedapp/webda.config.json +7 -0
  190. package/test/config-file-no-reload.json +70 -0
  191. package/test/config-file-reload.json +7 -1
  192. package/test/config-kube-reload.json +7 -1
  193. package/test/config.json +45 -21
  194. package/test/config.old-default.json +0 -16
  195. package/test/config.old.json +0 -16
  196. package/test/deployments/invalid.json +1 -0
  197. package/test/moddas/fakeservice.js +5 -0
  198. package/test/models/ident.js +10 -14
  199. package/test/models/task.js +2 -4
package/lib/core.spec.js CHANGED
@@ -23,6 +23,12 @@ const index_1 = require("./index");
23
23
  const store_1 = require("./stores/store");
24
24
  const test_1 = require("./test");
25
25
  const context_1 = require("./utils/context");
26
+ const sinon = require("sinon");
27
+ class BadService {
28
+ constructor() {
29
+ throw new Error();
30
+ }
31
+ }
26
32
  let ExceptionExecutor = class ExceptionExecutor extends index_1.Service {
27
33
  _brokenRoute(ctx) {
28
34
  return __awaiter(this, void 0, void 0, function* () {
@@ -46,17 +52,25 @@ let ExceptionExecutor = class ExceptionExecutor extends index_1.Service {
46
52
  }
47
53
  };
48
54
  __decorate([
49
- index_1.Route("/route/broken/{type}")
55
+ (0, index_1.Route)("/route/broken/{type}")
50
56
  ], ExceptionExecutor.prototype, "_brokenRoute", null);
51
57
  __decorate([
52
- index_1.Route("/route/string")
58
+ (0, index_1.Route)("/route/string")
53
59
  ], ExceptionExecutor.prototype, "onString", null);
54
60
  __decorate([
55
- index_1.Route("/route/string", ["POST"])
61
+ (0, index_1.Route)("/route/string", ["POST"])
56
62
  ], ExceptionExecutor.prototype, "onPostString", null);
57
63
  ExceptionExecutor = __decorate([
58
64
  index_1.Bean
59
65
  ], ExceptionExecutor);
66
+ class ImplicitBean extends index_1.Service {
67
+ whynot() {
68
+ return __awaiter(this, void 0, void 0, function* () { });
69
+ }
70
+ }
71
+ __decorate([
72
+ (0, index_1.Route)("/whynot")
73
+ ], ImplicitBean.prototype, "whynot", null);
60
74
  let CSRFTest = class CSRFTest extends test_1.WebdaTest {
61
75
  checkRequest(ctx) {
62
76
  return __awaiter(this, void 0, void 0, function* () {
@@ -88,6 +102,10 @@ let CSRFTest = class CSRFTest extends test_1.WebdaTest {
88
102
  assert.strictEqual(yield this.checkRequest(this.ctx), false);
89
103
  });
90
104
  }
105
+ getApiUrl() {
106
+ assert.strictEqual(this.webda.getApiUrl("/plop"), "http://localhost:18080/plop");
107
+ assert.strictEqual(this.webda.getApiUrl("plop"), "http://localhost:18080/plop");
108
+ }
91
109
  websiteString() {
92
110
  return __awaiter(this, void 0, void 0, function* () {
93
111
  this.filter = new core_1.WebsiteOriginFilter("http://localhost:18181");
@@ -126,6 +144,13 @@ let CSRFTest = class CSRFTest extends test_1.WebdaTest {
126
144
  assert.strictEqual(yield this.filter.checkRequest(this.ctx), false);
127
145
  });
128
146
  }
147
+ originFilter() {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ let filter = new core_1.OriginFilter(["https://localhost3"]);
150
+ this.ctx.setHttpContext(new context_1.HttpContext("localhost3", "GET", "/", "https", 443, {}));
151
+ assert.strictEqual(yield filter.checkRequest(this.ctx), true);
152
+ });
153
+ }
129
154
  websiteObject() {
130
155
  return __awaiter(this, void 0, void 0, function* () {
131
156
  // Use object
@@ -162,12 +187,18 @@ let CSRFTest = class CSRFTest extends test_1.WebdaTest {
162
187
  __decorate([
163
188
  mocha_1.test
164
189
  ], CSRFTest.prototype, "csrfRegExp", null);
190
+ __decorate([
191
+ mocha_1.test
192
+ ], CSRFTest.prototype, "getApiUrl", null);
165
193
  __decorate([
166
194
  mocha_1.test
167
195
  ], CSRFTest.prototype, "websiteString", null);
168
196
  __decorate([
169
197
  mocha_1.test
170
198
  ], CSRFTest.prototype, "websiteArray", null);
199
+ __decorate([
200
+ mocha_1.test
201
+ ], CSRFTest.prototype, "originFilter", null);
171
202
  __decorate([
172
203
  mocha_1.test
173
204
  ], CSRFTest.prototype, "websiteObject", null);
@@ -197,6 +228,29 @@ let CoreTest = class CoreTest extends test_1.WebdaTest {
197
228
  let openapi = webda.exportOpenAPI();
198
229
  assert.notStrictEqual(openapi.paths["/contacts"], undefined);
199
230
  assert.notStrictEqual(openapi.paths["/contacts/{uuid}"], undefined);
231
+ app.addModel("webda/anotherContext", context_1.Context);
232
+ app.getConfiguration().openapi = {
233
+ tags: [{ name: "Zzzz" }, { name: "Aaaaa" }]
234
+ };
235
+ app.getPackageDescription = () => ({
236
+ license: "GPL"
237
+ });
238
+ app.getSchemaResolver().fromPrototype = type => {
239
+ let res = {
240
+ definitions: {},
241
+ properties: {},
242
+ title: type.name
243
+ };
244
+ res.definitions[`other$${type.name}`] = {
245
+ description: `Fake ${type.name}`
246
+ };
247
+ return res;
248
+ };
249
+ openapi = webda.exportOpenAPI();
250
+ assert.strictEqual(openapi.info.license.name, "GPL");
251
+ assert.deepStrictEqual(openapi.tags, [{ name: "Aaaaa" }, { name: "contacts" }, { name: "Zzzz" }]);
252
+ // @ts-ignore
253
+ assert.ok(Object.keys(openapi.definitions).length > 10);
200
254
  });
201
255
  }
202
256
  getStringRoute() {
@@ -220,18 +274,18 @@ let CoreTest = class CoreTest extends test_1.WebdaTest {
220
274
  }
221
275
  getServicesImplementations() {
222
276
  let moddas = this.webda.getServicesImplementations();
223
- assert.strictEqual(Object.keys(moddas).length, 19);
277
+ assert.strictEqual(Object.keys(moddas).length, 26);
224
278
  }
225
279
  consumeAllModdas() {
226
280
  super.consumeAllModdas();
227
281
  }
228
282
  getStores() {
229
283
  let moddas = this.webda.getStores();
230
- assert.strictEqual(Object.keys(moddas).length, 5);
284
+ assert.strictEqual(Object.keys(moddas).length, 6);
231
285
  }
232
286
  getServicesImplementationsWithType() {
233
287
  let stores = this.webda.getServicesImplementations(store_1.Store);
234
- assert.strictEqual(Object.keys(stores).length, 5);
288
+ assert.strictEqual(Object.keys(stores).length, 6);
235
289
  }
236
290
  getVersion() {
237
291
  assert.strictEqual(this.webda.getVersion(), require("../package.json").version);
@@ -314,6 +368,11 @@ let CoreTest = class CoreTest extends test_1.WebdaTest {
314
368
  yield assert.rejects(() => this.webda.reinit({
315
369
  "Bouzouf.plop": "Testor"
316
370
  }), Error);
371
+ yield assert.rejects(() => this.webda.reinit({
372
+ "$.Bouzouf": {
373
+ Testor: "plop"
374
+ }
375
+ }), /Configuration is not designed to add dynamically services/);
317
376
  });
318
377
  }
319
378
  assertInitError(service, msg) {
@@ -342,8 +401,79 @@ let CoreTest = class CoreTest extends test_1.WebdaTest {
342
401
  // assertInitError("ConfigurationServiceBadSource", "Need a valid service");
343
402
  // assertInitError("ConfigurationServiceBadSourceNoId", "Need a valid source");
344
403
  // assertInitError("ConfigurationServiceBadSourceWithId", "is not implementing ConfigurationProvider interface");
404
+ let err = new core_1.WebdaError("CODE", "");
405
+ assert.strictEqual(err.getCode(), "CODE");
406
+ });
407
+ }
408
+ cov() {
409
+ assert.deepStrictEqual(this.webda.getDeployers(), {});
410
+ this.webda.registerModel("mine", {});
411
+ assert.strictEqual(this.webda.getSalt(), this.webda.getConfiguration().parameters.salt);
412
+ }
413
+ listenersTest() {
414
+ return __awaiter(this, void 0, void 0, function* () {
415
+ let stub = sinon.stub();
416
+ let stub2 = sinon.stub().callsFake(() => __awaiter(this, void 0, void 0, function* () { }));
417
+ this.webda.on("Test", stub);
418
+ this.webda.on("Test", stub2);
419
+ yield this.webda.emitSync("Test");
420
+ assert.strictEqual(stub.callCount, 1);
421
+ assert.strictEqual(stub2.callCount, 1);
422
+ });
423
+ }
424
+ createServices() {
425
+ console.log(this.webda.getApplication());
426
+ // @ts-ignore
427
+ let method = this.webda.createServices.bind(this.webda);
428
+ method(["definedmailer"]);
429
+ // @ts-ignore
430
+ this.webda.getApplication().getService = type => {
431
+ if (type === "Test/VoidStore") {
432
+ throw new Error();
433
+ }
434
+ else {
435
+ return BadService;
436
+ }
437
+ };
438
+ method();
439
+ }
440
+ badInit() {
441
+ return __awaiter(this, void 0, void 0, function* () {
442
+ let service = this.webda.getService("definedmailer");
443
+ service.init = () => __awaiter(this, void 0, void 0, function* () {
444
+ throw new Error("Not happy");
445
+ });
446
+ service.reinit = () => __awaiter(this, void 0, void 0, function* () {
447
+ throw new Error("Not happy");
448
+ });
449
+ // @ts-ignore
450
+ yield this.webda.initService("definedmailer");
451
+ assert.notStrictEqual(service._initException, undefined);
452
+ // @ts-ignore
453
+ yield this.webda.reinitService("definedmailer");
345
454
  });
346
455
  }
456
+ sandbox() {
457
+ const code = `let protected = false;
458
+ let json = require('jsonpath');
459
+ try {
460
+ require('net');
461
+ } catch (err) {
462
+ protected = err.message === "not allowed"
463
+ }
464
+ module.exports = function() { return protected }`;
465
+ assert.strictEqual(this.webda.sandbox(code, {
466
+ require: function (mod) {
467
+ // We need to add more control here
468
+ if (mod === "net") {
469
+ throw Error("not allowed");
470
+ }
471
+ // if the module is okay to load, load it:
472
+ return require.apply(this, arguments);
473
+ }
474
+ }), true);
475
+ assert.throws(() => this.webda.sandbox(code), /not allowed/);
476
+ }
347
477
  };
348
478
  __decorate([
349
479
  mocha_1.test
@@ -411,6 +541,21 @@ __decorate([
411
541
  __decorate([
412
542
  mocha_1.test
413
543
  ], CoreTest.prototype, "errorChecks", null);
544
+ __decorate([
545
+ mocha_1.test
546
+ ], CoreTest.prototype, "cov", null);
547
+ __decorate([
548
+ mocha_1.test
549
+ ], CoreTest.prototype, "listenersTest", null);
550
+ __decorate([
551
+ mocha_1.test
552
+ ], CoreTest.prototype, "createServices", null);
553
+ __decorate([
554
+ mocha_1.test
555
+ ], CoreTest.prototype, "badInit", null);
556
+ __decorate([
557
+ mocha_1.test
558
+ ], CoreTest.prototype, "sandbox", null);
414
559
  CoreTest = __decorate([
415
560
  mocha_1.suite
416
561
  ], CoreTest);
@@ -1 +1 @@
1
- {"version":3,"file":"core.spec.js","sourceRoot":"","sources":["../src/core.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.spec.js","sourceRoot":"","sources":["../src/core.spec.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -11,8 +11,10 @@ export * from "./models/aclmodel";
11
11
  export * from "./models/rolemodel";
12
12
  export * from "./models/ident";
13
13
  export * from "./models/user";
14
+ export * from "./queues/pubsubservice";
14
15
  export * from "./queues/memoryqueue";
15
16
  export * from "./queues/queueservice";
17
+ export * from "./queues/filequeue";
16
18
  export * from "./services/asyncevents";
17
19
  export * from "./services/authentication";
18
20
  export * from "./services/binary";
@@ -28,9 +30,11 @@ export * from "./services/mailer";
28
30
  export * from "./services/resource";
29
31
  export * from "./services/service";
30
32
  export * from "./services/version";
33
+ export * from "./stores/aggregator";
31
34
  export * from "./stores/file";
32
35
  export * from "./stores/memory";
33
36
  export * from "./stores/store";
37
+ export * from "./stores/mapper";
34
38
  export * from "./utils/abstractdeployer";
35
39
  export * from "./utils/context";
36
40
  export * from "./utils/cookie";
package/lib/index.js CHANGED
@@ -28,8 +28,10 @@ __exportStar(require("./models/rolemodel"), exports);
28
28
  __exportStar(require("./models/ident"), exports);
29
29
  __exportStar(require("./models/user"), exports);
30
30
  // Queues
31
+ __exportStar(require("./queues/pubsubservice"), exports);
31
32
  __exportStar(require("./queues/memoryqueue"), exports);
32
33
  __exportStar(require("./queues/queueservice"), exports);
34
+ __exportStar(require("./queues/filequeue"), exports);
33
35
  // Services
34
36
  __exportStar(require("./services/asyncevents"), exports);
35
37
  __exportStar(require("./services/authentication"), exports);
@@ -47,9 +49,11 @@ __exportStar(require("./services/resource"), exports);
47
49
  __exportStar(require("./services/service"), exports);
48
50
  __exportStar(require("./services/version"), exports);
49
51
  // Stores
52
+ __exportStar(require("./stores/aggregator"), exports);
50
53
  __exportStar(require("./stores/file"), exports);
51
54
  __exportStar(require("./stores/memory"), exports);
52
55
  __exportStar(require("./stores/store"), exports);
56
+ __exportStar(require("./stores/mapper"), exports);
53
57
  // Utils
54
58
  __exportStar(require("./utils/abstractdeployer"), exports);
55
59
  __exportStar(require("./utils/context"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sFAAsF;AACtF,mDAAuD;AAA9C,wGAAA,WAAW,OAAS;AAC7B,qDAAqD;AACrD,MAAM,YAAY,GAAG,IAAI,oCAAkB,EAAE,CAAC;AACrC,oCAAY;AAErB,gDAA8B;AAC9B,yCAAuB;AACvB,SAAS;AACT,qDAAmC;AACnC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAE9B,SAAS;AACT,uDAAqC;AACrC,wDAAsC;AACtC,WAAW;AACX,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC;AAClC,2DAAyC;AACzC,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,qEAAmD;AACnD,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC;AACtC,oDAAkC;AAClC,sDAAoC;AACpC,qDAAmC;AACnC,qDAAmC;AACnC,SAAS;AACT,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,QAAQ;AACR,2DAAyC;AACzC,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,iDAA+B;AAC/B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sFAAsF;AACtF,mDAAuD;AAA9C,wGAAA,WAAW,OAAS;AAC7B,qDAAqD;AACrD,MAAM,YAAY,GAAG,IAAI,oCAAkB,EAAE,CAAC;AACrC,oCAAY;AAErB,gDAA8B;AAC9B,yCAAuB;AACvB,SAAS;AACT,qDAAmC;AACnC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAE9B,SAAS;AACT,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,qDAAmC;AAEnC,WAAW;AACX,yDAAuC;AACvC,4DAA0C;AAC1C,oDAAkC;AAClC,2DAAyC;AACzC,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,qEAAmD;AACnD,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC;AACtC,oDAAkC;AAClC,sDAAoC;AACpC,qDAAmC;AACnC,qDAAmC;AACnC,SAAS;AACT,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC;AAChC,QAAQ;AACR,2DAAyC;AACzC,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,iDAA+B;AAC/B,iDAA+B"}
@@ -1,13 +1,52 @@
1
- import { Context, CoreModel, User } from "../index";
1
+ import { Context, CoreModel, ModelAction, User } from "../index";
2
2
  /**
3
3
  * Object that contains ACL to define its own permissions
4
4
  */
5
5
  declare class AclModel extends CoreModel {
6
+ /**
7
+ * Object creator
8
+ */
9
+ _creator: string;
10
+ /**
11
+ * Permissions on the object
12
+ */
6
13
  __acls: Map<string, string>;
14
+ /**
15
+ * Add acls actions
16
+ * @returns
17
+ */
18
+ static getActions(): {
19
+ [key: string]: ModelAction;
20
+ };
21
+ /**
22
+ * Ensure creator has all permissions by default
23
+ */
24
+ _onSave(): Promise<void>;
25
+ /**
26
+ * Return object ACLs
27
+ * @returns
28
+ */
7
29
  getAcls(): Map<string, string>;
30
+ /**
31
+ * Set object ACLs
32
+ * @param acls
33
+ */
8
34
  setAcls(acls: Map<string, string>): void;
9
- _httpGetAcls(ctx: any): Promise<Map<string, string>>;
10
- _httpPutAcls(ctx: any): Promise<void>;
35
+ /**
36
+ * Manage the ACL REST api actions
37
+ * @param ctx
38
+ * @returns
39
+ */
40
+ _acls(ctx: Context): Promise<void>;
41
+ /**
42
+ * GET
43
+ * @param ctx
44
+ */
45
+ _httpGetAcls(ctx: Context): Promise<void>;
46
+ /**
47
+ *
48
+ */
49
+ _httpPutAcls(ctx: Context): Promise<void>;
11
50
  getGroups(ctx: Context, user: User): string[];
12
51
  hasPermission(ctx: Context, user: User, action: string): Promise<boolean>;
13
52
  canAct(ctx: Context, action: string): Promise<this>;
@@ -17,22 +17,77 @@ const index_1 = require("../index");
17
17
  class AclModel extends index_1.CoreModel {
18
18
  constructor() {
19
19
  super(...arguments);
20
+ /**
21
+ * Permissions on the object
22
+ */
20
23
  this.__acls = new Map();
21
24
  }
25
+ /**
26
+ * Add acls actions
27
+ * @returns
28
+ */
29
+ static getActions() {
30
+ return Object.assign(Object.assign({}, super.getActions()), { acls: {
31
+ methods: ["PUT", "GET"]
32
+ } });
33
+ }
34
+ /**
35
+ * Ensure creator has all permissions by default
36
+ */
37
+ _onSave() {
38
+ const _super = Object.create(null, {
39
+ _onSave: { get: () => super._onSave }
40
+ });
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ yield _super._onSave.call(this);
43
+ this._creator = this.getContext().getCurrentUserId();
44
+ if (this.__acls.size === 0) {
45
+ this.__acls.set(this._creator, "all");
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Return object ACLs
51
+ * @returns
52
+ */
22
53
  getAcls() {
23
54
  return this.__acls;
24
55
  }
56
+ /**
57
+ * Set object ACLs
58
+ * @param acls
59
+ */
25
60
  setAcls(acls) {
26
61
  this.__acls = acls;
27
62
  }
63
+ /**
64
+ * Manage the ACL REST api actions
65
+ * @param ctx
66
+ * @returns
67
+ */
68
+ _acls(ctx) {
69
+ if (ctx.getHttpContext().getMethod() === "PUT") {
70
+ return this._httpPutAcls(ctx);
71
+ }
72
+ else if (ctx.getHttpContext().getMethod() === "GET") {
73
+ return this._httpGetAcls(ctx);
74
+ }
75
+ }
76
+ /**
77
+ * GET
78
+ * @param ctx
79
+ */
28
80
  _httpGetAcls(ctx) {
29
81
  return __awaiter(this, void 0, void 0, function* () {
30
- return this.__acls;
82
+ ctx.write(this.__acls);
31
83
  });
32
84
  }
85
+ /**
86
+ *
87
+ */
33
88
  _httpPutAcls(ctx) {
34
89
  return __awaiter(this, void 0, void 0, function* () {
35
- this.__acls = ctx.body;
90
+ this.__acls = ctx.getRequestBody();
36
91
  yield this.save();
37
92
  });
38
93
  }
@@ -61,7 +116,7 @@ class AclModel extends index_1.CoreModel {
61
116
  }
62
117
  canAct(ctx, action) {
63
118
  return __awaiter(this, void 0, void 0, function* () {
64
- if (!this.__acls || !ctx.getCurrentUserId()) {
119
+ if (!this.getAcls() || !ctx.getCurrentUserId()) {
65
120
  throw 403;
66
121
  }
67
122
  let user = yield ctx.getCurrentUser();
@@ -1 +1 @@
1
- {"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb,oCAAoD;AAEpD;;GAEG;AACH,MAAM,QAAS,SAAQ,iBAAS;IAAhC;;QACE,WAAM,GAAwB,IAAI,GAAG,EAAkB,CAAC;IAoD1D,CAAC;IAlDC,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAyB;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEK,YAAY,CAAC,GAAG;;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;IAEK,YAAY,CAAC,GAAG;;YACpB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;KAAA;IAED,4CAA4C;IAC5C,SAAS,CAAC,GAAY,EAAE,IAAU;QAChC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,EAAE,CAAC;SACb;QACD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEK,aAAa,CAAC,GAAY,EAAE,IAAU,EAAE,MAAc;;YAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACzB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAC9E,OAAO,IAAI,CAAC;qBACb;iBACF;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEK,MAAM,CAAC,GAAY,EAAE,MAAc;;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE;gBAC3C,MAAM,GAAG,CAAC;aACX;YACD,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;gBAC/C,OAAO,IAAI,CAAC;aACb;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;KAAA;CACF;AAEQ,4BAAQ"}
1
+ {"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ let AclPolicyTest = class AclPolicyTest {
29
29
  this._user = new index_1.User();
30
30
  this._user.uuid = "user-uid";
31
31
  this._user.addGroup("gip-123");
32
+ // @ts-ignore
32
33
  this._ctx.getCurrentUser = () => __awaiter(this, void 0, void 0, function* () {
33
34
  return this._user;
34
35
  });
@@ -57,6 +58,9 @@ let AclPolicyTest = class AclPolicyTest {
57
58
  this.model.__acls["gip-122"] = "get,action";
58
59
  assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
59
60
  yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
61
+ // @ts-ignore
62
+ this._user._groups = undefined;
63
+ yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "get"));
60
64
  });
61
65
  }
62
66
  userid() {
@@ -66,6 +70,15 @@ let AclPolicyTest = class AclPolicyTest {
66
70
  this.model.__acls["gip-122"] = "get,action";
67
71
  assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
68
72
  yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
73
+ this._ctx.getCurrentUserId = () => {
74
+ return undefined;
75
+ };
76
+ yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "get"), /403/);
77
+ this._ctx.getCurrentUserId = () => {
78
+ return "123";
79
+ };
80
+ this.model.setAcls(undefined);
81
+ yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "get"), /403/);
69
82
  });
70
83
  }
71
84
  all() {
@@ -80,6 +93,33 @@ let AclPolicyTest = class AclPolicyTest {
80
93
  assert.strictEqual(yield this.model.canAct(this._ctx, "whatever"), this.model);
81
94
  });
82
95
  }
96
+ httpAcls() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ // @ts-ignore
99
+ this.model.__store = {
100
+ save: () => __awaiter(this, void 0, void 0, function* () { return this.model; })
101
+ };
102
+ let actions = index_1.AclModel.getActions();
103
+ assert.notStrictEqual(actions.acls, undefined);
104
+ this._ctx.setHttpContext(new index_1.HttpContext("test.webda.io", "PUT", "/", undefined, undefined, { acl: "mine" }));
105
+ yield this.model._acls(this._ctx);
106
+ // @ts-ignore
107
+ assert.strictEqual(this.model.getAcls().acl, "mine");
108
+ this._ctx.setHttpContext(new index_1.HttpContext("test.webda.io", "GET", "/", undefined, undefined, { acl: "mine" }));
109
+ yield this.model._acls(this._ctx);
110
+ assert.deepStrictEqual(JSON.parse(this._ctx.getResponseBody()), {
111
+ acl: "mine"
112
+ });
113
+ });
114
+ }
115
+ onSave() {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ this.model.setContext(this._ctx);
118
+ yield this.model._onSave();
119
+ assert.deepStrictEqual(this.model.__acls, new Map([["user-uid", "all"]]));
120
+ assert.strictEqual(this.model._creator, "user-uid");
121
+ });
122
+ }
83
123
  };
84
124
  __decorate([
85
125
  mocha_1.test
@@ -96,6 +136,12 @@ __decorate([
96
136
  __decorate([
97
137
  mocha_1.test
98
138
  ], AclPolicyTest.prototype, "all", null);
139
+ __decorate([
140
+ mocha_1.test
141
+ ], AclPolicyTest.prototype, "httpAcls", null);
142
+ __decorate([
143
+ mocha_1.test
144
+ ], AclPolicyTest.prototype, "onSave", null);
99
145
  AclPolicyTest = __decorate([
100
146
  mocha_1.suite
101
147
  ], AclPolicyTest);
@@ -1 +1 @@
1
- {"version":3,"file":"aclmodel.spec.js","sourceRoot":"","sources":["../../src/models/aclmodel.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aclmodel.spec.js","sourceRoot":"","sources":["../../src/models/aclmodel.spec.ts"],"names":[],"mappings":"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"}