@neuralinnovations/dataisland-sdk 0.0.1-dev4 → 0.0.1-dev41

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 (363) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +283 -37
  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 +27 -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 +38 -0
  41. package/dist/src/dto/acquiringResponse.d.ts.map +1 -0
  42. package/dist/src/dto/acquiringResponse.js +12 -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 +83 -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/statisticsResponse.d.ts +11 -0
  57. package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
  58. package/dist/src/dto/statisticsResponse.js +3 -0
  59. package/dist/src/dto/statisticsResponse.js.map +1 -0
  60. package/dist/src/dto/userInfoResponse.d.ts +88 -0
  61. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  62. package/dist/src/dto/userInfoResponse.js +3 -0
  63. package/dist/src/dto/userInfoResponse.js.map +1 -0
  64. package/dist/src/dto/workspacesResponse.d.ts +45 -0
  65. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  66. package/dist/src/dto/workspacesResponse.js +3 -0
  67. package/dist/src/dto/workspacesResponse.js.map +1 -0
  68. package/dist/src/events.d.ts +17 -0
  69. package/dist/src/events.d.ts.map +1 -0
  70. package/dist/src/events.js +52 -0
  71. package/dist/src/events.js.map +1 -0
  72. package/dist/src/index.d.ts +66 -0
  73. package/dist/src/index.d.ts.map +1 -0
  74. package/dist/src/index.js +113 -0
  75. package/dist/src/index.js.map +1 -0
  76. package/dist/src/internal/app.impl.d.ts +30 -0
  77. package/dist/src/internal/app.impl.d.ts.map +1 -0
  78. package/dist/src/internal/app.impl.js +180 -0
  79. package/dist/src/internal/app.impl.js.map +1 -0
  80. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  81. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  82. package/dist/src/internal/appBuilder.impl.js +71 -0
  83. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  84. package/dist/src/internal/createApp.impl.d.ts +4 -0
  85. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  86. package/dist/src/internal/createApp.impl.js +11 -0
  87. package/dist/src/internal/createApp.impl.js.map +1 -0
  88. package/dist/src/internal/registry.d.ts +66 -0
  89. package/dist/src/internal/registry.d.ts.map +1 -0
  90. package/dist/src/internal/registry.js +114 -0
  91. package/dist/src/internal/registry.js.map +1 -0
  92. package/dist/src/middleware.d.ts +6 -0
  93. package/dist/src/middleware.d.ts.map +1 -0
  94. package/dist/src/middleware.js +3 -0
  95. package/dist/src/middleware.js.map +1 -0
  96. package/dist/src/services/acquiringService.d.ts +8 -0
  97. package/dist/src/services/acquiringService.d.ts.map +1 -0
  98. package/dist/src/services/acquiringService.js +40 -0
  99. package/dist/src/services/acquiringService.js.map +1 -0
  100. package/dist/src/services/anonymousService.d.ts +8 -0
  101. package/dist/src/services/anonymousService.d.ts.map +1 -0
  102. package/dist/src/services/anonymousService.js +41 -0
  103. package/dist/src/services/anonymousService.js.map +1 -0
  104. package/dist/src/services/commandService.d.ts +18 -0
  105. package/dist/src/services/commandService.d.ts.map +1 -0
  106. package/dist/src/services/commandService.js +40 -0
  107. package/dist/src/services/commandService.js.map +1 -0
  108. package/dist/src/services/cookieService.d.ts +7 -0
  109. package/dist/src/services/cookieService.d.ts.map +1 -0
  110. package/dist/src/services/cookieService.js +18 -0
  111. package/dist/src/services/cookieService.js.map +1 -0
  112. package/dist/src/services/credentialService.d.ts +9 -0
  113. package/dist/src/services/credentialService.d.ts.map +1 -0
  114. package/dist/src/services/credentialService.js +26 -0
  115. package/dist/src/services/credentialService.js.map +1 -0
  116. package/dist/src/services/httpMethod.d.ts +2 -0
  117. package/dist/src/services/httpMethod.d.ts.map +1 -0
  118. package/dist/src/services/httpMethod.js +3 -0
  119. package/dist/src/services/httpMethod.js.map +1 -0
  120. package/dist/src/services/middlewareService.d.ts +10 -0
  121. package/dist/src/services/middlewareService.d.ts.map +1 -0
  122. package/dist/src/services/middlewareService.js +34 -0
  123. package/dist/src/services/middlewareService.js.map +1 -0
  124. package/dist/src/services/organizationService.d.ts +10 -0
  125. package/dist/src/services/organizationService.d.ts.map +1 -0
  126. package/dist/src/services/organizationService.js +19 -0
  127. package/dist/src/services/organizationService.js.map +1 -0
  128. package/dist/src/services/requestBuilder.d.ts +17 -0
  129. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  130. package/dist/src/services/requestBuilder.js +105 -0
  131. package/dist/src/services/requestBuilder.js.map +1 -0
  132. package/dist/src/services/responseUtils.d.ts +8 -0
  133. package/dist/src/services/responseUtils.d.ts.map +1 -0
  134. package/dist/src/services/responseUtils.js +40 -0
  135. package/dist/src/services/responseUtils.js.map +1 -0
  136. package/dist/src/services/rpcService.d.ts +77 -0
  137. package/dist/src/services/rpcService.d.ts.map +1 -0
  138. package/dist/src/services/rpcService.js +125 -0
  139. package/dist/src/services/rpcService.js.map +1 -0
  140. package/dist/src/services/service.d.ts +21 -0
  141. package/dist/src/services/service.d.ts.map +1 -0
  142. package/dist/src/services/service.js +41 -0
  143. package/dist/src/services/service.js.map +1 -0
  144. package/dist/src/services/userProfileService.d.ts +9 -0
  145. package/dist/src/services/userProfileService.d.ts.map +1 -0
  146. package/dist/src/services/userProfileService.js +43 -0
  147. package/dist/src/services/userProfileService.js.map +1 -0
  148. package/dist/src/storages/chats/answer.d.ts +41 -0
  149. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  150. package/dist/src/storages/chats/answer.impl.d.ts +29 -0
  151. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  152. package/dist/src/storages/chats/answer.impl.js +116 -0
  153. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  154. package/dist/src/storages/chats/answer.js +15 -0
  155. package/dist/src/storages/chats/answer.js.map +1 -0
  156. package/dist/src/storages/chats/chat.d.ts +43 -0
  157. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  158. package/dist/src/storages/chats/chat.impl.d.ts +25 -0
  159. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  160. package/dist/src/storages/chats/chat.impl.js +85 -0
  161. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  162. package/dist/src/storages/chats/chat.js +12 -0
  163. package/dist/src/storages/chats/chat.js.map +1 -0
  164. package/dist/src/storages/chats/chats.d.ts +45 -0
  165. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  166. package/dist/src/storages/chats/chats.impl.d.ts +19 -0
  167. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  168. package/dist/src/storages/chats/chats.impl.js +147 -0
  169. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  170. package/dist/src/storages/chats/chats.js +16 -0
  171. package/dist/src/storages/chats/chats.js.map +1 -0
  172. package/dist/src/storages/files/file.d.ts +47 -0
  173. package/dist/src/storages/files/file.d.ts.map +1 -0
  174. package/dist/src/storages/files/file.impl.d.ts +25 -0
  175. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  176. package/dist/src/storages/files/file.impl.js +93 -0
  177. package/dist/src/storages/files/file.impl.js.map +1 -0
  178. package/dist/src/storages/files/file.js +17 -0
  179. package/dist/src/storages/files/file.js.map +1 -0
  180. package/dist/src/storages/files/files.d.ts +39 -0
  181. package/dist/src/storages/files/files.d.ts.map +1 -0
  182. package/dist/src/storages/files/files.impl.d.ts +24 -0
  183. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  184. package/dist/src/storages/files/files.impl.js +168 -0
  185. package/dist/src/storages/files/files.impl.js.map +1 -0
  186. package/dist/src/storages/files/files.js +20 -0
  187. package/dist/src/storages/files/files.js.map +1 -0
  188. package/dist/src/storages/files/filesPage.d.ts +28 -0
  189. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  190. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  191. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  192. package/dist/src/storages/files/filesPage.impl.js +38 -0
  193. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  194. package/dist/src/storages/files/filesPage.js +10 -0
  195. package/dist/src/storages/files/filesPage.js.map +1 -0
  196. package/dist/src/storages/groups/group.d.ts +63 -0
  197. package/dist/src/storages/groups/group.d.ts.map +1 -0
  198. package/dist/src/storages/groups/group.impl.d.ts +38 -0
  199. package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
  200. package/dist/src/storages/groups/group.impl.js +210 -0
  201. package/dist/src/storages/groups/group.impl.js.map +1 -0
  202. package/dist/src/storages/groups/group.js +15 -0
  203. package/dist/src/storages/groups/group.js.map +1 -0
  204. package/dist/src/storages/groups/groups.d.ts +39 -0
  205. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  206. package/dist/src/storages/groups/groups.impl.d.ts +30 -0
  207. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  208. package/dist/src/storages/groups/groups.impl.js +132 -0
  209. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  210. package/dist/src/storages/groups/groups.js +20 -0
  211. package/dist/src/storages/groups/groups.js.map +1 -0
  212. package/dist/src/storages/organizations/organization.d.ts +95 -0
  213. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  214. package/dist/src/storages/organizations/organization.impl.d.ts +42 -0
  215. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  216. package/dist/src/storages/organizations/organization.impl.js +240 -0
  217. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  218. package/dist/src/storages/organizations/organization.js +18 -0
  219. package/dist/src/storages/organizations/organization.js.map +1 -0
  220. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  221. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  222. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  223. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  224. package/dist/src/storages/organizations/organizations.impl.js +158 -0
  225. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  226. package/dist/src/storages/organizations/organizations.js +20 -0
  227. package/dist/src/storages/organizations/organizations.js.map +1 -0
  228. package/dist/src/storages/user/userProfile.d.ts +54 -0
  229. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  230. package/dist/src/storages/user/userProfile.impl.d.ts +21 -0
  231. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  232. package/dist/src/storages/user/userProfile.impl.js +114 -0
  233. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  234. package/dist/src/storages/user/userProfile.js +12 -0
  235. package/dist/src/storages/user/userProfile.js.map +1 -0
  236. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  237. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  238. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  239. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  240. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  241. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  242. package/dist/src/storages/workspaces/workspace.js +18 -0
  243. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  244. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  245. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  246. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  247. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  248. package/dist/src/storages/workspaces/workspaces.impl.js +152 -0
  249. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  250. package/dist/src/storages/workspaces/workspaces.js +19 -0
  251. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  252. package/dist/src/unitTest.d.ts +12 -0
  253. package/dist/src/unitTest.d.ts.map +1 -0
  254. package/dist/src/unitTest.js +44 -0
  255. package/dist/src/unitTest.js.map +1 -0
  256. package/dist/src/utils/browserUtils.d.ts +4 -0
  257. package/dist/src/utils/browserUtils.d.ts.map +1 -0
  258. package/dist/src/utils/browserUtils.js +64 -0
  259. package/dist/src/utils/browserUtils.js.map +1 -0
  260. package/dist/src/utils/request.d.ts +6 -0
  261. package/dist/src/utils/request.d.ts.map +1 -0
  262. package/dist/src/utils/request.js +3 -0
  263. package/dist/src/utils/request.js.map +1 -0
  264. package/dist/src/utils/utils.d.ts +3 -0
  265. package/dist/src/utils/utils.d.ts.map +1 -0
  266. package/dist/src/utils/utils.js +13 -0
  267. package/dist/src/utils/utils.js.map +1 -0
  268. package/index.d.ts +1 -0
  269. package/index.js +1 -0
  270. package/package.json +46 -5
  271. package/src/commands/deleteUserFullCommandHandler.ts +19 -0
  272. package/src/commands/startCommandHandler.ts +16 -5
  273. package/src/context.ts +4 -2
  274. package/src/credentials.ts +22 -0
  275. package/src/{appSdk.ts → dataIslandApp.ts} +9 -3
  276. package/src/disposable.ts +18 -5
  277. package/src/dto/accessGroupResponse.ts +19 -16
  278. package/src/dto/acquiringResponse.ts +45 -0
  279. package/src/dto/badRequestResponse.ts +6 -0
  280. package/src/dto/chatResponse.ts +59 -54
  281. package/src/dto/limitsResponse.ts +33 -0
  282. package/src/dto/statisticsResponse.ts +12 -0
  283. package/src/dto/userInfoResponse.ts +59 -2
  284. package/src/dto/workspacesResponse.ts +5 -3
  285. package/src/index.ts +46 -24
  286. package/src/internal/app.impl.ts +52 -10
  287. package/src/internal/createApp.impl.ts +4 -4
  288. package/src/internal/registry.ts +54 -6
  289. package/src/middleware.ts +2 -0
  290. package/src/services/acquiringService.ts +50 -0
  291. package/src/services/anonymousService.ts +43 -0
  292. package/src/services/commandService.ts +4 -2
  293. package/src/services/cookieService.ts +16 -0
  294. package/src/services/httpMethod.ts +1 -0
  295. package/src/services/middlewareService.ts +1 -0
  296. package/src/services/organizationService.ts +2 -2
  297. package/src/services/requestBuilder.ts +10 -8
  298. package/src/services/responseUtils.ts +12 -0
  299. package/src/services/rpcService.ts +1 -0
  300. package/src/services/userProfileService.ts +18 -4
  301. package/src/storages/chats/answer.impl.ts +160 -0
  302. package/src/storages/chats/answer.ts +53 -0
  303. package/src/storages/chats/chat.impl.ts +107 -0
  304. package/src/storages/chats/chat.ts +55 -0
  305. package/src/storages/chats/chats.impl.ts +204 -0
  306. package/src/storages/chats/chats.ts +53 -0
  307. package/src/storages/files/file.impl.ts +111 -0
  308. package/src/storages/files/file.ts +58 -0
  309. package/src/storages/{files.impl.ts → files/files.impl.ts} +67 -46
  310. package/src/storages/{files.ts → files/files.ts} +14 -7
  311. package/src/storages/files/filesPage.impl.ts +37 -0
  312. package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
  313. package/src/storages/groups/group.impl.ts +276 -0
  314. package/src/storages/groups/group.ts +73 -0
  315. package/src/storages/groups/groups.impl.ts +175 -0
  316. package/src/storages/groups/groups.ts +45 -0
  317. package/src/storages/organizations/organization.impl.ts +357 -0
  318. package/src/storages/organizations/organization.ts +118 -0
  319. package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +31 -13
  320. package/src/storages/{organizations.ts → organizations/organizations.ts} +1 -1
  321. package/src/storages/user/userProfile.impl.ts +136 -0
  322. package/src/storages/user/userProfile.ts +69 -0
  323. package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
  324. package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
  325. package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +27 -32
  326. package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
  327. package/src/unitTest.ts +14 -3
  328. package/src/utils/browserUtils.ts +68 -0
  329. package/src/utils/request.ts +6 -0
  330. package/src/utils/utils.ts +8 -0
  331. package/.browserslistrc +0 -5
  332. package/.editorconfig +0 -25
  333. package/.eslintrc.json +0 -44
  334. package/.github/workflows/publish-npm.yml +0 -28
  335. package/.prettierignore +0 -1
  336. package/.prettierrc +0 -11
  337. package/.yarnrc +0 -2
  338. package/babel.config.js +0 -6
  339. package/jest.config.ts +0 -199
  340. package/jest.setup.ts +0 -2
  341. package/src/storages/chat.ts +0 -21
  342. package/src/storages/chats.ts +0 -17
  343. package/src/storages/file.impl.ts +0 -69
  344. package/src/storages/file.ts +0 -28
  345. package/src/storages/groups.impl.ts +0 -337
  346. package/src/storages/groups.ts +0 -43
  347. package/src/storages/organization.impl.ts +0 -68
  348. package/src/storages/organization.ts +0 -33
  349. package/src/storages/userProfile.impl.ts +0 -56
  350. package/src/storages/userProfile.ts +0 -42
  351. package/test/commands.test.ts +0 -24
  352. package/test/data/test_file.pdf +0 -0
  353. package/test/disposable.test.ts +0 -39
  354. package/test/events.test.ts +0 -151
  355. package/test/files.test.ts +0 -52
  356. package/test/index.test.ts +0 -122
  357. package/test/organization.test.ts +0 -57
  358. package/test/registry.test.ts +0 -44
  359. package/test/services.test.ts +0 -56
  360. package/test/setup.ts +0 -54
  361. package/test/unitTest.test.ts +0 -21
  362. package/test/workspace.test.ts +0 -71
  363. package/tsconfig.json +0 -31
@@ -0,0 +1,136 @@
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
+
7
+ export class UserProfileImpl extends UserProfile {
8
+ private content?: UserInfoResponse
9
+
10
+
11
+ constructor(private readonly context: Context) {
12
+ super()
13
+ }
14
+
15
+ get id(): string {
16
+ if (this.content) {
17
+ return this.content.user.id
18
+ }
19
+ throw new Error("The profile is not loaded.")
20
+ }
21
+
22
+ get name(): string {
23
+ if (this.content) {
24
+ return this.content.user.profile.name
25
+ }
26
+ throw new Error("The profile is not loaded.")
27
+ }
28
+
29
+ get email(): string {
30
+ if (this.content) {
31
+ return this.content.user.profile.email
32
+ }
33
+ throw new Error("The profile is not loaded.")
34
+ }
35
+
36
+ get binanceId(): string {
37
+ if (this.content) {
38
+ return this.content.user.profile.binanceId
39
+ }
40
+ throw new Error("The profile is not loaded.")
41
+ }
42
+
43
+ get educationalInstitution(): string {
44
+ if (this.content){
45
+ return this.content.user.profile.educationalInstitution
46
+ }
47
+ throw new Error("The profile is not loaded.")
48
+ }
49
+
50
+ get isDeleted(): boolean {
51
+ if (this.content) {
52
+ return this.content.user.isDeleted
53
+ }
54
+ throw new Error("The profile is not loaded.")
55
+ }
56
+
57
+ get isAnonymous(): boolean {
58
+ if (this.content) {
59
+ return this.content.user.isAnonymousMode
60
+ }
61
+ throw new Error("The profile is not loaded.")
62
+ }
63
+
64
+ get createdAt(): Date {
65
+ if (this.content) {
66
+ return new Date(this.content.user.created_at)
67
+ }
68
+ throw new Error("The profile is not loaded.")
69
+ }
70
+
71
+ get modifiedAt(): Date {
72
+ if (this.content) {
73
+ return new Date(this.content.user.modified_at)
74
+ }
75
+ throw new Error("The profile is not loaded.")
76
+ }
77
+
78
+ initFrom(content: UserInfoResponse) {
79
+ this.content = content
80
+ this.dispatch({
81
+ type: UserEvent.CHANGED,
82
+ data: this
83
+ })
84
+ }
85
+
86
+ async updateUser(newName: string, newId: string, newEducationalInstitution: string): Promise<void>{
87
+ if (!this.content) {
88
+ throw new Error("User is not loaded.")
89
+ }
90
+
91
+ if (newName === this.name && newId === this.binanceId && newEducationalInstitution === this.educationalInstitution) {
92
+ return Promise.resolve()
93
+ }
94
+
95
+ const response = await this.context
96
+ .resolve(RpcService)
97
+ ?.requestBuilder("api/v1/Users")
98
+ .sendPutJson({
99
+ profile: {
100
+ newName,
101
+ undefined,
102
+ newId,
103
+ newEducationalInstitution
104
+ }
105
+ })
106
+
107
+ if (ResponseUtils.isFail(response)) {
108
+ await ResponseUtils.throwError("Failed to change organization", response)
109
+ }
110
+
111
+ if (this.content) {
112
+ this.content!.user.profile.name = newName
113
+ this.content!.user.profile.binanceId = newId
114
+ this.content!.user.profile.educationalInstitution = newEducationalInstitution
115
+ }
116
+
117
+ this.dispatch({
118
+ type: UserEvent.CHANGED,
119
+ data: this
120
+ })
121
+ }
122
+
123
+ async deleteUser(): Promise<boolean>{
124
+ const response = await this.context
125
+ .resolve(RpcService)?.
126
+ requestBuilder("/api/v1/Users/self")
127
+ .sendDelete()
128
+
129
+ if (ResponseUtils.isFail(response)) {
130
+ await ResponseUtils.throwError("Failed to delete user", response)
131
+ }
132
+
133
+ return true
134
+ }
135
+
136
+ }
@@ -0,0 +1,69 @@
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
+ * Update user profile
60
+ * @param newName
61
+ * @param newId
62
+ */
63
+ abstract updateUser(newName: string, newId: string, newEducationalInstitution: string): Promise<void>
64
+
65
+ /**
66
+ * Delete User
67
+ */
68
+ abstract deleteUser(): Promise<boolean>
69
+ }
@@ -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)
@@ -139,7 +133,7 @@ export class WorkspacesImpl extends Workspaces {
139
133
 
140
134
  // check if workspace is already marked as deleted
141
135
  if (workspace.isMarkAsDeleted) {
142
- throw new Error(`Workspace ${id} is already marked as deleted`)
136
+ throw new Error(`Workspace ${id} is already marked as deleted, in organization: ${this.organization.id}`)
143
137
  }
144
138
 
145
139
  // mark workspace as deleted
@@ -155,7 +149,7 @@ export class WorkspacesImpl extends Workspaces {
155
149
  // check response status
156
150
  if (ResponseUtils.isFail(response)) {
157
151
  await ResponseUtils.throwError(
158
- `Failed to delete workspace: ${workspace.organization.name}/${workspace.name}:${id}`,
152
+ `Failed to delete workspace: ${workspace.organization.name}/${workspace.name}:${id}, in organization: ${this.organization.id}`,
159
153
  response
160
154
  )
161
155
  }
@@ -184,7 +178,8 @@ export class WorkspacesImpl extends Workspaces {
184
178
 
185
179
  // check response status
186
180
  if (ResponseUtils.isFail(response)) {
187
- await ResponseUtils.throwError("Failed to fetch workspaces.", response)
181
+ const userProfile = this.context.resolve(UserProfileService)?.userProfile as UserProfile
182
+ await ResponseUtils.throwError(`Failed to fetch workspaces in organization: ${organizationId}, userId: ${userProfile.id}, email: ${userProfile.email}`, response)
188
183
  }
189
184
 
190
185
  // parse workspaces from the server's response
@@ -1,4 +1,4 @@
1
- import { EventDispatcher } from "../events"
1
+ import { EventDispatcher } from "../../events"
2
2
  import { Workspace } from "./workspace"
3
3
 
4
4
  export type WorkspaceId = string
@@ -44,7 +44,11 @@ export abstract class Workspaces extends EventDispatcher<
44
44
  /**
45
45
  * Create workspace.
46
46
  */
47
- abstract create(name: string, description: string): Promise<Workspace>
47
+ abstract create(name: string, description: string, regulation?: {
48
+ isCreateNewGroup: boolean,
49
+ newGroupName?: string,
50
+ groupIds?: string[]
51
+ }): Promise<Workspace | undefined>
48
52
 
49
53
  /**
50
54
  * Delete workspace.
package/src/unitTest.ts CHANGED
@@ -3,13 +3,13 @@ export enum UnitTest {
3
3
  DO_NOT_START = 1 << 0,
4
4
  DO_NOT_PRINT_INITIALIZED_LOG = 1 << 1,
5
5
 
6
- DEFAULT = DO_NOT_START | DO_NOT_PRINT_INITIALIZED_LOG
6
+ DO_NOT_START_SDK = DO_NOT_START | DO_NOT_PRINT_INITIALIZED_LOG
7
7
  }
8
8
 
9
9
  export type UnitTestProfileSyncAction = () => void
10
10
  export type UnitTestProfileAsyncAction = () => Promise<void>
11
11
 
12
- export class AppSdkUnitTest {
12
+ class AppSdkUnitTest {
13
13
  private static _stack: UnitTest[] = [UnitTest.DO_NOTHING]
14
14
 
15
15
  public static get current(): UnitTest {
@@ -17,7 +17,7 @@ export class AppSdkUnitTest {
17
17
  }
18
18
 
19
19
  public static async test(
20
- unitTest: UnitTest = UnitTest.DEFAULT,
20
+ unitTest: UnitTest = UnitTest.DO_NOT_START_SDK,
21
21
  func: UnitTestProfileSyncAction | UnitTestProfileAsyncAction
22
22
  ): Promise<void> {
23
23
  this._stack.push(unitTest)
@@ -37,6 +37,17 @@ export class AppSdkUnitTest {
37
37
  }
38
38
  }
39
39
 
40
+ export const appTest = async (
41
+ unitTest: UnitTest = UnitTest.DO_NOT_START_SDK,
42
+ func: UnitTestProfileSyncAction | UnitTestProfileAsyncAction
43
+ ): Promise<void> => {
44
+ await AppSdkUnitTest.test(unitTest, func)
45
+ }
46
+
47
+ export const appTestCurrent = (): UnitTest => {
48
+ return AppSdkUnitTest.current
49
+ }
50
+
40
51
  export const isUnitTest = (mask: UnitTest): boolean => {
41
52
  return (AppSdkUnitTest.current & mask) == mask
42
53
  }
@@ -0,0 +1,68 @@
1
+ const getDocument = () => {
2
+ if (!(globalThis as any).document) {
3
+ (globalThis as any).document = {
4
+ cookie: ""
5
+ }
6
+ }
7
+ return document
8
+ }
9
+
10
+ const getNavigator = () => {
11
+ if (!(globalThis as any).navigator) {
12
+ (globalThis as any).navigator = {
13
+ userAgent: "",
14
+ hardwareConcurrency: 0
15
+ }
16
+ }
17
+ return navigator
18
+ }
19
+
20
+ const getWidow = () => {
21
+ if (!(globalThis as any).window) {
22
+ (globalThis as any).window = {
23
+ devicePixelRatio: 16 / 9.0,
24
+ sessionStorage: {},
25
+ localStorage: {}
26
+ }
27
+ }
28
+ return window
29
+ }
30
+
31
+ export const setCookie = (name: string, value: string | undefined): void => {
32
+ const doc = getDocument()
33
+ doc.cookie = `${name}=${value || ""};`
34
+ }
35
+
36
+ export const getCookie = (name: string): string | undefined => {
37
+ const doc = getDocument()
38
+ const nameValidator = `${name}=`
39
+ const cookieItems = doc.cookie.split(";")
40
+
41
+ for (let index = 0; index < cookieItems.length; index++) {
42
+ let cookie = cookieItems[index]
43
+
44
+ while (cookie.charAt(0) === " ") {
45
+ cookie = cookie.substring(1, cookie.length)
46
+ }
47
+
48
+ if (cookie.indexOf(nameValidator) === 0) {
49
+ return cookie.substring(nameValidator.length, cookie.length)
50
+ }
51
+ }
52
+
53
+ return undefined
54
+ }
55
+
56
+ export const createFingerprint = () => {
57
+ const nav = getNavigator()
58
+ const win = getWidow()
59
+ const fingerprint = new Map<string, any>()
60
+
61
+ fingerprint.set("userAgent", nav.userAgent)
62
+ fingerprint.set("hardware_concurrency", nav.hardwareConcurrency)
63
+ fingerprint.set("pixel_ratio", win.devicePixelRatio)
64
+ fingerprint.set("session_storage", win.sessionStorage)
65
+ fingerprint.set("local_storage", win.localStorage)
66
+
67
+ return fingerprint
68
+ }
@@ -0,0 +1,6 @@
1
+
2
+ export type Request = globalThis.Request
3
+ export type Response = globalThis.Response
4
+ export type Headers = globalThis.Headers
5
+ export type FormData = globalThis.FormData
6
+ export type fetch = typeof globalThis.fetch
@@ -0,0 +1,8 @@
1
+ // check if the object is null or undefined
2
+ export const isNullOrUndefined = (object: unknown): object is null | undefined => {
3
+ return object === null || object === undefined
4
+ }
5
+
6
+ export const isEmptyNullOrUndefined = (object: unknown): boolean => {
7
+ return isNullOrUndefined(object) || object === ""
8
+ }
package/.browserslistrc DELETED
@@ -1,5 +0,0 @@
1
- last 2 chrome version
2
- last 2 firefox version
3
- last 2 safari version
4
- last 2 edge version
5
- last 2 ie version
package/.editorconfig DELETED
@@ -1,25 +0,0 @@
1
- # Shared editor configurations that track the way prettier formats source.
2
- #
3
- # To use this in vscode:
4
- #
5
- # ext install EditorConfig
6
-
7
- root = true
8
-
9
- # Source files look unixy by default
10
- [*]
11
- end_of_line = lf
12
- insert_final_newline = true
13
-
14
- # Javascript and Typescript look like Google-style
15
- [*.{js,json,ts}]
16
- charset = utf-8
17
- indent_style = space
18
- indent_size = 2
19
- ij_javascript_use_semicolon_after_statement = false
20
- ij_typescript_use_semicolon_after_statement = false
21
- ij_typescript_use_double_quotes = true
22
- ij_javascript_use_double_quotes = true
23
-
24
- # Not currently supported by vscode, but is supported others, e.g. vim.
25
- max_line_length = 80
package/.eslintrc.json DELETED
@@ -1,44 +0,0 @@
1
- {
2
- "env": {
3
- "browser": true,
4
- "es2021": true
5
- },
6
- "extends": [
7
- "eslint:recommended",
8
- "plugin:@typescript-eslint/recommended"
9
- ],
10
- "parser": "@typescript-eslint/parser",
11
- "parserOptions": {
12
- "ecmaVersion": "latest",
13
- "sourceType": "module"
14
- },
15
- "plugins": [
16
- "@typescript-eslint"
17
- ],
18
- "ignorePatterns": [
19
- "node_modules/",
20
- "dist/"
21
- ],
22
- "rules": {
23
- "@typescript-eslint/space-before-function-paren": "off",
24
- "@typescript-eslint/semi": "off",
25
- "@typescript-eslint/member-delimiter-style": "off",
26
- "@typescript-eslint/no-explicit-any": "off",
27
- "indent": [
28
- "error",
29
- 2
30
- ],
31
- "linebreak-style": [
32
- "error",
33
- "unix"
34
- ],
35
- "quotes": [
36
- "error",
37
- "double"
38
- ],
39
- "semi": [
40
- "error",
41
- "never"
42
- ]
43
- }
44
- }
@@ -1,28 +0,0 @@
1
- name: Publish package to npmjs
2
- on:
3
- workflow_dispatch:
4
-
5
- jobs:
6
- publish:
7
- runs-on: ubuntu-latest
8
- steps:
9
- - uses: actions/checkout@v4
10
-
11
- - uses: actions/setup-node@v3
12
- with:
13
- node-version: '20.x'
14
- registry-url: 'https://registry.npmjs.org'
15
-
16
- - name: ⏩ CI Install ⏩
17
- run: npm ci
18
-
19
- - name: 🧪 Test 🧪
20
- run: npm test >> $GITHUB_STEP_SUMMARY | cat
21
-
22
- - name: 🧱 Build 🧱
23
- run: npm run build
24
-
25
- - name: 📢 Publish to npm 📢
26
- run: npm publish --access public
27
- env:
28
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.prettierignore DELETED
@@ -1 +0,0 @@
1
- dist
package/.prettierrc DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "printWidth": 80,
4
- "quoteProps": "preserve",
5
- "trailingComma": "none",
6
- "arrowParens": "avoid",
7
- "semi": false,
8
- "tabWidth": 2,
9
- "useTabs": false,
10
- "spaceBeforeFunctionParen": false
11
- }
package/.yarnrc DELETED
@@ -1,2 +0,0 @@
1
- registry "https://registry.npmjs.org/"
2
- save-prefix ""
package/babel.config.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- presets: [
3
- ['@babel/preset-env', { targets: { node: 'current' } }],
4
- '@babel/preset-typescript'
5
- ]
6
- }