@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/dto/chatResponse.ts
CHANGED
@@ -1,88 +1,93 @@
|
|
1
|
+
import { AnswerId, StepId } from "../storages/chats/answer"
|
2
|
+
import { ChatId } from "../storages/chats/chat"
|
3
|
+
import { UserId } from "../storages/user/userProfile"
|
1
4
|
|
2
5
|
export interface SourceDto {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
id: string;
|
7
|
+
name: string;
|
8
|
+
url: string;
|
9
|
+
content: string;
|
10
|
+
page: number;
|
8
11
|
}
|
9
12
|
|
10
13
|
export interface AnswerDto {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
id: AnswerId;
|
15
|
+
chatId: ChatId;
|
16
|
+
question: string;
|
17
|
+
context: string;
|
18
|
+
sources: SourceDto[];
|
19
|
+
timestamp: number;
|
17
20
|
}
|
18
21
|
|
19
22
|
export interface ChatDto {
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
id: ChatId;
|
24
|
+
name: string;
|
25
|
+
createdAt: number;
|
26
|
+
modifiedAt: number;
|
27
|
+
userId: UserId;
|
28
|
+
organizationId: string;
|
29
|
+
workspaceId: string;
|
30
|
+
fileId: string;
|
31
|
+
model: string;
|
32
|
+
answers: AnswerDto[];
|
28
33
|
}
|
29
34
|
|
30
35
|
export interface ChatListResponse {
|
31
|
-
|
36
|
+
chats: ChatDto[]
|
32
37
|
}
|
33
38
|
|
34
39
|
export enum AnswerStatus {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
RUNNING = 0,
|
41
|
+
SUCCESS = 1,
|
42
|
+
CANCELED = 2,
|
43
|
+
FAIL = 3,
|
39
44
|
}
|
40
45
|
|
41
|
-
export interface AnswerStepDto{
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
export interface AnswerStepDto {
|
47
|
+
id: StepId;
|
48
|
+
type: StepType;
|
49
|
+
status: StepStatus;
|
50
|
+
start_at: string;
|
51
|
+
end_at: string;
|
52
|
+
tokens: string[];
|
53
|
+
sources: SourceDto[];
|
49
54
|
}
|
50
55
|
|
51
56
|
export interface FetchAnswerResponse {
|
52
|
-
|
53
|
-
|
54
|
-
|
57
|
+
id: AnswerId;
|
58
|
+
status: AnswerStatus;
|
59
|
+
steps: AnswerStepDto[];
|
55
60
|
}
|
56
61
|
|
57
62
|
export interface FetchTokensResponse {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
63
|
+
id: string;
|
64
|
+
step_id: string;
|
65
|
+
step_status: number;
|
66
|
+
step_tokens: string[];
|
62
67
|
}
|
63
68
|
|
64
69
|
export interface AnswerSourcesResponse {
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
70
|
+
chat_uid: string;
|
71
|
+
uid: string;
|
72
|
+
step_id: string;
|
73
|
+
sources: SourceDto[];
|
69
74
|
}
|
70
75
|
|
71
76
|
export enum StepStatus {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
77
|
+
RUNNING = 0,
|
78
|
+
SUCCESS = 1,
|
79
|
+
FAIL = 2,
|
80
|
+
CANCELED = 3,
|
76
81
|
}
|
77
82
|
|
78
83
|
export enum StepType {
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
+
PREPARE = 0,
|
85
|
+
SOURCES = 1,
|
86
|
+
GENERATE_ANSWER = 6,
|
87
|
+
FINALIZE_RESULT = 9,
|
88
|
+
DONE = 10,
|
84
89
|
}
|
85
|
-
|
90
|
+
|
86
91
|
export class StepTypeInfo {
|
87
92
|
public static hasTokens(type: StepType): boolean {
|
88
93
|
switch (type) {
|
@@ -101,4 +106,4 @@ export class StepTypeInfo {
|
|
101
106
|
}
|
102
107
|
return false
|
103
108
|
}
|
104
|
-
}
|
109
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
export interface SegmentsData {
|
3
|
+
segments: SegmentData[]
|
4
|
+
}
|
5
|
+
|
6
|
+
export interface SegmentData {
|
7
|
+
key: string
|
8
|
+
isRegisteredDefault: boolean
|
9
|
+
isAnonymousDefault: boolean
|
10
|
+
isAnonymous: boolean
|
11
|
+
isRegistered: boolean
|
12
|
+
dayItems: SegmentItemData[]
|
13
|
+
}
|
14
|
+
|
15
|
+
export interface SegmentItemData{
|
16
|
+
daysCount: number
|
17
|
+
actionItems: SegmentActionData[]
|
18
|
+
}
|
19
|
+
|
20
|
+
export interface SegmentActionData {
|
21
|
+
type: LimitActionType
|
22
|
+
countLimit: number
|
23
|
+
tokenLimit?: number
|
24
|
+
}
|
25
|
+
|
26
|
+
export enum LimitActionType {
|
27
|
+
UploadFile = 0,
|
28
|
+
CreateChat = 1,
|
29
|
+
AskQuestion = 2,
|
30
|
+
CreateWorkspace = 3,
|
31
|
+
CreateOrganization = 4,
|
32
|
+
FileSizeKb = 5
|
33
|
+
}
|
@@ -1,4 +1,8 @@
|
|
1
1
|
import { WorkspaceDto } from "./workspacesResponse"
|
2
|
+
import { UserId } from "../storages/user/userProfile"
|
3
|
+
import { OrganizationId } from "../storages/organizations/organizations"
|
4
|
+
import { StatisticsData } from "./statisticsResponse"
|
5
|
+
import { LimitActionType, SegmentData } from "./limitsResponse"
|
2
6
|
|
3
7
|
export interface UserInfoResponse {
|
4
8
|
adminInOrganization: string[]
|
@@ -7,8 +11,9 @@ export interface UserInfoResponse {
|
|
7
11
|
}
|
8
12
|
|
9
13
|
export interface UserDto {
|
10
|
-
id:
|
14
|
+
id: UserId
|
11
15
|
isDeleted: boolean
|
16
|
+
isAnonymousMode: boolean
|
12
17
|
created_at: number
|
13
18
|
modified_at: number
|
14
19
|
profile: ProfileDto
|
@@ -18,11 +23,14 @@ export interface UserDto {
|
|
18
23
|
export interface ProfileDto {
|
19
24
|
name: string
|
20
25
|
email: string
|
26
|
+
binanceId: string
|
27
|
+
educationalInstitution: string
|
21
28
|
}
|
22
29
|
|
23
30
|
export interface UserSettings {
|
24
31
|
activeOrganizationId: string
|
25
32
|
activeWorkspaceId: string
|
33
|
+
limitSegmentKey: string
|
26
34
|
}
|
27
35
|
|
28
36
|
export interface OrganizationProfileDto {
|
@@ -31,7 +39,7 @@ export interface OrganizationProfileDto {
|
|
31
39
|
}
|
32
40
|
|
33
41
|
export interface OrganizationDto {
|
34
|
-
id:
|
42
|
+
id: OrganizationId
|
35
43
|
createdAt: number
|
36
44
|
modifiedAt: number
|
37
45
|
membersCount: number
|
@@ -45,3 +53,52 @@ export interface OrganizationWorkspaces extends OrganizationDto {
|
|
45
53
|
export interface MembersResponse {
|
46
54
|
members: UserDto
|
47
55
|
}
|
56
|
+
|
57
|
+
export interface UsersStatisticsResponse {
|
58
|
+
dateFrom: number
|
59
|
+
dateTo: number
|
60
|
+
membersData: UsetStatisticsData[]
|
61
|
+
}
|
62
|
+
|
63
|
+
export interface UsetStatisticsData {
|
64
|
+
userId: UserId
|
65
|
+
data: StatisticsData[]
|
66
|
+
}
|
67
|
+
|
68
|
+
export interface OrganizationSegmentData {
|
69
|
+
segment: SegmentData
|
70
|
+
}
|
71
|
+
|
72
|
+
export interface UserLimitsData {
|
73
|
+
userSegment: SegmentData
|
74
|
+
userLimits: UserLimitData[]
|
75
|
+
}
|
76
|
+
|
77
|
+
export interface UserLimitData {
|
78
|
+
action: LimitActionType
|
79
|
+
records: UserLimitRecordData[]
|
80
|
+
}
|
81
|
+
|
82
|
+
export interface UserLimitRecordData {
|
83
|
+
daysCount: number
|
84
|
+
countLimit: number
|
85
|
+
tokenLimit?: number
|
86
|
+
activeTill: number
|
87
|
+
}
|
88
|
+
|
89
|
+
export interface CurrentLimitsData {
|
90
|
+
segment: string
|
91
|
+
limits: CurrentLimitItem[]
|
92
|
+
}
|
93
|
+
|
94
|
+
export interface CurrentLimitItem {
|
95
|
+
action: LimitActionType
|
96
|
+
records: CurrentLimitRecordData[]
|
97
|
+
}
|
98
|
+
|
99
|
+
export interface CurrentLimitRecordData {
|
100
|
+
daysCount: number
|
101
|
+
used: number
|
102
|
+
all: number
|
103
|
+
activeTill: number
|
104
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { WorkspaceId } from "../storages/workspaces"
|
2
|
-
import { FileId } from "../storages/file"
|
1
|
+
import { WorkspaceId } from "../storages/workspaces/workspaces"
|
2
|
+
import { FileId } from "../storages/files/file"
|
3
3
|
|
4
4
|
export interface WorkspaceProfileDto {
|
5
5
|
name: string
|
@@ -18,7 +18,8 @@ export interface WorkspacesResponse {
|
|
18
18
|
}
|
19
19
|
|
20
20
|
export interface FileUrlDto {
|
21
|
-
url: string
|
21
|
+
url: string,
|
22
|
+
previewUrl: string
|
22
23
|
}
|
23
24
|
|
24
25
|
export interface FileProgressDto {
|
@@ -36,6 +37,7 @@ export interface FileDto {
|
|
36
37
|
name: string
|
37
38
|
description: string
|
38
39
|
url: string
|
40
|
+
previewUrl: string
|
39
41
|
hash: string
|
40
42
|
organizationId: string
|
41
43
|
workspaceId: string
|
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
|
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 "./
|
10
|
-
export * from "./
|
11
|
-
export * from "./
|
12
|
-
export * from "./
|
13
|
-
export * from "./
|
14
|
-
export * from "./
|
15
|
-
export * from "./
|
16
|
-
export * from "./
|
17
|
-
export * from "./storages/
|
18
|
-
export * from "./storages/
|
19
|
-
export * from "./storages/
|
20
|
-
export * from "./storages/
|
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
|
-
|
23
|
-
|
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
|
-
|
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 {
|
76
|
+
* import { dataIslandApp, DEFAULT_NAME } from '@neuralinnovations/dataisland-sdk'
|
52
77
|
*
|
53
|
-
* const app = await
|
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
|
85
|
+
export async function dataIslandApp(
|
61
86
|
name?: string,
|
62
87
|
setup?: (builder: AppBuilder) => Promise<void>
|
63
|
-
): Promise<
|
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
|
-
`
|
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"
|
package/src/internal/app.impl.ts
CHANGED
@@ -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 {
|
11
|
-
|
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,18 @@ 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"
|
23
|
-
|
24
|
-
|
27
|
+
import {
|
28
|
+
DeleteUserFullCommand,
|
29
|
+
DeleteUserFullCommandHandler
|
30
|
+
} from "../commands/deleteUserFullCommandHandler"
|
31
|
+
import { CookieService } from "../services/cookieService"
|
32
|
+
import { AnonymousService } from "../services/anonymousService"
|
33
|
+
import { AcquiringService } from "../services/acquiringService"
|
34
|
+
|
35
|
+
export class DataIslandAppImpl extends DataIslandApp {
|
25
36
|
readonly name: string
|
26
37
|
private _host: string = DEFAULT_HOST
|
27
38
|
private _automaticDataCollectionEnabled: boolean = true
|
@@ -34,7 +45,7 @@ export class AppImplementation extends AppSdk {
|
|
34
45
|
this.name = name
|
35
46
|
this._registry = new Registry()
|
36
47
|
this._disposable = new DisposableContainer()
|
37
|
-
this._context = new Context(this._registry, this._disposable.lifetime,
|
48
|
+
this._context = new Context(this._registry, this._disposable.lifetime, this)
|
38
49
|
|
39
50
|
this._registry.map(Context).asValue(this._context)
|
40
51
|
}
|
@@ -73,6 +84,10 @@ export class AppImplementation extends AppSdk {
|
|
73
84
|
return this.resolve(UserProfileService)?.userProfile as UserProfile
|
74
85
|
}
|
75
86
|
|
87
|
+
get acquiring(): AcquiringService {
|
88
|
+
return this.resolve(AcquiringService) as AcquiringService
|
89
|
+
}
|
90
|
+
|
76
91
|
async initialize(
|
77
92
|
setup: ((builder: AppBuilder) => Promise<void>) | undefined
|
78
93
|
): Promise<void> {
|
@@ -83,8 +98,14 @@ export class AppImplementation extends AppSdk {
|
|
83
98
|
builder.registerCommand(StartCommand, (context: Context) => {
|
84
99
|
return new StartCommandHandler(context)
|
85
100
|
})
|
101
|
+
builder.registerCommand(DeleteUserFullCommand, (context: Context) => {
|
102
|
+
return new DeleteUserFullCommandHandler(context)
|
103
|
+
})
|
86
104
|
|
87
105
|
// register services
|
106
|
+
builder.registerService(CookieService, (context: ServiceContext) => {
|
107
|
+
return new CookieService(context)
|
108
|
+
})
|
88
109
|
builder.registerService(CredentialService, (context: ServiceContext) => {
|
89
110
|
return new CredentialService(context)
|
90
111
|
})
|
@@ -103,6 +124,13 @@ export class AppImplementation extends AppSdk {
|
|
103
124
|
builder.registerService(OrganizationService, (context: ServiceContext) => {
|
104
125
|
return new OrganizationService(context)
|
105
126
|
})
|
127
|
+
builder.registerService(AnonymousService, (context: ServiceContext) => {
|
128
|
+
return new AnonymousService(context)
|
129
|
+
})
|
130
|
+
builder.registerService(AcquiringService, (context: ServiceContext) => {
|
131
|
+
return new AcquiringService(context)
|
132
|
+
})
|
133
|
+
|
106
134
|
|
107
135
|
// call customer setup
|
108
136
|
if (setup !== undefined) {
|
@@ -139,8 +167,6 @@ export class AppImplementation extends AppSdk {
|
|
139
167
|
this.resolve(CommandService)?.register(command[0], command[1])
|
140
168
|
})
|
141
169
|
|
142
|
-
this.credential = builder.credential
|
143
|
-
|
144
170
|
//-------------------------------------------------------------------------
|
145
171
|
// register services
|
146
172
|
//-------------------------------------------------------------------------
|
@@ -171,6 +197,22 @@ export class AppImplementation extends AppSdk {
|
|
171
197
|
await Promise.all(waitList)
|
172
198
|
//-------------------------------------------------------------------------
|
173
199
|
|
200
|
+
// set credential
|
201
|
+
this.credential = builder.credential
|
202
|
+
|
203
|
+
// Check anonymous authorization
|
204
|
+
if (!isUnitTest(UnitTest.DO_NOT_START) && builder.credential instanceof DefaultCredential) {
|
205
|
+
const anonymous = this.resolve(AnonymousService)!
|
206
|
+
const {
|
207
|
+
token,
|
208
|
+
isValid
|
209
|
+
} = await anonymous.getToken()
|
210
|
+
|
211
|
+
if (isValid) {
|
212
|
+
this.credential = new AnonymousCredential(token)
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
174
216
|
// start app, execute start command
|
175
217
|
if (!isUnitTest(UnitTest.DO_NOT_START)) {
|
176
218
|
await this.context.execute(new StartCommand())
|
@@ -178,7 +220,7 @@ export class AppImplementation extends AppSdk {
|
|
178
220
|
|
179
221
|
// log app initialized
|
180
222
|
if (!isUnitTest(UnitTest.DO_NOT_PRINT_INITIALIZED_LOG)) {
|
181
|
-
console.log(`
|
223
|
+
console.log(`DataIsland ${this.name} initialized`)
|
182
224
|
}
|
183
225
|
}
|
184
226
|
}
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import {
|
1
|
+
import { DataIslandAppImpl } from "./app.impl"
|
2
2
|
import { type AppBuilder } from "../appBuilder"
|
3
|
-
import {
|
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<
|
9
|
-
const app = new
|
8
|
+
): Promise<DataIslandApp> {
|
9
|
+
const app = new DataIslandAppImpl(name)
|
10
10
|
await app.initialize(setup)
|
11
11
|
return app
|
12
12
|
}
|
package/src/internal/registry.ts
CHANGED
@@ -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) {
|