@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 +1 @@
1
- {"version":3,"file":"ownermodel.js","sourceRoot":"","sources":["../../src/models/ownermodel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAgBvC;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAY;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,CAAC;SACX;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAY,EACZ,MASU;QAEV,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC5B;aAAM,IACL,MAAM,KAAK,QAAQ;YACnB,MAAM,KAAK,eAAe;YAC1B,MAAM,KAAK,eAAe;YAC1B,MAAM,KAAK,wBAAwB,EACnC;YACA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC5B;aAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,YAAY,EAAE;YACtD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAiB;QACzC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,OAAO;YACL,KAAK,EAAE,YAAY,OAAO,CAAC,gBAAgB,EAAE,oBAAoB;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAY;QAC1B,oCAAoC;QACpC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;YAC5G,MAAM,GAAG,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAY;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAY;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"ownermodel.js","sourceRoot":"","sources":["../../src/models/ownermodel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAgBvC;;;OAGG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,KAAV,IAAI,CAAC,KAAK,GAAK,IAAI,SAAS,CAAO,IAAI,EAAO,IAAI,CAAC,EAAC;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAA+B,EAAE,OAAY,EAAE,cAAwB;QAC9E,OAAO,CAAC,KAAK,KAAb,OAAO,CAAC,KAAK,GAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAC;QACzC,OAAO,CAAC,IAAI,KAAZ,OAAO,CAAC,IAAI,GAAK,IAAI,CAAC,WAAW,EAAE,EAAC;QACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAqB,EACrB,MASU;QAEV,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,YAAY,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE;YAClC,OAAO,gDAAgD,CAAC;SACzD;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,KAAK,QAAQ,EAAE;YAClD,OAAO,+BAA+B,CAAC;SACxC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAA0B;QAClD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,OAAO;YACL,KAAK,EAAE,YAAY,OAAO,CAAC,gBAAgB,EAAE,oBAAoB;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;CACF"}
@@ -11,7 +11,7 @@ import { WebdaTest } from "../test.js";
11
11
  let OwnerModelTest = class OwnerModelTest extends WebdaTest {
12
12
  async before() {
13
13
  await super.before();
14
- this._ctx = await this.webda.newContext(new HttpContext("test.webda.io", "GET", "/"));
14
+ this._ctx = await this.webda.newWebContext(new HttpContext("test.webda.io", "GET", "/"));
15
15
  this._session = await this._ctx.newSession();
16
16
  this._session.login("none", "none");
17
17
  // @ts-ignore
@@ -43,6 +43,9 @@ let OwnerModelTest = class OwnerModelTest extends WebdaTest {
43
43
  uuid: "task_public",
44
44
  public: true
45
45
  });
46
+ await this._taskStore.save({
47
+ uuid: "task_no_owner"
48
+ });
46
49
  }
47
50
  async postNotLogged() {
48
51
  await this.beforeEach();
@@ -50,7 +53,7 @@ let OwnerModelTest = class OwnerModelTest extends WebdaTest {
50
53
  name: "Task #1"
51
54
  });
52
55
  assert.notStrictEqual(executor, undefined);
53
- await assert.rejects(() => executor.execute(this._ctx), /403/);
56
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
54
57
  }
55
58
  async post() {
56
59
  let executor = this.getExecutor(this._ctx, "test.webda.io", "POST", "/tasks", {
@@ -62,16 +65,22 @@ let OwnerModelTest = class OwnerModelTest extends WebdaTest {
62
65
  assert.strictEqual(task.name, "Task #1");
63
66
  }
64
67
  async getWrongOwner() {
68
+ await this.beforeEach();
69
+ this._ctx.getSession().login("fake_user2", "fake_ident");
70
+ let executor = this.getExecutor(this._ctx, "test.webda.io", "GET", "/tasks/task_no_owner", {});
71
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
72
+ }
73
+ async getNoOwner() {
65
74
  await this.beforeEach();
66
75
  this._ctx.getSession().login("fake_user2", "fake_ident");
67
76
  let executor = this.getExecutor(this._ctx, "test.webda.io", "GET", "/tasks/task_user1", {});
68
- await assert.rejects(() => executor.execute(this._ctx), /403/);
77
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
69
78
  }
70
79
  async putWrongOwner() {
71
80
  await this.beforeEach();
72
81
  this._session.login("fake_user2", "fake_ident");
73
82
  let executor = this.getExecutor(this._ctx, "test.webda.io", "PUT", "/tasks/task_user1", {});
74
- await assert.rejects(() => executor.execute(this._ctx), /403/);
83
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
75
84
  }
76
85
  async put() {
77
86
  await this.beforeEach();
@@ -98,19 +107,19 @@ let OwnerModelTest = class OwnerModelTest extends WebdaTest {
98
107
  let res = await this._taskStore.query("", this._ctx);
99
108
  assert.deepStrictEqual(res.results.map(r => r.getUuid()).sort(), ["task_public", "task_user2"]);
100
109
  res = await this._taskStore.query("");
101
- assert.deepStrictEqual(res.results.length, 3);
110
+ assert.deepStrictEqual(res.results.length, 4);
102
111
  res = await this._taskStore.query("uuid = 'task_user1'", this._ctx);
103
112
  assert.deepStrictEqual(res.results.length, 0);
104
113
  res = await this._taskStore.query("uuid = 'task_public'", this._ctx);
105
114
  assert.deepStrictEqual(res.results.length, 1);
106
115
  }
107
- async actioms() {
116
+ async actions() {
108
117
  await this.beforeEach();
109
118
  this._session.login("fake_user2", "fake_ident");
110
119
  let executor = this.getExecutor(this._ctx, "test.webda.io", "GET", "/tasks/task_user1/actionable");
111
120
  await executor.execute(this._ctx);
112
121
  executor = this.getExecutor(this._ctx, "test.webda.io", "PUT", "/tasks/task_user1/impossible");
113
- await assert.rejects(() => executor.execute(this._ctx), /403/);
122
+ await assert.rejects(() => executor.execute(this._ctx), /No permission/);
114
123
  }
115
124
  async delete() {
116
125
  await this.beforeEach();
@@ -122,19 +131,19 @@ let OwnerModelTest = class OwnerModelTest extends WebdaTest {
122
131
  await this.beforeEach();
123
132
  this._session.login("fake_user2", "fake_ident");
124
133
  let executor = this.getExecutor(this._ctx, "test.webda.io", "DELETE", "/tasks/task_user1");
125
- await assert.rejects(() => executor.execute(this._ctx), /403/);
134
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
126
135
  }
127
136
  async deleteWrongOwnerPublic() {
128
137
  await this.beforeEach();
129
138
  this._session.login("fake_user2", "fake_ident");
130
139
  let executor = this.getExecutor(this._ctx, "test.webda.io", "DELETE", "/tasks/task_public");
131
- await assert.rejects(() => executor.execute(this._ctx), /403/);
140
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 403);
132
141
  }
133
142
  async deleteUnknown() {
134
143
  await this.beforeEach();
135
144
  this._session.login("fake_user2", "fake_ident");
136
145
  let executor = this.getExecutor(this._ctx, "test.webda.io", "DELETE", "/tasks/task_unknown");
137
- await assert.rejects(() => executor.execute(this._ctx), /404/);
146
+ await assert.rejects(() => executor.execute(this._ctx), (err) => err.getResponseCode() === 404);
138
147
  }
139
148
  };
140
149
  __decorate([
@@ -146,6 +155,9 @@ __decorate([
146
155
  __decorate([
147
156
  test("GET - wrong owner")
148
157
  ], OwnerModelTest.prototype, "getWrongOwner", null);
158
+ __decorate([
159
+ test("GET - no owner")
160
+ ], OwnerModelTest.prototype, "getNoOwner", null);
149
161
  __decorate([
150
162
  test("PUT - wrong owner")
151
163
  ], OwnerModelTest.prototype, "putWrongOwner", null);
@@ -160,7 +172,7 @@ __decorate([
160
172
  ], OwnerModelTest.prototype, "queryPermission", null);
161
173
  __decorate([
162
174
  test("Actions")
163
- ], OwnerModelTest.prototype, "actioms", null);
175
+ ], OwnerModelTest.prototype, "actions", null);
164
176
  __decorate([
165
177
  test("DELETE")
166
178
  ], OwnerModelTest.prototype, "delete", null);
@@ -1 +1 @@
1
- {"version":3,"file":"ownermodel.spec.js","sourceRoot":"","sources":["../../src/models/ownermodel.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ownermodel.spec.js","sourceRoot":"","sources":["../../src/models/ownermodel.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ import { CoreModel, CoreModelDefinition, ModelAction, ModelRef, ModelRefCustomProperties } from "./coremodel.js";
2
+ /**
3
+ * Attribute of an object
4
+ *
5
+ * Filter out methods
6
+ */
7
+ export type Attributes<T extends object> = {
8
+ [K in keyof T]: T[K] extends Function ? never : K;
9
+ }[keyof T];
10
+ /**
11
+ * Raw model without methods
12
+ */
13
+ export type RawModel<T extends object> = {
14
+ [K in Attributes<T>]?: T[K] extends object ? RawModel<T[K]> : T[K];
15
+ };
16
+ /**
17
+ * Methods of an object
18
+ *
19
+ * Filter out attributes
20
+ */
21
+ export type Methods<T extends object> = {
22
+ [K in keyof T]: T[K] extends Function ? K : never;
23
+ }[keyof T];
24
+ /**
25
+ * Load related objects
26
+ *
27
+ * _K is not used but is required to complete the graph
28
+ */
29
+ export type ModelRelated<T extends CoreModel, _K extends Attributes<T>> = {
30
+ /**
31
+ * Query the related objects
32
+ * @param query
33
+ * @returns
34
+ */
35
+ query: (query?: string) => Promise<{
36
+ results: T[];
37
+ continuationToken?: string;
38
+ }>;
39
+ /**
40
+ *
41
+ * @param model Iterate through all related objects
42
+ * @returns
43
+ */
44
+ forEach: (model: T) => Promise<void>;
45
+ /**
46
+ * Get all object linked
47
+ * @returns
48
+ */
49
+ getAll: () => Promise<T[]>;
50
+ };
51
+ /**
52
+ * Define a link to 1:n relation
53
+ */
54
+ export declare class ModelLink<T extends CoreModel> {
55
+ protected uuid: string;
56
+ protected model: CoreModelDefinition<T>;
57
+ constructor(uuid: string, model: CoreModelDefinition<T>);
58
+ get(): Promise<T>;
59
+ set(id: string | T): void;
60
+ toString(): string;
61
+ toJSON(): string;
62
+ getUuid(): string;
63
+ }
64
+ /**
65
+ * Methods that allow to manage a collection of linked objects
66
+ */
67
+ type ModelCollectionManager<T> = {
68
+ /**
69
+ * Add a linked object
70
+ * @param model
71
+ * @returns
72
+ */
73
+ add: (model: T) => void;
74
+ /**
75
+ * Remove a linked object
76
+ * @param model the model to remove or its uuid
77
+ * @returns
78
+ */
79
+ remove: (model: T | string) => void;
80
+ };
81
+ export declare class ModelLinksSimpleArray<T extends CoreModel> extends Array<ModelRef<T>> {
82
+ protected model: CoreModelDefinition<T>;
83
+ constructor(model: CoreModelDefinition<T>, content?: any[]);
84
+ add(model: string | ModelRef<T> | T): void;
85
+ remove(model: ModelRef<T> | string | T): void;
86
+ }
87
+ export declare class ModelLinksArray<T extends CoreModel, K> extends Array<ModelRefCustomProperties<T, (K & {
88
+ uuid: string;
89
+ }) | {
90
+ getUuid: () => string;
91
+ }>> {
92
+ protected model: CoreModelDefinition<T>;
93
+ constructor(model: CoreModelDefinition<T>, content?: any[]);
94
+ add(model: ModelRefCustomProperties<T, (K & {
95
+ uuid: string;
96
+ }) | {
97
+ getUuid: () => string;
98
+ }> | ((K & {
99
+ uuid: string;
100
+ }) | {
101
+ getUuid: () => string;
102
+ })): void;
103
+ remove(model: ModelRefCustomProperties<T, K> | string | T): void;
104
+ }
105
+ /**
106
+ * Define 1:n relation with some sort of additional data or duplicated data
107
+ *
108
+ * The key of the map is the value of the FK
109
+ */
110
+ export type ModelLinksMap<T extends CoreModel, K> = Readonly<{
111
+ [key: string]: ModelRefCustomProperties<T, K & ({
112
+ uuid: string;
113
+ } | {
114
+ getUuid: () => string;
115
+ })>;
116
+ }> & ModelCollectionManager<K & ({
117
+ uuid: string;
118
+ } | {
119
+ getUuid: () => string;
120
+ })>;
121
+ export declare function createModelLinksMap<T extends CoreModel>(model: CoreModelDefinition<any>, data?: any): {
122
+ add: (model: ModelRefCustomProperties<T, any>) => void;
123
+ remove: (model: ModelRefCustomProperties<T, any> | string) => void;
124
+ };
125
+ /**
126
+ * Define the parent of the model
127
+ */
128
+ export type ModelParent<T extends CoreModel> = ModelLink<T>;
129
+ /**
130
+ * Define an export of actions from Model
131
+ */
132
+ export type ModelActions = {
133
+ [key: string]: ModelAction;
134
+ };
135
+ /**
136
+ * Mapper attribute (target of a Mapper service)
137
+ *
138
+ * This is not exported as when mapped the target is always an array
139
+ * TODO Handle 1:1 map
140
+ */
141
+ export declare class ModelMapLoaderImplementation<T extends CoreModel, K = any> {
142
+ protected _model: any;
143
+ /**
144
+ * The uuid of the object
145
+ */
146
+ uuid: string;
147
+ constructor(model: CoreModelDefinition<T>, data: {
148
+ uuid: string;
149
+ } & K);
150
+ /**
151
+ *
152
+ * @returns the model
153
+ */
154
+ get(): Promise<T>;
155
+ }
156
+ /**
157
+ * Mapper attribute (target of a Mapper service)
158
+ *
159
+ * This is not exported as when mapped the target is always an array
160
+ * TODO Handle 1:1 map
161
+ */
162
+ export type ModelMapLoader<T extends CoreModel, K extends keyof T> = ModelMapLoaderImplementation<T, K> & Pick<T, K>;
163
+ /**
164
+ * Define a ModelMap attribute
165
+ */
166
+ export type ModelsMapped<T extends CoreModel, K extends Attributes<T>> = Readonly<ModelMapLoader<T, K>[]>;
167
+ export {};
@@ -0,0 +1,113 @@
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 { ModelRef, ModelRefCustom, NotEnumerable } from "./coremodel.js";
8
+ /**
9
+ * Define a link to 1:n relation
10
+ */
11
+ /*
12
+ export type ModelLink<T extends CoreModel, _FK extends keyof T = any> = ModelLoader<T> &
13
+ String & {
14
+ set: (id: string) => void;
15
+ };
16
+ */
17
+ export class ModelLink {
18
+ constructor(uuid, model) {
19
+ this.uuid = uuid;
20
+ this.model = model;
21
+ }
22
+ async get() {
23
+ return this.model.ref(this.uuid).get();
24
+ }
25
+ set(id) {
26
+ this.uuid = typeof id === "string" ? id : id.getUuid();
27
+ }
28
+ toString() {
29
+ return this.uuid;
30
+ }
31
+ toJSON() {
32
+ return this.uuid;
33
+ }
34
+ getUuid() {
35
+ return this.uuid;
36
+ }
37
+ }
38
+ export class ModelLinksSimpleArray extends Array {
39
+ constructor(model, content = []) {
40
+ super();
41
+ this.model = model;
42
+ content.forEach(c => this.add(c));
43
+ }
44
+ add(model) {
45
+ this.push(typeof model === "string" ? new ModelRef(model, this.model) : new ModelRef(model.getUuid(), this.model));
46
+ }
47
+ remove(model) {
48
+ let index = this.findIndex(m => m.toString() === (typeof model === "string" ? model : model.getUuid()));
49
+ if (index >= 0) {
50
+ this.splice(index, 1);
51
+ }
52
+ }
53
+ }
54
+ export class ModelLinksArray extends Array {
55
+ constructor(model, content = []) {
56
+ super();
57
+ this.model = model;
58
+ this.push(...content.filter(c => c && c.uuid).map(c => new ModelRefCustom(c.uuid, model, c)));
59
+ }
60
+ add(model) {
61
+ this.push(((model instanceof ModelRefCustom
62
+ ? model
63
+ : new ModelRefCustom(model.uuid || model.getUuid(), this.model, model))));
64
+ }
65
+ remove(model) {
66
+ const uuid = typeof model === "string" ? model : model.uuid || model.getUuid();
67
+ let index = this.findIndex(m => m.getUuid() === uuid);
68
+ if (index >= 0) {
69
+ this.splice(index, 1);
70
+ }
71
+ }
72
+ }
73
+ export function createModelLinksMap(model, data = {}) {
74
+ let result = {
75
+ add: (model) => {
76
+ result[model.uuid || model.getUuid()] = model;
77
+ },
78
+ remove: (model) => {
79
+ // @ts-ignore
80
+ const uuid = typeof model === "string" ? model : model.uuid || model.getUuid();
81
+ delete result[uuid];
82
+ }
83
+ };
84
+ Object.keys(data)
85
+ .filter(k => k !== "__proto__")
86
+ .forEach(key => {
87
+ result[key] = new ModelRefCustom(data[key].uuid, model, data[key]);
88
+ });
89
+ return result;
90
+ }
91
+ /**
92
+ * Mapper attribute (target of a Mapper service)
93
+ *
94
+ * This is not exported as when mapped the target is always an array
95
+ * TODO Handle 1:1 map
96
+ */
97
+ export class ModelMapLoaderImplementation {
98
+ constructor(model, data) {
99
+ Object.assign(this, data);
100
+ this._model = model;
101
+ }
102
+ /**
103
+ *
104
+ * @returns the model
105
+ */
106
+ async get() {
107
+ return this._model.ref(this.uuid).get();
108
+ }
109
+ }
110
+ __decorate([
111
+ NotEnumerable
112
+ ], ModelMapLoaderImplementation.prototype, "_model", void 0);
113
+ //# sourceMappingURL=relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/models/relations.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { Context, CoreModel } from "../index.js";
1
+ import { CoreModel, OperationContext } from "../index.js";
2
2
  declare abstract class RoleModel extends CoreModel {
3
3
  abstract getRolesMap(): {
4
4
  [key: string]: string;
5
5
  };
6
6
  isPermissive(): boolean;
7
- getRoles(ctx: Context): Promise<string[]>;
8
- canAct(ctx: Context, action: string): Promise<this>;
7
+ getRoles(ctx: OperationContext): Promise<string[]>;
8
+ canAct(ctx: OperationContext, action: string): Promise<string | boolean>;
9
9
  }
10
10
  export { RoleModel };
@@ -1,11 +1,11 @@
1
- import { CoreModel } from "../index.js";
1
+ import { CoreModel, WebdaError } from "../index.js";
2
2
  class RoleModel extends CoreModel {
3
3
  isPermissive() {
4
4
  return false;
5
5
  }
6
6
  async getRoles(ctx) {
7
7
  if (!ctx.getCurrentUserId()) {
8
- throw 403;
8
+ throw new WebdaError.Forbidden("No user");
9
9
  }
10
10
  // If roles are cached in session
11
11
  if (ctx.getSession().roles) {
@@ -20,15 +20,15 @@ class RoleModel extends CoreModel {
20
20
  // If this action doesn't require role
21
21
  if (!this.getRolesMap()[action]) {
22
22
  if (this.isPermissive()) {
23
- return this;
23
+ return true;
24
24
  }
25
- throw 403;
25
+ return "No permission for this action defined";
26
26
  }
27
27
  let roles = await this.getRoles(ctx);
28
28
  if (roles.indexOf(this.getRolesMap()[action]) >= 0) {
29
- return this;
29
+ return true;
30
30
  }
31
- throw 403;
31
+ return "No permission";
32
32
  }
33
33
  }
34
34
  export { RoleModel };
@@ -1 +1 @@
1
- {"version":3,"file":"rolemodel.js","sourceRoot":"","sources":["../../src/models/rolemodel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9C,MAAe,SAAU,SAAQ,SAAS;IAGxC,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAY;QACzB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE;YAC3B,MAAM,GAAG,CAAC;SACX;QACD,iCAAiC;QACjC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;YAC1B,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;SAC/B;QACD,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACtC,yBAAyB;QACzB,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,MAAc;QACvC,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,GAAG,CAAC;SACX;QACD,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"rolemodel.js","sourceRoot":"","sources":["../../src/models/rolemodel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,MAAe,SAAU,SAAQ,SAAS;IAGxC,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAqB;QAClC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE;YAC3B,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,iCAAiC;QACjC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;YAC1B,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;SAC/B;QACD,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACtC,yBAAyB;QACzB,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAqB,EAAE,MAAc;QAChD,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YACD,OAAO,uCAAuC,CAAC;SAChD;QACD,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { suite, test } from "@testdeck/mocha";
8
8
  import * as assert from "assert";
9
- import { Core, HttpContext, RoleModel, User } from "../index.js";
9
+ import { Core, HttpContext, RoleModel, SimpleUser, WebdaError } from "../index.js";
10
10
  import { TestApplication } from "../test.js";
11
11
  import { getCommonJS } from "../utils/esm.js";
12
12
  const { __dirname } = getCommonJS(import.meta.url);
@@ -36,8 +36,8 @@ let RolePolicyTest = class RolePolicyTest {
36
36
  await app.load();
37
37
  this._webda = new Core(app);
38
38
  await this._webda.init();
39
- this._ctx = await this._webda.newContext(new HttpContext("test.webda.io", "GET", "/"));
40
- this._session = this._ctx.newSession();
39
+ this._ctx = await this._webda.newWebContext(new HttpContext("test.webda.io", "GET", "/"));
40
+ this._session = await this._ctx.newSession();
41
41
  this._session.login("none", "none");
42
42
  // @ts-ignore
43
43
  this._ctx.getCurrentUser = async () => {
@@ -45,27 +45,27 @@ let RolePolicyTest = class RolePolicyTest {
45
45
  };
46
46
  this.nonPermissive = new RolePolicyModel();
47
47
  this.permissive = new RolePolicyModelPermissive();
48
- this._user = new User();
48
+ this._user = new SimpleUser();
49
49
  this._user.addRole("member");
50
50
  }
51
51
  async noLogged() {
52
52
  this._ctx.getSession().logout();
53
- assert.rejects(() => this.permissive.canAct(this._ctx, "get"), /403/g);
53
+ assert.rejects(() => this.permissive.checkAct(this._ctx, "get"), (err) => err.getResponseCode() === 403);
54
54
  }
55
55
  async get() {
56
- assert.strictEqual(await this.permissive.canAct(this._ctx, "get"), this.permissive);
57
- assert.strictEqual(await this.nonPermissive.canAct(this._ctx, "get"), this.nonPermissive);
56
+ assert.strictEqual(await this.permissive.canAct(this._ctx, "get"), true);
57
+ assert.strictEqual(await this.nonPermissive.canAct(this._ctx, "get"), true);
58
58
  }
59
59
  async action() {
60
- assert.strictEqual(await this.permissive.canAct(this._ctx, "action"), this.permissive);
61
- await assert.rejects(this.nonPermissive.canAct.bind(this.nonPermissive, this._ctx, "action"));
60
+ assert.strictEqual(await this.permissive.canAct(this._ctx, "action"), true);
61
+ await assert.rejects(() => this.nonPermissive.checkAct(this._ctx, "action"), WebdaError.Forbidden);
62
62
  }
63
63
  async delete() {
64
- assert.strictEqual(await this.permissive.canAct(this._ctx, "delete"), this.permissive);
65
- await assert.rejects(this.nonPermissive.canAct.bind(this.nonPermissive, this._ctx, "delete"));
64
+ assert.strictEqual(await this.permissive.canAct(this._ctx, "delete"), true);
65
+ await assert.rejects(() => this.nonPermissive.checkAct(this._ctx, "delete"));
66
66
  this._user.addRole("admin");
67
67
  this._session.roles = undefined;
68
- assert.strictEqual(await this.nonPermissive.canAct(this._ctx, "delete"), this.nonPermissive);
68
+ assert.strictEqual(await this.nonPermissive.canAct(this._ctx, "delete"), true);
69
69
  }
70
70
  };
71
71
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"rolemodel.spec.js","sourceRoot":"","sources":["../../src/models/rolemodel.spec.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAW,IAAI,EAAE,WAAW,EAAE,SAAS,EAAW,IAAI,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,eAAgB,SAAQ,SAAS;IACrC,WAAW;QACT,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,yBAA0B,SAAQ,SAAS;IAC/C,WAAW;QACT,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAGD,IAAM,cAAc,GAApB,MAAM,cAAc;IAQlB,KAAK,CAAC,MAAM;QACV,IAAI,GAAG,GAAG,IAAI,eAAe,CAAC,SAAS,GAAG,yBAAyB,CAAC,CAAC;QACrE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEW,AAAN,KAAK,CAAC,QAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IACW,AAAN,KAAK,CAAC,GAAG;QACb,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpF,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5F,CAAC;IACW,AAAN,KAAK,CAAC,MAAM;QAChB,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC;IAEW,AAAN,KAAK,CAAC,MAAM;QAChB,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;QAChC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/F,CAAC;CACF,CAAA;AApBa;IAAX,IAAI;8CAGJ;AACW;IAAX,IAAI;yCAGJ;AACW;IAAX,IAAI;4CAGJ;AAEW;IAAX,IAAI;4CAMJ;AA7CG,cAAc;IADnB,KAAK;GACA,cAAc,CA8CnB"}
1
+ {"version":3,"file":"rolemodel.spec.js","sourceRoot":"","sources":["../../src/models/rolemodel.spec.ts"],"names":[],"mappings":"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"}