@openfin/remote-adapter 40.82.2 → 40.82.4
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.
- package/out/remote-adapter.js +208 -47
- package/package.json +2 -2
package/out/remote-adapter.js
CHANGED
|
@@ -4404,19 +4404,57 @@ transportErrors.NotImplementedError = NotImplementedError;
|
|
|
4404
4404
|
class NotSupportedError extends Error {
|
|
4405
4405
|
}
|
|
4406
4406
|
transportErrors.NotSupportedError = NotSupportedError;
|
|
4407
|
-
class
|
|
4407
|
+
class DeserializedError extends Error {
|
|
4408
4408
|
constructor(err) {
|
|
4409
4409
|
const { message, name, stack, ...rest } = err;
|
|
4410
4410
|
super(message);
|
|
4411
|
+
if ('cause' in err && err.cause) {
|
|
4412
|
+
this.cause = new DeserializedError(err.cause);
|
|
4413
|
+
}
|
|
4411
4414
|
this.name = name || 'Error';
|
|
4412
4415
|
this.stack = stack ?? this.toString();
|
|
4413
|
-
Object.keys(rest)
|
|
4416
|
+
Object.keys(rest)
|
|
4417
|
+
.filter((k) => k !== 'cause')
|
|
4418
|
+
.forEach((key) => {
|
|
4414
4419
|
this[key] = rest[key];
|
|
4415
4420
|
});
|
|
4416
4421
|
}
|
|
4417
4422
|
}
|
|
4418
4423
|
// For documentation of the error methods being used see here: https://v8.dev/docs/stack-trace-api
|
|
4419
4424
|
class RuntimeError extends Error {
|
|
4425
|
+
static trimEndCallSites(err, takeUntilRegex) {
|
|
4426
|
+
// save original props
|
|
4427
|
+
const length = Error.stackTraceLimit;
|
|
4428
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
4429
|
+
const _prepareStackTrace = Error.prepareStackTrace;
|
|
4430
|
+
// This will be called when we access the `stack` property
|
|
4431
|
+
Error.prepareStackTrace = (_, stack) => stack;
|
|
4432
|
+
// in channel errors, the error was already serialized so we need to handle both string and CallSite[]
|
|
4433
|
+
const isString = typeof err.stack === 'string';
|
|
4434
|
+
const stack = (isString ? err.stack?.split('\n') : err.stack) ?? [];
|
|
4435
|
+
// restore original props
|
|
4436
|
+
Error.prepareStackTrace = _prepareStackTrace;
|
|
4437
|
+
Error.stackTraceLimit = length;
|
|
4438
|
+
// stack is optional in non chromium contexts
|
|
4439
|
+
if (stack.length) {
|
|
4440
|
+
const newStack = [];
|
|
4441
|
+
// remove this call ONLY if it's not a string
|
|
4442
|
+
for (const line of isString ? stack : stack.slice(1)) {
|
|
4443
|
+
// inclusive take until
|
|
4444
|
+
newStack.push(line);
|
|
4445
|
+
if (takeUntilRegex.test(line.toString())) {
|
|
4446
|
+
break;
|
|
4447
|
+
}
|
|
4448
|
+
}
|
|
4449
|
+
if (isString) {
|
|
4450
|
+
// maintain it as a string
|
|
4451
|
+
err.stack = newStack.join('\n');
|
|
4452
|
+
}
|
|
4453
|
+
else {
|
|
4454
|
+
err.stack = RuntimeError.prepareStackTrace(err, newStack);
|
|
4455
|
+
}
|
|
4456
|
+
}
|
|
4457
|
+
}
|
|
4420
4458
|
static getCallSite(callsToRemove = 0) {
|
|
4421
4459
|
const length = Error.stackTraceLimit;
|
|
4422
4460
|
const realCallsToRemove = callsToRemove + 1; // remove this call;
|
|
@@ -4435,21 +4473,82 @@ class RuntimeError extends Error {
|
|
|
4435
4473
|
if (typeof Error.prepareStackTrace === 'function') {
|
|
4436
4474
|
return Error.prepareStackTrace(err, callSites);
|
|
4437
4475
|
}
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4476
|
+
// TODO: this is just a first iteration, we can make this "nicer" at some point
|
|
4477
|
+
// const EXCLUSIONS = ['IpcRenderer', 'Object.onMessage', 'Transport.onmessage', 'MessageReceiver.onmessage'];
|
|
4478
|
+
let stackTrace = `${err.name || 'Error'}: ${err.message || ''}\n`;
|
|
4479
|
+
stackTrace += callSites
|
|
4480
|
+
.map((line) => ` at ${line}`)
|
|
4481
|
+
// .filter((line) => !EXCLUSIONS.some((l) => line.includes(l)))
|
|
4482
|
+
.join('\n');
|
|
4483
|
+
return stackTrace;
|
|
4484
|
+
}
|
|
4485
|
+
/*
|
|
4486
|
+
|
|
4487
|
+
NON filtered stack trace example from MTP page channel-errors.tsx:
|
|
4488
|
+
|
|
4489
|
+
Caused by: ChannelError: Error from ch0
|
|
4490
|
+
at ChannelClient.dispatch (<anonymous>:3:119560)
|
|
4491
|
+
at eval (test-channel-errors.tsx:73:26)
|
|
4492
|
+
at ChannelProvider.processAction (<anonymous>:3:116748)
|
|
4493
|
+
at ChannelProvider.processAction (<anonymous>:3:149121)
|
|
4494
|
+
at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
|
|
4495
|
+
at MessageReceiver.onmessage (<anonymous>:3:131232)
|
|
4496
|
+
at Transport.onmessage (<anonymous>:3:282049)
|
|
4497
|
+
at IpcRenderer.<anonymous> (<anonymous>:3:275150)
|
|
4498
|
+
at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
|
|
4499
|
+
at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
|
|
4500
|
+
Caused by: ChannelError: Error from ch0
|
|
4501
|
+
at ChannelClient.dispatch (<anonymous>:3:119560)
|
|
4502
|
+
at eval (test-channel-errors.tsx:73:26)
|
|
4503
|
+
at ChannelProvider.processAction (<anonymous>:3:116748)
|
|
4504
|
+
at ChannelProvider.processAction (<anonymous>:3:149121)
|
|
4505
|
+
at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
|
|
4506
|
+
at MessageReceiver.onmessage (<anonymous>:3:131232)
|
|
4507
|
+
at Transport.onmessage (<anonymous>:3:282049)
|
|
4508
|
+
at IpcRenderer.<anonymous> (<anonymous>:3:275150)
|
|
4509
|
+
at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
|
|
4510
|
+
at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
|
|
4511
|
+
Caused by: ChannelError: Error from ch0
|
|
4512
|
+
at ChannelClient.dispatch (<anonymous>:3:119560)
|
|
4513
|
+
at eval (test-channel-errors.tsx:73:26)
|
|
4514
|
+
at ChannelProvider.processAction (<anonymous>:3:116748)
|
|
4515
|
+
at ChannelProvider.processAction (<anonymous>:3:149121)
|
|
4516
|
+
at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
|
|
4517
|
+
at MessageReceiver.onmessage (<anonymous>:3:131232)
|
|
4518
|
+
at Transport.onmessage (<anonymous>:3:282049)
|
|
4519
|
+
at IpcRenderer.<anonymous> (<anonymous>:3:275150)
|
|
4520
|
+
at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
|
|
4521
|
+
at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
|
|
4522
|
+
Caused by: ChannelError: Error from ch0
|
|
4523
|
+
at ChannelClient.dispatch (<anonymous>:3:119560)
|
|
4524
|
+
at eval (test-channel-errors.tsx:50:23)
|
|
4525
|
+
at ChannelProvider.processAction (<anonymous>:3:116748)
|
|
4526
|
+
at ChannelProvider.processAction (<anonymous>:3:149121)
|
|
4527
|
+
at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
|
|
4528
|
+
at MessageReceiver.onmessage (<anonymous>:3:131232)
|
|
4529
|
+
at Transport.onmessage (<anonymous>:3:282049)
|
|
4530
|
+
at IpcRenderer.<anonymous> (<anonymous>:3:275150)
|
|
4531
|
+
at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
|
|
4532
|
+
at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
|
|
4533
|
+
Caused by: Error: Error from ch0
|
|
4534
|
+
at eval (test-channel-errors.tsx:54:19)
|
|
4535
|
+
at ChannelProvider.processAction (<anonymous>:3:116748)
|
|
4536
|
+
at ChannelProvider.processAction (<anonymous>:3:149121)
|
|
4537
|
+
at MessageReceiver.processChannelMessage (<anonymous>:3:131909)
|
|
4538
|
+
at MessageReceiver.onmessage (<anonymous>:3:131232)
|
|
4539
|
+
at Transport.onmessage (<anonymous>:3:282049)
|
|
4540
|
+
at IpcRenderer.<anonymous> (<anonymous>:3:275150)
|
|
4541
|
+
at IpcRenderer.emit (node:electron/js2c/sandbox_bundle:2:34834)
|
|
4542
|
+
at Object.onMessage (node:electron/js2c/sandbox_bundle:2:51566)
|
|
4543
|
+
|
|
4544
|
+
|
|
4545
|
+
*/
|
|
4447
4546
|
constructor(payload, callSites) {
|
|
4448
4547
|
const { reason, error } = payload;
|
|
4449
4548
|
super(reason);
|
|
4450
|
-
this.name =
|
|
4549
|
+
this.name = this.constructor.name;
|
|
4451
4550
|
if (error?.stack) {
|
|
4452
|
-
this.cause = new
|
|
4551
|
+
this.cause = new DeserializedError(error);
|
|
4453
4552
|
}
|
|
4454
4553
|
if (callSites) {
|
|
4455
4554
|
this.stack = RuntimeError.prepareStackTrace(this, callSites);
|
|
@@ -9435,9 +9534,14 @@ function requireInstance () {
|
|
|
9435
9534
|
// don't expose
|
|
9436
9535
|
});
|
|
9437
9536
|
const layoutWindow = await this.getCurrentWindow();
|
|
9537
|
+
let layoutWindowIdentity = layoutWindow.identity;
|
|
9538
|
+
// TODO: CORE-1857 - when we tearout active layout or drag a view out of a window, the above identity includes the whole window info.
|
|
9539
|
+
if (layoutWindowIdentity.identity) {
|
|
9540
|
+
layoutWindowIdentity = layoutWindowIdentity.identity;
|
|
9541
|
+
}
|
|
9438
9542
|
try {
|
|
9439
9543
|
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,
|
|
9544
|
+
const client = await layout_entities_1.LayoutNode.newLayoutEntitiesClient(providerChannelClient, layout_constants_1.LAYOUT_CONTROLLER_ID, layoutWindowIdentity);
|
|
9441
9545
|
const layoutIdentity = await client.getLayoutIdentityForViewOrThrow(this.identity);
|
|
9442
9546
|
return this.fin.Platform.Layout.wrap(layoutIdentity);
|
|
9443
9547
|
}
|
|
@@ -9450,7 +9554,7 @@ function requireInstance () {
|
|
|
9450
9554
|
throw e;
|
|
9451
9555
|
}
|
|
9452
9556
|
// fallback logic for missing endpoint
|
|
9453
|
-
return this.fin.Platform.Layout.wrap(
|
|
9557
|
+
return this.fin.Platform.Layout.wrap(layoutWindowIdentity);
|
|
9454
9558
|
}
|
|
9455
9559
|
};
|
|
9456
9560
|
/**
|
|
@@ -10167,13 +10271,17 @@ var errors = {};
|
|
|
10167
10271
|
Object.defineProperty(errors, "__esModule", { value: true });
|
|
10168
10272
|
errors.errorToPOJO = void 0;
|
|
10169
10273
|
function errorToPOJO(error) {
|
|
10170
|
-
|
|
10274
|
+
const errorObj = {
|
|
10171
10275
|
stack: error.stack,
|
|
10172
10276
|
name: error.name,
|
|
10173
10277
|
message: error.message,
|
|
10174
10278
|
// support the case where stack is empty or missing
|
|
10175
10279
|
toString: () => error.stack || error.toString()
|
|
10176
10280
|
};
|
|
10281
|
+
if ('cause' in error) {
|
|
10282
|
+
errorObj.cause = errorToPOJO(error.cause);
|
|
10283
|
+
}
|
|
10284
|
+
return errorObj;
|
|
10177
10285
|
}
|
|
10178
10286
|
errors.errorToPOJO = errorToPOJO;
|
|
10179
10287
|
|
|
@@ -10193,10 +10301,10 @@ Object.defineProperty(transport, "__esModule", { value: true });
|
|
|
10193
10301
|
var Transport_1 = transport.Transport = void 0;
|
|
10194
10302
|
const events_1$5 = require$$0;
|
|
10195
10303
|
const wire_1 = wire;
|
|
10196
|
-
const transport_errors_1$
|
|
10304
|
+
const transport_errors_1$6 = transportErrors;
|
|
10197
10305
|
const eventAggregator_1 = eventAggregator;
|
|
10198
10306
|
const me_1$1 = me;
|
|
10199
|
-
const errors_1$
|
|
10307
|
+
const errors_1$2 = errors;
|
|
10200
10308
|
class Transport extends events_1$5.EventEmitter {
|
|
10201
10309
|
constructor(WireType, environment, config) {
|
|
10202
10310
|
super();
|
|
@@ -10278,7 +10386,7 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10278
10386
|
type: 'file-token'
|
|
10279
10387
|
}, true);
|
|
10280
10388
|
if (requestExtAuthRet.action !== 'external-authorization-response') {
|
|
10281
|
-
throw new transport_errors_1$
|
|
10389
|
+
throw new transport_errors_1$6.UnexpectedActionError(requestExtAuthRet.action);
|
|
10282
10390
|
}
|
|
10283
10391
|
await this.environment.writeToken(requestExtAuthRet.payload.file, requestExtAuthRet.payload.token);
|
|
10284
10392
|
return this.authorize(reqAuthPayload);
|
|
@@ -10286,10 +10394,10 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10286
10394
|
async authorize(reqAuthPayload) {
|
|
10287
10395
|
const requestAuthRet = await this.sendAction('request-authorization', reqAuthPayload, true);
|
|
10288
10396
|
if (requestAuthRet.action !== 'authorization-response') {
|
|
10289
|
-
throw new transport_errors_1$
|
|
10397
|
+
throw new transport_errors_1$6.UnexpectedActionError(requestAuthRet.action);
|
|
10290
10398
|
}
|
|
10291
10399
|
else if (requestAuthRet.payload.success !== true) {
|
|
10292
|
-
throw new transport_errors_1$
|
|
10400
|
+
throw new transport_errors_1$6.RuntimeError(requestAuthRet.payload);
|
|
10293
10401
|
}
|
|
10294
10402
|
}
|
|
10295
10403
|
sendAction(action, payload = {}, uncorrelated = false
|
|
@@ -10298,7 +10406,7 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10298
10406
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
10299
10407
|
let cancel = () => { };
|
|
10300
10408
|
// We want the callsite from the caller of this function, not from here.
|
|
10301
|
-
const callSites = transport_errors_1$
|
|
10409
|
+
const callSites = transport_errors_1$6.RuntimeError.getCallSite(1);
|
|
10302
10410
|
const messageId = this.environment.getNextMessageId();
|
|
10303
10411
|
const prom = new Promise((resolve, reject) => {
|
|
10304
10412
|
cancel = reject;
|
|
@@ -10319,7 +10427,7 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10319
10427
|
reject(payloadOrMessage);
|
|
10320
10428
|
}
|
|
10321
10429
|
else {
|
|
10322
|
-
reject(new transport_errors_1$
|
|
10430
|
+
reject(new transport_errors_1$6.RuntimeError(payloadOrMessage, callSites));
|
|
10323
10431
|
}
|
|
10324
10432
|
}
|
|
10325
10433
|
ferryAction(origData) {
|
|
@@ -10346,7 +10454,7 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10346
10454
|
else if (this.wireListeners.has(id)) {
|
|
10347
10455
|
handleNack({
|
|
10348
10456
|
reason: 'Duplicate handler id',
|
|
10349
|
-
error: (0, errors_1$
|
|
10457
|
+
error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.DuplicateCorrelationError(String(id)))
|
|
10350
10458
|
});
|
|
10351
10459
|
}
|
|
10352
10460
|
else {
|
|
@@ -10378,7 +10486,7 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10378
10486
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
10379
10487
|
const { resolve, handleNack } = this.wireListeners.get(id);
|
|
10380
10488
|
if (data.action !== 'ack') {
|
|
10381
|
-
handleNack({ reason: 'Did not receive ack action', error: (0, errors_1$
|
|
10489
|
+
handleNack({ reason: 'Did not receive ack action', error: (0, errors_1$2.errorToPOJO)(new transport_errors_1$6.NoAckError(data.action)) });
|
|
10382
10490
|
}
|
|
10383
10491
|
else if (!('payload' in data)) {
|
|
10384
10492
|
// 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 +10496,10 @@ class Transport extends events_1$5.EventEmitter {
|
|
|
10388
10496
|
}
|
|
10389
10497
|
else {
|
|
10390
10498
|
console.warn('Received invalid response from core', data);
|
|
10391
|
-
handleNack({
|
|
10499
|
+
handleNack({
|
|
10500
|
+
reason: 'invalid response shape',
|
|
10501
|
+
error: (0, errors_1$2.errorToPOJO)(new Error('Invalid response shape'))
|
|
10502
|
+
});
|
|
10392
10503
|
}
|
|
10393
10504
|
}
|
|
10394
10505
|
else if (!data.payload.success) {
|
|
@@ -10409,7 +10520,7 @@ var websocket = {};
|
|
|
10409
10520
|
|
|
10410
10521
|
Object.defineProperty(websocket, "__esModule", { value: true });
|
|
10411
10522
|
const events_1$4 = require$$0;
|
|
10412
|
-
const transport_errors_1$
|
|
10523
|
+
const transport_errors_1$5 = transportErrors;
|
|
10413
10524
|
const messageReceiver_1 = bridge.messageReceiver;
|
|
10414
10525
|
/* `READY_STATE` is an instance var set by `constructor` to reference the `WebTransportSocket.READY_STATE` enum.
|
|
10415
10526
|
* This is syntactic sugar that makes the enum accessible through the `wire` property of the various `fin` singletons.
|
|
@@ -10443,14 +10554,14 @@ class WebSocketTransport extends events_1$4.EventEmitter {
|
|
|
10443
10554
|
});
|
|
10444
10555
|
};
|
|
10445
10556
|
this.connectSync = () => {
|
|
10446
|
-
throw new transport_errors_1$
|
|
10557
|
+
throw new transport_errors_1$5.NotImplementedError('Not Implemented');
|
|
10447
10558
|
};
|
|
10448
10559
|
this.onmessage = onmessage;
|
|
10449
10560
|
}
|
|
10450
10561
|
send(data, flags) {
|
|
10451
10562
|
return new Promise((resolve, reject) => {
|
|
10452
10563
|
if (!(0, messageReceiver_1.isOpen)(this.wire)) {
|
|
10453
|
-
reject(new transport_errors_1$
|
|
10564
|
+
reject(new transport_errors_1$5.DisconnectedError(READY_STATE[this.wire.readyState]));
|
|
10454
10565
|
}
|
|
10455
10566
|
else {
|
|
10456
10567
|
// @ts-expect-error
|
|
@@ -10483,7 +10594,7 @@ var system = {};
|
|
|
10483
10594
|
Object.defineProperty(system, "__esModule", { value: true });
|
|
10484
10595
|
system.System = void 0;
|
|
10485
10596
|
const base_1$d = base;
|
|
10486
|
-
const transport_errors_1 = transportErrors;
|
|
10597
|
+
const transport_errors_1$4 = transportErrors;
|
|
10487
10598
|
const window_1 = requireWindow();
|
|
10488
10599
|
const events_1$3 = require$$0;
|
|
10489
10600
|
/**
|
|
@@ -10969,7 +11080,8 @@ class System extends base_1$d.EmitterBase {
|
|
|
10969
11080
|
return this.wire.sendAction('get-rvm-info').then(({ payload }) => payload.data);
|
|
10970
11081
|
}
|
|
10971
11082
|
/**
|
|
10972
|
-
* Retrieves system information.
|
|
11083
|
+
* Retrieves general system information. If you need more detailed information about the
|
|
11084
|
+
* OS and the currently logged in user, use `fin.System.getOSInfo()` instead.
|
|
10973
11085
|
*
|
|
10974
11086
|
* @example
|
|
10975
11087
|
* ```js
|
|
@@ -10979,6 +11091,17 @@ class System extends base_1$d.EmitterBase {
|
|
|
10979
11091
|
getHostSpecs() {
|
|
10980
11092
|
return this.wire.sendAction('get-host-specs').then(({ payload }) => payload.data);
|
|
10981
11093
|
}
|
|
11094
|
+
/**
|
|
11095
|
+
* Retrieves information about the OS and the currently logged in user.
|
|
11096
|
+
*
|
|
11097
|
+
* @example
|
|
11098
|
+
* ```js
|
|
11099
|
+
* fin.System.getOSInfo().then(specs => console.log(specs)).catch(err => console.log(err));
|
|
11100
|
+
* ```
|
|
11101
|
+
*/
|
|
11102
|
+
getOSInfo() {
|
|
11103
|
+
return this.wire.sendAction('get-os-info').then(({ payload }) => payload.data);
|
|
11104
|
+
}
|
|
10982
11105
|
/**
|
|
10983
11106
|
* Runs an executable or batch file. A path to the file must be included in options.
|
|
10984
11107
|
* <br> A uuid may be optionally provided. If not provided, OpenFin will create a uuid for the new process.
|
|
@@ -11561,9 +11684,9 @@ class System extends base_1$d.EmitterBase {
|
|
|
11561
11684
|
});
|
|
11562
11685
|
// node.js environment not supported
|
|
11563
11686
|
if (this.wire.environment.type !== 'openfin') {
|
|
11564
|
-
throw new transport_errors_1.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
|
|
11687
|
+
throw new transport_errors_1$4.NotSupportedError('downloadAsset only supported in an OpenFin Render process');
|
|
11565
11688
|
}
|
|
11566
|
-
const callSite = transport_errors_1.RuntimeError.getCallSite();
|
|
11689
|
+
const callSite = transport_errors_1$4.RuntimeError.getCallSite();
|
|
11567
11690
|
const downloadId = this.wire.environment.getNextMessageId().toString();
|
|
11568
11691
|
const dlProgressKey = `asset-download-progress-${downloadId}`;
|
|
11569
11692
|
const dlErrorKey = `asset-download-error-${downloadId}`;
|
|
@@ -11583,7 +11706,7 @@ class System extends base_1$d.EmitterBase {
|
|
|
11583
11706
|
const dlError = (payload) => {
|
|
11584
11707
|
cleanListeners();
|
|
11585
11708
|
const { reason, err: error } = payload;
|
|
11586
|
-
reject(new transport_errors_1.RuntimeError({ reason, error }, callSite));
|
|
11709
|
+
reject(new transport_errors_1$4.RuntimeError({ reason, error }, callSite));
|
|
11587
11710
|
};
|
|
11588
11711
|
const dlComplete = () => {
|
|
11589
11712
|
cleanListeners();
|
|
@@ -11634,11 +11757,11 @@ class System extends base_1$d.EmitterBase {
|
|
|
11634
11757
|
* ```
|
|
11635
11758
|
*/
|
|
11636
11759
|
downloadRuntime(options, progressListener) {
|
|
11637
|
-
const callsites = transport_errors_1.RuntimeError.getCallSite();
|
|
11760
|
+
const callsites = transport_errors_1$4.RuntimeError.getCallSite();
|
|
11638
11761
|
return new Promise((resolve, reject) => {
|
|
11639
11762
|
// node.js environment not supported
|
|
11640
11763
|
if (this.wire.environment.type !== 'openfin') {
|
|
11641
|
-
reject(new transport_errors_1.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
|
|
11764
|
+
reject(new transport_errors_1$4.NotSupportedError('downloadRuntime only supported in an OpenFin Render process'));
|
|
11642
11765
|
return;
|
|
11643
11766
|
}
|
|
11644
11767
|
const downloadId = this.wire.environment.getNextMessageId().toString();
|
|
@@ -11660,7 +11783,7 @@ class System extends base_1$d.EmitterBase {
|
|
|
11660
11783
|
const dlError = (payload) => {
|
|
11661
11784
|
cleanListeners();
|
|
11662
11785
|
const { reason, err: error } = payload;
|
|
11663
|
-
reject(new transport_errors_1.RuntimeError({ reason, error }, callsites));
|
|
11786
|
+
reject(new transport_errors_1$4.RuntimeError({ reason, error }, callsites));
|
|
11664
11787
|
};
|
|
11665
11788
|
const dlComplete = () => {
|
|
11666
11789
|
cleanListeners();
|
|
@@ -12395,6 +12518,7 @@ var channel = {};
|
|
|
12395
12518
|
|
|
12396
12519
|
Object.defineProperty(channel, "__esModule", { value: true });
|
|
12397
12520
|
channel.ChannelBase = channel.ProtectedItems = void 0;
|
|
12521
|
+
const transport_errors_1$3 = transportErrors;
|
|
12398
12522
|
const resultOrPayload = (func) => async (topic, payload, senderIdentity) => {
|
|
12399
12523
|
const res = await func(topic, payload, senderIdentity);
|
|
12400
12524
|
return res === undefined ? payload : res;
|
|
@@ -12427,6 +12551,7 @@ class ChannelBase {
|
|
|
12427
12551
|
return this.postAction ? await this.postAction(topic, actionProcessed, senderIdentity) : actionProcessed;
|
|
12428
12552
|
}
|
|
12429
12553
|
catch (e) {
|
|
12554
|
+
transport_errors_1$3.RuntimeError.trimEndCallSites(e, /Channel.*processAction/);
|
|
12430
12555
|
if (this.errorMiddleware) {
|
|
12431
12556
|
return this.errorMiddleware(topic, e, senderIdentity);
|
|
12432
12557
|
}
|
|
@@ -12728,6 +12853,25 @@ class ChannelBase {
|
|
|
12728
12853
|
}
|
|
12729
12854
|
channel.ChannelBase = ChannelBase;
|
|
12730
12855
|
|
|
12856
|
+
var channelError = {};
|
|
12857
|
+
|
|
12858
|
+
Object.defineProperty(channelError, "__esModule", { value: true });
|
|
12859
|
+
channelError.ChannelError = void 0;
|
|
12860
|
+
const transport_errors_1$2 = transportErrors;
|
|
12861
|
+
class ChannelError extends Error {
|
|
12862
|
+
constructor(originalError, action, dispatchPayload, callsites) {
|
|
12863
|
+
super(originalError.message);
|
|
12864
|
+
this.action = action;
|
|
12865
|
+
this.dispatchPayload = dispatchPayload;
|
|
12866
|
+
this.name = this.constructor.name;
|
|
12867
|
+
if ('cause' in originalError && originalError.cause instanceof Error) {
|
|
12868
|
+
this.cause = originalError.cause;
|
|
12869
|
+
}
|
|
12870
|
+
this.stack = transport_errors_1$2.RuntimeError.prepareStackTrace(this, callsites);
|
|
12871
|
+
}
|
|
12872
|
+
}
|
|
12873
|
+
channelError.ChannelError = ChannelError;
|
|
12874
|
+
|
|
12731
12875
|
var __classPrivateFieldGet$a = (commonjsGlobal && commonjsGlobal.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12732
12876
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
12733
12877
|
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");
|
|
@@ -12742,7 +12886,9 @@ var __classPrivateFieldSet$8 = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
12742
12886
|
var _ChannelClient_protectedObj, _ChannelClient_strategy, _ChannelClient_close;
|
|
12743
12887
|
Object.defineProperty(client, "__esModule", { value: true });
|
|
12744
12888
|
client.ChannelClient = void 0;
|
|
12889
|
+
const transport_errors_1$1 = transportErrors;
|
|
12745
12890
|
const channel_1$1 = channel;
|
|
12891
|
+
const channel_error_1$1 = channelError;
|
|
12746
12892
|
const channelClientsByEndpointId = new Map();
|
|
12747
12893
|
/**
|
|
12748
12894
|
* Instance created to enable use of a channel as a client. Allows for communication with the
|
|
@@ -12844,7 +12990,10 @@ class ChannelClient extends channel_1$1.ChannelBase {
|
|
|
12844
12990
|
*/
|
|
12845
12991
|
async dispatch(action, payload) {
|
|
12846
12992
|
if (__classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").isEndpointConnected(this.providerIdentity.channelId)) {
|
|
12847
|
-
|
|
12993
|
+
const callSites = transport_errors_1$1.RuntimeError.getCallSite();
|
|
12994
|
+
return __classPrivateFieldGet$a(this, _ChannelClient_strategy, "f").send(this.providerIdentity.channelId, action, payload).catch((e) => {
|
|
12995
|
+
throw new channel_error_1$1.ChannelError(e, action, payload, callSites);
|
|
12996
|
+
});
|
|
12848
12997
|
}
|
|
12849
12998
|
throw new Error('The client you are trying to dispatch from is disconnected from the target provider.');
|
|
12850
12999
|
}
|
|
@@ -12959,7 +13108,7 @@ class ClassicStrategy {
|
|
|
12959
13108
|
_ClassicStrategy_endpointIdentityMap.set(this, new Map());
|
|
12960
13109
|
// Store a set of cancellable promises to be able to reject them when client
|
|
12961
13110
|
// connection problems occur
|
|
12962
|
-
_ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map);
|
|
13111
|
+
_ClassicStrategy_pendingMessagesByEndpointId.set(this, new Map());
|
|
12963
13112
|
this.send = async (endpointId, action, payload) => {
|
|
12964
13113
|
const to = __classPrivateFieldGet$9(this, _ClassicStrategy_endpointIdentityMap, "f").get(endpointId);
|
|
12965
13114
|
if (!to) {
|
|
@@ -12973,17 +13122,21 @@ class ClassicStrategy {
|
|
|
12973
13122
|
}
|
|
12974
13123
|
delete cleanId.isLocalEndpointId;
|
|
12975
13124
|
// grab the promise before awaiting it to save in our pending messages map
|
|
12976
|
-
const p = __classPrivateFieldGet$9(this, _ClassicStrategy_wire, "f")
|
|
12977
|
-
.sendAction('send-channel-message', {
|
|
13125
|
+
const p = __classPrivateFieldGet$9(this, _ClassicStrategy_wire, "f").sendAction('send-channel-message', {
|
|
12978
13126
|
...cleanId,
|
|
12979
13127
|
providerIdentity: this.providerIdentity,
|
|
12980
13128
|
action,
|
|
12981
13129
|
payload
|
|
12982
13130
|
});
|
|
12983
13131
|
__classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.add(p);
|
|
12984
|
-
const raw = await p
|
|
13132
|
+
const raw = await p
|
|
13133
|
+
.catch((error) => {
|
|
13134
|
+
if ('cause' in error) {
|
|
13135
|
+
throw error;
|
|
13136
|
+
}
|
|
12985
13137
|
throw new Error(error.message);
|
|
12986
|
-
})
|
|
13138
|
+
})
|
|
13139
|
+
.finally(() => {
|
|
12987
13140
|
// clean up the pending promise
|
|
12988
13141
|
__classPrivateFieldGet$9(this, _ClassicStrategy_pendingMessagesByEndpointId, "f").get(endpointId)?.delete(p);
|
|
12989
13142
|
});
|
|
@@ -13047,7 +13200,7 @@ var _RTCEndpoint_processAction, _RTCEndpoint_disconnectListener;
|
|
|
13047
13200
|
Object.defineProperty(endpoint, "__esModule", { value: true });
|
|
13048
13201
|
endpoint.RTCEndpoint = void 0;
|
|
13049
13202
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
13050
|
-
const errors_1 = errors;
|
|
13203
|
+
const errors_1$1 = errors;
|
|
13051
13204
|
/*
|
|
13052
13205
|
This handles sending RTC messages between RTC connections over the request and response data channels.
|
|
13053
13206
|
*/
|
|
@@ -13136,7 +13289,7 @@ class RTCEndpoint {
|
|
|
13136
13289
|
if (this.rtc.channels.response.readyState === 'open') {
|
|
13137
13290
|
this.rtc.channels.response.send(JSON.stringify({
|
|
13138
13291
|
messageId,
|
|
13139
|
-
error: (0, errors_1.errorToPOJO)(error),
|
|
13292
|
+
error: (0, errors_1$1.errorToPOJO)(error),
|
|
13140
13293
|
success: false
|
|
13141
13294
|
}));
|
|
13142
13295
|
}
|
|
@@ -13452,8 +13605,10 @@ var __classPrivateFieldSet$4 = (commonjsGlobal && commonjsGlobal.__classPrivateF
|
|
|
13452
13605
|
var _ChannelProvider_connections, _ChannelProvider_protectedObj, _ChannelProvider_strategy, _ChannelProvider_removeEndpoint, _ChannelProvider_close;
|
|
13453
13606
|
Object.defineProperty(provider, "__esModule", { value: true });
|
|
13454
13607
|
provider.ChannelProvider = void 0;
|
|
13455
|
-
const
|
|
13608
|
+
const transport_errors_1 = transportErrors;
|
|
13456
13609
|
const runtimeVersioning_1 = runtimeVersioning;
|
|
13610
|
+
const channel_1 = channel;
|
|
13611
|
+
const channel_error_1 = channelError;
|
|
13457
13612
|
/**
|
|
13458
13613
|
* Instance created to enable use of a channel as a provider. Allows for communication with the {@link ChannelClient ChannelClients} by invoking an action on
|
|
13459
13614
|
* a single client via {@link ChannelProvider#dispatch dispatch} or all clients via {@link ChannelProvider#publish publish}
|
|
@@ -13570,7 +13725,10 @@ class ChannelProvider extends channel_1.ChannelBase {
|
|
|
13570
13725
|
dispatch(to, action, payload) {
|
|
13571
13726
|
const endpointId = to.endpointId ?? this.getEndpointIdForOpenFinId(to, action);
|
|
13572
13727
|
if (endpointId && __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").isEndpointConnected(endpointId)) {
|
|
13573
|
-
|
|
13728
|
+
const callSites = transport_errors_1.RuntimeError.getCallSite();
|
|
13729
|
+
return __classPrivateFieldGet$6(this, _ChannelProvider_strategy, "f").send(endpointId, action, payload).catch((e) => {
|
|
13730
|
+
throw new channel_error_1.ChannelError(e, action, payload, callSites);
|
|
13731
|
+
});
|
|
13574
13732
|
}
|
|
13575
13733
|
return Promise.reject(new Error(`Client connection with identity uuid: ${to.uuid} / name: ${to.name} / endpointId: ${endpointId} no longer connected.`));
|
|
13576
13734
|
}
|
|
@@ -13783,6 +13941,7 @@ Object.defineProperty(messageReceiver, "__esModule", { value: true });
|
|
|
13783
13941
|
messageReceiver.MessageReceiver = void 0;
|
|
13784
13942
|
const client_1$1 = client;
|
|
13785
13943
|
const base_1$b = base;
|
|
13944
|
+
const errors_1 = errors;
|
|
13786
13945
|
/*
|
|
13787
13946
|
This is a singleton (per fin object) tasked with routing messages coming off the ipc to the correct endpoint.
|
|
13788
13947
|
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.
|
|
@@ -13811,6 +13970,7 @@ class MessageReceiver extends base_1$b.Base {
|
|
|
13811
13970
|
if (!handler) {
|
|
13812
13971
|
ackToSender.payload.success = false;
|
|
13813
13972
|
ackToSender.payload.reason = `Client connection with identity uuid: ${this.wire.me.uuid} / name: ${this.wire.me.name} / endpointId: ${key} no longer connected.`;
|
|
13973
|
+
ackToSender.payload.error = (0, errors_1.errorToPOJO)(new Error(ackToSender.payload.reason));
|
|
13814
13974
|
return this.wire.sendRaw(ackToSender);
|
|
13815
13975
|
}
|
|
13816
13976
|
try {
|
|
@@ -13822,6 +13982,7 @@ class MessageReceiver extends base_1$b.Base {
|
|
|
13822
13982
|
catch (e) {
|
|
13823
13983
|
ackToSender.payload.success = false;
|
|
13824
13984
|
ackToSender.payload.reason = e.message;
|
|
13985
|
+
ackToSender.payload.error = (0, errors_1.errorToPOJO)(e);
|
|
13825
13986
|
return this.wire.sendRaw(ackToSender);
|
|
13826
13987
|
}
|
|
13827
13988
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfin/remote-adapter",
|
|
3
|
-
"version": "40.82.
|
|
3
|
+
"version": "40.82.4",
|
|
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.
|
|
22
|
+
"@openfin/core": "40.82.4"
|
|
23
23
|
}
|
|
24
24
|
}
|