@neuralinnovations/dataisland-sdk 0.0.1-dev2 → 0.0.1-dev20

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 (286) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +306 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/package.json +100 -0
  8. package/dist/src/appBuilder.d.ts +44 -0
  9. package/dist/src/appBuilder.d.ts.map +1 -0
  10. package/dist/src/appBuilder.js +10 -0
  11. package/dist/src/appBuilder.js.map +1 -0
  12. package/dist/src/commands/startCommandHandler.d.ts +7 -0
  13. package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
  14. package/dist/src/commands/startCommandHandler.js +17 -0
  15. package/dist/src/commands/startCommandHandler.js.map +1 -0
  16. package/dist/src/context.d.ts +23 -0
  17. package/dist/src/context.d.ts.map +1 -0
  18. package/dist/src/context.js +31 -0
  19. package/dist/src/context.js.map +1 -0
  20. package/dist/src/credentials.d.ts +28 -0
  21. package/dist/src/credentials.d.ts.map +1 -0
  22. package/dist/src/credentials.js +70 -0
  23. package/dist/src/credentials.js.map +1 -0
  24. package/dist/src/dataIslandApp.d.ts +50 -0
  25. package/dist/src/dataIslandApp.d.ts.map +1 -0
  26. package/dist/src/dataIslandApp.js +10 -0
  27. package/dist/src/dataIslandApp.js.map +1 -0
  28. package/dist/src/disposable.d.ts +84 -0
  29. package/dist/src/disposable.d.ts.map +1 -0
  30. package/dist/src/disposable.js +147 -0
  31. package/dist/src/disposable.js.map +1 -0
  32. package/dist/src/dto/accessGroupResponse.d.ts +27 -0
  33. package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
  34. package/dist/src/dto/accessGroupResponse.js +3 -0
  35. package/dist/src/dto/accessGroupResponse.js.map +1 -0
  36. package/dist/src/dto/chatResponse.d.ts +78 -0
  37. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  38. package/dist/src/dto/chatResponse.js +45 -0
  39. package/dist/src/dto/chatResponse.js.map +1 -0
  40. package/dist/src/dto/userInfoResponse.d.ts +42 -0
  41. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  42. package/dist/src/dto/userInfoResponse.js +3 -0
  43. package/dist/src/dto/userInfoResponse.js.map +1 -0
  44. package/dist/src/dto/workspacesResponse.d.ts +43 -0
  45. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  46. package/dist/src/dto/workspacesResponse.js +3 -0
  47. package/dist/src/dto/workspacesResponse.js.map +1 -0
  48. package/dist/src/events.d.ts +17 -0
  49. package/dist/src/events.d.ts.map +1 -0
  50. package/dist/src/events.js +52 -0
  51. package/dist/src/events.js.map +1 -0
  52. package/dist/src/index.d.ts +58 -0
  53. package/dist/src/index.d.ts.map +1 -0
  54. package/dist/src/index.js +91 -0
  55. package/dist/src/index.js.map +1 -0
  56. package/dist/src/internal/app.impl.d.ts +28 -0
  57. package/dist/src/internal/app.impl.d.ts.map +1 -0
  58. package/dist/src/internal/app.impl.js +151 -0
  59. package/dist/src/internal/app.impl.js.map +1 -0
  60. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  61. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  62. package/dist/src/internal/appBuilder.impl.js +71 -0
  63. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  64. package/dist/src/internal/createApp.impl.d.ts +4 -0
  65. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  66. package/dist/src/internal/createApp.impl.js +11 -0
  67. package/dist/src/internal/createApp.impl.js.map +1 -0
  68. package/dist/src/internal/registry.d.ts +66 -0
  69. package/dist/src/internal/registry.d.ts.map +1 -0
  70. package/dist/src/internal/registry.js +114 -0
  71. package/dist/src/internal/registry.js.map +1 -0
  72. package/dist/src/middleware.d.ts +5 -0
  73. package/dist/src/middleware.d.ts.map +1 -0
  74. package/dist/src/middleware.js +3 -0
  75. package/dist/src/middleware.js.map +1 -0
  76. package/dist/src/services/commandService.d.ts +18 -0
  77. package/dist/src/services/commandService.d.ts.map +1 -0
  78. package/dist/src/services/commandService.js +40 -0
  79. package/dist/src/services/commandService.js.map +1 -0
  80. package/dist/src/services/credentialService.d.ts +9 -0
  81. package/dist/src/services/credentialService.d.ts.map +1 -0
  82. package/dist/src/services/credentialService.js +26 -0
  83. package/dist/src/services/credentialService.js.map +1 -0
  84. package/dist/src/services/middlewareService.d.ts +9 -0
  85. package/dist/src/services/middlewareService.d.ts.map +1 -0
  86. package/dist/src/services/middlewareService.js +34 -0
  87. package/dist/src/services/middlewareService.js.map +1 -0
  88. package/dist/src/services/organizationService.d.ts +10 -0
  89. package/dist/src/services/organizationService.d.ts.map +1 -0
  90. package/dist/src/services/organizationService.js +19 -0
  91. package/dist/src/services/organizationService.js.map +1 -0
  92. package/dist/src/services/requestBuilder.d.ts +17 -0
  93. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  94. package/dist/src/services/requestBuilder.js +104 -0
  95. package/dist/src/services/requestBuilder.js.map +1 -0
  96. package/dist/src/services/responseUtils.d.ts +6 -0
  97. package/dist/src/services/responseUtils.d.ts.map +1 -0
  98. package/dist/src/services/responseUtils.js +32 -0
  99. package/dist/src/services/responseUtils.js.map +1 -0
  100. package/dist/src/services/rpcService.d.ts +77 -0
  101. package/dist/src/services/rpcService.d.ts.map +1 -0
  102. package/dist/src/services/rpcService.js +125 -0
  103. package/dist/src/services/rpcService.js.map +1 -0
  104. package/dist/src/services/service.d.ts +21 -0
  105. package/dist/src/services/service.d.ts.map +1 -0
  106. package/dist/src/services/service.js +41 -0
  107. package/dist/src/services/service.js.map +1 -0
  108. package/dist/src/services/userProfileService.d.ts +8 -0
  109. package/dist/src/services/userProfileService.d.ts.map +1 -0
  110. package/dist/src/services/userProfileService.js +32 -0
  111. package/dist/src/services/userProfileService.js.map +1 -0
  112. package/dist/src/storages/chats/answer.d.ts +40 -0
  113. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  114. package/dist/src/storages/chats/answer.impl.d.ts +24 -0
  115. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  116. package/dist/src/storages/chats/answer.impl.js +130 -0
  117. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  118. package/dist/src/storages/chats/answer.js +14 -0
  119. package/dist/src/storages/chats/answer.js.map +1 -0
  120. package/dist/src/storages/chats/chat.d.ts +39 -0
  121. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  122. package/dist/src/storages/chats/chat.impl.d.ts +24 -0
  123. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  124. package/dist/src/storages/chats/chat.impl.js +98 -0
  125. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  126. package/dist/src/storages/chats/chat.js +12 -0
  127. package/dist/src/storages/chats/chat.js.map +1 -0
  128. package/dist/src/storages/chats/chats.d.ts +40 -0
  129. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  130. package/dist/src/storages/chats/chats.impl.d.ts +18 -0
  131. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  132. package/dist/src/storages/chats/chats.impl.js +102 -0
  133. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  134. package/dist/src/storages/chats/chats.js +16 -0
  135. package/dist/src/storages/chats/chats.js.map +1 -0
  136. package/dist/src/storages/files/file.d.ts +31 -0
  137. package/dist/src/storages/files/file.d.ts.map +1 -0
  138. package/dist/src/storages/files/file.impl.d.ts +21 -0
  139. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  140. package/dist/src/storages/files/file.impl.js +64 -0
  141. package/dist/src/storages/files/file.impl.js.map +1 -0
  142. package/dist/src/storages/files/file.js +11 -0
  143. package/dist/src/storages/files/file.js.map +1 -0
  144. package/dist/src/storages/files/files.d.ts +34 -0
  145. package/dist/src/storages/files/files.d.ts.map +1 -0
  146. package/dist/src/storages/files/files.impl.d.ts +22 -0
  147. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  148. package/dist/src/storages/files/files.impl.js +140 -0
  149. package/dist/src/storages/files/files.impl.js.map +1 -0
  150. package/dist/src/storages/files/files.js +20 -0
  151. package/dist/src/storages/files/files.js.map +1 -0
  152. package/dist/src/storages/files/filesPage.d.ts +28 -0
  153. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  154. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  155. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  156. package/dist/src/storages/files/filesPage.impl.js +38 -0
  157. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  158. package/dist/src/storages/files/filesPage.js +10 -0
  159. package/dist/src/storages/files/filesPage.js.map +1 -0
  160. package/dist/src/storages/groups/groups.d.ts +91 -0
  161. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  162. package/dist/src/storages/groups/groups.impl.d.ts +58 -0
  163. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  164. package/dist/src/storages/groups/groups.impl.js +275 -0
  165. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  166. package/dist/src/storages/groups/groups.js +26 -0
  167. package/dist/src/storages/groups/groups.js.map +1 -0
  168. package/dist/src/storages/organizations/organization.d.ts +54 -0
  169. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  170. package/dist/src/storages/organizations/organization.impl.d.ts +32 -0
  171. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  172. package/dist/src/storages/organizations/organization.impl.js +120 -0
  173. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  174. package/dist/src/storages/organizations/organization.js +18 -0
  175. package/dist/src/storages/organizations/organization.js.map +1 -0
  176. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  177. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  178. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  179. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  180. package/dist/src/storages/organizations/organizations.impl.js +151 -0
  181. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  182. package/dist/src/storages/organizations/organizations.js +20 -0
  183. package/dist/src/storages/organizations/organizations.js.map +1 -0
  184. package/dist/src/storages/user/userProfile.d.ts +32 -0
  185. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  186. package/dist/src/storages/user/userProfile.impl.d.ts +13 -0
  187. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  188. package/dist/src/storages/user/userProfile.impl.js +51 -0
  189. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  190. package/dist/src/storages/user/userProfile.js +12 -0
  191. package/dist/src/storages/user/userProfile.js.map +1 -0
  192. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  193. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  194. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  195. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  196. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  197. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  198. package/dist/src/storages/workspaces/workspace.js +18 -0
  199. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  200. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  201. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  202. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  203. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  204. package/dist/src/storages/workspaces/workspaces.impl.js +157 -0
  205. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  206. package/dist/src/storages/workspaces/workspaces.js +19 -0
  207. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  208. package/dist/src/unitTest.d.ts +12 -0
  209. package/dist/src/unitTest.d.ts.map +1 -0
  210. package/dist/src/unitTest.js +44 -0
  211. package/dist/src/unitTest.js.map +1 -0
  212. package/index.d.ts +1 -0
  213. package/index.js +1 -0
  214. package/package.json +43 -4
  215. package/src/appBuilder.ts +6 -6
  216. package/src/commands/startCommandHandler.ts +2 -2
  217. package/src/context.ts +5 -4
  218. package/src/credentials.ts +29 -7
  219. package/src/{appSdk.ts → dataIslandApp.ts} +7 -7
  220. package/src/disposable.ts +20 -8
  221. package/src/dto/accessGroupResponse.ts +35 -0
  222. package/src/dto/chatResponse.ts +103 -0
  223. package/src/dto/userInfoResponse.ts +15 -3
  224. package/src/dto/workspacesResponse.ts +49 -0
  225. package/src/events.ts +13 -13
  226. package/src/index.ts +41 -20
  227. package/src/internal/app.impl.ts +28 -31
  228. package/src/internal/appBuilder.impl.ts +16 -16
  229. package/src/internal/createApp.impl.ts +5 -5
  230. package/src/internal/registry.ts +54 -6
  231. package/src/services/commandService.ts +3 -3
  232. package/src/services/credentialService.ts +3 -3
  233. package/src/services/middlewareService.ts +4 -4
  234. package/src/services/organizationService.ts +18 -116
  235. package/src/services/requestBuilder.ts +40 -15
  236. package/src/services/responseUtils.ts +32 -0
  237. package/src/services/rpcService.ts +28 -11
  238. package/src/services/service.ts +10 -8
  239. package/src/services/userProfileService.ts +18 -66
  240. package/src/storages/chats/answer.impl.ts +186 -0
  241. package/src/storages/chats/answer.ts +55 -0
  242. package/src/storages/chats/chat.impl.ts +126 -0
  243. package/src/storages/chats/chat.ts +49 -0
  244. package/src/storages/chats/chats.impl.ts +142 -0
  245. package/src/storages/chats/chats.ts +47 -0
  246. package/src/storages/files/file.impl.ts +87 -0
  247. package/src/storages/files/file.ts +40 -0
  248. package/src/storages/files/files.impl.ts +191 -0
  249. package/src/storages/files/files.ts +39 -0
  250. package/src/storages/files/filesPage.impl.ts +37 -0
  251. package/src/storages/files/filesPage.ts +33 -0
  252. package/src/storages/groups/groups.impl.ts +363 -0
  253. package/src/storages/groups/groups.ts +106 -0
  254. package/src/storages/organizations/organization.impl.ts +163 -0
  255. package/src/storages/organizations/organization.ts +67 -0
  256. package/src/storages/organizations/organizations.impl.ts +197 -0
  257. package/src/storages/{organizations.ts → organizations/organizations.ts} +8 -28
  258. package/src/storages/user/userProfile.impl.ts +56 -0
  259. package/src/storages/{userProfile.ts → user/userProfile.ts} +2 -2
  260. package/src/storages/workspaces/workspace.impl.ts +129 -0
  261. package/src/storages/workspaces/workspace.ts +54 -0
  262. package/src/storages/workspaces/workspaces.impl.ts +212 -0
  263. package/src/storages/workspaces/workspaces.ts +53 -0
  264. package/src/unitTest.ts +12 -1
  265. package/.browserslistrc +0 -5
  266. package/.editorconfig +0 -22
  267. package/.eslintrc.json +0 -44
  268. package/.github/workflows/publish-npm.yml +0 -28
  269. package/.prettierignore +0 -1
  270. package/.prettierrc +0 -11
  271. package/.yarnrc +0 -2
  272. package/babel.config.js +0 -6
  273. package/jest.config.ts +0 -199
  274. package/jest.setup.ts +0 -2
  275. package/src/services/organizationImpl.ts +0 -51
  276. package/src/services/organizationsImpl.ts +0 -55
  277. package/src/types.ts +0 -86
  278. package/test/commands.test.ts +0 -24
  279. package/test/disposable.test.ts +0 -39
  280. package/test/events.test.ts +0 -151
  281. package/test/index.test.ts +0 -163
  282. package/test/registry.test.ts +0 -44
  283. package/test/services.test.ts +0 -56
  284. package/test/setup.ts +0 -2
  285. package/test/unitTest.test.ts +0 -21
  286. package/tsconfig.json +0 -31
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupsImpl = exports.GroupImpl = void 0;
4
+ const rpcService_1 = require("../../services/rpcService");
5
+ const groups_1 = require("./groups");
6
+ const responseUtils_1 = require("../../services/responseUtils");
7
+ class GroupImpl extends groups_1.Group {
8
+ constructor(context, organization) {
9
+ super();
10
+ this.context = context;
11
+ this.organization = organization;
12
+ this._isDisposed = false;
13
+ }
14
+ async initFrom(id) {
15
+ await this.reloadGroup(id);
16
+ return this;
17
+ }
18
+ async reloadGroup(id) {
19
+ var _a;
20
+ // fetch group
21
+ const response = await ((_a = this.context.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups").searchParam("groupId", id).sendGet());
22
+ // check response status
23
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
24
+ await responseUtils_1.ResponseUtils.throwError(`Failed to get group: ${id}, organization: ${this.organization.id}`, response);
25
+ }
26
+ // parse group from the server's response
27
+ const group = (await response.json());
28
+ // init group
29
+ this._content = group.group;
30
+ this._members = group.members;
31
+ }
32
+ get id() {
33
+ if (this._content) {
34
+ return this._content.id;
35
+ }
36
+ throw new Error("Access group is not loaded.");
37
+ }
38
+ get group() {
39
+ if (this._content) {
40
+ return this._content;
41
+ }
42
+ throw new Error("Access group is not loaded.");
43
+ }
44
+ async getWorkspaces() {
45
+ var _a;
46
+ // fetch workspaces
47
+ const response = await ((_a = this.context.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Organizations/workspaces").searchParam("id", this.id).sendGet());
48
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
49
+ await responseUtils_1.ResponseUtils.throwError(`Failed to get workspaces for group: ${this.id}, organization: ${this.organization.id}`, response);
50
+ }
51
+ // parse workspaces from the server's response
52
+ const workspaces = (await response.json());
53
+ return workspaces.workspaces;
54
+ }
55
+ get members() {
56
+ if (this._members) {
57
+ return this._members;
58
+ }
59
+ throw new Error("Access group is not loaded.");
60
+ }
61
+ async setName(name) {
62
+ var _a;
63
+ if (name === undefined || name === null) {
64
+ throw new Error("Groups change, name is undefined or null");
65
+ }
66
+ if (name.length === 0 || name.trim().length === 0) {
67
+ throw new Error("Groups change, name is empty");
68
+ }
69
+ // send request to the server
70
+ const response = await ((_a = this.context
71
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups/name").sendPutJson({
72
+ groupId: this.id,
73
+ name: name
74
+ }));
75
+ // check response status
76
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
77
+ await responseUtils_1.ResponseUtils.throwError(`Failed to change group name, group: ${this.id}, organization: ${this.organization.id}`, response);
78
+ }
79
+ if (this._content) {
80
+ this._content.name = name;
81
+ }
82
+ }
83
+ async setPermits(permits) {
84
+ var _a;
85
+ // send request to the server
86
+ const response = await ((_a = this.context
87
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups/permits").sendPutJson({
88
+ groupId: this.id,
89
+ permits: permits
90
+ }));
91
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
92
+ await responseUtils_1.ResponseUtils.throwError(`Failed to change group permits, group: ${this.id}, organization: ${this.organization.id}`, response);
93
+ }
94
+ }
95
+ async setWorkspaces(workspaces) {
96
+ var _a;
97
+ if (workspaces === null || workspaces === undefined) {
98
+ throw new Error("Group add workspaces, workspaces is undefined or null");
99
+ }
100
+ // send request to the server
101
+ const response = await ((_a = this.context
102
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups/workspaces").sendPutJson({
103
+ groupId: this.id,
104
+ actualWorkspaceIds: workspaces
105
+ }));
106
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
107
+ await responseUtils_1.ResponseUtils.throwError(`Failed to set workspaces for group: ${this.id}, organization: ${this.organization.id}`, response);
108
+ }
109
+ }
110
+ async setMembersIds(members) {
111
+ var _a;
112
+ if (members === null || members === undefined) {
113
+ throw new Error("Group setMembersIds, members is undefined or null");
114
+ }
115
+ // send request to the server
116
+ const response = await ((_a = this.context
117
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups/members").sendPutJson({
118
+ groupId: this.id,
119
+ memberIds: members
120
+ }));
121
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
122
+ await responseUtils_1.ResponseUtils.throwError(`Failed to set members for group: ${this.id}, organization: ${this.organization.id}`, response);
123
+ }
124
+ // reload group
125
+ await this.reloadGroup(this.id);
126
+ }
127
+ async removeMembers(members) {
128
+ // check members
129
+ if (members === null || members === undefined) {
130
+ throw new Error("Group removeMembers, members is undefined or null");
131
+ }
132
+ // make set of members
133
+ const groupMembers = new Set(this.members.map(m => m.id));
134
+ // check argument
135
+ if (!members.every(m => groupMembers.has(m))) {
136
+ const notExistingMembers = members.filter(memberId => !groupMembers.has(memberId));
137
+ throw new Error(`Group removeMembers, members contains not existing members: ${notExistingMembers}`);
138
+ }
139
+ // remove members
140
+ for (const id of members) {
141
+ groupMembers.delete(id);
142
+ }
143
+ // send request to the server
144
+ await this.setMembersIds(Array.from(groupMembers));
145
+ }
146
+ get isDisposed() {
147
+ return this._isDisposed;
148
+ }
149
+ dispose() {
150
+ this._isDisposed = true;
151
+ }
152
+ }
153
+ exports.GroupImpl = GroupImpl;
154
+ class GroupsImpl extends groups_1.Groups {
155
+ constructor(organization, context) {
156
+ super();
157
+ this.organization = organization;
158
+ this.context = context;
159
+ this._groups = [];
160
+ }
161
+ get collection() {
162
+ return this._groups;
163
+ }
164
+ async initialize() {
165
+ await this.internalInit();
166
+ }
167
+ async create(name, permits, memberIds) {
168
+ return await this.internalCreate(name, permits, memberIds);
169
+ }
170
+ get(id) {
171
+ return this._groups.find(group => group.id === id);
172
+ }
173
+ async delete(id) {
174
+ return await this.internalDeleteGroup(id);
175
+ }
176
+ //----------------------------------------------------------------------------
177
+ // INTERNALS
178
+ //----------------------------------------------------------------------------
179
+ /**
180
+ * Init access groups.
181
+ */
182
+ async internalInit() {
183
+ var _a;
184
+ // fetch groups
185
+ const response = await ((_a = this.context.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Organizations/access_groups").searchParam("id", this.organization.id).sendGet());
186
+ // check response status
187
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
188
+ await responseUtils_1.ResponseUtils.throwError(`Failed to get groups for organization: ${this.organization.id}`, response);
189
+ }
190
+ // parse groups from the server's response
191
+ const groups = (await response.json());
192
+ // init groups
193
+ for (const gr of groups.groups) {
194
+ // create group implementation
195
+ const group = await new GroupImpl(this.context, this.organization).initFrom(gr.id);
196
+ // add group to the collection
197
+ this._groups.push(group);
198
+ // dispatch event
199
+ this.dispatch({
200
+ type: groups_1.GroupEvent.ADDED,
201
+ data: group
202
+ });
203
+ }
204
+ }
205
+ async internalCreate(name, permits, memberIds) {
206
+ var _a;
207
+ if (name === undefined || name === null) {
208
+ throw new Error("Group create, name is undefined or null");
209
+ }
210
+ if (name.length === 0 || name.trim().length === 0) {
211
+ throw new Error("Group create, name is empty");
212
+ }
213
+ // send request to the server
214
+ const response = await ((_a = this.context
215
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/AccessGroups").sendPostJson({
216
+ name: name,
217
+ organizationId: this.organization.id,
218
+ permits: permits,
219
+ memberIds: memberIds
220
+ }));
221
+ // check response status
222
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
223
+ await responseUtils_1.ResponseUtils.throwError(`Failed to create group, organization: ${this.organization.id}`, response);
224
+ }
225
+ // parse group from the server's response
226
+ const content = (await response.json());
227
+ // create group implementation
228
+ const group = await new GroupImpl(this.context, this.organization).initFrom(content.group.id);
229
+ // add group to the collection
230
+ this._groups.push(group);
231
+ // dispatch event
232
+ this.dispatch({
233
+ type: groups_1.GroupEvent.ADDED,
234
+ data: group
235
+ });
236
+ return group;
237
+ }
238
+ /**
239
+ * Delete group.
240
+ * @param id
241
+ */
242
+ async internalDeleteGroup(id) {
243
+ var _a;
244
+ if (id === undefined || id === null) {
245
+ throw new Error("Group delete, id is undefined or null");
246
+ }
247
+ if (id.length === 0 || id.trim().length === 0) {
248
+ throw new Error("Group delete, id is empty");
249
+ }
250
+ // send request to the server
251
+ const response = await ((_a = this.context
252
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("/api/v1/AccessGroups").searchParam("groupId", id).sendDelete());
253
+ // check response status
254
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
255
+ await responseUtils_1.ResponseUtils.throwError(`Failed to delete group: ${id}, organization: ${this.organization.id}`, response);
256
+ }
257
+ // delete group from collection
258
+ const group = this._groups.find(f => f.id === id);
259
+ const index = this._groups.indexOf(group);
260
+ if (index < 0) {
261
+ throw new Error("Group delete, index is not found");
262
+ }
263
+ // remove group from collection
264
+ this._groups.splice(index, 1);
265
+ // dispatch event, group removed
266
+ this.dispatch({
267
+ type: groups_1.GroupEvent.REMOVED,
268
+ data: group
269
+ });
270
+ // dispose group
271
+ group.dispose();
272
+ }
273
+ }
274
+ exports.GroupsImpl = GroupsImpl;
275
+ //# sourceMappingURL=groups.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.impl.js","sourceRoot":"","sources":["../../../../src/storages/groups/groups.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Groups = exports.Group = exports.GroupEvent = void 0;
4
+ const events_1 = require("../../events");
5
+ /**
6
+ * Group event.
7
+ */
8
+ var GroupEvent;
9
+ (function (GroupEvent) {
10
+ GroupEvent["ADDED"] = "added";
11
+ GroupEvent["REMOVED"] = "removed";
12
+ GroupEvent["UPDATED"] = "updated";
13
+ })(GroupEvent || (exports.GroupEvent = GroupEvent = {}));
14
+ /**
15
+ * Group.
16
+ */
17
+ class Group extends events_1.EventDispatcher {
18
+ }
19
+ exports.Group = Group;
20
+ /**
21
+ * Groups storage.
22
+ */
23
+ class Groups extends events_1.EventDispatcher {
24
+ }
25
+ exports.Groups = Groups;
26
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../../src/storages/groups/groups.ts"],"names":[],"mappings":";;;AAGA,yCAA8C;AAS9C;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAsB,KAAM,SAAQ,wBAAkC;CA+CrE;AA/CD,sBA+CC;AAED;;GAEG;AACH,MAAsB,MAAO,SAAQ,wBAAkC;CA6BtE;AA7BD,wBA6BC"}
@@ -0,0 +1,54 @@
1
+ import { Workspaces } from "../workspaces/workspaces";
2
+ import { OrganizationId } from "./organizations";
3
+ import { GroupId, Groups } from "../groups/groups";
4
+ import { Chats } from "../chats/chats";
5
+ import { EventDispatcher } from "../../events";
6
+ import { UserDto } from "../../dto/userInfoResponse";
7
+ /**
8
+ * Organization event.
9
+ */
10
+ export declare enum OrganizationEvent {
11
+ CHANGED = "changed"
12
+ }
13
+ /**
14
+ * Organization.
15
+ */
16
+ export declare abstract class Organization extends EventDispatcher<OrganizationEvent, Organization> {
17
+ /**
18
+ * Organization id.
19
+ */
20
+ abstract get id(): OrganizationId;
21
+ /**
22
+ * Organization name.
23
+ */
24
+ abstract get name(): string;
25
+ /**
26
+ * Organization description.
27
+ */
28
+ abstract get description(): string;
29
+ /**
30
+ * Workspaces.
31
+ */
32
+ abstract get workspaces(): Workspaces;
33
+ /**
34
+ * Chats.
35
+ */
36
+ abstract get chats(): Chats;
37
+ /**
38
+ * Groups.
39
+ */
40
+ abstract get accessGroups(): Groups;
41
+ /**
42
+ * Get organization members
43
+ */
44
+ abstract members(): Promise<UserDto[]>;
45
+ /**
46
+ * Change organization name and description.
47
+ */
48
+ abstract change(name: string, description: string): Promise<void>;
49
+ /**
50
+ * Create invite link
51
+ */
52
+ abstract createInviteLink(emails: string[], accessGroups: GroupId[]): Promise<void>;
53
+ }
54
+ //# sourceMappingURL=organization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../../../src/storages/organizations/organization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,8BAAsB,YAAa,SAAQ,eAAe,CAC1D,iBAAiB,EACjB,YAAY,CACX;IACC;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,cAAc,CAAA;IAEjC;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAA;IAElC;;OAEG;IACH,QAAQ,KAAK,UAAU,IAAI,UAAU,CAAA;IAErC;;OAEG;IACH,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CACpF"}
@@ -0,0 +1,32 @@
1
+ import { OrganizationId } from "./organizations";
2
+ import { Disposable } from "../../disposable";
3
+ import { OrganizationDto, UserDto } from "../../dto/userInfoResponse";
4
+ import { Workspaces } from "../workspaces/workspaces";
5
+ import { Context } from "../../context";
6
+ import { Organization } from "./organization";
7
+ import { Groups } from "../groups/groups";
8
+ import { Chats } from "../chats/chats";
9
+ export declare class OrganizationImpl extends Organization implements Disposable {
10
+ private readonly context;
11
+ private _isDisposed;
12
+ private _isAdmin;
13
+ private _content?;
14
+ private readonly _workspaces;
15
+ private readonly _accessGroups;
16
+ private readonly _chats;
17
+ constructor(context: Context);
18
+ initFrom(content: OrganizationDto, isAdmin: boolean): Promise<OrganizationImpl>;
19
+ get isAdmin(): boolean;
20
+ get isDisposed(): boolean;
21
+ dispose(): void;
22
+ get id(): OrganizationId;
23
+ get name(): string;
24
+ get description(): string;
25
+ get workspaces(): Workspaces;
26
+ get accessGroups(): Groups;
27
+ get chats(): Chats;
28
+ members(): Promise<UserDto[]>;
29
+ change(name: string, description: string): Promise<void>;
30
+ createInviteLink(emails: string[], accessGroups: string[]): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=organization.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/organizations/organization.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAItC,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,UAAU;IAQ1D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEL,OAAO,EAAE,OAAO;IAOhC,QAAQ,CACnB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gBAAgB,CAAC;IAY5B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,IAAI,IAAI;IAIf,IAAI,EAAE,IAAI,cAAc,CAEvB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,KAAK,IAAI,KAAK,CAEjB;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAmB7B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CxD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBhF"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationImpl = void 0;
4
+ const workspaces_impl_1 = require("../workspaces/workspaces.impl");
5
+ const organization_1 = require("./organization");
6
+ const groups_impl_1 = require("../groups/groups.impl");
7
+ const chats_impl_1 = require("../chats/chats.impl");
8
+ const rpcService_1 = require("../../services/rpcService");
9
+ const responseUtils_1 = require("../../services/responseUtils");
10
+ class OrganizationImpl extends organization_1.Organization {
11
+ constructor(context) {
12
+ super();
13
+ this.context = context;
14
+ this._isDisposed = false;
15
+ this._isAdmin = false;
16
+ this._workspaces = new workspaces_impl_1.WorkspacesImpl(this, this.context);
17
+ this._accessGroups = new groups_impl_1.GroupsImpl(this, this.context);
18
+ this._chats = new chats_impl_1.ChatsImpl(this, this.context);
19
+ }
20
+ async initFrom(content, isAdmin) {
21
+ this._content = content;
22
+ this._isAdmin = isAdmin;
23
+ // init workspaces by organization id
24
+ await this._workspaces.initFrom(content.id);
25
+ await this._chats.initFrom(content.id);
26
+ await this._accessGroups.initialize();
27
+ return this;
28
+ }
29
+ get isAdmin() {
30
+ return this._isAdmin;
31
+ }
32
+ get isDisposed() {
33
+ return this._isDisposed;
34
+ }
35
+ dispose() {
36
+ this._isDisposed = true;
37
+ }
38
+ get id() {
39
+ var _a;
40
+ return (_a = this._content) === null || _a === void 0 ? void 0 : _a.id;
41
+ }
42
+ get name() {
43
+ var _a;
44
+ return (_a = this._content) === null || _a === void 0 ? void 0 : _a.profile.name;
45
+ }
46
+ get description() {
47
+ var _a;
48
+ return (_a = this._content) === null || _a === void 0 ? void 0 : _a.profile.description;
49
+ }
50
+ get workspaces() {
51
+ return this._workspaces;
52
+ }
53
+ get accessGroups() {
54
+ return this._accessGroups;
55
+ }
56
+ get chats() {
57
+ return this._chats;
58
+ }
59
+ async members() {
60
+ var _a;
61
+ // send request to the server
62
+ const response = await ((_a = this.context
63
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Organizations/members").searchParam("id", this.id).sendGet());
64
+ // check response status
65
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
66
+ await responseUtils_1.ResponseUtils.throwError(`Failed during fetch of organization members ${this.id}`, response);
67
+ }
68
+ return (await response.json()).members;
69
+ }
70
+ async change(name, description) {
71
+ var _a;
72
+ if (!this._content) {
73
+ throw new Error("Organization is not loaded.");
74
+ }
75
+ if (name === this.name && description === this.description) {
76
+ return Promise.resolve();
77
+ }
78
+ if (name === undefined || name === null || name.trim() === "") {
79
+ throw new Error("Name is required. Please provide a valid name.");
80
+ }
81
+ if (description === undefined ||
82
+ description === null ||
83
+ description.trim() === "") {
84
+ throw new Error("Description is required. Please provide a valid description.");
85
+ }
86
+ const response = await ((_a = this.context
87
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Organizations").sendPutJson({
88
+ organizationId: this.id,
89
+ profile: {
90
+ name,
91
+ description
92
+ }
93
+ }));
94
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
95
+ await responseUtils_1.ResponseUtils.throwError("Failed to change organization", response);
96
+ }
97
+ if (this._content) {
98
+ this._content.profile.name = name;
99
+ this._content.profile.description = description;
100
+ }
101
+ this.dispatch({
102
+ type: organization_1.OrganizationEvent.CHANGED,
103
+ data: this
104
+ });
105
+ }
106
+ async createInviteLink(emails, accessGroups) {
107
+ var _a;
108
+ const response = await ((_a = this.context
109
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Invites").sendPostJson({
110
+ organizationId: this.id,
111
+ emails: emails,
112
+ accessGroupIds: accessGroups
113
+ }));
114
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
115
+ await responseUtils_1.ResponseUtils.throwError(`Invite link creation failed for organization ${this.id}`, response);
116
+ }
117
+ }
118
+ }
119
+ exports.OrganizationImpl = OrganizationImpl;
120
+ //# sourceMappingURL=organization.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.impl.js","sourceRoot":"","sources":["../../../../src/storages/organizations/organization.impl.ts"],"names":[],"mappings":";;;AAIA,mEAA8D;AAE9D,iDAAgE;AAChE,uDAAkD;AAElD,oDAA+C;AAE/C,0DAAsD;AACtD,gEAA4D;AAE5D,MAAa,gBAAiB,SAAQ,2BAAY;IAQhD,YAA6B,OAAgB;QAC3C,KAAK,EAAE,CAAA;QADoB,YAAO,GAAP,OAAO,CAAS;QAPrC,gBAAW,GAAY,KAAK,CAAA;QAC5B,aAAQ,GAAY,KAAK,CAAA;QAQ/B,IAAI,CAAC,WAAW,GAAG,IAAI,gCAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,OAAwB,EACxB,OAAgB;QAEhB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QAEvB,qCAAqC;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC3C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAA;QAErC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,IAAI,EAAE;;QACJ,OAAuB,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAA;IAC1C,CAAC;IAED,IAAI,IAAI;;QACN,OAAuB,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,IAAI,CAAA;IACpD,CAAC;IAED,IAAI,WAAW;;QACb,OAAuB,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,WAAW,CAAA;IAC3D,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;;QACX,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,8BAA8B,EAC9C,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EACzB,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAC5B,+CAA+C,IAAI,CAAC,EAAE,EAAE,EACxD,QAAQ,CACT,CAAA;QACH,CAAC;QAED,OAAO,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAoB,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmB;;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACnE,CAAC;QACD,IACE,WAAW,KAAK,SAAS;YACzB,WAAW,KAAK,IAAI;YACpB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EACzB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,sBAAsB,EACtC,WAAW,CAAC;YACX,cAAc,EAAE,IAAI,CAAC,EAAE;YACvB,OAAO,EAAE;gBACP,IAAI;gBACJ,WAAW;aACZ;SACF,CAAC,CAAA,CAAA;QAEJ,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;YACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACjD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,gCAAiB,CAAC,OAAO;YAC/B,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAgB,EAAE,YAAsB;;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,gBAAgB,EAChC,YAAY,CAAC;YACZ,cAAc,EAAE,IAAI,CAAC,EAAE;YACvB,MAAM,EAAE,MAAM;YACd,cAAc,EAAE,YAAY;SAC7B,CAAC,CAAA,CAAA;QACJ,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAC5B,gDAAgD,IAAI,CAAC,EAAE,EAAE,EACzD,QAAQ,CACT,CAAA;QACH,CAAC;IACH,CAAC;CACF;AApJD,4CAoJC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Organization = exports.OrganizationEvent = void 0;
4
+ const events_1 = require("../../events");
5
+ /**
6
+ * Organization event.
7
+ */
8
+ var OrganizationEvent;
9
+ (function (OrganizationEvent) {
10
+ OrganizationEvent["CHANGED"] = "changed";
11
+ })(OrganizationEvent || (exports.OrganizationEvent = OrganizationEvent = {}));
12
+ /**
13
+ * Organization.
14
+ */
15
+ class Organization extends events_1.EventDispatcher {
16
+ }
17
+ exports.Organization = Organization;
18
+ //# sourceMappingURL=organization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.js","sourceRoot":"","sources":["../../../../src/storages/organizations/organization.ts"],"names":[],"mappings":";;;AAIA,yCAA8C;AAI9C;;GAEG;AACH,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;AACrB,CAAC,EAFW,iBAAiB,iCAAjB,iBAAiB,QAE5B;AAED;;GAEG;AACH,MAAsB,YAAa,SAAQ,wBAG1C;CA6CA;AAhDD,oCAgDC"}
@@ -0,0 +1,46 @@
1
+ import { EventDispatcher } from "../../events";
2
+ import { Organization } from "./organization";
3
+ /**
4
+ * Organization id.
5
+ */
6
+ export type OrganizationId = string;
7
+ /**
8
+ * Organization event.
9
+ */
10
+ export declare enum OrganizationsEvent {
11
+ ADDED = "added",
12
+ REMOVED = "removed",
13
+ CURRENT_CHANGED = "currentChanged"
14
+ }
15
+ /**
16
+ * Organizations storage.
17
+ */
18
+ export declare abstract class Organizations extends EventDispatcher<OrganizationsEvent, Organization> {
19
+ /**
20
+ * User's organizations.
21
+ */
22
+ abstract get collection(): ReadonlyArray<Organization>;
23
+ /**
24
+ * Current organization.
25
+ */
26
+ abstract get current(): OrganizationId;
27
+ abstract set current(value: OrganizationId);
28
+ /**
29
+ * Get organization by id.
30
+ */
31
+ abstract get(id: OrganizationId): Organization;
32
+ /**
33
+ * Try to get organization by id.
34
+ * @param id
35
+ */
36
+ abstract tryGet(id: OrganizationId): Organization | undefined;
37
+ /**
38
+ * Create new organization.
39
+ */
40
+ abstract create(name: string, description: string): Promise<Organization>;
41
+ /**
42
+ * Delete organization.
43
+ */
44
+ abstract delete(id: OrganizationId): Promise<void>;
45
+ }
46
+ //# sourceMappingURL=organizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../../src/storages/organizations/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,eAAe,mBAAmB;CACnC;AAED;;GAEG;AACH,8BAAsB,aAAc,SAAQ,eAAe,CACzD,kBAAkB,EAClB,YAAY,CACb;IACC;;OAEG;IACH,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA;IAEtD;;OAEG;IACH,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAA;IACtC,QAAQ,KAAK,OAAO,CAAC,KAAK,EAAE,cAAc,EAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY;IAE9C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS;IAE7D;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAEzE;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CACnD"}
@@ -0,0 +1,38 @@
1
+ import { OrganizationId, Organizations } from "./organizations";
2
+ import { OrganizationImpl } from "./organization.impl";
3
+ import { OrganizationDto, UserSettings } from "../../dto/userInfoResponse";
4
+ import { Context } from "../../context";
5
+ import { Organization } from "./organization";
6
+ export declare class OrganizationsImpl extends Organizations {
7
+ readonly context: Context;
8
+ constructor(context: Context);
9
+ organizations: OrganizationImpl[];
10
+ currentOrganizationId?: OrganizationId;
11
+ get collection(): readonly Organization[];
12
+ get current(): OrganizationId;
13
+ set current(value: OrganizationId);
14
+ get(id: OrganizationId): Organization;
15
+ tryGet(id: OrganizationId): Organization | undefined;
16
+ contains(id: OrganizationId): boolean;
17
+ create(name: string, description: string): Promise<Organization>;
18
+ delete(id: string): Promise<void>;
19
+ /**
20
+ * Delete organization.
21
+ * @param id
22
+ */
23
+ internalDeleteOrganization(id: OrganizationId): Promise<void>;
24
+ /**
25
+ * Create organization.
26
+ * @param name
27
+ * @param description
28
+ */
29
+ internalCreateOrganization(name: string, description: string): Promise<OrganizationImpl>;
30
+ /**
31
+ * Init organizations from user profile.
32
+ * @param adminInOrganization
33
+ * @param organizations
34
+ * @param settings
35
+ */
36
+ internalInitFrom(adminInOrganization: string[], organizations: OrganizationDto[], settings: UserSettings | null | undefined): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=organizations.impl.d.ts.map