@webda/core 2.4.1 → 3.0.0

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 (227) hide show
  1. package/lib/application.d.ts +171 -34
  2. package/lib/application.js +243 -47
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +44 -8
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +113 -54
  7. package/lib/core.js +222 -135
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +87 -43
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/errors.d.ts +65 -0
  12. package/lib/errors.js +113 -0
  13. package/lib/errors.js.map +1 -0
  14. package/lib/errors.spec.d.ts +1 -0
  15. package/lib/errors.spec.js +33 -0
  16. package/lib/errors.spec.js.map +1 -0
  17. package/lib/index.d.ts +3 -0
  18. package/lib/index.js +3 -0
  19. package/lib/index.js.map +1 -1
  20. package/lib/models/aclmodel.d.ts +4 -4
  21. package/lib/models/aclmodel.js +10 -6
  22. package/lib/models/aclmodel.js.map +1 -1
  23. package/lib/models/aclmodel.spec.js +33 -24
  24. package/lib/models/aclmodel.spec.js.map +1 -1
  25. package/lib/models/coremodel.d.ts +284 -92
  26. package/lib/models/coremodel.js +403 -103
  27. package/lib/models/coremodel.js.map +1 -1
  28. package/lib/models/coremodel.spec.js +162 -24
  29. package/lib/models/coremodel.spec.js.map +1 -1
  30. package/lib/models/ident.d.ts +20 -6
  31. package/lib/models/ident.js.map +1 -1
  32. package/lib/models/ownermodel.d.ts +13 -23
  33. package/lib/models/ownermodel.js +24 -51
  34. package/lib/models/ownermodel.js.map +1 -1
  35. package/lib/models/ownermodel.spec.js +23 -11
  36. package/lib/models/ownermodel.spec.js.map +1 -1
  37. package/lib/models/relations.d.ts +167 -0
  38. package/lib/models/relations.js +113 -0
  39. package/lib/models/relations.js.map +1 -0
  40. package/lib/models/rolemodel.d.ts +3 -3
  41. package/lib/models/rolemodel.js +6 -6
  42. package/lib/models/rolemodel.js.map +1 -1
  43. package/lib/models/rolemodel.spec.js +12 -12
  44. package/lib/models/rolemodel.spec.js.map +1 -1
  45. package/lib/models/user.d.ts +40 -24
  46. package/lib/models/user.js +74 -48
  47. package/lib/models/user.js.map +1 -1
  48. package/lib/models/user.spec.js +24 -4
  49. package/lib/models/user.spec.js.map +1 -1
  50. package/lib/queues/memoryqueue.spec.js +9 -5
  51. package/lib/queues/memoryqueue.spec.js.map +1 -1
  52. package/lib/queues/queueservice.js.map +1 -1
  53. package/lib/router.d.ts +17 -8
  54. package/lib/router.js +81 -9
  55. package/lib/router.js.map +1 -1
  56. package/lib/router.spec.js +89 -5
  57. package/lib/router.spec.js.map +1 -1
  58. package/lib/services/asyncevents.spec.js +4 -4
  59. package/lib/services/authentication.d.ts +21 -22
  60. package/lib/services/authentication.js +90 -109
  61. package/lib/services/authentication.js.map +1 -1
  62. package/lib/services/authentication.spec.js +51 -65
  63. package/lib/services/authentication.spec.js.map +1 -1
  64. package/lib/services/binary.d.ts +132 -31
  65. package/lib/services/binary.js +257 -72
  66. package/lib/services/binary.js.map +1 -1
  67. package/lib/services/binary.spec.d.ts +16 -6
  68. package/lib/services/binary.spec.js +44 -117
  69. package/lib/services/binary.spec.js.map +1 -1
  70. package/lib/services/cloudbinary.d.ts +9 -10
  71. package/lib/services/cloudbinary.js +14 -15
  72. package/lib/services/cloudbinary.js.map +1 -1
  73. package/lib/services/cloudbinary.spec.d.ts +2 -2
  74. package/lib/services/cloudbinary.spec.js +13 -12
  75. package/lib/services/cloudbinary.spec.js.map +1 -1
  76. package/lib/services/configuration.js +9 -9
  77. package/lib/services/configuration.js.map +1 -1
  78. package/lib/services/configuration.spec.js +5 -7
  79. package/lib/services/configuration.spec.js.map +1 -1
  80. package/lib/services/cron.spec.js +3 -4
  81. package/lib/services/cron.spec.js.map +1 -1
  82. package/lib/services/cryptoservice.d.ts +2 -2
  83. package/lib/services/cryptoservice.js +5 -2
  84. package/lib/services/cryptoservice.js.map +1 -1
  85. package/lib/services/domainservice.d.ts +113 -0
  86. package/lib/services/domainservice.js +357 -0
  87. package/lib/services/domainservice.js.map +1 -0
  88. package/lib/services/domainservice.spec.d.ts +1 -0
  89. package/lib/services/domainservice.spec.js +334 -0
  90. package/lib/services/domainservice.spec.js.map +1 -0
  91. package/lib/services/echo.d.ts +2 -2
  92. package/lib/services/echo.js.map +1 -1
  93. package/lib/services/echo.spec.js +9 -2
  94. package/lib/services/echo.spec.js.map +1 -1
  95. package/lib/services/filebinary.d.ts +13 -14
  96. package/lib/services/filebinary.js +79 -73
  97. package/lib/services/filebinary.js.map +1 -1
  98. package/lib/services/filebinary.spec.d.ts +5 -0
  99. package/lib/services/filebinary.spec.js +222 -11
  100. package/lib/services/filebinary.spec.js.map +1 -1
  101. package/lib/services/fileconfiguration.js +7 -7
  102. package/lib/services/fileconfiguration.js.map +1 -1
  103. package/lib/services/fileconfiguration.spec.js +23 -24
  104. package/lib/services/fileconfiguration.spec.js.map +1 -1
  105. package/lib/services/invitationservice.d.ts +11 -9
  106. package/lib/services/invitationservice.js +17 -23
  107. package/lib/services/invitationservice.js.map +1 -1
  108. package/lib/services/invitationservice.spec.js +43 -40
  109. package/lib/services/invitationservice.spec.js.map +1 -1
  110. package/lib/services/kubernetesconfiguration.js +12 -22
  111. package/lib/services/kubernetesconfiguration.js.map +1 -1
  112. package/lib/services/kubernetesconfiguration.spec.js +1 -6
  113. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  114. package/lib/services/mailer.js +1 -1
  115. package/lib/services/mailer.js.map +1 -1
  116. package/lib/services/mailer.spec.js +4 -1
  117. package/lib/services/mailer.spec.js.map +1 -1
  118. package/lib/services/oauth.d.ts +17 -9
  119. package/lib/services/oauth.js +30 -4
  120. package/lib/services/oauth.js.map +1 -1
  121. package/lib/services/oauth.spec.js +32 -15
  122. package/lib/services/oauth.spec.js.map +1 -1
  123. package/lib/services/prometheus.spec.js.map +1 -1
  124. package/lib/services/proxy.d.ts +9 -8
  125. package/lib/services/proxy.js +65 -36
  126. package/lib/services/proxy.js.map +1 -1
  127. package/lib/services/proxy.spec.js +28 -2
  128. package/lib/services/proxy.spec.js.map +1 -1
  129. package/lib/services/resource.d.ts +3 -3
  130. package/lib/services/resource.js +4 -3
  131. package/lib/services/resource.js.map +1 -1
  132. package/lib/services/resource.spec.js +3 -3
  133. package/lib/services/resource.spec.js.map +1 -1
  134. package/lib/services/service.d.ts +10 -13
  135. package/lib/services/service.js +29 -13
  136. package/lib/services/service.js.map +1 -1
  137. package/lib/services/service.spec.js +49 -11
  138. package/lib/services/service.spec.js.map +1 -1
  139. package/lib/services/version.d.ts +2 -2
  140. package/lib/services/version.js.map +1 -1
  141. package/lib/stores/aggregator.js +1 -0
  142. package/lib/stores/aggregator.js.map +1 -1
  143. package/lib/stores/aliasstore.d.ts +2 -2
  144. package/lib/stores/aliasstore.js +15 -4
  145. package/lib/stores/aliasstore.js.map +1 -1
  146. package/lib/stores/aliasstore.spec.js +4 -2
  147. package/lib/stores/aliasstore.spec.js.map +1 -1
  148. package/lib/stores/file.d.ts +5 -2
  149. package/lib/stores/file.js +11 -8
  150. package/lib/stores/file.js.map +1 -1
  151. package/lib/stores/file.spec.js +21 -34
  152. package/lib/stores/file.spec.js.map +1 -1
  153. package/lib/stores/mapper.d.ts +4 -2
  154. package/lib/stores/mapper.js +18 -11
  155. package/lib/stores/mapper.js.map +1 -1
  156. package/lib/stores/mapper.spec.js +6 -3
  157. package/lib/stores/mapper.spec.js.map +1 -1
  158. package/lib/stores/memory.d.ts +5 -2
  159. package/lib/stores/memory.js +11 -9
  160. package/lib/stores/memory.js.map +1 -1
  161. package/lib/stores/memory.spec.d.ts +3 -0
  162. package/lib/stores/memory.spec.js +100 -11
  163. package/lib/stores/memory.spec.js.map +1 -1
  164. package/lib/stores/store.d.ts +177 -87
  165. package/lib/stores/store.js +312 -141
  166. package/lib/stores/store.js.map +1 -1
  167. package/lib/stores/store.spec.d.ts +2 -2
  168. package/lib/stores/store.spec.js +54 -38
  169. package/lib/stores/store.spec.js.map +1 -1
  170. package/lib/stores/webdaql/WebdaQLLexer.d.ts +14 -13
  171. package/lib/stores/webdaql/WebdaQLLexer.js +121 -112
  172. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  173. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +14 -13
  174. package/lib/stores/webdaql/WebdaQLParserLexer.js +121 -112
  175. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  176. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +15 -3
  177. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +23 -13
  178. package/lib/stores/webdaql/WebdaQLParserParser.js +149 -94
  179. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  180. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +9 -2
  181. package/lib/stores/webdaql/query.d.ts +6 -2
  182. package/lib/stores/webdaql/query.js +14 -1
  183. package/lib/stores/webdaql/query.js.map +1 -1
  184. package/lib/stores/webdaql/query.spec.js +10 -1
  185. package/lib/stores/webdaql/query.spec.js.map +1 -1
  186. package/lib/test.d.ts +48 -19
  187. package/lib/test.js +171 -63
  188. package/lib/test.js.map +1 -1
  189. package/lib/unpackedapplication.d.ts +5 -0
  190. package/lib/unpackedapplication.js +58 -10
  191. package/lib/unpackedapplication.js.map +1 -1
  192. package/lib/utils/context.d.ts +76 -29
  193. package/lib/utils/context.js +91 -55
  194. package/lib/utils/context.js.map +1 -1
  195. package/lib/utils/context.spec.d.ts +9 -1
  196. package/lib/utils/context.spec.js +73 -8
  197. package/lib/utils/context.spec.js.map +1 -1
  198. package/lib/utils/cookie.d.ts +4 -5
  199. package/lib/utils/cookie.js +1 -2
  200. package/lib/utils/cookie.js.map +1 -1
  201. package/lib/utils/cookie.spec.js +5 -3
  202. package/lib/utils/cookie.spec.js.map +1 -1
  203. package/lib/utils/httpcontext.spec.js +9 -3
  204. package/lib/utils/httpcontext.spec.js.map +1 -1
  205. package/lib/utils/serializers.d.ts +46 -17
  206. package/lib/utils/serializers.js +116 -2
  207. package/lib/utils/serializers.js.map +1 -1
  208. package/lib/utils/serializers.spec.js +84 -20
  209. package/lib/utils/serializers.spec.js.map +1 -1
  210. package/lib/utils/session.d.ts +14 -8
  211. package/lib/utils/session.js +14 -3
  212. package/lib/utils/session.js.map +1 -1
  213. package/lib/utils/session.spec.js +6 -1
  214. package/lib/utils/session.spec.js.map +1 -1
  215. package/package.json +16 -10
  216. package/test/cachedapp/webda.config.json +6 -1
  217. package/test/config-cached.json +5 -0
  218. package/test/config-file-missing-file.json +5 -7
  219. package/test/config-file-no-reload.json +5 -7
  220. package/test/config-file-reload.json +5 -7
  221. package/test/config-kube-reload.json +5 -11
  222. package/test/config-reload.json +2 -4
  223. package/test/config.json +12 -2
  224. package/test/moddas/voidstore.js +1 -1
  225. package/test/models/ident.js +6 -4
  226. package/test/models/task.js +4 -4
  227. package/webda.module.json +1587 -1266
@@ -1,6 +1,7 @@
1
1
  import { CoreModel, Store } from "../index.js";
2
2
  import { StoreTest } from "./store.spec.js";
3
3
  declare class MemoryStoreTest extends StoreTest {
4
+ before(): Promise<void>;
4
5
  getIdentStore(): Store<any>;
5
6
  getUserStore(): Store<any>;
6
7
  getIndex(): Promise<CoreModel>;
@@ -11,6 +12,8 @@ declare class MemoryStoreTest extends StoreTest {
11
12
  getSync(): void;
12
13
  badActions(): Promise<void>;
13
14
  multiModel(): Promise<void>;
15
+ multiModelQuery(): Promise<void>;
16
+ migration(): Promise<void>;
14
17
  persistence(): Promise<void>;
15
18
  }
16
19
  export { MemoryStoreTest };
@@ -7,17 +7,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { suite, test } from "@testdeck/mocha";
8
8
  import * as assert from "assert";
9
9
  import { existsSync, unlinkSync } from "fs";
10
- import { Ident, User } from "../index.js";
10
+ import { Ident, User, WebdaError } from "../index.js";
11
11
  import { HttpContext } from "../utils/httpcontext.js";
12
12
  import { JSONUtils } from "../utils/serializers.js";
13
13
  import { StoreNotFoundError } from "./store.js";
14
14
  import { PermissionModel, StoreTest } from "./store.spec.js";
15
15
  import { WebdaQL } from "./webdaql/query.js";
16
16
  let MemoryStoreTest = class MemoryStoreTest extends StoreTest {
17
+ async before() {
18
+ this.cleanFiles.push(".test.json");
19
+ return super.before();
20
+ }
17
21
  getIdentStore() {
18
22
  // Need to slow down the _get
19
23
  let store = this.getService("MemoryIdents");
24
+ // @ts-ignore
20
25
  let original = store._get.bind(store);
26
+ // @ts-ignore
21
27
  store._get = async (...args) => {
22
28
  await this.sleep(1);
23
29
  return original(...args);
@@ -28,16 +34,16 @@ let MemoryStoreTest = class MemoryStoreTest extends StoreTest {
28
34
  return this.getService("MemoryUsers");
29
35
  }
30
36
  async getIndex() {
31
- return this.getService("memoryaggregators").get("index");
37
+ return this.getService("MemoryAggregators").get("index");
32
38
  }
33
39
  async recreateIndex() {
34
- let store = this.getService("memoryaggregators");
40
+ let store = this.getService("MemoryAggregators");
35
41
  await store.__clean();
36
- await this.getService("memoryidentsindexer").createAggregate();
42
+ await this.getService("MemoryIdentsIndexer").createAggregate();
37
43
  }
38
44
  async deleteAsyncHttp() {
39
45
  let executor, ctx;
40
- ctx = await this.webda.newContext(new HttpContext("test.webda.io", "GET", "/memory/idents/ToDelete"));
46
+ ctx = await this.webda.newWebContext(new HttpContext("test.webda.io", "GET", "/memory/idents/ToDelete"));
41
47
  let identStore = this.getIdentStore();
42
48
  await identStore.save({
43
49
  uuid: "toDelete",
@@ -46,13 +52,13 @@ let MemoryStoreTest = class MemoryStoreTest extends StoreTest {
46
52
  await identStore.delete("toDelete");
47
53
  executor = this.getExecutor(ctx, "test.webda.io", "GET", "/memory/idents/toDelete");
48
54
  assert.notStrictEqual(executor, undefined);
49
- await assert.rejects(() => executor.execute(ctx), err => err == 404);
55
+ await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
50
56
  executor = this.getExecutor(ctx, "test.webda.io", "PUT", "/memory/idents/toDelete");
51
57
  assert.notStrictEqual(executor, undefined);
52
- await assert.rejects(() => executor.execute(ctx), err => err == 404);
58
+ await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
53
59
  executor = this.getExecutor(ctx, "test.webda.io", "DELETE", "/memory/idents/toDelete");
54
60
  assert.notStrictEqual(executor, undefined);
55
- await assert.rejects(() => executor.execute(ctx), err => err == 404);
61
+ await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
56
62
  assert.strictEqual(identStore._getSync("notFound"), null);
57
63
  }
58
64
  async queryAdditional() {
@@ -119,19 +125,96 @@ let MemoryStoreTest = class MemoryStoreTest extends StoreTest {
119
125
  async multiModel() {
120
126
  let identStore = this.getIdentStore();
121
127
  identStore.getParameters().strict = false;
122
- await identStore.save(new User().load({ uuid: "user" }, true));
128
+ await identStore.save(new User().setUuid("user"));
123
129
  await identStore.save(new Ident().load({ uuid: "ident" }, true));
124
130
  assert.ok((await identStore.get("user")) instanceof User);
125
131
  assert.ok((await identStore.get("ident")) instanceof Ident);
126
132
  identStore.getParameters().defaultModel = true;
127
- // @ts-ignore
128
- identStore.storage["user"] = identStore.storage["user"].replace(/webda\/user/, "webda/user2");
133
+ identStore.storage["user"] = identStore.storage["user"].replace(/User/, "User2");
129
134
  assert.ok((await identStore.get("user")).constructor.name === "Ident");
130
135
  assert.ok((await identStore.get("ident")) instanceof Ident);
131
136
  identStore.getParameters().defaultModel = false;
132
137
  await assert.rejects(() => identStore.get("user"));
133
138
  assert.ok((await identStore.get("ident")) instanceof Ident);
134
139
  }
140
+ async multiModelQuery() {
141
+ const Teacher = this.webda.getModel("Teacher");
142
+ const Project = this.webda.getModel("Project");
143
+ const SubProject = this.webda.getModel("SubProject");
144
+ const AnotherSubProject = this.webda.getModel("AnotherSubProject");
145
+ const SubSubProject = this.webda.getModel("SubSubProject");
146
+ await Promise.all([Teacher, Project, SubProject, AnotherSubProject, SubSubProject].map(model => {
147
+ let p = [];
148
+ for (let i = 1; i < 4; i++) {
149
+ p.push(model.create({ name: `${model.name} ${i}` }));
150
+ }
151
+ return Promise.all(p);
152
+ }));
153
+ assert.strictEqual((await Teacher.query("")).results.length, 3);
154
+ assert.strictEqual((await Teacher.query("", false)).results.length, 3);
155
+ assert.strictEqual((await Project.query("")).results.length, 12);
156
+ assert.strictEqual((await Project.query("", false)).results.length, 3);
157
+ assert.strictEqual((await AnotherSubProject.query("")).results.length, 6);
158
+ assert.strictEqual((await AnotherSubProject.query("", false)).results.length, 3);
159
+ assert.strictEqual((await SubProject.query("")).results.length, 3);
160
+ assert.strictEqual((await SubProject.query("", false)).results.length, 3);
161
+ }
162
+ async migration() {
163
+ let usersStore = this.getUserStore();
164
+ for (let i = 0; i < 1200; i++) {
165
+ await usersStore.save({ uuid: `id_${i}`, id: i });
166
+ if (i % 10 === 0) {
167
+ usersStore.storage[`id_${i}`] = usersStore.storage[`id_${i}`].replace(/Webda\/User/, "webda/user2");
168
+ }
169
+ else if (i % 2 === 0) {
170
+ usersStore.storage[`id_${i}`] = usersStore.storage[`id_${i}`].replace(/Webda\/User/, "webdademo/user");
171
+ }
172
+ }
173
+ await usersStore.v3Migration();
174
+ (await usersStore.getAll()).forEach(user => {
175
+ if (user.id % 10 === 0) {
176
+ assert.strictEqual(user.__type, "webda/user2");
177
+ assert.deepStrictEqual(user.__types, ["webda/user2"]);
178
+ }
179
+ else if (user.id % 2 === 0) {
180
+ assert.strictEqual(user.__type, "WebdaDemo/User");
181
+ assert.deepStrictEqual(user.__types, ["User", "Webda/User"]);
182
+ }
183
+ else {
184
+ assert.strictEqual(user.__type, "Webda/User");
185
+ assert.deepStrictEqual(user.__types, ["Webda/User"]);
186
+ }
187
+ });
188
+ usersStore.getParameters().modelAliases = {
189
+ "webda/user2": "WebdaDemo/User"
190
+ };
191
+ await usersStore.cleanModelAliases();
192
+ (await usersStore.getAll()).forEach(user => {
193
+ if (user.id % 10 === 0) {
194
+ assert.strictEqual(user.__type, "WebdaDemo/User");
195
+ }
196
+ else if (user.id % 2 === 0) {
197
+ assert.strictEqual(user.__type, "WebdaDemo/User");
198
+ }
199
+ else {
200
+ assert.strictEqual(user.__type, "Webda/User");
201
+ }
202
+ });
203
+ await usersStore.recomputeTypeShortId();
204
+ (await usersStore.getAll()).forEach(user => {
205
+ if (user.id % 10 === 0) {
206
+ assert.strictEqual(user.__type, "User");
207
+ }
208
+ else if (user.id % 2 === 0) {
209
+ assert.strictEqual(user.__type, "User");
210
+ }
211
+ else {
212
+ assert.strictEqual(user.__type, "Webda/User");
213
+ }
214
+ });
215
+ await usersStore.getMigration(`storeMigration.${usersStore.getName()}.typesShortId`);
216
+ await usersStore.cancelMigration(`storeMigration.${usersStore.getName()}.typesShortId`);
217
+ }
135
218
  async persistence() {
136
219
  // Remove the path if exists
137
220
  if (existsSync(".test.json")) {
@@ -187,6 +270,12 @@ __decorate([
187
270
  __decorate([
188
271
  test
189
272
  ], MemoryStoreTest.prototype, "multiModel", null);
273
+ __decorate([
274
+ test
275
+ ], MemoryStoreTest.prototype, "multiModelQuery", null);
276
+ __decorate([
277
+ test
278
+ ], MemoryStoreTest.prototype, "migration", null);
190
279
  __decorate([
191
280
  test
192
281
  ], MemoryStoreTest.prototype, "persistence", null);
@@ -1 +1 @@
1
- {"version":3,"file":"memory.spec.js","sourceRoot":"","sources":["../../src/stores/memory.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.spec.js","sourceRoot":"","sources":["../../src/stores/memory.spec.ts"],"names":[],"mappings":"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"}