@fanvue/builder-sdk 0.3.0 → 0.5.0
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.
- package/README.md +361 -1
- package/dist/bridge/index.d.ts +2 -0
- package/dist/bridge/index.js +3 -0
- package/dist/bridge-QnF7P4Co.js +336 -0
- package/dist/bridge-QnF7P4Co.js.map +1 -0
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +3 -2
- package/dist/core-BhKiA55a.js +2962 -0
- package/dist/core-BhKiA55a.js.map +1 -0
- package/dist/index-C3CXrRiw.d.ts +1412 -0
- package/dist/index-C3CXrRiw.d.ts.map +1 -0
- package/dist/index-CEFYZtlb.d.ts +223 -0
- package/dist/index-CEFYZtlb.d.ts.map +1 -0
- package/dist/{index-pS9wR5yg.d.ts → index-cf3ZMnLJ.d.ts} +524 -901
- package/dist/index-cf3ZMnLJ.d.ts.map +1 -0
- package/dist/index-v_6Z4Q0u.d.ts +84 -0
- package/dist/index-v_6Z4Q0u.d.ts.map +1 -0
- package/dist/{core-CvVOMyqr.js → index.cjs-teGsk6HB.js} +1506 -2826
- package/dist/index.cjs-teGsk6HB.js.map +1 -0
- package/dist/nextjs/embedded-app/index.d.ts +2 -2
- package/dist/nextjs/embedded-app/index.js +3 -2
- package/dist/nextjs/embedded-app/index.js.map +1 -1
- package/dist/nextjs/off-platform/index.d.ts +3 -3
- package/dist/nextjs/off-platform/index.d.ts.map +1 -1
- package/dist/nextjs/off-platform/index.js +4 -3
- package/dist/nextjs/off-platform/index.js.map +1 -1
- package/dist/nextjs-CvVhtMdb.js +144 -0
- package/dist/nextjs-CvVhtMdb.js.map +1 -0
- package/dist/react/index.d.ts +37 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +61 -2
- package/dist/react/index.js.map +1 -1
- package/package.json +20 -16
- package/dist/core-CvVOMyqr.js.map +0 -1
- package/dist/index-CweVyIKX.d.ts +0 -48
- package/dist/index-CweVyIKX.d.ts.map +0 -1
- package/dist/index-pS9wR5yg.d.ts.map +0 -1
- package/dist/nextjs-CESI_EiU.js +0 -80
- package/dist/nextjs-CESI_EiU.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C3CXrRiw.d.ts","names":[],"sources":["../src/core/constants.ts","../src/core/contracts/access-mode.ts","../src/core/contracts/env.ts","../src/core/contracts/errors.ts","../src/core/contracts/experience-protocol.ts","../src/core/contracts/pagination.ts","../src/core/defaults.ts","../src/core/types.ts","../src/core/oauth.ts","../src/core/session.ts","../src/core/embedded.ts","../src/core/json.ts","../src/core/schemas.ts","../src/core/client.ts","../src/core/machine-auth/machine-auth.ts","../src/core/observability/log-fields.ts","../src/core/observability/readiness.ts","../src/core/observability/sentry-scrubber.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { C as $strip, b as ZodUnknown, c as ZodLiteral, d as ZodObject, f as ZodOptional, h as ZodString, m as ZodRecord, n as ZodArray, r as ZodBoolean, s as ZodEnum, t as Result, u as ZodNumber, x as output, y as ZodUnion } from "./index-cf3ZMnLJ.js";
|
|
2
|
+
|
|
3
|
+
//#region src/bridge/protocol.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The bridge protocol version spoken by this SDK.
|
|
6
|
+
*
|
|
7
|
+
* Both sides send it on every message. Changes within a version must be
|
|
8
|
+
* additive; anything breaking increments the version, and the host answers the
|
|
9
|
+
* handshake with the highest version both sides speak.
|
|
10
|
+
*/
|
|
11
|
+
declare const BRIDGE_VERSION = 1;
|
|
12
|
+
/**
|
|
13
|
+
* Message type the embedded app posts to the host to open a handshake.
|
|
14
|
+
*
|
|
15
|
+
* An app may re-announce (it re-posts `ready` until a `hello` lands, in case
|
|
16
|
+
* the host attached its listener late).
|
|
17
|
+
*/
|
|
18
|
+
declare const BRIDGE_READY_TYPE = "fanvue:bridge:ready";
|
|
19
|
+
/**
|
|
20
|
+
* Message type the host posts back, carrying the granted capabilities and the port.
|
|
21
|
+
*
|
|
22
|
+
* The host answers each verified `ready` with a fresh `hello` and port,
|
|
23
|
+
* closing the prior port; the app adopts the newest `hello`.
|
|
24
|
+
*/
|
|
25
|
+
declare const BRIDGE_HELLO_TYPE = "fanvue:bridge:hello";
|
|
26
|
+
/** Capability namespace for analytics (`analytics.track`). */
|
|
27
|
+
declare const ANALYTICS_CAPABILITY = "analytics";
|
|
28
|
+
/** Method name for tracking an analytics event. */
|
|
29
|
+
declare const ANALYTICS_TRACK_METHOD = "track";
|
|
30
|
+
/** The host capabilities an app can be granted. Grants are resolved server-side. */
|
|
31
|
+
declare const bridgeCapabilitySchema: ZodEnum<{
|
|
32
|
+
analytics: "analytics";
|
|
33
|
+
}>;
|
|
34
|
+
/** A host capability an app can be granted. */
|
|
35
|
+
type BridgeCapability = output<typeof bridgeCapabilitySchema>;
|
|
36
|
+
/**
|
|
37
|
+
* Error codes the host can return for a request.
|
|
38
|
+
*
|
|
39
|
+
* - `capability_denied` — the app was not granted the requested capability.
|
|
40
|
+
* - `invalid_payload` — the payload failed the host's schema for the method.
|
|
41
|
+
* - `rate_limited` — the app exceeded the host's budget for the method.
|
|
42
|
+
* - `internal` — the host handler failed unexpectedly.
|
|
43
|
+
*/
|
|
44
|
+
declare const bridgeErrorCodeSchema: ZodEnum<{
|
|
45
|
+
capability_denied: "capability_denied";
|
|
46
|
+
invalid_payload: "invalid_payload";
|
|
47
|
+
rate_limited: "rate_limited";
|
|
48
|
+
internal: "internal";
|
|
49
|
+
}>;
|
|
50
|
+
/** An error code the host can return for a request. */
|
|
51
|
+
type BridgeErrorCode = output<typeof bridgeErrorCodeSchema>;
|
|
52
|
+
/** Schema for the `ready` message an app posts to `window.parent`. */
|
|
53
|
+
declare const bridgeReadyMessageSchema: ZodObject<{
|
|
54
|
+
type: ZodLiteral<"fanvue:bridge:ready">;
|
|
55
|
+
v: ZodLiteral<1>;
|
|
56
|
+
}, $strip>;
|
|
57
|
+
/** The `ready` message an app posts to `window.parent` to open a handshake. */
|
|
58
|
+
type BridgeReadyMessage = output<typeof bridgeReadyMessageSchema>;
|
|
59
|
+
/** Schema for the `hello` message the host posts back with the transferred port. */
|
|
60
|
+
declare const bridgeHelloMessageSchema: ZodObject<{
|
|
61
|
+
type: ZodLiteral<"fanvue:bridge:hello">;
|
|
62
|
+
v: ZodLiteral<1>;
|
|
63
|
+
capabilities: ZodArray<ZodEnum<{
|
|
64
|
+
analytics: "analytics";
|
|
65
|
+
}>>;
|
|
66
|
+
}, $strip>;
|
|
67
|
+
/** The `hello` message the host posts back, alongside the transferred port. */
|
|
68
|
+
type BridgeHelloMessage = output<typeof bridgeHelloMessageSchema>;
|
|
69
|
+
/**
|
|
70
|
+
* Schema for a request sent app → host over the port.
|
|
71
|
+
*
|
|
72
|
+
* Capability and method names are bounded so a misbehaving sender cannot make
|
|
73
|
+
* either side hold or log arbitrarily large strings.
|
|
74
|
+
*/
|
|
75
|
+
declare const bridgeRequestSchema: ZodObject<{
|
|
76
|
+
v: ZodLiteral<1>;
|
|
77
|
+
id: ZodString;
|
|
78
|
+
kind: ZodLiteral<"request">;
|
|
79
|
+
capability: ZodString;
|
|
80
|
+
method: ZodString;
|
|
81
|
+
payload: ZodUnknown;
|
|
82
|
+
}, $strip>;
|
|
83
|
+
/** A request sent app → host over the port, correlated to a response by `id`. */
|
|
84
|
+
type BridgeRequest = output<typeof bridgeRequestSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* Schema for a response sent host → app over the port.
|
|
87
|
+
*
|
|
88
|
+
* The `id` and `error.message` are bounded like the request fields, so a
|
|
89
|
+
* misbehaving host cannot push oversized strings into the app.
|
|
90
|
+
*/
|
|
91
|
+
declare const bridgeResponseSchema: ZodObject<{
|
|
92
|
+
v: ZodLiteral<1>;
|
|
93
|
+
id: ZodString;
|
|
94
|
+
kind: ZodLiteral<"response">;
|
|
95
|
+
ok: ZodBoolean;
|
|
96
|
+
result: ZodOptional<ZodUnknown>;
|
|
97
|
+
error: ZodOptional<ZodObject<{
|
|
98
|
+
code: ZodEnum<{
|
|
99
|
+
capability_denied: "capability_denied";
|
|
100
|
+
invalid_payload: "invalid_payload";
|
|
101
|
+
rate_limited: "rate_limited";
|
|
102
|
+
internal: "internal";
|
|
103
|
+
}>;
|
|
104
|
+
message: ZodString;
|
|
105
|
+
}, $strip>>;
|
|
106
|
+
}, $strip>;
|
|
107
|
+
/** A response sent host → app over the port, correlated to a request by `id`. */
|
|
108
|
+
type BridgeResponse = output<typeof bridgeResponseSchema>;
|
|
109
|
+
/**
|
|
110
|
+
* Event names an app may emit.
|
|
111
|
+
*
|
|
112
|
+
* The host prefixes every name with `embedded_app_` before it reaches
|
|
113
|
+
* Amplitude, so an app can never emit a core platform event. Names are
|
|
114
|
+
* snake_case to match the platform's tracking-plan convention.
|
|
115
|
+
*/
|
|
116
|
+
declare const analyticsEventNameSchema: ZodString;
|
|
117
|
+
/**
|
|
118
|
+
* Properties attached to an analytics event: a flat record of short scalars.
|
|
119
|
+
*
|
|
120
|
+
* Nesting is rejected so the payload stays cheap to validate and to read in
|
|
121
|
+
* Amplitude, and `$`-prefixed keys are rejected because Amplitude reserves them.
|
|
122
|
+
* Numbers must be finite — `Infinity` and `NaN` do not survive serialisation.
|
|
123
|
+
*/
|
|
124
|
+
declare const analyticsPropertiesSchema: ZodRecord<ZodString, ZodUnion<readonly [ZodString, ZodNumber, ZodBoolean]>>;
|
|
125
|
+
/** Schema for the payload of `analytics.track`. */
|
|
126
|
+
declare const analyticsTrackPayloadSchema: ZodObject<{
|
|
127
|
+
eventName: ZodString;
|
|
128
|
+
properties: ZodOptional<ZodRecord<ZodString, ZodUnion<readonly [ZodString, ZodNumber, ZodBoolean]>>>;
|
|
129
|
+
}, $strip>;
|
|
130
|
+
/** The payload of `analytics.track`. */
|
|
131
|
+
type AnalyticsTrackPayload = output<typeof analyticsTrackPayloadSchema>;
|
|
132
|
+
/** Properties attached to an analytics event. */
|
|
133
|
+
type AnalyticsProperties = output<typeof analyticsPropertiesSchema>;
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/bridge/bridge.d.ts
|
|
136
|
+
/**
|
|
137
|
+
* Why a bridge request failed.
|
|
138
|
+
*
|
|
139
|
+
* Beyond the codes the host can return, the SDK adds `TIMEOUT` (the host never
|
|
140
|
+
* answered) and `PORT_CLOSED` (the message could not be put on the port —
|
|
141
|
+
* in practice the payload was not structured-cloneable). Note that
|
|
142
|
+
* `postMessage` on a closed port silently drops rather than throwing, so a
|
|
143
|
+
* torn-down host surfaces as `TIMEOUT`, not `PORT_CLOSED`.
|
|
144
|
+
*/
|
|
145
|
+
interface BridgeRequestError {
|
|
146
|
+
code: BridgeErrorCode | 'TIMEOUT' | 'PORT_CLOSED';
|
|
147
|
+
message: string;
|
|
148
|
+
}
|
|
149
|
+
/** The analytics capability, as exposed on a connected bridge. */
|
|
150
|
+
interface FanvueBridgeAnalytics {
|
|
151
|
+
track: (eventName: string, properties?: AnalyticsProperties) => Promise<Result<void, BridgeRequestError>>;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* A live connection to the Fanvue host page.
|
|
155
|
+
*
|
|
156
|
+
* @property capabilities - The capabilities the host granted this app.
|
|
157
|
+
* @property has - Whether a given capability was granted. Checking is
|
|
158
|
+
* optional: calling a capability without checking is safe and returns
|
|
159
|
+
* `capability_denied`.
|
|
160
|
+
* @property analytics - Fires events through the host page's Amplitude client.
|
|
161
|
+
*/
|
|
162
|
+
interface FanvueBridge {
|
|
163
|
+
capabilities: readonly BridgeCapability[];
|
|
164
|
+
has: (capability: BridgeCapability) => boolean;
|
|
165
|
+
analytics: FanvueBridgeAnalytics;
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/bridge/connect.d.ts
|
|
169
|
+
/**
|
|
170
|
+
* Why connecting to the host failed.
|
|
171
|
+
*
|
|
172
|
+
* - `NOT_EMBEDDED` — the app is not running in an iframe, so there is no host.
|
|
173
|
+
* - `TIMEOUT` — no `hello` arrived. The page is framed by something other than
|
|
174
|
+
* Fanvue, or Fanvue refused the handshake (unregistered embed origin).
|
|
175
|
+
*/
|
|
176
|
+
interface BridgeConnectError {
|
|
177
|
+
code: 'NOT_EMBEDDED' | 'TIMEOUT';
|
|
178
|
+
message: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Options for {@link connectFanvueBridge}.
|
|
182
|
+
*
|
|
183
|
+
* @property timeoutMs - How long to wait for the host's `hello`. Defaults to 3000.
|
|
184
|
+
*/
|
|
185
|
+
interface ConnectFanvueBridgeOptions {
|
|
186
|
+
timeoutMs?: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Opens the capability bridge to the Fanvue page hosting this app.
|
|
190
|
+
*
|
|
191
|
+
* Posts `fanvue:bridge:ready` to `window.parent` and waits for the host's
|
|
192
|
+
* `fanvue:bridge:hello`, which names the granted capabilities and transfers the
|
|
193
|
+
* `MessagePort` all later traffic flows over. The host verifies the frame's
|
|
194
|
+
* origin before replying, so a page framed by anything other than its
|
|
195
|
+
* registered Fanvue surface simply times out.
|
|
196
|
+
*
|
|
197
|
+
* `ready` is re-posted every 500ms until a `hello` lands (or the timeout
|
|
198
|
+
* fires), because the host may attach its listener after the app's first
|
|
199
|
+
* announce. The host answers each verified `ready` with a fresh `hello` and
|
|
200
|
+
* port, closing the prior port — so the bridge keeps listening for the
|
|
201
|
+
* lifetime of the connection and adopts the newest `hello` by swapping onto
|
|
202
|
+
* its port. Requests in flight on a superseded port fail by their timeouts.
|
|
203
|
+
*
|
|
204
|
+
* Calling this again is safe and is how an app reconnects after the iframe
|
|
205
|
+
* reloads: the host closes the previous port and re-handshakes.
|
|
206
|
+
*
|
|
207
|
+
* Failure is not exceptional — apps are expected to keep working standalone
|
|
208
|
+
* (local dev, previews) where the connection never succeeds.
|
|
209
|
+
*
|
|
210
|
+
* @param options - Optional overrides (e.g. a shorter `timeoutMs`).
|
|
211
|
+
* @returns A `Result` with the connected {@link FanvueBridge}, or a
|
|
212
|
+
* {@link BridgeConnectError} when there is no host to talk to.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* const result = await connectFanvueBridge();
|
|
216
|
+
* if (result.isOk() && result.value.has('analytics')) {
|
|
217
|
+
* await result.value.analytics.track('course_created', { chapters: 4 });
|
|
218
|
+
* }
|
|
219
|
+
*/
|
|
220
|
+
declare function connectFanvueBridge(options?: ConnectFanvueBridgeOptions): Promise<Result<FanvueBridge, BridgeConnectError>>;
|
|
221
|
+
//#endregion
|
|
222
|
+
export { bridgeCapabilitySchema as C, bridgeRequestSchema as D, bridgeReadyMessageSchema as E, bridgeResponseSchema as O, analyticsTrackPayloadSchema as S, bridgeHelloMessageSchema as T, BridgeReadyMessage as _, FanvueBridge as a, analyticsEventNameSchema as b, ANALYTICS_TRACK_METHOD as c, BRIDGE_HELLO_TYPE as d, BRIDGE_READY_TYPE as f, BridgeHelloMessage as g, BridgeErrorCode as h, BridgeRequestError as i, AnalyticsProperties as l, BridgeCapability as m, ConnectFanvueBridgeOptions as n, FanvueBridgeAnalytics as o, BRIDGE_VERSION as p, connectFanvueBridge as r, ANALYTICS_CAPABILITY as s, BridgeConnectError as t, AnalyticsTrackPayload as u, BridgeRequest as v, bridgeErrorCodeSchema as w, analyticsPropertiesSchema as x, BridgeResponse as y };
|
|
223
|
+
//# sourceMappingURL=index-CEFYZtlb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CEFYZtlb.d.ts","names":[],"sources":["../src/bridge/protocol.ts","../src/bridge/bridge.ts","../src/bridge/connect.ts"],"mappings":";;;;;AASA;;;;;cAAa,cAAA;;;;;AAgBb;;cARa,iBAAA;;;AAWb;;;;cAHa,iBAAA;AAMb;AAAA,cAHa,oBAAA;;cAGA,sBAAA;;cAGA,sBAAA,EAAsB,OAAA;;;;KAGvB,gBAAA,GAAmB,MAAA,QAAe,sBAAA;;;;;AAA9C;;;;cAUa,qBAAA,EAAqB,OAAA;;;;;;;KAQtB,eAAA,GAAkB,MAAA,QAAe,qBAAA;;cAGhC,wBAAA,EAAwB,SAAA;;;;;KAMzB,kBAAA,GAAqB,MAAA,QAAe,wBAAA;;cAGnC,wBAAA,EAAwB,SAAA;;;;;;;;KAOzB,kBAAA,GAAqB,MAAA,QAAe,wBAAA;;AAhBhD;;;;;cAwBa,mBAAA,EAAmB,SAAA;;;;;;;;;KAUpB,aAAA,GAAgB,MAAA,QAAe,mBAAA;;;;;;;cAQ9B,oBAAA,EAAoB,SAAA;;;;;;;;;;;;;;;;;KAUrB,cAAA,GAAiB,MAAA,QAAe,oBAAA;;;;;;;;cAS/B,wBAAA,EAAwB,SAAA;;;;;;;;cA0BxB,yBAAA,EAAyB,SAAA,CAAA,SAAA,EAAA,QAAA,WAAA,SAAA,EAAA,SAAA,EAAA,UAAA;;cAazB,2BAAA,EAA2B,SAAA;;;;;KAM5B,qBAAA,GAAwB,MAAA,QAAe,2BAAA;;KAGvC,mBAAA,GAAsB,MAAA,QAAe,yBAAA;;;;AA9JjD;;;;;AAQA;;;UCUiB,kBAAA;EACf,IAAA,EAAM,eAAA;EACN,OAAA;AAAA;;UAIe,qBAAA;EACf,KAAA,GACE,SAAA,UACA,UAAA,GAAa,mBAAA,KACV,OAAA,CAAQ,MAAA,OAAa,kBAAA;AAAA;;;;;ADN5B;;;;;UCkBiB,YAAA;EACf,YAAA,WAAuB,gBAAA;EACvB,GAAA,GAAM,UAAA,EAAY,gBAAA;EAClB,SAAA,EAAW,qBAAA;AAAA;;;;AD3Cb;;;;;AAQA;UEkBiB,kBAAA;EACf,IAAA;EACA,OAAA;AAAA;AFZF;;;;;AAAA,UEoBiB,0BAAA;EACf,SAAA;AAAA;;;AFfF;;;;;AAGA;;;;;;;;;AAGA;;;;;;;;;AAUA;;;;;;;iBEkCgB,mBAAA,CACd,OAAA,GAAU,0BAAA,GACT,OAAA,CAAQ,MAAA,CAAO,YAAA,EAAc,kBAAA"}
|