@neuralinnovations/dataisland-sdk 0.0.1-dev1 → 0.0.1-dev11
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 +174 -1
- 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 +98 -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/startCommandHandler.d.ts +7 -0
- package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
- package/dist/src/commands/startCommandHandler.js +17 -0
- package/dist/src/commands/startCommandHandler.js.map +1 -0
- package/dist/src/context.d.ts +23 -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 +28 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +70 -0
- package/dist/src/credentials.js.map +1 -0
- package/dist/src/dataIslandApp.d.ts +50 -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 +140 -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/chatResponse.d.ts +78 -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/userInfoResponse.d.ts +40 -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 +43 -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 +56 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +89 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/app.impl.d.ts +28 -0
- package/dist/src/internal/app.impl.d.ts.map +1 -0
- package/dist/src/internal/app.impl.js +151 -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 +22 -0
- package/dist/src/internal/registry.d.ts.map +1 -0
- package/dist/src/internal/registry.js +69 -0
- package/dist/src/internal/registry.js.map +1 -0
- package/dist/src/middleware.d.ts +5 -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/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/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/middlewareService.d.ts +9 -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 +104 -0
- package/dist/src/services/requestBuilder.js.map +1 -0
- package/dist/src/services/responseUtils.d.ts +6 -0
- package/dist/src/services/responseUtils.d.ts.map +1 -0
- package/dist/src/services/responseUtils.js +32 -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 +8 -0
- package/dist/src/services/userProfileService.d.ts.map +1 -0
- package/dist/src/services/userProfileService.js +32 -0
- package/dist/src/services/userProfileService.js.map +1 -0
- package/dist/src/storages/chats/answer.d.ts +30 -0
- package/dist/src/storages/chats/answer.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.d.ts +23 -0
- package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.js +110 -0
- package/dist/src/storages/chats/answer.impl.js.map +1 -0
- package/dist/src/storages/chats/answer.js +7 -0
- package/dist/src/storages/chats/answer.js.map +1 -0
- package/dist/src/storages/chats/chat.d.ts +30 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.d.ts +22 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.js +67 -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 +40 -0
- package/dist/src/storages/chats/chats.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.d.ts +18 -0
- package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.js +102 -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 +24 -0
- package/dist/src/storages/files/file.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.d.ts +18 -0
- package/dist/src/storages/files/file.impl.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.js +52 -0
- package/dist/src/storages/files/file.impl.js.map +1 -0
- package/dist/src/storages/files/file.js +10 -0
- package/dist/src/storages/files/file.js.map +1 -0
- package/dist/src/storages/files/files.d.ts +33 -0
- package/dist/src/storages/files/files.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.d.ts +33 -0
- package/dist/src/storages/files/files.impl.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.js +159 -0
- package/dist/src/storages/files/files.impl.js.map +1 -0
- package/dist/src/storages/files/files.js +19 -0
- package/dist/src/storages/files/files.js.map +1 -0
- package/dist/src/storages/files/filesPage.d.ts +23 -0
- package/dist/src/storages/files/filesPage.d.ts.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/groups.d.ts +87 -0
- package/dist/src/storages/groups/groups.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.d.ts +55 -0
- package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.js +245 -0
- package/dist/src/storages/groups/groups.impl.js.map +1 -0
- package/dist/src/storages/groups/groups.js +26 -0
- package/dist/src/storages/groups/groups.js.map +1 -0
- package/dist/src/storages/organizations/organization.d.ts +38 -0
- package/dist/src/storages/organizations/organization.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.d.ts +30 -0
- package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.js +71 -0
- package/dist/src/storages/organizations/organization.impl.js.map +1 -0
- package/dist/src/storages/organizations/organization.js +10 -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 +151 -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 +32 -0
- package/dist/src/storages/user/userProfile.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.d.ts +13 -0
- package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.js +51 -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 +40 -0
- package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts +22 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.js +87 -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 +157 -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/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +41 -3
- package/src/appBuilder.ts +24 -5
- package/src/commands/startCommandHandler.ts +14 -0
- package/src/context.ts +32 -0
- package/src/credentials.ts +31 -9
- package/src/dataIslandApp.ts +59 -0
- package/src/disposable.ts +4 -5
- package/src/dto/accessGroupResponse.ts +35 -0
- package/src/dto/chatResponse.ts +103 -0
- package/src/dto/userInfoResponse.ts +47 -0
- package/src/dto/workspacesResponse.ts +49 -0
- package/src/events.ts +13 -17
- package/src/index.ts +44 -18
- package/src/internal/app.impl.ts +97 -32
- package/src/internal/appBuilder.impl.ts +39 -12
- package/src/internal/createApp.impl.ts +5 -5
- package/src/middleware.ts +1 -1
- package/src/services/commandService.ts +44 -0
- package/src/services/credentialService.ts +3 -3
- package/src/services/middlewareService.ts +8 -6
- package/src/services/organizationService.ts +28 -0
- package/src/services/requestBuilder.ts +127 -0
- package/src/services/responseUtils.ts +32 -0
- package/src/services/rpcService.ts +129 -52
- package/src/services/service.ts +10 -8
- package/src/services/userProfileService.ts +38 -0
- package/src/storages/chats/answer.impl.ts +163 -0
- package/src/storages/chats/answer.ts +42 -0
- package/src/storages/chats/chat.impl.ts +87 -0
- package/src/storages/chats/chat.ts +38 -0
- package/src/storages/chats/chats.impl.ts +142 -0
- package/src/storages/chats/chats.ts +47 -0
- package/src/storages/files/file.impl.ts +69 -0
- package/src/storages/files/file.ts +28 -0
- package/src/storages/files/files.impl.ts +213 -0
- package/src/storages/files/files.ts +38 -0
- package/src/storages/files/filesPage.ts +27 -0
- package/src/storages/groups/groups.impl.ts +326 -0
- package/src/storages/groups/groups.ts +101 -0
- package/src/storages/organizations/organization.impl.ts +95 -0
- package/src/storages/organizations/organization.ts +44 -0
- package/src/storages/organizations/organizations.impl.ts +197 -0
- package/src/storages/organizations/organizations.ts +56 -0
- package/src/storages/user/userProfile.impl.ts +56 -0
- package/src/storages/user/userProfile.ts +42 -0
- package/src/storages/workspaces/workspace.impl.ts +109 -0
- package/src/storages/workspaces/workspace.ts +49 -0
- package/src/storages/workspaces/workspaces.impl.ts +212 -0
- package/src/storages/workspaces/workspaces.ts +53 -0
- package/src/unitTest.ts +53 -0
- package/.browserslistrc +0 -5
- package/.editorconfig +0 -22
- 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/src/appSdk.ts +0 -40
- package/src/internal/context.ts +0 -13
- package/src/types.ts +0 -110
- package/test/disposable.test.ts +0 -39
- package/test/events.test.ts +0 -151
- package/test/index.test.ts +0 -83
- package/test/registry.test.ts +0 -44
- package/tsconfig.json +0 -31
@@ -0,0 +1,157 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.WorkspacesImpl = void 0;
|
4
|
+
const workspaces_1 = require("./workspaces");
|
5
|
+
const workspace_impl_1 = require("./workspace.impl");
|
6
|
+
const rpcService_1 = require("../../services/rpcService");
|
7
|
+
const responseUtils_1 = require("../../services/responseUtils");
|
8
|
+
class WorkspacesImpl extends workspaces_1.Workspaces {
|
9
|
+
constructor(organization, context) {
|
10
|
+
super();
|
11
|
+
this.organization = organization;
|
12
|
+
this.context = context;
|
13
|
+
this._workspaces = [];
|
14
|
+
}
|
15
|
+
get collection() {
|
16
|
+
return this._workspaces;
|
17
|
+
}
|
18
|
+
get(id) {
|
19
|
+
return this.tryGet(id);
|
20
|
+
}
|
21
|
+
tryGet(id) {
|
22
|
+
return this._workspaces.find(workspace => workspace.id === id);
|
23
|
+
}
|
24
|
+
contains(id) {
|
25
|
+
return this._workspaces.find(workspace => workspace.id === id) !== undefined;
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Create workspace.
|
29
|
+
* @param name
|
30
|
+
* @param description
|
31
|
+
* @param regulation
|
32
|
+
*/
|
33
|
+
async create(name, description, regulation) {
|
34
|
+
var _a, _b, _c, _d;
|
35
|
+
if (name === undefined || name === null || name.trim() === "") {
|
36
|
+
throw new Error("Name is required, must be not empty");
|
37
|
+
}
|
38
|
+
if (description === undefined ||
|
39
|
+
description === null ||
|
40
|
+
description.trim() === "") {
|
41
|
+
throw new Error("Description is required, must be not empty");
|
42
|
+
}
|
43
|
+
if (regulation) {
|
44
|
+
if (regulation.isCreateNewGroup === undefined ||
|
45
|
+
regulation.isCreateNewGroup === null) {
|
46
|
+
throw new Error("isCreateNewGroup is required, must be not empty");
|
47
|
+
}
|
48
|
+
if (regulation.newGroupName === undefined ||
|
49
|
+
regulation.newGroupName === null ||
|
50
|
+
regulation.newGroupName.trim() === "") {
|
51
|
+
throw new Error("newGroupName is required, must be not empty");
|
52
|
+
}
|
53
|
+
if (regulation.groupIds === undefined ||
|
54
|
+
regulation.groupIds === null ||
|
55
|
+
regulation.groupIds.length === 0) {
|
56
|
+
throw new Error("groupIds is required, must be not empty");
|
57
|
+
}
|
58
|
+
}
|
59
|
+
// send create request to the server
|
60
|
+
const response = await ((_a = this.context
|
61
|
+
.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Workspaces").sendPostJson({
|
62
|
+
organizationId: this.organization.id,
|
63
|
+
profile: {
|
64
|
+
name: name,
|
65
|
+
description: description
|
66
|
+
},
|
67
|
+
regulation: {
|
68
|
+
isCreateNewGroup: (_b = regulation === null || regulation === void 0 ? void 0 : regulation.isCreateNewGroup) !== null && _b !== void 0 ? _b : false,
|
69
|
+
newGroupName: (_c = regulation === null || regulation === void 0 ? void 0 : regulation.newGroupName) !== null && _c !== void 0 ? _c : "",
|
70
|
+
groupIds: (_d = regulation === null || regulation === void 0 ? void 0 : regulation.groupIds) !== null && _d !== void 0 ? _d : []
|
71
|
+
}
|
72
|
+
}));
|
73
|
+
// check response status
|
74
|
+
if (responseUtils_1.ResponseUtils.isFail(response)) {
|
75
|
+
await responseUtils_1.ResponseUtils.throwError(`Failed to create workspace, in organization: ${this.organization.id}`, response);
|
76
|
+
}
|
77
|
+
// parse workspace from the server's response
|
78
|
+
const content = (await response.json()).workspace;
|
79
|
+
// create workspace implementation
|
80
|
+
const workspace = new workspace_impl_1.WorkspaceImpl(this.organization, this.context);
|
81
|
+
await workspace.initFrom(content);
|
82
|
+
// add workspace to the collection
|
83
|
+
this._workspaces.push(workspace);
|
84
|
+
// dispatch event
|
85
|
+
this.dispatch({
|
86
|
+
type: workspaces_1.WorkspacesEvent.ADDED,
|
87
|
+
data: workspace
|
88
|
+
});
|
89
|
+
return workspace;
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Delete workspace.
|
93
|
+
* @param id
|
94
|
+
*/
|
95
|
+
async delete(id) {
|
96
|
+
var _a;
|
97
|
+
// get workspace by id
|
98
|
+
const workspace = this.tryGet(id);
|
99
|
+
// check if workspace is found
|
100
|
+
if (!workspace) {
|
101
|
+
throw new Error(`Workspace ${id} is not found`);
|
102
|
+
}
|
103
|
+
// check if workspace is already marked as deleted
|
104
|
+
if (workspace.isMarkAsDeleted) {
|
105
|
+
throw new Error(`Workspace ${id} is already marked as deleted, in organization: ${this.organization.id}`);
|
106
|
+
}
|
107
|
+
// mark workspace as deleted
|
108
|
+
workspace.markToDelete();
|
109
|
+
// send delete request to the server
|
110
|
+
const response = await ((_a = this.context
|
111
|
+
.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Workspaces").searchParam("id", id).sendDelete());
|
112
|
+
// check response status
|
113
|
+
if (responseUtils_1.ResponseUtils.isFail(response)) {
|
114
|
+
await responseUtils_1.ResponseUtils.throwError(`Failed to delete workspace: ${workspace.organization.name}/${workspace.name}:${id}, in organization: ${this.organization.id}`, response);
|
115
|
+
}
|
116
|
+
// remove workspace from the collection
|
117
|
+
const index = this._workspaces.indexOf(workspace);
|
118
|
+
if (index < 0) {
|
119
|
+
throw new Error(`Workspace ${id} is not found`);
|
120
|
+
}
|
121
|
+
this._workspaces.splice(index, 1);
|
122
|
+
// dispatch event
|
123
|
+
this.dispatch({
|
124
|
+
type: workspaces_1.WorkspacesEvent.REMOVED,
|
125
|
+
data: workspace
|
126
|
+
});
|
127
|
+
}
|
128
|
+
async initFrom(organizationId) {
|
129
|
+
var _a;
|
130
|
+
// init workspaces from the server's response
|
131
|
+
const response = await ((_a = this.context
|
132
|
+
.resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Organizations").searchParam("id", organizationId).sendGet());
|
133
|
+
// check response status
|
134
|
+
if (responseUtils_1.ResponseUtils.isFail(response)) {
|
135
|
+
await responseUtils_1.ResponseUtils.throwError(`Failed to fetch workspaces in organization: ${organizationId}`, response);
|
136
|
+
}
|
137
|
+
// parse workspaces from the server's response
|
138
|
+
const workspaces = (await response.json())
|
139
|
+
.workspaces;
|
140
|
+
// init workspaces from the server's response
|
141
|
+
for (const workspace of workspaces) {
|
142
|
+
// create workspace implementation
|
143
|
+
const workspaceImpl = new workspace_impl_1.WorkspaceImpl(this.organization, this.context);
|
144
|
+
// init workspace from the server's response
|
145
|
+
await workspaceImpl.initFrom(workspace);
|
146
|
+
// add workspace to the collection
|
147
|
+
this._workspaces.push(workspaceImpl);
|
148
|
+
// dispatch event
|
149
|
+
this.dispatch({
|
150
|
+
type: workspaces_1.WorkspacesEvent.ADDED,
|
151
|
+
data: workspaceImpl
|
152
|
+
});
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
exports.WorkspacesImpl = WorkspacesImpl;
|
157
|
+
//# sourceMappingURL=workspaces.impl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"workspaces.impl.js","sourceRoot":"","sources":["../../../../src/storages/workspaces/workspaces.impl.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Workspaces = exports.WorkspacesEvent = void 0;
|
4
|
+
const events_1 = require("../../events");
|
5
|
+
/**
|
6
|
+
* Workspaces event.
|
7
|
+
*/
|
8
|
+
var WorkspacesEvent;
|
9
|
+
(function (WorkspacesEvent) {
|
10
|
+
WorkspacesEvent["ADDED"] = "added";
|
11
|
+
WorkspacesEvent["REMOVED"] = "removed";
|
12
|
+
})(WorkspacesEvent || (exports.WorkspacesEvent = WorkspacesEvent = {}));
|
13
|
+
/**
|
14
|
+
* Organization's workspaces.
|
15
|
+
*/
|
16
|
+
class Workspaces extends events_1.EventDispatcher {
|
17
|
+
}
|
18
|
+
exports.Workspaces = Workspaces;
|
19
|
+
//# sourceMappingURL=workspaces.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/storages/workspaces/workspaces.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAK9C;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED;;GAEG;AACH,MAAsB,UAAW,SAAQ,wBAGxC;CAiCA;AApCD,gCAoCC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export declare enum UnitTest {
|
2
|
+
DO_NOTHING = 0,
|
3
|
+
DO_NOT_START = 1,
|
4
|
+
DO_NOT_PRINT_INITIALIZED_LOG = 2,
|
5
|
+
DEFAULT = 3
|
6
|
+
}
|
7
|
+
export type UnitTestProfileSyncAction = () => void;
|
8
|
+
export type UnitTestProfileAsyncAction = () => Promise<void>;
|
9
|
+
export declare const appTest: (unitTest: UnitTest | undefined, func: UnitTestProfileSyncAction | UnitTestProfileAsyncAction) => Promise<void>;
|
10
|
+
export declare const appTestCurrent: () => UnitTest;
|
11
|
+
export declare const isUnitTest: (mask: UnitTest) => boolean;
|
12
|
+
//# sourceMappingURL=unitTest.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unitTest.d.ts","sourceRoot":"","sources":["../../src/unitTest.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,UAAU,IAAI;IACd,YAAY,IAAS;IACrB,4BAA4B,IAAS;IAErC,OAAO,IAA8C;CACtD;AAED,MAAM,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAA;AAClD,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AA8B5D,eAAO,MAAM,OAAO,yCAEZ,yBAAyB,GAAG,0BAA0B,KAC3D,QAAQ,IAAI,CAEd,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,QAEjC,CAAA;AAED,eAAO,MAAM,UAAU,SAAU,QAAQ,KAAG,OAE3C,CAAA"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isUnitTest = exports.appTestCurrent = exports.appTest = exports.UnitTest = void 0;
|
4
|
+
var UnitTest;
|
5
|
+
(function (UnitTest) {
|
6
|
+
UnitTest[UnitTest["DO_NOTHING"] = 0] = "DO_NOTHING";
|
7
|
+
UnitTest[UnitTest["DO_NOT_START"] = 1] = "DO_NOT_START";
|
8
|
+
UnitTest[UnitTest["DO_NOT_PRINT_INITIALIZED_LOG"] = 2] = "DO_NOT_PRINT_INITIALIZED_LOG";
|
9
|
+
UnitTest[UnitTest["DEFAULT"] = 3] = "DEFAULT";
|
10
|
+
})(UnitTest || (exports.UnitTest = UnitTest = {}));
|
11
|
+
class AppSdkUnitTest {
|
12
|
+
static get current() {
|
13
|
+
return this._stack[this._stack.length - 1];
|
14
|
+
}
|
15
|
+
static async test(unitTest = UnitTest.DEFAULT, func) {
|
16
|
+
this._stack.push(unitTest);
|
17
|
+
if (func) {
|
18
|
+
const result = func();
|
19
|
+
if (result) {
|
20
|
+
await result;
|
21
|
+
}
|
22
|
+
AppSdkUnitTest.end();
|
23
|
+
}
|
24
|
+
}
|
25
|
+
static end() {
|
26
|
+
if (this._stack.length > 1) {
|
27
|
+
this._stack.pop();
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
AppSdkUnitTest._stack = [UnitTest.DO_NOTHING];
|
32
|
+
const appTest = async (unitTest = UnitTest.DEFAULT, func) => {
|
33
|
+
await AppSdkUnitTest.test(unitTest, func);
|
34
|
+
};
|
35
|
+
exports.appTest = appTest;
|
36
|
+
const appTestCurrent = () => {
|
37
|
+
return AppSdkUnitTest.current;
|
38
|
+
};
|
39
|
+
exports.appTestCurrent = appTestCurrent;
|
40
|
+
const isUnitTest = (mask) => {
|
41
|
+
return (AppSdkUnitTest.current & mask) == mask;
|
42
|
+
};
|
43
|
+
exports.isUnitTest = isUnitTest;
|
44
|
+
//# sourceMappingURL=unitTest.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unitTest.js","sourceRoot":"","sources":["../../src/unitTest.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,mDAAc,CAAA;IACd,uDAAqB,CAAA;IACrB,uFAAqC,CAAA;IAErC,6CAAqD,CAAA;AACvD,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAKD,MAAM,cAAc;IAGX,MAAM,KAAK,OAAO;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,WAAqB,QAAQ,CAAC,OAAO,EACrC,IAA4D;QAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,IAAI,EAAE,CAAA;YACrB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAA;YACd,CAAC;YACD,cAAc,CAAC,GAAG,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,GAAG;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;;AAxBc,qBAAM,GAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AA2BpD,MAAM,OAAO,GAAG,KAAK,EAC1B,WAAqB,QAAQ,CAAC,OAAO,EACrC,IAA4D,EAC7C,EAAE;IACjB,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC,CAAA;AALY,QAAA,OAAO,WAKnB;AAEM,MAAM,cAAc,GAAG,GAAa,EAAE;IAC3C,OAAO,cAAc,CAAC,OAAO,CAAA;AAC/B,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAEM,MAAM,UAAU,GAAG,CAAC,IAAc,EAAW,EAAE;IACpD,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAA;AAChD,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB"}
|
package/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from "./src/index"
|
package/index.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
module.exports = require("./src/index")
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@neuralinnovations/dataisland-sdk",
|
3
|
-
"version": "0.0.1-
|
3
|
+
"version": "0.0.1-dev11",
|
4
4
|
"description": "SDK for DataIsland project",
|
5
5
|
"licenses": [
|
6
6
|
{
|
@@ -8,16 +8,52 @@
|
|
8
8
|
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
9
9
|
}
|
10
10
|
],
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "https://github.com/NeuralInnovations/dataisland-client-js-sdk.git"
|
14
|
+
},
|
11
15
|
"publishConfig": {
|
12
16
|
"access": "public"
|
13
17
|
},
|
18
|
+
"exports": {
|
19
|
+
".": "./dist/dataisland-sdk.js"
|
20
|
+
},
|
21
|
+
"main": "dist/dataisland-sdk.js",
|
22
|
+
"types": "dist/dataisland-sdk.d.ts",
|
23
|
+
"browser": "dist/dataisland-sdk.js",
|
24
|
+
"directories": {
|
25
|
+
"test": "test"
|
26
|
+
},
|
27
|
+
"files": [
|
28
|
+
"dist",
|
29
|
+
"src",
|
30
|
+
"index.js",
|
31
|
+
"index.d.ts"
|
32
|
+
],
|
33
|
+
"engines": {
|
34
|
+
"node": ">=16"
|
35
|
+
},
|
14
36
|
"scripts": {
|
15
37
|
"build": "tsc",
|
16
|
-
"test": "jest",
|
17
|
-
"lint": "eslint --ext .ts,.tsx src"
|
38
|
+
"test": "jest --runInBand",
|
39
|
+
"lint": "eslint --ext .ts,.tsx src test",
|
40
|
+
"lint:fix": "eslint --fix --ext .ts,.tsx src test",
|
41
|
+
"docs": "typedoc --disableSources --includeVersion --plugin typedoc-plugin-markdown --out docs src/index.ts && node scripts/docs/index.js"
|
18
42
|
},
|
43
|
+
"keywords": [
|
44
|
+
"dataisland",
|
45
|
+
"sdk",
|
46
|
+
"neuralinnovations",
|
47
|
+
"neural innovations",
|
48
|
+
"neural-innovations",
|
49
|
+
"neural"
|
50
|
+
],
|
19
51
|
"author": "Neural Innovations LTD",
|
20
52
|
"license": "Apache-2.0",
|
53
|
+
"bugs": {
|
54
|
+
"url": "https://github.com/NeuralInnovations/dataisland-client-js-sdk/issues"
|
55
|
+
},
|
56
|
+
"homepage": "https://github.com/NeuralInnovations/dataisland-client-js-sdk#readme",
|
21
57
|
"devDependencies": {
|
22
58
|
"@babel/core": "^7.22.11",
|
23
59
|
"@babel/plugin-transform-modules-commonjs": "7.22.11",
|
@@ -49,12 +85,14 @@
|
|
49
85
|
"tslib": "^2.6.2",
|
50
86
|
"tslint": "6.1.3",
|
51
87
|
"typedoc": "^0.25.7",
|
88
|
+
"typedoc-plugin-markdown": "^3.17.1",
|
52
89
|
"typescript": "^5.3.3",
|
53
90
|
"watch": "^0.13.0",
|
54
91
|
"webpack": "5.76.0",
|
55
92
|
"yargs": "17.7.2"
|
56
93
|
},
|
57
94
|
"dependencies": {
|
95
|
+
"dotenv": "^16.3.2",
|
58
96
|
"jsdom": "^23.2.0"
|
59
97
|
}
|
60
98
|
}
|
package/src/appBuilder.ts
CHANGED
@@ -1,16 +1,23 @@
|
|
1
|
-
import type { Middleware } from
|
2
|
-
import type { CredentialBase } from
|
3
|
-
import type { Service, ServiceContext } from
|
4
|
-
import type { Constructor } from
|
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"
|
5
7
|
|
6
8
|
/**
|
7
9
|
* DataIsland App builder.
|
8
10
|
*/
|
9
11
|
export abstract class AppBuilder {
|
12
|
+
/**
|
13
|
+
* Set custom data.
|
14
|
+
*/
|
15
|
+
abstract get env(): Record<string, any>
|
16
|
+
|
10
17
|
/**
|
11
18
|
* Add a middleware to the app.
|
12
19
|
*/
|
13
|
-
abstract
|
20
|
+
abstract registerMiddleware(middleware: Middleware): AppBuilder
|
14
21
|
|
15
22
|
/**
|
16
23
|
* Host of the app.
|
@@ -36,4 +43,16 @@ export abstract class AppBuilder {
|
|
36
43
|
type: Constructor<T>,
|
37
44
|
factory: (context: ServiceContext) => T
|
38
45
|
): AppBuilder
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Register a command to the app.
|
49
|
+
* @param messageType
|
50
|
+
* @param commandFactory
|
51
|
+
*/
|
52
|
+
abstract registerCommand<T extends Command>(
|
53
|
+
messageType: Constructor<T>,
|
54
|
+
commandFactory:
|
55
|
+
| ((context: Context) => CommandHandler<T>)
|
56
|
+
| ((context: Context) => (context: Context) => Promise<void>)
|
57
|
+
): AppBuilder
|
39
58
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { CommandHandler, Command } from "../services/commandService"
|
2
|
+
import { UserProfileService } from "../services/userProfileService"
|
3
|
+
|
4
|
+
export class StartCommand extends Command {}
|
5
|
+
|
6
|
+
export class StartCommandHandler extends CommandHandler<StartCommand> {
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
8
|
+
async execute(message: StartCommand): Promise<void> {
|
9
|
+
const service = this.context.resolve(
|
10
|
+
UserProfileService
|
11
|
+
) as UserProfileService
|
12
|
+
await service.fetch()
|
13
|
+
}
|
14
|
+
}
|
package/src/context.ts
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
import { type Constructor, type Registry } from "./internal/registry"
|
2
|
+
import { type Lifetime } from "./disposable"
|
3
|
+
import { Command, CommandService } from "./services/commandService"
|
4
|
+
|
5
|
+
/**
|
6
|
+
* DataIsland App context.
|
7
|
+
*/
|
8
|
+
export class Context {
|
9
|
+
constructor(
|
10
|
+
private readonly registry: Registry,
|
11
|
+
public readonly lifetime: Lifetime,
|
12
|
+
public readonly appName: string
|
13
|
+
) {
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Resolve a service from the context.
|
18
|
+
* @param type of the service
|
19
|
+
*/
|
20
|
+
resolve<T>(type: Constructor<T>): T | undefined {
|
21
|
+
return this.registry.get(type)
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Execute a command.
|
26
|
+
* @param command to execute
|
27
|
+
*/
|
28
|
+
async execute<T extends Command>(command: T): Promise<void> {
|
29
|
+
const service = this.resolve(CommandService) as CommandService
|
30
|
+
await service.execute(command)
|
31
|
+
}
|
32
|
+
}
|
package/src/credentials.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import { MiddlewareService } from
|
2
|
-
import { type Lifetime } from
|
3
|
-
import { type Context } from
|
1
|
+
import { MiddlewareService } from "./services/middlewareService"
|
2
|
+
import { type Lifetime } from "./disposable"
|
3
|
+
import { type Context } from "./context"
|
4
4
|
|
5
5
|
/**
|
6
6
|
* DataIsland App credential.
|
@@ -29,12 +29,34 @@ export class BasicCredential extends CredentialBase {
|
|
29
29
|
onRegister(lifetime: Lifetime, context: Context): void {
|
30
30
|
const service = context.resolve(MiddlewareService)
|
31
31
|
if (service === undefined) {
|
32
|
-
throw new Error(
|
32
|
+
throw new Error("MiddlewareService is not registered.")
|
33
33
|
}
|
34
34
|
lifetime.add(
|
35
35
|
service.useMiddleware(async (req, next) => {
|
36
|
-
req.headers.set(
|
37
|
-
await next(req)
|
36
|
+
req.headers.set("Authorization", `Basic ${this.email}:${this.password}`)
|
37
|
+
return await next(req)
|
38
|
+
})
|
39
|
+
)
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
export class DebugCredential extends CredentialBase {
|
44
|
+
readonly token: string
|
45
|
+
|
46
|
+
constructor(token: string) {
|
47
|
+
super()
|
48
|
+
this.token = token
|
49
|
+
}
|
50
|
+
|
51
|
+
onRegister(lifetime: Lifetime, context: Context): void {
|
52
|
+
const service = context.resolve(MiddlewareService)
|
53
|
+
if (service === undefined) {
|
54
|
+
throw new Error("MiddlewareService is not registered.")
|
55
|
+
}
|
56
|
+
lifetime.add(
|
57
|
+
service.useMiddleware(async (req, next) => {
|
58
|
+
req.headers.set("Authorization", `Debug ${this.token}`)
|
59
|
+
return await next(req)
|
38
60
|
})
|
39
61
|
)
|
40
62
|
}
|
@@ -51,12 +73,12 @@ export class BearerCredential extends CredentialBase {
|
|
51
73
|
onRegister(lifetime: Lifetime, context: Context): void {
|
52
74
|
const service = context.resolve(MiddlewareService)
|
53
75
|
if (service === undefined) {
|
54
|
-
throw new Error(
|
76
|
+
throw new Error("MiddlewareService is not registered.")
|
55
77
|
}
|
56
78
|
lifetime.add(
|
57
79
|
service.useMiddleware(async (req, next) => {
|
58
|
-
req.headers.set(
|
59
|
-
await next(req)
|
80
|
+
req.headers.set("Authorization", `Bearer ${this.token}`)
|
81
|
+
return await next(req)
|
60
82
|
})
|
61
83
|
)
|
62
84
|
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import type { Lifetime } from "./disposable"
|
2
|
+
import type { CredentialBase } from "./credentials"
|
3
|
+
import { Context } from "./context"
|
4
|
+
import type { Constructor } from "./internal/registry"
|
5
|
+
import { Organizations } from "./storages/organizations/organizations"
|
6
|
+
import { UserProfile } from "./storages/user/userProfile"
|
7
|
+
|
8
|
+
/**
|
9
|
+
* DataIsland App instance.
|
10
|
+
*/
|
11
|
+
export abstract class DataIslandApp {
|
12
|
+
/**
|
13
|
+
* The name of this app.
|
14
|
+
*/
|
15
|
+
abstract get name(): string
|
16
|
+
|
17
|
+
/**
|
18
|
+
* The host of this app.
|
19
|
+
*/
|
20
|
+
abstract get host(): string
|
21
|
+
|
22
|
+
/**
|
23
|
+
* The automaticDataCollectionEnabled of this app.
|
24
|
+
*/
|
25
|
+
abstract get automaticDataCollectionEnabled(): boolean
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The lifetime of this app.
|
29
|
+
*/
|
30
|
+
abstract get lifetime(): Lifetime
|
31
|
+
|
32
|
+
/**
|
33
|
+
* The credential of this app.
|
34
|
+
*/
|
35
|
+
abstract get credential(): CredentialBase | undefined
|
36
|
+
|
37
|
+
abstract set credential(value: CredentialBase)
|
38
|
+
|
39
|
+
/**
|
40
|
+
* The context of this app.
|
41
|
+
*/
|
42
|
+
abstract get context(): Context
|
43
|
+
|
44
|
+
/**
|
45
|
+
* User's organizations.
|
46
|
+
*/
|
47
|
+
abstract get organizations(): Organizations
|
48
|
+
|
49
|
+
/**
|
50
|
+
* User's profile.
|
51
|
+
*/
|
52
|
+
abstract get userProfile(): UserProfile
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Resolve a service from the app.
|
56
|
+
* @param type
|
57
|
+
*/
|
58
|
+
abstract resolve<T>(type: Constructor<T>): T | undefined
|
59
|
+
}
|
package/src/disposable.ts
CHANGED
@@ -2,14 +2,15 @@
|
|
2
2
|
* Represents an object that can be disposed.
|
3
3
|
*/
|
4
4
|
export interface Disposable {
|
5
|
-
dispose
|
5
|
+
dispose(): void
|
6
6
|
}
|
7
7
|
|
8
8
|
/**
|
9
9
|
* Represents a lifetime.
|
10
10
|
*/
|
11
11
|
export class Lifetime {
|
12
|
-
constructor(private readonly container: DisposableContainer) {
|
12
|
+
constructor(private readonly container: DisposableContainer) {
|
13
|
+
}
|
13
14
|
|
14
15
|
/**
|
15
16
|
* Define a new nested disposable to this lifetime.
|
@@ -131,7 +132,7 @@ export class DisposableContainer implements Disposable {
|
|
131
132
|
*/
|
132
133
|
private _throwIfDisposed(): void {
|
133
134
|
if (this._isDisposed) {
|
134
|
-
throw new Error(
|
135
|
+
throw new Error("Object disposed")
|
135
136
|
}
|
136
137
|
}
|
137
138
|
}
|
@@ -147,5 +148,3 @@ export function disposable(action: () => void, target: unknown): Disposable {
|
|
147
148
|
action.call(target)
|
148
149
|
})
|
149
150
|
}
|
150
|
-
|
151
|
-
export const eternalLifetime = new DisposableContainer().lifetime
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { UserDto } from "./userInfoResponse"
|
2
|
+
|
3
|
+
|
4
|
+
export interface PermitsDto {
|
5
|
+
isAdmin: boolean;
|
6
|
+
}
|
7
|
+
|
8
|
+
export interface RegulationDto {
|
9
|
+
isRegulateOrganization: boolean;
|
10
|
+
regulateWorkspaceIds: string[];
|
11
|
+
}
|
12
|
+
|
13
|
+
export interface AccessGroupDto {
|
14
|
+
id: string;
|
15
|
+
name: string;
|
16
|
+
type: number;
|
17
|
+
createdAt: number;
|
18
|
+
modifiedAt: number;
|
19
|
+
organizationId: string;
|
20
|
+
permits: PermitsDto;
|
21
|
+
regulation: RegulationDto;
|
22
|
+
membersCount: number;
|
23
|
+
}
|
24
|
+
|
25
|
+
export interface AccessGroupResponse {
|
26
|
+
group: AccessGroupDto;
|
27
|
+
members: UserDto[];
|
28
|
+
}
|
29
|
+
|
30
|
+
export interface AccessGroupsResponse {
|
31
|
+
groups: AccessGroupDto[];
|
32
|
+
}
|
33
|
+
|
34
|
+
|
35
|
+
|