@openfin/node-adapter 40.82.2 → 40.82.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/out/node-adapter.js +197 -36
  2. package/package.json +2 -2
@@ -355,19 +355,57 @@ var NotImplementedError_1 = transportErrors.NotImplementedError = NotImplemented
355
355
  class NotSupportedError extends Error {
356
356
  }
357
357
  var NotSupportedError_1 = transportErrors.NotSupportedError = NotSupportedError;
358
- class InternalError extends Error {
358
+ class DeserializedError extends Error {
359
359
  constructor(err) {
360
360
  const { message, name, stack, ...rest } = err;
361
361
  super(message);
362
+ if ('cause' in err && err.cause) {
363
+ this.cause = new DeserializedError(err.cause);
364
+ }
362
365
  this.name = name || 'Error';
363
366
  this.stack = stack ?? this.toString();
364
- Object.keys(rest).forEach(key => {
367
+ Object.keys(rest)
368
+ .filter((k) => k !== 'cause')
369
+ .forEach((key) => {
365
370
  this[key] = rest[key];
366
371
  });
367
372
  }
368
373
  }
369
374
  // For documentation of the error methods being used see here: https://v8.dev/docs/stack-trace-api
370
375
  class RuntimeError extends Error {
376
+ static trimEndCallSites(err, takeUntilRegex) {
377
+ // save original props
378
+ const length = Error.stackTraceLimit;
379
+ // eslint-disable-next-line no-underscore-dangle
380
+ const _prepareStackTrace = Error.prepareStackTrace;
381
+ // This will be called when we access the `stack` property
382
+ Error.prepareStackTrace = (_, stack) => stack;
383
+ // in channel errors, the error was already serialized so we need to handle both string and CallSite[]
384
+ const isString = typeof err.stack === 'string';
385
+ const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
386
+ // restore original props
387
+ Error.prepareStackTrace = _prepareStackTrace;
388
+ Error.stackTraceLimit = length;
389
+ // stack is optional in non chromium contexts
390
+ if (stack.length) {
391
+ const newStack = [];
392
+ // remove this call ONLY if it's not a string
393
+ for (const line of isString ? stack : stack.slice(1)) {
394
+ // inclusive take until
395
+ newStack.push(line);
396
+ if (takeUntilRegex.test(line.toString())) {
397
+ break;
398
+ }
399
+ }
400
+ if (isString) {
401
+ // maintain it as a string
402
+ err.stack = newStack.join('\n');
403
+ }
404
+ else {
405
+ err.stack = RuntimeError.prepareStackTrace(err, newStack);
406
+ }
407
+ }
408
+ }
371
409
  static getCallSite(callsToRemove = 0) {
372
410
  const length = Error.stackTraceLimit;
373
411
  const realCallsToRemove = callsToRemove + 1; // remove this call;
@@ -386,21 +424,82 @@ class RuntimeError extends Error {
386
424
  if (typeof Error.prepareStackTrace === 'function') {
387
425
  return Error.prepareStackTrace(err, callSites);
388
426
  }
389
- let string = "";
390
- string += err.name || "Error";
391
- string += `: ${err.message || ""}`;
392
- for (const callSite of callSites) {
393
- string += `\n at ${callSite.toString()}`;
394
- }
395
- return string;
396
- }
397
- ;
427
+ // TODO: this is just a first iteration, we can make this "nicer" at some point
428
+ // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
429
+ let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
430
+ stackTrace += callSites
431
+ .map((line) => ` at ${line}`)
432
+ // .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
433
+ .join('\n');
434
+ return stackTrace;
435
+ }
436
+ /*
437
+
438
+ NON filtered stack trace example from MTP page channel-errors.tsx:
439
+
440
+ Caused by: ChannelError: Error from ch0
441
+ at ChannelClient.dispatch (<anonymous>:3:119560)
442
+ at eval (test-channel-errors.tsx:73:26)
443
+ at ChannelProvider.processAction (<anonymous>:3:116748)
444
+ at ChannelProvider.processAction (<anonymous>:3:149121)
445
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
446
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
447
+ at Transport.onmessage (<anonymous>:3:282049)
448
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
449
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
450
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
451
+ Caused by: ChannelError: Error from ch0
452
+ at ChannelClient.dispatch (<anonymous>:3:119560)
453
+ at eval (test-channel-errors.tsx:73:26)
454
+ at ChannelProvider.processAction (<anonymous>:3:116748)
455
+ at ChannelProvider.processAction (<anonymous>:3:149121)
456
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
457
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
458
+ at Transport.onmessage (<anonymous>:3:282049)
459
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
460
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
461
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
462
+ Caused by: ChannelError: Error from ch0
463
+ at ChannelClient.dispatch (<anonymous>:3:119560)
464
+ at eval (test-channel-errors.tsx:73:26)
465
+ at ChannelProvider.processAction (<anonymous>:3:116748)
466
+ at ChannelProvider.processAction (<anonymous>:3:149121)
467
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
468
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
469
+ at Transport.onmessage (<anonymous>:3:282049)
470
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
471
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
472
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
473
+ Caused by: ChannelError: Error from ch0
474
+ at ChannelClient.dispatch (<anonymous>:3:119560)
475
+ at eval (test-channel-errors.tsx:50:23)
476
+ at ChannelProvider.processAction (<anonymous>:3:116748)
477
+ at ChannelProvider.processAction (<anonymous>:3:149121)
478
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
479
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
480
+ at Transport.onmessage (<anonymous>:3:282049)
481
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
482
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
483
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
484
+ Caused by: Error: Error from ch0
485
+ at eval (test-channel-errors.tsx:54:19)
486
+ at ChannelProvider.processAction (<anonymous>:3:116748)
487
+ at ChannelProvider.processAction (<anonymous>:3:149121)
488
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
489
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
490
+ at Transport.onmessage (<anonymous>:3:282049)
491
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
492
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
493
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
494
+
495
+
496
+ */
398
497
  constructor(payload, callSites) {
399
498
  const { reason, error } = payload;
400
499
  super(reason);
401
- this.name = 'RuntimeError';
500
+ this.name = this.constructor.name;
402
501
  if (error?.stack) {
403
- this.cause = new InternalError(error);
502
+ this.cause = new DeserializedError(error);
404
503
  }
405
504
  if (callSites) {
406
505
  this.stack = RuntimeError.prepareStackTrace(this, callSites);
@@ -2751,9 +2850,14 @@ function requireInstance$2 () {
2751
2850
  // don't expose
2752
2851
  });
2753
2852
  const layoutWindow = await this.getCurrentWindow();
2853
+ let layoutWindowIdentity = layoutWindow.identity;
2854
+ // TODO: CORE-1857 - when we tearout active layout or drag a view out of a window, the above identity includes the whole window info.
2855
+ if (layoutWindowIdentity.identity) {
2856
+ layoutWindowIdentity = layoutWindowIdentity.identity;
2857
+ }
2754
2858
  try {
2755
2859
  const providerChannelClient = await __classPrivateFieldGet(this, _View_providerChannelClient, "f").getValue();
2756
- const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindow.identity);
2860
+ const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindowIdentity);
2757
2861
  const layoutIdentity = await client.getLayoutIdentityForViewOrThrow(this.identity);
2758
2862
  return this.fin.Platform.Layout.wrap(layoutIdentity);
2759
2863
  }
@@ -2766,7 +2870,7 @@ function requireInstance$2 () {
2766
2870
  throw e;
2767
2871
  }
2768
2872
  // fallback logic for missing endpoint
2769
- return this.fin.Platform.Layout.wrap(layoutWindow.identity);
2873
+ return this.fin.Platform.Layout.wrap(layoutWindowIdentity);
2770
2874
  }
2771
2875
  };
2772
2876
  /**
@@ -5642,7 +5746,7 @@ function requireWindow () {
5642
5746
  Object.defineProperty(system, "__esModule", { value: true });
5643
5747
  system.System = void 0;
5644
5748
  const base_1$i = base;
5645
- const transport_errors_1$2 = transportErrors;
5749
+ const transport_errors_1$6 = transportErrors;
5646
5750
  const window_1 = requireWindow();
5647
5751
  const events_1$6 = require$$0;
5648
5752
  /**
@@ -6128,7 +6232,8 @@ class System extends base_1$i.EmitterBase {
6128
6232
  return this.wire.sendAction('get-rvm-info').then(({ payload }) => payload.data);
6129
6233
  }
6130
6234
  /**
6131
- * Retrieves system information.
6235
+ * Retrieves general system information. If you need more detailed information about the
6236
+ * OS and the currently logged in user, use `fin.System.getOSInfo()` instead.
6132
6237
  *
6133
6238
  * @example
6134
6239
  * ```js
@@ -6138,6 +6243,17 @@ class System extends base_1$i.EmitterBase {
6138
6243
  getHostSpecs() {
6139
6244
  return this.wire.sendAction('get-host-specs').then(({ payload }) => payload.data);
6140
6245
  }
6246
+ /**
6247
+ * Retrieves information about the OS and the currently logged in user.
6248
+ *
6249
+ * @example
6250
+ * ```js
6251
+ * fin.System.getOSInfo().then(specs => console.log(specs)).catch(err => console.log(err));
6252
+ * ```
6253
+ */
6254
+ getOSInfo() {
6255
+ return this.wire.sendAction('get-os-info').then(({ payload }) => payload.data);
6256
+ }
6141
6257
  /**
6142
6258
  * Runs an executable or batch file. A path to the file must be included in options.
6143
6259
  * <br> A uuid may be optionally provided. If not provided, OpenFin will create a uuid for the new process.
@@ -6720,9 +6836,9 @@ class System extends base_1$i.EmitterBase {
6720
6836
  });
6721
6837
  // node.js environment not supported
6722
6838
  if (this.wire.environment.type !== 'openfin') {
6723
- throw new transport_errors_1$2.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
6839
+ throw new transport_errors_1$6.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
6724
6840
  }
6725
- const callSite = transport_errors_1$2.RuntimeError.getCallSite();
6841
+ const callSite = transport_errors_1$6.RuntimeError.getCallSite();
6726
6842
  const downloadId = this.wire.environment.getNextMessageId().toString();
6727
6843
  const dlProgressKey = `asset-download-progress-${downloadId}`;
6728
6844
  const dlErrorKey = `asset-download-error-${downloadId}`;
@@ -6742,7 +6858,7 @@ class System extends base_1$i.EmitterBase {
6742
6858
  const dlError = (payload) => {
6743
6859
  cleanListeners();
6744
6860
  const { reason, err: error } = payload;
6745
- reject(new transport_errors_1$2.RuntimeError({ reason, error }, callSite));
6861
+ reject(new transport_errors_1$6.RuntimeError({ reason, error }, callSite));
6746
6862
  };
6747
6863
  const dlComplete = () => {
6748
6864
  cleanListeners();
@@ -6793,11 +6909,11 @@ class System extends base_1$i.EmitterBase {
6793
6909
  * ```
6794
6910
  */
6795
6911
  downloadRuntime(options, progressListener) {
6796
- const callsites = transport_errors_1$2.RuntimeError.getCallSite();
6912
+ const callsites = transport_errors_1$6.RuntimeError.getCallSite();
6797
6913
  return new Promise((resolve, reject) => {
6798
6914
  // node.js environment not supported
6799
6915
  if (this.wire.environment.type !== 'openfin') {
6800
- reject(new transport_errors_1$2.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
6916
+ reject(new transport_errors_1$6.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
6801
6917
  return;
6802
6918
  }
6803
6919
  const downloadId = this.wire.environment.getNextMessageId().toString();
@@ -6819,7 +6935,7 @@ class System extends base_1$i.EmitterBase {
6819
6935
  const dlError = (payload) => {
6820
6936
  cleanListeners();
6821
6937
  const { reason, err: error } = payload;
6822
- reject(new transport_errors_1$2.RuntimeError({ reason, error }, callsites));
6938
+ reject(new transport_errors_1$6.RuntimeError({ reason, error }, callsites));
6823
6939
  };
6824
6940
  const dlComplete = () => {
6825
6941
  cleanListeners();
@@ -7554,6 +7670,7 @@ var channel = {};
7554
7670
 
7555
7671
  Object.defineProperty(channel, "__esModule", { value: true });
7556
7672
  channel.ChannelBase = channel.ProtectedItems = void 0;
7673
+ const transport_errors_1$5 = transportErrors;
7557
7674
  const resultOrPayload = (func) => async (topic, payload, senderIdentity) => {
7558
7675
  const res = await func(topic, payload, senderIdentity);
7559
7676
  return res === undefined ? payload : res;
@@ -7586,6 +7703,7 @@ class ChannelBase {
7586
7703
  return this.postAction ? await this.postAction(topic, actionProcessed, senderIdentity) : actionProcessed;
7587
7704
  }
7588
7705
  catch (e) {
7706
+ transport_errors_1$5.RuntimeError.trimEndCallSites(e, /Channel.*processAction/);
7589
7707
  if (this.errorMiddleware) {
7590
7708
  return this.errorMiddleware(topic, e, senderIdentity);
7591
7709
  }
@@ -7887,6 +8005,25 @@ class ChannelBase {
7887
8005
  }
7888
8006
  channel.ChannelBase = ChannelBase;
7889
8007
 
8008
+ var channelError = {};
8009
+
8010
+ Object.defineProperty(channelError, "__esModule", { value: true });
8011
+ channelError.ChannelError = void 0;
8012
+ const transport_errors_1$4 = transportErrors;
8013
+ class ChannelError extends Error {
8014
+ constructor(originalError, action, dispatchPayload, callsites) {
8015
+ super(originalError.message);
8016
+ this.action = action;
8017
+ this.dispatchPayload = dispatchPayload;
8018
+ this.name = this.constructor.name;
8019
+ if ('cause' in originalError && originalError.cause instanceof Error) {
8020
+ this.cause = originalError.cause;
8021
+ }
8022
+ this.stack = transport_errors_1$4.RuntimeError.prepareStackTrace(this, callsites);
8023
+ }
8024
+ }
8025
+ channelError.ChannelError = ChannelError;
8026
+
7890
8027
  var __classPrivateFieldGet$c = (commonjsGlobal && commonjsGlobal.__classPrivateFieldGet) || function (receiver, state, kind, f) {
7891
8028
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
7892
8029
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
@@ -7901,7 +8038,9 @@ var __classPrivateFieldSet$a = (commonjsGlobal && commonjsGlobal.__classPrivateF
7901
8038
  var _ChannelClient_protectedObj, _ChannelClient_strategy, _ChannelClient_close;
7902
8039
  Object.defineProperty(client, "__esModule", { value: true });
7903
8040
  client.ChannelClient = void 0;
8041
+ const transport_errors_1$3 = transportErrors;
7904
8042
  const channel_1$1 = channel;
8043
+ const channel_error_1$1 = channelError;
7905
8044
  const channelClientsByEndpointId = new Map();
7906
8045
  /**
7907
8046
  * Instance created to enable use of a channel as a client. Allows for communication with the
@@ -8003,7 +8142,10 @@ class ChannelClient extends channel_1$1.ChannelBase {
8003
8142
  */
8004
8143
  async dispatch(action, payload) {
8005
8144
  if (__classPrivateFieldGet$c(this, _ChannelClient_strategy, "f").isEndpointConnected(this.providerIdentity.channelId)) {
8006
- return __classPrivateFieldGet$c(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload);
8145
+ const callSites = transport_errors_1$3.RuntimeError.getCallSite();
8146
+ return __classPrivateFieldGet$c(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload).catch((e) => {
8147
+ throw new channel_error_1$1.ChannelError(e, action, payload, callSites);
8148
+ });
8007
8149
  }
8008
8150
  throw new Error('The client you are trying to dispatch from is disconnected from the target provider.');
8009
8151
  }
@@ -8118,7 +8260,7 @@ class ClassicStrategy {
8118
8260
  _ClassicStrategy_endpointIdentityMap.set(this, new Map());
8119
8261
  // Store a set of cancellable promises to be able to reject them when client
8120
8262
  // connection problems occur
8121
- _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map);
8263
+ _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map());
8122
8264
  this.send = async (endpointId, action, payload) => {
8123
8265
  const to = __classPrivateFieldGet$b(this, _ClassicStrategy_endpointIdentityMap, "f").get(endpointId);
8124
8266
  if (!to) {
@@ -8132,17 +8274,21 @@ class ClassicStrategy {
8132
8274
  }
8133
8275
  delete cleanId.isLocalEndpointId;
8134
8276
  // grab the promise before awaiting it to save in our pending messages map
8135
- const p = __classPrivateFieldGet$b(this, _ClassicStrategy_wire, "f")
8136
- .sendAction('send-channel-message', {
8277
+ const p = __classPrivateFieldGet$b(this, _ClassicStrategy_wire, "f").sendAction('send-channel-message', {
8137
8278
  ...cleanId,
8138
8279
  providerIdentity: this.providerIdentity,
8139
8280
  action,
8140
8281
  payload
8141
8282
  });
8142
8283
  __classPrivateFieldGet$b(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.add(p);
8143
- const raw = await p.catch((error) => {
8284
+ const raw = await p
8285
+ .catch((error) => {
8286
+ if ('cause' in error) {
8287
+ throw error;
8288
+ }
8144
8289
  throw new Error(error.message);
8145
- }).finally(() => {
8290
+ })
8291
+ .finally(() => {
8146
8292
  // clean up the pending promise
8147
8293
  __classPrivateFieldGet$b(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.delete(p);
8148
8294
  });
@@ -8196,13 +8342,17 @@ var errors = {};
8196
8342
  Object.defineProperty(errors, "__esModule", { value: true });
8197
8343
  errors.errorToPOJO = void 0;
8198
8344
  function errorToPOJO(error) {
8199
- return {
8345
+ const errorObj = {
8200
8346
  stack: error.stack,
8201
8347
  name: error.name,
8202
8348
  message: error.message,
8203
8349
  // support the case where stack is empty or missing
8204
8350
  toString: () => error.stack || error.toString()
8205
8351
  };
8352
+ if ('cause' in error) {
8353
+ errorObj.cause = errorToPOJO(error.cause);
8354
+ }
8355
+ return errorObj;
8206
8356
  }
8207
8357
  errors.errorToPOJO = errorToPOJO;
8208
8358
 
@@ -8221,7 +8371,7 @@ var _RTCEndpoint_processAction, _RTCEndpoint_disconnectListener;
8221
8371
  Object.defineProperty(endpoint, "__esModule", { value: true });
8222
8372
  endpoint.RTCEndpoint = void 0;
8223
8373
  /* eslint-disable @typescript-eslint/no-unused-vars */
8224
- const errors_1$1 = errors;
8374
+ const errors_1$2 = errors;
8225
8375
  /*
8226
8376
  This handles sending RTC messages between RTC connections over the request and response data channels.
8227
8377
  */
@@ -8310,7 +8460,7 @@ class RTCEndpoint {
8310
8460
  if (this.rtc.channels.response.readyState === 'open') {
8311
8461
  this.rtc.channels.response.send(JSON.stringify({
8312
8462
  messageId,
8313
- error: (0, errors_1$1.errorToPOJO)(error),
8463
+ error: (0, errors_1$2.errorToPOJO)(error),
8314
8464
  success: false
8315
8465
  }));
8316
8466
  }
@@ -8626,8 +8776,10 @@ var __classPrivateFieldSet$6 = (commonjsGlobal && commonjsGlobal.__classPrivateF
8626
8776
  var _ChannelProvider_connections, _ChannelProvider_protectedObj, _ChannelProvider_strategy, _ChannelProvider_removeEndpoint, _ChannelProvider_close;
8627
8777
  Object.defineProperty(provider, "__esModule", { value: true });
8628
8778
  provider.ChannelProvider = void 0;
8629
- const channel_1 = channel;
8779
+ const transport_errors_1$2 = transportErrors;
8630
8780
  const runtimeVersioning_1 = runtimeVersioning;
8781
+ const channel_1 = channel;
8782
+ const channel_error_1 = channelError;
8631
8783
  /**
8632
8784
  * Instance created to enable use of a channel as a provider. Allows for communication with the {@link ChannelClient ChannelClients} by invoking an action on
8633
8785
  * a single client via {@link ChannelProvider#dispatch dispatch} or all clients via {@link ChannelProvider#publish publish}
@@ -8744,7 +8896,10 @@ class ChannelProvider extends channel_1.ChannelBase {
8744
8896
  dispatch(to, action, payload) {
8745
8897
  const endpointId = to.endpointId ?? this.getEndpointIdForOpenFinId(to, action);
8746
8898
  if (endpointId && __classPrivateFieldGet$8(this, _ChannelProvider_strategy, "f").isEndpointConnected(endpointId)) {
8747
- return __classPrivateFieldGet$8(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload);
8899
+ const callSites = transport_errors_1$2.RuntimeError.getCallSite();
8900
+ return __classPrivateFieldGet$8(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload).catch((e) => {
8901
+ throw new channel_error_1.ChannelError(e, action, payload, callSites);
8902
+ });
8748
8903
  }
8749
8904
  return Promise.reject(new Error(`Client connection with identity uuid: ${to.uuid} / name: ${to.name} / endpointId: ${endpointId} no longer connected.`));
8750
8905
  }
@@ -8957,6 +9112,7 @@ Object.defineProperty(messageReceiver$1, "__esModule", { value: true });
8957
9112
  messageReceiver$1.MessageReceiver = void 0;
8958
9113
  const client_1$1 = client;
8959
9114
  const base_1$g = base;
9115
+ const errors_1$1 = errors;
8960
9116
  /*
8961
9117
  This is a singleton (per fin object) tasked with routing messages coming off the ipc to the correct endpoint.
8962
9118
  It needs to be a singleton because there can only be one per wire. It tracks both clients and providers' processAction passed in via the strategy.
@@ -8985,6 +9141,7 @@ class MessageReceiver extends base_1$g.Base {
8985
9141
  if (!handler) {
8986
9142
  ackToSender.payload.success = false;
8987
9143
  ackToSender.payload.reason = `Client connection with identity uuid: ${this.wire.me.uuid} / name: ${this.wire.me.name} / endpointId: ${key} no longer connected.`;
9144
+ ackToSender.payload.error = (0, errors_1$1.errorToPOJO)(new Error(ackToSender.payload.reason));
8988
9145
  return this.wire.sendRaw(ackToSender);
8989
9146
  }
8990
9147
  try {
@@ -8996,6 +9153,7 @@ class MessageReceiver extends base_1$g.Base {
8996
9153
  catch (e) {
8997
9154
  ackToSender.payload.success = false;
8998
9155
  ackToSender.payload.reason = e.message;
9156
+ ackToSender.payload.error = (0, errors_1$1.errorToPOJO)(e);
8999
9157
  return this.wire.sendRaw(ackToSender);
9000
9158
  }
9001
9159
  }
@@ -17429,7 +17587,7 @@ class NodeEnvironment extends BaseEnvironment_1 {
17429
17587
  };
17430
17588
  }
17431
17589
  getAdapterVersionSync() {
17432
- return "40.82.2";
17590
+ return "40.82.4";
17433
17591
  }
17434
17592
  observeBounds(element, onChange) {
17435
17593
  throw new Error('Method not implemented.');
@@ -17760,7 +17918,10 @@ class Transport extends events_1$1.EventEmitter {
17760
17918
  }
17761
17919
  else {
17762
17920
  console.warn('Received invalid response from core', data);
17763
- handleNack({ reason: 'invalid response shape' });
17921
+ handleNack({
17922
+ reason: 'invalid response shape',
17923
+ error: (0, errors_1.errorToPOJO)(new Error('Invalid response shape'))
17924
+ });
17764
17925
  }
17765
17926
  }
17766
17927
  else if (!data.payload.success) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/node-adapter",
3
- "version": "40.82.2",
3
+ "version": "40.82.4",
4
4
  "description": "See README.md",
5
5
  "main": "out/node-adapter.js",
6
6
  "types": "out/node-adapter.d.ts",
@@ -23,7 +23,7 @@
23
23
  "author": "OpenFin",
24
24
  "dependencies": {
25
25
  "@types/node": "^20.14.2",
26
- "@openfin/core": "40.82.2",
26
+ "@openfin/core": "40.82.4",
27
27
  "lodash": "^4.17.21",
28
28
  "ws": "^7.3.0"
29
29
  }