@openfin/core 44.101.7 → 44.101.8

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.
@@ -2166,6 +2166,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2166
2166
  */
2167
2167
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2168
2168
 
2169
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2170
+ declare interface CallSite {
2171
+ getFileName(): string | null;
2172
+ toString(): string;
2173
+ }
2174
+
2175
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2176
+ declare type CapturedStack = CallSite[] | string[];
2177
+
2169
2178
  /**
2170
2179
  * Configuration for page capture.
2171
2180
  *
@@ -8993,8 +9002,26 @@ declare type LayoutOptions = {
8993
9002
  content?: LayoutContent;
8994
9003
  dimensions?: {
8995
9004
  borderWidth?: number;
9005
+ /**
9006
+ * Minimum height a layout item can be resized to, in pixels.
9007
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemHeight`.
9008
+ */
8996
9009
  minItemHeight?: number;
9010
+ /**
9011
+ * Minimum width a layout item can be resized to, in pixels.
9012
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemWidth`.
9013
+ */
8997
9014
  minItemWidth?: number;
9015
+ /**
9016
+ * Minimum height a layout item can be resized to (CSS size, e.g. `'500px'`).
9017
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemHeight} when both are set.
9018
+ */
9019
+ defaultMinItemHeight?: string;
9020
+ /**
9021
+ * Minimum width a layout item can be resized to (CSS size, e.g. `'500px'`).
9022
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemWidth} when both are set.
9023
+ */
9024
+ defaultMinItemWidth?: string;
8998
9025
  headerHeight?: number;
8999
9026
  };
9000
9027
  };
@@ -17265,7 +17292,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17265
17292
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17266
17293
  private authorize;
17267
17294
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17268
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17295
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17269
17296
  ferryAction(origData: any): Promise<Message<any>>;
17270
17297
  registerMessageHandler(handler: MessageHandler): void;
17271
17298
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
@@ -2166,6 +2166,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2166
2166
  */
2167
2167
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2168
2168
 
2169
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2170
+ declare interface CallSite {
2171
+ getFileName(): string | null;
2172
+ toString(): string;
2173
+ }
2174
+
2175
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2176
+ declare type CapturedStack = CallSite[] | string[];
2177
+
2169
2178
  /**
2170
2179
  * Configuration for page capture.
2171
2180
  *
@@ -8993,8 +9002,26 @@ declare type LayoutOptions = {
8993
9002
  content?: LayoutContent;
8994
9003
  dimensions?: {
8995
9004
  borderWidth?: number;
9005
+ /**
9006
+ * Minimum height a layout item can be resized to, in pixels.
9007
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemHeight`.
9008
+ */
8996
9009
  minItemHeight?: number;
9010
+ /**
9011
+ * Minimum width a layout item can be resized to, in pixels.
9012
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemWidth`.
9013
+ */
8997
9014
  minItemWidth?: number;
9015
+ /**
9016
+ * Minimum height a layout item can be resized to (CSS size, e.g. `'500px'`).
9017
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemHeight} when both are set.
9018
+ */
9019
+ defaultMinItemHeight?: string;
9020
+ /**
9021
+ * Minimum width a layout item can be resized to (CSS size, e.g. `'500px'`).
9022
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemWidth} when both are set.
9023
+ */
9024
+ defaultMinItemWidth?: string;
8998
9025
  headerHeight?: number;
8999
9026
  };
9000
9027
  };
@@ -17265,7 +17292,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17265
17292
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17266
17293
  private authorize;
17267
17294
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17268
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17295
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17269
17296
  ferryAction(origData: any): Promise<Message<any>>;
17270
17297
  registerMessageHandler(handler: MessageHandler): void;
17271
17298
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
@@ -2166,6 +2166,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2166
2166
  */
2167
2167
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2168
2168
 
2169
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2170
+ declare interface CallSite {
2171
+ getFileName(): string | null;
2172
+ toString(): string;
2173
+ }
2174
+
2175
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2176
+ declare type CapturedStack = CallSite[] | string[];
2177
+
2169
2178
  /**
2170
2179
  * Configuration for page capture.
2171
2180
  *
@@ -8993,8 +9002,26 @@ declare type LayoutOptions = {
8993
9002
  content?: LayoutContent;
8994
9003
  dimensions?: {
8995
9004
  borderWidth?: number;
9005
+ /**
9006
+ * Minimum height a layout item can be resized to, in pixels.
9007
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemHeight`.
9008
+ */
8996
9009
  minItemHeight?: number;
9010
+ /**
9011
+ * Minimum width a layout item can be resized to, in pixels.
9012
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemWidth`.
9013
+ */
8997
9014
  minItemWidth?: number;
9015
+ /**
9016
+ * Minimum height a layout item can be resized to (CSS size, e.g. `'500px'`).
9017
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemHeight} when both are set.
9018
+ */
9019
+ defaultMinItemHeight?: string;
9020
+ /**
9021
+ * Minimum width a layout item can be resized to (CSS size, e.g. `'500px'`).
9022
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemWidth} when both are set.
9023
+ */
9024
+ defaultMinItemWidth?: string;
8998
9025
  headerHeight?: number;
8999
9026
  };
9000
9027
  };
@@ -17265,7 +17292,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17265
17292
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17266
17293
  private authorize;
17267
17294
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17268
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17295
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17269
17296
  ferryAction(origData: any): Promise<Message<any>>;
17270
17297
  registerMessageHandler(handler: MessageHandler): void;
17271
17298
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
package/out/stub.d.ts CHANGED
@@ -2198,6 +2198,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2198
2198
  */
2199
2199
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2200
2200
 
2201
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2202
+ declare interface CallSite {
2203
+ getFileName(): string | null;
2204
+ toString(): string;
2205
+ }
2206
+
2207
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2208
+ declare type CapturedStack = CallSite[] | string[];
2209
+
2201
2210
  /**
2202
2211
  * Configuration for page capture.
2203
2212
  *
@@ -9302,8 +9311,26 @@ declare type LayoutOptions = {
9302
9311
  content?: LayoutContent;
9303
9312
  dimensions?: {
9304
9313
  borderWidth?: number;
9314
+ /**
9315
+ * Minimum height a layout item can be resized to, in pixels.
9316
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemHeight`.
9317
+ */
9305
9318
  minItemHeight?: number;
9319
+ /**
9320
+ * Minimum width a layout item can be resized to, in pixels.
9321
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemWidth`.
9322
+ */
9306
9323
  minItemWidth?: number;
9324
+ /**
9325
+ * Minimum height a layout item can be resized to (CSS size, e.g. `'500px'`).
9326
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemHeight} when both are set.
9327
+ */
9328
+ defaultMinItemHeight?: string;
9329
+ /**
9330
+ * Minimum width a layout item can be resized to (CSS size, e.g. `'500px'`).
9331
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemWidth} when both are set.
9332
+ */
9333
+ defaultMinItemWidth?: string;
9307
9334
  headerHeight?: number;
9308
9335
  };
9309
9336
  };
@@ -17695,7 +17722,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17695
17722
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17696
17723
  private authorize;
17697
17724
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17698
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17725
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17699
17726
  ferryAction(origData: any): Promise<Message<any>>;
17700
17727
  registerMessageHandler(handler: MessageHandler): void;
17701
17728
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
package/out/stub.js CHANGED
@@ -472,6 +472,26 @@ class EmitterBase extends Base {
472
472
  }
473
473
  _EmitterBase_emitterAccessor = new WeakMap(), _EmitterBase_deregisterOnceListeners = new WeakMap();
474
474
 
475
+ const V8Error = Error;
476
+ function isCallSiteArray(stack) {
477
+ if (!Array.isArray(stack) || stack.length === 0) {
478
+ return Array.isArray(stack);
479
+ }
480
+ const first = stack[0];
481
+ return typeof first === 'object' && first !== null && typeof first.getFileName === 'function';
482
+ }
483
+ function isStackFrameLine(line) {
484
+ return /^\s*at\s/.test(line) || line.includes('@');
485
+ }
486
+ /**
487
+ * Split a native `error.stack` string into frames and drop the dummy Error header plus `framesToRemove` frames.
488
+ * Safari/Firefox ignore V8's Error.prepareStackTrace, so `.stack` stays a string and `.slice(n)` would cut characters.
489
+ */
490
+ function stackStringToFrames(stack, framesToRemove) {
491
+ const lines = stack.split('\n').filter((line) => line.length > 0);
492
+ const start = lines[0] !== undefined && !isStackFrameLine(lines[0]) ? 1 : 0;
493
+ return lines.slice(start + framesToRemove);
494
+ }
475
495
  class UnexpectedActionError extends Error {
476
496
  }
477
497
  class DuplicateCorrelationError extends Error {
@@ -500,17 +520,17 @@ class DeserializedError extends Error {
500
520
  class RuntimeError extends Error {
501
521
  static trimEndCallSites(err, takeUntilRegex) {
502
522
  // save original props
503
- const length = Error.stackTraceLimit;
523
+ const length = V8Error.stackTraceLimit;
504
524
  // eslint-disable-next-line no-underscore-dangle
505
- const _prepareStackTrace = Error.prepareStackTrace;
525
+ const _prepareStackTrace = V8Error.prepareStackTrace;
506
526
  // This will be called when we access the `stack` property
507
- Error.prepareStackTrace = (_, stack) => stack;
527
+ V8Error.prepareStackTrace = (_, stack) => stack;
508
528
  // in channel errors, the error was already serialized so we need to handle both string and CallSite[]
509
529
  const isString = typeof err.stack === 'string';
510
530
  const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
511
531
  // restore original props
512
- Error.prepareStackTrace = _prepareStackTrace;
513
- Error.stackTraceLimit = length;
532
+ V8Error.prepareStackTrace = _prepareStackTrace;
533
+ V8Error.stackTraceLimit = length;
514
534
  // stack is optional in non chromium contexts
515
535
  if (stack.length) {
516
536
  const newStack = [];
@@ -532,31 +552,47 @@ class RuntimeError extends Error {
532
552
  }
533
553
  }
534
554
  static getCallSite(callsToRemove = 0) {
535
- const length = Error.stackTraceLimit;
555
+ const length = V8Error.stackTraceLimit;
536
556
  const realCallsToRemove = callsToRemove + 1; // remove this call;
537
- Error.stackTraceLimit = length + realCallsToRemove;
557
+ const limit = typeof length === 'number' && Number.isFinite(length) ? length : 10;
538
558
  // eslint-disable-next-line no-underscore-dangle
539
- const _prepareStackTrace = Error.prepareStackTrace;
540
- // This will be called when we access the `stack` property
541
- Error.prepareStackTrace = (_, stack) => stack;
542
- // stack is optional in non chromium contexts
543
- const stack = new Error().stack?.slice(realCallsToRemove) ?? [];
544
- Error.prepareStackTrace = _prepareStackTrace;
545
- Error.stackTraceLimit = length;
546
- return stack;
559
+ const _prepareStackTrace = V8Error.prepareStackTrace;
560
+ try {
561
+ V8Error.stackTraceLimit = limit + realCallsToRemove;
562
+ // V8 only: accessing `.stack` invokes this and returns CallSite[]. Safari/Firefox ignore it.
563
+ V8Error.prepareStackTrace = (_, stack) => stack;
564
+ const rawStack = new Error().stack;
565
+ if (Array.isArray(rawStack)) {
566
+ return rawStack.slice(realCallsToRemove);
567
+ }
568
+ if (typeof rawStack === 'string' && rawStack.length > 0) {
569
+ return stackStringToFrames(rawStack, realCallsToRemove);
570
+ }
571
+ return [];
572
+ }
573
+ finally {
574
+ V8Error.prepareStackTrace = _prepareStackTrace;
575
+ V8Error.stackTraceLimit = length;
576
+ }
547
577
  }
548
578
  static prepareStackTrace(err, callSites) {
549
- if (typeof Error.prepareStackTrace === 'function') {
550
- return Error.prepareStackTrace(err, callSites);
551
- }
552
- // TODO: this is just a first iteration, we can make this "nicer" at some point
553
- // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
554
- let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
555
- stackTrace += callSites
556
- .map((line) => ` at ${line}`)
557
- // .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
558
- .join('\n');
559
- return stackTrace;
579
+ const header = `${err.name || 'Error'}: ${err.message || ''}`;
580
+ const frames = typeof callSites === 'string' ? stackStringToFrames(callSites, 0) : callSites;
581
+ if (!Array.isArray(frames) || frames.length === 0) {
582
+ return header;
583
+ }
584
+ if (isCallSiteArray(frames)) {
585
+ const prepare = V8Error.prepareStackTrace;
586
+ // Only V8 CallSite[] may be passed to a user-supplied Error.prepareStackTrace.
587
+ if (typeof prepare === 'function') {
588
+ return prepare(err, frames);
589
+ }
590
+ // TODO: this is just a first iteration, we can make this "nicer" at some point
591
+ // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
592
+ return `${header}\n${frames.map((line) => ` at ${line}`).join('\n')}`;
593
+ }
594
+ // Native Safari/Firefox frames already include their engine's format (`func@file:line:col`).
595
+ return `${header}\n${frames.join('\n')}`;
560
596
  }
561
597
  /*
562
598
 
package/out/stub.mjs CHANGED
@@ -468,6 +468,26 @@ class EmitterBase extends Base {
468
468
  }
469
469
  _EmitterBase_emitterAccessor = new WeakMap(), _EmitterBase_deregisterOnceListeners = new WeakMap();
470
470
 
471
+ const V8Error = Error;
472
+ function isCallSiteArray(stack) {
473
+ if (!Array.isArray(stack) || stack.length === 0) {
474
+ return Array.isArray(stack);
475
+ }
476
+ const first = stack[0];
477
+ return typeof first === 'object' && first !== null && typeof first.getFileName === 'function';
478
+ }
479
+ function isStackFrameLine(line) {
480
+ return /^\s*at\s/.test(line) || line.includes('@');
481
+ }
482
+ /**
483
+ * Split a native `error.stack` string into frames and drop the dummy Error header plus `framesToRemove` frames.
484
+ * Safari/Firefox ignore V8's Error.prepareStackTrace, so `.stack` stays a string and `.slice(n)` would cut characters.
485
+ */
486
+ function stackStringToFrames(stack, framesToRemove) {
487
+ const lines = stack.split('\n').filter((line) => line.length > 0);
488
+ const start = lines[0] !== undefined && !isStackFrameLine(lines[0]) ? 1 : 0;
489
+ return lines.slice(start + framesToRemove);
490
+ }
471
491
  class UnexpectedActionError extends Error {
472
492
  }
473
493
  class DuplicateCorrelationError extends Error {
@@ -496,17 +516,17 @@ class DeserializedError extends Error {
496
516
  class RuntimeError extends Error {
497
517
  static trimEndCallSites(err, takeUntilRegex) {
498
518
  // save original props
499
- const length = Error.stackTraceLimit;
519
+ const length = V8Error.stackTraceLimit;
500
520
  // eslint-disable-next-line no-underscore-dangle
501
- const _prepareStackTrace = Error.prepareStackTrace;
521
+ const _prepareStackTrace = V8Error.prepareStackTrace;
502
522
  // This will be called when we access the `stack` property
503
- Error.prepareStackTrace = (_, stack) => stack;
523
+ V8Error.prepareStackTrace = (_, stack) => stack;
504
524
  // in channel errors, the error was already serialized so we need to handle both string and CallSite[]
505
525
  const isString = typeof err.stack === 'string';
506
526
  const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
507
527
  // restore original props
508
- Error.prepareStackTrace = _prepareStackTrace;
509
- Error.stackTraceLimit = length;
528
+ V8Error.prepareStackTrace = _prepareStackTrace;
529
+ V8Error.stackTraceLimit = length;
510
530
  // stack is optional in non chromium contexts
511
531
  if (stack.length) {
512
532
  const newStack = [];
@@ -528,31 +548,47 @@ class RuntimeError extends Error {
528
548
  }
529
549
  }
530
550
  static getCallSite(callsToRemove = 0) {
531
- const length = Error.stackTraceLimit;
551
+ const length = V8Error.stackTraceLimit;
532
552
  const realCallsToRemove = callsToRemove + 1; // remove this call;
533
- Error.stackTraceLimit = length + realCallsToRemove;
553
+ const limit = typeof length === 'number' && Number.isFinite(length) ? length : 10;
534
554
  // eslint-disable-next-line no-underscore-dangle
535
- const _prepareStackTrace = Error.prepareStackTrace;
536
- // This will be called when we access the `stack` property
537
- Error.prepareStackTrace = (_, stack) => stack;
538
- // stack is optional in non chromium contexts
539
- const stack = new Error().stack?.slice(realCallsToRemove) ?? [];
540
- Error.prepareStackTrace = _prepareStackTrace;
541
- Error.stackTraceLimit = length;
542
- return stack;
555
+ const _prepareStackTrace = V8Error.prepareStackTrace;
556
+ try {
557
+ V8Error.stackTraceLimit = limit + realCallsToRemove;
558
+ // V8 only: accessing `.stack` invokes this and returns CallSite[]. Safari/Firefox ignore it.
559
+ V8Error.prepareStackTrace = (_, stack) => stack;
560
+ const rawStack = new Error().stack;
561
+ if (Array.isArray(rawStack)) {
562
+ return rawStack.slice(realCallsToRemove);
563
+ }
564
+ if (typeof rawStack === 'string' && rawStack.length > 0) {
565
+ return stackStringToFrames(rawStack, realCallsToRemove);
566
+ }
567
+ return [];
568
+ }
569
+ finally {
570
+ V8Error.prepareStackTrace = _prepareStackTrace;
571
+ V8Error.stackTraceLimit = length;
572
+ }
543
573
  }
544
574
  static prepareStackTrace(err, callSites) {
545
- if (typeof Error.prepareStackTrace === 'function') {
546
- return Error.prepareStackTrace(err, callSites);
547
- }
548
- // TODO: this is just a first iteration, we can make this "nicer" at some point
549
- // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
550
- let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
551
- stackTrace += callSites
552
- .map((line) => ` at ${line}`)
553
- // .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
554
- .join('\n');
555
- return stackTrace;
575
+ const header = `${err.name || 'Error'}: ${err.message || ''}`;
576
+ const frames = typeof callSites === 'string' ? stackStringToFrames(callSites, 0) : callSites;
577
+ if (!Array.isArray(frames) || frames.length === 0) {
578
+ return header;
579
+ }
580
+ if (isCallSiteArray(frames)) {
581
+ const prepare = V8Error.prepareStackTrace;
582
+ // Only V8 CallSite[] may be passed to a user-supplied Error.prepareStackTrace.
583
+ if (typeof prepare === 'function') {
584
+ return prepare(err, frames);
585
+ }
586
+ // TODO: this is just a first iteration, we can make this "nicer" at some point
587
+ // const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
588
+ return `${header}\n${frames.map((line) => ` at ${line}`).join('\n')}`;
589
+ }
590
+ // Native Safari/Firefox frames already include their engine's format (`func@file:line:col`).
591
+ return `${header}\n${frames.join('\n')}`;
556
592
  }
557
593
  /*
558
594
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/core",
3
- "version": "44.101.7",
3
+ "version": "44.101.8",
4
4
  "description": "The core renderer entry point of OpenFin",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "out/stub.js",