@openfin/remote-adapter 45.100.94 → 45.100.95
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 +144 -68
- package/package.json +2 -2
package/out/remote-adapter.js
CHANGED
|
@@ -7,13 +7,13 @@ var crypto = require('crypto');
|
|
|
7
7
|
var backchannel = require('./backchannel.js');
|
|
8
8
|
var constants = require('./constants.js');
|
|
9
9
|
|
|
10
|
-
var __classPrivateFieldSet$
|
|
10
|
+
var __classPrivateFieldSet$l = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
11
11
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
12
12
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
13
13
|
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");
|
|
14
14
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
15
15
|
};
|
|
16
|
-
var __classPrivateFieldGet$
|
|
16
|
+
var __classPrivateFieldGet$m = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
17
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
18
18
|
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");
|
|
19
19
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
@@ -94,9 +94,9 @@ class EmitterBase extends Base {
|
|
|
94
94
|
this.emit = (eventType, payload, ...args) => {
|
|
95
95
|
return this.hasEmitter() ? this.getOrCreateEmitter().emit(eventType, payload, ...args) : false;
|
|
96
96
|
};
|
|
97
|
-
this.hasEmitter = () => this.wire.eventAggregator.has(__classPrivateFieldGet$
|
|
97
|
+
this.hasEmitter = () => this.wire.eventAggregator.has(__classPrivateFieldGet$m(this, _EmitterBase_emitterAccessor, "f"));
|
|
98
98
|
this.getOrCreateEmitter = () => {
|
|
99
|
-
return this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$
|
|
99
|
+
return this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$m(this, _EmitterBase_emitterAccessor, "f"));
|
|
100
100
|
};
|
|
101
101
|
this.listeners = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(type) : [];
|
|
102
102
|
this.listenerCount = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listenerCount(type) : 0;
|
|
@@ -134,8 +134,8 @@ class EmitterBase extends Base {
|
|
|
134
134
|
// This will only be reached if unsubscribe from event that does not exist but do not want to error here
|
|
135
135
|
return Promise.resolve();
|
|
136
136
|
};
|
|
137
|
-
__classPrivateFieldSet$
|
|
138
|
-
__classPrivateFieldSet$
|
|
137
|
+
__classPrivateFieldSet$l(this, _EmitterBase_emitterAccessor, [topic, ...additionalAccessors], "f");
|
|
138
|
+
__classPrivateFieldSet$l(this, _EmitterBase_deregisterOnceListeners, new WeakMap(), "f");
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* Adds a listener to the end of the listeners array for the specified event.
|
|
@@ -163,7 +163,7 @@ class EmitterBase extends Base {
|
|
|
163
163
|
*/
|
|
164
164
|
async once(eventType, listener, options) {
|
|
165
165
|
const deregister = () => this.deregisterEventListener(eventType);
|
|
166
|
-
__classPrivateFieldGet$
|
|
166
|
+
__classPrivateFieldGet$m(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
|
|
167
167
|
await this.registerEventListener(eventType, options, (emitter) => {
|
|
168
168
|
emitter.once(eventType, deregister);
|
|
169
169
|
emitter.once(eventType, listener);
|
|
@@ -194,7 +194,7 @@ class EmitterBase extends Base {
|
|
|
194
194
|
*/
|
|
195
195
|
async prependOnceListener(eventType, listener, options) {
|
|
196
196
|
const deregister = () => this.deregisterEventListener(eventType);
|
|
197
|
-
__classPrivateFieldGet$
|
|
197
|
+
__classPrivateFieldGet$m(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
|
|
198
198
|
await this.registerEventListener(eventType, options, (emitter) => {
|
|
199
199
|
emitter.prependOnceListener(eventType, listener);
|
|
200
200
|
emitter.once(eventType, deregister);
|
|
@@ -213,7 +213,7 @@ class EmitterBase extends Base {
|
|
|
213
213
|
const emitter = await this.deregisterEventListener(eventType, options);
|
|
214
214
|
if (emitter) {
|
|
215
215
|
emitter.removeListener(eventType, listener);
|
|
216
|
-
const deregister = __classPrivateFieldGet$
|
|
216
|
+
const deregister = __classPrivateFieldGet$m(this, _EmitterBase_deregisterOnceListeners, "f").get(listener);
|
|
217
217
|
if (deregister) {
|
|
218
218
|
emitter.removeListener(eventType, deregister);
|
|
219
219
|
}
|
|
@@ -259,7 +259,7 @@ class EmitterBase extends Base {
|
|
|
259
259
|
deleteEmitterIfNothingRegistered(emitter) {
|
|
260
260
|
// TODO: maybe emitterMap should clean up itself..
|
|
261
261
|
if (emitter.eventNames().length === 0) {
|
|
262
|
-
this.wire.eventAggregator.delete(__classPrivateFieldGet$
|
|
262
|
+
this.wire.eventAggregator.delete(__classPrivateFieldGet$m(this, _EmitterBase_emitterAccessor, "f"));
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
265
|
}
|
|
@@ -758,13 +758,13 @@ class AsyncRetryableLazy {
|
|
|
758
758
|
}
|
|
759
759
|
}
|
|
760
760
|
|
|
761
|
-
var __classPrivateFieldSet$
|
|
761
|
+
var __classPrivateFieldSet$k = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
762
762
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
763
763
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
764
764
|
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");
|
|
765
765
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
766
766
|
};
|
|
767
|
-
var __classPrivateFieldGet$
|
|
767
|
+
var __classPrivateFieldGet$l = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
768
768
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
769
769
|
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");
|
|
770
770
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
@@ -944,12 +944,12 @@ class InteropBroker extends Base {
|
|
|
944
944
|
_InteropBroker_contextGroups.set(this, void 0);
|
|
945
945
|
_InteropBroker_providerPromise.set(this, void 0);
|
|
946
946
|
this.getProvider = () => {
|
|
947
|
-
return __classPrivateFieldGet$
|
|
947
|
+
return __classPrivateFieldGet$l(this, _InteropBroker_providerPromise, "f").getValue();
|
|
948
948
|
};
|
|
949
949
|
this.interopClients = new Map();
|
|
950
950
|
this.contextGroupsById = new Map();
|
|
951
|
-
__classPrivateFieldSet$
|
|
952
|
-
__classPrivateFieldSet$
|
|
951
|
+
__classPrivateFieldSet$k(this, _InteropBroker_contextGroups, options.contextGroups ?? [...defaultContextGroups], "f");
|
|
952
|
+
__classPrivateFieldSet$k(this, _InteropBroker_fdc3Info, options.fdc3Info, "f");
|
|
953
953
|
if (options?.logging) {
|
|
954
954
|
this.logging = options.logging;
|
|
955
955
|
}
|
|
@@ -957,7 +957,7 @@ class InteropBroker extends Base {
|
|
|
957
957
|
this.lastContextMap = new Map();
|
|
958
958
|
this.sessionContextGroupMap = new Map();
|
|
959
959
|
this.privateChannelProviderMap = new Map();
|
|
960
|
-
__classPrivateFieldSet$
|
|
960
|
+
__classPrivateFieldSet$k(this, _InteropBroker_providerPromise, new Lazy(createProvider), "f");
|
|
961
961
|
this.setContextGroupMap();
|
|
962
962
|
this.setupChannelProvider();
|
|
963
963
|
}
|
|
@@ -1240,7 +1240,7 @@ class InteropBroker extends Base {
|
|
|
1240
1240
|
// don't expose, analytics-only call
|
|
1241
1241
|
});
|
|
1242
1242
|
// Create copy for immutability
|
|
1243
|
-
return __classPrivateFieldGet$
|
|
1243
|
+
return __classPrivateFieldGet$l(this, _InteropBroker_contextGroups, "f").map((contextGroup) => {
|
|
1244
1244
|
return { ...contextGroup };
|
|
1245
1245
|
});
|
|
1246
1246
|
}
|
|
@@ -1651,7 +1651,7 @@ class InteropBroker extends Base {
|
|
|
1651
1651
|
const { fdc3Version } = payload;
|
|
1652
1652
|
return {
|
|
1653
1653
|
fdc3Version,
|
|
1654
|
-
...__classPrivateFieldGet$
|
|
1654
|
+
...__classPrivateFieldGet$l(this, _InteropBroker_fdc3Info, "f"),
|
|
1655
1655
|
optionalFeatures: {
|
|
1656
1656
|
OriginatingAppMetadata: false,
|
|
1657
1657
|
UserChannelMembershipAPIs: true
|
|
@@ -7078,13 +7078,13 @@ function errorToPOJO(error) {
|
|
|
7078
7078
|
return errorObj;
|
|
7079
7079
|
}
|
|
7080
7080
|
|
|
7081
|
-
var __classPrivateFieldSet$
|
|
7081
|
+
var __classPrivateFieldSet$j = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7082
7082
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
7083
7083
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
7084
7084
|
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");
|
|
7085
7085
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7086
7086
|
};
|
|
7087
|
-
var __classPrivateFieldGet$
|
|
7087
|
+
var __classPrivateFieldGet$k = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
7088
7088
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
7089
7089
|
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");
|
|
7090
7090
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
@@ -7105,27 +7105,27 @@ class Transport extends events.EventEmitter {
|
|
|
7105
7105
|
// Typing as unknown to avoid circular dependency, should not be used directly.
|
|
7106
7106
|
_Transport_fin.set(this, void 0);
|
|
7107
7107
|
this.connectSync = () => {
|
|
7108
|
-
const wire = __classPrivateFieldGet$
|
|
7108
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7109
7109
|
wire.connectSync();
|
|
7110
7110
|
};
|
|
7111
7111
|
// This function is only used in our tests.
|
|
7112
7112
|
this.getPort = () => {
|
|
7113
|
-
const wire = __classPrivateFieldGet$
|
|
7113
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7114
7114
|
return wire.getPort();
|
|
7115
7115
|
};
|
|
7116
|
-
__classPrivateFieldSet$
|
|
7116
|
+
__classPrivateFieldSet$j(this, _Transport_wire, factory(this.onmessage.bind(this)), "f");
|
|
7117
7117
|
this.environment = environment;
|
|
7118
|
-
__classPrivateFieldSet$
|
|
7119
|
-
this.sendRaw = __classPrivateFieldGet$
|
|
7118
|
+
__classPrivateFieldSet$j(this, _Transport_analyticsEnabled, config.apiDiagnostics !== false, "f");
|
|
7119
|
+
this.sendRaw = __classPrivateFieldGet$k(this, _Transport_wire, "f").send.bind(__classPrivateFieldGet$k(this, _Transport_wire, "f"));
|
|
7120
7120
|
this.registerMessageHandler(this.handleMessage.bind(this));
|
|
7121
|
-
__classPrivateFieldGet$
|
|
7121
|
+
__classPrivateFieldGet$k(this, _Transport_wire, "f").on('disconnected', () => {
|
|
7122
7122
|
for (const [, { handleNack }] of this.wireListeners) {
|
|
7123
7123
|
handleNack({ reason: 'Remote connection has closed' });
|
|
7124
7124
|
}
|
|
7125
7125
|
this.wireListeners.clear();
|
|
7126
|
-
clearTimeout(__classPrivateFieldGet$
|
|
7127
|
-
__classPrivateFieldSet$
|
|
7128
|
-
__classPrivateFieldGet$
|
|
7126
|
+
clearTimeout(__classPrivateFieldGet$k(this, _Transport_analyticsFlushTimeout, "f"));
|
|
7127
|
+
__classPrivateFieldSet$j(this, _Transport_analyticsFlushTimeout, undefined, "f");
|
|
7128
|
+
__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f").clear();
|
|
7129
7129
|
this.emit('disconnected');
|
|
7130
7130
|
});
|
|
7131
7131
|
const { uuid, name } = config;
|
|
@@ -7133,36 +7133,36 @@ class Transport extends events.EventEmitter {
|
|
|
7133
7133
|
this.me = getBaseMe(entityType, uuid, name);
|
|
7134
7134
|
}
|
|
7135
7135
|
getFin() {
|
|
7136
|
-
if (!__classPrivateFieldGet$
|
|
7136
|
+
if (!__classPrivateFieldGet$k(this, _Transport_fin, "f")) {
|
|
7137
7137
|
throw new Error('No Fin object registered for this transport');
|
|
7138
7138
|
}
|
|
7139
|
-
return __classPrivateFieldGet$
|
|
7139
|
+
return __classPrivateFieldGet$k(this, _Transport_fin, "f");
|
|
7140
7140
|
}
|
|
7141
7141
|
registerFin(_fin) {
|
|
7142
|
-
if (__classPrivateFieldGet$
|
|
7142
|
+
if (__classPrivateFieldGet$k(this, _Transport_fin, "f")) {
|
|
7143
7143
|
throw new Error('Fin object has already been registered for this transport');
|
|
7144
7144
|
}
|
|
7145
|
-
__classPrivateFieldSet$
|
|
7145
|
+
__classPrivateFieldSet$j(this, _Transport_fin, _fin, "f");
|
|
7146
7146
|
}
|
|
7147
7147
|
recordAnalytic(action) {
|
|
7148
|
-
if (!__classPrivateFieldGet$
|
|
7148
|
+
if (!__classPrivateFieldGet$k(this, _Transport_analyticsEnabled, "f"))
|
|
7149
7149
|
return;
|
|
7150
|
-
__classPrivateFieldGet$
|
|
7151
|
-
if (__classPrivateFieldGet$
|
|
7152
|
-
const timeout = setTimeout(() => __classPrivateFieldGet$
|
|
7150
|
+
__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f").set(action, (__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f").get(action) ?? 0) + 1);
|
|
7151
|
+
if (__classPrivateFieldGet$k(this, _Transport_analyticsFlushTimeout, "f") === undefined) {
|
|
7152
|
+
const timeout = setTimeout(() => __classPrivateFieldGet$k(this, _Transport_instances, "m", _Transport_flushAnalytics).call(this), 30000);
|
|
7153
7153
|
if (typeof timeout === 'object' && timeout !== null) {
|
|
7154
7154
|
timeout.unref?.();
|
|
7155
7155
|
}
|
|
7156
|
-
__classPrivateFieldSet$
|
|
7156
|
+
__classPrivateFieldSet$j(this, _Transport_analyticsFlushTimeout, timeout, "f");
|
|
7157
7157
|
}
|
|
7158
7158
|
}
|
|
7159
7159
|
shutdown() {
|
|
7160
|
-
const wire = __classPrivateFieldGet$
|
|
7160
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7161
7161
|
return wire.shutdown();
|
|
7162
7162
|
}
|
|
7163
7163
|
async connect(config) {
|
|
7164
7164
|
if (isConfigWithReceiver(config)) {
|
|
7165
|
-
await __classPrivateFieldGet$
|
|
7165
|
+
await __classPrivateFieldGet$k(this, _Transport_wire, "f").connect(config.receiver);
|
|
7166
7166
|
return this.authorize(config);
|
|
7167
7167
|
}
|
|
7168
7168
|
if (isRemoteConfig(config)) {
|
|
@@ -7178,13 +7178,13 @@ class Transport extends events.EventEmitter {
|
|
|
7178
7178
|
return undefined;
|
|
7179
7179
|
}
|
|
7180
7180
|
async connectRemote(config) {
|
|
7181
|
-
await __classPrivateFieldGet$
|
|
7181
|
+
await __classPrivateFieldGet$k(this, _Transport_wire, "f").connect(new (this.environment.getWsConstructor())(config.address));
|
|
7182
7182
|
return this.authorize(config);
|
|
7183
7183
|
}
|
|
7184
7184
|
async connectByPort(config) {
|
|
7185
7185
|
const { address, uuid } = config;
|
|
7186
7186
|
const reqAuthPayload = { ...config, type: 'file-token' };
|
|
7187
|
-
const wire = __classPrivateFieldGet$
|
|
7187
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7188
7188
|
await wire.connect(new (this.environment.getWsConstructor())(config.address));
|
|
7189
7189
|
const requestExtAuthRet = await this.sendAction('request-external-authorization', {
|
|
7190
7190
|
uuid,
|
|
@@ -7220,7 +7220,7 @@ class Transport extends events.EventEmitter {
|
|
|
7220
7220
|
payload,
|
|
7221
7221
|
messageId
|
|
7222
7222
|
};
|
|
7223
|
-
const wire = __classPrivateFieldGet$
|
|
7223
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7224
7224
|
this.addWireListener(messageId, resolve, (payload) => this.nackHandler(payload, reject, callSites), uncorrelated);
|
|
7225
7225
|
return wire.send(msg).catch(reject);
|
|
7226
7226
|
});
|
|
@@ -7242,7 +7242,7 @@ class Transport extends events.EventEmitter {
|
|
|
7242
7242
|
const resolver = (data) => {
|
|
7243
7243
|
resolve(data.payload);
|
|
7244
7244
|
};
|
|
7245
|
-
const wire = __classPrivateFieldGet$
|
|
7245
|
+
const wire = __classPrivateFieldGet$k(this, _Transport_wire, "f");
|
|
7246
7246
|
return wire
|
|
7247
7247
|
.send(origData)
|
|
7248
7248
|
.then(() => this.addWireListener(id, resolver, (payload) => this.nackHandler(payload, reject), false))
|
|
@@ -7319,11 +7319,11 @@ class Transport extends events.EventEmitter {
|
|
|
7319
7319
|
}
|
|
7320
7320
|
}
|
|
7321
7321
|
_Transport_wire = new WeakMap(), _Transport_analyticsEnabled = new WeakMap(), _Transport_analyticsBuffer = new WeakMap(), _Transport_analyticsFlushTimeout = new WeakMap(), _Transport_fin = new WeakMap(), _Transport_instances = new WeakSet(), _Transport_flushAnalytics = function _Transport_flushAnalytics() {
|
|
7322
|
-
__classPrivateFieldSet$
|
|
7323
|
-
if (__classPrivateFieldGet$
|
|
7322
|
+
__classPrivateFieldSet$j(this, _Transport_analyticsFlushTimeout, undefined, "f");
|
|
7323
|
+
if (__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f").size === 0)
|
|
7324
7324
|
return;
|
|
7325
|
-
const counts = Object.fromEntries(__classPrivateFieldGet$
|
|
7326
|
-
__classPrivateFieldGet$
|
|
7325
|
+
const counts = Object.fromEntries(__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f"));
|
|
7326
|
+
__classPrivateFieldGet$k(this, _Transport_analyticsBuffer, "f").clear();
|
|
7327
7327
|
this.sendAction('send-analytics-batch', { counts }).catch(() => {
|
|
7328
7328
|
// analytics flush failure is non-fatal, counts are already cleared
|
|
7329
7329
|
});
|
|
@@ -7481,18 +7481,36 @@ class SystemContentTracing extends Base {
|
|
|
7481
7481
|
*
|
|
7482
7482
|
* @packageDocumentation
|
|
7483
7483
|
*/
|
|
7484
|
+
var __classPrivateFieldGet$j = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
7485
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
7486
|
+
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");
|
|
7487
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
7488
|
+
};
|
|
7489
|
+
var __classPrivateFieldSet$i = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7490
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
7491
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
7492
|
+
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");
|
|
7493
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7494
|
+
};
|
|
7495
|
+
var _System_instances, _System_registeredUsageKeys, _System_pendingUsageKeys, _System_usageBatch, _System_usageFlushScheduled, _System_flushUsageBatch;
|
|
7484
7496
|
/**
|
|
7485
7497
|
* An object representing the core of OpenFin Runtime. Allows the developer
|
|
7486
7498
|
* to perform system-level actions, such as accessing logs, viewing processes,
|
|
7487
7499
|
* clearing the cache and exiting the runtime as well as listen to {@link OpenFin.SystemEvents system events}.
|
|
7488
7500
|
*
|
|
7489
7501
|
*/
|
|
7502
|
+
const sortedKeysReplacer = (_, v) => v && typeof v === 'object' && !Array.isArray(v) ? Object.fromEntries(Object.entries(v).sort()) : v;
|
|
7490
7503
|
class System extends EmitterBase {
|
|
7491
7504
|
/**
|
|
7492
7505
|
* @internal
|
|
7493
7506
|
*/
|
|
7494
7507
|
constructor(wire) {
|
|
7495
7508
|
super(wire, 'system');
|
|
7509
|
+
_System_instances.add(this);
|
|
7510
|
+
_System_registeredUsageKeys.set(this, new Set());
|
|
7511
|
+
_System_pendingUsageKeys.set(this, new Set());
|
|
7512
|
+
_System_usageBatch.set(this, []);
|
|
7513
|
+
_System_usageFlushScheduled.set(this, false);
|
|
7496
7514
|
this.ContentTracing = new SystemContentTracing(wire);
|
|
7497
7515
|
}
|
|
7498
7516
|
sendExternalProcessRequest(action, options) {
|
|
@@ -9229,31 +9247,58 @@ class System extends EmitterBase {
|
|
|
9229
9247
|
return payload.data;
|
|
9230
9248
|
}
|
|
9231
9249
|
/**
|
|
9232
|
-
* (Internal) Register the usage of a component with a platform
|
|
9233
|
-
*
|
|
9250
|
+
* (Internal) Register the usage of a component with a platform.
|
|
9251
|
+
*
|
|
9252
|
+
* @param options - Object with `data` and `type`.
|
|
9253
|
+
*
|
|
9254
|
+
* @remarks
|
|
9255
|
+
* **This method never throws.** All errors — including IPC failures, RVM timeouts, and
|
|
9256
|
+
* serialization errors — are caught internally and logged at `debug` level. Usage tracking
|
|
9257
|
+
* must never break the calling feature.
|
|
9258
|
+
*
|
|
9259
|
+
* Calls are automatically deduplicated client-side for the lifetime of the current window
|
|
9260
|
+
* (i.e. until the window is closed or the page is reloaded). The first call with a given
|
|
9261
|
+
* `type` + `data` combination is forwarded to the Runtime as normal. Any subsequent call
|
|
9262
|
+
* with the same `type` and `data` values within the same window lifetime is silently
|
|
9263
|
+
* suppressed without making an IPC round-trip.
|
|
9264
|
+
*
|
|
9265
|
+
* If `data` cannot be serialized to JSON (for example, a circular reference), deduplication
|
|
9266
|
+
* is skipped for that call and the IPC call is still forwarded unconditionally.
|
|
9234
9267
|
*
|
|
9235
9268
|
* @example
|
|
9236
9269
|
* ```js
|
|
9237
|
-
*
|
|
9238
|
-
*
|
|
9239
|
-
*
|
|
9240
|
-
*
|
|
9241
|
-
*
|
|
9242
|
-
*
|
|
9243
|
-
*
|
|
9244
|
-
*
|
|
9245
|
-
*
|
|
9246
|
-
*
|
|
9247
|
-
*
|
|
9248
|
-
*
|
|
9249
|
-
* });
|
|
9250
|
-
* }
|
|
9251
|
-
*
|
|
9252
|
-
* registerUsage().then(() => console.log('Successfully registered component application')).catch(err => console.log(err));
|
|
9270
|
+
* // Safe to fire-and-forget — will never throw or reject.
|
|
9271
|
+
* // Duplicate calls within the same window lifetime are suppressed automatically.
|
|
9272
|
+
* fin.System.registerUsage({
|
|
9273
|
+
* type: 'workspace-licensing',
|
|
9274
|
+
* data: {
|
|
9275
|
+
* apiVersion: '1.0',
|
|
9276
|
+
* componentName: 'home',
|
|
9277
|
+
* componentVersion: '1.0',
|
|
9278
|
+
* allowed: true,
|
|
9279
|
+
* rejectionCode: ''
|
|
9280
|
+
* }
|
|
9281
|
+
* });
|
|
9253
9282
|
* ```
|
|
9254
9283
|
*/
|
|
9255
|
-
|
|
9256
|
-
|
|
9284
|
+
registerUsage({ data, type }) {
|
|
9285
|
+
let dedupKey;
|
|
9286
|
+
try {
|
|
9287
|
+
const key = `${type}\0${JSON.stringify(data, sortedKeysReplacer)}`;
|
|
9288
|
+
if (__classPrivateFieldGet$j(this, _System_registeredUsageKeys, "f").has(key) || __classPrivateFieldGet$j(this, _System_pendingUsageKeys, "f").has(key)) {
|
|
9289
|
+
return;
|
|
9290
|
+
}
|
|
9291
|
+
__classPrivateFieldGet$j(this, _System_pendingUsageKeys, "f").add(key);
|
|
9292
|
+
dedupKey = key;
|
|
9293
|
+
}
|
|
9294
|
+
catch {
|
|
9295
|
+
console.debug(`[registerUsage] Failed to serialize 'data' for deduplication (type: "${type}"). Sending unconditionally.`);
|
|
9296
|
+
}
|
|
9297
|
+
__classPrivateFieldGet$j(this, _System_usageBatch, "f").push({ payload: { data, type }, dedupKey });
|
|
9298
|
+
if (!__classPrivateFieldGet$j(this, _System_usageFlushScheduled, "f")) {
|
|
9299
|
+
__classPrivateFieldSet$i(this, _System_usageFlushScheduled, true, "f");
|
|
9300
|
+
queueMicrotask(() => __classPrivateFieldGet$j(this, _System_instances, "m", _System_flushUsageBatch).call(this));
|
|
9301
|
+
}
|
|
9257
9302
|
}
|
|
9258
9303
|
/**
|
|
9259
9304
|
* Returns an array with all printers of the caller and not all the printers on the desktop.
|
|
@@ -9559,6 +9604,37 @@ class System extends EmitterBase {
|
|
|
9559
9604
|
return payload.data;
|
|
9560
9605
|
}
|
|
9561
9606
|
}
|
|
9607
|
+
_System_registeredUsageKeys = new WeakMap(), _System_pendingUsageKeys = new WeakMap(), _System_usageBatch = new WeakMap(), _System_usageFlushScheduled = new WeakMap(), _System_instances = new WeakSet(), _System_flushUsageBatch = function _System_flushUsageBatch() {
|
|
9608
|
+
__classPrivateFieldSet$i(this, _System_usageFlushScheduled, false, "f");
|
|
9609
|
+
const batch = __classPrivateFieldGet$j(this, _System_usageBatch, "f");
|
|
9610
|
+
__classPrivateFieldSet$i(this, _System_usageBatch, [], "f");
|
|
9611
|
+
if (batch.length === 0)
|
|
9612
|
+
return;
|
|
9613
|
+
const items = batch.map(({ payload }) => payload);
|
|
9614
|
+
const keys = batch.map(({ dedupKey }) => dedupKey);
|
|
9615
|
+
const commitKeys = () => {
|
|
9616
|
+
for (const key of keys) {
|
|
9617
|
+
if (key !== undefined) {
|
|
9618
|
+
__classPrivateFieldGet$j(this, _System_pendingUsageKeys, "f").delete(key);
|
|
9619
|
+
__classPrivateFieldGet$j(this, _System_registeredUsageKeys, "f").add(key);
|
|
9620
|
+
}
|
|
9621
|
+
}
|
|
9622
|
+
};
|
|
9623
|
+
const rollbackKeys = () => {
|
|
9624
|
+
for (const key of keys) {
|
|
9625
|
+
if (key !== undefined) {
|
|
9626
|
+
__classPrivateFieldGet$j(this, _System_pendingUsageKeys, "f").delete(key);
|
|
9627
|
+
}
|
|
9628
|
+
}
|
|
9629
|
+
};
|
|
9630
|
+
const action = items.length === 1
|
|
9631
|
+
? this.wire.sendAction('register-usage', items[0])
|
|
9632
|
+
: this.wire.sendAction('register-usage-batch', { items });
|
|
9633
|
+
action.then(commitKeys).catch((e) => {
|
|
9634
|
+
rollbackKeys();
|
|
9635
|
+
console.debug('[registerUsage] Failed to send usage data.', e);
|
|
9636
|
+
});
|
|
9637
|
+
};
|
|
9562
9638
|
|
|
9563
9639
|
class RefCounter {
|
|
9564
9640
|
constructor() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfin/remote-adapter",
|
|
3
|
-
"version": "45.100.
|
|
3
|
+
"version": "45.100.95",
|
|
4
4
|
"description": "Establish intermachine runtime connections using webRTC.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"private": false,
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"es-toolkit": "^1.39.3",
|
|
18
18
|
"tslib": "2.8.1",
|
|
19
|
-
"@openfin/core": "45.100.
|
|
19
|
+
"@openfin/core": "45.100.95"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"prebuild": "rimraf ./out",
|