@neuralinnovations/dataisland-sdk 0.0.1-dev2 → 0.0.1-dev21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +306 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/package.json +100 -0
  8. package/dist/src/appBuilder.d.ts +44 -0
  9. package/dist/src/appBuilder.d.ts.map +1 -0
  10. package/dist/src/appBuilder.js +10 -0
  11. package/dist/src/appBuilder.js.map +1 -0
  12. package/dist/src/commands/startCommandHandler.d.ts +7 -0
  13. package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
  14. package/dist/src/commands/startCommandHandler.js +17 -0
  15. package/dist/src/commands/startCommandHandler.js.map +1 -0
  16. package/dist/src/context.d.ts +23 -0
  17. package/dist/src/context.d.ts.map +1 -0
  18. package/dist/src/context.js +31 -0
  19. package/dist/src/context.js.map +1 -0
  20. package/dist/src/credentials.d.ts +28 -0
  21. package/dist/src/credentials.d.ts.map +1 -0
  22. package/dist/src/credentials.js +70 -0
  23. package/dist/src/credentials.js.map +1 -0
  24. package/dist/src/dataIslandApp.d.ts +50 -0
  25. package/dist/src/dataIslandApp.d.ts.map +1 -0
  26. package/dist/src/dataIslandApp.js +10 -0
  27. package/dist/src/dataIslandApp.js.map +1 -0
  28. package/dist/src/disposable.d.ts +84 -0
  29. package/dist/src/disposable.d.ts.map +1 -0
  30. package/dist/src/disposable.js +147 -0
  31. package/dist/src/disposable.js.map +1 -0
  32. package/dist/src/dto/accessGroupResponse.d.ts +27 -0
  33. package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
  34. package/dist/src/dto/accessGroupResponse.js +3 -0
  35. package/dist/src/dto/accessGroupResponse.js.map +1 -0
  36. package/dist/src/dto/chatResponse.d.ts +78 -0
  37. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  38. package/dist/src/dto/chatResponse.js +45 -0
  39. package/dist/src/dto/chatResponse.js.map +1 -0
  40. package/dist/src/dto/userInfoResponse.d.ts +42 -0
  41. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  42. package/dist/src/dto/userInfoResponse.js +3 -0
  43. package/dist/src/dto/userInfoResponse.js.map +1 -0
  44. package/dist/src/dto/workspacesResponse.d.ts +43 -0
  45. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  46. package/dist/src/dto/workspacesResponse.js +3 -0
  47. package/dist/src/dto/workspacesResponse.js.map +1 -0
  48. package/dist/src/events.d.ts +17 -0
  49. package/dist/src/events.d.ts.map +1 -0
  50. package/dist/src/events.js +52 -0
  51. package/dist/src/events.js.map +1 -0
  52. package/dist/src/index.d.ts +58 -0
  53. package/dist/src/index.d.ts.map +1 -0
  54. package/dist/src/index.js +91 -0
  55. package/dist/src/index.js.map +1 -0
  56. package/dist/src/internal/app.impl.d.ts +28 -0
  57. package/dist/src/internal/app.impl.d.ts.map +1 -0
  58. package/dist/src/internal/app.impl.js +151 -0
  59. package/dist/src/internal/app.impl.js.map +1 -0
  60. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  61. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  62. package/dist/src/internal/appBuilder.impl.js +71 -0
  63. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  64. package/dist/src/internal/createApp.impl.d.ts +4 -0
  65. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  66. package/dist/src/internal/createApp.impl.js +11 -0
  67. package/dist/src/internal/createApp.impl.js.map +1 -0
  68. package/dist/src/internal/registry.d.ts +66 -0
  69. package/dist/src/internal/registry.d.ts.map +1 -0
  70. package/dist/src/internal/registry.js +114 -0
  71. package/dist/src/internal/registry.js.map +1 -0
  72. package/dist/src/middleware.d.ts +5 -0
  73. package/dist/src/middleware.d.ts.map +1 -0
  74. package/dist/src/middleware.js +3 -0
  75. package/dist/src/middleware.js.map +1 -0
  76. package/dist/src/services/commandService.d.ts +18 -0
  77. package/dist/src/services/commandService.d.ts.map +1 -0
  78. package/dist/src/services/commandService.js +40 -0
  79. package/dist/src/services/commandService.js.map +1 -0
  80. package/dist/src/services/credentialService.d.ts +9 -0
  81. package/dist/src/services/credentialService.d.ts.map +1 -0
  82. package/dist/src/services/credentialService.js +26 -0
  83. package/dist/src/services/credentialService.js.map +1 -0
  84. package/dist/src/services/middlewareService.d.ts +9 -0
  85. package/dist/src/services/middlewareService.d.ts.map +1 -0
  86. package/dist/src/services/middlewareService.js +34 -0
  87. package/dist/src/services/middlewareService.js.map +1 -0
  88. package/dist/src/services/organizationService.d.ts +10 -0
  89. package/dist/src/services/organizationService.d.ts.map +1 -0
  90. package/dist/src/services/organizationService.js +19 -0
  91. package/dist/src/services/organizationService.js.map +1 -0
  92. package/dist/src/services/requestBuilder.d.ts +17 -0
  93. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  94. package/dist/src/services/requestBuilder.js +104 -0
  95. package/dist/src/services/requestBuilder.js.map +1 -0
  96. package/dist/src/services/responseUtils.d.ts +6 -0
  97. package/dist/src/services/responseUtils.d.ts.map +1 -0
  98. package/dist/src/services/responseUtils.js +32 -0
  99. package/dist/src/services/responseUtils.js.map +1 -0
  100. package/dist/src/services/rpcService.d.ts +77 -0
  101. package/dist/src/services/rpcService.d.ts.map +1 -0
  102. package/dist/src/services/rpcService.js +125 -0
  103. package/dist/src/services/rpcService.js.map +1 -0
  104. package/dist/src/services/service.d.ts +21 -0
  105. package/dist/src/services/service.d.ts.map +1 -0
  106. package/dist/src/services/service.js +41 -0
  107. package/dist/src/services/service.js.map +1 -0
  108. package/dist/src/services/userProfileService.d.ts +8 -0
  109. package/dist/src/services/userProfileService.d.ts.map +1 -0
  110. package/dist/src/services/userProfileService.js +32 -0
  111. package/dist/src/services/userProfileService.js.map +1 -0
  112. package/dist/src/storages/chats/answer.d.ts +40 -0
  113. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  114. package/dist/src/storages/chats/answer.impl.d.ts +24 -0
  115. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  116. package/dist/src/storages/chats/answer.impl.js +130 -0
  117. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  118. package/dist/src/storages/chats/answer.js +14 -0
  119. package/dist/src/storages/chats/answer.js.map +1 -0
  120. package/dist/src/storages/chats/chat.d.ts +39 -0
  121. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  122. package/dist/src/storages/chats/chat.impl.d.ts +24 -0
  123. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  124. package/dist/src/storages/chats/chat.impl.js +98 -0
  125. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  126. package/dist/src/storages/chats/chat.js +12 -0
  127. package/dist/src/storages/chats/chat.js.map +1 -0
  128. package/dist/src/storages/chats/chats.d.ts +40 -0
  129. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  130. package/dist/src/storages/chats/chats.impl.d.ts +18 -0
  131. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  132. package/dist/src/storages/chats/chats.impl.js +102 -0
  133. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  134. package/dist/src/storages/chats/chats.js +16 -0
  135. package/dist/src/storages/chats/chats.js.map +1 -0
  136. package/dist/src/storages/files/file.d.ts +31 -0
  137. package/dist/src/storages/files/file.d.ts.map +1 -0
  138. package/dist/src/storages/files/file.impl.d.ts +21 -0
  139. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  140. package/dist/src/storages/files/file.impl.js +64 -0
  141. package/dist/src/storages/files/file.impl.js.map +1 -0
  142. package/dist/src/storages/files/file.js +11 -0
  143. package/dist/src/storages/files/file.js.map +1 -0
  144. package/dist/src/storages/files/files.d.ts +34 -0
  145. package/dist/src/storages/files/files.d.ts.map +1 -0
  146. package/dist/src/storages/files/files.impl.d.ts +22 -0
  147. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  148. package/dist/src/storages/files/files.impl.js +140 -0
  149. package/dist/src/storages/files/files.impl.js.map +1 -0
  150. package/dist/src/storages/files/files.js +20 -0
  151. package/dist/src/storages/files/files.js.map +1 -0
  152. package/dist/src/storages/files/filesPage.d.ts +28 -0
  153. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  154. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  155. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  156. package/dist/src/storages/files/filesPage.impl.js +38 -0
  157. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  158. package/dist/src/storages/files/filesPage.js +10 -0
  159. package/dist/src/storages/files/filesPage.js.map +1 -0
  160. package/dist/src/storages/groups/groups.d.ts +91 -0
  161. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  162. package/dist/src/storages/groups/groups.impl.d.ts +61 -0
  163. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  164. package/dist/src/storages/groups/groups.impl.js +293 -0
  165. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  166. package/dist/src/storages/groups/groups.js +26 -0
  167. package/dist/src/storages/groups/groups.js.map +1 -0
  168. package/dist/src/storages/organizations/organization.d.ts +54 -0
  169. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  170. package/dist/src/storages/organizations/organization.impl.d.ts +32 -0
  171. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  172. package/dist/src/storages/organizations/organization.impl.js +120 -0
  173. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  174. package/dist/src/storages/organizations/organization.js +18 -0
  175. package/dist/src/storages/organizations/organization.js.map +1 -0
  176. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  177. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  178. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  179. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  180. package/dist/src/storages/organizations/organizations.impl.js +151 -0
  181. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  182. package/dist/src/storages/organizations/organizations.js +20 -0
  183. package/dist/src/storages/organizations/organizations.js.map +1 -0
  184. package/dist/src/storages/user/userProfile.d.ts +32 -0
  185. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  186. package/dist/src/storages/user/userProfile.impl.d.ts +13 -0
  187. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  188. package/dist/src/storages/user/userProfile.impl.js +51 -0
  189. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  190. package/dist/src/storages/user/userProfile.js +12 -0
  191. package/dist/src/storages/user/userProfile.js.map +1 -0
  192. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  193. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  194. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  195. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  196. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  197. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  198. package/dist/src/storages/workspaces/workspace.js +18 -0
  199. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  200. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  201. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  202. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  203. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  204. package/dist/src/storages/workspaces/workspaces.impl.js +157 -0
  205. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  206. package/dist/src/storages/workspaces/workspaces.js +19 -0
  207. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  208. package/dist/src/unitTest.d.ts +12 -0
  209. package/dist/src/unitTest.d.ts.map +1 -0
  210. package/dist/src/unitTest.js +44 -0
  211. package/dist/src/unitTest.js.map +1 -0
  212. package/index.d.ts +1 -0
  213. package/index.js +1 -0
  214. package/package.json +43 -4
  215. package/src/appBuilder.ts +6 -6
  216. package/src/commands/startCommandHandler.ts +2 -2
  217. package/src/context.ts +5 -4
  218. package/src/credentials.ts +29 -7
  219. package/src/{appSdk.ts → dataIslandApp.ts} +7 -7
  220. package/src/disposable.ts +20 -8
  221. package/src/dto/accessGroupResponse.ts +35 -0
  222. package/src/dto/chatResponse.ts +103 -0
  223. package/src/dto/userInfoResponse.ts +15 -3
  224. package/src/dto/workspacesResponse.ts +49 -0
  225. package/src/events.ts +13 -13
  226. package/src/index.ts +41 -20
  227. package/src/internal/app.impl.ts +28 -31
  228. package/src/internal/appBuilder.impl.ts +16 -16
  229. package/src/internal/createApp.impl.ts +5 -5
  230. package/src/internal/registry.ts +54 -6
  231. package/src/services/commandService.ts +3 -3
  232. package/src/services/credentialService.ts +3 -3
  233. package/src/services/middlewareService.ts +4 -4
  234. package/src/services/organizationService.ts +18 -116
  235. package/src/services/requestBuilder.ts +40 -15
  236. package/src/services/responseUtils.ts +32 -0
  237. package/src/services/rpcService.ts +28 -11
  238. package/src/services/service.ts +10 -8
  239. package/src/services/userProfileService.ts +18 -66
  240. package/src/storages/chats/answer.impl.ts +186 -0
  241. package/src/storages/chats/answer.ts +55 -0
  242. package/src/storages/chats/chat.impl.ts +126 -0
  243. package/src/storages/chats/chat.ts +49 -0
  244. package/src/storages/chats/chats.impl.ts +142 -0
  245. package/src/storages/chats/chats.ts +47 -0
  246. package/src/storages/files/file.impl.ts +87 -0
  247. package/src/storages/files/file.ts +40 -0
  248. package/src/storages/files/files.impl.ts +191 -0
  249. package/src/storages/files/files.ts +39 -0
  250. package/src/storages/files/filesPage.impl.ts +37 -0
  251. package/src/storages/files/filesPage.ts +33 -0
  252. package/src/storages/groups/groups.impl.ts +386 -0
  253. package/src/storages/groups/groups.ts +106 -0
  254. package/src/storages/organizations/organization.impl.ts +163 -0
  255. package/src/storages/organizations/organization.ts +67 -0
  256. package/src/storages/organizations/organizations.impl.ts +197 -0
  257. package/src/storages/{organizations.ts → organizations/organizations.ts} +8 -28
  258. package/src/storages/user/userProfile.impl.ts +56 -0
  259. package/src/storages/{userProfile.ts → user/userProfile.ts} +2 -2
  260. package/src/storages/workspaces/workspace.impl.ts +129 -0
  261. package/src/storages/workspaces/workspace.ts +54 -0
  262. package/src/storages/workspaces/workspaces.impl.ts +212 -0
  263. package/src/storages/workspaces/workspaces.ts +53 -0
  264. package/src/unitTest.ts +12 -1
  265. package/.browserslistrc +0 -5
  266. package/.editorconfig +0 -22
  267. package/.eslintrc.json +0 -44
  268. package/.github/workflows/publish-npm.yml +0 -28
  269. package/.prettierignore +0 -1
  270. package/.prettierrc +0 -11
  271. package/.yarnrc +0 -2
  272. package/babel.config.js +0 -6
  273. package/jest.config.ts +0 -199
  274. package/jest.setup.ts +0 -2
  275. package/src/services/organizationImpl.ts +0 -51
  276. package/src/services/organizationsImpl.ts +0 -55
  277. package/src/types.ts +0 -86
  278. package/test/commands.test.ts +0 -24
  279. package/test/disposable.test.ts +0 -39
  280. package/test/events.test.ts +0 -151
  281. package/test/index.test.ts +0 -163
  282. package/test/registry.test.ts +0 -44
  283. package/test/services.test.ts +0 -56
  284. package/test/setup.ts +0 -2
  285. package/test/unitTest.test.ts +0 -21
  286. package/tsconfig.json +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/workspaces/workspaces.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAM/D,qBAAa,cAAe,SAAQ,UAAU;IAI1C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;gBAG/B,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,OAAO;IAKnC,IAAI,UAAU,IAAI,SAAS,SAAS,EAAE,CAErC;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS;IAI1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B;;;;;OAKG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE;QACX,gBAAgB,EAAE,OAAO,CAAA;QACzB,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,GACA,OAAO,CAAC,SAAS,CAAC;IA2ErB;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CtC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC9D"}
@@ -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":";;;AAAA,6CAAuE;AAIvE,qDAAgD;AAEhD,0DAAsD;AAGtD,gEAA4D;AAE5D,MAAa,cAAe,SAAQ,uBAAU;IAG5C,YACmB,YAA8B,EAC9B,OAAgB;QAEjC,KAAK,EAAE,CAAA;QAHU,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,YAAO,GAAP,OAAO,CAAS;QAJlB,gBAAW,GAAoB,EAAE,CAAA;IAOlD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAkB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,CAAA;IAC9E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,WAAmB,EACnB,UAIC;;QAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QACD,IACE,WAAW,KAAK,SAAS;YACzB,WAAW,KAAK,IAAI;YACpB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EACzB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,IACE,UAAU,CAAC,gBAAgB,KAAK,SAAS;gBACzC,UAAU,CAAC,gBAAgB,KAAK,IAAI,EACpC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;YACpE,CAAC;YACD,IACE,UAAU,CAAC,YAAY,KAAK,SAAS;gBACrC,UAAU,CAAC,YAAY,KAAK,IAAI;gBAChC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EACrC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAChE,CAAC;YACD,IACE,UAAU,CAAC,QAAQ,KAAK,SAAS;gBACjC,UAAU,CAAC,QAAQ,KAAK,IAAI;gBAC5B,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAChC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,mBAAmB,EACnC,YAAY,CAAC;YACZ,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;YACpC,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,WAAW;aACzB;YACD,UAAU,EAAE;gBACV,gBAAgB,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gBAAgB,mCAAI,KAAK;gBACvD,YAAY,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,mCAAI,EAAE;gBAC5C,QAAQ,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,mCAAI,EAAE;aACrC;SACF,CAAC,CAAA,CAAA;QAEJ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,gDAAgD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAClH,CAAC;QAED,6CAA6C;QAC7C,MAAM,OAAO,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,SAAyB,CAAA;QAElE,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACpE,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEjC,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEhC,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,4BAAe,CAAC,KAAK;YAC3B,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;QAEF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAe;;QAC1B,sBAAsB;QACtB,MAAM,SAAS,GAAkB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAEhD,8BAA8B;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QACjD,CAAC;QAED,kDAAkD;QAClD,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,mDAAmD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3G,CAAC;QAED,4BAA4B;QAC5B,SAAS,CAAC,YAAY,EAAE,CAAA;QAExB,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,mBAAmB,EACnC,WAAW,CAAC,IAAI,EAAE,EAAE,EACpB,UAAU,EAAE,CAAA,CAAA;QAEf,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAC5B,+BAA+B,SAAS,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,sBAAsB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAC9H,QAAQ,CACT,CAAA;QACH,CAAC;QAED,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB,SAAS,CAAC,CAAA;QAChE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QACjD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAEjC,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,4BAAe,CAAC,OAAO;YAC7B,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,cAA8B;;QAC3C,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,sBAAsB,EACtC,WAAW,CAAC,IAAI,EAAE,cAAc,EAChC,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,+CAA+C,cAAc,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC3G,CAAC;QAED,8CAA8C;QAC9C,MAAM,UAAU,GAAI,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAA4B;aACpE,UAAU,CAAA;QAEb,6CAA6C;QAC7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,kCAAkC;YAClC,MAAM,aAAa,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAExE,4CAA4C;YAC5C,MAAM,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAEvC,kCAAkC;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAEpC,iBAAiB;YACjB,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,4BAAe,CAAC,KAAK;gBAC3B,IAAI,EAAE,aAAa;aACpB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAxMD,wCAwMC"}
@@ -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-dev2",
3
+ "version": "0.0.1-dev21",
4
4
  "description": "SDK for DataIsland project",
5
5
  "licenses": [
6
6
  {
@@ -8,16 +8,54 @@
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/index.js"
20
+ },
21
+ "main": "dist/index.js",
22
+ "types": "dist/index.d.ts",
23
+ "browser": "dist/index.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",
42
+ "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",
43
+ "release": "rm package-lock.json && npm install && npm run build && npm run lint:fix && npm run docs"
18
44
  },
45
+ "keywords": [
46
+ "dataisland",
47
+ "sdk",
48
+ "neuralinnovations",
49
+ "neural innovations",
50
+ "neural-innovations",
51
+ "neural"
52
+ ],
19
53
  "author": "Neural Innovations LTD",
20
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",
21
59
  "devDependencies": {
22
60
  "@babel/core": "^7.22.11",
23
61
  "@babel/plugin-transform-modules-commonjs": "7.22.11",
@@ -49,6 +87,7 @@
49
87
  "tslib": "^2.6.2",
50
88
  "tslint": "6.1.3",
51
89
  "typedoc": "^0.25.7",
90
+ "typedoc-plugin-markdown": "^3.17.1",
52
91
  "typescript": "^5.3.3",
53
92
  "watch": "^0.13.0",
54
93
  "webpack": "5.76.0",
@@ -58,4 +97,4 @@
58
97
  "dotenv": "^16.3.2",
59
98
  "jsdom": "^23.2.0"
60
99
  }
61
- }
100
+ }
package/src/appBuilder.ts CHANGED
@@ -1,9 +1,9 @@
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'
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
7
 
8
8
  /**
9
9
  * DataIsland App builder.
@@ -1,5 +1,5 @@
1
- import { CommandHandler, Command } from '../services/commandService'
2
- import { UserProfileService } from '../services/userProfileService'
1
+ import { CommandHandler, Command } from "../services/commandService"
2
+ import { UserProfileService } from "../services/userProfileService"
3
3
 
4
4
  export class StartCommand extends Command {}
5
5
 
package/src/context.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { type Constructor, type Registry } from './internal/registry'
2
- import { type Lifetime } from './disposable'
3
- import { Command, CommandService } from './services/commandService'
1
+ import { type Constructor, type Registry } from "./internal/registry"
2
+ import { type Lifetime } from "./disposable"
3
+ import { Command, CommandService } from "./services/commandService"
4
4
 
5
5
  /**
6
6
  * DataIsland App context.
@@ -10,7 +10,8 @@ export class Context {
10
10
  private readonly registry: Registry,
11
11
  public readonly lifetime: Lifetime,
12
12
  public readonly appName: string
13
- ) {}
13
+ ) {
14
+ }
14
15
 
15
16
  /**
16
17
  * Resolve a service from the context.
@@ -1,6 +1,6 @@
1
- import { MiddlewareService } from './services/middlewareService'
2
- import { type Lifetime } from './disposable'
3
- import { type Context } from './context'
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,11 +29,33 @@ 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('MiddlewareService is not registered.')
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('Authorization', `Basic ${this.email}:${this.password}`)
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}`)
37
59
  return await next(req)
38
60
  })
39
61
  )
@@ -51,11 +73,11 @@ 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('MiddlewareService is not registered.')
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('Authorization', `Bearer ${this.token}`)
80
+ req.headers.set("Authorization", `Bearer ${this.token}`)
59
81
  return await next(req)
60
82
  })
61
83
  )
@@ -1,14 +1,14 @@
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'
6
- import { UserProfile } from './storages/userProfile'
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
7
 
8
8
  /**
9
9
  * DataIsland App instance.
10
10
  */
11
- export abstract class AppSdk {
11
+ export abstract class DataIslandApp {
12
12
  /**
13
13
  * The name of this app.
14
14
  */
package/src/disposable.ts CHANGED
@@ -9,7 +9,8 @@ export interface Disposable {
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.
@@ -76,7 +77,8 @@ export class DisposableContainer implements Disposable {
76
77
  * @returns The disposable container.
77
78
  */
78
79
  public add(disposable: Disposable): Disposable {
79
- this._throwIfDisposed()
80
+ this._throwIfDisposed("Cannot add disposable to disposed container.")
81
+
80
82
  this._disposables.push(disposable)
81
83
  return disposable
82
84
  }
@@ -88,7 +90,8 @@ export class DisposableContainer implements Disposable {
88
90
  * @returns The disposable container.
89
91
  */
90
92
  public addCallback(callback: () => void, target?: unknown): Disposable {
91
- this._throwIfDisposed()
93
+ this._throwIfDisposed("Cannot add callback to disposed container.")
94
+
92
95
  return this.add({
93
96
  dispose() {
94
97
  callback.call(target)
@@ -100,6 +103,8 @@ export class DisposableContainer implements Disposable {
100
103
  * Defines a nested disposable container.
101
104
  */
102
105
  defineNested(): DisposableContainer {
106
+ this._throwIfDisposed("Cannot define nested disposable for disposed container.")
107
+
103
108
  const nested = new DisposableContainer()
104
109
  this._disposables.push(nested)
105
110
  nested.addCallback(() => {
@@ -115,23 +120,32 @@ export class DisposableContainer implements Disposable {
115
120
  * Disposes all disposables in this container. Last added, first disposed.
116
121
  */
117
122
  public dispose(): void {
118
- this._throwIfDisposed()
123
+ // return if already disposed
124
+ if (this._isDisposed) {
125
+ return
126
+ }
127
+
128
+ // mark as disposed
119
129
  this._isDisposed = true
130
+
131
+ // dispose all disposables
120
132
  this._disposables
121
133
  .slice()
122
134
  .reverse()
123
135
  .forEach(it => {
124
136
  it.dispose()
125
137
  })
138
+
139
+ // clear disposables
126
140
  this._disposables = []
127
141
  }
128
142
 
129
143
  /**
130
144
  * Throws an error if this container is disposed.
131
145
  */
132
- private _throwIfDisposed(): void {
146
+ private _throwIfDisposed(message: string): void {
133
147
  if (this._isDisposed) {
134
- throw new Error('Object disposed')
148
+ throw new Error("Object disposed, but you try to use it: " + message)
135
149
  }
136
150
  }
137
151
  }
@@ -147,5 +161,3 @@ export function disposable(action: () => void, target: unknown): Disposable {
147
161
  action.call(target)
148
162
  })
149
163
  }
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
+