@openfin/node-adapter 40.102.1 → 40.103.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -84,7 +84,7 @@ var __classPrivateFieldGet$e = (commonjsGlobal && commonjsGlobal.__classPrivateF
84
84
  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");
85
85
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
86
86
  };
87
- var _EmitterBase_emitterAccessor;
87
+ var _EmitterBase_emitterAccessor, _EmitterBase_deregisterOnceListeners;
88
88
  Object.defineProperty(base, "__esModule", { value: true });
89
89
  base.Reply = base.EmitterBase = base.Base = void 0;
90
90
  const promises_1 = promises;
@@ -156,6 +156,7 @@ class EmitterBase extends Base {
156
156
  super(wire);
157
157
  this.topic = topic;
158
158
  _EmitterBase_emitterAccessor.set(this, void 0);
159
+ _EmitterBase_deregisterOnceListeners.set(this, void 0);
159
160
  this.eventNames = () => (this.hasEmitter() ? this.getOrCreateEmitter().eventNames() : []);
160
161
  /**
161
162
  * @internal
@@ -164,7 +165,28 @@ class EmitterBase extends Base {
164
165
  return this.hasEmitter() ? this.getOrCreateEmitter().emit(eventType, payload, ...args) : false;
165
166
  };
166
167
  this.hasEmitter = () => this.wire.eventAggregator.has(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
167
- this.getOrCreateEmitter = () => this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
168
+ /**
169
+ * Cleans up after removal of a listener, e.g. deleting any lingering deregistration handlers for a
170
+ * `once` subscription.
171
+ *
172
+ * @remarks Implementing this as a `removeListener` handler ensures that direct removal of a listener
173
+ * on the base emitter will not leak additional core handlers. We could do this in the forwarding method,
174
+ * which would involve less "magic," but would be more-vulnerable to accidental re-introduction of a leak.
175
+ */
176
+ this.cleanUpRemovedListener = (eventType, listener) => {
177
+ const deregister = __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").get(listener);
178
+ if (deregister) {
179
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
180
+ emitter.removeListener(eventType, deregister);
181
+ }
182
+ };
183
+ this.getOrCreateEmitter = () => {
184
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
185
+ if (!emitter.listeners('removeListener').includes(this.cleanUpRemovedListener)) {
186
+ emitter.on('removeListener', this.cleanUpRemovedListener);
187
+ }
188
+ return emitter;
189
+ };
168
190
  this.listeners = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(type) : [];
169
191
  this.listenerCount = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listenerCount(type) : 0;
170
192
  this.registerEventListener = async (eventType, options = {}, applySubscription, undoSubscription) => {
@@ -196,13 +218,13 @@ class EmitterBase extends Base {
196
218
  type: eventType
197
219
  };
198
220
  await this.wire.sendAction('unsubscribe-to-desktop-event', runtimeEvent).catch(() => null);
199
- const emitter = this.getOrCreateEmitter();
200
- return emitter;
221
+ return this.getOrCreateEmitter();
201
222
  }
202
223
  // This will only be reached if unsubscribe from event that does not exist but do not want to error here
203
224
  return Promise.resolve();
204
225
  };
205
226
  __classPrivateFieldSet$d(this, _EmitterBase_emitterAccessor, [topic, ...additionalAccessors], "f");
227
+ __classPrivateFieldSet$d(this, _EmitterBase_deregisterOnceListeners, new WeakMap(), "f");
206
228
  this.listeners = (event) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(event) : [];
207
229
  }
208
230
  /**
@@ -231,6 +253,7 @@ class EmitterBase extends Base {
231
253
  */
232
254
  async once(eventType, listener, options) {
233
255
  const deregister = () => this.deregisterEventListener(eventType);
256
+ __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
234
257
  await this.registerEventListener(eventType, options, (emitter) => {
235
258
  emitter.once(eventType, deregister);
236
259
  emitter.once(eventType, listener);
@@ -261,6 +284,7 @@ class EmitterBase extends Base {
261
284
  */
262
285
  async prependOnceListener(eventType, listener, options) {
263
286
  const deregister = () => this.deregisterEventListener(eventType);
287
+ __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
264
288
  await this.registerEventListener(eventType, options, (emitter) => {
265
289
  emitter.prependOnceListener(eventType, listener);
266
290
  emitter.once(eventType, deregister);
@@ -319,13 +343,13 @@ class EmitterBase extends Base {
319
343
  return this;
320
344
  }
321
345
  deleteEmitterIfNothingRegistered(emitter) {
322
- if (emitter.eventNames().length === 0) {
346
+ if (emitter.eventNames().every((type) => type === 'removeListener')) {
323
347
  this.wire.eventAggregator.delete(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
324
348
  }
325
349
  }
326
350
  }
327
351
  base.EmitterBase = EmitterBase;
328
- _EmitterBase_emitterAccessor = new WeakMap();
352
+ _EmitterBase_emitterAccessor = new WeakMap(), _EmitterBase_deregisterOnceListeners = new WeakMap();
329
353
  class Reply {
330
354
  }
331
355
  base.Reply = Reply;
@@ -1835,6 +1859,21 @@ class WebContents extends base_1$j.EmitterBase {
1835
1859
  });
1836
1860
  return payload.data;
1837
1861
  }
1862
+ /**
1863
+ *
1864
+ * Get the screen capture permission for this content.
1865
+ *
1866
+ * @example
1867
+ * ```js
1868
+ * const { permission } = await fin.me.getScreenCapturePermission();
1869
+ *
1870
+ * console.log(`This content is currently ${permission}ed in screen captures.`);
1871
+ *
1872
+ * ```
1873
+ */
1874
+ async getScreenCapturePermission() {
1875
+ return (await this.wire.sendAction('get-screen-capture-permissions', this.identity)).payload.data;
1876
+ }
1838
1877
  }
1839
1878
  main.WebContents = WebContents;
1840
1879
 
@@ -17762,7 +17801,7 @@ class NodeEnvironment extends BaseEnvironment_1 {
17762
17801
  };
17763
17802
  }
17764
17803
  getAdapterVersionSync() {
17765
- return "40.102.1";
17804
+ return "40.103.1";
17766
17805
  }
17767
17806
  observeBounds(element, onChange) {
17768
17807
  throw new Error('Method not implemented.');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/node-adapter",
3
- "version": "40.102.1",
3
+ "version": "40.103.1",
4
4
  "description": "See README.md",
5
5
  "main": "out/node-adapter.js",
6
6
  "types": "out/node-adapter.d.ts",
@@ -24,7 +24,7 @@
24
24
  "author": "OpenFin",
25
25
  "dependencies": {
26
26
  "@types/node": "^20.14.2",
27
- "@openfin/core": "40.102.1",
27
+ "@openfin/core": "40.103.1",
28
28
  "lodash": "^4.17.21",
29
29
  "ws": "^7.3.0"
30
30
  }