@openfin/remote-adapter 40.82.11 → 40.82.13

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 +269 -70
  2. package/package.json +2 -2
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var require$$3 = require('lodash');
4
- var require$$0 = require('events');
3
+ var require$$0 = require('lodash/cloneDeep');
4
+ var require$$3 = require('lodash/isEqual');
5
+ var require$$0$1 = require('events');
5
6
  var bridge = require('./bridge-ef11968f.js');
6
7
  var crypto = require('crypto');
7
8
  var backchannel = require('./backchannel.js');
@@ -525,9 +526,32 @@ var utils$2 = {};
525
526
 
526
527
  var PrivateChannelClient$1 = {};
527
528
 
529
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
530
+ if (k2 === undefined) k2 = k;
531
+ var desc = Object.getOwnPropertyDescriptor(m, k);
532
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
533
+ desc = { enumerable: true, get: function() { return m[k]; } };
534
+ }
535
+ Object.defineProperty(o, k2, desc);
536
+ }) : (function(o, m, k, k2) {
537
+ if (k2 === undefined) k2 = k;
538
+ o[k2] = m[k];
539
+ }));
540
+ var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) {
541
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
542
+ }) : function(o, v) {
543
+ o["default"] = v;
544
+ });
545
+ var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) {
546
+ if (mod && mod.__esModule) return mod;
547
+ var result = {};
548
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
549
+ __setModuleDefault(result, mod);
550
+ return result;
551
+ };
528
552
  Object.defineProperty(PrivateChannelClient$1, "__esModule", { value: true });
529
553
  PrivateChannelClient$1.PrivateChannelClient = void 0;
530
- const utils$1 = utils$3;
554
+ const utils$1 = __importStar(utils$3);
531
555
  class PrivateChannelClient {
532
556
  constructor(client, id) {
533
557
  this.id = id;
@@ -616,11 +640,14 @@ class PrivateChannelClient {
616
640
  PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
617
641
 
618
642
  (function (exports) {
643
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
644
+ return (mod && mod.__esModule) ? mod : { "default": mod };
645
+ };
619
646
  Object.defineProperty(exports, "__esModule", { value: true });
620
647
  exports.getIntentResolution = exports.isChannel = exports.isContext = exports.connectPrivateChannel = exports.buildAppChannelObject = exports.buildPrivateChannelObject = exports.ChannelError = exports.ResultError = exports.UnsupportedChannelApiError = exports.getUnsupportedChannelApis = void 0;
621
648
  const utils_1 = utils$3;
622
649
  const PrivateChannelClient_1 = PrivateChannelClient$1;
623
- const lodash_1 = require$$3;
650
+ const isEqual_1 = __importDefault(require$$3);
624
651
  const getUnsupportedChannelApis = (channelType) => {
625
652
  return {
626
653
  addContextListener: () => {
@@ -748,7 +775,7 @@ PrivateChannelClient$1.PrivateChannelClient = PrivateChannelClient;
748
775
  const wrappedHandler = (context, contextMetadata) => {
749
776
  if (first) {
750
777
  first = false;
751
- if ((0, lodash_1.isEqual)(currentContext, context)) {
778
+ if ((0, isEqual_1.default)(currentContext, context)) {
752
779
  return;
753
780
  }
754
781
  }
@@ -870,13 +897,16 @@ function requireFdc3Common () {
870
897
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
871
898
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
872
899
  };
900
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
901
+ return (mod && mod.__esModule) ? mod : { "default": mod };
902
+ };
873
903
  var _FDC3ModuleBase_producer;
874
904
  Object.defineProperty(fdc3Common, "__esModule", { value: true });
875
905
  fdc3Common.FDC3ModuleBase = void 0;
876
906
  const utils_1 = utils$2;
877
907
  const utils_2 = utils$3;
878
908
  const InteropClient_1 = requireInteropClient();
879
- const lodash_1 = require$$3;
909
+ const isEqual_1 = __importDefault(require$$3);
880
910
  class FDC3ModuleBase {
881
911
  get client() {
882
912
  return __classPrivateFieldGet(this, _FDC3ModuleBase_producer, "f").call(this);
@@ -1065,7 +1095,7 @@ function requireFdc3Common () {
1065
1095
  const wrappedHandler = (context, contextMetadata) => {
1066
1096
  if (first) {
1067
1097
  first = false;
1068
- if ((0, lodash_1.isEqual)(currentContext, context)) {
1098
+ if ((0, isEqual_1.default)(currentContext, context)) {
1069
1099
  return;
1070
1100
  }
1071
1101
  }
@@ -1678,11 +1708,14 @@ function requireInteropClient () {
1678
1708
  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
1709
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
1680
1710
  };
1711
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
1712
+ return (mod && mod.__esModule) ? mod : { "default": mod };
1713
+ };
1681
1714
  var _InteropClient_clientPromise, _InteropClient_sessionContextGroups;
1682
1715
  Object.defineProperty(InteropClient, "__esModule", { value: true });
1683
1716
  InteropClient.InteropClient = void 0;
1684
1717
  const base_1 = base;
1685
- const SessionContextGroupClient_1 = SessionContextGroupClient$1;
1718
+ const SessionContextGroupClient_1 = __importDefault(SessionContextGroupClient$1);
1686
1719
  const fdc3_1_2_1 = requireFdc31_2();
1687
1720
  const fdc3_2_0_1 = requireFdc32_0();
1688
1721
  const utils_1 = utils$3;
@@ -2300,9 +2333,12 @@ var hasRequiredFactory$3;
2300
2333
  function requireFactory$3 () {
2301
2334
  if (hasRequiredFactory$3) return Factory$8;
2302
2335
  hasRequiredFactory$3 = 1;
2336
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
2337
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2338
+ };
2303
2339
  Object.defineProperty(Factory$8, "__esModule", { value: true });
2304
2340
  Factory$8.InteropModule = void 0;
2305
- const lodash_1 = require$$3;
2341
+ const cloneDeep_1 = __importDefault(require$$0);
2306
2342
  const inaccessibleObject_1 = inaccessibleObject;
2307
2343
  const base_1 = base;
2308
2344
  const InteropBroker_1 = requireInteropBroker();
@@ -2339,7 +2375,7 @@ function requireFactory$3 () {
2339
2375
  // Allows for manifest-level configuration, without having to override. (e.g. specifying custom context groups)
2340
2376
  const options = await this.wire.environment.getInteropInfo(this.wire.getFin());
2341
2377
  const objectThatThrows = (0, inaccessibleObject_1.createUnusableObject)(BrokerParamAccessError);
2342
- const warningOptsClone = (0, inaccessibleObject_1.createWarningObject)(BrokerParamAccessError, (0, lodash_1.cloneDeep)(options));
2378
+ const warningOptsClone = (0, inaccessibleObject_1.createWarningObject)(BrokerParamAccessError, (0, cloneDeep_1.default)(options));
2343
2379
  const getProvider = () => {
2344
2380
  return this.fin.InterApplicationBus.Channel.create(`interop-broker-${name}`);
2345
2381
  };
@@ -2905,13 +2941,16 @@ function requireInteropBroker () {
2905
2941
  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
2942
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
2907
2943
  };
2944
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
2945
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2946
+ };
2908
2947
  var _InteropBroker_fdc3Info, _InteropBroker_contextGroups, _InteropBroker_providerPromise;
2909
2948
  Object.defineProperty(InteropBroker, "__esModule", { value: true });
2910
2949
  InteropBroker.InteropBroker = void 0;
2911
2950
  const base_1 = base;
2912
- const SessionContextGroupBroker_1 = requireSessionContextGroupBroker();
2951
+ const SessionContextGroupBroker_1 = __importDefault(requireSessionContextGroupBroker());
2913
2952
  const utils_1 = utils$3;
2914
- const lodash_1 = require$$3;
2953
+ const isEqual_1 = __importDefault(require$$3);
2915
2954
  const PrivateChannelProvider_1 = requirePrivateChannelProvider();
2916
2955
  const lazy_1 = lazy;
2917
2956
  const defaultContextGroups = [
@@ -3109,7 +3148,7 @@ function requireInteropBroker () {
3109
3148
  constructor(...unused) {
3110
3149
  if (unused.length) {
3111
3150
  const [_ignore1, ignore2, opts] = unused;
3112
- if (opts && typeof opts === 'object' && !(0, lodash_1.isEqual)(opts, args[2])) {
3151
+ if (opts && typeof opts === 'object' && !(0, isEqual_1.default)(opts, args[2])) {
3113
3152
  // eslint-disable-next-line no-console
3114
3153
  console.warn('You have modified the parameters of the InteropOverride constructor. This behavior is deprecated and will be removed in a future version. You can modify these options in your manifest. Please consult our Interop docs for guidance on migrating to the new override scheme.');
3115
3154
  super(args[0], args[1], opts);
@@ -4404,19 +4443,57 @@ transportErrors.NotImplementedError = NotImplementedError;
4404
4443
  class NotSupportedError extends Error {
4405
4444
  }
4406
4445
  transportErrors.NotSupportedError = NotSupportedError;
4407
- class InternalError extends Error {
4446
+ class DeserializedError extends Error {
4408
4447
  constructor(err) {
4409
4448
  const { message, name, stack, ...rest } = err;
4410
4449
  super(message);
4450
+ if ('cause' in err && err.cause) {
4451
+ this.cause = new DeserializedError(err.cause);
4452
+ }
4411
4453
  this.name = name || 'Error';
4412
4454
  this.stack = stack ?? this.toString();
4413
- Object.keys(rest).forEach(key => {
4455
+ Object.keys(rest)
4456
+ .filter((k) => k !== 'cause')
4457
+ .forEach((key) => {
4414
4458
  this[key] = rest[key];
4415
4459
  });
4416
4460
  }
4417
4461
  }
4418
4462
  // For documentation of the error methods being used see here: https://v8.dev/docs/stack-trace-api
4419
4463
  class RuntimeError extends Error {
4464
+ static trimEndCallSites(err, takeUntilRegex) {
4465
+ // save original props
4466
+ const length = Error.stackTraceLimit;
4467
+ // eslint-disable-next-line no-underscore-dangle
4468
+ const _prepareStackTrace = Error.prepareStackTrace;
4469
+ // This will be called when we access the `stack` property
4470
+ Error.prepareStackTrace = (_, stack) => stack;
4471
+ // in channel errors, the error was already serialized so we need to handle both string and CallSite[]
4472
+ const isString = typeof err.stack === 'string';
4473
+ const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
4474
+ // restore original props
4475
+ Error.prepareStackTrace = _prepareStackTrace;
4476
+ Error.stackTraceLimit = length;
4477
+ // stack is optional in non chromium contexts
4478
+ if (stack.length) {
4479
+ const newStack = [];
4480
+ // remove this call ONLY if it's not a string
4481
+ for (const line of isString ? stack : stack.slice(1)) {
4482
+ // inclusive take until
4483
+ newStack.push(line);
4484
+ if (takeUntilRegex.test(line.toString())) {
4485
+ break;
4486
+ }
4487
+ }
4488
+ if (isString) {
4489
+ // maintain it as a string
4490
+ err.stack = newStack.join('\n');
4491
+ }
4492
+ else {
4493
+ err.stack = RuntimeError.prepareStackTrace(err, newStack);
4494
+ }
4495
+ }
4496
+ }
4420
4497
  static getCallSite(callsToRemove = 0) {
4421
4498
  const length = Error.stackTraceLimit;
4422
4499
  const realCallsToRemove = callsToRemove + 1; // remove this call;
@@ -4435,21 +4512,82 @@ class RuntimeError extends Error {
4435
4512
  if (typeof Error.prepareStackTrace === 'function') {
4436
4513
  return Error.prepareStackTrace(err, callSites);
4437
4514
  }
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
- ;
4515
+ // TODO: this is just a first iteration, we can make this "nicer" at some point
4516
+ // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
4517
+ let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
4518
+ stackTrace += callSites
4519
+ .map((line) => ` at ${line}`)
4520
+ // .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
4521
+ .join('\n');
4522
+ return stackTrace;
4523
+ }
4524
+ /*
4525
+
4526
+ NON filtered stack trace example from MTP page channel-errors.tsx:
4527
+
4528
+ Caused by: ChannelError: Error from ch0
4529
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4530
+ at eval (test-channel-errors.tsx:73:26)
4531
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4532
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4533
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4534
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4535
+ at Transport.onmessage (<anonymous>:3:282049)
4536
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4537
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4538
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4539
+ Caused by: ChannelError: Error from ch0
4540
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4541
+ at eval (test-channel-errors.tsx:73:26)
4542
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4543
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4544
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4545
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4546
+ at Transport.onmessage (<anonymous>:3:282049)
4547
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4548
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4549
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4550
+ Caused by: ChannelError: Error from ch0
4551
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4552
+ at eval (test-channel-errors.tsx:73:26)
4553
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4554
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4555
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4556
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4557
+ at Transport.onmessage (<anonymous>:3:282049)
4558
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4559
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4560
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4561
+ Caused by: ChannelError: Error from ch0
4562
+ at ChannelClient.dispatch (<anonymous>:3:119560)
4563
+ at eval (test-channel-errors.tsx:50:23)
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
+ Caused by: Error: Error from ch0
4573
+ at eval (test-channel-errors.tsx:54:19)
4574
+ at ChannelProvider.processAction (<anonymous>:3:116748)
4575
+ at ChannelProvider.processAction (<anonymous>:3:149121)
4576
+ at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
4577
+ at MessageReceiver.onmessage (<anonymous>:3:131232)
4578
+ at Transport.onmessage (<anonymous>:3:282049)
4579
+ at IpcRenderer.<anonymous> (<anonymous>:3:275150)
4580
+ at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
4581
+ at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
4582
+
4583
+
4584
+ */
4447
4585
  constructor(payload, callSites) {
4448
4586
  const { reason, error } = payload;
4449
4587
  super(reason);
4450
- this.name = 'RuntimeError';
4588
+ this.name = this.constructor.name;
4451
4589
  if (error?.stack) {
4452
- this.cause = new InternalError(error);
4590
+ this.cause = new DeserializedError(error);
4453
4591
  }
4454
4592
  if (callSites) {
4455
4593
  this.stack = RuntimeError.prepareStackTrace(this, callSites);
@@ -4464,7 +4602,7 @@ var emitterMap = {};
4464
4602
 
4465
4603
  Object.defineProperty(emitterMap, "__esModule", { value: true });
4466
4604
  emitterMap.EmitterMap = void 0;
4467
- const events_1$6 = require$$0;
4605
+ const events_1$6 = require$$0$1;
4468
4606
  class EmitterMap {
4469
4607
  constructor() {
4470
4608
  this.storage = new Map();
@@ -4641,7 +4779,9 @@ function requireFactory$2 () {
4641
4779
  * @experimental
4642
4780
  */
4643
4781
  async wrap(identity) {
4644
- this.wire.sendAction('view-wrap');
4782
+ this.wire.sendAction('view-wrap').catch((e) => {
4783
+ // we do not want to expose this error, just continue if this analytics-only call fails
4784
+ });
4645
4785
  const errorMsg = (0, validate_1.validateIdentity)(identity);
4646
4786
  if (errorMsg) {
4647
4787
  throw new Error(errorMsg);
@@ -9435,9 +9575,14 @@ function requireInstance () {
9435
9575
  // don't expose
9436
9576
  });
9437
9577
  const layoutWindow = await this.getCurrentWindow();
9578
+ let layoutWindowIdentity = layoutWindow.identity;
9579
+ // TODO: CORE-1857 - when we tearout active layout or drag a view out of a window, the above identity includes the whole window info.
9580
+ if (layoutWindowIdentity.identity) {
9581
+ layoutWindowIdentity = layoutWindowIdentity.identity;
9582
+ }
9438
9583
  try {
9439
9584
  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);
9585
+ const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindowIdentity);
9441
9586
  const layoutIdentity = await client.getLayoutIdentityForViewOrThrow(this.identity);
9442
9587
  return this.fin.Platform.Layout.wrap(layoutIdentity);
9443
9588
  }
@@ -9450,7 +9595,7 @@ function requireInstance () {
9450
9595
  throw e;
9451
9596
  }
9452
9597
  // fallback logic for missing endpoint
9453
- return this.fin.Platform.Layout.wrap(layoutWindow.identity);
9598
+ return this.fin.Platform.Layout.wrap(layoutWindowIdentity);
9454
9599
  }
9455
9600
  };
9456
9601
  /**
@@ -10167,13 +10312,17 @@ var errors = {};
10167
10312
  Object.defineProperty(errors, "__esModule", { value: true });
10168
10313
  errors.errorToPOJO = void 0;
10169
10314
  function errorToPOJO(error) {
10170
- return {
10315
+ const errorObj = {
10171
10316
  stack: error.stack,
10172
10317
  name: error.name,
10173
10318
  message: error.message,
10174
10319
  // support the case where stack is empty or missing
10175
10320
  toString: () => error.stack || error.toString()
10176
10321
  };
10322
+ if ('cause' in error) {
10323
+ errorObj.cause = errorToPOJO(error.cause);
10324
+ }
10325
+ return errorObj;
10177
10326
  }
10178
10327
  errors.errorToPOJO = errorToPOJO;
10179
10328
 
@@ -10188,15 +10337,18 @@ var __classPrivateFieldGet$b = (commonjsGlobal && commonjsGlobal.__classPrivateF
10188
10337
  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
10338
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
10190
10339
  };
10340
+ var __importDefault$2 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
10341
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10342
+ };
10191
10343
  var _Transport_wire, _Transport_fin;
10192
10344
  Object.defineProperty(transport, "__esModule", { value: true });
10193
10345
  var Transport_1 = transport.Transport = void 0;
10194
- const events_1$5 = require$$0;
10346
+ const events_1$5 = require$$0$1;
10195
10347
  const wire_1 = wire;
10196
- const transport_errors_1$2 = transportErrors;
10197
- const eventAggregator_1 = eventAggregator;
10348
+ const transport_errors_1$6 = transportErrors;
10349
+ const eventAggregator_1 = __importDefault$2(eventAggregator);
10198
10350
  const me_1$1 = me;
10199
- const errors_1$1 = errors;
10351
+ const errors_1$2 = errors;
10200
10352
  class Transport extends events_1$5.EventEmitter {
10201
10353
  constructor(WireType, environment, config) {
10202
10354
  super();
@@ -10278,7 +10430,7 @@ class Transport extends events_1$5.EventEmitter {
10278
10430
  type: 'file-token'
10279
10431
  }, true);
10280
10432
  if (requestExtAuthRet.action !== 'external-authorization-response') {
10281
- throw new transport_errors_1$2.UnexpectedActionError(requestExtAuthRet.action);
10433
+ throw new transport_errors_1$6.UnexpectedActionError(requestExtAuthRet.action);
10282
10434
  }
10283
10435
  await this.environment.writeToken(requestExtAuthRet.payload.file, requestExtAuthRet.payload.token);
10284
10436
  return this.authorize(reqAuthPayload);
@@ -10286,10 +10438,10 @@ class Transport extends events_1$5.EventEmitter {
10286
10438
  async authorize(reqAuthPayload) {
10287
10439
  const requestAuthRet = await this.sendAction('request-authorization', reqAuthPayload, true);
10288
10440
  if (requestAuthRet.action !== 'authorization-response') {
10289
- throw new transport_errors_1$2.UnexpectedActionError(requestAuthRet.action);
10441
+ throw new transport_errors_1$6.UnexpectedActionError(requestAuthRet.action);
10290
10442
  }
10291
10443
  else if (requestAuthRet.payload.success !== true) {
10292
- throw new transport_errors_1$2.RuntimeError(requestAuthRet.payload);
10444
+ throw new transport_errors_1$6.RuntimeError(requestAuthRet.payload);
10293
10445
  }
10294
10446
  }
10295
10447
  sendAction(action, payload = {}, uncorrelated = false
@@ -10298,7 +10450,7 @@ class Transport extends events_1$5.EventEmitter {
10298
10450
  // eslint-disable-next-line @typescript-eslint/no-empty-function
10299
10451
  let cancel = () => { };
10300
10452
  // We want the callsite from the caller of this function, not from here.
10301
- const callSites = transport_errors_1$2.RuntimeError.getCallSite(1);
10453
+ const callSites = transport_errors_1$6.RuntimeError.getCallSite(1);
10302
10454
  const messageId = this.environment.getNextMessageId();
10303
10455
  const prom = new Promise((resolve, reject) => {
10304
10456
  cancel = reject;
@@ -10319,7 +10471,7 @@ class Transport extends events_1$5.EventEmitter {
10319
10471
  reject(payloadOrMessage);
10320
10472
  }
10321
10473
  else {
10322
- reject(new transport_errors_1$2.RuntimeError(payloadOrMessage, callSites));
10474
+ reject(new transport_errors_1$6.RuntimeError(payloadOrMessage, callSites));
10323
10475
  }
10324
10476
  }
10325
10477
  ferryAction(origData) {
@@ -10346,7 +10498,7 @@ class Transport extends events_1$5.EventEmitter {
10346
10498
  else if (this.wireListeners.has(id)) {
10347
10499
  handleNack({
10348
10500
  reason: 'Duplicate handler id',
10349
- error: (0, errors_1$1.errorToPOJO)(new transport_errors_1$2.DuplicateCorrelationError(String(id)))
10501
+ error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.DuplicateCorrelationError(String(id)))
10350
10502
  });
10351
10503
  }
10352
10504
  else {
@@ -10378,7 +10530,7 @@ class Transport extends events_1$5.EventEmitter {
10378
10530
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10379
10531
  const { resolve, handleNack } = this.wireListeners.get(id);
10380
10532
  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)) });
10533
+ handleNack({ reason: 'Did not receive ack action', error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.NoAckError(data.action)) });
10382
10534
  }
10383
10535
  else if (!('payload' in data)) {
10384
10536
  // 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 +10540,10 @@ class Transport extends events_1$5.EventEmitter {
10388
10540
  }
10389
10541
  else {
10390
10542
  console.warn('Received invalid response from core', data);
10391
- handleNack({ reason: 'invalid response shape' });
10543
+ handleNack({
10544
+ reason: 'invalid response shape',
10545
+ error: (0, errors_1$2.errorToPOJO)(new Error('Invalid response shape'))
10546
+ });
10392
10547
  }
10393
10548
  }
10394
10549
  else if (!data.payload.success) {
@@ -10408,8 +10563,8 @@ _Transport_wire = new WeakMap(), _Transport_fin = new WeakMap();
10408
10563
  var websocket = {};
10409
10564
 
10410
10565
  Object.defineProperty(websocket, "__esModule", { value: true });
10411
- const events_1$4 = require$$0;
10412
- const transport_errors_1$1 = transportErrors;
10566
+ const events_1$4 = require$$0$1;
10567
+ const transport_errors_1$5 = transportErrors;
10413
10568
  const messageReceiver_1 = bridge.messageReceiver;
10414
10569
  /* `READY_STATE` is an instance var set by `constructor` to reference the `WebTransportSocket.READY_STATE` enum.
10415
10570
  * This is syntactic sugar that makes the enum accessible through the `wire` property of the various `fin` singletons.
@@ -10443,14 +10598,14 @@ class WebSocketTransport extends events_1$4.EventEmitter {
10443
10598
  });
10444
10599
  };
10445
10600
  this.connectSync = () => {
10446
- throw new transport_errors_1$1.NotImplementedError('Not Implemented');
10601
+ throw new transport_errors_1$5.NotImplementedError('Not Implemented');
10447
10602
  };
10448
10603
  this.onmessage = onmessage;
10449
10604
  }
10450
10605
  send(data, flags) {
10451
10606
  return new Promise((resolve, reject) => {
10452
10607
  if (!(0, messageReceiver_1.isOpen)(this.wire)) {
10453
- reject(new transport_errors_1$1.DisconnectedError(READY_STATE[this.wire.readyState]));
10608
+ reject(new transport_errors_1$5.DisconnectedError(READY_STATE[this.wire.readyState]));
10454
10609
  }
10455
10610
  else {
10456
10611
  // @ts-expect-error
@@ -10483,9 +10638,9 @@ var system = {};
10483
10638
  Object.defineProperty(system, "__esModule", { value: true });
10484
10639
  system.System = void 0;
10485
10640
  const base_1$d = base;
10486
- const transport_errors_1 = transportErrors;
10641
+ const transport_errors_1$4 = transportErrors;
10487
10642
  const window_1 = requireWindow();
10488
- const events_1$3 = require$$0;
10643
+ const events_1$3 = require$$0$1;
10489
10644
  /**
10490
10645
  * An object representing the core of OpenFin Runtime. Allows the developer
10491
10646
  * to perform system-level actions, such as accessing logs, viewing processes,
@@ -11573,9 +11728,9 @@ class System extends base_1$d.EmitterBase {
11573
11728
  });
11574
11729
  // node.js environment not supported
11575
11730
  if (this.wire.environment.type !== 'openfin') {
11576
- throw new transport_errors_1.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
11731
+ throw new transport_errors_1$4.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
11577
11732
  }
11578
- const callSite = transport_errors_1.RuntimeError.getCallSite();
11733
+ const callSite = transport_errors_1$4.RuntimeError.getCallSite();
11579
11734
  const downloadId = this.wire.environment.getNextMessageId().toString();
11580
11735
  const dlProgressKey = `asset-download-progress-${downloadId}`;
11581
11736
  const dlErrorKey = `asset-download-error-${downloadId}`;
@@ -11595,7 +11750,7 @@ class System extends base_1$d.EmitterBase {
11595
11750
  const dlError = (payload) => {
11596
11751
  cleanListeners();
11597
11752
  const { reason, err: error } = payload;
11598
- reject(new transport_errors_1.RuntimeError({ reason, error }, callSite));
11753
+ reject(new transport_errors_1$4.RuntimeError({ reason, error }, callSite));
11599
11754
  };
11600
11755
  const dlComplete = () => {
11601
11756
  cleanListeners();
@@ -11646,11 +11801,11 @@ class System extends base_1$d.EmitterBase {
11646
11801
  * ```
11647
11802
  */
11648
11803
  downloadRuntime(options, progressListener) {
11649
- const callsites = transport_errors_1.RuntimeError.getCallSite();
11804
+ const callsites = transport_errors_1$4.RuntimeError.getCallSite();
11650
11805
  return new Promise((resolve, reject) => {
11651
11806
  // node.js environment not supported
11652
11807
  if (this.wire.environment.type !== 'openfin') {
11653
- reject(new transport_errors_1.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
11808
+ reject(new transport_errors_1$4.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
11654
11809
  return;
11655
11810
  }
11656
11811
  const downloadId = this.wire.environment.getNextMessageId().toString();
@@ -11672,7 +11827,7 @@ class System extends base_1$d.EmitterBase {
11672
11827
  const dlError = (payload) => {
11673
11828
  cleanListeners();
11674
11829
  const { reason, err: error } = payload;
11675
- reject(new transport_errors_1.RuntimeError({ reason, error }, callsites));
11830
+ reject(new transport_errors_1$4.RuntimeError({ reason, error }, callsites));
11676
11831
  };
11677
11832
  const dlComplete = () => {
11678
11833
  cleanListeners();
@@ -12407,6 +12562,7 @@ var channel = {};
12407
12562
 
12408
12563
  Object.defineProperty(channel, "__esModule", { value: true });
12409
12564
  channel.ChannelBase = channel.ProtectedItems = void 0;
12565
+ const transport_errors_1$3 = transportErrors;
12410
12566
  const resultOrPayload = (func) => async (topic, payload, senderIdentity) => {
12411
12567
  const res = await func(topic, payload, senderIdentity);
12412
12568
  return res === undefined ? payload : res;
@@ -12439,6 +12595,7 @@ class ChannelBase {
12439
12595
  return this.postAction ? await this.postAction(topic, actionProcessed, senderIdentity) : actionProcessed;
12440
12596
  }
12441
12597
  catch (e) {
12598
+ transport_errors_1$3.RuntimeError.trimEndCallSites(e, /Channel.*processAction/);
12442
12599
  if (this.errorMiddleware) {
12443
12600
  return this.errorMiddleware(topic, e, senderIdentity);
12444
12601
  }
@@ -12740,6 +12897,25 @@ class ChannelBase {
12740
12897
  }
12741
12898
  channel.ChannelBase = ChannelBase;
12742
12899
 
12900
+ var channelError = {};
12901
+
12902
+ Object.defineProperty(channelError, "__esModule", { value: true });
12903
+ channelError.ChannelError = void 0;
12904
+ const transport_errors_1$2 = transportErrors;
12905
+ class ChannelError extends Error {
12906
+ constructor(originalError, action, dispatchPayload, callsites) {
12907
+ super(originalError.message);
12908
+ this.action = action;
12909
+ this.dispatchPayload = dispatchPayload;
12910
+ this.name = this.constructor.name;
12911
+ if ('cause' in originalError && originalError.cause instanceof Error) {
12912
+ this.cause = originalError.cause;
12913
+ }
12914
+ this.stack = transport_errors_1$2.RuntimeError.prepareStackTrace(this, callsites);
12915
+ }
12916
+ }
12917
+ channelError.ChannelError = ChannelError;
12918
+
12743
12919
  var __classPrivateFieldGet$a = (commonjsGlobal && commonjsGlobal.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12744
12920
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12745
12921
  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 +12930,9 @@ var __classPrivateFieldSet$8 = (commonjsGlobal && commonjsGlobal.__classPrivateF
12754
12930
  var _ChannelClient_protectedObj, _ChannelClient_strategy, _ChannelClient_close;
12755
12931
  Object.defineProperty(client, "__esModule", { value: true });
12756
12932
  client.ChannelClient = void 0;
12933
+ const transport_errors_1$1 = transportErrors;
12757
12934
  const channel_1$1 = channel;
12935
+ const channel_error_1$1 = channelError;
12758
12936
  const channelClientsByEndpointId = new Map();
12759
12937
  /**
12760
12938
  * Instance created to enable use of a channel as a client. Allows for communication with the
@@ -12856,7 +13034,10 @@ class ChannelClient extends channel_1$1.ChannelBase {
12856
13034
  */
12857
13035
  async dispatch(action, payload) {
12858
13036
  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);
13037
+ const callSites = transport_errors_1$1.RuntimeError.getCallSite();
13038
+ return __classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload).catch((e) => {
13039
+ throw new channel_error_1$1.ChannelError(e, action, payload, callSites);
13040
+ });
12860
13041
  }
12861
13042
  throw new Error('The client you are trying to dispatch from is disconnected from the target provider.');
12862
13043
  }
@@ -12971,7 +13152,7 @@ class ClassicStrategy {
12971
13152
  _ClassicStrategy_endpointIdentityMap.set(this, new Map());
12972
13153
  // Store a set of cancellable promises to be able to reject them when client
12973
13154
  // connection problems occur
12974
- _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map);
13155
+ _ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map());
12975
13156
  this.send = async (endpointId, action, payload) => {
12976
13157
  const to = __classPrivateFieldGet$9(this, _ClassicStrategy_endpointIdentityMap, "f").get(endpointId);
12977
13158
  if (!to) {
@@ -12985,17 +13166,21 @@ class ClassicStrategy {
12985
13166
  }
12986
13167
  delete cleanId.isLocalEndpointId;
12987
13168
  // 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', {
13169
+ const p = __classPrivateFieldGet$9(this, _ClassicStrategy_wire, "f").sendAction('send-channel-message', {
12990
13170
  ...cleanId,
12991
13171
  providerIdentity: this.providerIdentity,
12992
13172
  action,
12993
13173
  payload
12994
13174
  });
12995
13175
  __classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.add(p);
12996
- const raw = await p.catch((error) => {
13176
+ const raw = await p
13177
+ .catch((error) => {
13178
+ if ('cause' in error) {
13179
+ throw error;
13180
+ }
12997
13181
  throw new Error(error.message);
12998
- }).finally(() => {
13182
+ })
13183
+ .finally(() => {
12999
13184
  // clean up the pending promise
13000
13185
  __classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.delete(p);
13001
13186
  });
@@ -13059,7 +13244,7 @@ var _RTCEndpoint_processAction, _RTCEndpoint_disconnectListener;
13059
13244
  Object.defineProperty(endpoint, "__esModule", { value: true });
13060
13245
  endpoint.RTCEndpoint = void 0;
13061
13246
  /* eslint-disable @typescript-eslint/no-unused-vars */
13062
- const errors_1 = errors;
13247
+ const errors_1$1 = errors;
13063
13248
  /*
13064
13249
  This handles sending RTC messages between RTC connections over the request and response data channels.
13065
13250
  */
@@ -13148,7 +13333,7 @@ class RTCEndpoint {
13148
13333
  if (this.rtc.channels.response.readyState === 'open') {
13149
13334
  this.rtc.channels.response.send(JSON.stringify({
13150
13335
  messageId,
13151
- error: (0, errors_1.errorToPOJO)(error),
13336
+ error: (0, errors_1$1.errorToPOJO)(error),
13152
13337
  success: false
13153
13338
  }));
13154
13339
  }
@@ -13464,8 +13649,10 @@ var __classPrivateFieldSet$4 = (commonjsGlobal && commonjsGlobal.__classPrivateF
13464
13649
  var _ChannelProvider_connections, _ChannelProvider_protectedObj, _ChannelProvider_strategy, _ChannelProvider_removeEndpoint, _ChannelProvider_close;
13465
13650
  Object.defineProperty(provider, "__esModule", { value: true });
13466
13651
  provider.ChannelProvider = void 0;
13467
- const channel_1 = channel;
13652
+ const transport_errors_1 = transportErrors;
13468
13653
  const runtimeVersioning_1 = runtimeVersioning;
13654
+ const channel_1 = channel;
13655
+ const channel_error_1 = channelError;
13469
13656
  /**
13470
13657
  * 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
13658
  * a single client via {@link ChannelProvider#dispatch dispatch} or all clients via {@link ChannelProvider#publish publish}
@@ -13582,7 +13769,10 @@ class ChannelProvider extends channel_1.ChannelBase {
13582
13769
  dispatch(to, action, payload) {
13583
13770
  const endpointId = to.endpointId ?? this.getEndpointIdForOpenFinId(to, action);
13584
13771
  if (endpointId && __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").isEndpointConnected(endpointId)) {
13585
- return __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload);
13772
+ const callSites = transport_errors_1.RuntimeError.getCallSite();
13773
+ return __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload).catch((e) => {
13774
+ throw new channel_error_1.ChannelError(e, action, payload, callSites);
13775
+ });
13586
13776
  }
13587
13777
  return Promise.reject(new Error(`Client connection with identity uuid: ${to.uuid} / name: ${to.name} / endpointId: ${endpointId} no longer connected.`));
13588
13778
  }
@@ -13795,6 +13985,7 @@ Object.defineProperty(messageReceiver, "__esModule", { value: true });
13795
13985
  messageReceiver.MessageReceiver = void 0;
13796
13986
  const client_1$1 = client;
13797
13987
  const base_1$b = base;
13988
+ const errors_1 = errors;
13798
13989
  /*
13799
13990
  This is a singleton (per fin object) tasked with routing messages coming off the ipc to the correct endpoint.
13800
13991
  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 +14014,7 @@ class MessageReceiver extends base_1$b.Base {
13823
14014
  if (!handler) {
13824
14015
  ackToSender.payload.success = false;
13825
14016
  ackToSender.payload.reason = `Client connection with identity uuid: ${this.wire.me.uuid} / name: ${this.wire.me.name} / endpointId: ${key} no longer connected.`;
14017
+ ackToSender.payload.error = (0, errors_1.errorToPOJO)(new Error(ackToSender.payload.reason));
13826
14018
  return this.wire.sendRaw(ackToSender);
13827
14019
  }
13828
14020
  try {
@@ -13834,6 +14026,7 @@ class MessageReceiver extends base_1$b.Base {
13834
14026
  catch (e) {
13835
14027
  ackToSender.payload.success = false;
13836
14028
  ackToSender.payload.reason = e.message;
14029
+ ackToSender.payload.error = (0, errors_1.errorToPOJO)(e);
13837
14030
  return this.wire.sendRaw(ackToSender);
13838
14031
  }
13839
14032
  }
@@ -13978,6 +14171,9 @@ var __classPrivateFieldGet$5 = (commonjsGlobal && commonjsGlobal.__classPrivateF
13978
14171
  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
14172
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
13980
14173
  };
14174
+ var __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
14175
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14176
+ };
13981
14177
  var _ConnectionManager_messageReceiver, _ConnectionManager_rtcConnectionManager;
13982
14178
  Object.defineProperty(connectionManager, "__esModule", { value: true });
13983
14179
  connectionManager.ConnectionManager = void 0;
@@ -13989,7 +14185,7 @@ const ice_manager_1 = iceManager;
13989
14185
  const provider_1$1 = provider;
13990
14186
  const message_receiver_1 = messageReceiver;
13991
14187
  const protocol_manager_1 = protocolManager;
13992
- const strategy_3 = strategy;
14188
+ const strategy_3 = __importDefault$1(strategy);
13993
14189
  class ConnectionManager extends base_1$a.Base {
13994
14190
  static getProtocolOptionsFromStrings(protocols) {
13995
14191
  return protocols.map((protocol) => {
@@ -14236,7 +14432,7 @@ var _Channel_connectionManager, _Channel_internalEmitter, _Channel_readyToConnec
14236
14432
  Object.defineProperty(channel$1, "__esModule", { value: true });
14237
14433
  channel$1.Channel = void 0;
14238
14434
  /* eslint-disable no-console */
14239
- const events_1$2 = require$$0;
14435
+ const events_1$2 = require$$0$1;
14240
14436
  const lazy_1$1 = lazy;
14241
14437
  const base_1$9 = base;
14242
14438
  const client_1 = client;
@@ -14563,7 +14759,7 @@ interappbus.InterAppPayload = interappbus.InterApplicationBus = void 0;
14563
14759
  *
14564
14760
  * @packageDocumentation
14565
14761
  */
14566
- const events_1$1 = require$$0;
14762
+ const events_1$1 = require$$0$1;
14567
14763
  const base_1$8 = base;
14568
14764
  const ref_counter_1 = refCounter;
14569
14765
  const index_1$2 = channel$1;
@@ -17130,7 +17326,7 @@ Factory.SnapshotSourceModule = SnapshotSourceModule;
17130
17326
 
17131
17327
  Object.defineProperty(fin$1, "__esModule", { value: true });
17132
17328
  var Fin_1 = fin$1.Fin = void 0;
17133
- const events_1 = require$$0;
17329
+ const events_1 = require$$0$1;
17134
17330
  // Import from the file rather than the directory in case someone consuming types is using module resolution other than "node"
17135
17331
  const index_1 = system;
17136
17332
  const index_2 = requireWindow();
@@ -17179,12 +17375,15 @@ Fin_1 = fin$1.Fin = Fin;
17179
17375
 
17180
17376
  var browser = {};
17181
17377
 
17378
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
17379
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17380
+ };
17182
17381
  Object.defineProperty(browser, "__esModule", { value: true });
17183
17382
  browser.remoteConnectInterop = browser.remoteConnect = getRemoteConnectionPayload_1 = browser.getRemoteConnectionPayload = void 0;
17184
17383
  const fin_1 = fin$1;
17185
17384
  const browser_1 = browser$1;
17186
17385
  const transport_1 = transport;
17187
- const websocket_1 = websocket;
17386
+ const websocket_1 = __importDefault(websocket);
17188
17387
  async function getRemoteConnectionPayload(fin, uuid = `browser-connection-${Math.random().toString().slice(2)}`, interopProviderId = fin.me.uuid) {
17189
17388
  const { token } = await fin.System.registerExternalConnection(uuid);
17190
17389
  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.13",
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.13"
23
23
  }
24
24
  }