@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
@@ -1,34 +1,14 @@
1
- import { Context } from "../context"
2
- import { Disposable } from "../disposable"
3
- import { FileDto, FileListResponse } from "../dto/workspacesResponse"
4
- import { RpcService } from "../services/rpcService"
1
+ import { Context } from "../../context"
2
+ import { FileDto, FileListResponse } from "../../dto/workspacesResponse"
3
+ import { RpcService } from "../../services/rpcService"
5
4
  import { FileImpl } from "./file.impl"
6
5
  import { Files, FilesEvent, UploadFile } from "./files"
7
- import { WorkspaceImpl } from "./workspace.impl"
8
- import { ResponseUtils } from "../services/responseUtils"
6
+ import { WorkspaceImpl } from "../workspaces/workspace.impl"
7
+ import { ResponseUtils } from "../../services/responseUtils"
9
8
  import { File } from "./file"
10
9
  import { FilesPage } from "./filesPage"
11
-
12
- export class FilesPageImpl extends FilesPage implements Disposable {
13
- private _isDisposed: boolean = false
14
-
15
- public files: File[] = []
16
- public total: number = 0
17
- public filesPerPage: number = 0
18
- public page: number = 0
19
-
20
- get pages(): number {
21
- return Math.ceil(Math.max(this.total / this.filesPerPage, 1.0))
22
- }
23
-
24
- get isDisposed(): boolean {
25
- return this._isDisposed
26
- }
27
-
28
- dispose(): void {
29
- this._isDisposed = true
30
- }
31
- }
10
+ import { FilesPageImpl } from "./filesPage.impl"
11
+ // import { FormData } from "../../utils/request"
32
12
 
33
13
  export class FilesImpl extends Files {
34
14
  constructor(
@@ -41,12 +21,23 @@ export class FilesImpl extends Files {
41
21
  // Object used as files page data, returned by "query"
42
22
  public filesList?: FilesPage
43
23
 
44
- async upload(file: any): Promise<File> {
45
- return await this.internalUpload(file)
24
+ async upload(files: UploadFile[]): Promise<File[]> {
25
+ const loaded_files = []
26
+ for (const file of files) {
27
+ const loaded_file = await this.internalUpload(file)
28
+ if (loaded_file != undefined){
29
+ loaded_files.push(loaded_file)
30
+ }
31
+ }
32
+ return loaded_files
33
+ }
34
+
35
+ async get(fileId: string): Promise<File>{
36
+ return await this.internalGetFile(fileId)
46
37
  }
47
38
 
48
- async delete(id: string): Promise<void> {
49
- return await this.internalDeleteFile(id)
39
+ async delete(ids: string[]): Promise<void> {
40
+ await this.internalDeleteFiles(ids)
50
41
  }
51
42
 
52
43
  async query(query: string, page: number, limit: number): Promise<FilesPage> {
@@ -57,43 +48,77 @@ export class FilesImpl extends Files {
57
48
  // INTERNALS
58
49
  //----------------------------------------------------------------------------
59
50
 
60
- /**
61
- * Delete organization.
62
- * @param id
63
- */
64
- async internalDeleteFile(id: string): Promise<void> {
51
+
52
+ async internalGetFile(id: string): Promise<File>{
65
53
  if (id === undefined || id === null) {
66
- throw new Error("File delete, id is undefined or null")
54
+ throw new Error("File get, id is undefined or null")
67
55
  }
68
56
  if (id.length === 0 || id.trim().length === 0) {
69
- throw new Error("File delete, id is empty")
57
+ throw new Error("File get, id is empty")
70
58
  }
71
59
 
72
60
  const response = await this.context
73
61
  .resolve(RpcService)
74
- ?.requestBuilder("/api/v1/Files")
62
+ ?.requestBuilder("api/v1/Files")
75
63
  .searchParam("id", id)
76
- .sendDelete()
64
+ .sendGet()
65
+
77
66
  if (ResponseUtils.isFail(response)) {
78
- await ResponseUtils.throwError(`File ${id} delete, failed`, response)
67
+ await ResponseUtils.throwError(
68
+ `Failed to get file ${id}`,
69
+ response
70
+ )
71
+ }
72
+
73
+ // parse file from the server's response
74
+ const result = (await response!.json() as { file: FileDto }).file as FileDto
75
+
76
+ // create file implementation
77
+ const fileImpl = new FileImpl(this.context)
78
+
79
+ return await fileImpl.initFrom(result)
80
+ }
81
+
82
+ /**
83
+ * Delete file.
84
+ * @param ids array of file ids
85
+ */
86
+ async internalDeleteFiles(ids: string[]): Promise<void> {
87
+ if (ids === undefined || ids === null) {
88
+ throw new Error("File delete, ids array is undefined or null")
79
89
  }
80
- const file = <FileImpl>this.filesList!.files.find(f => f.id === id)
81
- const index = this.filesList!.files.indexOf(file)
82
- if (index < 0) {
83
- throw new Error("Organization delete, index is not found")
90
+ if (ids.length === 0) {
91
+ throw new Error("File delete, array of ids is empty")
84
92
  }
85
93
 
86
- // remove file from collection
87
- this.filesList!.files.splice(index, 1)
94
+ const response = await this.context
95
+ .resolve(RpcService)
96
+ ?.requestBuilder("/api/v1/Files")
97
+ .sendDeleteJson(ids)
98
+
99
+ if (ResponseUtils.isFail(response)) {
100
+ await ResponseUtils.throwError(`Files ${ids} delete, failed`, response)
101
+ }
88
102
 
89
- // dispatch event, file removed
90
- this.dispatch({
91
- type: FilesEvent.REMOVED,
92
- data: file
93
- })
103
+ for (const id of ids) {
104
+ const file = <FileImpl>this.filesList!.files.find(f => f.id === id)
105
+ const index = this.filesList!.files.indexOf(file)
106
+ if (index < 0) {
107
+ throw new Error("File delete, index is not found")
108
+ }
109
+
110
+ // remove file from collection
111
+ this.filesList!.files.splice(index, 1)
112
+
113
+ // dispatch event, file removed
114
+ this.dispatch({
115
+ type: FilesEvent.REMOVED,
116
+ data: file
117
+ })
94
118
 
95
- // dispose file
96
- file.dispose()
119
+ // dispose file
120
+ file.dispose()
121
+ }
97
122
  }
98
123
 
99
124
  async internalQuery(
@@ -122,7 +147,6 @@ export class FilesImpl extends Files {
122
147
  const response = await this.context
123
148
  .resolve(RpcService)
124
149
  ?.requestBuilder("api/v1/Files/list")
125
-
126
150
  .searchParam("workspaceId", this.workspace.id)
127
151
  .searchParam("organizationId", this.workspace.organization.id)
128
152
  .searchParam("query", query)
@@ -151,16 +175,10 @@ export class FilesImpl extends Files {
151
175
  for (const fl of files.files) {
152
176
 
153
177
  // create file implementation
154
- const file = new FileImpl(this.context).initFrom(fl)
178
+ const file = await new FileImpl(this.context).initFrom(fl)
155
179
 
156
180
  // add file to the collection
157
181
  filesList.files.push(file)
158
-
159
- // dispatch event, file added
160
- this.dispatch({
161
- type: FilesEvent.ADDED,
162
- data: file
163
- })
164
182
  }
165
183
 
166
184
  // set files list
@@ -169,7 +187,7 @@ export class FilesImpl extends Files {
169
187
  return filesList
170
188
  }
171
189
 
172
- async internalUpload(file: UploadFile): Promise<File> {
190
+ async internalUpload(file: UploadFile): Promise<File | undefined> {
173
191
  // check file
174
192
  if (file === undefined || file === null) {
175
193
  throw new Error("File upload, file is undefined or null")
@@ -190,17 +208,20 @@ export class FilesImpl extends Files {
190
208
 
191
209
  // check response status
192
210
  if (ResponseUtils.isFail(response)) {
211
+ if (await ResponseUtils.isLimitReached()){
212
+ return undefined
213
+ }
214
+
193
215
  await ResponseUtils.throwError(`File upload ${file.name}`, response)
194
216
  }
195
217
 
196
218
  // parse file from the server's response
197
- const result = (await response!.json()).file as FileDto
219
+ const result = (await response!.json() as { file: FileDto }).file as FileDto
198
220
 
199
221
  // create file implementation
200
- const fileImpl = new FileImpl(this.context).initFrom(result)
222
+ const fileImpl = new FileImpl(this.context)
201
223
 
202
- // TODO: why is this here?
203
- this.filesList?.files.push(fileImpl)
224
+ await fileImpl.initFrom(result)
204
225
 
205
226
  // dispatch event, file added
206
227
  this.dispatch({
@@ -1,4 +1,4 @@
1
- import { EventDispatcher } from "../events"
1
+ import { EventDispatcher } from "../../events"
2
2
  import { File, FileId } from "./file"
3
3
  import { FilesPage } from "./filesPage"
4
4
 
@@ -7,7 +7,8 @@ import { FilesPage } from "./filesPage"
7
7
  */
8
8
  export enum FilesEvent {
9
9
  ADDED = "added",
10
- REMOVED = "removed"
10
+ REMOVED = "removed",
11
+ UPDATED = "updated"
11
12
  }
12
13
 
13
14
  /**
@@ -20,15 +21,21 @@ export type UploadFile = globalThis.File
20
21
  */
21
22
  export abstract class Files extends EventDispatcher<FilesEvent, File> {
22
23
  /**
23
- * Get file by id.
24
+ * Upload file.
24
25
  */
25
- abstract upload(file: UploadFile): Promise<File>
26
+ abstract upload(files: UploadFile[]): Promise<File[]>
26
27
 
27
28
  /**
28
- * Delete file.
29
- * @param id
29
+ * Get file by ID
30
+ * @param fileId
30
31
  */
31
- abstract delete(id: FileId): Promise<void>
32
+ abstract get(fileId: FileId): Promise<File>
33
+
34
+ /**
35
+ * Delete files.
36
+ * @param ids
37
+ */
38
+ abstract delete(ids: FileId[]): Promise<void>
32
39
 
33
40
  /**
34
41
  * Query files.
@@ -0,0 +1,37 @@
1
+ import { FilesPage } from "./filesPage"
2
+ import { Disposable } from "../../disposable"
3
+ import { File } from "./file"
4
+
5
+ export class FilesPageImpl extends FilesPage implements Disposable {
6
+ private _isDisposed: boolean = false
7
+
8
+ public files: File[] = []
9
+ public total: number = 0
10
+ public filesPerPage: number = 0
11
+ public page: number = 0
12
+
13
+ get pages(): number {
14
+ return Math.ceil(Math.max(this.total / this.filesPerPage, 1.0))
15
+ }
16
+
17
+ get isDisposed(): boolean {
18
+ return this._isDisposed
19
+ }
20
+
21
+ dispose(): void {
22
+ this._isDisposed = true
23
+ }
24
+
25
+ equals(other?: FilesPage | null): boolean {
26
+ if (other === undefined) return false
27
+ if (other === null) return false
28
+ if (other === this) return true
29
+ return (
30
+ other.pages === this.pages &&
31
+ other.total === this.total &&
32
+ other.page === this.page &&
33
+ (other.files === this.files ||
34
+ other.files.every((file, index) => file.id === this.files[index].id))
35
+ )
36
+ }
37
+ }
@@ -24,4 +24,10 @@ export abstract class FilesPage {
24
24
  * Get current page.
25
25
  */
26
26
  abstract get page(): number
27
+
28
+ /**
29
+ * Equals.
30
+ * @param other
31
+ */
32
+ abstract equals(other?: FilesPage | null): boolean
27
33
  }
@@ -0,0 +1,276 @@
1
+ import { Group, GroupEvent, GroupId } from "./group"
2
+ import { Disposable } from "../../disposable"
3
+ import {
4
+ AccessGroupDto,
5
+ AccessGroupResponse
6
+ } from "../../dto/accessGroupResponse"
7
+ import { UserDto } from "../../dto/userInfoResponse"
8
+ import { Workspace } from "../workspaces/workspace"
9
+ import { Context } from "../../context"
10
+ import { Organization } from "../organizations/organization"
11
+ import { RpcService } from "../../services/rpcService"
12
+ import { ResponseUtils } from "../../services/responseUtils"
13
+ import { WorkspacesResponse } from "../../dto/workspacesResponse"
14
+ import { WorkspaceId } from "../workspaces/workspaces"
15
+ import { UserId } from "../user/userProfile"
16
+
17
+ export class GroupImpl extends Group implements Disposable {
18
+ private _isDisposed: boolean = false
19
+ private _content?: AccessGroupDto
20
+ private _members?: UserDto[]
21
+ private _workspaces: Workspace[] = []
22
+ private _id?: GroupId
23
+
24
+ constructor(
25
+ private readonly context: Context,
26
+ public readonly organization: Organization
27
+ ) {
28
+ super()
29
+ }
30
+
31
+ async initFrom(id: GroupId): Promise<Group> {
32
+ // set id
33
+ this._id = id
34
+
35
+ // reload group and workspaces
36
+ const groupPromise = this.reloadGroup(id)
37
+ const workspacePromise = this.reloadWorkspaces(id)
38
+
39
+ // wait for all promises
40
+ await Promise.all([groupPromise, workspacePromise])
41
+
42
+ return this
43
+ }
44
+
45
+ async reloadGroup(id: GroupId): Promise<void> {
46
+ // fetch group
47
+ const response = await this.context.resolve(RpcService)
48
+ ?.requestBuilder("api/v1/AccessGroups")
49
+ .searchParam("groupId", id)
50
+ .sendGet()
51
+
52
+ // check response status
53
+ if (ResponseUtils.isFail(response)) {
54
+ await ResponseUtils.throwError(`Failed to get group: ${id}, organization: ${this.organization.id}`, response)
55
+ }
56
+
57
+ // parse group from the server's response
58
+ const group = (await response!.json()) as AccessGroupResponse
59
+ // init group
60
+ this._content = group.group
61
+ this._members = group.members
62
+ }
63
+
64
+ async reloadWorkspaces(id: GroupId): Promise<void> {
65
+ const groupWorkspaces = await this.loadWorkspaces(id)
66
+ this._workspaces.length = 0
67
+ this._workspaces.push(...groupWorkspaces)
68
+ }
69
+
70
+ async loadWorkspaces(groupId: GroupId): Promise<Workspace[]> {
71
+ // fetch workspaces
72
+ const response = await this.context.resolve(RpcService)
73
+ ?.requestBuilder("api/v1/AccessGroups/workspaces")
74
+ .searchParam("groupId", groupId)
75
+ .sendGet()
76
+
77
+ if (ResponseUtils.isFail(response)) {
78
+ await ResponseUtils.throwError(`Failed to get workspaces for group: ${this.id}, organization: ${this.organization.id}`, response)
79
+ }
80
+
81
+ // parse workspaces from the server's response
82
+ const workspaces = (await response!.json()) as WorkspacesResponse
83
+
84
+ // get workspaces
85
+ const result: Workspace[] = []
86
+ for (const workspaceDto of workspaces.workspaces) {
87
+ result.push(this.organization.workspaces.get(workspaceDto.id))
88
+ }
89
+
90
+ return result
91
+ }
92
+
93
+ get id(): GroupId {
94
+ if (this._id) {
95
+ return this._id
96
+ }
97
+ throw new Error("Access group is not loaded.")
98
+ }
99
+
100
+ get group(): AccessGroupDto {
101
+ if (this._content) {
102
+ return this._content
103
+ }
104
+ throw new Error("Access group is not loaded.")
105
+ }
106
+
107
+ get workspaces(): readonly Workspace[] {
108
+ return this._workspaces
109
+ }
110
+
111
+ get members(): UserDto[] {
112
+ if (this._members) {
113
+ return this._members
114
+ }
115
+ throw new Error("Access group is not loaded.")
116
+ }
117
+
118
+ async setName(name: string): Promise<void> {
119
+ if (name === undefined || name === null) {
120
+ throw new Error("Groups change, name is undefined or null")
121
+ }
122
+ if (name.length === 0 || name.trim().length === 0) {
123
+ throw new Error("Groups change, name is empty")
124
+ }
125
+ // send request to the server
126
+ const response = await this.context
127
+ .resolve(RpcService)
128
+ ?.requestBuilder("api/v1/AccessGroups/name")
129
+ .sendPutJson({
130
+ groupId: this.id,
131
+ name: name
132
+ })
133
+
134
+ // check response status
135
+ if (ResponseUtils.isFail(response)) {
136
+ await ResponseUtils.throwError(`Failed to change group name, group: ${this.id}, organization: ${this.organization.id}`, response)
137
+ }
138
+
139
+ // change name
140
+ if (this._content) {
141
+ this._content.name = name
142
+ }
143
+
144
+ // dispatch event
145
+ this.dispatch({
146
+ type: GroupEvent.UPDATED,
147
+ data: this
148
+ })
149
+ }
150
+
151
+ async setPermits(permits: { isAdmin: boolean }): Promise<void> {
152
+ // send request to the server
153
+ const response = await this.context
154
+ .resolve(RpcService)
155
+ ?.requestBuilder("api/v1/AccessGroups/permits")
156
+ .sendPutJson({
157
+ groupId: this.id,
158
+ permits: permits
159
+ })
160
+
161
+ if (ResponseUtils.isFail(response)) {
162
+ await ResponseUtils.throwError(`Failed to change group permits, group: ${this.id}, organization: ${this.organization.id}`, response)
163
+ }
164
+ }
165
+
166
+ async setWorkspaces(workspaces: string[]): Promise<void> {
167
+ if (workspaces === null || workspaces === undefined) {
168
+ throw new Error("Group add workspaces, workspaces is undefined or null")
169
+ }
170
+
171
+ // send request to the server
172
+ const response = await this.context
173
+ .resolve(RpcService)
174
+ ?.requestBuilder("api/v1/AccessGroups/workspaces")
175
+ .sendPutJson({
176
+ groupId: this.id,
177
+ actualWorkspaceIds: workspaces
178
+ })
179
+
180
+ if (ResponseUtils.isFail(response)) {
181
+ await ResponseUtils.throwError(`Failed to set workspaces for group: ${this.id}, organization: ${this.organization.id}`, response)
182
+ }
183
+
184
+ // reload workspaces
185
+ await this.reloadWorkspaces(this.id)
186
+
187
+ // dispatch event
188
+ this.dispatch({
189
+ type: GroupEvent.UPDATED,
190
+ data: this
191
+ })
192
+ }
193
+
194
+ async removeWorkspaces(workspaces: WorkspaceId[]): Promise<void> {
195
+ if (workspaces === null || workspaces === undefined) {
196
+ throw new Error("Group removeWorkspaces, workspaces is undefined or null")
197
+ }
198
+
199
+ // make set of workspaces
200
+ const groupWorkspaces = new Set(this.workspaces.map(w => w.id))
201
+
202
+ // check argument
203
+ if (!workspaces.every(w => groupWorkspaces.has(w))) {
204
+ const notExistingWorkspaces = workspaces.filter(workspaceId => !groupWorkspaces.has(workspaceId))
205
+ throw new Error(`Group removeWorkspaces, workspaces contains not existing workspaces: ${notExistingWorkspaces}`)
206
+ }
207
+
208
+ // remove workspaces
209
+ for (const id of workspaces) {
210
+ groupWorkspaces.delete(id)
211
+ }
212
+
213
+ // send request to the server
214
+ await this.setWorkspaces(Array.from(groupWorkspaces))
215
+ }
216
+
217
+ async setMembersIds(members: UserId[]) {
218
+ if (members === null || members === undefined) {
219
+ throw new Error("Group setMembersIds, members is undefined or null")
220
+ }
221
+
222
+ // send request to the server
223
+ const response = await this.context
224
+ .resolve(RpcService)
225
+ ?.requestBuilder("api/v1/AccessGroups/members")
226
+ .sendPutJson({
227
+ groupId: this.id,
228
+ memberIds: members
229
+ })
230
+
231
+ if (ResponseUtils.isFail(response)) {
232
+ await ResponseUtils.throwError(`Failed to set members for group: ${this.id}, organization: ${this.organization.id}`, response)
233
+ }
234
+
235
+ // reload group
236
+ await this.reloadGroup(this.id)
237
+
238
+ // dispatch event
239
+ this.dispatch({
240
+ type: GroupEvent.UPDATED,
241
+ data: this
242
+ })
243
+ }
244
+
245
+ async removeMembers(members: UserId[]): Promise<void> {
246
+ // check members
247
+ if (members === null || members === undefined) {
248
+ throw new Error("Group removeMembers, members is undefined or null")
249
+ }
250
+
251
+ // make set of members
252
+ const groupMembers = new Set(this.members.map(m => m.id))
253
+
254
+ // check argument
255
+ if (!members.every(m => groupMembers.has(m))) {
256
+ const notExistingMembers = members.filter(memberId => !groupMembers.has(memberId))
257
+ throw new Error(`Group removeMembers, members contains not existing members: ${notExistingMembers}`)
258
+ }
259
+
260
+ // remove members
261
+ for (const id of members) {
262
+ groupMembers.delete(id)
263
+ }
264
+
265
+ // send request to the server
266
+ await this.setMembersIds(Array.from(groupMembers))
267
+ }
268
+
269
+ get isDisposed(): boolean {
270
+ return this._isDisposed
271
+ }
272
+
273
+ dispose(): void {
274
+ this._isDisposed = true
275
+ }
276
+ }
@@ -0,0 +1,73 @@
1
+ import { EventDispatcher } from "../../events"
2
+ import { AccessGroupDto } from "../../dto/accessGroupResponse"
3
+ import { UserDto } from "../../dto/userInfoResponse"
4
+ import { Workspace } from "../workspaces/workspace"
5
+ import { WorkspaceId } from "../workspaces/workspaces"
6
+ import { UserId } from "../user/userProfile"
7
+
8
+ /**
9
+ * Group id.
10
+ */
11
+ export type GroupId = string
12
+
13
+ export enum GroupEvent {
14
+ UPDATED = "updated"
15
+ }
16
+
17
+ /**
18
+ * Group.
19
+ */
20
+ export abstract class Group extends EventDispatcher<GroupEvent, Group> {
21
+
22
+ /**
23
+ * Group id.
24
+ */
25
+ abstract get id(): GroupId
26
+
27
+ /**
28
+ * Group information.
29
+ */
30
+ abstract get group(): AccessGroupDto
31
+
32
+ /**
33
+ * Group members.
34
+ */
35
+ abstract get members(): UserDto[]
36
+
37
+ /**
38
+ * Group workspaces.
39
+ */
40
+ abstract get workspaces(): readonly Workspace[]
41
+
42
+ /**
43
+ * Set workspaces.
44
+ */
45
+ abstract setWorkspaces(workspaces: WorkspaceId[]): Promise<void>
46
+
47
+ /**
48
+ * Set name.
49
+ */
50
+ abstract setName(name: string): Promise<void>
51
+
52
+ /**
53
+ * Set permits.
54
+ */
55
+ abstract setPermits(permits: { isAdmin: boolean }): Promise<void>
56
+
57
+ /**
58
+ * Set members.
59
+ */
60
+ abstract setMembersIds(members: UserId[]): Promise<void>
61
+
62
+ /**
63
+ * Remove members.
64
+ * @param members
65
+ */
66
+ abstract removeMembers(members: UserId[]): Promise<void>
67
+
68
+ /**
69
+ * Remove workspaces.
70
+ * @param workspaces
71
+ */
72
+ abstract removeWorkspaces(workspaces: WorkspaceId[]): Promise<void>
73
+ }