@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.
- package/LICENSE +201 -0
- package/README.md +283 -37
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +103 -0
- package/dist/src/appBuilder.d.ts +44 -0
- package/dist/src/appBuilder.d.ts.map +1 -0
- package/dist/src/appBuilder.js +10 -0
- package/dist/src/appBuilder.js.map +1 -0
- package/dist/src/commands/deleteUserFullCommandHandler.d.ts +7 -0
- package/dist/src/commands/deleteUserFullCommandHandler.d.ts.map +1 -0
- package/dist/src/commands/deleteUserFullCommandHandler.js +21 -0
- package/dist/src/commands/deleteUserFullCommandHandler.js.map +1 -0
- package/dist/src/commands/startCommandHandler.d.ts +7 -0
- package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
- package/dist/src/commands/startCommandHandler.js +27 -0
- package/dist/src/commands/startCommandHandler.js.map +1 -0
- package/dist/src/context.d.ts +24 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +31 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/credentials.d.ts +33 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +87 -0
- package/dist/src/credentials.js.map +1 -0
- package/dist/src/dataIslandApp.d.ts +55 -0
- package/dist/src/dataIslandApp.d.ts.map +1 -0
- package/dist/src/dataIslandApp.js +10 -0
- package/dist/src/dataIslandApp.js.map +1 -0
- package/dist/src/disposable.d.ts +84 -0
- package/dist/src/disposable.d.ts.map +1 -0
- package/dist/src/disposable.js +147 -0
- package/dist/src/disposable.js.map +1 -0
- package/dist/src/dto/accessGroupResponse.d.ts +30 -0
- package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
- package/dist/src/dto/accessGroupResponse.js +3 -0
- package/dist/src/dto/accessGroupResponse.js.map +1 -0
- package/dist/src/dto/acquiringResponse.d.ts +38 -0
- package/dist/src/dto/acquiringResponse.d.ts.map +1 -0
- package/dist/src/dto/acquiringResponse.js +12 -0
- package/dist/src/dto/acquiringResponse.js.map +1 -0
- package/dist/src/dto/badRequestResponse.d.ts +6 -0
- package/dist/src/dto/badRequestResponse.d.ts.map +1 -0
- package/dist/src/dto/badRequestResponse.js +3 -0
- package/dist/src/dto/badRequestResponse.js.map +1 -0
- package/dist/src/dto/chatResponse.d.ts +83 -0
- package/dist/src/dto/chatResponse.d.ts.map +1 -0
- package/dist/src/dto/chatResponse.js +45 -0
- package/dist/src/dto/chatResponse.js.map +1 -0
- package/dist/src/dto/limitsResponse.d.ts +29 -0
- package/dist/src/dto/limitsResponse.d.ts.map +1 -0
- package/dist/src/dto/limitsResponse.js +13 -0
- package/dist/src/dto/limitsResponse.js.map +1 -0
- package/dist/src/dto/statisticsResponse.d.ts +11 -0
- package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
- package/dist/src/dto/statisticsResponse.js +3 -0
- package/dist/src/dto/statisticsResponse.js.map +1 -0
- package/dist/src/dto/userInfoResponse.d.ts +88 -0
- package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
- package/dist/src/dto/userInfoResponse.js +3 -0
- package/dist/src/dto/userInfoResponse.js.map +1 -0
- package/dist/src/dto/workspacesResponse.d.ts +45 -0
- package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
- package/dist/src/dto/workspacesResponse.js +3 -0
- package/dist/src/dto/workspacesResponse.js.map +1 -0
- package/dist/src/events.d.ts +17 -0
- package/dist/src/events.d.ts.map +1 -0
- package/dist/src/events.js +52 -0
- package/dist/src/events.js.map +1 -0
- package/dist/src/index.d.ts +66 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +113 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/app.impl.d.ts +30 -0
- package/dist/src/internal/app.impl.d.ts.map +1 -0
- package/dist/src/internal/app.impl.js +180 -0
- package/dist/src/internal/app.impl.js.map +1 -0
- package/dist/src/internal/appBuilder.impl.d.ts +27 -0
- package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
- package/dist/src/internal/appBuilder.impl.js +71 -0
- package/dist/src/internal/appBuilder.impl.js.map +1 -0
- package/dist/src/internal/createApp.impl.d.ts +4 -0
- package/dist/src/internal/createApp.impl.d.ts.map +1 -0
- package/dist/src/internal/createApp.impl.js +11 -0
- package/dist/src/internal/createApp.impl.js.map +1 -0
- package/dist/src/internal/registry.d.ts +66 -0
- package/dist/src/internal/registry.d.ts.map +1 -0
- package/dist/src/internal/registry.js +114 -0
- package/dist/src/internal/registry.js.map +1 -0
- package/dist/src/middleware.d.ts +6 -0
- package/dist/src/middleware.d.ts.map +1 -0
- package/dist/src/middleware.js +3 -0
- package/dist/src/middleware.js.map +1 -0
- package/dist/src/services/acquiringService.d.ts +8 -0
- package/dist/src/services/acquiringService.d.ts.map +1 -0
- package/dist/src/services/acquiringService.js +40 -0
- package/dist/src/services/acquiringService.js.map +1 -0
- package/dist/src/services/anonymousService.d.ts +8 -0
- package/dist/src/services/anonymousService.d.ts.map +1 -0
- package/dist/src/services/anonymousService.js +41 -0
- package/dist/src/services/anonymousService.js.map +1 -0
- package/dist/src/services/commandService.d.ts +18 -0
- package/dist/src/services/commandService.d.ts.map +1 -0
- package/dist/src/services/commandService.js +40 -0
- package/dist/src/services/commandService.js.map +1 -0
- package/dist/src/services/cookieService.d.ts +7 -0
- package/dist/src/services/cookieService.d.ts.map +1 -0
- package/dist/src/services/cookieService.js +18 -0
- package/dist/src/services/cookieService.js.map +1 -0
- package/dist/src/services/credentialService.d.ts +9 -0
- package/dist/src/services/credentialService.d.ts.map +1 -0
- package/dist/src/services/credentialService.js +26 -0
- package/dist/src/services/credentialService.js.map +1 -0
- package/dist/src/services/httpMethod.d.ts +2 -0
- package/dist/src/services/httpMethod.d.ts.map +1 -0
- package/dist/src/services/httpMethod.js +3 -0
- package/dist/src/services/httpMethod.js.map +1 -0
- package/dist/src/services/middlewareService.d.ts +10 -0
- package/dist/src/services/middlewareService.d.ts.map +1 -0
- package/dist/src/services/middlewareService.js +34 -0
- package/dist/src/services/middlewareService.js.map +1 -0
- package/dist/src/services/organizationService.d.ts +10 -0
- package/dist/src/services/organizationService.d.ts.map +1 -0
- package/dist/src/services/organizationService.js +19 -0
- package/dist/src/services/organizationService.js.map +1 -0
- package/dist/src/services/requestBuilder.d.ts +17 -0
- package/dist/src/services/requestBuilder.d.ts.map +1 -0
- package/dist/src/services/requestBuilder.js +105 -0
- package/dist/src/services/requestBuilder.js.map +1 -0
- package/dist/src/services/responseUtils.d.ts +8 -0
- package/dist/src/services/responseUtils.d.ts.map +1 -0
- package/dist/src/services/responseUtils.js +40 -0
- package/dist/src/services/responseUtils.js.map +1 -0
- package/dist/src/services/rpcService.d.ts +77 -0
- package/dist/src/services/rpcService.d.ts.map +1 -0
- package/dist/src/services/rpcService.js +125 -0
- package/dist/src/services/rpcService.js.map +1 -0
- package/dist/src/services/service.d.ts +21 -0
- package/dist/src/services/service.d.ts.map +1 -0
- package/dist/src/services/service.js +41 -0
- package/dist/src/services/service.js.map +1 -0
- package/dist/src/services/userProfileService.d.ts +9 -0
- package/dist/src/services/userProfileService.d.ts.map +1 -0
- package/dist/src/services/userProfileService.js +43 -0
- package/dist/src/services/userProfileService.js.map +1 -0
- package/dist/src/storages/chats/answer.d.ts +41 -0
- package/dist/src/storages/chats/answer.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.d.ts +29 -0
- package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.js +116 -0
- package/dist/src/storages/chats/answer.impl.js.map +1 -0
- package/dist/src/storages/chats/answer.js +15 -0
- package/dist/src/storages/chats/answer.js.map +1 -0
- package/dist/src/storages/chats/chat.d.ts +43 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.d.ts +25 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.js +85 -0
- package/dist/src/storages/chats/chat.impl.js.map +1 -0
- package/dist/src/storages/chats/chat.js +12 -0
- package/dist/src/storages/chats/chat.js.map +1 -0
- package/dist/src/storages/chats/chats.d.ts +45 -0
- package/dist/src/storages/chats/chats.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.d.ts +19 -0
- package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.js +147 -0
- package/dist/src/storages/chats/chats.impl.js.map +1 -0
- package/dist/src/storages/chats/chats.js +16 -0
- package/dist/src/storages/chats/chats.js.map +1 -0
- package/dist/src/storages/files/file.d.ts +47 -0
- package/dist/src/storages/files/file.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.d.ts +25 -0
- package/dist/src/storages/files/file.impl.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.js +93 -0
- package/dist/src/storages/files/file.impl.js.map +1 -0
- package/dist/src/storages/files/file.js +17 -0
- package/dist/src/storages/files/file.js.map +1 -0
- package/dist/src/storages/files/files.d.ts +39 -0
- package/dist/src/storages/files/files.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.d.ts +24 -0
- package/dist/src/storages/files/files.impl.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.js +168 -0
- package/dist/src/storages/files/files.impl.js.map +1 -0
- package/dist/src/storages/files/files.js +20 -0
- package/dist/src/storages/files/files.js.map +1 -0
- package/dist/src/storages/files/filesPage.d.ts +28 -0
- package/dist/src/storages/files/filesPage.d.ts.map +1 -0
- package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
- package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
- package/dist/src/storages/files/filesPage.impl.js +38 -0
- package/dist/src/storages/files/filesPage.impl.js.map +1 -0
- package/dist/src/storages/files/filesPage.js +10 -0
- package/dist/src/storages/files/filesPage.js.map +1 -0
- package/dist/src/storages/groups/group.d.ts +63 -0
- package/dist/src/storages/groups/group.d.ts.map +1 -0
- package/dist/src/storages/groups/group.impl.d.ts +38 -0
- package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/group.impl.js +210 -0
- package/dist/src/storages/groups/group.impl.js.map +1 -0
- package/dist/src/storages/groups/group.js +15 -0
- package/dist/src/storages/groups/group.js.map +1 -0
- package/dist/src/storages/groups/groups.d.ts +39 -0
- package/dist/src/storages/groups/groups.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.d.ts +30 -0
- package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.js +132 -0
- package/dist/src/storages/groups/groups.impl.js.map +1 -0
- package/dist/src/storages/groups/groups.js +20 -0
- package/dist/src/storages/groups/groups.js.map +1 -0
- package/dist/src/storages/organizations/organization.d.ts +95 -0
- package/dist/src/storages/organizations/organization.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.d.ts +42 -0
- package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.js +240 -0
- package/dist/src/storages/organizations/organization.impl.js.map +1 -0
- package/dist/src/storages/organizations/organization.js +18 -0
- package/dist/src/storages/organizations/organization.js.map +1 -0
- package/dist/src/storages/organizations/organizations.d.ts +46 -0
- package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.js +158 -0
- package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
- package/dist/src/storages/organizations/organizations.js +20 -0
- package/dist/src/storages/organizations/organizations.js.map +1 -0
- package/dist/src/storages/user/userProfile.d.ts +54 -0
- package/dist/src/storages/user/userProfile.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.d.ts +21 -0
- package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.js +114 -0
- package/dist/src/storages/user/userProfile.impl.js.map +1 -0
- package/dist/src/storages/user/userProfile.js +12 -0
- package/dist/src/storages/user/userProfile.js.map +1 -0
- package/dist/src/storages/workspaces/workspace.d.ts +44 -0
- package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.js +98 -0
- package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
- package/dist/src/storages/workspaces/workspace.js +18 -0
- package/dist/src/storages/workspaces/workspace.js.map +1 -0
- package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
- package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
- package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspaces.impl.js +152 -0
- package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
- package/dist/src/storages/workspaces/workspaces.js +19 -0
- package/dist/src/storages/workspaces/workspaces.js.map +1 -0
- package/dist/src/unitTest.d.ts +12 -0
- package/dist/src/unitTest.d.ts.map +1 -0
- package/dist/src/unitTest.js +44 -0
- package/dist/src/unitTest.js.map +1 -0
- package/dist/src/utils/browserUtils.d.ts +4 -0
- package/dist/src/utils/browserUtils.d.ts.map +1 -0
- package/dist/src/utils/browserUtils.js +64 -0
- package/dist/src/utils/browserUtils.js.map +1 -0
- package/dist/src/utils/request.d.ts +6 -0
- package/dist/src/utils/request.d.ts.map +1 -0
- package/dist/src/utils/request.js +3 -0
- package/dist/src/utils/request.js.map +1 -0
- package/dist/src/utils/utils.d.ts +3 -0
- package/dist/src/utils/utils.d.ts.map +1 -0
- package/dist/src/utils/utils.js +13 -0
- package/dist/src/utils/utils.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +46 -5
- package/src/commands/deleteUserFullCommandHandler.ts +19 -0
- package/src/commands/startCommandHandler.ts +16 -5
- package/src/context.ts +4 -2
- package/src/credentials.ts +22 -0
- package/src/{appSdk.ts → dataIslandApp.ts} +9 -3
- package/src/disposable.ts +18 -5
- package/src/dto/accessGroupResponse.ts +19 -16
- package/src/dto/acquiringResponse.ts +45 -0
- package/src/dto/badRequestResponse.ts +6 -0
- package/src/dto/chatResponse.ts +59 -54
- package/src/dto/limitsResponse.ts +33 -0
- package/src/dto/statisticsResponse.ts +12 -0
- package/src/dto/userInfoResponse.ts +59 -2
- package/src/dto/workspacesResponse.ts +5 -3
- package/src/index.ts +46 -24
- package/src/internal/app.impl.ts +52 -10
- package/src/internal/createApp.impl.ts +4 -4
- package/src/internal/registry.ts +54 -6
- package/src/middleware.ts +2 -0
- package/src/services/acquiringService.ts +50 -0
- package/src/services/anonymousService.ts +43 -0
- package/src/services/commandService.ts +4 -2
- package/src/services/cookieService.ts +16 -0
- package/src/services/httpMethod.ts +1 -0
- package/src/services/middlewareService.ts +1 -0
- package/src/services/organizationService.ts +2 -2
- package/src/services/requestBuilder.ts +10 -8
- package/src/services/responseUtils.ts +12 -0
- package/src/services/rpcService.ts +1 -0
- package/src/services/userProfileService.ts +18 -4
- package/src/storages/chats/answer.impl.ts +160 -0
- package/src/storages/chats/answer.ts +53 -0
- package/src/storages/chats/chat.impl.ts +107 -0
- package/src/storages/chats/chat.ts +55 -0
- package/src/storages/chats/chats.impl.ts +204 -0
- package/src/storages/chats/chats.ts +53 -0
- package/src/storages/files/file.impl.ts +111 -0
- package/src/storages/files/file.ts +58 -0
- package/src/storages/{files.impl.ts → files/files.impl.ts} +67 -46
- package/src/storages/{files.ts → files/files.ts} +14 -7
- package/src/storages/files/filesPage.impl.ts +37 -0
- package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
- package/src/storages/groups/group.impl.ts +276 -0
- package/src/storages/groups/group.ts +73 -0
- package/src/storages/groups/groups.impl.ts +175 -0
- package/src/storages/groups/groups.ts +45 -0
- package/src/storages/organizations/organization.impl.ts +357 -0
- package/src/storages/organizations/organization.ts +118 -0
- package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +31 -13
- package/src/storages/{organizations.ts → organizations/organizations.ts} +1 -1
- package/src/storages/user/userProfile.impl.ts +136 -0
- package/src/storages/user/userProfile.ts +69 -0
- package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
- package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
- package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +27 -32
- package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
- package/src/unitTest.ts +14 -3
- package/src/utils/browserUtils.ts +68 -0
- package/src/utils/request.ts +6 -0
- package/src/utils/utils.ts +8 -0
- package/.browserslistrc +0 -5
- package/.editorconfig +0 -25
- package/.eslintrc.json +0 -44
- package/.github/workflows/publish-npm.yml +0 -28
- package/.prettierignore +0 -1
- package/.prettierrc +0 -11
- package/.yarnrc +0 -2
- package/babel.config.js +0 -6
- package/jest.config.ts +0 -199
- package/jest.setup.ts +0 -2
- package/src/storages/chat.ts +0 -21
- package/src/storages/chats.ts +0 -17
- package/src/storages/file.impl.ts +0 -69
- package/src/storages/file.ts +0 -28
- package/src/storages/groups.impl.ts +0 -337
- package/src/storages/groups.ts +0 -43
- package/src/storages/organization.impl.ts +0 -68
- package/src/storages/organization.ts +0 -33
- package/src/storages/userProfile.impl.ts +0 -56
- package/src/storages/userProfile.ts +0 -42
- package/test/commands.test.ts +0 -24
- package/test/data/test_file.pdf +0 -0
- package/test/disposable.test.ts +0 -39
- package/test/events.test.ts +0 -151
- package/test/files.test.ts +0 -52
- package/test/index.test.ts +0 -122
- package/test/organization.test.ts +0 -57
- package/test/registry.test.ts +0 -44
- package/test/services.test.ts +0 -56
- package/test/setup.ts +0 -54
- package/test/unitTest.test.ts +0 -21
- package/test/workspace.test.ts +0 -71
- package/tsconfig.json +0 -31
package/src/middleware.ts
CHANGED
@@ -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:
|
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 =
|
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
|
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
|
28
|
+
this._headers[name] = value
|
27
29
|
})
|
28
30
|
} else {
|
29
31
|
Object.entries(headers).forEach(([name, value]) => {
|
30
|
-
this._headers
|
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 |
|
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 |
|
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/
|
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
|
+
|