@openfin/core 30.73.28 → 30.74.7

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 (127) hide show
  1. package/LICENSE.md +4 -0
  2. package/package.json +2 -2
  3. package/src/OpenFin.d.ts +1726 -189
  4. package/src/OpenFin.js +3 -2
  5. package/src/api/api-exposer/api-consumer.d.ts +28 -0
  6. package/src/api/api-exposer/api-consumer.js +28 -0
  7. package/src/api/api-exposer/api-exposer.d.ts +35 -0
  8. package/src/api/api-exposer/api-exposer.js +38 -0
  9. package/src/api/api-exposer/decorators.d.ts +10 -0
  10. package/src/api/api-exposer/decorators.js +18 -0
  11. package/src/api/api-exposer/index.d.ts +4 -0
  12. package/src/api/api-exposer/index.js +20 -0
  13. package/src/api/api-exposer/strategies/index.d.ts +1 -0
  14. package/src/api/api-exposer/strategies/index.js +17 -0
  15. package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.d.ts +14 -0
  16. package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.js +20 -0
  17. package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.d.ts +20 -0
  18. package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.js +23 -0
  19. package/src/api/api-exposer/strategies/openfin-channels/index.d.ts +2 -0
  20. package/src/api/api-exposer/strategies/openfin-channels/index.js +18 -0
  21. package/src/api/application/Factory.d.ts +1 -0
  22. package/src/api/application/Factory.js +1 -0
  23. package/src/api/application/Instance.d.ts +2 -1
  24. package/src/api/application/Instance.js +1 -0
  25. package/src/api/base.d.ts +2 -2
  26. package/src/api/clipboard/index.d.ts +1 -0
  27. package/src/api/clipboard/index.js +1 -0
  28. package/src/api/events/base.d.ts +0 -3
  29. package/src/api/events/platform.d.ts +4 -5
  30. package/src/api/events/system.d.ts +5 -6
  31. package/src/api/events/view.d.ts +6 -3
  32. package/src/api/events/webcontents.d.ts +25 -3
  33. package/src/api/events/window.d.ts +21 -13
  34. package/src/api/external-application/Instance.d.ts +1 -1
  35. package/src/api/fin.d.ts +1 -1
  36. package/src/api/frame/Instance.d.ts +1 -1
  37. package/src/api/global-hotkey/index.d.ts +1 -1
  38. package/src/api/interappbus/channel/channel.d.ts +1 -1
  39. package/src/api/interappbus/channel/channels-docs.d.ts +7 -0
  40. package/src/api/interappbus/channel/channels-docs.js +7 -0
  41. package/src/api/interappbus/channel/client.d.ts +3 -2
  42. package/src/api/interappbus/channel/client.js +12 -5
  43. package/src/api/interappbus/channel/connection-manager.d.ts +1 -1
  44. package/src/api/interappbus/channel/index.d.ts +1 -1
  45. package/src/api/interappbus/channel/index.js +6 -8
  46. package/src/api/interappbus/channel/protocols/classic/message-receiver.d.ts +1 -1
  47. package/src/api/interappbus/channel/protocols/classic/strategy.d.ts +1 -1
  48. package/src/api/interappbus/channel/protocols/index.d.ts +3 -0
  49. package/src/api/interappbus/channel/protocols/rtc/endpoint.js +10 -2
  50. package/src/api/interappbus/channel/protocols/rtc/ice-manager.d.ts +1 -1
  51. package/src/api/interappbus/channel/protocols/rtc/strategy.js +1 -1
  52. package/src/api/interappbus/channel/provider.d.ts +1 -1
  53. package/src/api/interappbus/index.d.ts +1 -1
  54. package/src/api/interop/Factory.d.ts +1 -2
  55. package/src/api/interop/Factory.js +20 -4
  56. package/src/api/interop/InteropBroker.d.ts +15 -47
  57. package/src/api/interop/InteropBroker.js +38 -46
  58. package/src/api/interop/InteropClient.d.ts +10 -9
  59. package/src/api/interop/InteropClient.js +9 -8
  60. package/src/api/interop/SessionContextGroupClient.d.ts +1 -1
  61. package/src/api/interop/fdc3/PrivateChannelClient.d.ts +1 -0
  62. package/src/api/interop/fdc3/PrivateChannelClient.js +15 -7
  63. package/src/api/interop/fdc3/PrivateChannelProvider.d.ts +15 -1
  64. package/src/api/interop/fdc3/PrivateChannelProvider.js +80 -21
  65. package/src/api/interop/fdc3/fdc3-1.2.js +27 -12
  66. package/src/api/interop/fdc3/fdc3-2.0.d.ts +13 -12
  67. package/src/api/interop/fdc3/fdc3-2.0.js +33 -26
  68. package/src/api/interop/fdc3/fdc3.d.ts +4 -5
  69. package/src/api/interop/fdc3/overrideCheck.d.ts +4 -0
  70. package/src/api/interop/fdc3/overrideCheck.js +32 -0
  71. package/src/api/interop/fdc3/shapes/fdc3v2.d.ts +1 -1
  72. package/src/api/interop/fdc3/utils.d.ts +17 -0
  73. package/src/api/interop/fdc3/utils.js +52 -18
  74. package/src/api/interop/fdc3/versions.d.ts +1 -0
  75. package/src/api/interop/fdc3/versions.js +2 -0
  76. package/src/api/me.d.ts +1 -1
  77. package/src/api/platform/Factory.d.ts +6 -1
  78. package/src/api/platform/Factory.js +5 -0
  79. package/src/api/platform/Instance.d.ts +5 -3
  80. package/src/api/platform/Instance.js +5 -3
  81. package/src/api/platform/layout/Factory.d.ts +4 -0
  82. package/src/api/platform/layout/Factory.js +15 -3
  83. package/src/api/platform/layout/Instance.d.ts +7 -1
  84. package/src/api/platform/layout/Instance.js +26 -1
  85. package/src/api/platform/layout/controllers/layout-content-cache.d.ts +9 -0
  86. package/src/api/platform/layout/controllers/layout-content-cache.js +54 -0
  87. package/src/api/platform/layout/controllers/layout-entities-controller.d.ts +117 -0
  88. package/src/api/platform/layout/controllers/layout-entities-controller.js +270 -0
  89. package/src/api/platform/layout/entities/layout-entities.d.ts +144 -0
  90. package/src/api/platform/layout/entities/layout-entities.js +216 -0
  91. package/src/api/platform/layout/entities/shapes.d.ts +6 -0
  92. package/src/api/platform/layout/entities/shapes.js +2 -0
  93. package/src/api/platform/layout/layout.constants.d.ts +1 -0
  94. package/src/api/platform/layout/layout.constants.js +4 -0
  95. package/src/api/platform/layout/shapes.d.ts +3 -0
  96. package/src/api/platform/layout/utils/layout-traversal.d.ts +4 -0
  97. package/src/api/platform/layout/utils/layout-traversal.js +65 -0
  98. package/src/api/platform/layout/utils/view-overlay.d.ts +1 -1
  99. package/src/api/platform/provider.d.ts +162 -0
  100. package/src/api/platform/provider.js +2 -0
  101. package/src/api/snapshot-source/Factory.d.ts +1 -0
  102. package/src/api/snapshot-source/Factory.js +1 -0
  103. package/src/api/snapshot-source/Instance.d.ts +1 -1
  104. package/src/api/system/index.d.ts +1 -471
  105. package/src/api/system/index.js +6 -476
  106. package/src/api/view/Instance.d.ts +24 -5
  107. package/src/api/view/Instance.js +53 -8
  108. package/src/api/webcontents/main.d.ts +18 -4
  109. package/src/api/window/Instance.d.ts +26 -1
  110. package/src/api/window/Instance.js +25 -0
  111. package/src/browser.js +1 -1
  112. package/src/mock.js +1 -1
  113. package/src/namespaces.d.ts +21 -0
  114. package/src/namespaces.js +24 -0
  115. package/src/transport/fin_store.d.ts +1 -1
  116. package/src/transport/transport-errors.d.ts +6 -1
  117. package/src/transport/transport-errors.js +1 -2
  118. package/src/transport/transport.d.ts +9 -6
  119. package/src/transport/transport.js +11 -2
  120. package/src/util/channel-api-relay.d.ts +13 -0
  121. package/src/util/channel-api-relay.js +37 -0
  122. package/src/util/inaccessibleObject.d.ts +2 -0
  123. package/src/util/inaccessibleObject.js +49 -0
  124. package/src/util/lazy.d.ts +16 -0
  125. package/src/util/lazy.js +26 -0
  126. package/src/util/reversible-map.d.ts +11 -0
  127. package/src/util/reversible-map.js +49 -0
package/src/OpenFin.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const snapshot_source_1 = require("./api/snapshot-source");
4
- const window_1 = require("./api/window");
3
+ const index_1 = require("./api/snapshot-source/index");
4
+ const index_2 = require("./api/window/index");
5
+ const layout_entities_1 = require("./api/platform/layout/entities/layout-entities");
@@ -0,0 +1,28 @@
1
+ import { ExposedProp } from "./decorators";
2
+ export declare type ConsumeStrategy<TMetaConsumeOptions, TPropConsumeDefinition> = {
3
+ getExposedFunctions: (options: TMetaConsumeOptions) => Promise<ExposedProp<TPropConsumeDefinition>[]>;
4
+ createFunction: (options: ExposedProp<TPropConsumeDefinition>, meta: TMetaConsumeOptions) => Function;
5
+ };
6
+ declare type PickOfType<T extends Record<any, any>, TTarget> = {
7
+ [key in keyof T as T[key] extends TTarget | undefined ? key : never]: T[key];
8
+ };
9
+ export declare type ApiClient<T extends Record<any, any>> = {
10
+ [key in keyof PickOfType<T, Function>]: (...args: Parameters<T[key]>) => ReturnType<T[key]> extends Promise<any> ? ReturnType<T[key]> : Promise<ReturnType<T[key]>>;
11
+ };
12
+ /**
13
+ * Consumer for apis exposed with {@see ApiExposer}.
14
+ *
15
+ * A strategy that matches the strategy used to expose a target API must be provided.
16
+ */
17
+ export declare class ApiConsumer<TMetaConsumeOptions = any, TPropConsumptionOptions = any> {
18
+ private strategy;
19
+ constructor(strategy: ConsumeStrategy<TMetaConsumeOptions, TPropConsumptionOptions>);
20
+ /**
21
+ * Consumes an api exposed using a given transport strategy, and generates a client
22
+ * for easy, type safe consumption of that client.
23
+ * @param options Strategy specific consumption options.
24
+ * @returns An api client matching the given type.
25
+ */
26
+ consume: <T extends Record<any, any>>(options: TMetaConsumeOptions) => Promise<ApiClient<T>>;
27
+ }
28
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiConsumer = void 0;
4
+ /**
5
+ * Consumer for apis exposed with {@see ApiExposer}.
6
+ *
7
+ * A strategy that matches the strategy used to expose a target API must be provided.
8
+ */
9
+ class ApiConsumer {
10
+ // eslint-disable-next-line
11
+ constructor(strategy) {
12
+ this.strategy = strategy;
13
+ /**
14
+ * Consumes an api exposed using a given transport strategy, and generates a client
15
+ * for easy, type safe consumption of that client.
16
+ * @param options Strategy specific consumption options.
17
+ * @returns An api client matching the given type.
18
+ */
19
+ this.consume = async (options) => {
20
+ const exposedProperties = await this.strategy.getExposedFunctions(options);
21
+ return exposedProperties.reduce((client, prop) => ({
22
+ ...client,
23
+ [prop.key]: this.strategy.createFunction(prop, options)
24
+ }), {});
25
+ };
26
+ }
27
+ }
28
+ exports.ApiConsumer = ApiConsumer;
@@ -0,0 +1,35 @@
1
+ import { ExposedProp } from './decorators';
2
+ export declare type ConsumptionConfig<T> = {
3
+ key: string;
4
+ options: T;
5
+ };
6
+ export declare type ExposeStrategy<TInstanceExposeOptions, TPropExposeOptions, TPropConsumeOptions> = {
7
+ /**
8
+ * Exposes the given function on the strategy.
9
+ */
10
+ exposeFunction: (target: Function, config: {
11
+ key: string;
12
+ options: TPropExposeOptions;
13
+ meta: TInstanceExposeOptions;
14
+ }) => Promise<TPropConsumeOptions>;
15
+ /**
16
+ * Exposes metadata to enable creation of client objects.
17
+ */
18
+ exposeMeta: (instanceOptions: TInstanceExposeOptions, props: ExposedProp<TPropConsumeOptions>[]) => Promise<void>;
19
+ };
20
+ /**
21
+ * Exposes api services on the transport of choice.
22
+ */
23
+ export declare class ApiExposer<TInstanceExposeOptions = any, TPropExposeOptions = any, TPropConsumptionOptions = any> {
24
+ private strategy;
25
+ /**
26
+ * @param strategy The expose strategy to use to expose instances.
27
+ */
28
+ constructor(strategy: ExposeStrategy<TInstanceExposeOptions, TPropExposeOptions, TPropConsumptionOptions>);
29
+ /**
30
+ * Exposes an instance of a given api on
31
+ * @param instance Instance of a class which has been decorated to indicate which functions can be exposed.
32
+ * @param instanceOptions Transport strategy specific options to use when exposing.
33
+ */
34
+ exposeInstance: (instance: Record<any, any>, instanceOptions: TInstanceExposeOptions) => Promise<void>;
35
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiExposer = void 0;
4
+ const decorators_1 = require("./decorators");
5
+ /**
6
+ * Exposes api services on the transport of choice.
7
+ */
8
+ class ApiExposer {
9
+ /**
10
+ * @param strategy The expose strategy to use to expose instances.
11
+ */
12
+ // eslint-disable-next-line
13
+ constructor(strategy) {
14
+ this.strategy = strategy;
15
+ /**
16
+ * Exposes an instance of a given api on
17
+ * @param instance Instance of a class which has been decorated to indicate which functions can be exposed.
18
+ * @param instanceOptions Transport strategy specific options to use when exposing.
19
+ */
20
+ this.exposeInstance = async (instance, instanceOptions) => {
21
+ const exposableProps = (0, decorators_1.getExposedProperties)(instance);
22
+ const exposedProps = await Promise.all(exposableProps.map(async ({ key, options }) => {
23
+ const customConsumptionOptions = await this.strategy.exposeFunction(instance[key].bind(instance), {
24
+ key,
25
+ options,
26
+ meta: instanceOptions
27
+ });
28
+ return {
29
+ key,
30
+ options: customConsumptionOptions
31
+ };
32
+ }));
33
+ await this.strategy.exposeMeta(instanceOptions, exposedProps);
34
+ };
35
+ }
36
+ ;
37
+ }
38
+ exports.ApiExposer = ApiExposer;
@@ -0,0 +1,10 @@
1
+ export declare type ExposedProp<T> = {
2
+ key: string;
3
+ options: T;
4
+ };
5
+ export declare const getExposedProperties: <T>(target: Record<any, any>) => ExposedProp<T>[];
6
+ /**
7
+ * Indicates that a class member function can be exposed using {@link ApiExposer}.
8
+ * @param options Options specific to the strategy used in {@link ApiExposer}
9
+ */
10
+ export declare const expose: <T = undefined>(options?: T) => any;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.expose = exports.getExposedProperties = void 0;
4
+ const exposedProperties = Symbol('exposedProperties');
5
+ const getExposedProperties = (target) => {
6
+ return target[exposedProperties] || target.prototype[exposedProperties] || [];
7
+ };
8
+ exports.getExposedProperties = getExposedProperties;
9
+ /**
10
+ * Indicates that a class member function can be exposed using {@link ApiExposer}.
11
+ * @param options Options specific to the strategy used in {@link ApiExposer}
12
+ */
13
+ // Returns any as decorator typing is weird.
14
+ const expose = (options) => (target, key, descriptor) => {
15
+ target[exposedProperties] = target[exposedProperties] || [];
16
+ target[exposedProperties].push({ key, descriptor, options });
17
+ };
18
+ exports.expose = expose;
@@ -0,0 +1,4 @@
1
+ export * from './api-consumer';
2
+ export * from './api-exposer';
3
+ export * from './strategies';
4
+ export * from './decorators';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./api-consumer"), exports);
18
+ __exportStar(require("./api-exposer"), exports);
19
+ __exportStar(require("./strategies"), exports);
20
+ __exportStar(require("./decorators"), exports);
@@ -0,0 +1 @@
1
+ export * from './openfin-channels';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./openfin-channels"), exports);
@@ -0,0 +1,14 @@
1
+ import { ConsumeStrategy } from "../../api-consumer";
2
+ import { ExposedProp } from "../../decorators";
3
+ export declare type ChannelConsumeOptions = {
4
+ id: string;
5
+ };
6
+ export declare type ChannelsPropConfig = {
7
+ action: string;
8
+ };
9
+ export declare class ChannelsConsumer implements ConsumeStrategy<ChannelConsumeOptions, ChannelsPropConfig> {
10
+ private channel;
11
+ constructor(channel: any);
12
+ getExposedFunctions: (options: ChannelConsumeOptions) => Promise<ExposedProp<ChannelsPropConfig>[]>;
13
+ createFunction: (prop: ExposedProp<ChannelsPropConfig>) => Function;
14
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelsConsumer = void 0;
4
+ class ChannelsConsumer {
5
+ // eslint-disable-next-line
6
+ constructor(channel) {
7
+ this.channel = channel;
8
+ this.getExposedFunctions = async (options) => {
9
+ const { id } = options;
10
+ const { props } = await this.channel.dispatch(`api-meta:${id}`);
11
+ return props;
12
+ };
13
+ this.createFunction = (prop) => (...args) => {
14
+ const { action } = prop.options;
15
+ return this.channel.dispatch(action, { args });
16
+ };
17
+ }
18
+ ;
19
+ }
20
+ exports.ChannelsConsumer = ChannelsConsumer;
@@ -0,0 +1,20 @@
1
+ import { ExposeStrategy } from '../../api-exposer';
2
+ import { ExposedProp } from '../../decorators';
3
+ import { ChannelsPropConfig } from './channels-consumer';
4
+ declare type ChannelInstanceExposeOptions = {
5
+ id: string;
6
+ };
7
+ export declare type ChannelsPropOptions = {
8
+ action?: string;
9
+ } | undefined;
10
+ export declare class ChannelsExposer implements ExposeStrategy<ChannelInstanceExposeOptions, ChannelsPropOptions, ChannelsPropConfig> {
11
+ private channelProviderOrClient;
12
+ constructor(channelProviderOrClient: any);
13
+ exposeFunction: (target: Function, config: {
14
+ key: string;
15
+ options: ChannelsPropOptions;
16
+ meta: ChannelInstanceExposeOptions;
17
+ }) => Promise<ChannelsPropConfig>;
18
+ exposeMeta: ({ id }: ChannelInstanceExposeOptions, props: ExposedProp<ChannelsPropOptions>[]) => Promise<void>;
19
+ }
20
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelsExposer = void 0;
4
+ class ChannelsExposer {
5
+ // eslint-disable-next-line
6
+ constructor(channelProviderOrClient) {
7
+ this.channelProviderOrClient = channelProviderOrClient;
8
+ this.exposeFunction = async (target, config) => {
9
+ const { key, options, meta } = config;
10
+ const { id } = meta;
11
+ const action = `${id}.${(options === null || options === void 0 ? void 0 : options.action) || key}`;
12
+ await this.channelProviderOrClient.register(action, async ({ args }) => {
13
+ return target(...args);
14
+ });
15
+ return { action };
16
+ };
17
+ this.exposeMeta = async ({ id }, props) => {
18
+ const action = `api-meta:${id}`;
19
+ await this.channelProviderOrClient.register(action, () => ({ props }));
20
+ };
21
+ }
22
+ }
23
+ exports.ChannelsExposer = ChannelsExposer;
@@ -0,0 +1,2 @@
1
+ export * from './channels-consumer';
2
+ export * from './channels-exposer';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./channels-consumer"), exports);
18
+ __exportStar(require("./channels-exposer"), exports);
@@ -1,6 +1,7 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { Base } from '../base';
3
3
  /**
4
+ * @PORTED
4
5
  * @typedef {object} ApplicationOptions
5
6
  * @summary Application creation options.
6
7
  * @desc This is the options object required by {@link Application.start Application.start}.
@@ -4,6 +4,7 @@ const base_1 = require("../base");
4
4
  const validate_1 = require("../../util/validate");
5
5
  const Instance_1 = require("./Instance");
6
6
  /**
7
+ * @PORTED
7
8
  * @typedef {object} ApplicationOptions
8
9
  * @summary Application creation options.
9
10
  * @desc This is the options object required by {@link Application.start Application.start}.
@@ -1,6 +1,6 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { EmitterBase } from '../base';
3
- import Transport from '../../transport/transport';
3
+ import { Transport } from '../../transport/transport';
4
4
  /**
5
5
  * @classdesc An object representing an application. Allows the developer to create,
6
6
  * execute, show/close an application as well as listen to <a href="tutorial-Application.EventEmitter.html">application events</a>.
@@ -102,6 +102,7 @@ export declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
102
102
  * @property { JumpListItem[] } items Array of JumpListItem objects
103
103
  */
104
104
  /**
105
+ * @PORTED
105
106
  * JumpListItem interface
106
107
  * @typedef { object } JumpListItem
107
108
  * @property { string } type One of the following: "task" or "separator". Defaults to task.
@@ -119,6 +119,7 @@ class Application extends base_1.EmitterBase {
119
119
  * @property { JumpListItem[] } items Array of JumpListItem objects
120
120
  */
121
121
  /**
122
+ * @PORTED
122
123
  * JumpListItem interface
123
124
  * @typedef { object } JumpListItem
124
125
  * @property { string } type One of the following: "task" or "separator". Defaults to task.
package/src/api/base.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import Transport from '../transport/transport';
3
+ import { Transport } from '../transport/transport';
4
4
  import type * as OpenFin from '../OpenFin';
5
5
  import Fin from './fin';
6
6
  import { BaseEvent, EventHandler } from './events/base';
@@ -31,7 +31,7 @@ export declare class EmitterBase<EmitterEvent extends BaseEvent, EmitterEventTyp
31
31
  protected registerEventListener: (eventType: EmitterEventType, options: OpenFin.SubscriptionOptions, applySubscription: (emitter: EventEmitter) => void, undoSubscription: (emitter: EventEmitter) => void) => Promise<void>;
32
32
  protected deregisterEventListener: (eventType: EmitterEventType, options?: OpenFin.SubscriptionOptions) => Promise<void | EventEmitter>;
33
33
  on<EventType extends EmitterEventType>(eventType: EventType, listener: EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions): Promise<this>;
34
- addListener: <EventType extends EmitterEventType>(eventType: EventType, listener: EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions) => Promise<this>;
34
+ addListener: <EventType extends EmitterEventType>(eventType: EventType, listener: OpenFin.BaseEvents.EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions) => Promise<this>;
35
35
  once<EventType extends EmitterEventType>(eventType: EventType, listener: EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions): Promise<this>;
36
36
  prependListener<EventType extends EmitterEventType>(eventType: EventType, listener: EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions): Promise<this>;
37
37
  prependOnceListener<EventType extends EmitterEventType>(eventType: EventType, listener: EventHandler<EmitterEvent, EventType>, options?: OpenFin.SubscriptionOptions): Promise<this>;
@@ -1,6 +1,7 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { Base } from '../base';
3
3
  /**
4
+ * @PORTED
4
5
  * WriteRequestType interface
5
6
  * @typedef { object } WriteRequestType
6
7
  * @property { string } data Data to be written
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const base_1 = require("../base");
4
4
  /**
5
+ * @PORTED
5
6
  * WriteRequestType interface
6
7
  * @typedef { object } WriteRequestType
7
8
  * @property { string } data Data to be written
@@ -1,4 +1,3 @@
1
- import type * as OpenFin from '../../OpenFin';
2
1
  /**
3
2
  * Modifies an event key to reflect propagation by prefixing with the topic.
4
3
  */
@@ -13,8 +12,6 @@ export declare type PropagatedEvent<Topic extends string, Event extends {
13
12
  type: string;
14
13
  } ? Omit<E, 'type'> & {
15
14
  type: PropagatedEventType<Topic, E['type']>;
16
- } & {
17
- [topic in `${Topic}Identity`]: OpenFin.Identity;
18
15
  } : never;
19
16
  /**
20
17
  * Handler for an event on an EventEmitter; selects the correct type for the event
@@ -1,12 +1,11 @@
1
+ import { ApplicationEvent } from './application';
1
2
  import { BaseEvent } from './base';
2
- import { PropagatedViewEvent } from './view';
3
- import { PropagatedWindowEvent } from './window';
4
3
  export declare type PlatformApiReadyEvent = BaseEvent & {
4
+ topic: 'application';
5
5
  type: 'platform-api-ready';
6
6
  };
7
7
  export declare type PlatformSnapshotAppliedEvent = BaseEvent & {
8
+ topic: 'application';
8
9
  type: 'platform-snapshot-applied';
9
10
  };
10
- export declare type PlatformEvent = {
11
- topic: 'platform';
12
- } & (PropagatedWindowEvent | PropagatedViewEvent | PlatformApiReadyEvent | PlatformSnapshotAppliedEvent);
11
+ export declare type PlatformEvent = ApplicationEvent | PlatformApiReadyEvent | PlatformSnapshotAppliedEvent;
@@ -4,12 +4,12 @@ import { BaseEvent } from './base';
4
4
  import { PropagatedViewEvent } from './view';
5
5
  import { PropagatedWindowEvent } from './window';
6
6
  import { AppVersionCompleteEvent, AppVersionErrorEvent, AppVersionProgressEvent, AppVersionRuntimeStatusEvent } from '../../OpenFin';
7
- declare type NotRequested<EventType> = EventType extends `${infer U}-requested` ? never : EventType;
8
- declare type ExcludeRequested<Event extends {
7
+ export declare type NotRequested<EventType> = EventType extends `${infer U}-requested` ? never : EventType;
8
+ export declare type ExcludeRequested<Event extends {
9
9
  type: string;
10
- }> = Event & {
10
+ }> = Extract<Event, {
11
11
  type: NotRequested<Event['type']>;
12
- };
12
+ }>;
13
13
  export declare type IdleEvent = {
14
14
  type: 'idle-state-changed';
15
15
  elapsedTime: number;
@@ -46,6 +46,5 @@ export declare type DesktopIconClickedEvent = BaseEvent & {
46
46
  };
47
47
  export declare type SystemEvent = {
48
48
  topic: 'system';
49
- } & (ExcludeRequested<PropagatedWindowEvent> | ExcludeRequested<PropagatedViewEvent> | PropagatedApplicationEvent | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleEvent | MonitorEvent | SessionChangedEvent | AppVersionEventWithId);
49
+ } & (ExcludeRequested<PropagatedWindowEvent> | PropagatedViewEvent | PropagatedApplicationEvent | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleEvent | MonitorEvent | SessionChangedEvent | AppVersionEventWithId);
50
50
  export declare type SystemEventType = SystemEvent['type'];
51
- export {};
@@ -1,15 +1,18 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { NonPropagatedWebContentsEvent, WillPropagateWebContentsEvent } from './webcontents';
3
3
  import { NamedEvent, PropagatedEvent } from './base';
4
+ export declare type BaseViewEvent = {
5
+ target: OpenFin.Identity;
6
+ viewIdentity: OpenFin.Identity;
7
+ };
4
8
  export declare type TargetChangedEvent = NamedEvent & {
5
9
  type: 'target-changed';
6
10
  previousTarget: OpenFin.Identity;
7
- target: OpenFin.Identity;
8
11
  };
9
12
  /**
10
13
  * A View event that does not propagate to (republish on) parent topics.
11
14
  */
12
- export declare type NonPropagatedViewEvent = NonPropagatedWebContentsEvent;
15
+ export declare type NonPropagatedViewEvent = BaseViewEvent & NonPropagatedWebContentsEvent;
13
16
  export declare type AttachedEvent = NamedEvent & {
14
17
  type: 'attached';
15
18
  };
@@ -31,7 +34,7 @@ export declare type ShownEvent = NamedEvent & {
31
34
  /**
32
35
  * A View event that does propagate to (republish on) parent topics.
33
36
  */
34
- export declare type WillPropagateViewEvent = WillPropagateWebContentsEvent | AttachedEvent | CreatedEvent | DestroyedEvent | HiddenEvent | HotkeyEvent | ShownEvent | TargetChangedEvent;
37
+ export declare type WillPropagateViewEvent = BaseViewEvent & (WillPropagateWebContentsEvent | AttachedEvent | CreatedEvent | DestroyedEvent | HiddenEvent | HotkeyEvent | ShownEvent | TargetChangedEvent);
35
38
  export declare type ViewEvent = {
36
39
  topic: 'view';
37
40
  } & (NonPropagatedViewEvent | WillPropagateViewEvent);
@@ -1,13 +1,15 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { NamedEvent } from './base';
3
3
  import { CrashedEvent } from './application';
4
- export declare type ResourceLoadFailedEvent = NamedEvent & {
5
- type: 'resource-load-failed';
4
+ declare type BaseLoadFailedEvent = NamedEvent & {
6
5
  errorCode: number;
7
6
  errorDescription: string;
8
7
  validatedURL: string;
9
8
  isMainFrame: boolean;
10
9
  };
10
+ export declare type ResourceLoadFailedEvent = BaseLoadFailedEvent & {
11
+ type: 'resource-load-failed';
12
+ };
11
13
  export declare type ResourceResponseReceivedEvent = NamedEvent & {
12
14
  type: 'response-received';
13
15
  status: boolean;
@@ -43,8 +45,27 @@ export declare type NavigationRejectedEvent = NamedEvent & {
43
45
  sourceName?: string;
44
46
  url: string;
45
47
  };
48
+ declare type BaseUrlEvent = NamedEvent & {
49
+ type: 'url-changed';
50
+ url: string;
51
+ };
52
+ export declare type UrlChangedEvent = BaseUrlEvent & ({
53
+ isInPage: true;
54
+ } | {
55
+ isInPage: false;
56
+ httpResponseCode: number;
57
+ httpStatusText: string;
58
+ });
59
+ export declare type DidFinishLoadEvent = NamedEvent & {
60
+ type: 'did-finish-load';
61
+ };
62
+ export declare type DidFailLoadEvent = BaseLoadFailedEvent & {
63
+ type: 'did-fail-load';
64
+ };
46
65
  export declare type FoundInPageEvent = NamedEvent & {
47
66
  type: 'found-in-page';
67
+ } & {
68
+ result: OpenFin.FindInPageResult;
48
69
  };
49
70
  /**
50
71
  * A WebContents event that does not propagate to (republish on) parent topics.
@@ -71,5 +92,6 @@ export declare type ChildViewCreatedEvent = NamedEvent & {
71
92
  /**
72
93
  * A WebContents event that does propagate to (republish on) parent topics.
73
94
  */
74
- export declare type WillPropagateWebContentsEvent = BlurredEvent | CertificateSelectionShownEvent | CrashedEvent | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | FaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent;
95
+ export declare type WillPropagateWebContentsEvent = BlurredEvent | CertificateSelectionShownEvent | CrashedEvent | DidChangeThemeColorEvent | FocusedEvent | NavigationRejectedEvent | UrlChangedEvent | DidFailLoadEvent | DidFinishLoadEvent | FaviconUpdatedEvent | PageTitleUpdatedEvent | ResourceLoadFailedEvent | ResourceResponseReceivedEvent | ChildContentBlockedEvent | ChildContentOpenedInBrowserEvent | ChildViewCreatedEvent;
75
96
  export declare type WebContentsEvent = NonPropagatedWebContentsEvent | WillPropagateWebContentsEvent;
97
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { NamedEvent, PropagatedEvent } from './base';
3
- import { PropagatedViewEvent } from './view';
3
+ import { BaseViewEvent, PropagatedViewEvent, AttachedEvent as ViewAttachedEvent } from './view';
4
4
  import { NonPropagatedWebContentsEvent, WillPropagateWebContentsEvent } from './webcontents';
5
5
  export declare type AlertRequestedEvent = NamedEvent & {
6
6
  type: 'alert-requested';
@@ -84,11 +84,9 @@ export declare type WillMoveOrResizeEvent = NamedEvent & {
84
84
  export declare type PerformanceReportEvent = Performance & NamedEvent & {
85
85
  type: 'performance-report';
86
86
  };
87
- export declare type ViewDetachedEvent = NamedEvent & {
87
+ export declare type ViewDetachedEvent = NamedEvent & BaseViewEvent & {
88
88
  type: 'view-detached';
89
89
  previousTarget: OpenFin.Identity;
90
- target: OpenFin.Identity;
91
- viewIdentity: OpenFin.Identity;
92
90
  };
93
91
  export declare type InputEvent = {
94
92
  inputType: 'keyUp' | 'keyDown';
@@ -101,6 +99,18 @@ export declare type InputEvent = {
101
99
  repeat: boolean;
102
100
  command?: string;
103
101
  };
102
+ export declare type LayoutInitializedEvent = NamedEvent & {
103
+ type: 'layout-initialized';
104
+ ofViews: (OpenFin.Identity & {
105
+ entityType: 'view';
106
+ })[];
107
+ };
108
+ export declare type LayoutReadyEvent = NamedEvent & {
109
+ type: 'layout-ready';
110
+ views: (OpenFin.Identity & {
111
+ success: boolean;
112
+ })[];
113
+ };
104
114
  /**
105
115
  * A Window event that does not propagate to (republish on) parent topics.
106
116
  */
@@ -141,12 +151,6 @@ export declare type WindowHotkeyEvent = InputEvent & NamedEvent & {
141
151
  export declare type WindowInitializedEvent = NamedEvent & {
142
152
  type: 'initialized';
143
153
  };
144
- export declare type LayoutInitializedEvent = NamedEvent & {
145
- type: 'layout-initialized';
146
- };
147
- export declare type LayoutReadyEvent = NamedEvent & {
148
- type: 'layout-ready';
149
- };
150
154
  export declare type MaximizedEvent = NamedEvent & {
151
155
  type: 'maximized';
152
156
  };
@@ -180,13 +184,17 @@ export declare type WillMoveEvent = WillMoveOrResizeEvent & {
180
184
  export declare type WillResizeEvent = WillMoveOrResizeEvent & {
181
185
  type: 'will-resize';
182
186
  };
187
+ /**
188
+ * A propagated view event that is re-propagated from window.
189
+ */
190
+ export declare type PropagatedViewAttachedEvent = PropagatedEvent<'view', ViewAttachedEvent>;
183
191
  /**
184
192
  * A Window event that does propagate to (republish on) parent topics.
185
193
  */
186
- export declare type WillPropagateWindowEvent = WillPropagateWebContentsEvent | PropagatedViewEvent | ViewDetachedEvent | AuthRequestedEvent | BeginUserBoundsChangingEvent | BoundsChangedEvent | BoundsChangingEvent | WindowCloseRequestedEvent | WindowClosedEvent | WindowClosingEvent | DisabledMovementBoundsChangedEvent | DisabledMovementBoundsChangingEvent | EmbeddedEvent | EndUserBoundsChangingEvent | ExternalProcessExitedEvent | ExternalProcessStartedEvent | HiddenEvent | WindowHotkeyEvent | WindowInitializedEvent | LayoutInitializedEvent | LayoutReadyEvent | MaximizedEvent | MinimizedEvent | WindowOptionsChangedEvent | PerformanceReportEvent | PreloadScriptsStateChangedEvent | PreloadScriptsStateChangingEvent | ReloadedEvent | WindowRestoredEvent | WindowShowRequestedEvent | WindowShownEvent | UserMovementDisabledEvent | UserMovementEnabledEvent | WillMoveEvent | WillRedirectEvent | WillResizeEvent;
194
+ export declare type WillPropagateWindowEvent = WillPropagateWebContentsEvent | PropagatedViewAttachedEvent | ViewDetachedEvent | AuthRequestedEvent | BeginUserBoundsChangingEvent | BoundsChangedEvent | BoundsChangingEvent | WindowCloseRequestedEvent | WindowClosedEvent | WindowClosingEvent | DisabledMovementBoundsChangedEvent | DisabledMovementBoundsChangingEvent | EmbeddedEvent | EndUserBoundsChangingEvent | ExternalProcessExitedEvent | ExternalProcessStartedEvent | HiddenEvent | WindowHotkeyEvent | WindowInitializedEvent | LayoutInitializedEvent | LayoutReadyEvent | MaximizedEvent | MinimizedEvent | WindowOptionsChangedEvent | PerformanceReportEvent | PreloadScriptsStateChangedEvent | PreloadScriptsStateChangingEvent | ReloadedEvent | WindowRestoredEvent | WindowShowRequestedEvent | WindowShownEvent | UserMovementDisabledEvent | UserMovementEnabledEvent | WillMoveEvent | WillRedirectEvent | WillResizeEvent;
187
195
  export declare type WindowEvent = {
188
196
  topic: 'window';
189
- } & (WillPropagateWindowEvent | NonPropagatedWindowEvent);
197
+ } & (WillPropagateWindowEvent | NonPropagatedWindowEvent | PropagatedViewEvent);
190
198
  export declare type WindowEventType = WindowEvent['type'];
191
- export declare type PropagatedWindowEvent = PropagatedEvent<'window', WillPropagateWindowEvent>;
199
+ export declare type PropagatedWindowEvent = PropagatedEvent<'window', Exclude<WillPropagateWindowEvent, WindowCloseRequestedEvent>>;
192
200
  export declare type PropagatedWindowEventType = PropagatedWindowEvent['type'];
@@ -1,6 +1,6 @@
1
1
  import type * as OpenFin from '../../OpenFin';
2
2
  import { EmitterBase } from '../base';
3
- import Transport from '../../transport/transport';
3
+ import { Transport } from '../../transport/transport';
4
4
  /**
5
5
  * @classdesc An ExternalApplication object representing native language adapter connections to the runtime. Allows
6
6
  * the developer to listen to <a href="tutorial-ExternalApplication.EventEmitter.html">application events.</a>