@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
@@ -15,14 +15,13 @@ 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 index_1 = require("../index");
20
- const context_1 = require("./context");
21
18
  const mocha_1 = require("@testdeck/mocha");
22
19
  const assert = require("assert");
23
20
  const cookie_1 = require("cookie");
24
- const cookie_2 = require("./cookie");
25
- const sinon = require("sinon");
21
+ const index_1 = require("../index");
22
+ const test_1 = require("../test");
23
+ const httpcontext_1 = require("./httpcontext");
24
+ const session_1 = require("./session");
26
25
  const SECRET = "Lp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5EN";
27
26
  let CookieTest = class CookieTest extends test_1.WebdaTest {
28
27
  before() {
@@ -31,187 +30,219 @@ let CookieTest = class CookieTest extends test_1.WebdaTest {
31
30
  });
32
31
  return __awaiter(this, void 0, void 0, function* () {
33
32
  yield _super.before.call(this);
34
- this._ctx = yield this.webda.newContext(new context_1.HttpContext("test.webda.io", "GET", "/"));
33
+ this._ctx = yield this.webda.newContext(new httpcontext_1.HttpContext("test.webda.io", "GET", "/"));
35
34
  this.webda.updateContextWithRoute(this._ctx);
36
35
  });
37
36
  }
38
- testNoChanges() {
39
- var cookie = new index_1.SecureCookie("test", {
40
- secret: SECRET
41
- }, this._ctx, {
42
- title: "TITLE",
43
- desc: "DESCRIPTION"
44
- }).getProxy();
45
- assert.strictEqual(cookie["title"], "TITLE");
46
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
47
- assert.strictEqual(cookie.needSave(), false);
37
+ /*
38
+ @test("No changes") testNoChanges() {
39
+ var cookie = new SecureCookie(
40
+ "test",
41
+ {
42
+ secretOrPublicKey: SECRET
43
+ },
44
+ this._ctx,
45
+ {
46
+ title: "TITLE",
47
+ desc: "DESCRIPTION"
48
+ }
49
+ ).getProxy();
50
+ assert.strictEqual(cookie["title"], "TITLE");
51
+ assert.strictEqual(cookie["desc"], "DESCRIPTION");
52
+ assert.strictEqual(cookie.needSave(), false);
48
53
  }
49
- testAddValue() {
50
- var cookie = new index_1.SecureCookie("test", {
51
- secret: SECRET
52
- }, this._ctx, {
53
- title: "TITLE",
54
- desc: "DESCRIPTION"
55
- }).getProxy();
56
- cookie.test = "PLOP";
57
- assert.strictEqual(cookie["title"], "TITLE");
58
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
59
- assert.strictEqual(cookie["test"], "PLOP");
60
- assert.strictEqual(cookie.needSave(), true);
54
+
55
+ @test("Add a value") testAddValue() {
56
+ var cookie = new SecureCookie(
57
+ "test",
58
+ {
59
+ secretOrPublicKey: SECRET
60
+ },
61
+ this._ctx,
62
+ {
63
+ title: "TITLE",
64
+ desc: "DESCRIPTION"
65
+ }
66
+ ).getProxy();
67
+ cookie.test = "PLOP";
68
+ assert.strictEqual(cookie["title"], "TITLE");
69
+ assert.strictEqual(cookie["desc"], "DESCRIPTION");
70
+ assert.strictEqual(cookie["test"], "PLOP");
71
+ assert.strictEqual(cookie.needSave(), true);
61
72
  }
62
- testChangeValue() {
63
- var cookie = new index_1.SecureCookie("test", {
64
- secret: SECRET
65
- }, this._ctx, {
66
- title: "TITLE",
67
- desc: "DESCRIPTION"
68
- }).getProxy();
69
- cookie.title = "TITLE2";
70
- assert.strictEqual(cookie["title"], "TITLE2");
71
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
72
- assert.strictEqual(cookie.needSave(), true);
73
+
74
+ @test("Change a value") testChangeValue() {
75
+ var cookie = new SecureCookie(
76
+ "test",
77
+ {
78
+ secretOrPublicKey: SECRET
79
+ },
80
+ this._ctx,
81
+ {
82
+ title: "TITLE",
83
+ desc: "DESCRIPTION"
84
+ }
85
+ ).getProxy();
86
+ cookie.title = "TITLE2";
87
+ assert.strictEqual(cookie["title"], "TITLE2");
88
+ assert.strictEqual(cookie["desc"], "DESCRIPTION");
89
+ assert.strictEqual(cookie.needSave(), true);
73
90
  }
74
- testDeleteValue() {
75
- var cookie = new index_1.SecureCookie("test", {
76
- secret: SECRET
77
- }, this._ctx, {
78
- title: "TITLE",
79
- desc: "DESCRIPTION"
80
- }).getProxy();
81
- cookie["title"] = undefined;
82
- assert.strictEqual(cookie["title"], undefined);
83
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
84
- assert.strictEqual(cookie.needSave(), true);
91
+
92
+ @test("Delete a value") testDeleteValue() {
93
+ var cookie = new SecureCookie(
94
+ "test",
95
+ {
96
+ secretOrPublicKey: SECRET
97
+ },
98
+ this._ctx,
99
+ {
100
+ title: "TITLE",
101
+ desc: "DESCRIPTION"
102
+ }
103
+ ).getProxy();
104
+ cookie["title"] = undefined;
105
+ assert.strictEqual(cookie["title"], undefined);
106
+ assert.strictEqual(cookie["desc"], "DESCRIPTION");
107
+ assert.strictEqual(cookie.needSave(), true);
85
108
  }
86
- testEmptyCookie() {
87
- var cookie = new index_1.SecureCookie("test", {
88
- secret: SECRET
89
- }, this._ctx, {});
90
- assert.strictEqual(cookie.needSave(), false);
109
+
110
+ @test("Empty cookie") testEmptyCookie() {
111
+ var cookie = new SecureCookie(
112
+ "test",
113
+ {
114
+ secretOrPublicKey: SECRET
115
+ },
116
+ this._ctx,
117
+ {}
118
+ );
119
+ assert.strictEqual(cookie.needSave(), false);
91
120
  }
92
- sessionCookie() {
93
- var cookie = new cookie_2.SessionCookie(this._ctx);
94
- assert.strictEqual(cookie.isLogged(), false);
95
- cookie.login("plop", "");
96
- assert.strictEqual(cookie.isLogged(), true);
121
+
122
+ @test("session cookie") sessionCookie() {
123
+ var cookie = new SessionCookie(this._ctx);
124
+ assert.strictEqual(cookie.isLogged(), false);
125
+ cookie.login("plop", "");
126
+ assert.strictEqual(cookie.isLogged(), true);
97
127
  }
98
- testCookieParameters() {
99
- var cookie = new index_1.SecureCookie("test", {
100
- secret: SECRET
101
- }, this._ctx, {}).getProxy();
102
- cookie["title"] = "plop";
103
- assert.strictEqual(cookie.needSave(), true);
104
- cookie.save(this._ctx);
105
- assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
106
- path: "/",
107
- domain: "test.webda.io",
108
- httpOnly: true,
109
- secure: false,
110
- maxAge: 604800,
111
- sameSite: "None"
112
- });
113
- cookie["title"] = "plop2";
114
- assert.strictEqual(cookie.needSave(), true);
115
- // @ts-ignore
116
- this._ctx.parameters.cookie = {
117
- maxAge: 3600
118
- };
119
- cookie.save(this._ctx);
120
- assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
121
- path: "/",
122
- domain: "test.webda.io",
123
- httpOnly: true,
124
- secure: false,
125
- maxAge: 3600,
126
- sameSite: "Lax"
127
- });
128
+
129
+ @test("Cookie parameters") async testCookieParameters() {
130
+ var cookie = new SecureCookie(
131
+ "test",
132
+ {
133
+ secretOrPublicKey: SECRET
134
+ },
135
+ this._ctx,
136
+ {}
137
+ ).getProxy();
138
+ cookie["title"] = "plop";
139
+ assert.strictEqual(cookie.needSave(), true);
140
+ await cookie.save(this._ctx);
141
+ assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
142
+ path: "/",
143
+ domain: "test.webda.io",
144
+ httpOnly: true,
145
+ secure: false,
146
+ maxAge: 604800,
147
+ sameSite: "None"
148
+ });
149
+ cookie["title"] = "plop2";
150
+ assert.strictEqual(cookie.needSave(), true);
151
+ // @ts-ignore
152
+ this._ctx.parameters.cookie = {
153
+ maxAge: 3600
154
+ };
155
+ await cookie.save(this._ctx);
156
+ assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
157
+ path: "/",
158
+ domain: "test.webda.io",
159
+ httpOnly: true,
160
+ secure: false,
161
+ maxAge: 3600,
162
+ sameSite: "Lax"
163
+ });
128
164
  }
165
+
166
+ @test("bad cookie")
129
167
  testBad() {
130
- this._ctx.getHttpContext().cookies = {
131
- testor: "badCookie"
132
- };
133
- let stub = sinon.stub(this._ctx, "log").callsFake(() => { });
134
- try {
135
- new index_1.SecureCookie("testor", {
136
- secret: "plop".repeat(64)
137
- }, this._ctx);
138
- assert.strictEqual(stub.getCall(0).args[0], "WARN");
139
- assert.ok(stub.getCall(0).args[1].match(/Ignoring bad cookie/));
140
- }
141
- finally {
142
- stub.restore();
143
- }
168
+ this._ctx.getHttpContext().cookies = {
169
+ testor: "badCookie"
170
+ };
171
+ let stub = sinon.stub(this._ctx, "log").callsFake(() => {});
172
+ try {
173
+ new SecureCookie(
174
+ "testor",
175
+ {
176
+ secretOrPublicKey: "plop".repeat(64)
177
+ },
178
+ this._ctx
179
+ );
180
+ assert.strictEqual(stub.getCall(0).args[0], "WARN");
181
+ assert.ok(stub.getCall(0).args[1].match(/Ignoring bad cookie/));
182
+ } finally {
183
+ stub.restore();
184
+ }
144
185
  }
145
- testEncryption() {
146
- var cookie = new index_1.SecureCookie("test", {
147
- secret: SECRET
148
- }, this._ctx, {
149
- title: "TITLE",
150
- desc: "DESCRIPTION"
151
- }).getProxy();
152
- assert.strictEqual(cookie["title"], "TITLE");
153
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
154
- // Force encryption
155
- cookie._changed = true;
156
- cookie.save(this._ctx);
157
- let cookies = this._ctx.getResponseCookies();
158
- let httpContext = this._ctx.getHttpContext();
159
- httpContext.cookies = httpContext.cookies || {};
160
- for (let i in cookies) {
161
- httpContext.cookies[i] = cookies[i].value;
186
+
187
+ @test("Normal enc/dec") async testEncryption() {
188
+ var cookie = new SecureCookie(
189
+ "test",
190
+ {
191
+ secretOrPublicKey: SECRET
192
+ },
193
+ this._ctx,
194
+ {
195
+ title: "TITLE",
196
+ desc: "DESCRIPTION"
162
197
  }
163
- var cookie2 = new index_1.SecureCookie("test", {
164
- secret: SECRET
165
- }, this._ctx);
166
- assert.strictEqual(cookie.title, cookie2.title);
167
- assert.strictEqual(cookie2.needSave(), false);
168
- assert.strictEqual(cookie.desc, cookie2.desc);
198
+ ).getProxy();
199
+ assert.strictEqual(cookie["title"], "TITLE");
200
+ assert.strictEqual(cookie["desc"], "DESCRIPTION");
201
+ // Force encryption
202
+ // @ts-ignore
203
+ cookie.changed = true;
204
+ await cookie.save(this._ctx);
205
+ let cookies = this._ctx.getResponseCookies();
206
+ let httpContext = this._ctx.getHttpContext();
207
+ httpContext.cookies = httpContext.cookies || {};
208
+ for (let i in cookies) {
209
+ httpContext.cookies[i] = cookies[i].value;
210
+ }
211
+ var cookie2 = new SecureCookie(
212
+ "test",
213
+ {
214
+ secretOrPublicKey: SECRET
215
+ },
216
+ this._ctx
217
+ );
218
+ assert.strictEqual(cookie.title, cookie2.title);
219
+ assert.strictEqual(cookie2.needSave(), false);
220
+ assert.strictEqual(cookie.desc, cookie2.desc);
169
221
  }
222
+
223
+
224
+ */
170
225
  testBadSecret() {
171
- var cookie = new index_1.SecureCookie("test", {
172
- secret: SECRET
173
- }, this._ctx, {
174
- title: "TITLE",
175
- desc: "DESCRIPTION"
176
- }).getProxy();
177
- assert.strictEqual(cookie["title"], "TITLE");
178
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
179
- cookie.save(this._ctx);
180
- var exception = false;
181
- try {
182
- new index_1.SecureCookie("test", {
183
- secret: SECRET + "2"
184
- }, this._ctx);
185
- }
186
- catch (err) {
187
- exception = true;
188
- }
189
- assert.strictEqual(exception, false);
190
- // TODO Add test for s_fid=3C43F8B5AAFA0B87-0087E6884E64AFFD; s_dslv=1462619672626; s_dslv_s=Less%20than%201%20day;
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ let ctx = yield this.newContext();
228
+ ctx.getHttpContext().cookies = {};
229
+ ctx.getHttpContext().cookies["test"] = "plop";
230
+ let session = yield index_1.SecureCookie.load("test", ctx, undefined);
231
+ assert.strictEqual(Object.keys(session).length, 0);
232
+ });
191
233
  }
192
- testBadSecretLength() {
193
- let exception = false;
194
- try {
195
- new index_1.SecureCookie("test", {
196
- secret: "BOUZOUF"
197
- }, this._ctx);
198
- }
199
- catch (err) {
200
- exception = true;
201
- }
202
- assert.strictEqual(exception, true);
234
+ cov() {
235
+ return __awaiter(this, void 0, void 0, function* () {
236
+ let session = yield index_1.SecureCookie.load("test", new index_1.Context(this.webda, undefined, undefined), undefined);
237
+ assert.strictEqual(Object.keys(session).length, 0);
238
+ });
203
239
  }
204
240
  testOversize() {
205
241
  return __awaiter(this, void 0, void 0, function* () {
206
- var cookie = new index_1.SecureCookie("test", {
207
- secret: SECRET
208
- }, this._ctx, {
209
- title: "TITLE",
210
- desc: "DESCRIPTION"
211
- }).getProxy();
212
- cookie.test = "PLOP".repeat(3000);
213
- assert.strictEqual(cookie.needSave(), true);
214
- cookie.save(this._ctx);
242
+ var cookie = new session_1.Session().getProxy();
243
+ cookie.identUsed = "PLOP".repeat(3000);
244
+ assert.strictEqual(cookie.isDirty(), true);
245
+ yield index_1.SecureCookie.save("test", this._ctx, cookie);
215
246
  assert.strictEqual(Object.keys(this._ctx.getResponseCookies()).length, 5);
216
247
  for (let i = 1; i < 5; i++) {
217
248
  const cookie = this._ctx.getResponseCookies()[`test${i > 1 ? i : ""}`];
@@ -223,44 +254,17 @@ let CookieTest = class CookieTest extends test_1.WebdaTest {
223
254
  Object.keys(cookies).forEach(k => {
224
255
  ctx.getHttpContext().cookies[k] = cookies[k].value;
225
256
  });
226
- cookie = new index_1.SecureCookie("test", { secret: SECRET }, ctx);
227
- assert.strictEqual(cookie.test, "PLOP".repeat(3000));
257
+ yield ctx.init();
258
+ assert.strictEqual(ctx.getSession().identUsed, "PLOP".repeat(3000));
228
259
  });
229
260
  }
230
261
  };
231
262
  __decorate([
232
- (0, mocha_1.test)("No changes")
233
- ], CookieTest.prototype, "testNoChanges", null);
234
- __decorate([
235
- (0, mocha_1.test)("Add a value")
236
- ], CookieTest.prototype, "testAddValue", null);
237
- __decorate([
238
- (0, mocha_1.test)("Change a value")
239
- ], CookieTest.prototype, "testChangeValue", null);
240
- __decorate([
241
- (0, mocha_1.test)("Delete a value")
242
- ], CookieTest.prototype, "testDeleteValue", null);
243
- __decorate([
244
- (0, mocha_1.test)("Empty cookie")
245
- ], CookieTest.prototype, "testEmptyCookie", null);
246
- __decorate([
247
- (0, mocha_1.test)("session cookie")
248
- ], CookieTest.prototype, "sessionCookie", null);
249
- __decorate([
250
- (0, mocha_1.test)("Cookie parameters")
251
- ], CookieTest.prototype, "testCookieParameters", null);
252
- __decorate([
253
- (0, mocha_1.test)("bad cookie")
254
- ], CookieTest.prototype, "testBad", null);
255
- __decorate([
256
- (0, mocha_1.test)("Normal enc/dec")
257
- ], CookieTest.prototype, "testEncryption", null);
258
- __decorate([
259
- (0, mocha_1.test)("Bad secret")
263
+ (0, mocha_1.test)("Bad cookie")
260
264
  ], CookieTest.prototype, "testBadSecret", null);
261
265
  __decorate([
262
- (0, mocha_1.test)("bad secret length")
263
- ], CookieTest.prototype, "testBadSecretLength", null);
266
+ mocha_1.test
267
+ ], CookieTest.prototype, "cov", null);
264
268
  __decorate([
265
269
  (0, mocha_1.test)("Oversize cookie")
266
270
  ], CookieTest.prototype, "testOversize", null);
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders } from "http";
3
+ import { Readable } from "stream";
4
+ export declare type HttpMethodType = "GET" | "OPTIONS" | "POST" | "PUT" | "PATCH" | "DELETE";
5
+ declare type HeadersRequest = IncomingHttpHeaders & {
6
+ [headerName: `x-${string}`]: string;
7
+ };
8
+ /**
9
+ * The HttpContext
10
+ *
11
+ * It has similar properties than URL
12
+ *
13
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/URL_API
14
+ *
15
+ * @category CoreFeatures
16
+ */
17
+ export declare class HttpContext {
18
+ /**
19
+ * Hostname
20
+ *
21
+ * @example test.webda.io
22
+ */
23
+ hostname: string;
24
+ /**
25
+ * HTTP Method
26
+ */
27
+ method: HttpMethodType;
28
+ /**
29
+ * Pathname
30
+ */
31
+ uri: string;
32
+ /**
33
+ * Get the client ip if available
34
+ */
35
+ clientIp: string;
36
+ path: string;
37
+ search: string;
38
+ protocol: "http:" | "https:";
39
+ port: string;
40
+ headers: HeadersRequest;
41
+ origin: string;
42
+ host: string;
43
+ body: Buffer | Readable | undefined;
44
+ cookies: any;
45
+ /**
46
+ * URI prefix in case it is exposed through something that prefix the uri
47
+ */
48
+ prefix: string;
49
+ constructor(hostname: string, method: HttpMethodType, uri: string, protocol?: "http" | "https", port?: number | string, headers?: {
50
+ [key: string]: string | string[];
51
+ });
52
+ /**
53
+ * Set the client ip
54
+ */
55
+ setClientIp(ip: string): this;
56
+ /**
57
+ * Get the client ip
58
+ */
59
+ getClientIp(): string;
60
+ /**
61
+ *
62
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/href
63
+ * @returns
64
+ */
65
+ getHref(): string;
66
+ /**
67
+ *
68
+ * @param prefix uri to not consider
69
+ */
70
+ setPrefix(prefix: string): void;
71
+ /**
72
+ * Return Uri without prefix
73
+ */
74
+ getRelativeUri(): string;
75
+ /**
76
+ * Get full URI
77
+ * @returns
78
+ */
79
+ getUrl(): string;
80
+ /**
81
+ * Get cookies
82
+ * @returns
83
+ */
84
+ getCookies(): any;
85
+ /**
86
+ * Get port number as string
87
+ *
88
+ * If http on port 80, or https on port 443 will return ""
89
+ */
90
+ getPort(): string;
91
+ /**
92
+ * Get the port number
93
+ */
94
+ getPortNumber(): number;
95
+ /**
96
+ * Return hostname and port
97
+ * @returns
98
+ */
99
+ getHost(): string;
100
+ /**
101
+ * Return protocol, hostname and port
102
+ * @returns
103
+ */
104
+ getOrigin(): string;
105
+ /**
106
+ * Get the hostname
107
+ * @returns
108
+ */
109
+ getHostName(): string;
110
+ /**
111
+ * Get HTTP Method used
112
+ * @returns
113
+ */
114
+ getMethod(): HttpMethodType;
115
+ /**
116
+ * Get protocol used
117
+ * @returns
118
+ */
119
+ getProtocol(): "http:" | "https:";
120
+ /**
121
+ * Get the raw body as string
122
+ *
123
+ * @param limit the size of readable request
124
+ * @param timeout the time to read the request
125
+ * @param encoding to analyze
126
+ * @returns
127
+ */
128
+ getRawBodyAsString(limit?: number, timeout?: number, encoding?: string): Promise<string>;
129
+ /**
130
+ * Get request body
131
+ *
132
+ * @param limit the size of readable request
133
+ * @param timeout the time to read the request
134
+ * @returns
135
+ */
136
+ getRawBody(limit?: number, timeout?: number): Promise<Buffer | undefined>;
137
+ /**
138
+ * Get the body as stream
139
+ */
140
+ getRawStream(): Readable;
141
+ /**
142
+ * Get HTTP Headers
143
+ * @returns
144
+ */
145
+ getHeaders(): Readonly<IncomingHttpHeaders>;
146
+ /**
147
+ * Get header value
148
+ * @param name
149
+ * @param def
150
+ * @returns
151
+ */
152
+ getHeader(name: string, def?: string): string | string[];
153
+ /**
154
+ * Return the last header found with that name
155
+ */
156
+ getUniqueHeader(name: string, def?: string): string;
157
+ /**
158
+ * Used for test
159
+ * @param body
160
+ */
161
+ setBody(body: Buffer | string | Readable | any): void;
162
+ /**
163
+ * Get request path name
164
+ *
165
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname
166
+ * @returns
167
+ */
168
+ getPathName(): string;
169
+ /**
170
+ * Get search section
171
+ *
172
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/search
173
+ * @returns
174
+ */
175
+ getSearch(): string;
176
+ /**
177
+ *
178
+ * @param uri to return absolute url from
179
+ */
180
+ getAbsoluteUrl(uri?: string): string;
181
+ }
182
+ export {};