@hahnpro/hpc-api 5.3.4 → 2024.4.0-0

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 (196) hide show
  1. package/package.json +8 -24
  2. package/src/index.d.ts +20 -0
  3. package/src/index.js +20 -0
  4. package/{dist → src/lib}/Queue.js +2 -7
  5. package/src/lib/api-base.js +6 -0
  6. package/src/lib/api.js +60 -0
  7. package/src/lib/asset.interface.js +1 -0
  8. package/src/lib/asset.service.d.ts +24 -0
  9. package/src/lib/asset.service.js +51 -0
  10. package/{dist → src/lib}/assettypes.service.d.ts +4 -4
  11. package/src/lib/assettypes.service.js +24 -0
  12. package/{dist → src/lib}/content.interface.js +2 -5
  13. package/src/lib/content.service.d.ts +23 -0
  14. package/src/lib/content.service.js +49 -0
  15. package/src/lib/data.interface.d.ts +38 -0
  16. package/src/lib/data.interface.js +3 -0
  17. package/src/lib/data.service.d.ts +27 -0
  18. package/src/lib/data.service.js +57 -0
  19. package/src/lib/endpoint.interface.js +1 -0
  20. package/src/lib/endpoint.service.d.ts +8 -0
  21. package/src/lib/endpoint.service.js +12 -0
  22. package/src/lib/events.interface.js +1 -0
  23. package/{dist → src/lib}/events.service.d.ts +2 -2
  24. package/src/lib/events.service.js +9 -0
  25. package/src/lib/flow-deployment.interface.js +1 -0
  26. package/{dist → src/lib}/flow-deployment.service.d.ts +15 -13
  27. package/src/lib/flow-deployment.service.js +68 -0
  28. package/src/lib/flow-function.interface.js +1 -0
  29. package/src/lib/flow-function.service.d.ts +11 -0
  30. package/src/lib/flow-function.service.js +20 -0
  31. package/src/lib/flow-module.interface.js +1 -0
  32. package/src/lib/flow-module.service.d.ts +11 -0
  33. package/{dist → src/lib}/flow-module.service.js +9 -12
  34. package/src/lib/flow.interface.js +1 -0
  35. package/src/lib/flow.service.d.ts +26 -0
  36. package/src/lib/flow.service.js +49 -0
  37. package/{dist → src/lib}/http.service.d.ts +12 -6
  38. package/src/lib/http.service.js +179 -0
  39. package/src/lib/label.interface.js +1 -0
  40. package/src/lib/label.service.d.ts +9 -0
  41. package/src/lib/label.service.js +15 -0
  42. package/src/lib/mock/api-base.mock.js +7 -0
  43. package/src/lib/mock/api.mock.js +199 -0
  44. package/{dist → src/lib}/mock/asset.mock.service.js +30 -41
  45. package/{dist → src/lib}/mock/assetTypes.mock.service.js +19 -27
  46. package/{dist → src/lib}/mock/content.mock.service.js +21 -24
  47. package/src/lib/mock/data.mock.service.js +93 -0
  48. package/{dist → src/lib}/mock/endpoint.mock.service.js +2 -6
  49. package/src/lib/mock/events.mock.service.js +10 -0
  50. package/src/lib/mock/flow-deployment.mock.service.js +118 -0
  51. package/{dist → src/lib}/mock/flow-functions.mock.service.js +12 -21
  52. package/src/lib/mock/flow-modules.mock.service.js +20 -0
  53. package/src/lib/mock/flow.mock.service.js +81 -0
  54. package/src/lib/mock/index.js +11 -0
  55. package/src/lib/mock/label.mock.service.js +13 -0
  56. package/src/lib/mock/notification.mock.service.js +7 -0
  57. package/src/lib/mock/secret.mock.service.js +28 -0
  58. package/src/lib/mock/task.mock.service.js +32 -0
  59. package/{dist → src/lib}/mock/timeseries.mock.service.js +40 -49
  60. package/{dist → src/lib}/mock/trash.mock.service.js +8 -15
  61. package/src/lib/mock/user.mock.service.js +10 -0
  62. package/{dist → src/lib}/mock/vault.mock.service.js +2 -6
  63. package/src/lib/notification.interface.js +1 -0
  64. package/src/lib/notification.service.js +6 -0
  65. package/src/lib/proxy.service.d.ts +11 -0
  66. package/{dist → src/lib}/proxy.service.js +1 -5
  67. package/src/lib/resource.interface.js +1 -0
  68. package/src/lib/schema.interface.js +1 -0
  69. package/src/lib/secret.interface.js +1 -0
  70. package/src/lib/secret.service.js +15 -0
  71. package/src/lib/storage.interface.js +1 -0
  72. package/src/lib/task.interface.js +1 -0
  73. package/{dist → src/lib}/task.service.d.ts +2 -2
  74. package/src/lib/task.service.js +19 -0
  75. package/src/lib/timeseries.interface.js +1 -0
  76. package/{dist → src/lib}/timeseries.service.d.ts +10 -8
  77. package/src/lib/timeseries.service.js +92 -0
  78. package/{dist → src/lib}/token-set.d.ts +3 -1
  79. package/src/lib/token-set.js +23 -0
  80. package/{dist → src/lib}/trash.service.js +2 -6
  81. package/src/lib/user-settings.interface.js +1 -0
  82. package/src/lib/user.service.d.ts +11 -0
  83. package/src/lib/user.service.js +26 -0
  84. package/src/lib/vault.interface.js +1 -0
  85. package/{dist → src/lib}/vault.service.d.ts +2 -2
  86. package/src/lib/vault.service.js +10 -0
  87. package/LICENSE +0 -21
  88. package/dist/api-base.js +0 -10
  89. package/dist/api.js +0 -62
  90. package/dist/asset.interface.js +0 -2
  91. package/dist/asset.service.d.ts +0 -24
  92. package/dist/asset.service.js +0 -53
  93. package/dist/assettypes.service.js +0 -28
  94. package/dist/content.service.d.ts +0 -23
  95. package/dist/content.service.js +0 -50
  96. package/dist/data.interface.d.ts +0 -31
  97. package/dist/data.interface.js +0 -6
  98. package/dist/data.service.d.ts +0 -21
  99. package/dist/data.service.js +0 -50
  100. package/dist/endpoint.interface.js +0 -2
  101. package/dist/endpoint.service.d.ts +0 -8
  102. package/dist/endpoint.service.js +0 -16
  103. package/dist/events.interface.js +0 -2
  104. package/dist/events.service.js +0 -13
  105. package/dist/flow-deployment.interface.js +0 -2
  106. package/dist/flow-deployment.service.js +0 -74
  107. package/dist/flow-function.interface.js +0 -2
  108. package/dist/flow-function.service.d.ts +0 -11
  109. package/dist/flow-function.service.js +0 -23
  110. package/dist/flow-module.interface.js +0 -2
  111. package/dist/flow-module.service.d.ts +0 -11
  112. package/dist/flow.interface.js +0 -2
  113. package/dist/flow.service.d.ts +0 -24
  114. package/dist/flow.service.js +0 -54
  115. package/dist/http.service.js +0 -161
  116. package/dist/index.d.ts +0 -20
  117. package/dist/index.js +0 -23
  118. package/dist/label.interface.js +0 -2
  119. package/dist/label.service.d.ts +0 -9
  120. package/dist/label.service.js +0 -19
  121. package/dist/mock/api-base.mock.js +0 -11
  122. package/dist/mock/api.mock.js +0 -128
  123. package/dist/mock/data.mock.service.js +0 -96
  124. package/dist/mock/events.mock.service.js +0 -14
  125. package/dist/mock/flow-deployment.mock.service.js +0 -142
  126. package/dist/mock/flow-modules.mock.service.js +0 -27
  127. package/dist/mock/flow.mock.service.js +0 -93
  128. package/dist/mock/index.js +0 -14
  129. package/dist/mock/label.mock.service.js +0 -17
  130. package/dist/mock/notification.mock.service.js +0 -11
  131. package/dist/mock/secret.mock.service.js +0 -31
  132. package/dist/mock/task.mock.service.js +0 -37
  133. package/dist/mock/user.mock.service.js +0 -14
  134. package/dist/notification.interface.js +0 -2
  135. package/dist/notification.service.js +0 -10
  136. package/dist/proxy.service.d.ts +0 -11
  137. package/dist/resource.interface.js +0 -2
  138. package/dist/schema.interface.js +0 -2
  139. package/dist/secret.interface.js +0 -2
  140. package/dist/secret.service.js +0 -19
  141. package/dist/storage.interface.js +0 -2
  142. package/dist/task.interface.js +0 -2
  143. package/dist/task.service.js +0 -22
  144. package/dist/timeseries.interface.js +0 -2
  145. package/dist/timeseries.service.js +0 -56
  146. package/dist/token-set.js +0 -23
  147. package/dist/user-settings.interface.js +0 -2
  148. package/dist/user.service.d.ts +0 -11
  149. package/dist/user.service.js +0 -33
  150. package/dist/vault.interface.js +0 -2
  151. package/dist/vault.service.js +0 -14
  152. package/{dist → src/lib}/Queue.d.ts +0 -0
  153. package/{dist → src/lib}/api-base.d.ts +0 -0
  154. package/{dist → src/lib}/api.d.ts +6 -6
  155. package/{dist → src/lib}/asset.interface.d.ts +0 -0
  156. package/{dist → src/lib}/content.interface.d.ts +0 -0
  157. package/{dist → src/lib}/endpoint.interface.d.ts +0 -0
  158. package/{dist → src/lib}/events.interface.d.ts +0 -0
  159. package/{dist → src/lib}/flow-deployment.interface.d.ts +1 -1
  160. package/{dist → src/lib}/flow-function.interface.d.ts +0 -0
  161. package/{dist → src/lib}/flow-module.interface.d.ts +0 -0
  162. package/{dist → src/lib}/flow.interface.d.ts +1 -1
  163. package/{dist → src/lib}/label.interface.d.ts +0 -0
  164. package/{dist → src/lib}/mock/api-base.mock.d.ts +0 -0
  165. package/{dist → src/lib}/mock/api.mock.d.ts +18 -18
  166. package/{dist → src/lib}/mock/asset.mock.service.d.ts +1 -1
  167. package/{dist → src/lib}/mock/assetTypes.mock.service.d.ts +0 -0
  168. package/{dist → src/lib}/mock/content.mock.service.d.ts +1 -1
  169. package/{dist → src/lib}/mock/data.mock.service.d.ts +0 -0
  170. package/{dist → src/lib}/mock/endpoint.mock.service.d.ts +0 -0
  171. package/{dist → src/lib}/mock/events.mock.service.d.ts +0 -0
  172. package/{dist → src/lib}/mock/flow-deployment.mock.service.d.ts +2 -2
  173. package/{dist → src/lib}/mock/flow-functions.mock.service.d.ts +1 -1
  174. package/{dist → src/lib}/mock/flow-modules.mock.service.d.ts +2 -2
  175. package/{dist → src/lib}/mock/flow.mock.service.d.ts +1 -1
  176. package/{dist → src/lib}/mock/index.d.ts +0 -0
  177. package/{dist → src/lib}/mock/label.mock.service.d.ts +1 -1
  178. package/{dist → src/lib}/mock/notification.mock.service.d.ts +1 -1
  179. package/{dist → src/lib}/mock/secret.mock.service.d.ts +1 -1
  180. package/{dist → src/lib}/mock/task.mock.service.d.ts +0 -0
  181. package/{dist → src/lib}/mock/timeseries.mock.service.d.ts +0 -0
  182. package/{dist → src/lib}/mock/trash.mock.service.d.ts +1 -1
  183. package/{dist → src/lib}/mock/user.mock.service.d.ts +0 -0
  184. package/{dist → src/lib}/mock/vault.mock.service.d.ts +1 -1
  185. package/{dist → src/lib}/notification.interface.d.ts +0 -0
  186. package/{dist → src/lib}/notification.service.d.ts +1 -1
  187. /package/{dist → src/lib}/resource.interface.d.ts +0 -0
  188. /package/{dist → src/lib}/schema.interface.d.ts +0 -0
  189. /package/{dist → src/lib}/secret.interface.d.ts +0 -0
  190. /package/{dist → src/lib}/secret.service.d.ts +0 -0
  191. /package/{dist → src/lib}/storage.interface.d.ts +0 -0
  192. /package/{dist → src/lib}/task.interface.d.ts +0 -0
  193. /package/{dist → src/lib}/timeseries.interface.d.ts +0 -0
  194. /package/{dist → src/lib}/trash.service.d.ts +0 -0
  195. /package/{dist → src/lib}/user-settings.interface.d.ts +0 -0
  196. /package/{dist → src/lib}/vault.interface.d.ts +0 -0
@@ -1,21 +0,0 @@
1
- import { APIBase } from './api-base';
2
- import { DataInterface, Filter, Paginated, RequestParameter } from './data.interface';
3
- export declare class DataService<T> extends APIBase implements DataInterface<T> {
4
- addOne(dto: any): Promise<T>;
5
- addMany(dto: any[]): Promise<T[]>;
6
- getOne(id: string, options?: any): Promise<T>;
7
- getMany(params?: RequestParameter): Promise<Paginated<T[]>>;
8
- /**
9
- * Filters the elements by the passed properties. The object with these properties has to be of the form:
10
- * {
11
- * propertyName: string | string[] | { from: Date, to: Date },
12
- * ...
13
- * }.
14
- * @param filter The Object with the properties to filter by.
15
- * @param params Other request parameters.
16
- */
17
- getManyFiltered(filter: Filter, params?: RequestParameter): Promise<Paginated<T[]>>;
18
- updateOne(id: string, dto: any): Promise<T>;
19
- deleteOne(id: string, force?: boolean): Promise<any>;
20
- private getFilterString;
21
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataService = void 0;
4
- const api_base_1 = require("./api-base");
5
- const data_interface_1 = require("./data.interface");
6
- class DataService extends api_base_1.APIBase {
7
- addOne(dto) {
8
- return this.httpClient.post(this.basePath, dto);
9
- }
10
- addMany(dto) {
11
- return this.httpClient.post(`${this.basePath}/many`, dto);
12
- }
13
- getOne(id, options = {}) {
14
- const params = options.populate ? { populate: options.populate } : {};
15
- return this.httpClient.get(`${this.basePath}/${id}`, { params });
16
- }
17
- getMany(params = {}) {
18
- params.limit = params.limit || 0;
19
- params.page = params.page || 1;
20
- return this.httpClient.get(`${this.basePath}`, { params });
21
- }
22
- getManyFiltered(filter, params = {}) {
23
- params.filter = this.getFilterString(filter);
24
- return this.getMany(params);
25
- }
26
- updateOne(id, dto) {
27
- return this.httpClient.put(`${this.basePath}/${id}`, dto);
28
- }
29
- deleteOne(id, force = false) {
30
- return this.httpClient.delete(`${this.basePath}/${id}`, { params: { force } });
31
- }
32
- getFilterString(filter) {
33
- const filters = [];
34
- for (const [key, value] of Object.entries(filter)) {
35
- if (value != null && value !== '') {
36
- if (typeof value === 'object' && (0, data_interface_1.instanceOfTimePeriod)(value)) {
37
- filters.push(`${key}>=${value.from.toISOString()};${key}<=${value.to.toISOString()}`);
38
- }
39
- else if (Array.isArray(value)) {
40
- filters.push(`${key}=@${value.join(',')}`);
41
- }
42
- else {
43
- filters.push(`${key}==${value}`);
44
- }
45
- }
46
- }
47
- return filters.join(';');
48
- }
49
- }
50
- exports.DataService = DataService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +0,0 @@
1
- import { HttpClient } from './http.service';
2
- import { DataService } from './data.service';
3
- import { Endpoint, NotificationPayload, EndpointLog } from './endpoint.interface';
4
- export declare class EndpointService extends DataService<Endpoint> {
5
- constructor(httpClient: HttpClient);
6
- sendNotification(endpointId: string, payload: NotificationPayload): Promise<void>;
7
- readLastLogByGroup(endpointId: string, group: string): Promise<EndpointLog>;
8
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EndpointService = void 0;
4
- const data_service_1 = require("./data.service");
5
- class EndpointService extends data_service_1.DataService {
6
- constructor(httpClient) {
7
- super(httpClient, '/notification/endpoints');
8
- }
9
- sendNotification(endpointId, payload) {
10
- return this.httpClient.post(`${this.basePath}/${endpointId}`, payload);
11
- }
12
- readLastLogByGroup(endpointId, group) {
13
- return this.httpClient.get(`${this.basePath}/${endpointId}/logs/${group}/last`);
14
- }
15
- }
16
- exports.EndpointService = EndpointService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventsService = void 0;
4
- const data_service_1 = require("./data.service");
5
- class EventsService extends data_service_1.DataService {
6
- constructor(httpClient) {
7
- super(httpClient, '/events');
8
- }
9
- getLastEventByAssetAndGroup(assetId, group) {
10
- return this.httpClient.get(`${this.basePath}/last/${assetId}/${group}`);
11
- }
12
- }
13
- exports.EventsService = EventsService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowDeploymentService = void 0;
4
- const tslib_1 = require("tslib");
5
- const ts_mixer_1 = require("ts-mixer");
6
- const api_base_1 = require("./api-base");
7
- const data_service_1 = require("./data.service");
8
- const trash_service_1 = require("./trash.service");
9
- let BaseService = class BaseService extends api_base_1.APIBase {
10
- };
11
- BaseService = tslib_1.__decorate([
12
- (0, ts_mixer_1.mix)(data_service_1.DataService, trash_service_1.TrashService)
13
- ], BaseService);
14
- class FlowDeploymentService extends BaseService {
15
- constructor(httpClient) {
16
- super(httpClient, '/flow/deployments');
17
- }
18
- addMany(dto) {
19
- const reqs = dto.map((v) => this.addOne(v));
20
- return Promise.all(reqs);
21
- }
22
- updateOne(id, dto, force = false) {
23
- return this.httpClient.put(`${this.basePath}/${id}`, dto, { params: { force } });
24
- }
25
- getDeploymentStatistics(id) {
26
- return this.httpClient.get(`${this.basePath}/${id}/statistics`);
27
- }
28
- getDeploymentMetrics(id, range = '12h', interval = '5m') {
29
- const params = { range, interval };
30
- return this.httpClient.get(`${this.basePath}/${id}/metrics`, { params });
31
- }
32
- getDeploymentLogs(id) {
33
- return this.httpClient.get(`${this.basePath}/${id}/logs`);
34
- }
35
- resolveReferences(id, recursive = true, types) {
36
- var _a;
37
- const params = { recursive, types: (_a = types === null || types === void 0 ? void 0 : types.join(',')) !== null && _a !== void 0 ? _a : undefined };
38
- return this.httpClient.get(`${this.basePath}/${id}/references`, { params });
39
- }
40
- updateStatus(id, desiredStatus) {
41
- return this.httpClient.put(`${this.basePath}/${id}/status`, { desiredStatus });
42
- }
43
- deleteOne(id) {
44
- return this.updateStatus(id, 'deleted');
45
- }
46
- waitForRunningStatus(id) {
47
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
48
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
49
- const esId = yield this.subscribeToStatus(id, (event) => {
50
- if (event.type === 'message' &&
51
- ['running', 'deployment failed', 'deleted', 'generating failed', 'updating failed', 'upgrading failed'].includes(event.data)) {
52
- this.httpClient.destroyEventSource(esId);
53
- if (event.data === 'running') {
54
- resolve();
55
- }
56
- else {
57
- reject(`Deployment in failed status: ${event.data}`);
58
- }
59
- }
60
- });
61
- }));
62
- });
63
- }
64
- addOne(dto) {
65
- return super.addOne(dto);
66
- }
67
- subscribeToStatus(id, listener, errorListener) {
68
- return this.httpClient.addEventSource(`${this.basePath}/${id}/status`, listener, errorListener);
69
- }
70
- subscribeToLogs(id, listener, errorListener) {
71
- return this.httpClient.addEventSource(`${this.basePath}/${id}/logs/subscribe`, listener, errorListener);
72
- }
73
- }
74
- exports.FlowDeploymentService = FlowDeploymentService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- import { DataService } from './data.service';
2
- import { FlowFunctionDto } from './flow-function.interface';
3
- import { HttpClient } from './http.service';
4
- import { Paginated } from './data.interface';
5
- export declare class FlowFunctionService extends DataService<FlowFunctionDto> {
6
- constructor(httpClient: HttpClient);
7
- addMany(dto: any[]): Promise<FlowFunctionDto[]>;
8
- getRevisions(fqn: string): Promise<Paginated<FlowFunctionDto[]>>;
9
- rollback(fqn: string, revisionId: string): Promise<FlowFunctionDto>;
10
- deleteRevision(fqn: string, revisionId: string): Promise<any>;
11
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowFunctionService = void 0;
4
- const data_service_1 = require("./data.service");
5
- class FlowFunctionService extends data_service_1.DataService {
6
- constructor(httpClient) {
7
- super(httpClient, '/flow/functions');
8
- }
9
- addMany(dto) {
10
- const reqs = dto.map((v) => this.addOne(v));
11
- return Promise.all(reqs);
12
- }
13
- getRevisions(fqn) {
14
- return this.httpClient.get(`${this.basePath}/${fqn}/revisions`);
15
- }
16
- rollback(fqn, revisionId) {
17
- return this.httpClient.put(`${this.basePath}/${fqn}/rollback`, { revisionId });
18
- }
19
- deleteRevision(fqn, revisionId) {
20
- return this.httpClient.delete(`${this.basePath}/${fqn}/revisions/${revisionId}`);
21
- }
22
- }
23
- exports.FlowFunctionService = FlowFunctionService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- import { DataService } from './data.service';
2
- import { FlowModule } from './flow-module.interface';
3
- import { HttpClient } from './http.service';
4
- import FormData from 'form-data';
5
- export declare class FlowModuleService extends DataService<FlowModule> {
6
- constructor(httpClient: HttpClient);
7
- deleteArtifact(name: string, version: string): Promise<FlowModule>;
8
- publish(form: FormData): Promise<unknown>;
9
- addOne(dto: any): Promise<FlowModule>;
10
- addMany(dto: any[]): Promise<FlowModule[]>;
11
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,24 +0,0 @@
1
- import { APIBase } from './api-base';
2
- import { Paginated, RequestParameter } from './data.interface';
3
- import { DataService } from './data.service';
4
- import { FlowDiagram, FlowDto } from './flow.interface';
5
- import { FlowDeployment } from './flow-deployment.interface';
6
- import { HttpClient } from './http.service';
7
- import { TrashService } from './trash.service';
8
- interface BaseService extends DataService<FlowDto>, TrashService<FlowDto> {
9
- }
10
- declare class BaseService extends APIBase {
11
- }
12
- export declare class FlowService extends BaseService {
13
- constructor(httpClient: HttpClient);
14
- addMany(dto: any[]): Promise<FlowDto[]>;
15
- getMany(params?: RequestParameter): Promise<Paginated<FlowDto[]>>;
16
- getOne(id: string, options?: any): Promise<FlowDto>;
17
- getFlowWithDiagram(diagramId: string): Promise<FlowDto>;
18
- getDiagramRevisions(id: string): Promise<FlowDiagram[]>;
19
- isDeploymentOnLatestDiagramVersion(depl: FlowDeployment): Promise<boolean>;
20
- getRevisions(id: string): Promise<Paginated<FlowDto[]>>;
21
- rollback(id: string, revisionId: string): Promise<FlowDto>;
22
- deleteRevision(id: string, revisionId: string): Promise<any>;
23
- }
24
- export {};
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowService = void 0;
4
- const tslib_1 = require("tslib");
5
- const ts_mixer_1 = require("ts-mixer");
6
- const api_base_1 = require("./api-base");
7
- const data_service_1 = require("./data.service");
8
- const trash_service_1 = require("./trash.service");
9
- let BaseService = class BaseService extends api_base_1.APIBase {
10
- };
11
- BaseService = tslib_1.__decorate([
12
- (0, ts_mixer_1.mix)(data_service_1.DataService, trash_service_1.TrashService)
13
- ], BaseService);
14
- class FlowService extends BaseService {
15
- constructor(httpClient) {
16
- super(httpClient, '/flows');
17
- }
18
- addMany(dto) {
19
- const reqs = dto.map((v) => this.addOne(v));
20
- return Promise.all(reqs);
21
- }
22
- getMany(params = {}) {
23
- params.populate = params.populate ? params.populate : 'none';
24
- return super.getMany(params);
25
- }
26
- getOne(id, options = {}) {
27
- options.populate = options.populate ? options.populate : 'none';
28
- return super.getOne(id, options);
29
- }
30
- getFlowWithDiagram(diagramId) {
31
- return this.httpClient.get(`${this.basePath}/diagram/${diagramId}`);
32
- }
33
- getDiagramRevisions(id) {
34
- return this.httpClient.get(`${this.basePath}/${id}/diagram/revisions`);
35
- }
36
- isDeploymentOnLatestDiagramVersion(depl) {
37
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
- const flowId = typeof depl.flow === 'string' ? depl.flow : depl.flow.id;
39
- const diagramId = typeof depl.diagram === 'string' ? depl.diagram : depl.diagram.id;
40
- const revisions = yield this.getDiagramRevisions(flowId);
41
- return revisions[revisions.length - 1].id === diagramId;
42
- });
43
- }
44
- getRevisions(id) {
45
- return this.httpClient.get(`${this.basePath}/${id}/revisions`);
46
- }
47
- rollback(id, revisionId) {
48
- return this.httpClient.put(`${this.basePath}/${id}/rollback`, { revisionId });
49
- }
50
- deleteRevision(id, revisionId) {
51
- return this.httpClient.delete(`${this.basePath}/${id}/revisions/${revisionId}`);
52
- }
53
- }
54
- exports.FlowService = FlowService;
@@ -1,161 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpClient = void 0;
4
- const tslib_1 = require("tslib");
5
- const axios_1 = tslib_1.__importDefault(require("axios"));
6
- const eventsource_1 = tslib_1.__importDefault(require("eventsource"));
7
- const jose_1 = require("jose");
8
- const querystring_1 = require("querystring");
9
- const uuid_1 = require("uuid");
10
- const Queue_1 = require("./Queue");
11
- const token_set_1 = require("./token-set");
12
- class HttpClient {
13
- constructor(baseURL, authBaseURL, realm, clientId, clientSecret, tokenSubject) {
14
- this.baseURL = baseURL;
15
- this.authBaseURL = authBaseURL;
16
- this.realm = realm;
17
- this.clientId = clientId;
18
- this.clientSecret = clientSecret;
19
- this.tokenSubject = tokenSubject;
20
- this.eventSourcesMap = new Map();
21
- this.getQueueStats = () => { var _a; return (_a = this.requestQueue) === null || _a === void 0 ? void 0 : _a.getStats(); };
22
- this.delete = (url, config) => this.request('DELETE', url, config);
23
- this.get = (url, config) => this.request('GET', url, config);
24
- this.post = (url, data, config) => this.request('POST', url, config, data);
25
- this.put = (url, data, config) => this.request('PUT', url, config, data);
26
- this.request = (method, url, config = {}, data) => {
27
- return this.requestQueue.add(() => new Promise((resolve, reject) => {
28
- this.getAccessToken()
29
- .then((token) => {
30
- const headers = Object.assign({ Authorization: `Bearer ${token}` }, config.headers);
31
- return this.axiosInstance.request(Object.assign(Object.assign({}, config), { headers, method, url, data }));
32
- })
33
- .then((response) => resolve(response.data))
34
- .catch(reject);
35
- }));
36
- };
37
- this.getAccessToken = (...args_1) => tslib_1.__awaiter(this, [...args_1], void 0, function* (forceRefresh = false) {
38
- let accessToken;
39
- if (forceRefresh || !this.tokenSet || this.tokenSet.isExpired()) {
40
- this.tokenSet = yield this.requestAccessToken();
41
- accessToken = this.tokenSet.accessToken;
42
- }
43
- else {
44
- accessToken = this.tokenSet.accessToken;
45
- }
46
- if (this.tokenSubject) {
47
- if (forceRefresh || !this.exchangedTokenSet || this.exchangedTokenSet.isExpired()) {
48
- this.exchangedTokenSet = yield this.exchangeAccessToken(accessToken);
49
- }
50
- return this.exchangedTokenSet.accessToken;
51
- }
52
- else {
53
- return accessToken;
54
- }
55
- });
56
- this.axiosInstance = axios_1.default.create({ baseURL, timeout: 60000 });
57
- this.authAxiosInstance = axios_1.default.create({ baseURL: authBaseURL || baseURL, timeout: 10000 });
58
- this.requestQueue = new Queue_1.Queue({ concurrency: 1, timeout: 70000, throwOnTimeout: true });
59
- }
60
- addEventSource(url, listener, errorListener) {
61
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
- const id = (0, uuid_1.v4)();
63
- const errListener = errorListener
64
- ? errorListener
65
- : (event) => {
66
- throw new Error(JSON.stringify(event, null, 2));
67
- };
68
- const es = new eventsource_1.default(`${this.baseURL}${url}`, {
69
- headers: { authorization: 'Bearer ' + (yield this.getAccessToken()) },
70
- });
71
- es.addEventListener('message', listener);
72
- es.addEventListener('error', errListener);
73
- this.eventSourcesMap.set(id, { eventSource: es, listener, errListener });
74
- return id;
75
- });
76
- }
77
- destroyEventSource(id) {
78
- if (!this.eventSourcesMap.has(id)) {
79
- return;
80
- }
81
- const es = this.eventSourcesMap.get(id);
82
- es.eventSource.close();
83
- es.eventSource.removeEventListener('message', es.listener);
84
- es.eventSource.removeEventListener('error', es.errListener);
85
- this.eventSourcesMap.delete(id);
86
- }
87
- destroyAllEventSources() {
88
- for (const key of this.eventSourcesMap.keys()) {
89
- this.destroyEventSource(key);
90
- }
91
- }
92
- validateIssuer(issuer) {
93
- var _a, _b;
94
- if (!issuer.issuer ||
95
- !((_a = issuer.grant_types_supported) === null || _a === void 0 ? void 0 : _a.includes('client_credentials')) ||
96
- !((_b = issuer.token_endpoint_auth_methods_supported) === null || _b === void 0 ? void 0 : _b.includes('client_secret_jwt'))) {
97
- throw new Error('Issuer does not support client_secret_jwt');
98
- }
99
- return issuer;
100
- }
101
- discoverIssuer(uri) {
102
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
103
- const wellKnownUri = `${uri}/.well-known/openid-configuration`;
104
- const issuerResponse = yield this.authAxiosInstance.get(wellKnownUri, {
105
- responseType: 'json',
106
- headers: { Accept: 'application/json' },
107
- });
108
- return this.validateIssuer(issuerResponse.data);
109
- });
110
- }
111
- requestAccessToken() {
112
- return tslib_1.__awaiter(this, arguments, void 0, function* (additionalOpts = {}) {
113
- var _a, _b;
114
- const issuer = yield this.discoverIssuer(`${this.authBaseURL}/realms/${this.realm}`);
115
- const timestamp = Date.now() / 1000;
116
- const audience = [...new Set([issuer.issuer, issuer.token_endpoint].filter(Boolean))];
117
- const assertionPayload = {
118
- iat: timestamp,
119
- exp: timestamp + 60,
120
- jti: (0, uuid_1.v4)(),
121
- iss: this.clientId,
122
- sub: this.clientId,
123
- aud: audience,
124
- };
125
- const supportedAlgos = issuer.token_endpoint_auth_signing_alg_values_supported;
126
- const alg = (_a = issuer.token_endpoint_auth_signing_alg) !== null && _a !== void 0 ? _a : (Array.isArray(supportedAlgos) && supportedAlgos.find((signAlg) => /^HS(?:256|384|512)/.test(signAlg)));
127
- if (!alg) {
128
- throw new Error('Issuer has to support HS256, HS384 or HS512');
129
- }
130
- const assertion = yield new jose_1.CompactSign(Buffer.from(JSON.stringify(assertionPayload)))
131
- .setProtectedHeader({ alg })
132
- .sign(new TextEncoder().encode(this.clientSecret));
133
- const opts = Object.assign({ client_id: this.clientId, client_assertion: assertion, client_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer', grant_type: 'client_credentials' }, additionalOpts);
134
- const authResponse = yield this.authAxiosInstance.post(issuer.token_endpoint, (0, querystring_1.stringify)(opts), {
135
- headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' },
136
- });
137
- if (((_b = authResponse === null || authResponse === void 0 ? void 0 : authResponse.data) === null || _b === void 0 ? void 0 : _b.access_token) && authResponse.data.expires_in) {
138
- return new token_set_1.TokenSet(authResponse.data.access_token, authResponse.data.expires_in);
139
- }
140
- else {
141
- throw new Error('Invalid access token received');
142
- }
143
- });
144
- }
145
- exchangeAccessToken(accessToken) {
146
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
147
- if (!accessToken || !this.tokenSubject) {
148
- throw new Error('Could not exchange access token');
149
- }
150
- const opts = {
151
- grant_type: 'urn:ietf:params:oauth:grant-type:token-exchange',
152
- subject_token: accessToken,
153
- audience: this.clientId,
154
- requested_token_type: 'urn:ietf:params:oauth:token-type:access_token',
155
- requested_subject: this.tokenSubject,
156
- };
157
- return this.requestAccessToken(opts);
158
- });
159
- }
160
- }
161
- exports.HttpClient = HttpClient;
package/dist/index.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export * from './api';
2
- export * from './asset.interface';
3
- export * from './content.interface';
4
- export * from './data.interface';
5
- export * from './data.service';
6
- export * from './endpoint.interface';
7
- export * from './http.service';
8
- export * from './label.interface';
9
- export * from './secret.interface';
10
- export * from './timeseries.interface';
11
- export * from './task.interface';
12
- export * from './events.interface';
13
- export * from './mock';
14
- export * from './flow-deployment.interface';
15
- export * from './flow-function.interface';
16
- export * from './flow.interface';
17
- export * from './resource.interface';
18
- export * from './schema.interface';
19
- export * from './vault.interface';
20
- export * from './notification.interface';
package/dist/index.js DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./api"), exports);
5
- tslib_1.__exportStar(require("./asset.interface"), exports);
6
- tslib_1.__exportStar(require("./content.interface"), exports);
7
- tslib_1.__exportStar(require("./data.interface"), exports);
8
- tslib_1.__exportStar(require("./data.service"), exports);
9
- tslib_1.__exportStar(require("./endpoint.interface"), exports);
10
- tslib_1.__exportStar(require("./http.service"), exports);
11
- tslib_1.__exportStar(require("./label.interface"), exports);
12
- tslib_1.__exportStar(require("./secret.interface"), exports);
13
- tslib_1.__exportStar(require("./timeseries.interface"), exports);
14
- tslib_1.__exportStar(require("./task.interface"), exports);
15
- tslib_1.__exportStar(require("./events.interface"), exports);
16
- tslib_1.__exportStar(require("./mock"), exports);
17
- tslib_1.__exportStar(require("./flow-deployment.interface"), exports);
18
- tslib_1.__exportStar(require("./flow-function.interface"), exports);
19
- tslib_1.__exportStar(require("./flow.interface"), exports);
20
- tslib_1.__exportStar(require("./resource.interface"), exports);
21
- tslib_1.__exportStar(require("./schema.interface"), exports);
22
- tslib_1.__exportStar(require("./vault.interface"), exports);
23
- tslib_1.__exportStar(require("./notification.interface"), exports);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- import { DataService } from './data.service';
2
- import { HttpClient } from './http.service';
3
- import { Label } from './label.interface';
4
- export declare class LabelService extends DataService<Label> {
5
- constructor(httpClient: HttpClient);
6
- addMany(dtos: Label[]): Promise<Label[]>;
7
- getOneByName(name: string): Promise<Label>;
8
- count(): Promise<number>;
9
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LabelService = void 0;
4
- const data_service_1 = require("./data.service");
5
- class LabelService extends data_service_1.DataService {
6
- constructor(httpClient) {
7
- super(httpClient, '/labels');
8
- }
9
- addMany(dtos) {
10
- return Promise.all(dtos.map((dto) => this.addOne(dto)));
11
- }
12
- getOneByName(name) {
13
- return this.httpClient.get(`${this.basePath}/name/${name}`);
14
- }
15
- count() {
16
- return this.httpClient.get(`${this.basePath}/count`);
17
- }
18
- }
19
- exports.LabelService = LabelService;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.APIBaseMock = void 0;
4
- const api_base_1 = require("../api-base");
5
- class APIBaseMock extends api_base_1.APIBase {
6
- constructor(data = []) {
7
- super(null, null);
8
- this.data = data;
9
- }
10
- }
11
- exports.APIBaseMock = APIBaseMock;