@openfin/node-adapter 41.100.57 → 41.100.59

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/out/node-adapter.js +1158 -1137
  2. package/package.json +2 -2
@@ -552,11 +552,11 @@ const handleDeprecatedWarnings = (options) => {
552
552
  };
553
553
  warnings.handleDeprecatedWarnings = handleDeprecatedWarnings;
554
554
 
555
- var hasRequiredFactory$1;
555
+ var hasRequiredFactory$2;
556
556
 
557
- function requireFactory$1 () {
558
- if (hasRequiredFactory$1) return Factory$6;
559
- hasRequiredFactory$1 = 1;
557
+ function requireFactory$2 () {
558
+ if (hasRequiredFactory$2) return Factory$6;
559
+ hasRequiredFactory$2 = 1;
560
560
  Object.defineProperty(Factory$6, "__esModule", { value: true });
561
561
  Factory$6.ViewModule = void 0;
562
562
  const base_1 = base;
@@ -771,8 +771,8 @@ var main = {};
771
771
 
772
772
  Object.defineProperty(main, "__esModule", { value: true });
773
773
  main.WebContents = void 0;
774
- const base_1$o = base;
775
- class WebContents extends base_1$o.EmitterBase {
774
+ const base_1$m = base;
775
+ class WebContents extends base_1$m.EmitterBase {
776
776
  /**
777
777
  * @param identity The identity of the {@link OpenFin.WebContentsEvents WebContents}.
778
778
  * @param entityType The type of the {@link OpenFin.WebContentsEvents WebContents}.
@@ -1853,11 +1853,11 @@ class WebContents extends base_1$o.EmitterBase {
1853
1853
  }
1854
1854
  main.WebContents = WebContents;
1855
1855
 
1856
- var hasRequiredInstance$1;
1856
+ var hasRequiredInstance$2;
1857
1857
 
1858
- function requireInstance$1 () {
1859
- if (hasRequiredInstance$1) return Instance$5;
1860
- hasRequiredInstance$1 = 1;
1858
+ function requireInstance$2 () {
1859
+ if (hasRequiredInstance$2) return Instance$5;
1860
+ hasRequiredInstance$2 = 1;
1861
1861
  var _View_providerChannelClient;
1862
1862
  Object.defineProperty(Instance$5, "__esModule", { value: true });
1863
1863
  Instance$5.View = void 0;
@@ -2437,1139 +2437,1160 @@ function requireView () {
2437
2437
  *
2438
2438
  * @packageDocumentation
2439
2439
  */
2440
- __exportStar(requireFactory$1(), exports);
2441
- __exportStar(requireInstance$1(), exports);
2440
+ __exportStar(requireFactory$2(), exports);
2441
+ __exportStar(requireInstance$2(), exports);
2442
2442
  } (view));
2443
2443
  return view;
2444
2444
  }
2445
2445
 
2446
- Object.defineProperty(Instance$6, "__esModule", { value: true });
2447
- Instance$6.Application = void 0;
2448
- /* eslint-disable import/prefer-default-export */
2449
- const base_1$n = base;
2450
- const window_1$1 = requireWindow();
2451
- const view_1 = requireView();
2452
- /**
2453
- * An object representing an application. Allows the developer to create,
2454
- * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2455
- */
2456
- class Application extends base_1$n.EmitterBase {
2457
- /**
2458
- * @internal
2459
- */
2460
- constructor(wire, identity) {
2461
- super(wire, 'application', identity.uuid);
2462
- this.identity = identity;
2463
- this.window = new window_1$1._Window(this.wire, {
2464
- uuid: this.identity.uuid,
2465
- name: this.identity.uuid
2466
- });
2467
- }
2468
- windowListFromIdentityList(identityList) {
2469
- const windowList = [];
2470
- identityList.forEach((identity) => {
2471
- windowList.push(new window_1$1._Window(this.wire, {
2472
- uuid: identity.uuid,
2473
- name: identity.name
2474
- }));
2475
- });
2476
- return windowList;
2477
- }
2478
- /**
2479
- * Determines if the application is currently running.
2480
- *
2481
- * @example
2482
- *
2483
- * ```js
2484
- * async function isAppRunning() {
2485
- * const app = await fin.Application.getCurrent();
2486
- * return await app.isRunning();
2487
- * }
2488
- * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2489
- * ```
2490
- */
2491
- isRunning() {
2492
- return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2493
- }
2494
- /**
2495
- * Closes the application and any child windows created by the application.
2496
- * Cleans the application from state so it is no longer found in getAllApplications.
2497
- * @param force Close will be prevented from closing when force is false and
2498
- * ‘close-requested’ has been subscribed to for application’s main window.
2499
- *
2500
- * @example
2501
- *
2502
- * ```js
2503
- * async function closeApp() {
2504
- * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2505
- * const app = await fin.Application.wrap({uuid: 'app2'});
2506
- * await app.quit();
2507
- * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2508
- *
2509
- * }
2510
- * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2511
- * ```
2512
- */
2513
- async quit(force = false) {
2514
- try {
2515
- await this._close(force);
2516
- await this.wire.sendAction('destroy-application', { force, ...this.identity });
2517
- }
2518
- catch (error) {
2519
- const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2520
- if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2521
- throw error;
2522
- }
2523
- }
2524
- }
2525
- async _close(force = false) {
2526
- try {
2527
- await this.wire.sendAction('close-application', { force, ...this.identity });
2528
- }
2529
- catch (error) {
2530
- if (!error.message.includes('Remote connection has closed')) {
2531
- throw error;
2532
- }
2533
- }
2534
- }
2535
- /**
2536
- * @deprecated use Application.quit instead
2537
- * Closes the application and any child windows created by the application.
2538
- * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2539
- * @param callback - called if the method succeeds.
2540
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2541
- *
2542
- * @example
2543
- *
2544
- * ```js
2545
- * async function closeApp() {
2546
- * const app = await fin.Application.getCurrent();
2547
- * return await app.close();
2548
- * }
2549
- * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2550
- * ```
2551
- */
2552
- close(force = false) {
2553
- console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2554
- this.wire.sendAction('application-close', this.identity).catch((e) => {
2555
- // we do not want to expose this error, just continue if this analytics-only call fails
2556
- });
2557
- return this._close(force);
2558
- }
2559
- /**
2560
- * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2561
- *
2562
- * @example
2563
- *
2564
- * ```js
2565
- * async function getChildWindows() {
2566
- * const app = await fin.Application.getCurrent();
2567
- * return await app.getChildWindows();
2568
- * }
2569
- *
2570
- * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2571
- * ```
2572
- */
2573
- getChildWindows() {
2574
- return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2575
- const identityList = [];
2576
- payload.data.forEach((winName) => {
2577
- identityList.push({ uuid: this.identity.uuid, name: winName });
2578
- });
2579
- return this.windowListFromIdentityList(identityList);
2580
- });
2581
- }
2582
- /**
2583
- * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2584
- * if the application was not created from a manifest.
2585
- *
2586
- * @example
2587
- *
2588
- * ```js
2589
- * async function getManifest() {
2590
- * const app = await fin.Application.getCurrent();
2591
- * return await app.getManifest();
2592
- * }
2593
- *
2594
- * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2595
- * ```
2596
- */
2597
- getManifest() {
2598
- return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2599
- }
2600
- /**
2601
- * Retrieves UUID of the application that launches this application. Invokes the error callback
2602
- * if the application was created from a manifest.
2603
- *
2604
- * @example
2605
- *
2606
- * ```js
2607
- * async function getParentUuid() {
2608
- * const app = await fin.Application.start({
2609
- * uuid: 'app-1',
2610
- * name: 'myApp',
2611
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2612
- * autoShow: true
2613
- * });
2614
- * return await app.getParentUuid();
2615
- * }
2616
- *
2617
- * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2618
- * ```
2619
- */
2620
- getParentUuid() {
2621
- return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2622
- }
2623
- /**
2624
- * Retrieves current application's shortcut configuration.
2625
- *
2626
- * @example
2627
- *
2628
- * ```js
2629
- * async function getShortcuts() {
2630
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
2631
- * return await app.getShortcuts();
2632
- * }
2633
- * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2634
- * ```
2635
- */
2636
- getShortcuts() {
2637
- return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2638
- }
2639
- /**
2640
- * Retrieves current application's views.
2641
- * @experimental
2642
- *
2643
- * @example
2644
- *
2645
- * ```js
2646
- * async function getViews() {
2647
- * const app = await fin.Application.getCurrent();
2648
- * return await app.getViews();
2649
- * }
2650
- * getViews().then(views => console.log(views)).catch(err => console.log(err));
2651
- * ```
2652
- */
2653
- async getViews() {
2654
- const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2655
- return payload.data.map((id) => new view_1.View(this.wire, id));
2656
- }
2657
- /**
2658
- * Returns the current zoom level of the application.
2659
- *
2660
- * @example
2661
- *
2662
- * ```js
2663
- * async function getZoomLevel() {
2664
- * const app = await fin.Application.getCurrent();
2665
- * return await app.getZoomLevel();
2666
- * }
2667
- *
2668
- * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2669
- * ```
2670
- */
2671
- getZoomLevel() {
2672
- return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2673
- }
2674
- /**
2675
- * Returns an instance of the main Window of the application
2676
- *
2677
- * @example
2678
- *
2679
- * ```js
2680
- * async function getWindow() {
2681
- * const app = await fin.Application.start({
2682
- * uuid: 'app-1',
2683
- * name: 'myApp',
2684
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2685
- * autoShow: true
2686
- * });
2687
- * return await app.getWindow();
2688
- * }
2689
- *
2690
- * getWindow().then(win => {
2691
- * win.showAt(0, 400);
2692
- * win.flash();
2693
- * }).catch(err => console.log(err));
2694
- * ```
2695
- */
2696
- getWindow() {
2697
- this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2698
- // we do not want to expose this error, just continue if this analytics-only call fails
2699
- });
2700
- return Promise.resolve(this.window);
2701
- }
2702
- /**
2703
- * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
2704
- * @param userName - username to be passed to the RVM.
2705
- * @param appName - app name to be passed to the RVM.
2706
- *
2707
- * @example
2708
- *
2709
- * ```js
2710
- * async function registerUser() {
2711
- * const app = await fin.Application.getCurrent();
2712
- * return await app.registerUser('user', 'myApp');
2713
- * }
2714
- *
2715
- * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
2716
- * ```
2717
- */
2718
- registerUser(userName, appName) {
2719
- return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
2720
- }
2721
- /**
2722
- * Removes the application’s icon from the tray.
2723
- *
2724
- * @example
2725
- *
2726
- * ```js
2727
- * async function removeTrayIcon() {
2728
- * const app = await fin.Application.getCurrent();
2729
- * return await app.removeTrayIcon();
2730
- * }
2731
- *
2732
- * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
2733
- * ```
2734
- */
2735
- removeTrayIcon() {
2736
- return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
2737
- }
2738
- /**
2739
- * Restarts the application.
2740
- *
2741
- * @example
2742
- *
2743
- * ```js
2744
- * async function restartApp() {
2745
- * const app = await fin.Application.getCurrent();
2746
- * return await app.restart();
2747
- * }
2748
- * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
2749
- * ```
2750
- */
2751
- restart() {
2752
- return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
2753
- }
2754
- /**
2755
- * DEPRECATED method to run the application.
2756
- * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
2757
- *
2758
- * @example
2759
- *
2760
- * ```js
2761
- * async function run() {
2762
- * const app = await fin.Application.create({
2763
- * name: 'myApp',
2764
- * uuid: 'app-1',
2765
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
2766
- * autoShow: true
2767
- * });
2768
- * await app.run();
2769
- * }
2770
- * run().then(() => console.log('Application is running')).catch(err => console.log(err));
2771
- * ```
2772
- *
2773
- * @ignore
2774
- */
2775
- run() {
2776
- console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
2777
- this.wire.sendAction('application-run', this.identity).catch((e) => {
2778
- // we do not want to expose this error, just continue if this analytics-only call fails
2779
- });
2780
- return this._run();
2781
- }
2782
- _run(opts = {}) {
2783
- return this.wire
2784
- .sendAction('run-application', {
2785
- manifestUrl: this._manifestUrl,
2786
- opts,
2787
- ...this.identity
2788
- })
2789
- .then(() => undefined);
2790
- }
2791
- /**
2792
- * Instructs the RVM to schedule one restart of the application.
2793
- *
2794
- * @example
2795
- *
2796
- * ```js
2797
- * async function scheduleRestart() {
2798
- * const app = await fin.Application.getCurrent();
2799
- * return await app.scheduleRestart();
2800
- * }
2801
- *
2802
- * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
2803
- * ```
2804
- */
2805
- scheduleRestart() {
2806
- return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
2807
- }
2808
- /**
2809
- * Sends a message to the RVM to upload the application's logs. On success,
2810
- * an object containing logId is returned.
2811
- *
2812
- * @example
2813
- *
2814
- * ```js
2815
- * async function sendLog() {
2816
- * const app = await fin.Application.getCurrent();
2817
- * return await app.sendApplicationLog();
2818
- * }
2819
- *
2820
- * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
2821
- * ```
2822
- */
2823
- async sendApplicationLog() {
2824
- const { payload } = await this.wire.sendAction('send-application-log', this.identity);
2825
- return payload.data;
2826
- }
2827
- /**
2828
- * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
2829
- * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
2830
- *
2831
- * Note: If the "name" property is omitted it defaults to "tasks".
2832
- * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
2833
- *
2834
- *
2835
- * @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).
2836
- *
2837
- * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
2838
- * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
2839
- *
2840
- * Note: If the "name" property is omitted it defaults to "tasks".
2841
- *
2842
- * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
2843
- * uuid or shortcut.name is changed.
2844
- *
2845
- * @example
2846
- *
2847
- * ```js
2848
- * const app = fin.Application.getCurrentSync();
2849
- * const appName = 'My App';
2850
- * const jumpListConfig = [ // array of JumpList categories
2851
- * {
2852
- * // has no name and no type so `type` is assumed to be "tasks"
2853
- * items: [ // array of JumpList items
2854
- * {
2855
- * type: 'task',
2856
- * title: `Launch ${appName}`,
2857
- * description: `Runs ${appName} with the default configuration`,
2858
- * deepLink: 'fins://path.to/app/manifest.json',
2859
- * iconPath: 'https://path.to/app/icon.ico',
2860
- * iconIndex: 0
2861
- * },
2862
- * { type: 'separator' },
2863
- * {
2864
- * type: 'task',
2865
- * title: `Restore ${appName}`,
2866
- * description: 'Restore to last configuration',
2867
- * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
2868
- * iconPath: 'https://path.to/app/icon.ico',
2869
- * iconIndex: 0
2870
- * },
2871
- * ]
2872
- * },
2873
- * {
2874
- * name: 'Tools',
2875
- * items: [ // array of JumpList items
2876
- * {
2877
- * type: 'task',
2878
- * title: 'Tool A',
2879
- * description: 'Runs Tool A',
2880
- * deepLink: 'fins://path.to/tool-a/manifest.json',
2881
- * iconPath: 'https://path.to/tool-a/icon.ico',
2882
- * iconIndex: 0
2883
- * },
2884
- * {
2885
- * type: 'task',
2886
- * title: 'Tool B',
2887
- * description: 'Runs Tool B',
2888
- * deepLink: 'fins://path.to/tool-b/manifest.json',
2889
- * iconPath: 'https://path.to/tool-b/icon.ico',
2890
- * iconIndex: 0
2891
- * }]
2892
- * }
2893
- * ];
2894
- *
2895
- * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
2896
- * ```
2897
- *
2898
- * To handle deeplink args:
2899
- * ```js
2900
- * function handleUseLastConfiguration() {
2901
- * // this handler is called when the app is being launched
2902
- * app.on('run-requested', event => {
2903
- * if(event.userAppConfigArgs['use-last-configuration']) {
2904
- * // your logic here
2905
- * }
2906
- * });
2907
- * // this handler is called when the app was already running when the launch was requested
2908
- * fin.desktop.main(function(args) {
2909
- * if(args && args['use-last-configuration']) {
2910
- * // your logic here
2911
- * }
2912
- * });
2913
- * }
2914
- * ```
2915
- */
2916
- async setJumpList(jumpListCategories) {
2917
- await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
2918
- }
2919
- /**
2920
- * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
2921
- * @param icon Image URL or base64 encoded string to be used as the icon
2922
- *
2923
- * @example
2924
- *
2925
- * ```js
2926
- * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
2927
- * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
2928
- * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
2929
- * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
2930
- * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
2931
- *
2932
- * async function setTrayIcon(icon) {
2933
- * const app = await fin.Application.getCurrent();
2934
- * return await app.setTrayIcon(icon);
2935
- * }
2936
- *
2937
- * // use image url to set tray icon
2938
- * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2939
- *
2940
- * // use base64 encoded string to set tray icon
2941
- * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2942
- *
2943
- * // use a dataURL to set tray icon
2944
- * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2945
- * ```
2946
- */
2947
- setTrayIcon(icon) {
2948
- return this.wire
2949
- .sendAction('set-tray-icon', {
2950
- enabledIcon: icon,
2951
- ...this.identity
2952
- })
2953
- .then(() => undefined);
2954
- }
2955
- /**
2956
- * Set hover text for this application's system tray icon.
2957
- * Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
2958
- * @param toolTip
2959
- *
2960
- * @example
2961
- *
2962
- * ```js
2963
- * const app = fin.Application.getCurrentSync();
2964
- * const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
2965
- *
2966
- * await app.setTrayIcon(iconUrl);
2967
- *
2968
- * await app.setTrayIconToolTip('My Application');
2969
- * ```
2970
- */
2971
- async setTrayIconToolTip(toolTip) {
2972
- await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
2973
- }
2974
- /**
2975
- * Sets new application's shortcut configuration. Windows only.
2976
- * @param config New application's shortcut configuration.
2977
- *
2978
- * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
2979
- * to be able to change shortcut states.
2980
- *
2981
- * @example
2982
- *
2983
- * ```js
2984
- * async function setShortcuts(config) {
2985
- * const app = await fin.Application.getCurrent();
2986
- * return app.setShortcuts(config);
2987
- * }
2988
- *
2989
- * setShortcuts({
2990
- * desktop: true,
2991
- * startMenu: false,
2992
- * systemStartup: true
2993
- * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
2994
- * ```
2995
- */
2996
- setShortcuts(config) {
2997
- return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
2998
- }
2999
- /**
3000
- * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3001
- * @param queryString The new query string for this app's shortcuts.
3002
- *
3003
- * @example
3004
- *
3005
- * ```js
3006
- * const newQueryArgs = 'arg=true&arg2=false';
3007
- * const app = await fin.Application.getCurrent();
3008
- * try {
3009
- * await app.setShortcutQueryParams(newQueryArgs);
3010
- * } catch(err) {
3011
- * console.error(err)
3012
- * }
3013
- * ```
3014
- */
3015
- async setShortcutQueryParams(queryString) {
3016
- await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3017
- }
3018
- /**
3019
- * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3020
- * larger or smaller to default limits of 300% and 50% of original size, respectively.
3021
- * @param level The zoom level
3022
- *
3023
- * @example
3024
- *
3025
- * ```js
3026
- * async function setZoomLevel(number) {
3027
- * const app = await fin.Application.getCurrent();
3028
- * return await app.setZoomLevel(number);
3029
- * }
3030
- *
3031
- * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3032
- * ```
3033
- */
3034
- setZoomLevel(level) {
3035
- return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3036
- }
3037
- /**
3038
- * Sets a username to correlate with App Log Management.
3039
- * @param username Username to correlate with App's Log.
3040
- *
3041
- * @example
3042
- *
3043
- * ```js
3044
- * async function setAppLogUser() {
3045
- * const app = await fin.Application.getCurrent();
3046
- * return await app.setAppLogUsername('username');
3047
- * }
3048
- *
3049
- * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3050
- *
3051
- * ```
3052
- */
3053
- async setAppLogUsername(username) {
3054
- await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3055
- }
3056
- /**
3057
- * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3058
- * @remarks The only information currently returned is the position and dimensions.
3059
- *
3060
- * @example
3061
- *
3062
- * ```js
3063
- * async function getTrayIconInfo() {
3064
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3065
- * return await app.getTrayIconInfo();
3066
- * }
3067
- * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3068
- * ```
3069
- */
3070
- getTrayIconInfo() {
3071
- return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3072
- }
3073
- /**
3074
- * Checks if the application has an associated tray icon.
3075
- *
3076
- * @example
3077
- *
3078
- * ```js
3079
- * const app = await fin.Application.wrap({ uuid: 'testapp' });
3080
- * const hasTrayIcon = await app.hasTrayIcon();
3081
- * console.log(hasTrayIcon);
3082
- * ```
3083
- */
3084
- hasTrayIcon() {
3085
- return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3086
- }
3087
- /**
3088
- * Closes the application by terminating its process.
3089
- *
3090
- * @example
3091
- *
3092
- * ```js
3093
- * async function terminateApp() {
3094
- * const app = await fin.Application.getCurrent();
3095
- * return await app.terminate();
3096
- * }
3097
- * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3098
- * ```
3099
- */
3100
- terminate() {
3101
- return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3102
- }
3103
- /**
3104
- * Waits for a hanging application. This method can be called in response to an application
3105
- * "not-responding" to allow the application to continue and to generate another "not-responding"
3106
- * message after a certain period of time.
3107
- *
3108
- * @ignore
3109
- */
3110
- wait() {
3111
- return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3112
- }
3113
- /**
3114
- * Retrieves information about the application.
3115
- *
3116
- * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3117
- * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3118
- * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3119
- *
3120
- * @example
3121
- *
3122
- * ```js
3123
- * async function getInfo() {
3124
- * const app = await fin.Application.getCurrent();
3125
- * return await app.getInfo();
3126
- * }
3127
- *
3128
- * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3129
- * ```
3130
- */
3131
- getInfo() {
3132
- return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3133
- }
3134
- /**
3135
- * Retrieves all process information for entities (windows and views) associated with an application.
3136
- *
3137
- * @example
3138
- * ```js
3139
- * const app = await fin.Application.getCurrent();
3140
- * const processInfo = await app.getProcessInfo();
3141
- * ```
3142
- * @experimental
3143
- */
3144
- async getProcessInfo() {
3145
- const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3146
- return data;
3147
- }
3148
- /**
3149
- * Sets file auto download location. It's only allowed in the same application.
3150
- *
3151
- * Note: This method is restricted by default and must be enabled via
3152
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3153
- * @param downloadLocation file auto download location
3154
- *
3155
- * @throws if setting file auto download location on different applications.
3156
- * @example
3157
- *
3158
- * ```js
3159
- * const downloadLocation = 'C:\\dev\\temp';
3160
- * const app = await fin.Application.getCurrent();
3161
- * try {
3162
- * await app.setFileDownloadLocation(downloadLocation);
3163
- * console.log('File download location is set');
3164
- * } catch(err) {
3165
- * console.error(err)
3166
- * }
3167
- * ```
3168
- */
3169
- async setFileDownloadLocation(downloadLocation) {
3170
- const { name } = this.wire.me;
3171
- const entityIdentity = { uuid: this.identity.uuid, name };
3172
- await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3173
- }
3174
- /**
3175
- * 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.
3176
- *
3177
- * Note: This method is restricted by default and must be enabled via
3178
- * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3179
- *
3180
- * @throws if getting file auto download location on different applications.
3181
- * @example
3182
- *
3183
- * ```js
3184
- * const app = await fin.Application.getCurrent();
3185
- * const fileDownloadDir = await app.getFileDownloadLocation();
3186
- * ```
3187
- */
3188
- async getFileDownloadLocation() {
3189
- const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3190
- return data;
3191
- }
3192
- /**
3193
- * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3194
- * @param options
3195
- * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3196
- * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3197
- * of all possible data shapes for the entire menu, and the click handler should process
3198
- * these with a "reducer" pattern.
3199
- * @throws if the application has no tray icon set
3200
- * @throws if the system tray is currently hidden
3201
- * @example
3202
- *
3203
- * ```js
3204
- * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3205
- * const app = fin.Application.getCurrentSync();
3206
- *
3207
- * await app.setTrayIcon(iconUrl);
3208
- *
3209
- * const template = [
3210
- * {
3211
- * label: 'Menu Item 1',
3212
- * data: 'hello from item 1'
3213
- * },
3214
- * { type: 'separator' },
3215
- * {
3216
- * label: 'Menu Item 2',
3217
- * type: 'checkbox',
3218
- * checked: true,
3219
- * data: 'The user clicked the checkbox'
3220
- * },
3221
- * {
3222
- * label: 'see more',
3223
- * enabled: false,
3224
- * submenu: [
3225
- * { label: 'submenu 1', data: 'hello from submenu' }
3226
- * ]
3227
- * }
3228
- * ];
3229
- *
3230
- * app.addListener('tray-icon-clicked', (event) => {
3231
- * // right-click
3232
- * if (event.button === 2) {
3233
- * app.showTrayIconPopupMenu({ template }).then(r => {
3234
- * if (r.result === 'closed') {
3235
- * console.log('nothing happened');
3236
- * } else {
3237
- * console.log(r.data);
3238
- * }
3239
- * });
3240
- * }
3241
- * });
3242
- * ```
3243
- */
3244
- async showTrayIconPopupMenu(options) {
3245
- const { name } = this.wire.me;
3246
- const entityIdentity = { uuid: this.identity.uuid, name };
3247
- const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3248
- return payload.data;
3249
- }
3250
- /**
3251
- * Closes the tray icon menu.
3252
- *
3253
- * @throws if the application has no tray icon set
3254
- * @example
3255
- *
3256
- * ```js
3257
- * const app = fin.Application.getCurrentSync();
3258
- *
3259
- * await app.closeTrayIconPopupMenu();
3260
- * ```
3261
- */
3262
- async closeTrayIconPopupMenu() {
3263
- const { name } = this.wire.me;
3264
- const entityIdentity = { uuid: this.identity.uuid, name };
3265
- await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3266
- }
3267
- }
3268
- Instance$6.Application = Application;
2446
+ var hasRequiredInstance$1;
3269
2447
 
3270
- Object.defineProperty(Factory$7, "__esModule", { value: true });
3271
- Factory$7.ApplicationModule = void 0;
3272
- const base_1$m = base;
3273
- const validate_1$4 = validate;
3274
- const Instance_1$5 = Instance$6;
3275
- /**
3276
- * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3277
- */
3278
- class ApplicationModule extends base_1$m.Base {
3279
- /**
3280
- * Asynchronously returns an API handle for the given Application identity.
3281
- *
3282
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3283
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3284
- * for an Application throughout its entire lifecycle.
3285
- *
3286
- * @example
3287
- *
3288
- * ```js
3289
- * fin.Application.wrap({ uuid: 'testapp' })
3290
- * .then(app => app.isRunning())
3291
- * .then(running => console.log('Application is running: ' + running))
3292
- * .catch(err => console.log(err));
3293
- * ```
3294
- *
3295
- */
3296
- async wrap(identity) {
3297
- this.wire.sendAction('wrap-application').catch((e) => {
3298
- // we do not want to expose this error, just continue if this analytics-only call fails
3299
- });
3300
- const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3301
- if (errorMsg) {
3302
- throw new Error(errorMsg);
3303
- }
3304
- return new Instance_1$5.Application(this.wire, identity);
3305
- }
3306
- /**
3307
- * Synchronously returns an API handle for the given Application identity.
3308
- *
3309
- * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3310
- * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3311
- * for an Aplication throughout its entire lifecycle.
3312
- *
3313
- * @example
3314
- *
3315
- * ```js
3316
- * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3317
- * await app.close();
3318
- * ```
3319
- *
3320
- */
3321
- wrapSync(identity) {
3322
- this.wire.sendAction('wrap-application-sync').catch((e) => {
3323
- // we do not want to expose this error, just continue if this analytics-only call fails
3324
- });
3325
- const errorMsg = (0, validate_1$4.validateIdentity)(identity);
3326
- if (errorMsg) {
3327
- throw new Error(errorMsg);
3328
- }
3329
- return new Instance_1$5.Application(this.wire, identity);
3330
- }
3331
- async _create(appOptions) {
3332
- // set defaults:
3333
- if (appOptions.waitForPageLoad === undefined) {
3334
- appOptions.waitForPageLoad = false;
3335
- }
3336
- if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3337
- appOptions.autoShow = true;
3338
- }
3339
- await this.wire.sendAction('create-application', appOptions);
3340
- return this.wrap({ uuid: appOptions.uuid });
3341
- }
3342
- /**
3343
- * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3344
- *
3345
- * @example
3346
- *
3347
- * ```js
3348
- * async function createApp() {
3349
- * const app = await fin.Application.create({
3350
- * name: 'myApp',
3351
- * uuid: 'app-3',
3352
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3353
- * autoShow: true
3354
- * });
3355
- * await app.run();
3356
- * }
3357
- *
3358
- * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3359
- * ```
3360
- *
3361
- * @ignore
3362
- */
3363
- create(appOptions) {
3364
- console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3365
- this.wire.sendAction('application-create').catch((e) => {
3366
- // we do not want to expose this error, just continue if this analytics-only call fails
3367
- });
3368
- return this._create(appOptions);
3369
- }
3370
- /**
3371
- * Creates and starts a new Application.
3372
- *
3373
- * @example
3374
- *
3375
- * ```js
3376
- * async function start() {
3377
- * return fin.Application.start({
3378
- * name: 'app-1',
3379
- * uuid: 'app-1',
3380
- * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3381
- * autoShow: true
3382
- * });
3383
- * }
3384
- * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3385
- * ```
3386
- *
3387
- */
3388
- async start(appOptions) {
3389
- this.wire.sendAction('start-application').catch((e) => {
3390
- // we do not want to expose this error, just continue if this analytics-only call fails
3391
- });
3392
- const app = await this._create(appOptions);
3393
- await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3394
- return app;
3395
- }
3396
- /**
3397
- * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3398
- * Returns once the RVM is finished attempting to launch the applications.
3399
- * @param opts - Parameters that the RVM will use.
3400
- *
3401
- * @example
3402
- *
3403
- * ```js
3404
- *
3405
- * const applicationInfoArray = [
3406
- * {
3407
- * "uuid": 'App-1',
3408
- * "manifestUrl": 'http://localhost:5555/app1.json',
3409
- * },
3410
- * {
3411
- * "uuid": 'App-2',
3412
- * "manifestUrl": 'http://localhost:5555/app2.json',
3413
- * },
3414
- * {
3415
- * "uuid": 'App-3',
3416
- * "manifestUrl": 'http://localhost:5555/app3.json',
3417
- * }
3418
- * ]
3419
- *
3420
- * fin.Application.startManyManifests(applicationInfoArray)
3421
- * .then(() => {
3422
- * console.log('RVM has finished launching the application list.');
3423
- * })
3424
- * .catch((err) => {
3425
- * console.log(err);
3426
- * })
3427
- * ```
3428
- *
3429
- * @experimental
3430
- */
3431
- async startManyManifests(applications, opts) {
3432
- return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3433
- }
3434
- /**
3435
- * Asynchronously returns an Application object that represents the current application
3436
- *
3437
- * @example
3438
- *
3439
- * ```js
3440
- * async function isCurrentAppRunning () {
3441
- * const app = await fin.Application.getCurrent();
3442
- * return app.isRunning();
3443
- * }
3444
- *
3445
- * isCurrentAppRunning().then(running => {
3446
- * console.log(`Current app is running: ${running}`);
3447
- * }).catch(err => {
3448
- * console.error(err);
3449
- * });
3450
- *
3451
- * ```
3452
- */
3453
- getCurrent() {
3454
- this.wire.sendAction('get-current-application').catch((e) => {
3455
- // we do not want to expose this error, just continue if this analytics-only call fails
3456
- });
3457
- return this.wrap({ uuid: this.wire.me.uuid });
3458
- }
3459
- /**
3460
- * Synchronously returns an Application object that represents the current application
3461
- *
3462
- * @example
3463
- *
3464
- * ```js
3465
- * async function isCurrentAppRunning () {
3466
- * const app = fin.Application.getCurrentSync();
3467
- * return app.isRunning();
3468
- * }
3469
- *
3470
- * isCurrentAppRunning().then(running => {
3471
- * console.log(`Current app is running: ${running}`);
3472
- * }).catch(err => {
3473
- * console.error(err);
3474
- * });
3475
- *
3476
- * ```
3477
- */
3478
- getCurrentSync() {
3479
- this.wire.sendAction('get-current-application-sync').catch((e) => {
3480
- // we do not want to expose this error, just continue if this analytics-only call fails
3481
- });
3482
- return this.wrapSync({ uuid: this.wire.me.uuid });
3483
- }
3484
- /**
3485
- * Retrieves application's manifest and returns a running instance of the application.
3486
- * @param manifestUrl - The URL of app's manifest.
3487
- * @param opts - Parameters that the RVM will use.
3488
- *
3489
- * @example
3490
- *
3491
- * ```js
3492
- * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3493
- *
3494
- * // For a local manifest file:
3495
- * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3496
- * ```
3497
- */
3498
- async startFromManifest(manifestUrl, opts) {
3499
- this.wire.sendAction('application-start-from-manifest').catch((e) => {
3500
- // we do not want to expose this error, just continue if this analytics-only call fails
3501
- });
3502
- const app = await this._createFromManifest(manifestUrl);
3503
- // @ts-expect-error using private method without warning.
3504
- await app._run(opts); // eslint-disable-line no-underscore-dangle
3505
- return app;
3506
- }
3507
- /**
3508
- * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3509
- * Retrieves application's manifest and returns a wrapped application.
3510
- * @param manifestUrl - The URL of app's manifest.
3511
- * @param callback - called if the method succeeds.
3512
- * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3513
- *
3514
- * @example
3515
- *
3516
- * ```js
3517
- * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3518
- * ```
3519
- * @ignore
3520
- */
3521
- createFromManifest(manifestUrl) {
3522
- console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3523
- this.wire.sendAction('application-create-from-manifest').catch((e) => {
3524
- // we do not want to expose this error, just continue if this analytics-only call fails
3525
- });
3526
- return this._createFromManifest(manifestUrl);
3527
- }
3528
- _createFromManifest(manifestUrl) {
3529
- return this.wire
3530
- .sendAction('get-application-manifest', { manifestUrl })
3531
- .then(({ payload }) => {
3532
- const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3533
- return this.wrap({ uuid });
3534
- })
3535
- .then((app) => {
3536
- app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3537
- return app;
3538
- });
3539
- }
2448
+ function requireInstance$1 () {
2449
+ if (hasRequiredInstance$1) return Instance$6;
2450
+ hasRequiredInstance$1 = 1;
2451
+ Object.defineProperty(Instance$6, "__esModule", { value: true });
2452
+ Instance$6.Application = void 0;
2453
+ /* eslint-disable import/prefer-default-export */
2454
+ const base_1 = base;
2455
+ const window_1 = requireWindow();
2456
+ const view_1 = requireView();
2457
+ /**
2458
+ * An object representing an application. Allows the developer to create,
2459
+ * execute, show/close an application as well as listen to {@link OpenFin.ApplicationEvents application events}.
2460
+ */
2461
+ class Application extends base_1.EmitterBase {
2462
+ /**
2463
+ * @internal
2464
+ */
2465
+ constructor(wire, identity) {
2466
+ super(wire, 'application', identity.uuid);
2467
+ this.identity = identity;
2468
+ this.window = new window_1._Window(this.wire, {
2469
+ uuid: this.identity.uuid,
2470
+ name: this.identity.uuid
2471
+ });
2472
+ }
2473
+ windowListFromIdentityList(identityList) {
2474
+ const windowList = [];
2475
+ identityList.forEach((identity) => {
2476
+ windowList.push(new window_1._Window(this.wire, {
2477
+ uuid: identity.uuid,
2478
+ name: identity.name
2479
+ }));
2480
+ });
2481
+ return windowList;
2482
+ }
2483
+ /**
2484
+ * Determines if the application is currently running.
2485
+ *
2486
+ * @example
2487
+ *
2488
+ * ```js
2489
+ * async function isAppRunning() {
2490
+ * const app = await fin.Application.getCurrent();
2491
+ * return await app.isRunning();
2492
+ * }
2493
+ * isAppRunning().then(running => console.log(`Current app is running: ${running}`)).catch(err => console.log(err));
2494
+ * ```
2495
+ */
2496
+ isRunning() {
2497
+ return this.wire.sendAction('is-application-running', this.identity).then(({ payload }) => payload.data);
2498
+ }
2499
+ /**
2500
+ * Closes the application and any child windows created by the application.
2501
+ * Cleans the application from state so it is no longer found in getAllApplications.
2502
+ * @param force Close will be prevented from closing when force is false and
2503
+ * ‘close-requested’ has been subscribed to for application’s main window.
2504
+ *
2505
+ * @example
2506
+ *
2507
+ * ```js
2508
+ * async function closeApp() {
2509
+ * const allApps1 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}, {uuid: 'app2', isRunning: true}]
2510
+ * const app = await fin.Application.wrap({uuid: 'app2'});
2511
+ * await app.quit();
2512
+ * const allApps2 = await fin.System.getAllApplications(); //[{uuid: 'app1', isRunning: true}]
2513
+ *
2514
+ * }
2515
+ * closeApp().then(() => console.log('Application quit')).catch(err => console.log(err));
2516
+ * ```
2517
+ */
2518
+ async quit(force = false) {
2519
+ try {
2520
+ await this._close(force);
2521
+ await this.wire.sendAction('destroy-application', { force, ...this.identity });
2522
+ }
2523
+ catch (error) {
2524
+ const acceptableErrors = ['Remote connection has closed', 'Could not locate the requested application'];
2525
+ if (!acceptableErrors.some((msg) => error.message.includes(msg))) {
2526
+ throw error;
2527
+ }
2528
+ }
2529
+ }
2530
+ async _close(force = false) {
2531
+ try {
2532
+ await this.wire.sendAction('close-application', { force, ...this.identity });
2533
+ }
2534
+ catch (error) {
2535
+ if (!error.message.includes('Remote connection has closed')) {
2536
+ throw error;
2537
+ }
2538
+ }
2539
+ }
2540
+ /**
2541
+ * @deprecated use Application.quit instead
2542
+ * Closes the application and any child windows created by the application.
2543
+ * @param force - Close will be prevented from closing when force is false and ‘close-requested’ has been subscribed to for application’s main window.
2544
+ * @param callback - called if the method succeeds.
2545
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
2546
+ *
2547
+ * @example
2548
+ *
2549
+ * ```js
2550
+ * async function closeApp() {
2551
+ * const app = await fin.Application.getCurrent();
2552
+ * return await app.close();
2553
+ * }
2554
+ * closeApp().then(() => console.log('Application closed')).catch(err => console.log(err));
2555
+ * ```
2556
+ */
2557
+ close(force = false) {
2558
+ console.warn('Deprecation Warning: Application.close is deprecated Please use Application.quit');
2559
+ this.wire.sendAction('application-close', this.identity).catch((e) => {
2560
+ // we do not want to expose this error, just continue if this analytics-only call fails
2561
+ });
2562
+ return this._close(force);
2563
+ }
2564
+ /**
2565
+ * Retrieves an array of wrapped fin.Windows for each of the application’s child windows.
2566
+ *
2567
+ * @example
2568
+ *
2569
+ * ```js
2570
+ * async function getChildWindows() {
2571
+ * const app = await fin.Application.getCurrent();
2572
+ * return await app.getChildWindows();
2573
+ * }
2574
+ *
2575
+ * getChildWindows().then(children => console.log(children)).catch(err => console.log(err));
2576
+ * ```
2577
+ */
2578
+ getChildWindows() {
2579
+ return this.wire.sendAction('get-child-windows', this.identity).then(({ payload }) => {
2580
+ const identityList = [];
2581
+ payload.data.forEach((winName) => {
2582
+ identityList.push({ uuid: this.identity.uuid, name: winName });
2583
+ });
2584
+ return this.windowListFromIdentityList(identityList);
2585
+ });
2586
+ }
2587
+ /**
2588
+ * Retrieves the JSON manifest that was used to create the application. Invokes the error callback
2589
+ * if the application was not created from a manifest.
2590
+ *
2591
+ * @example
2592
+ *
2593
+ * ```js
2594
+ * async function getManifest() {
2595
+ * const app = await fin.Application.getCurrent();
2596
+ * return await app.getManifest();
2597
+ * }
2598
+ *
2599
+ * getManifest().then(manifest => console.log(manifest)).catch(err => console.log(err));
2600
+ * ```
2601
+ */
2602
+ getManifest() {
2603
+ return this.wire.sendAction('get-application-manifest', this.identity).then(({ payload }) => payload.data);
2604
+ }
2605
+ /**
2606
+ * Retrieves UUID of the application that launches this application. Invokes the error callback
2607
+ * if the application was created from a manifest.
2608
+ *
2609
+ * @example
2610
+ *
2611
+ * ```js
2612
+ * async function getParentUuid() {
2613
+ * const app = await fin.Application.start({
2614
+ * uuid: 'app-1',
2615
+ * name: 'myApp',
2616
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getParentUuid.html',
2617
+ * autoShow: true
2618
+ * });
2619
+ * return await app.getParentUuid();
2620
+ * }
2621
+ *
2622
+ * getParentUuid().then(parentUuid => console.log(parentUuid)).catch(err => console.log(err));
2623
+ * ```
2624
+ */
2625
+ getParentUuid() {
2626
+ return this.wire.sendAction('get-parent-application', this.identity).then(({ payload }) => payload.data);
2627
+ }
2628
+ /**
2629
+ * Retrieves current application's shortcut configuration.
2630
+ *
2631
+ * @example
2632
+ *
2633
+ * ```js
2634
+ * async function getShortcuts() {
2635
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
2636
+ * return await app.getShortcuts();
2637
+ * }
2638
+ * getShortcuts().then(config => console.log(config)).catch(err => console.log(err));
2639
+ * ```
2640
+ */
2641
+ getShortcuts() {
2642
+ return this.wire.sendAction('get-shortcuts', this.identity).then(({ payload }) => payload.data);
2643
+ }
2644
+ /**
2645
+ * Retrieves current application's views.
2646
+ * @experimental
2647
+ *
2648
+ * @example
2649
+ *
2650
+ * ```js
2651
+ * async function getViews() {
2652
+ * const app = await fin.Application.getCurrent();
2653
+ * return await app.getViews();
2654
+ * }
2655
+ * getViews().then(views => console.log(views)).catch(err => console.log(err));
2656
+ * ```
2657
+ */
2658
+ async getViews() {
2659
+ const { payload } = await this.wire.sendAction('application-get-views', this.identity);
2660
+ return payload.data.map((id) => new view_1.View(this.wire, id));
2661
+ }
2662
+ /**
2663
+ * Returns the current zoom level of the application.
2664
+ *
2665
+ * @example
2666
+ *
2667
+ * ```js
2668
+ * async function getZoomLevel() {
2669
+ * const app = await fin.Application.getCurrent();
2670
+ * return await app.getZoomLevel();
2671
+ * }
2672
+ *
2673
+ * getZoomLevel().then(zoomLevel => console.log(zoomLevel)).catch(err => console.log(err));
2674
+ * ```
2675
+ */
2676
+ getZoomLevel() {
2677
+ return this.wire.sendAction('get-application-zoom-level', this.identity).then(({ payload }) => payload.data);
2678
+ }
2679
+ /**
2680
+ * Returns an instance of the main Window of the application
2681
+ *
2682
+ * @example
2683
+ *
2684
+ * ```js
2685
+ * async function getWindow() {
2686
+ * const app = await fin.Application.start({
2687
+ * uuid: 'app-1',
2688
+ * name: 'myApp',
2689
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.getWindow.html',
2690
+ * autoShow: true
2691
+ * });
2692
+ * return await app.getWindow();
2693
+ * }
2694
+ *
2695
+ * getWindow().then(win => {
2696
+ * win.showAt(0, 400);
2697
+ * win.flash();
2698
+ * }).catch(err => console.log(err));
2699
+ * ```
2700
+ */
2701
+ getWindow() {
2702
+ this.wire.sendAction('application-get-window', this.identity).catch((e) => {
2703
+ // we do not want to expose this error, just continue if this analytics-only call fails
2704
+ });
2705
+ return Promise.resolve(this.window);
2706
+ }
2707
+ /**
2708
+ * Manually registers a user with the licensing service. The only data sent by this call is userName and appName.
2709
+ * @param userName - username to be passed to the RVM.
2710
+ * @param appName - app name to be passed to the RVM.
2711
+ *
2712
+ * @example
2713
+ *
2714
+ * ```js
2715
+ * async function registerUser() {
2716
+ * const app = await fin.Application.getCurrent();
2717
+ * return await app.registerUser('user', 'myApp');
2718
+ * }
2719
+ *
2720
+ * registerUser().then(() => console.log('Successfully registered the user')).catch(err => console.log(err));
2721
+ * ```
2722
+ */
2723
+ registerUser(userName, appName) {
2724
+ return this.wire.sendAction('register-user', { userName, appName, ...this.identity }).then(() => undefined);
2725
+ }
2726
+ /**
2727
+ * Removes the application’s icon from the tray.
2728
+ *
2729
+ * @example
2730
+ *
2731
+ * ```js
2732
+ * async function removeTrayIcon() {
2733
+ * const app = await fin.Application.getCurrent();
2734
+ * return await app.removeTrayIcon();
2735
+ * }
2736
+ *
2737
+ * removeTrayIcon().then(() => console.log('Removed the tray icon.')).catch(err => console.log(err));
2738
+ * ```
2739
+ */
2740
+ removeTrayIcon() {
2741
+ return this.wire.sendAction('remove-tray-icon', this.identity).then(() => undefined);
2742
+ }
2743
+ /**
2744
+ * Restarts the application.
2745
+ *
2746
+ * @example
2747
+ *
2748
+ * ```js
2749
+ * async function restartApp() {
2750
+ * const app = await fin.Application.getCurrent();
2751
+ * return await app.restart();
2752
+ * }
2753
+ * restartApp().then(() => console.log('Application restarted')).catch(err => console.log(err));
2754
+ * ```
2755
+ */
2756
+ restart() {
2757
+ return this.wire.sendAction('restart-application', this.identity).then(() => undefined);
2758
+ }
2759
+ /**
2760
+ * DEPRECATED method to run the application.
2761
+ * Needed when starting application via {@link Application.create}, but NOT needed when starting via {@link Application.start}.
2762
+ *
2763
+ * @example
2764
+ *
2765
+ * ```js
2766
+ * async function run() {
2767
+ * const app = await fin.Application.create({
2768
+ * name: 'myApp',
2769
+ * uuid: 'app-1',
2770
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.run.html',
2771
+ * autoShow: true
2772
+ * });
2773
+ * await app.run();
2774
+ * }
2775
+ * run().then(() => console.log('Application is running')).catch(err => console.log(err));
2776
+ * ```
2777
+ *
2778
+ * @ignore
2779
+ */
2780
+ run() {
2781
+ console.warn('Deprecation Warning: Application.run is deprecated Please use fin.Application.start');
2782
+ this.wire.sendAction('application-run', this.identity).catch((e) => {
2783
+ // we do not want to expose this error, just continue if this analytics-only call fails
2784
+ });
2785
+ return this._run();
2786
+ }
2787
+ _run(opts = {}) {
2788
+ return this.wire
2789
+ .sendAction('run-application', {
2790
+ manifestUrl: this._manifestUrl,
2791
+ opts,
2792
+ ...this.identity
2793
+ })
2794
+ .then(() => undefined);
2795
+ }
2796
+ /**
2797
+ * Instructs the RVM to schedule one restart of the application.
2798
+ *
2799
+ * @example
2800
+ *
2801
+ * ```js
2802
+ * async function scheduleRestart() {
2803
+ * const app = await fin.Application.getCurrent();
2804
+ * return await app.scheduleRestart();
2805
+ * }
2806
+ *
2807
+ * scheduleRestart().then(() => console.log('Application is scheduled to restart')).catch(err => console.log(err));
2808
+ * ```
2809
+ */
2810
+ scheduleRestart() {
2811
+ return this.wire.sendAction('relaunch-on-close', this.identity).then(() => undefined);
2812
+ }
2813
+ /**
2814
+ * Sends a message to the RVM to upload the application's logs. On success,
2815
+ * an object containing logId is returned.
2816
+ *
2817
+ * @example
2818
+ *
2819
+ * ```js
2820
+ * async function sendLog() {
2821
+ * const app = await fin.Application.getCurrent();
2822
+ * return await app.sendApplicationLog();
2823
+ * }
2824
+ *
2825
+ * sendLog().then(info => console.log(info.logId)).catch(err => console.log(err));
2826
+ * ```
2827
+ */
2828
+ async sendApplicationLog() {
2829
+ const { payload } = await this.wire.sendAction('send-application-log', this.identity);
2830
+ return payload.data;
2831
+ }
2832
+ /**
2833
+ * Sets or removes a custom JumpList for the application. Only applicable in Windows OS.
2834
+ * If categories is null the previously set custom JumpList (if any) will be replaced by the standard JumpList for the app (managed by Windows).
2835
+ *
2836
+ * Note: If the "name" property is omitted it defaults to "tasks".
2837
+ * @param jumpListCategories An array of JumpList Categories to populate. If null, remove any existing JumpList configuration and set to Windows default.
2838
+ *
2839
+ *
2840
+ * @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).
2841
+ *
2842
+ * The bottommost item in the jumplist will always be an item pointing to the current app. Its name is taken from the manifest's
2843
+ * **` shortcut.name `** and uses **` shortcut.company `** as a fallback. Clicking that item will launch the app from its current manifest.
2844
+ *
2845
+ * Note: If the "name" property is omitted it defaults to "tasks".
2846
+ *
2847
+ * Note: Window OS caches jumplists icons, therefore an icon change might only be visible after the cache is removed or the
2848
+ * uuid or shortcut.name is changed.
2849
+ *
2850
+ * @example
2851
+ *
2852
+ * ```js
2853
+ * const app = fin.Application.getCurrentSync();
2854
+ * const appName = 'My App';
2855
+ * const jumpListConfig = [ // array of JumpList categories
2856
+ * {
2857
+ * // has no name and no type so `type` is assumed to be "tasks"
2858
+ * items: [ // array of JumpList items
2859
+ * {
2860
+ * type: 'task',
2861
+ * title: `Launch ${appName}`,
2862
+ * description: `Runs ${appName} with the default configuration`,
2863
+ * deepLink: 'fins://path.to/app/manifest.json',
2864
+ * iconPath: 'https://path.to/app/icon.ico',
2865
+ * iconIndex: 0
2866
+ * },
2867
+ * { type: 'separator' },
2868
+ * {
2869
+ * type: 'task',
2870
+ * title: `Restore ${appName}`,
2871
+ * description: 'Restore to last configuration',
2872
+ * deepLink: 'fins://path.to/app/manifest.json?$$use-last-configuration=true',
2873
+ * iconPath: 'https://path.to/app/icon.ico',
2874
+ * iconIndex: 0
2875
+ * },
2876
+ * ]
2877
+ * },
2878
+ * {
2879
+ * name: 'Tools',
2880
+ * items: [ // array of JumpList items
2881
+ * {
2882
+ * type: 'task',
2883
+ * title: 'Tool A',
2884
+ * description: 'Runs Tool A',
2885
+ * deepLink: 'fins://path.to/tool-a/manifest.json',
2886
+ * iconPath: 'https://path.to/tool-a/icon.ico',
2887
+ * iconIndex: 0
2888
+ * },
2889
+ * {
2890
+ * type: 'task',
2891
+ * title: 'Tool B',
2892
+ * description: 'Runs Tool B',
2893
+ * deepLink: 'fins://path.to/tool-b/manifest.json',
2894
+ * iconPath: 'https://path.to/tool-b/icon.ico',
2895
+ * iconIndex: 0
2896
+ * }]
2897
+ * }
2898
+ * ];
2899
+ *
2900
+ * app.setJumpList(jumpListConfig).then(() => console.log('JumpList applied')).catch(e => console.log(`JumpList failed to apply: ${e.toString()}`));
2901
+ * ```
2902
+ *
2903
+ * To handle deeplink args:
2904
+ * ```js
2905
+ * function handleUseLastConfiguration() {
2906
+ * // this handler is called when the app is being launched
2907
+ * app.on('run-requested', event => {
2908
+ * if(event.userAppConfigArgs['use-last-configuration']) {
2909
+ * // your logic here
2910
+ * }
2911
+ * });
2912
+ * // this handler is called when the app was already running when the launch was requested
2913
+ * fin.desktop.main(function(args) {
2914
+ * if(args && args['use-last-configuration']) {
2915
+ * // your logic here
2916
+ * }
2917
+ * });
2918
+ * }
2919
+ * ```
2920
+ */
2921
+ async setJumpList(jumpListCategories) {
2922
+ await this.wire.sendAction('set-jump-list', { config: jumpListCategories, ...this.identity });
2923
+ }
2924
+ /**
2925
+ * Adds a customizable icon in the system tray. To listen for a click on the icon use the `tray-icon-clicked` event.
2926
+ * @param icon Image URL or base64 encoded string to be used as the icon
2927
+ *
2928
+ * @example
2929
+ *
2930
+ * ```js
2931
+ * const imageUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
2932
+ * const base64EncodedImage = "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX\
2933
+ * ///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII";
2934
+ * const dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DH\
2935
+ * xgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
2936
+ *
2937
+ * async function setTrayIcon(icon) {
2938
+ * const app = await fin.Application.getCurrent();
2939
+ * return await app.setTrayIcon(icon);
2940
+ * }
2941
+ *
2942
+ * // use image url to set tray icon
2943
+ * setTrayIcon(imageUrl).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2944
+ *
2945
+ * // use base64 encoded string to set tray icon
2946
+ * setTrayIcon(base64EncodedImage).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2947
+ *
2948
+ * // use a dataURL to set tray icon
2949
+ * setTrayIcon(dataURL).then(() => console.log('Setting tray icon')).catch(err => console.log(err));
2950
+ * ```
2951
+ */
2952
+ setTrayIcon(icon) {
2953
+ return this.wire
2954
+ .sendAction('set-tray-icon', {
2955
+ enabledIcon: icon,
2956
+ ...this.identity
2957
+ })
2958
+ .then(() => undefined);
2959
+ }
2960
+ /**
2961
+ * Set hover text for this application's system tray icon.
2962
+ * Note: Application must first set a tray icon with {@link Application.setTrayIcon}.
2963
+ * @param toolTip
2964
+ *
2965
+ * @example
2966
+ *
2967
+ * ```js
2968
+ * const app = fin.Application.getCurrentSync();
2969
+ * const iconUrl = "http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png";
2970
+ *
2971
+ * await app.setTrayIcon(iconUrl);
2972
+ *
2973
+ * await app.setTrayIconToolTip('My Application');
2974
+ * ```
2975
+ */
2976
+ async setTrayIconToolTip(toolTip) {
2977
+ await this.wire.sendAction('set-tray-icon-tooltip', { ...this.identity, toolTip });
2978
+ }
2979
+ /**
2980
+ * Sets new application's shortcut configuration. Windows only.
2981
+ * @param config New application's shortcut configuration.
2982
+ *
2983
+ * @remarks Application has to be launched with a manifest and has to have shortcut configuration (icon url, name, etc.) in its manifest
2984
+ * to be able to change shortcut states.
2985
+ *
2986
+ * @example
2987
+ *
2988
+ * ```js
2989
+ * async function setShortcuts(config) {
2990
+ * const app = await fin.Application.getCurrent();
2991
+ * return app.setShortcuts(config);
2992
+ * }
2993
+ *
2994
+ * setShortcuts({
2995
+ * desktop: true,
2996
+ * startMenu: false,
2997
+ * systemStartup: true
2998
+ * }).then(() => console.log('Shortcuts are set.')).catch(err => console.log(err));
2999
+ * ```
3000
+ */
3001
+ setShortcuts(config) {
3002
+ return this.wire.sendAction('set-shortcuts', { data: config, ...this.identity }).then(() => undefined);
3003
+ }
3004
+ /**
3005
+ * Sets the query string in all shortcuts for this app. Requires RVM 5.5+.
3006
+ * @param queryString The new query string for this app's shortcuts.
3007
+ *
3008
+ * @example
3009
+ *
3010
+ * ```js
3011
+ * const newQueryArgs = 'arg=true&arg2=false';
3012
+ * const app = await fin.Application.getCurrent();
3013
+ * try {
3014
+ * await app.setShortcutQueryParams(newQueryArgs);
3015
+ * } catch(err) {
3016
+ * console.error(err)
3017
+ * }
3018
+ * ```
3019
+ */
3020
+ async setShortcutQueryParams(queryString) {
3021
+ await this.wire.sendAction('set-shortcut-query-args', { data: queryString, ...this.identity });
3022
+ }
3023
+ /**
3024
+ * Sets the zoom level of the application. The original size is 0 and each increment above or below represents zooming 20%
3025
+ * larger or smaller to default limits of 300% and 50% of original size, respectively.
3026
+ * @param level The zoom level
3027
+ *
3028
+ * @example
3029
+ *
3030
+ * ```js
3031
+ * async function setZoomLevel(number) {
3032
+ * const app = await fin.Application.getCurrent();
3033
+ * return await app.setZoomLevel(number);
3034
+ * }
3035
+ *
3036
+ * setZoomLevel(5).then(() => console.log('Setting a zoom level')).catch(err => console.log(err));
3037
+ * ```
3038
+ */
3039
+ setZoomLevel(level) {
3040
+ return this.wire.sendAction('set-application-zoom-level', { level, ...this.identity }).then(() => undefined);
3041
+ }
3042
+ /**
3043
+ * Sets a username to correlate with App Log Management.
3044
+ * @param username Username to correlate with App's Log.
3045
+ *
3046
+ * @example
3047
+ *
3048
+ * ```js
3049
+ * async function setAppLogUser() {
3050
+ * const app = await fin.Application.getCurrent();
3051
+ * return await app.setAppLogUsername('username');
3052
+ * }
3053
+ *
3054
+ * setAppLogUser().then(() => console.log('Success')).catch(err => console.log(err));
3055
+ *
3056
+ * ```
3057
+ */
3058
+ async setAppLogUsername(username) {
3059
+ await this.wire.sendAction('set-app-log-username', { data: username, ...this.identity });
3060
+ }
3061
+ /**
3062
+ * Retrieves information about the system tray. If the system tray is not set, it will throw an error message.
3063
+ * @remarks The only information currently returned is the position and dimensions.
3064
+ *
3065
+ * @example
3066
+ *
3067
+ * ```js
3068
+ * async function getTrayIconInfo() {
3069
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3070
+ * return await app.getTrayIconInfo();
3071
+ * }
3072
+ * getTrayIconInfo().then(info => console.log(info)).catch(err => console.log(err));
3073
+ * ```
3074
+ */
3075
+ getTrayIconInfo() {
3076
+ return this.wire.sendAction('get-tray-icon-info', this.identity).then(({ payload }) => payload.data);
3077
+ }
3078
+ /**
3079
+ * Checks if the application has an associated tray icon.
3080
+ *
3081
+ * @example
3082
+ *
3083
+ * ```js
3084
+ * const app = await fin.Application.wrap({ uuid: 'testapp' });
3085
+ * const hasTrayIcon = await app.hasTrayIcon();
3086
+ * console.log(hasTrayIcon);
3087
+ * ```
3088
+ */
3089
+ hasTrayIcon() {
3090
+ return this.wire.sendAction('has-tray-icon', this.identity).then(({ payload }) => payload.data);
3091
+ }
3092
+ /**
3093
+ * Closes the application by terminating its process.
3094
+ *
3095
+ * @example
3096
+ *
3097
+ * ```js
3098
+ * async function terminateApp() {
3099
+ * const app = await fin.Application.getCurrent();
3100
+ * return await app.terminate();
3101
+ * }
3102
+ * terminateApp().then(() => console.log('Application terminated')).catch(err => console.log(err));
3103
+ * ```
3104
+ */
3105
+ terminate() {
3106
+ return this.wire.sendAction('terminate-application', this.identity).then(() => undefined);
3107
+ }
3108
+ /**
3109
+ * Waits for a hanging application. This method can be called in response to an application
3110
+ * "not-responding" to allow the application to continue and to generate another "not-responding"
3111
+ * message after a certain period of time.
3112
+ *
3113
+ * @ignore
3114
+ */
3115
+ wait() {
3116
+ return this.wire.sendAction('wait-for-hung-application', this.identity).then(() => undefined);
3117
+ }
3118
+ /**
3119
+ * Retrieves information about the application.
3120
+ *
3121
+ * @remarks If the application was not launched from a manifest, the call will return the closest parent application `manifest`
3122
+ * and `manifestUrl`. `initialOptions` shows the parameters used when launched programmatically, or the `startup_app` options
3123
+ * if launched from manifest. The `parentUuid` will be the uuid of the immediate parent (if applicable).
3124
+ *
3125
+ * @example
3126
+ *
3127
+ * ```js
3128
+ * async function getInfo() {
3129
+ * const app = await fin.Application.getCurrent();
3130
+ * return await app.getInfo();
3131
+ * }
3132
+ *
3133
+ * getInfo().then(info => console.log(info)).catch(err => console.log(err));
3134
+ * ```
3135
+ */
3136
+ getInfo() {
3137
+ return this.wire.sendAction('get-info', this.identity).then(({ payload }) => payload.data);
3138
+ }
3139
+ /**
3140
+ * Retrieves all process information for entities (windows and views) associated with an application.
3141
+ *
3142
+ * @example
3143
+ * ```js
3144
+ * const app = await fin.Application.getCurrent();
3145
+ * const processInfo = await app.getProcessInfo();
3146
+ * ```
3147
+ * @experimental
3148
+ */
3149
+ async getProcessInfo() {
3150
+ const { payload: { data } } = await this.wire.sendAction('application-get-process-info', this.identity);
3151
+ return data;
3152
+ }
3153
+ /**
3154
+ * Sets file auto download location. It's only allowed in the same application.
3155
+ *
3156
+ * Note: This method is restricted by default and must be enabled via
3157
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3158
+ * @param downloadLocation file auto download location
3159
+ *
3160
+ * @throws if setting file auto download location on different applications.
3161
+ * @example
3162
+ *
3163
+ * ```js
3164
+ * const downloadLocation = 'C:\\dev\\temp';
3165
+ * const app = await fin.Application.getCurrent();
3166
+ * try {
3167
+ * await app.setFileDownloadLocation(downloadLocation);
3168
+ * console.log('File download location is set');
3169
+ * } catch(err) {
3170
+ * console.error(err)
3171
+ * }
3172
+ * ```
3173
+ */
3174
+ async setFileDownloadLocation(downloadLocation) {
3175
+ const { name } = this.wire.me;
3176
+ const entityIdentity = { uuid: this.identity.uuid, name };
3177
+ await this.wire.sendAction('set-file-download-location', { ...entityIdentity, downloadLocation });
3178
+ }
3179
+ /**
3180
+ * 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.
3181
+ *
3182
+ * Note: This method is restricted by default and must be enabled via
3183
+ * <a href="https://developers.openfin.co/docs/api-security">API security settings</a>.
3184
+ *
3185
+ * @throws if getting file auto download location on different applications.
3186
+ * @example
3187
+ *
3188
+ * ```js
3189
+ * const app = await fin.Application.getCurrent();
3190
+ * const fileDownloadDir = await app.getFileDownloadLocation();
3191
+ * ```
3192
+ */
3193
+ async getFileDownloadLocation() {
3194
+ const { payload: { data } } = await this.wire.sendAction('get-file-download-location', this.identity);
3195
+ return data;
3196
+ }
3197
+ /**
3198
+ * Shows a menu on the tray icon. Use with tray-icon-clicked event.
3199
+ * @param options
3200
+ * @typeParam Data User-defined shape for data returned upon menu item click. Should be a
3201
+ * [union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
3202
+ * of all possible data shapes for the entire menu, and the click handler should process
3203
+ * these with a "reducer" pattern.
3204
+ * @throws if the application has no tray icon set
3205
+ * @throws if the system tray is currently hidden
3206
+ * @example
3207
+ *
3208
+ * ```js
3209
+ * const iconUrl = 'http://cdn.openfin.co/assets/testing/icons/circled-digit-one.png';
3210
+ * const app = fin.Application.getCurrentSync();
3211
+ *
3212
+ * await app.setTrayIcon(iconUrl);
3213
+ *
3214
+ * const template = [
3215
+ * {
3216
+ * label: 'Menu Item 1',
3217
+ * data: 'hello from item 1'
3218
+ * },
3219
+ * { type: 'separator' },
3220
+ * {
3221
+ * label: 'Menu Item 2',
3222
+ * type: 'checkbox',
3223
+ * checked: true,
3224
+ * data: 'The user clicked the checkbox'
3225
+ * },
3226
+ * {
3227
+ * label: 'see more',
3228
+ * enabled: false,
3229
+ * submenu: [
3230
+ * { label: 'submenu 1', data: 'hello from submenu' }
3231
+ * ]
3232
+ * }
3233
+ * ];
3234
+ *
3235
+ * app.addListener('tray-icon-clicked', (event) => {
3236
+ * // right-click
3237
+ * if (event.button === 2) {
3238
+ * app.showTrayIconPopupMenu({ template }).then(r => {
3239
+ * if (r.result === 'closed') {
3240
+ * console.log('nothing happened');
3241
+ * } else {
3242
+ * console.log(r.data);
3243
+ * }
3244
+ * });
3245
+ * }
3246
+ * });
3247
+ * ```
3248
+ */
3249
+ async showTrayIconPopupMenu(options) {
3250
+ const { name } = this.wire.me;
3251
+ const entityIdentity = { uuid: this.identity.uuid, name };
3252
+ const { payload } = await this.wire.sendAction('show-tray-icon-popup-menu', { ...entityIdentity, options });
3253
+ return payload.data;
3254
+ }
3255
+ /**
3256
+ * Closes the tray icon menu.
3257
+ *
3258
+ * @throws if the application has no tray icon set
3259
+ * @example
3260
+ *
3261
+ * ```js
3262
+ * const app = fin.Application.getCurrentSync();
3263
+ *
3264
+ * await app.closeTrayIconPopupMenu();
3265
+ * ```
3266
+ */
3267
+ async closeTrayIconPopupMenu() {
3268
+ const { name } = this.wire.me;
3269
+ const entityIdentity = { uuid: this.identity.uuid, name };
3270
+ await this.wire.sendAction('close-tray-icon-popup-menu', { ...entityIdentity });
3271
+ }
3272
+ }
3273
+ Instance$6.Application = Application;
3274
+ return Instance$6;
3540
3275
  }
3541
- Factory$7.ApplicationModule = ApplicationModule;
3542
3276
 
3543
- (function (exports) {
3544
- var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3545
- if (k2 === undefined) k2 = k;
3546
- var desc = Object.getOwnPropertyDescriptor(m, k);
3547
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3548
- desc = { enumerable: true, get: function() { return m[k]; } };
3549
- }
3550
- Object.defineProperty(o, k2, desc);
3551
- }) : (function(o, m, k, k2) {
3552
- if (k2 === undefined) k2 = k;
3553
- o[k2] = m[k];
3554
- }));
3555
- var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3556
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3557
- };
3558
- Object.defineProperty(exports, "__esModule", { value: true });
3277
+ var hasRequiredFactory$1;
3278
+
3279
+ function requireFactory$1 () {
3280
+ if (hasRequiredFactory$1) return Factory$7;
3281
+ hasRequiredFactory$1 = 1;
3282
+ Object.defineProperty(Factory$7, "__esModule", { value: true });
3283
+ Factory$7.ApplicationModule = void 0;
3284
+ const base_1 = base;
3285
+ const validate_1 = validate;
3286
+ const Instance_1 = requireInstance$1();
3559
3287
  /**
3560
- * Entry points for the OpenFin `Application` API (`fin.Application`).
3561
- *
3562
- * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3563
- * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3564
- *
3565
- * 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),
3566
- * both of these were documented on the same page.
3567
- *
3568
- * @packageDocumentation
3288
+ * Static namespace for OpenFin API methods that interact with the {@link Application} class, available under `fin.Application`.
3569
3289
  */
3570
- __exportStar(Factory$7, exports);
3571
- __exportStar(Instance$6, exports);
3572
- } (application));
3290
+ class ApplicationModule extends base_1.Base {
3291
+ /**
3292
+ * Asynchronously returns an API handle for the given Application identity.
3293
+ *
3294
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3295
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3296
+ * for an Application throughout its entire lifecycle.
3297
+ *
3298
+ * @example
3299
+ *
3300
+ * ```js
3301
+ * fin.Application.wrap({ uuid: 'testapp' })
3302
+ * .then(app => app.isRunning())
3303
+ * .then(running => console.log('Application is running: ' + running))
3304
+ * .catch(err => console.log(err));
3305
+ * ```
3306
+ *
3307
+ */
3308
+ async wrap(identity) {
3309
+ this.wire.sendAction('wrap-application').catch((e) => {
3310
+ // we do not want to expose this error, just continue if this analytics-only call fails
3311
+ });
3312
+ const errorMsg = (0, validate_1.validateIdentity)(identity);
3313
+ if (errorMsg) {
3314
+ throw new Error(errorMsg);
3315
+ }
3316
+ return new Instance_1.Application(this.wire, identity);
3317
+ }
3318
+ /**
3319
+ * Synchronously returns an API handle for the given Application identity.
3320
+ *
3321
+ * @remarks Wrapping an Application identity that does not yet exist will *not* throw an error, and instead
3322
+ * returns a stub object that cannot yet perform rendering tasks. This can be useful for plumbing eventing
3323
+ * for an Aplication throughout its entire lifecycle.
3324
+ *
3325
+ * @example
3326
+ *
3327
+ * ```js
3328
+ * const app = fin.Application.wrapSync({ uuid: 'testapp' });
3329
+ * await app.close();
3330
+ * ```
3331
+ *
3332
+ */
3333
+ wrapSync(identity) {
3334
+ this.wire.sendAction('wrap-application-sync').catch((e) => {
3335
+ // we do not want to expose this error, just continue if this analytics-only call fails
3336
+ });
3337
+ const errorMsg = (0, validate_1.validateIdentity)(identity);
3338
+ if (errorMsg) {
3339
+ throw new Error(errorMsg);
3340
+ }
3341
+ return new Instance_1.Application(this.wire, identity);
3342
+ }
3343
+ async _create(appOptions) {
3344
+ // set defaults:
3345
+ if (appOptions.waitForPageLoad === undefined) {
3346
+ appOptions.waitForPageLoad = false;
3347
+ }
3348
+ if (appOptions.autoShow === undefined && appOptions.isPlatformController === undefined) {
3349
+ appOptions.autoShow = true;
3350
+ }
3351
+ await this.wire.sendAction('create-application', appOptions);
3352
+ return this.wrap({ uuid: appOptions.uuid });
3353
+ }
3354
+ /**
3355
+ * DEPRECATED method to create a new Application. Use {@link Application.ApplicationModule.start Application.start} instead.
3356
+ *
3357
+ * @example
3358
+ *
3359
+ * ```js
3360
+ * async function createApp() {
3361
+ * const app = await fin.Application.create({
3362
+ * name: 'myApp',
3363
+ * uuid: 'app-3',
3364
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.create.html',
3365
+ * autoShow: true
3366
+ * });
3367
+ * await app.run();
3368
+ * }
3369
+ *
3370
+ * createApp().then(() => console.log('Application is created')).catch(err => console.log(err));
3371
+ * ```
3372
+ *
3373
+ * @ignore
3374
+ */
3375
+ create(appOptions) {
3376
+ console.warn('Deprecation Warning: fin.Application.create is deprecated. Please use fin.Application.start');
3377
+ this.wire.sendAction('application-create').catch((e) => {
3378
+ // we do not want to expose this error, just continue if this analytics-only call fails
3379
+ });
3380
+ return this._create(appOptions);
3381
+ }
3382
+ /**
3383
+ * Creates and starts a new Application.
3384
+ *
3385
+ * @example
3386
+ *
3387
+ * ```js
3388
+ * async function start() {
3389
+ * return fin.Application.start({
3390
+ * name: 'app-1',
3391
+ * uuid: 'app-1',
3392
+ * url: 'https://cdn.openfin.co/docs/javascript/stable/tutorial-Application.start.html',
3393
+ * autoShow: true
3394
+ * });
3395
+ * }
3396
+ * start().then(() => console.log('Application is running')).catch(err => console.log(err));
3397
+ * ```
3398
+ *
3399
+ */
3400
+ async start(appOptions) {
3401
+ this.wire.sendAction('start-application').catch((e) => {
3402
+ // we do not want to expose this error, just continue if this analytics-only call fails
3403
+ });
3404
+ const app = await this._create(appOptions);
3405
+ await this.wire.sendAction('run-application', { uuid: appOptions.uuid });
3406
+ return app;
3407
+ }
3408
+ /**
3409
+ * Asynchronously starts a batch of applications given an array of application identifiers and manifestUrls.
3410
+ * Returns once the RVM is finished attempting to launch the applications.
3411
+ * @param opts - Parameters that the RVM will use.
3412
+ *
3413
+ * @example
3414
+ *
3415
+ * ```js
3416
+ *
3417
+ * const applicationInfoArray = [
3418
+ * {
3419
+ * "uuid": 'App-1',
3420
+ * "manifestUrl": 'http://localhost:5555/app1.json',
3421
+ * },
3422
+ * {
3423
+ * "uuid": 'App-2',
3424
+ * "manifestUrl": 'http://localhost:5555/app2.json',
3425
+ * },
3426
+ * {
3427
+ * "uuid": 'App-3',
3428
+ * "manifestUrl": 'http://localhost:5555/app3.json',
3429
+ * }
3430
+ * ]
3431
+ *
3432
+ * fin.Application.startManyManifests(applicationInfoArray)
3433
+ * .then(() => {
3434
+ * console.log('RVM has finished launching the application list.');
3435
+ * })
3436
+ * .catch((err) => {
3437
+ * console.log(err);
3438
+ * })
3439
+ * ```
3440
+ *
3441
+ * @experimental
3442
+ */
3443
+ async startManyManifests(applications, opts) {
3444
+ return this.wire.sendAction('run-applications', { applications, opts }).then(() => undefined);
3445
+ }
3446
+ /**
3447
+ * Asynchronously returns an Application object that represents the current application
3448
+ *
3449
+ * @example
3450
+ *
3451
+ * ```js
3452
+ * async function isCurrentAppRunning () {
3453
+ * const app = await fin.Application.getCurrent();
3454
+ * return app.isRunning();
3455
+ * }
3456
+ *
3457
+ * isCurrentAppRunning().then(running => {
3458
+ * console.log(`Current app is running: ${running}`);
3459
+ * }).catch(err => {
3460
+ * console.error(err);
3461
+ * });
3462
+ *
3463
+ * ```
3464
+ */
3465
+ getCurrent() {
3466
+ this.wire.sendAction('get-current-application').catch((e) => {
3467
+ // we do not want to expose this error, just continue if this analytics-only call fails
3468
+ });
3469
+ return this.wrap({ uuid: this.wire.me.uuid });
3470
+ }
3471
+ /**
3472
+ * Synchronously returns an Application object that represents the current application
3473
+ *
3474
+ * @example
3475
+ *
3476
+ * ```js
3477
+ * async function isCurrentAppRunning () {
3478
+ * const app = fin.Application.getCurrentSync();
3479
+ * return app.isRunning();
3480
+ * }
3481
+ *
3482
+ * isCurrentAppRunning().then(running => {
3483
+ * console.log(`Current app is running: ${running}`);
3484
+ * }).catch(err => {
3485
+ * console.error(err);
3486
+ * });
3487
+ *
3488
+ * ```
3489
+ */
3490
+ getCurrentSync() {
3491
+ this.wire.sendAction('get-current-application-sync').catch((e) => {
3492
+ // we do not want to expose this error, just continue if this analytics-only call fails
3493
+ });
3494
+ return this.wrapSync({ uuid: this.wire.me.uuid });
3495
+ }
3496
+ /**
3497
+ * Retrieves application's manifest and returns a running instance of the application.
3498
+ * @param manifestUrl - The URL of app's manifest.
3499
+ * @param opts - Parameters that the RVM will use.
3500
+ *
3501
+ * @example
3502
+ *
3503
+ * ```js
3504
+ * fin.Application.startFromManifest('http://localhost:5555/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3505
+ *
3506
+ * // For a local manifest file:
3507
+ * fin.Application.startFromManifest('file:///C:/somefolder/app.json').then(app => console.log('App is running')).catch(err => console.log(err));
3508
+ * ```
3509
+ */
3510
+ async startFromManifest(manifestUrl, opts) {
3511
+ this.wire.sendAction('application-start-from-manifest').catch((e) => {
3512
+ // we do not want to expose this error, just continue if this analytics-only call fails
3513
+ });
3514
+ const app = await this._createFromManifest(manifestUrl);
3515
+ // @ts-expect-error using private method without warning.
3516
+ await app._run(opts); // eslint-disable-line no-underscore-dangle
3517
+ return app;
3518
+ }
3519
+ /**
3520
+ * @deprecated Use {@link Application.ApplicationModule.startFromManifest Application.startFromManifest} instead.
3521
+ * Retrieves application's manifest and returns a wrapped application.
3522
+ * @param manifestUrl - The URL of app's manifest.
3523
+ * @param callback - called if the method succeeds.
3524
+ * @param errorCallback - called if the method fails. The reason for failure is passed as an argument.
3525
+ *
3526
+ * @example
3527
+ *
3528
+ * ```js
3529
+ * fin.Application.createFromManifest('http://localhost:5555/app.json').then(app => console.log(app)).catch(err => console.log(err));
3530
+ * ```
3531
+ * @ignore
3532
+ */
3533
+ createFromManifest(manifestUrl) {
3534
+ console.warn('Deprecation Warning: fin.Application.createFromManifest is deprecated. Please use fin.Application.startFromManifest');
3535
+ this.wire.sendAction('application-create-from-manifest').catch((e) => {
3536
+ // we do not want to expose this error, just continue if this analytics-only call fails
3537
+ });
3538
+ return this._createFromManifest(manifestUrl);
3539
+ }
3540
+ _createFromManifest(manifestUrl) {
3541
+ return this.wire
3542
+ .sendAction('get-application-manifest', { manifestUrl })
3543
+ .then(({ payload }) => {
3544
+ const uuid = payload.data.platform ? payload.data.platform.uuid : payload.data.startup_app.uuid;
3545
+ return this.wrap({ uuid });
3546
+ })
3547
+ .then((app) => {
3548
+ app._manifestUrl = manifestUrl; // eslint-disable-line no-underscore-dangle
3549
+ return app;
3550
+ });
3551
+ }
3552
+ }
3553
+ Factory$7.ApplicationModule = ApplicationModule;
3554
+ return Factory$7;
3555
+ }
3556
+
3557
+ var hasRequiredApplication;
3558
+
3559
+ function requireApplication () {
3560
+ if (hasRequiredApplication) return application;
3561
+ hasRequiredApplication = 1;
3562
+ (function (exports) {
3563
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3564
+ if (k2 === undefined) k2 = k;
3565
+ var desc = Object.getOwnPropertyDescriptor(m, k);
3566
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
3567
+ desc = { enumerable: true, get: function() { return m[k]; } };
3568
+ }
3569
+ Object.defineProperty(o, k2, desc);
3570
+ }) : (function(o, m, k, k2) {
3571
+ if (k2 === undefined) k2 = k;
3572
+ o[k2] = m[k];
3573
+ }));
3574
+ var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
3575
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3576
+ };
3577
+ Object.defineProperty(exports, "__esModule", { value: true });
3578
+ /**
3579
+ * Entry points for the OpenFin `Application` API (`fin.Application`).
3580
+ *
3581
+ * * {@link ApplicationModule} contains static members of the `Application` API, accessible through `fin.Application`.
3582
+ * * {@link Application} describes an instance of an OpenFin Application, e.g. as returned by `fin.Application.getCurrent`.
3583
+ *
3584
+ * 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),
3585
+ * both of these were documented on the same page.
3586
+ *
3587
+ * @packageDocumentation
3588
+ */
3589
+ __exportStar(requireFactory$1(), exports);
3590
+ __exportStar(requireInstance$1(), exports);
3591
+ } (application));
3592
+ return application;
3593
+ }
3573
3594
 
3574
3595
  var promisifySubscription$1 = {};
3575
3596
 
@@ -3613,7 +3634,7 @@ function requireInstance () {
3613
3634
  /* eslint-disable @typescript-eslint/no-unused-vars */
3614
3635
  /* eslint-disable no-console */
3615
3636
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
3616
- const application_1 = application;
3637
+ const application_1 = requireApplication();
3617
3638
  const main_1 = main;
3618
3639
  const view_1 = requireView();
3619
3640
  const warnings_1 = warnings;
@@ -16899,7 +16920,7 @@ const events_1$3 = require$$0;
16899
16920
  // Import from the file rather than the directory in case someone consuming types is using module resolution other than "node"
16900
16921
  const index_1 = system;
16901
16922
  const index_2 = requireWindow();
16902
- const index_3 = application;
16923
+ const index_3 = requireApplication();
16903
16924
  const index_4 = interappbus;
16904
16925
  const index_5 = clipboard;
16905
16926
  const index_6 = externalApplication;
@@ -17700,7 +17721,7 @@ class NodeEnvironment extends BaseEnvironment_1 {
17700
17721
  };
17701
17722
  }
17702
17723
  getAdapterVersionSync() {
17703
- return "41.100.57";
17724
+ return "41.100.59";
17704
17725
  }
17705
17726
  observeBounds(element, onChange) {
17706
17727
  throw new Error('Method not implemented.');