@5minds/processcube_engine_client 4.3.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 (164) hide show
  1. package/.prettierrc.json +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +283 -0
  4. package/dist/Client.d.ts +44 -0
  5. package/dist/ClientFactory.d.ts +21 -0
  6. package/dist/Clients/AnonymousSessionHttpClient.d.ts +7 -0
  7. package/dist/Clients/ApplicationInfoHttpClient.d.ts +10 -0
  8. package/dist/Clients/BaseClient.d.ts +26 -0
  9. package/dist/Clients/CorrelationHttpClient.d.ts +15 -0
  10. package/dist/Clients/CronjobHttpClient.d.ts +29 -0
  11. package/dist/Clients/DataObjectInstanceHttpClient.d.ts +10 -0
  12. package/dist/Clients/EmptyActivityHttpClient.d.ts +22 -0
  13. package/dist/Clients/EventHttpClient.d.ts +55 -0
  14. package/dist/Clients/ExternalTaskApiHttpClient.d.ts +19 -0
  15. package/dist/Clients/ExternalTaskHttpClient.d.ts +12 -0
  16. package/dist/Clients/FlowNodeInstanceHttpClient.d.ts +23 -0
  17. package/dist/Clients/Lib/Mappers.d.ts +20 -0
  18. package/dist/Clients/Lib/SocketIoManager.d.ts +36 -0
  19. package/dist/Clients/ManualTaskHttpClient.d.ts +22 -0
  20. package/dist/Clients/NotificationHttpClient.d.ts +178 -0
  21. package/dist/Clients/ProcessDefinitionHttpClient.d.ts +31 -0
  22. package/dist/Clients/ProcessDefinitionHttpClientNode.d.ts +8 -0
  23. package/dist/Clients/ProcessInstanceHttpClient.d.ts +23 -0
  24. package/dist/Clients/ProcessModelHttpClient.d.ts +29 -0
  25. package/dist/Clients/UserMetadataStorageHttpClient.d.ts +22 -0
  26. package/dist/Clients/UserTaskHttpClient.d.ts +32 -0
  27. package/dist/Clients/index.d.ts +18 -0
  28. package/dist/ExternalTaskWorker.d.ts +32 -0
  29. package/dist/HttpClient.d.ts +26 -0
  30. package/dist/Types/CallbackTypes.d.ts +39 -0
  31. package/dist/Types/IExternalTaskWorker.d.ts +34 -0
  32. package/dist/Types/RestSettings.d.ts +674 -0
  33. package/dist/Types/SocketSettings.d.ts +59 -0
  34. package/dist/Types/index.d.ts +15 -0
  35. package/dist/amd/Client.js +104 -0
  36. package/dist/amd/Client.js.map +1 -0
  37. package/dist/amd/ClientFactory.js +56 -0
  38. package/dist/amd/ClientFactory.js.map +1 -0
  39. package/dist/amd/Clients/AnonymousSessionHttpClient.js +29 -0
  40. package/dist/amd/Clients/AnonymousSessionHttpClient.js.map +1 -0
  41. package/dist/amd/Clients/ApplicationInfoHttpClient.js +30 -0
  42. package/dist/amd/Clients/ApplicationInfoHttpClient.js.map +1 -0
  43. package/dist/amd/Clients/BaseClient.js +128 -0
  44. package/dist/amd/Clients/BaseClient.js.map +1 -0
  45. package/dist/amd/Clients/CorrelationHttpClient.js +29 -0
  46. package/dist/amd/Clients/CorrelationHttpClient.js.map +1 -0
  47. package/dist/amd/Clients/CronjobHttpClient.js +55 -0
  48. package/dist/amd/Clients/CronjobHttpClient.js.map +1 -0
  49. package/dist/amd/Clients/DataObjectInstanceHttpClient.js +19 -0
  50. package/dist/amd/Clients/DataObjectInstanceHttpClient.js.map +1 -0
  51. package/dist/amd/Clients/EmptyActivityHttpClient.js +38 -0
  52. package/dist/amd/Clients/EmptyActivityHttpClient.js.map +1 -0
  53. package/dist/amd/Clients/EventHttpClient.js +68 -0
  54. package/dist/amd/Clients/EventHttpClient.js.map +1 -0
  55. package/dist/amd/Clients/ExternalTaskApiHttpClient.js +86 -0
  56. package/dist/amd/Clients/ExternalTaskApiHttpClient.js.map +1 -0
  57. package/dist/amd/Clients/ExternalTaskHttpClient.js +27 -0
  58. package/dist/amd/Clients/ExternalTaskHttpClient.js.map +1 -0
  59. package/dist/amd/Clients/FlowNodeInstanceHttpClient.js +55 -0
  60. package/dist/amd/Clients/FlowNodeInstanceHttpClient.js.map +1 -0
  61. package/dist/amd/Clients/Lib/Mappers.js +290 -0
  62. package/dist/amd/Clients/Lib/Mappers.js.map +1 -0
  63. package/dist/amd/Clients/Lib/SocketIoManager.js +114 -0
  64. package/dist/amd/Clients/Lib/SocketIoManager.js.map +1 -0
  65. package/dist/amd/Clients/ManualTaskHttpClient.js +38 -0
  66. package/dist/amd/Clients/ManualTaskHttpClient.js.map +1 -0
  67. package/dist/amd/Clients/NotificationHttpClient.js +144 -0
  68. package/dist/amd/Clients/NotificationHttpClient.js.map +1 -0
  69. package/dist/amd/Clients/ProcessDefinitionHttpClient.js +92 -0
  70. package/dist/amd/Clients/ProcessDefinitionHttpClient.js.map +1 -0
  71. package/dist/amd/Clients/ProcessDefinitionHttpClientNode.js +25 -0
  72. package/dist/amd/Clients/ProcessDefinitionHttpClientNode.js.map +1 -0
  73. package/dist/amd/Clients/ProcessInstanceHttpClient.js +91 -0
  74. package/dist/amd/Clients/ProcessInstanceHttpClient.js.map +1 -0
  75. package/dist/amd/Clients/ProcessModelHttpClient.js +93 -0
  76. package/dist/amd/Clients/ProcessModelHttpClient.js.map +1 -0
  77. package/dist/amd/Clients/UserMetadataStorageHttpClient.js +42 -0
  78. package/dist/amd/Clients/UserMetadataStorageHttpClient.js.map +1 -0
  79. package/dist/amd/Clients/UserTaskHttpClient.js +56 -0
  80. package/dist/amd/Clients/UserTaskHttpClient.js.map +1 -0
  81. package/dist/amd/Clients/index.js +37 -0
  82. package/dist/amd/Clients/index.js.map +1 -0
  83. package/dist/amd/ExternalTaskWorker.js +141 -0
  84. package/dist/amd/ExternalTaskWorker.js.map +1 -0
  85. package/dist/amd/HttpClient.js +124 -0
  86. package/dist/amd/HttpClient.js.map +1 -0
  87. package/dist/amd/Types/CallbackTypes.js +5 -0
  88. package/dist/amd/Types/CallbackTypes.js.map +1 -0
  89. package/dist/amd/Types/IExternalTaskWorker.js +5 -0
  90. package/dist/amd/Types/IExternalTaskWorker.js.map +1 -0
  91. package/dist/amd/Types/RestSettings.js +709 -0
  92. package/dist/amd/Types/RestSettings.js.map +1 -0
  93. package/dist/amd/Types/SocketSettings.js +70 -0
  94. package/dist/amd/Types/SocketSettings.js.map +1 -0
  95. package/dist/amd/Types/index.js +30 -0
  96. package/dist/amd/Types/index.js.map +1 -0
  97. package/dist/amd/index.js +29 -0
  98. package/dist/amd/index.js.map +1 -0
  99. package/dist/commonjs/Client.js +104 -0
  100. package/dist/commonjs/Client.js.map +1 -0
  101. package/dist/commonjs/ClientFactory.js +56 -0
  102. package/dist/commonjs/ClientFactory.js.map +1 -0
  103. package/dist/commonjs/Clients/AnonymousSessionHttpClient.js +30 -0
  104. package/dist/commonjs/Clients/AnonymousSessionHttpClient.js.map +1 -0
  105. package/dist/commonjs/Clients/ApplicationInfoHttpClient.js +30 -0
  106. package/dist/commonjs/Clients/ApplicationInfoHttpClient.js.map +1 -0
  107. package/dist/commonjs/Clients/BaseClient.js +128 -0
  108. package/dist/commonjs/Clients/BaseClient.js.map +1 -0
  109. package/dist/commonjs/Clients/CorrelationHttpClient.js +29 -0
  110. package/dist/commonjs/Clients/CorrelationHttpClient.js.map +1 -0
  111. package/dist/commonjs/Clients/CronjobHttpClient.js +56 -0
  112. package/dist/commonjs/Clients/CronjobHttpClient.js.map +1 -0
  113. package/dist/commonjs/Clients/DataObjectInstanceHttpClient.js +20 -0
  114. package/dist/commonjs/Clients/DataObjectInstanceHttpClient.js.map +1 -0
  115. package/dist/commonjs/Clients/EmptyActivityHttpClient.js +40 -0
  116. package/dist/commonjs/Clients/EmptyActivityHttpClient.js.map +1 -0
  117. package/dist/commonjs/Clients/EventHttpClient.js +70 -0
  118. package/dist/commonjs/Clients/EventHttpClient.js.map +1 -0
  119. package/dist/commonjs/Clients/ExternalTaskApiHttpClient.js +87 -0
  120. package/dist/commonjs/Clients/ExternalTaskApiHttpClient.js.map +1 -0
  121. package/dist/commonjs/Clients/ExternalTaskHttpClient.js +26 -0
  122. package/dist/commonjs/Clients/ExternalTaskHttpClient.js.map +1 -0
  123. package/dist/commonjs/Clients/FlowNodeInstanceHttpClient.js +56 -0
  124. package/dist/commonjs/Clients/FlowNodeInstanceHttpClient.js.map +1 -0
  125. package/dist/commonjs/Clients/Lib/Mappers.js +289 -0
  126. package/dist/commonjs/Clients/Lib/Mappers.js.map +1 -0
  127. package/dist/commonjs/Clients/Lib/SocketIoManager.js +116 -0
  128. package/dist/commonjs/Clients/Lib/SocketIoManager.js.map +1 -0
  129. package/dist/commonjs/Clients/ManualTaskHttpClient.js +40 -0
  130. package/dist/commonjs/Clients/ManualTaskHttpClient.js.map +1 -0
  131. package/dist/commonjs/Clients/NotificationHttpClient.js +144 -0
  132. package/dist/commonjs/Clients/NotificationHttpClient.js.map +1 -0
  133. package/dist/commonjs/Clients/ProcessDefinitionHttpClient.js +94 -0
  134. package/dist/commonjs/Clients/ProcessDefinitionHttpClient.js.map +1 -0
  135. package/dist/commonjs/Clients/ProcessDefinitionHttpClientNode.js +25 -0
  136. package/dist/commonjs/Clients/ProcessDefinitionHttpClientNode.js.map +1 -0
  137. package/dist/commonjs/Clients/ProcessInstanceHttpClient.js +93 -0
  138. package/dist/commonjs/Clients/ProcessInstanceHttpClient.js.map +1 -0
  139. package/dist/commonjs/Clients/ProcessModelHttpClient.js +95 -0
  140. package/dist/commonjs/Clients/ProcessModelHttpClient.js.map +1 -0
  141. package/dist/commonjs/Clients/UserMetadataStorageHttpClient.js +42 -0
  142. package/dist/commonjs/Clients/UserMetadataStorageHttpClient.js.map +1 -0
  143. package/dist/commonjs/Clients/UserTaskHttpClient.js +58 -0
  144. package/dist/commonjs/Clients/UserTaskHttpClient.js.map +1 -0
  145. package/dist/commonjs/Clients/index.js +35 -0
  146. package/dist/commonjs/Clients/index.js.map +1 -0
  147. package/dist/commonjs/ExternalTaskWorker.js +142 -0
  148. package/dist/commonjs/ExternalTaskWorker.js.map +1 -0
  149. package/dist/commonjs/HttpClient.js +124 -0
  150. package/dist/commonjs/HttpClient.js.map +1 -0
  151. package/dist/commonjs/Types/CallbackTypes.js +3 -0
  152. package/dist/commonjs/Types/CallbackTypes.js.map +1 -0
  153. package/dist/commonjs/Types/IExternalTaskWorker.js +3 -0
  154. package/dist/commonjs/Types/IExternalTaskWorker.js.map +1 -0
  155. package/dist/commonjs/Types/RestSettings.js +707 -0
  156. package/dist/commonjs/Types/RestSettings.js.map +1 -0
  157. package/dist/commonjs/Types/SocketSettings.js +68 -0
  158. package/dist/commonjs/Types/SocketSettings.js.map +1 -0
  159. package/dist/commonjs/Types/index.js +30 -0
  160. package/dist/commonjs/Types/index.js.map +1 -0
  161. package/dist/commonjs/index.js +28 -0
  162. package/dist/commonjs/index.js.map +1 -0
  163. package/dist/index.d.ts +6 -0
  164. package/package.json +43 -0
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExternalTaskWorker = void 0;
4
+ const uuid = require("uuid");
5
+ const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
6
+ const ExternalTaskApiHttpClient_1 = require("./Clients/ExternalTaskApiHttpClient");
7
+ const logger = new processcube_engine_sdk_1.Logger('external_task_worker');
8
+ const dummyIdentity = {
9
+ token: 'ZHVtbXlfdG9rZW4=',
10
+ userId: 'dummy_token',
11
+ };
12
+ class ExternalTaskWorker {
13
+ constructor(engineUrl, topic, processingFunction, config) {
14
+ var _a, _b, _c, _d, _e;
15
+ this._pollingActive = false;
16
+ this.customErrorHandler = null;
17
+ this._workerId = (_a = config === null || config === void 0 ? void 0 : config.workerId) !== null && _a !== void 0 ? _a : uuid.v4();
18
+ this.topic = topic;
19
+ this.processingFunction = processingFunction;
20
+ this.identity = (_b = config === null || config === void 0 ? void 0 : config.identity) !== null && _b !== void 0 ? _b : dummyIdentity;
21
+ this.maxTasks = (_c = config === null || config === void 0 ? void 0 : config.maxTasks) !== null && _c !== void 0 ? _c : 10;
22
+ this.longpollingTimeout = (_d = config === null || config === void 0 ? void 0 : config.longpollingTimeout) !== null && _d !== void 0 ? _d : 10000;
23
+ this.lockDuration = (_e = config === null || config === void 0 ? void 0 : config.lockDuration) !== null && _e !== void 0 ? _e : 30000;
24
+ this.payloadFilter = config === null || config === void 0 ? void 0 : config.payloadFilter;
25
+ this.externalTaskClient = new ExternalTaskApiHttpClient_1.ExternalTaskApiClient(engineUrl, this.identity);
26
+ }
27
+ get identity() {
28
+ return this._identity;
29
+ }
30
+ set identity(value) {
31
+ this._identity = value;
32
+ }
33
+ get workerId() {
34
+ return this._workerId;
35
+ }
36
+ get pollingIsActive() {
37
+ return this._pollingActive;
38
+ }
39
+ onWorkerError(callback) {
40
+ this.customErrorHandler = callback;
41
+ }
42
+ start() {
43
+ this._pollingActive = true;
44
+ this.processExternalTasks();
45
+ }
46
+ stop() {
47
+ this._pollingActive = false;
48
+ }
49
+ dispose() {
50
+ this.externalTaskClient.dispose();
51
+ }
52
+ async processExternalTasks() {
53
+ let errorCount = 0;
54
+ const maximumErrorTimeout = 30 * 1000;
55
+ while (this.pollingIsActive) {
56
+ let externalTasks;
57
+ try {
58
+ externalTasks = await this.fetchAndLockExternalTasks();
59
+ errorCount = 0;
60
+ }
61
+ catch (error) {
62
+ logger.error('Failed to fetch and lock External Tasks.', { err: error });
63
+ errorCount++;
64
+ const timeoutOffset = (Math.floor(Math.random() * 10) + 1) * 30;
65
+ const calculatedTimeout = 2 ** errorCount * 1000 + timeoutOffset;
66
+ const timeoutToUse = Math.min(calculatedTimeout, maximumErrorTimeout);
67
+ if (typeof this.customErrorHandler === 'function') {
68
+ this.customErrorHandler('fetchAndLock', error);
69
+ }
70
+ await this.sleep(timeoutToUse);
71
+ externalTasks = [];
72
+ }
73
+ const executeTaskPromises = [];
74
+ for (const externalTask of externalTasks) {
75
+ executeTaskPromises.push(this.executeExternalTask(externalTask));
76
+ }
77
+ await Promise.all(executeTaskPromises);
78
+ }
79
+ }
80
+ async fetchAndLockExternalTasks() {
81
+ return this.externalTaskClient.fetchAndLockExternalTasks(this.workerId, this.topic, this.maxTasks, this.longpollingTimeout, this.lockDuration, this.payloadFilter, this.identity);
82
+ }
83
+ async executeExternalTask(externalTask) {
84
+ let interval;
85
+ try {
86
+ const lockExtensionBuffer = 5000;
87
+ interval = setInterval(async () => this.extendLocks(externalTask), this.lockDuration - lockExtensionBuffer);
88
+ const result = await this.processingFunction(externalTask.payload, externalTask);
89
+ clearInterval(interval);
90
+ await this.processResult(result, externalTask);
91
+ }
92
+ catch (error) {
93
+ if (typeof this.customErrorHandler === 'function') {
94
+ this.customErrorHandler('processExternalTask', error, externalTask);
95
+ }
96
+ await this.handleExternalTaskExecutionError(error, externalTask === null || externalTask === void 0 ? void 0 : externalTask.id);
97
+ if (interval) {
98
+ clearInterval(interval);
99
+ }
100
+ }
101
+ }
102
+ async extendLocks(externalTask) {
103
+ try {
104
+ await this.externalTaskClient.extendLock(this.workerId, externalTask.id, this.lockDuration, this.identity);
105
+ }
106
+ catch (error) {
107
+ if (typeof this.customErrorHandler === 'function') {
108
+ this.customErrorHandler('extendLock', error, externalTask);
109
+ }
110
+ // This can happen, if the lock-extension was performed after the task was already finished.
111
+ // Since this isn't really an error, a warning suffices here.
112
+ logger.warn(`An error occured while trying to extend the lock for ExternalTask ${externalTask.id}`, { err: error });
113
+ }
114
+ }
115
+ async processResult(result, externalTask) {
116
+ try {
117
+ if (result instanceof processcube_engine_sdk_1.ExternalTaskError || result instanceof processcube_engine_sdk_1.ExternalTaskBpmnError || result instanceof processcube_engine_sdk_1.ExternalTaskServiceError || result instanceof Error) {
118
+ return this.handleExternalTaskExecutionError(result, externalTask.id);
119
+ }
120
+ return this.externalTaskClient.finishExternalTask(this.workerId, externalTask.id, result, this.identity);
121
+ }
122
+ catch (error) {
123
+ if (typeof this.customErrorHandler === 'function') {
124
+ this.customErrorHandler('finishExternalTask', error, externalTask);
125
+ }
126
+ }
127
+ }
128
+ async handleExternalTaskExecutionError(error, externalTaskId) {
129
+ logger.error(`Error raised for external task '${externalTaskId}' with topic '${this.topic}': `, error);
130
+ const workerError = new processcube_engine_sdk_1.ExternalTaskServiceError('ExternalTaskWorkerError', error.message, error.stack);
131
+ return this.externalTaskClient.handleError(this.workerId, externalTaskId, workerError, this.identity);
132
+ }
133
+ async sleep(milliseconds) {
134
+ return new Promise((resolve) => {
135
+ setTimeout(() => {
136
+ resolve();
137
+ }, milliseconds);
138
+ });
139
+ }
140
+ }
141
+ exports.ExternalTaskWorker = ExternalTaskWorker;
142
+ //# sourceMappingURL=ExternalTaskWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalTaskWorker.js","sourceRoot":"","sources":["../../src/ExternalTaskWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpClient = void 0;
4
+ const cross_fetch_1 = require("cross-fetch");
5
+ const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
6
+ class HttpClient {
7
+ constructor(url) {
8
+ this.httpSuccessResponseCode = 200;
9
+ this.httpRedirectResponseCode = 300;
10
+ this.url = url;
11
+ }
12
+ async get(url, options) {
13
+ const prefixedUrl = this.addPrefixToUrl(url);
14
+ const headers = this.buildHeaders(options);
15
+ const request = {
16
+ method: 'GET',
17
+ mode: 'cors',
18
+ referrer: 'no-referrer',
19
+ headers: headers,
20
+ };
21
+ const response = await (0, cross_fetch_1.default)(prefixedUrl, request);
22
+ const parsedResponse = await this.evaluateResponse(response);
23
+ return parsedResponse;
24
+ }
25
+ async post(url, data, options) {
26
+ const prefixedUrl = this.addPrefixToUrl(url);
27
+ const headers = this.buildHeaders(options);
28
+ const request = {
29
+ method: 'POST',
30
+ mode: 'cors',
31
+ referrer: 'no-referrer',
32
+ headers: headers,
33
+ body: JSON.stringify(data),
34
+ };
35
+ const response = await (0, cross_fetch_1.default)(prefixedUrl, request);
36
+ const parsedResponse = await this.evaluateResponse(response);
37
+ return parsedResponse;
38
+ }
39
+ async put(url, data, options) {
40
+ const prefixedUrl = this.addPrefixToUrl(url);
41
+ const headers = this.buildHeaders(options);
42
+ const request = {
43
+ method: 'PUT',
44
+ mode: 'cors',
45
+ referrer: 'no-referrer',
46
+ headers: headers,
47
+ body: JSON.stringify(data),
48
+ };
49
+ const response = await (0, cross_fetch_1.default)(prefixedUrl, request);
50
+ const parsedResponse = await this.evaluateResponse(response);
51
+ return parsedResponse;
52
+ }
53
+ async delete(url, options) {
54
+ const prefixedUrl = this.addPrefixToUrl(url);
55
+ const headers = this.buildHeaders(options);
56
+ const request = {
57
+ method: 'DELETE',
58
+ mode: 'cors',
59
+ referrer: 'no-referrer',
60
+ headers: headers,
61
+ };
62
+ const response = await (0, cross_fetch_1.default)(prefixedUrl, request);
63
+ const parsedResponse = await this.evaluateResponse(response);
64
+ return parsedResponse;
65
+ }
66
+ addPrefixToUrl(url) {
67
+ return `${this.url}/${url}`;
68
+ }
69
+ buildHeaders(options) {
70
+ const headers = {
71
+ 'Access-Control-Allow-Origin': '*',
72
+ 'Content-Type': 'application/json',
73
+ };
74
+ if ((options === null || options === void 0 ? void 0 : options.headers) != undefined) {
75
+ const optionHeaders = Object.keys(options.headers);
76
+ for (const header of optionHeaders) {
77
+ headers[header] = options.headers[header];
78
+ }
79
+ }
80
+ return headers;
81
+ }
82
+ async evaluateResponse(response) {
83
+ const body = await response.text();
84
+ if (this.responseIsAnError(response)) {
85
+ this.createAndThrowError(response.status, body);
86
+ }
87
+ const parsedResponse = {
88
+ result: this.tryParseStringtoJson(body),
89
+ status: response.status,
90
+ };
91
+ return parsedResponse;
92
+ }
93
+ responseIsAnError(response) {
94
+ return response.status < this.httpSuccessResponseCode || response.status >= this.httpRedirectResponseCode;
95
+ }
96
+ createAndThrowError(statusCode, body) {
97
+ var _a, _b;
98
+ const deserializedError = (0, processcube_engine_sdk_1.deserializeJson)(body);
99
+ if ((0, processcube_engine_sdk_1.isEngineError)(deserializedError)) {
100
+ throw deserializedError;
101
+ }
102
+ // BPMN errors cannot be transmitted across http directly, because their status code need not be a valid HTTP code.
103
+ // Instead, they will be attached as a "bpmnError" property to the error's additionalInformation property.
104
+ if ((_a = deserializedError.additionalInformation) === null || _a === void 0 ? void 0 : _a.bpmnError) {
105
+ const bpmnErrorInfo = deserializedError.additionalInformation.bpmnError;
106
+ throw new processcube_engine_sdk_1.BpmnError(bpmnErrorInfo.name, bpmnErrorInfo.code, bpmnErrorInfo.message);
107
+ }
108
+ const customError = new processcube_engine_sdk_1.InternalServerError((_b = deserializedError.message) !== null && _b !== void 0 ? _b : 'Failed to execute request');
109
+ customError.additionalInformation = deserializedError.additionalInformation;
110
+ customError.code = statusCode;
111
+ customError.stack = deserializedError.stack;
112
+ throw customError;
113
+ }
114
+ tryParseStringtoJson(result) {
115
+ try {
116
+ return JSON.parse(result);
117
+ }
118
+ catch (error) {
119
+ return result;
120
+ }
121
+ }
122
+ }
123
+ exports.HttpClient = HttpClient;
124
+ //# sourceMappingURL=HttpClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/HttpClient.ts"],"names":[],"mappings":";;;AAAA,6CAAgC;AAEhC,2EAA2H;AAc3H,MAAa,UAAU;IAMrB,YAAY,GAAW;QAHf,4BAAuB,GAAG,GAAG,CAAC;QAC9B,6BAAwB,GAAG,GAAG,CAAC;QAGrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAY,GAAW,EAAE,OAAyB;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAY,QAAQ,CAAC,CAAC;QAExE,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAoB,GAAW,EAAE,IAAc,EAAE,OAAyB;QACzF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAU,QAAQ,CAAC,CAAC;QAEtE,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAU,GAAW,EAAE,IAAa,EAAE,OAAyB;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAU,QAAQ,CAAC,CAAC;QAEtE,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAU,GAAW,EAAE,OAAyB;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAU,QAAQ,CAAC,CAAC;QAEtE,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEO,YAAY,CAAC,OAAyB;QAC5C,MAAM,OAAO,GAAG;YACd,6BAA6B,EAAE,GAAG;YAClC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,SAAS,EAAE;YACjC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEnD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;gBAClC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAW,QAAkB;QACzD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACjD;QAED,MAAM,cAAc,GAAwB;YAC1C,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,iBAAiB,CAAC,QAAkB;QAC1C,OAAO,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,wBAAwB,CAAC;IAC5G,CAAC;IAEO,mBAAmB,CAAC,UAAkB,EAAE,IAAY;;QAC1D,MAAM,iBAAiB,GAAG,IAAA,wCAAe,EAAC,IAAI,CAAc,CAAC;QAC7D,IAAI,IAAA,sCAAa,EAAC,iBAAiB,CAAC,EAAE;YACpC,MAAM,iBAAiB,CAAC;SACzB;QAED,mHAAmH;QACnH,0GAA0G;QAC1G,IAAI,MAAA,iBAAiB,CAAC,qBAAqB,0CAAE,SAAS,EAAE;YACtD,MAAM,aAAa,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAExE,MAAM,IAAI,kCAAS,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;SACpF;QAED,MAAM,WAAW,GAAG,IAAI,4CAAmB,CAAC,MAAA,iBAAiB,CAAC,OAAO,mCAAI,2BAA2B,CAAC,CAAC;QACtG,WAAW,CAAC,qBAAqB,GAAI,iBAAyB,CAAC,qBAAqB,CAAC;QACrF,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;QAC9B,WAAW,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;QAE5C,MAAM,WAAW,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAU,MAAW;QAC/C,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,MAAM,CAAC;SACf;IACH,CAAC;CACF;AAzJD,gCAyJC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CallbackTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallbackTypes.js","sourceRoot":"","sources":["../../../src/Types/CallbackTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IExternalTaskWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IExternalTaskWorker.js","sourceRoot":"","sources":["../../../src/Types/IExternalTaskWorker.ts"],"names":[],"mappings":""}