@webda/core 2.0.0-beta.0 → 2.0.0-beta.3

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 (229) hide show
  1. package/lib/application.d.ts +40 -18
  2. package/lib/application.js +20 -6
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +12 -0
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +69 -19
  7. package/lib/core.js +90 -38
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +42 -35
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.js +5 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.js +3 -2
  15. package/lib/models/aclmodel.js.map +1 -1
  16. package/lib/models/aclmodel.spec.js +7 -4
  17. package/lib/models/aclmodel.spec.js.map +1 -1
  18. package/lib/models/coremodel.d.ts +82 -9
  19. package/lib/models/coremodel.js +49 -0
  20. package/lib/models/coremodel.js.map +1 -1
  21. package/lib/models/coremodel.spec.js +21 -2
  22. package/lib/models/coremodel.spec.js.map +1 -1
  23. package/lib/models/ident.d.ts +4 -2
  24. package/lib/models/ident.js.map +1 -1
  25. package/lib/models/ident.spec.js +1 -1
  26. package/lib/models/ident.spec.js.map +1 -1
  27. package/lib/models/ownermodel.d.ts +11 -1
  28. package/lib/models/ownermodel.js +16 -1
  29. package/lib/models/ownermodel.js.map +1 -1
  30. package/lib/models/ownermodel.spec.js +32 -13
  31. package/lib/models/ownermodel.spec.js.map +1 -1
  32. package/lib/models/rolemodel.d.ts +1 -1
  33. package/lib/models/rolemodel.spec.js +3 -1
  34. package/lib/models/rolemodel.spec.js.map +1 -1
  35. package/lib/models/user.d.ts +3 -3
  36. package/lib/models/user.js.map +1 -1
  37. package/lib/models/user.spec.js +1 -1
  38. package/lib/models/user.spec.js.map +1 -1
  39. package/lib/queues/filequeue.js +2 -2
  40. package/lib/queues/filequeue.js.map +1 -1
  41. package/lib/queues/filequeue.spec.js +2 -2
  42. package/lib/queues/filequeue.spec.js.map +1 -1
  43. package/lib/queues/memoryqueue.spec.js +1 -1
  44. package/lib/queues/memoryqueue.spec.js.map +1 -1
  45. package/lib/queues/queue.spec.js +1 -1
  46. package/lib/queues/queue.spec.js.map +1 -1
  47. package/lib/queues/queueservice.d.ts +2 -2
  48. package/lib/queues/queueservice.js +1 -0
  49. package/lib/queues/queueservice.js.map +1 -1
  50. package/lib/router.d.ts +6 -1
  51. package/lib/router.js +3 -12
  52. package/lib/router.js.map +1 -1
  53. package/lib/router.spec.js +5 -5
  54. package/lib/router.spec.js.map +1 -1
  55. package/lib/services/asyncevents.spec.js +2 -2
  56. package/lib/services/asyncevents.spec.js.map +1 -1
  57. package/lib/services/authentication.d.ts +33 -14
  58. package/lib/services/authentication.js +24 -36
  59. package/lib/services/authentication.js.map +1 -1
  60. package/lib/services/authentication.spec.js +16 -16
  61. package/lib/services/authentication.spec.js.map +1 -1
  62. package/lib/services/binary.d.ts +3 -3
  63. package/lib/services/binary.js +24 -17
  64. package/lib/services/binary.js.map +1 -1
  65. package/lib/services/binary.spec.d.ts +1 -1
  66. package/lib/services/binary.spec.js +5 -5
  67. package/lib/services/binary.spec.js.map +1 -1
  68. package/lib/services/cloudbinary.d.ts +2 -2
  69. package/lib/services/cloudbinary.js +3 -3
  70. package/lib/services/cloudbinary.js.map +1 -1
  71. package/lib/services/cloudbinary.spec.js +8 -1
  72. package/lib/services/cloudbinary.spec.js.map +1 -1
  73. package/lib/services/configuration.d.ts +5 -2
  74. package/lib/services/configuration.js +4 -2
  75. package/lib/services/configuration.js.map +1 -1
  76. package/lib/services/configuration.spec.js +2 -2
  77. package/lib/services/configuration.spec.js.map +1 -1
  78. package/lib/services/cron.d.ts +1 -1
  79. package/lib/services/cron.js +1 -1
  80. package/lib/services/cron.js.map +1 -1
  81. package/lib/services/cron.spec.js +3 -3
  82. package/lib/services/cron.spec.js.map +1 -1
  83. package/lib/services/cryptoservice.d.ts +253 -0
  84. package/lib/services/cryptoservice.js +346 -0
  85. package/lib/services/cryptoservice.js.map +1 -0
  86. package/lib/services/cryptoservice.spec.d.ts +1 -0
  87. package/lib/services/cryptoservice.spec.js +164 -0
  88. package/lib/services/cryptoservice.spec.js.map +1 -0
  89. package/lib/services/debugmailer.spec.js +1 -1
  90. package/lib/services/debugmailer.spec.js.map +1 -1
  91. package/lib/services/echo.d.ts +1 -1
  92. package/lib/services/echo.spec.js +3 -3
  93. package/lib/services/echo.spec.js.map +1 -1
  94. package/lib/services/filebinary.d.ts +16 -6
  95. package/lib/services/filebinary.js +45 -22
  96. package/lib/services/filebinary.js.map +1 -1
  97. package/lib/services/filebinary.spec.js +7 -11
  98. package/lib/services/filebinary.spec.js.map +1 -1
  99. package/lib/services/fileconfiguration.d.ts +1 -1
  100. package/lib/services/fileconfiguration.js +3 -2
  101. package/lib/services/fileconfiguration.js.map +1 -1
  102. package/lib/services/fileconfiguration.spec.js +2 -2
  103. package/lib/services/fileconfiguration.spec.js.map +1 -1
  104. package/lib/services/invitationservice.d.ts +28 -6
  105. package/lib/services/invitationservice.js +8 -5
  106. package/lib/services/invitationservice.js.map +1 -1
  107. package/lib/services/invitationservice.spec.js +4 -4
  108. package/lib/services/invitationservice.spec.js.map +1 -1
  109. package/lib/services/kubernetesconfiguration.d.ts +1 -1
  110. package/lib/services/kubernetesconfiguration.js +3 -2
  111. package/lib/services/kubernetesconfiguration.js.map +1 -1
  112. package/lib/services/kubernetesconfiguration.spec.js +4 -4
  113. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  114. package/lib/services/mailer.js.map +1 -1
  115. package/lib/services/mailer.spec.js +3 -3
  116. package/lib/services/mailer.spec.js.map +1 -1
  117. package/lib/services/notificationservice.d.ts +1 -1
  118. package/lib/services/notificationservice.js +2 -0
  119. package/lib/services/notificationservice.js.map +1 -1
  120. package/lib/services/notificationservice.spec.js +2 -2
  121. package/lib/services/notificationservice.spec.js.map +1 -1
  122. package/lib/services/oauth.d.ts +30 -4
  123. package/lib/services/oauth.js +19 -10
  124. package/lib/services/oauth.js.map +1 -1
  125. package/lib/services/oauth.spec.js +30 -23
  126. package/lib/services/oauth.spec.js.map +1 -1
  127. package/lib/services/proxy.d.ts +78 -0
  128. package/lib/services/proxy.js +139 -0
  129. package/lib/services/proxy.js.map +1 -0
  130. package/lib/services/proxy.spec.d.ts +1 -0
  131. package/lib/services/proxy.spec.js +78 -0
  132. package/lib/services/proxy.spec.js.map +1 -0
  133. package/lib/services/resource.d.ts +17 -0
  134. package/lib/services/resource.js +20 -6
  135. package/lib/services/resource.js.map +1 -1
  136. package/lib/services/resource.spec.js +4 -3
  137. package/lib/services/resource.spec.js.map +1 -1
  138. package/lib/services/service.d.ts +10 -7
  139. package/lib/services/service.js +7 -3
  140. package/lib/services/service.js.map +1 -1
  141. package/lib/services/service.spec.js +2 -2
  142. package/lib/services/service.spec.js.map +1 -1
  143. package/lib/services/version.d.ts +1 -1
  144. package/lib/services/version.spec.js +1 -1
  145. package/lib/services/version.spec.js.map +1 -1
  146. package/lib/stores/aggregator.d.ts +1 -1
  147. package/lib/stores/aggregator.js +1 -0
  148. package/lib/stores/aggregator.js.map +1 -1
  149. package/lib/stores/file.d.ts +9 -1
  150. package/lib/stores/file.js +7 -4
  151. package/lib/stores/file.js.map +1 -1
  152. package/lib/stores/file.spec.d.ts +3 -1
  153. package/lib/stores/file.spec.js +30 -7
  154. package/lib/stores/file.spec.js.map +1 -1
  155. package/lib/stores/mapper.d.ts +1 -1
  156. package/lib/stores/mapper.js +2 -0
  157. package/lib/stores/mapper.js.map +1 -1
  158. package/lib/stores/mapper.spec.js +1 -1
  159. package/lib/stores/mapper.spec.js.map +1 -1
  160. package/lib/stores/memory.d.ts +65 -4
  161. package/lib/stores/memory.js +85 -1
  162. package/lib/stores/memory.js.map +1 -1
  163. package/lib/stores/memory.spec.d.ts +2 -1
  164. package/lib/stores/memory.spec.js +47 -4
  165. package/lib/stores/memory.spec.js.map +1 -1
  166. package/lib/stores/store.d.ts +27 -5
  167. package/lib/stores/store.js +107 -22
  168. package/lib/stores/store.js.map +1 -1
  169. package/lib/stores/store.spec.d.ts +4 -3
  170. package/lib/stores/store.spec.js +37 -14
  171. package/lib/stores/store.spec.js.map +1 -1
  172. package/lib/stores/webdaql/WebdaQLLexer.js +2 -2
  173. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  174. package/lib/stores/webdaql/WebdaQLParserLexer.js +2 -2
  175. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  176. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +1 -25
  177. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +1 -1
  178. package/lib/stores/webdaql/WebdaQLParserParser.js +2 -2
  179. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  180. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +1 -25
  181. package/lib/stores/webdaql/query.d.ts +3 -3
  182. package/lib/stores/webdaql/query.js +4 -4
  183. package/lib/stores/webdaql/query.js.map +1 -1
  184. package/lib/stores/webdaql/query.spec.js +1 -1
  185. package/lib/stores/webdaql/query.spec.js.map +1 -1
  186. package/lib/test.d.ts +6 -8
  187. package/lib/test.js +12 -18
  188. package/lib/test.js.map +1 -1
  189. package/lib/unpackedapplication.js +24 -7
  190. package/lib/unpackedapplication.js.map +1 -1
  191. package/lib/utils/abstractdeployer.spec.js +1 -1
  192. package/lib/utils/abstractdeployer.spec.js.map +1 -1
  193. package/lib/utils/context.d.ts +61 -73
  194. package/lib/utils/context.js +81 -159
  195. package/lib/utils/context.js.map +1 -1
  196. package/lib/utils/context.spec.js +79 -40
  197. package/lib/utils/context.spec.js.map +1 -1
  198. package/lib/utils/cookie.d.ts +65 -44
  199. package/lib/utils/cookie.js +75 -145
  200. package/lib/utils/cookie.js.map +1 -1
  201. package/lib/utils/cookie.spec.js +203 -199
  202. package/lib/utils/cookie.spec.js.map +1 -1
  203. package/lib/utils/httpcontext.d.ts +182 -0
  204. package/lib/utils/httpcontext.js +325 -0
  205. package/lib/utils/httpcontext.js.map +1 -0
  206. package/lib/utils/httpcontext.spec.d.ts +5 -0
  207. package/lib/utils/httpcontext.spec.js +90 -0
  208. package/lib/utils/httpcontext.spec.js.map +1 -0
  209. package/lib/utils/logger.d.ts +2 -2
  210. package/lib/utils/logger.js +1 -1
  211. package/lib/utils/logger.js.map +1 -1
  212. package/lib/utils/logger.spec.js.map +1 -1
  213. package/lib/utils/serializers.js +1 -1
  214. package/lib/utils/serializers.js.map +1 -1
  215. package/lib/utils/serializers.spec.js +3 -3
  216. package/lib/utils/serializers.spec.js.map +1 -1
  217. package/lib/utils/session.d.ts +120 -0
  218. package/lib/utils/session.js +177 -0
  219. package/lib/utils/session.js.map +1 -0
  220. package/lib/utils/session.spec.d.ts +1 -0
  221. package/lib/utils/session.spec.js +79 -0
  222. package/lib/utils/session.spec.js.map +1 -0
  223. package/lib/utils/waiter.js.map +1 -1
  224. package/lib/utils/waiter.spec.js +2 -2
  225. package/lib/utils/waiter.spec.js.map +1 -1
  226. package/package.json +10 -7
  227. package/test/config.json +4 -2
  228. package/test/models/task.js +0 -1
  229. package/webda.module.json +3 -2
@@ -9,115 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Context = exports.HttpContext = exports.ClientInfo = void 0;
12
+ exports.Context = void 0;
13
13
  const acceptLanguage = require("accept-language");
14
- const cookie_1 = require("cookie");
15
14
  const events_1 = require("events");
16
15
  const sanitizeHtml = require("sanitize-html");
17
- const stream_1 = require("stream");
16
+ const stream_buffers_1 = require("stream-buffers");
18
17
  const serializers_1 = require("./serializers");
19
- /**
20
- * @category CoreFeatures
21
- */
22
- class ClientInfo extends Map {
23
- }
24
- exports.ClientInfo = ClientInfo;
25
- /**
26
- * @category CoreFeatures
27
- */
28
- class HttpContext {
29
- constructor(host, method, uri, protocol = "http", port = 80, body = {}, headers = {}, files = []) {
30
- /**
31
- * URI prefix in case it is exposed through something that prefix the uri
32
- */
33
- this.prefix = "";
34
- this.files = files;
35
- this.body = body;
36
- this.host = host;
37
- this.method = method;
38
- this.uri = uri;
39
- this.protocol = protocol;
40
- this.port = port;
41
- this.headers = headers;
42
- for (let i in this.headers) {
43
- if (i.toLowerCase() === "cookie") {
44
- this.cookies = (0, cookie_1.parse)(this.headers[i]);
45
- }
46
- if (i.toLowerCase() !== i) {
47
- this.headers[i.toLowerCase()] = this.headers[i];
48
- }
49
- }
50
- let portUrl = "";
51
- if (port !== undefined && ((port !== 80 && protocol === "http") || (port !== 443 && protocol === "https"))) {
52
- portUrl = ":" + port;
53
- }
54
- this.root = this.protocol + "://" + this.host + portUrl;
55
- this.origin = this.host + portUrl;
56
- }
57
- /**
58
- *
59
- * @param prefix uri to not consider
60
- */
61
- setPrefix(prefix) {
62
- if (prefix.endsWith("/")) {
63
- prefix = prefix.substring(0, prefix.length - 1);
64
- }
65
- this.prefix = prefix;
66
- }
67
- /**
68
- * Return Uri without prefix
69
- */
70
- getRelativeUri() {
71
- return this.uri.substring(this.prefix.length);
72
- }
73
- getUrl() {
74
- return this.uri;
75
- }
76
- getCookies() {
77
- return this.cookies;
78
- }
79
- getPort() {
80
- return this.port;
81
- }
82
- getHost() {
83
- return this.host;
84
- }
85
- getMethod() {
86
- return this.method;
87
- }
88
- getProtocol() {
89
- return this.protocol;
90
- }
91
- getBody() {
92
- return this.body;
93
- }
94
- getHeaders() {
95
- return this.headers;
96
- }
97
- getHeader(name, def) {
98
- return this.headers[name.toLowerCase()] || def;
99
- }
100
- setBody(body) {
101
- this.body = body;
102
- }
103
- /**
104
- *
105
- * @param uri to return absolute url from
106
- */
107
- getAbsoluteUrl(uri = this.uri) {
108
- if (uri.match(/^\w{1,10}:\/\//)) {
109
- return uri;
110
- }
111
- if (!uri.startsWith("/")) {
112
- uri = "/" + uri;
113
- }
114
- if ((this.port !== 80 && this.protocol === "http") || (this.port !== 443 && this.protocol === "https")) {
115
- return `${this.protocol}://${this.host}:${this.port}${uri}`;
116
- }
117
- return `${this.protocol}://${this.host}${uri}`;
118
- }
119
- }
120
- exports.HttpContext = HttpContext;
121
18
  /**
122
19
  * @category CoreFeatures
123
20
  */
@@ -139,24 +36,20 @@ class Context extends events_1.EventEmitter {
139
36
  this._pathParams = {};
140
37
  this._serviceParams = {};
141
38
  this.global = false;
142
- this.clientInfo = new ClientInfo();
143
39
  this.extensions = {
144
40
  http: httpContext
145
41
  };
146
42
  this._webda = webda;
147
43
  this._promises = [];
148
44
  this._outputHeaders = new Map();
149
- this._flushHeaders = false;
45
+ this.headersFlushed = false;
150
46
  this._body = undefined;
151
47
  this.statusCode = 204;
152
48
  this._stream = stream;
153
- this._buffered = false;
154
49
  this.parameters = {};
155
50
  this.headers = new Map();
156
51
  if (stream === undefined) {
157
- this._stream = new stream_1.Writable();
158
- this._stream._body = [];
159
- this._stream._write = this._write;
52
+ this.createStream();
160
53
  }
161
54
  this.processParameters();
162
55
  if (httpContext) {
@@ -178,20 +71,11 @@ class Context extends events_1.EventEmitter {
178
71
  ctx.global = true;
179
72
  Context.__globalContext = ctx;
180
73
  }
181
- isGlobal() {
182
- return this.global;
183
- }
184
74
  /**
185
- * @private
186
- * Used in case of Buffer response ( like Lambda )
75
+ * Return if context is global
187
76
  */
188
- _write(chunk, _enc, next) {
189
- if (this._body === undefined) {
190
- this._body = [];
191
- }
192
- this._body.push(chunk);
193
- next();
194
- return true;
77
+ isGlobal() {
78
+ return this.global;
195
79
  }
196
80
  /**
197
81
  * Set current http context
@@ -201,8 +85,12 @@ class Context extends events_1.EventEmitter {
201
85
  this.extensions["http"] = httpContext;
202
86
  this.reinit();
203
87
  }
88
+ /**
89
+ * Remove samitized body
90
+ */
204
91
  reinit() {
205
92
  this._sanitized = undefined;
93
+ this.createStream();
206
94
  }
207
95
  /**
208
96
  * Get current http context
@@ -245,11 +133,12 @@ class Context extends events_1.EventEmitter {
245
133
  this.parameters = Object.assign({}, this._serviceParams);
246
134
  this.parameters = Object.assign(this.parameters, this._pathParams);
247
135
  }
136
+ /**
137
+ * Get linked session
138
+ * @returns
139
+ */
248
140
  getSession() {
249
- if (this.session) {
250
- return this.session.getProxy();
251
- }
252
- return undefined;
141
+ return this.session;
253
142
  }
254
143
  getServiceParameters() {
255
144
  return this._serviceParams;
@@ -265,9 +154,15 @@ class Context extends events_1.EventEmitter {
265
154
  this._pathParams = params;
266
155
  this.processParameters();
267
156
  }
157
+ /**
158
+ * Remove everything that was about to be sent
159
+ */
268
160
  resetResponse() {
269
161
  this._body = undefined;
270
162
  this._outputHeaders.clear();
163
+ if (this._stream instanceof stream_buffers_1.WritableStreamBuffer) {
164
+ this.createStream();
165
+ }
271
166
  }
272
167
  /**
273
168
  * Write data to the client
@@ -303,6 +198,9 @@ class Context extends events_1.EventEmitter {
303
198
  * @param {String} value
304
199
  */
305
200
  setHeader(header, value) {
201
+ if (this.headersFlushed) {
202
+ throw new Error("Headers have been sent already");
203
+ }
306
204
  this._outputHeaders[header] = value;
307
205
  }
308
206
  /**
@@ -380,12 +278,15 @@ class Context extends events_1.EventEmitter {
380
278
  }
381
279
  this._ended = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
382
280
  this.emit("end");
281
+ if (this.getExtension("http")) {
282
+ yield this._webda.getService("SessionManager").save(this, this.session);
283
+ }
383
284
  yield Promise.all(this._promises);
384
- if (this._buffered && this._stream._body !== undefined) {
385
- this._body = Buffer.concat(this._stream._body);
285
+ if (this._stream instanceof stream_buffers_1.WritableStreamBuffer && this._stream.size()) {
286
+ this._body = this._stream.getContents();
386
287
  this.statusCode = 200;
387
288
  }
388
- if (!this._flushHeaders) {
289
+ if (!this.headersFlushed) {
389
290
  this._webda.flushHeaders(this);
390
291
  }
391
292
  this._webda.flush(this);
@@ -399,27 +300,39 @@ class Context extends events_1.EventEmitter {
399
300
  allowedTags: [],
400
301
  allowedAttributes: {}
401
302
  }) {
402
- if (this._sanitized) {
403
- return this._sanitized;
404
- }
405
- let recursiveSanitize = (obj, options = undefined) => {
406
- if (!obj) {
407
- return obj;
303
+ return __awaiter(this, void 0, void 0, function* () {
304
+ if (this._sanitized) {
305
+ return this._sanitized;
408
306
  }
409
- if (typeof obj === "string") {
410
- return sanitizeHtml(obj, options);
307
+ let recursiveSanitize = (obj, options = undefined) => {
308
+ if (typeof obj === "string") {
309
+ return sanitizeHtml(obj, options);
310
+ }
311
+ if (typeof obj === "object") {
312
+ Object.keys(obj).forEach(key => {
313
+ obj[key] = recursiveSanitize(obj[key], options);
314
+ });
315
+ }
316
+ return obj;
317
+ };
318
+ try {
319
+ this._sanitized = recursiveSanitize(JSON.parse(yield this.getHttpContext().getRawBodyAsString(this.getWebda().getGlobalParams().requestLimit, this.getWebda().getGlobalParams().requestTimeout)), sanitizedOptions);
411
320
  }
412
- if (typeof obj === "object") {
413
- Object.keys(obj).forEach(key => {
414
- obj[key] = recursiveSanitize(obj[key], options);
415
- });
321
+ catch (err) {
322
+ this.log("ERROR", err, `Body: '${yield this.getHttpContext().getRawBodyAsString()}'`);
323
+ return undefined;
416
324
  }
417
- return obj;
418
- };
419
- this._sanitized = recursiveSanitize(this.getHttpContext().getBody(), sanitizedOptions) || {};
420
- return this._sanitized;
325
+ return this._sanitized;
326
+ });
421
327
  }
328
+ /**
329
+ * Get request body
330
+ * @returns
331
+ */
422
332
  getResponseBody() {
333
+ if (!this._body && this._stream instanceof stream_buffers_1.WritableStreamBuffer) {
334
+ return this._stream.getContents();
335
+ }
423
336
  return this._body;
424
337
  }
425
338
  /**
@@ -471,7 +384,7 @@ class Context extends events_1.EventEmitter {
471
384
  */
472
385
  getCurrentUserId() {
473
386
  if (this.session) {
474
- return this.session.getUserId();
387
+ return this.session.userId;
475
388
  }
476
389
  return undefined;
477
390
  }
@@ -504,9 +417,9 @@ class Context extends events_1.EventEmitter {
504
417
  getLocale() {
505
418
  let locales = this._webda.getLocales();
506
419
  acceptLanguage.languages(locales);
507
- let headers = this.getHttpContext().getHeaders();
508
- if (headers["Accept-Language"]) {
509
- return acceptLanguage.get(headers["Accept-Language"]);
420
+ let header = this.getHttpContext().getUniqueHeader("accept-language");
421
+ if (header) {
422
+ return acceptLanguage.get(header);
510
423
  }
511
424
  return locales[0];
512
425
  }
@@ -547,26 +460,39 @@ class Context extends events_1.EventEmitter {
547
460
  * @returns
548
461
  */
549
462
  hasFlushedHeaders() {
550
- return this._flushHeaders;
463
+ return this.headersFlushed;
551
464
  }
552
465
  /**
553
466
  * Set flushed header status
554
467
  * @param status
555
468
  */
556
469
  setFlushedHeaders(status = true) {
557
- this._flushHeaders = status;
470
+ this.headersFlushed = status;
558
471
  }
472
+ createStream() {
473
+ this._stream = new stream_buffers_1.WritableStreamBuffer({
474
+ initialSize: 100 * 1024,
475
+ incrementAmount: 100 * 1024
476
+ });
477
+ }
478
+ /**
479
+ * Create a new session
480
+ * @returns
481
+ */
559
482
  newSession() {
560
- this.session = new (this._webda.getModel(this._webda.parameter("sessionModel") || "Webda/SessionCookie"))(this);
483
+ this.session = new (this._webda.getModel(this._webda.parameter("sessionModel") || "Webda/Session"))(this);
561
484
  return this.session;
562
485
  }
563
486
  init() {
564
487
  return __awaiter(this, void 0, void 0, function* () {
565
488
  this._stream.on("pipe", () => {
566
- this._buffered = true;
567
489
  this._webda.flushHeaders(this);
490
+ this.headersFlushed = true;
568
491
  });
569
- yield this.session.init();
492
+ if (this.getExtension("http")) {
493
+ this.session = (yield this._webda.getService("SessionManager").load(this)).getProxy();
494
+ }
495
+ return this;
570
496
  });
571
497
  }
572
498
  emitError(err) {
@@ -574,8 +500,4 @@ class Context extends events_1.EventEmitter {
574
500
  }
575
501
  }
576
502
  exports.Context = Context;
577
- class StoreSessionContext extends Context {
578
- }
579
- class CookieSessionContext extends Context {
580
- }
581
503
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
15
15
  });
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const assert = require("assert");
19
18
  const mocha_1 = require("@testdeck/mocha");
19
+ const assert = require("assert");
20
+ const stream_1 = require("stream");
20
21
  const test_1 = require("../test");
21
22
  const context_1 = require("./context");
22
- const cookie_1 = require("./cookie");
23
+ const httpcontext_1 = require("./httpcontext");
23
24
  let ContextTest = class ContextTest extends test_1.WebdaTest {
24
25
  before() {
25
26
  const _super = Object.create(null, {
@@ -27,7 +28,35 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
27
28
  });
28
29
  return __awaiter(this, void 0, void 0, function* () {
29
30
  yield _super.before.call(this);
30
- this.ctx = new context_1.Context(this.webda, new context_1.HttpContext("test.webda.io", "GET", "/"));
31
+ this.ctx = new context_1.Context(this.webda, new httpcontext_1.HttpContext("test.webda.io", "GET", "/"));
32
+ });
33
+ }
34
+ urlObject() {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ let urlObject = new URL("https://test.webda.io/mypath/is/long?search=1&test=2");
37
+ let ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/mypath/is/long?search=1&test=2", "https", 443);
38
+ assert.strictEqual(ctx.getHost(), urlObject.host);
39
+ assert.strictEqual(ctx.getHostName(), urlObject.hostname);
40
+ assert.strictEqual(ctx.getPathName(), urlObject.pathname);
41
+ assert.strictEqual(ctx.getHref(), urlObject.href);
42
+ assert.strictEqual(ctx.getProtocol(), urlObject.protocol);
43
+ assert.strictEqual(ctx.getPort(), urlObject.port);
44
+ assert.strictEqual(ctx.getPortNumber(), 443);
45
+ assert.strictEqual(ctx.getSearch(), urlObject.search);
46
+ assert.strictEqual(ctx.getOrigin(), urlObject.origin);
47
+ urlObject = new URL("http://test.webda.io:8800/mypath");
48
+ ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/mypath", "http", 8800);
49
+ assert.strictEqual(ctx.getHost(), urlObject.host);
50
+ assert.strictEqual(ctx.getHostName(), urlObject.hostname);
51
+ assert.strictEqual(ctx.getPathName(), urlObject.pathname);
52
+ assert.strictEqual(ctx.getHref(), urlObject.href);
53
+ assert.strictEqual(ctx.getProtocol(), urlObject.protocol);
54
+ assert.strictEqual(ctx.getPort(), urlObject.port);
55
+ assert.strictEqual(ctx.getPortNumber(), 8800);
56
+ assert.strictEqual(ctx.getSearch(), urlObject.search);
57
+ assert.strictEqual(ctx.getOrigin(), urlObject.origin);
58
+ // Hash is not sent to server so no need in HttpContext (@see https://developer.mozilla.org/en-US/docs/Web/API/URL/hash)
59
+ // Username and password would endup in a header no in the url
31
60
  });
32
61
  }
33
62
  cov() {
@@ -37,11 +66,12 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
37
66
  this.ctx.getRoute();
38
67
  assert.notStrictEqual(this.ctx.getService("Users"), undefined);
39
68
  assert.notStrictEqual(this.ctx.getService("Users"), undefined);
40
- this.ctx = new context_1.Context(this.webda, new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
69
+ this.ctx = new context_1.Context(this.webda, new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
41
70
  this.ctx.setPathParameters({ id: "plop" });
42
71
  this.ctx.setServiceParameters({ id: "service" });
43
72
  assert.strictEqual(this.ctx.getServiceParameters().id, "service");
44
73
  assert.strictEqual(this.ctx.getPathParameters().id, "plop");
74
+ assert.strictEqual(this.ctx.getHttpContext().getPortNumber(), 80);
45
75
  this.ctx.setExtension("mine", "plop");
46
76
  assert.strictEqual(this.ctx.getExtension("mine"), "plop");
47
77
  // @ts-ignore
@@ -78,20 +108,19 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
78
108
  this.ctx._ended = true;
79
109
  yield this.ctx.end();
80
110
  this.ctx.getHttpContext().setBody(undefined);
81
- this.ctx.getRequestBody();
111
+ assert.strictEqual(yield this.ctx.getRequestBody(), undefined);
112
+ this.ctx.getHttpContext().setBody("");
113
+ assert.strictEqual(yield this.ctx.getRequestBody(), undefined);
82
114
  // @ts-ignore
83
115
  this.ctx._ended = false;
84
116
  // @ts-ignore
85
- this.ctx._buffered = true;
86
- this.ctx._stream = {
87
- _body: []
88
- };
89
117
  this.ctx.statusCode = 204;
118
+ this.ctx.getStream().write("plop");
90
119
  yield this.ctx.end();
91
120
  assert.strictEqual(this.ctx.statusCode, 200);
92
121
  // @ts-ignore
93
122
  this.ctx._body = undefined;
94
- this.ctx._write("ppop", "", () => { });
123
+ this.ctx.getStream().write("ppop", () => { });
95
124
  assert.strictEqual(this.ctx.hasFlushedHeaders(), false);
96
125
  this.ctx.setFlushedHeaders();
97
126
  assert.strictEqual(this.ctx.hasFlushedHeaders(), true);
@@ -99,6 +128,25 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
99
128
  assert.strictEqual(this.ctx.hasFlushedHeaders(), false);
100
129
  });
101
130
  }
131
+ pipe() {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ this.ctx.statusCode = 204;
134
+ yield this.ctx.init();
135
+ let stream = stream_1.Readable.from(Buffer.from("Plop"));
136
+ this.ctx.setHeader("x-plop", "1");
137
+ let prom = new Promise((resolve, reject) => {
138
+ stream.on("close", resolve);
139
+ stream.on("error", reject);
140
+ });
141
+ stream.pipe(this.ctx.getStream());
142
+ yield prom;
143
+ assert.throws(() => this.ctx.setHeader("x-plop", "2"), /Headers have been sent already/);
144
+ yield this.ctx.end();
145
+ assert.throws(() => this.ctx.setHeader("x-plop", "3"), /Headers have been sent already/);
146
+ assert.strictEqual(this.ctx.statusCode, 200);
147
+ assert.strictEqual(this.ctx.getResponseBody().toString(), "Plop");
148
+ });
149
+ }
102
150
  getRequest() {
103
151
  // Need to finish this
104
152
  let req = this.ctx.getRequest();
@@ -106,7 +154,7 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
106
154
  req.setTimeout(1, () => { });
107
155
  }
108
156
  getAbsoluteUrl() {
109
- let ctx = new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 80, undefined, {
157
+ let ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 80, {
110
158
  cookie: "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1"
111
159
  });
112
160
  assert.strictEqual(ctx.getAbsoluteUrl("/test"), "http://test.webda.io/test");
@@ -115,13 +163,13 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
115
163
  csrftoken: "u32t4o3tb3gg43",
116
164
  _gat: "1"
117
165
  });
118
- ctx = new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "https", 80);
166
+ ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "https", 80);
119
167
  assert.strictEqual(ctx.getAbsoluteUrl(), "https://test.webda.io:80/uritemplate/plop");
120
- ctx = new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 443);
168
+ ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 443);
121
169
  assert.strictEqual(ctx.getAbsoluteUrl("/test"), "http://test.webda.io:443/test");
122
- ctx = new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 18080);
170
+ ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "http", 18080);
123
171
  assert.strictEqual(ctx.getAbsoluteUrl(), "http://test.webda.io:18080/uritemplate/plop");
124
- ctx = new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "https", 443);
172
+ ctx = new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop", "https", 443);
125
173
  assert.strictEqual(ctx.getAbsoluteUrl("/test"), "https://test.webda.io/test");
126
174
  assert.strictEqual(ctx.getAbsoluteUrl("ftp://test"), "ftp://test");
127
175
  assert.strictEqual(ctx.getAbsoluteUrl("test/ftp://test"), "https://test.webda.io/test/ftp://test");
@@ -130,11 +178,11 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
130
178
  assert.strictEqual(ctx.prefix, "/plop");
131
179
  }
132
180
  expressCompatibility() {
133
- this.ctx = new context_1.Context(this.webda, new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
181
+ this.ctx = new context_1.Context(this.webda, new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
134
182
  assert.strictEqual(this.ctx.statusCode, 204);
135
183
  assert.strictEqual(this.ctx.status(403), this.ctx);
136
184
  assert.strictEqual(this.ctx.statusCode, 403);
137
- this.ctx = new context_1.Context(this.webda, new context_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
185
+ this.ctx = new context_1.Context(this.webda, new httpcontext_1.HttpContext("test.webda.io", "GET", "/uritemplate/plop"));
138
186
  assert.strictEqual(this.ctx.statusCode, 204);
139
187
  assert.strictEqual(this.ctx.json({ plop: "test" }), this.ctx);
140
188
  assert.strictEqual(this.ctx.getResponseBody(), '{"plop":"test"}');
@@ -169,10 +217,6 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
169
217
  this.ctx.write(400);
170
218
  assert.strictEqual(this.ctx.getResponseBody(), 400);
171
219
  // @ts-ignore
172
- this.ctx.session = new cookie_1.SecureCookie("test", {
173
- secret: "Lp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5EN"
174
- }, this.ctx);
175
- // @ts-ignore
176
220
  Object.observe = (obj, callback) => {
177
221
  callback([
178
222
  {
@@ -180,14 +224,14 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
180
224
  }
181
225
  ]);
182
226
  // @ts-ignore
183
- assert.strictEqual(this.ctx.session._changed, false);
227
+ assert.strictEqual(this.ctx.session.changed, false);
184
228
  callback([
185
229
  {
186
230
  name: "zzz"
187
231
  }
188
232
  ]);
189
233
  // @ts-ignore
190
- assert.strictEqual(this.ctx.session._changed, true);
234
+ assert.strictEqual(this.ctx.session.changed, true);
191
235
  };
192
236
  this.ctx.getSession();
193
237
  // @ts-ignore
@@ -197,21 +241,30 @@ let ContextTest = class ContextTest extends test_1.WebdaTest {
197
241
  assert.strictEqual(this.ctx.getLocale(), "es-ES");
198
242
  }
199
243
  approxLocale() {
200
- this.ctx.getHttpContext().getHeaders()["Accept-Language"] = "en-US;q=0.6,en;q=0.4,es;q=0.2";
244
+ // @ts-ignore
245
+ this.ctx.getHttpContext().getHeaders()["accept-language"] = "en-US;q=0.6,en;q=0.4,es;q=0.2";
201
246
  assert.strictEqual(this.ctx.getLocale(), "en");
202
247
  }
203
248
  exactLocale() {
204
- this.ctx.getHttpContext().getHeaders()["Accept-Language"] = "fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2";
249
+ // @ts-ignore
250
+ this.ctx.getHttpContext().getHeaders()["accept-language"] = "fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2";
205
251
  assert.strictEqual(this.ctx.getLocale(), "fr-FR");
206
252
  }
207
253
  fallbackLocale() {
208
- this.ctx.getHttpContext().getHeaders()["Accept-Language"] = "zn-CH,zn;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2";
254
+ // @ts-ignore
255
+ this.ctx.getHttpContext().getHeaders()["accept-language"] = "zn-CH,zn;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2";
209
256
  assert.strictEqual(this.ctx.getLocale(), "en");
210
257
  }
211
258
  };
259
+ __decorate([
260
+ mocha_1.test
261
+ ], ContextTest.prototype, "urlObject", null);
212
262
  __decorate([
213
263
  mocha_1.test
214
264
  ], ContextTest.prototype, "cov", null);
265
+ __decorate([
266
+ mocha_1.test
267
+ ], ContextTest.prototype, "pipe", null);
215
268
  __decorate([
216
269
  mocha_1.test
217
270
  ], ContextTest.prototype, "getRequest", null);
@@ -242,18 +295,4 @@ __decorate([
242
295
  ContextTest = __decorate([
243
296
  mocha_1.suite
244
297
  ], ContextTest);
245
- let HttpContextTest = class HttpContextTest {
246
- lowerCaseHeader() {
247
- let ctx = new context_1.HttpContext("test.webda.io", "GET", "/test", "http", 80, {}, { "X-Test": "weBda" });
248
- assert.strictEqual(ctx.getHeader("X-Test"), "weBda");
249
- assert.strictEqual(ctx.getHeader("X-Test"), ctx.getHeader("x-test"));
250
- assert.strictEqual(ctx.getPort(), 80);
251
- }
252
- };
253
- __decorate([
254
- mocha_1.test
255
- ], HttpContextTest.prototype, "lowerCaseHeader", null);
256
- HttpContextTest = __decorate([
257
- mocha_1.suite
258
- ], HttpContextTest);
259
298
  //# sourceMappingURL=context.spec.js.map