@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
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,50 @@
1
+ import { Service } from "./service"
2
+ import { RpcService } from "./rpcService"
3
+ import { ResponseUtils } from "./responseUtils"
4
+ import { AcquiringPlansResponse, CreateOrderResponse, CreateOrederData as CreateOrderData, UserAcquiringPlan } from "../dto/acquiringResponse"
5
+
6
+ export class AcquiringService extends Service {
7
+
8
+ async create_order(key: string): Promise<CreateOrderData>{
9
+ const rpc = this.resolve(RpcService) as RpcService
10
+ const response = await rpc.requestBuilder("api/v1/Acquiring/order")
11
+ .sendPostJson({
12
+ key: key
13
+ })
14
+
15
+ if (ResponseUtils.isFail(response)) {
16
+ await ResponseUtils.throwError("Failed to create order", response)
17
+ }
18
+
19
+
20
+ const order = (await response.json()) as CreateOrderResponse
21
+
22
+ return order.data
23
+ }
24
+
25
+ async get_plans(): Promise<AcquiringPlansResponse> {
26
+ const rpc = this.resolve(RpcService) as RpcService
27
+ const response = await rpc.requestBuilder("api/v1/Acquiring/plans").sendGet()
28
+
29
+ if (ResponseUtils.isFail(response)) {
30
+ await ResponseUtils.throwError("Failed to get acquiring plans", response)
31
+ }
32
+
33
+ const content = (await response.json()) as AcquiringPlansResponse
34
+
35
+ return content
36
+ }
37
+
38
+ async get_user_plan(): Promise<UserAcquiringPlan> {
39
+ const rpc = this.resolve(RpcService) as RpcService
40
+ const response = await rpc.requestBuilder("api/v1/Acquiring/user/subscription").sendGet()
41
+
42
+ if (ResponseUtils.isFail(response)) {
43
+ await ResponseUtils.throwError("Failed to get user subscription", response)
44
+ }
45
+
46
+ const content = (await response.json()) as UserAcquiringPlan
47
+
48
+ return content
49
+ }
50
+ }
@@ -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
  }
@@ -0,0 +1,160 @@
1
+ import { Context } from "../../context"
2
+ import {
3
+ AnswerDto,
4
+ AnswerStatus,
5
+ AnswerStepDto,
6
+ FetchAnswerResponse,
7
+ SourceDto,
8
+ StepType
9
+ } from "../../dto/chatResponse"
10
+ import { ResponseUtils } from "../../services/responseUtils"
11
+ import { RpcService } from "../../services/rpcService"
12
+ import { Answer, AnswerEvent, AnswerId } from "./answer"
13
+ import { Chat } from "./chat"
14
+
15
+ export class AnswerImpl extends Answer {
16
+
17
+ private _steps?: AnswerStepDto[]
18
+ private _status?: AnswerStatus
19
+ private _id?: AnswerId
20
+ private _question?: string
21
+ private _sources?: SourceDto[]
22
+ private _answer?: string
23
+ private _timestamp?: number
24
+
25
+ constructor(
26
+ private readonly chat: Chat,
27
+ private readonly context: Context) {
28
+ super()
29
+ }
30
+
31
+ initFromHistory(answer: AnswerDto): AnswerImpl {
32
+ this._id = answer.id
33
+ this._question = answer.question
34
+ this._answer = answer.context
35
+ this._sources = answer.sources
36
+ this._timestamp = answer.timestamp
37
+
38
+ return this
39
+ }
40
+
41
+ async initNew(id: AnswerId, question: string): Promise<AnswerImpl> {
42
+ this._id = id
43
+ this._question = question
44
+ this._answer = ""
45
+
46
+ await this.fetch()
47
+
48
+ return this
49
+ }
50
+
51
+ get id(): AnswerId {
52
+ return <AnswerId>this._id
53
+ }
54
+
55
+ get status(): AnswerStatus {
56
+ return <AnswerStatus>this._status
57
+ }
58
+
59
+ get question(): string {
60
+ return <string>this._question
61
+ }
62
+
63
+ get sources(): SourceDto[] {
64
+ return <SourceDto[]>this._sources
65
+ }
66
+
67
+ get tokens(): string {
68
+ return <string>this._answer
69
+ }
70
+
71
+ get timestamp(): number {
72
+ return <number>this._timestamp
73
+ }
74
+
75
+ public fetchAfter() {
76
+ if (this._status === undefined || this._status === AnswerStatus.RUNNING) {
77
+ setTimeout(async () => await this.fetch(), 300)
78
+ }
79
+ }
80
+
81
+ private getStep(type: StepType): AnswerStepDto | undefined {
82
+ return this._steps?.find(step => step.type === type)
83
+ }
84
+
85
+ async fetch(): Promise<void> {
86
+ // fetch answer from position 0
87
+ const position = 0
88
+ // fetch answer
89
+ const response = await this.context
90
+ .resolve(RpcService)
91
+ ?.requestBuilder("api/v1/Chats/answer/fetch")
92
+ .searchParam("chatId", this.chat.id)
93
+ .searchParam("questionId", this.id)
94
+ .searchParam("position", position.toString())
95
+ .sendGet()
96
+
97
+ // check response status
98
+ if (ResponseUtils.isFail(response)) {
99
+ await ResponseUtils.throwError(`Failed to fetch answer ${this.id}`, response)
100
+ }
101
+
102
+ // parse answer from the server's response
103
+ const answer = (await response!.json()) as FetchAnswerResponse
104
+
105
+ // update answer
106
+ this._status = <AnswerStatus>answer.status
107
+ this._steps = <AnswerStepDto[]>answer.steps
108
+
109
+ if (this.getStep(StepType.GENERATE_ANSWER) !== undefined) {
110
+ const step = this.getStep(StepType.GENERATE_ANSWER)
111
+ const step_tokens = step?.tokens.join("")
112
+ if (this._answer !== step_tokens) {
113
+ this._answer = step_tokens
114
+
115
+ this.dispatch({
116
+ type: AnswerEvent.UPDATED,
117
+ data: this
118
+ })
119
+ }
120
+ }
121
+
122
+ if (this.getStep(StepType.SOURCES) !== undefined && this._sources === undefined) {
123
+ const sources_step = this.getStep(StepType.SOURCES)
124
+ this._sources = sources_step?.sources
125
+
126
+ this.dispatch({
127
+ type: AnswerEvent.UPDATED,
128
+ data: this
129
+ })
130
+ }
131
+
132
+ if (this.getStep(StepType.DONE) !== undefined) {
133
+ const step = this.getStep(StepType.DONE)
134
+ this._timestamp = Date.parse(step!.end_at)
135
+ }
136
+
137
+ this.fetchAfter()
138
+ }
139
+
140
+ async cancel(): Promise<void> {
141
+ // send request to the server
142
+ const response = await this.context
143
+ .resolve(RpcService)
144
+ ?.requestBuilder("api/v1/Chats/answer/cancel")
145
+ .sendPutJson({
146
+ chat_id: this.chat.id,
147
+ uid: this.id
148
+ })
149
+
150
+ // check response status
151
+ if (ResponseUtils.isFail(response)) {
152
+ await ResponseUtils.throwError("Failed to cancel a question", response)
153
+ }
154
+
155
+ this.dispatch({
156
+ type: AnswerEvent.CANCALLED,
157
+ data: this
158
+ })
159
+ }
160
+ }
@@ -0,0 +1,53 @@
1
+ import {
2
+ AnswerStatus,
3
+ SourceDto
4
+ } from "../../dto/chatResponse"
5
+ import { EventDispatcher } from "../../events"
6
+
7
+ export type AnswerId = string
8
+ export type StepId = string
9
+
10
+ export enum AnswerEvent {
11
+ ADDED = "added",
12
+ CANCALLED = "cancelled",
13
+ FAILED = "failed",
14
+ UPDATED = "updated"
15
+ }
16
+
17
+ export abstract class Answer extends EventDispatcher<AnswerEvent, Answer> {
18
+
19
+ /**
20
+ * Answer id.
21
+ */
22
+ abstract get id(): AnswerId
23
+
24
+ /**
25
+ * Answer data object
26
+ */
27
+ abstract get question(): string
28
+
29
+ /**
30
+ * Answer tokens
31
+ */
32
+ abstract get tokens(): string
33
+
34
+ /**
35
+ * Answer status.
36
+ */
37
+ abstract get status(): AnswerStatus
38
+
39
+ /**
40
+ * Answer sources.
41
+ */
42
+ abstract get sources(): SourceDto[]
43
+
44
+ /**
45
+ * Answer time.
46
+ */
47
+ abstract get timestamp(): number
48
+
49
+ /**
50
+ * Cancel answer
51
+ */
52
+ abstract cancel(): Promise<void>
53
+ }
@@ -0,0 +1,107 @@
1
+ import { Chat, ChatAnswerType } from "./chat"
2
+ import { Disposable } from "../../disposable"
3
+ import { Answer, AnswerId } from "./answer"
4
+ import { ChatDto } from "../../dto/chatResponse"
5
+ import { Context } from "../../context"
6
+ import { AnswerImpl } from "./answer.impl"
7
+ import { RpcService } from "../../services/rpcService"
8
+ import { ResponseUtils } from "../../services/responseUtils"
9
+ import { Organization } from "../organizations/organization"
10
+
11
+ export class ChatImpl extends Chat implements Disposable {
12
+ private _isDisposed: boolean = false
13
+ private readonly _answers: AnswerImpl[] = []
14
+
15
+ private _content?: ChatDto
16
+
17
+ constructor(
18
+ private readonly context: Context,
19
+ public readonly organization: Organization
20
+ ) {
21
+ super()
22
+ }
23
+
24
+ async initFrom(chat: ChatDto): Promise<ChatImpl> {
25
+ this._content = chat
26
+
27
+ // init answers
28
+ for (const ans of chat.answers) {
29
+ // create answer implementation
30
+ const answer = new AnswerImpl(this, this.context).initFromHistory(ans)
31
+
32
+ // add answer to the collection
33
+ this._answers.push(answer)
34
+ }
35
+
36
+ return this
37
+ }
38
+
39
+ get id(): string {
40
+ return <string>this._content?.id
41
+ }
42
+
43
+ get name(): string {
44
+ return <string>this._content?.name
45
+ }
46
+
47
+ get fileId(): string {
48
+ return <string>this._content?.fileId
49
+ }
50
+
51
+ get model(): string {
52
+ return <string>this._content?.model
53
+ }
54
+
55
+ get collection(): readonly Answer[] {
56
+ return <Answer[]>this._answers
57
+ }
58
+
59
+ get isDisposed(): boolean {
60
+ return this._isDisposed
61
+ }
62
+
63
+ public getAnswer(id: AnswerId): Answer {
64
+ const answer = this._answers.find(answer => answer.id === id)
65
+ if (answer) {
66
+ return answer
67
+ }
68
+ throw new Error(`Answer with id ${id} is not found`)
69
+ }
70
+
71
+ async ask(message: string, answerType: ChatAnswerType): Promise<Answer | undefined> {
72
+
73
+ // send request to the server
74
+ const response = await this.context
75
+ .resolve(RpcService)
76
+ ?.requestBuilder("api/v1/Chats/question")
77
+ .sendPutJson({
78
+ chatId: this.id,
79
+ questionMessage: message,
80
+ isLongAnswer: (answerType === ChatAnswerType.LONG)
81
+ })
82
+
83
+ // check response status
84
+ if (ResponseUtils.isFail(response)) {
85
+ if (await ResponseUtils.isLimitReached()){
86
+ return undefined
87
+ }
88
+ await ResponseUtils.throwError(`Failed to ask a question, organization: ${this.organization.id}`, response)
89
+ }
90
+
91
+ // parse answer id from the server's response
92
+ const id = (await response!.json() as { id: string }).id
93
+
94
+ // create answer implementation
95
+ const answer = await new AnswerImpl(this, this.context).initNew(id, message)
96
+
97
+ // add answer to the collection
98
+ this._answers.push(answer)
99
+
100
+ return answer
101
+ }
102
+
103
+ dispose(): void {
104
+ this._isDisposed = true
105
+ }
106
+
107
+ }
@@ -0,0 +1,55 @@
1
+ import { Answer } from "./answer"
2
+ import { Organization } from "../organizations/organization"
3
+
4
+ export type ChatId = string
5
+
6
+ export enum ChatAnswerType {
7
+ SHORT = "short",
8
+ LONG = "long"
9
+ }
10
+
11
+ export abstract class Chat {
12
+
13
+ /**
14
+ * Organization.
15
+ */
16
+ abstract get organization(): Organization
17
+
18
+ /**
19
+ * Chat id.
20
+ */
21
+ abstract get id(): ChatId
22
+
23
+ /**
24
+ * Chat name.
25
+ */
26
+ abstract get name(): string
27
+
28
+ /**
29
+ * Connected file ID.
30
+ */
31
+ abstract get fileId(): string
32
+
33
+ /**
34
+ * Model.
35
+ */
36
+ abstract get model(): string
37
+
38
+ /**
39
+ * Answers list.
40
+ */
41
+ abstract get collection(): ReadonlyArray<Answer>
42
+
43
+ /**
44
+ * Get answer by id
45
+ * @param id answer id
46
+ */
47
+ abstract getAnswer(id: string): Answer
48
+
49
+ /**
50
+ * Ask new question in chat.
51
+ */
52
+ abstract ask(message: string, answerType: ChatAnswerType): Promise<Answer | undefined>
53
+
54
+ }
55
+