@openfin/core 38.81.24 → 38.81.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -825,7 +825,7 @@ declare class Application extends EmitterBase<OpenFin_2.ApplicationEvent> {
825
825
  */
826
826
  showTrayIconPopupMenu<Data>(options: OpenFin_2.ShowTrayIconPopupMenuOptions<Data>): Promise<OpenFin_2.MenuResult<Data>>;
827
827
  /**
828
- * CLoses the tray icon menu.
828
+ * Closes the tray icon menu.
829
829
  *
830
830
  * @throws if the application has no tray icon set
831
831
  * @example
@@ -934,7 +934,7 @@ declare type ApplicationIdentity_2 = {
934
934
  * @interface
935
935
  */
936
936
  declare type ApplicationInfo = {
937
- initialOptions: ApplicationCreationOptions | PlatformOptions;
937
+ initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
938
938
  launchMode: string;
939
939
  manifest: Manifest & {
940
940
  [key: string]: any;
@@ -4521,6 +4521,17 @@ declare type DeviceInfo = {
4521
4521
  productId: string | number;
4522
4522
  };
4523
4523
 
4524
+ /**
4525
+ * Permission string keys for device APIs
4526
+ *
4527
+ * @remarks We currently only support USB and HID devices. Permissions for individual devices
4528
+ * must be granted in {@link Permissions.devices}.
4529
+ *
4530
+ * `usb`: Access to one or more USB devices
4531
+ * `hid : Access to one or more HID devices
4532
+ */
4533
+ declare type DevicePermissionName = 'usb' | 'hid';
4534
+
4524
4535
  /**
4525
4536
  * Generated when a page's theme color changes. This is usually due to encountering a meta tag.
4526
4537
  * @interface
@@ -9823,6 +9834,8 @@ declare namespace OpenFin_2 {
9823
9834
  ApplicationPermissions,
9824
9835
  LaunchExternalProcessRule,
9825
9836
  SystemPermissions,
9837
+ DevicePermissionName,
9838
+ WebPermissionName,
9826
9839
  WebPermission,
9827
9840
  VerboseWebPermission,
9828
9841
  OpenExternalPermission,
@@ -9886,6 +9899,7 @@ declare namespace OpenFin_2 {
9886
9899
  AppVersionError,
9887
9900
  AppVersionRuntimeInfo,
9888
9901
  LaunchEmitter,
9902
+ UserAppConfigArgs,
9889
9903
  RvmLaunchOptions,
9890
9904
  ShortCutConfig,
9891
9905
  TerminateExternalRequestType,
@@ -12712,7 +12726,7 @@ declare type RunRequestedEvent = OpenFin_2.ApplicationEvents.RunRequestedEvent;
12712
12726
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
12713
12727
  topic: 'application';
12714
12728
  type: 'run-requested';
12715
- userAppConfigArgs: Record<string, any>;
12729
+ userAppConfigArgs: OpenFin_2.UserAppConfigArgs;
12716
12730
  manifest: OpenFin_2.Manifest;
12717
12731
  };
12718
12732
 
@@ -12827,7 +12841,7 @@ declare type RvmLaunchOptions = {
12827
12841
  * True if no UI when launching
12828
12842
  */
12829
12843
  noUi?: boolean;
12830
- userAppConfigArgs?: object;
12844
+ userAppConfigArgs?: UserAppConfigArgs;
12831
12845
  /**
12832
12846
  * Timeout in seconds until RVM launch request expires.
12833
12847
  */
@@ -14629,8 +14643,13 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
14629
14643
  launchManifest(manifestUrl: string, opts?: OpenFin_2.RvmLaunchOptions): Promise<OpenFin_2.Manifest>;
14630
14644
  /**
14631
14645
  * Query permission of a secured api in current context.
14646
+ *
14632
14647
  * @param apiName - The full name of a secured API.
14633
14648
  *
14649
+ * @remarks If a function has a structured permission value, the value of `granted` will reflect the `enabled` key
14650
+ * of the call's permissions literal. In this case, *permission may still be denied to a call* pending arguments or other
14651
+ * runtime state. This is indicated with `state: unavailable`.
14652
+ *
14634
14653
  * @example
14635
14654
  * ```js
14636
14655
  * fin.System.queryPermissionForCurrentContext('System.launchExternalProcess').then(result => console.log(result)).catch(err => console.log(err));
@@ -15351,6 +15370,11 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
15351
15370
  httpStatusText: string;
15352
15371
  });
15353
15372
 
15373
+ /**
15374
+ * @interface
15375
+ */
15376
+ declare type UserAppConfigArgs = Record<string, string | string[]>;
15377
+
15354
15378
  /**
15355
15379
  * A general user bounds change event without event type.
15356
15380
  * @interface
@@ -17205,18 +17229,38 @@ declare namespace WebContentsEvents {
17205
17229
  *
17206
17230
  * @remarks We only support those web APIs listed by electron.
17207
17231
  *
17208
- * `audio`: Request access to audio devices.<br>
17209
- * `video`: Request access to video devices.<br>
17210
- * `geolocation`: Request access to user's current location.<br>
17232
+ * `audio`: Access to audio devices.<br>
17233
+ * `video`: Access to video devices.<br>
17234
+ * `geolocation`: Access to user's current location.<br>
17211
17235
  * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17212
- * `midiSysex`: Request the use of system exclusive messages in the webmidi API.<br>
17213
- * `pointerLock`: Request to directly interpret mouse movements as an input method.<br>
17214
- * `fullscreen`: Request for the app to enter fullscreen mode.<br>
17215
- * `openExternal`: Request to open links in external applications.<br>
17216
- * `clipboard-read`: Request access to read from the clipboard.<br>
17217
- * `clipboard-sanitized-write`: Request access to write to the clipboard.
17236
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17237
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17238
+ * `fullscreen`: Access to fullscreen mode.<br>
17239
+ * `openExternal`: Access to open links in external applications.<br>
17240
+ * `clipboard-read`: Access to read from the clipboard.<br>
17241
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17242
+ * `usb`: Access to one or more USB devices
17243
+ * `hid : Access to one or more HID devices
17218
17244
  */
17219
- declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write' | 'hid' | 'usb' | OpenExternalPermission;
17245
+ declare type WebPermission = WebPermissionName | DevicePermissionName | OpenExternalPermission;
17246
+
17247
+ /**
17248
+ * Permission string keys for webAPIs
17249
+ *
17250
+ * @remarks We only support those web APIs listed by electron.
17251
+ *
17252
+ * `audio`: Access to audio devices.<br>
17253
+ * `video`: Access to video devices.<br>
17254
+ * `geolocation`: Access to user's current location.<br>
17255
+ * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17256
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17257
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17258
+ * `fullscreen`: Access to fullscreen mode.<br>
17259
+ * `openExternal`: Access to open links in external applications.<br>
17260
+ * `clipboard-read`: Access to read from the clipboard.<br>
17261
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17262
+ */
17263
+ declare type WebPermissionName = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write';
17220
17264
 
17221
17265
  /**
17222
17266
  * Object representing headers and their values, where the
@@ -18737,6 +18781,32 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
18737
18781
  positioningOptions?: OpenFin_2.PositioningOptions;
18738
18782
  };
18739
18783
 
18784
+ declare type WithUserAppConfigArgs = {
18785
+ /**
18786
+ * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
18787
+ * that launches this application.
18788
+ *
18789
+ * @remarks
18790
+ * In the link, user defined parameters are separated by the `$$` delimeter, for example:
18791
+ * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
18792
+ *
18793
+ * Results in the following object:
18794
+ * ```json
18795
+ * {
18796
+ * "use-last-configuration": true"
18797
+ * }
18798
+ * ```
18799
+ *
18800
+ * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
18801
+ * ```typescript
18802
+ * const appInfo = await fin.Application.getCurrentSync().getInfo();
18803
+ * const { userAppConfigArgs } = appInfo.initialOptions;
18804
+ * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
18805
+ * ```
18806
+ */
18807
+ userAppConfigArgs?: UserAppConfigArgs;
18808
+ };
18809
+
18740
18810
  /* Excluded from this release type: WorkspacePlatformOptions */
18741
18811
 
18742
18812
  /**
@@ -825,7 +825,7 @@ declare class Application extends EmitterBase<OpenFin_2.ApplicationEvent> {
825
825
  */
826
826
  showTrayIconPopupMenu<Data>(options: OpenFin_2.ShowTrayIconPopupMenuOptions<Data>): Promise<OpenFin_2.MenuResult<Data>>;
827
827
  /**
828
- * CLoses the tray icon menu.
828
+ * Closes the tray icon menu.
829
829
  *
830
830
  * @throws if the application has no tray icon set
831
831
  * @example
@@ -934,7 +934,7 @@ declare type ApplicationIdentity_2 = {
934
934
  * @interface
935
935
  */
936
936
  declare type ApplicationInfo = {
937
- initialOptions: ApplicationCreationOptions | PlatformOptions;
937
+ initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
938
938
  launchMode: string;
939
939
  manifest: Manifest & {
940
940
  [key: string]: any;
@@ -4521,6 +4521,17 @@ declare type DeviceInfo = {
4521
4521
  productId: string | number;
4522
4522
  };
4523
4523
 
4524
+ /**
4525
+ * Permission string keys for device APIs
4526
+ *
4527
+ * @remarks We currently only support USB and HID devices. Permissions for individual devices
4528
+ * must be granted in {@link Permissions.devices}.
4529
+ *
4530
+ * `usb`: Access to one or more USB devices
4531
+ * `hid : Access to one or more HID devices
4532
+ */
4533
+ declare type DevicePermissionName = 'usb' | 'hid';
4534
+
4524
4535
  /**
4525
4536
  * Generated when a page's theme color changes. This is usually due to encountering a meta tag.
4526
4537
  * @interface
@@ -9823,6 +9834,8 @@ declare namespace OpenFin_2 {
9823
9834
  ApplicationPermissions,
9824
9835
  LaunchExternalProcessRule,
9825
9836
  SystemPermissions,
9837
+ DevicePermissionName,
9838
+ WebPermissionName,
9826
9839
  WebPermission,
9827
9840
  VerboseWebPermission,
9828
9841
  OpenExternalPermission,
@@ -9886,6 +9899,7 @@ declare namespace OpenFin_2 {
9886
9899
  AppVersionError,
9887
9900
  AppVersionRuntimeInfo,
9888
9901
  LaunchEmitter,
9902
+ UserAppConfigArgs,
9889
9903
  RvmLaunchOptions,
9890
9904
  ShortCutConfig,
9891
9905
  TerminateExternalRequestType,
@@ -12712,7 +12726,7 @@ declare type RunRequestedEvent = OpenFin_2.ApplicationEvents.RunRequestedEvent;
12712
12726
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
12713
12727
  topic: 'application';
12714
12728
  type: 'run-requested';
12715
- userAppConfigArgs: Record<string, any>;
12729
+ userAppConfigArgs: OpenFin_2.UserAppConfigArgs;
12716
12730
  manifest: OpenFin_2.Manifest;
12717
12731
  };
12718
12732
 
@@ -12827,7 +12841,7 @@ declare type RvmLaunchOptions = {
12827
12841
  * True if no UI when launching
12828
12842
  */
12829
12843
  noUi?: boolean;
12830
- userAppConfigArgs?: object;
12844
+ userAppConfigArgs?: UserAppConfigArgs;
12831
12845
  /**
12832
12846
  * Timeout in seconds until RVM launch request expires.
12833
12847
  */
@@ -14629,8 +14643,13 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
14629
14643
  launchManifest(manifestUrl: string, opts?: OpenFin_2.RvmLaunchOptions): Promise<OpenFin_2.Manifest>;
14630
14644
  /**
14631
14645
  * Query permission of a secured api in current context.
14646
+ *
14632
14647
  * @param apiName - The full name of a secured API.
14633
14648
  *
14649
+ * @remarks If a function has a structured permission value, the value of `granted` will reflect the `enabled` key
14650
+ * of the call's permissions literal. In this case, *permission may still be denied to a call* pending arguments or other
14651
+ * runtime state. This is indicated with `state: unavailable`.
14652
+ *
14634
14653
  * @example
14635
14654
  * ```js
14636
14655
  * fin.System.queryPermissionForCurrentContext('System.launchExternalProcess').then(result => console.log(result)).catch(err => console.log(err));
@@ -15351,6 +15370,11 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
15351
15370
  httpStatusText: string;
15352
15371
  });
15353
15372
 
15373
+ /**
15374
+ * @interface
15375
+ */
15376
+ declare type UserAppConfigArgs = Record<string, string | string[]>;
15377
+
15354
15378
  /**
15355
15379
  * A general user bounds change event without event type.
15356
15380
  * @interface
@@ -17205,18 +17229,38 @@ declare namespace WebContentsEvents {
17205
17229
  *
17206
17230
  * @remarks We only support those web APIs listed by electron.
17207
17231
  *
17208
- * `audio`: Request access to audio devices.<br>
17209
- * `video`: Request access to video devices.<br>
17210
- * `geolocation`: Request access to user's current location.<br>
17232
+ * `audio`: Access to audio devices.<br>
17233
+ * `video`: Access to video devices.<br>
17234
+ * `geolocation`: Access to user's current location.<br>
17211
17235
  * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17212
- * `midiSysex`: Request the use of system exclusive messages in the webmidi API.<br>
17213
- * `pointerLock`: Request to directly interpret mouse movements as an input method.<br>
17214
- * `fullscreen`: Request for the app to enter fullscreen mode.<br>
17215
- * `openExternal`: Request to open links in external applications.<br>
17216
- * `clipboard-read`: Request access to read from the clipboard.<br>
17217
- * `clipboard-sanitized-write`: Request access to write to the clipboard.
17236
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17237
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17238
+ * `fullscreen`: Access to fullscreen mode.<br>
17239
+ * `openExternal`: Access to open links in external applications.<br>
17240
+ * `clipboard-read`: Access to read from the clipboard.<br>
17241
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17242
+ * `usb`: Access to one or more USB devices
17243
+ * `hid : Access to one or more HID devices
17218
17244
  */
17219
- declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write' | 'hid' | 'usb' | OpenExternalPermission;
17245
+ declare type WebPermission = WebPermissionName | DevicePermissionName | OpenExternalPermission;
17246
+
17247
+ /**
17248
+ * Permission string keys for webAPIs
17249
+ *
17250
+ * @remarks We only support those web APIs listed by electron.
17251
+ *
17252
+ * `audio`: Access to audio devices.<br>
17253
+ * `video`: Access to video devices.<br>
17254
+ * `geolocation`: Access to user's current location.<br>
17255
+ * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17256
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17257
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17258
+ * `fullscreen`: Access to fullscreen mode.<br>
17259
+ * `openExternal`: Access to open links in external applications.<br>
17260
+ * `clipboard-read`: Access to read from the clipboard.<br>
17261
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17262
+ */
17263
+ declare type WebPermissionName = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write';
17220
17264
 
17221
17265
  /**
17222
17266
  * Object representing headers and their values, where the
@@ -18737,6 +18781,32 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
18737
18781
  positioningOptions?: OpenFin_2.PositioningOptions;
18738
18782
  };
18739
18783
 
18784
+ declare type WithUserAppConfigArgs = {
18785
+ /**
18786
+ * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
18787
+ * that launches this application.
18788
+ *
18789
+ * @remarks
18790
+ * In the link, user defined parameters are separated by the `$$` delimeter, for example:
18791
+ * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
18792
+ *
18793
+ * Results in the following object:
18794
+ * ```json
18795
+ * {
18796
+ * "use-last-configuration": true"
18797
+ * }
18798
+ * ```
18799
+ *
18800
+ * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
18801
+ * ```typescript
18802
+ * const appInfo = await fin.Application.getCurrentSync().getInfo();
18803
+ * const { userAppConfigArgs } = appInfo.initialOptions;
18804
+ * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
18805
+ * ```
18806
+ */
18807
+ userAppConfigArgs?: UserAppConfigArgs;
18808
+ };
18809
+
18740
18810
  /* Excluded from this release type: WorkspacePlatformOptions */
18741
18811
 
18742
18812
  /**
@@ -825,7 +825,7 @@ declare class Application extends EmitterBase<OpenFin_2.ApplicationEvent> {
825
825
  */
826
826
  showTrayIconPopupMenu<Data>(options: OpenFin_2.ShowTrayIconPopupMenuOptions<Data>): Promise<OpenFin_2.MenuResult<Data>>;
827
827
  /**
828
- * CLoses the tray icon menu.
828
+ * Closes the tray icon menu.
829
829
  *
830
830
  * @throws if the application has no tray icon set
831
831
  * @example
@@ -934,7 +934,7 @@ declare type ApplicationIdentity_2 = {
934
934
  * @interface
935
935
  */
936
936
  declare type ApplicationInfo = {
937
- initialOptions: ApplicationCreationOptions | PlatformOptions;
937
+ initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
938
938
  launchMode: string;
939
939
  manifest: Manifest & {
940
940
  [key: string]: any;
@@ -4521,6 +4521,17 @@ declare type DeviceInfo = {
4521
4521
  productId: string | number;
4522
4522
  };
4523
4523
 
4524
+ /**
4525
+ * Permission string keys for device APIs
4526
+ *
4527
+ * @remarks We currently only support USB and HID devices. Permissions for individual devices
4528
+ * must be granted in {@link Permissions.devices}.
4529
+ *
4530
+ * `usb`: Access to one or more USB devices
4531
+ * `hid : Access to one or more HID devices
4532
+ */
4533
+ declare type DevicePermissionName = 'usb' | 'hid';
4534
+
4524
4535
  /**
4525
4536
  * Generated when a page's theme color changes. This is usually due to encountering a meta tag.
4526
4537
  * @interface
@@ -9823,6 +9834,8 @@ declare namespace OpenFin_2 {
9823
9834
  ApplicationPermissions,
9824
9835
  LaunchExternalProcessRule,
9825
9836
  SystemPermissions,
9837
+ DevicePermissionName,
9838
+ WebPermissionName,
9826
9839
  WebPermission,
9827
9840
  VerboseWebPermission,
9828
9841
  OpenExternalPermission,
@@ -9886,6 +9899,7 @@ declare namespace OpenFin_2 {
9886
9899
  AppVersionError,
9887
9900
  AppVersionRuntimeInfo,
9888
9901
  LaunchEmitter,
9902
+ UserAppConfigArgs,
9889
9903
  RvmLaunchOptions,
9890
9904
  ShortCutConfig,
9891
9905
  TerminateExternalRequestType,
@@ -12712,7 +12726,7 @@ declare type RunRequestedEvent = OpenFin_2.ApplicationEvents.RunRequestedEvent;
12712
12726
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
12713
12727
  topic: 'application';
12714
12728
  type: 'run-requested';
12715
- userAppConfigArgs: Record<string, any>;
12729
+ userAppConfigArgs: OpenFin_2.UserAppConfigArgs;
12716
12730
  manifest: OpenFin_2.Manifest;
12717
12731
  };
12718
12732
 
@@ -12827,7 +12841,7 @@ declare type RvmLaunchOptions = {
12827
12841
  * True if no UI when launching
12828
12842
  */
12829
12843
  noUi?: boolean;
12830
- userAppConfigArgs?: object;
12844
+ userAppConfigArgs?: UserAppConfigArgs;
12831
12845
  /**
12832
12846
  * Timeout in seconds until RVM launch request expires.
12833
12847
  */
@@ -14629,8 +14643,13 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
14629
14643
  launchManifest(manifestUrl: string, opts?: OpenFin_2.RvmLaunchOptions): Promise<OpenFin_2.Manifest>;
14630
14644
  /**
14631
14645
  * Query permission of a secured api in current context.
14646
+ *
14632
14647
  * @param apiName - The full name of a secured API.
14633
14648
  *
14649
+ * @remarks If a function has a structured permission value, the value of `granted` will reflect the `enabled` key
14650
+ * of the call's permissions literal. In this case, *permission may still be denied to a call* pending arguments or other
14651
+ * runtime state. This is indicated with `state: unavailable`.
14652
+ *
14634
14653
  * @example
14635
14654
  * ```js
14636
14655
  * fin.System.queryPermissionForCurrentContext('System.launchExternalProcess').then(result => console.log(result)).catch(err => console.log(err));
@@ -15351,6 +15370,11 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
15351
15370
  httpStatusText: string;
15352
15371
  });
15353
15372
 
15373
+ /**
15374
+ * @interface
15375
+ */
15376
+ declare type UserAppConfigArgs = Record<string, string | string[]>;
15377
+
15354
15378
  /**
15355
15379
  * A general user bounds change event without event type.
15356
15380
  * @interface
@@ -17205,18 +17229,38 @@ declare namespace WebContentsEvents {
17205
17229
  *
17206
17230
  * @remarks We only support those web APIs listed by electron.
17207
17231
  *
17208
- * `audio`: Request access to audio devices.<br>
17209
- * `video`: Request access to video devices.<br>
17210
- * `geolocation`: Request access to user's current location.<br>
17232
+ * `audio`: Access to audio devices.<br>
17233
+ * `video`: Access to video devices.<br>
17234
+ * `geolocation`: Access to user's current location.<br>
17211
17235
  * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17212
- * `midiSysex`: Request the use of system exclusive messages in the webmidi API.<br>
17213
- * `pointerLock`: Request to directly interpret mouse movements as an input method.<br>
17214
- * `fullscreen`: Request for the app to enter fullscreen mode.<br>
17215
- * `openExternal`: Request to open links in external applications.<br>
17216
- * `clipboard-read`: Request access to read from the clipboard.<br>
17217
- * `clipboard-sanitized-write`: Request access to write to the clipboard.
17236
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17237
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17238
+ * `fullscreen`: Access to fullscreen mode.<br>
17239
+ * `openExternal`: Access to open links in external applications.<br>
17240
+ * `clipboard-read`: Access to read from the clipboard.<br>
17241
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17242
+ * `usb`: Access to one or more USB devices
17243
+ * `hid : Access to one or more HID devices
17218
17244
  */
17219
- declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write' | 'hid' | 'usb' | OpenExternalPermission;
17245
+ declare type WebPermission = WebPermissionName | DevicePermissionName | OpenExternalPermission;
17246
+
17247
+ /**
17248
+ * Permission string keys for webAPIs
17249
+ *
17250
+ * @remarks We only support those web APIs listed by electron.
17251
+ *
17252
+ * `audio`: Access to audio devices.<br>
17253
+ * `video`: Access to video devices.<br>
17254
+ * `geolocation`: Access to user's current location.<br>
17255
+ * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17256
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17257
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17258
+ * `fullscreen`: Access to fullscreen mode.<br>
17259
+ * `openExternal`: Access to open links in external applications.<br>
17260
+ * `clipboard-read`: Access to read from the clipboard.<br>
17261
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17262
+ */
17263
+ declare type WebPermissionName = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write';
17220
17264
 
17221
17265
  /**
17222
17266
  * Object representing headers and their values, where the
@@ -18737,6 +18781,32 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
18737
18781
  positioningOptions?: OpenFin_2.PositioningOptions;
18738
18782
  };
18739
18783
 
18784
+ declare type WithUserAppConfigArgs = {
18785
+ /**
18786
+ * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
18787
+ * that launches this application.
18788
+ *
18789
+ * @remarks
18790
+ * In the link, user defined parameters are separated by the `$$` delimeter, for example:
18791
+ * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
18792
+ *
18793
+ * Results in the following object:
18794
+ * ```json
18795
+ * {
18796
+ * "use-last-configuration": true"
18797
+ * }
18798
+ * ```
18799
+ *
18800
+ * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
18801
+ * ```typescript
18802
+ * const appInfo = await fin.Application.getCurrentSync().getInfo();
18803
+ * const { userAppConfigArgs } = appInfo.initialOptions;
18804
+ * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
18805
+ * ```
18806
+ */
18807
+ userAppConfigArgs?: UserAppConfigArgs;
18808
+ };
18809
+
18740
18810
  /* Excluded from this release type: WorkspacePlatformOptions */
18741
18811
 
18742
18812
  /**
package/out/mock.d.ts CHANGED
@@ -831,7 +831,7 @@ declare class Application extends EmitterBase<OpenFin_2.ApplicationEvent> {
831
831
  */
832
832
  showTrayIconPopupMenu<Data>(options: OpenFin_2.ShowTrayIconPopupMenuOptions<Data>): Promise<OpenFin_2.MenuResult<Data>>;
833
833
  /**
834
- * CLoses the tray icon menu.
834
+ * Closes the tray icon menu.
835
835
  *
836
836
  * @throws if the application has no tray icon set
837
837
  * @example
@@ -940,7 +940,7 @@ declare type ApplicationIdentity_2 = {
940
940
  * @interface
941
941
  */
942
942
  declare type ApplicationInfo = {
943
- initialOptions: ApplicationCreationOptions | PlatformOptions;
943
+ initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
944
944
  launchMode: string;
945
945
  manifest: Manifest & {
946
946
  [key: string]: any;
@@ -4580,6 +4580,17 @@ declare type DeviceInfo = {
4580
4580
  productId: string | number;
4581
4581
  };
4582
4582
 
4583
+ /**
4584
+ * Permission string keys for device APIs
4585
+ *
4586
+ * @remarks We currently only support USB and HID devices. Permissions for individual devices
4587
+ * must be granted in {@link Permissions.devices}.
4588
+ *
4589
+ * `usb`: Access to one or more USB devices
4590
+ * `hid : Access to one or more HID devices
4591
+ */
4592
+ declare type DevicePermissionName = 'usb' | 'hid';
4593
+
4583
4594
  /**
4584
4595
  * Generated when a page's theme color changes. This is usually due to encountering a meta tag.
4585
4596
  * @interface
@@ -10138,6 +10149,8 @@ declare namespace OpenFin_2 {
10138
10149
  ApplicationPermissions,
10139
10150
  LaunchExternalProcessRule,
10140
10151
  SystemPermissions,
10152
+ DevicePermissionName,
10153
+ WebPermissionName,
10141
10154
  WebPermission,
10142
10155
  VerboseWebPermission,
10143
10156
  OpenExternalPermission,
@@ -10201,6 +10214,7 @@ declare namespace OpenFin_2 {
10201
10214
  AppVersionError,
10202
10215
  AppVersionRuntimeInfo,
10203
10216
  LaunchEmitter,
10217
+ UserAppConfigArgs,
10204
10218
  RvmLaunchOptions,
10205
10219
  ShortCutConfig,
10206
10220
  TerminateExternalRequestType,
@@ -13105,7 +13119,7 @@ declare type RunRequestedEvent = OpenFin_2.ApplicationEvents.RunRequestedEvent;
13105
13119
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
13106
13120
  topic: 'application';
13107
13121
  type: 'run-requested';
13108
- userAppConfigArgs: Record<string, any>;
13122
+ userAppConfigArgs: OpenFin_2.UserAppConfigArgs;
13109
13123
  manifest: OpenFin_2.Manifest;
13110
13124
  };
13111
13125
 
@@ -13220,7 +13234,7 @@ declare type RvmLaunchOptions = {
13220
13234
  * True if no UI when launching
13221
13235
  */
13222
13236
  noUi?: boolean;
13223
- userAppConfigArgs?: object;
13237
+ userAppConfigArgs?: UserAppConfigArgs;
13224
13238
  /**
13225
13239
  * Timeout in seconds until RVM launch request expires.
13226
13240
  */
@@ -15028,8 +15042,13 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
15028
15042
  launchManifest(manifestUrl: string, opts?: OpenFin_2.RvmLaunchOptions): Promise<OpenFin_2.Manifest>;
15029
15043
  /**
15030
15044
  * Query permission of a secured api in current context.
15045
+ *
15031
15046
  * @param apiName - The full name of a secured API.
15032
15047
  *
15048
+ * @remarks If a function has a structured permission value, the value of `granted` will reflect the `enabled` key
15049
+ * of the call's permissions literal. In this case, *permission may still be denied to a call* pending arguments or other
15050
+ * runtime state. This is indicated with `state: unavailable`.
15051
+ *
15033
15052
  * @example
15034
15053
  * ```js
15035
15054
  * fin.System.queryPermissionForCurrentContext('System.launchExternalProcess').then(result => console.log(result)).catch(err => console.log(err));
@@ -15757,6 +15776,11 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
15757
15776
  httpStatusText: string;
15758
15777
  });
15759
15778
 
15779
+ /**
15780
+ * @interface
15781
+ */
15782
+ declare type UserAppConfigArgs = Record<string, string | string[]>;
15783
+
15760
15784
  /**
15761
15785
  * A general user bounds change event without event type.
15762
15786
  * @interface
@@ -17648,18 +17672,38 @@ declare namespace WebContentsEvents {
17648
17672
  *
17649
17673
  * @remarks We only support those web APIs listed by electron.
17650
17674
  *
17651
- * `audio`: Request access to audio devices.<br>
17652
- * `video`: Request access to video devices.<br>
17653
- * `geolocation`: Request access to user's current location.<br>
17675
+ * `audio`: Access to audio devices.<br>
17676
+ * `video`: Access to video devices.<br>
17677
+ * `geolocation`: Access to user's current location.<br>
17654
17678
  * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17655
- * `midiSysex`: Request the use of system exclusive messages in the webmidi API.<br>
17656
- * `pointerLock`: Request to directly interpret mouse movements as an input method.<br>
17657
- * `fullscreen`: Request for the app to enter fullscreen mode.<br>
17658
- * `openExternal`: Request to open links in external applications.<br>
17659
- * `clipboard-read`: Request access to read from the clipboard.<br>
17660
- * `clipboard-sanitized-write`: Request access to write to the clipboard.
17679
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17680
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17681
+ * `fullscreen`: Access to fullscreen mode.<br>
17682
+ * `openExternal`: Access to open links in external applications.<br>
17683
+ * `clipboard-read`: Access to read from the clipboard.<br>
17684
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17685
+ * `usb`: Access to one or more USB devices
17686
+ * `hid : Access to one or more HID devices
17661
17687
  */
17662
- declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write' | 'hid' | 'usb' | OpenExternalPermission;
17688
+ declare type WebPermission = WebPermissionName | DevicePermissionName | OpenExternalPermission;
17689
+
17690
+ /**
17691
+ * Permission string keys for webAPIs
17692
+ *
17693
+ * @remarks We only support those web APIs listed by electron.
17694
+ *
17695
+ * `audio`: Access to audio devices.<br>
17696
+ * `video`: Access to video devices.<br>
17697
+ * `geolocation`: Access to user's current location.<br>
17698
+ * `notifications`: Request notification creation and the ability to display them in the user's system tray.<br>
17699
+ * `midiSysex`: Use of system exclusive messages in the webmidi API.<br>
17700
+ * `pointerLock`: Access to mouse movements as an input method.<br>
17701
+ * `fullscreen`: Access to fullscreen mode.<br>
17702
+ * `openExternal`: Access to open links in external applications.<br>
17703
+ * `clipboard-read`: Access to read from the clipboard.<br>
17704
+ * `clipboard-sanitized-write`: Access to write to the clipboard.
17705
+ */
17706
+ declare type WebPermissionName = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write';
17663
17707
 
17664
17708
  /**
17665
17709
  * Object representing headers and their values, where the
@@ -19189,6 +19233,32 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
19189
19233
  positioningOptions?: OpenFin_2.PositioningOptions;
19190
19234
  };
19191
19235
 
19236
+ declare type WithUserAppConfigArgs = {
19237
+ /**
19238
+ * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
19239
+ * that launches this application.
19240
+ *
19241
+ * @remarks
19242
+ * In the link, user defined parameters are separated by the `$$` delimeter, for example:
19243
+ * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
19244
+ *
19245
+ * Results in the following object:
19246
+ * ```json
19247
+ * {
19248
+ * "use-last-configuration": true"
19249
+ * }
19250
+ * ```
19251
+ *
19252
+ * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
19253
+ * ```typescript
19254
+ * const appInfo = await fin.Application.getCurrentSync().getInfo();
19255
+ * const { userAppConfigArgs } = appInfo.initialOptions;
19256
+ * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
19257
+ * ```
19258
+ */
19259
+ userAppConfigArgs?: UserAppConfigArgs;
19260
+ };
19261
+
19192
19262
  /**
19193
19263
  * @internal
19194
19264
  * @interface
package/out/mock.js CHANGED
@@ -4026,7 +4026,7 @@ function requireInstance$1 () {
4026
4026
  return payload.data;
4027
4027
  }
4028
4028
  /**
4029
- * CLoses the tray icon menu.
4029
+ * Closes the tray icon menu.
4030
4030
  *
4031
4031
  * @throws if the application has no tray icon set
4032
4032
  * @example
@@ -7500,8 +7500,13 @@ class System extends base_1$i.EmitterBase {
7500
7500
  }
7501
7501
  /**
7502
7502
  * Query permission of a secured api in current context.
7503
+ *
7503
7504
  * @param apiName - The full name of a secured API.
7504
7505
  *
7506
+ * @remarks If a function has a structured permission value, the value of `granted` will reflect the `enabled` key
7507
+ * of the call's permissions literal. In this case, *permission may still be denied to a call* pending arguments or other
7508
+ * runtime state. This is indicated with `state: unavailable`.
7509
+ *
7505
7510
  * @example
7506
7511
  * ```js
7507
7512
  * fin.System.queryPermissionForCurrentContext('System.launchExternalProcess').then(result => console.log(result)).catch(err => console.log(err));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/core",
3
- "version": "38.81.24",
3
+ "version": "38.81.30",
4
4
  "description": "The core renderer entry point of OpenFin",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "out/mock.js",