@neuralinnovations/dataisland-sdk 0.0.1-dev7 → 0.0.1-dev71

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 (424) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +204 -6
  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 +103 -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/deleteUserFullCommandHandler.d.ts +7 -0
  13. package/dist/src/commands/deleteUserFullCommandHandler.d.ts.map +1 -0
  14. package/dist/src/commands/deleteUserFullCommandHandler.js +21 -0
  15. package/dist/src/commands/deleteUserFullCommandHandler.js.map +1 -0
  16. package/dist/src/commands/startCommandHandler.d.ts +7 -0
  17. package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
  18. package/dist/src/commands/startCommandHandler.js +30 -0
  19. package/dist/src/commands/startCommandHandler.js.map +1 -0
  20. package/dist/src/context.d.ts +24 -0
  21. package/dist/src/context.d.ts.map +1 -0
  22. package/dist/src/context.js +31 -0
  23. package/dist/src/context.js.map +1 -0
  24. package/dist/src/credentials.d.ts +39 -0
  25. package/dist/src/credentials.d.ts.map +1 -0
  26. package/dist/src/credentials.js +105 -0
  27. package/dist/src/credentials.js.map +1 -0
  28. package/dist/src/dataIslandApp.d.ts +55 -0
  29. package/dist/src/dataIslandApp.d.ts.map +1 -0
  30. package/dist/src/dataIslandApp.js +10 -0
  31. package/dist/src/dataIslandApp.js.map +1 -0
  32. package/dist/src/disposable.d.ts +84 -0
  33. package/dist/src/disposable.d.ts.map +1 -0
  34. package/dist/src/disposable.js +147 -0
  35. package/dist/src/disposable.js.map +1 -0
  36. package/dist/src/dto/accessGroupResponse.d.ts +27 -0
  37. package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
  38. package/dist/src/dto/accessGroupResponse.js +3 -0
  39. package/dist/src/dto/accessGroupResponse.js.map +1 -0
  40. package/dist/src/dto/acquiringResponse.d.ts +46 -0
  41. package/dist/src/dto/acquiringResponse.d.ts.map +1 -0
  42. package/dist/src/dto/acquiringResponse.js +11 -0
  43. package/dist/src/dto/acquiringResponse.js.map +1 -0
  44. package/dist/src/dto/apiKeyResponse.d.ts +19 -0
  45. package/dist/src/dto/apiKeyResponse.d.ts.map +1 -0
  46. package/dist/src/dto/apiKeyResponse.js +3 -0
  47. package/dist/src/dto/apiKeyResponse.js.map +1 -0
  48. package/dist/src/dto/badRequestResponse.d.ts +6 -0
  49. package/dist/src/dto/badRequestResponse.d.ts.map +1 -0
  50. package/dist/src/dto/badRequestResponse.js +3 -0
  51. package/dist/src/dto/badRequestResponse.js.map +1 -0
  52. package/dist/src/dto/chatResponse.d.ts +84 -0
  53. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  54. package/dist/src/dto/chatResponse.js +45 -0
  55. package/dist/src/dto/chatResponse.js.map +1 -0
  56. package/dist/src/dto/invitesResponse.d.ts +21 -0
  57. package/dist/src/dto/invitesResponse.d.ts.map +1 -0
  58. package/dist/src/dto/invitesResponse.js +3 -0
  59. package/dist/src/dto/invitesResponse.js.map +1 -0
  60. package/dist/src/dto/limitsResponse.d.ts +29 -0
  61. package/dist/src/dto/limitsResponse.d.ts.map +1 -0
  62. package/dist/src/dto/limitsResponse.js +13 -0
  63. package/dist/src/dto/limitsResponse.js.map +1 -0
  64. package/dist/src/dto/quizResponse.d.ts +11 -0
  65. package/dist/src/dto/quizResponse.d.ts.map +1 -0
  66. package/dist/src/dto/quizResponse.js +3 -0
  67. package/dist/src/dto/quizResponse.js.map +1 -0
  68. package/dist/src/dto/statisticsResponse.d.ts +11 -0
  69. package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
  70. package/dist/src/dto/statisticsResponse.js +3 -0
  71. package/dist/src/dto/statisticsResponse.js.map +1 -0
  72. package/dist/src/dto/userInfoResponse.d.ts +92 -0
  73. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  74. package/dist/src/dto/userInfoResponse.js +3 -0
  75. package/dist/src/dto/userInfoResponse.js.map +1 -0
  76. package/dist/src/dto/workspacesResponse.d.ts +68 -0
  77. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  78. package/dist/src/dto/workspacesResponse.js +21 -0
  79. package/dist/src/dto/workspacesResponse.js.map +1 -0
  80. package/dist/src/events.d.ts +17 -0
  81. package/dist/src/events.d.ts.map +1 -0
  82. package/dist/src/events.js +52 -0
  83. package/dist/src/events.js.map +1 -0
  84. package/dist/src/index.d.ts +75 -0
  85. package/dist/src/index.d.ts.map +1 -0
  86. package/dist/src/index.js +124 -0
  87. package/dist/src/index.js.map +1 -0
  88. package/dist/src/internal/app.impl.d.ts +30 -0
  89. package/dist/src/internal/app.impl.d.ts.map +1 -0
  90. package/dist/src/internal/app.impl.js +180 -0
  91. package/dist/src/internal/app.impl.js.map +1 -0
  92. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  93. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  94. package/dist/src/internal/appBuilder.impl.js +71 -0
  95. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  96. package/dist/src/internal/createApp.impl.d.ts +4 -0
  97. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  98. package/dist/src/internal/createApp.impl.js +11 -0
  99. package/dist/src/internal/createApp.impl.js.map +1 -0
  100. package/dist/src/internal/registry.d.ts +66 -0
  101. package/dist/src/internal/registry.d.ts.map +1 -0
  102. package/dist/src/internal/registry.js +114 -0
  103. package/dist/src/internal/registry.js.map +1 -0
  104. package/dist/src/middleware.d.ts +6 -0
  105. package/dist/src/middleware.d.ts.map +1 -0
  106. package/dist/src/middleware.js +3 -0
  107. package/dist/src/middleware.js.map +1 -0
  108. package/dist/src/services/acquiringService.d.ts +9 -0
  109. package/dist/src/services/acquiringService.d.ts.map +1 -0
  110. package/dist/src/services/acquiringService.js +19 -0
  111. package/dist/src/services/acquiringService.js.map +1 -0
  112. package/dist/src/services/anonymousService.d.ts +8 -0
  113. package/dist/src/services/anonymousService.d.ts.map +1 -0
  114. package/dist/src/services/anonymousService.js +41 -0
  115. package/dist/src/services/anonymousService.js.map +1 -0
  116. package/dist/src/services/commandService.d.ts +18 -0
  117. package/dist/src/services/commandService.d.ts.map +1 -0
  118. package/dist/src/services/commandService.js +40 -0
  119. package/dist/src/services/commandService.js.map +1 -0
  120. package/dist/src/services/cookieService.d.ts +7 -0
  121. package/dist/src/services/cookieService.d.ts.map +1 -0
  122. package/dist/src/services/cookieService.js +18 -0
  123. package/dist/src/services/cookieService.js.map +1 -0
  124. package/dist/src/services/credentialService.d.ts +9 -0
  125. package/dist/src/services/credentialService.d.ts.map +1 -0
  126. package/dist/src/services/credentialService.js +26 -0
  127. package/dist/src/services/credentialService.js.map +1 -0
  128. package/dist/src/services/httpMethod.d.ts +2 -0
  129. package/dist/src/services/httpMethod.d.ts.map +1 -0
  130. package/dist/src/services/httpMethod.js +3 -0
  131. package/dist/src/services/httpMethod.js.map +1 -0
  132. package/dist/src/services/middlewareService.d.ts +10 -0
  133. package/dist/src/services/middlewareService.d.ts.map +1 -0
  134. package/dist/src/services/middlewareService.js +34 -0
  135. package/dist/src/services/middlewareService.js.map +1 -0
  136. package/dist/src/services/organizationService.d.ts +10 -0
  137. package/dist/src/services/organizationService.d.ts.map +1 -0
  138. package/dist/src/services/organizationService.js +19 -0
  139. package/dist/src/services/organizationService.js.map +1 -0
  140. package/dist/src/services/requestBuilder.d.ts +19 -0
  141. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  142. package/dist/src/services/requestBuilder.js +133 -0
  143. package/dist/src/services/requestBuilder.js.map +1 -0
  144. package/dist/src/services/responseUtils.d.ts +8 -0
  145. package/dist/src/services/responseUtils.d.ts.map +1 -0
  146. package/dist/src/services/responseUtils.js +40 -0
  147. package/dist/src/services/responseUtils.js.map +1 -0
  148. package/dist/src/services/rpcService.d.ts +77 -0
  149. package/dist/src/services/rpcService.d.ts.map +1 -0
  150. package/dist/src/services/rpcService.js +125 -0
  151. package/dist/src/services/rpcService.js.map +1 -0
  152. package/dist/src/services/service.d.ts +21 -0
  153. package/dist/src/services/service.d.ts.map +1 -0
  154. package/dist/src/services/service.js +41 -0
  155. package/dist/src/services/service.js.map +1 -0
  156. package/dist/src/services/userProfileService.d.ts +10 -0
  157. package/dist/src/services/userProfileService.d.ts.map +1 -0
  158. package/dist/src/services/userProfileService.js +59 -0
  159. package/dist/src/services/userProfileService.js.map +1 -0
  160. package/dist/src/storages/acquirings/acquiring.d.ts +41 -0
  161. package/dist/src/storages/acquirings/acquiring.d.ts.map +1 -0
  162. package/dist/src/storages/acquirings/acquiring.impl.d.ts +20 -0
  163. package/dist/src/storages/acquirings/acquiring.impl.d.ts.map +1 -0
  164. package/dist/src/storages/acquirings/acquiring.impl.js +92 -0
  165. package/dist/src/storages/acquirings/acquiring.impl.js.map +1 -0
  166. package/dist/src/storages/acquirings/acquiring.js +10 -0
  167. package/dist/src/storages/acquirings/acquiring.js.map +1 -0
  168. package/dist/src/storages/chats/answer.d.ts +41 -0
  169. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  170. package/dist/src/storages/chats/answer.impl.d.ts +29 -0
  171. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  172. package/dist/src/storages/chats/answer.impl.js +134 -0
  173. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  174. package/dist/src/storages/chats/answer.js +15 -0
  175. package/dist/src/storages/chats/answer.js.map +1 -0
  176. package/dist/src/storages/chats/chat.d.ts +55 -0
  177. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  178. package/dist/src/storages/chats/chat.impl.d.ts +28 -0
  179. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  180. package/dist/src/storages/chats/chat.impl.js +106 -0
  181. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  182. package/dist/src/storages/chats/chat.js +12 -0
  183. package/dist/src/storages/chats/chat.js.map +1 -0
  184. package/dist/src/storages/chats/chats.d.ts +51 -0
  185. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  186. package/dist/src/storages/chats/chats.impl.d.ts +20 -0
  187. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  188. package/dist/src/storages/chats/chats.impl.js +184 -0
  189. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  190. package/dist/src/storages/chats/chats.js +16 -0
  191. package/dist/src/storages/chats/chats.js.map +1 -0
  192. package/dist/src/storages/files/file.d.ts +59 -0
  193. package/dist/src/storages/files/file.d.ts.map +1 -0
  194. package/dist/src/storages/files/file.impl.d.ts +28 -0
  195. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  196. package/dist/src/storages/files/file.impl.js +130 -0
  197. package/dist/src/storages/files/file.impl.js.map +1 -0
  198. package/dist/src/storages/files/file.js +17 -0
  199. package/dist/src/storages/files/file.js.map +1 -0
  200. package/dist/src/storages/files/files.d.ts +39 -0
  201. package/dist/src/storages/files/files.d.ts.map +1 -0
  202. package/dist/src/storages/files/files.impl.d.ts +24 -0
  203. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  204. package/dist/src/storages/files/files.impl.js +168 -0
  205. package/dist/src/storages/files/files.impl.js.map +1 -0
  206. package/dist/src/storages/files/files.js +20 -0
  207. package/dist/src/storages/files/files.js.map +1 -0
  208. package/dist/src/storages/files/filesPage.d.ts +28 -0
  209. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  210. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  211. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  212. package/dist/src/storages/files/filesPage.impl.js +38 -0
  213. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  214. package/dist/src/storages/files/filesPage.js +10 -0
  215. package/dist/src/storages/files/filesPage.js.map +1 -0
  216. package/dist/src/storages/groups/group.d.ts +63 -0
  217. package/dist/src/storages/groups/group.d.ts.map +1 -0
  218. package/dist/src/storages/groups/group.impl.d.ts +38 -0
  219. package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
  220. package/dist/src/storages/groups/group.impl.js +210 -0
  221. package/dist/src/storages/groups/group.impl.js.map +1 -0
  222. package/dist/src/storages/groups/group.js +15 -0
  223. package/dist/src/storages/groups/group.js.map +1 -0
  224. package/dist/src/storages/groups/groups.d.ts +43 -0
  225. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  226. package/dist/src/storages/groups/groups.impl.d.ts +31 -0
  227. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  228. package/dist/src/storages/groups/groups.impl.js +136 -0
  229. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  230. package/dist/src/storages/groups/groups.js +20 -0
  231. package/dist/src/storages/groups/groups.js.map +1 -0
  232. package/dist/src/storages/organizations/organization.d.ts +137 -0
  233. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  234. package/dist/src/storages/organizations/organization.impl.d.ts +55 -0
  235. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  236. package/dist/src/storages/organizations/organization.impl.js +362 -0
  237. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  238. package/dist/src/storages/organizations/organization.js +18 -0
  239. package/dist/src/storages/organizations/organization.js.map +1 -0
  240. package/dist/src/storages/organizations/organizations.d.ts +77 -0
  241. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  242. package/dist/src/storages/organizations/organizations.impl.d.ts +45 -0
  243. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  244. package/dist/src/storages/organizations/organizations.impl.js +242 -0
  245. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  246. package/dist/src/storages/organizations/organizations.js +20 -0
  247. package/dist/src/storages/organizations/organizations.js.map +1 -0
  248. package/dist/src/storages/user/userProfile.d.ts +64 -0
  249. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  250. package/dist/src/storages/user/userProfile.impl.d.ts +24 -0
  251. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  252. package/dist/src/storages/user/userProfile.impl.js +129 -0
  253. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  254. package/dist/src/storages/user/userProfile.js +12 -0
  255. package/dist/src/storages/user/userProfile.js.map +1 -0
  256. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  257. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  258. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  259. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  260. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  261. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  262. package/dist/src/storages/workspaces/workspace.js +18 -0
  263. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  264. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  265. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  266. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  267. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  268. package/dist/src/storages/workspaces/workspaces.impl.js +153 -0
  269. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  270. package/dist/src/storages/workspaces/workspaces.js +19 -0
  271. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  272. package/dist/src/unitTest.d.ts +12 -0
  273. package/dist/src/unitTest.d.ts.map +1 -0
  274. package/dist/src/unitTest.js +44 -0
  275. package/dist/src/unitTest.js.map +1 -0
  276. package/dist/src/utils/browserUtils.d.ts +4 -0
  277. package/dist/src/utils/browserUtils.d.ts.map +1 -0
  278. package/dist/src/utils/browserUtils.js +64 -0
  279. package/dist/src/utils/browserUtils.js.map +1 -0
  280. package/dist/src/utils/request.d.ts +6 -0
  281. package/dist/src/utils/request.d.ts.map +1 -0
  282. package/dist/src/utils/request.js +3 -0
  283. package/dist/src/utils/request.js.map +1 -0
  284. package/dist/src/utils/utils.d.ts +3 -0
  285. package/dist/src/utils/utils.d.ts.map +1 -0
  286. package/dist/src/utils/utils.js +13 -0
  287. package/dist/src/utils/utils.js.map +1 -0
  288. package/index.d.ts +1 -0
  289. package/index.js +1 -0
  290. package/package.json +44 -5
  291. package/src/commands/deleteUserFullCommandHandler.ts +19 -0
  292. package/src/commands/startCommandHandler.ts +19 -5
  293. package/src/context.ts +4 -2
  294. package/src/credentials.ts +46 -0
  295. package/src/dataIslandApp.ts +8 -2
  296. package/src/disposable.ts +18 -5
  297. package/src/dto/accessGroupResponse.ts +17 -16
  298. package/src/dto/acquiringResponse.ts +54 -0
  299. package/src/dto/apiKeyResponse.ts +23 -0
  300. package/src/dto/badRequestResponse.ts +6 -0
  301. package/src/dto/chatResponse.ts +60 -54
  302. package/src/dto/invitesResponse.ts +25 -0
  303. package/src/dto/limitsResponse.ts +32 -0
  304. package/src/dto/quizResponse.ts +12 -0
  305. package/src/dto/statisticsResponse.ts +12 -0
  306. package/src/dto/userInfoResponse.ts +64 -2
  307. package/src/dto/workspacesResponse.ts +38 -3
  308. package/src/index.ts +59 -16
  309. package/src/internal/app.impl.ts +54 -12
  310. package/src/internal/registry.ts +54 -6
  311. package/src/middleware.ts +2 -0
  312. package/src/services/acquiringService.ts +21 -0
  313. package/src/services/anonymousService.ts +43 -0
  314. package/src/services/commandService.ts +4 -2
  315. package/src/services/cookieService.ts +16 -0
  316. package/src/services/httpMethod.ts +1 -0
  317. package/src/services/middlewareService.ts +1 -0
  318. package/src/services/organizationService.ts +2 -2
  319. package/src/services/requestBuilder.ts +48 -8
  320. package/src/services/responseUtils.ts +12 -0
  321. package/src/services/rpcService.ts +1 -0
  322. package/src/services/userProfileService.ts +36 -4
  323. package/src/storages/acquirings/acquiring.impl.ts +132 -0
  324. package/src/storages/acquirings/acquiring.ts +54 -0
  325. package/src/storages/chats/answer.impl.ts +178 -0
  326. package/src/storages/chats/answer.ts +53 -0
  327. package/src/storages/chats/chat.impl.ts +139 -0
  328. package/src/storages/chats/chat.ts +70 -0
  329. package/src/storages/chats/chats.impl.ts +255 -0
  330. package/src/storages/chats/chats.ts +60 -0
  331. package/src/storages/files/file.impl.ts +162 -0
  332. package/src/storages/files/file.ts +74 -0
  333. package/src/storages/{files.impl.ts → files/files.impl.ts} +89 -67
  334. package/src/storages/{files.ts → files/files.ts} +14 -7
  335. package/src/storages/files/filesPage.impl.ts +37 -0
  336. package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
  337. package/src/storages/groups/group.impl.ts +276 -0
  338. package/src/storages/groups/group.ts +73 -0
  339. package/src/storages/groups/groups.impl.ts +180 -0
  340. package/src/storages/groups/groups.ts +50 -0
  341. package/src/storages/organizations/organization.impl.ts +555 -0
  342. package/src/storages/organizations/organization.ts +168 -0
  343. package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +161 -12
  344. package/src/storages/organizations/organizations.ts +93 -0
  345. package/src/storages/user/userProfile.impl.ts +157 -0
  346. package/src/storages/user/userProfile.ts +81 -0
  347. package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
  348. package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
  349. package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +29 -32
  350. package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
  351. package/src/unitTest.ts +3 -3
  352. package/src/utils/browserUtils.ts +68 -0
  353. package/src/utils/request.ts +6 -0
  354. package/src/utils/utils.ts +8 -0
  355. package/.browserslistrc +0 -5
  356. package/.editorconfig +0 -25
  357. package/.eslintrc.json +0 -44
  358. package/.github/workflows/publish-npm.yml +0 -41
  359. package/.prettierignore +0 -1
  360. package/.prettierrc +0 -11
  361. package/.yarnrc +0 -2
  362. package/babel.config.js +0 -6
  363. package/docs/.nojekyll +0 -1
  364. package/docs/classes/BasicCredential.md +0 -80
  365. package/docs/classes/BearerCredential.md +0 -72
  366. package/docs/classes/Chat.md +0 -69
  367. package/docs/classes/Chats.md +0 -90
  368. package/docs/classes/CredentialBase.md +0 -54
  369. package/docs/classes/DataIslandApp.md +0 -168
  370. package/docs/classes/DebugCredential.md +0 -72
  371. package/docs/classes/DefaultCredential.md +0 -56
  372. package/docs/classes/DisposableContainer.md +0 -177
  373. package/docs/classes/EventDispatcher.md +0 -109
  374. package/docs/classes/File.md +0 -79
  375. package/docs/classes/Files.md +0 -136
  376. package/docs/classes/FilesPage.md +0 -76
  377. package/docs/classes/Group.md +0 -191
  378. package/docs/classes/Groups.md +0 -130
  379. package/docs/classes/Lifetime.md +0 -108
  380. package/docs/classes/Organization.md +0 -89
  381. package/docs/classes/Organizations.md +0 -195
  382. package/docs/classes/UserProfile.md +0 -156
  383. package/docs/classes/Workspace.md +0 -165
  384. package/docs/classes/Workspaces.md +0 -189
  385. package/docs/enums/ChatAnswer.md +0 -22
  386. package/docs/enums/ChatsEvent.md +0 -22
  387. package/docs/enums/FilesEvent.md +0 -24
  388. package/docs/enums/GroupEvent.md +0 -29
  389. package/docs/enums/OrganizationsEvent.md +0 -31
  390. package/docs/enums/UserEvent.md +0 -15
  391. package/docs/enums/WorkspaceEvent.md +0 -17
  392. package/docs/enums/WorkspacesEvent.md +0 -24
  393. package/docs/interfaces/Disposable.md +0 -25
  394. package/docs/interfaces/Event.md +0 -58
  395. package/docs/interfaces/EventSubscriber.md +0 -41
  396. package/docs/interfaces/Input.md +0 -35
  397. package/docs/modules.md +0 -205
  398. package/jest.config.ts +0 -199
  399. package/jest.setup.ts +0 -2
  400. package/scripts/docs/index.js +0 -15
  401. package/src/storages/chat.ts +0 -21
  402. package/src/storages/chats.ts +0 -17
  403. package/src/storages/file.impl.ts +0 -69
  404. package/src/storages/file.ts +0 -28
  405. package/src/storages/groups.impl.ts +0 -337
  406. package/src/storages/groups.ts +0 -43
  407. package/src/storages/organization.impl.ts +0 -68
  408. package/src/storages/organization.ts +0 -33
  409. package/src/storages/organizations.ts +0 -56
  410. package/src/storages/userProfile.impl.ts +0 -56
  411. package/src/storages/userProfile.ts +0 -42
  412. package/test/commands.test.ts +0 -24
  413. package/test/data/test_file.pdf +0 -0
  414. package/test/disposable.test.ts +0 -39
  415. package/test/events.test.ts +0 -151
  416. package/test/files.test.ts +0 -52
  417. package/test/index.test.ts +0 -122
  418. package/test/organization.test.ts +0 -57
  419. package/test/registry.test.ts +0 -44
  420. package/test/services.test.ts +0 -56
  421. package/test/setup.ts +0 -54
  422. package/test/unitTest.test.ts +0 -21
  423. package/test/workspace.test.ts +0 -71
  424. package/tsconfig.json +0 -31
@@ -0,0 +1,555 @@
1
+ import {OrganizationId} from "./organizations"
2
+ import {Disposable} from "../../disposable"
3
+ import {
4
+ CurrentLimitItem,
5
+ CurrentLimitRecordData,
6
+ CurrentLimitsData,
7
+ OrganizationDto,
8
+ OrganizationSegmentData,
9
+ UserDto,
10
+ UserLimitsData,
11
+ UsersStatisticsResponse
12
+ } from "../../dto/userInfoResponse"
13
+ import {WorkspaceId, Workspaces} from "../workspaces/workspaces"
14
+ import {WorkspacesImpl} from "../workspaces/workspaces.impl"
15
+ import {Context} from "../../context"
16
+ import {Organization, OrganizationEvent} from "./organization"
17
+ import {GroupsImpl} from "../groups/groups.impl"
18
+ import {Groups} from "../groups/groups"
19
+ import {ChatsImpl} from "../chats/chats.impl"
20
+ import {Chats} from "../chats/chats"
21
+ import {RpcService} from "../../services/rpcService"
22
+ import {ResponseUtils} from "../../services/responseUtils"
23
+ import {StatisticsResponse} from "../../dto/statisticsResponse"
24
+ import {
25
+ LimitActionType,
26
+ SegmentData,
27
+ SegmentsData
28
+ } from "../../dto/limitsResponse"
29
+ import {FileId} from "../files/file"
30
+ import {QuizData} from "../../dto/quizResponse"
31
+ import {InviteCodeResponse, InviteResponse} from "../../dto/invitesResponse"
32
+ import {
33
+ ApiKeyResponse,
34
+ OrganizationApiKey,
35
+ OrganizationKeysResponse, TokenResponse
36
+ } from "../../dto/apiKeyResponse"
37
+ import {IconResponse} from "../../dto/workspacesResponse"
38
+ import {UploadFile} from "../files/files"
39
+
40
+ export class OrganizationImpl extends Organization implements Disposable {
41
+ private _isDisposed: boolean = false
42
+ private _isAdmin: boolean = false
43
+ private _content?: OrganizationDto
44
+ private readonly _workspaces: WorkspacesImpl
45
+ private readonly _accessGroups: GroupsImpl
46
+ private readonly _chats: ChatsImpl
47
+
48
+ constructor(private readonly context: Context) {
49
+ super()
50
+ this._workspaces = new WorkspacesImpl(this, this.context)
51
+ this._accessGroups = new GroupsImpl(this, this.context)
52
+ this._chats = new ChatsImpl(this, this.context)
53
+ }
54
+
55
+ public async initFrom(
56
+ content: OrganizationDto,
57
+ isAdmin: boolean
58
+ ): Promise<OrganizationImpl> {
59
+ this._content = content
60
+ this._isAdmin = isAdmin
61
+
62
+ // init workspaces by organization id
63
+ const promises = [
64
+ this._workspaces.initFrom(content.id),
65
+ this._chats.initFrom(content.id),
66
+ this._accessGroups.initialize()
67
+ ]
68
+
69
+ await Promise.all(promises)
70
+
71
+ return this
72
+ }
73
+
74
+ get isAdmin(): boolean {
75
+ return this._isAdmin
76
+ }
77
+
78
+ get isDisposed(): boolean {
79
+ return this._isDisposed
80
+ }
81
+
82
+ dispose(): void {
83
+ this._isDisposed = true
84
+ }
85
+
86
+ get id(): OrganizationId {
87
+ return <OrganizationId>this._content?.id
88
+ }
89
+
90
+ get name(): string {
91
+ return <string>this._content?.profile.name
92
+ }
93
+
94
+ get description(): string {
95
+ return <string>this._content?.profile.description
96
+ }
97
+
98
+ get icon(): string {
99
+ return <string>this._content?.profile.iconId
100
+ }
101
+
102
+ get workspaces(): Workspaces {
103
+ return this._workspaces
104
+ }
105
+
106
+ get accessGroups(): Groups {
107
+ return this._accessGroups
108
+ }
109
+
110
+ get chats(): Chats {
111
+ return this._chats
112
+ }
113
+
114
+ async members(): Promise<UserDto[]> {
115
+ // send request to the server
116
+ const response = await this.context
117
+ .resolve(RpcService)
118
+ ?.requestBuilder("api/v1/Organizations/members")
119
+ .searchParam("id", this.id)
120
+ .sendGet()
121
+
122
+ // check response status
123
+ if (ResponseUtils.isFail(response)) {
124
+ await ResponseUtils.throwError(
125
+ `Failed during fetch of organization members ${this.id}`,
126
+ response
127
+ )
128
+ }
129
+
130
+ return (await response!.json() as {
131
+ members: UserDto[]
132
+ }).members as UserDto[]
133
+ }
134
+
135
+ async change(name: string, description: string): Promise<void> {
136
+ if (!this._content) {
137
+ throw new Error("Organization is not loaded.")
138
+ }
139
+
140
+ if (name === this.name && description === this.description) {
141
+ return Promise.resolve()
142
+ }
143
+ if (name === undefined || name === null || name.trim() === "") {
144
+ throw new Error("Name is required. Please provide a valid name.")
145
+ }
146
+ if (
147
+ description === undefined ||
148
+ description === null ||
149
+ description.trim() === ""
150
+ ) {
151
+ throw new Error(
152
+ "Description is required. Please provide a valid description."
153
+ )
154
+ }
155
+
156
+ const response = await this.context
157
+ .resolve(RpcService)
158
+ ?.requestBuilder("api/v1/Organizations")
159
+ .sendPutJson({
160
+ organizationId: this.id,
161
+ profile: {
162
+ name,
163
+ description
164
+ }
165
+ })
166
+
167
+ if (ResponseUtils.isFail(response)) {
168
+ await ResponseUtils.throwError("Failed to change organization", response)
169
+ }
170
+
171
+ if (this._content) {
172
+ this._content.profile.name = name
173
+ this._content.profile.description = description
174
+ }
175
+
176
+ this.dispatch({
177
+ type: OrganizationEvent.CHANGED,
178
+ data: this
179
+ })
180
+ }
181
+
182
+ async uploadIcon(icon: UploadFile): Promise<string> {
183
+ // check icon file
184
+ if (icon === undefined || icon === null) {
185
+ throw new Error("Organization icon upload, file is undefined or null")
186
+ }
187
+
188
+ // form data to send
189
+ const form = new FormData()
190
+ form.append("OrganizationId", this.id)
191
+ form.append("FileName", icon.name)
192
+ form.append("File", icon, icon.name)
193
+
194
+ // send request to the server
195
+ const response = await this.context
196
+ .resolve(RpcService)
197
+ ?.requestBuilder("api/v1/Organizations/icon")
198
+ .sendPutFormData(form)
199
+
200
+ // check response status
201
+ if (ResponseUtils.isFail(response)) {
202
+ await ResponseUtils.throwError(`Organization icon upload ${icon.name}`, response)
203
+ }
204
+
205
+ const iconResponse = await response!.json() as IconResponse
206
+
207
+ return iconResponse.iconId
208
+ }
209
+
210
+ async statistics(dateFrom: number, dateTo: number): Promise<StatisticsResponse> {
211
+ // send request to the server
212
+ const response = await this.context
213
+ .resolve(RpcService)
214
+ ?.requestBuilder("api/v1/Stats/organization")
215
+ .searchParam("organizationId", this.id)
216
+ .searchParam("dateFrom", dateFrom.toString())
217
+ .searchParam("dateTo", dateTo.toString())
218
+ .sendGet()
219
+
220
+ // check response status
221
+ if (ResponseUtils.isFail(response)) {
222
+ await ResponseUtils.throwError(
223
+ `Failed during fetch of organization statistics ${this.id}`,
224
+ response
225
+ )
226
+ }
227
+
228
+ return await response!.json() as StatisticsResponse
229
+ }
230
+
231
+ async membersStatistics(dateFrom: number, dateTo: number): Promise<UsersStatisticsResponse> {
232
+ // send request to the server
233
+ const response = await this.context
234
+ .resolve(RpcService)
235
+ ?.requestBuilder("api/v1/Stats/organization/members")
236
+ .searchParam("organizationId", this.id)
237
+ .searchParam("dateFrom", dateFrom.toString())
238
+ .searchParam("dateTo", dateTo.toString())
239
+ .sendGet()
240
+
241
+ // check response status
242
+ if (ResponseUtils.isFail(response)) {
243
+ await ResponseUtils.throwError(
244
+ `Failed during fetch of organization members statistics ${this.id}`,
245
+ response
246
+ )
247
+ }
248
+
249
+ return await response!.json() as UsersStatisticsResponse
250
+ }
251
+
252
+ async userStatistic(userId: string, dateFrom: number, dateTo: number): Promise<StatisticsResponse> {
253
+ // send request to the server
254
+ const response = await this.context
255
+ .resolve(RpcService)
256
+ ?.requestBuilder("api/v1/Stats/user")
257
+ .searchParam("userId", userId)
258
+ .searchParam("organizationId", this.id)
259
+ .searchParam("dateFrom", dateFrom.toString())
260
+ .searchParam("dateTo", dateTo.toString())
261
+ .sendGet()
262
+
263
+ // check response status
264
+ if (ResponseUtils.isFail(response)) {
265
+ await ResponseUtils.throwError(
266
+ `Failed during fetch of user statistics ${this.id}`,
267
+ response
268
+ )
269
+ }
270
+
271
+ return await response!.json() as StatisticsResponse
272
+ }
273
+
274
+ async userLimits(): Promise<CurrentLimitsData> {
275
+ // fetch limits
276
+ const response = await this.context.resolve(RpcService)
277
+ ?.requestBuilder("api/v1/Users/limits")
278
+ .sendGet()
279
+
280
+ // check response status
281
+ if (ResponseUtils.isFail(response)) {
282
+ await ResponseUtils.throwError(`Failed to get limits in organization: ${this.id}`, response)
283
+ }
284
+
285
+ // parse limits from the server's response
286
+ const limits = (await response!.json()) as UserLimitsData
287
+
288
+ const currentLimits = {
289
+ segment: limits.userSegment.key,
290
+ limits: []
291
+ } as CurrentLimitsData
292
+ for (const limit of limits.userLimits) {
293
+ const type = limit.action as LimitActionType
294
+ const currentItem = {
295
+ action: type,
296
+ records: []
297
+ } as CurrentLimitItem
298
+
299
+ if (limit.records.length == 0) continue
300
+
301
+ for (const record of limit.records) {
302
+ const segmentRecord = limits.userSegment.dayItems.find(item => item.daysCount == record.daysCount)
303
+ if (segmentRecord == null) {
304
+ throw new Error(`Invalid response during get limits in organization: ${this.id}. Days count with ${type} not found in segment ${limits.userSegment.key}`)
305
+ }
306
+ const actionRecord = segmentRecord?.actionItems.find(item => item.type == type)
307
+ if (actionRecord == null) {
308
+ throw new Error(`Invalid response during get limits in organization: ${this.id}. Type ${type} not found in segment ${limits.userSegment.key}`)
309
+ }
310
+
311
+ const currentRecord = {} as CurrentLimitRecordData
312
+ currentRecord.daysCount = record.daysCount
313
+ currentRecord.activeTill = record.activeTill
314
+ currentRecord.all = actionRecord?.tokenLimit ?? actionRecord?.countLimit
315
+
316
+ const available = record.tokenLimit ?? record.countLimit
317
+ currentRecord.used = currentRecord.all - available
318
+
319
+ currentItem.records.push(currentRecord)
320
+ }
321
+
322
+ currentLimits.limits.push(currentItem)
323
+ }
324
+
325
+ return currentLimits
326
+ }
327
+
328
+ async organizationLimits(): Promise<SegmentData> {
329
+ // fetch limits
330
+ const response = await this.context.resolve(RpcService)
331
+ ?.requestBuilder("api/v1/Descriptions/limits/organization")
332
+ .searchParam("organizationId", this.id)
333
+ .sendGet()
334
+
335
+ // check response status
336
+ if (ResponseUtils.isFail(response)) {
337
+ await ResponseUtils.throwError(`Failed to get limits in organization: ${this.id}`, response)
338
+ }
339
+
340
+ const json = await response!.json()
341
+
342
+ // parse limits from the server's response
343
+ const limits = (json as OrganizationSegmentData).segment
344
+
345
+ return limits
346
+ }
347
+
348
+ async limitSegments(): Promise<SegmentData[]> {
349
+ // fetch limits
350
+ const response = await this.context.resolve(RpcService)
351
+ ?.requestBuilder("api/v1/Descriptions/limits/segments")
352
+ .sendGet()
353
+
354
+ // check response status
355
+ if (ResponseUtils.isFail(response)) {
356
+ await ResponseUtils.throwError(`Failed to get limits in organization: ${this.id}`, response)
357
+ }
358
+ const json = await response!.json()
359
+
360
+ // parse limits from the server's response
361
+ const limits = (json as SegmentsData).segments
362
+
363
+ return limits
364
+ }
365
+
366
+ async inviteUsers(emails: string[], accessGroups: string[]): Promise<void> {
367
+ const response = await this.context
368
+ .resolve(RpcService)
369
+ ?.requestBuilder("api/v1/Invites")
370
+ .sendPostJson({
371
+ organizationId: this.id,
372
+ emails: emails,
373
+ accessGroupIds: accessGroups
374
+ })
375
+ if (ResponseUtils.isFail(response)) {
376
+ await ResponseUtils.throwError(
377
+ `Invite users failed for organization ${this.id}`,
378
+ response
379
+ )
380
+ }
381
+ }
382
+
383
+ async createInviteCode(accessGroups: string[], validateDomain?: string ): Promise<string> {
384
+
385
+ let validateObj = null
386
+ if (validateDomain !== null && validateDomain !== undefined){
387
+ validateObj = {
388
+ domain: validateDomain
389
+ }
390
+ }
391
+
392
+ const response = await this.context
393
+ .resolve(RpcService)
394
+ ?.requestBuilder("api/v1/Invites/link")
395
+ .sendPostJson({
396
+ organizationId: this.id,
397
+ accessGroupIds: accessGroups,
398
+ validation: validateObj
399
+ })
400
+ if (ResponseUtils.isFail(response)) {
401
+ await ResponseUtils.throwError(
402
+ `Invite code creation failed for organization ${this.id}`,
403
+ response
404
+ )
405
+ }
406
+
407
+ const json = await response!.json()
408
+
409
+ const code = (json as InviteCodeResponse).code
410
+
411
+ return code
412
+ }
413
+
414
+ async deleteInviteCode(code: string): Promise<void>{
415
+ if (code === undefined || code === null || code.trim() === "") {
416
+ throw new Error("Invite code is required. Please provide a valid code.")
417
+ }
418
+
419
+ const response = await this.context
420
+ .resolve(RpcService)
421
+ ?.requestBuilder("api/v1/Invites/link")
422
+ .searchParam("code", code)
423
+ .sendDelete()
424
+
425
+ // check response status
426
+ if (ResponseUtils.isFail(response)) {
427
+ await ResponseUtils.throwError(
428
+ `Failed to delete invite for code: ${code}`,
429
+ response
430
+ )
431
+ }
432
+ }
433
+
434
+ async getOrganizationInvites(): Promise<InviteResponse>{
435
+ // get invites
436
+ const response = await this.context.resolve(RpcService)
437
+ ?.requestBuilder("api/v1/Invites/link/organization")
438
+ .searchParam("organizationId", this.id)
439
+ .sendGet()
440
+
441
+ // check response status
442
+ if (ResponseUtils.isFail(response)) {
443
+ await ResponseUtils.throwError(`Failed to get invites in organization: ${this.id}`, response)
444
+ }
445
+
446
+ const json = await response!.json()
447
+
448
+ return json as InviteResponse
449
+ }
450
+
451
+ async createApiKey(name: string, accessGroups: string[]): Promise<OrganizationApiKey>{
452
+ if (name === null || name === undefined || name.trim() === "") {
453
+ throw new Error("Name is required. Please provide a valid name.")
454
+ }
455
+
456
+ const response = await this.context
457
+ .resolve(RpcService)
458
+ ?.requestBuilder("api/v1/Keys/organization/exist")
459
+ .sendPostJson({
460
+ organizationId: this.id,
461
+ accessGroupIds: accessGroups,
462
+ keyName: name
463
+ })
464
+
465
+ if (ResponseUtils.isFail(response)) {
466
+ await ResponseUtils.throwError(
467
+ `API key creation failed for organization ${this.id}`,
468
+ response
469
+ )
470
+ }
471
+
472
+ const json = await response!.json()
473
+
474
+ const key = (json as ApiKeyResponse).apiKey
475
+
476
+ return key
477
+ }
478
+
479
+ async getApiKeys(): Promise<OrganizationApiKey[]> {
480
+ // get invites
481
+ const response = await this.context.resolve(RpcService)
482
+ ?.requestBuilder("api/v1/Keys/organization")
483
+ .searchParam("organizationId", this.id)
484
+ .sendGet()
485
+
486
+ // check response status
487
+ if (ResponseUtils.isFail(response)) {
488
+ await ResponseUtils.throwError(`Failed to get api keys fot organization: ${this.id}`, response)
489
+ }
490
+
491
+ const json = await response!.json()
492
+
493
+ const keys = (json as OrganizationKeysResponse).keys
494
+
495
+ return keys
496
+ }
497
+
498
+ async getTokenFromKey(key: string, userId: string, userName: string, userMetadata: string): Promise<TokenResponse> {
499
+ // get invites
500
+ const response = await this.context.resolve(RpcService)
501
+ ?.requestBuilder("api/v1/Keys/user/token/jwt")
502
+ .searchParam("apiKey", key)
503
+ .searchParam("userId", userId)
504
+ .searchParam("userName", userName)
505
+ .searchParam("userMetadata", userMetadata)
506
+ .sendGet()
507
+
508
+ // check response status
509
+ if (ResponseUtils.isFail(response)) {
510
+ await ResponseUtils.throwError(`Failed to get token from key for org: ${this.id}`, response)
511
+ }
512
+
513
+ const json = await response!.json()
514
+
515
+ return json as TokenResponse
516
+ }
517
+
518
+ async deleteApiKey(key: string): Promise<void>{
519
+ if (key === null || key === undefined || key.trim() === "") {
520
+ throw new Error("Key is required. Please provide a valid key.")
521
+ }
522
+
523
+ const response = await this.context
524
+ .resolve(RpcService)
525
+ ?.requestBuilder("api/v1/Keys/organization")
526
+ .searchParam("apiKey", key )
527
+ .sendDelete()
528
+
529
+ if (ResponseUtils.isFail(response)) {
530
+ await ResponseUtils.throwError("Api key delete error", response)
531
+ }
532
+ }
533
+
534
+ async createQuiz(workspaces: WorkspaceId[], query: string, questionsCount: number, optionsCount: number, fileId: FileId): Promise<QuizData> {
535
+ const response = await this.context
536
+ .resolve(RpcService)
537
+ ?.requestBuilder("api/v1/Quiz")
538
+ .sendPostJson({
539
+ query: query,
540
+ questionsCount: questionsCount,
541
+ optionsCount: optionsCount,
542
+ organizationId: this.id,
543
+ workspaceIds: workspaces,
544
+ fileId: fileId
545
+ })
546
+ if (ResponseUtils.isFail(response)) {
547
+ await ResponseUtils.throwError(
548
+ `Quiz creation failed for organization ${this.id} with query ${query}`,
549
+ response
550
+ )
551
+ }
552
+
553
+ return (await response!.json()) as QuizData
554
+ }
555
+ }
@@ -0,0 +1,168 @@
1
+ import {WorkspaceId, Workspaces} from "../workspaces/workspaces"
2
+ import { OrganizationId } from "./organizations"
3
+ import { Groups } from "../groups/groups"
4
+ import { Chats } from "../chats/chats"
5
+ import { EventDispatcher } from "../../events"
6
+ import {
7
+ CurrentLimitsData,
8
+ UserDto,
9
+ UsersStatisticsResponse
10
+ } from "../../dto/userInfoResponse"
11
+ import { GroupId } from "../groups/group"
12
+ import { StatisticsResponse } from "../../dto/statisticsResponse"
13
+ import { SegmentData } from "../../dto/limitsResponse"
14
+ import {FileId} from "../files/file"
15
+ import {QuizData} from "../../dto/quizResponse"
16
+ import {InviteResponse} from "../../dto/invitesResponse"
17
+ import { OrganizationApiKey } from "../../dto/apiKeyResponse"
18
+ import {UploadFile} from "../files/files"
19
+
20
+ /**
21
+ * Organization event.
22
+ */
23
+ export enum OrganizationEvent {
24
+ CHANGED = "changed"
25
+ }
26
+
27
+ /**
28
+ * Organization.
29
+ */
30
+ export abstract class Organization extends EventDispatcher<
31
+ OrganizationEvent,
32
+ Organization
33
+ > {
34
+ /**
35
+ * Organization id.
36
+ */
37
+ abstract get id(): OrganizationId
38
+
39
+ /**
40
+ * Organization name.
41
+ */
42
+ abstract get name(): string
43
+
44
+ /**
45
+ * Organization description.
46
+ */
47
+ abstract get description(): string
48
+
49
+ /**
50
+ * ID of organization icon
51
+ */
52
+ abstract get icon(): string
53
+
54
+ /**
55
+ * Workspaces.
56
+ */
57
+ abstract get workspaces(): Workspaces
58
+
59
+ /**
60
+ * Chats.
61
+ */
62
+ abstract get chats(): Chats
63
+
64
+ /**
65
+ * Groups.
66
+ */
67
+ abstract get accessGroups(): Groups
68
+
69
+ /**
70
+ * Get organization members
71
+ */
72
+ abstract members(): Promise<UserDto[]>
73
+
74
+ /**
75
+ * Get organization statistics
76
+ * @param dateFrom
77
+ * @param dateTo
78
+ */
79
+ abstract statistics(dateFrom: number, dateTo: number): Promise<StatisticsResponse>
80
+
81
+ /**
82
+ * Get organization statistics
83
+ * @param dateFrom
84
+ * @param dateTo
85
+ */
86
+ abstract membersStatistics(dateFrom: number, dateTo: number): Promise<UsersStatisticsResponse>
87
+
88
+ /**
89
+ * Get statistics for user
90
+ * @param userid
91
+ * @param dateFrom
92
+ * @param dateTo
93
+ */
94
+ abstract userStatistic(userid: string, dateFrom: number, dateTo: number): Promise<StatisticsResponse>
95
+
96
+ /**
97
+ * Get user limits data
98
+ */
99
+ abstract userLimits(): Promise<CurrentLimitsData>
100
+
101
+ /**
102
+ * Get default organization limits
103
+ */
104
+ abstract organizationLimits(): Promise<SegmentData>
105
+
106
+ /**
107
+ * Get all available segments data
108
+ */
109
+ abstract limitSegments(): Promise<SegmentData[]>
110
+
111
+ /**
112
+ * Change organization name and description.
113
+ */
114
+ abstract change(name: string, description: string): Promise<void>
115
+
116
+ /**
117
+ * Upload an icon for organization
118
+ * @param icon
119
+ */
120
+ abstract uploadIcon(icon: UploadFile): Promise<string>
121
+
122
+ /**
123
+ * Invite users with given emails to organization
124
+ */
125
+ abstract inviteUsers(emails: string[], accessGroups: GroupId[]): Promise<void>
126
+
127
+ /**
128
+ * Create invite code for users outside organization
129
+ */
130
+ abstract createInviteCode(accessGroups: GroupId[], validateDomain?: string): Promise<string>
131
+
132
+ /**
133
+ * Delete invite code
134
+ */
135
+ abstract deleteInviteCode(code: string): Promise<void>
136
+
137
+ /**
138
+ * Get all invite links for organization
139
+ */
140
+ abstract getOrganizationInvites(): Promise<InviteResponse>
141
+
142
+ /**
143
+ * Create new Api key for organization
144
+ * @param name
145
+ * @param accessGroups
146
+ */
147
+ abstract createApiKey(name: string, accessGroups: string[]): Promise<OrganizationApiKey>
148
+
149
+ /**
150
+ * Get all organization api keys
151
+ */
152
+ abstract getApiKeys(): Promise<OrganizationApiKey[]>
153
+
154
+ /**
155
+ * Delete api key
156
+ */
157
+ abstract deleteApiKey(key: string): Promise<void>
158
+
159
+ /**
160
+ * Create quiz for given topic
161
+ * @param workspaces - workspaces to search for topic
162
+ * @param query - search query and quiz topic
163
+ * @param questionsCount - count of quiz tests
164
+ * @param optionsCount - count of one question options
165
+ * @param fileId - file id in case of test-on-file
166
+ */
167
+ abstract createQuiz(workspaces: WorkspaceId[], query: string, questionsCount: number, optionsCount: number, fileId: FileId): Promise<QuizData>
168
+ }