@adobe/uix-guest 0.6.3

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.
@@ -0,0 +1,160 @@
1
+ import { Connection } from "penpal";
2
+ import type { RemoteHostApis, NamedEvent, VirtualApi } from "@adobe/uix-core";
3
+ import { Emitter } from "@adobe/uix-core";
4
+ /**
5
+ * @public
6
+ */
7
+ export declare type GuestEvent<Type extends string = string, Detail = Record<string, unknown>> = NamedEvent<Type, Detail & Record<string, unknown> & {
8
+ guest: Guest;
9
+ }>;
10
+ /**
11
+ * @public
12
+ */
13
+ export declare type GuestEventContextChange = GuestEvent<"contextchange", {
14
+ context: Record<string, unknown>;
15
+ }>;
16
+ /** @public */
17
+ export declare type GuestEventBeforeConnect = GuestEvent<"beforeconnect">;
18
+ /** @public */
19
+ export declare type GuestEventConnected = GuestEvent<"connected", {
20
+ connection: Connection;
21
+ }>;
22
+ /** @public */
23
+ export declare type GuestEventError = GuestEvent<"error", {
24
+ error: Error;
25
+ }>;
26
+ /**
27
+ * @public
28
+ */
29
+ export declare type GuestEvents = GuestEventContextChange | GuestEventBeforeConnect | GuestEventConnected | GuestEventError;
30
+ /**
31
+ * @public
32
+ */
33
+ export interface GuestConfig {
34
+ /**
35
+ * String slug identifying extension. This may need to use IDs from an
36
+ * external system in the future.
37
+ */
38
+ id: string;
39
+ /**
40
+ * Set debug flags on all libraries that have them, and add loggers to SDK
41
+ * objects. Log a lot to the console.
42
+ */
43
+ debug?: boolean;
44
+ /**
45
+ * Time out and stop trying to reach the host after this many milliseconds
46
+ */
47
+ timeout?: number;
48
+ }
49
+ /**
50
+ * A `Map` representing the {@link @adobe/uix-host#HostConfig.sharedContext}
51
+ * object.
52
+ *
53
+ * @remarks While the Host object is a plain JavaScript object. the `sharedContext` in the Guest object implements the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map | Map} interface.
54
+ *
55
+ * @example
56
+ * In the host app window, the Host object shares context:
57
+ * ```javascript
58
+ *host.shareContext({
59
+ * someAuthToken: 'abc'
60
+ *});
61
+ * ```
62
+ *
63
+ * After the `contentchange` event has fired in the guest window:
64
+ * ```javascript
65
+ * guest.sharedContext.get('someAuthToken') === 'abc'
66
+ * ```
67
+ * @public
68
+ */
69
+ export declare class SharedContext {
70
+ private _map;
71
+ constructor(values: Record<string, unknown>);
72
+ private reset;
73
+ /**
74
+ * @public
75
+ * Retrieve a copy of a value from the {@link @adobe/uix-host#HostConfig.sharedContext} object. *Note that this is not a reference to any actual objects from the parent. If the parent updates an "inner object" inside the SharedContext, that change will not be reflected in the Guest!*
76
+ */
77
+ get(key: string): unknown;
78
+ }
79
+ /**
80
+ * Generic Guest object, with methods shared by all types of Guest.
81
+ * @internal
82
+ */
83
+ export declare class Guest<Incoming extends object = VirtualApi> extends Emitter<GuestEvents> {
84
+ /**
85
+ * Shared context has been set or updated.
86
+ * @eventProperty
87
+ */
88
+ contextchange: GuestEventContextChange;
89
+ /**
90
+ * About to attempt connection to the host.
91
+ * @eventProperty
92
+ */
93
+ beforeconnect: GuestEventBeforeConnect;
94
+ /**
95
+ * Host connection has been established.
96
+ * @eventProperty
97
+ */
98
+ connected: GuestEventConnected;
99
+ /**
100
+ * Host connection has failed.
101
+ * @eventProperty
102
+ */
103
+ error: GuestEventError;
104
+ /**
105
+ * {@inheritdoc SharedContext}
106
+ */
107
+ sharedContext: SharedContext;
108
+ private debugLogger;
109
+ /**
110
+ * @param config - Initializer for guest object, including ID.
111
+ */
112
+ constructor(config: GuestConfig);
113
+ /**
114
+ * Proxy object for calling methods on the host.
115
+ *
116
+ * @remarks Any APIs exposed to the extension via {@link @adobe/uix-host#Port.provide}
117
+ * can be called on this object. Because these methods are called with RPC,
118
+ * they are all asynchronous, The return types of all Host methods will be
119
+ * Promises which resolve to the value the Host method returns.
120
+ * @public
121
+ */
122
+ host: RemoteHostApis<Incoming>;
123
+ private timeout;
124
+ private hostConnectionPromise;
125
+ private hostConnection;
126
+ /** @internal */
127
+ protected getLocalMethods(): {
128
+ emit: (type: "contextchange" | "beforeconnect" | "connected" | "error", detail: ({
129
+ context: Record<string, unknown>;
130
+ } & Record<string, unknown> & {
131
+ guest: Guest<VirtualApi>;
132
+ }) | (Record<string, unknown> & {
133
+ guest: Guest<VirtualApi>;
134
+ }) | ({
135
+ connection: Connection<import("penpal").CallSender>;
136
+ } & Record<string, unknown> & {
137
+ guest: Guest<VirtualApi>;
138
+ }) | ({
139
+ error: Error;
140
+ } & Record<string, unknown> & {
141
+ guest: Guest<VirtualApi>;
142
+ })) => void;
143
+ };
144
+ /**
145
+ * Accept a connection from the Host.
146
+ * @returns A Promise that resolves when the Host has established a connection.
147
+ * @deprecated It is preferable to use {@link register} for primary frames,
148
+ * and {@link attach} for UI frames and other secondary frames, than to
149
+ * instantiate a Guest and then call `.connect()` on it. The latter style
150
+ * returns an object that cannot be used until it is connected, and therefore
151
+ * risks errors.
152
+ * @public
153
+ */
154
+ connect(): Promise<void>;
155
+ /**
156
+ * @internal
157
+ */
158
+ _connect(): Promise<void>;
159
+ }
160
+ //# sourceMappingURL=guest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../src/guest.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAmB,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EAEd,UAAU,EACV,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EAIR,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,oBAAY,UAAU,CACpB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC9B,UAAU,CACZ,IAAI,EACJ,MAAM,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;CACd,CACJ,CAAC;AAEF;;GAEG;AACH,oBAAY,uBAAuB,GAAG,UAAU,CAC9C,eAAe,EACf;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CACrC,CAAC;AAEF,cAAc;AACd,oBAAY,uBAAuB,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAClE,cAAc;AACd,oBAAY,mBAAmB,GAAG,UAAU,CAC1C,WAAW,EACX;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAC3B,CAAC;AACF,cAAc;AACd,oBAAY,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAEpE;;GAEG;AACH,oBAAY,WAAW,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,mBAAmB,GACnB,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAuB;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG3C,OAAO,CAAC,KAAK;IAGb;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM;CAGhB;AAED;;;GAGG;AACH,qBAAa,KAAK,CAChB,QAAQ,SAAS,MAAM,GAAG,UAAU,CACpC,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC5B;;;OAGG;IACI,aAAa,EAAE,uBAAuB,CAAC;IAC9C;;;OAGG;IACI,aAAa,EAAE,uBAAuB,CAAC;IAC9C;;;OAGG;IACI,SAAS,EAAE,mBAAmB,CAAC;IACtC;;;OAGG;IACI,KAAK,EAAE,eAAe,CAAC;IAC9B;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,WAAW,CAAyB;IAE5C;;OAEG;gBACS,MAAM,EAAE,WAAW;IAY/B;;;;;;;;OAQG;IACH,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,CAqB5B;IACF,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,cAAc,CAAkC;IACxD,gBAAgB;IAChB,SAAS,CAAC,eAAe;;;;;;;;;;;;;;;;;IAQzB;;;;;;;;;OASG;IACG,OAAO;IAIb;;OAEG;IACG,QAAQ;CAoBf"}