@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
@@ -1,5 +1,5 @@
1
- import { Context, ModdaDefinition } from "../index";
2
- import { ServiceParameters, Service } from "./service";
1
+ import { Context } from "../index";
2
+ import { Service, ServiceParameters } from "./service";
3
3
  export declare class EchoServiceParameters extends ServiceParameters {
4
4
  /**
5
5
  * Mime of the result
@@ -28,7 +28,7 @@ export declare class EchoServiceParameters extends ServiceParameters {
28
28
  * "mime": "text/plain"
29
29
  * }
30
30
  * ```
31
- *
31
+ * @WebdaModda
32
32
  */
33
33
  export declare class EchoService extends Service<EchoServiceParameters> {
34
34
  /**
@@ -42,8 +42,4 @@ export declare class EchoService extends Service<EchoServiceParameters> {
42
42
  initRoutes(): void;
43
43
  /** @ignore */
44
44
  execute(ctx: Context): Promise<any>;
45
- /**
46
- * @inheritdoc
47
- */
48
- static getModda(): ModdaDefinition;
49
45
  }
@@ -28,7 +28,7 @@ exports.EchoServiceParameters = EchoServiceParameters;
28
28
  * "mime": "text/plain"
29
29
  * }
30
30
  * ```
31
- *
31
+ * @WebdaModda
32
32
  */
33
33
  class EchoService extends service_1.Service {
34
34
  /**
@@ -60,16 +60,6 @@ class EchoService extends service_1.Service {
60
60
  }
61
61
  });
62
62
  }
63
- /**
64
- * @inheritdoc
65
- */
66
- static getModda() {
67
- return {
68
- uuid: "Webda/EchoService",
69
- label: "Echo Service",
70
- description: "Output a staticly defined result, useful to display verison"
71
- };
72
- }
73
63
  }
74
64
  exports.EchoService = EchoService;
75
65
  //# sourceMappingURL=echo.js.map
@@ -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;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"}
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;CACF;AA7BD,kCA6BC"}
@@ -15,15 +15,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
15
15
  });
16
16
  };
17
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
18
  const mocha_1 = require("@testdeck/mocha");
19
+ const assert = require("assert");
22
20
  const sinon = require("sinon");
21
+ const test_1 = require("../test");
22
+ const echo_1 = require("./echo");
23
23
  let EchoTest = class EchoTest extends test_1.WebdaTest {
24
24
  cov() {
25
25
  return __awaiter(this, void 0, void 0, function* () {
26
26
  let service = new echo_1.EchoService(this.webda, "test", { url: "/bouzouf", result: "plop" });
27
+ // @ts-ignore
27
28
  let stub = sinon.spy(service, "addRoute");
28
29
  try {
29
30
  service.initRoutes();
@@ -1 +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
+ {"version":3,"file":"echo.spec.js","sourceRoot":"","sources":["../../src/services/echo.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA8C;AAC9C,iCAAiC;AACjC,+BAA+B;AAC/B,kCAAoC;AACpC,iCAAqC;AAGrC,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,aAAa;YACb,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;AAnBC;IADC,YAAI;mCAmBJ;AApBG,QAAQ;IADb,aAAK;GACA,QAAQ,CAqBb"}
@@ -1,16 +1,15 @@
1
1
  /// <reference types="node" />
2
- import { ModdaDefinition } from "../core";
3
- import { Context } from "../utils/context";
4
- import { Binary, BinaryMap, BinaryParameters } from "./binary";
5
- import { Service, ServiceParameters } from "./service";
6
- import { CoreModel } from "..";
7
2
  import { Readable } from "stream";
8
- export declare class FileBinaryParameters extends BinaryParameters {
3
+ import { CloudBinary, CloudBinaryParameters, CoreModel } from "..";
4
+ import { Context } from "../utils/context";
5
+ import { Binary, BinaryFile, BinaryMap } from "./binary";
6
+ import { ServiceParameters } from "./service";
7
+ export declare class FileBinaryParameters extends CloudBinaryParameters {
9
8
  /**
10
9
  * Define the folder to store objects in
11
10
  */
12
11
  folder: string;
13
- constructor(params: any, service: Service);
12
+ constructor(params: any, service: Binary);
14
13
  }
15
14
  /**
16
15
  * FileBinary handles the storage of binary on a hard drive
@@ -25,8 +24,9 @@ export declare class FileBinaryParameters extends BinaryParameters {
25
24
  *
26
25
  * See Binary the general interface
27
26
  * @category CoreServices
27
+ * @WebdaModda
28
28
  */
29
- declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters> extends Binary<T> {
29
+ export declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters> extends CloudBinary<T> {
30
30
  /**
31
31
  * Load parameters
32
32
  *
@@ -37,20 +37,46 @@ declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters>
37
37
  * Create the storage folder if needed
38
38
  */
39
39
  computeParameters(): void;
40
- _initRoutes(): boolean;
40
+ _initRoutes(): void;
41
+ /**
42
+ * Download a binary with a challenge
43
+ */
44
+ downloadBinaryLink(ctx: Context): Promise<void>;
41
45
  /**
42
46
  * @inheritdoc
43
47
  */
44
48
  _get(info: BinaryMap): Promise<Readable>;
49
+ /**
50
+ * Get signed url to download an element
51
+ */
52
+ getSignedUrlFromMap(map: BinaryMap, expires: number, context: Context): Promise<string>;
53
+ /**
54
+ * Get storage path for a hash
55
+ * @param hash
56
+ * @param postfix
57
+ * @returns
58
+ */
45
59
  _getPath(hash: string, postfix?: string): string;
46
- _touch(path: any): void;
47
- getPutUrl(ctx: Context): string;
60
+ _touch(filePath: any, mode?: number): void;
61
+ /**
62
+ * Get token for action
63
+ *
64
+ * @param ctx
65
+ * @param expiresIn
66
+ */
67
+ getToken(hash: string, method: "PUT" | "GET", expiresIn?: number): any;
68
+ /**
69
+ * Get put URL
70
+ * @param ctx
71
+ * @returns
72
+ */
73
+ getPutUrl(ctx: Context<BinaryFile>): Promise<string>;
48
74
  /**
49
75
  * Will give you the redirect url
50
76
  *
51
77
  * @ignore
52
78
  */
53
- putRedirectUrl(ctx: Context): Promise<{
79
+ putRedirectUrl(ctx: Context<BinaryFile>): Promise<{
54
80
  url: string;
55
81
  method: string;
56
82
  }>;
@@ -87,15 +113,13 @@ declare class FileBinary<T extends FileBinaryParameters = FileBinaryParameters>
87
113
  * @inheritdoc
88
114
  */
89
115
  cascadeDelete(info: BinaryMap, uuid: string): Promise<void>;
90
- _store(file: any, object: any): void;
116
+ _store(file: BinaryFile, object: CoreModel): Promise<void>;
91
117
  /**
92
118
  * @inheritdoc
93
119
  */
94
- store(object: CoreModel, property: string, file: any, metadatas?: any): Promise<any>;
120
+ store(object: CoreModel, property: string, file: BinaryFile): Promise<any>;
95
121
  /**
96
122
  * Clean all data
97
123
  */
98
124
  ___cleanData(): Promise<void>;
99
- static getModda(): ModdaDefinition;
100
125
  }
101
- export { FileBinary };
@@ -11,10 +11,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.FileBinary = exports.FileBinaryParameters = void 0;
13
13
  const fs = require("fs");
14
- const binary_1 = require("./binary");
15
- const path_1 = require("path");
16
14
  const jwt = require("jsonwebtoken");
17
- class FileBinaryParameters extends binary_1.BinaryParameters {
15
+ const path_1 = require("path");
16
+ const __1 = require("..");
17
+ const binary_1 = require("./binary");
18
+ class FileBinaryParameters extends __1.CloudBinaryParameters {
18
19
  constructor(params, service) {
19
20
  super(params, service);
20
21
  if (!this.folder.endsWith("/")) {
@@ -36,8 +37,9 @@ exports.FileBinaryParameters = FileBinaryParameters;
36
37
  *
37
38
  * See Binary the general interface
38
39
  * @category CoreServices
40
+ * @WebdaModda
39
41
  */
40
- class FileBinary extends binary_1.Binary {
42
+ class FileBinary extends __1.CloudBinary {
41
43
  /**
42
44
  * Load parameters
43
45
  *
@@ -56,28 +58,80 @@ class FileBinary extends binary_1.Binary {
56
58
  }
57
59
  }
58
60
  _initRoutes() {
59
- if (!super._initRoutes()) {
60
- return false;
61
- }
61
+ super._initRoutes();
62
62
  // Will redirect to this URL for direct upload
63
- let url = this.parameters.expose.url + "/upload/data/{hash}{?token}";
63
+ let url = this.parameters.expose.url + "/download/data/{hash}{?token,content-disposition,content-type}";
64
64
  let name = this.getOperationName();
65
+ if (!this.parameters.expose.restrict.get) {
66
+ this.addRoute(url, ["GET"], this.downloadBinaryLink, {
67
+ put: {
68
+ operationId: `get${name}Binary`,
69
+ description: "Download a binary to an object after challenge",
70
+ summary: "Download a binary",
71
+ responses: {
72
+ "200": {
73
+ description: "Content of binary"
74
+ },
75
+ "403": {
76
+ description: "Wrong hash"
77
+ }
78
+ }
79
+ }
80
+ });
81
+ }
65
82
  if (!this.parameters.expose.restrict.create) {
83
+ url = this.parameters.expose.url + "/upload/data/{hash}{?token}";
66
84
  this.addRoute(url, ["PUT"], this.storeBinary, {
67
85
  put: {
68
86
  operationId: `put${name}Binary`,
69
87
  description: "Upload a binary to an object after challenge",
70
88
  summary: "Upload a binary",
71
89
  responses: {
72
- "204": "",
73
- "400": "Wrong hash",
74
- "404": "Object does not exist or attachment does not exist",
75
- "412": "Provided hash does not match"
90
+ "204": {
91
+ description: ""
92
+ },
93
+ "400": {
94
+ description: "Wrong hash"
95
+ },
96
+ "404": {
97
+ description: "Object does not exist or attachment does not exist"
98
+ },
99
+ "412": {
100
+ description: "Provided hash does not match"
101
+ }
76
102
  }
77
103
  }
78
104
  });
79
105
  }
80
106
  }
107
+ /**
108
+ * Download a binary with a challenge
109
+ */
110
+ downloadBinaryLink(ctx) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const { hash } = ctx.getPathParameters();
113
+ // Verify token
114
+ try {
115
+ let dt = jwt.verify(ctx.parameter("token"), this.getWebda().getSecret());
116
+ if (dt.hash !== hash) {
117
+ throw 403;
118
+ }
119
+ }
120
+ catch (err) {
121
+ throw 403;
122
+ }
123
+ ctx.writeHead(200, {
124
+ "content-disposition": ctx.parameter("content-disposition"),
125
+ "content-type": ctx.parameter("content-type")
126
+ });
127
+ // Fake a binary map for this case
128
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
129
+ const stream = ctx.getStream();
130
+ stream.on("error", reject).on("finish", resolve);
131
+ (yield this.get({ hash })).pipe(stream);
132
+ }));
133
+ });
134
+ }
81
135
  /**
82
136
  * @inheritdoc
83
137
  */
@@ -90,26 +144,63 @@ class FileBinary extends binary_1.Binary {
90
144
  return fs.createReadStream(path);
91
145
  });
92
146
  }
147
+ /**
148
+ * Get signed url to download an element
149
+ */
150
+ getSignedUrlFromMap(map, expires, context) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ return `${context
153
+ .getHttpContext()
154
+ .getAbsoluteUrl(this.parameters.expose.url + "/download/data/" + map.hash)}?token=${this.getToken(map.hash, "GET", expires)}&content-type=${map.mimetype}&content-disposition=attachment`;
155
+ });
156
+ }
157
+ /**
158
+ * Get storage path for a hash
159
+ * @param hash
160
+ * @param postfix
161
+ * @returns
162
+ */
93
163
  _getPath(hash, postfix = undefined) {
94
164
  if (postfix === undefined) {
95
165
  return this.parameters.folder + hash;
96
166
  }
97
167
  return this.parameters.folder + hash + "/" + postfix;
98
168
  }
99
- _touch(path) {
100
- if (!fs.existsSync(path)) {
101
- fs.closeSync(fs.openSync(path, "w"));
169
+ _touch(filePath, mode = 0o600) {
170
+ try {
171
+ const fd = fs.openSync(filePath, fs.constants.O_CREAT | fs.constants.O_EXCL | fs.constants.O_RDWR, mode);
172
+ fs.closeSync(fd);
173
+ }
174
+ catch (e) {
175
+ // file existed
102
176
  }
103
177
  }
178
+ /**
179
+ * Get token for action
180
+ *
181
+ * @param ctx
182
+ * @param expiresIn
183
+ */
184
+ getToken(hash, method, expiresIn = 60) {
185
+ return jwt.sign({ hash, method }, this.getWebda().getSecret(), {
186
+ expiresIn
187
+ });
188
+ }
189
+ /**
190
+ * Get put URL
191
+ * @param ctx
192
+ * @returns
193
+ */
104
194
  getPutUrl(ctx) {
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
195
+ return __awaiter(this, void 0, void 0, function* () {
196
+ let body = yield ctx.getRequestBody();
197
+ // Get a full URL, this method should be in a Route Object
198
+ // Add a JWT token for 60s
199
+ let token = this.getToken(body.hash, "PUT");
200
+ return ctx
201
+ .getHttpContext()
202
+ .getAbsoluteUrl(this.parameters.expose.url + "/upload/data/" + body.hash + `?token=${token}`);
109
203
  });
110
- return ctx
111
- .getHttpContext()
112
- .getAbsoluteUrl(this.parameters.expose.url + "/upload/data/" + ctx.getRequestBody().hash + `?token=${token}`);
113
204
  }
114
205
  /**
115
206
  * Will give you the redirect url
@@ -118,11 +209,11 @@ class FileBinary extends binary_1.Binary {
118
209
  */
119
210
  putRedirectUrl(ctx) {
120
211
  return __awaiter(this, void 0, void 0, function* () {
121
- let body = ctx.getRequestBody();
212
+ let body = yield ctx.getRequestBody();
122
213
  let uid = ctx.parameter("uid");
123
214
  let store = ctx.parameter("store");
124
215
  let property = ctx.parameter("property");
125
- let result = { url: this.getPutUrl(ctx), method: "PUT" };
216
+ let result = { url: yield this.getPutUrl(ctx), method: "PUT" };
126
217
  if (fs.existsSync(this._getPath(body.hash, store + "_" + uid))) {
127
218
  if (!fs.existsSync(this._getPath(body.hash, "data"))) {
128
219
  return result;
@@ -133,7 +224,7 @@ class FileBinary extends binary_1.Binary {
133
224
  // Get the target object to add the mapping
134
225
  let targetStore = this._verifyMapAndStore(ctx);
135
226
  let object = yield targetStore.get(uid, ctx);
136
- yield this.uploadSuccess(object, property, body, body.metadatas);
227
+ yield this.uploadSuccess(object, property, body);
137
228
  // Need to store the usage of the file
138
229
  if (!fs.existsSync(this._getPath(body.hash))) {
139
230
  fs.mkdirSync(this._getPath(body.hash));
@@ -157,8 +248,12 @@ class FileBinary extends binary_1.Binary {
157
248
  */
158
249
  storeBinary(ctx) {
159
250
  return __awaiter(this, void 0, void 0, function* () {
160
- let body = ctx.getRequestBody();
161
- var result = this._getHashes(body);
251
+ let body = yield ctx.getHttpContext().getRawBody(10 * 1024 * 1024);
252
+ var result = yield new binary_1.MemoryBinaryFile(Buffer.from(body), {
253
+ mimetype: ctx.getHttpContext().getUniqueHeader("content-type"),
254
+ name: "",
255
+ size: parseInt(ctx.getHttpContext().getUniqueHeader("content-length"))
256
+ }).getHashes();
162
257
  if (ctx.parameter("hash") !== result.hash) {
163
258
  throw 400;
164
259
  }
@@ -255,29 +350,35 @@ class FileBinary extends binary_1.Binary {
255
350
  });
256
351
  }
257
352
  _store(file, object) {
258
- fs.mkdirSync(this._getPath(file.hash));
259
- if (file.buffer) {
260
- fs.writeFileSync(this._getPath(file.hash, "data"), file.buffer);
261
- }
262
- // Store the challenge
263
- this._touch(this._getPath(file.hash, "_" + file.challenge));
264
- this._touch(this._getPath(file.hash, object.getStore().getName() + "_" + object.uuid));
353
+ return __awaiter(this, void 0, void 0, function* () {
354
+ fs.mkdirSync(this._getPath(file.hash));
355
+ yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
356
+ (yield file.get())
357
+ .pipe(fs.createWriteStream(this._getPath(file.hash, "data")))
358
+ .on("error", reject)
359
+ .on("finish", resolve);
360
+ }));
361
+ // Store the challenge
362
+ this._touch(this._getPath(file.hash, "_" + file.challenge));
363
+ this._touch(this._getPath(file.hash, object.getStore().getName() + "_" + object.getUuid()));
364
+ });
265
365
  }
266
366
  /**
267
367
  * @inheritdoc
268
368
  */
269
- store(object, property, file, metadatas) {
369
+ store(object, property, file) {
270
370
  return __awaiter(this, void 0, void 0, function* () {
271
- let storeName = object.getStore().getName();
272
- this._checkMap(storeName, property);
273
- this._prepareInput(file);
371
+ yield file.getHashes();
372
+ const storeName = object.getStore().getName();
373
+ const fileInfo = file.toBinaryFileInfo();
374
+ this.checkMap(storeName, property);
274
375
  if (fs.existsSync(this._getPath(file.hash))) {
275
376
  this._touch(this._getPath(file.hash, `${storeName}_${object.getUuid()}`));
276
- yield this.uploadSuccess(object, property, file, metadatas);
377
+ yield this.uploadSuccess(object, property, fileInfo);
277
378
  return;
278
379
  }
279
- this._store(file, object);
280
- yield this.uploadSuccess(object, property, file, metadatas);
380
+ yield this._store(file, object);
381
+ yield this.uploadSuccess(object, property, fileInfo);
281
382
  });
282
383
  }
283
384
  /**
@@ -288,15 +389,6 @@ class FileBinary extends binary_1.Binary {
288
389
  require("fs-extra").emptyDirSync(this.parameters.folder);
289
390
  });
290
391
  }
291
- static getModda() {
292
- return {
293
- uuid: "Webda/FileBinary",
294
- label: "File Storage",
295
- description: "Implements storage of files on the server filesystem",
296
- documentation: "https://raw.githubusercontent.com/loopingz/webda/master/readmes/Binary.md",
297
- logo: "images/icons/filestorage.png"
298
- };
299
- }
300
392
  }
301
393
  exports.FileBinary = FileBinary;
302
394
  //# sourceMappingURL=filebinary.js.map
@@ -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,12 +1,14 @@
1
- import { BinaryTest } from "./binary.spec";
2
- declare class FileBinaryTest extends BinaryTest {
1
+ import { CloudBinaryTest } from "./cloudbinary.spec";
2
+ declare class FileBinaryTest extends CloudBinaryTest {
3
3
  initMap(): void;
4
4
  _getFile(): Promise<void>;
5
5
  initRoutes(): void;
6
+ downloadSignedUrl(): Promise<void>;
6
7
  verifyMapAndStore(): Promise<void>;
7
8
  computeParameters(): void;
8
9
  challenge(): Promise<void>;
9
10
  badTokens(): Promise<void>;
10
11
  cleanNonExisting(): void;
12
+ faultyBinary(): void;
11
13
  }
12
14
  export { FileBinaryTest };
@@ -16,13 +16,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.FileBinaryTest = void 0;
19
- const binary_spec_1 = require("./binary.spec");
20
- const assert = require("assert");
21
19
  const mocha_1 = require("@testdeck/mocha");
22
- const fs_extra_1 = require("fs-extra");
20
+ const assert = require("assert");
23
21
  const fs = require("fs");
22
+ const fs_extra_1 = require("fs-extra");
24
23
  const jwt = require("jsonwebtoken");
25
- let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
24
+ const stream_1 = require("stream");
25
+ const binary_1 = require("./binary");
26
+ const cloudbinary_spec_1 = require("./cloudbinary.spec");
27
+ class FaultyBinaryFile extends binary_1.BinaryFile {
28
+ get() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const stream = new stream_1.Readable();
31
+ stream._read = () => {
32
+ stream.emit("error", new Error("Faulty stream"));
33
+ };
34
+ return stream;
35
+ });
36
+ }
37
+ }
38
+ let FileBinaryTest = class FileBinaryTest extends cloudbinary_spec_1.CloudBinaryTest {
26
39
  initMap() {
27
40
  let binary = this.getBinary();
28
41
  binary.initMap(undefined);
@@ -37,18 +50,17 @@ let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
37
50
  _getFile() {
38
51
  return __awaiter(this, void 0, void 0, function* () {
39
52
  let binary = this.getBinary();
40
- const files = [{}];
41
- // @ts-ignore
42
- assert.strictEqual(binary._getFile({ files }), files[0]);
43
53
  let ctx = yield this.newContext();
44
54
  ctx.getHttpContext().setBody("plop");
45
55
  ctx.getHttpContext().headers = { "content-type": "text/plain" };
46
- assert.deepStrictEqual(binary._getFile(ctx), {
47
- buffer: "plop",
56
+ assert.deepStrictEqual(yield binary._getFile(ctx), new binary_1.MemoryBinaryFile(Buffer.from("plop"), {
57
+ challenge: undefined,
58
+ hash: undefined,
59
+ metadata: {},
48
60
  mimetype: "text/plain",
49
- originalname: "",
61
+ name: "",
50
62
  size: 4
51
- });
63
+ }));
52
64
  });
53
65
  }
54
66
  initRoutes() {
@@ -59,6 +71,18 @@ let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
59
71
  binary._name = "Binary";
60
72
  binary.initRoutes();
61
73
  }
74
+ downloadSignedUrl() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ let binary = this.getBinary();
77
+ let { user1, ctx } = yield this.setupDefault(false);
78
+ let url = yield binary.getRedirectUrlFromObject(user1.images[0], ctx, 60);
79
+ assert.notStrictEqual(url, undefined);
80
+ yield this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length));
81
+ // c59d?token -> d59d?token
82
+ yield assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("c59d?token", "d59d?token")), /403/);
83
+ yield assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("eyJhbG", "ezJhbG")), /403/);
84
+ });
85
+ }
62
86
  verifyMapAndStore() {
63
87
  return __awaiter(this, void 0, void 0, function* () {
64
88
  let binary = this.getBinary();
@@ -88,7 +112,7 @@ let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
88
112
  return __awaiter(this, void 0, void 0, function* () {
89
113
  let binary = this.getBinary();
90
114
  let ctx = yield this.newContext();
91
- let { hash } = binary._getHashes(Buffer.from("PLOP"));
115
+ let { hash } = yield new binary_1.MemoryBinaryFile(Buffer.from("PLOP"), {}).getHashes();
92
116
  let token = "badt";
93
117
  ctx.setPathParameters({
94
118
  hash,
@@ -122,6 +146,14 @@ let FileBinaryTest = class FileBinaryTest extends binary_spec_1.BinaryTest {
122
146
  binary._cleanHash("plop");
123
147
  binary._cleanUsage("plop", "l");
124
148
  }
149
+ faultyBinary() {
150
+ const file = new FaultyBinaryFile({
151
+ mimetype: "text/plain",
152
+ name: "test.txt",
153
+ size: 10
154
+ });
155
+ assert.rejects(() => file.getHashes(), /Faulty stream/);
156
+ }
125
157
  };
126
158
  __decorate([
127
159
  mocha_1.test
@@ -132,6 +164,9 @@ __decorate([
132
164
  __decorate([
133
165
  mocha_1.test
134
166
  ], FileBinaryTest.prototype, "initRoutes", null);
167
+ __decorate([
168
+ mocha_1.test
169
+ ], FileBinaryTest.prototype, "downloadSignedUrl", null);
135
170
  __decorate([
136
171
  mocha_1.test
137
172
  ], FileBinaryTest.prototype, "verifyMapAndStore", null);
@@ -147,6 +182,9 @@ __decorate([
147
182
  __decorate([
148
183
  mocha_1.test
149
184
  ], FileBinaryTest.prototype, "cleanNonExisting", null);
185
+ __decorate([
186
+ mocha_1.test
187
+ ], FileBinaryTest.prototype, "faultyBinary", null);
150
188
  FileBinaryTest = __decorate([
151
189
  mocha_1.suite
152
190
  ], FileBinaryTest);