@openfin/remote-adapter 41.100.72 → 41.100.78

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.
@@ -60,7 +60,7 @@ var __classPrivateFieldGet$h = (commonjsGlobal && commonjsGlobal.__classPrivateF
60
60
  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");
61
61
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
62
62
  };
63
- var _EmitterBase_emitterAccessor;
63
+ var _EmitterBase_emitterAccessor, _EmitterBase_deregisterOnceListeners;
64
64
  Object.defineProperty(base, "__esModule", { value: true });
65
65
  base.Reply = base.EmitterBase = base.Base = void 0;
66
66
  const promises_1 = promises;
@@ -132,6 +132,7 @@ class EmitterBase extends Base {
132
132
  super(wire);
133
133
  this.topic = topic;
134
134
  _EmitterBase_emitterAccessor.set(this, void 0);
135
+ _EmitterBase_deregisterOnceListeners.set(this, void 0);
135
136
  this.eventNames = () => (this.hasEmitter() ? this.getOrCreateEmitter().eventNames() : []);
136
137
  /**
137
138
  * @internal
@@ -140,7 +141,28 @@ class EmitterBase extends Base {
140
141
  return this.hasEmitter() ? this.getOrCreateEmitter().emit(eventType, payload, ...args) : false;
141
142
  };
142
143
  this.hasEmitter = () => this.wire.eventAggregator.has(__classPrivateFieldGet$h(this, _EmitterBase_emitterAccessor, "f"));
143
- this.getOrCreateEmitter = () => this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$h(this, _EmitterBase_emitterAccessor, "f"));
144
+ /**
145
+ * Cleans up after removal of a listener, e.g. deleting any lingering deregistration handlers for a
146
+ * `once` subscription.
147
+ *
148
+ * @remarks Implementing this as a `removeListener` handler ensures that direct removal of a listener
149
+ * on the base emitter will not leak additional core handlers. We could do this in the forwarding method,
150
+ * which would involve less "magic," but would be more-vulnerable to accidental re-introduction of a leak.
151
+ */
152
+ this.cleanUpRemovedListener = (eventType, listener) => {
153
+ const deregister = __classPrivateFieldGet$h(this, _EmitterBase_deregisterOnceListeners, "f").get(listener);
154
+ if (deregister) {
155
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$h(this, _EmitterBase_emitterAccessor, "f"));
156
+ emitter.removeListener(eventType, deregister);
157
+ }
158
+ };
159
+ this.getOrCreateEmitter = () => {
160
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$h(this, _EmitterBase_emitterAccessor, "f"));
161
+ if (!emitter.listeners('removeListener').includes(this.cleanUpRemovedListener)) {
162
+ emitter.on('removeListener', this.cleanUpRemovedListener);
163
+ }
164
+ return emitter;
165
+ };
144
166
  this.listeners = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(type) : [];
145
167
  this.listenerCount = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listenerCount(type) : 0;
146
168
  this.registerEventListener = async (eventType, options = {}, applySubscription, undoSubscription) => {
@@ -172,13 +194,13 @@ class EmitterBase extends Base {
172
194
  type: eventType
173
195
  };
174
196
  await this.wire.sendAction('unsubscribe-to-desktop-event', runtimeEvent).catch(() => null);
175
- const emitter = this.getOrCreateEmitter();
176
- return emitter;
197
+ return this.getOrCreateEmitter();
177
198
  }
178
199
  // This will only be reached if unsubscribe from event that does not exist but do not want to error here
179
200
  return Promise.resolve();
180
201
  };
181
202
  __classPrivateFieldSet$g(this, _EmitterBase_emitterAccessor, [topic, ...additionalAccessors], "f");
203
+ __classPrivateFieldSet$g(this, _EmitterBase_deregisterOnceListeners, new WeakMap(), "f");
182
204
  this.listeners = (event) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(event) : [];
183
205
  }
184
206
  /**
@@ -207,6 +229,7 @@ class EmitterBase extends Base {
207
229
  */
208
230
  async once(eventType, listener, options) {
209
231
  const deregister = () => this.deregisterEventListener(eventType);
232
+ __classPrivateFieldGet$h(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
210
233
  await this.registerEventListener(eventType, options, (emitter) => {
211
234
  emitter.once(eventType, deregister);
212
235
  emitter.once(eventType, listener);
@@ -237,6 +260,7 @@ class EmitterBase extends Base {
237
260
  */
238
261
  async prependOnceListener(eventType, listener, options) {
239
262
  const deregister = () => this.deregisterEventListener(eventType);
263
+ __classPrivateFieldGet$h(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
240
264
  await this.registerEventListener(eventType, options, (emitter) => {
241
265
  emitter.prependOnceListener(eventType, listener);
242
266
  emitter.once(eventType, deregister);
@@ -295,13 +319,13 @@ class EmitterBase extends Base {
295
319
  return this;
296
320
  }
297
321
  deleteEmitterIfNothingRegistered(emitter) {
298
- if (emitter.eventNames().length === 0) {
322
+ if (emitter.eventNames().every((type) => type === 'removeListener')) {
299
323
  this.wire.eventAggregator.delete(__classPrivateFieldGet$h(this, _EmitterBase_emitterAccessor, "f"));
300
324
  }
301
325
  }
302
326
  }
303
327
  base.EmitterBase = EmitterBase;
304
- _EmitterBase_emitterAccessor = new WeakMap();
328
+ _EmitterBase_emitterAccessor = new WeakMap(), _EmitterBase_deregisterOnceListeners = new WeakMap();
305
329
  class Reply {
306
330
  }
307
331
  base.Reply = Reply;
@@ -5124,9 +5148,9 @@ function requireInstance$1 () {
5124
5148
  * getBounds().then(bounds => console.log(bounds)).catch(err => console.log(err));
5125
5149
  * ```
5126
5150
  */
5127
- getBounds() {
5151
+ getBounds(options) {
5128
5152
  return this.wire
5129
- .sendAction('get-window-bounds', this.identity)
5153
+ .sendAction('get-window-bounds', { ...this.identity, options })
5130
5154
  .then(({ payload }) => payload.data);
5131
5155
  }
5132
5156
  /**
@@ -14104,7 +14128,7 @@ const layout_constants_1$1 = layout_constants;
14104
14128
  *
14105
14129
  * @remarks The built-in event emitter is not an OpenFin event emitter so it doesn't share propagation semantics.
14106
14130
  *
14107
- * #### {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener addEventListener(type, listener [, options]);}
14131
+ * #### [addEventListener(type, listener [, options]);](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
14108
14132
  * Adds a listener to the end of the listeners array for the specified event.
14109
14133
  * @example
14110
14134
  * ```js
@@ -14121,7 +14145,7 @@ const layout_constants_1$1 = layout_constants;
14121
14145
  * });
14122
14146
  * ```
14123
14147
  *
14124
- * #### {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener removeEventListener(type, listener [, options]);}
14148
+ * #### [removeEventListener(type, listener [, options]);](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener)
14125
14149
  * Adds a listener to the end of the listeners array for the specified event.
14126
14150
  * @example
14127
14151
  * ```js
@@ -14472,7 +14496,7 @@ class Layout extends base_1$7.Base {
14472
14496
  return layout_entities_1.LayoutNode.getEntity(stack, client);
14473
14497
  }
14474
14498
  /**
14475
- * Adds a view to the platform layout. Behaves like @link{Platform#createView} with the current layout as the target.
14499
+ * Adds a view to the platform layout. Behaves like {@link Platform#createView Platform.createView} with the current layout as the target.
14476
14500
  *
14477
14501
  * @param viewOptions - The options for creating the view.
14478
14502
  * @param options - Optional parameters for adding the view.
@@ -14493,7 +14517,7 @@ class Layout extends base_1$7.Base {
14493
14517
  }
14494
14518
  /**
14495
14519
  * Closes a view by its identity. Throws an error if the view does not belong to the current layout.
14496
- * Behaves like @link{Platform#closeView} but only closes the view if it belongs the current layout.
14520
+ * Behaves like {@link Platform#closeView Platform.closeView} but only closes the view if it belongs the current layout.
14497
14521
  *
14498
14522
  * @param viewIdentity - The identity of the view to close.
14499
14523
  * @returns A promise that resolves when the view is closed.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/remote-adapter",
3
- "version": "41.100.72",
3
+ "version": "41.100.78",
4
4
  "description": "Establish intermachine runtime connections using webRTC.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,
@@ -20,6 +20,6 @@
20
20
  "author": "OpenFin",
21
21
  "dependencies": {
22
22
  "lodash": "^4.17.21",
23
- "@openfin/core": "41.100.72"
23
+ "@openfin/core": "41.100.78"
24
24
  }
25
25
  }