@openfin/remote-adapter 40.82.11 → 40.82.12

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 (2) hide show
  1. package/out/remote-adapter.js +242 -53
  2. package/package.json +2 -2
@@ -525,9 +525,32 @@ var utils$2 = {};
525
525
 
526
526
  var PrivateChannelClient$1 = {};
527
527
 
528
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
529
+ if (k2 === undefined) k2 = k;
530
+ var desc = Object.getOwnPropertyDescriptor(m, k);
531
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
532
+ desc = { enumerable: true, get: function() { return m[k]; } };
533
+ }
534
+ Object.defineProperty(o, k2, desc);
535
+ }) : (function(o, m, k, k2) {
536
+ if (k2 === undefined) k2 = k;
537
+ o[k2] = m[k];
538
+ }));
539
+ var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) {
540
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
541
+ }) : function(o, v) {
542
+ o["default"] = v;
543
+ });
544
+ var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) {
545
+ if (mod && mod.__esModule) return mod;
546
+ var result = {};
547
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
548
+ __setModuleDefault(result, mod);
549
+ return result;
550
+ };
528
551
  Object.defineProperty(PrivateChannelClient$1, "__esModule", { value: true });
529
552
  PrivateChannelClient$1.PrivateChannelClient = void 0;
530
- const utils$1 = utils$3;
553
+ const utils$1 = __importStar(utils$3);
531
554
  class PrivateChannelClient {
532
555
  constructor(client, id) {
533
556
  this.id = id;
@@ -1678,11 +1701,14 @@ function requireInteropClient () {
1678
1701
  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");
1679
1702
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
1680
1703
  };
1704
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
1705
+ return (mod && mod.__esModule) ? mod : { "default": mod };
1706
+ };
1681
1707
  var _InteropClient_clientPromise, _InteropClient_sessionContextGroups;
1682
1708
  Object.defineProperty(InteropClient, "__esModule", { value: true });
1683
1709
  InteropClient.InteropClient = void 0;
1684
1710
  const base_1 = base;
1685
- const SessionContextGroupClient_1 = SessionContextGroupClient$1;
1711
+ const SessionContextGroupClient_1 = __importDefault(SessionContextGroupClient$1);
1686
1712
  const fdc3_1_2_1 = requireFdc31_2();
1687
1713
  const fdc3_2_0_1 = requireFdc32_0();
1688
1714
  const utils_1 = utils$3;
@@ -2905,11 +2931,14 @@ function requireInteropBroker () {
2905
2931
  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");
2906
2932
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
2907
2933
  };
2934
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
2935
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2936
+ };
2908
2937
  var _InteropBroker_fdc3Info, _InteropBroker_contextGroups, _InteropBroker_providerPromise;
2909
2938
  Object.defineProperty(InteropBroker, "__esModule", { value: true });
2910
2939
  InteropBroker.InteropBroker = void 0;
2911
2940
  const base_1 = base;
2912
- const SessionContextGroupBroker_1 = requireSessionContextGroupBroker();
2941
+ const SessionContextGroupBroker_1 = __importDefault(requireSessionContextGroupBroker());
2913
2942
  const utils_1 = utils$3;
2914
2943
  const lodash_1 = require$$3;
2915
2944
  const PrivateChannelProvider_1 = requirePrivateChannelProvider();
@@ -4404,19 +4433,57 @@ transportErrors.NotImplementedError = NotImplementedError;
4404
4433
  class NotSupportedError extends Error {
4405
4434
  }
4406
4435
  transportErrors.NotSupportedError = NotSupportedError;
4407
- class InternalError extends Error {
4436
+ class DeserializedError extends Error {
4408
4437
  constructor(err) {
4409
4438
  const { message, name, stack, ...rest } = err;
4410
4439
  super(message);
4440
+ if ('cause' in err && err.cause) {
4441
+ this.cause = new DeserializedError(err.cause);
4442
+ }
4411
4443
  this.name = name || 'Error';
4412
4444
  this.stack = stack ?? this.toString();
4413
- Object.keys(rest).forEach(key => {
4445
+ Object.keys(rest)
4446
+ .filter((k) => k !== 'cause')
4447
+ .forEach((key) => {
4414
4448
  this[key] = rest[key];
4415
4449
  });
4416
4450
  }
4417
4451
  }
4418
4452
  // For documentation of the error methods being used see here: https://v8.dev/docs/stack-trace-api
4419
4453
  class RuntimeError extends Error {
4454
+ static trimEndCallSites(err, takeUntilRegex) {
4455
+ // save original props
4456
+ const length = Error.stackTraceLimit;
4457
+ // eslint-disable-next-line no-underscore-dangle
4458
+ const _prepareStackTrace = Error.prepareStackTrace;
4459
+ // This will be called when we access the `stack` property
4460
+ Error.prepareStackTrace = (_, stack) => stack;
4461
+ // in channel errors, the error was already serialized so we need to handle both string and CallSite[]
4462
+ const isString = typeof err.stack === 'string';
4463
+ const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
4464
+ // restore original props
4465
+ Error.prepareStackTrace = _prepareStackTrace;
4466
+ Error.stackTraceLimit = length;
4467
+ // stack is optional in non chromium contexts
4468
+ if (stack.length) {
4469
+ const newStack = [];
4470
+ // remove this call ONLY if it's not a string
4471
+ for (const line of isString ? stack : stack.slice(1)) {
4472
+ // inclusive take until
4473
+ newStack.push(line);
4474
+ if (takeUntilRegex.test(line.toString())) {
4475
+ break;
4476
+ }
4477
+ }
4478
+ if (isString) {
4479
+ // maintain it as a string
4480
+ err.stack = newStack.join('\n');
4481
+ }
4482
+ else {
4483
+ err.stack = RuntimeError.prepareStackTrace(err, newStack);
4484
+ }
4485
+ }
4486
+ }
4420
4487
  static getCallSite(callsToRemove = 0) {
4421
4488
  const length = Error.stackTraceLimit;
4422
4489
  const realCallsToRemove = callsToRemove + 1; // remove this call;
@@ -4435,21 +4502,82 @@ class RuntimeError extends Error {
4435
4502
  if (typeof Error.prepareStackTrace === 'function') {
4436
4503
  return Error.prepareStackTrace(err, callSites);
4437
4504
  }
4438
- let string = "";
4439
- string += err.name || "Error";
4440
- string += `: ${err.message || ""}`;
4441
- for (const callSite of callSites) {
4442
- string += `\n at ${callSite.toString()}`;
4443
- }
4444
- return string;
4445
- }
4446
- ;
4505
+ // TODO: this is just a first iteration, we can make this "nicer" at some point
4506
+ // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
4507
+ let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
4508
+ stackTrace += callSites
4509
+ .map((line) => ` at ${line}`)
4510
+ // .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
4511
+ .join('\n');
4512
+ return stackTrace;
4513
+ }
4514
+ /*
4515
+
4516
+ NON filtered stack trace example from MTP page channel-errors.tsx:
4517
+
4518
+ Caused by: ChannelError: Error from ch0
4519
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4520
+ at eval (test-channel-errors.tsx:73:26)
4521
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4522
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4523
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4524
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4525
+ at Transport.onmessage (<anonymous>:3:282049)
4526
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4527
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4528
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4529
+ Caused by: ChannelError: Error from ch0
4530
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4531
+ at eval (test-channel-errors.tsx:73:26)
4532
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4533
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4534
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4535
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4536
+ at Transport.onmessage (<anonymous>:3:282049)
4537
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4538
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4539
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4540
+ Caused by: ChannelError: Error from ch0
4541
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4542
+ at eval (test-channel-errors.tsx:73:26)
4543
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4544
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4545
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4546
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4547
+ at Transport.onmessage (<anonymous>:3:282049)
4548
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4549
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4550
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4551
+ Caused by: ChannelError: Error from ch0
4552
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4553
+ at eval (test-channel-errors.tsx:50:23)
4554
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4555
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4556
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4557
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4558
+ at Transport.onmessage (<anonymous>:3:282049)
4559
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4560
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4561
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4562
+ Caused by: Error: Error from ch0
4563
+ at eval (test-channel-errors.tsx:54:19)
4564
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4565
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4566
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4567
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4568
+ at Transport.onmessage (<anonymous>:3:282049)
4569
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4570
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4571
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4572
+
4573
+
4574
+ */
4447
4575
  constructor(payload, callSites) {
4448
4576
  const { reason, error } = payload;
4449
4577
  super(reason);
4450
- this.name = 'RuntimeError';
4578
+ this.name = this.constructor.name;
4451
4579
  if (error?.stack) {
4452
- this.cause = new InternalError(error);
4580
+ this.cause = new DeserializedError(error);
4453
4581
  }
4454
4582
  if (callSites) {
4455
4583
  this.stack = RuntimeError.prepareStackTrace(this, callSites);
@@ -4641,7 +4769,9 @@ function requireFactory$2 () {
4641
4769
  * @experimental
4642
4770
  */
4643
4771
  async wrap(identity) {
4644
- this.wire.sendAction('view-wrap');
4772
+ this.wire.sendAction('view-wrap').catch((e) => {
4773
+ // we do not want to expose this error, just continue if this analytics-only call fails
4774
+ });
4645
4775
  const errorMsg = (0, validate_1.validateIdentity)(identity);
4646
4776
  if (errorMsg) {
4647
4777
  throw new Error(errorMsg);
@@ -9435,9 +9565,14 @@ function requireInstance () {
9435
9565
  // don't expose
9436
9566
  });
9437
9567
  const layoutWindow = await this.getCurrentWindow();
9568
+ let layoutWindowIdentity = layoutWindow.identity;
9569
+ // TODO: CORE-1857 - when we tearout active layout or drag a view out of a window, the above identity includes the whole window info.
9570
+ if (layoutWindowIdentity.identity) {
9571
+ layoutWindowIdentity = layoutWindowIdentity.identity;
9572
+ }
9438
9573
  try {
9439
9574
  const providerChannelClient = await __classPrivateFieldGet(this, _View_providerChannelClient, "f").getValue();
9440
- const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindow.identity);
9575
+ const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindowIdentity);
9441
9576
  const layoutIdentity = await client.getLayoutIdentityForViewOrThrow(this.identity);
9442
9577
  return this.fin.Platform.Layout.wrap(layoutIdentity);
9443
9578
  }
@@ -9450,7 +9585,7 @@ function requireInstance () {
9450
9585
  throw e;
9451
9586
  }
9452
9587
  // fallback logic for missing endpoint
9453
- return this.fin.Platform.Layout.wrap(layoutWindow.identity);
9588
+ return this.fin.Platform.Layout.wrap(layoutWindowIdentity);
9454
9589
  }
9455
9590
  };
9456
9591
  /**
@@ -10167,13 +10302,17 @@ var errors = {};
10167
10302
  Object.defineProperty(errors, "__esModule", { value: true });
10168
10303
  errors.errorToPOJO = void 0;
10169
10304
  function errorToPOJO(error) {
10170
- return {
10305
+ const errorObj = {
10171
10306
  stack: error.stack,
10172
10307
  name: error.name,
10173
10308
  message: error.message,
10174
10309
  // support the case where stack is empty or missing
10175
10310
  toString: () => error.stack || error.toString()
10176
10311
  };
10312
+ if ('cause' in error) {
10313
+ errorObj.cause = errorToPOJO(error.cause);
10314
+ }
10315
+ return errorObj;
10177
10316
  }
10178
10317
  errors.errorToPOJO = errorToPOJO;
10179
10318
 
@@ -10188,15 +10327,18 @@ var __classPrivateFieldGet$b = (commonjsGlobal && commonjsGlobal.__classPrivateF
10188
10327
  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");
10189
10328
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
10190
10329
  };
10330
+ var __importDefault$2 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
10331
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10332
+ };
10191
10333
  var _Transport_wire, _Transport_fin;
10192
10334
  Object.defineProperty(transport, "__esModule", { value: true });
10193
10335
  var Transport_1 = transport.Transport = void 0;
10194
10336
  const events_1$5 = require$$0;
10195
10337
  const wire_1 = wire;
10196
- const transport_errors_1$2 = transportErrors;
10197
- const eventAggregator_1 = eventAggregator;
10338
+ const transport_errors_1$6 = transportErrors;
10339
+ const eventAggregator_1 = __importDefault$2(eventAggregator);
10198
10340
  const me_1$1 = me;
10199
- const errors_1$1 = errors;
10341
+ const errors_1$2 = errors;
10200
10342
  class Transport extends events_1$5.EventEmitter {
10201
10343
  constructor(WireType, environment, config) {
10202
10344
  super();
@@ -10278,7 +10420,7 @@ class Transport extends events_1$5.EventEmitter {
10278
10420
  type: 'file-token'
10279
10421
  }, true);
10280
10422
  if (requestExtAuthRet.action !== 'external-authorization-response') {
10281
- throw new transport_errors_1$2.UnexpectedActionError(requestExtAuthRet.action);
10423
+ throw new transport_errors_1$6.UnexpectedActionError(requestExtAuthRet.action);
10282
10424
  }
10283
10425
  await this.environment.writeToken(requestExtAuthRet.payload.file, requestExtAuthRet.payload.token);
10284
10426
  return this.authorize(reqAuthPayload);
@@ -10286,10 +10428,10 @@ class Transport extends events_1$5.EventEmitter {
10286
10428
  async authorize(reqAuthPayload) {
10287
10429
  const requestAuthRet = await this.sendAction('request-authorization', reqAuthPayload, true);
10288
10430
  if (requestAuthRet.action !== 'authorization-response') {
10289
- throw new transport_errors_1$2.UnexpectedActionError(requestAuthRet.action);
10431
+ throw new transport_errors_1$6.UnexpectedActionError(requestAuthRet.action);
10290
10432
  }
10291
10433
  else if (requestAuthRet.payload.success !== true) {
10292
- throw new transport_errors_1$2.RuntimeError(requestAuthRet.payload);
10434
+ throw new transport_errors_1$6.RuntimeError(requestAuthRet.payload);
10293
10435
  }
10294
10436
  }
10295
10437
  sendAction(action, payload = {}, uncorrelated = false
@@ -10298,7 +10440,7 @@ class Transport extends events_1$5.EventEmitter {
10298
10440
  // eslint-disable-next-line @typescript-eslint/no-empty-function
10299
10441
  let cancel = () => { };
10300
10442
  // We want the callsite from the caller of this function, not from here.
10301
- const callSites = transport_errors_1$2.RuntimeError.getCallSite(1);
10443
+ const callSites = transport_errors_1$6.RuntimeError.getCallSite(1);
10302
10444
  const messageId = this.environment.getNextMessageId();
10303
10445
  const prom = new Promise((resolve, reject) => {
10304
10446
  cancel = reject;
@@ -10319,7 +10461,7 @@ class Transport extends events_1$5.EventEmitter {
10319
10461
  reject(payloadOrMessage);
10320
10462
  }
10321
10463
  else {
10322
- reject(new transport_errors_1$2.RuntimeError(payloadOrMessage, callSites));
10464
+ reject(new transport_errors_1$6.RuntimeError(payloadOrMessage, callSites));
10323
10465
  }
10324
10466
  }
10325
10467
  ferryAction(origData) {
@@ -10346,7 +10488,7 @@ class Transport extends events_1$5.EventEmitter {
10346
10488
  else if (this.wireListeners.has(id)) {
10347
10489
  handleNack({
10348
10490
  reason: 'Duplicate handler id',
10349
- error: (0, errors_1$1.errorToPOJO)(new transport_errors_1$2.DuplicateCorrelationError(String(id)))
10491
+ error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.DuplicateCorrelationError(String(id)))
10350
10492
  });
10351
10493
  }
10352
10494
  else {
@@ -10378,7 +10520,7 @@ class Transport extends events_1$5.EventEmitter {
10378
10520
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10379
10521
  const { resolve, handleNack } = this.wireListeners.get(id);
10380
10522
  if (data.action !== 'ack') {
10381
- handleNack({ reason: 'Did not receive ack action', error: (0, errors_1$1.errorToPOJO)(new transport_errors_1$2.NoAckError(data.action)) });
10523
+ handleNack({ reason: 'Did not receive ack action', error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.NoAckError(data.action)) });
10382
10524
  }
10383
10525
  else if (!('payload' in data)) {
10384
10526
  // I'm not sure when this code would actually run, but passing in something that doeesn't have a reason to the runtimeerror constructor will not end well.
@@ -10388,7 +10530,10 @@ class Transport extends events_1$5.EventEmitter {
10388
10530
  }
10389
10531
  else {
10390
10532
  console.warn('Received invalid response from core', data);
10391
- handleNack({ reason: 'invalid response shape' });
10533
+ handleNack({
10534
+ reason: 'invalid response shape',
10535
+ error: (0, errors_1$2.errorToPOJO)(new Error('Invalid response shape'))
10536
+ });
10392
10537
  }
10393
10538
  }
10394
10539
  else if (!data.payload.success) {
@@ -10409,7 +10554,7 @@ var websocket = {};
10409
10554
 
10410
10555
  Object.defineProperty(websocket, "__esModule", { value: true });
10411
10556
  const events_1$4 = require$$0;
10412
- const transport_errors_1$1 = transportErrors;
10557
+ const transport_errors_1$5 = transportErrors;
10413
10558
  const messageReceiver_1 = bridge.messageReceiver;
10414
10559
  /* `READY_STATE` is an instance var set by `constructor` to reference the `WebTransportSocket.READY_STATE` enum.
10415
10560
  * This is syntactic sugar that makes the enum accessible through the `wire` property of the various `fin` singletons.
@@ -10443,14 +10588,14 @@ class WebSocketTransport extends events_1$4.EventEmitter {
10443
10588
  });
10444
10589
  };
10445
10590
  this.connectSync = () => {
10446
- throw new transport_errors_1$1.NotImplementedError('Not Implemented');
10591
+ throw new transport_errors_1$5.NotImplementedError('Not Implemented');
10447
10592
  };
10448
10593
  this.onmessage = onmessage;
10449
10594
  }
10450
10595
  send(data, flags) {
10451
10596
  return new Promise((resolve, reject) => {
10452
10597
  if (!(0, messageReceiver_1.isOpen)(this.wire)) {
10453
- reject(new transport_errors_1$1.DisconnectedError(READY_STATE[this.wire.readyState]));
10598
+ reject(new transport_errors_1$5.DisconnectedError(READY_STATE[this.wire.readyState]));
10454
10599
  }
10455
10600
  else {
10456
10601
  // @ts-expect-error
@@ -10483,7 +10628,7 @@ var system = {};
10483
10628
  Object.defineProperty(system, "__esModule", { value: true });
10484
10629
  system.System = void 0;
10485
10630
  const base_1$d = base;
10486
- const transport_errors_1 = transportErrors;
10631
+ const transport_errors_1$4 = transportErrors;
10487
10632
  const window_1 = requireWindow();
10488
10633
  const events_1$3 = require$$0;
10489
10634
  /**
@@ -11573,9 +11718,9 @@ class System extends base_1$d.EmitterBase {
11573
11718
  });
11574
11719
  // node.js environment not supported
11575
11720
  if (this.wire.environment.type !== 'openfin') {
11576
- throw new transport_errors_1.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
11721
+ throw new transport_errors_1$4.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
11577
11722
  }
11578
- const callSite = transport_errors_1.RuntimeError.getCallSite();
11723
+ const callSite = transport_errors_1$4.RuntimeError.getCallSite();
11579
11724
  const downloadId = this.wire.environment.getNextMessageId().toString();
11580
11725
  const dlProgressKey = `asset-download-progress-${downloadId}`;
11581
11726
  const dlErrorKey = `asset-download-error-${downloadId}`;
@@ -11595,7 +11740,7 @@ class System extends base_1$d.EmitterBase {
11595
11740
  const dlError = (payload) => {
11596
11741
  cleanListeners();
11597
11742
  const { reason, err: error } = payload;
11598
- reject(new transport_errors_1.RuntimeError({ reason, error }, callSite));
11743
+ reject(new transport_errors_1$4.RuntimeError({ reason, error }, callSite));
11599
11744
  };
11600
11745
  const dlComplete = () => {
11601
11746
  cleanListeners();
@@ -11646,11 +11791,11 @@ class System extends base_1$d.EmitterBase {
11646
11791
  * ```
11647
11792
  */
11648
11793
  downloadRuntime(options, progressListener) {
11649
- const callsites = transport_errors_1.RuntimeError.getCallSite();
11794
+ const callsites = transport_errors_1$4.RuntimeError.getCallSite();
11650
11795
  return new Promise((resolve, reject) => {
11651
11796
  // node.js environment not supported
11652
11797
  if (this.wire.environment.type !== 'openfin') {
11653
- reject(new transport_errors_1.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
11798
+ reject(new transport_errors_1$4.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
11654
11799
  return;
11655
11800
  }
11656
11801
  const downloadId = this.wire.environment.getNextMessageId().toString();
@@ -11672,7 +11817,7 @@ class System extends base_1$d.EmitterBase {
11672
11817
  const dlError = (payload) => {
11673
11818
  cleanListeners();
11674
11819
  const { reason, err: error } = payload;
11675
- reject(new transport_errors_1.RuntimeError({ reason, error }, callsites));
11820
+ reject(new transport_errors_1$4.RuntimeError({ reason, error }, callsites));
11676
11821
  };
11677
11822
  const dlComplete = () => {
11678
11823
  cleanListeners();
@@ -12407,6 +12552,7 @@ var channel = {};
12407
12552
 
12408
12553
  Object.defineProperty(channel, "__esModule", { value: true });
12409
12554
  channel.ChannelBase = channel.ProtectedItems = void 0;
12555
+ const transport_errors_1$3 = transportErrors;
12410
12556
  const resultOrPayload = (func) => async (topic, payload, senderIdentity) => {
12411
12557
  const res = await func(topic, payload, senderIdentity);
12412
12558
  return res === undefined ? payload : res;
@@ -12439,6 +12585,7 @@ class ChannelBase {
12439
12585
  return this.postAction ? await this.postAction(topic, actionProcessed, senderIdentity) : actionProcessed;
12440
12586
  }
12441
12587
  catch (e) {
12588
+ transport_errors_1$3.RuntimeError.trimEndCallSites(e, /Channel.*processAction/);
12442
12589
  if (this.errorMiddleware) {
12443
12590
  return this.errorMiddleware(topic, e, senderIdentity);
12444
12591
  }
@@ -12740,6 +12887,25 @@ class ChannelBase {
12740
12887
  }
12741
12888
  channel.ChannelBase = ChannelBase;
12742
12889
 
12890
+ var channelError = {};
12891
+
12892
+ Object.defineProperty(channelError, "__esModule", { value: true });
12893
+ channelError.ChannelError = void 0;
12894
+ const transport_errors_1$2 = transportErrors;
12895
+ class ChannelError extends Error {
12896
+ constructor(originalError, action, dispatchPayload, callsites) {
12897
+ super(originalError.message);
12898
+ this.action = action;
12899
+ this.dispatchPayload = dispatchPayload;
12900
+ this.name = this.constructor.name;
12901
+ if ('cause' in originalError && originalError.cause instanceof Error) {
12902
+ this.cause = originalError.cause;
12903
+ }
12904
+ this.stack = transport_errors_1$2.RuntimeError.prepareStackTrace(this, callsites);
12905
+ }
12906
+ }
12907
+ channelError.ChannelError = ChannelError;
12908
+
12743
12909
  var __classPrivateFieldGet$a = (commonjsGlobal && commonjsGlobal.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12744
12910
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12745
12911
  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");
@@ -12754,7 +12920,9 @@ var __classPrivateFieldSet$8 = (commonjsGlobal && commonjsGlobal.__classPrivateF
12754
12920
  var _ChannelClient_protectedObj, _ChannelClient_strategy, _ChannelClient_close;
12755
12921
  Object.defineProperty(client, "__esModule", { value: true });
12756
12922
  client.ChannelClient = void 0;
12923
+ const transport_errors_1$1 = transportErrors;
12757
12924
  const channel_1$1 = channel;
12925
+ const channel_error_1$1 = channelError;
12758
12926
  const channelClientsByEndpointId = new Map();
12759
12927
  /**
12760
12928
  * Instance created to enable use of a channel as a client. Allows for communication with the
@@ -12856,7 +13024,10 @@ class ChannelClient extends channel_1$1.ChannelBase {
12856
13024
  */
12857
13025
  async dispatch(action, payload) {
12858
13026
  if (__classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").isEndpointConnected(this.providerIdentity.channelId)) {
12859
- return __classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload);
13027
+ const callSites = transport_errors_1$1.RuntimeError.getCallSite();
13028
+ return __classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload).catch((e) => {
13029
+ throw new channel_error_1$1.ChannelError(e, action, payload, callSites);
13030
+ });
12860
13031
  }
12861
13032
  throw new Error('The client you are trying to dispatch from is disconnected from the target provider.');
12862
13033
  }
@@ -12971,7 +13142,7 @@ class ClassicStrategy {
12971
13142
  _ClassicStrategy_endpointIdentityMap.set(this, new Map());
12972
13143
  // Store a set of cancellable promises to be able to reject them when client
12973
13144
  // connection problems occur
12974
- _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map);
13145
+ _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map());
12975
13146
  this.send = async (endpointId, action, payload) => {
12976
13147
  const to = __classPrivateFieldGet$9(this, _ClassicStrategy_endpointIdentityMap, "f").get(endpointId);
12977
13148
  if (!to) {
@@ -12985,17 +13156,21 @@ class ClassicStrategy {
12985
13156
  }
12986
13157
  delete cleanId.isLocalEndpointId;
12987
13158
  // grab the promise before awaiting it to save in our pending messages map
12988
- const p = __classPrivateFieldGet$9(this, _ClassicStrategy_wire, "f")
12989
- .sendAction('send-channel-message', {
13159
+ const p = __classPrivateFieldGet$9(this, _ClassicStrategy_wire, "f").sendAction('send-channel-message', {
12990
13160
  ...cleanId,
12991
13161
  providerIdentity: this.providerIdentity,
12992
13162
  action,
12993
13163
  payload
12994
13164
  });
12995
13165
  __classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.add(p);
12996
- const raw = await p.catch((error) => {
13166
+ const raw = await p
13167
+ .catch((error) => {
13168
+ if ('cause' in error) {
13169
+ throw error;
13170
+ }
12997
13171
  throw new Error(error.message);
12998
- }).finally(() => {
13172
+ })
13173
+ .finally(() => {
12999
13174
  // clean up the pending promise
13000
13175
  __classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.delete(p);
13001
13176
  });
@@ -13059,7 +13234,7 @@ var _RTCEndpoint_processAction, _RTCEndpoint_disconnectListener;
13059
13234
  Object.defineProperty(endpoint, "__esModule", { value: true });
13060
13235
  endpoint.RTCEndpoint = void 0;
13061
13236
  /* eslint-disable @typescript-eslint/no-unused-vars */
13062
- const errors_1 = errors;
13237
+ const errors_1$1 = errors;
13063
13238
  /*
13064
13239
  This handles sending RTC messages between RTC connections over the request and response data channels.
13065
13240
  */
@@ -13148,7 +13323,7 @@ class RTCEndpoint {
13148
13323
  if (this.rtc.channels.response.readyState === 'open') {
13149
13324
  this.rtc.channels.response.send(JSON.stringify({
13150
13325
  messageId,
13151
- error: (0, errors_1.errorToPOJO)(error),
13326
+ error: (0, errors_1$1.errorToPOJO)(error),
13152
13327
  success: false
13153
13328
  }));
13154
13329
  }
@@ -13464,8 +13639,10 @@ var __classPrivateFieldSet$4 = (commonjsGlobal && commonjsGlobal.__classPrivateF
13464
13639
  var _ChannelProvider_connections, _ChannelProvider_protectedObj, _ChannelProvider_strategy, _ChannelProvider_removeEndpoint, _ChannelProvider_close;
13465
13640
  Object.defineProperty(provider, "__esModule", { value: true });
13466
13641
  provider.ChannelProvider = void 0;
13467
- const channel_1 = channel;
13642
+ const transport_errors_1 = transportErrors;
13468
13643
  const runtimeVersioning_1 = runtimeVersioning;
13644
+ const channel_1 = channel;
13645
+ const channel_error_1 = channelError;
13469
13646
  /**
13470
13647
  * Instance created to enable use of a channel as a provider. Allows for communication with the {@link ChannelClient ChannelClients} by invoking an action on
13471
13648
  * a single client via {@link ChannelProvider#dispatch dispatch} or all clients via {@link ChannelProvider#publish publish}
@@ -13582,7 +13759,10 @@ class ChannelProvider extends channel_1.ChannelBase {
13582
13759
  dispatch(to, action, payload) {
13583
13760
  const endpointId = to.endpointId ?? this.getEndpointIdForOpenFinId(to, action);
13584
13761
  if (endpointId && __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").isEndpointConnected(endpointId)) {
13585
- return __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload);
13762
+ const callSites = transport_errors_1.RuntimeError.getCallSite();
13763
+ return __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload).catch((e) => {
13764
+ throw new channel_error_1.ChannelError(e, action, payload, callSites);
13765
+ });
13586
13766
  }
13587
13767
  return Promise.reject(new Error(`Client connection with identity uuid: ${to.uuid} / name: ${to.name} / endpointId: ${endpointId} no longer connected.`));
13588
13768
  }
@@ -13795,6 +13975,7 @@ Object.defineProperty(messageReceiver, "__esModule", { value: true });
13795
13975
  messageReceiver.MessageReceiver = void 0;
13796
13976
  const client_1$1 = client;
13797
13977
  const base_1$b = base;
13978
+ const errors_1 = errors;
13798
13979
  /*
13799
13980
  This is a singleton (per fin object) tasked with routing messages coming off the ipc to the correct endpoint.
13800
13981
  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.
@@ -13823,6 +14004,7 @@ class MessageReceiver extends base_1$b.Base {
13823
14004
  if (!handler) {
13824
14005
  ackToSender.payload.success = false;
13825
14006
  ackToSender.payload.reason = `Client connection with identity uuid: ${this.wire.me.uuid} / name: ${this.wire.me.name} / endpointId: ${key} no longer connected.`;
14007
+ ackToSender.payload.error = (0, errors_1.errorToPOJO)(new Error(ackToSender.payload.reason));
13826
14008
  return this.wire.sendRaw(ackToSender);
13827
14009
  }
13828
14010
  try {
@@ -13834,6 +14016,7 @@ class MessageReceiver extends base_1$b.Base {
13834
14016
  catch (e) {
13835
14017
  ackToSender.payload.success = false;
13836
14018
  ackToSender.payload.reason = e.message;
14019
+ ackToSender.payload.error = (0, errors_1.errorToPOJO)(e);
13837
14020
  return this.wire.sendRaw(ackToSender);
13838
14021
  }
13839
14022
  }
@@ -13978,6 +14161,9 @@ var __classPrivateFieldGet$5 = (commonjsGlobal && commonjsGlobal.__classPrivateF
13978
14161
  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");
13979
14162
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
13980
14163
  };
14164
+ var __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
14165
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14166
+ };
13981
14167
  var _ConnectionManager_messageReceiver, _ConnectionManager_rtcConnectionManager;
13982
14168
  Object.defineProperty(connectionManager, "__esModule", { value: true });
13983
14169
  connectionManager.ConnectionManager = void 0;
@@ -13989,7 +14175,7 @@ const ice_manager_1 = iceManager;
13989
14175
  const provider_1$1 = provider;
13990
14176
  const message_receiver_1 = messageReceiver;
13991
14177
  const protocol_manager_1 = protocolManager;
13992
- const strategy_3 = strategy;
14178
+ const strategy_3 = __importDefault$1(strategy);
13993
14179
  class ConnectionManager extends base_1$a.Base {
13994
14180
  static getProtocolOptionsFromStrings(protocols) {
13995
14181
  return protocols.map((protocol) => {
@@ -17179,12 +17365,15 @@ Fin_1 = fin$1.Fin = Fin;
17179
17365
 
17180
17366
  var browser = {};
17181
17367
 
17368
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
17369
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17370
+ };
17182
17371
  Object.defineProperty(browser, "__esModule", { value: true });
17183
17372
  browser.remoteConnectInterop = browser.remoteConnect = getRemoteConnectionPayload_1 = browser.getRemoteConnectionPayload = void 0;
17184
17373
  const fin_1 = fin$1;
17185
17374
  const browser_1 = browser$1;
17186
17375
  const transport_1 = transport;
17187
- const websocket_1 = websocket;
17376
+ const websocket_1 = __importDefault(websocket);
17188
17377
  async function getRemoteConnectionPayload(fin, uuid = `browser-connection-${Math.random().toString().slice(2)}`, interopProviderId = fin.me.uuid) {
17189
17378
  const { token } = await fin.System.registerExternalConnection(uuid);
17190
17379
  const { port } = await fin.System.getRuntimeInfo();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/remote-adapter",
3
- "version": "40.82.11",
3
+ "version": "40.82.12",
4
4
  "description": "Establish intermachine runtime connections using webRTC.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,
@@ -19,6 +19,6 @@
19
19
  "author": "OpenFin",
20
20
  "dependencies": {
21
21
  "lodash": "^4.17.21",
22
- "@openfin/core": "40.82.11"
22
+ "@openfin/core": "40.82.12"
23
23
  }
24
24
  }