@neuralinnovations/dataisland-sdk 0.0.1-dev6 → 0.0.1-dev61

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 (377) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +232 -3
  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 +33 -0
  25. package/dist/src/credentials.d.ts.map +1 -0
  26. package/dist/src/credentials.js +87 -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 +30 -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/badRequestResponse.d.ts +6 -0
  45. package/dist/src/dto/badRequestResponse.d.ts.map +1 -0
  46. package/dist/src/dto/badRequestResponse.js +3 -0
  47. package/dist/src/dto/badRequestResponse.js.map +1 -0
  48. package/dist/src/dto/chatResponse.d.ts +84 -0
  49. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  50. package/dist/src/dto/chatResponse.js +45 -0
  51. package/dist/src/dto/chatResponse.js.map +1 -0
  52. package/dist/src/dto/limitsResponse.d.ts +29 -0
  53. package/dist/src/dto/limitsResponse.d.ts.map +1 -0
  54. package/dist/src/dto/limitsResponse.js +13 -0
  55. package/dist/src/dto/limitsResponse.js.map +1 -0
  56. package/dist/src/dto/quizResponse.d.ts +11 -0
  57. package/dist/src/dto/quizResponse.d.ts.map +1 -0
  58. package/dist/src/dto/quizResponse.js +3 -0
  59. package/dist/src/dto/quizResponse.js.map +1 -0
  60. package/dist/src/dto/statisticsResponse.d.ts +11 -0
  61. package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
  62. package/dist/src/dto/statisticsResponse.js +3 -0
  63. package/dist/src/dto/statisticsResponse.js.map +1 -0
  64. package/dist/src/dto/userInfoResponse.d.ts +91 -0
  65. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  66. package/dist/src/dto/userInfoResponse.js +3 -0
  67. package/dist/src/dto/userInfoResponse.js.map +1 -0
  68. package/dist/src/dto/workspacesResponse.d.ts +51 -0
  69. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  70. package/dist/src/dto/workspacesResponse.js +11 -0
  71. package/dist/src/dto/workspacesResponse.js.map +1 -0
  72. package/dist/src/events.d.ts +17 -0
  73. package/dist/src/events.d.ts.map +1 -0
  74. package/dist/src/events.js +52 -0
  75. package/dist/src/events.js.map +1 -0
  76. package/dist/src/index.d.ts +73 -0
  77. package/dist/src/index.d.ts.map +1 -0
  78. package/dist/src/index.js +122 -0
  79. package/dist/src/index.js.map +1 -0
  80. package/dist/src/internal/app.impl.d.ts +30 -0
  81. package/dist/src/internal/app.impl.d.ts.map +1 -0
  82. package/dist/src/internal/app.impl.js +180 -0
  83. package/dist/src/internal/app.impl.js.map +1 -0
  84. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  85. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  86. package/dist/src/internal/appBuilder.impl.js +71 -0
  87. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  88. package/dist/src/internal/createApp.impl.d.ts +4 -0
  89. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  90. package/dist/src/internal/createApp.impl.js +11 -0
  91. package/dist/src/internal/createApp.impl.js.map +1 -0
  92. package/dist/src/internal/registry.d.ts +66 -0
  93. package/dist/src/internal/registry.d.ts.map +1 -0
  94. package/dist/src/internal/registry.js +114 -0
  95. package/dist/src/internal/registry.js.map +1 -0
  96. package/dist/src/middleware.d.ts +6 -0
  97. package/dist/src/middleware.d.ts.map +1 -0
  98. package/dist/src/middleware.js +3 -0
  99. package/dist/src/middleware.js.map +1 -0
  100. package/dist/src/services/acquiringService.d.ts +9 -0
  101. package/dist/src/services/acquiringService.d.ts.map +1 -0
  102. package/dist/src/services/acquiringService.js +19 -0
  103. package/dist/src/services/acquiringService.js.map +1 -0
  104. package/dist/src/services/anonymousService.d.ts +8 -0
  105. package/dist/src/services/anonymousService.d.ts.map +1 -0
  106. package/dist/src/services/anonymousService.js +41 -0
  107. package/dist/src/services/anonymousService.js.map +1 -0
  108. package/dist/src/services/commandService.d.ts +18 -0
  109. package/dist/src/services/commandService.d.ts.map +1 -0
  110. package/dist/src/services/commandService.js +40 -0
  111. package/dist/src/services/commandService.js.map +1 -0
  112. package/dist/src/services/cookieService.d.ts +7 -0
  113. package/dist/src/services/cookieService.d.ts.map +1 -0
  114. package/dist/src/services/cookieService.js +18 -0
  115. package/dist/src/services/cookieService.js.map +1 -0
  116. package/dist/src/services/credentialService.d.ts +9 -0
  117. package/dist/src/services/credentialService.d.ts.map +1 -0
  118. package/dist/src/services/credentialService.js +26 -0
  119. package/dist/src/services/credentialService.js.map +1 -0
  120. package/dist/src/services/httpMethod.d.ts +2 -0
  121. package/dist/src/services/httpMethod.d.ts.map +1 -0
  122. package/dist/src/services/httpMethod.js +3 -0
  123. package/dist/src/services/httpMethod.js.map +1 -0
  124. package/dist/src/services/middlewareService.d.ts +10 -0
  125. package/dist/src/services/middlewareService.d.ts.map +1 -0
  126. package/dist/src/services/middlewareService.js +34 -0
  127. package/dist/src/services/middlewareService.js.map +1 -0
  128. package/dist/src/services/organizationService.d.ts +10 -0
  129. package/dist/src/services/organizationService.d.ts.map +1 -0
  130. package/dist/src/services/organizationService.js +19 -0
  131. package/dist/src/services/organizationService.js.map +1 -0
  132. package/dist/src/services/requestBuilder.d.ts +18 -0
  133. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  134. package/dist/src/services/requestBuilder.js +118 -0
  135. package/dist/src/services/requestBuilder.js.map +1 -0
  136. package/dist/src/services/responseUtils.d.ts +8 -0
  137. package/dist/src/services/responseUtils.d.ts.map +1 -0
  138. package/dist/src/services/responseUtils.js +40 -0
  139. package/dist/src/services/responseUtils.js.map +1 -0
  140. package/dist/src/services/rpcService.d.ts +77 -0
  141. package/dist/src/services/rpcService.d.ts.map +1 -0
  142. package/dist/src/services/rpcService.js +125 -0
  143. package/dist/src/services/rpcService.js.map +1 -0
  144. package/dist/src/services/service.d.ts +21 -0
  145. package/dist/src/services/service.d.ts.map +1 -0
  146. package/dist/src/services/service.js +41 -0
  147. package/dist/src/services/service.js.map +1 -0
  148. package/dist/src/services/userProfileService.d.ts +10 -0
  149. package/dist/src/services/userProfileService.d.ts.map +1 -0
  150. package/dist/src/services/userProfileService.js +59 -0
  151. package/dist/src/services/userProfileService.js.map +1 -0
  152. package/dist/src/storages/acquirings/acquiring.d.ts +41 -0
  153. package/dist/src/storages/acquirings/acquiring.d.ts.map +1 -0
  154. package/dist/src/storages/acquirings/acquiring.impl.d.ts +20 -0
  155. package/dist/src/storages/acquirings/acquiring.impl.d.ts.map +1 -0
  156. package/dist/src/storages/acquirings/acquiring.impl.js +92 -0
  157. package/dist/src/storages/acquirings/acquiring.impl.js.map +1 -0
  158. package/dist/src/storages/acquirings/acquiring.js +10 -0
  159. package/dist/src/storages/acquirings/acquiring.js.map +1 -0
  160. package/dist/src/storages/chats/answer.d.ts +41 -0
  161. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  162. package/dist/src/storages/chats/answer.impl.d.ts +29 -0
  163. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  164. package/dist/src/storages/chats/answer.impl.js +119 -0
  165. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  166. package/dist/src/storages/chats/answer.js +15 -0
  167. package/dist/src/storages/chats/answer.js.map +1 -0
  168. package/dist/src/storages/chats/chat.d.ts +55 -0
  169. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  170. package/dist/src/storages/chats/chat.impl.d.ts +28 -0
  171. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  172. package/dist/src/storages/chats/chat.impl.js +106 -0
  173. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  174. package/dist/src/storages/chats/chat.js +12 -0
  175. package/dist/src/storages/chats/chat.js.map +1 -0
  176. package/dist/src/storages/chats/chats.d.ts +51 -0
  177. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  178. package/dist/src/storages/chats/chats.impl.d.ts +20 -0
  179. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  180. package/dist/src/storages/chats/chats.impl.js +184 -0
  181. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  182. package/dist/src/storages/chats/chats.js +16 -0
  183. package/dist/src/storages/chats/chats.js.map +1 -0
  184. package/dist/src/storages/files/file.d.ts +59 -0
  185. package/dist/src/storages/files/file.d.ts.map +1 -0
  186. package/dist/src/storages/files/file.impl.d.ts +28 -0
  187. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  188. package/dist/src/storages/files/file.impl.js +130 -0
  189. package/dist/src/storages/files/file.impl.js.map +1 -0
  190. package/dist/src/storages/files/file.js +17 -0
  191. package/dist/src/storages/files/file.js.map +1 -0
  192. package/dist/src/storages/files/files.d.ts +39 -0
  193. package/dist/src/storages/files/files.d.ts.map +1 -0
  194. package/dist/src/storages/files/files.impl.d.ts +24 -0
  195. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  196. package/dist/src/storages/files/files.impl.js +168 -0
  197. package/dist/src/storages/files/files.impl.js.map +1 -0
  198. package/dist/src/storages/files/files.js +20 -0
  199. package/dist/src/storages/files/files.js.map +1 -0
  200. package/dist/src/storages/files/filesPage.d.ts +28 -0
  201. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  202. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  203. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  204. package/dist/src/storages/files/filesPage.impl.js +38 -0
  205. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  206. package/dist/src/storages/files/filesPage.js +10 -0
  207. package/dist/src/storages/files/filesPage.js.map +1 -0
  208. package/dist/src/storages/groups/group.d.ts +63 -0
  209. package/dist/src/storages/groups/group.d.ts.map +1 -0
  210. package/dist/src/storages/groups/group.impl.d.ts +38 -0
  211. package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
  212. package/dist/src/storages/groups/group.impl.js +210 -0
  213. package/dist/src/storages/groups/group.impl.js.map +1 -0
  214. package/dist/src/storages/groups/group.js +15 -0
  215. package/dist/src/storages/groups/group.js.map +1 -0
  216. package/dist/src/storages/groups/groups.d.ts +43 -0
  217. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  218. package/dist/src/storages/groups/groups.impl.d.ts +31 -0
  219. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  220. package/dist/src/storages/groups/groups.impl.js +136 -0
  221. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  222. package/dist/src/storages/groups/groups.js +20 -0
  223. package/dist/src/storages/groups/groups.js.map +1 -0
  224. package/dist/src/storages/organizations/organization.d.ts +103 -0
  225. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  226. package/dist/src/storages/organizations/organization.impl.d.ts +44 -0
  227. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  228. package/dist/src/storages/organizations/organization.impl.js +255 -0
  229. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  230. package/dist/src/storages/organizations/organization.js +18 -0
  231. package/dist/src/storages/organizations/organization.js.map +1 -0
  232. package/dist/src/storages/organizations/organizations.d.ts +51 -0
  233. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  234. package/dist/src/storages/organizations/organizations.impl.d.ts +39 -0
  235. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  236. package/dist/src/storages/organizations/organizations.impl.js +173 -0
  237. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  238. package/dist/src/storages/organizations/organizations.js +20 -0
  239. package/dist/src/storages/organizations/organizations.js.map +1 -0
  240. package/dist/src/storages/user/userProfile.d.ts +59 -0
  241. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  242. package/dist/src/storages/user/userProfile.impl.d.ts +22 -0
  243. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  244. package/dist/src/storages/user/userProfile.impl.js +118 -0
  245. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  246. package/dist/src/storages/user/userProfile.js +12 -0
  247. package/dist/src/storages/user/userProfile.js.map +1 -0
  248. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  249. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  250. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  251. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  252. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  253. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  254. package/dist/src/storages/workspaces/workspace.js +18 -0
  255. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  256. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  257. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  258. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  259. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  260. package/dist/src/storages/workspaces/workspaces.impl.js +153 -0
  261. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  262. package/dist/src/storages/workspaces/workspaces.js +19 -0
  263. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  264. package/dist/src/unitTest.d.ts +12 -0
  265. package/dist/src/unitTest.d.ts.map +1 -0
  266. package/dist/src/unitTest.js +44 -0
  267. package/dist/src/unitTest.js.map +1 -0
  268. package/dist/src/utils/browserUtils.d.ts +4 -0
  269. package/dist/src/utils/browserUtils.d.ts.map +1 -0
  270. package/dist/src/utils/browserUtils.js +64 -0
  271. package/dist/src/utils/browserUtils.js.map +1 -0
  272. package/dist/src/utils/request.d.ts +6 -0
  273. package/dist/src/utils/request.d.ts.map +1 -0
  274. package/dist/src/utils/request.js +3 -0
  275. package/dist/src/utils/request.js.map +1 -0
  276. package/dist/src/utils/utils.d.ts +3 -0
  277. package/dist/src/utils/utils.d.ts.map +1 -0
  278. package/dist/src/utils/utils.js +13 -0
  279. package/dist/src/utils/utils.js.map +1 -0
  280. package/index.d.ts +1 -0
  281. package/index.js +1 -0
  282. package/package.json +46 -5
  283. package/src/commands/deleteUserFullCommandHandler.ts +19 -0
  284. package/src/commands/startCommandHandler.ts +19 -5
  285. package/src/context.ts +4 -2
  286. package/src/credentials.ts +22 -0
  287. package/src/dataIslandApp.ts +8 -2
  288. package/src/disposable.ts +18 -5
  289. package/src/dto/accessGroupResponse.ts +19 -16
  290. package/src/dto/acquiringResponse.ts +54 -0
  291. package/src/dto/badRequestResponse.ts +6 -0
  292. package/src/dto/chatResponse.ts +60 -54
  293. package/src/dto/limitsResponse.ts +32 -0
  294. package/src/dto/quizResponse.ts +12 -0
  295. package/src/dto/statisticsResponse.ts +12 -0
  296. package/src/dto/userInfoResponse.ts +63 -2
  297. package/src/dto/workspacesResponse.ts +17 -3
  298. package/src/index.ts +57 -16
  299. package/src/internal/app.impl.ts +54 -12
  300. package/src/internal/registry.ts +54 -6
  301. package/src/middleware.ts +2 -0
  302. package/src/services/acquiringService.ts +21 -0
  303. package/src/services/anonymousService.ts +43 -0
  304. package/src/services/commandService.ts +4 -2
  305. package/src/services/cookieService.ts +16 -0
  306. package/src/services/httpMethod.ts +1 -0
  307. package/src/services/middlewareService.ts +1 -0
  308. package/src/services/organizationService.ts +2 -2
  309. package/src/services/requestBuilder.ts +26 -8
  310. package/src/services/responseUtils.ts +12 -0
  311. package/src/services/rpcService.ts +1 -0
  312. package/src/services/userProfileService.ts +36 -4
  313. package/src/storages/acquirings/acquiring.impl.ts +132 -0
  314. package/src/storages/acquirings/acquiring.ts +54 -0
  315. package/src/storages/chats/answer.impl.ts +162 -0
  316. package/src/storages/chats/answer.ts +53 -0
  317. package/src/storages/chats/chat.impl.ts +139 -0
  318. package/src/storages/chats/chat.ts +70 -0
  319. package/src/storages/chats/chats.impl.ts +255 -0
  320. package/src/storages/chats/chats.ts +60 -0
  321. package/src/storages/files/file.impl.ts +162 -0
  322. package/src/storages/files/file.ts +74 -0
  323. package/src/storages/{files.impl.ts → files/files.impl.ts} +88 -67
  324. package/src/storages/{files.ts → files/files.ts} +14 -7
  325. package/src/storages/files/filesPage.impl.ts +37 -0
  326. package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
  327. package/src/storages/groups/group.impl.ts +276 -0
  328. package/src/storages/groups/group.ts +73 -0
  329. package/src/storages/groups/groups.impl.ts +180 -0
  330. package/src/storages/groups/groups.ts +50 -0
  331. package/src/storages/organizations/organization.impl.ts +387 -0
  332. package/src/storages/organizations/organization.ts +127 -0
  333. package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +55 -13
  334. package/src/storages/{organizations.ts → organizations/organizations.ts} +7 -1
  335. package/src/storages/user/userProfile.impl.ts +140 -0
  336. package/src/storages/user/userProfile.ts +75 -0
  337. package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
  338. package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
  339. package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +29 -32
  340. package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
  341. package/src/unitTest.ts +3 -3
  342. package/src/utils/browserUtils.ts +68 -0
  343. package/src/utils/request.ts +6 -0
  344. package/src/utils/utils.ts +8 -0
  345. package/.browserslistrc +0 -5
  346. package/.editorconfig +0 -25
  347. package/.eslintrc.json +0 -44
  348. package/.github/workflows/publish-npm.yml +0 -28
  349. package/.prettierignore +0 -1
  350. package/.prettierrc +0 -11
  351. package/.yarnrc +0 -2
  352. package/babel.config.js +0 -6
  353. package/jest.config.ts +0 -199
  354. package/jest.setup.ts +0 -2
  355. package/src/storages/chat.ts +0 -21
  356. package/src/storages/chats.ts +0 -17
  357. package/src/storages/file.impl.ts +0 -69
  358. package/src/storages/file.ts +0 -28
  359. package/src/storages/groups.impl.ts +0 -337
  360. package/src/storages/groups.ts +0 -43
  361. package/src/storages/organization.impl.ts +0 -68
  362. package/src/storages/organization.ts +0 -33
  363. package/src/storages/userProfile.impl.ts +0 -56
  364. package/src/storages/userProfile.ts +0 -42
  365. package/test/commands.test.ts +0 -24
  366. package/test/data/test_file.pdf +0 -0
  367. package/test/disposable.test.ts +0 -39
  368. package/test/events.test.ts +0 -151
  369. package/test/files.test.ts +0 -52
  370. package/test/index.test.ts +0 -122
  371. package/test/organization.test.ts +0 -57
  372. package/test/registry.test.ts +0 -44
  373. package/test/services.test.ts +0 -56
  374. package/test/setup.ts +0 -54
  375. package/test/unitTest.test.ts +0 -21
  376. package/test/workspace.test.ts +0 -71
  377. package/tsconfig.json +0 -31
@@ -0,0 +1,127 @@
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
+
17
+ /**
18
+ * Organization event.
19
+ */
20
+ export enum OrganizationEvent {
21
+ CHANGED = "changed"
22
+ }
23
+
24
+ /**
25
+ * Organization.
26
+ */
27
+ export abstract class Organization extends EventDispatcher<
28
+ OrganizationEvent,
29
+ Organization
30
+ > {
31
+ /**
32
+ * Organization id.
33
+ */
34
+ abstract get id(): OrganizationId
35
+
36
+ /**
37
+ * Organization name.
38
+ */
39
+ abstract get name(): string
40
+
41
+ /**
42
+ * Organization description.
43
+ */
44
+ abstract get description(): string
45
+
46
+ /**
47
+ * Workspaces.
48
+ */
49
+ abstract get workspaces(): Workspaces
50
+
51
+ /**
52
+ * Chats.
53
+ */
54
+ abstract get chats(): Chats
55
+
56
+ /**
57
+ * Groups.
58
+ */
59
+ abstract get accessGroups(): Groups
60
+
61
+ /**
62
+ * Get organization members
63
+ */
64
+ abstract members(): Promise<UserDto[]>
65
+
66
+ /**
67
+ * Get organization statistics
68
+ * @param dateFrom
69
+ * @param dateTo
70
+ */
71
+ abstract statistics(dateFrom: number, dateTo: number): Promise<StatisticsResponse>
72
+
73
+ /**
74
+ * Get organization statistics
75
+ * @param dateFrom
76
+ * @param dateTo
77
+ */
78
+ abstract membersStatistics(dateFrom: number, dateTo: number): Promise<UsersStatisticsResponse>
79
+
80
+ /**
81
+ * Get statistics for user
82
+ * @param userid
83
+ * @param dateFrom
84
+ * @param dateTo
85
+ */
86
+ abstract userStatistic(userid: string, dateFrom: number, dateTo: number): Promise<StatisticsResponse>
87
+
88
+ /**
89
+ * Get user limits data
90
+ */
91
+ abstract userLimits(): Promise<CurrentLimitsData>
92
+
93
+ /**
94
+ * Get default organization limits
95
+ */
96
+ abstract organizationLimits(): Promise<SegmentData>
97
+
98
+ /**
99
+ * Get all available segments data
100
+ */
101
+ abstract limitSegments(): Promise<SegmentData[]>
102
+
103
+ /**
104
+ * Change organization name and description.
105
+ */
106
+ abstract change(name: string, description: string): Promise<void>
107
+
108
+ /**
109
+ * Invite users with given emails to organization
110
+ */
111
+ abstract inviteUsers(emails: string[], accessGroups: GroupId[]): Promise<void>
112
+
113
+ /**
114
+ * Create invite code for users outside organization
115
+ */
116
+ abstract createInviteCode(accessGroups: GroupId[]): Promise<string>
117
+
118
+ /**
119
+ * Create quiz for given topic
120
+ * @param workspaces - workspaces to search for topic
121
+ * @param query - search query and quiz topic
122
+ * @param questionsCount - count of quiz tests
123
+ * @param optionsCount - count of one question options
124
+ * @param fileId - file id in case of test-on-file
125
+ */
126
+ abstract createQuiz(workspaces: WorkspaceId[], query: string, questionsCount: number, optionsCount: number, fileId: FileId): Promise<QuizData>
127
+ }
@@ -4,11 +4,12 @@ import {
4
4
  Organizations
5
5
  } from "./organizations"
6
6
  import { OrganizationImpl } from "./organization.impl"
7
- import { RpcService } from "../services/rpcService"
8
- import { OrganizationDto, UserSettings } from "../dto/userInfoResponse"
9
- import { Context } from "../context"
7
+ import { RpcService } from "../../services/rpcService"
8
+ import { ApplyInviteCodeResponse, OrganizationDto, UserSettings } from "../../dto/userInfoResponse"
9
+ import { Context } from "../../context"
10
10
  import { Organization } from "./organization"
11
- import { ResponseUtils } from "../services/responseUtils"
11
+ import { ResponseUtils } from "../../services/responseUtils"
12
+ import { UserProfileService } from "../../services/userProfileService"
12
13
 
13
14
  export class OrganizationsImpl extends Organizations {
14
15
  constructor(public readonly context: Context) {
@@ -61,6 +62,27 @@ export class OrganizationsImpl extends Organizations {
61
62
  return this.internalDeleteOrganization(id)
62
63
  }
63
64
 
65
+ async applyInviteCode(code: string): Promise<ApplyInviteCodeResponse> {
66
+ const response = await this.context
67
+ .resolve(RpcService)
68
+ ?.requestBuilder("api/v1/Invites/apply")
69
+ .sendPutJson({
70
+ code: code
71
+ })
72
+ if (ResponseUtils.isFail(response)) {
73
+ await ResponseUtils.throwError(
74
+ "Invite code validation failed",
75
+ response
76
+ )
77
+ }
78
+
79
+ await this.context.resolve(UserProfileService)?.fetch()
80
+
81
+ const result = (await response?.json()) as ApplyInviteCodeResponse
82
+
83
+ return result
84
+ }
85
+
64
86
  //----------------------------------------------------------------------------
65
87
  // INTERNALS
66
88
  //----------------------------------------------------------------------------
@@ -79,17 +101,22 @@ export class OrganizationsImpl extends Organizations {
79
101
  if (!this.contains(id)) {
80
102
  throw new Error(`Organization delete, id: ${id} is not found`)
81
103
  }
104
+ // send request to the server
82
105
  const response = await this.context
83
106
  .resolve(RpcService)
84
107
  ?.requestBuilder("/api/v1/Organizations")
85
108
  .searchParam("id", id)
86
109
  .sendDelete()
110
+
111
+ // check response status
87
112
  if (ResponseUtils.isFail(response)) {
88
113
  await ResponseUtils.throwError(
89
114
  `Organization ${id} delete, failed`,
90
115
  response
91
116
  )
92
117
  }
118
+
119
+ // check organization in collection
93
120
  const org = <OrganizationImpl>this.get(id)
94
121
  const index = this.organizations.indexOf(org)
95
122
  if (index < 0) {
@@ -134,7 +161,8 @@ export class OrganizationsImpl extends Organizations {
134
161
  profile: {
135
162
  name: name,
136
163
  description: description
137
- }
164
+ },
165
+ currentOrganizationId: this.currentOrganizationId
138
166
  })
139
167
  if (ResponseUtils.isFail(response)) {
140
168
  await ResponseUtils.throwError(
@@ -142,7 +170,9 @@ export class OrganizationsImpl extends Organizations {
142
170
  response
143
171
  )
144
172
  }
145
- const content = (await response!.json()).organization as OrganizationDto
173
+ const content = (await response!.json() as {
174
+ organization: OrganizationDto
175
+ }).organization as OrganizationDto
146
176
 
147
177
  // create organization and init from content
148
178
  const org = await new OrganizationImpl(this.context).initFrom(content, true)
@@ -170,22 +200,34 @@ export class OrganizationsImpl extends Organizations {
170
200
  organizations: OrganizationDto[],
171
201
  settings: UserSettings | null | undefined
172
202
  ): Promise<void> {
203
+
204
+ this.organizations = []
205
+
206
+ // set current organization
173
207
  this.currentOrganizationId = settings?.activeOrganizationId
208
+
209
+ // wait list
210
+ const waitList: Promise<OrganizationImpl>[] = []
211
+
212
+ // init organizations
174
213
  for (const organization of organizations) {
175
214
  // create organization and init from content
176
- const org = await new OrganizationImpl(this.context).initFrom(
215
+ const orgPromise = new OrganizationImpl(this.context).initFrom(
177
216
  organization,
178
217
  adminInOrganization.includes(organization.id)
179
218
  )
180
219
 
220
+ // add organization to wait list
221
+ waitList.push(orgPromise)
222
+ }
223
+
224
+ // wait for all organizations
225
+ const orgImpls = await Promise.all(waitList)
226
+
227
+ // add organizations to collection
228
+ for (const org of orgImpls) {
181
229
  // add organization to collection
182
230
  this.organizations.push(org)
183
-
184
- // dispatch event, organization added
185
- this.dispatch({
186
- type: OrganizationsEvent.ADDED,
187
- data: org
188
- })
189
231
  }
190
232
  }
191
233
  }
@@ -1,4 +1,5 @@
1
- import { EventDispatcher } from "../events"
1
+ import { ApplyInviteCodeResponse } from "../../dto/userInfoResponse"
2
+ import { EventDispatcher } from "../../events"
2
3
  import { Organization } from "./organization"
3
4
 
4
5
  /**
@@ -53,4 +54,9 @@ export abstract class Organizations extends EventDispatcher<
53
54
  * Delete organization.
54
55
  */
55
56
  abstract delete(id: OrganizationId): Promise<void>
57
+
58
+ /**
59
+ * Apply invite code for user
60
+ */
61
+ abstract applyInviteCode(code: string): Promise<ApplyInviteCodeResponse>
56
62
  }
@@ -0,0 +1,140 @@
1
+ import { UserEvent, UserProfile } from "./userProfile"
2
+ import { UserInfoResponse } from "../../dto/userInfoResponse"
3
+ import { Context } from "../../context"
4
+ import { RpcService } from "../../services/rpcService"
5
+ import { ResponseUtils } from "../../services/responseUtils"
6
+ import { UserProfileService } from "../../services/userProfileService"
7
+
8
+ export class UserProfileImpl extends UserProfile {
9
+ private content?: UserInfoResponse
10
+
11
+
12
+ constructor(private readonly context: Context) {
13
+ super()
14
+ }
15
+
16
+ get id(): string {
17
+ if (this.content) {
18
+ return this.content.user.id
19
+ }
20
+ throw new Error("The profile is not loaded.")
21
+ }
22
+
23
+ get name(): string {
24
+ if (this.content) {
25
+ return this.content.user.profile.name
26
+ }
27
+ throw new Error("The profile is not loaded.")
28
+ }
29
+
30
+ get email(): string {
31
+ if (this.content) {
32
+ return this.content.user.profile.email
33
+ }
34
+ throw new Error("The profile is not loaded.")
35
+ }
36
+
37
+ get binanceId(): string {
38
+ if (this.content) {
39
+ return this.content.user.profile.binanceId
40
+ }
41
+ throw new Error("The profile is not loaded.")
42
+ }
43
+
44
+ get educationalInstitution(): string {
45
+ if (this.content){
46
+ return this.content.user.profile.educationalInstitution
47
+ }
48
+ throw new Error("The profile is not loaded.")
49
+ }
50
+
51
+ get isDeleted(): boolean {
52
+ if (this.content) {
53
+ return this.content.user.isDeleted
54
+ }
55
+ throw new Error("The profile is not loaded.")
56
+ }
57
+
58
+ get isAnonymous(): boolean {
59
+ if (this.content) {
60
+ return this.content.user.isAnonymousMode
61
+ }
62
+ throw new Error("The profile is not loaded.")
63
+ }
64
+
65
+ get createdAt(): Date {
66
+ if (this.content) {
67
+ return new Date(this.content.user.created_at)
68
+ }
69
+ throw new Error("The profile is not loaded.")
70
+ }
71
+
72
+ get modifiedAt(): Date {
73
+ if (this.content) {
74
+ return new Date(this.content.user.modified_at)
75
+ }
76
+ throw new Error("The profile is not loaded.")
77
+ }
78
+
79
+ initFrom(content: UserInfoResponse) {
80
+ this.content = content
81
+ this.dispatch({
82
+ type: UserEvent.CHANGED,
83
+ data: this
84
+ })
85
+ }
86
+
87
+ async fetch() : Promise<void>{
88
+ await this.context.resolve(UserProfileService)?.fetch()
89
+ }
90
+
91
+ async updateUser(name: string, binanceId: string, educationalInstitution: string): Promise<void>{
92
+ if (!this.content) {
93
+ throw new Error("User is not loaded.")
94
+ }
95
+
96
+ if (name === this.name && binanceId === this.binanceId && educationalInstitution === this.educationalInstitution) {
97
+ return Promise.resolve()
98
+ }
99
+
100
+ const response = await this.context
101
+ .resolve(RpcService)
102
+ ?.requestBuilder("api/v1/Users")
103
+ .sendPutJson({
104
+ profile: {
105
+ name,
106
+ binanceId,
107
+ educationalInstitution
108
+ }
109
+ })
110
+
111
+ if (ResponseUtils.isFail(response)) {
112
+ await ResponseUtils.throwError("Failed to change organization", response)
113
+ }
114
+
115
+ if (this.content) {
116
+ this.content!.user.profile.name = name
117
+ this.content!.user.profile.binanceId = binanceId
118
+ this.content!.user.profile.educationalInstitution = educationalInstitution
119
+ }
120
+
121
+ this.dispatch({
122
+ type: UserEvent.CHANGED,
123
+ data: this
124
+ })
125
+ }
126
+
127
+ async deleteUser(): Promise<boolean>{
128
+ const response = await this.context
129
+ .resolve(RpcService)?.
130
+ requestBuilder("/api/v1/Users/self")
131
+ .sendDelete()
132
+
133
+ if (ResponseUtils.isFail(response)) {
134
+ await ResponseUtils.throwError("Failed to delete user", response)
135
+ }
136
+
137
+ return true
138
+ }
139
+
140
+ }
@@ -0,0 +1,75 @@
1
+ import { EventDispatcher } from "../../events"
2
+
3
+ export type UserId = string
4
+
5
+ export enum UserEvent {
6
+ CHANGED = "changed"
7
+ }
8
+
9
+ export abstract class UserProfile extends EventDispatcher<
10
+ UserEvent,
11
+ UserProfile
12
+ > {
13
+ /**
14
+ * User id.
15
+ */
16
+ abstract get id(): UserId
17
+
18
+ /**
19
+ * User name.
20
+ */
21
+ abstract get name(): string
22
+
23
+ /**
24
+ * User email.
25
+ */
26
+ abstract get email(): string
27
+
28
+ /**
29
+ * Additional binance ID
30
+ */
31
+ abstract get binanceId(): string
32
+
33
+ /**
34
+ * Additional educational institution
35
+ */
36
+ abstract get educationalInstitution() : string
37
+
38
+ /**
39
+ * Is user deleted.
40
+ */
41
+ abstract get isDeleted(): boolean
42
+
43
+ /**
44
+ * Is user anonymous
45
+ */
46
+ abstract get isAnonymous(): boolean
47
+
48
+ /**
49
+ * Created at.
50
+ */
51
+ abstract get createdAt(): Date
52
+
53
+ /**
54
+ * Modified at.
55
+ */
56
+ abstract get modifiedAt(): Date
57
+
58
+ /**
59
+ * Fetch user profile
60
+ */
61
+ abstract fetch(): Promise<void>
62
+
63
+ /**
64
+ * Update user profile
65
+ * @param newName
66
+ * @param newId
67
+ * @param newEducationalInstitution
68
+ */
69
+ abstract updateUser(newName: string, newId: string, newEducationalInstitution: string): Promise<void>
70
+
71
+ /**
72
+ * Delete User
73
+ */
74
+ abstract deleteUser(): Promise<boolean>
75
+ }
@@ -1,11 +1,11 @@
1
- import { Context } from "../context"
2
- import { Files } from "./files"
1
+ import { Context } from "../../context"
2
+ import { Files } from "../files/files"
3
3
  import { Workspace, WorkspaceEvent } from "./workspace"
4
- import { OrganizationImpl } from "./organization.impl"
5
- import { WorkspaceDto } from "../dto/workspacesResponse"
6
- import { RpcService } from "../services/rpcService"
7
- import { FilesImpl } from "./files.impl"
8
- import { ResponseUtils } from "../services/responseUtils"
4
+ import { OrganizationImpl } from "../organizations/organization.impl"
5
+ import { WorkspaceDto } from "../../dto/workspacesResponse"
6
+ import { RpcService } from "../../services/rpcService"
7
+ import { FilesImpl } from "../files/files.impl"
8
+ import { ResponseUtils } from "../../services/responseUtils"
9
9
 
10
10
  export class WorkspaceImpl extends Workspace {
11
11
  private _isMarkAsDeleted: boolean = false
@@ -46,6 +46,26 @@ export class WorkspaceImpl extends Workspace {
46
46
  return this._files
47
47
  }
48
48
 
49
+ async filesCount(): Promise<number> {
50
+ // send request to the server
51
+ const response = await this.context
52
+ .resolve(RpcService)
53
+ ?.requestBuilder("api/v1/Workspaces/files/count")
54
+ .searchParam("workspaceId", this.id)
55
+ .searchParam("organizationId", this.organization.id)
56
+ .sendGet()
57
+
58
+ // check response status
59
+ if (ResponseUtils.isFail(response)) {
60
+ await ResponseUtils.throwError(
61
+ `Failed during get workspace total files count for ${this.id} of ${this.organization.id}`,
62
+ response
63
+ )
64
+ }
65
+
66
+ return ((await response!.json()) as { count: number }).count
67
+ }
68
+
49
69
  async change(name: string, description: string): Promise<void> {
50
70
  if (!this._workspace) {
51
71
  throw new Error("Workspace is not loaded.")
@@ -1,7 +1,7 @@
1
- import { EventDispatcher } from "../events"
2
- import { Files } from "./files"
1
+ import { EventDispatcher } from "../../events"
2
+ import { Files } from "../files/files"
3
3
  import { WorkspaceId } from "./workspaces"
4
- import { Organization } from "./organization"
4
+ import { Organization } from "../organizations/organization"
5
5
 
6
6
  /**
7
7
  * Workspace event.
@@ -42,6 +42,11 @@ export abstract class Workspace extends EventDispatcher<
42
42
  */
43
43
  abstract get files(): Files
44
44
 
45
+ /**
46
+ * Workspace files count.
47
+ */
48
+ abstract filesCount(): Promise<number>
49
+
45
50
  /**
46
51
  * Change workspace name and description.
47
52
  */
@@ -1,13 +1,15 @@
1
1
  import { WorkspaceId, Workspaces, WorkspacesEvent } from "./workspaces"
2
- import { OrganizationImpl } from "./organization.impl"
3
- import { Context } from "../context"
2
+ import { OrganizationImpl } from "../organizations/organization.impl"
3
+ import { Context } from "../../context"
4
4
  import { Workspace } from "./workspace"
5
5
  import { WorkspaceImpl } from "./workspace.impl"
6
- import { OrganizationId } from "./organizations"
7
- import { RpcService } from "../services/rpcService"
8
- import { OrganizationWorkspaces } from "../dto/userInfoResponse"
9
- import { WorkspaceDto } from "../dto/workspacesResponse"
10
- import { ResponseUtils } from "../services/responseUtils"
6
+ import { OrganizationId } from "../organizations/organizations"
7
+ import { RpcService } from "../../services/rpcService"
8
+ import { OrganizationWorkspaces } from "../../dto/userInfoResponse"
9
+ import { WorkspaceDto } from "../../dto/workspacesResponse"
10
+ import { ResponseUtils } from "../../services/responseUtils"
11
+ import { UserProfileService } from "../../services/userProfileService"
12
+ import { UserProfile } from "../user/userProfile"
11
13
 
12
14
  export class WorkspacesImpl extends Workspaces {
13
15
  private readonly _workspaces: WorkspaceImpl[] = []
@@ -46,10 +48,10 @@ export class WorkspacesImpl extends Workspaces {
46
48
  description: string,
47
49
  regulation?: {
48
50
  isCreateNewGroup: boolean
49
- newGroupName: string
50
- groupIds: string[]
51
+ newGroupName?: string
52
+ groupIds?: string[]
51
53
  }
52
- ): Promise<Workspace> {
54
+ ): Promise<Workspace | undefined> {
53
55
  if (name === undefined || name === null || name.trim() === "") {
54
56
  throw new Error("Name is required, must be not empty")
55
57
  }
@@ -67,20 +69,6 @@ export class WorkspacesImpl extends Workspaces {
67
69
  ) {
68
70
  throw new Error("isCreateNewGroup is required, must be not empty")
69
71
  }
70
- if (
71
- regulation.newGroupName === undefined ||
72
- regulation.newGroupName === null ||
73
- regulation.newGroupName.trim() === ""
74
- ) {
75
- throw new Error("newGroupName is required, must be not empty")
76
- }
77
- if (
78
- regulation.groupIds === undefined ||
79
- regulation.groupIds === null ||
80
- regulation.groupIds.length === 0
81
- ) {
82
- throw new Error("groupIds is required, must be not empty")
83
- }
84
72
  }
85
73
 
86
74
  // send create request to the server
@@ -94,19 +82,25 @@ export class WorkspacesImpl extends Workspaces {
94
82
  description: description
95
83
  },
96
84
  regulation: {
97
- isCreateNewGroup: regulation?.isCreateNewGroup ?? false,
98
- newGroupName: regulation?.newGroupName ?? "",
99
- groupIds: regulation?.groupIds ?? []
85
+ isCreateNewGroup: regulation?.isCreateNewGroup,
86
+ newGroupName: regulation?.newGroupName,
87
+ groupIds: regulation?.groupIds
100
88
  }
101
89
  })
102
90
 
103
91
  // check response status
104
92
  if (ResponseUtils.isFail(response)) {
105
- await ResponseUtils.throwError("Failed to create workspace", response)
93
+ if (await ResponseUtils.isLimitReached()){
94
+ return undefined
95
+ }
96
+
97
+ await ResponseUtils.throwError(`Failed to create workspace, in organization: ${this.organization.id}`, response)
106
98
  }
107
99
 
108
100
  // parse workspace from the server's response
109
- const content = (await response!.json()).workspace as WorkspaceDto
101
+ const content = ((await response!.json()) as {
102
+ workspace: WorkspaceDto
103
+ }).workspace as WorkspaceDto
110
104
 
111
105
  // create workspace implementation
112
106
  const workspace = new WorkspaceImpl(this.organization, this.context)
@@ -115,6 +109,8 @@ export class WorkspacesImpl extends Workspaces {
115
109
  // add workspace to the collection
116
110
  this._workspaces.push(workspace)
117
111
 
112
+ await this.organization.accessGroups.reload()
113
+
118
114
  // dispatch event
119
115
  this.dispatch({
120
116
  type: WorkspacesEvent.ADDED,
@@ -139,7 +135,7 @@ export class WorkspacesImpl extends Workspaces {
139
135
 
140
136
  // check if workspace is already marked as deleted
141
137
  if (workspace.isMarkAsDeleted) {
142
- throw new Error(`Workspace ${id} is already marked as deleted`)
138
+ throw new Error(`Workspace ${id} is already marked as deleted, in organization: ${this.organization.id}`)
143
139
  }
144
140
 
145
141
  // mark workspace as deleted
@@ -155,7 +151,7 @@ export class WorkspacesImpl extends Workspaces {
155
151
  // check response status
156
152
  if (ResponseUtils.isFail(response)) {
157
153
  await ResponseUtils.throwError(
158
- `Failed to delete workspace: ${workspace.organization.name}/${workspace.name}:${id}`,
154
+ `Failed to delete workspace: ${workspace.organization.name}/${workspace.name}:${id}, in organization: ${this.organization.id}`,
159
155
  response
160
156
  )
161
157
  }
@@ -184,7 +180,8 @@ export class WorkspacesImpl extends Workspaces {
184
180
 
185
181
  // check response status
186
182
  if (ResponseUtils.isFail(response)) {
187
- await ResponseUtils.throwError("Failed to fetch workspaces.", response)
183
+ const userProfile = this.context.resolve(UserProfileService)?.userProfile as UserProfile
184
+ await ResponseUtils.throwError(`Failed to fetch workspaces in organization: ${organizationId}, userId: ${userProfile.id}, email: ${userProfile.email}`, response)
188
185
  }
189
186
 
190
187
  // parse workspaces from the server's response