@neuralinnovations/dataisland-sdk 0.0.1-dev8 → 0.0.1-dev80
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/README.md +209 -7
- 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 +33 -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 +39 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +105 -0
- package/dist/src/credentials.js.map +1 -0
- package/dist/src/dataIslandApp.d.ts +60 -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 +27 -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 +46 -0
- package/dist/src/dto/acquiringResponse.d.ts.map +1 -0
- package/dist/src/dto/acquiringResponse.js +11 -0
- package/dist/src/dto/acquiringResponse.js.map +1 -0
- package/dist/src/dto/apiKeyResponse.d.ts +24 -0
- package/dist/src/dto/apiKeyResponse.d.ts.map +1 -0
- package/dist/src/dto/apiKeyResponse.js +3 -0
- package/dist/src/dto/apiKeyResponse.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 +99 -0
- package/dist/src/dto/chatResponse.d.ts.map +1 -0
- package/dist/src/dto/chatResponse.js +56 -0
- package/dist/src/dto/chatResponse.js.map +1 -0
- package/dist/src/dto/invitesResponse.d.ts +21 -0
- package/dist/src/dto/invitesResponse.d.ts.map +1 -0
- package/dist/src/dto/invitesResponse.js +3 -0
- package/dist/src/dto/invitesResponse.js.map +1 -0
- package/dist/src/dto/libraryResponse.d.ts +42 -0
- package/dist/src/dto/libraryResponse.d.ts.map +1 -0
- package/dist/src/dto/libraryResponse.js +3 -0
- package/dist/src/dto/libraryResponse.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/queryFlowResponse.d.ts +20 -0
- package/dist/src/dto/queryFlowResponse.d.ts.map +1 -0
- package/dist/src/dto/queryFlowResponse.js +10 -0
- package/dist/src/dto/queryFlowResponse.js.map +1 -0
- package/dist/src/dto/quizResponse.d.ts +11 -0
- package/dist/src/dto/quizResponse.d.ts.map +1 -0
- package/dist/src/dto/quizResponse.js +3 -0
- package/dist/src/dto/quizResponse.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 +93 -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 +79 -0
- package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
- package/dist/src/dto/workspacesResponse.js +31 -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 +88 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +140 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/app.impl.d.ts +32 -0
- package/dist/src/internal/app.impl.d.ts.map +1 -0
- package/dist/src/internal/app.impl.js +187 -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 +9 -0
- package/dist/src/services/acquiringService.d.ts.map +1 -0
- package/dist/src/services/acquiringService.js +19 -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/librariesService.d.ts +9 -0
- package/dist/src/services/librariesService.d.ts.map +1 -0
- package/dist/src/services/librariesService.js +19 -0
- package/dist/src/services/librariesService.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 +19 -0
- package/dist/src/services/requestBuilder.d.ts.map +1 -0
- package/dist/src/services/requestBuilder.js +133 -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 +10 -0
- package/dist/src/services/userProfileService.d.ts.map +1 -0
- package/dist/src/services/userProfileService.js +59 -0
- package/dist/src/services/userProfileService.js.map +1 -0
- package/dist/src/storages/acquirings/acquiring.d.ts +41 -0
- package/dist/src/storages/acquirings/acquiring.d.ts.map +1 -0
- package/dist/src/storages/acquirings/acquiring.impl.d.ts +20 -0
- package/dist/src/storages/acquirings/acquiring.impl.d.ts.map +1 -0
- package/dist/src/storages/acquirings/acquiring.impl.js +92 -0
- package/dist/src/storages/acquirings/acquiring.impl.js.map +1 -0
- package/dist/src/storages/acquirings/acquiring.js +10 -0
- package/dist/src/storages/acquirings/acquiring.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 +134 -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 +52 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.d.ts +27 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.js +102 -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 +63 -0
- package/dist/src/storages/chats/chats.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.d.ts +22 -0
- package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.js +252 -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 +59 -0
- package/dist/src/storages/files/file.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.d.ts +27 -0
- package/dist/src/storages/files/file.impl.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.js +104 -0
- package/dist/src/storages/files/file.impl.js.map +1 -0
- package/dist/src/storages/files/file.js +11 -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 +26 -0
- package/dist/src/storages/files/files.impl.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.js +199 -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 +43 -0
- package/dist/src/storages/groups/groups.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.d.ts +31 -0
- package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.js +136 -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/library/folderId.d.ts +2 -0
- package/dist/src/storages/library/folderId.d.ts.map +1 -0
- package/dist/src/storages/library/folderId.js +3 -0
- package/dist/src/storages/library/folderId.js.map +1 -0
- package/dist/src/storages/library/libraries.d.ts +48 -0
- package/dist/src/storages/library/libraries.d.ts.map +1 -0
- package/dist/src/storages/library/libraries.impl.d.ts +26 -0
- package/dist/src/storages/library/libraries.impl.d.ts.map +1 -0
- package/dist/src/storages/library/libraries.impl.js +148 -0
- package/dist/src/storages/library/libraries.impl.js.map +1 -0
- package/dist/src/storages/library/libraries.js +16 -0
- package/dist/src/storages/library/libraries.js.map +1 -0
- package/dist/src/storages/library/library.d.ts +26 -0
- package/dist/src/storages/library/library.d.ts.map +1 -0
- package/dist/src/storages/library/library.impl.d.ts +19 -0
- package/dist/src/storages/library/library.impl.d.ts.map +1 -0
- package/dist/src/storages/library/library.impl.js +98 -0
- package/dist/src/storages/library/library.impl.js.map +1 -0
- package/dist/src/storages/library/library.js +10 -0
- package/dist/src/storages/library/library.js.map +1 -0
- package/dist/src/storages/library/libraryFolder.d.ts +16 -0
- package/dist/src/storages/library/libraryFolder.d.ts.map +1 -0
- package/dist/src/storages/library/libraryFolder.impl.d.ts +22 -0
- package/dist/src/storages/library/libraryFolder.impl.d.ts.map +1 -0
- package/dist/src/storages/library/libraryFolder.impl.js +104 -0
- package/dist/src/storages/library/libraryFolder.impl.js.map +1 -0
- package/dist/src/storages/library/libraryFolder.js +7 -0
- package/dist/src/storages/library/libraryFolder.js.map +1 -0
- package/dist/src/storages/library/libraryId.d.ts +2 -0
- package/dist/src/storages/library/libraryId.d.ts.map +1 -0
- package/dist/src/storages/library/libraryId.js +3 -0
- package/dist/src/storages/library/libraryId.js.map +1 -0
- package/dist/src/storages/library/libraryPage.d.ts +45 -0
- package/dist/src/storages/library/libraryPage.d.ts.map +1 -0
- package/dist/src/storages/library/libraryPage.impl.d.ts +26 -0
- package/dist/src/storages/library/libraryPage.impl.d.ts.map +1 -0
- package/dist/src/storages/library/libraryPage.impl.js +29 -0
- package/dist/src/storages/library/libraryPage.impl.js.map +1 -0
- package/dist/src/storages/library/libraryPage.js +10 -0
- package/dist/src/storages/library/libraryPage.js.map +1 -0
- package/dist/src/storages/organizations/organization.d.ts +146 -0
- package/dist/src/storages/organizations/organization.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.d.ts +59 -0
- package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.js +372 -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 +77 -0
- package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts +45 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.js +242 -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/queryFlows/queryFlow.d.ts +13 -0
- package/dist/src/storages/queryFlows/queryFlow.d.ts.map +1 -0
- package/dist/src/storages/queryFlows/queryFlow.impl.d.ts +17 -0
- package/dist/src/storages/queryFlows/queryFlow.impl.d.ts.map +1 -0
- package/dist/src/storages/queryFlows/queryFlow.impl.js +65 -0
- package/dist/src/storages/queryFlows/queryFlow.impl.js.map +1 -0
- package/dist/src/storages/queryFlows/queryFlow.js +12 -0
- package/dist/src/storages/queryFlows/queryFlow.js.map +1 -0
- package/dist/src/storages/queryFlows/queryFlows.d.ts +21 -0
- package/dist/src/storages/queryFlows/queryFlows.d.ts.map +1 -0
- package/dist/src/storages/queryFlows/queryFlows.impl.d.ts +17 -0
- package/dist/src/storages/queryFlows/queryFlows.impl.d.ts.map +1 -0
- package/dist/src/storages/queryFlows/queryFlows.impl.js +112 -0
- package/dist/src/storages/queryFlows/queryFlows.impl.js.map +1 -0
- package/dist/src/storages/queryFlows/queryFlows.js +16 -0
- package/dist/src/storages/queryFlows/queryFlows.js.map +1 -0
- package/dist/src/storages/user/userProfile.d.ts +64 -0
- package/dist/src/storages/user/userProfile.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.d.ts +24 -0
- package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.js +129 -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 +50 -0
- package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts +25 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.js +133 -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 +153 -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 +44 -5
- package/src/commands/deleteUserFullCommandHandler.ts +19 -0
- package/src/commands/startCommandHandler.ts +22 -5
- package/src/context.ts +4 -2
- package/src/credentials.ts +46 -0
- package/src/dataIslandApp.ts +14 -2
- package/src/disposable.ts +18 -5
- package/src/dto/accessGroupResponse.ts +17 -16
- package/src/dto/acquiringResponse.ts +54 -0
- package/src/dto/apiKeyResponse.ts +29 -0
- package/src/dto/badRequestResponse.ts +6 -0
- package/src/dto/chatResponse.ts +78 -54
- package/src/dto/invitesResponse.ts +25 -0
- package/src/dto/libraryResponse.ts +51 -0
- package/src/dto/limitsResponse.ts +32 -0
- package/src/dto/queryFlowResponse.ts +28 -0
- package/src/dto/quizResponse.ts +12 -0
- package/src/dto/statisticsResponse.ts +12 -0
- package/src/dto/userInfoResponse.ts +65 -2
- package/src/dto/workspacesResponse.ts +55 -7
- package/src/index.ts +73 -16
- package/src/internal/app.impl.ts +63 -12
- package/src/internal/registry.ts +54 -6
- package/src/middleware.ts +2 -0
- package/src/services/acquiringService.ts +21 -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/librariesService.ts +22 -0
- package/src/services/middlewareService.ts +1 -0
- package/src/services/organizationService.ts +2 -2
- package/src/services/requestBuilder.ts +48 -8
- package/src/services/responseUtils.ts +12 -0
- package/src/services/rpcService.ts +1 -0
- package/src/services/userProfileService.ts +36 -4
- package/src/storages/acquirings/acquiring.impl.ts +132 -0
- package/src/storages/acquirings/acquiring.ts +54 -0
- package/src/storages/chats/answer.impl.ts +178 -0
- package/src/storages/chats/answer.ts +53 -0
- package/src/storages/chats/chat.impl.ts +135 -0
- package/src/storages/chats/chat.ts +66 -0
- package/src/storages/chats/chats.impl.ts +347 -0
- package/src/storages/chats/chats.ts +74 -0
- package/src/storages/files/file.impl.ts +126 -0
- package/src/storages/files/file.ts +78 -0
- package/src/storages/files/files.impl.ts +280 -0
- 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 +180 -0
- package/src/storages/groups/groups.ts +50 -0
- package/src/storages/library/folderId.ts +1 -0
- package/src/storages/library/libraries.impl.ts +209 -0
- package/src/storages/library/libraries.ts +56 -0
- package/src/storages/library/library.impl.ts +151 -0
- package/src/storages/library/library.ts +30 -0
- package/src/storages/library/libraryFolder.impl.ts +144 -0
- package/src/storages/library/libraryFolder.ts +23 -0
- package/src/storages/library/libraryId.ts +1 -0
- package/src/storages/library/libraryPage.impl.ts +39 -0
- package/src/storages/library/libraryPage.ts +56 -0
- package/src/storages/organizations/organization.impl.ts +568 -0
- package/src/storages/organizations/organization.ts +179 -0
- package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +161 -12
- package/src/storages/organizations/organizations.ts +93 -0
- package/src/storages/queryFlows/queryFlow.impl.ts +81 -0
- package/src/storages/queryFlows/queryFlow.ts +22 -0
- package/src/storages/queryFlows/queryFlows.impl.ts +154 -0
- package/src/storages/queryFlows/queryFlows.ts +31 -0
- package/src/storages/user/userProfile.impl.ts +157 -0
- package/src/storages/user/userProfile.ts +81 -0
- package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +72 -12
- package/src/storages/{workspace.ts → workspaces/workspace.ts} +16 -3
- package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +29 -32
- package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
- package/src/unitTest.ts +3 -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/docs.yml +0 -32
- package/.github/workflows/format.yml +0 -42
- package/.github/workflows/publish-npm.yml +0 -33
- package/.github/workflows/tests.yml +0 -34
- package/.github/workflows/version.yml +0 -40
- package/.prettierignore +0 -1
- package/.prettierrc +0 -11
- package/.yarnrc +0 -2
- package/babel.config.js +0 -6
- package/docs/.nojekyll +0 -1
- package/docs/classes/BasicCredential.md +0 -80
- package/docs/classes/BearerCredential.md +0 -72
- package/docs/classes/Chat.md +0 -69
- package/docs/classes/Chats.md +0 -90
- package/docs/classes/CredentialBase.md +0 -54
- package/docs/classes/DataIslandApp.md +0 -168
- package/docs/classes/DebugCredential.md +0 -72
- package/docs/classes/DefaultCredential.md +0 -56
- package/docs/classes/DisposableContainer.md +0 -177
- package/docs/classes/EventDispatcher.md +0 -109
- package/docs/classes/File.md +0 -79
- package/docs/classes/Files.md +0 -136
- package/docs/classes/FilesPage.md +0 -76
- package/docs/classes/Group.md +0 -191
- package/docs/classes/Groups.md +0 -130
- package/docs/classes/Lifetime.md +0 -108
- package/docs/classes/Organization.md +0 -89
- package/docs/classes/Organizations.md +0 -195
- package/docs/classes/UserProfile.md +0 -156
- package/docs/classes/Workspace.md +0 -165
- package/docs/classes/Workspaces.md +0 -189
- package/docs/enums/ChatAnswer.md +0 -22
- package/docs/enums/ChatsEvent.md +0 -22
- package/docs/enums/FilesEvent.md +0 -24
- package/docs/enums/GroupEvent.md +0 -29
- package/docs/enums/OrganizationsEvent.md +0 -31
- package/docs/enums/UserEvent.md +0 -15
- package/docs/enums/WorkspaceEvent.md +0 -17
- package/docs/enums/WorkspacesEvent.md +0 -24
- package/docs/interfaces/Disposable.md +0 -25
- package/docs/interfaces/Event.md +0 -58
- package/docs/interfaces/EventSubscriber.md +0 -41
- package/docs/interfaces/Input.md +0 -35
- package/docs/modules.md +0 -205
- package/jest.config.ts +0 -199
- package/jest.setup.ts +0 -2
- package/scripts/docs/index.js +0 -15
- 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/files.impl.ts +0 -213
- 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/organizations.ts +0 -56
- 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/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
@neuralinnovations/dataisland-sdk/[Exports](./docs/modules.md)
|
2
2
|
|
3
|
-

|
4
|
+

|
4
5
|
|
5
6
|
# DataIsland Client SDK
|
6
7
|
|
@@ -14,9 +15,11 @@ The DataIsland Client SDK is a TypeScript library designed to seamlessly integra
|
|
14
15
|
4. [Use chat](#use-chat)
|
15
16
|
5. [Use workspaces](#use-workspaces)
|
16
17
|
6. [Use files](#use-files)
|
17
|
-
7. [Use
|
18
|
-
8. [Use
|
19
|
-
9. [
|
18
|
+
7. [Use acquiring](#use-acquiring)
|
19
|
+
8. [Use access groups](#use-access-groups)
|
20
|
+
9. [Use statistics](#use-statistics)
|
21
|
+
10. [Use invites](#use-invites)
|
22
|
+
11. [References](docs/modules.md)
|
20
23
|
|
21
24
|
---
|
22
25
|
|
@@ -54,7 +57,7 @@ _It is immpossible to create more than one app sdk intance with same name._
|
|
54
57
|
|
55
58
|
**HOST** is a DataIsland API url which can be passed using environment file.
|
56
59
|
|
57
|
-
Second required parameter for builder is Credentials. It is recomended to use Bearer credentials instance and pass your user **TOKEN** in order to get access to API.
|
60
|
+
Second required parameter for builder is Credentials. It is recomended to use Bearer credentials instance and pass your user **TOKEN** in order to get access to API. Use Custom credentials for different authentication types.
|
58
61
|
|
59
62
|
You can also add requests middlewares with builder options.
|
60
63
|
|
@@ -96,6 +99,7 @@ const org = await app.organizations.create(
|
|
96
99
|
'your-organization-description'
|
97
100
|
)
|
98
101
|
```
|
102
|
+
|
99
103
|
1. [Organization](docs/classes/Organization.md) is a main object for user data management. It contains of users, workspaces and chats.
|
100
104
|
2. [Organizations](docs/classes/Organizations.md) is a collection of organizations.
|
101
105
|
|
@@ -103,7 +107,7 @@ const org = await app.organizations.create(
|
|
103
107
|
|
104
108
|
### Use workspaces
|
105
109
|
|
106
|
-
Workspaces are folder-like objects used to store files and controll access to it using acces groups. During creation you must pass organization Id, name and description of new workspace and regulation options. You can pass existing group ID or ask to create new group for this workspace in regulation section.
|
110
|
+
Workspaces are folder-like objects used to store files and controll access to it using acces groups. During creation you must pass organization Id, name and description of new workspace and regulation options. You can pass existing group ID or ask to create new group for this workspace in regulation section.
|
107
111
|
|
108
112
|
Default workspace creation example:
|
109
113
|
|
@@ -132,16 +136,214 @@ const workspace = await org.workspaces.create(
|
|
132
136
|
}
|
133
137
|
)
|
134
138
|
```
|
135
|
-
1. [Workspace](docs/classes/Workspace.md) is a main object for files management. It contains of files, chats and access groups.
|
136
139
|
|
140
|
+
You can get workspace total file count with:
|
141
|
+
|
142
|
+
```
|
143
|
+
const count = workspace.totalCount()
|
144
|
+
```
|
145
|
+
|
146
|
+
1. [Workspace](docs/classes/Workspace.md) is a main object for files management. It contains of files, chats and access groups.
|
137
147
|
2. [Worskpaces](docs/classes/Workspaces.md) is a collection of workspaces.
|
138
148
|
|
139
149
|
---
|
140
150
|
|
141
151
|
### Use files
|
142
152
|
|
153
|
+
Files are part of workspaces and can be managed through workspace interface. You can upload, preview and delete files. Upload and delete operations are working with list parameters ( files list for upload, file ids list for delete )
|
154
|
+
|
155
|
+
Default file upload example:
|
156
|
+
|
157
|
+
```
|
158
|
+
const file = await workspace.files.upload([file])
|
159
|
+
```
|
160
|
+
|
161
|
+
The file uploading process always takes some time, so you can track its uploading status using subscription for files UPDATED event. Status tracking starts with "status" property of file. It can be on various stages, including: None , WAITING_CONVERTING, CONVERTING, WAITING_PROCESSING, PROCESSING, ERROR and DONE. Remember to check file status before making a subscription, because it could be already DONE or ERROR. Also remember to always call "Query" method after files uploading. This method will be described below, and helps update pages and list info.
|
162
|
+
|
163
|
+
```
|
164
|
+
if (file.status > FileProcessingStage.PROCESSING) {
|
165
|
+
// Show results
|
166
|
+
} else {
|
167
|
+
file.subscribe((event) => {
|
168
|
+
// Change current view depends on file status changes, and unsibcsribe on DONE or ERROR
|
169
|
+
const status = event.data.status
|
170
|
+
})
|
171
|
+
}
|
172
|
+
```
|
173
|
+
|
174
|
+
You can get file simply using get method:
|
175
|
+
|
176
|
+
```
|
177
|
+
const file = await workspace.files.get(fileId)
|
178
|
+
```
|
179
|
+
|
180
|
+
File url's for preview or full view are available with url properties of file:
|
181
|
+
|
182
|
+
```
|
183
|
+
const url = file.url
|
184
|
+
const previewUrl = file.previewUrl
|
185
|
+
```
|
186
|
+
|
187
|
+
Delete file example:
|
188
|
+
|
189
|
+
```
|
190
|
+
await workspace.files.delete([file.id])
|
191
|
+
```
|
192
|
+
|
193
|
+
You can retrieve a list of files from a workspace using the "query" method. It involves several straightforward parameters: a search query for filtering files based on user input (if empty, no filter is applied), page number, and the number of files per page. The method returns an object containing the file list, selected page number, total page count, and other relevant information.
|
194
|
+
|
195
|
+
Here is an example:
|
196
|
+
|
197
|
+
```
|
198
|
+
const filesPage = await workspace.files.query(
|
199
|
+
"you-user-search-input",
|
200
|
+
0 - page number,
|
201
|
+
20 - files limit per page )
|
202
|
+
```
|
203
|
+
|
204
|
+
#### Events
|
205
|
+
|
206
|
+
You can subscribe to different file event in order to react for file status changes.
|
207
|
+
|
208
|
+
Available events:
|
209
|
+
|
210
|
+
* ADDED
|
211
|
+
* UPDATED
|
212
|
+
* REMOVED
|
213
|
+
|
214
|
+
Subscribe on event example:
|
215
|
+
|
216
|
+
```
|
217
|
+
workspace.files.subscribe((event) => { const file = event.data }, FilesEvent.ADDED)
|
218
|
+
```
|
219
|
+
|
220
|
+
---
|
221
|
+
|
143
222
|
### Use chat
|
144
223
|
|
224
|
+
Chat is object that stores one user-assistant chat with it's messages and other data. It can be easily created and deleted useing **chats** property of organization. Chat name is always generated by server. You also have to pass "model" during chat creation. Possible options are "search" and "chat". There is also additional parameter "clientContext", where you can pass additional info or instructions for the model.
|
225
|
+
|
226
|
+
```
|
227
|
+
const chat = await organization.chats.create("search", "My name is Gary")
|
228
|
+
|
229
|
+
await organization.chats.delete(your_chat_id)
|
230
|
+
```
|
231
|
+
|
232
|
+
You can access all chats list using **collection** property.
|
233
|
+
|
234
|
+
```
|
235
|
+
const chats = organization.chats.collection
|
236
|
+
```
|
237
|
+
|
238
|
+
Main chat functionality is answer handling. You can create and cancel answer in the chat. Answer is a data object which contains question, answer (tokens), and answer sources.
|
239
|
+
|
240
|
+
Here are some examples:
|
241
|
+
|
242
|
+
```
|
243
|
+
const answer = await chat.ask("Hello!", ChatAnswerType.SHORT)
|
244
|
+
|
245
|
+
await chat.getAnswer(answer.id).cancel()
|
246
|
+
```
|
247
|
+
|
248
|
+
Main statuses are RUNNING, SUCCESS, CANCELED, FAIL. You can use them to correctly draw answer in chat.
|
249
|
+
|
250
|
+
```
|
251
|
+
status = chat.getAnswer(answer.id).status
|
252
|
+
```
|
253
|
+
|
254
|
+
You can access answer for your question in "tokens" property, question is stored in "question' property.
|
255
|
+
|
256
|
+
```
|
257
|
+
const tokens = await chat.getAnswer(answer.id).tokens
|
258
|
+
const question = await chat.getAnswer(answer.id).question
|
259
|
+
```
|
260
|
+
|
261
|
+
Every step also includes Sources that were used during execution. Property "sources" contains all sources of all answer steps.
|
262
|
+
|
263
|
+
```
|
264
|
+
const sources = await chat.getAnswer(answer.id).sources
|
265
|
+
```
|
266
|
+
|
267
|
+
If you want to get chat history, you can access chat.collection property
|
268
|
+
|
269
|
+
```
|
270
|
+
const answers = chat.collection
|
271
|
+
```
|
272
|
+
|
273
|
+
#### Events
|
274
|
+
|
275
|
+
Chat object have a variety of events. You can track chat and answer creation and deletion. Answer also contains "update" event for updating answer view and stream answer tokens.
|
276
|
+
|
277
|
+
Chat events:
|
278
|
+
|
279
|
+
* ADDED
|
280
|
+
* REMOVED
|
281
|
+
|
282
|
+
Answer events:
|
283
|
+
|
284
|
+
* ADDED
|
285
|
+
* CANCELLED
|
286
|
+
* UPDATED
|
287
|
+
|
288
|
+
Event subscribe example:
|
289
|
+
|
290
|
+
```
|
291
|
+
chat.answer.subscribe((event) => { const answer = event.data }, AnswerEvent.UPDATED)
|
292
|
+
```
|
293
|
+
|
294
|
+
### Use acquiring
|
295
|
+
|
296
|
+
Users can buy subscriptions if they want to increase their limits. You can create an order for subscriptions passing key of selected plan. All available aubscription plans, as well as order creation and user active plan you can get in acquiring service.
|
297
|
+
|
298
|
+
```
|
299
|
+
const plans = app.acquiring.getPlans()
|
300
|
+
const subscription_request_data = app.acquiring.createOrder(selected_plan_key)
|
301
|
+
const userPlan = app.acquiring.getUserPlan()
|
302
|
+
```
|
303
|
+
|
145
304
|
### Use access groups
|
146
305
|
|
306
|
+
You can manage users access to workspaces and different features using access groups functionality. Group control methods are available in organization **groups** property. Also you can change workspaces available for group, change permits and control users.
|
307
|
+
|
308
|
+
```
|
309
|
+
const group = await organization.accessGroups.create(
|
310
|
+
"your_group_name",
|
311
|
+
permits: {
|
312
|
+
isAdmin: bool is user admin,
|
313
|
+
},
|
314
|
+
memberIds[] - array of group members ids,
|
315
|
+
)
|
316
|
+
|
317
|
+
await organization.accessGroups.delete(group.id)
|
318
|
+
```
|
319
|
+
|
320
|
+
### Use Statistics
|
321
|
+
|
322
|
+
Statistics access methods are stored in organization object. There are several methods for different statistics data, and all of them includes dateFrom and dateTo parameters. These parameters are numbers that represent current time in seconds ( UNIX Epoch) . Here are some examples:
|
323
|
+
|
324
|
+
```
|
325
|
+
const organizationStatistics = await org.statistics(dateFrom, dateTo)
|
326
|
+
const organizationMembersStatistics = await org.membersStatistics(dateFrom, dateTo)
|
327
|
+
const userStatistics = await org.userStatistic(userId, dateFrom, dateTo)
|
328
|
+
```
|
329
|
+
|
147
330
|
### Use Invites
|
331
|
+
|
332
|
+
You can invite users to organization with provided emails and selected access groups. Use invite users method of seleted organization.
|
333
|
+
|
334
|
+
```
|
335
|
+
await organization.inviteUsers(emails[], accessGroups[])
|
336
|
+
```
|
337
|
+
|
338
|
+
You can also use univarsal invite code, and then validate it to add user to group or organization.
|
339
|
+
|
340
|
+
```
|
341
|
+
await organization.createInviteCode(accessGroups[])
|
342
|
+
// Use app.organizations storage to validate invite codes
|
343
|
+
await organizations.validateInviteCode(inviteCode)
|
344
|
+
```
|
345
|
+
|
346
|
+
### Use library
|
347
|
+
|
348
|
+
Libraries implementation object contains methods for creating and deleting libraries, adding organization to library or remove it. If your oganization is added to library, you can make any workspace in it "shared" using workspace.share() method. Library is implemented as an objects tree, so Library is a root. You can get library content using library.query() method, like in workspaces. The difference is library pages contains not only files but also foldes. You can get next folder content also using libraryFolder.query method. Also chats with library and with library specific file is available in Chats.
|
349
|
+
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA"}
|
@@ -0,0 +1,103 @@
|
|
1
|
+
{
|
2
|
+
"name": "@neuralinnovations/dataisland-sdk",
|
3
|
+
"version": "0.0.1-dev80",
|
4
|
+
"description": "SDK for DataIsland project",
|
5
|
+
"licenses": [
|
6
|
+
{
|
7
|
+
"type": "Apache-2.0",
|
8
|
+
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
9
|
+
}
|
10
|
+
],
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "https://github.com/NeuralInnovations/dataisland-client-js-sdk.git"
|
14
|
+
},
|
15
|
+
"scripts": {
|
16
|
+
"build": "tsc",
|
17
|
+
"test": "jest",
|
18
|
+
"lint": "eslint --ext .ts,.tsx src test",
|
19
|
+
"lint:fix": "eslint --fix --ext .ts,.tsx src test",
|
20
|
+
"docs": "typedoc --disableSources --includeVersion --plugin typedoc-plugin-markdown --out docs src/index.ts && node scripts/docs/index.js",
|
21
|
+
"version-up-dev": "node scripts/version/up-dev.js && rm package-lock.json && npm install && npm run build && npm run lint:fix && npm run docs",
|
22
|
+
"release": "rm package-lock.json && npm install && npm run build && npm run lint:fix && npm run docs"
|
23
|
+
},
|
24
|
+
"publishConfig": {
|
25
|
+
"access": "public"
|
26
|
+
},
|
27
|
+
"exports": {
|
28
|
+
".": "./dist/index.js"
|
29
|
+
},
|
30
|
+
"main": "dist/index.js",
|
31
|
+
"types": "dist/index.d.ts",
|
32
|
+
"browser": "dist/index.js",
|
33
|
+
"directories": {
|
34
|
+
"test": "test"
|
35
|
+
},
|
36
|
+
"files": [
|
37
|
+
"dist",
|
38
|
+
"src",
|
39
|
+
"index.js",
|
40
|
+
"index.d.ts"
|
41
|
+
],
|
42
|
+
"engines": {
|
43
|
+
"node": ">=16"
|
44
|
+
},
|
45
|
+
"keywords": [
|
46
|
+
"dataisland",
|
47
|
+
"sdk",
|
48
|
+
"neuralinnovations",
|
49
|
+
"neural innovations",
|
50
|
+
"neural-innovations",
|
51
|
+
"neural"
|
52
|
+
],
|
53
|
+
"author": "Neural Innovations LTD",
|
54
|
+
"license": "Apache-2.0",
|
55
|
+
"bugs": {
|
56
|
+
"url": "https://github.com/NeuralInnovations/dataisland-client-js-sdk/issues"
|
57
|
+
},
|
58
|
+
"homepage": "https://github.com/NeuralInnovations/dataisland-client-js-sdk#readme",
|
59
|
+
"devDependencies": {
|
60
|
+
"@babel/core": "^7.22.11",
|
61
|
+
"@babel/plugin-transform-modules-commonjs": "7.22.11",
|
62
|
+
"@babel/preset-env": "^7.22.10",
|
63
|
+
"@babel/preset-typescript": "^7.23.3",
|
64
|
+
"@babel/register": "7.22.5",
|
65
|
+
"@jest/globals": "^29.7.0",
|
66
|
+
"@types/jest": "^29.5.11",
|
67
|
+
"@types/node": "^20.11.27",
|
68
|
+
"@types/node-fetch": "^2.6.11",
|
69
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
70
|
+
"@typescript-eslint/parser": "^6.19.0",
|
71
|
+
"babel-jest": "^29.7.0",
|
72
|
+
"babel-loader": "8.3.0",
|
73
|
+
"eslint": "^8.56.0",
|
74
|
+
"eslint-config-semistandard": "^17.0.0",
|
75
|
+
"eslint-config-standard": "^17.1.0",
|
76
|
+
"eslint-config-standard-with-typescript": "^43.0.0",
|
77
|
+
"eslint-config-xo": "^0.43.1",
|
78
|
+
"eslint-config-xo-typescript": "^1.0.1",
|
79
|
+
"eslint-plugin-import": "^2.29.1",
|
80
|
+
"eslint-plugin-n": "^15.7.0",
|
81
|
+
"eslint-plugin-promise": "^6.1.1",
|
82
|
+
"eslint-plugin-react": "^7.33.2",
|
83
|
+
"glob": "7.2.3",
|
84
|
+
"jest": "^29.7.0",
|
85
|
+
"jest-environment-jsdom": "^29.7.0",
|
86
|
+
"prettier": "2.8.7",
|
87
|
+
"ts-jest": "^29.1.1",
|
88
|
+
"ts-loader": "8.4.0",
|
89
|
+
"ts-node": "10.9.1",
|
90
|
+
"tslib": "^2.6.2",
|
91
|
+
"tslint": "6.1.3",
|
92
|
+
"typedoc": "^0.25.7",
|
93
|
+
"typedoc-plugin-markdown": "^3.17.1",
|
94
|
+
"typescript": "^5.3.3",
|
95
|
+
"watch": "^0.13.0",
|
96
|
+
"webpack": "5.76.0",
|
97
|
+
"yargs": "17.7.2"
|
98
|
+
},
|
99
|
+
"dependencies": {
|
100
|
+
"dotenv": "^16.3.2",
|
101
|
+
"jsdom": "^23.2.0"
|
102
|
+
}
|
103
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import type { Middleware } from "./middleware";
|
2
|
+
import type { CredentialBase } from "./credentials";
|
3
|
+
import type { Service, ServiceContext } from "./services/service";
|
4
|
+
import type { Constructor } from "./internal/registry";
|
5
|
+
import { CommandHandler, Command } from "./services/commandService";
|
6
|
+
import { Context } from "./context";
|
7
|
+
/**
|
8
|
+
* DataIsland App builder.
|
9
|
+
*/
|
10
|
+
export declare abstract class AppBuilder {
|
11
|
+
/**
|
12
|
+
* Set custom data.
|
13
|
+
*/
|
14
|
+
abstract get env(): Record<string, any>;
|
15
|
+
/**
|
16
|
+
* Add a middleware to the app.
|
17
|
+
*/
|
18
|
+
abstract registerMiddleware(middleware: Middleware): AppBuilder;
|
19
|
+
/**
|
20
|
+
* Host of the app.
|
21
|
+
*/
|
22
|
+
abstract useHost(host: string): AppBuilder;
|
23
|
+
/**
|
24
|
+
* GDPR compliant
|
25
|
+
*/
|
26
|
+
abstract useAutomaticDataCollectionEnabled(value: boolean): AppBuilder;
|
27
|
+
/**
|
28
|
+
* Credential of the app.
|
29
|
+
*/
|
30
|
+
abstract useCredential(credential: CredentialBase): AppBuilder;
|
31
|
+
/**
|
32
|
+
* Register a service to the app.
|
33
|
+
* @param type
|
34
|
+
* @param factory
|
35
|
+
*/
|
36
|
+
abstract registerService<T extends Service>(type: Constructor<T>, factory: (context: ServiceContext) => T): AppBuilder;
|
37
|
+
/**
|
38
|
+
* Register a command to the app.
|
39
|
+
* @param messageType
|
40
|
+
* @param commandFactory
|
41
|
+
*/
|
42
|
+
abstract registerCommand<T extends Command>(messageType: Constructor<T>, commandFactory: ((context: Context) => CommandHandler<T>) | ((context: Context) => (context: Context) => Promise<void>)): AppBuilder;
|
43
|
+
}
|
44
|
+
//# sourceMappingURL=appBuilder.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"appBuilder.d.ts","sourceRoot":"","sources":["../../src/appBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,8BAAsB,UAAU;IAC9B;;OAEG;IACH,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEvC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAE/D;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAE1C;;OAEG;IACH,QAAQ,CAAC,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IAEtE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU;IAE9D;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EACxC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,CAAC,GACtC,UAAU;IAEb;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EACxC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,cAAc,EACV,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,GACzC,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAC9D,UAAU;CACd"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"appBuilder.js","sourceRoot":"","sources":["../../src/appBuilder.ts"],"names":[],"mappings":";;;AAOA;;GAEG;AACH,MAAsB,UAAU;CA+C/B;AA/CD,gCA+CC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Command, CommandHandler } from "../services/commandService";
|
2
|
+
export declare class DeleteUserFullCommand extends Command {
|
3
|
+
}
|
4
|
+
export declare class DeleteUserFullCommandHandler extends CommandHandler<DeleteUserFullCommand> {
|
5
|
+
execute(message: DeleteUserFullCommand): Promise<void>;
|
6
|
+
}
|
7
|
+
//# sourceMappingURL=deleteUserFullCommandHandler.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"deleteUserFullCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/commands/deleteUserFullCommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAIpE,qBAAa,qBAAsB,SAAQ,OAAO;CAEjD;AAED,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IAE/E,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ7D"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DeleteUserFullCommandHandler = exports.DeleteUserFullCommand = void 0;
|
4
|
+
const commandService_1 = require("../services/commandService");
|
5
|
+
const rpcService_1 = require("../services/rpcService");
|
6
|
+
const responseUtils_1 = require("../services/responseUtils");
|
7
|
+
class DeleteUserFullCommand extends commandService_1.Command {
|
8
|
+
}
|
9
|
+
exports.DeleteUserFullCommand = DeleteUserFullCommand;
|
10
|
+
class DeleteUserFullCommandHandler extends commandService_1.CommandHandler {
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
12
|
+
async execute(message) {
|
13
|
+
var _a;
|
14
|
+
const response = await ((_a = this.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("/api/v1/Users/self/full").sendDelete());
|
15
|
+
if (responseUtils_1.ResponseUtils.isFail(response)) {
|
16
|
+
await responseUtils_1.ResponseUtils.throwError("Failed to delete user", response);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
exports.DeleteUserFullCommandHandler = DeleteUserFullCommandHandler;
|
21
|
+
//# sourceMappingURL=deleteUserFullCommandHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"deleteUserFullCommandHandler.js","sourceRoot":"","sources":["../../../src/commands/deleteUserFullCommandHandler.ts"],"names":[],"mappings":";;;AAAA,+DAAoE;AACpE,uDAAmD;AACnD,6DAAyD;AAEzD,MAAa,qBAAsB,SAAQ,wBAAO;CAEjD;AAFD,sDAEC;AAED,MAAa,4BAA6B,SAAQ,+BAAqC;IACrF,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,OAA8B;;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,uBAAU,CAAC,0CAAE,cAAc,CAAC,yBAAyB,EACtF,UAAU,EAAE,CAAA,CAAA;QAEf,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;CACF;AAVD,oEAUC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { CommandHandler, Command } from "../services/commandService";
|
2
|
+
export declare class StartCommand extends Command {
|
3
|
+
}
|
4
|
+
export declare class StartCommandHandler extends CommandHandler<StartCommand> {
|
5
|
+
execute(message: StartCommand): Promise<void>;
|
6
|
+
}
|
7
|
+
//# sourceMappingURL=startCommandHandler.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"startCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/commands/startCommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAOpE,qBAAa,YAAa,SAAQ,OAAO;CACxC;AAED,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,YAAY,CAAC;IAE7D,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBpD"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.StartCommandHandler = exports.StartCommand = void 0;
|
4
|
+
const commandService_1 = require("../services/commandService");
|
5
|
+
const userProfileService_1 = require("../services/userProfileService");
|
6
|
+
const cookieService_1 = require("../services/cookieService");
|
7
|
+
const credentials_1 = require("../credentials");
|
8
|
+
const acquiringService_1 = require("../services/acquiringService");
|
9
|
+
const librariesService_1 = require("../services/librariesService");
|
10
|
+
class StartCommand extends commandService_1.Command {
|
11
|
+
}
|
12
|
+
exports.StartCommand = StartCommand;
|
13
|
+
class StartCommandHandler extends commandService_1.CommandHandler {
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
15
|
+
async execute(message) {
|
16
|
+
const userService = this.resolve(userProfileService_1.UserProfileService);
|
17
|
+
const acquiringService = this.resolve(acquiringService_1.AcquiringService);
|
18
|
+
const librariesService = this.resolve(librariesService_1.LibrariesService);
|
19
|
+
// Merge anonymous user if needed
|
20
|
+
if (!(this.context.app.credential instanceof credentials_1.AnonymousCredential)) {
|
21
|
+
const cookie = this.resolve(cookieService_1.CookieService);
|
22
|
+
if (cookie.anonymousTokenIsValid) {
|
23
|
+
await userService.merge(cookie.anonymousToken);
|
24
|
+
cookie.anonymousToken = undefined;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
await userService.fetch();
|
28
|
+
await acquiringService.initialize();
|
29
|
+
await librariesService.initialize();
|
30
|
+
}
|
31
|
+
}
|
32
|
+
exports.StartCommandHandler = StartCommandHandler;
|
33
|
+
//# sourceMappingURL=startCommandHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"startCommandHandler.js","sourceRoot":"","sources":["../../../src/commands/startCommandHandler.ts"],"names":[],"mappings":";;;AAAA,+DAAoE;AACpE,uEAAmE;AACnE,6DAAyD;AACzD,gDAAoD;AACpD,mEAA+D;AAC/D,mEAA6D;AAE7D,MAAa,YAAa,SAAQ,wBAAO;CACxC;AADD,oCACC;AAED,MAAa,mBAAoB,SAAQ,+BAA4B;IACnE,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,OAAqB;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,uCAAkB,CAAE,CAAA;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAgB,CAAE,CAAA;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAgB,CAAE,CAAA;QAExD,iCAAiC;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,YAAY,iCAAmB,CAAC,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,6BAAa,CAAE,CAAA;YAC3C,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,cAAe,CAAC,CAAA;gBAC/C,MAAM,CAAC,cAAc,GAAG,SAAS,CAAA;YACnC,CAAC;QACH,CAAC;QAED,MAAM,WAAW,CAAC,KAAK,EAAE,CAAA;QACzB,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAA;QACnC,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAA;IACrC,CAAC;CACF;AApBD,kDAoBC"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { type Constructor, type Registry } from "./internal/registry";
|
2
|
+
import { type Lifetime } from "./disposable";
|
3
|
+
import { Command } from "./services/commandService";
|
4
|
+
import { DataIslandApp } from "./dataIslandApp";
|
5
|
+
/**
|
6
|
+
* DataIsland App context.
|
7
|
+
*/
|
8
|
+
export declare class Context {
|
9
|
+
private readonly registry;
|
10
|
+
readonly lifetime: Lifetime;
|
11
|
+
readonly app: DataIslandApp;
|
12
|
+
constructor(registry: Registry, lifetime: Lifetime, app: DataIslandApp);
|
13
|
+
/**
|
14
|
+
* Resolve a service from the context.
|
15
|
+
* @param type of the service
|
16
|
+
*/
|
17
|
+
resolve<T>(type: Constructor<T>): T | undefined;
|
18
|
+
/**
|
19
|
+
* Execute a command.
|
20
|
+
* @param command to execute
|
21
|
+
*/
|
22
|
+
execute<T extends Command>(command: T): Promise<void>;
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAkB,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;GAEG;AACH,qBAAa,OAAO;IAEhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,QAAQ,EAAE,QAAQ;aAClB,GAAG,EAAE,aAAa;gBAFjB,QAAQ,EAAE,QAAQ,EACnB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,aAAa;IAIpC;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAI/C;;;OAGG;IACG,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5D"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Context = void 0;
|
4
|
+
const commandService_1 = require("./services/commandService");
|
5
|
+
/**
|
6
|
+
* DataIsland App context.
|
7
|
+
*/
|
8
|
+
class Context {
|
9
|
+
constructor(registry, lifetime, app) {
|
10
|
+
this.registry = registry;
|
11
|
+
this.lifetime = lifetime;
|
12
|
+
this.app = app;
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Resolve a service from the context.
|
16
|
+
* @param type of the service
|
17
|
+
*/
|
18
|
+
resolve(type) {
|
19
|
+
return this.registry.get(type);
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* Execute a command.
|
23
|
+
* @param command to execute
|
24
|
+
*/
|
25
|
+
async execute(command) {
|
26
|
+
const service = this.resolve(commandService_1.CommandService);
|
27
|
+
await service.execute(command);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
exports.Context = Context;
|
31
|
+
//# sourceMappingURL=context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AAEA,8DAAmE;AAGnE;;GAEG;AACH,MAAa,OAAO;IAClB,YACmB,QAAkB,EACnB,QAAkB,EAClB,GAAkB;QAFjB,aAAQ,GAAR,QAAQ,CAAU;QACnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,QAAG,GAAH,GAAG,CAAe;IAEpC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAI,IAAoB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAoB,OAAU;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,+BAAc,CAAmB,CAAA;QAC9D,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;CACF;AAxBD,0BAwBC"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { type Lifetime } from "./disposable";
|
2
|
+
import { type Context } from "./context";
|
3
|
+
/**
|
4
|
+
* DataIsland App credential.
|
5
|
+
*/
|
6
|
+
export declare abstract class CredentialBase {
|
7
|
+
abstract onRegister(lifetime: Lifetime, context: Context): void;
|
8
|
+
}
|
9
|
+
export declare class DefaultCredential extends CredentialBase {
|
10
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
11
|
+
}
|
12
|
+
export declare class BasicCredential extends CredentialBase {
|
13
|
+
readonly email: string;
|
14
|
+
readonly password: string;
|
15
|
+
constructor(email: string, password: string);
|
16
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
17
|
+
}
|
18
|
+
export declare class DebugCredential extends CredentialBase {
|
19
|
+
readonly token: string;
|
20
|
+
constructor(token: string);
|
21
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
22
|
+
}
|
23
|
+
export declare class BearerCredential extends CredentialBase {
|
24
|
+
readonly token: string;
|
25
|
+
constructor(token: string);
|
26
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
27
|
+
}
|
28
|
+
export declare class AnonymousCredential extends CredentialBase {
|
29
|
+
readonly token: string;
|
30
|
+
constructor(token: string);
|
31
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
32
|
+
}
|
33
|
+
export declare class CustomCredential extends CredentialBase {
|
34
|
+
readonly schema: string;
|
35
|
+
readonly token: string;
|
36
|
+
constructor(schema: string, token: string);
|
37
|
+
onRegister(lifetime: Lifetime, context: Context): void;
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=credentials.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/credentials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC;;GAEG;AACH,8BAAsB,cAAc;IAClC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAChE;AAED,qBAAa,iBAAkB,SAAQ,cAAc;IAEnD,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAGvD;AAED,qBAAa,eAAgB,SAAQ,cAAc;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEb,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM3C,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAYvD;AAED,qBAAa,eAAgB,SAAQ,cAAc;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;IAKzB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAYvD;AAED,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;IAKzB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAYvD;AAED,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;IAKzB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAYvD;AAED,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMzC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAYvD"}
|