node-opcua-client 2.166.0 → 2.168.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 (102) hide show
  1. package/dist/alarms_and_conditions/client_alarm_tools.d.ts +1 -1
  2. package/dist/alarms_and_conditions/client_alarm_tools.js +2 -2
  3. package/dist/alarms_and_conditions/client_alarm_tools.js.map +1 -1
  4. package/dist/alarms_and_conditions/client_tools.d.ts +3 -0
  5. package/dist/alarms_and_conditions/client_tools.js +2 -2
  6. package/dist/alarms_and_conditions/client_tools.js.map +1 -1
  7. package/dist/client_base.d.ts +47 -40
  8. package/dist/client_base.js +5 -6
  9. package/dist/client_base.js.map +1 -1
  10. package/dist/client_monitored_item.d.ts +7 -7
  11. package/dist/client_monitored_item.js.map +1 -1
  12. package/dist/client_monitored_item_base.d.ts +12 -13
  13. package/dist/client_monitored_item_group.d.ts +5 -5
  14. package/dist/client_monitored_item_toolbox.d.ts +6 -7
  15. package/dist/client_monitored_item_toolbox.js.map +1 -1
  16. package/dist/client_session.d.ts +19 -23
  17. package/dist/client_session.js.map +1 -1
  18. package/dist/client_session_keepalive_manager.d.ts +1 -1
  19. package/dist/client_session_keepalive_manager.js +6 -6
  20. package/dist/client_session_keepalive_manager.js.map +1 -1
  21. package/dist/client_subscription.d.ts +11 -12
  22. package/dist/client_subscription.js.map +1 -1
  23. package/dist/client_utils.d.ts +3 -3
  24. package/dist/client_utils.js.map +1 -1
  25. package/dist/common.d.ts +12 -12
  26. package/dist/index.d.ts +26 -27
  27. package/dist/index.js +65 -66
  28. package/dist/index.js.map +1 -1
  29. package/dist/opcua_client.d.ts +17 -19
  30. package/dist/opcua_client.js.map +1 -1
  31. package/dist/private/client_base_impl.d.ts +19 -18
  32. package/dist/private/client_base_impl.js +220 -192
  33. package/dist/private/client_base_impl.js.map +1 -1
  34. package/dist/private/client_monitored_item_group_impl.d.ts +4 -5
  35. package/dist/private/client_monitored_item_group_impl.js +1 -1
  36. package/dist/private/client_monitored_item_group_impl.js.map +1 -1
  37. package/dist/private/client_monitored_item_impl.d.ts +9 -10
  38. package/dist/private/client_monitored_item_impl.js.map +1 -1
  39. package/dist/private/client_publish_engine.d.ts +3 -3
  40. package/dist/private/client_publish_engine.js +6 -7
  41. package/dist/private/client_publish_engine.js.map +1 -1
  42. package/dist/private/client_session_impl.d.ts +24 -25
  43. package/dist/private/client_session_impl.js +14 -10
  44. package/dist/private/client_session_impl.js.map +1 -1
  45. package/dist/private/client_subscription_impl.d.ts +10 -11
  46. package/dist/private/client_subscription_impl.js +12 -11
  47. package/dist/private/client_subscription_impl.js.map +1 -1
  48. package/dist/private/i_private_client.d.ts +7 -7
  49. package/dist/private/opcua_client_impl.d.ts +12 -9
  50. package/dist/private/opcua_client_impl.js +58 -48
  51. package/dist/private/opcua_client_impl.js.map +1 -1
  52. package/dist/private/performance.js.map +1 -1
  53. package/dist/private/reconnection/client_publish_engine_reconnection.d.ts +1 -1
  54. package/dist/private/reconnection/client_publish_engine_reconnection.js +54 -43
  55. package/dist/private/reconnection/client_publish_engine_reconnection.js.map +1 -1
  56. package/dist/private/reconnection/client_reconnection.d.ts +1 -1
  57. package/dist/private/reconnection/client_subscription_reconnection.d.ts +1 -1
  58. package/dist/private/reconnection/client_subscription_reconnection.js +2 -2
  59. package/dist/private/reconnection/client_subscription_reconnection.js.map +1 -1
  60. package/dist/private/reconnection/reconnection.d.ts +4 -4
  61. package/dist/private/reconnection/reconnection.js +200 -281
  62. package/dist/private/reconnection/reconnection.js.map +1 -1
  63. package/dist/tools/findservers.d.ts +7 -2
  64. package/dist/tools/findservers.js +41 -53
  65. package/dist/tools/findservers.js.map +1 -1
  66. package/dist/tools/read_history_server_capabilities.d.ts +1 -1
  67. package/dist/tools/read_history_server_capabilities.js +9 -8
  68. package/dist/tools/read_history_server_capabilities.js.map +1 -1
  69. package/dist/user_identity_info.d.ts +1 -1
  70. package/dist/verify.js.map +1 -1
  71. package/package.json +45 -45
  72. package/source/alarms_and_conditions/client_alarm_tools.ts +14 -8
  73. package/source/alarms_and_conditions/client_tools.ts +7 -6
  74. package/source/client_base.ts +93 -79
  75. package/source/client_monitored_item.ts +7 -8
  76. package/source/client_monitored_item_base.ts +12 -14
  77. package/source/client_monitored_item_group.ts +5 -5
  78. package/source/client_monitored_item_toolbox.ts +13 -14
  79. package/source/client_session.ts +37 -40
  80. package/source/client_session_keepalive_manager.ts +7 -10
  81. package/source/client_subscription.ts +11 -12
  82. package/source/client_utils.ts +6 -6
  83. package/source/common.ts +12 -12
  84. package/source/index.ts +44 -40
  85. package/source/opcua_client.ts +24 -23
  86. package/source/private/client_base_impl.ts +329 -290
  87. package/source/private/client_monitored_item_group_impl.ts +10 -14
  88. package/source/private/client_monitored_item_impl.ts +17 -17
  89. package/source/private/client_publish_engine.ts +11 -12
  90. package/source/private/client_session_impl.ts +85 -82
  91. package/source/private/client_subscription_impl.ts +42 -41
  92. package/source/private/i_private_client.ts +8 -8
  93. package/source/private/opcua_client_impl.ts +118 -97
  94. package/source/private/performance.ts +2 -3
  95. package/source/private/reconnection/client_publish_engine_reconnection.ts +76 -68
  96. package/source/private/reconnection/client_reconnection.ts +1 -1
  97. package/source/private/reconnection/client_subscription_reconnection.ts +16 -13
  98. package/source/private/reconnection/reconnection.ts +307 -301
  99. package/source/tools/findservers.ts +43 -62
  100. package/source/tools/read_history_server_capabilities.ts +20 -22
  101. package/source/user_identity_info.ts +5 -5
  102. package/source/verify.ts +25 -25
@@ -11,14 +11,13 @@ exports._shouldNotContinue2 = _shouldNotContinue2;
11
11
  exports.repair_client_session = repair_client_session;
12
12
  exports.repair_client_sessions = repair_client_sessions;
13
13
  // tslint:disable:only-arrow-functions
14
- const async_1 = __importDefault(require("async"));
15
14
  const chalk_1 = __importDefault(require("chalk"));
16
15
  const node_opcua_assert_1 = require("node-opcua-assert");
16
+ const node_opcua_client_dynamic_extension_object_1 = require("node-opcua-client-dynamic-extension-object");
17
17
  const node_opcua_debug_1 = require("node-opcua-debug");
18
18
  const node_opcua_service_subscription_1 = require("node-opcua-service-subscription");
19
19
  const node_opcua_status_code_1 = require("node-opcua-status-code");
20
20
  const node_opcua_types_1 = require("node-opcua-types");
21
- const node_opcua_client_dynamic_extension_object_1 = require("node-opcua-client-dynamic-extension-object");
22
21
  const client_publish_engine_reconnection_1 = require("./client_publish_engine_reconnection");
23
22
  const client_subscription_reconnection_1 = require("./client_subscription_reconnection");
24
23
  const debugLog = (0, node_opcua_debug_1.make_debugLog)("RECONNECTION");
@@ -43,6 +42,11 @@ function _shouldNotContinue2(subscription) {
43
42
  }
44
43
  return _shouldNotContinue(subscription.session);
45
44
  }
45
+ function _throwIfShouldNotContinue(session) {
46
+ const err = _shouldNotContinue(session);
47
+ if (err)
48
+ throw err;
49
+ }
46
50
  //
47
51
  // a new secure channel has be created, we need to reactivate the corresponding session,
48
52
  // and reestablish the subscription and restart the publish engine.
@@ -107,7 +111,7 @@ function _shouldNotContinue2(subscription) {
107
111
  // |
108
112
  // v +-------------------+ +----------------------+
109
113
  // / \ | CreateSession | | |
110
- // / SR? \______Bad_______>| ActivateSession |-----> | TransferSubscription |
114
+ // / SR? \______Bad_____> | ActivateSession |-----> | TransferSubscription |
111
115
  // \ / | | | | (1)
112
116
  // \ / +-------------------+ +----------------------+ ^
113
117
  // | Good | |
@@ -157,287 +161,199 @@ function _ask_for_subscription_republish(session, callback) {
157
161
  callback(err);
158
162
  });
159
163
  }
160
- function create_session_and_repeat_if_failed(client, session, callback) {
161
- // prettier-ignore
162
- {
163
- const err = _shouldNotContinue(session);
164
- if (err) {
165
- return callback(err);
166
- }
167
- }
168
- doDebug && debugLog(chalk_1.default.bgWhite.red(" => creating a new session ...."));
169
- // create new session, based on old session,
170
- // so we can reuse subscriptions data
171
- client.__createSession_step2(session, (err, session1) => {
172
- // prettier-ignore
173
- {
174
- const err = _shouldNotContinue(session);
175
- if (err) {
176
- return callback(err);
164
+ function create_session_and_repeat_if_failed(client, session) {
165
+ return new Promise((resolve, reject) => {
166
+ _throwIfShouldNotContinue(session);
167
+ doDebug && debugLog(chalk_1.default.bgWhite.red(" => creating a new session ...."));
168
+ // create new session, based on old session,
169
+ // so we can reuse subscriptions data
170
+ client.__createSession_step2(session, (err, session1) => {
171
+ _throwIfShouldNotContinue(session);
172
+ if (!err && session1) {
173
+ (0, node_opcua_assert_1.assert)(session === session1, "session should have been recycled");
174
+ resolve(session);
177
175
  }
178
- }
179
- if (!err && session1) {
180
- (0, node_opcua_assert_1.assert)(session === session1, "session should have been recycled");
181
- callback(err, session);
182
- return;
183
- }
184
- else {
185
- doDebug && debugLog("Cannot complete subscription republish err = ", err?.message);
186
- callback(err);
187
- }
176
+ else {
177
+ doDebug && debugLog("Cannot complete subscription republish err = ", err?.message);
178
+ reject(err || new Error("Failed to create session"));
179
+ }
180
+ });
188
181
  });
189
182
  }
190
- function repair_client_session_by_recreating_a_new_session(client, session, callback) {
191
- // prettier-ignore
192
- {
193
- const err = _shouldNotContinue(session);
194
- if (err) {
195
- return callback(err);
196
- }
197
- }
198
- // As we don"t know if server has been rebooted or not,
199
- // and may be upgraded in between, we have to invalidate the extra data type manager
200
- (0, node_opcua_client_dynamic_extension_object_1.invalidateExtraDataTypeManager)(session);
201
- // c8 ignore next
202
- if (doDebug) {
203
- debugLog(" repairing client session by_recreating a new session for old session ", session.sessionId.toString());
204
- }
205
- let newSession;
206
- const listenerCountBefore = session.listenerCount("");
207
- function recreateSubscription(subscriptionsToRecreate, innerCallback) {
208
- async_1.default.forEach(subscriptionsToRecreate, (subscriptionId, next) => {
209
- // prettier-ignore
210
- {
211
- const err = _shouldNotContinue(session);
212
- if (err) {
213
- return next(err);
214
- }
215
- }
216
- if (!session.getPublishEngine().hasSubscription(subscriptionId)) {
217
- doDebug && debugLog(chalk_1.default.red(" => CANNOT RECREATE SUBSCRIPTION "), subscriptionId);
218
- return next();
219
- }
220
- const subscription = session.getPublishEngine().getSubscription(subscriptionId);
221
- doDebug && debugLog(chalk_1.default.red(" => RECREATING SUBSCRIPTION "), subscriptionId);
222
- (0, node_opcua_assert_1.assert)(subscription.session === newSession, "must have the new session");
223
- (0, client_subscription_reconnection_1.recreateSubscriptionAndMonitoredItem)(subscription)
224
- .then(() => {
183
+ function activate_session(client, session, newSession) {
184
+ return new Promise((resolve, reject) => {
185
+ _throwIfShouldNotContinue(session);
186
+ doDebug && debugLog(chalk_1.default.bgWhite.red(" => activating a new session ...."));
187
+ client._activateSession(newSession, newSession.userIdentityInfo, (err, _session1) => {
188
+ // c8 ignore next
189
+ doDebug && debugLog(" => activating a new session .... Done err=", err ? err.message : "null");
190
+ if (err) {
225
191
  doDebug &&
226
- debugLog(chalk_1.default.cyan(" => RECREATING SUBSCRIPTION AND MONITORED ITEM DONE subscriptionId="), subscriptionId);
227
- next();
228
- })
229
- .catch((err) => {
230
- doDebug && debugLog("_recreateSubscription failed !" + err.message);
231
- next();
232
- });
233
- }, (err1) => {
234
- // prettier-ignore
235
- {
236
- const err = _shouldNotContinue(session);
237
- if (err) {
238
- return innerCallback(err);
239
- }
192
+ debugLog("reactivation of the new session has failed: let be smart and close it before failing this repair attempt");
193
+ // but just on the server side, not on the client side
194
+ const closeSessionRequest = new node_opcua_types_1.CloseSessionRequest({
195
+ requestHeader: {
196
+ authenticationToken: newSession.authenticationToken
197
+ },
198
+ deleteSubscriptions: true
199
+ });
200
+ newSession._client?.performMessageTransaction(closeSessionRequest, (err2) => {
201
+ if (err2) {
202
+ warningLog("closing session", err2.message);
203
+ }
204
+ // c8 ignore next
205
+ doDebug && debugLog("the temporary replacement session is now closed");
206
+ // c8 ignore next
207
+ doDebug && debugLog(" err ", err.message, "propagated upwards");
208
+ reject(err);
209
+ });
240
210
  }
241
- if (!err1) {
242
- // prettier-ignore
211
+ else {
212
+ resolve();
243
213
  }
244
- innerCallback(err1);
245
214
  });
215
+ });
216
+ }
217
+ async function recreateSubscriptions(session, newSession, subscriptionsToRecreate) {
218
+ for (const subscriptionId of subscriptionsToRecreate) {
219
+ _throwIfShouldNotContinue(session);
220
+ if (!session.getPublishEngine().hasSubscription(subscriptionId)) {
221
+ doDebug && debugLog(chalk_1.default.red(" => CANNOT RECREATE SUBSCRIPTION "), subscriptionId);
222
+ continue;
223
+ }
224
+ const subscription = session.getPublishEngine().getSubscription(subscriptionId);
225
+ doDebug && debugLog(chalk_1.default.red(" => RECREATING SUBSCRIPTION "), subscriptionId);
226
+ (0, node_opcua_assert_1.assert)(subscription.session === newSession, "must have the new session");
227
+ try {
228
+ await (0, client_subscription_reconnection_1.recreateSubscriptionAndMonitoredItem)(subscription);
229
+ doDebug &&
230
+ debugLog(chalk_1.default.cyan(" => RECREATING SUBSCRIPTION AND MONITORED ITEM DONE subscriptionId="), subscriptionId);
231
+ }
232
+ catch (err) {
233
+ doDebug && debugLog(`_recreateSubscription failed !${err.message}`);
234
+ }
246
235
  }
247
- async_1.default.series([
248
- function suspend_old_session_publish_engine(innerCallback) {
249
- // prettier-ignore
250
- {
251
- const err = _shouldNotContinue(session);
252
- if (err) {
253
- return innerCallback(err);
254
- }
236
+ _throwIfShouldNotContinue(session);
237
+ }
238
+ function attempt_subscription_transfer(_client, session, newSession) {
239
+ return new Promise((resolve, reject) => {
240
+ _throwIfShouldNotContinue(session);
241
+ // get the old subscriptions id from the old session
242
+ const subscriptionsIds = session.getPublishEngine().getSubscriptionIds();
243
+ doDebug && debugLog(" session subscriptionCount = ", newSession.getPublishEngine().subscriptionCount);
244
+ if (subscriptionsIds.length === 0) {
245
+ doDebug && debugLog(" No subscriptions => skipping transfer subscriptions");
246
+ return resolve(); // no need to transfer subscriptions
247
+ }
248
+ doDebug && debugLog(" => asking server to transfer subscriptions = [", subscriptionsIds.join(", "), "]");
249
+ // Transfer subscriptions - ask for initial values....
250
+ const subscriptionsToTransfer = new node_opcua_service_subscription_1.TransferSubscriptionsRequest({
251
+ sendInitialValues: true,
252
+ subscriptionIds: subscriptionsIds
253
+ });
254
+ if (newSession.getPublishEngine().nbPendingPublishRequests !== 0) {
255
+ warningLog("Warning : we should not be publishing here");
256
+ }
257
+ newSession.transferSubscriptions(subscriptionsToTransfer, (err, transferSubscriptionsResponse) => {
258
+ // may be the connection with server has been disconnected
259
+ _throwIfShouldNotContinue(session);
260
+ if (err || !transferSubscriptionsResponse) {
261
+ warningLog(chalk_1.default.bgCyan("May be the server is not supporting this feature"));
262
+ // when transfer subscription has failed, we have no other choice but
263
+ // recreate the subscriptions on the server side
264
+ const subscriptionsToRecreate = [...(subscriptionsToTransfer.subscriptionIds || [])];
265
+ warningLog(chalk_1.default.bgCyan("We need to recreate entirely the subscription"));
266
+ recreateSubscriptions(session, newSession, subscriptionsToRecreate)
267
+ .then(() => resolve())
268
+ .catch((e) => reject(e));
269
+ return;
255
270
  }
271
+ const results = transferSubscriptionsResponse.results || [];
256
272
  // c8 ignore next
257
- doDebug && debugLog(chalk_1.default.bgWhite.red(" => suspend old session publish engine...."));
258
- session.getPublishEngine().suspend(true);
259
- innerCallback();
260
- },
261
- function create_new_session(innerCallback) {
262
- create_session_and_repeat_if_failed(client, session, (err, _newSession) => {
263
- // prettier-ignore
264
- {
265
- const err = _shouldNotContinue(session);
266
- if (err) {
267
- return innerCallback(err);
268
- }
269
- }
270
- if (_newSession) {
271
- newSession = _newSession;
272
- }
273
- innerCallback(err || undefined);
274
- });
275
- },
276
- function activate_new_session(innerCallback) {
277
- // prettier-ignore
278
- {
279
- const err = _shouldNotContinue(session);
280
- if (err) {
281
- return innerCallback(err);
282
- }
273
+ if (doDebug) {
274
+ debugLog(chalk_1.default.cyan(" => transfer subscriptions done"), results.map((x) => x.statusCode.toString()).join(" "));
283
275
  }
284
- doDebug && debugLog(chalk_1.default.bgWhite.red(" => activating a new session ...."));
285
- client._activateSession(newSession, newSession.userIdentityInfo, (err, session1) => {
286
- // c8 ignore next
287
- doDebug && debugLog(" => activating a new session .... Done err=", err ? err.message : "null");
288
- if (err) {
276
+ const subscriptionsToRecreate = [];
277
+ // some subscriptions may be marked as invalid on the server side ..
278
+ // those one need to be recreated and repaired ....
279
+ for (let i = 0; i < results.length; i++) {
280
+ const statusCode = results[i].statusCode;
281
+ if (statusCode.equals(node_opcua_status_code_1.StatusCodes.BadSubscriptionIdInvalid)) {
282
+ // repair subscription
289
283
  doDebug &&
290
- debugLog("reactivation of the new session has failed: let be smart and close it before failing this repair attempt");
291
- // but just on the server side, not on the client side
292
- const closeSessionRequest = new node_opcua_types_1.CloseSessionRequest({
293
- requestHeader: {
294
- authenticationToken: newSession.authenticationToken
295
- },
296
- deleteSubscriptions: true
297
- });
298
- newSession._client.performMessageTransaction(closeSessionRequest, (err2) => {
299
- if (err2) {
300
- warningLog("closing session", err2.message);
301
- }
302
- // c8 ignore next
303
- doDebug && debugLog("the temporary replacement session is now closed");
304
- // c8 ignore next
305
- doDebug && debugLog(" err ", err.message, "propagated upwards");
306
- innerCallback(err);
307
- });
284
+ debugLog(chalk_1.default.red(" WARNING SUBSCRIPTION "), subscriptionsIds[i], chalk_1.default.red(" SHOULD BE RECREATED"));
285
+ subscriptionsToRecreate.push(subscriptionsIds[i]);
308
286
  }
309
287
  else {
310
- innerCallback(err ? err : undefined);
311
- }
312
- });
313
- },
314
- function beforeSubscriptionRepair(innerCallback) {
315
- if (!client.beforeSubscriptionRecreate) {
316
- innerCallback();
317
- return;
318
- }
319
- client
320
- .beforeSubscriptionRecreate(newSession)
321
- .then((err) => {
322
- {
323
- const err = _shouldNotContinue(session);
324
- if (err) {
325
- return innerCallback(err);
326
- }
327
- }
328
- if (!err) {
329
- innerCallback();
330
- }
331
- else {
332
- innerCallback(err);
333
- }
334
- })
335
- .catch((err) => {
336
- innerCallback(err);
337
- });
338
- },
339
- function attempt_subscription_transfer(innerCallback) {
340
- // prettier-ignore
341
- {
342
- const err = _shouldNotContinue(session);
343
- if (err) {
344
- return innerCallback(err);
288
+ const availableSequenceNumbers = results[i].availableSequenceNumbers;
289
+ doDebug &&
290
+ debugLog(chalk_1.default.green(" SUBSCRIPTION "), subscriptionsIds[i], chalk_1.default.green(" CAN BE REPAIRED AND AVAILABLE "), availableSequenceNumbers);
291
+ // should be Good.
345
292
  }
346
293
  }
347
- // get the old subscriptions id from the old session
348
- const subscriptionsIds = session.getPublishEngine().getSubscriptionIds();
349
- doDebug && debugLog(" session subscriptionCount = ", newSession.getPublishEngine().subscriptionCount);
350
- if (subscriptionsIds.length === 0) {
351
- doDebug && debugLog(" No subscriptions => skipping transfer subscriptions");
352
- return innerCallback(); // no need to transfer subscriptions
353
- }
354
- doDebug && debugLog(" => asking server to transfer subscriptions = [", subscriptionsIds.join(", "), "]");
355
- // Transfer subscriptions - ask for initial values....
356
- const subscriptionsToTransfer = new node_opcua_service_subscription_1.TransferSubscriptionsRequest({
357
- sendInitialValues: true,
358
- subscriptionIds: subscriptionsIds
359
- });
360
- if (newSession.getPublishEngine().nbPendingPublishRequests !== 0) {
361
- warningLog("Warning : we should not be publishing here");
362
- }
363
- newSession.transferSubscriptions(subscriptionsToTransfer, (err, transferSubscriptionsResponse) => {
364
- // may be the connection with server has been disconnected
365
- // prettier-ignore
366
- {
367
- const err = _shouldNotContinue(session);
368
- if (err) {
369
- return innerCallback(err);
370
- }
371
- }
372
- if (err || !transferSubscriptionsResponse) {
373
- warningLog(chalk_1.default.bgCyan("May be the server is not supporting this feature"));
374
- // when transfer subscription has failed, we have no other choice but
375
- // recreate the subscriptions on the server side
376
- const subscriptionsToRecreate = [...(subscriptionsToTransfer.subscriptionIds || [])];
377
- warningLog(chalk_1.default.bgCyan("We need to recreate entirely the subscription"));
378
- recreateSubscription(subscriptionsToRecreate, innerCallback);
379
- return;
380
- }
381
- const results = transferSubscriptionsResponse.results || [];
382
- // c8 ignore next
383
- if (doDebug) {
384
- debugLog(chalk_1.default.cyan(" => transfer subscriptions done"), results.map((x) => x.statusCode.toString()).join(" "));
385
- }
386
- const subscriptionsToRecreate = [];
387
- // some subscriptions may be marked as invalid on the server side ...
388
- // those one need to be recreated and repaired ....
389
- for (let i = 0; i < results.length; i++) {
390
- const statusCode = results[i].statusCode;
391
- if (statusCode.equals(node_opcua_status_code_1.StatusCodes.BadSubscriptionIdInvalid)) {
392
- // repair subscription
393
- doDebug &&
394
- debugLog(chalk_1.default.red(" WARNING SUBSCRIPTION "), subscriptionsIds[i], chalk_1.default.red(" SHOULD BE RECREATED"));
395
- subscriptionsToRecreate.push(subscriptionsIds[i]);
396
- }
397
- else {
398
- const availableSequenceNumbers = results[i].availableSequenceNumbers;
399
- doDebug &&
400
- debugLog(chalk_1.default.green(" SUBSCRIPTION "), subscriptionsIds[i], chalk_1.default.green(" CAN BE REPAIRED AND AVAILABLE "), availableSequenceNumbers);
401
- // should be Good.
402
- }
403
- }
404
- doDebug && debugLog(" new session subscriptionCount = ", newSession.getPublishEngine().subscriptionCount);
405
- recreateSubscription(subscriptionsToRecreate, innerCallback);
406
- });
407
- },
408
- function ask_for_subscription_republish(innerCallback) {
409
- // prettier-ignore
410
- {
411
- const err = _shouldNotContinue(session);
412
- if (err) {
413
- return innerCallback(err);
414
- }
294
+ doDebug && debugLog(" new session subscriptionCount = ", newSession.getPublishEngine().subscriptionCount);
295
+ recreateSubscriptions(session, newSession, subscriptionsToRecreate)
296
+ .then(() => resolve())
297
+ .catch((e) => reject(e));
298
+ });
299
+ });
300
+ }
301
+ async function repair_client_session_by_recreating_a_new_session_async(client, session) {
302
+ _throwIfShouldNotContinue(session);
303
+ // As we don't know if server has been rebooted or not,
304
+ // and may be upgraded in between, we have to invalidate the extra data type manager
305
+ (0, node_opcua_client_dynamic_extension_object_1.invalidateExtraDataTypeManager)(session);
306
+ // c8 ignore next
307
+ if (doDebug) {
308
+ debugLog(" repairing client session by_recreating a new session for old session ", session.sessionId.toString());
309
+ }
310
+ const listenerCountBefore = session.listenerCount("");
311
+ // Step 1: suspend old session publish engine
312
+ _throwIfShouldNotContinue(session);
313
+ // c8 ignore next
314
+ doDebug && debugLog(chalk_1.default.bgWhite.red(" => suspend old session publish engine...."));
315
+ session.getPublishEngine().suspend(true);
316
+ // Step 2: create new session
317
+ const newSession = await create_session_and_repeat_if_failed(client, session);
318
+ _throwIfShouldNotContinue(session);
319
+ // Step 3: activate new session
320
+ await activate_session(client, session, newSession);
321
+ _throwIfShouldNotContinue(session);
322
+ // Step 4: before subscription repair hook
323
+ if (client.beforeSubscriptionRecreate) {
324
+ const hookErr = await client.beforeSubscriptionRecreate(newSession);
325
+ _throwIfShouldNotContinue(session);
326
+ if (hookErr) {
327
+ throw hookErr;
328
+ }
329
+ }
330
+ // Step 5: attempt subscription transfer
331
+ await attempt_subscription_transfer(client, session, newSession);
332
+ _throwIfShouldNotContinue(session);
333
+ // Step 6: ask for subscription republish
334
+ await new Promise((resolve, reject) => {
335
+ _ask_for_subscription_republish(newSession, (err) => {
336
+ if (err) {
337
+ warningLog("warning: Subscription republished has failed ", err.message);
338
+ reject(err);
415
339
  }
416
- // assert(newSession.getPublishEngine().nbPendingPublishRequests === 0, "we should not be publishing here");
417
- // call Republish
418
- return _ask_for_subscription_republish(newSession, (err) => {
419
- if (err) {
420
- warningLog("warning: Subscription republished has failed ", err.message);
421
- }
422
- innerCallback(err);
423
- });
424
- },
425
- function start_publishing_as_normal(innerCallback) {
426
- // prettier-ignore
427
- {
428
- const err = _shouldNotContinue(session);
429
- if (err) {
430
- return innerCallback(err);
431
- }
340
+ else {
341
+ resolve();
432
342
  }
433
- newSession.getPublishEngine().suspend(false);
434
- const listenerCountAfter = session.listenerCount("");
435
- (0, node_opcua_assert_1.assert)(newSession === session);
436
- doDebug && debugLog("listenerCountBefore =", listenerCountBefore, "listenerCountAfter = ", listenerCountAfter);
437
- innerCallback();
438
- }
439
- ], (err) => {
440
- doDebug && err && debugLog("repair_client_session_by_recreating_a_new_session failed with ", err.message);
343
+ });
344
+ });
345
+ _throwIfShouldNotContinue(session);
346
+ // Step 7: start publishing as normal
347
+ newSession.getPublishEngine().suspend(false);
348
+ const listenerCountAfter = session.listenerCount("");
349
+ (0, node_opcua_assert_1.assert)(newSession === session);
350
+ doDebug && debugLog("listenerCountBefore =", listenerCountBefore, "listenerCountAfter = ", listenerCountAfter);
351
+ }
352
+ function repair_client_session_by_recreating_a_new_session(client, session, callback) {
353
+ repair_client_session_by_recreating_a_new_session_async(client, session)
354
+ .then(() => callback())
355
+ .catch((err) => {
356
+ doDebug && debugLog("repair_client_session_by_recreating_a_new_session failed with ", err.message);
441
357
  callback(err);
442
358
  });
443
359
  }
@@ -464,7 +380,7 @@ function _repair_client_session(client, session, callback) {
464
380
  return callback(err);
465
381
  }
466
382
  }
467
- client._activateSession(session, session.userIdentityInfo, (err, session2) => {
383
+ client._activateSession(session, session.userIdentityInfo, (err, _session2) => {
468
384
  // prettier-ignore
469
385
  {
470
386
  const err = _shouldNotContinue(session);
@@ -568,24 +484,27 @@ function repair_client_session(client, session, callback) {
568
484
  callback(err);
569
485
  });
570
486
  }
571
- function repair_client_sessions(client, callback) {
487
+ async function repair_client_sessions(client, callback) {
572
488
  // repair session
573
489
  const sessions = client.getSessions();
574
490
  doDebug && debugLog(chalk_1.default.red.bgWhite(" Starting sessions reactivation", sessions.length));
575
- async_1.default.map(sessions, (session, next) => {
576
- repair_client_session(client, session, (err) => {
577
- next(null, err);
491
+ const allErrors = [];
492
+ for (const session of sessions) {
493
+ await new Promise((resolve) => {
494
+ repair_client_session(client, session, (err) => {
495
+ allErrors.push(err);
496
+ resolve();
497
+ });
578
498
  });
579
- }, (err, allErrors) => {
580
- err && errorLog("sessions reactivation completed with err: err ", err ? err.message : "null");
581
- // prettier-ignore
582
- {
583
- const err = _shouldNotContinue3(client);
584
- if (err) {
585
- return callback(err);
586
- }
499
+ }
500
+ // prettier-ignore
501
+ {
502
+ const err = _shouldNotContinue3(client);
503
+ if (err) {
504
+ return callback(err);
587
505
  }
588
- return callback(err);
589
- });
506
+ }
507
+ const firstError = allErrors.find((e) => e != null);
508
+ callback(firstError);
590
509
  }
591
510
  //# sourceMappingURL=reconnection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconnection.js","sourceRoot":"","sources":["../../../source/private/reconnection/reconnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconnection.js","sourceRoot":"","sources":["../../../source/private/reconnection/reconnection.ts"],"names":[],"mappings":"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"}