@openfin/workspace-platform 45.1.2 → 45.1.3-alpha.5060c47c

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.
Files changed (45) hide show
  1. package/284.js +2 -0
  2. package/284.js.map +1 -0
  3. package/client-api/src/internal/home/index.d.ts +1 -1
  4. package/client-api-platform/src/api/language.d.ts +3 -2
  5. package/client-api-platform/src/index.d.ts +2 -0
  6. package/client-api-platform/src/shapes.d.ts +77 -7
  7. package/common/src/api/home-search-host.d.ts +8 -0
  8. package/common/src/api/home-vpw-search-channel.d.ts +2 -0
  9. package/common/src/api/home-vpw-search-host.d.ts +4 -0
  10. package/common/src/api/i18next.d.ts +2 -2
  11. package/common/src/api/protocol/workspace.d.ts +1 -0
  12. package/common/src/api/workspace-events.d.ts +53 -0
  13. package/common/src/utils/navigate.d.ts +23 -0
  14. package/common/src/utils/route.d.ts +2 -0
  15. package/common/src/utils/usage-register.d.ts +5 -1
  16. package/common/src/utils/window.d.ts +3 -1
  17. package/externals.report.json +14 -14
  18. package/home-vpw/src/api/constants.d.ts +3 -0
  19. package/home-vpw/src/api/ensure-infrastructure.d.ts +6 -0
  20. package/home-vpw/src/api/index.d.ts +3 -0
  21. package/home-vpw/src/api/internal/channel-handlers.d.ts +23 -0
  22. package/home-vpw/src/api/internal/provider-registration.d.ts +8 -0
  23. package/home-vpw/src/api/internal/providers-map.d.ts +22 -0
  24. package/home-vpw/src/api/launch.d.ts +6 -0
  25. package/home-vpw/src/api/protocol.d.ts +25 -0
  26. package/home-vpw/src/api/provider.d.ts +19 -0
  27. package/home-vpw/src/api/register.d.ts +10 -0
  28. package/home-vpw/src/api/visibility.d.ts +3 -0
  29. package/index.js +1 -1
  30. package/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/storefront-vpw/src/api/constants.d.ts +2 -0
  33. package/storefront-vpw/src/api/ensure-infrastructure.d.ts +6 -0
  34. package/storefront-vpw/src/api/index.d.ts +5 -0
  35. package/storefront-vpw/src/api/internal/assert-provider-process.d.ts +2 -0
  36. package/storefront-vpw/src/api/internal/provider-registration.d.ts +7 -0
  37. package/storefront-vpw/src/api/internal/providers-map.d.ts +23 -0
  38. package/storefront-vpw/src/api/launch.d.ts +2 -0
  39. package/storefront-vpw/src/api/protocol.d.ts +29 -0
  40. package/storefront-vpw/src/api/provider.d.ts +23 -0
  41. package/storefront-vpw/src/api/register.d.ts +79 -0
  42. package/storefront-vpw/src/api/visibility.d.ts +43 -0
  43. package/storefront-vpw/src/shapes/index.d.ts +1 -0
  44. package/storefront-vpw/src/shapes/shapes.d.ts +4 -0
  45. package/workspace_platform.zip +0 -0
package/284.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_openfin_workspace_platform=globalThis.webpackChunk_openfin_workspace_platform||[]).push([[284],{284(e,i,s){s.d(i,{emit:()=>p});const t=(0,s(864).A)("api.events"),{addListener:a,removeListener:n,addListenerWithUUID:o,emit:p}=t}}]);
2
+ //# sourceMappingURL=284.js.map
package/284.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"284.js","mappings":"qKACA,MAAMA,GAAU,E,OAAA,GAAkB,eACrB,YAAEC,EAAW,eAAEC,EAAc,oBAAEC,EAAmB,KAAEC,GAASJ,C","sources":["webpack://@openfin/workspace-platform/../common/src/api/workspace-events.ts"],"names":["emitter","addListener","removeListener","addListenerWithUUID","emit"],"sourceRoot":""}
@@ -1,4 +1,4 @@
1
1
  import { ProvidersMap } from '../../../../client-api/src/internal/providers';
2
2
  import { CLIProvider, HomeProvider, RegisterMetaInfoInternal } from '../..';
3
- export declare const HomeProviders: ProvidersMap<CLIProvider | HomeProvider>;
3
+ export declare const HomeProviders: ProvidersMap<HomeProvider | CLIProvider>;
4
4
  export declare const registerHomeProviderInternal: (provider: HomeProvider | CLIProvider) => Promise<RegisterMetaInfoInternal>;
@@ -3,11 +3,12 @@ export declare function getLanguage(): Locale;
3
3
  export declare const dispatchLanguageToBrowserWindows: (language: Locale) => Promise<void[]>;
4
4
  export declare const setLanguage: (locale: Locale) => Promise<void>;
5
5
  export declare function getLanguageResourcesInternal(): {
6
- currentLanguage: "en-US" | "ja-JP" | "zh-CN" | "ko-KR" | "ru-RU" | "de-DE" | "zh-Hant";
6
+ currentLanguage: string;
7
7
  resources: import("i18next").Resource;
8
8
  };
9
9
  /**
10
10
  * initLanguage()
11
- * @param language - optional - ISO language code
11
+ * @param language - optional - ISO language code. Built-in languages are always accepted.
12
+ * Any language code defined in the external `translation-override.json` is also accepted.
12
13
  */
13
14
  export default function initLanguage(language?: Locale): Promise<void>;
@@ -1,4 +1,6 @@
1
1
  export * from './shapes';
2
2
  export * as Dock from '../../dock3/src/api';
3
+ export * as HomeVpw from '../../home-vpw/src/api';
4
+ export * as StorefrontVpw from '../../storefront-vpw/src/api';
3
5
  export { init } from './init';
4
6
  export { getCurrentSync, wrapSync } from './api';
@@ -1,5 +1,5 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import type { IconProps, IconType, Languages } from '@openfin/ui-library';
2
+ import type { IconProps, IconType } from '@openfin/ui-library';
3
3
  import type { WorkspaceIndicatorConfig } from '../../common/src/utils/indicators/workspace-indicators';
4
4
  import type { AnalyticsEvent } from '../../common/src/utils/usage-register';
5
5
  import type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
@@ -9,6 +9,7 @@ import type { CustomThemes, GeneratedPalettes } from '../../common/src/api/themi
9
9
  import type { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
10
10
  import type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
11
11
  export * from '../../dock3/src/shapes';
12
+ export * from '../../storefront-vpw/src/shapes';
12
13
  export { AppManifestType } from '../../client-api/src/shapes';
13
14
  export type { App, AppIntent, Image } from '../../client-api/src/shapes';
14
15
  export type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
@@ -1699,9 +1700,9 @@ export interface WorkspacePlatformModule extends OpenFin.Platform {
1699
1700
  */
1700
1701
  restoreLastSavedWorkspace(options?: ApplyWorkspaceOptions): Promise<RestoreLastSavedWorkspaceResult>;
1701
1702
  /**
1702
- * Returns ISO language code of current set language
1703
+ * Returns the ISO language code of the currently active language.
1703
1704
  *
1704
- * @returns One of the seven ISO language codes Browser supports
1705
+ * @returns The active language code (e.g. `'en-US'`, `'es-ES'`).
1705
1706
  *
1706
1707
  * @example Example of how to get the current language on Browser
1707
1708
  *
@@ -2072,8 +2073,73 @@ export interface AnalyticsConfig {
2072
2073
  */
2073
2074
  sendToOpenFin: boolean;
2074
2075
  }
2076
+ /**
2077
+ * The built-in language codes supported by the Workspace Platform out of the box.
2078
+ *
2079
+ * @deprecated No longer used for language validation. The platform now accepts any language
2080
+ * code that has a resource bundle registered in i18next, including codes defined in an
2081
+ * external `translation-override.json`. This export will be removed in a future major version.
2082
+ */
2075
2083
  export declare const SUPPORTED_LANGUAGES: string[];
2076
- export type Locale = Languages;
2084
+ /**
2085
+ * An ISO language code accepted by the Workspace Platform.
2086
+ *
2087
+ * **Built-in languages** (supported out of the box):
2088
+ * - `en-US` — English (default)
2089
+ * - `de-DE` — German
2090
+ * - `ja-JP` — Japanese
2091
+ * - `ko-KR` — Korean
2092
+ * - `ru-RU` — Russian
2093
+ * - `zh-CN` — Chinese (Simplified)
2094
+ * - `zh-Hant` — Chinese (Traditional)
2095
+ *
2096
+ * **Adding custom languages** via `translationOverridesUrl`:
2097
+ *
2098
+ * Supply a `translationOverridesUrl` in your Desktop Owner Settings (DOS) or application manifest
2099
+ * pointing to a `translation-override.json` file. Any language code defined in that file will be
2100
+ * accepted at runtime in addition to the built-in list above.
2101
+ *
2102
+ * Example `translation-override.json`:
2103
+ * ```json
2104
+ * {
2105
+ * "x.x.x": {
2106
+ * "es-ES": {
2107
+ * "global.save": "Guardar",
2108
+ * "contextMenu.newWindow": "Nueva ventana"
2109
+ * }
2110
+ * }
2111
+ * }
2112
+ * ```
2113
+ *
2114
+ * The `translationOverridesUrl` can be configured in two ways:
2115
+ *
2116
+ * _Via Desktop Owner Settings_ (`dos.json` on macOS, registry on Windows):
2117
+ * ```json
2118
+ * {
2119
+ * "desktopSettings": {
2120
+ * "systemApps": {
2121
+ * "workspace": {
2122
+ * "customConfig": {
2123
+ * "translationOverridesUrl": "https://example.com/translation-override.json"
2124
+ * }
2125
+ * }
2126
+ * }
2127
+ * }
2128
+ * }
2129
+ * ```
2130
+ *
2131
+ * _Via the application manifest_ (under `platform.workspace`):
2132
+ * ```json
2133
+ * {
2134
+ * "platform": {
2135
+ * "workspace": {
2136
+ * "translationOverridesUrl": "https://example.com/translation-override.json"
2137
+ * }
2138
+ * }
2139
+ * }
2140
+ * ```
2141
+ */
2142
+ export type Locale = string;
2077
2143
  /**
2078
2144
  * Configures the workspace to self-host using an asar bundle at the
2079
2145
  * specified path.
@@ -2161,8 +2227,12 @@ export interface WorkspacePlatformInitConfig {
2161
2227
  */
2162
2228
  theme?: CustomThemes;
2163
2229
  /**
2164
- * Set a language on Browser by providing one of the seven languages that Workspace supports
2165
- * Must specify one of the ISO language codes 'en-US', 'ja-JP', 'zh-CN', 'ko-KR', 'ru-RU', 'de-DE' or 'zh-Hant'
2230
+ * Set the initial language for the Browser.
2231
+ *
2232
+ * The built-in ISO language codes are `'en-US'`, `'ja-JP'`, `'zh-CN'`, `'ko-KR'`,
2233
+ * `'ru-RU'`, `'de-DE'`, and `'zh-Hant'`. Any additional language code defined in an
2234
+ * external `translation-override.json` (configured via `translationOverridesUrl`) is
2235
+ * also accepted.
2166
2236
  *
2167
2237
  * @example
2168
2238
  * ```ts
@@ -2175,7 +2245,7 @@ export interface WorkspacePlatformInitConfig {
2175
2245
  * }
2176
2246
  * });
2177
2247
  * ```
2178
- * @default 'en-EN'
2248
+ * @default 'en-US'
2179
2249
  *
2180
2250
  */
2181
2251
  language?: {
@@ -0,0 +1,8 @@
1
+ import type { SearchProviderInfo, SearchTopic } from '../../../search-api/src/shapes';
2
+ export type HomeSearchHostCallbacks = {
3
+ onRegister?: (searchProvider?: SearchProviderInfo) => void | Promise<void>;
4
+ onDeregister?: (searchProvider?: SearchProviderInfo) => void | Promise<void>;
5
+ onDisconnect?: () => void | Promise<void>;
6
+ };
7
+ export declare const registerHomeSearchHost: (callbacks?: HomeSearchHostCallbacks) => Promise<SearchTopic | null>;
8
+ export declare const createVpwHomeSearchHostCallbacks: () => HomeSearchHostCallbacks;
@@ -0,0 +1,2 @@
1
+ /** Search topic channel for Home VPW — scoped per platform. */
2
+ export declare const getHomeVpwSearchChannelName: () => string;
@@ -0,0 +1,4 @@
1
+ import type { SearchProviderInfo, SearchTopic } from '../../../search-api/src/shapes';
2
+ import type { HomeSearchHostCallbacks } from './home-search-host';
3
+ export declare const registerHomeVpwSearchHost: (callbacks?: HomeSearchHostCallbacks) => Promise<SearchTopic | null>;
4
+ export type { SearchProviderInfo };
@@ -1,7 +1,7 @@
1
1
  import i18next, { type Resource } from 'i18next';
2
2
  import { Locale } from '../../../client-api-platform/src/shapes';
3
- declare function initI18next(language?: Locale): void;
4
- export declare const setLanguageInI18next: (locale: Locale) => void;
3
+ declare function initI18next(language?: Locale): Promise<void>;
4
+ export declare const setLanguageInI18next: (locale: Locale) => Promise<void>;
5
5
  declare const t: import("i18next").TFunction<["translation", ...string[]], undefined>;
6
6
  export { initI18next, i18next, t, type Resource };
7
7
  export { useTranslation } from 'react-i18next';
@@ -7,6 +7,7 @@ export declare const channelName: "__of_workspace_protocol__";
7
7
  export declare const getChannelClient: () => Promise<WorkspaceComponentChannelClient>;
8
8
  export declare const getClientAPIChannelClient: () => Promise<WorkspaceAPIClientChannelClient>;
9
9
  export declare const getSearchClientAPIChannelClient: () => Promise<withDisconnectListener<SearchAPIClientChannelClient>>;
10
+ export declare const getHomeVpwSearchClientAPIChannelClient: () => Promise<withDisconnectListener<SearchAPIClientChannelClient>>;
10
11
  /**
11
12
  * Launches the Workspace Provider.
12
13
  * If the Workspace Provider is already running, does nothing.
@@ -0,0 +1,53 @@
1
+ import { NavigatePayload } from '../../../common/src/utils/navigate';
2
+ import { ProviderConnectionPayload, ProviderDisconnectionPayload, ProviderUpdatePayload } from './provider';
3
+ /**
4
+ * All Workspace related events that can be emitted or listened to
5
+ * by the Workspace Provider or any of the workspace components
6
+ */
7
+ type EventTypeTypes = {
8
+ /**
9
+ * Emitted when a search is invoked.
10
+ */
11
+ 'search-invoked': [string];
12
+ /**
13
+ * Emitted when a new provider is connected.
14
+ *
15
+ * For example, when a Dock Provider is successfully registered by the platform provider
16
+ */
17
+ 'provider-connected': [ProviderConnectionPayload];
18
+ /**
19
+ * Emitted when a provider is disconnected.
20
+ *
21
+ * For example, when a Dock Provider is deregistered by the platform provider
22
+ */
23
+ 'provider-disconnected': [ProviderDisconnectionPayload];
24
+ /**
25
+ * Emitted when a provider is updated.
26
+ *
27
+ * For example, when a Dock Provider is updated by the platform provider
28
+ */
29
+ 'provider-updated': [ProviderUpdatePayload];
30
+ /**
31
+ * Emmitted when notifications is created or destroyed.
32
+ */
33
+ 'update-notification-running-status': [];
34
+ /**
35
+ * Emitted when the list of search providers has been updated.
36
+ */
37
+ 'search-provider-list-updated': [];
38
+ /**
39
+ * Emitted when the list of Storefront VPW providers has been updated.
40
+ */
41
+ 'storefront-provider-list-updated': [];
42
+ /**
43
+ * Emmitted when a component is created or destroyed.
44
+ */
45
+ 'component-lifecycle-update': [];
46
+ /**
47
+ * Emitted when component should be navigated to.
48
+ * Contains the target provider ID and the component name.
49
+ */
50
+ 'component-navigation': [NavigatePayload];
51
+ };
52
+ export declare const addListener: <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, removeListener: <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, addListenerWithUUID: (uuid: string) => <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, emit: <EventKey extends keyof EventTypeTypes>(event: EventKey, ...payload: EventTypeTypes[EventKey]) => Promise<void>;
53
+ export {};
@@ -0,0 +1,23 @@
1
+ import type OpenFin from '@openfin/core';
2
+ import { ComponentName } from '../../../common/src/utils/usage-register';
3
+ /**
4
+ * Constants for navigation source identifiers
5
+ */
6
+ export declare const NavigationSource: {
7
+ readonly DOCK_SEARCH_BUTTON: "dock-search-button";
8
+ readonly DOCK_STORE_BUTTON: "dock-store-button";
9
+ readonly HOME_ESC: "home-esc";
10
+ readonly HOME_COMMAND: "home-command";
11
+ };
12
+ export type NavigationSourceType = (typeof NavigationSource)[keyof typeof NavigationSource];
13
+ export interface NavigatePayload {
14
+ componentName: ComponentName;
15
+ platformIdentity: OpenFin.Identity;
16
+ providerId?: string;
17
+ source?: NavigationSourceType | null;
18
+ }
19
+ export interface NavigateToOptions {
20
+ providerId?: string;
21
+ source?: NavigationSourceType | null;
22
+ }
23
+ export declare const navigateTo: (componentName: ComponentName, platformIdentity: OpenFin.Identity, options?: NavigateToOptions) => Promise<void>;
@@ -16,6 +16,7 @@ declare enum WorkspaceRoute {
16
16
  }
17
17
  declare enum BrowserRoute {
18
18
  Browser = "/browser/",
19
+ BrowserHome = "/home/",
19
20
  BrowserPopupMenu = "/popup-menu/",
20
21
  BrowserPopupMenuSaveModal = "/popup-menu/save-modal/",
21
22
  BrowserPopupMenuLayouts = "/popup-menu/layouts/layouts/",
@@ -40,6 +41,7 @@ declare enum BrowserRoute {
40
41
  }
41
42
  declare const PageRoute: {
42
43
  Browser: BrowserRoute.Browser;
44
+ BrowserHome: BrowserRoute.BrowserHome;
43
45
  BrowserPopupMenu: BrowserRoute.BrowserPopupMenu;
44
46
  BrowserPopupMenuSaveModal: BrowserRoute.BrowserPopupMenuSaveModal;
45
47
  BrowserPopupMenuLayouts: BrowserRoute.BrowserPopupMenuLayouts;
@@ -11,6 +11,7 @@ export declare enum ComponentName {
11
11
  Dock = "Dock",
12
12
  EnterpriseDock = "EnterpriseDock",
13
13
  Home = "Home",
14
+ HomeVpw = "HomeVpw",
14
15
  Notification = "Notification",
15
16
  Storefront = "Storefront",
16
17
  Platform = "Platform",
@@ -21,11 +22,13 @@ export declare enum ComponentName {
21
22
  AllowDuplicatePageTitles = "AllowDuplicatePageTitles",
22
23
  PagePinning = "PagePinning",
23
24
  ViewTabNewTabShortcut = "ViewTabNewTabShortcut",
24
- SupertabHideShowTabs = "PRODM-318: Supertab Hide/Show Tab Headers"
25
+ SupertabHideShowTabs = "PRODM-318: Supertab Hide/Show Tab Headers",
26
+ StorefrontVpw = "PRODM-171: VPW Storefront"
25
27
  }
26
28
  export declare const registerBrowserUsage: (status: RegisterUsageStatus) => void;
27
29
  export declare const registerHomeUsage: (status: RegisterUsageStatus) => void;
28
30
  export declare const registerStorefrontUsage: (status: RegisterUsageStatus) => void;
31
+ export declare const registerHomeVpwUsage: (status: RegisterUsageStatus) => void;
29
32
  export declare const registerDockUsage: (status: RegisterUsageStatus) => void;
30
33
  export declare const registerNotificationUsage: (status: RegisterUsageStatus) => void;
31
34
  export declare const registerPlatformUsage: (status: RegisterUsageStatus) => void;
@@ -37,6 +40,7 @@ export declare const registerAllowDuplicatePageTitlesUsage: (status: RegisterUsa
37
40
  export declare const registerPagePinningUsage: (status: RegisterUsageStatus) => void;
38
41
  export declare const registerViewTabNewTabShortcutUsage: (status: RegisterUsageStatus) => void;
39
42
  export declare const registerSupertabHideShowTabsUsage: () => void;
43
+ export declare const registerStorefrontVpwUsage: (status: RegisterUsageStatus) => void;
40
44
  export type AnalyticsSource = 'Browser' | 'Dock' | 'Home' | 'Notification' | 'Store' | 'Platform' | 'Theming' | 'Interop';
41
45
  /**
42
46
  * Event for analytics
@@ -26,7 +26,9 @@ export declare enum WindowName {
26
26
  ApplyAndPublishModal = "here-apply-and-publish-modal",
27
27
  PublishOnCloseModal = "here-publish-on-close-modal",
28
28
  DesktopSignalsModal = "here-desktop-signals-modal",
29
- IntentsResolverModal = "here-intents-resolver-modal"
29
+ IntentsResolverModal = "here-intents-resolver-modal",
30
+ /** Browser-zone Home VPW window (platform child window). */
31
+ HomeVpw = "home-vpw"
30
32
  }
31
33
  export interface WindowIdentity {
32
34
  uuid: ApplicationUUID | string;
@@ -21,14 +21,6 @@
21
21
  "issuer": "common/src/utils/color-linking.ts"
22
22
  }
23
23
  ],
24
- "lodash.clonedeep": [
25
- {
26
- "type": "explicit",
27
- "version": "4.5.0",
28
- "packageName": "common/package.json",
29
- "issuer": "common/src/utils/layout.ts"
30
- }
31
- ],
32
24
  "react-i18next": [
33
25
  {
34
26
  "type": "explicit",
@@ -45,7 +37,21 @@
45
37
  "issuer": "common/src/api/i18next.ts"
46
38
  }
47
39
  ],
40
+ "lodash.clonedeep": [
41
+ {
42
+ "type": "explicit",
43
+ "version": "4.5.0",
44
+ "packageName": "common/package.json",
45
+ "issuer": "common/src/utils/layout.ts"
46
+ }
47
+ ],
48
48
  "dexie": [
49
+ {
50
+ "type": "explicit",
51
+ "version": "^4.0.11",
52
+ "packageName": "common/package.json",
53
+ "issuer": "common/src/api/pages/idb.ts"
54
+ },
49
55
  {
50
56
  "type": "root-implicit",
51
57
  "version": "^4.0.11",
@@ -58,12 +64,6 @@
58
64
  "packageName": "client-api-platform/package.json",
59
65
  "issuer": "client-api-platform/src/api/dock/idb.ts"
60
66
  },
61
- {
62
- "type": "explicit",
63
- "version": "^4.0.11",
64
- "packageName": "common/package.json",
65
- "issuer": "common/src/api/pages/idb.ts"
66
- },
67
67
  {
68
68
  "type": "explicit",
69
69
  "version": "^4.0.11",
@@ -0,0 +1,3 @@
1
+ import { WindowName } from '../../../common/src/utils/window';
2
+ export declare const HOME_VPW_WINDOW_NAME = WindowName.HomeVpw;
3
+ export declare const getHomeVpwChannelName: (uuid?: string) => string;
@@ -0,0 +1,6 @@
1
+ import type { CLIProvider, HomeProvider } from '../../../client-api/src/shapes';
2
+ import { HomeVpwProvider } from './provider';
3
+ /** Creates the platform channel and {@link HomeVpwProvider} instance if not already running. */
4
+ export declare const ensureHomeVpwChannel: () => Promise<HomeVpwProvider>;
5
+ /** Launches the browser-zone Home VPW window and waits for the client `ready` handshake. */
6
+ export declare const launchHomeVpwWindow: (provider: Pick<HomeProvider | CLIProvider, "id" | "title" | "icon" | "subHeader">) => Promise<void>;
@@ -0,0 +1,3 @@
1
+ export { deregister, hide, register, show } from './register';
2
+ export type { CLIProvider, HomeProvider, HomeRegistration, SetSearchQueryOptions } from './register';
3
+ export { getHomeVpwChannelName, HOME_VPW_WINDOW_NAME } from './constants';
@@ -0,0 +1,23 @@
1
+ import type OpenFin from '@openfin/core';
2
+ import { withDisconnectListener } from '../../../../common/src/utils/channels';
3
+ import { SearchAPIClientChannelClient } from '../../../../common/src/api/protocol/shapes/search';
4
+ import type { HomeClientApiDataRequest, HomeClientApiDispatchRequest, HomeClientApiSearchCloseRequest, HomeInternalDataResponse, HomeInternalErrorResponse, InternalSearchListenerRequest } from '../../../../common/src/api/shapes/home';
5
+ import { HomeVpwProvidersMap } from './providers-map';
6
+ import type { CLIProvider, HomeProvider } from '../../../../client-api/src/shapes';
7
+ export type HomeVpwChannelHandlersContext = {
8
+ providers: HomeVpwProvidersMap<HomeProvider | CLIProvider>;
9
+ searchRequests: Map<string, InternalSearchListenerRequest>;
10
+ getSearchClientAPIChannelClient: () => Promise<withDisconnectListener<SearchAPIClientChannelClient>>;
11
+ };
12
+ export type HomeVpwChannelHandlers = {
13
+ handleDataRequest: (req: HomeClientApiDataRequest) => Promise<HomeInternalDataResponse | HomeInternalErrorResponse>;
14
+ handleResultDispatch: (req: HomeClientApiDispatchRequest, identity: OpenFin.Identity) => Promise<void>;
15
+ handleSearchRequestClose: (req: HomeClientApiSearchCloseRequest) => void;
16
+ handleChannelDisconnection: () => Promise<void>;
17
+ };
18
+ export declare const createHomeVpwChannelHandlers: (ctx: HomeVpwChannelHandlersContext) => HomeVpwChannelHandlers;
19
+ type HomeVpwSearchChannelClient = withDisconnectListener<SearchAPIClientChannelClient> & {
20
+ homeVpwChannelActionsRegistered?: boolean;
21
+ };
22
+ export declare const registerHomeVpwChannelClientActions: (channel: HomeVpwSearchChannelClient, handlers: HomeVpwChannelHandlers) => void;
23
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { CLIProvider, HomeProvider, RegisterMetaInfoInternal } from '../../../../client-api/src/shapes';
2
+ import { HomeVpwProvidersMap } from './providers-map';
3
+ /** VPW search providers — separate from legacy Home provider registration in client-api. */
4
+ export declare const HomeVpwProviders: HomeVpwProvidersMap<HomeProvider | CLIProvider>;
5
+ export declare const registerHomeVpwProviderInternal: (provider: HomeProvider | CLIProvider) => Promise<RegisterMetaInfoInternal>;
6
+ export declare const registerHomeVpwBuiltinProviderInternal: (provider: HomeProvider | CLIProvider) => Promise<RegisterMetaInfoInternal | void>;
7
+ export declare const deregisterHomeVpwProviderInternal: (providerId: string) => Promise<void>;
8
+ export declare const hasRegisteredHomeVpwIntegrator: () => boolean;
@@ -0,0 +1,22 @@
1
+ import { PlatformError } from '../../../../common/src/errors';
2
+ type HomeVpwProviderRecord = {
3
+ id: string;
4
+ };
5
+ export declare class HomeVpwProviderAlreadyRegisteredError extends PlatformError {
6
+ constructor(id: string);
7
+ }
8
+ /**
9
+ * In-process registry for Home VPW search provider callbacks.
10
+ * VPW-only — not shared with legacy Home provider registration in client-api.
11
+ */
12
+ export declare class HomeVpwProvidersMap<T extends HomeVpwProviderRecord> {
13
+ private readonly providersMap;
14
+ getProvider(id: string): T | undefined;
15
+ hasProvider(id: string): boolean;
16
+ assertNotAlreadyRegistered(id: string): void;
17
+ hasProviderMatching(predicate: (id: string) => boolean): boolean;
18
+ addProvider(provider: T): void;
19
+ deleteProvider(id: string): void;
20
+ getProviderOrFail(id: string): T;
21
+ }
22
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { CLIProvider, HomeProvider } from '../../../client-api/src/shapes';
2
+ /**
3
+ * Create the Home VPW window from the Workspace Platform (e.g. Studio).
4
+ * Uses fin.Window.create so creation runs in the platform process — same pattern as Dock3.
5
+ */
6
+ export declare const launchHomeVpw: (provider: Pick<HomeProvider | CLIProvider, "subHeader">) => Promise<void>;
@@ -0,0 +1,25 @@
1
+ import type { OpenFin } from '@openfin/core';
2
+ type ChannelActionMap = {
3
+ [action: string]: (...args: any[]) => any;
4
+ };
5
+ type TypedChannelClient<ProviderActions extends ChannelActionMap, ClientActions extends ChannelActionMap> = Omit<OpenFin.ChannelClient, 'dispatch' | 'register'> & {
6
+ dispatch: <T extends keyof ProviderActions>(action: T, payload: Parameters<ProviderActions[T]>[0]) => Promise<Awaited<ReturnType<ProviderActions[T]>>>;
7
+ register: <T extends keyof ClientActions>(action: T, handler: (payload: Parameters<ClientActions[T]>[0], id: OpenFin.ProviderIdentity | OpenFin.ClientIdentity) => Promise<Awaited<ReturnType<ClientActions[T]>>>) => boolean;
8
+ };
9
+ type TypedChannelProvider<ProviderActions extends ChannelActionMap, ClientActions extends ChannelActionMap> = Omit<OpenFin.ChannelProvider, 'dispatch' | 'register'> & {
10
+ dispatch: <T extends keyof ClientActions>(to: OpenFin.ClientIdentity, action: T, payload: Parameters<ClientActions[T]>[0]) => Promise<Awaited<ReturnType<ClientActions[T]>>>;
11
+ register: <T extends keyof ProviderActions>(action: T, handler: (payload: Parameters<ProviderActions[T]>[0], id: OpenFin.ProviderIdentity | OpenFin.ClientIdentity) => Promise<Awaited<ReturnType<ProviderActions[T]>>>) => boolean;
12
+ };
13
+ export type SetSearchQueryPayload = {
14
+ query: string;
15
+ providerId?: string;
16
+ context?: Record<string, unknown>;
17
+ };
18
+ export type SearchInvokedPayload = {
19
+ query?: string;
20
+ providerId?: string;
21
+ context?: Record<string, unknown>;
22
+ };
23
+ export type HomeVpwChannelProvider = TypedChannelProvider<HomeVpwChannelProviderChannelActions, HomeVpwChannelClientChannelActions>;
24
+ export type HomeVpwChannelClient = TypedChannelClient<HomeVpwChannelProviderChannelActions, HomeVpwChannelClientChannelActions>;
25
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { OpenFin } from '@openfin/core';
2
+ import type { HomeVpwChannelProvider } from './protocol';
3
+ export declare class HomeVpwProvider {
4
+ #private;
5
+ static getOverrideConstructor(channel: HomeVpwChannelProvider): new () => HomeVpwProvider;
6
+ static instance: HomeVpwProvider | null;
7
+ constructor(channel: HomeVpwChannelProvider);
8
+ get ready(): Promise<void>;
9
+ private ensureClientConnected;
10
+ show(): Promise<void>;
11
+ showWhenReady(): Promise<void>;
12
+ hide(): Promise<void>;
13
+ shutdown(): Promise<void>;
14
+ getWindowSync(): OpenFin.Window;
15
+ dispatchSearchInvoked(query?: string, providerId?: string, context?: Record<string, unknown>): Promise<void>;
16
+ dispatchSetSearchQuery(query: string, providerId?: string, context?: Record<string, unknown>): Promise<void>;
17
+ private registerChannelActions;
18
+ }
19
+ export type HomeVpwConstructorOverride = (Base: new () => HomeVpwProvider) => new () => HomeVpwProvider;
@@ -0,0 +1,10 @@
1
+ import type { CLIProvider, HomeProvider, HomeRegistration } from '../../../client-api/src/shapes';
2
+ export type { CLIProvider, HomeProvider, HomeRegistration, SetSearchQueryOptions } from '../../../client-api/src/shapes';
3
+ export { hide, show } from './visibility';
4
+ /**
5
+ * Register a Home VPW integrator — stands up channel, browser-zone window, and search topic registration.
6
+ * Mirrors legacy Home.register: window is created hidden; call show to display.
7
+ */
8
+ export declare const register: (provider: HomeProvider | CLIProvider) => Promise<HomeRegistration>;
9
+ export declare const deregister: (providerId: string) => Promise<void>;
10
+ export declare const registerBuiltin: (provider: HomeProvider | CLIProvider) => Promise<void>;
@@ -0,0 +1,3 @@
1
+ export declare const show: () => Promise<void>;
2
+ export declare const hide: () => Promise<void>;
3
+ export declare const showWhenReady: () => Promise<void>;