@webda/core 2.0.0-beta.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/lib/application.d.ts +5 -21
  2. package/lib/application.js +71 -84
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +121 -140
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +44 -45
  7. package/lib/core.js +239 -320
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +326 -391
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +49 -45
  12. package/lib/index.js +54 -67
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +2 -2
  15. package/lib/models/aclmodel.js +63 -90
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +128 -151
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +39 -17
  20. package/lib/models/coremodel.js +160 -117
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +143 -107
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/deployment.js +1 -2
  25. package/lib/models/ident.d.ts +3 -3
  26. package/lib/models/ident.js +4 -9
  27. package/lib/models/ident.js.map +1 -1
  28. package/lib/models/ident.spec.js +9 -11
  29. package/lib/models/ident.spec.js.map +1 -1
  30. package/lib/models/ownermodel.d.ts +2 -2
  31. package/lib/models/ownermodel.js +39 -62
  32. package/lib/models/ownermodel.js.map +1 -1
  33. package/lib/models/ownermodel.spec.js +126 -166
  34. package/lib/models/ownermodel.spec.js.map +1 -1
  35. package/lib/models/rolemodel.d.ts +2 -2
  36. package/lib/models/rolemodel.js +24 -40
  37. package/lib/models/rolemodel.js.map +1 -1
  38. package/lib/models/rolemodel.spec.js +44 -61
  39. package/lib/models/rolemodel.spec.js.map +1 -1
  40. package/lib/models/user.d.ts +9 -9
  41. package/lib/models/user.js +3 -8
  42. package/lib/models/user.js.map +1 -1
  43. package/lib/models/user.spec.js +14 -16
  44. package/lib/models/user.spec.js.map +1 -1
  45. package/lib/queues/filequeue.d.ts +2 -2
  46. package/lib/queues/filequeue.js +72 -93
  47. package/lib/queues/filequeue.js.map +1 -1
  48. package/lib/queues/filequeue.spec.js +53 -70
  49. package/lib/queues/filequeue.spec.js.map +1 -1
  50. package/lib/queues/memoryqueue.d.ts +2 -2
  51. package/lib/queues/memoryqueue.js +37 -61
  52. package/lib/queues/memoryqueue.js.map +1 -1
  53. package/lib/queues/memoryqueue.spec.js +142 -165
  54. package/lib/queues/memoryqueue.spec.js.map +1 -1
  55. package/lib/queues/pubsubservice.d.ts +2 -2
  56. package/lib/queues/pubsubservice.js +3 -7
  57. package/lib/queues/pubsubservice.js.map +1 -1
  58. package/lib/queues/queue.spec.d.ts +1 -1
  59. package/lib/queues/queue.spec.js +42 -56
  60. package/lib/queues/queue.spec.js.map +1 -1
  61. package/lib/queues/queueservice.d.ts +4 -4
  62. package/lib/queues/queueservice.js +52 -67
  63. package/lib/queues/queueservice.js.map +1 -1
  64. package/lib/router.d.ts +3 -3
  65. package/lib/router.js +46 -47
  66. package/lib/router.js.map +1 -1
  67. package/lib/router.spec.js +64 -61
  68. package/lib/router.spec.js.map +1 -1
  69. package/lib/services/asyncevents.d.ts +2 -2
  70. package/lib/services/asyncevents.js +44 -64
  71. package/lib/services/asyncevents.js.map +1 -1
  72. package/lib/services/asyncevents.spec.js +81 -98
  73. package/lib/services/asyncevents.spec.js.map +1 -1
  74. package/lib/services/authentication.d.ts +28 -19
  75. package/lib/services/authentication.js +542 -574
  76. package/lib/services/authentication.js.map +1 -1
  77. package/lib/services/authentication.spec.js +411 -447
  78. package/lib/services/authentication.spec.js.map +1 -1
  79. package/lib/services/binary.d.ts +9 -7
  80. package/lib/services/binary.js +213 -245
  81. package/lib/services/binary.js.map +1 -1
  82. package/lib/services/binary.spec.d.ts +3 -3
  83. package/lib/services/binary.spec.js +390 -443
  84. package/lib/services/binary.spec.js.map +1 -1
  85. package/lib/services/cloudbinary.d.ts +3 -3
  86. package/lib/services/cloudbinary.js +45 -70
  87. package/lib/services/cloudbinary.js.map +1 -1
  88. package/lib/services/cloudbinary.spec.d.ts +3 -3
  89. package/lib/services/cloudbinary.spec.js +133 -162
  90. package/lib/services/cloudbinary.spec.js.map +1 -1
  91. package/lib/services/configuration.d.ts +6 -3
  92. package/lib/services/configuration.js +78 -103
  93. package/lib/services/configuration.js.map +1 -1
  94. package/lib/services/configuration.spec.js +63 -83
  95. package/lib/services/configuration.spec.js.map +1 -1
  96. package/lib/services/cron.d.ts +3 -2
  97. package/lib/services/cron.js +9 -13
  98. package/lib/services/cron.js.map +1 -1
  99. package/lib/services/cron.spec.js +18 -21
  100. package/lib/services/cron.spec.js.map +1 -1
  101. package/lib/services/cryptoservice.d.ts +258 -0
  102. package/lib/services/cryptoservice.js +312 -0
  103. package/lib/services/cryptoservice.js.map +1 -0
  104. package/lib/services/cryptoservice.spec.d.ts +1 -0
  105. package/lib/services/cryptoservice.spec.js +137 -0
  106. package/lib/services/cryptoservice.spec.js.map +1 -0
  107. package/lib/services/debugmailer.d.ts +1 -1
  108. package/lib/services/debugmailer.js +13 -34
  109. package/lib/services/debugmailer.js.map +1 -1
  110. package/lib/services/debugmailer.spec.js +16 -29
  111. package/lib/services/debugmailer.spec.js.map +1 -1
  112. package/lib/services/echo.d.ts +2 -2
  113. package/lib/services/echo.js +15 -31
  114. package/lib/services/echo.js.map +1 -1
  115. package/lib/services/echo.spec.js +27 -40
  116. package/lib/services/echo.spec.js.map +1 -1
  117. package/lib/services/filebinary.d.ts +10 -5
  118. package/lib/services/filebinary.js +171 -205
  119. package/lib/services/filebinary.js.map +1 -1
  120. package/lib/services/filebinary.spec.d.ts +2 -1
  121. package/lib/services/filebinary.spec.js +106 -117
  122. package/lib/services/filebinary.spec.js.map +1 -1
  123. package/lib/services/fileconfiguration.d.ts +2 -2
  124. package/lib/services/fileconfiguration.js +25 -43
  125. package/lib/services/fileconfiguration.js.map +1 -1
  126. package/lib/services/fileconfiguration.spec.js +79 -109
  127. package/lib/services/fileconfiguration.spec.js.map +1 -1
  128. package/lib/services/invitationservice.d.ts +10 -10
  129. package/lib/services/invitationservice.js +275 -313
  130. package/lib/services/invitationservice.js.map +1 -1
  131. package/lib/services/invitationservice.spec.js +443 -449
  132. package/lib/services/invitationservice.spec.js.map +1 -1
  133. package/lib/services/kubernetesconfiguration.d.ts +2 -2
  134. package/lib/services/kubernetesconfiguration.js +41 -59
  135. package/lib/services/kubernetesconfiguration.js.map +1 -1
  136. package/lib/services/kubernetesconfiguration.spec.js +80 -98
  137. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  138. package/lib/services/mailer.d.ts +4 -4
  139. package/lib/services/mailer.js +62 -86
  140. package/lib/services/mailer.js.map +1 -1
  141. package/lib/services/mailer.spec.js +86 -127
  142. package/lib/services/mailer.spec.js.map +1 -1
  143. package/lib/services/notificationservice.d.ts +4 -4
  144. package/lib/services/notificationservice.js +23 -42
  145. package/lib/services/notificationservice.js.map +1 -1
  146. package/lib/services/notificationservice.spec.js +47 -73
  147. package/lib/services/notificationservice.spec.js.map +1 -1
  148. package/lib/services/oauth.d.ts +32 -6
  149. package/lib/services/oauth.js +73 -78
  150. package/lib/services/oauth.js.map +1 -1
  151. package/lib/services/oauth.spec.js +128 -148
  152. package/lib/services/oauth.spec.js.map +1 -1
  153. package/lib/services/proxy.d.ts +74 -0
  154. package/lib/services/proxy.js +126 -0
  155. package/lib/services/proxy.js.map +1 -0
  156. package/lib/services/proxy.spec.d.ts +1 -0
  157. package/lib/services/proxy.spec.js +59 -0
  158. package/lib/services/proxy.spec.js.map +1 -0
  159. package/lib/services/resource.d.ts +2 -2
  160. package/lib/services/resource.js +12 -18
  161. package/lib/services/resource.js.map +1 -1
  162. package/lib/services/resource.spec.js +67 -99
  163. package/lib/services/resource.spec.js.map +1 -1
  164. package/lib/services/service.d.ts +29 -6
  165. package/lib/services/service.js +69 -39
  166. package/lib/services/service.js.map +1 -1
  167. package/lib/services/service.spec.js +62 -67
  168. package/lib/services/service.spec.js.map +1 -1
  169. package/lib/services/version.d.ts +1 -1
  170. package/lib/services/version.js +3 -8
  171. package/lib/services/version.js.map +1 -1
  172. package/lib/services/version.spec.js +11 -24
  173. package/lib/services/version.spec.js.map +1 -1
  174. package/lib/stores/aggregator.d.ts +3 -3
  175. package/lib/stores/aggregator.js +37 -57
  176. package/lib/stores/aggregator.js.map +1 -1
  177. package/lib/stores/file.d.ts +3 -3
  178. package/lib/stores/file.js +93 -131
  179. package/lib/stores/file.js.map +1 -1
  180. package/lib/stores/file.spec.d.ts +2 -2
  181. package/lib/stores/file.spec.js +262 -289
  182. package/lib/stores/file.spec.js.map +1 -1
  183. package/lib/stores/mapper.d.ts +4 -4
  184. package/lib/stores/mapper.js +111 -137
  185. package/lib/stores/mapper.js.map +1 -1
  186. package/lib/stores/mapper.spec.js +133 -150
  187. package/lib/stores/mapper.spec.js.map +1 -1
  188. package/lib/stores/memory.d.ts +67 -6
  189. package/lib/stores/memory.js +155 -117
  190. package/lib/stores/memory.js.map +1 -1
  191. package/lib/stores/memory.spec.d.ts +3 -2
  192. package/lib/stores/memory.spec.js +127 -105
  193. package/lib/stores/memory.spec.js.map +1 -1
  194. package/lib/stores/store.d.ts +40 -16
  195. package/lib/stores/store.js +847 -830
  196. package/lib/stores/store.js.map +1 -1
  197. package/lib/stores/store.spec.d.ts +6 -4
  198. package/lib/stores/store.spec.js +628 -647
  199. package/lib/stores/store.spec.js.map +1 -1
  200. package/lib/stores/webdaql/WebdaQLLexer.d.ts +4 -4
  201. package/lib/stores/webdaql/WebdaQLLexer.js +9 -13
  202. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  203. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +4 -4
  204. package/lib/stores/webdaql/WebdaQLParserLexer.js +9 -13
  205. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  206. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +2 -2
  207. package/lib/stores/webdaql/WebdaQLParserListener.js +1 -2
  208. package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -1
  209. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +10 -10
  210. package/lib/stores/webdaql/WebdaQLParserParser.js +62 -91
  211. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  212. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +2 -2
  213. package/lib/stores/webdaql/WebdaQLParserVisitor.js +1 -2
  214. package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -1
  215. package/lib/stores/webdaql/query.d.ts +4 -5
  216. package/lib/stores/webdaql/query.js +16 -19
  217. package/lib/stores/webdaql/query.js.map +1 -1
  218. package/lib/stores/webdaql/query.spec.js +30 -32
  219. package/lib/stores/webdaql/query.spec.js.map +1 -1
  220. package/lib/test.d.ts +3 -3
  221. package/lib/test.js +74 -94
  222. package/lib/test.js.map +1 -1
  223. package/lib/unpackedapplication.d.ts +1 -1
  224. package/lib/unpackedapplication.js +44 -38
  225. package/lib/unpackedapplication.js.map +1 -1
  226. package/lib/utils/abstractdeployer.js +1 -5
  227. package/lib/utils/abstractdeployer.js.map +1 -1
  228. package/lib/utils/abstractdeployer.spec.js +6 -8
  229. package/lib/utils/abstractdeployer.spec.js.map +1 -1
  230. package/lib/utils/context.d.ts +61 -29
  231. package/lib/utils/context.js +133 -127
  232. package/lib/utils/context.js.map +1 -1
  233. package/lib/utils/context.spec.js +144 -153
  234. package/lib/utils/context.spec.js.map +1 -1
  235. package/lib/utils/cookie.d.ts +66 -45
  236. package/lib/utils/cookie.js +69 -158
  237. package/lib/utils/cookie.js.map +1 -1
  238. package/lib/utils/cookie.spec.js +220 -238
  239. package/lib/utils/cookie.spec.js.map +1 -1
  240. package/lib/utils/esm.d.ts +4 -0
  241. package/lib/utils/esm.js +10 -0
  242. package/lib/utils/esm.js.map +1 -0
  243. package/lib/utils/httpcontext.d.ts +3 -0
  244. package/lib/utils/httpcontext.js +48 -65
  245. package/lib/utils/httpcontext.js.map +1 -1
  246. package/lib/utils/httpcontext.spec.js +37 -56
  247. package/lib/utils/httpcontext.spec.js.map +1 -1
  248. package/lib/utils/logger.d.ts +2 -2
  249. package/lib/utils/logger.js +15 -28
  250. package/lib/utils/logger.js.map +1 -1
  251. package/lib/utils/logger.spec.js +9 -11
  252. package/lib/utils/logger.spec.js.map +1 -1
  253. package/lib/utils/serializers.js +17 -20
  254. package/lib/utils/serializers.js.map +1 -1
  255. package/lib/utils/serializers.spec.js +43 -44
  256. package/lib/utils/serializers.spec.js.map +1 -1
  257. package/lib/utils/session.d.ts +120 -0
  258. package/lib/utils/session.js +155 -0
  259. package/lib/utils/session.js.map +1 -0
  260. package/lib/utils/session.spec.d.ts +1 -0
  261. package/lib/utils/session.spec.js +66 -0
  262. package/lib/utils/session.spec.js.map +1 -0
  263. package/lib/utils/waiter.d.ts +1 -1
  264. package/lib/utils/waiter.js +32 -52
  265. package/lib/utils/waiter.js.map +1 -1
  266. package/lib/utils/waiter.spec.js +75 -92
  267. package/lib/utils/waiter.spec.js.map +1 -1
  268. package/package.json +22 -14
  269. package/test/config-invitation.json +1 -3
  270. package/test/config.json +3 -3
  271. package/test/config.old.json +1 -2
  272. package/test/moddas/annotatedservice.js +5 -5
  273. package/test/moddas/debugmailer.js +2 -3
  274. package/test/moddas/fakeservice.js +2 -3
  275. package/test/moddas/voidstore.js +6 -4
  276. package/test/models/ident.js +2 -6
  277. package/test/models/task.js +3 -7
  278. package/test/package.json +2 -1
  279. package/webda.module.json +895 -189
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.YAMLUtils = exports.JSONUtils = exports.FileUtils = void 0;
4
- const fs_1 = require("fs");
5
- const jsonc = require("jsonc-parser");
6
- const yaml = require("yaml");
1
+ import { existsSync, readFileSync, writeFileSync } from "fs";
2
+ import * as jsonc from "jsonc-parser";
3
+ import * as yaml from "yaml";
7
4
  /**
8
5
  * Allow save/load of yaml or json file
9
6
  */
10
- exports.FileUtils = {
7
+ export const FileUtils = {
11
8
  /**
12
9
  * Load a YAML or JSON file based on its extension
13
10
  *
@@ -15,10 +12,10 @@ exports.FileUtils = {
15
12
  * @returns
16
13
  */
17
14
  load: filename => {
18
- if (!(0, fs_1.existsSync)(filename)) {
15
+ if (!existsSync(filename)) {
19
16
  throw new Error("File does not exist");
20
17
  }
21
- let content = (0, fs_1.readFileSync)(filename, "utf-8");
18
+ let content = readFileSync(filename, "utf-8");
22
19
  if (filename.match(/\.ya?ml$/i)) {
23
20
  let res = yaml.parseAllDocuments(content);
24
21
  if (res.length === 1) {
@@ -43,10 +40,10 @@ exports.FileUtils = {
43
40
  */
44
41
  save: (object, filename = "", publicAudience = false) => {
45
42
  if (filename.match(/\.ya?ml$/i)) {
46
- return (0, fs_1.writeFileSync)(filename, yaml.stringify(JSON.parse(exports.JSONUtils.stringify(object, undefined, 0, publicAudience))));
43
+ return writeFileSync(filename, yaml.stringify(JSON.parse(JSONUtils.stringify(object, undefined, 0, publicAudience))));
47
44
  }
48
45
  else if (filename.match(/\.json$/i)) {
49
- return (0, fs_1.writeFileSync)(filename, exports.JSONUtils.stringify(object, undefined, 2, publicAudience));
46
+ return writeFileSync(filename, JSONUtils.stringify(object, undefined, 2, publicAudience));
50
47
  }
51
48
  throw new Error("Unknown format");
52
49
  }
@@ -54,7 +51,7 @@ exports.FileUtils = {
54
51
  /**
55
52
  * Simple JSON utils
56
53
  */
57
- exports.JSONUtils = {
54
+ export const JSONUtils = {
58
55
  /**
59
56
  * Safe Stringify stringify a object included circular object
60
57
  * and also remove any attributes starting with a __
@@ -106,7 +103,7 @@ exports.JSONUtils = {
106
103
  }
107
104
  catch (err) {
108
105
  if (err.message && err.message.startsWith("Converting circular structure to JSON")) {
109
- return exports.JSONUtils.safeStringify(value, replacer, space, publicAudience);
106
+ return JSONUtils.safeStringify(value, replacer, space, publicAudience);
110
107
  }
111
108
  throw err;
112
109
  }
@@ -125,33 +122,33 @@ exports.JSONUtils = {
125
122
  * Duplicate an object using serializer
126
123
  */
127
124
  duplicate: value => {
128
- return JSON.parse(exports.JSONUtils.stringify(value));
125
+ return JSON.parse(JSONUtils.stringify(value));
129
126
  },
130
127
  /**
131
128
  * Helper to FileUtils.save
132
129
  */
133
- loadFile: exports.FileUtils.load,
130
+ loadFile: FileUtils.load,
134
131
  /**
135
132
  * Helper to FileUtils.save
136
133
  */
137
- saveFile: exports.FileUtils.save
134
+ saveFile: FileUtils.save
138
135
  };
139
136
  /**
140
137
  * Expose basic YAML function
141
138
  */
142
- exports.YAMLUtils = {
139
+ export const YAMLUtils = {
143
140
  /**
144
141
  * Helper to FileUtils.save
145
142
  */
146
- saveFile: exports.FileUtils.save,
143
+ saveFile: FileUtils.save,
147
144
  /**
148
145
  * Helper to FileUtils.load
149
146
  */
150
- loadFile: exports.FileUtils.load,
147
+ loadFile: FileUtils.load,
151
148
  /**
152
149
  * Duplicate an object using serializer
153
150
  */
154
- duplicate: exports.JSONUtils.duplicate,
151
+ duplicate: JSONUtils.duplicate,
155
152
  /**
156
153
  * Parse a single document yaml
157
154
  *
@@ -1 +1 @@
1
- {"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../src/utils/serializers.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,32 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const mocha_1 = require("@testdeck/mocha");
10
- const assert = require("assert");
11
- const fs_1 = require("fs");
12
- const path = require("path");
13
- const serializers_1 = require("./serializers");
14
- const TEST_FOLDER = __dirname + "/../../test/jsonutils/";
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import { readFileSync } from "fs";
10
+ import * as path from "path";
11
+ import { FileUtils, JSONUtils, YAMLUtils } from "./serializers.js";
12
+ import { fileURLToPath } from 'url';
13
+ const TEST_FOLDER = path.dirname(fileURLToPath(import.meta.url)) + "/../../test/jsonutils/";
15
14
  let UtilsTest = class UtilsTest {
16
15
  fileJson() {
17
- assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
18
- assert.deepStrictEqual(serializers_1.YAMLUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
19
- assert.deepStrictEqual(serializers_1.FileUtils.load(TEST_FOLDER + "test.json"), { test: "ok" });
20
- assert.throws(() => serializers_1.JSONUtils.loadFile("/none"), /File does not exist/);
21
- assert.throws(() => serializers_1.JSONUtils.loadFile("./Dockerfile"), /Unknown format/);
16
+ assert.deepStrictEqual(JSONUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
17
+ assert.deepStrictEqual(YAMLUtils.loadFile(TEST_FOLDER + "test.json"), { test: "ok" });
18
+ assert.deepStrictEqual(FileUtils.load(TEST_FOLDER + "test.json"), { test: "ok" });
19
+ assert.throws(() => JSONUtils.loadFile("/none"), /File does not exist/);
20
+ assert.throws(() => JSONUtils.loadFile("./Dockerfile"), /Unknown format/);
22
21
  }
23
22
  fileYml() {
24
- assert.deepStrictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "test.yml"), {
23
+ assert.deepStrictEqual(JSONUtils.loadFile(TEST_FOLDER + "test.yml"), {
25
24
  test: { ok: "plop" },
26
25
  tab: ["ok", "item2"]
27
26
  });
28
27
  }
29
28
  fileYaml() {
30
- assert.strictEqual(serializers_1.JSONUtils.loadFile(TEST_FOLDER + "mdocs.yaml").length, 2);
29
+ assert.strictEqual(JSONUtils.loadFile(TEST_FOLDER + "mdocs.yaml").length, 2);
31
30
  }
32
31
  circularJSON() {
33
32
  let a = {
@@ -37,9 +36,9 @@ let UtilsTest = class UtilsTest {
37
36
  n: null
38
37
  };
39
38
  a.c.a = a;
40
- assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: {}, __test: true }, undefined, 2));
41
- assert.deepStrictEqual(serializers_1.JSONUtils.safeStringify(a), JSON.stringify({ b: "test", c: {}, __test: true }, undefined, 2));
42
- assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a, (key, value) => {
39
+ assert.deepStrictEqual(JSONUtils.stringify(a), JSON.stringify({ b: "test", c: {}, __test: true }, undefined, 2));
40
+ assert.deepStrictEqual(JSONUtils.safeStringify(a), JSON.stringify({ b: "test", c: {}, __test: true }, undefined, 2));
41
+ assert.deepStrictEqual(JSONUtils.stringify(a, (key, value) => {
43
42
  if (key !== "b" && key !== "n")
44
43
  return value;
45
44
  return undefined;
@@ -54,75 +53,75 @@ let UtilsTest = class UtilsTest {
54
53
  __test: true
55
54
  };
56
55
  a.d = a.c;
57
- assert.deepStrictEqual(serializers_1.JSONUtils.stringify(a), JSON.stringify({ b: "test", c: { plop: "bouzouf" }, __test: true, d: { plop: "bouzouf" } }, undefined, 2));
56
+ assert.deepStrictEqual(JSONUtils.stringify(a), JSON.stringify({ b: "test", c: { plop: "bouzouf" }, __test: true, d: { plop: "bouzouf" } }, undefined, 2));
58
57
  }
59
58
  writeJSON() {
60
59
  let file = path.join(TEST_FOLDER, "writeTest.json");
61
- serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
62
- assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
60
+ JSONUtils.saveFile({ test: "plop" }, file);
61
+ assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
63
62
  file = path.join(TEST_FOLDER, "writeTest.yaml");
64
- serializers_1.JSONUtils.saveFile({ test: "plop" }, file);
65
- assert.strictEqual((0, fs_1.readFileSync)(file).toString(), `test: plop\n`);
63
+ JSONUtils.saveFile({ test: "plop" }, file);
64
+ assert.strictEqual(readFileSync(file).toString(), `test: plop\n`);
66
65
  // Yaml alias
67
66
  file = path.join(TEST_FOLDER, "writeTest.json");
68
- serializers_1.YAMLUtils.saveFile({ test: "plop" }, file);
69
- assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
67
+ YAMLUtils.saveFile({ test: "plop" }, file);
68
+ assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
70
69
  // True implem
71
70
  file = path.join(TEST_FOLDER, "writeTest.json");
72
- serializers_1.FileUtils.save({ test: "plop" }, file);
73
- assert.strictEqual((0, fs_1.readFileSync)(file).toString(), '{\n "test": "plop"\n}');
74
- assert.throws(() => serializers_1.JSONUtils.saveFile({}, "./Dockerfile.zzz"), /Unknown format/);
71
+ FileUtils.save({ test: "plop" }, file);
72
+ assert.strictEqual(readFileSync(file).toString(), '{\n "test": "plop"\n}');
73
+ assert.throws(() => JSONUtils.saveFile({}, "./Dockerfile.zzz"), /Unknown format/);
75
74
  }
76
75
  duplicate() {
77
76
  let obj = { plop: "test" };
78
- let obj2 = serializers_1.JSONUtils.duplicate(obj);
77
+ let obj2 = JSONUtils.duplicate(obj);
79
78
  assert.notStrictEqual(obj, obj2);
80
79
  assert.deepStrictEqual(obj, obj2);
81
- obj2 = serializers_1.JSONUtils.parse('{"plop": "test"}');
80
+ obj2 = JSONUtils.parse('{"plop": "test"}');
82
81
  assert.deepStrictEqual(obj, obj2);
83
82
  }
84
83
  audience() {
85
- assert.strictEqual(serializers_1.JSONUtils.stringify({ __dirname: "plop", me: null, test: "plop" }, undefined, 2, true), '{\n "test": "plop"\n}');
86
- assert.throws(() => serializers_1.JSONUtils.stringify({ test: true }, () => {
84
+ assert.strictEqual(JSONUtils.stringify({ __dirname: "plop", me: null, test: "plop" }, undefined, 2, true), '{\n "test": "plop"\n}');
85
+ assert.throws(() => JSONUtils.stringify({ test: true }, () => {
87
86
  throw new Error("BOUZOUF");
88
87
  }), /BOUZOUF/);
89
88
  }
90
89
  yaml() {
91
- assert.strictEqual(serializers_1.YAMLUtils.stringify({ plop: "test" }), `plop: test
90
+ assert.strictEqual(YAMLUtils.stringify({ plop: "test" }), `plop: test
92
91
  `);
93
- assert.deepEqual(serializers_1.YAMLUtils.parse(`
92
+ assert.deepEqual(YAMLUtils.parse(`
94
93
  plop: test
95
94
  `), { plop: "test" });
96
95
  }
97
96
  };
98
97
  __decorate([
99
- (0, mocha_1.test)("LoadJSON File")
98
+ test("LoadJSON File")
100
99
  ], UtilsTest.prototype, "fileJson", null);
101
100
  __decorate([
102
- (0, mocha_1.test)("LoadYAML File")
101
+ test("LoadYAML File")
103
102
  ], UtilsTest.prototype, "fileYml", null);
104
103
  __decorate([
105
- (0, mocha_1.test)("LoadYAML Multiple Docs File")
104
+ test("LoadYAML Multiple Docs File")
106
105
  ], UtilsTest.prototype, "fileYaml", null);
107
106
  __decorate([
108
- (0, mocha_1.test)("CircularJSON")
107
+ test("CircularJSON")
109
108
  ], UtilsTest.prototype, "circularJSON", null);
110
109
  __decorate([
111
- (0, mocha_1.test)("DuplicateJSON")
110
+ test("DuplicateJSON")
112
111
  ], UtilsTest.prototype, "duplicatedJSON", null);
113
112
  __decorate([
114
- (0, mocha_1.test)("Write JSON/YAML")
113
+ test("Write JSON/YAML")
115
114
  ], UtilsTest.prototype, "writeJSON", null);
116
115
  __decorate([
117
- mocha_1.test
116
+ test
118
117
  ], UtilsTest.prototype, "duplicate", null);
119
118
  __decorate([
120
- mocha_1.test
119
+ test
121
120
  ], UtilsTest.prototype, "audience", null);
122
121
  __decorate([
123
- (0, mocha_1.test)("YAML stringify")
122
+ test("YAML stringify")
124
123
  ], UtilsTest.prototype, "yaml", null);
125
124
  UtilsTest = __decorate([
126
- mocha_1.suite
125
+ suite
127
126
  ], UtilsTest);
128
127
  //# sourceMappingURL=serializers.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { CoreModel } from "../models/coremodel.js";
2
+ import CryptoService, { JWTOptions } from "../services/cryptoservice.js";
3
+ import { DeepPartial, Service, ServiceParameters } from "../services/service.js";
4
+ import { Store } from "../stores/store.js";
5
+ import { Context } from "./context.js";
6
+ import { CookieOptions } from "./cookie.js";
7
+ /**
8
+ * Manage load and save of sessions
9
+ */
10
+ export declare abstract class SessionManager<T extends ServiceParameters = ServiceParameters> extends Service<T> {
11
+ /**
12
+ * Load a session based on context
13
+ * @param context
14
+ */
15
+ abstract load(context: Context): Promise<Session>;
16
+ /**
17
+ * Save the session within the context
18
+ * @param context
19
+ * @param session
20
+ */
21
+ abstract save(context: Context, session: Session): Promise<void>;
22
+ }
23
+ export declare class CookieSessionParameters extends ServiceParameters {
24
+ /**
25
+ * Options for issue JWT token
26
+ */
27
+ jwt?: JWTOptions;
28
+ /**
29
+ * Cookie configuration for session
30
+ */
31
+ cookie?: CookieOptions;
32
+ constructor(params: any);
33
+ }
34
+ /**
35
+ * SessionManager that store info in a cookie
36
+ *
37
+ * If SessionStore service exists, only uuid is in the cookie
38
+ * the rest of data is stored within the session store
39
+ *
40
+ * @WebdaModda
41
+ */
42
+ export declare class CookieSessionManager<T extends CookieSessionParameters = CookieSessionParameters> extends SessionManager<T> {
43
+ cryptoService: CryptoService;
44
+ sessionStore: Store<CoreModel & {
45
+ session: any;
46
+ }>;
47
+ /**
48
+ * @override
49
+ */
50
+ loadParameters(params: DeepPartial<T>): ServiceParameters;
51
+ /**
52
+ * @override
53
+ */
54
+ resolve(): this;
55
+ /**
56
+ * @override
57
+ */
58
+ load(context: Context): Promise<Session>;
59
+ /**
60
+ * @override
61
+ */
62
+ save(context: Context, session: Session): Promise<void>;
63
+ }
64
+ /**
65
+ * Session model
66
+ *
67
+ * @WebdaModel
68
+ */
69
+ export declare class Session {
70
+ protected changed: boolean;
71
+ /**
72
+ * Session uuid
73
+ */
74
+ uuid: string;
75
+ /**
76
+ * User id
77
+ */
78
+ userId: string;
79
+ /**
80
+ * Ident used
81
+ */
82
+ identUsed: string;
83
+ /**
84
+ * User current roles
85
+ */
86
+ roles: string[];
87
+ /**
88
+ * Login
89
+ * @param userId
90
+ * @param identUsed
91
+ */
92
+ login(userId: string, identUsed: string): void;
93
+ /**
94
+ * Logout
95
+ */
96
+ logout(): void;
97
+ /**
98
+ * If session is authenticated
99
+ */
100
+ isLogged(): boolean;
101
+ /**
102
+ * Session is dirty and requires save
103
+ * @returns
104
+ */
105
+ isDirty(): boolean;
106
+ /**
107
+ * Get the proxy to be able to track modification
108
+ * @returns
109
+ */
110
+ getProxy(): this;
111
+ }
112
+ /**
113
+ * Unknown session that allows all keys
114
+ */
115
+ export declare class UnknownSession extends Session {
116
+ /**
117
+ * Allow any type of fields
118
+ */
119
+ [key: string]: any;
120
+ }
@@ -0,0 +1,155 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { NotEnumerable } from "../models/coremodel.js";
8
+ import { Inject, Service, ServiceParameters } from "../services/service.js";
9
+ import { CookieOptions, SecureCookie } from "./cookie.js";
10
+ /**
11
+ * Manage load and save of sessions
12
+ */
13
+ export class SessionManager extends Service {
14
+ }
15
+ export class CookieSessionParameters extends ServiceParameters {
16
+ constructor(params) {
17
+ super(params);
18
+ this.cookie ?? (this.cookie = new CookieOptions({}));
19
+ }
20
+ }
21
+ /**
22
+ * SessionManager that store info in a cookie
23
+ *
24
+ * If SessionStore service exists, only uuid is in the cookie
25
+ * the rest of data is stored within the session store
26
+ *
27
+ * @WebdaModda
28
+ */
29
+ export class CookieSessionManager extends SessionManager {
30
+ /**
31
+ * @override
32
+ */
33
+ loadParameters(params) {
34
+ return new CookieSessionParameters(params);
35
+ }
36
+ /**
37
+ * @override
38
+ */
39
+ resolve() {
40
+ super.resolve();
41
+ if (this.sessionStore && this.sessionStore.getParameters().expose) {
42
+ throw new Error("SessionStore should not be exposed");
43
+ }
44
+ return this;
45
+ }
46
+ /**
47
+ * @override
48
+ */
49
+ async load(context) {
50
+ const session = new Session();
51
+ let cookie = await SecureCookie.load(this.parameters.cookie.name, context, this.parameters.jwt);
52
+ if (this.sessionStore) {
53
+ if (cookie.sub) {
54
+ Object.assign(session, (await this.sessionStore.get(cookie.sub))?.session);
55
+ session.uuid = cookie.sub;
56
+ }
57
+ session.uuid ?? (session.uuid = context.getWebda().getUuid("base64"));
58
+ }
59
+ else {
60
+ Object.assign(session, cookie);
61
+ }
62
+ return session;
63
+ }
64
+ /**
65
+ * @override
66
+ */
67
+ async save(context, session) {
68
+ // If store is found session info are stored in db
69
+ if (this.sessionStore) {
70
+ await this.sessionStore.save({
71
+ uuid: session.uuid,
72
+ session,
73
+ ttl: Date.now() + this.parameters.cookie.maxAge * 1000
74
+ });
75
+ SecureCookie.save(this.parameters.cookie.name, context, {}, { ...this.parameters.jwt, subject: session.uuid.toString() });
76
+ return;
77
+ }
78
+ SecureCookie.save(this.parameters.cookie.name, context, session, this.parameters.jwt);
79
+ }
80
+ }
81
+ __decorate([
82
+ Inject("CryptoService")
83
+ ], CookieSessionManager.prototype, "cryptoService", void 0);
84
+ __decorate([
85
+ Inject("SessionStore", true)
86
+ ], CookieSessionManager.prototype, "sessionStore", void 0);
87
+ /**
88
+ * Session model
89
+ *
90
+ * @WebdaModel
91
+ */
92
+ export class Session {
93
+ constructor() {
94
+ this.changed = false;
95
+ }
96
+ /**
97
+ * Login
98
+ * @param userId
99
+ * @param identUsed
100
+ */
101
+ login(userId, identUsed) {
102
+ this.userId = userId;
103
+ this.identUsed = identUsed;
104
+ }
105
+ /**
106
+ * Logout
107
+ */
108
+ logout() {
109
+ delete this.userId;
110
+ delete this.identUsed;
111
+ delete this.roles;
112
+ }
113
+ /**
114
+ * If session is authenticated
115
+ */
116
+ isLogged() {
117
+ return this.userId !== undefined;
118
+ }
119
+ /**
120
+ * Session is dirty and requires save
121
+ * @returns
122
+ */
123
+ isDirty() {
124
+ return this.changed;
125
+ }
126
+ /**
127
+ * Get the proxy to be able to track modification
128
+ * @returns
129
+ */
130
+ getProxy() {
131
+ const proxyHandler = {
132
+ set: (obj, property, value) => {
133
+ this.changed = true;
134
+ obj[property] = value;
135
+ return true;
136
+ },
137
+ get: (obj, property) => {
138
+ if (typeof obj[property] === "object") {
139
+ return new Proxy(obj[property], proxyHandler);
140
+ }
141
+ return obj[property];
142
+ }
143
+ };
144
+ return new Proxy(this, proxyHandler);
145
+ }
146
+ }
147
+ __decorate([
148
+ NotEnumerable
149
+ ], Session.prototype, "changed", void 0);
150
+ /**
151
+ * Unknown session that allows all keys
152
+ */
153
+ export class UnknownSession extends Session {
154
+ }
155
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,66 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import { MemoryStore } from "../stores/memory.js";
10
+ import { WebdaTest } from "../test.js";
11
+ import { UnknownSession } from "./session.js";
12
+ let SessionTest = class SessionTest {
13
+ basic() {
14
+ let session = new UnknownSession().getProxy();
15
+ session.plop = "test";
16
+ assert.ok(session.isDirty());
17
+ assert.ok(!session.isLogged());
18
+ session.login("user1", "ident1");
19
+ assert.ok(session.isLogged());
20
+ session.logout();
21
+ assert.ok(!session.isLogged());
22
+ }
23
+ };
24
+ __decorate([
25
+ test
26
+ ], SessionTest.prototype, "basic", null);
27
+ SessionTest = __decorate([
28
+ suite
29
+ ], SessionTest);
30
+ let SessionStoreTest = class SessionStoreTest extends WebdaTest {
31
+ async sessionStore() {
32
+ // Test MemoryStore
33
+ const store = (this.webda.getServices()["sessionstore"] = await new MemoryStore(this.webda, "SessionStore", {})
34
+ .resolve()
35
+ .init());
36
+ store.getParameters().expose = { url: "url" };
37
+ assert.throws(() => this.getService("SessionManager").resolve(), /SessionStore should not be exposed/);
38
+ store.getParameters().expose = undefined;
39
+ this.getService("SessionManager").resolve();
40
+ let ctx = await this.newContext();
41
+ ctx.getSession().identUsed = "bouzouf";
42
+ await ctx.end();
43
+ let sessions = await store.getAll();
44
+ assert.strictEqual(sessions.length, 1);
45
+ let cookie = await this.webda.getCrypto().jwtVerify(ctx.getResponseCookies()["test"].value);
46
+ assert.strictEqual(cookie.uuid, undefined);
47
+ assert.strictEqual(cookie.identUsed, undefined);
48
+ assert.strictEqual(cookie.sub, sessions[0].getUuid());
49
+ let ctx2 = await this.newContext();
50
+ ctx2.getHttpContext().cookies = {
51
+ test: ctx.getResponseCookies()["test"].value
52
+ };
53
+ await ctx2.init();
54
+ let session = ctx2.getSession();
55
+ assert.strictEqual(session.uuid, sessions[0].getUuid());
56
+ assert.strictEqual(session.identUsed, "bouzouf");
57
+ assert.strictEqual(session.sub, undefined);
58
+ }
59
+ };
60
+ __decorate([
61
+ test
62
+ ], SessionStoreTest.prototype, "sessionStore", null);
63
+ SessionStoreTest = __decorate([
64
+ suite
65
+ ], SessionStoreTest);
66
+ //# sourceMappingURL=session.spec.js.map