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

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 +355 -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 +150 -215
  7. package/lib/core.js +188 -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 +86 -24
  20. package/lib/models/coremodel.js +85 -36
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +21 -2
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/ident.d.ts +7 -5
  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 +18 -4
  30. package/lib/models/ownermodel.js +24 -4
  31. package/lib/models/ownermodel.js.map +1 -1
  32. package/lib/models/ownermodel.spec.js +18 -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 +7 -6
  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 +52 -2
  59. package/lib/router.js +80 -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 +45 -16
  106. package/lib/services/filebinary.js +147 -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 +11 -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 +25 -25
  147. package/lib/services/service.js +21 -25
  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 +5 -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 +142 -29
  177. package/lib/stores/store.js +451 -82
  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 +52 -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 +182 -0
  222. package/lib/utils/httpcontext.js +325 -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 +90 -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
@@ -16,15 +16,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.BinaryTest = exports.ImageUser = void 0;
19
- const test_1 = require("../test");
19
+ const mocha_1 = require("@testdeck/mocha");
20
20
  const assert = require("assert");
21
+ const axios_1 = require("axios");
22
+ const events_1 = require("events");
21
23
  const fs = require("fs");
22
- const __1 = require("..");
23
- const mocha_1 = require("@testdeck/mocha");
24
24
  const sinon = require("sinon");
25
+ const __1 = require("..");
26
+ const test_1 = require("../test");
25
27
  const binary_1 = require("./binary");
26
- const axios_1 = require("axios");
27
- const events_1 = require("events");
28
28
  class ImageUser extends __1.User {
29
29
  }
30
30
  exports.ImageUser = ImageUser;
@@ -88,7 +88,7 @@ class BinaryTest extends test_1.WebdaTest {
88
88
  let map = this.getMap();
89
89
  let exposePath = this.getExposePath();
90
90
  var eventFired = 0;
91
- var events = ["Binary.Get", "Binary.Update", "Binary.Create", "Binary.Delete"];
91
+ var events = ["Binary.Get", "Binary.Create", "Binary.Delete"];
92
92
  for (let evt in events) {
93
93
  binary.on(events[evt], function () {
94
94
  eventFired++;
@@ -100,34 +100,37 @@ class BinaryTest extends test_1.WebdaTest {
100
100
  var user2;
101
101
  var user;
102
102
  var ctx;
103
+ this.log("DEBUG", "Initializing users");
103
104
  user1 = yield userStore.save({
104
105
  test: "plop"
105
106
  });
106
107
  user2 = yield userStore.save({
107
108
  test: "plop"
108
109
  });
109
- yield binary.store(user1, map, {
110
- path: this.getTestFile()
111
- }, {});
110
+ this.log("DEBUG", "Store a local file");
111
+ yield binary.store(user1, map, new binary_1.LocalBinaryFile(this.getTestFile()), {});
112
112
  user1 = yield userStore.get(user1.uuid);
113
113
  assert.notStrictEqual(user1[map], undefined);
114
114
  assert.strictEqual(user1[map].length, 1);
115
115
  hash = user1[map][0].hash;
116
+ this.log("DEBUG", "Get usage count");
116
117
  let value = yield binary.getUsageCount(hash);
117
118
  assert.strictEqual(value, 1);
118
- yield binary.store(user2, map, {
119
- path: this.getTestFile()
120
- }, {});
119
+ this.log("DEBUG", "Store same local file on separate object");
120
+ yield binary.store(user2, map, new binary_1.LocalBinaryFile(this.getTestFile()), {});
121
121
  user = yield userStore.get(user2.uuid);
122
122
  assert.notStrictEqual(user[map], undefined);
123
123
  assert.strictEqual(user[map].length, 1);
124
124
  assert.strictEqual(user[map][0].constructor.name, "BinaryMap");
125
125
  hash = user[map][0].hash;
126
+ this.log("DEBUG", "Verify usage count");
126
127
  value = yield binary.getUsageCount(hash);
127
128
  assert.strictEqual(value, 2);
129
+ this.log("DEBUG", "Delete one attached object");
128
130
  yield binary.delete(user, map, 0);
129
131
  user = yield userStore.get(user2.uuid);
130
132
  assert.strictEqual(user[map].length, 0);
133
+ this.log("DEBUG", "Verify usage count decreased");
131
134
  value = yield binary.getUsageCount(hash);
132
135
  assert.strictEqual(value, 1);
133
136
  // Try to get images on user1 as user2
@@ -137,18 +140,22 @@ class BinaryTest extends test_1.WebdaTest {
137
140
  });
138
141
  ctx.session.userId = user2.uuid;
139
142
  let executor = this.getExecutor(ctx, "test.webda.io", "GET", exposePath + "/users/" + user1.uuid + "/" + map + "/0");
143
+ this.log("DEBUG", "Verify permission check on HTTP GET");
140
144
  yield assert.rejects(executor.execute(ctx), res => res == 403);
141
145
  ctx.session.userId = user1.uuid;
146
+ this.log("DEBUG", "Verify valid permission check on HTTP GET");
142
147
  executor = this.getExecutor(ctx, "test.webda.io", "GET", exposePath + "/users/" + user1.uuid + "/" + map + "/0");
143
148
  yield executor.execute(ctx);
144
149
  // We dont check for result as FileBinary will return datas and S3 a redirect
145
150
  if (fs.existsSync("./downloadTo.tmp")) {
146
151
  fs.unlinkSync("./downloadTo.tmp");
147
152
  }
153
+ this.log("DEBUG", "BinaryMap downloadTo");
148
154
  yield binary.downloadTo(user1[map][0], "./downloadTo.tmp");
149
155
  // Check the result is the same
150
156
  assert.strictEqual(fs.readFileSync("./downloadTo.tmp").toString(), fs.readFileSync(this.getTestFile()).toString());
151
157
  fs.unlinkSync("./downloadTo.tmp");
158
+ this.log("DEBUG", "BinaryMap downloadTo from CoreModel");
152
159
  yield user1[map][0].downloadTo("./downloadTo.tmp");
153
160
  assert.strictEqual(fs.readFileSync("./downloadTo.tmp").toString(), fs.readFileSync(this.getTestFile()).toString());
154
161
  fs.unlinkSync("./downloadTo.tmp");
@@ -162,6 +169,7 @@ class BinaryTest extends test_1.WebdaTest {
162
169
  });
163
170
  let stub2;
164
171
  try {
172
+ this.log("DEBUG", "BinaryMap downloadTo with I/O issues");
165
173
  yield assert.rejects(() => binary.downloadTo(user1[map][0], "./downloadTo.tmp"));
166
174
  assert.ok(!fs.existsSync("./downloadTo.tmp"));
167
175
  stub2 = sinon.stub(fs, "unlinkSync").callsFake(() => {
@@ -175,10 +183,12 @@ class BinaryTest extends test_1.WebdaTest {
175
183
  stub2.restore();
176
184
  }
177
185
  }
186
+ this.log("DEBUG", "Check get stream");
178
187
  let buf1 = yield __1.Binary.streamToBuffer(yield user1[map][0].get());
179
188
  // cov
180
189
  let buf2 = yield __1.Binary.streamToBuffer(yield binary._get(user1[map][0]));
181
190
  assert.strictEqual(buf1.toString(), buf2.toString());
191
+ this.log("DEBUG", "Delete CoreModel and ensure usage count");
182
192
  yield userStore.delete(user1.uuid);
183
193
  value = yield binary.getUsageCount(hash);
184
194
  assert.strictEqual(value, 0);
@@ -191,9 +201,7 @@ class BinaryTest extends test_1.WebdaTest {
191
201
  let user1 = yield userStore.save({
192
202
  test: "plop"
193
203
  });
194
- yield assert.rejects(() => binary.store(user1, "images2", {
195
- path: this.getTestFile()
196
- }, {}), err => true);
204
+ yield assert.rejects(() => binary.store(user1, "images2", new binary_1.LocalBinaryFile(this.getTestFile()), {}), err => true);
197
205
  });
198
206
  }
199
207
  update() {
@@ -207,9 +215,7 @@ class BinaryTest extends test_1.WebdaTest {
207
215
  user1 = yield userStore.save({
208
216
  test: "plop"
209
217
  });
210
- yield binary.store(user1, map, {
211
- path: this.getTestFile()
212
- }, {});
218
+ yield binary.store(user1, map, new binary_1.LocalBinaryFile(this.getTestFile()), {});
213
219
  user = yield userStore.get(user1.uuid);
214
220
  assert.notStrictEqual(user[map], undefined);
215
221
  assert.strictEqual(user[map].length, 1);
@@ -219,7 +225,8 @@ class BinaryTest extends test_1.WebdaTest {
219
225
  }
220
226
  checkMap() {
221
227
  let binary = this.getBinary();
222
- assert.throws(() => binary._checkMap("plop", "pouf"), /Unknown mapping/);
228
+ // @ts-ignore
229
+ assert.throws(() => binary.checkMap("plop", "pouf"), /Unknown mapping/);
223
230
  }
224
231
  httpCreate() {
225
232
  return __awaiter(this, void 0, void 0, function* () {
@@ -244,7 +251,7 @@ class BinaryTest extends test_1.WebdaTest {
244
251
  }
245
252
  httpDelete() {
246
253
  return __awaiter(this, void 0, void 0, function* () {
247
- let { binary, user1, ctx } = yield this.setupDefault(false);
254
+ let { user1, ctx } = yield this.setupDefault(false);
248
255
  let executor = this.getExecutor(ctx, "test.webda.io", "DELETE", `/binary/users/${user1.getUuid()}/images/0/myhash`, {});
249
256
  yield assert.rejects(() => executor.execute(ctx), /403/, "DELETE binary w/o permission");
250
257
  // Now login
@@ -277,8 +284,8 @@ class BinaryTest extends test_1.WebdaTest {
277
284
  }
278
285
  };
279
286
  });
280
- let executor = this.getExecutor(ctx, "test.webda.io", "GET", `/binary/users/${user1.getUuid()}/images/0`, {});
281
- yield assert.rejects(() => executor.execute(ctx), /500/, "GET binary with I/O");
287
+ yield this.execute(ctx, "test.webda.io", "GET", `/binary/users/${user1.getUuid()}/images/0`, {});
288
+ yield assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", ctx.getResponseHeaders().Location.substring("http://test.webda.io".length)), /500/, "GET binary with I/O");
282
289
  stub.restore();
283
290
  });
284
291
  }
@@ -300,13 +307,40 @@ class BinaryTest extends test_1.WebdaTest {
300
307
  yield assert.rejects(() => executor.execute(ctx), /404/);
301
308
  });
302
309
  }
310
+ httpMetadata() {
311
+ var _a;
312
+ var _b;
313
+ return __awaiter(this, void 0, void 0, function* () {
314
+ let { binary, user1, ctx } = yield this.setupDefault(false);
315
+ let executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/users/${user1.getUuid()}/images/0/${user1.images[0].hash}`, {}); // If not logged in
316
+ yield assert.rejects(() => executor.execute(ctx), /403/, "PUT metadata w/o permission");
317
+ executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/users/unknown/images/0/${user1.images[0].hash}`, {});
318
+ yield assert.rejects(() => executor.execute(ctx), /404/, "GET binary on unknown object");
319
+ // Login
320
+ ctx.getSession().login(user1.getUuid(), "fake");
321
+ executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/users/${user1.getUuid()}/images/0/${user1.images[0].hash}`, {
322
+ "my-metadata": "updated",
323
+ "my-other-metadata": true
324
+ });
325
+ yield executor.execute(ctx);
326
+ let user = yield ctx.getCurrentUser(true);
327
+ (_a = (_b = user.images[0]).metadata) !== null && _a !== void 0 ? _a : (_b.metadata = {});
328
+ assert.strictEqual(user.images[0].metadata["my-metadata"], "updated");
329
+ assert.strictEqual(user.images[0].metadata["my-other-metadata"], true);
330
+ executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/users/${user1.getUuid()}/images/0/${user1.images[0].hash}`, {
331
+ "my-metadata": "updated".repeat(4096),
332
+ "my-other-metadata": true
333
+ });
334
+ yield assert.rejects(() => executor.execute(ctx), /400/, "PUT metadata with big content should fail");
335
+ });
336
+ }
303
337
  getNotFound() {
304
338
  return __awaiter(this, void 0, void 0, function* () {
305
339
  yield assert.rejects(() =>
306
340
  // @ts-ignore
307
341
  this.getBinary().get({
308
342
  hash: "none",
309
- mime: "",
343
+ mimetype: "",
310
344
  size: 10
311
345
  }), binary_1.BinaryNotFoundError);
312
346
  });
@@ -318,7 +352,7 @@ class BinaryTest extends test_1.WebdaTest {
318
352
  let user1 = yield userStore.save({
319
353
  test: "plop"
320
354
  });
321
- yield binary.store(user1, "images", { path: this.getTestFile() });
355
+ yield binary.store(user1, "images", new binary_1.LocalBinaryFile(this.getTestFile()));
322
356
  yield user1.refresh();
323
357
  let ctx = yield this.newContext();
324
358
  if (withLogin) {
@@ -331,14 +365,14 @@ class BinaryTest extends test_1.WebdaTest {
331
365
  testChallenge(remoteCheckHash = true) {
332
366
  return __awaiter(this, void 0, void 0, function* () {
333
367
  let { userStore, binary, user1, ctx } = yield this.setupDefault(false);
334
- let { hash, challenge } = binary._getHashes(Buffer.from("PLOP"));
335
- let metadatas = {
368
+ let { hash, challenge } = yield new binary_1.MemoryBinaryFile(Buffer.from("PLOP"), {}).getHashes();
369
+ let metadata = {
336
370
  plop: "test"
337
371
  };
338
372
  let executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/upload/users/${user1.getUuid()}/images`, {
339
373
  hash,
340
374
  challenge,
341
- metadatas
375
+ metadata
342
376
  });
343
377
  yield assert.rejects(() => executor.execute(ctx), /403/);
344
378
  ctx.getSession().login(user1.getUuid(), "fake");
@@ -373,7 +407,7 @@ class BinaryTest extends test_1.WebdaTest {
373
407
  executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/upload/users/${user1.getUuid()}/images`, {
374
408
  hash,
375
409
  challenge,
376
- metadatas
410
+ metadata
377
411
  });
378
412
  yield executor.execute(ctx);
379
413
  info = JSON.parse(ctx.getResponseBody());
@@ -385,7 +419,7 @@ class BinaryTest extends test_1.WebdaTest {
385
419
  executor = this.getExecutor(ctx, "test.webda.io", "PUT", `/binary/upload/users/${user2.getUuid()}/images`, {
386
420
  hash,
387
421
  challenge,
388
- metadatas
422
+ metadata
389
423
  });
390
424
  yield executor.execute(ctx);
391
425
  info = JSON.parse(ctx.getResponseBody());
@@ -434,6 +468,9 @@ __decorate([
434
468
  __decorate([
435
469
  mocha_1.test
436
470
  ], BinaryTest.prototype, "httpGet", null);
471
+ __decorate([
472
+ mocha_1.test
473
+ ], BinaryTest.prototype, "httpMetadata", null);
437
474
  __decorate([
438
475
  mocha_1.test
439
476
  ], BinaryTest.prototype, "getNotFound", null);
@@ -458,13 +495,47 @@ let BinaryAbstractTest = class BinaryAbstractTest extends test_1.WebdaTest {
458
495
  ctx.setPathParameters({
459
496
  property: "images",
460
497
  store: "users",
461
- uid: "notfound"
498
+ uid: "notfound",
499
+ index: 0
462
500
  });
463
501
  ctx.getHttpContext().setBody({
464
502
  hash: "p",
465
503
  challenge: "z"
466
504
  });
467
505
  yield assert.rejects(() => binary.httpChallenge(ctx), /404/);
506
+ let stubs = [];
507
+ try {
508
+ let model = {};
509
+ stubs.push(sinon.stub(binary, "_verifyMapAndStore").callsFake(() => {
510
+ return {
511
+ get: (uuid, ctx) => __awaiter(this, void 0, void 0, function* () {
512
+ return model;
513
+ })
514
+ };
515
+ }));
516
+ yield assert.rejects(() => binary.httpRoute(ctx), /404/);
517
+ model = {
518
+ images: [
519
+ {
520
+ size: 10
521
+ }
522
+ ],
523
+ canAct: () => __awaiter(this, void 0, void 0, function* () { return true; })
524
+ };
525
+ stubs.push(
526
+ // @ts-ignore
527
+ sinon.stub(binary, "get").callsFake(() => __awaiter(this, void 0, void 0, function* () {
528
+ return {
529
+ pipe: stream => {
530
+ stream.emit("error", new Error("I/O"));
531
+ }
532
+ };
533
+ })));
534
+ yield assert.rejects(() => binary.httpRoute(ctx), /500/);
535
+ }
536
+ finally {
537
+ stubs.forEach(stub => stub.restore());
538
+ }
468
539
  });
469
540
  }
470
541
  streamToBufferError() {
@@ -1 +1 @@
1
- {"version":3,"file":"binary.spec.js","sourceRoot":"","sources":["../../src/services/binary.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary.spec.js","sourceRoot":"","sources":["../../src/services/binary.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { Context } from "..";
2
+ import { CoreModel } from "../models/coremodel";
3
+ import { Binary, BinaryMap, BinaryParameters } from "./binary";
4
+ /**
5
+ * Default binary parameters
6
+ */
7
+ export declare class CloudBinaryParameters extends BinaryParameters {
8
+ prefix?: string;
9
+ constructor(params: any, service: Binary);
10
+ }
11
+ /**
12
+ * CloudBinary abstraction
13
+ */
14
+ export declare abstract class CloudBinary<T extends CloudBinaryParameters = CloudBinaryParameters> extends Binary<T> {
15
+ /**
16
+ * @inheritdoc
17
+ */
18
+ _initRoutes(): void;
19
+ /**
20
+ * Redirect to the temporary link to S3 object
21
+ * or return it if returnInfo=true
22
+ *
23
+ * @param ctx of the request
24
+ * @param returnInfo
25
+ */
26
+ getRedirectUrl(ctx: any, returnInfo?: boolean): Promise<void>;
27
+ /**
28
+ * @override
29
+ */
30
+ loadParameters(params: any): any;
31
+ /**
32
+ * Return the temporary link to S3 object
33
+ * @param ctx
34
+ * @returns
35
+ */
36
+ getRedirectUrlInfo(ctx: any): Promise<void>;
37
+ /**
38
+ * Get a UrlFromObject
39
+ *
40
+ */
41
+ getRedirectUrlFromObject(binaryMap: any, context: any, expires?: number): Promise<string>;
42
+ /**
43
+ * Return the S3 key
44
+ * @param hash
45
+ * @param postfix
46
+ * @returns
47
+ */
48
+ _getKey(hash: string, postfix?: string): string;
49
+ /**
50
+ * @inheritdoc
51
+ */
52
+ delete(object: CoreModel, property: string, index: number): Promise<void>;
53
+ /**
54
+ * @inheritdoc
55
+ */
56
+ cascadeDelete(info: BinaryMap, uuid: string): Promise<void>;
57
+ /**
58
+ * Clean usage for a hash
59
+ */
60
+ abstract _cleanUsage(hash: string, uuid: string): Promise<void>;
61
+ /**
62
+ * Retrieve one signed URL to download the file in parameter
63
+ * @param {GetSignedUrlParams} params
64
+ * @returns {string} URL in order to download the file
65
+ */
66
+ abstract getSignedUrlFromMap(map: BinaryMap, expires: number, context: Context): Promise<string>;
67
+ }
@@ -0,0 +1,178 @@
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CloudBinary = exports.CloudBinaryParameters = void 0;
13
+ const path_1 = require("path");
14
+ const binary_1 = require("./binary");
15
+ /**
16
+ * Default binary parameters
17
+ */
18
+ class CloudBinaryParameters extends binary_1.BinaryParameters {
19
+ constructor(params, service) {
20
+ var _a;
21
+ super(params, service);
22
+ (_a = this.prefix) !== null && _a !== void 0 ? _a : (this.prefix = "");
23
+ }
24
+ }
25
+ exports.CloudBinaryParameters = CloudBinaryParameters;
26
+ /**
27
+ * CloudBinary abstraction
28
+ */
29
+ class CloudBinary extends binary_1.Binary {
30
+ /**
31
+ * @inheritdoc
32
+ */
33
+ _initRoutes() {
34
+ super._initRoutes();
35
+ // Will use getRedirectUrl so override the default route
36
+ var url = this.parameters.expose.url + "/{store}/{uid}/{property}/{index}";
37
+ let name = this.getOperationName();
38
+ if (!this.parameters.expose.restrict.get) {
39
+ this.addRoute(url, ["GET"], this.getRedirectUrl, {
40
+ get: {
41
+ description: "Download a binary linked to an object",
42
+ summary: "Download a binary",
43
+ operationId: `get${name}Binary`,
44
+ responses: {
45
+ "302": {
46
+ description: "Redirect to download url"
47
+ },
48
+ "403": {
49
+ description: "You don't have permissions"
50
+ },
51
+ "404": {
52
+ description: "Object does not exist or attachment does not exist"
53
+ },
54
+ "412": {
55
+ description: "Provided hash does not match"
56
+ }
57
+ }
58
+ }
59
+ }, false, true);
60
+ url = this.parameters.expose.url + "/{store}/{uid}/{property}/{index}/url";
61
+ name = this._name === "Binary" ? "" : this._name;
62
+ this.addRoute(url, ["GET"], this.getRedirectUrlInfo, {
63
+ get: {
64
+ description: "Get a redirect url to binary linked to an object",
65
+ summary: "Get redirect url of a binary",
66
+ operationId: `get${name}BinaryURL`,
67
+ responses: {
68
+ "200": {
69
+ description: "Containing the URL"
70
+ },
71
+ "403": {
72
+ description: "You don't have permissions"
73
+ },
74
+ "404": {
75
+ description: "Object does not exist or attachment does not exist"
76
+ },
77
+ "412": {
78
+ description: "Provided hash does not match"
79
+ }
80
+ }
81
+ }
82
+ });
83
+ }
84
+ }
85
+ /**
86
+ * Redirect to the temporary link to S3 object
87
+ * or return it if returnInfo=true
88
+ *
89
+ * @param ctx of the request
90
+ * @param returnInfo
91
+ */
92
+ getRedirectUrl(ctx, returnInfo = false) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ let uid = ctx.parameter("uid");
95
+ let index = ctx.parameter("index");
96
+ let property = ctx.parameter("property");
97
+ let targetStore = this._verifyMapAndStore(ctx);
98
+ let object = yield targetStore.get(uid);
99
+ if (!object || !Array.isArray(object[property]) || object[property].length <= index) {
100
+ throw 404;
101
+ }
102
+ yield object.canAct(ctx, "get_binary");
103
+ let url = yield this.getRedirectUrlFromObject(object[property][index], ctx);
104
+ if (returnInfo) {
105
+ ctx.write({ Location: url, Map: object[property][index] });
106
+ }
107
+ else {
108
+ ctx.writeHead(302, {
109
+ Location: url
110
+ });
111
+ }
112
+ });
113
+ }
114
+ /**
115
+ * @override
116
+ */
117
+ loadParameters(params) {
118
+ return new CloudBinaryParameters(params, this);
119
+ }
120
+ /**
121
+ * Return the temporary link to S3 object
122
+ * @param ctx
123
+ * @returns
124
+ */
125
+ getRedirectUrlInfo(ctx) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ return this.getRedirectUrl(ctx, true);
128
+ });
129
+ }
130
+ /**
131
+ * Get a UrlFromObject
132
+ *
133
+ */
134
+ getRedirectUrlFromObject(binaryMap, context, expires = 30) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ yield this.emitSync("Binary.Get", {
137
+ object: binaryMap,
138
+ service: this,
139
+ context: context
140
+ });
141
+ return this.getSignedUrlFromMap(binaryMap, expires, context);
142
+ });
143
+ }
144
+ /**
145
+ * Return the S3 key
146
+ * @param hash
147
+ * @param postfix
148
+ * @returns
149
+ */
150
+ _getKey(hash, postfix = "data") {
151
+ return (0, path_1.join)(`${this.parameters.prefix}`, hash, postfix);
152
+ }
153
+ /**
154
+ * @inheritdoc
155
+ */
156
+ delete(object, property, index) {
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ let hash = object[property][index].hash;
159
+ yield this.deleteSuccess(object, property, index);
160
+ yield this._cleanUsage(hash, object.getUuid());
161
+ });
162
+ }
163
+ /**
164
+ * @inheritdoc
165
+ */
166
+ cascadeDelete(info, uuid) {
167
+ return __awaiter(this, void 0, void 0, function* () {
168
+ try {
169
+ yield this._cleanUsage(info.hash, uuid);
170
+ }
171
+ catch (err) {
172
+ this._webda.log("WARN", "Cascade delete failed", err);
173
+ }
174
+ });
175
+ }
176
+ }
177
+ exports.CloudBinary = CloudBinary;
178
+ //# sourceMappingURL=cloudbinary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudbinary.js","sourceRoot":"","sources":["../../src/services/cloudbinary.ts"],"names":[],"mappings":"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"}