@openfin/fdc3-api 40.102.2 → 40.103.4

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.
@@ -3218,6 +3218,40 @@ declare class Clipboard_2 extends Base {
3218
3218
  getAvailableFormats(type?: OpenFin.ClipboardSelectionType): Promise<Array<string>>;
3219
3219
  }
3220
3220
 
3221
+ /**
3222
+ * Generated when a copy operation is blocked through {@link OpenFin.DomainSettings}.
3223
+ * @interface
3224
+ */
3225
+ declare type ClipboardCopyBlockedEvent = NamedEvent & {
3226
+ type: 'clipboard-copy-blocked';
3227
+ /**
3228
+ * URL of the Window or View that generated the event.
3229
+ */
3230
+ url: string;
3231
+ reason: CopyBlockedEventReason;
3232
+ };
3233
+
3234
+ /**
3235
+ * Generated when a paste operation is blocked through {@link OpenFin.DomainSettings}.
3236
+ * @interface
3237
+ */
3238
+ declare type ClipboardPasteBlockedEvent = NamedEvent & {
3239
+ type: 'clipboard-paste-blocked';
3240
+ /**
3241
+ * URL of the Window or View that generated the event.
3242
+ */
3243
+ url: string;
3244
+ reason: PasteBlockedEventReason;
3245
+ };
3246
+
3247
+ /**
3248
+ * Clipboard Permissions
3249
+ */
3250
+ declare type ClipboardPermissions = {
3251
+ copy?: CopyPermissions;
3252
+ paste?: PastePermissions;
3253
+ };
3254
+
3221
3255
  /**
3222
3256
  * The type of clipboard to write to, can be 'clipboard' or 'selection'.
3223
3257
  * Defaults to 'clipboard'. Use 'selection' for linux only.
@@ -3992,6 +4026,40 @@ declare type CookieOption = {
3992
4026
  name: string;
3993
4027
  };
3994
4028
 
4029
+ /**
4030
+ * Reasons for a copy operation being blocked
4031
+ *
4032
+ * 'disabled': Copy operation is disabled through domain-based permissions.
4033
+ */
4034
+ declare type CopyBlockedEventReason = 'disabled';
4035
+
4036
+ /**
4037
+ * Control copy operations for a matched URL.
4038
+ */
4039
+ declare type CopyPermissions = {
4040
+ /**
4041
+ * @defaultValue 'allowed'
4042
+ *
4043
+ * Controls the behavior for copy operations for a matched URL.
4044
+ *
4045
+ * allow: Enables all copy operations.
4046
+ * block: Disables all copy operations.
4047
+ * protect: Protects any copied content. Only URLs that have set paste.behavior: 'all-content' will be allowed to paste this content.
4048
+ */
4049
+ behavior: 'allow' | 'block' | 'protect';
4050
+ /**
4051
+ * Additional copy operation options
4052
+ */
4053
+ options?: {
4054
+ /**
4055
+ * @defaultValue ''
4056
+ *
4057
+ * When setting behavior = 'protected' , this string will be pasted to other applications that do not have a matching URL instead of the original content.
4058
+ */
4059
+ replacementText: string;
4060
+ };
4061
+ };
4062
+
3995
4063
  /**
3996
4064
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
3997
4065
  * average of _height_ and _width_.
@@ -4847,7 +4915,7 @@ declare type Event_4 = (WebContentsEvents.Event<'view'> & {
4847
4915
  */
4848
4916
  declare type Event_5<Topic extends string> = {
4849
4917
  topic: Topic;
4850
- } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent);
4918
+ } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent | ClipboardCopyBlockedEvent | ClipboardPasteBlockedEvent);
4851
4919
 
4852
4920
  /**
4853
4921
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by a {@link Window}. Events are
@@ -5949,11 +6017,8 @@ declare type FrameEventType = EventType_5;
5949
6017
  /**
5950
6018
  * @interface
5951
6019
  */
5952
- declare type FrameInfo = {
5953
- name: string;
5954
- uuid: string;
6020
+ declare type FrameInfo = EntityInfo & {
5955
6021
  url: string;
5956
- entityType: EntityType_4;
5957
6022
  parent: Identity_4;
5958
6023
  };
5959
6024
 
@@ -9669,6 +9734,8 @@ declare namespace OpenFin {
9669
9734
  ClientConnectionPayload,
9670
9735
  EntityInfo,
9671
9736
  EntityType_4 as EntityType,
9737
+ ScreenCaptureState,
9738
+ ScreenCapturePermission,
9672
9739
  Bounds,
9673
9740
  WindowBounds,
9674
9741
  GetBoundsOptions,
@@ -9889,7 +9956,11 @@ declare namespace OpenFin {
9889
9956
  StructuredContentBehavior,
9890
9957
  StructuredContentPermissions,
9891
9958
  ContentPermission,
9959
+ ScreenCaptureBehavior,
9892
9960
  PerDomainSettings,
9961
+ CopyPermissions,
9962
+ PastePermissions,
9963
+ ClipboardPermissions,
9893
9964
  DomainSettingsRule,
9894
9965
  FileDownloadBehavior,
9895
9966
  FileDownloadBehaviorNames,
@@ -10068,6 +10139,29 @@ declare type PageTitleUpdatedEvent = NamedEvent & {
10068
10139
  title: string;
10069
10140
  };
10070
10141
 
10142
+ /**
10143
+ * Reasons for a paste operation being blocked
10144
+ *
10145
+ * 'invalid-data': Copy protection is enabled and the pasted data is invalid.
10146
+ * 'disabled': Copy protection is turned on and the current URL for this WebContent has been disabled through domain-based settings from accessing the copied data.
10147
+ */
10148
+ declare type PasteBlockedEventReason = 'invalid-data' | 'disabled';
10149
+
10150
+ /**
10151
+ * Control copy operations for a matched URL.
10152
+ */
10153
+ declare type PastePermissions = {
10154
+ /**
10155
+ * @defaultValue 'non-protected-content'
10156
+ *
10157
+ * Controls the behavior for paste operations for a matched URL.
10158
+ *
10159
+ * non-protected-content: All matching URLs will be able to paste content copied from non-protected URLs.
10160
+ * all-content: All matching URLs will be able to paste content copied from both protected (copy.behavior = 'protect') and on-protected (copy.behavior = 'allow') URLs.
10161
+ */
10162
+ behavior: 'non-protected-content' | 'all-content';
10163
+ };
10164
+
10071
10165
  declare type PathServeRequest = ServeRequest & {
10072
10166
  path: string;
10073
10167
  };
@@ -10211,6 +10305,16 @@ declare type PerDomainSettings = {
10211
10305
  * {@inheritdoc ChromiumPolicies}
10212
10306
  */
10213
10307
  chromiumPolicies?: ChromiumPolicies;
10308
+ contentProtection?: {
10309
+ /**
10310
+ * {@inheritdoc ScreenCaptureBehavior}
10311
+ */
10312
+ screenCapture: ScreenCaptureBehavior;
10313
+ /**
10314
+ * {@inheritdoc ClipboardPermissions}
10315
+ */
10316
+ clipboard?: ClipboardPermissions;
10317
+ };
10214
10318
  };
10215
10319
 
10216
10320
  /**
@@ -12861,6 +12965,10 @@ declare interface ProtocolMap extends ProtocolMapBase {
12861
12965
  };
12862
12966
  response: OpenFin.PopupResult;
12863
12967
  };
12968
+ 'get-screen-capture-permissions': {
12969
+ request: OpenFin.Identity;
12970
+ response: OpenFin.ScreenCapturePermission;
12971
+ };
12864
12972
  'render-overlay': {
12865
12973
  request: {
12866
12974
  bounds: OpenFin.Bounds;
@@ -13390,6 +13498,31 @@ declare type RvmLaunchOptions = {
13390
13498
  subscribe?: (launch: LaunchEmitter) => void;
13391
13499
  };
13392
13500
 
13501
+ /**
13502
+ * @interface
13503
+ * Controls whether this content should be allowed or blocked when capturing the screen.
13504
+ */
13505
+ declare type ScreenCaptureBehavior = 'allow' | 'block';
13506
+
13507
+ /**
13508
+ * Returned by getScreenCapturePermission. Includes sub-entity permission states and the resulting permission.
13509
+ * @interface
13510
+ */
13511
+ declare type ScreenCapturePermission = {
13512
+ permission: ScreenCaptureBehavior;
13513
+ permissions: ScreenCaptureState[];
13514
+ };
13515
+
13516
+ /**
13517
+ * screenCapture state for a given entity as defined in domain settings.
13518
+ * @interface
13519
+ */
13520
+ declare type ScreenCaptureState = {
13521
+ info: EntityInfo;
13522
+ behavior: ScreenCaptureBehavior;
13523
+ url: string;
13524
+ };
13525
+
13393
13526
  /**
13394
13527
  * @interface
13395
13528
  */
@@ -17741,6 +17874,19 @@ declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
17741
17874
  * {@link OpenFin.WebContentsEvents event namespace}.
17742
17875
  */
17743
17876
  showPopupWindow(options: OpenFin.PopupOptions): Promise<OpenFin.PopupResult>;
17877
+ /**
17878
+ *
17879
+ * Get the screen capture permission for this content.
17880
+ *
17881
+ * @example
17882
+ * ```js
17883
+ * const { permission } = await fin.me.getScreenCapturePermission();
17884
+ *
17885
+ * console.log(`This content is currently ${permission}ed in screen captures.`);
17886
+ *
17887
+ * ```
17888
+ */
17889
+ getScreenCapturePermission(): Promise<OpenFin.ScreenCapturePermission>;
17744
17890
  }
17745
17891
 
17746
17892
  /**
@@ -17779,6 +17925,8 @@ declare namespace WebContentsEvents {
17779
17925
  FileDownloadProgressEvent,
17780
17926
  FileDownloadCompletedEvent,
17781
17927
  ContentBlockedEvent,
17928
+ ClipboardCopyBlockedEvent,
17929
+ ClipboardPasteBlockedEvent,
17782
17930
  Event_5 as Event,
17783
17931
  WebContentsEvent,
17784
17932
  WillPropagateWebContentsEvent,
@@ -3218,6 +3218,40 @@ declare class Clipboard_2 extends Base {
3218
3218
  getAvailableFormats(type?: OpenFin.ClipboardSelectionType): Promise<Array<string>>;
3219
3219
  }
3220
3220
 
3221
+ /**
3222
+ * Generated when a copy operation is blocked through {@link OpenFin.DomainSettings}.
3223
+ * @interface
3224
+ */
3225
+ declare type ClipboardCopyBlockedEvent = NamedEvent & {
3226
+ type: 'clipboard-copy-blocked';
3227
+ /**
3228
+ * URL of the Window or View that generated the event.
3229
+ */
3230
+ url: string;
3231
+ reason: CopyBlockedEventReason;
3232
+ };
3233
+
3234
+ /**
3235
+ * Generated when a paste operation is blocked through {@link OpenFin.DomainSettings}.
3236
+ * @interface
3237
+ */
3238
+ declare type ClipboardPasteBlockedEvent = NamedEvent & {
3239
+ type: 'clipboard-paste-blocked';
3240
+ /**
3241
+ * URL of the Window or View that generated the event.
3242
+ */
3243
+ url: string;
3244
+ reason: PasteBlockedEventReason;
3245
+ };
3246
+
3247
+ /**
3248
+ * Clipboard Permissions
3249
+ */
3250
+ declare type ClipboardPermissions = {
3251
+ copy?: CopyPermissions;
3252
+ paste?: PastePermissions;
3253
+ };
3254
+
3221
3255
  /**
3222
3256
  * The type of clipboard to write to, can be 'clipboard' or 'selection'.
3223
3257
  * Defaults to 'clipboard'. Use 'selection' for linux only.
@@ -3992,6 +4026,40 @@ declare type CookieOption = {
3992
4026
  name: string;
3993
4027
  };
3994
4028
 
4029
+ /**
4030
+ * Reasons for a copy operation being blocked
4031
+ *
4032
+ * 'disabled': Copy operation is disabled through domain-based permissions.
4033
+ */
4034
+ declare type CopyBlockedEventReason = 'disabled';
4035
+
4036
+ /**
4037
+ * Control copy operations for a matched URL.
4038
+ */
4039
+ declare type CopyPermissions = {
4040
+ /**
4041
+ * @defaultValue 'allowed'
4042
+ *
4043
+ * Controls the behavior for copy operations for a matched URL.
4044
+ *
4045
+ * allow: Enables all copy operations.
4046
+ * block: Disables all copy operations.
4047
+ * protect: Protects any copied content. Only URLs that have set paste.behavior: 'all-content' will be allowed to paste this content.
4048
+ */
4049
+ behavior: 'allow' | 'block' | 'protect';
4050
+ /**
4051
+ * Additional copy operation options
4052
+ */
4053
+ options?: {
4054
+ /**
4055
+ * @defaultValue ''
4056
+ *
4057
+ * When setting behavior = 'protected' , this string will be pasted to other applications that do not have a matching URL instead of the original content.
4058
+ */
4059
+ replacementText: string;
4060
+ };
4061
+ };
4062
+
3995
4063
  /**
3996
4064
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
3997
4065
  * average of _height_ and _width_.
@@ -4847,7 +4915,7 @@ declare type Event_4 = (WebContentsEvents.Event<'view'> & {
4847
4915
  */
4848
4916
  declare type Event_5<Topic extends string> = {
4849
4917
  topic: Topic;
4850
- } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent);
4918
+ } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent | ClipboardCopyBlockedEvent | ClipboardPasteBlockedEvent);
4851
4919
 
4852
4920
  /**
4853
4921
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by a {@link Window}. Events are
@@ -5949,11 +6017,8 @@ declare type FrameEventType = EventType_5;
5949
6017
  /**
5950
6018
  * @interface
5951
6019
  */
5952
- declare type FrameInfo = {
5953
- name: string;
5954
- uuid: string;
6020
+ declare type FrameInfo = EntityInfo & {
5955
6021
  url: string;
5956
- entityType: EntityType_4;
5957
6022
  parent: Identity_4;
5958
6023
  };
5959
6024
 
@@ -9669,6 +9734,8 @@ declare namespace OpenFin {
9669
9734
  ClientConnectionPayload,
9670
9735
  EntityInfo,
9671
9736
  EntityType_4 as EntityType,
9737
+ ScreenCaptureState,
9738
+ ScreenCapturePermission,
9672
9739
  Bounds,
9673
9740
  WindowBounds,
9674
9741
  GetBoundsOptions,
@@ -9889,7 +9956,11 @@ declare namespace OpenFin {
9889
9956
  StructuredContentBehavior,
9890
9957
  StructuredContentPermissions,
9891
9958
  ContentPermission,
9959
+ ScreenCaptureBehavior,
9892
9960
  PerDomainSettings,
9961
+ CopyPermissions,
9962
+ PastePermissions,
9963
+ ClipboardPermissions,
9893
9964
  DomainSettingsRule,
9894
9965
  FileDownloadBehavior,
9895
9966
  FileDownloadBehaviorNames,
@@ -10068,6 +10139,29 @@ declare type PageTitleUpdatedEvent = NamedEvent & {
10068
10139
  title: string;
10069
10140
  };
10070
10141
 
10142
+ /**
10143
+ * Reasons for a paste operation being blocked
10144
+ *
10145
+ * 'invalid-data': Copy protection is enabled and the pasted data is invalid.
10146
+ * 'disabled': Copy protection is turned on and the current URL for this WebContent has been disabled through domain-based settings from accessing the copied data.
10147
+ */
10148
+ declare type PasteBlockedEventReason = 'invalid-data' | 'disabled';
10149
+
10150
+ /**
10151
+ * Control copy operations for a matched URL.
10152
+ */
10153
+ declare type PastePermissions = {
10154
+ /**
10155
+ * @defaultValue 'non-protected-content'
10156
+ *
10157
+ * Controls the behavior for paste operations for a matched URL.
10158
+ *
10159
+ * non-protected-content: All matching URLs will be able to paste content copied from non-protected URLs.
10160
+ * all-content: All matching URLs will be able to paste content copied from both protected (copy.behavior = 'protect') and on-protected (copy.behavior = 'allow') URLs.
10161
+ */
10162
+ behavior: 'non-protected-content' | 'all-content';
10163
+ };
10164
+
10071
10165
  declare type PathServeRequest = ServeRequest & {
10072
10166
  path: string;
10073
10167
  };
@@ -10211,6 +10305,16 @@ declare type PerDomainSettings = {
10211
10305
  * {@inheritdoc ChromiumPolicies}
10212
10306
  */
10213
10307
  chromiumPolicies?: ChromiumPolicies;
10308
+ contentProtection?: {
10309
+ /**
10310
+ * {@inheritdoc ScreenCaptureBehavior}
10311
+ */
10312
+ screenCapture: ScreenCaptureBehavior;
10313
+ /**
10314
+ * {@inheritdoc ClipboardPermissions}
10315
+ */
10316
+ clipboard?: ClipboardPermissions;
10317
+ };
10214
10318
  };
10215
10319
 
10216
10320
  /**
@@ -12861,6 +12965,10 @@ declare interface ProtocolMap extends ProtocolMapBase {
12861
12965
  };
12862
12966
  response: OpenFin.PopupResult;
12863
12967
  };
12968
+ 'get-screen-capture-permissions': {
12969
+ request: OpenFin.Identity;
12970
+ response: OpenFin.ScreenCapturePermission;
12971
+ };
12864
12972
  'render-overlay': {
12865
12973
  request: {
12866
12974
  bounds: OpenFin.Bounds;
@@ -13390,6 +13498,31 @@ declare type RvmLaunchOptions = {
13390
13498
  subscribe?: (launch: LaunchEmitter) => void;
13391
13499
  };
13392
13500
 
13501
+ /**
13502
+ * @interface
13503
+ * Controls whether this content should be allowed or blocked when capturing the screen.
13504
+ */
13505
+ declare type ScreenCaptureBehavior = 'allow' | 'block';
13506
+
13507
+ /**
13508
+ * Returned by getScreenCapturePermission. Includes sub-entity permission states and the resulting permission.
13509
+ * @interface
13510
+ */
13511
+ declare type ScreenCapturePermission = {
13512
+ permission: ScreenCaptureBehavior;
13513
+ permissions: ScreenCaptureState[];
13514
+ };
13515
+
13516
+ /**
13517
+ * screenCapture state for a given entity as defined in domain settings.
13518
+ * @interface
13519
+ */
13520
+ declare type ScreenCaptureState = {
13521
+ info: EntityInfo;
13522
+ behavior: ScreenCaptureBehavior;
13523
+ url: string;
13524
+ };
13525
+
13393
13526
  /**
13394
13527
  * @interface
13395
13528
  */
@@ -17741,6 +17874,19 @@ declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
17741
17874
  * {@link OpenFin.WebContentsEvents event namespace}.
17742
17875
  */
17743
17876
  showPopupWindow(options: OpenFin.PopupOptions): Promise<OpenFin.PopupResult>;
17877
+ /**
17878
+ *
17879
+ * Get the screen capture permission for this content.
17880
+ *
17881
+ * @example
17882
+ * ```js
17883
+ * const { permission } = await fin.me.getScreenCapturePermission();
17884
+ *
17885
+ * console.log(`This content is currently ${permission}ed in screen captures.`);
17886
+ *
17887
+ * ```
17888
+ */
17889
+ getScreenCapturePermission(): Promise<OpenFin.ScreenCapturePermission>;
17744
17890
  }
17745
17891
 
17746
17892
  /**
@@ -17779,6 +17925,8 @@ declare namespace WebContentsEvents {
17779
17925
  FileDownloadProgressEvent,
17780
17926
  FileDownloadCompletedEvent,
17781
17927
  ContentBlockedEvent,
17928
+ ClipboardCopyBlockedEvent,
17929
+ ClipboardPasteBlockedEvent,
17782
17930
  Event_5 as Event,
17783
17931
  WebContentsEvent,
17784
17932
  WillPropagateWebContentsEvent,
@@ -3218,6 +3218,40 @@ declare class Clipboard_2 extends Base {
3218
3218
  getAvailableFormats(type?: OpenFin.ClipboardSelectionType): Promise<Array<string>>;
3219
3219
  }
3220
3220
 
3221
+ /**
3222
+ * Generated when a copy operation is blocked through {@link OpenFin.DomainSettings}.
3223
+ * @interface
3224
+ */
3225
+ declare type ClipboardCopyBlockedEvent = NamedEvent & {
3226
+ type: 'clipboard-copy-blocked';
3227
+ /**
3228
+ * URL of the Window or View that generated the event.
3229
+ */
3230
+ url: string;
3231
+ reason: CopyBlockedEventReason;
3232
+ };
3233
+
3234
+ /**
3235
+ * Generated when a paste operation is blocked through {@link OpenFin.DomainSettings}.
3236
+ * @interface
3237
+ */
3238
+ declare type ClipboardPasteBlockedEvent = NamedEvent & {
3239
+ type: 'clipboard-paste-blocked';
3240
+ /**
3241
+ * URL of the Window or View that generated the event.
3242
+ */
3243
+ url: string;
3244
+ reason: PasteBlockedEventReason;
3245
+ };
3246
+
3247
+ /**
3248
+ * Clipboard Permissions
3249
+ */
3250
+ declare type ClipboardPermissions = {
3251
+ copy?: CopyPermissions;
3252
+ paste?: PastePermissions;
3253
+ };
3254
+
3221
3255
  /**
3222
3256
  * The type of clipboard to write to, can be 'clipboard' or 'selection'.
3223
3257
  * Defaults to 'clipboard'. Use 'selection' for linux only.
@@ -3992,6 +4026,40 @@ declare type CookieOption = {
3992
4026
  name: string;
3993
4027
  };
3994
4028
 
4029
+ /**
4030
+ * Reasons for a copy operation being blocked
4031
+ *
4032
+ * 'disabled': Copy operation is disabled through domain-based permissions.
4033
+ */
4034
+ declare type CopyBlockedEventReason = 'disabled';
4035
+
4036
+ /**
4037
+ * Control copy operations for a matched URL.
4038
+ */
4039
+ declare type CopyPermissions = {
4040
+ /**
4041
+ * @defaultValue 'allowed'
4042
+ *
4043
+ * Controls the behavior for copy operations for a matched URL.
4044
+ *
4045
+ * allow: Enables all copy operations.
4046
+ * block: Disables all copy operations.
4047
+ * protect: Protects any copied content. Only URLs that have set paste.behavior: 'all-content' will be allowed to paste this content.
4048
+ */
4049
+ behavior: 'allow' | 'block' | 'protect';
4050
+ /**
4051
+ * Additional copy operation options
4052
+ */
4053
+ options?: {
4054
+ /**
4055
+ * @defaultValue ''
4056
+ *
4057
+ * When setting behavior = 'protected' , this string will be pasted to other applications that do not have a matching URL instead of the original content.
4058
+ */
4059
+ replacementText: string;
4060
+ };
4061
+ };
4062
+
3995
4063
  /**
3996
4064
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
3997
4065
  * average of _height_ and _width_.
@@ -4847,7 +4915,7 @@ declare type Event_4 = (WebContentsEvents.Event<'view'> & {
4847
4915
  */
4848
4916
  declare type Event_5<Topic extends string> = {
4849
4917
  topic: Topic;
4850
- } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent);
4918
+ } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent | ClipboardCopyBlockedEvent | ClipboardPasteBlockedEvent);
4851
4919
 
4852
4920
  /**
4853
4921
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by a {@link Window}. Events are
@@ -5949,11 +6017,8 @@ declare type FrameEventType = EventType_5;
5949
6017
  /**
5950
6018
  * @interface
5951
6019
  */
5952
- declare type FrameInfo = {
5953
- name: string;
5954
- uuid: string;
6020
+ declare type FrameInfo = EntityInfo & {
5955
6021
  url: string;
5956
- entityType: EntityType_4;
5957
6022
  parent: Identity_4;
5958
6023
  };
5959
6024
 
@@ -9669,6 +9734,8 @@ declare namespace OpenFin {
9669
9734
  ClientConnectionPayload,
9670
9735
  EntityInfo,
9671
9736
  EntityType_4 as EntityType,
9737
+ ScreenCaptureState,
9738
+ ScreenCapturePermission,
9672
9739
  Bounds,
9673
9740
  WindowBounds,
9674
9741
  GetBoundsOptions,
@@ -9889,7 +9956,11 @@ declare namespace OpenFin {
9889
9956
  StructuredContentBehavior,
9890
9957
  StructuredContentPermissions,
9891
9958
  ContentPermission,
9959
+ ScreenCaptureBehavior,
9892
9960
  PerDomainSettings,
9961
+ CopyPermissions,
9962
+ PastePermissions,
9963
+ ClipboardPermissions,
9893
9964
  DomainSettingsRule,
9894
9965
  FileDownloadBehavior,
9895
9966
  FileDownloadBehaviorNames,
@@ -10068,6 +10139,29 @@ declare type PageTitleUpdatedEvent = NamedEvent & {
10068
10139
  title: string;
10069
10140
  };
10070
10141
 
10142
+ /**
10143
+ * Reasons for a paste operation being blocked
10144
+ *
10145
+ * 'invalid-data': Copy protection is enabled and the pasted data is invalid.
10146
+ * 'disabled': Copy protection is turned on and the current URL for this WebContent has been disabled through domain-based settings from accessing the copied data.
10147
+ */
10148
+ declare type PasteBlockedEventReason = 'invalid-data' | 'disabled';
10149
+
10150
+ /**
10151
+ * Control copy operations for a matched URL.
10152
+ */
10153
+ declare type PastePermissions = {
10154
+ /**
10155
+ * @defaultValue 'non-protected-content'
10156
+ *
10157
+ * Controls the behavior for paste operations for a matched URL.
10158
+ *
10159
+ * non-protected-content: All matching URLs will be able to paste content copied from non-protected URLs.
10160
+ * all-content: All matching URLs will be able to paste content copied from both protected (copy.behavior = 'protect') and on-protected (copy.behavior = 'allow') URLs.
10161
+ */
10162
+ behavior: 'non-protected-content' | 'all-content';
10163
+ };
10164
+
10071
10165
  declare type PathServeRequest = ServeRequest & {
10072
10166
  path: string;
10073
10167
  };
@@ -10211,6 +10305,16 @@ declare type PerDomainSettings = {
10211
10305
  * {@inheritdoc ChromiumPolicies}
10212
10306
  */
10213
10307
  chromiumPolicies?: ChromiumPolicies;
10308
+ contentProtection?: {
10309
+ /**
10310
+ * {@inheritdoc ScreenCaptureBehavior}
10311
+ */
10312
+ screenCapture: ScreenCaptureBehavior;
10313
+ /**
10314
+ * {@inheritdoc ClipboardPermissions}
10315
+ */
10316
+ clipboard?: ClipboardPermissions;
10317
+ };
10214
10318
  };
10215
10319
 
10216
10320
  /**
@@ -12861,6 +12965,10 @@ declare interface ProtocolMap extends ProtocolMapBase {
12861
12965
  };
12862
12966
  response: OpenFin.PopupResult;
12863
12967
  };
12968
+ 'get-screen-capture-permissions': {
12969
+ request: OpenFin.Identity;
12970
+ response: OpenFin.ScreenCapturePermission;
12971
+ };
12864
12972
  'render-overlay': {
12865
12973
  request: {
12866
12974
  bounds: OpenFin.Bounds;
@@ -13390,6 +13498,31 @@ declare type RvmLaunchOptions = {
13390
13498
  subscribe?: (launch: LaunchEmitter) => void;
13391
13499
  };
13392
13500
 
13501
+ /**
13502
+ * @interface
13503
+ * Controls whether this content should be allowed or blocked when capturing the screen.
13504
+ */
13505
+ declare type ScreenCaptureBehavior = 'allow' | 'block';
13506
+
13507
+ /**
13508
+ * Returned by getScreenCapturePermission. Includes sub-entity permission states and the resulting permission.
13509
+ * @interface
13510
+ */
13511
+ declare type ScreenCapturePermission = {
13512
+ permission: ScreenCaptureBehavior;
13513
+ permissions: ScreenCaptureState[];
13514
+ };
13515
+
13516
+ /**
13517
+ * screenCapture state for a given entity as defined in domain settings.
13518
+ * @interface
13519
+ */
13520
+ declare type ScreenCaptureState = {
13521
+ info: EntityInfo;
13522
+ behavior: ScreenCaptureBehavior;
13523
+ url: string;
13524
+ };
13525
+
13393
13526
  /**
13394
13527
  * @interface
13395
13528
  */
@@ -17741,6 +17874,19 @@ declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
17741
17874
  * {@link OpenFin.WebContentsEvents event namespace}.
17742
17875
  */
17743
17876
  showPopupWindow(options: OpenFin.PopupOptions): Promise<OpenFin.PopupResult>;
17877
+ /**
17878
+ *
17879
+ * Get the screen capture permission for this content.
17880
+ *
17881
+ * @example
17882
+ * ```js
17883
+ * const { permission } = await fin.me.getScreenCapturePermission();
17884
+ *
17885
+ * console.log(`This content is currently ${permission}ed in screen captures.`);
17886
+ *
17887
+ * ```
17888
+ */
17889
+ getScreenCapturePermission(): Promise<OpenFin.ScreenCapturePermission>;
17744
17890
  }
17745
17891
 
17746
17892
  /**
@@ -17779,6 +17925,8 @@ declare namespace WebContentsEvents {
17779
17925
  FileDownloadProgressEvent,
17780
17926
  FileDownloadCompletedEvent,
17781
17927
  ContentBlockedEvent,
17928
+ ClipboardCopyBlockedEvent,
17929
+ ClipboardPasteBlockedEvent,
17782
17930
  Event_5 as Event,
17783
17931
  WebContentsEvent,
17784
17932
  WillPropagateWebContentsEvent,
package/out/fdc3-api.d.ts CHANGED
@@ -3274,6 +3274,40 @@ declare class Clipboard_2 extends Base {
3274
3274
  getAvailableFormats(type?: OpenFin.ClipboardSelectionType): Promise<Array<string>>;
3275
3275
  }
3276
3276
 
3277
+ /**
3278
+ * Generated when a copy operation is blocked through {@link OpenFin.DomainSettings}.
3279
+ * @interface
3280
+ */
3281
+ declare type ClipboardCopyBlockedEvent = NamedEvent & {
3282
+ type: 'clipboard-copy-blocked';
3283
+ /**
3284
+ * URL of the Window or View that generated the event.
3285
+ */
3286
+ url: string;
3287
+ reason: CopyBlockedEventReason;
3288
+ };
3289
+
3290
+ /**
3291
+ * Generated when a paste operation is blocked through {@link OpenFin.DomainSettings}.
3292
+ * @interface
3293
+ */
3294
+ declare type ClipboardPasteBlockedEvent = NamedEvent & {
3295
+ type: 'clipboard-paste-blocked';
3296
+ /**
3297
+ * URL of the Window or View that generated the event.
3298
+ */
3299
+ url: string;
3300
+ reason: PasteBlockedEventReason;
3301
+ };
3302
+
3303
+ /**
3304
+ * Clipboard Permissions
3305
+ */
3306
+ declare type ClipboardPermissions = {
3307
+ copy?: CopyPermissions;
3308
+ paste?: PastePermissions;
3309
+ };
3310
+
3277
3311
  /**
3278
3312
  * The type of clipboard to write to, can be 'clipboard' or 'selection'.
3279
3313
  * Defaults to 'clipboard'. Use 'selection' for linux only.
@@ -4051,6 +4085,40 @@ declare type CookieOption = {
4051
4085
  name: string;
4052
4086
  };
4053
4087
 
4088
+ /**
4089
+ * Reasons for a copy operation being blocked
4090
+ *
4091
+ * 'disabled': Copy operation is disabled through domain-based permissions.
4092
+ */
4093
+ declare type CopyBlockedEventReason = 'disabled';
4094
+
4095
+ /**
4096
+ * Control copy operations for a matched URL.
4097
+ */
4098
+ declare type CopyPermissions = {
4099
+ /**
4100
+ * @defaultValue 'allowed'
4101
+ *
4102
+ * Controls the behavior for copy operations for a matched URL.
4103
+ *
4104
+ * allow: Enables all copy operations.
4105
+ * block: Disables all copy operations.
4106
+ * protect: Protects any copied content. Only URLs that have set paste.behavior: 'all-content' will be allowed to paste this content.
4107
+ */
4108
+ behavior: 'allow' | 'block' | 'protect';
4109
+ /**
4110
+ * Additional copy operation options
4111
+ */
4112
+ options?: {
4113
+ /**
4114
+ * @defaultValue ''
4115
+ *
4116
+ * When setting behavior = 'protected' , this string will be pasted to other applications that do not have a matching URL instead of the original content.
4117
+ */
4118
+ replacementText: string;
4119
+ };
4120
+ };
4121
+
4054
4122
  /**
4055
4123
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4056
4124
  * average of _height_ and _width_.
@@ -4911,7 +4979,7 @@ declare type Event_4 = (WebContentsEvents.Event<'view'> & {
4911
4979
  */
4912
4980
  declare type Event_5<Topic extends string> = {
4913
4981
  topic: Topic;
4914
- } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent);
4982
+ } & (BlurredEvent | CertificateSelectionShownEvent | CrashedEvent_2 | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | DidStartLoadingEvent | PageFaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent | ChildWindowCreatedEvent | FileDownloadStartedEvent | FileDownloadProgressEvent | FileDownloadCompletedEvent | FoundInPageEvent | CertificateErrorEvent | ContentBlockedEvent | WillRedirectEvent | ClipboardCopyBlockedEvent | ClipboardPasteBlockedEvent);
4915
4983
 
4916
4984
  /**
4917
4985
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by a {@link Window}. Events are
@@ -6037,11 +6105,8 @@ declare type FrameEventType = EventType_5;
6037
6105
  /**
6038
6106
  * @interface
6039
6107
  */
6040
- declare type FrameInfo = {
6041
- name: string;
6042
- uuid: string;
6108
+ declare type FrameInfo = EntityInfo & {
6043
6109
  url: string;
6044
- entityType: EntityType_4;
6045
6110
  parent: Identity_4;
6046
6111
  };
6047
6112
 
@@ -9987,6 +10052,8 @@ declare namespace OpenFin {
9987
10052
  ClientConnectionPayload,
9988
10053
  EntityInfo,
9989
10054
  EntityType_4 as EntityType,
10055
+ ScreenCaptureState,
10056
+ ScreenCapturePermission,
9990
10057
  Bounds,
9991
10058
  WindowBounds,
9992
10059
  GetBoundsOptions,
@@ -10207,7 +10274,11 @@ declare namespace OpenFin {
10207
10274
  StructuredContentBehavior,
10208
10275
  StructuredContentPermissions,
10209
10276
  ContentPermission,
10277
+ ScreenCaptureBehavior,
10210
10278
  PerDomainSettings,
10279
+ CopyPermissions,
10280
+ PastePermissions,
10281
+ ClipboardPermissions,
10211
10282
  DomainSettingsRule,
10212
10283
  FileDownloadBehavior,
10213
10284
  FileDownloadBehaviorNames,
@@ -10386,6 +10457,29 @@ declare type PageTitleUpdatedEvent = NamedEvent & {
10386
10457
  title: string;
10387
10458
  };
10388
10459
 
10460
+ /**
10461
+ * Reasons for a paste operation being blocked
10462
+ *
10463
+ * 'invalid-data': Copy protection is enabled and the pasted data is invalid.
10464
+ * 'disabled': Copy protection is turned on and the current URL for this WebContent has been disabled through domain-based settings from accessing the copied data.
10465
+ */
10466
+ declare type PasteBlockedEventReason = 'invalid-data' | 'disabled';
10467
+
10468
+ /**
10469
+ * Control copy operations for a matched URL.
10470
+ */
10471
+ declare type PastePermissions = {
10472
+ /**
10473
+ * @defaultValue 'non-protected-content'
10474
+ *
10475
+ * Controls the behavior for paste operations for a matched URL.
10476
+ *
10477
+ * non-protected-content: All matching URLs will be able to paste content copied from non-protected URLs.
10478
+ * all-content: All matching URLs will be able to paste content copied from both protected (copy.behavior = 'protect') and on-protected (copy.behavior = 'allow') URLs.
10479
+ */
10480
+ behavior: 'non-protected-content' | 'all-content';
10481
+ };
10482
+
10389
10483
  declare type PathServeRequest = ServeRequest & {
10390
10484
  path: string;
10391
10485
  };
@@ -10529,6 +10623,16 @@ declare type PerDomainSettings = {
10529
10623
  * {@inheritdoc ChromiumPolicies}
10530
10624
  */
10531
10625
  chromiumPolicies?: ChromiumPolicies;
10626
+ contentProtection?: {
10627
+ /**
10628
+ * {@inheritdoc ScreenCaptureBehavior}
10629
+ */
10630
+ screenCapture: ScreenCaptureBehavior;
10631
+ /**
10632
+ * {@inheritdoc ClipboardPermissions}
10633
+ */
10634
+ clipboard?: ClipboardPermissions;
10635
+ };
10532
10636
  };
10533
10637
 
10534
10638
  /**
@@ -13262,6 +13366,10 @@ declare interface ProtocolMap extends ProtocolMapBase {
13262
13366
  };
13263
13367
  response: OpenFin.PopupResult;
13264
13368
  };
13369
+ 'get-screen-capture-permissions': {
13370
+ request: OpenFin.Identity;
13371
+ response: OpenFin.ScreenCapturePermission;
13372
+ };
13265
13373
  'render-overlay': {
13266
13374
  request: {
13267
13375
  bounds: OpenFin.Bounds;
@@ -13791,6 +13899,31 @@ declare type RvmLaunchOptions = {
13791
13899
  subscribe?: (launch: LaunchEmitter) => void;
13792
13900
  };
13793
13901
 
13902
+ /**
13903
+ * @interface
13904
+ * Controls whether this content should be allowed or blocked when capturing the screen.
13905
+ */
13906
+ declare type ScreenCaptureBehavior = 'allow' | 'block';
13907
+
13908
+ /**
13909
+ * Returned by getScreenCapturePermission. Includes sub-entity permission states and the resulting permission.
13910
+ * @interface
13911
+ */
13912
+ declare type ScreenCapturePermission = {
13913
+ permission: ScreenCaptureBehavior;
13914
+ permissions: ScreenCaptureState[];
13915
+ };
13916
+
13917
+ /**
13918
+ * screenCapture state for a given entity as defined in domain settings.
13919
+ * @interface
13920
+ */
13921
+ declare type ScreenCaptureState = {
13922
+ info: EntityInfo;
13923
+ behavior: ScreenCaptureBehavior;
13924
+ url: string;
13925
+ };
13926
+
13794
13927
  /**
13795
13928
  * @interface
13796
13929
  */
@@ -18192,6 +18325,19 @@ declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
18192
18325
  * {@link OpenFin.WebContentsEvents event namespace}.
18193
18326
  */
18194
18327
  showPopupWindow(options: OpenFin.PopupOptions): Promise<OpenFin.PopupResult>;
18328
+ /**
18329
+ *
18330
+ * Get the screen capture permission for this content.
18331
+ *
18332
+ * @example
18333
+ * ```js
18334
+ * const { permission } = await fin.me.getScreenCapturePermission();
18335
+ *
18336
+ * console.log(`This content is currently ${permission}ed in screen captures.`);
18337
+ *
18338
+ * ```
18339
+ */
18340
+ getScreenCapturePermission(): Promise<OpenFin.ScreenCapturePermission>;
18195
18341
  }
18196
18342
 
18197
18343
  /**
@@ -18230,6 +18376,8 @@ declare namespace WebContentsEvents {
18230
18376
  FileDownloadProgressEvent,
18231
18377
  FileDownloadCompletedEvent,
18232
18378
  ContentBlockedEvent,
18379
+ ClipboardCopyBlockedEvent,
18380
+ ClipboardPasteBlockedEvent,
18233
18381
  Event_5 as Event,
18234
18382
  WebContentsEvent,
18235
18383
  WillPropagateWebContentsEvent,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/fdc3-api",
3
- "version": "40.102.2",
3
+ "version": "40.103.4",
4
4
  "description": "OpenFin fdc3 module utilities and types.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,