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

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 (353) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +271 -36
  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 +50 -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/badRequestResponse.d.ts +6 -0
  41. package/dist/src/dto/badRequestResponse.d.ts.map +1 -0
  42. package/dist/src/dto/badRequestResponse.js +3 -0
  43. package/dist/src/dto/badRequestResponse.js.map +1 -0
  44. package/dist/src/dto/chatResponse.d.ts +83 -0
  45. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  46. package/dist/src/dto/chatResponse.js +45 -0
  47. package/dist/src/dto/chatResponse.js.map +1 -0
  48. package/dist/src/dto/limitsResponse.d.ts +29 -0
  49. package/dist/src/dto/limitsResponse.d.ts.map +1 -0
  50. package/dist/src/dto/limitsResponse.js +13 -0
  51. package/dist/src/dto/limitsResponse.js.map +1 -0
  52. package/dist/src/dto/statisticsResponse.d.ts +11 -0
  53. package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
  54. package/dist/src/dto/statisticsResponse.js +3 -0
  55. package/dist/src/dto/statisticsResponse.js.map +1 -0
  56. package/dist/src/dto/userInfoResponse.d.ts +88 -0
  57. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  58. package/dist/src/dto/userInfoResponse.js +3 -0
  59. package/dist/src/dto/userInfoResponse.js.map +1 -0
  60. package/dist/src/dto/workspacesResponse.d.ts +45 -0
  61. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  62. package/dist/src/dto/workspacesResponse.js +3 -0
  63. package/dist/src/dto/workspacesResponse.js.map +1 -0
  64. package/dist/src/events.d.ts +17 -0
  65. package/dist/src/events.d.ts.map +1 -0
  66. package/dist/src/events.js +52 -0
  67. package/dist/src/events.js.map +1 -0
  68. package/dist/src/index.d.ts +66 -0
  69. package/dist/src/index.d.ts.map +1 -0
  70. package/dist/src/index.js +113 -0
  71. package/dist/src/index.js.map +1 -0
  72. package/dist/src/internal/app.impl.d.ts +28 -0
  73. package/dist/src/internal/app.impl.d.ts.map +1 -0
  74. package/dist/src/internal/app.impl.js +173 -0
  75. package/dist/src/internal/app.impl.js.map +1 -0
  76. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  77. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  78. package/dist/src/internal/appBuilder.impl.js +71 -0
  79. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  80. package/dist/src/internal/createApp.impl.d.ts +4 -0
  81. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  82. package/dist/src/internal/createApp.impl.js +11 -0
  83. package/dist/src/internal/createApp.impl.js.map +1 -0
  84. package/dist/src/internal/registry.d.ts +66 -0
  85. package/dist/src/internal/registry.d.ts.map +1 -0
  86. package/dist/src/internal/registry.js +114 -0
  87. package/dist/src/internal/registry.js.map +1 -0
  88. package/dist/src/middleware.d.ts +6 -0
  89. package/dist/src/middleware.d.ts.map +1 -0
  90. package/dist/src/middleware.js +3 -0
  91. package/dist/src/middleware.js.map +1 -0
  92. package/dist/src/services/anonymousService.d.ts +8 -0
  93. package/dist/src/services/anonymousService.d.ts.map +1 -0
  94. package/dist/src/services/anonymousService.js +41 -0
  95. package/dist/src/services/anonymousService.js.map +1 -0
  96. package/dist/src/services/commandService.d.ts +18 -0
  97. package/dist/src/services/commandService.d.ts.map +1 -0
  98. package/dist/src/services/commandService.js +40 -0
  99. package/dist/src/services/commandService.js.map +1 -0
  100. package/dist/src/services/cookieService.d.ts +7 -0
  101. package/dist/src/services/cookieService.d.ts.map +1 -0
  102. package/dist/src/services/cookieService.js +18 -0
  103. package/dist/src/services/cookieService.js.map +1 -0
  104. package/dist/src/services/credentialService.d.ts +9 -0
  105. package/dist/src/services/credentialService.d.ts.map +1 -0
  106. package/dist/src/services/credentialService.js +26 -0
  107. package/dist/src/services/credentialService.js.map +1 -0
  108. package/dist/src/services/httpMethod.d.ts +2 -0
  109. package/dist/src/services/httpMethod.d.ts.map +1 -0
  110. package/dist/src/services/httpMethod.js +3 -0
  111. package/dist/src/services/httpMethod.js.map +1 -0
  112. package/dist/src/services/middlewareService.d.ts +10 -0
  113. package/dist/src/services/middlewareService.d.ts.map +1 -0
  114. package/dist/src/services/middlewareService.js +34 -0
  115. package/dist/src/services/middlewareService.js.map +1 -0
  116. package/dist/src/services/organizationService.d.ts +10 -0
  117. package/dist/src/services/organizationService.d.ts.map +1 -0
  118. package/dist/src/services/organizationService.js +19 -0
  119. package/dist/src/services/organizationService.js.map +1 -0
  120. package/dist/src/services/requestBuilder.d.ts +17 -0
  121. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  122. package/dist/src/services/requestBuilder.js +105 -0
  123. package/dist/src/services/requestBuilder.js.map +1 -0
  124. package/dist/src/services/responseUtils.d.ts +8 -0
  125. package/dist/src/services/responseUtils.d.ts.map +1 -0
  126. package/dist/src/services/responseUtils.js +40 -0
  127. package/dist/src/services/responseUtils.js.map +1 -0
  128. package/dist/src/services/rpcService.d.ts +77 -0
  129. package/dist/src/services/rpcService.d.ts.map +1 -0
  130. package/dist/src/services/rpcService.js +125 -0
  131. package/dist/src/services/rpcService.js.map +1 -0
  132. package/dist/src/services/service.d.ts +21 -0
  133. package/dist/src/services/service.d.ts.map +1 -0
  134. package/dist/src/services/service.js +41 -0
  135. package/dist/src/services/service.js.map +1 -0
  136. package/dist/src/services/userProfileService.d.ts +9 -0
  137. package/dist/src/services/userProfileService.d.ts.map +1 -0
  138. package/dist/src/services/userProfileService.js +43 -0
  139. package/dist/src/services/userProfileService.js.map +1 -0
  140. package/dist/src/storages/chats/answer.d.ts +41 -0
  141. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  142. package/dist/src/storages/chats/answer.impl.d.ts +29 -0
  143. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  144. package/dist/src/storages/chats/answer.impl.js +116 -0
  145. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  146. package/dist/src/storages/chats/answer.js +15 -0
  147. package/dist/src/storages/chats/answer.js.map +1 -0
  148. package/dist/src/storages/chats/chat.d.ts +43 -0
  149. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  150. package/dist/src/storages/chats/chat.impl.d.ts +25 -0
  151. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  152. package/dist/src/storages/chats/chat.impl.js +85 -0
  153. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  154. package/dist/src/storages/chats/chat.js +12 -0
  155. package/dist/src/storages/chats/chat.js.map +1 -0
  156. package/dist/src/storages/chats/chats.d.ts +45 -0
  157. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  158. package/dist/src/storages/chats/chats.impl.d.ts +19 -0
  159. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  160. package/dist/src/storages/chats/chats.impl.js +147 -0
  161. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  162. package/dist/src/storages/chats/chats.js +16 -0
  163. package/dist/src/storages/chats/chats.js.map +1 -0
  164. package/dist/src/storages/files/file.d.ts +47 -0
  165. package/dist/src/storages/files/file.d.ts.map +1 -0
  166. package/dist/src/storages/files/file.impl.d.ts +25 -0
  167. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  168. package/dist/src/storages/files/file.impl.js +93 -0
  169. package/dist/src/storages/files/file.impl.js.map +1 -0
  170. package/dist/src/storages/files/file.js +17 -0
  171. package/dist/src/storages/files/file.js.map +1 -0
  172. package/dist/src/storages/files/files.d.ts +39 -0
  173. package/dist/src/storages/files/files.d.ts.map +1 -0
  174. package/dist/src/storages/files/files.impl.d.ts +24 -0
  175. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  176. package/dist/src/storages/files/files.impl.js +168 -0
  177. package/dist/src/storages/files/files.impl.js.map +1 -0
  178. package/dist/src/storages/files/files.js +20 -0
  179. package/dist/src/storages/files/files.js.map +1 -0
  180. package/dist/src/storages/files/filesPage.d.ts +28 -0
  181. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  182. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  183. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  184. package/dist/src/storages/files/filesPage.impl.js +38 -0
  185. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  186. package/dist/src/storages/files/filesPage.js +10 -0
  187. package/dist/src/storages/files/filesPage.js.map +1 -0
  188. package/dist/src/storages/groups/group.d.ts +63 -0
  189. package/dist/src/storages/groups/group.d.ts.map +1 -0
  190. package/dist/src/storages/groups/group.impl.d.ts +38 -0
  191. package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
  192. package/dist/src/storages/groups/group.impl.js +210 -0
  193. package/dist/src/storages/groups/group.impl.js.map +1 -0
  194. package/dist/src/storages/groups/group.js +15 -0
  195. package/dist/src/storages/groups/group.js.map +1 -0
  196. package/dist/src/storages/groups/groups.d.ts +39 -0
  197. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  198. package/dist/src/storages/groups/groups.impl.d.ts +30 -0
  199. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  200. package/dist/src/storages/groups/groups.impl.js +132 -0
  201. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  202. package/dist/src/storages/groups/groups.js +20 -0
  203. package/dist/src/storages/groups/groups.js.map +1 -0
  204. package/dist/src/storages/organizations/organization.d.ts +95 -0
  205. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  206. package/dist/src/storages/organizations/organization.impl.d.ts +42 -0
  207. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  208. package/dist/src/storages/organizations/organization.impl.js +240 -0
  209. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  210. package/dist/src/storages/organizations/organization.js +18 -0
  211. package/dist/src/storages/organizations/organization.js.map +1 -0
  212. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  213. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  214. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  215. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  216. package/dist/src/storages/organizations/organizations.impl.js +158 -0
  217. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  218. package/dist/src/storages/organizations/organizations.js +20 -0
  219. package/dist/src/storages/organizations/organizations.js.map +1 -0
  220. package/dist/src/storages/user/userProfile.d.ts +54 -0
  221. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  222. package/dist/src/storages/user/userProfile.impl.d.ts +21 -0
  223. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  224. package/dist/src/storages/user/userProfile.impl.js +114 -0
  225. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  226. package/dist/src/storages/user/userProfile.js +12 -0
  227. package/dist/src/storages/user/userProfile.js.map +1 -0
  228. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  229. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  230. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  231. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  232. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  233. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  234. package/dist/src/storages/workspaces/workspace.js +18 -0
  235. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  236. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  237. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  238. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  239. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  240. package/dist/src/storages/workspaces/workspaces.impl.js +152 -0
  241. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  242. package/dist/src/storages/workspaces/workspaces.js +19 -0
  243. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  244. package/dist/src/unitTest.d.ts +12 -0
  245. package/dist/src/unitTest.d.ts.map +1 -0
  246. package/dist/src/unitTest.js +44 -0
  247. package/dist/src/unitTest.js.map +1 -0
  248. package/dist/src/utils/browserUtils.d.ts +4 -0
  249. package/dist/src/utils/browserUtils.d.ts.map +1 -0
  250. package/dist/src/utils/browserUtils.js +64 -0
  251. package/dist/src/utils/browserUtils.js.map +1 -0
  252. package/dist/src/utils/request.d.ts +6 -0
  253. package/dist/src/utils/request.d.ts.map +1 -0
  254. package/dist/src/utils/request.js +3 -0
  255. package/dist/src/utils/request.js.map +1 -0
  256. package/dist/src/utils/utils.d.ts +3 -0
  257. package/dist/src/utils/utils.d.ts.map +1 -0
  258. package/dist/src/utils/utils.js +13 -0
  259. package/dist/src/utils/utils.js.map +1 -0
  260. package/index.d.ts +1 -0
  261. package/index.js +1 -0
  262. package/package.json +46 -5
  263. package/src/commands/deleteUserFullCommandHandler.ts +19 -0
  264. package/src/commands/startCommandHandler.ts +16 -5
  265. package/src/context.ts +4 -2
  266. package/src/credentials.ts +22 -0
  267. package/src/{appSdk.ts → dataIslandApp.ts} +3 -3
  268. package/src/disposable.ts +18 -5
  269. package/src/dto/accessGroupResponse.ts +19 -16
  270. package/src/dto/badRequestResponse.ts +6 -0
  271. package/src/dto/chatResponse.ts +59 -54
  272. package/src/dto/limitsResponse.ts +33 -0
  273. package/src/dto/statisticsResponse.ts +12 -0
  274. package/src/dto/userInfoResponse.ts +59 -2
  275. package/src/dto/workspacesResponse.ts +5 -3
  276. package/src/index.ts +46 -24
  277. package/src/internal/app.impl.ts +42 -9
  278. package/src/internal/createApp.impl.ts +4 -4
  279. package/src/internal/registry.ts +54 -6
  280. package/src/middleware.ts +2 -0
  281. package/src/services/anonymousService.ts +43 -0
  282. package/src/services/commandService.ts +4 -2
  283. package/src/services/cookieService.ts +16 -0
  284. package/src/services/httpMethod.ts +1 -0
  285. package/src/services/middlewareService.ts +1 -0
  286. package/src/services/organizationService.ts +2 -2
  287. package/src/services/requestBuilder.ts +10 -8
  288. package/src/services/responseUtils.ts +12 -0
  289. package/src/services/rpcService.ts +1 -0
  290. package/src/services/userProfileService.ts +18 -4
  291. package/src/storages/chats/answer.impl.ts +160 -0
  292. package/src/storages/chats/answer.ts +53 -0
  293. package/src/storages/chats/chat.impl.ts +107 -0
  294. package/src/storages/chats/chat.ts +55 -0
  295. package/src/storages/chats/chats.impl.ts +204 -0
  296. package/src/storages/chats/chats.ts +53 -0
  297. package/src/storages/files/file.impl.ts +111 -0
  298. package/src/storages/files/file.ts +58 -0
  299. package/src/storages/{files.impl.ts → files/files.impl.ts} +67 -46
  300. package/src/storages/{files.ts → files/files.ts} +14 -7
  301. package/src/storages/files/filesPage.impl.ts +37 -0
  302. package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
  303. package/src/storages/groups/group.impl.ts +276 -0
  304. package/src/storages/groups/group.ts +73 -0
  305. package/src/storages/groups/groups.impl.ts +175 -0
  306. package/src/storages/groups/groups.ts +45 -0
  307. package/src/storages/organizations/organization.impl.ts +357 -0
  308. package/src/storages/organizations/organization.ts +118 -0
  309. package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +31 -13
  310. package/src/storages/{organizations.ts → organizations/organizations.ts} +1 -1
  311. package/src/storages/user/userProfile.impl.ts +136 -0
  312. package/src/storages/user/userProfile.ts +69 -0
  313. package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
  314. package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
  315. package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +27 -32
  316. package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
  317. package/src/unitTest.ts +14 -3
  318. package/src/utils/browserUtils.ts +68 -0
  319. package/src/utils/request.ts +6 -0
  320. package/src/utils/utils.ts +8 -0
  321. package/.browserslistrc +0 -5
  322. package/.editorconfig +0 -25
  323. package/.eslintrc.json +0 -44
  324. package/.github/workflows/publish-npm.yml +0 -28
  325. package/.prettierignore +0 -1
  326. package/.prettierrc +0 -11
  327. package/.yarnrc +0 -2
  328. package/babel.config.js +0 -6
  329. package/jest.config.ts +0 -199
  330. package/jest.setup.ts +0 -2
  331. package/src/storages/chat.ts +0 -21
  332. package/src/storages/chats.ts +0 -17
  333. package/src/storages/file.impl.ts +0 -69
  334. package/src/storages/file.ts +0 -28
  335. package/src/storages/groups.impl.ts +0 -337
  336. package/src/storages/groups.ts +0 -43
  337. package/src/storages/organization.impl.ts +0 -68
  338. package/src/storages/organization.ts +0 -33
  339. package/src/storages/userProfile.impl.ts +0 -56
  340. package/src/storages/userProfile.ts +0 -42
  341. package/test/commands.test.ts +0 -24
  342. package/test/data/test_file.pdf +0 -0
  343. package/test/disposable.test.ts +0 -39
  344. package/test/events.test.ts +0 -151
  345. package/test/files.test.ts +0 -52
  346. package/test/index.test.ts +0 -122
  347. package/test/organization.test.ts +0 -57
  348. package/test/registry.test.ts +0 -44
  349. package/test/services.test.ts +0 -56
  350. package/test/setup.ts +0 -54
  351. package/test/unitTest.test.ts +0 -21
  352. package/test/workspace.test.ts +0 -71
  353. package/tsconfig.json +0 -31
package/src/index.ts CHANGED
@@ -1,26 +1,48 @@
1
1
  import { version } from "../package.json"
2
2
  import { _createApp } from "./internal/createApp.impl"
3
3
  import { type AppBuilder } from "./appBuilder"
4
- import { type AppSdk } from "./appSdk"
4
+ import { type DataIslandApp } from "./dataIslandApp"
5
5
 
6
6
  export * from "./events"
7
7
  export * from "./disposable"
8
8
  export * from "./credentials"
9
- export * from "./appSdk"
10
- export * from "./storages/organizations"
11
- export * from "./storages/organization"
12
- export * from "./storages/workspaces"
13
- export * from "./storages/workspace"
14
- export * from "./storages/groups"
15
- export * from "./storages/userProfile"
16
- export * from "./storages/files"
17
- export * from "./storages/file"
18
- export * from "./storages/filesPage"
19
- export * from "./storages/chats"
20
- export * from "./storages/chat"
9
+ export * from "./dataIslandApp"
10
+ export * from "./appBuilder"
11
+ export * from "./context"
12
+ export * from "./middleware"
13
+ export * from "./dto/chatResponse"
14
+ export * from "./dto/accessGroupResponse"
15
+ export * from "./dto/userInfoResponse"
16
+ export * from "./dto/workspacesResponse"
17
+ export * from "./storages/organizations/organizations"
18
+ export * from "./storages/organizations/organization"
19
+ export * from "./storages/workspaces/workspaces"
20
+ export * from "./storages/workspaces/workspace"
21
+ export * from "./storages/groups/groups"
22
+ export * from "./storages/user/userProfile"
23
+ export * from "./storages/files/files"
24
+ export * from "./storages/files/file"
25
+ export * from "./storages/files/filesPage"
26
+ export * from "./storages/chats/chats"
27
+ export * from "./storages/chats/chat"
28
+ export * from "./storages/chats/answer"
21
29
 
22
- const _appsNotReady = new Map<string, Promise<AppSdk>>()
23
- const _appsReady = new Map<string, AppSdk>()
30
+ export {
31
+ OrganizationId, Organizations, OrganizationsEvent
32
+ } from "./storages/organizations/organizations"
33
+ export {
34
+ WorkspaceId, Workspaces, WorkspacesEvent
35
+ } from "./storages/workspaces/workspaces"
36
+ export { FileId, File, FileStatus } from "./storages/files/file"
37
+ export { UploadFile, Files, FilesEvent } from "./storages/files/files"
38
+ export { Group, GroupEvent, GroupId } from "./storages/groups/group"
39
+ export { AnswerId, Answer, StepId, AnswerEvent } from "./storages/chats/answer"
40
+ export { isNullOrUndefined, isEmptyNullOrUndefined } from "./utils/utils"
41
+
42
+ // map of apps that are not ready to be used
43
+ const _appsNotReady = new Map<string, Promise<DataIslandApp>>()
44
+ // map of apps that are ready to be used
45
+ const _appsReady = new Map<string, DataIslandApp>()
24
46
 
25
47
  /**
26
48
  * Current SDK version.
@@ -37,7 +59,10 @@ export const DEFAULT_NAME = "[DEFAULT]"
37
59
  */
38
60
  export const DEFAULT_HOST = "https://api.dataisland.com.ua"
39
61
 
40
- export function sdks(): AppSdk[] {
62
+ /**
63
+ * Returns a list of DataIsland App instances.
64
+ */
65
+ export function dataIslandInstances(): DataIslandApp[] {
41
66
  return Array.from(_appsReady.values())
42
67
  }
43
68
 
@@ -48,19 +73,19 @@ export function sdks(): AppSdk[] {
48
73
  * @returns A DataIsland App instance.
49
74
  * @example
50
75
  * ```js
51
- * import { appSdk } from 'data-island'
76
+ * import { dataIslandApp, DEFAULT_NAME } from '@neuralinnovations/dataisland-sdk'
52
77
  *
53
- * const app = await appSdk("my-app", builder => {
78
+ * const app = await dataIslandApp(DEFAULT_NAME, builder => {
54
79
  * builder.useHost("https://dataisland.com.ua")
55
80
  * builder.useAutomaticDataCollectionEnabled(true)
56
81
  * builder.useCredential(new BasicCredential("email", "password"))
57
82
  * })
58
83
  * ```
59
84
  */
60
- export async function appSdk(
85
+ export async function dataIslandApp(
61
86
  name?: string,
62
87
  setup?: (builder: AppBuilder) => Promise<void>
63
- ): Promise<AppSdk> {
88
+ ): Promise<DataIslandApp> {
64
89
  name = name ?? DEFAULT_NAME
65
90
 
66
91
  let appPromise = _appsNotReady.get(name)
@@ -78,12 +103,9 @@ export async function appSdk(
78
103
  } else {
79
104
  if (setup !== undefined) {
80
105
  throw new Error(
81
- `App ${name} is initializing. You can't setup the same again.`
106
+ `DataIsland ${name} is initializing. You can't setup the same again.`
82
107
  )
83
108
  }
84
109
  }
85
110
  return await appPromise
86
111
  }
87
-
88
- export { File } from "./storages/file"
89
- export { FilesPage } from "./storages/filesPage"
@@ -7,8 +7,12 @@ import { DisposableContainer, type Lifetime } from "../disposable"
7
7
  import { type Service, ServiceContext } from "../services/service"
8
8
  import { CredentialService } from "../services/credentialService"
9
9
  import { MiddlewareService } from "../services/middlewareService"
10
- import { type CredentialBase } from "../credentials"
11
- import { AppSdk } from "../appSdk"
10
+ import {
11
+ DefaultCredential,
12
+ type CredentialBase,
13
+ AnonymousCredential
14
+ } from "../credentials"
15
+ import { DataIslandApp } from "../dataIslandApp"
12
16
  import { RpcService } from "../services/rpcService"
13
17
  import { CommandService } from "../services/commandService"
14
18
  import {
@@ -17,11 +21,17 @@ import {
17
21
  } from "../commands/startCommandHandler"
18
22
  import { UserProfileService } from "../services/userProfileService"
19
23
  import { OrganizationService } from "../services/organizationService"
20
- import { Organizations } from "../storages/organizations"
21
- import { UserProfile } from "../storages/userProfile"
24
+ import { Organizations } from "../storages/organizations/organizations"
25
+ import { UserProfile } from "../storages/user/userProfile"
22
26
  import { isUnitTest, UnitTest } from "../unitTest"
27
+ import {
28
+ DeleteUserFullCommand,
29
+ DeleteUserFullCommandHandler
30
+ } from "../commands/deleteUserFullCommandHandler"
31
+ import { CookieService } from "../services/cookieService"
32
+ import { AnonymousService } from "../services/anonymousService"
23
33
 
24
- export class AppImplementation extends AppSdk {
34
+ export class DataIslandAppImpl extends DataIslandApp {
25
35
  readonly name: string
26
36
  private _host: string = DEFAULT_HOST
27
37
  private _automaticDataCollectionEnabled: boolean = true
@@ -34,7 +44,7 @@ export class AppImplementation extends AppSdk {
34
44
  this.name = name
35
45
  this._registry = new Registry()
36
46
  this._disposable = new DisposableContainer()
37
- this._context = new Context(this._registry, this._disposable.lifetime, name)
47
+ this._context = new Context(this._registry, this._disposable.lifetime, this)
38
48
 
39
49
  this._registry.map(Context).asValue(this._context)
40
50
  }
@@ -83,8 +93,14 @@ export class AppImplementation extends AppSdk {
83
93
  builder.registerCommand(StartCommand, (context: Context) => {
84
94
  return new StartCommandHandler(context)
85
95
  })
96
+ builder.registerCommand(DeleteUserFullCommand, (context: Context) => {
97
+ return new DeleteUserFullCommandHandler(context)
98
+ })
86
99
 
87
100
  // register services
101
+ builder.registerService(CookieService, (context: ServiceContext) => {
102
+ return new CookieService(context)
103
+ })
88
104
  builder.registerService(CredentialService, (context: ServiceContext) => {
89
105
  return new CredentialService(context)
90
106
  })
@@ -103,6 +119,9 @@ export class AppImplementation extends AppSdk {
103
119
  builder.registerService(OrganizationService, (context: ServiceContext) => {
104
120
  return new OrganizationService(context)
105
121
  })
122
+ builder.registerService(AnonymousService, (context: ServiceContext) => {
123
+ return new AnonymousService(context)
124
+ })
106
125
 
107
126
  // call customer setup
108
127
  if (setup !== undefined) {
@@ -139,8 +158,6 @@ export class AppImplementation extends AppSdk {
139
158
  this.resolve(CommandService)?.register(command[0], command[1])
140
159
  })
141
160
 
142
- this.credential = builder.credential
143
-
144
161
  //-------------------------------------------------------------------------
145
162
  // register services
146
163
  //-------------------------------------------------------------------------
@@ -171,6 +188,22 @@ export class AppImplementation extends AppSdk {
171
188
  await Promise.all(waitList)
172
189
  //-------------------------------------------------------------------------
173
190
 
191
+ // set credential
192
+ this.credential = builder.credential
193
+
194
+ // Check anonymous authorization
195
+ if (!isUnitTest(UnitTest.DO_NOT_START) && builder.credential instanceof DefaultCredential) {
196
+ const anonymous = this.resolve(AnonymousService)!
197
+ const {
198
+ token,
199
+ isValid
200
+ } = await anonymous.getToken()
201
+
202
+ if (isValid) {
203
+ this.credential = new AnonymousCredential(token)
204
+ }
205
+ }
206
+
174
207
  // start app, execute start command
175
208
  if (!isUnitTest(UnitTest.DO_NOT_START)) {
176
209
  await this.context.execute(new StartCommand())
@@ -178,7 +211,7 @@ export class AppImplementation extends AppSdk {
178
211
 
179
212
  // log app initialized
180
213
  if (!isUnitTest(UnitTest.DO_NOT_PRINT_INITIALIZED_LOG)) {
181
- console.log(`AppSDK ${this.name} initialized`)
214
+ console.log(`DataIsland ${this.name} initialized`)
182
215
  }
183
216
  }
184
217
  }
@@ -1,12 +1,12 @@
1
- import { AppImplementation } from "./app.impl"
1
+ import { DataIslandAppImpl } from "./app.impl"
2
2
  import { type AppBuilder } from "../appBuilder"
3
- import { AppSdk } from "../appSdk"
3
+ import { DataIslandApp } from "../dataIslandApp"
4
4
 
5
5
  export async function _createApp(
6
6
  name: string,
7
7
  setup?: (builder: AppBuilder) => Promise<void>
8
- ): Promise<AppSdk> {
9
- const app = new AppImplementation(name)
8
+ ): Promise<DataIslandApp> {
9
+ const app = new DataIslandAppImpl(name)
10
10
  await app.initialize(setup)
11
11
  return app
12
12
  }
@@ -1,9 +1,21 @@
1
+ /**
2
+ * Constructor type.
3
+ */
1
4
  export type Constructor<T> = new (...args: any[]) => T
2
5
 
6
+ /**
7
+ * Provider interface.
8
+ */
3
9
  abstract class Provider {
10
+ /**
11
+ * Provide method.
12
+ */
4
13
  abstract provide(): any | undefined
5
14
  }
6
15
 
16
+ /**
17
+ * MethodProvider class.
18
+ */
7
19
  class MethodProvider<T> extends Provider {
8
20
  private instance?: T
9
21
  private provided: boolean = false
@@ -25,6 +37,9 @@ class MethodProvider<T> extends Provider {
25
37
  }
26
38
  }
27
39
 
40
+ /**
41
+ * ValueProvider class.
42
+ */
28
43
  class ValueProvider<T> extends Provider {
29
44
  constructor(private readonly value: T | undefined) {
30
45
  super()
@@ -35,44 +50,77 @@ class ValueProvider<T> extends Provider {
35
50
  }
36
51
  }
37
52
 
53
+ /**
54
+ * RegistryItem class.
55
+ */
38
56
  export class RegistryItem<T> {
39
57
  constructor(
40
58
  private readonly registry: Map<Constructor<any>, Provider>,
41
59
  private readonly type: Constructor<T>
42
- ) {}
60
+ ) {
61
+ }
43
62
 
63
+ /**
64
+ * As value method.
65
+ * @param value
66
+ */
44
67
  asValue(value: T): void {
45
68
  this.registry.set(this.type, new ValueProvider<T>(value))
46
69
  }
47
70
 
71
+ /**
72
+ * As provider method.
73
+ * @param provider
74
+ * @param oneTime
75
+ */
48
76
  asProvider<T>(provider: () => T, oneTime: boolean = false): void {
49
77
  this.registry.set(this.type, new MethodProvider<T>(provider, oneTime))
50
78
  }
51
79
 
80
+ /**
81
+ * As factory method.
82
+ * @param provider
83
+ */
52
84
  asFactory<T>(provider: () => T): void {
53
85
  this.registry.set(this.type, new MethodProvider<T>(provider, false))
54
86
  }
55
87
 
88
+ /**
89
+ * As singleton method.
90
+ * @param provider
91
+ */
56
92
  asSingleton<T>(provider: () => T): void {
57
93
  this.registry.set(this.type, new MethodProvider<T>(provider, true))
58
94
  }
59
95
  }
60
96
 
97
+ /**
98
+ * Registry class.
99
+ */
61
100
  export class Registry {
62
- private readonly services: Map<Constructor<any>, Provider>
63
-
64
- constructor() {
65
- this.services = new Map()
66
- }
101
+ private readonly services: Map<Constructor<any>, Provider> = new Map()
67
102
 
103
+ /**
104
+ * Map method.
105
+ * @param type
106
+ */
68
107
  map<T>(type: Constructor<T>): RegistryItem<T> {
69
108
  return new RegistryItem<T>(this.services, type)
70
109
  }
71
110
 
111
+ /**
112
+ * Set method.
113
+ * @param type
114
+ * @param provider
115
+ */
72
116
  set<T>(type: Constructor<T>, provider: Provider): void {
73
117
  this.services.set(type, provider)
74
118
  }
75
119
 
120
+ /**
121
+ * Get method.
122
+ * @param type
123
+ */
76
124
  get<T>(type: Constructor<T>): T | undefined {
77
125
  const provider = this.services.get(type)
78
126
  if (provider === undefined) {
package/src/middleware.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { Request, Response } from "./utils/request"
2
+
1
3
  /**
2
4
  * DataIsland App request middleware.
3
5
  */
@@ -0,0 +1,43 @@
1
+ import { Service } from "./service"
2
+ import { CookieService } from "./cookieService"
3
+ import { createFingerprint } from "../utils/browserUtils"
4
+ import { RpcService } from "./rpcService"
5
+ import { ResponseUtils } from "./responseUtils"
6
+
7
+ export class AnonymousService extends Service {
8
+
9
+ async getToken(): Promise<{ token: string, isValid: boolean }> {
10
+ const cookie = this.resolve(CookieService)!
11
+ let token = cookie.anonymousToken
12
+ if (token === undefined || token === null || token.length === 0) {
13
+ const fingerprint = createFingerprint()
14
+ const response = await this.context
15
+ .resolve(RpcService)
16
+ ?.requestBuilder("api/v1/Users/anonymous")
17
+ .sendPutJson({
18
+ info: {
19
+ fingerprint: JSON.stringify({
20
+ userAgent: fingerprint.get("userAgent"),
21
+ language: fingerprint.get("language"),
22
+ hardwareConcurrency: fingerprint.get("hardware_concurrency"),
23
+ cookieEnabled: fingerprint.get("cookie_enabled"),
24
+ pixelRatio: fingerprint.get("pixel_ratio")
25
+ })
26
+ }
27
+ })
28
+
29
+ if (ResponseUtils.isFail(response)) {
30
+ await ResponseUtils.throwError("Failed to create anonymous token", response)
31
+ }
32
+
33
+ token = (await response!.json() as { token: string }).token
34
+
35
+ cookie.anonymousToken = token!
36
+ }
37
+
38
+ return {
39
+ token: token!,
40
+ isValid: token !== undefined && token !== null && token.length > 0
41
+ }
42
+ }
43
+ }
@@ -3,7 +3,8 @@ import { Context } from "../context"
3
3
  import { Constructor } from "../internal/registry"
4
4
 
5
5
  export abstract class CommandHandler<T> {
6
- constructor(protected readonly context: Context) {}
6
+ constructor(protected readonly context: Context) {
7
+ }
7
8
 
8
9
  resolve<T>(type: Constructor<T>): T | undefined {
9
10
  return this.context.resolve<T>(type)
@@ -12,7 +13,8 @@ export abstract class CommandHandler<T> {
12
13
  abstract execute(message: T): Promise<void>
13
14
  }
14
15
 
15
- export abstract class Command {}
16
+ export abstract class Command {
17
+ }
16
18
 
17
19
  export class CommandService extends Service {
18
20
  private readonly _registry: Map<
@@ -0,0 +1,16 @@
1
+ import { Service } from "./service"
2
+ import { getCookie, setCookie } from "../utils/browserUtils"
3
+
4
+ export class CookieService extends Service {
5
+ get anonymousToken(): string | undefined {
6
+ return getCookie("anonymous-token")
7
+ }
8
+
9
+ get anonymousTokenIsValid(): boolean {
10
+ return this.anonymousToken !== undefined && this.anonymousToken !== null && this.anonymousToken.length > 0
11
+ }
12
+
13
+ set anonymousToken(value: string | undefined) {
14
+ setCookie("anonymous-token", value)
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ export type HttpMethod = "POST" | "GET" | "PUT" | "DELETE" | "PATCH"
@@ -1,6 +1,7 @@
1
1
  import { Service } from "./service"
2
2
  import { type Middleware } from "../middleware"
3
3
  import { type Disposable } from "../disposable"
4
+ import { Request, Response } from "../utils/request"
4
5
 
5
6
  export class MiddlewareService extends Service {
6
7
  private _middlewares: Middleware[] = []
@@ -1,7 +1,7 @@
1
1
  import { Service } from "./service"
2
- import { Organizations } from "../storages/organizations"
2
+ import { Organizations } from "../storages/organizations/organizations"
3
3
  import { OrganizationDto, UserSettings } from "../dto/userInfoResponse"
4
- import { OrganizationsImpl } from "../storages/organizations.impl"
4
+ import { OrganizationsImpl } from "../storages/organizations/organizations.impl"
5
5
 
6
6
  export class OrganizationService extends Service {
7
7
  private _impl?: OrganizationsImpl
@@ -1,17 +1,19 @@
1
+ // import { Request, Response, Headers, FormData } from "../utils/request"
2
+
1
3
  export class RequestBuilder {
2
- private readonly _headers: Headers
4
+ private readonly _headers: Record<string, string>
3
5
  private readonly _searchParams: URLSearchParams
4
6
 
5
7
  constructor(
6
8
  private readonly _url: URL,
7
9
  private readonly _request: (req: Request) => Promise<Response>
8
10
  ) {
9
- this._headers = new Headers()
11
+ this._headers = {}
10
12
  this._searchParams = new URLSearchParams()
11
13
  }
12
14
 
13
15
  public header(name: string, value: string): RequestBuilder {
14
- this._headers.set(name, value)
16
+ this._headers[name] = value
15
17
  return this
16
18
  }
17
19
 
@@ -23,11 +25,11 @@ export class RequestBuilder {
23
25
  }
24
26
  if (headers instanceof Headers) {
25
27
  headers.forEach((value, name) => {
26
- this._headers.set(name, value)
28
+ this._headers[name] = value
27
29
  })
28
30
  } else {
29
31
  Object.entries(headers).forEach(([name, value]) => {
30
- this._headers.set(name, value)
32
+ this._headers[name] = value
31
33
  })
32
34
  }
33
35
  return this
@@ -58,7 +60,7 @@ export class RequestBuilder {
58
60
  const req = new Request(url, {
59
61
  method: "POST",
60
62
  headers: this._headers,
61
- body
63
+ body: body
62
64
  })
63
65
 
64
66
  // discard content type
@@ -73,7 +75,7 @@ export class RequestBuilder {
73
75
  public async sendPostJson(body: object | null | undefined): Promise<Response> {
74
76
  const url = this._url
75
77
  url.search = this._searchParams.toString()
76
- let json: string | null | undefined = null
78
+ let json: string | undefined = undefined
77
79
  if (body !== undefined && body !== null && typeof body === "object") {
78
80
  json = JSON.stringify(body)
79
81
  }
@@ -112,7 +114,7 @@ export class RequestBuilder {
112
114
  public async sendPutJson(body: object | null | undefined): Promise<Response> {
113
115
  const url = this._url
114
116
  url.search = this._searchParams.toString()
115
- let json: string | null | undefined = null
117
+ let json: string | undefined = undefined
116
118
  if (body !== undefined && body !== null && typeof body === "object") {
117
119
  json = JSON.stringify(body)
118
120
  }
@@ -1,3 +1,6 @@
1
+ import { BadRequest } from "../dto/badRequestResponse"
2
+ import { Response } from "../utils/request"
3
+
1
4
  export class ResponseUtils {
2
5
  public static isOk(response?: Response | null): boolean {
3
6
  return response !== undefined && response !== null && response.ok
@@ -7,6 +10,15 @@ export class ResponseUtils {
7
10
  return !ResponseUtils.isOk(response)
8
11
  }
9
12
 
13
+ public static async isLimitReached(response?: Response | null): Promise<boolean> {
14
+ if (response?.status == 15){
15
+ if (((await response?.json()) as BadRequest).code == 15){
16
+ return true
17
+ }
18
+ }
19
+ return false
20
+ }
21
+
10
22
  public static async throwError(
11
23
  message: string,
12
24
  response: Response | undefined | null
@@ -1,6 +1,7 @@
1
1
  import { Service, type ServiceContext } from "./service"
2
2
  import { MiddlewareService } from "./middlewareService"
3
3
  import { RequestBuilder } from "./requestBuilder"
4
+ // import { Request, Response, Headers, fetch } from "../utils/request"
4
5
 
5
6
  /**
6
7
  * Options for the RpcService.
@@ -1,21 +1,35 @@
1
1
  import { Service } from "./service"
2
2
  import { RpcService } from "./rpcService"
3
- import { UserProfile } from "../storages/userProfile"
3
+ import { UserProfile } from "../storages/user/userProfile"
4
4
  import { UserInfoResponse } from "../dto/userInfoResponse"
5
5
  import { OrganizationService } from "./organizationService"
6
- import { UserProfileImpl } from "../storages/userProfile.impl"
6
+ import { UserProfileImpl } from "../storages/user/userProfile.impl"
7
7
  import { ResponseUtils } from "./responseUtils"
8
8
 
9
9
  export class UserProfileService extends Service {
10
- private readonly impl: UserProfileImpl = new UserProfileImpl()
10
+ private readonly impl: UserProfileImpl = new UserProfileImpl(this.context)
11
11
 
12
12
  get userProfile(): UserProfile {
13
13
  return this.impl
14
14
  }
15
15
 
16
+ async merge(anonymous_token: string) {
17
+ const rpc = this.resolve(RpcService) as RpcService
18
+ const response = await rpc.requestBuilder("api/v1/Users/anonymous/merge")
19
+ .sendPostJson({
20
+ anonymousToken: anonymous_token
21
+ })
22
+
23
+ if (ResponseUtils.isFail(response)) {
24
+ await ResponseUtils.throwError("Failed to merge anonymous user", response)
25
+ }
26
+
27
+ await this.fetch()
28
+ }
29
+
16
30
  async fetch() {
17
31
  const rpc = this.resolve(RpcService) as RpcService
18
- const response = await rpc.requestBuilder("api/v1/Users/self2").sendGet()
32
+ const response = await rpc.requestBuilder("api/v2/Users/self").sendGet()
19
33
  if (ResponseUtils.isFail(response)) {
20
34
  await ResponseUtils.throwError("Failed to fetch user profile", response)
21
35
  }