@5minds/processcube_engine_client 5.2.0-feature-9a5b28-m1yxdd4u → 6.0.0-alpha.10

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 (95) hide show
  1. package/dist/Client.d.ts +4 -5
  2. package/dist/ClientFactory.d.ts +16 -17
  3. package/dist/Clients/ApplicationInfoHttpClient.d.ts +5 -4
  4. package/dist/Clients/BaseClient.d.ts +10 -8
  5. package/dist/Clients/CorrelationHttpClient.d.ts +4 -3
  6. package/dist/Clients/CronjobHttpClient.d.ts +5 -4
  7. package/dist/Clients/DataObjectInstanceHttpClient.d.ts +3 -2
  8. package/dist/Clients/EventHttpClient.d.ts +15 -11
  9. package/dist/Clients/ExternalTaskApiHttpClient.d.ts +7 -6
  10. package/dist/Clients/ExternalTaskHttpClient.d.ts +4 -3
  11. package/dist/Clients/FlowNodeInstanceHttpClient.d.ts +8 -10
  12. package/dist/Clients/Lib/SocketIoManager.d.ts +15 -28
  13. package/dist/Clients/ManualTaskHttpClient.d.ts +7 -6
  14. package/dist/Clients/NotificationHttpClient.d.ts +52 -59
  15. package/dist/Clients/ProcessDefinitionHttpClient.d.ts +11 -10
  16. package/dist/Clients/ProcessDefinitionHttpClientNode.d.ts +2 -2
  17. package/dist/Clients/ProcessInstanceHttpClient.d.ts +17 -7
  18. package/dist/Clients/ProcessModelHttpClient.d.ts +11 -10
  19. package/dist/Clients/UntypedTaskHttpClient.d.ts +7 -17
  20. package/dist/Clients/UserTaskHttpClient.d.ts +11 -10
  21. package/dist/Clients/index.d.ts +0 -1
  22. package/dist/ExternalTaskExecution.d.ts +1 -0
  23. package/dist/ExternalTaskWorker.d.ts +10 -1
  24. package/dist/IdentityAccessor.d.ts +54 -0
  25. package/dist/IdentityAccessorClientCredentials.d.ts +14 -0
  26. package/dist/Retry.d.ts +1 -0
  27. package/dist/Types/IExternalTaskWorker.d.ts +3 -2
  28. package/dist/Types/RestSettings.d.ts +18 -20
  29. package/dist/Types/SocketSettings.d.ts +0 -2
  30. package/dist/commonjs/Client.js +22 -27
  31. package/dist/commonjs/Client.js.map +1 -1
  32. package/dist/commonjs/ClientFactory.js +23 -29
  33. package/dist/commonjs/ClientFactory.js.map +1 -1
  34. package/dist/commonjs/Clients/ApplicationInfoHttpClient.js +5 -5
  35. package/dist/commonjs/Clients/ApplicationInfoHttpClient.js.map +1 -1
  36. package/dist/commonjs/Clients/BaseClient.js +23 -15
  37. package/dist/commonjs/Clients/BaseClient.js.map +1 -1
  38. package/dist/commonjs/Clients/CorrelationHttpClient.js +2 -2
  39. package/dist/commonjs/Clients/CorrelationHttpClient.js.map +1 -1
  40. package/dist/commonjs/Clients/CronjobHttpClient.js +3 -3
  41. package/dist/commonjs/Clients/CronjobHttpClient.js.map +1 -1
  42. package/dist/commonjs/Clients/DataObjectInstanceHttpClient.js +1 -1
  43. package/dist/commonjs/Clients/DataObjectInstanceHttpClient.js.map +1 -1
  44. package/dist/commonjs/Clients/EventHttpClient.js +9 -3
  45. package/dist/commonjs/Clients/EventHttpClient.js.map +1 -1
  46. package/dist/commonjs/Clients/ExternalTaskApiHttpClient.js +5 -5
  47. package/dist/commonjs/Clients/ExternalTaskApiHttpClient.js.map +1 -1
  48. package/dist/commonjs/Clients/ExternalTaskHttpClient.js +7 -5
  49. package/dist/commonjs/Clients/ExternalTaskHttpClient.js.map +1 -1
  50. package/dist/commonjs/Clients/FlowNodeInstanceHttpClient.js +8 -13
  51. package/dist/commonjs/Clients/FlowNodeInstanceHttpClient.js.map +1 -1
  52. package/dist/commonjs/Clients/Lib/SocketIoManager.js +149 -67
  53. package/dist/commonjs/Clients/Lib/SocketIoManager.js.map +1 -1
  54. package/dist/commonjs/Clients/ManualTaskHttpClient.js +2 -2
  55. package/dist/commonjs/Clients/ManualTaskHttpClient.js.map +1 -1
  56. package/dist/commonjs/Clients/NotificationHttpClient.js +3 -9
  57. package/dist/commonjs/Clients/NotificationHttpClient.js.map +1 -1
  58. package/dist/commonjs/Clients/ProcessDefinitionHttpClient.js +8 -8
  59. package/dist/commonjs/Clients/ProcessDefinitionHttpClient.js.map +1 -1
  60. package/dist/commonjs/Clients/ProcessDefinitionHttpClientNode.js +17 -7
  61. package/dist/commonjs/Clients/ProcessDefinitionHttpClientNode.js.map +1 -1
  62. package/dist/commonjs/Clients/ProcessInstanceHttpClient.js +22 -8
  63. package/dist/commonjs/Clients/ProcessInstanceHttpClient.js.map +1 -1
  64. package/dist/commonjs/Clients/ProcessModelHttpClient.js +9 -9
  65. package/dist/commonjs/Clients/ProcessModelHttpClient.js.map +1 -1
  66. package/dist/commonjs/Clients/UntypedTaskHttpClient.js +4 -15
  67. package/dist/commonjs/Clients/UntypedTaskHttpClient.js.map +1 -1
  68. package/dist/commonjs/Clients/UserTaskHttpClient.js +4 -4
  69. package/dist/commonjs/Clients/UserTaskHttpClient.js.map +1 -1
  70. package/dist/commonjs/Clients/index.js +0 -1
  71. package/dist/commonjs/Clients/index.js.map +1 -1
  72. package/dist/commonjs/ExternalTaskExecution.js +14 -3
  73. package/dist/commonjs/ExternalTaskExecution.js.map +1 -1
  74. package/dist/commonjs/ExternalTaskWorker.js +50 -18
  75. package/dist/commonjs/ExternalTaskWorker.js.map +1 -1
  76. package/dist/commonjs/IdentityAccessor.js +246 -0
  77. package/dist/commonjs/IdentityAccessor.js.map +1 -0
  78. package/dist/commonjs/IdentityAccessorClientCredentials.js +94 -0
  79. package/dist/commonjs/IdentityAccessorClientCredentials.js.map +1 -0
  80. package/dist/commonjs/Retry.js +30 -0
  81. package/dist/commonjs/Retry.js.map +1 -0
  82. package/dist/commonjs/Types/RestSettings.js +18 -21
  83. package/dist/commonjs/Types/RestSettings.js.map +1 -1
  84. package/dist/commonjs/Types/SocketSettings.js +0 -2
  85. package/dist/commonjs/Types/SocketSettings.js.map +1 -1
  86. package/dist/commonjs/Types/index.js +17 -7
  87. package/dist/commonjs/Types/index.js.map +1 -1
  88. package/dist/commonjs/index.js +5 -1
  89. package/dist/commonjs/index.js.map +1 -1
  90. package/dist/index.d.ts +2 -0
  91. package/package.json +16 -10
  92. package/tsconfig.tests.json +20 -0
  93. package/dist/Clients/AnonymousSessionHttpClient.d.ts +0 -26
  94. package/dist/commonjs/Clients/AnonymousSessionHttpClient.js +0 -48
  95. package/dist/commonjs/Clients/AnonymousSessionHttpClient.js.map +0 -1
@@ -15,24 +15,31 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.ExternalTaskWorker = void 0;
27
37
  const uuid = __importStar(require("uuid"));
28
38
  const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
29
39
  const ExternalTaskApiHttpClient_1 = require("./Clients/ExternalTaskApiHttpClient");
30
40
  const ExternalTaskExecution_1 = require("./ExternalTaskExecution");
41
+ const IdentityAccessor_1 = require("./IdentityAccessor");
31
42
  const logger = new processcube_engine_sdk_1.Logger('external_task_worker');
32
- const dummyIdentity = {
33
- token: 'ZHVtbXlfdG9rZW4=',
34
- userId: 'dummy_token',
35
- };
36
43
  class ExternalTaskWorker {
37
44
  _workerId;
38
45
  lockDuration;
@@ -41,28 +48,38 @@ class ExternalTaskWorker {
41
48
  longpollingTimeout;
42
49
  processingFunction;
43
50
  payloadFilter;
44
- _identity;
51
+ identityAccessor;
45
52
  _pollingActive = false;
46
53
  externalTaskClient;
47
54
  customErrorHandler = null;
55
+ onHeartbeatCallback = null;
48
56
  abortController;
49
57
  abortSignal;
50
58
  constructor(engineUrl, topic, processingFunction, config) {
51
59
  this._workerId = config?.workerId ?? uuid.v4();
52
60
  this.topic = topic;
53
61
  this.processingFunction = processingFunction;
54
- this.identity = config?.identity ?? dummyIdentity;
62
+ this.identityAccessor = IdentityAccessor_1.IdentityAccessor.wrap(config?.identity, engineUrl);
55
63
  this.maxTasks = config?.maxTasks ?? 10;
56
64
  this.longpollingTimeout = config?.longpollingTimeout ?? 10000;
57
65
  this.lockDuration = config?.lockDuration ?? 30000;
58
66
  this.payloadFilter = config?.payloadFilter;
59
- this.externalTaskClient = new ExternalTaskApiHttpClient_1.ExternalTaskApiClient(engineUrl, this.identity);
67
+ this.externalTaskClient = new ExternalTaskApiHttpClient_1.ExternalTaskApiClient(engineUrl, this.identityAccessor);
60
68
  }
69
+ /**
70
+ * @deprecated Use getIdentity instead.
71
+ */
61
72
  get identity() {
62
- return this._identity;
73
+ return this.identityAccessor.getIdentityStatic();
63
74
  }
75
+ async getIdentity() {
76
+ return this.identityAccessor.getIdentity();
77
+ }
78
+ /**
79
+ * @deprecated This is no longer safe to use. Identity should be set via the constructor.
80
+ */
64
81
  set identity(value) {
65
- this._identity = value;
82
+ this.identityAccessor = IdentityAccessor_1.IdentityAccessor.wrap(value, this.externalTaskClient.getEngineUrl());
66
83
  }
67
84
  get workerId() {
68
85
  return this._workerId;
@@ -73,6 +90,9 @@ class ExternalTaskWorker {
73
90
  onWorkerError(callback) {
74
91
  this.customErrorHandler = callback;
75
92
  }
93
+ onHeartbeat(callback) {
94
+ this.onHeartbeatCallback = callback;
95
+ }
76
96
  start() {
77
97
  this._pollingActive = true;
78
98
  this.abortController = new AbortController();
@@ -87,6 +107,7 @@ class ExternalTaskWorker {
87
107
  }
88
108
  dispose() {
89
109
  this.externalTaskClient.dispose();
110
+ this.identityAccessor?.dispose();
90
111
  }
91
112
  async processExternalTasks() {
92
113
  let errorCount = 0;
@@ -96,9 +117,20 @@ class ExternalTaskWorker {
96
117
  try {
97
118
  externalTasks = await this.fetchAndLockExternalTasks();
98
119
  errorCount = 0;
120
+ if (typeof this.onHeartbeatCallback === 'function') {
121
+ this.onHeartbeatCallback();
122
+ }
99
123
  }
100
124
  catch (error) {
125
+ if (this.abortSignal?.aborted) {
126
+ return;
127
+ }
101
128
  logger.error('Failed to fetch and lock External Tasks.', { err: error });
129
+ if (error.message?.match(/expired/i) && this.identityAccessor.canIdentityBeRefreshed()) {
130
+ logger.info('Identity has expired. Refreshing identity to get a new auth token...');
131
+ await this.identityAccessor.forceImmediateIdentityRefresh();
132
+ logger.info('Identity refresh completed. Fetch and Lock will continue.');
133
+ }
102
134
  errorCount++;
103
135
  const timeoutOffset = (Math.floor(Math.random() * 10) + 1) * 30;
104
136
  const calculatedTimeout = 2 ** errorCount * 1000 + timeoutOffset;
@@ -119,12 +151,12 @@ class ExternalTaskWorker {
119
151
  }
120
152
  }
121
153
  async fetchAndLockExternalTasks() {
122
- return this.externalTaskClient.fetchAndLockExternalTasks(this.workerId, this.topic, this.maxTasks, this.longpollingTimeout, this.lockDuration, this.payloadFilter, this.identity, this.abortSignal);
154
+ return this.externalTaskClient.fetchAndLockExternalTasks(this.workerId, this.topic, this.maxTasks, this.longpollingTimeout, this.lockDuration, this.payloadFilter, this.identityAccessor, this.abortSignal);
123
155
  }
124
156
  async startExecutingExternalTask(externalTask) {
125
157
  try {
126
158
  const externalTaskExecution = new ExternalTaskExecution_1.ExternalTaskExecution(externalTask, this.processingFunction, this.externalTaskClient, {
127
- identity: this.identity,
159
+ identity: this.identityAccessor,
128
160
  lockDuration: this.lockDuration,
129
161
  longpollingTimeout: this.longpollingTimeout,
130
162
  maxTasks: this.maxTasks,
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalTaskWorker.js","sourceRoot":"","sources":["../../src/ExternalTaskWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExternalTaskWorker.js","sourceRoot":"","sources":["../../src/ExternalTaskWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.IdentityAccessor = void 0;
40
+ const async_lock_1 = __importDefault(require("async-lock"));
41
+ const uuid = __importStar(require("uuid"));
42
+ const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
43
+ const index_1 = require("./index");
44
+ const dummyIdentity = {
45
+ token: 'ZHVtbXlfdG9rZW4=',
46
+ userId: 'dummy_token',
47
+ };
48
+ class IdentityAccessor {
49
+ static wrap(identity, engineUrl) {
50
+ if (identity instanceof IdentityAccessor) {
51
+ return identity;
52
+ }
53
+ let accessor;
54
+ if (!identity) {
55
+ accessor = new IdentityAccessor();
56
+ }
57
+ else if (typeof identity === 'function') {
58
+ accessor = new IdentityAccessor(identity);
59
+ }
60
+ else if (isClientCredentialsConfig(identity)) {
61
+ if (!identity.engineUrl && engineUrl) {
62
+ identity.engineUrl = engineUrl;
63
+ }
64
+ accessor = new index_1.ClientCredentialsIdentityAccessor(identity);
65
+ }
66
+ else if (!identity.token) {
67
+ const invalidIdentity = new processcube_engine_sdk_1.BadRequestError(`The given identity is invalid. Required property 'token' is missing.`);
68
+ invalidIdentity.additionalInformation = {
69
+ configuredIdentity: identity,
70
+ };
71
+ throw invalidIdentity;
72
+ }
73
+ else {
74
+ accessor = new IdentityAccessor(identity);
75
+ }
76
+ accessor.initialize();
77
+ return accessor;
78
+ }
79
+ identityGetter;
80
+ latestIdentity;
81
+ expirationTimeInMs;
82
+ id;
83
+ identityAvailablePromise;
84
+ identityAvailableResolve;
85
+ identityAvailableReject;
86
+ refreshFailedCritically = false;
87
+ refreshTimeout;
88
+ disposed = false;
89
+ isDynamicRefreshObject = false;
90
+ logger = new processcube_engine_sdk_1.Logger('engine-client:identity-accessor');
91
+ newIdentityCallbacks = [];
92
+ asyncLock = new async_lock_1.default({ maxPending: 100000 });
93
+ constructor(staticOrDynamicIdentity) {
94
+ if (typeof staticOrDynamicIdentity === 'function') {
95
+ this.id = uuid.v4();
96
+ this.identityGetter = staticOrDynamicIdentity;
97
+ this.isDynamicRefreshObject = true;
98
+ }
99
+ else if (staticOrDynamicIdentity) {
100
+ this.id = staticOrDynamicIdentity?.userId ?? uuid.v4();
101
+ this.latestIdentity = staticOrDynamicIdentity;
102
+ this.identityGetter = async () => staticOrDynamicIdentity;
103
+ }
104
+ else {
105
+ this.id = dummyIdentity.userId;
106
+ this.latestIdentity = dummyIdentity;
107
+ this.identityGetter = async () => dummyIdentity;
108
+ }
109
+ this.identityAvailablePromise = new Promise((resolve, reject) => {
110
+ this.identityAvailableResolve = resolve;
111
+ this.identityAvailableReject = reject;
112
+ });
113
+ }
114
+ initialize() {
115
+ this.fetchIdentity().then(() => this.refreshIdentityPeriodically());
116
+ }
117
+ getId() {
118
+ return this.id;
119
+ }
120
+ getIdentitySync() {
121
+ return this.latestIdentity;
122
+ }
123
+ canIdentityBeRefreshed() {
124
+ return this.isDynamicRefreshObject && this.expirationTimeInMs > 0 && !this.refreshFailedCritically && !this.disposed;
125
+ }
126
+ async getIdentity() {
127
+ await this.waitUntilIdentityIsAvailable();
128
+ return this.latestIdentity;
129
+ }
130
+ async forceImmediateIdentityRefresh() {
131
+ if (!this.isDynamicRefreshObject) {
132
+ return;
133
+ }
134
+ clearTimeout(this.refreshTimeout);
135
+ await this.fetchIdentity();
136
+ this.refreshIdentityPeriodically();
137
+ }
138
+ /**
139
+ * This method only waits the first time the identity is retrieved from any remote source to ensure no missing references occur.
140
+ */
141
+ async waitUntilIdentityIsAvailable() {
142
+ return await this.identityAvailablePromise;
143
+ }
144
+ /**
145
+ * @deprecated This method only exists for downward compatibility purposes, use getIdentity instead.
146
+ */
147
+ getIdentityStatic() {
148
+ if (!this.latestIdentity) {
149
+ throw new Error('Identity not yet initialized');
150
+ }
151
+ return this.latestIdentity;
152
+ }
153
+ onNewIdentity(callback) {
154
+ this.newIdentityCallbacks.push(callback);
155
+ }
156
+ removeOnNewIdentityListener(callback) {
157
+ this.newIdentityCallbacks = this.newIdentityCallbacks.filter((cb) => cb !== callback);
158
+ }
159
+ /**
160
+ * The IdentityAccesor creates a refresh timer, which needs to be disposed.
161
+ * This method should be called when the IdentityAccessor is not needed anymore.
162
+ * If any Client using this will be disposed, the IdentityAccessor will be disposed as well.
163
+ */
164
+ dispose() {
165
+ clearTimeout(this.refreshTimeout);
166
+ this.refreshTimeout = undefined;
167
+ this.identityAvailableResolve();
168
+ this.disposed = true;
169
+ }
170
+ getBaseMinRefreshTimeInMs() {
171
+ const fiveMinutes = 5 * 60 * 1000;
172
+ return fiveMinutes;
173
+ }
174
+ refreshIdentityPeriodically() {
175
+ clearTimeout(this.refreshTimeout);
176
+ if (this.canIdentityBeRefreshed()) {
177
+ const timeUntilNextRefresh = Math.max((this.expirationTimeInMs ?? 0) - Date.now() - this.getBaseMinRefreshTimeInMs(), this.getBaseMinRefreshTimeInMs());
178
+ const timeUntilNextRefresh32Bit = Math.min(timeUntilNextRefresh, 2147483647);
179
+ this.refreshTimeout = setTimeout(async () => {
180
+ await this.fetchIdentity();
181
+ this.refreshIdentityPeriodically();
182
+ }, timeUntilNextRefresh32Bit);
183
+ }
184
+ else if (this.refreshFailedCritically) {
185
+ this.logger.error(`Identity refresh failed critically and won't be refreshed anymore.`);
186
+ this.identityAvailableReject(new Error('Identity refresh failed critically and wont be refreshed anymore.'));
187
+ }
188
+ }
189
+ async fetchIdentity() {
190
+ await this.asyncLock.acquire('refreshIdentity', async () => {
191
+ this.refreshFailedCritically = false;
192
+ try {
193
+ this.latestIdentity = await this.identityGetter();
194
+ if (this.latestIdentity == dummyIdentity || this.latestIdentity?.token == dummyIdentity.token) {
195
+ this.expirationTimeInMs = 0;
196
+ this.identityAvailableResolve();
197
+ }
198
+ else if (this.latestIdentity?.token) {
199
+ const decodedToken = this.getDecodedToken(this.latestIdentity.token);
200
+ this.expirationTimeInMs = decodedToken?.exp ? decodedToken.exp * 1000 : 0;
201
+ this.identityAvailableResolve();
202
+ try {
203
+ await Promise.all(this.newIdentityCallbacks.map((cb) => cb(this.latestIdentity)));
204
+ }
205
+ catch (err) {
206
+ this.logger.warn('Error while publishing new identity to listeners', { err });
207
+ }
208
+ }
209
+ else {
210
+ this.identityAvailableResolve();
211
+ }
212
+ }
213
+ catch (err) {
214
+ this.logger.error('Error while refreshing identity', { err });
215
+ this.refreshFailedCritically =
216
+ !err.message ||
217
+ !['ETIMEDOUT', 'ECONNRESET', 'ECONNREFUSED', 'other side closed', 'SocketError', 'EAI_AGAIN', 'EHOSTUNREACH', 'EPIPE', 'ECONNABORTED', 'EHOSTDOWN'].some((errorString) => err.message.includes(errorString));
218
+ }
219
+ });
220
+ }
221
+ getDecodedToken(tokenString) {
222
+ if (!tokenString) {
223
+ return undefined;
224
+ }
225
+ if (tokenString === dummyIdentity.token) {
226
+ return undefined;
227
+ }
228
+ try {
229
+ const splitToken = this.latestIdentity.token.split('.');
230
+ const decodedToken = JSON.parse(Buffer.from(splitToken[1], 'base64').toString());
231
+ return decodedToken;
232
+ }
233
+ catch (error) {
234
+ return undefined;
235
+ }
236
+ }
237
+ }
238
+ exports.IdentityAccessor = IdentityAccessor;
239
+ function isClientCredentialsConfig(identity) {
240
+ return (identity.clientId !== undefined ||
241
+ identity.clientSecret !== undefined ||
242
+ identity.scope !== undefined ||
243
+ identity.authorityUrl !== undefined ||
244
+ identity.engineUrl !== undefined);
245
+ }
246
+ //# sourceMappingURL=IdentityAccessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityAccessor.js","sourceRoot":"","sources":["../../src/IdentityAccessor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAmC;AACnC,2CAA6B;AAE7B,2EAAmF;AAEnF,mCAA4D;AAa5D,MAAM,aAAa,GAAa;IAC9B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,aAAa;CACtB,CAAC;AAEF,MAAa,gBAAgB;IAC3B,MAAM,CAAC,IAAI,CAAC,QAAuB,EAAE,SAAkB;QACrD,IAAI,QAAQ,YAAY,gBAAgB,EAAE,CAAC;YACzC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,QAA0B,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1C,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YACjC,CAAC;YAED,QAAQ,GAAG,IAAI,yCAAiC,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,CAAE,QAAqB,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,IAAI,wCAAe,CAAC,sEAAsE,CAAC,CAAC;YACpH,eAAe,CAAC,qBAAqB,GAAG;gBACtC,kBAAkB,EAAE,QAAQ;aAC7B,CAAC;YAEF,MAAM,eAAe,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,cAAc,CAA+C;IAE7D,cAAc,CAAW;IACzB,kBAAkB,CAAS;IACzB,EAAE,CAAS;IAEb,wBAAwB,CAAgB;IACxC,wBAAwB,CAAa;IACrC,uBAAuB,CAAyB;IAE9C,uBAAuB,GAAG,KAAK,CAAC;IAChC,cAAc,CAAiB;IAE/B,QAAQ,GAAG,KAAK,CAAC;IACjB,sBAAsB,GAAG,KAAK,CAAC;IAE/B,MAAM,GAAG,IAAI,+BAAM,CAAC,iCAAiC,CAAC,CAAC;IAEzD,oBAAoB,GAAiD,EAAE,CAAC;IAExE,SAAS,GAAG,IAAI,oBAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1D,YAAY,uBAAiF;QAC3F,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE,CAAC;YAClD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC;YAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;aAAM,IAAI,uBAAuB,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,GAAG,uBAAuB,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC;YAC9C,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,uBAAuB,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,wBAAwB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9D,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC;YACxC,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvH,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAE1C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,6BAA6B;QACxC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,4BAA4B;QACvC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,aAAa,CAAC,QAA+C;QAClE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,2BAA2B,CAAC,QAA+C;QAChF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAES,yBAAyB;QACjC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAElC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,2BAA2B;QACjC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YACxJ,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAC7E,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC1C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YACzD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAElD,IAAI,IAAI,CAAC,cAAc,IAAI,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBAC9F,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;qBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAErE,IAAI,CAAC,kBAAkB,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBAEhC,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpF,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAE9D,IAAI,CAAC,uBAAuB;oBAC1B,CAAC,GAAG,CAAC,OAAO;wBACZ,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACvK,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAClC,CAAC;YACN,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,WAAmB;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,WAAW,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjF,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AA7ND,4CA6NC;AAED,SAAS,yBAAyB,CAAC,QAAsB;IACvD,OAAO,CACJ,QAAoC,CAAC,QAAQ,KAAK,SAAS;QAC3D,QAAoC,CAAC,YAAY,KAAK,SAAS;QAC/D,QAAoC,CAAC,KAAK,KAAK,SAAS;QACxD,QAAoC,CAAC,YAAY,KAAK,SAAS;QAC/D,QAAoC,CAAC,SAAS,KAAK,SAAS,CAC9D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientCredentialsIdentityAccessor = void 0;
4
+ const ClientFactory_1 = require("./ClientFactory");
5
+ const Retry_1 = require("./Retry");
6
+ const index_1 = require("./index");
7
+ class ClientCredentialsIdentityAccessor extends index_1.IdentityAccessor {
8
+ config;
9
+ constructor(clientCredentialsConfig) {
10
+ super(async () => {
11
+ const identity = await this.getFreshIdentity(clientCredentialsConfig);
12
+ return identity;
13
+ });
14
+ this.config = clientCredentialsConfig;
15
+ this.id = this.hash(JSON.stringify(clientCredentialsConfig ?? {}));
16
+ }
17
+ async getFreshIdentity(clientCredentialsConfig) {
18
+ const token = await this.getNewToken(clientCredentialsConfig);
19
+ return {
20
+ token,
21
+ userId: clientCredentialsConfig.clientId ?? '',
22
+ };
23
+ }
24
+ getBaseMinRefreshTimeInMs() {
25
+ const fiveMinutes = 5 * 60 * 1000;
26
+ if (this.config.baseMinRefreshTimeInMs) {
27
+ return this.config.baseMinRefreshTimeInMs > 0 ? this.config.baseMinRefreshTimeInMs : fiveMinutes;
28
+ }
29
+ return fiveMinutes;
30
+ }
31
+ async getNewToken(clientCredentialsConfig) {
32
+ const authorityUrl = await this.getAuthorityUrl(clientCredentialsConfig);
33
+ const openIdClient = await this.getOpenIdClient();
34
+ const wellKnownUrl = new URL(`${authorityUrl}/.well-known/openid-configuration`);
35
+ let tokenSet;
36
+ try {
37
+ const config = await (0, Retry_1.executeWithRetry)(async () => openIdClient.discovery(wellKnownUrl, clientCredentialsConfig.clientId ?? '', clientCredentialsConfig.clientSecret, undefined, {
38
+ execute: [openIdClient.allowInsecureRequests],
39
+ }), `${wellKnownUrl} not available, retrying...`);
40
+ tokenSet = await (0, Retry_1.executeWithRetry)(async () => openIdClient.clientCredentialsGrant(config, { scope: clientCredentialsConfig.scope ?? '' }), `${wellKnownUrl} not available, retrying...`);
41
+ }
42
+ catch (err) {
43
+ this.logger.error('Error while getting new token from authority', { err, authorityUrl, wellKnownUrl });
44
+ throw err;
45
+ }
46
+ if (tokenSet.access_token) {
47
+ return tokenSet.access_token;
48
+ }
49
+ else {
50
+ this.logger.error('No access token found in token set');
51
+ throw new Error('No access token found in token set');
52
+ }
53
+ }
54
+ async getOpenIdClient() {
55
+ const openIdClient = await import('openid-client');
56
+ return openIdClient;
57
+ }
58
+ async getAuthorityUrl(config) {
59
+ if (config.authorityUrl) {
60
+ return this.ensureEndsWithoutSlash(this.config.authorityUrl);
61
+ }
62
+ if (config.engineUrl) {
63
+ return this.getAuthorityUrlFromEngineUrl(config.engineUrl);
64
+ }
65
+ throw new Error('No authorityUrl or engineUrl provided.');
66
+ }
67
+ async getAuthorityUrlFromEngineUrl(engineUrl) {
68
+ try {
69
+ const applicationInfoClient = ClientFactory_1.ClientFactory.createApplicationInfoClient(engineUrl);
70
+ const authorityAddress = await (0, Retry_1.executeWithRetry)(async () => applicationInfoClient.getAuthorityAddress(), `${engineUrl} not available, retrying...`);
71
+ return this.ensureEndsWithoutSlash(authorityAddress);
72
+ }
73
+ catch (err) {
74
+ this.logger.error('Error while getting authority address from engine', { err, engineUrl });
75
+ throw err;
76
+ }
77
+ }
78
+ ensureEndsWithoutSlash(url) {
79
+ return url.replace(/(\/)$/, '');
80
+ }
81
+ hash(str) {
82
+ // djb2 constants
83
+ let hash = 5381;
84
+ const product = 33;
85
+ let i = str.length;
86
+ while (i) {
87
+ hash = (hash * product) ^ str.charCodeAt(--i);
88
+ }
89
+ const numericalHash = hash >>> 0;
90
+ return numericalHash + '';
91
+ }
92
+ }
93
+ exports.ClientCredentialsIdentityAccessor = ClientCredentialsIdentityAccessor;
94
+ //# sourceMappingURL=IdentityAccessorClientCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityAccessorClientCredentials.js","sourceRoot":"","sources":["../../src/IdentityAccessorClientCredentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeWithRetry = executeWithRetry;
4
+ const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk");
5
+ const logger = new processcube_engine_sdk_1.Logger('engine-client:retry');
6
+ function executeWithRetry(fn, retryMessage, errorsToRetry = ['ETIMEDOUT', 'ECONNRESET', 'ECONNREFUSED', 'other side closed', 'SocketError', 'EAI_AGAIN', 'EHOSTUNREACH', 'EPIPE', 'ECONNABORTED', 'EHOSTDOWN'], maxRetries = 20, retryInterval = 5000) {
7
+ return new Promise((resolve, reject) => {
8
+ const execute = async (retries) => {
9
+ try {
10
+ const result = await fn();
11
+ resolve(result);
12
+ }
13
+ catch (error) {
14
+ const message = error.message || error || '';
15
+ const isRetryable = errorsToRetry.some((retryError) => message.includes(retryError));
16
+ if (retries > 0 && isRetryable) {
17
+ if (retryMessage) {
18
+ logger.debug(retryMessage, { reason: message });
19
+ }
20
+ setTimeout(() => execute(retries - 1), retryInterval);
21
+ }
22
+ else {
23
+ reject(error);
24
+ }
25
+ }
26
+ };
27
+ execute(maxRetries);
28
+ });
29
+ }
30
+ //# sourceMappingURL=Retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Retry.js","sourceRoot":"","sources":["../../src/Retry.ts"],"names":[],"mappings":";;AAIA,4CA8BC;AAlCD,2EAAwD;AAExD,MAAM,MAAM,GAAG,IAAI,+BAAM,CAAC,qBAAqB,CAAC,CAAC;AAEjD,SAAgB,gBAAgB,CAC9B,EAA0B,EAC1B,YAAqB,EACrB,gBAA+B,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,EACjL,aAAqB,EAAE,EACvB,gBAAwB,IAAI;IAE5B,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAErF,IAAI,OAAO,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC/B,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClD,CAAC;oBAED,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -6,8 +6,6 @@ const params = {
6
6
  correlationId: ':correlation_id',
7
7
  // Instance Id of an UntypedTask.
8
8
  untypedTaskInstanceId: ':untyped_task_instance_id',
9
- // Deprecated version of "untypedTaskInstanceId"
10
- emptyActivityInstanceId: ':empty_activity_instance_id',
11
9
  // Id of an Event.
12
10
  eventId: ':event_id',
13
11
  // Name of an Event.
@@ -146,12 +144,11 @@ const paths = {
146
144
  */
147
145
  triggerSignalEvent: `/signals/${params.eventName}/trigger`,
148
146
  /**
149
- * Finishes a specific EmptyActivity by its InstanceId. Deprecated, use "finish Untyped Task" instead
150
- * @tags EmptyActivity
151
- * @deprecated
152
- * @method put
147
+ * Triggers a TimerEvent by its InstanceId.
148
+ * @tags Events
149
+ * @method post
153
150
  */
154
- finishEmptyActivity: `/empty_activities/${params.emptyActivityInstanceId}/finish`,
151
+ triggerTimerEvent: `/timer/${params.flowNodeInstanceId}/trigger`,
155
152
  /**
156
153
  * Finishes a specific UntypedTask by its InstanceId.
157
154
  * @tags UntypedTask
@@ -317,6 +314,20 @@ const paths = {
317
314
  * @responseType ProcessDefinition
318
315
  */
319
316
  getProcessDefinitionForProcessInstance: `/process_instances/${params.processInstanceId}/process_definition`,
317
+ /**
318
+ * Gets child ProcessInstanceIds for a given ProcessInstance.
319
+ * @tags ProcessInstances
320
+ * @method get
321
+ * @responseType Array<string>
322
+ */
323
+ getChildProcessInstanceIds: `/process_instances/${params.processInstanceId}/find_children`,
324
+ /**
325
+ * Gets ancestor ProcessInstanceIds for a given ProcessInstance.
326
+ * @tags ProcessInstances
327
+ * @method get
328
+ * @responseType Array<string>
329
+ */
330
+ getAncestorProcessInstanceIds: `/process_instances/${params.processInstanceId}/find_ancestors`,
320
331
  /**
321
332
  * Gets the ProcessModel for a given ProcessInstance.
322
333
  * @tags ProcessInstances
@@ -549,20 +560,6 @@ const paths = {
549
560
  * @responseType EventMessage
550
561
  */
551
562
  onActivityCanceled: '/notifications/long_polling/activity_canceled',
552
- /**
553
- * Wait for an UntypedTaskWaiting notification and resolves with the notification's content.
554
- * @tags Notifications
555
- * @method get
556
- * @responseType EventMessage
557
- */
558
- onUntypedTaskWaiting: '/notifications/long_polling/empty_activity_waiting',
559
- /**
560
- * Wait for an UntypedTaskFinished notification and resolves with the notification's content.
561
- * @tags Notifications
562
- * @method get
563
- * @responseType EventMessage
564
- */
565
- onUntypedTaskFinished: '/notifications/long_polling/empty_activity_finished',
566
563
  /**
567
564
  * Wait for a ManualTaskWaiting notification and resolves with the notification's content.
568
565
  * @tags Notifications
@@ -1 +1 @@
1
- {"version":3,"file":"RestSettings.js","sourceRoot":"","sources":["../../../src/Types/RestSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestSettings.js","sourceRoot":"","sources":["../../../src/Types/RestSettings.ts"],"names":[],"mappings":"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"}