@equinor/fusion-framework-module-services 5.1.1-msal-6cf764b628c2afdd64dfd06e42abc953d78556d2 → 5.1.1

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 (231) hide show
  1. package/CHANGELOG.md +103 -98
  2. package/dist/esm/bookmarks/api-version.js.map +1 -1
  3. package/dist/esm/bookmarks/client.js.map +1 -1
  4. package/dist/esm/bookmarks/endpoints/bookmark-apply.get.js.map +1 -1
  5. package/dist/esm/bookmarks/endpoints/bookmark.delete.js.map +1 -1
  6. package/dist/esm/bookmarks/endpoints/bookmark.get.js.map +1 -1
  7. package/dist/esm/bookmarks/endpoints/bookmark.patch.js.map +1 -1
  8. package/dist/esm/bookmarks/endpoints/bookmark.post.js.map +1 -1
  9. package/dist/esm/bookmarks/endpoints/user-bookmark-favourite.delete.js.map +1 -1
  10. package/dist/esm/bookmarks/endpoints/user-bookmark-favourite.head.js.map +1 -1
  11. package/dist/esm/bookmarks/endpoints/user-bookmark-favourite.post.js.map +1 -1
  12. package/dist/esm/bookmarks/endpoints/user-bookmarks.get.js.map +1 -1
  13. package/dist/esm/bookmarks/schemas.js +1 -3
  14. package/dist/esm/bookmarks/schemas.js.map +1 -1
  15. package/dist/esm/bookmarks/selectors.js.map +1 -1
  16. package/dist/esm/context/client.js +2 -2
  17. package/dist/esm/context/client.js.map +1 -1
  18. package/dist/esm/context/get/client.js.map +1 -1
  19. package/dist/esm/context/get/generate-endpoint.js +0 -1
  20. package/dist/esm/context/get/generate-endpoint.js.map +1 -1
  21. package/dist/esm/context/get/generate-parameters.js.map +1 -1
  22. package/dist/esm/context/get/types.js.map +1 -1
  23. package/dist/esm/context/query/client.js.map +1 -1
  24. package/dist/esm/context/query/generate-endpoint.js +0 -1
  25. package/dist/esm/context/query/generate-endpoint.js.map +1 -1
  26. package/dist/esm/context/query/generate-parameters.js.map +1 -1
  27. package/dist/esm/context/query/types.js.map +1 -1
  28. package/dist/esm/context/related/client.js.map +1 -1
  29. package/dist/esm/context/related/generate-endpoint.js +0 -1
  30. package/dist/esm/context/related/generate-endpoint.js.map +1 -1
  31. package/dist/esm/context/related/generate-parameters.js.map +1 -1
  32. package/dist/esm/context/related/types.js.map +1 -1
  33. package/dist/esm/context/static.js.map +1 -1
  34. package/dist/esm/errors.js.map +1 -1
  35. package/dist/esm/module.js.map +1 -1
  36. package/dist/esm/notification/client.js.map +1 -1
  37. package/dist/esm/notification/notification/delete/client.js.map +1 -1
  38. package/dist/esm/notification/notification/delete/generate-endpoint.js +0 -1
  39. package/dist/esm/notification/notification/delete/generate-endpoint.js.map +1 -1
  40. package/dist/esm/notification/notification/delete/generate-parameters.js.map +1 -1
  41. package/dist/esm/notification/notification/get/client.js.map +1 -1
  42. package/dist/esm/notification/notification/get/generate-endpoint.js +0 -1
  43. package/dist/esm/notification/notification/get/generate-endpoint.js.map +1 -1
  44. package/dist/esm/notification/notification/get/generate-parameters.js.map +1 -1
  45. package/dist/esm/notification/notification/getAll/client.js.map +1 -1
  46. package/dist/esm/notification/notification/getAll/generate-endpoint.js +0 -1
  47. package/dist/esm/notification/notification/getAll/generate-endpoint.js.map +1 -1
  48. package/dist/esm/notification/notification/getAll/generate-parameters.js.map +1 -1
  49. package/dist/esm/notification/notification/patch/client.js.map +1 -1
  50. package/dist/esm/notification/notification/patch/generate-endpoint.js +0 -1
  51. package/dist/esm/notification/notification/patch/generate-endpoint.js.map +1 -1
  52. package/dist/esm/notification/notification/patch/generate-parameters.js.map +1 -1
  53. package/dist/esm/notification/notification/post/client.js.map +1 -1
  54. package/dist/esm/notification/notification/post/generate-endpoint.js +0 -1
  55. package/dist/esm/notification/notification/post/generate-endpoint.js.map +1 -1
  56. package/dist/esm/notification/notification/post/generate-parameters.js.map +1 -1
  57. package/dist/esm/notification/settings/get/client.js.map +1 -1
  58. package/dist/esm/notification/settings/get/generate-endpoint.js +0 -1
  59. package/dist/esm/notification/settings/get/generate-endpoint.js.map +1 -1
  60. package/dist/esm/notification/settings/get/generate-parameters.js.map +1 -1
  61. package/dist/esm/notification/settings/put/client.js.map +1 -1
  62. package/dist/esm/notification/settings/put/generate-endpoint.js +0 -1
  63. package/dist/esm/notification/settings/put/generate-endpoint.js.map +1 -1
  64. package/dist/esm/notification/settings/put/generate-parameters.js.map +1 -1
  65. package/dist/esm/notification/static.js.map +1 -1
  66. package/dist/esm/people/client.js.map +1 -1
  67. package/dist/esm/people/person-details/client.js.map +1 -1
  68. package/dist/esm/people/person-details/generate-endpoint.js.map +1 -1
  69. package/dist/esm/people/person-details/generate-parameters.js.map +1 -1
  70. package/dist/esm/people/person-photo/client.js.map +1 -1
  71. package/dist/esm/people/person-photo/generate-endpoint.js.map +1 -1
  72. package/dist/esm/people/person-photo/generate-parameters.js.map +1 -1
  73. package/dist/esm/people/query/client.js.map +1 -1
  74. package/dist/esm/people/query/generate-endpoint.js.map +1 -1
  75. package/dist/esm/people/query/generate-parameters.js.map +1 -1
  76. package/dist/esm/people/static.js.map +1 -1
  77. package/dist/esm/people/utils.js.map +1 -1
  78. package/dist/esm/provider.js.map +1 -1
  79. package/dist/esm/utils.js.map +1 -1
  80. package/dist/esm/version.js +1 -1
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/dist/types/bookmarks/api-version.d.ts +2 -2
  83. package/dist/types/bookmarks/client.d.ts +8 -8
  84. package/dist/types/bookmarks/endpoints/bookmark-apply.get.d.ts +1 -1
  85. package/dist/types/bookmarks/endpoints/bookmark.delete.d.ts +1 -1
  86. package/dist/types/bookmarks/endpoints/bookmark.get.d.ts +1 -1
  87. package/dist/types/bookmarks/endpoints/bookmark.patch.d.ts +1 -1
  88. package/dist/types/bookmarks/endpoints/bookmark.post.d.ts +1 -1
  89. package/dist/types/bookmarks/endpoints/user-bookmark-favourite.delete.d.ts +1 -1
  90. package/dist/types/bookmarks/endpoints/user-bookmark-favourite.head.d.ts +1 -1
  91. package/dist/types/bookmarks/endpoints/user-bookmark-favourite.post.d.ts +1 -1
  92. package/dist/types/bookmarks/endpoints/user-bookmarks.get.d.ts +1 -1
  93. package/dist/types/bookmarks/selectors.d.ts +1 -1
  94. package/dist/types/bookmarks/types.d.ts +1 -1
  95. package/dist/types/configurator.d.ts +1 -1
  96. package/dist/types/context/client.d.ts +4 -4
  97. package/dist/types/context/get/client.d.ts +1 -1
  98. package/dist/types/context/get/types.d.ts +2 -2
  99. package/dist/types/context/query/client.d.ts +1 -1
  100. package/dist/types/context/query/generate-parameters.d.ts +1 -1
  101. package/dist/types/context/query/types.d.ts +2 -2
  102. package/dist/types/context/related/client.d.ts +1 -1
  103. package/dist/types/context/related/generate-parameters.d.ts +1 -1
  104. package/dist/types/context/related/types.d.ts +2 -2
  105. package/dist/types/context/static.d.ts +2 -2
  106. package/dist/types/module.d.ts +2 -2
  107. package/dist/types/notification/client.d.ts +9 -9
  108. package/dist/types/notification/notification/delete/client.d.ts +2 -2
  109. package/dist/types/notification/notification/delete/generate-parameters.d.ts +2 -2
  110. package/dist/types/notification/notification/delete/types.d.ts +3 -3
  111. package/dist/types/notification/notification/get/client.d.ts +2 -2
  112. package/dist/types/notification/notification/get/generate-parameters.d.ts +2 -2
  113. package/dist/types/notification/notification/get/types.d.ts +3 -3
  114. package/dist/types/notification/notification/getAll/client.d.ts +2 -2
  115. package/dist/types/notification/notification/getAll/generate-parameters.d.ts +2 -2
  116. package/dist/types/notification/notification/getAll/types.d.ts +3 -3
  117. package/dist/types/notification/notification/patch/client.d.ts +2 -2
  118. package/dist/types/notification/notification/patch/generate-parameters.d.ts +2 -2
  119. package/dist/types/notification/notification/patch/types.d.ts +3 -3
  120. package/dist/types/notification/notification/post/client.d.ts +2 -2
  121. package/dist/types/notification/notification/post/generate-parameters.d.ts +2 -2
  122. package/dist/types/notification/notification/post/types.d.ts +3 -3
  123. package/dist/types/notification/settings/get/client.d.ts +2 -2
  124. package/dist/types/notification/settings/get/generate-parameters.d.ts +2 -2
  125. package/dist/types/notification/settings/get/types.d.ts +3 -3
  126. package/dist/types/notification/settings/put/client.d.ts +2 -2
  127. package/dist/types/notification/settings/put/generate-parameters.d.ts +2 -2
  128. package/dist/types/notification/settings/put/types.d.ts +3 -3
  129. package/dist/types/notification/static.d.ts +2 -2
  130. package/dist/types/people/api-models.d.ts +2 -2
  131. package/dist/types/people/api-models.v2.d.ts +1 -1
  132. package/dist/types/people/api-models.v4.d.ts +1 -1
  133. package/dist/types/people/client.d.ts +4 -4
  134. package/dist/types/people/person-details/client.d.ts +1 -1
  135. package/dist/types/people/person-details/types.d.ts +1 -1
  136. package/dist/types/people/person-photo/client.d.ts +1 -1
  137. package/dist/types/people/person-photo/types.d.ts +2 -2
  138. package/dist/types/people/query/client.d.ts +1 -1
  139. package/dist/types/people/query/types.d.ts +2 -2
  140. package/dist/types/people/static.d.ts +2 -2
  141. package/dist/types/people/utils.d.ts +1 -1
  142. package/dist/types/provider.d.ts +3 -3
  143. package/dist/types/types.d.ts +1 -1
  144. package/dist/types/utils.d.ts +1 -1
  145. package/dist/types/version.d.ts +1 -1
  146. package/package.json +5 -5
  147. package/src/bookmarks/api-version.ts +2 -2
  148. package/src/bookmarks/client.ts +228 -231
  149. package/src/bookmarks/endpoints/bookmark-apply.get.ts +58 -58
  150. package/src/bookmarks/endpoints/bookmark.delete.ts +57 -57
  151. package/src/bookmarks/endpoints/bookmark.get.ts +62 -62
  152. package/src/bookmarks/endpoints/bookmark.patch.ts +78 -78
  153. package/src/bookmarks/endpoints/bookmark.post.ts +68 -68
  154. package/src/bookmarks/endpoints/user-bookmark-favourite.delete.ts +57 -57
  155. package/src/bookmarks/endpoints/user-bookmark-favourite.head.ts +57 -57
  156. package/src/bookmarks/endpoints/user-bookmark-favourite.post.ts +58 -58
  157. package/src/bookmarks/endpoints/user-bookmarks.get.ts +98 -98
  158. package/src/bookmarks/schemas.ts +54 -56
  159. package/src/bookmarks/selectors.ts +24 -24
  160. package/src/bookmarks/types.ts +6 -6
  161. package/src/configurator.ts +3 -3
  162. package/src/context/api-models.ts +19 -19
  163. package/src/context/client.ts +68 -58
  164. package/src/context/get/client.ts +18 -18
  165. package/src/context/get/generate-endpoint.ts +13 -14
  166. package/src/context/get/generate-parameters.ts +9 -9
  167. package/src/context/get/types.ts +20 -20
  168. package/src/context/query/client.ts +22 -22
  169. package/src/context/query/generate-endpoint.ts +43 -44
  170. package/src/context/query/generate-parameters.ts +10 -10
  171. package/src/context/query/types.ts +25 -25
  172. package/src/context/related/client.ts +22 -22
  173. package/src/context/related/generate-endpoint.ts +40 -41
  174. package/src/context/related/generate-parameters.ts +10 -10
  175. package/src/context/related/types.ts +27 -27
  176. package/src/context/static.ts +3 -3
  177. package/src/errors.ts +6 -6
  178. package/src/module.ts +50 -52
  179. package/src/notification/api-models.ts +36 -36
  180. package/src/notification/client.ts +131 -151
  181. package/src/notification/notification/delete/client.ts +22 -22
  182. package/src/notification/notification/delete/generate-endpoint.ts +13 -14
  183. package/src/notification/notification/delete/generate-parameters.ts +18 -18
  184. package/src/notification/notification/delete/types.ts +21 -21
  185. package/src/notification/notification/get/client.ts +19 -19
  186. package/src/notification/notification/get/generate-endpoint.ts +13 -14
  187. package/src/notification/notification/get/generate-parameters.ts +11 -11
  188. package/src/notification/notification/get/types.ts +21 -21
  189. package/src/notification/notification/getAll/client.ts +22 -22
  190. package/src/notification/notification/getAll/generate-endpoint.ts +13 -14
  191. package/src/notification/notification/getAll/generate-parameters.ts +11 -11
  192. package/src/notification/notification/getAll/types.ts +21 -21
  193. package/src/notification/notification/patch/client.ts +22 -22
  194. package/src/notification/notification/patch/generate-endpoint.ts +13 -14
  195. package/src/notification/notification/patch/generate-parameters.ts +18 -18
  196. package/src/notification/notification/patch/types.ts +22 -22
  197. package/src/notification/notification/post/client.ts +22 -22
  198. package/src/notification/notification/post/generate-endpoint.ts +13 -14
  199. package/src/notification/notification/post/generate-parameters.ts +18 -18
  200. package/src/notification/notification/post/types.ts +31 -31
  201. package/src/notification/settings/get/client.ts +22 -22
  202. package/src/notification/settings/get/generate-endpoint.ts +13 -14
  203. package/src/notification/settings/get/generate-parameters.ts +11 -11
  204. package/src/notification/settings/get/types.ts +21 -21
  205. package/src/notification/settings/put/client.ts +22 -22
  206. package/src/notification/settings/put/generate-endpoint.ts +13 -14
  207. package/src/notification/settings/put/generate-parameters.ts +20 -20
  208. package/src/notification/settings/put/types.ts +20 -20
  209. package/src/notification/static.ts +3 -3
  210. package/src/people/api-models.ts +30 -30
  211. package/src/people/api-models.v2.ts +27 -27
  212. package/src/people/api-models.v4.ts +79 -79
  213. package/src/people/client.ts +73 -77
  214. package/src/people/person-details/client.ts +21 -18
  215. package/src/people/person-details/generate-endpoint.ts +16 -16
  216. package/src/people/person-details/generate-parameters.ts +8 -8
  217. package/src/people/person-details/types.ts +13 -13
  218. package/src/people/person-photo/client.ts +19 -22
  219. package/src/people/person-photo/generate-endpoint.ts +13 -13
  220. package/src/people/person-photo/generate-parameters.ts +8 -8
  221. package/src/people/person-photo/types.ts +8 -8
  222. package/src/people/query/client.ts +20 -18
  223. package/src/people/query/generate-endpoint.ts +14 -14
  224. package/src/people/query/generate-parameters.ts +8 -8
  225. package/src/people/query/types.ts +10 -10
  226. package/src/people/static.ts +2 -2
  227. package/src/people/utils.ts +20 -20
  228. package/src/provider.ts +85 -85
  229. package/src/types.ts +34 -34
  230. package/src/utils.ts +22 -26
  231. package/src/version.ts +1 -1
package/src/provider.ts CHANGED
@@ -1,117 +1,117 @@
1
- import { IHttpClient } from '@equinor/fusion-framework-module-http';
2
- import { ClientMethod } from './types';
1
+ import type { IHttpClient } from '@equinor/fusion-framework-module-http';
2
+ import type { ClientMethod } from './types';
3
3
 
4
- import { ApiClientFactory } from './types';
4
+ import type { ApiClientFactory } from './types';
5
5
  import { ContextApiClient } from './context';
6
6
  import BookmarksApiClient from './bookmarks/client';
7
7
  import { NotificationApiClient } from './notification';
8
8
  import { PeopleApiClient } from './people/client';
9
9
 
10
10
  export interface IApiProvider<TClient extends IHttpClient = IHttpClient> {
11
- /**
12
- * @param method - Version of the service to use
13
- */
14
- createBookmarksClient<TMethod extends keyof ClientMethod>(
15
- method: TMethod,
16
- ): Promise<BookmarksApiClient<TMethod, TClient>>;
11
+ /**
12
+ * @param method - Version of the service to use
13
+ */
14
+ createBookmarksClient<TMethod extends keyof ClientMethod>(
15
+ method: TMethod,
16
+ ): Promise<BookmarksApiClient<TMethod, TClient>>;
17
17
 
18
- /**
19
- * @param method - Version of the service to use
20
- */
21
- createContextClient<TMethod extends keyof ClientMethod>(
22
- method: TMethod,
23
- ): Promise<ContextApiClient<TMethod, TClient>>;
24
- /**
25
- * @param method - Version of the service to use
26
- */
27
- createNotificationClient<TMethod extends keyof ClientMethod>(
28
- method: TMethod,
29
- ): Promise<NotificationApiClient<TMethod, TClient>>;
30
- /**
31
- * @param method - Version of the service to use
32
- */
33
- createPeopleClient(): Promise<PeopleApiClient<TClient>>;
18
+ /**
19
+ * @param method - Version of the service to use
20
+ */
21
+ createContextClient<TMethod extends keyof ClientMethod>(
22
+ method: TMethod,
23
+ ): Promise<ContextApiClient<TMethod, TClient>>;
24
+ /**
25
+ * @param method - Version of the service to use
26
+ */
27
+ createNotificationClient<TMethod extends keyof ClientMethod>(
28
+ method: TMethod,
29
+ ): Promise<NotificationApiClient<TMethod, TClient>>;
30
+ /**
31
+ * @param method - Version of the service to use
32
+ */
33
+ createPeopleClient(): Promise<PeopleApiClient<TClient>>;
34
34
  }
35
35
 
36
36
  type ApiProviderCtorArgs<TClient extends IHttpClient = IHttpClient> = {
37
- /** method for creating IHttpClients for api clients */
38
- createClient: ApiClientFactory<TClient>;
37
+ /** method for creating IHttpClients for api clients */
38
+ createClient: ApiClientFactory<TClient>;
39
39
  };
40
40
 
41
41
  // TODO move to own file
42
42
  type ApiProviderErrorResponse = {
43
- type: ResponseType;
44
- status: number;
45
- statusText: string;
46
- headers: Headers;
47
- url: string;
48
- data: unknown;
43
+ type: ResponseType;
44
+ status: number;
45
+ statusText: string;
46
+ headers: Headers;
47
+ url: string;
48
+ data: unknown;
49
49
  };
50
50
 
51
51
  // TODO move to own file
52
52
  export class ApiProviderError extends Error {
53
- readonly response: ApiProviderErrorResponse;
53
+ readonly response: ApiProviderErrorResponse;
54
54
 
55
- constructor(msg: string, response: ApiProviderErrorResponse, options?: ErrorOptions) {
56
- super(msg, options);
57
- this.response = response;
58
- this.name = 'ApiProviderError';
59
- }
55
+ constructor(msg: string, response: ApiProviderErrorResponse, options?: ErrorOptions) {
56
+ super(msg, options);
57
+ this.response = response;
58
+ this.name = 'ApiProviderError';
59
+ }
60
60
  }
61
61
 
62
62
  // TODO move to own file
63
63
  const validateResponse = async (response: Response) => {
64
- if (!response.ok) {
65
- const { headers, status, statusText, type, url, bodyUsed } = response;
66
- const isJson = headers.get('content-type')?.match(/application\/(\w*)?[+]?json/);
67
- const data = !bodyUsed && (await (isJson ? response.json() : response.text()));
68
- throw new ApiProviderError('failed to execute request, response was not ok', {
69
- headers,
70
- status,
71
- statusText,
72
- type,
73
- url,
74
- data,
75
- });
76
- }
64
+ if (!response.ok) {
65
+ const { headers, status, statusText, type, url, bodyUsed } = response;
66
+ const isJson = headers.get('content-type')?.match(/application\/(\w*)?[+]?json/);
67
+ const data = !bodyUsed && (await (isJson ? response.json() : response.text()));
68
+ throw new ApiProviderError('failed to execute request, response was not ok', {
69
+ headers,
70
+ status,
71
+ statusText,
72
+ type,
73
+ url,
74
+ data,
75
+ });
76
+ }
77
77
  };
78
78
 
79
79
  export class ApiProvider<TClient extends IHttpClient = IHttpClient>
80
- implements IApiProvider<TClient>
80
+ implements IApiProvider<TClient>
81
81
  {
82
- protected _createClientFn: ApiClientFactory<TClient>;
83
- constructor({ createClient }: ApiProviderCtorArgs<TClient>) {
84
- this._createClientFn = createClient;
85
- }
82
+ protected _createClientFn: ApiClientFactory<TClient>;
83
+ constructor({ createClient }: ApiProviderCtorArgs<TClient>) {
84
+ this._createClientFn = createClient;
85
+ }
86
86
 
87
- public async createNotificationClient<TMethod extends keyof ClientMethod>(
88
- method: TMethod,
89
- ): Promise<NotificationApiClient<TMethod, TClient>> {
90
- const httpClient = await this._createClientFn('notification');
91
- httpClient.responseHandler.add('validate_api_request', validateResponse);
92
- return new NotificationApiClient(httpClient, method);
93
- }
87
+ public async createNotificationClient<TMethod extends keyof ClientMethod>(
88
+ method: TMethod,
89
+ ): Promise<NotificationApiClient<TMethod, TClient>> {
90
+ const httpClient = await this._createClientFn('notification');
91
+ httpClient.responseHandler.add('validate_api_request', validateResponse);
92
+ return new NotificationApiClient(httpClient, method);
93
+ }
94
94
 
95
- public async createBookmarksClient<TMethod extends keyof ClientMethod>(
96
- method: TMethod,
97
- ): Promise<BookmarksApiClient<TMethod, TClient>> {
98
- const httpClient = await this._createClientFn('bookmarks');
99
- // TODO: update when new ResponseOperator is available
100
- // will fail because 'HEAD' will return 404 when no bookmarks are found
101
- // httpClient.responseHandler.add('validate_api_request', validateResponse);
102
- return new BookmarksApiClient(httpClient, method);
103
- }
95
+ public async createBookmarksClient<TMethod extends keyof ClientMethod>(
96
+ method: TMethod,
97
+ ): Promise<BookmarksApiClient<TMethod, TClient>> {
98
+ const httpClient = await this._createClientFn('bookmarks');
99
+ // TODO: update when new ResponseOperator is available
100
+ // will fail because 'HEAD' will return 404 when no bookmarks are found
101
+ // httpClient.responseHandler.add('validate_api_request', validateResponse);
102
+ return new BookmarksApiClient(httpClient, method);
103
+ }
104
104
 
105
- public async createContextClient<TMethod extends keyof ClientMethod>(
106
- method: TMethod,
107
- ): Promise<ContextApiClient<TMethod, TClient>> {
108
- const httpClient = await this._createClientFn('context');
109
- httpClient.responseHandler.add('validate_api_request', validateResponse);
110
- return new ContextApiClient(httpClient, method);
111
- }
112
- public async createPeopleClient(): Promise<PeopleApiClient<TClient>> {
113
- const httpClient = await this._createClientFn('people');
114
- httpClient.responseHandler.add('validate_api_request', validateResponse);
115
- return new PeopleApiClient(httpClient);
116
- }
105
+ public async createContextClient<TMethod extends keyof ClientMethod>(
106
+ method: TMethod,
107
+ ): Promise<ContextApiClient<TMethod, TClient>> {
108
+ const httpClient = await this._createClientFn('context');
109
+ httpClient.responseHandler.add('validate_api_request', validateResponse);
110
+ return new ContextApiClient(httpClient, method);
111
+ }
112
+ public async createPeopleClient(): Promise<PeopleApiClient<TClient>> {
113
+ const httpClient = await this._createClientFn('people');
114
+ httpClient.responseHandler.add('validate_api_request', validateResponse);
115
+ return new PeopleApiClient(httpClient);
116
+ }
117
117
  }
package/src/types.ts CHANGED
@@ -1,8 +1,8 @@
1
- import {
2
- ClientRequestInit,
3
- IHttpClient,
4
- StreamResponse,
5
- BlobResult,
1
+ import type {
2
+ ClientRequestInit,
3
+ IHttpClient,
4
+ StreamResponse,
5
+ BlobResult,
6
6
  } from '@equinor/fusion-framework-module-http/client';
7
7
 
8
8
  /**
@@ -12,7 +12,7 @@ import {
12
12
  * @returns A Promise that resolves to an instance of the HTTP client.
13
13
  */
14
14
  export type ApiClientFactory<TClient extends IHttpClient = IHttpClient> = (
15
- name: string,
15
+ name: string,
16
16
  ) => Promise<TClient>;
17
17
 
18
18
  /**
@@ -24,27 +24,27 @@ export type ApiClientFactory<TClient extends IHttpClient = IHttpClient> = (
24
24
  * @param init - Optional initialization options for the API client request.
25
25
  */
26
26
  export type ApiClientArguments<TClient extends IHttpClient, TResult = unknown> = [
27
- path: string,
28
- init?: ClientRequestInit<TClient, TResult>,
27
+ path: string,
28
+ init?: ClientRequestInit<TClient, TResult>,
29
29
  ];
30
30
 
31
31
  /**
32
32
  * Execute methods on the IHttpClient
33
33
  */
34
34
  export type ClientMethod<T = unknown> = {
35
- /**
36
- * Fetch JSON data from a service
37
- */
38
- json: Promise<T>;
39
- /**
40
- * Fetch JSON data from a service as observable
41
- */
42
- json$: StreamResponse<T>;
35
+ /**
36
+ * Fetch JSON data from a service
37
+ */
38
+ json: Promise<T>;
39
+ /**
40
+ * Fetch JSON data from a service as observable
41
+ */
42
+ json$: StreamResponse<T>;
43
43
  };
44
44
 
45
45
  export type ClientDataMethod<T extends BlobResult = BlobResult> = {
46
- blob: Promise<T>;
47
- blob$: StreamResponse<T>;
46
+ blob: Promise<T>;
47
+ blob$: StreamResponse<T>;
48
48
  };
49
49
 
50
50
  export type ClientMethodType = keyof ClientMethod;
@@ -97,16 +97,16 @@ export type ClientMethodType = keyof ClientMethod;
97
97
  * values are a subset of `AllowedTypes`.
98
98
  */
99
99
  export type FilterAllowedApiVersions<
100
- TAvailableTypes extends Record<string, string>,
101
- TAllowedTypes extends string | number | symbol = keyof TAvailableTypes,
100
+ TAvailableTypes extends Record<string, string>,
101
+ TAllowedTypes extends string | number | symbol = keyof TAvailableTypes,
102
102
  > = {
103
- [K in keyof TAvailableTypes]: TAvailableTypes extends Record<K, infer V>
104
- ? K extends TAllowedTypes
105
- ? K | V
106
- : V extends TAllowedTypes
107
- ? V | K
108
- : never
109
- : never;
103
+ [K in keyof TAvailableTypes]: TAvailableTypes extends Record<K, infer V>
104
+ ? K extends TAllowedTypes
105
+ ? K | V
106
+ : V extends TAllowedTypes
107
+ ? V | K
108
+ : never
109
+ : never;
110
110
  }[keyof TAvailableTypes];
111
111
 
112
112
  /**
@@ -118,11 +118,11 @@ export type FilterAllowedApiVersions<
118
118
  * @returns The API version type if it is available and allowed, otherwise `never`.
119
119
  */
120
120
  export type ExtractApiVersion<
121
- TAvailableTypes extends Record<string, string>,
122
- TVersion extends string,
123
- TAllowedTypes extends string | number | symbol = FilterAllowedApiVersions<TAvailableTypes>,
121
+ TAvailableTypes extends Record<string, string>,
122
+ TVersion extends string,
123
+ TAllowedTypes extends string | number | symbol = FilterAllowedApiVersions<TAvailableTypes>,
124
124
  > = TVersion extends keyof TAvailableTypes
125
- ? TAvailableTypes[TVersion]
126
- : TVersion extends TAllowedTypes
127
- ? TVersion
128
- : never;
125
+ ? TAvailableTypes[TVersion]
126
+ : TVersion extends TAllowedTypes
127
+ ? TVersion
128
+ : never;
package/src/utils.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { z } from 'zod';
1
+ import type { z } from 'zod';
2
2
 
3
- import { FetchResponse } from '@equinor/fusion-framework-module-http';
3
+ import type { FetchResponse } from '@equinor/fusion-framework-module-http';
4
4
  import {
5
- type ResponseSelector,
6
- jsonSelector,
5
+ type ResponseSelector,
6
+ jsonSelector,
7
7
  } from '@equinor/fusion-framework-module-http/selectors';
8
8
 
9
9
  import type { ExtractApiVersion } from './types';
@@ -16,25 +16,21 @@ import type { ExtractApiVersion } from './types';
16
16
  * @returns The extracted API version, or throws an error if the version is not supported.
17
17
  */
18
18
  export const extractVersion = <
19
- TApiVersions extends Record<string, string>,
20
- TAllowedApiVersion extends string,
21
- TVersion extends string,
19
+ TApiVersions extends Record<string, string>,
20
+ TAllowedApiVersion extends string,
21
+ TVersion extends string,
22
22
  >(
23
- apiVersions: TApiVersions,
24
- version: TVersion,
23
+ apiVersions: TApiVersions,
24
+ version: TVersion,
25
25
  ): ExtractApiVersion<TApiVersions, TVersion, TAllowedApiVersion> => {
26
- if (version in apiVersions) {
27
- return apiVersions[version] as ExtractApiVersion<
28
- TApiVersions,
29
- TVersion,
30
- TAllowedApiVersion
31
- >;
32
- }
33
- const extractedVersion = Object.values(apiVersions).find((v) => v === version);
34
- if (!extractedVersion) {
35
- throw new Error(`Version ${version} is not supported`);
36
- }
37
- return extractedVersion as ExtractApiVersion<TApiVersions, TVersion, TAllowedApiVersion>;
26
+ if (version in apiVersions) {
27
+ return apiVersions[version] as ExtractApiVersion<TApiVersions, TVersion, TAllowedApiVersion>;
28
+ }
29
+ const extractedVersion = Object.values(apiVersions).find((v) => v === version);
30
+ if (!extractedVersion) {
31
+ throw new Error(`Version ${version} is not supported`);
32
+ }
33
+ return extractedVersion as ExtractApiVersion<TApiVersions, TVersion, TAllowedApiVersion>;
38
34
  };
39
35
 
40
36
  /**
@@ -44,8 +40,8 @@ export const extractVersion = <
44
40
  * @returns A response selector function that parses the response body using the provided schema.
45
41
  */
46
42
  export const schemaSelector =
47
- <Output, Def extends z.ZodTypeDef, Input>(
48
- schema: z.ZodSchema<Output, Def, Input>,
49
- ): ResponseSelector<Output> =>
50
- async (response: FetchResponse<Input>) =>
51
- schema.parse(await jsonSelector(response));
43
+ <Output, Def extends z.ZodTypeDef, Input>(
44
+ schema: z.ZodSchema<Output, Def, Input>,
45
+ ): ResponseSelector<Output> =>
46
+ async (response: FetchResponse<Input>) =>
47
+ schema.parse(await jsonSelector(response));
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '5.1.0';
2
+ export const version = '5.1.1';