@openfin/core 40.102.1 → 40.102.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -372,7 +372,7 @@ var __classPrivateFieldGet$e = (commonjsGlobal && commonjsGlobal.__classPrivateF
372
372
  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");
373
373
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
374
374
  };
375
- var _EmitterBase_emitterAccessor;
375
+ var _EmitterBase_emitterAccessor, _EmitterBase_deregisterOnceListeners;
376
376
  Object.defineProperty(base, "__esModule", { value: true });
377
377
  base.Reply = base.EmitterBase = base.Base = void 0;
378
378
  const promises_1 = promises;
@@ -444,6 +444,7 @@ class EmitterBase extends Base {
444
444
  super(wire);
445
445
  this.topic = topic;
446
446
  _EmitterBase_emitterAccessor.set(this, void 0);
447
+ _EmitterBase_deregisterOnceListeners.set(this, void 0);
447
448
  this.eventNames = () => (this.hasEmitter() ? this.getOrCreateEmitter().eventNames() : []);
448
449
  /**
449
450
  * @internal
@@ -452,7 +453,28 @@ class EmitterBase extends Base {
452
453
  return this.hasEmitter() ? this.getOrCreateEmitter().emit(eventType, payload, ...args) : false;
453
454
  };
454
455
  this.hasEmitter = () => this.wire.eventAggregator.has(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
455
- this.getOrCreateEmitter = () => this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
456
+ /**
457
+ * Cleans up after removal of a listener, e.g. deleting any lingering deregistration handlers for a
458
+ * `once` subscription.
459
+ *
460
+ * @remarks Implementing this as a `removeListener` handler ensures that direct removal of a listener
461
+ * on the base emitter will not leak additional core handlers. We could do this in the forwarding method,
462
+ * which would involve less "magic," but would be more-vulnerable to accidental re-introduction of a leak.
463
+ */
464
+ this.cleanUpRemovedListener = (eventType, listener) => {
465
+ const deregister = __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").get(listener);
466
+ if (deregister) {
467
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
468
+ emitter.removeListener(eventType, deregister);
469
+ }
470
+ };
471
+ this.getOrCreateEmitter = () => {
472
+ const emitter = this.wire.eventAggregator.getOrCreate(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
473
+ if (!emitter.listeners('removeListener').includes(this.cleanUpRemovedListener)) {
474
+ emitter.on('removeListener', this.cleanUpRemovedListener);
475
+ }
476
+ return emitter;
477
+ };
456
478
  this.listeners = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(type) : [];
457
479
  this.listenerCount = (type) => this.hasEmitter() ? this.getOrCreateEmitter().listenerCount(type) : 0;
458
480
  this.registerEventListener = async (eventType, options = {}, applySubscription, undoSubscription) => {
@@ -484,13 +506,13 @@ class EmitterBase extends Base {
484
506
  type: eventType
485
507
  };
486
508
  await this.wire.sendAction('unsubscribe-to-desktop-event', runtimeEvent).catch(() => null);
487
- const emitter = this.getOrCreateEmitter();
488
- return emitter;
509
+ return this.getOrCreateEmitter();
489
510
  }
490
511
  // This will only be reached if unsubscribe from event that does not exist but do not want to error here
491
512
  return Promise.resolve();
492
513
  };
493
514
  __classPrivateFieldSet$d(this, _EmitterBase_emitterAccessor, [topic, ...additionalAccessors], "f");
515
+ __classPrivateFieldSet$d(this, _EmitterBase_deregisterOnceListeners, new WeakMap(), "f");
494
516
  this.listeners = (event) => this.hasEmitter() ? this.getOrCreateEmitter().listeners(event) : [];
495
517
  }
496
518
  /**
@@ -519,6 +541,7 @@ class EmitterBase extends Base {
519
541
  */
520
542
  async once(eventType, listener, options) {
521
543
  const deregister = () => this.deregisterEventListener(eventType);
544
+ __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
522
545
  await this.registerEventListener(eventType, options, (emitter) => {
523
546
  emitter.once(eventType, deregister);
524
547
  emitter.once(eventType, listener);
@@ -549,6 +572,7 @@ class EmitterBase extends Base {
549
572
  */
550
573
  async prependOnceListener(eventType, listener, options) {
551
574
  const deregister = () => this.deregisterEventListener(eventType);
575
+ __classPrivateFieldGet$e(this, _EmitterBase_deregisterOnceListeners, "f").set(listener, deregister);
552
576
  await this.registerEventListener(eventType, options, (emitter) => {
553
577
  emitter.prependOnceListener(eventType, listener);
554
578
  emitter.once(eventType, deregister);
@@ -607,13 +631,13 @@ class EmitterBase extends Base {
607
631
  return this;
608
632
  }
609
633
  deleteEmitterIfNothingRegistered(emitter) {
610
- if (emitter.eventNames().length === 0) {
634
+ if (emitter.eventNames().every((type) => type === 'removeListener')) {
611
635
  this.wire.eventAggregator.delete(__classPrivateFieldGet$e(this, _EmitterBase_emitterAccessor, "f"));
612
636
  }
613
637
  }
614
638
  }
615
639
  base.EmitterBase = EmitterBase;
616
- _EmitterBase_emitterAccessor = new WeakMap();
640
+ _EmitterBase_emitterAccessor = new WeakMap(), _EmitterBase_deregisterOnceListeners = new WeakMap();
617
641
  class Reply {
618
642
  }
619
643
  base.Reply = Reply;
@@ -840,11 +864,11 @@ const handleDeprecatedWarnings = (options) => {
840
864
  };
841
865
  warnings.handleDeprecatedWarnings = handleDeprecatedWarnings;
842
866
 
843
- var hasRequiredFactory$3;
867
+ var hasRequiredFactory$2;
844
868
 
845
- function requireFactory$3 () {
846
- if (hasRequiredFactory$3) return Factory$6;
847
- hasRequiredFactory$3 = 1;
869
+ function requireFactory$2 () {
870
+ if (hasRequiredFactory$2) return Factory$6;
871
+ hasRequiredFactory$2 = 1;
848
872
  Object.defineProperty(Factory$6, "__esModule", { value: true });
849
873
  Factory$6.ViewModule = void 0;
850
874
  const base_1 = base;
@@ -1059,8 +1083,8 @@ var main = {};
1059
1083
 
1060
1084
  Object.defineProperty(main, "__esModule", { value: true });
1061
1085
  main.WebContents = void 0;
1062
- const base_1$j = base;
1063
- class WebContents extends base_1$j.EmitterBase {
1086
+ const base_1$l = base;
1087
+ class WebContents extends base_1$l.EmitterBase {
1064
1088
  /**
1065
1089
  * @param identity The identity of the {@link OpenFin.WebContentsEvents WebContents}.
1066
1090
  * @param entityType The type of the {@link OpenFin.WebContentsEvents WebContents}.
@@ -2126,11 +2150,11 @@ class WebContents extends base_1$j.EmitterBase {
2126
2150
  }
2127
2151
  main.WebContents = WebContents;
2128
2152
 
2129
- var hasRequiredInstance$2;
2153
+ var hasRequiredInstance$1;
2130
2154
 
2131
- function requireInstance$2 () {
2132
- if (hasRequiredInstance$2) return Instance$5;
2133
- hasRequiredInstance$2 = 1;
2155
+ function requireInstance$1 () {
2156
+ if (hasRequiredInstance$1) return Instance$5;
2157
+ hasRequiredInstance$1 = 1;
2134
2158
  var _View_providerChannelClient;
2135
2159
  Object.defineProperty(Instance$5, "__esModule", { value: true });
2136
2160
  Instance$5.View = void 0;
@@ -2710,1160 +2734,1139 @@ function requireView () {
2710
2734
  *
2711
2735
  * @packageDocumentation
2712
2736
  */
2713
- __exportStar(requireFactory$3(), exports);
2714
- __exportStar(requireInstance$2(), exports);
2737
+ __exportStar(requireFactory$2(), exports);
2738
+ __exportStar(requireInstance$1(), exports);
2715
2739
  } (view));
2716
2740
  return view;
2717
2741
  }
2718
2742
 
2719
- var hasRequiredInstance$1;
2720
-
2721
- function requireInstance$1 () {
2722
- if (hasRequiredInstance$1) return Instance$6;
2723
- hasRequiredInstance$1 = 1;
2724
- Object.defineProperty(Instance$6, "__esModule", { value: true });
2725
- Instance$6.Application = void 0;
2726
- /* eslint-disable import/prefer-default-export */
2727
- const base_1 = base;
2728
- const window_1 = requireWindow();
2729
- const view_1 = requireView();
2730
- /**
2731
- * An object representing an application. Allows the developer to create,
2732
- * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2733
- */
2734
- class Application extends base_1.EmitterBase {
2735
- /**
2736
- * @internal
2737
- */
2738
- constructor(wire, identity) {
2739
- super(wire, 'application', identity.uuid);
2740
- this.identity = identity;
2741
- this.window = new window_1._Window(this.wire, {
2742
- uuid: this.identity.uuid,
2743
- name: this.identity.uuid
2744
- });
2745
- }
2746
- windowListFromIdentityList(identityList) {
2747
- const windowList = [];
2748
- identityList.forEach((identity) => {
2749
- windowList.push(new window_1._Window(this.wire, {
2750
- uuid: identity.uuid,
2751
- name: identity.name
2752
- }));
2753
- });
2754
- return windowList;
2755
- }
2756
- /**
2757
- * Determines if the application is currently running.
2758
- *
2759
- * @example
2760
- *
2761
- * ```js
2762
- * async function isAppRunning() {
2763
- * const app = await fin.Application.getCurrent();
2764
- * return await app.isRunning();
2765
- * }
2766
- * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2767
- * ```
2768
- */
2769
- isRunning() {
2770
- return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2771
- }
2772
- /**
2773
- * Closes the application and any child windows created by the application.
2774
- * Cleans the application from state so it is no longer found in getAllApplications.
2775
- * @param force Close will be prevented from closing when force is false and
2776
- * ‘close-requested’ has been subscribed to for application’s main window.
2777
- *
2778
- * @example
2779
- *
2780
- * ```js
2781
- * async function closeApp() {
2782
- * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2783
- * const app = await fin.Application.wrap({uuid: 'app2'});
2784
- * await app.quit();
2785
- * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2786
- *
2787
- * }
2788
- * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2789
- * ```
2790
- */
2791
- async quit(force = false) {
2792
- try {
2793
- await this._close(force);
2794
- await this.wire.sendAction('destroy-application', { force, ...this.identity });
2795
- }
2796
- catch (error) {
2797
- const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2798
- if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2799
- throw error;
2800
- }
2801
- }
2802
- }
2803
- async _close(force = false) {
2804
- try {
2805
- await this.wire.sendAction('close-application', { force, ...this.identity });
2806
- }
2807
- catch (error) {
2808
- if (!error.message.includes('Remote connection has closed')) {
2809
- throw error;
2810
- }
2811
- }
2812
- }
2813
- /**
2814
- * @deprecated use Application.quit instead
2815
- * Closes the application and any child windows created by the application.
2816
- * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2817
- * @param callback - called if the method succeeds.
2818
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2819
- *
2820
- * @example
2821
- *
2822
- * ```js
2823
- * async function closeApp() {
2824
- * const app = await fin.Application.getCurrent();
2825
- * return await app.close();
2826
- * }
2827
- * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2828
- * ```
2829
- */
2830
- close(force = false) {
2831
- console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2832
- this.wire.sendAction('application-close', this.identity).catch((e) => {
2833
- // we do not want to expose this error, just continue if this analytics-only call fails
2834
- });
2835
- return this._close(force);
2836
- }
2837
- /**
2838
- * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2839
- *
2840
- * @example
2841
- *
2842
- * ```js
2843
- * async function getChildWindows() {
2844
- * const app = await fin.Application.getCurrent();
2845
- * return await app.getChildWindows();
2846
- * }
2847
- *
2848
- * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2849
- * ```
2850
- */
2851
- getChildWindows() {
2852
- return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2853
- const identityList = [];
2854
- payload.data.forEach((winName) => {
2855
- identityList.push({ uuid: this.identity.uuid, name: winName });
2856
- });
2857
- return this.windowListFromIdentityList(identityList);
2858
- });
2859
- }
2860
- /**
2861
- * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2862
- * if the application was not created from a manifest.
2863
- *
2864
- * @example
2865
- *
2866
- * ```js
2867
- * async function getManifest() {
2868
- * const app = await fin.Application.getCurrent();
2869
- * return await app.getManifest();
2870
- * }
2871
- *
2872
- * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2873
- * ```
2874
- */
2875
- getManifest() {
2876
- return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2877
- }
2878
- /**
2879
- * Retrieves UUID of the application that launches this application. Invokes the error callback
2880
- * if the application was created from a manifest.
2881
- *
2882
- * @example
2883
- *
2884
- * ```js
2885
- * async function getParentUuid() {
2886
- * const app = await fin.Application.start({
2887
- * uuid: 'app-1',
2888
- * name: 'myApp',
2889
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2890
- * autoShow: true
2891
- * });
2892
- * return await app.getParentUuid();
2893
- * }
2894
- *
2895
- * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2896
- * ```
2897
- */
2898
- getParentUuid() {
2899
- return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2900
- }
2901
- /**
2902
- * Retrieves current application's shortcut configuration.
2903
- *
2904
- * @example
2905
- *
2906
- * ```js
2907
- * async function getShortcuts() {
2908
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
2909
- * return await app.getShortcuts();
2910
- * }
2911
- * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2912
- * ```
2913
- */
2914
- getShortcuts() {
2915
- return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2916
- }
2917
- /**
2918
- * Retrieves current application's views.
2919
- * @experimental
2920
- *
2921
- * @example
2922
- *
2923
- * ```js
2924
- * async function getViews() {
2925
- * const app = await fin.Application.getCurrent();
2926
- * return await app.getViews();
2927
- * }
2928
- * getViews().then(views => console.log(views)).catch(err => console.log(err));
2929
- * ```
2930
- */
2931
- async getViews() {
2932
- const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2933
- return payload.data.map((id) => new view_1.View(this.wire, id));
2934
- }
2935
- /**
2936
- * Returns the current zoom level of the application.
2937
- *
2938
- * @example
2939
- *
2940
- * ```js
2941
- * async function getZoomLevel() {
2942
- * const app = await fin.Application.getCurrent();
2943
- * return await app.getZoomLevel();
2944
- * }
2945
- *
2946
- * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2947
- * ```
2948
- */
2949
- getZoomLevel() {
2950
- return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2951
- }
2952
- /**
2953
- * Returns an instance of the main Window of the application
2954
- *
2955
- * @example
2956
- *
2957
- * ```js
2958
- * async function getWindow() {
2959
- * const app = await fin.Application.start({
2960
- * uuid: 'app-1',
2961
- * name: 'myApp',
2962
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2963
- * autoShow: true
2964
- * });
2965
- * return await app.getWindow();
2966
- * }
2967
- *
2968
- * getWindow().then(win => {
2969
- * win.showAt(0, 400);
2970
- * win.flash();
2971
- * }).catch(err => console.log(err));
2972
- * ```
2973
- */
2974
- getWindow() {
2975
- this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2976
- // we do not want to expose this error, just continue if this analytics-only call fails
2977
- });
2978
- return Promise.resolve(this.window);
2979
- }
2980
- /**
2981
- * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
2982
- * @param userName - username to be passed to the RVM.
2983
- * @param appName - app name to be passed to the RVM.
2984
- *
2985
- * @example
2986
- *
2987
- * ```js
2988
- * async function registerUser() {
2989
- * const app = await fin.Application.getCurrent();
2990
- * return await app.registerUser('user', 'myApp');
2991
- * }
2992
- *
2993
- * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
2994
- * ```
2995
- */
2996
- registerUser(userName, appName) {
2997
- return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
2998
- }
2999
- /**
3000
- * Removes the application’s icon from the tray.
3001
- *
3002
- * @example
3003
- *
3004
- * ```js
3005
- * async function removeTrayIcon() {
3006
- * const app = await fin.Application.getCurrent();
3007
- * return await app.removeTrayIcon();
3008
- * }
3009
- *
3010
- * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
3011
- * ```
3012
- */
3013
- removeTrayIcon() {
3014
- return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
3015
- }
3016
- /**
3017
- * Restarts the application.
3018
- *
3019
- * @example
3020
- *
3021
- * ```js
3022
- * async function restartApp() {
3023
- * const app = await fin.Application.getCurrent();
3024
- * return await app.restart();
3025
- * }
3026
- * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
3027
- * ```
3028
- */
3029
- restart() {
3030
- return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
3031
- }
3032
- /**
3033
- * DEPRECATED method to run the application.
3034
- * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
3035
- *
3036
- * @example
3037
- *
3038
- * ```js
3039
- * async function run() {
3040
- * const app = await fin.Application.create({
3041
- * name: 'myApp',
3042
- * uuid: 'app-1',
3043
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
3044
- * autoShow: true
3045
- * });
3046
- * await app.run();
3047
- * }
3048
- * run().then(() => console.log('Application is running')).catch(err => console.log(err));
3049
- * ```
3050
- *
3051
- * @ignore
3052
- */
3053
- run() {
3054
- console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
3055
- this.wire.sendAction('application-run', this.identity).catch((e) => {
3056
- // we do not want to expose this error, just continue if this analytics-only call fails
3057
- });
3058
- return this._run();
3059
- }
3060
- _run(opts = {}) {
3061
- return this.wire
3062
- .sendAction('run-application', {
3063
- manifestUrl: this._manifestUrl,
3064
- opts,
3065
- ...this.identity
3066
- })
3067
- .then(() => undefined);
3068
- }
3069
- /**
3070
- * Instructs the RVM to schedule one restart of the application.
3071
- *
3072
- * @example
3073
- *
3074
- * ```js
3075
- * async function scheduleRestart() {
3076
- * const app = await fin.Application.getCurrent();
3077
- * return await app.scheduleRestart();
3078
- * }
3079
- *
3080
- * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
3081
- * ```
3082
- */
3083
- scheduleRestart() {
3084
- return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
3085
- }
3086
- /**
3087
- * Sends a message to the RVM to upload the application's logs. On success,
3088
- * an object containing logId is returned.
3089
- *
3090
- * @example
3091
- *
3092
- * ```js
3093
- * async function sendLog() {
3094
- * const app = await fin.Application.getCurrent();
3095
- * return await app.sendApplicationLog();
3096
- * }
3097
- *
3098
- * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
3099
- * ```
3100
- */
3101
- async sendApplicationLog() {
3102
- const { payload } = await this.wire.sendAction('send-application-log', this.identity);
3103
- return payload.data;
3104
- }
3105
- /**
3106
- * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
3107
- * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3108
- *
3109
- * Note: If the "name" property is omitted it defaults to "tasks".
3110
- * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
3111
- *
3112
- *
3113
- * @remarks If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3114
- *
3115
- * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
3116
- * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
3117
- *
3118
- * Note: If the "name" property is omitted it defaults to "tasks".
3119
- *
3120
- * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
3121
- * uuid or shortcut.name is changed.
3122
- *
3123
- * @example
3124
- *
3125
- * ```js
3126
- * const app = fin.Application.getCurrentSync();
3127
- * const appName = 'My App';
3128
- * const jumpListConfig = [ // array of JumpList categories
3129
- * {
3130
- * // has no name and no type so `type` is assumed to be "tasks"
3131
- * items: [ // array of JumpList items
3132
- * {
3133
- * type: 'task',
3134
- * title: `Launch ${appName}`,
3135
- * description: `Runs ${appName} with the default configuration`,
3136
- * deepLink: 'fins://path.to/app/manifest.json',
3137
- * iconPath: 'https://path.to/app/icon.ico',
3138
- * iconIndex: 0
3139
- * },
3140
- * { type: 'separator' },
3141
- * {
3142
- * type: 'task',
3143
- * title: `Restore ${appName}`,
3144
- * description: 'Restore to last configuration',
3145
- * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
3146
- * iconPath: 'https://path.to/app/icon.ico',
3147
- * iconIndex: 0
3148
- * },
3149
- * ]
3150
- * },
3151
- * {
3152
- * name: 'Tools',
3153
- * items: [ // array of JumpList items
3154
- * {
3155
- * type: 'task',
3156
- * title: 'Tool A',
3157
- * description: 'Runs Tool A',
3158
- * deepLink: 'fins://path.to/tool-a/manifest.json',
3159
- * iconPath: 'https://path.to/tool-a/icon.ico',
3160
- * iconIndex: 0
3161
- * },
3162
- * {
3163
- * type: 'task',
3164
- * title: 'Tool B',
3165
- * description: 'Runs Tool B',
3166
- * deepLink: 'fins://path.to/tool-b/manifest.json',
3167
- * iconPath: 'https://path.to/tool-b/icon.ico',
3168
- * iconIndex: 0
3169
- * }]
3170
- * }
3171
- * ];
3172
- *
3173
- * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
3174
- * ```
3175
- *
3176
- * To handle deeplink args:
3177
- * ```js
3178
- * function handleUseLastConfiguration() {
3179
- * // this handler is called when the app is being launched
3180
- * app.on('run-requested', event => {
3181
- * if(event.userAppConfigArgs['use-last-configuration']) {
3182
- * // your logic here
3183
- * }
3184
- * });
3185
- * // this handler is called when the app was already running when the launch was requested
3186
- * fin.desktop.main(function(args) {
3187
- * if(args && args['use-last-configuration']) {
3188
- * // your logic here
3189
- * }
3190
- * });
3191
- * }
3192
- * ```
3193
- */
3194
- async setJumpList(jumpListCategories) {
3195
- await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
3196
- }
3197
- /**
3198
- * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
3199
- * @param icon Image URL or base64 encoded string to be used as the icon
3200
- *
3201
- * @example
3202
- *
3203
- * ```js
3204
- * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3205
- * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
3206
- * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
3207
- * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
3208
- * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
3209
- *
3210
- * async function setTrayIcon(icon) {
3211
- * const app = await fin.Application.getCurrent();
3212
- * return await app.setTrayIcon(icon);
3213
- * }
3214
- *
3215
- * // use image url to set tray icon
3216
- * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3217
- *
3218
- * // use base64 encoded string to set tray icon
3219
- * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3220
- *
3221
- * // use a dataURL to set tray icon
3222
- * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3223
- * ```
3224
- */
3225
- setTrayIcon(icon) {
3226
- return this.wire
3227
- .sendAction('set-tray-icon', {
3228
- enabledIcon: icon,
3229
- ...this.identity
3230
- })
3231
- .then(() => undefined);
3232
- }
3233
- /**
3234
- * Set hover text for this application's system tray icon.
3235
- * Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
3236
- * @param toolTip
3237
- *
3238
- * @example
3239
- *
3240
- * ```js
3241
- * const app = fin.Application.getCurrentSync();
3242
- * const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3243
- *
3244
- * await app.setTrayIcon(iconUrl);
3245
- *
3246
- * await app.setTrayIconToolTip('My Application');
3247
- * ```
3248
- */
3249
- async setTrayIconToolTip(toolTip) {
3250
- await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
3251
- }
3252
- /**
3253
- * Sets new application's shortcut configuration. Windows only.
3254
- * @param config New application's shortcut configuration.
3255
- *
3256
- * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
3257
- * to be able to change shortcut states.
3258
- *
3259
- * @example
3260
- *
3261
- * ```js
3262
- * async function setShortcuts(config) {
3263
- * const app = await fin.Application.getCurrent();
3264
- * return app.setShortcuts(config);
3265
- * }
3266
- *
3267
- * setShortcuts({
3268
- * desktop: true,
3269
- * startMenu: false,
3270
- * systemStartup: true
3271
- * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
3272
- * ```
3273
- */
3274
- setShortcuts(config) {
3275
- return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
3276
- }
3277
- /**
3278
- * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3279
- * @param queryString The new query string for this app's shortcuts.
3280
- *
3281
- * @example
3282
- *
3283
- * ```js
3284
- * const newQueryArgs = 'arg=true&arg2=false';
3285
- * const app = await fin.Application.getCurrent();
3286
- * try {
3287
- * await app.setShortcutQueryParams(newQueryArgs);
3288
- * } catch(err) {
3289
- * console.error(err)
3290
- * }
3291
- * ```
3292
- */
3293
- async setShortcutQueryParams(queryString) {
3294
- await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3295
- }
3296
- /**
3297
- * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3298
- * larger or smaller to default limits of 300% and 50% of original size, respectively.
3299
- * @param level The zoom level
3300
- *
3301
- * @example
3302
- *
3303
- * ```js
3304
- * async function setZoomLevel(number) {
3305
- * const app = await fin.Application.getCurrent();
3306
- * return await app.setZoomLevel(number);
3307
- * }
3308
- *
3309
- * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3310
- * ```
3311
- */
3312
- setZoomLevel(level) {
3313
- return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3314
- }
3315
- /**
3316
- * Sets a username to correlate with App Log Management.
3317
- * @param username Username to correlate with App's Log.
3318
- *
3319
- * @example
3320
- *
3321
- * ```js
3322
- * async function setAppLogUser() {
3323
- * const app = await fin.Application.getCurrent();
3324
- * return await app.setAppLogUsername('username');
3325
- * }
3326
- *
3327
- * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3328
- *
3329
- * ```
3330
- */
3331
- async setAppLogUsername(username) {
3332
- await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3333
- }
3334
- /**
3335
- * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3336
- * @remarks The only information currently returned is the position and dimensions.
3337
- *
3338
- * @example
3339
- *
3340
- * ```js
3341
- * async function getTrayIconInfo() {
3342
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3343
- * return await app.getTrayIconInfo();
3344
- * }
3345
- * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3346
- * ```
3347
- */
3348
- getTrayIconInfo() {
3349
- return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3350
- }
3351
- /**
3352
- * Checks if the application has an associated tray icon.
3353
- *
3354
- * @example
3355
- *
3356
- * ```js
3357
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3358
- * const hasTrayIcon = await app.hasTrayIcon();
3359
- * console.log(hasTrayIcon);
3360
- * ```
3361
- */
3362
- hasTrayIcon() {
3363
- return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3364
- }
3365
- /**
3366
- * Closes the application by terminating its process.
3367
- *
3368
- * @example
3369
- *
3370
- * ```js
3371
- * async function terminateApp() {
3372
- * const app = await fin.Application.getCurrent();
3373
- * return await app.terminate();
3374
- * }
3375
- * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3376
- * ```
3377
- */
3378
- terminate() {
3379
- return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3380
- }
3381
- /**
3382
- * Waits for a hanging application. This method can be called in response to an application
3383
- * "not-responding" to allow the application to continue and to generate another "not-responding"
3384
- * message after a certain period of time.
3385
- *
3386
- * @ignore
3387
- */
3388
- wait() {
3389
- return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3390
- }
3391
- /**
3392
- * Retrieves information about the application.
3393
- *
3394
- * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3395
- * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3396
- * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3397
- *
3398
- * @example
3399
- *
3400
- * ```js
3401
- * async function getInfo() {
3402
- * const app = await fin.Application.getCurrent();
3403
- * return await app.getInfo();
3404
- * }
3405
- *
3406
- * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3407
- * ```
3408
- */
3409
- getInfo() {
3410
- return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3411
- }
3412
- /**
3413
- * Retrieves all process information for entities (windows and views) associated with an application.
3414
- *
3415
- * @example
3416
- * ```js
3417
- * const app = await fin.Application.getCurrent();
3418
- * const processInfo = await app.getProcessInfo();
3419
- * ```
3420
- * @experimental
3421
- */
3422
- async getProcessInfo() {
3423
- const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3424
- return data;
3425
- }
3426
- /**
3427
- * Sets file auto download location. It's only allowed in the same application.
3428
- *
3429
- * Note: This method is restricted by default and must be enabled via
3430
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3431
- * @param downloadLocation file auto download location
3432
- *
3433
- * @throws if setting file auto download location on different applications.
3434
- * @example
3435
- *
3436
- * ```js
3437
- * const downloadLocation = 'C:\\dev\\temp';
3438
- * const app = await fin.Application.getCurrent();
3439
- * try {
3440
- * await app.setFileDownloadLocation(downloadLocation);
3441
- * console.log('File download location is set');
3442
- * } catch(err) {
3443
- * console.error(err)
3444
- * }
3445
- * ```
3446
- */
3447
- async setFileDownloadLocation(downloadLocation) {
3448
- const { name } = this.wire.me;
3449
- const entityIdentity = { uuid: this.identity.uuid, name };
3450
- await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3451
- }
3452
- /**
3453
- * Gets file auto download location. It's only allowed in the same application. If file auto download location is not set, it will return the default location.
3454
- *
3455
- * Note: This method is restricted by default and must be enabled via
3456
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3457
- *
3458
- * @throws if getting file auto download location on different applications.
3459
- * @example
3460
- *
3461
- * ```js
3462
- * const app = await fin.Application.getCurrent();
3463
- * const fileDownloadDir = await app.getFileDownloadLocation();
3464
- * ```
3465
- */
3466
- async getFileDownloadLocation() {
3467
- const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3468
- return data;
3469
- }
3470
- /**
3471
- * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3472
- * @param options
3473
- * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3474
- * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3475
- * of all possible data shapes for the entire menu, and the click handler should process
3476
- * these with a "reducer" pattern.
3477
- * @throws if the application has no tray icon set
3478
- * @throws if the system tray is currently hidden
3479
- * @example
3480
- *
3481
- * ```js
3482
- * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3483
- * const app = fin.Application.getCurrentSync();
3484
- *
3485
- * await app.setTrayIcon(iconUrl);
3486
- *
3487
- * const template = [
3488
- * {
3489
- * label: 'Menu Item 1',
3490
- * data: 'hello from item 1'
3491
- * },
3492
- * { type: 'separator' },
3493
- * {
3494
- * label: 'Menu Item 2',
3495
- * type: 'checkbox',
3496
- * checked: true,
3497
- * data: 'The user clicked the checkbox'
3498
- * },
3499
- * {
3500
- * label: 'see more',
3501
- * enabled: false,
3502
- * submenu: [
3503
- * { label: 'submenu 1', data: 'hello from submenu' }
3504
- * ]
3505
- * }
3506
- * ];
3507
- *
3508
- * app.addListener('tray-icon-clicked', (event) => {
3509
- * // right-click
3510
- * if (event.button === 2) {
3511
- * app.showTrayIconPopupMenu({ template }).then(r => {
3512
- * if (r.result === 'closed') {
3513
- * console.log('nothing happened');
3514
- * } else {
3515
- * console.log(r.data);
3516
- * }
3517
- * });
3518
- * }
3519
- * });
3520
- * ```
3521
- */
3522
- async showTrayIconPopupMenu(options) {
3523
- const { name } = this.wire.me;
3524
- const entityIdentity = { uuid: this.identity.uuid, name };
3525
- const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3526
- return payload.data;
3527
- }
3528
- /**
3529
- * Closes the tray icon menu.
3530
- *
3531
- * @throws if the application has no tray icon set
3532
- * @example
3533
- *
3534
- * ```js
3535
- * const app = fin.Application.getCurrentSync();
3536
- *
3537
- * await app.closeTrayIconPopupMenu();
3538
- * ```
3539
- */
3540
- async closeTrayIconPopupMenu() {
3541
- const { name } = this.wire.me;
3542
- const entityIdentity = { uuid: this.identity.uuid, name };
3543
- await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3544
- }
3545
- }
3546
- Instance$6.Application = Application;
3547
- return Instance$6;
2743
+ Object.defineProperty(Instance$6, "__esModule", { value: true });
2744
+ Instance$6.Application = void 0;
2745
+ /* eslint-disable import/prefer-default-export */
2746
+ const base_1$k = base;
2747
+ const window_1$1 = requireWindow();
2748
+ const view_1 = requireView();
2749
+ /**
2750
+ * An object representing an application. Allows the developer to create,
2751
+ * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2752
+ */
2753
+ class Application extends base_1$k.EmitterBase {
2754
+ /**
2755
+ * @internal
2756
+ */
2757
+ constructor(wire, identity) {
2758
+ super(wire, 'application', identity.uuid);
2759
+ this.identity = identity;
2760
+ this.window = new window_1$1._Window(this.wire, {
2761
+ uuid: this.identity.uuid,
2762
+ name: this.identity.uuid
2763
+ });
2764
+ }
2765
+ windowListFromIdentityList(identityList) {
2766
+ const windowList = [];
2767
+ identityList.forEach((identity) => {
2768
+ windowList.push(new window_1$1._Window(this.wire, {
2769
+ uuid: identity.uuid,
2770
+ name: identity.name
2771
+ }));
2772
+ });
2773
+ return windowList;
2774
+ }
2775
+ /**
2776
+ * Determines if the application is currently running.
2777
+ *
2778
+ * @example
2779
+ *
2780
+ * ```js
2781
+ * async function isAppRunning() {
2782
+ * const app = await fin.Application.getCurrent();
2783
+ * return await app.isRunning();
2784
+ * }
2785
+ * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2786
+ * ```
2787
+ */
2788
+ isRunning() {
2789
+ return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2790
+ }
2791
+ /**
2792
+ * Closes the application and any child windows created by the application.
2793
+ * Cleans the application from state so it is no longer found in getAllApplications.
2794
+ * @param force Close will be prevented from closing when force is false and
2795
+ * ‘close-requested’ has been subscribed to for application’s main window.
2796
+ *
2797
+ * @example
2798
+ *
2799
+ * ```js
2800
+ * async function closeApp() {
2801
+ * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2802
+ * const app = await fin.Application.wrap({uuid: 'app2'});
2803
+ * await app.quit();
2804
+ * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2805
+ *
2806
+ * }
2807
+ * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2808
+ * ```
2809
+ */
2810
+ async quit(force = false) {
2811
+ try {
2812
+ await this._close(force);
2813
+ await this.wire.sendAction('destroy-application', { force, ...this.identity });
2814
+ }
2815
+ catch (error) {
2816
+ const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2817
+ if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2818
+ throw error;
2819
+ }
2820
+ }
2821
+ }
2822
+ async _close(force = false) {
2823
+ try {
2824
+ await this.wire.sendAction('close-application', { force, ...this.identity });
2825
+ }
2826
+ catch (error) {
2827
+ if (!error.message.includes('Remote connection has closed')) {
2828
+ throw error;
2829
+ }
2830
+ }
2831
+ }
2832
+ /**
2833
+ * @deprecated use Application.quit instead
2834
+ * Closes the application and any child windows created by the application.
2835
+ * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2836
+ * @param callback - called if the method succeeds.
2837
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2838
+ *
2839
+ * @example
2840
+ *
2841
+ * ```js
2842
+ * async function closeApp() {
2843
+ * const app = await fin.Application.getCurrent();
2844
+ * return await app.close();
2845
+ * }
2846
+ * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2847
+ * ```
2848
+ */
2849
+ close(force = false) {
2850
+ console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2851
+ this.wire.sendAction('application-close', this.identity).catch((e) => {
2852
+ // we do not want to expose this error, just continue if this analytics-only call fails
2853
+ });
2854
+ return this._close(force);
2855
+ }
2856
+ /**
2857
+ * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2858
+ *
2859
+ * @example
2860
+ *
2861
+ * ```js
2862
+ * async function getChildWindows() {
2863
+ * const app = await fin.Application.getCurrent();
2864
+ * return await app.getChildWindows();
2865
+ * }
2866
+ *
2867
+ * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2868
+ * ```
2869
+ */
2870
+ getChildWindows() {
2871
+ return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2872
+ const identityList = [];
2873
+ payload.data.forEach((winName) => {
2874
+ identityList.push({ uuid: this.identity.uuid, name: winName });
2875
+ });
2876
+ return this.windowListFromIdentityList(identityList);
2877
+ });
2878
+ }
2879
+ /**
2880
+ * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2881
+ * if the application was not created from a manifest.
2882
+ *
2883
+ * @example
2884
+ *
2885
+ * ```js
2886
+ * async function getManifest() {
2887
+ * const app = await fin.Application.getCurrent();
2888
+ * return await app.getManifest();
2889
+ * }
2890
+ *
2891
+ * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2892
+ * ```
2893
+ */
2894
+ getManifest() {
2895
+ return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2896
+ }
2897
+ /**
2898
+ * Retrieves UUID of the application that launches this application. Invokes the error callback
2899
+ * if the application was created from a manifest.
2900
+ *
2901
+ * @example
2902
+ *
2903
+ * ```js
2904
+ * async function getParentUuid() {
2905
+ * const app = await fin.Application.start({
2906
+ * uuid: 'app-1',
2907
+ * name: 'myApp',
2908
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2909
+ * autoShow: true
2910
+ * });
2911
+ * return await app.getParentUuid();
2912
+ * }
2913
+ *
2914
+ * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2915
+ * ```
2916
+ */
2917
+ getParentUuid() {
2918
+ return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2919
+ }
2920
+ /**
2921
+ * Retrieves current application's shortcut configuration.
2922
+ *
2923
+ * @example
2924
+ *
2925
+ * ```js
2926
+ * async function getShortcuts() {
2927
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
2928
+ * return await app.getShortcuts();
2929
+ * }
2930
+ * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2931
+ * ```
2932
+ */
2933
+ getShortcuts() {
2934
+ return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2935
+ }
2936
+ /**
2937
+ * Retrieves current application's views.
2938
+ * @experimental
2939
+ *
2940
+ * @example
2941
+ *
2942
+ * ```js
2943
+ * async function getViews() {
2944
+ * const app = await fin.Application.getCurrent();
2945
+ * return await app.getViews();
2946
+ * }
2947
+ * getViews().then(views => console.log(views)).catch(err => console.log(err));
2948
+ * ```
2949
+ */
2950
+ async getViews() {
2951
+ const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2952
+ return payload.data.map((id) => new view_1.View(this.wire, id));
2953
+ }
2954
+ /**
2955
+ * Returns the current zoom level of the application.
2956
+ *
2957
+ * @example
2958
+ *
2959
+ * ```js
2960
+ * async function getZoomLevel() {
2961
+ * const app = await fin.Application.getCurrent();
2962
+ * return await app.getZoomLevel();
2963
+ * }
2964
+ *
2965
+ * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2966
+ * ```
2967
+ */
2968
+ getZoomLevel() {
2969
+ return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2970
+ }
2971
+ /**
2972
+ * Returns an instance of the main Window of the application
2973
+ *
2974
+ * @example
2975
+ *
2976
+ * ```js
2977
+ * async function getWindow() {
2978
+ * const app = await fin.Application.start({
2979
+ * uuid: 'app-1',
2980
+ * name: 'myApp',
2981
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2982
+ * autoShow: true
2983
+ * });
2984
+ * return await app.getWindow();
2985
+ * }
2986
+ *
2987
+ * getWindow().then(win => {
2988
+ * win.showAt(0, 400);
2989
+ * win.flash();
2990
+ * }).catch(err => console.log(err));
2991
+ * ```
2992
+ */
2993
+ getWindow() {
2994
+ this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2995
+ // we do not want to expose this error, just continue if this analytics-only call fails
2996
+ });
2997
+ return Promise.resolve(this.window);
2998
+ }
2999
+ /**
3000
+ * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
3001
+ * @param userName - username to be passed to the RVM.
3002
+ * @param appName - app name to be passed to the RVM.
3003
+ *
3004
+ * @example
3005
+ *
3006
+ * ```js
3007
+ * async function registerUser() {
3008
+ * const app = await fin.Application.getCurrent();
3009
+ * return await app.registerUser('user', 'myApp');
3010
+ * }
3011
+ *
3012
+ * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
3013
+ * ```
3014
+ */
3015
+ registerUser(userName, appName) {
3016
+ return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
3017
+ }
3018
+ /**
3019
+ * Removes the application’s icon from the tray.
3020
+ *
3021
+ * @example
3022
+ *
3023
+ * ```js
3024
+ * async function removeTrayIcon() {
3025
+ * const app = await fin.Application.getCurrent();
3026
+ * return await app.removeTrayIcon();
3027
+ * }
3028
+ *
3029
+ * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
3030
+ * ```
3031
+ */
3032
+ removeTrayIcon() {
3033
+ return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
3034
+ }
3035
+ /**
3036
+ * Restarts the application.
3037
+ *
3038
+ * @example
3039
+ *
3040
+ * ```js
3041
+ * async function restartApp() {
3042
+ * const app = await fin.Application.getCurrent();
3043
+ * return await app.restart();
3044
+ * }
3045
+ * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
3046
+ * ```
3047
+ */
3048
+ restart() {
3049
+ return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
3050
+ }
3051
+ /**
3052
+ * DEPRECATED method to run the application.
3053
+ * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
3054
+ *
3055
+ * @example
3056
+ *
3057
+ * ```js
3058
+ * async function run() {
3059
+ * const app = await fin.Application.create({
3060
+ * name: 'myApp',
3061
+ * uuid: 'app-1',
3062
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
3063
+ * autoShow: true
3064
+ * });
3065
+ * await app.run();
3066
+ * }
3067
+ * run().then(() => console.log('Application is running')).catch(err => console.log(err));
3068
+ * ```
3069
+ *
3070
+ * @ignore
3071
+ */
3072
+ run() {
3073
+ console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
3074
+ this.wire.sendAction('application-run', this.identity).catch((e) => {
3075
+ // we do not want to expose this error, just continue if this analytics-only call fails
3076
+ });
3077
+ return this._run();
3078
+ }
3079
+ _run(opts = {}) {
3080
+ return this.wire
3081
+ .sendAction('run-application', {
3082
+ manifestUrl: this._manifestUrl,
3083
+ opts,
3084
+ ...this.identity
3085
+ })
3086
+ .then(() => undefined);
3087
+ }
3088
+ /**
3089
+ * Instructs the RVM to schedule one restart of the application.
3090
+ *
3091
+ * @example
3092
+ *
3093
+ * ```js
3094
+ * async function scheduleRestart() {
3095
+ * const app = await fin.Application.getCurrent();
3096
+ * return await app.scheduleRestart();
3097
+ * }
3098
+ *
3099
+ * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
3100
+ * ```
3101
+ */
3102
+ scheduleRestart() {
3103
+ return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
3104
+ }
3105
+ /**
3106
+ * Sends a message to the RVM to upload the application's logs. On success,
3107
+ * an object containing logId is returned.
3108
+ *
3109
+ * @example
3110
+ *
3111
+ * ```js
3112
+ * async function sendLog() {
3113
+ * const app = await fin.Application.getCurrent();
3114
+ * return await app.sendApplicationLog();
3115
+ * }
3116
+ *
3117
+ * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
3118
+ * ```
3119
+ */
3120
+ async sendApplicationLog() {
3121
+ const { payload } = await this.wire.sendAction('send-application-log', this.identity);
3122
+ return payload.data;
3123
+ }
3124
+ /**
3125
+ * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
3126
+ * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3127
+ *
3128
+ * Note: If the "name" property is omitted it defaults to "tasks".
3129
+ * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
3130
+ *
3131
+ *
3132
+ * @remarks If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
3133
+ *
3134
+ * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
3135
+ * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
3136
+ *
3137
+ * Note: If the "name" property is omitted it defaults to "tasks".
3138
+ *
3139
+ * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
3140
+ * uuid or shortcut.name is changed.
3141
+ *
3142
+ * @example
3143
+ *
3144
+ * ```js
3145
+ * const app = fin.Application.getCurrentSync();
3146
+ * const appName = 'My App';
3147
+ * const jumpListConfig = [ // array of JumpList categories
3148
+ * {
3149
+ * // has no name and no type so `type` is assumed to be "tasks"
3150
+ * items: [ // array of JumpList items
3151
+ * {
3152
+ * type: 'task',
3153
+ * title: `Launch ${appName}`,
3154
+ * description: `Runs ${appName} with the default configuration`,
3155
+ * deepLink: 'fins://path.to/app/manifest.json',
3156
+ * iconPath: 'https://path.to/app/icon.ico',
3157
+ * iconIndex: 0
3158
+ * },
3159
+ * { type: 'separator' },
3160
+ * {
3161
+ * type: 'task',
3162
+ * title: `Restore ${appName}`,
3163
+ * description: 'Restore to last configuration',
3164
+ * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
3165
+ * iconPath: 'https://path.to/app/icon.ico',
3166
+ * iconIndex: 0
3167
+ * },
3168
+ * ]
3169
+ * },
3170
+ * {
3171
+ * name: 'Tools',
3172
+ * items: [ // array of JumpList items
3173
+ * {
3174
+ * type: 'task',
3175
+ * title: 'Tool A',
3176
+ * description: 'Runs Tool A',
3177
+ * deepLink: 'fins://path.to/tool-a/manifest.json',
3178
+ * iconPath: 'https://path.to/tool-a/icon.ico',
3179
+ * iconIndex: 0
3180
+ * },
3181
+ * {
3182
+ * type: 'task',
3183
+ * title: 'Tool B',
3184
+ * description: 'Runs Tool B',
3185
+ * deepLink: 'fins://path.to/tool-b/manifest.json',
3186
+ * iconPath: 'https://path.to/tool-b/icon.ico',
3187
+ * iconIndex: 0
3188
+ * }]
3189
+ * }
3190
+ * ];
3191
+ *
3192
+ * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
3193
+ * ```
3194
+ *
3195
+ * To handle deeplink args:
3196
+ * ```js
3197
+ * function handleUseLastConfiguration() {
3198
+ * // this handler is called when the app is being launched
3199
+ * app.on('run-requested', event => {
3200
+ * if(event.userAppConfigArgs['use-last-configuration']) {
3201
+ * // your logic here
3202
+ * }
3203
+ * });
3204
+ * // this handler is called when the app was already running when the launch was requested
3205
+ * fin.desktop.main(function(args) {
3206
+ * if(args && args['use-last-configuration']) {
3207
+ * // your logic here
3208
+ * }
3209
+ * });
3210
+ * }
3211
+ * ```
3212
+ */
3213
+ async setJumpList(jumpListCategories) {
3214
+ await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
3215
+ }
3216
+ /**
3217
+ * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
3218
+ * @param icon Image URL or base64 encoded string to be used as the icon
3219
+ *
3220
+ * @example
3221
+ *
3222
+ * ```js
3223
+ * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3224
+ * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
3225
+ * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
3226
+ * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
3227
+ * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
3228
+ *
3229
+ * async function setTrayIcon(icon) {
3230
+ * const app = await fin.Application.getCurrent();
3231
+ * return await app.setTrayIcon(icon);
3232
+ * }
3233
+ *
3234
+ * // use image url to set tray icon
3235
+ * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3236
+ *
3237
+ * // use base64 encoded string to set tray icon
3238
+ * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3239
+ *
3240
+ * // use a dataURL to set tray icon
3241
+ * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
3242
+ * ```
3243
+ */
3244
+ setTrayIcon(icon) {
3245
+ return this.wire
3246
+ .sendAction('set-tray-icon', {
3247
+ enabledIcon: icon,
3248
+ ...this.identity
3249
+ })
3250
+ .then(() => undefined);
3251
+ }
3252
+ /**
3253
+ * Set hover text for this application's system tray icon.
3254
+ * Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
3255
+ * @param toolTip
3256
+ *
3257
+ * @example
3258
+ *
3259
+ * ```js
3260
+ * const app = fin.Application.getCurrentSync();
3261
+ * const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
3262
+ *
3263
+ * await app.setTrayIcon(iconUrl);
3264
+ *
3265
+ * await app.setTrayIconToolTip('My Application');
3266
+ * ```
3267
+ */
3268
+ async setTrayIconToolTip(toolTip) {
3269
+ await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
3270
+ }
3271
+ /**
3272
+ * Sets new application's shortcut configuration. Windows only.
3273
+ * @param config New application's shortcut configuration.
3274
+ *
3275
+ * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
3276
+ * to be able to change shortcut states.
3277
+ *
3278
+ * @example
3279
+ *
3280
+ * ```js
3281
+ * async function setShortcuts(config) {
3282
+ * const app = await fin.Application.getCurrent();
3283
+ * return app.setShortcuts(config);
3284
+ * }
3285
+ *
3286
+ * setShortcuts({
3287
+ * desktop: true,
3288
+ * startMenu: false,
3289
+ * systemStartup: true
3290
+ * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
3291
+ * ```
3292
+ */
3293
+ setShortcuts(config) {
3294
+ return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
3295
+ }
3296
+ /**
3297
+ * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3298
+ * @param queryString The new query string for this app's shortcuts.
3299
+ *
3300
+ * @example
3301
+ *
3302
+ * ```js
3303
+ * const newQueryArgs = 'arg=true&arg2=false';
3304
+ * const app = await fin.Application.getCurrent();
3305
+ * try {
3306
+ * await app.setShortcutQueryParams(newQueryArgs);
3307
+ * } catch(err) {
3308
+ * console.error(err)
3309
+ * }
3310
+ * ```
3311
+ */
3312
+ async setShortcutQueryParams(queryString) {
3313
+ await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3314
+ }
3315
+ /**
3316
+ * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3317
+ * larger or smaller to default limits of 300% and 50% of original size, respectively.
3318
+ * @param level The zoom level
3319
+ *
3320
+ * @example
3321
+ *
3322
+ * ```js
3323
+ * async function setZoomLevel(number) {
3324
+ * const app = await fin.Application.getCurrent();
3325
+ * return await app.setZoomLevel(number);
3326
+ * }
3327
+ *
3328
+ * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3329
+ * ```
3330
+ */
3331
+ setZoomLevel(level) {
3332
+ return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3333
+ }
3334
+ /**
3335
+ * Sets a username to correlate with App Log Management.
3336
+ * @param username Username to correlate with App's Log.
3337
+ *
3338
+ * @example
3339
+ *
3340
+ * ```js
3341
+ * async function setAppLogUser() {
3342
+ * const app = await fin.Application.getCurrent();
3343
+ * return await app.setAppLogUsername('username');
3344
+ * }
3345
+ *
3346
+ * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3347
+ *
3348
+ * ```
3349
+ */
3350
+ async setAppLogUsername(username) {
3351
+ await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3352
+ }
3353
+ /**
3354
+ * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3355
+ * @remarks The only information currently returned is the position and dimensions.
3356
+ *
3357
+ * @example
3358
+ *
3359
+ * ```js
3360
+ * async function getTrayIconInfo() {
3361
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3362
+ * return await app.getTrayIconInfo();
3363
+ * }
3364
+ * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3365
+ * ```
3366
+ */
3367
+ getTrayIconInfo() {
3368
+ return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3369
+ }
3370
+ /**
3371
+ * Checks if the application has an associated tray icon.
3372
+ *
3373
+ * @example
3374
+ *
3375
+ * ```js
3376
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3377
+ * const hasTrayIcon = await app.hasTrayIcon();
3378
+ * console.log(hasTrayIcon);
3379
+ * ```
3380
+ */
3381
+ hasTrayIcon() {
3382
+ return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3383
+ }
3384
+ /**
3385
+ * Closes the application by terminating its process.
3386
+ *
3387
+ * @example
3388
+ *
3389
+ * ```js
3390
+ * async function terminateApp() {
3391
+ * const app = await fin.Application.getCurrent();
3392
+ * return await app.terminate();
3393
+ * }
3394
+ * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3395
+ * ```
3396
+ */
3397
+ terminate() {
3398
+ return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3399
+ }
3400
+ /**
3401
+ * Waits for a hanging application. This method can be called in response to an application
3402
+ * "not-responding" to allow the application to continue and to generate another "not-responding"
3403
+ * message after a certain period of time.
3404
+ *
3405
+ * @ignore
3406
+ */
3407
+ wait() {
3408
+ return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3409
+ }
3410
+ /**
3411
+ * Retrieves information about the application.
3412
+ *
3413
+ * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3414
+ * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3415
+ * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3416
+ *
3417
+ * @example
3418
+ *
3419
+ * ```js
3420
+ * async function getInfo() {
3421
+ * const app = await fin.Application.getCurrent();
3422
+ * return await app.getInfo();
3423
+ * }
3424
+ *
3425
+ * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3426
+ * ```
3427
+ */
3428
+ getInfo() {
3429
+ return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3430
+ }
3431
+ /**
3432
+ * Retrieves all process information for entities (windows and views) associated with an application.
3433
+ *
3434
+ * @example
3435
+ * ```js
3436
+ * const app = await fin.Application.getCurrent();
3437
+ * const processInfo = await app.getProcessInfo();
3438
+ * ```
3439
+ * @experimental
3440
+ */
3441
+ async getProcessInfo() {
3442
+ const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3443
+ return data;
3444
+ }
3445
+ /**
3446
+ * Sets file auto download location. It's only allowed in the same application.
3447
+ *
3448
+ * Note: This method is restricted by default and must be enabled via
3449
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3450
+ * @param downloadLocation file auto download location
3451
+ *
3452
+ * @throws if setting file auto download location on different applications.
3453
+ * @example
3454
+ *
3455
+ * ```js
3456
+ * const downloadLocation = 'C:\\dev\\temp';
3457
+ * const app = await fin.Application.getCurrent();
3458
+ * try {
3459
+ * await app.setFileDownloadLocation(downloadLocation);
3460
+ * console.log('File download location is set');
3461
+ * } catch(err) {
3462
+ * console.error(err)
3463
+ * }
3464
+ * ```
3465
+ */
3466
+ async setFileDownloadLocation(downloadLocation) {
3467
+ const { name } = this.wire.me;
3468
+ const entityIdentity = { uuid: this.identity.uuid, name };
3469
+ await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3470
+ }
3471
+ /**
3472
+ * Gets file auto download location. It's only allowed in the same application. If file auto download location is not set, it will return the default location.
3473
+ *
3474
+ * Note: This method is restricted by default and must be enabled via
3475
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3476
+ *
3477
+ * @throws if getting file auto download location on different applications.
3478
+ * @example
3479
+ *
3480
+ * ```js
3481
+ * const app = await fin.Application.getCurrent();
3482
+ * const fileDownloadDir = await app.getFileDownloadLocation();
3483
+ * ```
3484
+ */
3485
+ async getFileDownloadLocation() {
3486
+ const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3487
+ return data;
3488
+ }
3489
+ /**
3490
+ * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3491
+ * @param options
3492
+ * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3493
+ * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3494
+ * of all possible data shapes for the entire menu, and the click handler should process
3495
+ * these with a "reducer" pattern.
3496
+ * @throws if the application has no tray icon set
3497
+ * @throws if the system tray is currently hidden
3498
+ * @example
3499
+ *
3500
+ * ```js
3501
+ * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3502
+ * const app = fin.Application.getCurrentSync();
3503
+ *
3504
+ * await app.setTrayIcon(iconUrl);
3505
+ *
3506
+ * const template = [
3507
+ * {
3508
+ * label: 'Menu Item 1',
3509
+ * data: 'hello from item 1'
3510
+ * },
3511
+ * { type: 'separator' },
3512
+ * {
3513
+ * label: 'Menu Item 2',
3514
+ * type: 'checkbox',
3515
+ * checked: true,
3516
+ * data: 'The user clicked the checkbox'
3517
+ * },
3518
+ * {
3519
+ * label: 'see more',
3520
+ * enabled: false,
3521
+ * submenu: [
3522
+ * { label: 'submenu 1', data: 'hello from submenu' }
3523
+ * ]
3524
+ * }
3525
+ * ];
3526
+ *
3527
+ * app.addListener('tray-icon-clicked', (event) => {
3528
+ * // right-click
3529
+ * if (event.button === 2) {
3530
+ * app.showTrayIconPopupMenu({ template }).then(r => {
3531
+ * if (r.result === 'closed') {
3532
+ * console.log('nothing happened');
3533
+ * } else {
3534
+ * console.log(r.data);
3535
+ * }
3536
+ * });
3537
+ * }
3538
+ * });
3539
+ * ```
3540
+ */
3541
+ async showTrayIconPopupMenu(options) {
3542
+ const { name } = this.wire.me;
3543
+ const entityIdentity = { uuid: this.identity.uuid, name };
3544
+ const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3545
+ return payload.data;
3546
+ }
3547
+ /**
3548
+ * Closes the tray icon menu.
3549
+ *
3550
+ * @throws if the application has no tray icon set
3551
+ * @example
3552
+ *
3553
+ * ```js
3554
+ * const app = fin.Application.getCurrentSync();
3555
+ *
3556
+ * await app.closeTrayIconPopupMenu();
3557
+ * ```
3558
+ */
3559
+ async closeTrayIconPopupMenu() {
3560
+ const { name } = this.wire.me;
3561
+ const entityIdentity = { uuid: this.identity.uuid, name };
3562
+ await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3563
+ }
3564
+ }
3565
+ Instance$6.Application = Application;
3566
+
3567
+ Object.defineProperty(Factory$7, "__esModule", { value: true });
3568
+ Factory$7.ApplicationModule = void 0;
3569
+ const base_1$j = base;
3570
+ const validate_1$4 = validate;
3571
+ const Instance_1$5 = Instance$6;
3572
+ /**
3573
+ * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3574
+ */
3575
+ class ApplicationModule extends base_1$j.Base {
3576
+ /**
3577
+ * Asynchronously returns an API handle for the given Application identity.
3578
+ *
3579
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3580
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3581
+ * for an Application throughout its entire lifecycle.
3582
+ *
3583
+ * @example
3584
+ *
3585
+ * ```js
3586
+ * fin.Application.wrap({ uuid: 'testapp' })
3587
+ * .then(app => app.isRunning())
3588
+ * .then(running => console.log('Application is running: ' + running))
3589
+ * .catch(err => console.log(err));
3590
+ * ```
3591
+ *
3592
+ */
3593
+ async wrap(identity) {
3594
+ this.wire.sendAction('wrap-application').catch((e) => {
3595
+ // we do not want to expose this error, just continue if this analytics-only call fails
3596
+ });
3597
+ const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3598
+ if (errorMsg) {
3599
+ throw new Error(errorMsg);
3600
+ }
3601
+ return new Instance_1$5.Application(this.wire, identity);
3602
+ }
3603
+ /**
3604
+ * Synchronously returns an API handle for the given Application identity.
3605
+ *
3606
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3607
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3608
+ * for an Aplication throughout its entire lifecycle.
3609
+ *
3610
+ * @example
3611
+ *
3612
+ * ```js
3613
+ * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3614
+ * await app.close();
3615
+ * ```
3616
+ *
3617
+ */
3618
+ wrapSync(identity) {
3619
+ this.wire.sendAction('wrap-application-sync').catch((e) => {
3620
+ // we do not want to expose this error, just continue if this analytics-only call fails
3621
+ });
3622
+ const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3623
+ if (errorMsg) {
3624
+ throw new Error(errorMsg);
3625
+ }
3626
+ return new Instance_1$5.Application(this.wire, identity);
3627
+ }
3628
+ async _create(appOptions) {
3629
+ // set defaults:
3630
+ if (appOptions.waitForPageLoad === undefined) {
3631
+ appOptions.waitForPageLoad = false;
3632
+ }
3633
+ if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3634
+ appOptions.autoShow = true;
3635
+ }
3636
+ await this.wire.sendAction('create-application', appOptions);
3637
+ return this.wrap({ uuid: appOptions.uuid });
3638
+ }
3639
+ /**
3640
+ * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3641
+ *
3642
+ * @example
3643
+ *
3644
+ * ```js
3645
+ * async function createApp() {
3646
+ * const app = await fin.Application.create({
3647
+ * name: 'myApp',
3648
+ * uuid: 'app-3',
3649
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3650
+ * autoShow: true
3651
+ * });
3652
+ * await app.run();
3653
+ * }
3654
+ *
3655
+ * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3656
+ * ```
3657
+ *
3658
+ * @ignore
3659
+ */
3660
+ create(appOptions) {
3661
+ console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3662
+ this.wire.sendAction('application-create').catch((e) => {
3663
+ // we do not want to expose this error, just continue if this analytics-only call fails
3664
+ });
3665
+ return this._create(appOptions);
3666
+ }
3667
+ /**
3668
+ * Creates and starts a new Application.
3669
+ *
3670
+ * @example
3671
+ *
3672
+ * ```js
3673
+ * async function start() {
3674
+ * return fin.Application.start({
3675
+ * name: 'app-1',
3676
+ * uuid: 'app-1',
3677
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3678
+ * autoShow: true
3679
+ * });
3680
+ * }
3681
+ * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3682
+ * ```
3683
+ *
3684
+ */
3685
+ async start(appOptions) {
3686
+ this.wire.sendAction('start-application').catch((e) => {
3687
+ // we do not want to expose this error, just continue if this analytics-only call fails
3688
+ });
3689
+ const app = await this._create(appOptions);
3690
+ await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3691
+ return app;
3692
+ }
3693
+ /**
3694
+ * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3695
+ * Returns once the RVM is finished attempting to launch the applications.
3696
+ * @param opts - Parameters that the RVM will use.
3697
+ *
3698
+ * @example
3699
+ *
3700
+ * ```js
3701
+ *
3702
+ * const applicationInfoArray = [
3703
+ * {
3704
+ * "uuid": 'App-1',
3705
+ * "manifestUrl": 'http://localhost:5555/app1.json',
3706
+ * },
3707
+ * {
3708
+ * "uuid": 'App-2',
3709
+ * "manifestUrl": 'http://localhost:5555/app2.json',
3710
+ * },
3711
+ * {
3712
+ * "uuid": 'App-3',
3713
+ * "manifestUrl": 'http://localhost:5555/app3.json',
3714
+ * }
3715
+ * ]
3716
+ *
3717
+ * fin.Application.startManyManifests(applicationInfoArray)
3718
+ * .then(() => {
3719
+ * console.log('RVM has finished launching the application list.');
3720
+ * })
3721
+ * .catch((err) => {
3722
+ * console.log(err);
3723
+ * })
3724
+ * ```
3725
+ *
3726
+ * @experimental
3727
+ */
3728
+ async startManyManifests(applications, opts) {
3729
+ return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3730
+ }
3731
+ /**
3732
+ * Asynchronously returns an Application object that represents the current application
3733
+ *
3734
+ * @example
3735
+ *
3736
+ * ```js
3737
+ * async function isCurrentAppRunning () {
3738
+ * const app = await fin.Application.getCurrent();
3739
+ * return app.isRunning();
3740
+ * }
3741
+ *
3742
+ * isCurrentAppRunning().then(running => {
3743
+ * console.log(`Current app is running: ${running}`);
3744
+ * }).catch(err => {
3745
+ * console.error(err);
3746
+ * });
3747
+ *
3748
+ * ```
3749
+ */
3750
+ getCurrent() {
3751
+ this.wire.sendAction('get-current-application').catch((e) => {
3752
+ // we do not want to expose this error, just continue if this analytics-only call fails
3753
+ });
3754
+ return this.wrap({ uuid: this.wire.me.uuid });
3755
+ }
3756
+ /**
3757
+ * Synchronously returns an Application object that represents the current application
3758
+ *
3759
+ * @example
3760
+ *
3761
+ * ```js
3762
+ * async function isCurrentAppRunning () {
3763
+ * const app = fin.Application.getCurrentSync();
3764
+ * return app.isRunning();
3765
+ * }
3766
+ *
3767
+ * isCurrentAppRunning().then(running => {
3768
+ * console.log(`Current app is running: ${running}`);
3769
+ * }).catch(err => {
3770
+ * console.error(err);
3771
+ * });
3772
+ *
3773
+ * ```
3774
+ */
3775
+ getCurrentSync() {
3776
+ this.wire.sendAction('get-current-application-sync').catch((e) => {
3777
+ // we do not want to expose this error, just continue if this analytics-only call fails
3778
+ });
3779
+ return this.wrapSync({ uuid: this.wire.me.uuid });
3780
+ }
3781
+ /**
3782
+ * Retrieves application's manifest and returns a running instance of the application.
3783
+ * @param manifestUrl - The URL of app's manifest.
3784
+ * @param opts - Parameters that the RVM will use.
3785
+ *
3786
+ * @example
3787
+ *
3788
+ * ```js
3789
+ * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3790
+ *
3791
+ * // For a local manifest file:
3792
+ * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3793
+ * ```
3794
+ */
3795
+ async startFromManifest(manifestUrl, opts) {
3796
+ this.wire.sendAction('application-start-from-manifest').catch((e) => {
3797
+ // we do not want to expose this error, just continue if this analytics-only call fails
3798
+ });
3799
+ const app = await this._createFromManifest(manifestUrl);
3800
+ // @ts-expect-error using private method without warning.
3801
+ await app._run(opts); // eslint-disable-line no-underscore-dangle
3802
+ return app;
3803
+ }
3804
+ /**
3805
+ * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3806
+ * Retrieves application's manifest and returns a wrapped application.
3807
+ * @param manifestUrl - The URL of app's manifest.
3808
+ * @param callback - called if the method succeeds.
3809
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3810
+ *
3811
+ * @example
3812
+ *
3813
+ * ```js
3814
+ * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3815
+ * ```
3816
+ * @ignore
3817
+ */
3818
+ createFromManifest(manifestUrl) {
3819
+ console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3820
+ this.wire.sendAction('application-create-from-manifest').catch((e) => {
3821
+ // we do not want to expose this error, just continue if this analytics-only call fails
3822
+ });
3823
+ return this._createFromManifest(manifestUrl);
3824
+ }
3825
+ _createFromManifest(manifestUrl) {
3826
+ return this.wire
3827
+ .sendAction('get-application-manifest', { manifestUrl })
3828
+ .then(({ payload }) => {
3829
+ const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3830
+ return this.wrap({ uuid });
3831
+ })
3832
+ .then((app) => {
3833
+ app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3834
+ return app;
3835
+ });
3836
+ }
3548
3837
  }
3838
+ Factory$7.ApplicationModule = ApplicationModule;
3549
3839
 
3550
- var hasRequiredFactory$2;
3551
-
3552
- function requireFactory$2 () {
3553
- if (hasRequiredFactory$2) return Factory$7;
3554
- hasRequiredFactory$2 = 1;
3555
- Object.defineProperty(Factory$7, "__esModule", { value: true });
3556
- Factory$7.ApplicationModule = void 0;
3557
- const base_1 = base;
3558
- const validate_1 = validate;
3559
- const Instance_1 = requireInstance$1();
3840
+ (function (exports) {
3841
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3842
+ if (k2 === undefined) k2 = k;
3843
+ var desc = Object.getOwnPropertyDescriptor(m, k);
3844
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3845
+ desc = { enumerable: true, get: function() { return m[k]; } };
3846
+ }
3847
+ Object.defineProperty(o, k2, desc);
3848
+ }) : (function(o, m, k, k2) {
3849
+ if (k2 === undefined) k2 = k;
3850
+ o[k2] = m[k];
3851
+ }));
3852
+ var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3853
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3854
+ };
3855
+ Object.defineProperty(exports, "__esModule", { value: true });
3560
3856
  /**
3561
- * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3857
+ * Entry points for the OpenFin `Application` API (`fin.Application`).
3858
+ *
3859
+ * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3860
+ * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3861
+ *
3862
+ * These are separate code entities, and are documented separately. In the [previous version of the API documentation](https://cdn.openfin.co/docs/javascript/32.114.76.10/index.html),
3863
+ * both of these were documented on the same page.
3864
+ *
3865
+ * @packageDocumentation
3562
3866
  */
3563
- class ApplicationModule extends base_1.Base {
3564
- /**
3565
- * Asynchronously returns an API handle for the given Application identity.
3566
- *
3567
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3568
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3569
- * for an Application throughout its entire lifecycle.
3570
- *
3571
- * @example
3572
- *
3573
- * ```js
3574
- * fin.Application.wrap({ uuid: 'testapp' })
3575
- * .then(app => app.isRunning())
3576
- * .then(running => console.log('Application is running: ' + running))
3577
- * .catch(err => console.log(err));
3578
- * ```
3579
- *
3580
- */
3581
- async wrap(identity) {
3582
- this.wire.sendAction('wrap-application').catch((e) => {
3583
- // we do not want to expose this error, just continue if this analytics-only call fails
3584
- });
3585
- const errorMsg = (0, validate_1.validateIdentity)(identity);
3586
- if (errorMsg) {
3587
- throw new Error(errorMsg);
3588
- }
3589
- return new Instance_1.Application(this.wire, identity);
3590
- }
3591
- /**
3592
- * Synchronously returns an API handle for the given Application identity.
3593
- *
3594
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3595
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3596
- * for an Aplication throughout its entire lifecycle.
3597
- *
3598
- * @example
3599
- *
3600
- * ```js
3601
- * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3602
- * await app.close();
3603
- * ```
3604
- *
3605
- */
3606
- wrapSync(identity) {
3607
- this.wire.sendAction('wrap-application-sync').catch((e) => {
3608
- // we do not want to expose this error, just continue if this analytics-only call fails
3609
- });
3610
- const errorMsg = (0, validate_1.validateIdentity)(identity);
3611
- if (errorMsg) {
3612
- throw new Error(errorMsg);
3613
- }
3614
- return new Instance_1.Application(this.wire, identity);
3615
- }
3616
- async _create(appOptions) {
3617
- // set defaults:
3618
- if (appOptions.waitForPageLoad === undefined) {
3619
- appOptions.waitForPageLoad = false;
3620
- }
3621
- if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3622
- appOptions.autoShow = true;
3623
- }
3624
- await this.wire.sendAction('create-application', appOptions);
3625
- return this.wrap({ uuid: appOptions.uuid });
3626
- }
3627
- /**
3628
- * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3629
- *
3630
- * @example
3631
- *
3632
- * ```js
3633
- * async function createApp() {
3634
- * const app = await fin.Application.create({
3635
- * name: 'myApp',
3636
- * uuid: 'app-3',
3637
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3638
- * autoShow: true
3639
- * });
3640
- * await app.run();
3641
- * }
3642
- *
3643
- * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3644
- * ```
3645
- *
3646
- * @ignore
3647
- */
3648
- create(appOptions) {
3649
- console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3650
- this.wire.sendAction('application-create').catch((e) => {
3651
- // we do not want to expose this error, just continue if this analytics-only call fails
3652
- });
3653
- return this._create(appOptions);
3654
- }
3655
- /**
3656
- * Creates and starts a new Application.
3657
- *
3658
- * @example
3659
- *
3660
- * ```js
3661
- * async function start() {
3662
- * return fin.Application.start({
3663
- * name: 'app-1',
3664
- * uuid: 'app-1',
3665
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3666
- * autoShow: true
3667
- * });
3668
- * }
3669
- * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3670
- * ```
3671
- *
3672
- */
3673
- async start(appOptions) {
3674
- this.wire.sendAction('start-application').catch((e) => {
3675
- // we do not want to expose this error, just continue if this analytics-only call fails
3676
- });
3677
- const app = await this._create(appOptions);
3678
- await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3679
- return app;
3680
- }
3681
- /**
3682
- * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3683
- * Returns once the RVM is finished attempting to launch the applications.
3684
- * @param opts - Parameters that the RVM will use.
3685
- *
3686
- * @example
3687
- *
3688
- * ```js
3689
- *
3690
- * const applicationInfoArray = [
3691
- * {
3692
- * "uuid": 'App-1',
3693
- * "manifestUrl": 'http://localhost:5555/app1.json',
3694
- * },
3695
- * {
3696
- * "uuid": 'App-2',
3697
- * "manifestUrl": 'http://localhost:5555/app2.json',
3698
- * },
3699
- * {
3700
- * "uuid": 'App-3',
3701
- * "manifestUrl": 'http://localhost:5555/app3.json',
3702
- * }
3703
- * ]
3704
- *
3705
- * fin.Application.startManyManifests(applicationInfoArray)
3706
- * .then(() => {
3707
- * console.log('RVM has finished launching the application list.');
3708
- * })
3709
- * .catch((err) => {
3710
- * console.log(err);
3711
- * })
3712
- * ```
3713
- *
3714
- * @experimental
3715
- */
3716
- async startManyManifests(applications, opts) {
3717
- return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3718
- }
3719
- /**
3720
- * Asynchronously returns an Application object that represents the current application
3721
- *
3722
- * @example
3723
- *
3724
- * ```js
3725
- * async function isCurrentAppRunning () {
3726
- * const app = await fin.Application.getCurrent();
3727
- * return app.isRunning();
3728
- * }
3729
- *
3730
- * isCurrentAppRunning().then(running => {
3731
- * console.log(`Current app is running: ${running}`);
3732
- * }).catch(err => {
3733
- * console.error(err);
3734
- * });
3735
- *
3736
- * ```
3737
- */
3738
- getCurrent() {
3739
- this.wire.sendAction('get-current-application').catch((e) => {
3740
- // we do not want to expose this error, just continue if this analytics-only call fails
3741
- });
3742
- return this.wrap({ uuid: this.wire.me.uuid });
3743
- }
3744
- /**
3745
- * Synchronously returns an Application object that represents the current application
3746
- *
3747
- * @example
3748
- *
3749
- * ```js
3750
- * async function isCurrentAppRunning () {
3751
- * const app = fin.Application.getCurrentSync();
3752
- * return app.isRunning();
3753
- * }
3754
- *
3755
- * isCurrentAppRunning().then(running => {
3756
- * console.log(`Current app is running: ${running}`);
3757
- * }).catch(err => {
3758
- * console.error(err);
3759
- * });
3760
- *
3761
- * ```
3762
- */
3763
- getCurrentSync() {
3764
- this.wire.sendAction('get-current-application-sync').catch((e) => {
3765
- // we do not want to expose this error, just continue if this analytics-only call fails
3766
- });
3767
- return this.wrapSync({ uuid: this.wire.me.uuid });
3768
- }
3769
- /**
3770
- * Retrieves application's manifest and returns a running instance of the application.
3771
- * @param manifestUrl - The URL of app's manifest.
3772
- * @param opts - Parameters that the RVM will use.
3773
- *
3774
- * @example
3775
- *
3776
- * ```js
3777
- * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3778
- *
3779
- * // For a local manifest file:
3780
- * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3781
- * ```
3782
- */
3783
- async startFromManifest(manifestUrl, opts) {
3784
- this.wire.sendAction('application-start-from-manifest').catch((e) => {
3785
- // we do not want to expose this error, just continue if this analytics-only call fails
3786
- });
3787
- const app = await this._createFromManifest(manifestUrl);
3788
- // @ts-expect-error using private method without warning.
3789
- await app._run(opts); // eslint-disable-line no-underscore-dangle
3790
- return app;
3791
- }
3792
- /**
3793
- * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3794
- * Retrieves application's manifest and returns a wrapped application.
3795
- * @param manifestUrl - The URL of app's manifest.
3796
- * @param callback - called if the method succeeds.
3797
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3798
- *
3799
- * @example
3800
- *
3801
- * ```js
3802
- * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3803
- * ```
3804
- * @ignore
3805
- */
3806
- createFromManifest(manifestUrl) {
3807
- console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3808
- this.wire.sendAction('application-create-from-manifest').catch((e) => {
3809
- // we do not want to expose this error, just continue if this analytics-only call fails
3810
- });
3811
- return this._createFromManifest(manifestUrl);
3812
- }
3813
- _createFromManifest(manifestUrl) {
3814
- return this.wire
3815
- .sendAction('get-application-manifest', { manifestUrl })
3816
- .then(({ payload }) => {
3817
- const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3818
- return this.wrap({ uuid });
3819
- })
3820
- .then((app) => {
3821
- app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3822
- return app;
3823
- });
3824
- }
3825
- }
3826
- Factory$7.ApplicationModule = ApplicationModule;
3827
- return Factory$7;
3828
- }
3829
-
3830
- var hasRequiredApplication;
3831
-
3832
- function requireApplication () {
3833
- if (hasRequiredApplication) return application;
3834
- hasRequiredApplication = 1;
3835
- (function (exports) {
3836
- var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3837
- if (k2 === undefined) k2 = k;
3838
- var desc = Object.getOwnPropertyDescriptor(m, k);
3839
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3840
- desc = { enumerable: true, get: function() { return m[k]; } };
3841
- }
3842
- Object.defineProperty(o, k2, desc);
3843
- }) : (function(o, m, k, k2) {
3844
- if (k2 === undefined) k2 = k;
3845
- o[k2] = m[k];
3846
- }));
3847
- var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3848
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3849
- };
3850
- Object.defineProperty(exports, "__esModule", { value: true });
3851
- /**
3852
- * Entry points for the OpenFin `Application` API (`fin.Application`).
3853
- *
3854
- * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3855
- * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3856
- *
3857
- * These are separate code entities, and are documented separately. In the [previous version of the API documentation](https://cdn.openfin.co/docs/javascript/32.114.76.10/index.html),
3858
- * both of these were documented on the same page.
3859
- *
3860
- * @packageDocumentation
3861
- */
3862
- __exportStar(requireFactory$2(), exports);
3863
- __exportStar(requireInstance$1(), exports);
3864
- } (application));
3865
- return application;
3866
- }
3867
+ __exportStar(Factory$7, exports);
3868
+ __exportStar(Instance$6, exports);
3869
+ } (application));
3867
3870
 
3868
3871
  var promisifySubscription$1 = {};
3869
3872
 
@@ -3907,7 +3910,7 @@ function requireInstance () {
3907
3910
  /* eslint-disable @typescript-eslint/no-unused-vars */
3908
3911
  /* eslint-disable no-console */
3909
3912
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
3910
- const application_1 = requireApplication();
3913
+ const application_1 = application;
3911
3914
  const main_1 = main;
3912
3915
  const view_1 = requireView();
3913
3916
  const warnings_1 = warnings;
@@ -17249,7 +17252,7 @@ const events_1$3 = require$$0;
17249
17252
  // Import from the file rather than the directory in case someone consuming types is using module resolution other than "node"
17250
17253
  const index_1 = system;
17251
17254
  const index_2 = requireWindow();
17252
- const index_3 = requireApplication();
17255
+ const index_3 = application;
17253
17256
  const index_4 = interappbus;
17254
17257
  const index_5 = clipboard;
17255
17258
  const index_6 = externalApplication;
@@ -17644,12 +17647,12 @@ class Transport extends events_1$1.EventEmitter {
17644
17647
  Transport_1 = transport.Transport = Transport;
17645
17648
  _Transport_wire = new WeakMap(), _Transport_fin = new WeakMap();
17646
17649
 
17647
- var mockEnvironment = {};
17650
+ var stubEnvironment = {};
17648
17651
 
17649
- Object.defineProperty(mockEnvironment, "__esModule", { value: true });
17650
- var MockEnvironment_1 = mockEnvironment.MockEnvironment = void 0;
17652
+ Object.defineProperty(stubEnvironment, "__esModule", { value: true });
17653
+ var StubEnvironment_1 = stubEnvironment.StubEnvironment = void 0;
17651
17654
  const me_1 = me;
17652
- class MockEnvironment {
17655
+ class StubEnvironment {
17653
17656
  constructor() {
17654
17657
  this.type = 'other';
17655
17658
  this.childViews = true;
@@ -17730,15 +17733,15 @@ class MockEnvironment {
17730
17733
  throw new Error('Method not implemented.');
17731
17734
  }
17732
17735
  }
17733
- MockEnvironment_1 = mockEnvironment.MockEnvironment = MockEnvironment;
17736
+ StubEnvironment_1 = stubEnvironment.StubEnvironment = StubEnvironment;
17734
17737
 
17735
- var mockWire = {};
17738
+ var stubWire = {};
17736
17739
 
17737
- Object.defineProperty(mockWire, "__esModule", { value: true });
17738
- var MockWire_1 = mockWire.MockWire = void 0;
17740
+ Object.defineProperty(stubWire, "__esModule", { value: true });
17741
+ var StubWire_1 = stubWire.StubWire = void 0;
17739
17742
  /* eslint-disable @typescript-eslint/no-unused-vars */
17740
17743
  const events_1 = require$$0;
17741
- class MockWire extends events_1.EventEmitter {
17744
+ class StubWire extends events_1.EventEmitter {
17742
17745
  connect() {
17743
17746
  throw new Error('You are not running in OpenFin.');
17744
17747
  }
@@ -17759,12 +17762,12 @@ class MockWire extends events_1.EventEmitter {
17759
17762
  super();
17760
17763
  }
17761
17764
  }
17762
- MockWire_1 = mockWire.MockWire = MockWire;
17765
+ StubWire_1 = stubWire.StubWire = StubWire;
17763
17766
 
17764
17767
  const fin$1 = ((typeof window !== 'undefined' && window?.fin) ||
17765
17768
  (() => {
17766
- const environment = new MockEnvironment_1();
17767
- const transport = new Transport_1(MockWire_1, environment, {
17769
+ const environment = new StubEnvironment_1();
17770
+ const transport = new Transport_1(StubWire_1, environment, {
17768
17771
  uuid: '',
17769
17772
  name: ''
17770
17773
  });