@api-client/core 0.5.3 → 0.5.6

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 (68) hide show
  1. package/build/browser.d.ts +1 -0
  2. package/build/browser.js +1 -0
  3. package/build/browser.js.map +1 -1
  4. package/build/index.d.ts +1 -0
  5. package/build/index.js +1 -0
  6. package/build/index.js.map +1 -1
  7. package/build/src/models/Backend.d.ts +7 -9
  8. package/build/src/models/HttpHistory.d.ts +2 -2
  9. package/build/src/models/Project.d.ts +1 -1
  10. package/build/src/models/Project.js +2 -2
  11. package/build/src/models/Project.js.map +1 -1
  12. package/build/src/models/RevisionInfo.d.ts +2 -2
  13. package/build/src/models/SerializableError.d.ts +1 -0
  14. package/build/src/models/SerializableError.js.map +1 -1
  15. package/build/src/models/store/File.js +2 -2
  16. package/build/src/models/store/File.js.map +1 -1
  17. package/build/src/runtime/store/Errors.d.ts +50 -0
  18. package/build/src/runtime/store/Errors.js +63 -0
  19. package/build/src/runtime/store/Errors.js.map +1 -0
  20. package/build/src/runtime/store/FilesSdk.d.ts +94 -0
  21. package/build/src/runtime/store/FilesSdk.js +247 -0
  22. package/build/src/runtime/store/FilesSdk.js.map +1 -0
  23. package/build/src/runtime/store/HistorySdk.d.ts +14 -7
  24. package/build/src/runtime/store/HistorySdk.js +34 -12
  25. package/build/src/runtime/store/HistorySdk.js.map +1 -1
  26. package/build/src/runtime/store/RouteBuilder.d.ts +9 -17
  27. package/build/src/runtime/store/RouteBuilder.js +14 -26
  28. package/build/src/runtime/store/RouteBuilder.js.map +1 -1
  29. package/build/src/runtime/store/Sdk.d.ts +6 -7
  30. package/build/src/runtime/store/Sdk.js +6 -7
  31. package/build/src/runtime/store/Sdk.js.map +1 -1
  32. package/build/src/runtime/store/SdkBase.d.ts +16 -6
  33. package/build/src/runtime/store/SdkBase.js +54 -4
  34. package/build/src/runtime/store/SdkBase.js.map +1 -1
  35. package/build/src/runtime/store/SharedSdk.d.ts +8 -2
  36. package/build/src/runtime/store/SharedSdk.js +22 -8
  37. package/build/src/runtime/store/SharedSdk.js.map +1 -1
  38. package/build/src/runtime/store/StoreSdkNode.d.ts +1 -1
  39. package/build/src/runtime/store/StoreSdkWeb.d.ts +1 -1
  40. package/build/src/runtime/store/UsersSdk.d.ts +10 -4
  41. package/build/src/runtime/store/UsersSdk.js +12 -6
  42. package/build/src/runtime/store/UsersSdk.js.map +1 -1
  43. package/package.json +3 -4
  44. package/src/models/Backend.ts +7 -9
  45. package/src/models/HttpHistory.ts +2 -2
  46. package/src/models/Project.ts +2 -2
  47. package/src/models/RevisionInfo.ts +2 -2
  48. package/src/models/SerializableError.ts +1 -0
  49. package/src/models/store/File.ts +2 -2
  50. package/src/runtime/store/Errors.ts +100 -0
  51. package/src/runtime/store/FilesSdk.ts +302 -0
  52. package/src/runtime/store/HistorySdk.ts +42 -17
  53. package/src/runtime/store/RouteBuilder.ts +14 -28
  54. package/src/runtime/store/Sdk.ts +7 -7
  55. package/src/runtime/store/SdkBase.ts +63 -9
  56. package/src/runtime/store/SharedSdk.ts +27 -10
  57. package/src/runtime/store/StoreSdkNode.ts +1 -1
  58. package/src/runtime/store/StoreSdkWeb.ts +1 -1
  59. package/src/runtime/store/UsersSdk.ts +14 -8
  60. package/build/src/runtime/store/ProjectsSdk.d.ts +0 -43
  61. package/build/src/runtime/store/ProjectsSdk.js +0 -144
  62. package/build/src/runtime/store/ProjectsSdk.js.map +0 -1
  63. package/build/src/runtime/store/SpacesSdk.d.ts +0 -62
  64. package/build/src/runtime/store/SpacesSdk.js +0 -194
  65. package/build/src/runtime/store/SpacesSdk.js.map +0 -1
  66. package/json8-patch.d.ts +0 -270
  67. package/src/runtime/store/ProjectsSdk.ts +0 -147
  68. package/src/runtime/store/SpacesSdk.ts +0 -209
@@ -1,34 +1,51 @@
1
- import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN } from './SdkBase.js';
1
+ import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN, ISdkRequestOptions } from './SdkBase.js';
2
2
  import { RouteBuilder } from './RouteBuilder.js';
3
3
  import { IListOptions, IListResponse } from '../../models/Backend.js';
4
+ import { Kind as ProjectKind } from '../../models/Project.js';
5
+ import { Kind as WorkspaceKind } from '../../models/Workspace.js';
6
+ import { IFile } from '../../models/store/File.js';
7
+ import { SdkError } from './Errors.js';
4
8
 
5
9
  export class SharedSdk extends SdkBase {
6
10
  /**
7
11
  * Lists shared with the user spaces.
12
+ *
13
+ * @param kinds the list of kinds to list. Spaces are always included.
8
14
  * @param options Optional query options.
15
+ * @param request Optional request options.
9
16
  */
10
- async list(options?: IListOptions): Promise<IListResponse> {
11
- const { token } = this.sdk;
12
- const url = this.sdk.getUrl(RouteBuilder.sharedSpaces());
17
+ async list(kinds: (typeof ProjectKind | typeof WorkspaceKind)[], options?: IListOptions, request: ISdkRequestOptions = {}): Promise<IListResponse<IFile>> {
18
+ const token = request.token || this.sdk.token;
19
+ const url = this.sdk.getUrl(RouteBuilder.shared());
13
20
  this.sdk.appendListOptions(url, options);
21
+ kinds.forEach(k => url.searchParams.append('kind', k));
14
22
  const result = await this.sdk.http.get(url.toString(), { token });
15
- this.inspectCommonStatusCodes(result.status);
23
+ this.inspectCommonStatusCodes(result.status, result.body);
16
24
  const E_PREFIX = 'Unable to list spaces. ';
17
25
  if (result.status !== 200) {
18
26
  this.logInvalidResponse(result);
19
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
27
+ let e = this.createGenericSdkError(result.body)
28
+ if (!e) {
29
+ e = new SdkError(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`, result.status);
30
+ e.response = result.body;
31
+ }
32
+ throw e;
20
33
  }
21
34
  if (!result.body) {
22
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
35
+ throw new SdkError(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`, 0);
23
36
  }
24
- let data: IListResponse;
37
+ let data: IListResponse<IFile>;
25
38
  try {
26
39
  data = JSON.parse(result.body);
27
40
  } catch (e) {
28
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
41
+ const err = new SdkError(`${E_PREFIX}${E_INVALID_JSON}.`, 0);
42
+ err.response = result.body;
43
+ throw err;
29
44
  }
30
45
  if (!Array.isArray(data.data)) {
31
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
46
+ const err = new SdkError(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`, 0);
47
+ err.response = result.body;
48
+ throw err;
32
49
  }
33
50
  return data;
34
51
  }
@@ -5,7 +5,7 @@ import { Http } from './Http.js';
5
5
  import { WsClient } from './WsClient.js';
6
6
 
7
7
  export { IStoreTokenInfo, IStoreResponse, IStoreRequestOptions } from './SdkBase.js';
8
- export { ISpaceCreateOptions } from './SpacesSdk.js';
8
+ export { IFileCreateOptions as ISpaceCreateOptions } from './FilesSdk.js';
9
9
 
10
10
  /**
11
11
  * NodeJS API for API Client's net-store module.
@@ -5,7 +5,7 @@ import { Http } from './Http.js';
5
5
  import { WsClient } from './WsClient.js';
6
6
 
7
7
  export { IStoreTokenInfo, IStoreResponse, IStoreRequestOptions } from './SdkBase.js';
8
- export { ISpaceCreateOptions } from './SpacesSdk.js';
8
+ export { IFileCreateOptions as ISpaceCreateOptions } from './FilesSdk.js';
9
9
 
10
10
  /**
11
11
  * NodeJS API for API Client's net-store module.
@@ -1,11 +1,15 @@
1
- import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN } from './SdkBase.js';
1
+ import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN, ISdkRequestOptions } from './SdkBase.js';
2
2
  import { RouteBuilder } from './RouteBuilder.js';
3
3
  import { IListOptions, IListResponse } from '../../models/Backend.js';
4
4
  import { IUser } from '../../models/store/User.js';
5
5
 
6
6
  export class UsersSdk extends SdkBase {
7
- async me(): Promise<IUser> {
8
- const { token } = this.sdk;
7
+ /**
8
+ * Reads the current user.
9
+ * @param request Optional request options.
10
+ */
11
+ async me(request: ISdkRequestOptions = {}): Promise<IUser> {
12
+ const token = request.token || this.sdk.token;
9
13
  const url = this.sdk.getUrl(RouteBuilder.usersMe());
10
14
  const result = await this.sdk.http.get(url.toString(), { token });
11
15
  this.inspectCommonStatusCodes(result.status);
@@ -33,9 +37,10 @@ export class UsersSdk extends SdkBase {
33
37
  * Lists users in the store
34
38
  *
35
39
  * @param options Optional query options.
40
+ * @param request Optional request options.
36
41
  */
37
- async list(options?: IListOptions): Promise<IListResponse> {
38
- const { token } = this.sdk;
42
+ async list(options?: IListOptions, request: ISdkRequestOptions = {}): Promise<IListResponse<IUser>> {
43
+ const token = request.token || this.sdk.token;
39
44
  const url = this.sdk.getUrl(RouteBuilder.users());
40
45
  this.sdk.appendListOptions(url, options);
41
46
  const result = await this.sdk.http.get(url.toString(), { token });
@@ -48,7 +53,7 @@ export class UsersSdk extends SdkBase {
48
53
  if (!result.body) {
49
54
  throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
50
55
  }
51
- let data: IListResponse;
56
+ let data: IListResponse<IUser>;
52
57
  try {
53
58
  data = JSON.parse(result.body);
54
59
  } catch (e) {
@@ -63,10 +68,11 @@ export class UsersSdk extends SdkBase {
63
68
  /**
64
69
  * Reads a user information from the store.
65
70
  * @param key The user key.
71
+ * @param request Optional request options.
66
72
  * @returns The user object
67
73
  */
68
- async read(key: string): Promise<IUser> {
69
- const { token } = this.sdk;
74
+ async read(key: string, request: ISdkRequestOptions = {}): Promise<IUser> {
75
+ const token = request.token || this.sdk.token;
70
76
  const url = this.sdk.getUrl(RouteBuilder.user(key));
71
77
  const result = await this.sdk.http.get(url.toString(), { token });
72
78
  this.inspectCommonStatusCodes(result.status);
@@ -1,43 +0,0 @@
1
- import { JsonPatch } from 'json8-patch';
2
- import { SdkBase } from './SdkBase.js';
3
- import { IListOptions, IListResponse } from '../../models/Backend.js';
4
- import { HttpProject, IHttpProject } from '../../models/HttpProject.js';
5
- export declare class ProjectsSdk extends SdkBase {
6
- /**
7
- * Creates a project in a user space.
8
- *
9
- * @param space The user space key
10
- * @param project THe project to create
11
- * @returns The key of the created project.
12
- */
13
- create(space: string, project: IHttpProject | HttpProject): Promise<string>;
14
- /**
15
- * Reads a project definition from the store.
16
- * @param space The user space key
17
- * @param project The project key
18
- * @returns The definition of the project.
19
- */
20
- read(space: string, project: string): Promise<IHttpProject>;
21
- /**
22
- * Lists projects in the space
23
- *
24
- * @param space The user space key
25
- * @param options Optional query options.
26
- */
27
- list(space: string, options?: IListOptions): Promise<IListResponse>;
28
- /**
29
- * Deletes a project form the store.
30
- *
31
- * @param space The key of the parent space.
32
- * @param project The key of the project to delete.
33
- */
34
- delete(space: string, project: string): Promise<void>;
35
- /**
36
- * Patches a project in the store.
37
- * @param space The key of the parent user space
38
- * @param project The key of project to patch.
39
- * @param value The JSON patch to be processed.
40
- * @returns The JSON patch to revert the change using the `json8-patch` library
41
- */
42
- patch(space: string, project: string, value: JsonPatch): Promise<JsonPatch>;
43
- }
@@ -1,144 +0,0 @@
1
- import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN, E_RESPONSE_LOCATION } from './SdkBase.js';
2
- import { RouteBuilder } from './RouteBuilder.js';
3
- import { Kind as HttpProjectKind } from '../../models/HttpProject.js';
4
- export class ProjectsSdk extends SdkBase {
5
- /**
6
- * Creates a project in a user space.
7
- *
8
- * @param space The user space key
9
- * @param project THe project to create
10
- * @returns The key of the created project.
11
- */
12
- async create(space, project) {
13
- const { token } = this.sdk;
14
- const url = this.sdk.getUrl(RouteBuilder.spaceProjects(space));
15
- const body = JSON.stringify(project);
16
- const result = await this.sdk.http.post(url.toString(), { token, body });
17
- this.inspectCommonStatusCodes(result.status);
18
- const E_PREFIX = 'Unable to create a project. ';
19
- if (result.status !== 204) {
20
- this.logInvalidResponse(result);
21
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
22
- }
23
- const location = result.headers.get('location');
24
- if (!location) {
25
- throw new Error(`${E_PREFIX}${E_RESPONSE_LOCATION}`);
26
- }
27
- const id = location.split('/').pop();
28
- return id;
29
- }
30
- /**
31
- * Reads a project definition from the store.
32
- * @param space The user space key
33
- * @param project The project key
34
- * @returns The definition of the project.
35
- */
36
- async read(space, project) {
37
- const { token } = this.sdk;
38
- const url = this.sdk.getUrl(RouteBuilder.spaceProject(space, project));
39
- const result = await this.sdk.http.get(url.toString(), { token });
40
- this.inspectCommonStatusCodes(result.status);
41
- const E_PREFIX = 'Unable to read a project. ';
42
- if (result.status !== 200) {
43
- this.logInvalidResponse(result);
44
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
45
- }
46
- if (!result.body) {
47
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
48
- }
49
- let data;
50
- try {
51
- data = JSON.parse(result.body);
52
- }
53
- catch (e) {
54
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
55
- }
56
- if (data.kind !== HttpProjectKind) {
57
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
58
- }
59
- return data;
60
- }
61
- /**
62
- * Lists projects in the space
63
- *
64
- * @param space The user space key
65
- * @param options Optional query options.
66
- */
67
- async list(space, options) {
68
- const { token } = this.sdk;
69
- const url = this.sdk.getUrl(RouteBuilder.spaceProjects(space));
70
- this.sdk.appendListOptions(url, options);
71
- const result = await this.sdk.http.get(url.toString(), { token });
72
- this.inspectCommonStatusCodes(result.status);
73
- const E_PREFIX = 'Unable to list projects. ';
74
- if (result.status !== 200) {
75
- this.logInvalidResponse(result);
76
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
77
- }
78
- if (!result.body) {
79
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
80
- }
81
- let data;
82
- try {
83
- data = JSON.parse(result.body);
84
- }
85
- catch (e) {
86
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
87
- }
88
- if (!Array.isArray(data.data)) {
89
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
90
- }
91
- return data;
92
- }
93
- /**
94
- * Deletes a project form the store.
95
- *
96
- * @param space The key of the parent space.
97
- * @param project The key of the project to delete.
98
- */
99
- async delete(space, project) {
100
- const { token } = this.sdk;
101
- const url = this.sdk.getUrl(RouteBuilder.spaceProject(space, project));
102
- const result = await this.sdk.http.delete(url.toString(), { token });
103
- this.inspectCommonStatusCodes(result.status);
104
- const E_PREFIX = 'Unable to delete a project. ';
105
- if (result.status !== 204) {
106
- this.logInvalidResponse(result);
107
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
108
- }
109
- }
110
- /**
111
- * Patches a project in the store.
112
- * @param space The key of the parent user space
113
- * @param project The key of project to patch.
114
- * @param value The JSON patch to be processed.
115
- * @returns The JSON patch to revert the change using the `json8-patch` library
116
- */
117
- async patch(space, project, value) {
118
- const { token } = this.sdk;
119
- const url = this.sdk.getUrl(RouteBuilder.spaceProject(space, project));
120
- const body = JSON.stringify(value);
121
- const result = await this.sdk.http.patch(url.toString(), { token, body });
122
- this.inspectCommonStatusCodes(result.status);
123
- const E_PREFIX = 'Unable to patch a project. ';
124
- if (result.status !== 200) {
125
- this.logInvalidResponse(result);
126
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
127
- }
128
- if (!result.body) {
129
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
130
- }
131
- let data;
132
- try {
133
- data = JSON.parse(result.body);
134
- }
135
- catch (e) {
136
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
137
- }
138
- if (!data.revert) {
139
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
140
- }
141
- return data.revert;
142
- }
143
- }
144
- //# sourceMappingURL=ProjectsSdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectsSdk.js","sourceRoot":"","sources":["../../../../src/runtime/store/ProjectsSdk.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { JsonPatch } from 'json8-patch';
2
- import { SdkBase } from './SdkBase.js';
3
- import { IListOptions, IListResponse } from '../../models/Backend.js';
4
- import { IWorkspace, Workspace } from '../../models/Workspace.js';
5
- import { AccessOperation } from '../../models/store/Permission.js';
6
- import WebSocketNode from 'ws';
7
- export interface ISpaceCreateOptions {
8
- /**
9
- * Optional parent space id.
10
- * When set it creates a space under this parent.
11
- */
12
- parent?: string;
13
- }
14
- export declare class SpacesSdk extends SdkBase {
15
- /**
16
- * Lists spaces in the store.
17
- * @param options Optional query options.
18
- */
19
- list(options?: IListOptions): Promise<IListResponse>;
20
- /**
21
- * Creates a workspace in the store.
22
- * @param space The workspace definition.
23
- * @returns The key of the creates space.
24
- */
25
- create(space: IWorkspace | Workspace, opts?: ISpaceCreateOptions): Promise<string>;
26
- /**
27
- * Reads a user space definition from the store.
28
- * @param key The user space key
29
- * @returns The definition of the user space.
30
- */
31
- read(key: string): Promise<IWorkspace>;
32
- /**
33
- * Patches a user space in the store.
34
- * @param key The key of the user space to patch
35
- * @param value The JSON patch to be processed.
36
- * @returns The JSON patch to revert the change using the `json8-patch` library
37
- */
38
- patch(key: string, value: JsonPatch): Promise<JsonPatch>;
39
- /**
40
- * Deletes the space in the store.
41
- *
42
- * @param key The key of the space to delete.
43
- */
44
- delete(key: string): Promise<void>;
45
- /**
46
- * Updates the sharing options of the space.
47
- *
48
- * @param key The user space key
49
- * @param value The patch operation on the space's ACL
50
- */
51
- patchUsers(key: string, value: AccessOperation[]): Promise<void>;
52
- /**
53
- * Lists uses having access to the user space.
54
- *
55
- * @param key The user space key
56
- */
57
- listUsers(key: string): Promise<IListResponse>;
58
- /**
59
- * Creates a WS client that listens to the spaces events.
60
- */
61
- observeSpaces(): Promise<WebSocketNode | WebSocket>;
62
- }
@@ -1,194 +0,0 @@
1
- import { SdkBase, E_RESPONSE_STATUS, E_RESPONSE_NO_VALUE, E_INVALID_JSON, E_RESPONSE_UNKNOWN, E_RESPONSE_LOCATION } from './SdkBase.js';
2
- import { RouteBuilder } from './RouteBuilder.js';
3
- import { Kind as WorkspaceKind } from '../../models/Workspace.js';
4
- export class SpacesSdk extends SdkBase {
5
- /**
6
- * Lists spaces in the store.
7
- * @param options Optional query options.
8
- */
9
- async list(options) {
10
- const { token } = this.sdk;
11
- const url = this.sdk.getUrl(RouteBuilder.spaces());
12
- this.sdk.appendListOptions(url, options);
13
- const result = await this.sdk.http.get(url.toString(), { token });
14
- this.inspectCommonStatusCodes(result.status);
15
- const E_PREFIX = 'Unable to list spaces. ';
16
- if (result.status !== 200) {
17
- this.logInvalidResponse(result);
18
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
19
- }
20
- if (!result.body) {
21
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
22
- }
23
- let data;
24
- try {
25
- data = JSON.parse(result.body);
26
- }
27
- catch (e) {
28
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
29
- }
30
- if (!Array.isArray(data.data)) {
31
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
32
- }
33
- return data;
34
- }
35
- /**
36
- * Creates a workspace in the store.
37
- * @param space The workspace definition.
38
- * @returns The key of the creates space.
39
- */
40
- async create(space, opts = {}) {
41
- const { token } = this.sdk;
42
- const path = opts.parent ? RouteBuilder.space(opts.parent) : RouteBuilder.spaces();
43
- const url = this.sdk.getUrl(path);
44
- const body = JSON.stringify(space);
45
- const result = await this.sdk.http.post(url.toString(), { token, body });
46
- this.inspectCommonStatusCodes(result.status);
47
- const E_PREFIX = 'Unable to create a user space. ';
48
- if (result.status !== 204) {
49
- this.logInvalidResponse(result);
50
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
51
- }
52
- const location = result.headers.get('location');
53
- if (!location) {
54
- throw new Error(`${E_PREFIX}${E_RESPONSE_LOCATION}`);
55
- }
56
- const id = location.split('/').pop();
57
- return id;
58
- }
59
- /**
60
- * Reads a user space definition from the store.
61
- * @param key The user space key
62
- * @returns The definition of the user space.
63
- */
64
- async read(key) {
65
- const { token } = this.sdk;
66
- const url = this.sdk.getUrl(RouteBuilder.space(key));
67
- const result = await this.sdk.http.get(url.toString(), { token });
68
- this.inspectCommonStatusCodes(result.status);
69
- const E_PREFIX = 'Unable to read a user space. ';
70
- if (result.status !== 200) {
71
- this.logInvalidResponse(result);
72
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
73
- }
74
- if (!result.body) {
75
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
76
- }
77
- let data;
78
- try {
79
- data = JSON.parse(result.body);
80
- }
81
- catch (e) {
82
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
83
- }
84
- if (data.kind !== WorkspaceKind) {
85
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
86
- }
87
- return data;
88
- }
89
- /**
90
- * Patches a user space in the store.
91
- * @param key The key of the user space to patch
92
- * @param value The JSON patch to be processed.
93
- * @returns The JSON patch to revert the change using the `json8-patch` library
94
- */
95
- async patch(key, value) {
96
- const { token } = this.sdk;
97
- const url = this.sdk.getUrl(RouteBuilder.space(key));
98
- const body = JSON.stringify(value);
99
- const result = await this.sdk.http.patch(url.toString(), { token, body });
100
- this.inspectCommonStatusCodes(result.status);
101
- const E_PREFIX = 'Unable to patch a user space. ';
102
- if (result.status !== 200) {
103
- this.logInvalidResponse(result);
104
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
105
- }
106
- if (!result.body) {
107
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
108
- }
109
- let data;
110
- try {
111
- data = JSON.parse(result.body);
112
- }
113
- catch (e) {
114
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
115
- }
116
- if (!data.revert) {
117
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
118
- }
119
- return data.revert;
120
- }
121
- /**
122
- * Deletes the space in the store.
123
- *
124
- * @param key The key of the space to delete.
125
- */
126
- async delete(key) {
127
- const { token } = this.sdk;
128
- const url = this.sdk.getUrl(RouteBuilder.space(key));
129
- const result = await this.sdk.http.delete(url.toString(), { token });
130
- this.inspectCommonStatusCodes(result.status);
131
- const E_PREFIX = 'Unable to delete a user space. ';
132
- if (result.status !== 204) {
133
- this.logInvalidResponse(result);
134
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
135
- }
136
- }
137
- /**
138
- * Updates the sharing options of the space.
139
- *
140
- * @param key The user space key
141
- * @param value The patch operation on the space's ACL
142
- */
143
- async patchUsers(key, value) {
144
- const { token } = this.sdk;
145
- const url = this.sdk.getUrl(RouteBuilder.spaceUsers(key));
146
- const body = JSON.stringify(value);
147
- const result = await this.sdk.http.patch(url.toString(), { token, body });
148
- this.inspectCommonStatusCodes(result.status);
149
- const E_PREFIX = 'Unable to patch a user space. ';
150
- if (result.status !== 204) {
151
- this.logInvalidResponse(result);
152
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
153
- }
154
- }
155
- /**
156
- * Lists uses having access to the user space.
157
- *
158
- * @param key The user space key
159
- */
160
- async listUsers(key) {
161
- const { token } = this.sdk;
162
- const url = this.sdk.getUrl(RouteBuilder.spaceUsers(key));
163
- const result = await this.sdk.http.get(url.toString(), { token });
164
- this.inspectCommonStatusCodes(result.status);
165
- const E_PREFIX = 'Unable to list users in the space. ';
166
- if (result.status !== 200) {
167
- this.logInvalidResponse(result);
168
- throw new Error(`${E_PREFIX}${E_RESPONSE_STATUS}${result.status}`);
169
- }
170
- if (!result.body) {
171
- throw new Error(`${E_PREFIX}${E_RESPONSE_NO_VALUE}`);
172
- }
173
- let data;
174
- try {
175
- data = JSON.parse(result.body);
176
- }
177
- catch (e) {
178
- throw new Error(`${E_PREFIX}${E_INVALID_JSON}.`);
179
- }
180
- if (!Array.isArray(data.data)) {
181
- throw new Error(`${E_PREFIX}${E_RESPONSE_UNKNOWN}.`);
182
- }
183
- return data;
184
- }
185
- /**
186
- * Creates a WS client that listens to the spaces events.
187
- */
188
- async observeSpaces() {
189
- const { token } = this.sdk;
190
- const url = this.sdk.getUrl(RouteBuilder.spaces());
191
- return this.sdk.ws.createAndConnect(url.toString(), token);
192
- }
193
- }
194
- //# sourceMappingURL=SpacesSdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpacesSdk.js","sourceRoot":"","sources":["../../../../src/runtime/store/SpacesSdk.ts"],"names":[],"mappings":"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"}