@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
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.EchoService = exports.EchoServiceParameters = void 0;
4
13
  const service_1 = require("./service");
@@ -37,19 +46,19 @@ class EchoService extends service_1.Service {
37
46
  }
38
47
  /** @ignore */
39
48
  execute(ctx) {
40
- if (this.parameters.mime) {
41
- ctx.writeHead(200, {
42
- "Content-Type": this.parameters.mime
43
- });
44
- }
45
- if (typeof this.parameters.result != "string") {
46
- ctx.write(JSON.stringify(this.parameters.result));
47
- }
48
- else {
49
- ctx.write(this.parameters.result);
50
- }
51
- ctx.end();
52
- return Promise.resolve();
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ if (this.parameters.mime) {
51
+ ctx.writeHead(200, {
52
+ "Content-Type": this.parameters.mime
53
+ });
54
+ }
55
+ if (typeof this.parameters.result != "string") {
56
+ ctx.write(JSON.stringify(this.parameters.result));
57
+ }
58
+ else {
59
+ ctx.write(this.parameters.result);
60
+ }
61
+ });
53
62
  }
54
63
  /**
55
64
  * @inheritdoc
@@ -1 +1 @@
1
- {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../src/services/echo.ts"],"names":[],"mappings":";;;AACA,uCAAuD;AAEvD,MAAa,qBAAsB,SAAQ,2BAAiB;CAa3D;AAbD,sDAaC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAa,WAAY,SAAQ,iBAA8B;IAC7D;;;;;OAKG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc;IACd,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;IACd,OAAO,CAAC,GAAY;QAClB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;aACrC,CAAC,CAAC;SACJ;QACD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE;YAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,6DAA6D;SAC3E,CAAC;IACJ,CAAC;CACF;AA1CD,kCA0CC"}
1
+ {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../src/services/echo.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAAuD;AAEvD,MAAa,qBAAsB,SAAQ,2BAAiB;CAa3D;AAbD,sDAaC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAa,WAAY,SAAQ,iBAA8B;IAC7D;;;;;OAKG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc;IACd,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;IACR,OAAO,CAAC,GAAY;;YACxB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;iBACrC,CAAC,CAAC;aACJ;YACD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE;gBAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;aACnD;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACnC;QACH,CAAC;KAAA;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,6DAA6D;SAC3E,CAAC;IACJ,CAAC;CACF;AAxCD,kCAwCC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const test_1 = require("../test");
19
+ const assert = require("assert");
20
+ const echo_1 = require("./echo");
21
+ const mocha_1 = require("@testdeck/mocha");
22
+ const sinon = require("sinon");
23
+ let EchoTest = class EchoTest extends test_1.WebdaTest {
24
+ cov() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ let service = new echo_1.EchoService(this.webda, "test", { url: "/bouzouf", result: "plop" });
27
+ let stub = sinon.spy(service, "addRoute");
28
+ try {
29
+ service.initRoutes();
30
+ assert.strictEqual(stub.callCount, 1);
31
+ }
32
+ finally {
33
+ stub.restore();
34
+ }
35
+ let ctx = yield this.newContext();
36
+ yield service.execute(ctx);
37
+ assert.strictEqual(ctx.getResponseBody(), "plop");
38
+ service = new echo_1.EchoService(this.webda, "test", { url: "/bouzouf", mime: "mine/json", result: { obj: "plop" } });
39
+ ctx = yield this.newContext();
40
+ yield service.execute(ctx);
41
+ assert.strictEqual(ctx.getResponseHeaders()["Content-Type"], "mine/json");
42
+ assert.strictEqual(ctx.getResponseBody(), '{"obj":"plop"}');
43
+ });
44
+ }
45
+ };
46
+ __decorate([
47
+ mocha_1.test
48
+ ], EchoTest.prototype, "cov", null);
49
+ EchoTest = __decorate([
50
+ mocha_1.suite
51
+ ], EchoTest);
52
+ //# sourceMappingURL=echo.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo.spec.js","sourceRoot":"","sources":["../../src/services/echo.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAoC;AACpC,iCAAiC;AACjC,iCAAqC;AACrC,2CAA8C;AAC9C,+BAA+B;AAG/B,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,gBAAS;IAExB,GAAG;;YACP,IAAI,OAAO,GAAG,IAAI,kBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvF,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC1C,IAAI;gBACF,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aACvC;oBAAS;gBACR,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,GAAG,IAAI,kBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/G,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;YAC1E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF,CAAA;AAlBC;IADC,YAAI;mCAkBJ;AAnBG,QAAQ;IADb,aAAK;GACA,QAAQ,CAoBb"}
@@ -1,8 +1,10 @@
1
+ /// <reference types="node" />
1
2
  import { ModdaDefinition } from "../core";
2
3
  import { Context } from "../utils/context";
3
4
  import { Binary, BinaryMap, BinaryParameters } from "./binary";
4
5
  import { Service, ServiceParameters } from "./service";
5
- import { CoreModel, Store } from "..";
6
+ import { CoreModel } from "..";
7
+ import { Readable } from "stream";
6
8
  export declare class FileBinaryParameters extends BinaryParameters {
7
9
  /**
8
10
  * Define the folder to store objects in
@@ -36,8 +38,11 @@ declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters>
36
38
  */
37
39
  computeParameters(): void;
38
40
  _initRoutes(): boolean;
39
- _get(info: any): ReadableStream<any>;
40
- _getPath(hash: any, postfix?: any): string;
41
+ /**
42
+ * @inheritdoc
43
+ */
44
+ _get(info: BinaryMap): Promise<Readable>;
45
+ _getPath(hash: string, postfix?: string): string;
41
46
  _touch(path: any): void;
42
47
  getPutUrl(ctx: Context): string;
43
48
  /**
@@ -45,7 +50,10 @@ declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters>
45
50
  *
46
51
  * @ignore
47
52
  */
48
- putRedirectUrl(ctx: Context): Promise<string>;
53
+ putRedirectUrl(ctx: Context): Promise<{
54
+ url: string;
55
+ method: string;
56
+ }>;
49
57
  /**
50
58
  * Store the binary sent
51
59
  *
@@ -73,21 +81,20 @@ declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters>
73
81
  /**
74
82
  * @inheritdoc
75
83
  */
76
- delete(targetStore: Store<CoreModel>, object: CoreModel, property: string, index: number): Promise<CoreModel>;
84
+ delete(object: CoreModel, property: string, index: number): Promise<void>;
77
85
  challenge(hash: any, challenge: any): boolean;
78
86
  /**
79
87
  * @inheritdoc
80
88
  */
81
89
  cascadeDelete(info: BinaryMap, uuid: string): Promise<void>;
82
- _store(file: any, targetStore: any, object: any): void;
90
+ _store(file: any, object: any): void;
83
91
  /**
84
92
  * @inheritdoc
85
93
  */
86
- store(targetStore: any, object: any, property: any, file: any, metadatas: any, index?: number): Promise<any>;
94
+ store(object: CoreModel, property: string, file: any, metadatas?: any): Promise<any>;
87
95
  /**
88
- * @inheritdoc
96
+ * Clean all data
89
97
  */
90
- update(targetStore: any, object: any, property: any, index: any, file: any, metadatas: any): Promise<CoreModel>;
91
98
  ___cleanData(): Promise<void>;
92
99
  static getModda(): ModdaDefinition;
93
100
  }
@@ -13,6 +13,7 @@ exports.FileBinary = exports.FileBinaryParameters = void 0;
13
13
  const fs = require("fs");
14
14
  const binary_1 = require("./binary");
15
15
  const path_1 = require("path");
16
+ const jwt = require("jsonwebtoken");
16
17
  class FileBinaryParameters extends binary_1.BinaryParameters {
17
18
  constructor(params, service) {
18
19
  super(params, service);
@@ -59,8 +60,8 @@ class FileBinary extends binary_1.Binary {
59
60
  return false;
60
61
  }
61
62
  // Will redirect to this URL for direct upload
62
- let url = this.parameters.expose.url + "/upload/data/{hash}";
63
- let name = this._name === "Binary" ? "" : this._name;
63
+ let url = this.parameters.expose.url + "/upload/data/{hash}{?token}";
64
+ let name = this.getOperationName();
64
65
  if (!this.parameters.expose.restrict.create) {
65
66
  this.addRoute(url, ["PUT"], this.storeBinary, {
66
67
  put: {
@@ -77,13 +78,17 @@ class FileBinary extends binary_1.Binary {
77
78
  });
78
79
  }
79
80
  }
81
+ /**
82
+ * @inheritdoc
83
+ */
80
84
  _get(info) {
81
- var path = this._getPath(info.hash, "data");
82
- if (!fs.existsSync(path)) {
83
- throw 404;
84
- }
85
- // @ts-ignore
86
- return fs.createReadStream(path);
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ var path = this._getPath(info.hash, "data");
87
+ if (!fs.existsSync(path)) {
88
+ throw new binary_1.BinaryNotFoundError(info.hash, this.getName());
89
+ }
90
+ return fs.createReadStream(path);
91
+ });
87
92
  }
88
93
  _getPath(hash, postfix = undefined) {
89
94
  if (postfix === undefined) {
@@ -98,9 +103,13 @@ class FileBinary extends binary_1.Binary {
98
103
  }
99
104
  getPutUrl(ctx) {
100
105
  // Get a full URL, this method should be in a Route Object
106
+ // Add a JWT token for 60s
107
+ let token = jwt.sign({ hash: ctx.getRequestBody().hash }, this.getWebda().getSecret(), {
108
+ expiresIn: 60
109
+ });
101
110
  return ctx
102
111
  .getHttpContext()
103
- .getAbsoluteUrl(this.parameters.expose.url + "/upload/data/" + ctx.getRequestBody().hash);
112
+ .getAbsoluteUrl(this.parameters.expose.url + "/upload/data/" + ctx.getRequestBody().hash + `?token=${token}`);
104
113
  }
105
114
  /**
106
115
  * Will give you the redirect url
@@ -110,24 +119,21 @@ class FileBinary extends binary_1.Binary {
110
119
  putRedirectUrl(ctx) {
111
120
  return __awaiter(this, void 0, void 0, function* () {
112
121
  let body = ctx.getRequestBody();
113
- if (body.hash === undefined) {
114
- this._webda.log("WARN", "Request not conform", body);
115
- throw 400;
116
- }
117
122
  let uid = ctx.parameter("uid");
118
123
  let store = ctx.parameter("store");
119
124
  let property = ctx.parameter("property");
125
+ let result = { url: this.getPutUrl(ctx), method: "PUT" };
120
126
  if (fs.existsSync(this._getPath(body.hash, store + "_" + uid))) {
121
127
  if (!fs.existsSync(this._getPath(body.hash, "data"))) {
122
- return Promise.resolve(this.getPutUrl(ctx));
128
+ return result;
123
129
  }
124
130
  // If the link is already register just return directly ok
125
131
  return;
126
132
  }
127
133
  // Get the target object to add the mapping
128
134
  let targetStore = this._verifyMapAndStore(ctx);
129
- let object = yield targetStore.get(uid);
130
- yield this.updateSuccess(targetStore, object, property, undefined, body, body.metadatas);
135
+ let object = yield targetStore.get(uid, ctx);
136
+ yield this.uploadSuccess(object, property, body, body.metadatas);
131
137
  // Need to store the usage of the file
132
138
  if (!fs.existsSync(this._getPath(body.hash))) {
133
139
  fs.mkdirSync(this._getPath(body.hash));
@@ -138,7 +144,7 @@ class FileBinary extends binary_1.Binary {
138
144
  return;
139
145
  }
140
146
  // Return the url to upload the binary now
141
- return this.getPutUrl(ctx);
147
+ return result;
142
148
  });
143
149
  }
144
150
  /**
@@ -156,6 +162,16 @@ class FileBinary extends binary_1.Binary {
156
162
  if (ctx.parameter("hash") !== result.hash) {
157
163
  throw 400;
158
164
  }
165
+ // Verify token
166
+ try {
167
+ let dt = jwt.verify(ctx.parameter("token"), this.getWebda().getSecret());
168
+ if (dt.hash !== result.hash) {
169
+ throw 403;
170
+ }
171
+ }
172
+ catch (err) {
173
+ throw 403;
174
+ }
159
175
  if (!fs.existsSync(this._getPath(result.hash))) {
160
176
  // The folder should have been create by a previous request
161
177
  throw 412;
@@ -193,11 +209,12 @@ class FileBinary extends binary_1.Binary {
193
209
  const p = this._getPath(hash);
194
210
  if (!fs.existsSync(p))
195
211
  return;
196
- var files = fs.readdirSync(p);
197
- for (var i in files) {
198
- fs.unlinkSync(path_1.join(p, files[i]));
212
+ try {
213
+ var files = fs.readdirSync(p);
214
+ files.forEach(file => fs.unlinkSync((0, path_1.join)(p, file)));
215
+ fs.rmdirSync(p);
199
216
  }
200
- fs.rmdirSync(p);
217
+ catch (err) { }
201
218
  });
202
219
  }
203
220
  /**
@@ -209,12 +226,7 @@ class FileBinary extends binary_1.Binary {
209
226
  if (!fs.existsSync(p))
210
227
  return;
211
228
  var files = fs.readdirSync(p);
212
- for (var i in files) {
213
- if (files[i].endsWith(uuid)) {
214
- console.log(files[i]);
215
- fs.unlinkSync(this._getPath(hash, files[i]));
216
- }
217
- }
229
+ files.filter(f => f.endsWith(uuid)).forEach(f => fs.unlinkSync(this._getPath(hash, f)));
218
230
  if (files.length == 3) {
219
231
  yield this._cleanHash(hash);
220
232
  }
@@ -223,84 +235,57 @@ class FileBinary extends binary_1.Binary {
223
235
  /**
224
236
  * @inheritdoc
225
237
  */
226
- delete(targetStore, object, property, index) {
238
+ delete(object, property, index) {
227
239
  return __awaiter(this, void 0, void 0, function* () {
228
240
  var hash = object[property][index].hash;
229
- return this.deleteSuccess(targetStore, object, property, index).then(updated => {
230
- this._cleanUsage(hash, object.getUuid());
231
- return Promise.resolve(updated);
232
- });
241
+ yield this.deleteSuccess(object, property, index);
242
+ yield this._cleanUsage(hash, object.getUuid());
233
243
  });
234
244
  }
235
245
  challenge(hash, challenge) {
236
- if (!this._validChallenge(challenge)) {
237
- return false;
238
- }
239
246
  var path = this._getPath(hash);
240
- if (!fs.existsSync(path) || !fs.existsSync(path + "/_" + challenge)) {
241
- return false;
242
- }
243
- return true;
247
+ return fs.existsSync(path) && fs.existsSync(`${path}/_${challenge}`);
244
248
  }
245
249
  /**
246
250
  * @inheritdoc
247
251
  */
248
252
  cascadeDelete(info, uuid) {
249
- return this._cleanUsage(info.hash, "_" + uuid);
253
+ return __awaiter(this, void 0, void 0, function* () {
254
+ return this._cleanUsage(info.hash, "_" + uuid);
255
+ });
250
256
  }
251
- _store(file, targetStore, object) {
257
+ _store(file, object) {
252
258
  fs.mkdirSync(this._getPath(file.hash));
253
259
  if (file.buffer) {
254
260
  fs.writeFileSync(this._getPath(file.hash, "data"), file.buffer);
255
261
  }
256
262
  // Store the challenge
257
263
  this._touch(this._getPath(file.hash, "_" + file.challenge));
258
- this._touch(this._getPath(file.hash, targetStore._name + "_" + object.uuid));
264
+ this._touch(this._getPath(file.hash, object.getStore().getName() + "_" + object.uuid));
259
265
  }
260
266
  /**
261
267
  * @inheritdoc
262
268
  */
263
- store(targetStore, object, property, file, metadatas, index) {
269
+ store(object, property, file, metadatas) {
264
270
  return __awaiter(this, void 0, void 0, function* () {
265
- this._checkMap(targetStore._name, property);
271
+ let storeName = object.getStore().getName();
272
+ this._checkMap(storeName, property);
266
273
  this._prepareInput(file);
267
- file = Object.assign(Object.assign({}, file), this._getHashes(file.buffer));
268
274
  if (fs.existsSync(this._getPath(file.hash))) {
269
- this._touch(this._getPath(file.hash, targetStore._name + "_" + object.uuid));
270
- return this.updateSuccess(targetStore, object, property, undefined, file, metadatas);
275
+ this._touch(this._getPath(file.hash, `${storeName}_${object.getUuid()}`));
276
+ yield this.uploadSuccess(object, property, file, metadatas);
277
+ return;
271
278
  }
272
- this._store(file, targetStore, object);
273
- return this.updateSuccess(targetStore, object, property, undefined, file, metadatas);
279
+ this._store(file, object);
280
+ yield this.uploadSuccess(object, property, file, metadatas);
274
281
  });
275
282
  }
276
283
  /**
277
- * @inheritdoc
284
+ * Clean all data
278
285
  */
279
- update(targetStore, object, property, index, file, metadatas) {
280
- return __awaiter(this, void 0, void 0, function* () {
281
- this._checkMap(targetStore._name, property);
282
- this._prepareInput(file);
283
- file = Object.assign(Object.assign({}, file), this._getHashes(file.buffer));
284
- if (fs.existsSync(this._getPath(file.hash))) {
285
- this._touch(this._getPath(file.hash, targetStore._name + "_" + object.uuid));
286
- return this.updateSuccess(targetStore, object, property, index, file, metadatas);
287
- }
288
- this._store(file, targetStore, object);
289
- return this.updateSuccess(targetStore, object, property, index, file, metadatas);
290
- });
291
- }
292
286
  ___cleanData() {
293
287
  return __awaiter(this, void 0, void 0, function* () {
294
- var ids = fs.readdirSync(this.parameters.folder);
295
- for (var i in ids) {
296
- var hash = ids[i];
297
- var files = fs.readdirSync(this.parameters.folder + hash);
298
- for (var file in files) {
299
- fs.unlinkSync(this.parameters.folder + hash + "/" + files[file]);
300
- }
301
- fs.rmdirSync(this.parameters.folder + hash + "/");
302
- }
303
- return Promise.resolve();
288
+ require("fs-extra").emptyDirSync(this.parameters.folder);
304
289
  });
305
290
  }
306
291
  static getModda() {
@@ -1 +1 @@
1
- {"version":3,"file":"filebinary.js","sourceRoot":"","sources":["../../src/services/filebinary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filebinary.js","sourceRoot":"","sources":["../../src/services/filebinary.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import { BinaryTest } from "./binary.spec";
2
2
  declare class FileBinaryTest extends BinaryTest {
3
- isValidChallenge(): void;
3
+ initMap(): void;
4
+ _getFile(): Promise<void>;
5
+ initRoutes(): void;
6
+ verifyMapAndStore(): Promise<void>;
7
+ computeParameters(): void;
8
+ challenge(): Promise<void>;
9
+ badTokens(): Promise<void>;
10
+ cleanNonExisting(): void;
4
11
  }
5
12
  export { FileBinaryTest };
@@ -5,23 +5,149 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
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
+ };
8
17
  Object.defineProperty(exports, "__esModule", { value: true });
9
18
  exports.FileBinaryTest = void 0;
10
19
  const binary_spec_1 = require("./binary.spec");
11
20
  const assert = require("assert");
12
21
  const mocha_1 = require("@testdeck/mocha");
22
+ const fs_extra_1 = require("fs-extra");
23
+ const fs = require("fs");
24
+ const jwt = require("jsonwebtoken");
13
25
  let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
14
- isValidChallenge() {
15
- let binary = this.getService("binary");
16
- assert.strictEqual(binary._validChallenge("54b249c8a7c2cdc6945c5c426fbe2b4b41e5045059c43ddc5e134b17e8157980"), true);
17
- assert.strictEqual(binary._validChallenge("54b249c8a7c2cdc6945c5c426fbe2b4b41e5045059c43ddc5e134b17e815798G"), false);
18
- assert.strictEqual(binary._validChallenge("54b249c8a7c2cdc6945c5c426fbe2b4b41e5045059c43ddc5e134b17e815798"), false);
19
- assert.strictEqual(binary._validChallenge("54b249c8a7c2cdc6945c5c426fbe2b4b41e5045059c43ddc5e134b17e815798."), false);
26
+ initMap() {
27
+ let binary = this.getBinary();
28
+ binary.initMap(undefined);
29
+ binary.initMap({ _init: true });
30
+ // Bad store
31
+ binary.initMap({
32
+ VersionService: {},
33
+ None: {},
34
+ MemoryIdents: "idents"
35
+ });
36
+ }
37
+ _getFile() {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ let binary = this.getBinary();
40
+ const files = [{}];
41
+ // @ts-ignore
42
+ assert.strictEqual(binary._getFile({ files }), files[0]);
43
+ let ctx = yield this.newContext();
44
+ ctx.getHttpContext().setBody("plop");
45
+ ctx.getHttpContext().headers = { "content-type": "text/plain" };
46
+ assert.deepStrictEqual(binary._getFile(ctx), {
47
+ buffer: "plop",
48
+ mimetype: "text/plain",
49
+ originalname: "",
50
+ size: 4
51
+ });
52
+ });
53
+ }
54
+ initRoutes() {
55
+ let binary = this.getBinary();
56
+ binary.getParameters().expose = undefined;
57
+ binary.initRoutes();
58
+ // @ts-ignore
59
+ binary._name = "Binary";
60
+ binary.initRoutes();
61
+ }
62
+ verifyMapAndStore() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ let binary = this.getBinary();
65
+ let ctx = yield this.newContext();
66
+ ctx.setPathParameters({ store: "Store", property: "images" });
67
+ console.log(binary.getParameters().map);
68
+ assert.throws(() => binary._verifyMapAndStore(ctx), /404/);
69
+ ctx.setPathParameters({ store: "users", property: "images" });
70
+ assert.strictEqual(binary._verifyMapAndStore(ctx), this.getService("users"));
71
+ ctx.setPathParameters({ store: "users", property: "images2" });
72
+ assert.throws(() => binary._verifyMapAndStore(ctx), /404/);
73
+ ctx.setPathParameters({ store: "notexisting", property: "images" });
74
+ assert.throws(() => binary._verifyMapAndStore(ctx), /404/);
75
+ });
76
+ }
77
+ computeParameters() {
78
+ let binary = this.getBinary();
79
+ (0, fs_extra_1.removeSync)(binary.getParameters().folder);
80
+ binary.computeParameters();
81
+ assert.ok(fs.existsSync(binary.getParameters().folder));
82
+ }
83
+ challenge() {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ yield this.testChallenge();
86
+ });
87
+ }
88
+ badTokens() {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ let binary = this.getBinary();
91
+ let ctx = yield this.newContext();
92
+ let { hash } = binary._getHashes(Buffer.from("PLOP"));
93
+ let token = "badt";
94
+ ctx.setPathParameters({
95
+ hash,
96
+ token
97
+ });
98
+ ctx.getHttpContext().setBody("PLOP");
99
+ yield assert.rejects(() => binary.storeBinary(ctx), /403/);
100
+ token = jwt.sign({ hash: "PLOP2" }, this.webda.getSecret());
101
+ ctx.setPathParameters({
102
+ hash,
103
+ token
104
+ });
105
+ yield assert.rejects(() => binary.storeBinary(ctx), /403/);
106
+ // expired token
107
+ token = jwt.sign({ hash, exp: Math.floor(Date.now() / 1000) - 60 * 60 }, this.webda.getSecret());
108
+ ctx.setPathParameters({
109
+ hash,
110
+ token
111
+ });
112
+ yield assert.rejects(() => binary.storeBinary(ctx), /403/);
113
+ token = jwt.sign({ hash }, this.webda.getSecret());
114
+ ctx.setPathParameters({
115
+ hash,
116
+ token
117
+ });
118
+ yield assert.rejects(() => binary.storeBinary(ctx), /412/);
119
+ });
120
+ }
121
+ cleanNonExisting() {
122
+ let binary = this.getBinary();
123
+ binary._cleanHash("plop");
124
+ binary._cleanUsage("plop", "l");
20
125
  }
21
126
  };
22
127
  __decorate([
23
128
  mocha_1.test
24
- ], FileBinaryTest.prototype, "isValidChallenge", null);
129
+ ], FileBinaryTest.prototype, "initMap", null);
130
+ __decorate([
131
+ mocha_1.test
132
+ ], FileBinaryTest.prototype, "_getFile", null);
133
+ __decorate([
134
+ mocha_1.test
135
+ ], FileBinaryTest.prototype, "initRoutes", null);
136
+ __decorate([
137
+ mocha_1.test
138
+ ], FileBinaryTest.prototype, "verifyMapAndStore", null);
139
+ __decorate([
140
+ mocha_1.test
141
+ ], FileBinaryTest.prototype, "computeParameters", null);
142
+ __decorate([
143
+ mocha_1.test
144
+ ], FileBinaryTest.prototype, "challenge", null);
145
+ __decorate([
146
+ mocha_1.test
147
+ ], FileBinaryTest.prototype, "badTokens", null);
148
+ __decorate([
149
+ mocha_1.test
150
+ ], FileBinaryTest.prototype, "cleanNonExisting", null);
25
151
  FileBinaryTest = __decorate([
26
152
  mocha_1.suite
27
153
  ], FileBinaryTest);