@openfin/fdc3-api 46.100.64 → 46.100.66

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.
@@ -2163,6 +2163,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2163
2163
  */
2164
2164
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2165
2165
 
2166
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2167
+ declare interface CallSite {
2168
+ getFileName(): string | null;
2169
+ toString(): string;
2170
+ }
2171
+
2172
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2173
+ declare type CapturedStack = CallSite[] | string[];
2174
+
2166
2175
  /**
2167
2176
  * Configuration for page capture.
2168
2177
  *
@@ -7381,17 +7390,19 @@ declare type InteropActionLoggingOption = {
7381
7390
  * "interopBrokerConfiguration": {
7382
7391
  * "contextGroups": [
7383
7392
  * {
7384
- * "id": "green",
7393
+ * "id": "fdc3.channel.4",
7385
7394
  * "displayMetadata": {
7386
- * "color": "#00CC88",
7387
- * "name": "green"
7395
+ * "color": "green",
7396
+ * "name": "Channel 4",
7397
+ * "glyph": "4"
7388
7398
  * }
7389
7399
  * },
7390
7400
  * {
7391
- * "id": "purple",
7401
+ * "id": "fdc3.channel.8",
7392
7402
  * "displayMetadata": {
7393
- * "color": "#8C61FF",
7394
- * "name": "purple"
7403
+ * "color": "purple",
7404
+ * "name": "Channel 8",
7405
+ * "glyph": "8"
7395
7406
  * }
7396
7407
  * },
7397
7408
  * ]
@@ -7525,7 +7536,7 @@ declare class InteropBroker extends Base {
7525
7536
  * @param joinContextGroupOptions - Id of the Context Group and identity of the entity to join to the group.
7526
7537
  * @param senderIdentity - Identity of the client sender.
7527
7538
  */
7528
- joinContextGroup({ contextGroupId, target }: {
7539
+ joinContextGroup({ contextGroupId: requestedContextGroupId, target }: {
7529
7540
  contextGroupId: string;
7530
7541
  target?: OpenFin.ClientIdentity | OpenFin.Identity;
7531
7542
  }, senderIdentity: OpenFin.ClientIdentity): Promise<void>;
@@ -7536,7 +7547,7 @@ declare class InteropBroker extends Base {
7536
7547
  * @param addClientToContextGroupOptions - Contains the contextGroupId
7537
7548
  * @param clientIdentity - Identity of the client sender.
7538
7549
  */
7539
- addClientToContextGroup({ contextGroupId }: {
7550
+ addClientToContextGroup({ contextGroupId: requestedContextGroupId }: {
7540
7551
  contextGroupId: string;
7541
7552
  }, clientIdentity: OpenFin.ClientIdentity): Promise<void>;
7542
7553
  /**
@@ -7949,6 +7960,8 @@ declare class InteropBroker extends Base {
7949
7960
  };
7950
7961
  private getClientState;
7951
7962
  private static toObject;
7963
+ private normalizeContextGroupStates;
7964
+ private normalizeContextGroupId;
7952
7965
  static checkContextIntegrity: (context: OpenFin.Context) => {
7953
7966
  isValid: true;
7954
7967
  } | {
@@ -8176,7 +8189,7 @@ declare class InteropClient extends Base {
8176
8189
  *
8177
8190
  * getLastFocusedView()
8178
8191
  * .then(lastFocusedViewIdentity => {
8179
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
8192
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
8180
8193
  * })
8181
8194
  * ```
8182
8195
  */
@@ -8211,7 +8224,7 @@ declare class InteropClient extends Base {
8211
8224
  *
8212
8225
  * @example
8213
8226
  * ```js
8214
- * fin.me.interop.getAllClientsInContextGroup('red')
8227
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
8215
8228
  * .then(clientsInContextGroup => {
8216
8229
  * console.log(clientsInContextGroup)
8217
8230
  * })
@@ -8226,7 +8239,7 @@ declare class InteropClient extends Base {
8226
8239
  *
8227
8240
  * @example
8228
8241
  * ```js
8229
- * fin.me.interop.getInfoForContextGroup('red')
8242
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
8230
8243
  * .then(contextGroupInfo => {
8231
8244
  * console.log(contextGroupInfo.displayMetadata.name)
8232
8245
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -8283,12 +8296,12 @@ declare class InteropClient extends Base {
8283
8296
  *
8284
8297
  * @example
8285
8298
  * ```js
8286
- * await fin.me.interop.joinContextGroup('yellow');
8299
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8287
8300
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8288
8301
  * const currentContext = await fin.me.interop.getCurrentContext();
8289
8302
  *
8290
8303
  * // with a specific context
8291
- * await fin.me.interop.joinContextGroup('yellow');
8304
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8292
8305
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
8293
8306
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8294
8307
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -8450,7 +8463,7 @@ declare type InteropClientOnDisconnectionListener = (InteropBrokerDisconnectionE
8450
8463
  */
8451
8464
  declare type InteropConfig = {
8452
8465
  /**
8453
- * Context Group for the client. (green, yellow, red, etc.).
8466
+ * Context Group ID for the client (for example, `fdc3.channel.4`).
8454
8467
  */
8455
8468
  currentContextGroup?: string | null;
8456
8469
  /**
@@ -8499,7 +8512,7 @@ declare class InteropModule extends Base {
8499
8512
  * @example
8500
8513
  * ```js
8501
8514
  * const interopConfig = {
8502
- * currentContextGroup: 'green'
8515
+ * currentContextGroup: 'fdc3.channel.4'
8503
8516
  * }
8504
8517
  *
8505
8518
  * const interopBroker = await fin.Interop.init('openfin');
@@ -9787,6 +9800,10 @@ declare type Manifest = {
9787
9800
  experimentalExtensionPolicyBlockedHosts?: {
9788
9801
  hosts: string[];
9789
9802
  };
9803
+ /**
9804
+ * Chromium extensions to install and enable for this application.
9805
+ */
9806
+ extensions?: ManifestExtension[];
9790
9807
  licenseKey: string;
9791
9808
  offlineAccess?: boolean;
9792
9809
  platform?: PlatformOptions;
@@ -9840,6 +9857,27 @@ declare type ManifestChangedEvent = BaseEvents.IdentityEvent & {
9840
9857
  type: 'manifest-changed';
9841
9858
  };
9842
9859
 
9860
+ /**
9861
+ * Chromium extension entry in an application configuration.
9862
+ *
9863
+ * @interface
9864
+ */
9865
+ declare type ManifestExtension = {
9866
+ /** Chromium extension ID. */
9867
+ id: string;
9868
+ /** Extension server URL used to install the extension. */
9869
+ serverURL: string;
9870
+ /**
9871
+ * Rules declaring where this extension may inject content scripts into
9872
+ * non-tab surfaces (for example the AI Center). Omit or leave empty to keep
9873
+ * the extension restricted to browser tabs — identical to historic
9874
+ * behavior. A wildcard pattern in `match` grants blanket coverage.
9875
+ * `matchOptions` behaves as it does for domain settings. Intended for
9876
+ * security extensions rather than extensions that add visible UI.
9877
+ */
9878
+ nonTabInjections?: NonTabInjectionRule[];
9879
+ };
9880
+
9843
9881
  /**
9844
9882
  * @interface
9845
9883
  */
@@ -10630,6 +10668,32 @@ declare type NonPropagatedWebContentsEvent = never;
10630
10668
  */
10631
10669
  declare type NonPropagatedWindowEvent = never;
10632
10670
 
10671
+ /**
10672
+ * Rule permitting a Chromium extension to inject content scripts into non-tab
10673
+ * web content whose URL matches the given patterns.
10674
+ *
10675
+ * Match patterns use the same Chromium
10676
+ * [match pattern](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10677
+ * syntax as {@link DomainSettingsRule}. Omitting `matchOptions` uses the same
10678
+ * default scheme-matching behavior as domain settings.
10679
+ *
10680
+ * @interface
10681
+ */
10682
+ declare type NonTabInjectionRule = {
10683
+ /**
10684
+ * Array of [match patterns](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10685
+ * specifying the content locations where the extension may inject outside
10686
+ * browser tabs. An empty array grants no permission. A wildcard grants
10687
+ * blanket coverage of all content locations.
10688
+ */
10689
+ match: string[];
10690
+ /**
10691
+ * Options to use when comparing URIs to the `match` patterns. Behaves as
10692
+ * {@link DomainSettingsRule.matchOptions} / {@link RuleMatchOptions}.
10693
+ */
10694
+ matchOptions?: RuleMatchOptions;
10695
+ };
10696
+
10633
10697
  /* Excluded from this release type: NotCloseRequested */
10634
10698
 
10635
10699
  declare type NotificationEvent = {
@@ -10938,6 +11002,8 @@ declare namespace OpenFin {
10938
11002
  ThemeColorsMap,
10939
11003
  ThemeColorId,
10940
11004
  ThemePalette,
11005
+ NonTabInjectionRule,
11006
+ ManifestExtension,
10941
11007
  Manifest,
10942
11008
  LayoutContent,
10943
11009
  LayoutItemConfig,
@@ -17907,7 +17973,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17907
17973
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17908
17974
  private authorize;
17909
17975
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17910
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17976
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17911
17977
  ferryAction(origData: any): Promise<Message<any>>;
17912
17978
  registerMessageHandler(handler: MessageHandler): void;
17913
17979
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
@@ -2163,6 +2163,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2163
2163
  */
2164
2164
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2165
2165
 
2166
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2167
+ declare interface CallSite {
2168
+ getFileName(): string | null;
2169
+ toString(): string;
2170
+ }
2171
+
2172
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2173
+ declare type CapturedStack = CallSite[] | string[];
2174
+
2166
2175
  /**
2167
2176
  * Configuration for page capture.
2168
2177
  *
@@ -7381,17 +7390,19 @@ declare type InteropActionLoggingOption = {
7381
7390
  * "interopBrokerConfiguration": {
7382
7391
  * "contextGroups": [
7383
7392
  * {
7384
- * "id": "green",
7393
+ * "id": "fdc3.channel.4",
7385
7394
  * "displayMetadata": {
7386
- * "color": "#00CC88",
7387
- * "name": "green"
7395
+ * "color": "green",
7396
+ * "name": "Channel 4",
7397
+ * "glyph": "4"
7388
7398
  * }
7389
7399
  * },
7390
7400
  * {
7391
- * "id": "purple",
7401
+ * "id": "fdc3.channel.8",
7392
7402
  * "displayMetadata": {
7393
- * "color": "#8C61FF",
7394
- * "name": "purple"
7403
+ * "color": "purple",
7404
+ * "name": "Channel 8",
7405
+ * "glyph": "8"
7395
7406
  * }
7396
7407
  * },
7397
7408
  * ]
@@ -7525,7 +7536,7 @@ declare class InteropBroker extends Base {
7525
7536
  * @param joinContextGroupOptions - Id of the Context Group and identity of the entity to join to the group.
7526
7537
  * @param senderIdentity - Identity of the client sender.
7527
7538
  */
7528
- joinContextGroup({ contextGroupId, target }: {
7539
+ joinContextGroup({ contextGroupId: requestedContextGroupId, target }: {
7529
7540
  contextGroupId: string;
7530
7541
  target?: OpenFin.ClientIdentity | OpenFin.Identity;
7531
7542
  }, senderIdentity: OpenFin.ClientIdentity): Promise<void>;
@@ -7536,7 +7547,7 @@ declare class InteropBroker extends Base {
7536
7547
  * @param addClientToContextGroupOptions - Contains the contextGroupId
7537
7548
  * @param clientIdentity - Identity of the client sender.
7538
7549
  */
7539
- addClientToContextGroup({ contextGroupId }: {
7550
+ addClientToContextGroup({ contextGroupId: requestedContextGroupId }: {
7540
7551
  contextGroupId: string;
7541
7552
  }, clientIdentity: OpenFin.ClientIdentity): Promise<void>;
7542
7553
  /**
@@ -7949,6 +7960,8 @@ declare class InteropBroker extends Base {
7949
7960
  };
7950
7961
  private getClientState;
7951
7962
  private static toObject;
7963
+ private normalizeContextGroupStates;
7964
+ private normalizeContextGroupId;
7952
7965
  static checkContextIntegrity: (context: OpenFin.Context) => {
7953
7966
  isValid: true;
7954
7967
  } | {
@@ -8176,7 +8189,7 @@ declare class InteropClient extends Base {
8176
8189
  *
8177
8190
  * getLastFocusedView()
8178
8191
  * .then(lastFocusedViewIdentity => {
8179
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
8192
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
8180
8193
  * })
8181
8194
  * ```
8182
8195
  */
@@ -8211,7 +8224,7 @@ declare class InteropClient extends Base {
8211
8224
  *
8212
8225
  * @example
8213
8226
  * ```js
8214
- * fin.me.interop.getAllClientsInContextGroup('red')
8227
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
8215
8228
  * .then(clientsInContextGroup => {
8216
8229
  * console.log(clientsInContextGroup)
8217
8230
  * })
@@ -8226,7 +8239,7 @@ declare class InteropClient extends Base {
8226
8239
  *
8227
8240
  * @example
8228
8241
  * ```js
8229
- * fin.me.interop.getInfoForContextGroup('red')
8242
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
8230
8243
  * .then(contextGroupInfo => {
8231
8244
  * console.log(contextGroupInfo.displayMetadata.name)
8232
8245
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -8283,12 +8296,12 @@ declare class InteropClient extends Base {
8283
8296
  *
8284
8297
  * @example
8285
8298
  * ```js
8286
- * await fin.me.interop.joinContextGroup('yellow');
8299
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8287
8300
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8288
8301
  * const currentContext = await fin.me.interop.getCurrentContext();
8289
8302
  *
8290
8303
  * // with a specific context
8291
- * await fin.me.interop.joinContextGroup('yellow');
8304
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8292
8305
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
8293
8306
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8294
8307
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -8450,7 +8463,7 @@ declare type InteropClientOnDisconnectionListener = (InteropBrokerDisconnectionE
8450
8463
  */
8451
8464
  declare type InteropConfig = {
8452
8465
  /**
8453
- * Context Group for the client. (green, yellow, red, etc.).
8466
+ * Context Group ID for the client (for example, `fdc3.channel.4`).
8454
8467
  */
8455
8468
  currentContextGroup?: string | null;
8456
8469
  /**
@@ -8499,7 +8512,7 @@ declare class InteropModule extends Base {
8499
8512
  * @example
8500
8513
  * ```js
8501
8514
  * const interopConfig = {
8502
- * currentContextGroup: 'green'
8515
+ * currentContextGroup: 'fdc3.channel.4'
8503
8516
  * }
8504
8517
  *
8505
8518
  * const interopBroker = await fin.Interop.init('openfin');
@@ -9787,6 +9800,10 @@ declare type Manifest = {
9787
9800
  experimentalExtensionPolicyBlockedHosts?: {
9788
9801
  hosts: string[];
9789
9802
  };
9803
+ /**
9804
+ * Chromium extensions to install and enable for this application.
9805
+ */
9806
+ extensions?: ManifestExtension[];
9790
9807
  licenseKey: string;
9791
9808
  offlineAccess?: boolean;
9792
9809
  platform?: PlatformOptions;
@@ -9840,6 +9857,27 @@ declare type ManifestChangedEvent = BaseEvents.IdentityEvent & {
9840
9857
  type: 'manifest-changed';
9841
9858
  };
9842
9859
 
9860
+ /**
9861
+ * Chromium extension entry in an application configuration.
9862
+ *
9863
+ * @interface
9864
+ */
9865
+ declare type ManifestExtension = {
9866
+ /** Chromium extension ID. */
9867
+ id: string;
9868
+ /** Extension server URL used to install the extension. */
9869
+ serverURL: string;
9870
+ /**
9871
+ * Rules declaring where this extension may inject content scripts into
9872
+ * non-tab surfaces (for example the AI Center). Omit or leave empty to keep
9873
+ * the extension restricted to browser tabs — identical to historic
9874
+ * behavior. A wildcard pattern in `match` grants blanket coverage.
9875
+ * `matchOptions` behaves as it does for domain settings. Intended for
9876
+ * security extensions rather than extensions that add visible UI.
9877
+ */
9878
+ nonTabInjections?: NonTabInjectionRule[];
9879
+ };
9880
+
9843
9881
  /**
9844
9882
  * @interface
9845
9883
  */
@@ -10630,6 +10668,32 @@ declare type NonPropagatedWebContentsEvent = never;
10630
10668
  */
10631
10669
  declare type NonPropagatedWindowEvent = never;
10632
10670
 
10671
+ /**
10672
+ * Rule permitting a Chromium extension to inject content scripts into non-tab
10673
+ * web content whose URL matches the given patterns.
10674
+ *
10675
+ * Match patterns use the same Chromium
10676
+ * [match pattern](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10677
+ * syntax as {@link DomainSettingsRule}. Omitting `matchOptions` uses the same
10678
+ * default scheme-matching behavior as domain settings.
10679
+ *
10680
+ * @interface
10681
+ */
10682
+ declare type NonTabInjectionRule = {
10683
+ /**
10684
+ * Array of [match patterns](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10685
+ * specifying the content locations where the extension may inject outside
10686
+ * browser tabs. An empty array grants no permission. A wildcard grants
10687
+ * blanket coverage of all content locations.
10688
+ */
10689
+ match: string[];
10690
+ /**
10691
+ * Options to use when comparing URIs to the `match` patterns. Behaves as
10692
+ * {@link DomainSettingsRule.matchOptions} / {@link RuleMatchOptions}.
10693
+ */
10694
+ matchOptions?: RuleMatchOptions;
10695
+ };
10696
+
10633
10697
  /* Excluded from this release type: NotCloseRequested */
10634
10698
 
10635
10699
  declare type NotificationEvent = {
@@ -10938,6 +11002,8 @@ declare namespace OpenFin {
10938
11002
  ThemeColorsMap,
10939
11003
  ThemeColorId,
10940
11004
  ThemePalette,
11005
+ NonTabInjectionRule,
11006
+ ManifestExtension,
10941
11007
  Manifest,
10942
11008
  LayoutContent,
10943
11009
  LayoutItemConfig,
@@ -17907,7 +17973,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17907
17973
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17908
17974
  private authorize;
17909
17975
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17910
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17976
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17911
17977
  ferryAction(origData: any): Promise<Message<any>>;
17912
17978
  registerMessageHandler(handler: MessageHandler): void;
17913
17979
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
@@ -2163,6 +2163,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2163
2163
  */
2164
2164
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2165
2165
 
2166
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2167
+ declare interface CallSite {
2168
+ getFileName(): string | null;
2169
+ toString(): string;
2170
+ }
2171
+
2172
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2173
+ declare type CapturedStack = CallSite[] | string[];
2174
+
2166
2175
  /**
2167
2176
  * Configuration for page capture.
2168
2177
  *
@@ -7381,17 +7390,19 @@ declare type InteropActionLoggingOption = {
7381
7390
  * "interopBrokerConfiguration": {
7382
7391
  * "contextGroups": [
7383
7392
  * {
7384
- * "id": "green",
7393
+ * "id": "fdc3.channel.4",
7385
7394
  * "displayMetadata": {
7386
- * "color": "#00CC88",
7387
- * "name": "green"
7395
+ * "color": "green",
7396
+ * "name": "Channel 4",
7397
+ * "glyph": "4"
7388
7398
  * }
7389
7399
  * },
7390
7400
  * {
7391
- * "id": "purple",
7401
+ * "id": "fdc3.channel.8",
7392
7402
  * "displayMetadata": {
7393
- * "color": "#8C61FF",
7394
- * "name": "purple"
7403
+ * "color": "purple",
7404
+ * "name": "Channel 8",
7405
+ * "glyph": "8"
7395
7406
  * }
7396
7407
  * },
7397
7408
  * ]
@@ -7525,7 +7536,7 @@ declare class InteropBroker extends Base {
7525
7536
  * @param joinContextGroupOptions - Id of the Context Group and identity of the entity to join to the group.
7526
7537
  * @param senderIdentity - Identity of the client sender.
7527
7538
  */
7528
- joinContextGroup({ contextGroupId, target }: {
7539
+ joinContextGroup({ contextGroupId: requestedContextGroupId, target }: {
7529
7540
  contextGroupId: string;
7530
7541
  target?: OpenFin.ClientIdentity | OpenFin.Identity;
7531
7542
  }, senderIdentity: OpenFin.ClientIdentity): Promise<void>;
@@ -7536,7 +7547,7 @@ declare class InteropBroker extends Base {
7536
7547
  * @param addClientToContextGroupOptions - Contains the contextGroupId
7537
7548
  * @param clientIdentity - Identity of the client sender.
7538
7549
  */
7539
- addClientToContextGroup({ contextGroupId }: {
7550
+ addClientToContextGroup({ contextGroupId: requestedContextGroupId }: {
7540
7551
  contextGroupId: string;
7541
7552
  }, clientIdentity: OpenFin.ClientIdentity): Promise<void>;
7542
7553
  /**
@@ -7949,6 +7960,8 @@ declare class InteropBroker extends Base {
7949
7960
  };
7950
7961
  private getClientState;
7951
7962
  private static toObject;
7963
+ private normalizeContextGroupStates;
7964
+ private normalizeContextGroupId;
7952
7965
  static checkContextIntegrity: (context: OpenFin.Context) => {
7953
7966
  isValid: true;
7954
7967
  } | {
@@ -8176,7 +8189,7 @@ declare class InteropClient extends Base {
8176
8189
  *
8177
8190
  * getLastFocusedView()
8178
8191
  * .then(lastFocusedViewIdentity => {
8179
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
8192
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
8180
8193
  * })
8181
8194
  * ```
8182
8195
  */
@@ -8211,7 +8224,7 @@ declare class InteropClient extends Base {
8211
8224
  *
8212
8225
  * @example
8213
8226
  * ```js
8214
- * fin.me.interop.getAllClientsInContextGroup('red')
8227
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
8215
8228
  * .then(clientsInContextGroup => {
8216
8229
  * console.log(clientsInContextGroup)
8217
8230
  * })
@@ -8226,7 +8239,7 @@ declare class InteropClient extends Base {
8226
8239
  *
8227
8240
  * @example
8228
8241
  * ```js
8229
- * fin.me.interop.getInfoForContextGroup('red')
8242
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
8230
8243
  * .then(contextGroupInfo => {
8231
8244
  * console.log(contextGroupInfo.displayMetadata.name)
8232
8245
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -8283,12 +8296,12 @@ declare class InteropClient extends Base {
8283
8296
  *
8284
8297
  * @example
8285
8298
  * ```js
8286
- * await fin.me.interop.joinContextGroup('yellow');
8299
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8287
8300
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8288
8301
  * const currentContext = await fin.me.interop.getCurrentContext();
8289
8302
  *
8290
8303
  * // with a specific context
8291
- * await fin.me.interop.joinContextGroup('yellow');
8304
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8292
8305
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
8293
8306
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8294
8307
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -8450,7 +8463,7 @@ declare type InteropClientOnDisconnectionListener = (InteropBrokerDisconnectionE
8450
8463
  */
8451
8464
  declare type InteropConfig = {
8452
8465
  /**
8453
- * Context Group for the client. (green, yellow, red, etc.).
8466
+ * Context Group ID for the client (for example, `fdc3.channel.4`).
8454
8467
  */
8455
8468
  currentContextGroup?: string | null;
8456
8469
  /**
@@ -8499,7 +8512,7 @@ declare class InteropModule extends Base {
8499
8512
  * @example
8500
8513
  * ```js
8501
8514
  * const interopConfig = {
8502
- * currentContextGroup: 'green'
8515
+ * currentContextGroup: 'fdc3.channel.4'
8503
8516
  * }
8504
8517
  *
8505
8518
  * const interopBroker = await fin.Interop.init('openfin');
@@ -9787,6 +9800,10 @@ declare type Manifest = {
9787
9800
  experimentalExtensionPolicyBlockedHosts?: {
9788
9801
  hosts: string[];
9789
9802
  };
9803
+ /**
9804
+ * Chromium extensions to install and enable for this application.
9805
+ */
9806
+ extensions?: ManifestExtension[];
9790
9807
  licenseKey: string;
9791
9808
  offlineAccess?: boolean;
9792
9809
  platform?: PlatformOptions;
@@ -9840,6 +9857,27 @@ declare type ManifestChangedEvent = BaseEvents.IdentityEvent & {
9840
9857
  type: 'manifest-changed';
9841
9858
  };
9842
9859
 
9860
+ /**
9861
+ * Chromium extension entry in an application configuration.
9862
+ *
9863
+ * @interface
9864
+ */
9865
+ declare type ManifestExtension = {
9866
+ /** Chromium extension ID. */
9867
+ id: string;
9868
+ /** Extension server URL used to install the extension. */
9869
+ serverURL: string;
9870
+ /**
9871
+ * Rules declaring where this extension may inject content scripts into
9872
+ * non-tab surfaces (for example the AI Center). Omit or leave empty to keep
9873
+ * the extension restricted to browser tabs — identical to historic
9874
+ * behavior. A wildcard pattern in `match` grants blanket coverage.
9875
+ * `matchOptions` behaves as it does for domain settings. Intended for
9876
+ * security extensions rather than extensions that add visible UI.
9877
+ */
9878
+ nonTabInjections?: NonTabInjectionRule[];
9879
+ };
9880
+
9843
9881
  /**
9844
9882
  * @interface
9845
9883
  */
@@ -10630,6 +10668,32 @@ declare type NonPropagatedWebContentsEvent = never;
10630
10668
  */
10631
10669
  declare type NonPropagatedWindowEvent = never;
10632
10670
 
10671
+ /**
10672
+ * Rule permitting a Chromium extension to inject content scripts into non-tab
10673
+ * web content whose URL matches the given patterns.
10674
+ *
10675
+ * Match patterns use the same Chromium
10676
+ * [match pattern](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10677
+ * syntax as {@link DomainSettingsRule}. Omitting `matchOptions` uses the same
10678
+ * default scheme-matching behavior as domain settings.
10679
+ *
10680
+ * @interface
10681
+ */
10682
+ declare type NonTabInjectionRule = {
10683
+ /**
10684
+ * Array of [match patterns](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
10685
+ * specifying the content locations where the extension may inject outside
10686
+ * browser tabs. An empty array grants no permission. A wildcard grants
10687
+ * blanket coverage of all content locations.
10688
+ */
10689
+ match: string[];
10690
+ /**
10691
+ * Options to use when comparing URIs to the `match` patterns. Behaves as
10692
+ * {@link DomainSettingsRule.matchOptions} / {@link RuleMatchOptions}.
10693
+ */
10694
+ matchOptions?: RuleMatchOptions;
10695
+ };
10696
+
10633
10697
  /* Excluded from this release type: NotCloseRequested */
10634
10698
 
10635
10699
  declare type NotificationEvent = {
@@ -10938,6 +11002,8 @@ declare namespace OpenFin {
10938
11002
  ThemeColorsMap,
10939
11003
  ThemeColorId,
10940
11004
  ThemePalette,
11005
+ NonTabInjectionRule,
11006
+ ManifestExtension,
10941
11007
  Manifest,
10942
11008
  LayoutContent,
10943
11009
  LayoutItemConfig,
@@ -17907,7 +17973,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
17907
17973
  connectByPort(config: ExistingConnectConfig): Promise<void>;
17908
17974
  private authorize;
17909
17975
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
17910
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
17976
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
17911
17977
  ferryAction(origData: any): Promise<Message<any>>;
17912
17978
  registerMessageHandler(handler: MessageHandler): void;
17913
17979
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
package/out/fdc3-api.d.ts CHANGED
@@ -2195,6 +2195,15 @@ declare type ByType_8<Type extends EventType_8> = Payload_10<Type>;
2195
2195
  */
2196
2196
  declare type ByType_9<Type extends EventType_9> = Payload_11<Type>;
2197
2197
 
2198
+ /** Minimal V8 CallSite shape — js-adapter does not include @types/node. */
2199
+ declare interface CallSite {
2200
+ getFileName(): string | null;
2201
+ toString(): string;
2202
+ }
2203
+
2204
+ /** V8 CallSite objects, or native stack-frame strings from browsers that ignore Error.prepareStackTrace. */
2205
+ declare type CapturedStack = CallSite[] | string[];
2206
+
2198
2207
  /**
2199
2208
  * Configuration for page capture.
2200
2209
  *
@@ -7562,17 +7571,19 @@ declare type InteropActionLoggingOption = {
7562
7571
  * "interopBrokerConfiguration": {
7563
7572
  * "contextGroups": [
7564
7573
  * {
7565
- * "id": "green",
7574
+ * "id": "fdc3.channel.4",
7566
7575
  * "displayMetadata": {
7567
- * "color": "#00CC88",
7568
- * "name": "green"
7576
+ * "color": "green",
7577
+ * "name": "Channel 4",
7578
+ * "glyph": "4"
7569
7579
  * }
7570
7580
  * },
7571
7581
  * {
7572
- * "id": "purple",
7582
+ * "id": "fdc3.channel.8",
7573
7583
  * "displayMetadata": {
7574
- * "color": "#8C61FF",
7575
- * "name": "purple"
7584
+ * "color": "purple",
7585
+ * "name": "Channel 8",
7586
+ * "glyph": "8"
7576
7587
  * }
7577
7588
  * },
7578
7589
  * ]
@@ -7709,7 +7720,7 @@ declare class InteropBroker extends Base {
7709
7720
  * @param joinContextGroupOptions - Id of the Context Group and identity of the entity to join to the group.
7710
7721
  * @param senderIdentity - Identity of the client sender.
7711
7722
  */
7712
- joinContextGroup({ contextGroupId, target }: {
7723
+ joinContextGroup({ contextGroupId: requestedContextGroupId, target }: {
7713
7724
  contextGroupId: string;
7714
7725
  target?: OpenFin.ClientIdentity | OpenFin.Identity;
7715
7726
  }, senderIdentity: OpenFin.ClientIdentity): Promise<void>;
@@ -7720,7 +7731,7 @@ declare class InteropBroker extends Base {
7720
7731
  * @param addClientToContextGroupOptions - Contains the contextGroupId
7721
7732
  * @param clientIdentity - Identity of the client sender.
7722
7733
  */
7723
- addClientToContextGroup({ contextGroupId }: {
7734
+ addClientToContextGroup({ contextGroupId: requestedContextGroupId }: {
7724
7735
  contextGroupId: string;
7725
7736
  }, clientIdentity: OpenFin.ClientIdentity): Promise<void>;
7726
7737
  /**
@@ -8133,6 +8144,8 @@ declare class InteropBroker extends Base {
8133
8144
  };
8134
8145
  private getClientState;
8135
8146
  private static toObject;
8147
+ private normalizeContextGroupStates;
8148
+ private normalizeContextGroupId;
8136
8149
  static checkContextIntegrity: (context: OpenFin.Context) => {
8137
8150
  isValid: true;
8138
8151
  } | {
@@ -8363,7 +8376,7 @@ declare class InteropClient extends Base {
8363
8376
  *
8364
8377
  * getLastFocusedView()
8365
8378
  * .then(lastFocusedViewIdentity => {
8366
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
8379
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
8367
8380
  * })
8368
8381
  * ```
8369
8382
  */
@@ -8398,7 +8411,7 @@ declare class InteropClient extends Base {
8398
8411
  *
8399
8412
  * @example
8400
8413
  * ```js
8401
- * fin.me.interop.getAllClientsInContextGroup('red')
8414
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
8402
8415
  * .then(clientsInContextGroup => {
8403
8416
  * console.log(clientsInContextGroup)
8404
8417
  * })
@@ -8413,7 +8426,7 @@ declare class InteropClient extends Base {
8413
8426
  *
8414
8427
  * @example
8415
8428
  * ```js
8416
- * fin.me.interop.getInfoForContextGroup('red')
8429
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
8417
8430
  * .then(contextGroupInfo => {
8418
8431
  * console.log(contextGroupInfo.displayMetadata.name)
8419
8432
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -8470,12 +8483,12 @@ declare class InteropClient extends Base {
8470
8483
  *
8471
8484
  * @example
8472
8485
  * ```js
8473
- * await fin.me.interop.joinContextGroup('yellow');
8486
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8474
8487
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8475
8488
  * const currentContext = await fin.me.interop.getCurrentContext();
8476
8489
  *
8477
8490
  * // with a specific context
8478
- * await fin.me.interop.joinContextGroup('yellow');
8491
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8479
8492
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
8480
8493
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8481
8494
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -8642,7 +8655,7 @@ declare type InteropClientOnDisconnectionListener = (InteropBrokerDisconnectionE
8642
8655
  */
8643
8656
  declare type InteropConfig = {
8644
8657
  /**
8645
- * Context Group for the client. (green, yellow, red, etc.).
8658
+ * Context Group ID for the client (for example, `fdc3.channel.4`).
8646
8659
  */
8647
8660
  currentContextGroup?: string | null;
8648
8661
  /**
@@ -8691,7 +8704,7 @@ declare class InteropModule extends Base {
8691
8704
  * @example
8692
8705
  * ```js
8693
8706
  * const interopConfig = {
8694
- * currentContextGroup: 'green'
8707
+ * currentContextGroup: 'fdc3.channel.4'
8695
8708
  * }
8696
8709
  *
8697
8710
  * const interopBroker = await fin.Interop.init('openfin');
@@ -10171,6 +10184,10 @@ declare type Manifest = {
10171
10184
  experimentalExtensionPolicyBlockedHosts?: {
10172
10185
  hosts: string[];
10173
10186
  };
10187
+ /**
10188
+ * Chromium extensions to install and enable for this application.
10189
+ */
10190
+ extensions?: ManifestExtension[];
10174
10191
  licenseKey: string;
10175
10192
  offlineAccess?: boolean;
10176
10193
  platform?: PlatformOptions;
@@ -10224,6 +10241,27 @@ declare type ManifestChangedEvent = BaseEvents.IdentityEvent & {
10224
10241
  type: 'manifest-changed';
10225
10242
  };
10226
10243
 
10244
+ /**
10245
+ * Chromium extension entry in an application configuration.
10246
+ *
10247
+ * @interface
10248
+ */
10249
+ declare type ManifestExtension = {
10250
+ /** Chromium extension ID. */
10251
+ id: string;
10252
+ /** Extension server URL used to install the extension. */
10253
+ serverURL: string;
10254
+ /**
10255
+ * Rules declaring where this extension may inject content scripts into
10256
+ * non-tab surfaces (for example the AI Center). Omit or leave empty to keep
10257
+ * the extension restricted to browser tabs — identical to historic
10258
+ * behavior. A wildcard pattern in `match` grants blanket coverage.
10259
+ * `matchOptions` behaves as it does for domain settings. Intended for
10260
+ * security extensions rather than extensions that add visible UI.
10261
+ */
10262
+ nonTabInjections?: NonTabInjectionRule[];
10263
+ };
10264
+
10227
10265
  /**
10228
10266
  * @interface
10229
10267
  */
@@ -11026,6 +11064,32 @@ declare type NonPropagatedWebContentsEvent = never;
11026
11064
  */
11027
11065
  declare type NonPropagatedWindowEvent = never;
11028
11066
 
11067
+ /**
11068
+ * Rule permitting a Chromium extension to inject content scripts into non-tab
11069
+ * web content whose URL matches the given patterns.
11070
+ *
11071
+ * Match patterns use the same Chromium
11072
+ * [match pattern](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
11073
+ * syntax as {@link DomainSettingsRule}. Omitting `matchOptions` uses the same
11074
+ * default scheme-matching behavior as domain settings.
11075
+ *
11076
+ * @interface
11077
+ */
11078
+ declare type NonTabInjectionRule = {
11079
+ /**
11080
+ * Array of [match patterns](https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns)
11081
+ * specifying the content locations where the extension may inject outside
11082
+ * browser tabs. An empty array grants no permission. A wildcard grants
11083
+ * blanket coverage of all content locations.
11084
+ */
11085
+ match: string[];
11086
+ /**
11087
+ * Options to use when comparing URIs to the `match` patterns. Behaves as
11088
+ * {@link DomainSettingsRule.matchOptions} / {@link RuleMatchOptions}.
11089
+ */
11090
+ matchOptions?: RuleMatchOptions;
11091
+ };
11092
+
11029
11093
  /**
11030
11094
  * @internal
11031
11095
  *
@@ -11347,6 +11411,8 @@ declare namespace OpenFin {
11347
11411
  ThemeColorsMap,
11348
11412
  ThemeColorId,
11349
11413
  ThemePalette,
11414
+ NonTabInjectionRule,
11415
+ ManifestExtension,
11350
11416
  Manifest,
11351
11417
  LayoutContent,
11352
11418
  LayoutItemConfig,
@@ -18412,7 +18478,7 @@ declare class Transport<MeType extends EntityType = EntityType> extends EventEmi
18412
18478
  connectByPort(config: ExistingConnectConfig): Promise<void>;
18413
18479
  private authorize;
18414
18480
  sendAction<T extends keyof ProtocolMap>(action: T, payload?: ProtocolMap[T]['request'], uncorrelated?: boolean): SentMessage<SendActionResponse<T>>;
18415
- protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: NodeJS.CallSite[]): void;
18481
+ protected nackHandler(payloadOrMessage: RuntimeErrorPayload | string, reject: Function, callSites?: CapturedStack): void;
18416
18482
  ferryAction(origData: any): Promise<Message<any>>;
18417
18483
  registerMessageHandler(handler: MessageHandler): void;
18418
18484
  protected addWireListener(id: number, resolve: Function, handleNack: NackHandler, uncorrelated: boolean): void;
package/out/fdc3-api.js CHANGED
@@ -900,7 +900,7 @@ class InteropClient extends Base {
900
900
  *
901
901
  * getLastFocusedView()
902
902
  * .then(lastFocusedViewIdentity => {
903
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
903
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
904
904
  * })
905
905
  * ```
906
906
  */
@@ -950,7 +950,7 @@ class InteropClient extends Base {
950
950
  *
951
951
  * @example
952
952
  * ```js
953
- * fin.me.interop.getAllClientsInContextGroup('red')
953
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
954
954
  * .then(clientsInContextGroup => {
955
955
  * console.log(clientsInContextGroup)
956
956
  * })
@@ -974,7 +974,7 @@ class InteropClient extends Base {
974
974
  *
975
975
  * @example
976
976
  * ```js
977
- * fin.me.interop.getInfoForContextGroup('red')
977
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
978
978
  * .then(contextGroupInfo => {
979
979
  * console.log(contextGroupInfo.displayMetadata.name)
980
980
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -1063,12 +1063,12 @@ class InteropClient extends Base {
1063
1063
  *
1064
1064
  * @example
1065
1065
  * ```js
1066
- * await fin.me.interop.joinContextGroup('yellow');
1066
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
1067
1067
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
1068
1068
  * const currentContext = await fin.me.interop.getCurrentContext();
1069
1069
  *
1070
1070
  * // with a specific context
1071
- * await fin.me.interop.joinContextGroup('yellow');
1071
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
1072
1072
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
1073
1073
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
1074
1074
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -1374,15 +1374,18 @@ class FDC3ModuleBase {
1374
1374
  async joinChannel(channelId) {
1375
1375
  this.wire.recordAnalytic('fdc3-join-channel');
1376
1376
  try {
1377
+ const contextGroup = await this.client.getInfoForContextGroup(channelId);
1378
+ if (!contextGroup) {
1379
+ console.error(`No User Channel was found with the ID "${channelId}". If this is an App Channel, use getOrCreateChannel instead.`);
1380
+ throw new Error(ChannelError.NoChannelFound);
1381
+ }
1377
1382
  return await this.client.joinContextGroup(channelId);
1378
1383
  }
1379
1384
  catch (error) {
1380
- if (error.message === BROKER_ERRORS.joinSessionContextGroupWithJoinContextGroup) {
1381
- console.error('The Channel you have tried to join is an App Channel. Custom Channels can only be defined by the Interop Broker through code or manifest configuration. Please use getOrCreateChannel.');
1382
- }
1383
- else {
1384
- console.error(error.message);
1385
+ if (error.message === ChannelError.NoChannelFound) {
1386
+ throw new Error(ChannelError.NoChannelFound);
1385
1387
  }
1388
+ console.error(error.message);
1386
1389
  if (error.message.startsWith('Attempting to join a context group that does not exist')) {
1387
1390
  throw new Error(ChannelError.NoChannelFound);
1388
1391
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/fdc3-api",
3
- "version": "46.100.64",
3
+ "version": "46.100.66",
4
4
  "description": "OpenFin fdc3 module utilities and types.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,