@machinemetrics/mm-react-embeddable 2.0.3-1 → 2.0.3-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.
@@ -1,7 +1,7 @@
1
- import W, { createContext as fe, useContext as N, useState as x, useRef as p, useCallback as m, useEffect as w, useMemo as ge } from "react";
2
- import T from "prop-types";
3
- import ce from "styled-components";
4
- const se = fe(null), te = fe({
1
+ import D, { createContext as Ie, useContext as te, useState as F, useRef as d, useCallback as h, useEffect as g, useMemo as Me } from "react";
2
+ import w from "prop-types";
3
+ import ge from "styled-components";
4
+ const ae = Ie(null), ue = Ie({
5
5
  pending: [],
6
6
  authorize: () => {
7
7
  },
@@ -16,317 +16,317 @@ const se = fe(null), te = fe({
16
16
  unsupported: {},
17
17
  setDelivered: () => {
18
18
  }
19
- }), be = "access_token", ie = (t) => t ? t.kind ? t : t.accessToken ? {
20
- kind: be,
21
- accessToken: t.accessToken,
22
- expiresAt: t.expiresAt || null
23
- } : null : null, Ee = 60, Re = 120, we = 3e4, Te = /* @__PURE__ */ new Set([
19
+ }), Ce = "access_token", Ee = (e) => e ? e.kind ? e : e.accessToken ? {
20
+ kind: Ce,
21
+ accessToken: e.accessToken,
22
+ expiresAt: e.expiresAt || null
23
+ } : null : null, ve = 60, Se = 120, Ue = 3e4, xe = /* @__PURE__ */ new Set([
24
24
  "host_not_allowed",
25
25
  "unbound_host_bound_guest",
26
26
  "invalid_token",
27
27
  "provider_unavailable"
28
- ]), re = (t) => {
28
+ ]), oe = (e) => {
29
29
  try {
30
- return new URL(t).origin;
30
+ return new URL(e).origin;
31
31
  } catch {
32
32
  return null;
33
33
  }
34
- }, ue = (t, s) => {
34
+ }, Re = (e, s) => {
35
35
  const u = s == null ? void 0 : s.origin;
36
- return !u || re(t == null ? void 0 : t.authUrl) !== u ? null : u;
37
- }, ae = (t) => {
38
- if (!t || /^\d{1,3}(?:\.\d{1,3}){3}$/.test(t) || t.includes(":"))
39
- return t;
40
- const s = t.split(".");
41
- return s.length <= 2 ? t : s.slice(-2).join(".");
42
- }, le = (t, s) => {
36
+ return !u || oe(e == null ? void 0 : e.authUrl) !== u ? null : u;
37
+ }, we = (e) => {
38
+ if (!e || /^\d{1,3}(?:\.\d{1,3}){3}$/.test(e) || e.includes(":"))
39
+ return e;
40
+ const s = e.split(".");
41
+ return s.length <= 2 ? e : s.slice(-2).join(".");
42
+ }, ke = (e, s) => {
43
43
  try {
44
- const u = new URL(t), h = new URL(s);
45
- return u.protocol !== h.protocol ? !0 : ae(u.hostname) !== ae(h.hostname);
44
+ const u = new URL(e), m = new URL(s);
45
+ return u.protocol !== m.protocol ? !0 : we(u.hostname) !== we(m.hostname);
46
46
  } catch {
47
47
  return !0;
48
48
  }
49
- }, ke = (t, { onBlocked: s, onClosed: u }) => {
50
- const h = window.open(
51
- t.authUrl,
49
+ }, Oe = (e, { onBlocked: s, onClosed: u }) => {
50
+ const m = window.open(
51
+ e.authUrl,
52
52
  "mm-embed-auth",
53
53
  "popup,width=600,height=700"
54
54
  );
55
- if (!h)
55
+ if (!m)
56
56
  return s(), () => {
57
57
  };
58
- const R = setInterval(() => {
59
- h.closed && (clearInterval(R), u());
58
+ const E = setInterval(() => {
59
+ m.closed && (clearInterval(E), u());
60
60
  }, 1e3);
61
- return () => clearInterval(R);
62
- }, pe = ({ children: t, launcher: s, broker: u, ready: h }) => {
63
- const R = N(se), [I, C] = x({}), [Z, X] = x({}), [H, _] = x({}), [g, A] = x({}), F = p(H);
64
- F.current = H;
65
- const L = p(I);
66
- L.current = I;
67
- const O = p(null), M = p({}), K = p({}), Y = p(u);
68
- Y.current = u;
69
- const U = p({}), D = p({}), P = m((e, n, r) => {
70
- !e || !n || (U.current[e] || (U.current[e] = /* @__PURE__ */ new Set()), r ? U.current[e].add(n) : U.current[e].delete(n));
71
- }, []), z = m((e) => {
72
- const n = M.current[e];
61
+ return () => clearInterval(E);
62
+ }, _e = ({ children: e, launcher: s, broker: u, ready: m }) => {
63
+ const E = te(ae), [I, A] = F({}), [q, J] = F({}), [Z, L] = F({}), [U, y] = F({}), R = d(Z);
64
+ R.current = Z;
65
+ const j = d(I);
66
+ j.current = I;
67
+ const P = d(null), b = d({}), Y = d({}), Q = d(u);
68
+ Q.current = u;
69
+ const v = d({}), K = d({}), N = h((r, n, t) => {
70
+ !r || !n || (v.current[r] || (v.current[r] = /* @__PURE__ */ new Set()), t ? v.current[r].add(n) : v.current[r].delete(n));
71
+ }, []), x = h((r) => {
72
+ const n = b.current[r];
73
73
  if (!n)
74
74
  return;
75
- const r = (c) => !c[e] || c[e].clientId ? c : { ...c, [e]: { ...c[e], clientId: n } };
76
- C(r), A(r);
77
- }, []), i = m(
78
- (e, n) => {
79
- e && (A((r) => r[e] ? r : {
80
- ...r,
81
- [e]: {
82
- origin: e,
75
+ const t = (o) => !o[r] || o[r].clientId ? o : { ...o, [r]: { ...o[r], clientId: n } };
76
+ A(t), y(t);
77
+ }, []), i = h(
78
+ (r, n) => {
79
+ r && (y((t) => t[r] ? t : {
80
+ ...t,
81
+ [r]: {
82
+ origin: r,
83
83
  reason: n,
84
- clientId: M.current[e] || null
84
+ clientId: b.current[r] || null
85
85
  }
86
- }), z(e));
86
+ }), x(r));
87
87
  },
88
- [z]
89
- ), a = m(
90
- (e, { v2: n = !1, origin: r = null } = {}) => {
91
- var c;
92
- if (r) {
93
- if (n && F.current[r]) {
94
- if (!((c = U.current[r]) != null && c.has(e.instanceId)))
88
+ [x]
89
+ ), a = h(
90
+ (r, { v2: n = !1, origin: t = null } = {}) => {
91
+ var o;
92
+ if (t) {
93
+ if (n && R.current[t]) {
94
+ if (!((o = v.current[t]) != null && o.has(r.instanceId)))
95
95
  return;
96
- const E = Date.now();
97
- if (E - (D.current[r] || 0) < we)
96
+ const p = Date.now();
97
+ if (p - (K.current[t] || 0) < Ue)
98
98
  return;
99
- D.current[r] = E, U.current[r].clear();
100
- const f = { ...F.current };
101
- delete f[r], F.current = f, _(f);
99
+ K.current[t] = p, v.current[t].clear();
100
+ const C = { ...R.current };
101
+ delete C[t], R.current = C, L(C);
102
102
  }
103
- C((E) => E[r] ? E : {
104
- ...E,
105
- [r]: {
106
- origin: r,
107
- authUrl: e.authUrl,
108
- status: n && Y.current ? "broker" : "interactive",
103
+ A((p) => p[t] ? p : {
104
+ ...p,
105
+ [t]: {
106
+ origin: t,
107
+ authUrl: r.authUrl,
108
+ status: n && Q.current ? "broker" : "interactive",
109
109
  v2: n,
110
- scope: e.scope || null,
111
- acceptsCredentials: K.current[r] || null,
110
+ scope: r.scope || null,
111
+ acceptsCredentials: Y.current[t] || null,
112
112
  consent: null,
113
113
  error: null,
114
- clientId: e.clientId || M.current[r] || null,
114
+ clientId: r.clientId || b.current[t] || null,
115
115
  popupBlocked: !1
116
116
  }
117
- }), z(r);
117
+ }), x(t);
118
118
  }
119
119
  },
120
- [z]
121
- ), o = p({}), d = m((e) => {
122
- o.current[e] && (clearTimeout(o.current[e]), delete o.current[e]);
123
- }, []), l = m(
124
- (e) => {
125
- d(e), C((n) => {
126
- if (!n[e])
120
+ [x]
121
+ ), c = d({}), f = h((r) => {
122
+ c.current[r] && (clearTimeout(c.current[r]), delete c.current[r]);
123
+ }, []), l = h(
124
+ (r) => {
125
+ f(r), A((n) => {
126
+ if (!n[r])
127
127
  return n;
128
- const r = { ...n };
129
- return delete r[e], r;
128
+ const t = { ...n };
129
+ return delete t[r], t;
130
130
  });
131
131
  },
132
- [d]
133
- ), b = m(
134
- (e) => {
135
- e && (l(e), X((n) => ({
132
+ [f]
133
+ ), k = h(
134
+ (r) => {
135
+ r && (l(r), J((n) => ({
136
136
  ...n,
137
- [e]: (n[e] || 0) + 1
137
+ [r]: (n[r] || 0) + 1
138
138
  })));
139
139
  },
140
140
  [l]
141
- ), $ = m(
142
- (e) => {
143
- l(e.origin);
141
+ ), B = h(
142
+ (r) => {
143
+ l(r.origin);
144
144
  },
145
145
  [l]
146
- ), S = m(
147
- (e, n) => {
148
- const r = ue(e, n);
149
- if (r) {
150
- if (le(r, window.location.origin)) {
151
- i(r, "cross-site-legacy");
146
+ ), O = h(
147
+ (r, n) => {
148
+ const t = Re(r, n);
149
+ if (t) {
150
+ if (ke(t, window.location.origin)) {
151
+ i(t, "cross-site-legacy");
152
152
  return;
153
153
  }
154
- a(e, { origin: r });
154
+ a(r, { origin: t });
155
155
  }
156
156
  },
157
157
  [a, i]
158
158
  );
159
- w(() => {
160
- if (!R)
159
+ g(() => {
160
+ if (!E)
161
161
  return;
162
- const e = [
163
- R.addListener("*", "init", (n, r) => {
164
- r != null && r.origin && (n != null && n.clientId) && (M.current[r.origin] = n.clientId, z(r.origin)), r != null && r.origin && Array.isArray(n == null ? void 0 : n.acceptsCredentials) ? K.current[r.origin] = n.acceptsCredentials : r != null && r.origin && le(r.origin, window.location.origin) && i(r.origin, "cross-site-legacy");
162
+ const r = [
163
+ E.addListener("*", "init", (n, t) => {
164
+ t != null && t.origin && (n != null && n.clientId) && (b.current[t.origin] = n.clientId, x(t.origin)), t != null && t.origin && Array.isArray(n == null ? void 0 : n.acceptsCredentials) ? Y.current[t.origin] = n.acceptsCredentials : t != null && t.origin && ke(t.origin, window.location.origin) && i(t.origin, "cross-site-legacy");
165
165
  }),
166
- R.addListener("*", "authorize", S),
167
- R.addListener("*", "login", S),
168
- R.addListener(
166
+ E.addListener("*", "authorize", O),
167
+ E.addListener("*", "login", O),
168
+ E.addListener(
169
169
  "*",
170
170
  "credential-request",
171
- (n, r) => a(n, { v2: !0, origin: ue(n, r) })
171
+ (n, t) => a(n, { v2: !0, origin: Re(n, t) })
172
172
  )
173
173
  ];
174
- return () => e.forEach((n) => n());
175
- }, [R, S, a, z, i]), w(() => {
176
- const e = (n) => {
177
- const r = n == null ? void 0 : n.data;
178
- if (!r || r.type !== "authorized")
174
+ return () => r.forEach((n) => n());
175
+ }, [E, O, a, x, i]), g(() => {
176
+ const r = (n) => {
177
+ const t = n == null ? void 0 : n.data;
178
+ if (!t || t.type !== "authorized")
179
179
  return;
180
- const c = re(r.authUrl);
181
- if (!c || n.origin !== c)
180
+ const o = oe(t.authUrl);
181
+ if (!o || n.origin !== o)
182
182
  return;
183
- const E = L.current[c];
184
- if (!(!E || E.status !== "interactive")) {
185
- if (r.accessToken) {
186
- _((f) => ({
187
- ...f,
188
- [c]: ie({ accessToken: r.accessToken })
189
- })), l(c);
183
+ const p = j.current[o];
184
+ if (!(!p || p.status !== "interactive")) {
185
+ if (t.accessToken) {
186
+ L((C) => ({
187
+ ...C,
188
+ [o]: Ee({ accessToken: t.accessToken })
189
+ })), l(o);
190
190
  return;
191
191
  }
192
- b(c);
192
+ k(o);
193
193
  }
194
194
  };
195
- return window.addEventListener("message", e), () => window.removeEventListener("message", e);
196
- }, [l, b]);
197
- const k = m(
198
- (e, n) => {
199
- const r = e == null ? void 0 : e.origin, c = ie(n);
200
- !r || !c || (_((E) => ({ ...E, [r]: c })), l(r));
195
+ return window.addEventListener("message", r), () => window.removeEventListener("message", r);
196
+ }, [l, k]);
197
+ const $ = h(
198
+ (r, n) => {
199
+ const t = r == null ? void 0 : r.origin, o = Ee(n);
200
+ !t || !o || (L((p) => ({ ...p, [t]: o })), l(t));
201
201
  },
202
202
  [l]
203
- ), v = m((e, n) => {
204
- C((r) => r[e] ? { ...r, [e]: { ...r[e], ...n } } : r);
205
- }, []), y = p({}), q = m(
206
- async (e, { approve: n } = {}) => {
207
- const r = Y.current, { origin: c } = e;
208
- let E;
203
+ ), T = h((r, n) => {
204
+ A((t) => t[r] ? { ...t, [r]: { ...t[r], ...n } } : t);
205
+ }, []), M = d({}), z = h(
206
+ async (r, { approve: n } = {}) => {
207
+ const t = Q.current, { origin: o } = r;
208
+ let p;
209
209
  try {
210
- E = await r(
210
+ p = await t(
211
211
  {
212
- origin: c,
213
- clientId: e.clientId,
214
- scope: e.scope,
215
- authUrl: e.authUrl
212
+ origin: o,
213
+ clientId: r.clientId,
214
+ scope: r.scope,
215
+ authUrl: r.authUrl
216
216
  },
217
217
  { approve: n }
218
218
  );
219
219
  } catch {
220
- n ? v(c, { error: { reason: "broker_unavailable" } }) : v(c, { status: "interactive" });
220
+ n ? T(o, { error: { reason: "broker_unavailable" } }) : T(o, { status: "interactive" });
221
221
  return;
222
222
  }
223
- const f = E == null ? void 0 : E.status, j = (E == null ? void 0 : E.body) || {};
224
- if (f === 200 && j.credential) {
225
- k(e, j.credential);
223
+ const C = p == null ? void 0 : p.status, S = (p == null ? void 0 : p.body) || {};
224
+ if (C === 200 && S.credential) {
225
+ $(r, S.credential);
226
226
  return;
227
227
  }
228
- if (f === 409 && j.consentRequired) {
229
- v(c, {
228
+ if (C === 409 && S.consentRequired) {
229
+ T(o, {
230
230
  status: "interactive",
231
231
  consent: {
232
- client: j.client || null,
233
- stepUp: !!j.stepUp,
234
- scope: j.scope || e.scope
232
+ client: S.client || null,
233
+ stepUp: !!S.stepUp,
234
+ scope: S.scope || r.scope
235
235
  },
236
236
  error: null
237
237
  });
238
238
  return;
239
239
  }
240
- const Q = j.error || "broker_error";
241
- if (!n && Te.has(Q)) {
242
- v(c, { status: "interactive" });
240
+ const G = S.error || "broker_error";
241
+ if (!n && xe.has(G)) {
242
+ T(o, { status: "interactive" });
243
243
  return;
244
244
  }
245
- if (n && Q === "consent_denied") {
246
- v(c, { error: null });
245
+ if (n && G === "consent_denied") {
246
+ T(o, { error: null });
247
247
  return;
248
248
  }
249
- if (Q === "rate_limited" && !e.rateLimitRetried) {
250
- const ne = Math.min(
251
- Number(j.retryAfter) > 0 ? Number(j.retryAfter) : Ee,
252
- Re
253
- ), he = { ...e, rateLimitRetried: !0 };
254
- d(c), o.current[c] = setTimeout(() => {
255
- delete o.current[c], y.current[c] = !0, B.current(he, { approve: n }).finally(() => {
256
- delete y.current[c];
249
+ if (G === "rate_limited" && !r.rateLimitRetried) {
250
+ const H = Math.min(
251
+ Number(S.retryAfter) > 0 ? Number(S.retryAfter) : ve,
252
+ Se
253
+ ), ne = { ...r, rateLimitRetried: !0 };
254
+ f(o), c.current[o] = setTimeout(() => {
255
+ delete c.current[o], M.current[o] = !0, ee.current(ne, { approve: n }).finally(() => {
256
+ delete M.current[o];
257
257
  });
258
- }, ne * 1e3), v(c, { rateLimitRetried: !0 });
258
+ }, H * 1e3), T(o, { rateLimitRetried: !0 });
259
259
  return;
260
260
  }
261
- l(c), A((ne) => ({
262
- ...ne,
263
- [c]: {
264
- origin: c,
265
- reason: `broker:${Q}`,
266
- detail: { status: f != null ? f : null, reason: Q },
267
- clientId: e.clientId || M.current[c] || null
261
+ l(o), y((H) => ({
262
+ ...H,
263
+ [o]: {
264
+ origin: o,
265
+ reason: `broker:${G}`,
266
+ detail: { status: C != null ? C : null, reason: G },
267
+ clientId: r.clientId || b.current[o] || null
268
268
  }
269
269
  }));
270
270
  },
271
- [k, v, l, d]
272
- ), B = p(q);
273
- B.current = q, w(() => {
274
- Object.values(I).forEach((e) => {
275
- e.status !== "broker" || y.current[e.origin] || o.current[e.origin] || (y.current[e.origin] = !0, q(e).finally(() => {
276
- delete y.current[e.origin];
271
+ [$, T, l, f]
272
+ ), ee = d(z);
273
+ ee.current = z, g(() => {
274
+ Object.values(I).forEach((r) => {
275
+ r.status !== "broker" || M.current[r.origin] || c.current[r.origin] || (M.current[r.origin] = !0, z(r).finally(() => {
276
+ delete M.current[r.origin];
277
277
  }));
278
278
  });
279
- }, [I, q]);
280
- const G = m(
281
- (e) => !Y.current || !(e != null && e.consent) || y.current[e.origin] ? Promise.resolve() : (y.current[e.origin] = !0, q(e, { approve: !0 }).finally(() => {
282
- delete y.current[e.origin];
279
+ }, [I, z]);
280
+ const W = h(
281
+ (r) => !Q.current || !(r != null && r.consent) || M.current[r.origin] ? Promise.resolve() : (M.current[r.origin] = !0, z(r, { approve: !0 }).finally(() => {
282
+ delete M.current[r.origin];
283
283
  })),
284
- [q]
284
+ [z]
285
285
  );
286
- w(() => () => {
287
- O.current && O.current(), Object.values(o.current).forEach(clearTimeout);
288
- }, []), w(() => {
289
- h === !1 && (Object.values(o.current).forEach(clearTimeout), o.current = {}, y.current = {}, M.current = {}, K.current = {}, U.current = {}, D.current = {}, F.current = {}, _({}), C({}), A({}));
290
- }, [h]);
291
- const J = m(
292
- (e) => {
293
- O.current && (O.current(), O.current = null);
294
- const n = s || ke;
295
- O.current = n(e, {
286
+ g(() => () => {
287
+ P.current && P.current(), Object.values(c.current).forEach(clearTimeout);
288
+ }, []), g(() => {
289
+ m === !1 && (Object.values(c.current).forEach(clearTimeout), c.current = {}, M.current = {}, b.current = {}, Y.current = {}, v.current = {}, K.current = {}, R.current = {}, L({}), A({}), y({}));
290
+ }, [m]);
291
+ const X = h(
292
+ (r) => {
293
+ P.current && (P.current(), P.current = null);
294
+ const n = s || Oe;
295
+ P.current = n(r, {
296
296
  onBlocked: () => {
297
- C((r) => r[e.origin] ? {
298
- ...r,
299
- [e.origin]: { ...r[e.origin], popupBlocked: !0 }
300
- } : r);
297
+ A((t) => t[r.origin] ? {
298
+ ...t,
299
+ [r.origin]: { ...t[r.origin], popupBlocked: !0 }
300
+ } : t);
301
301
  },
302
302
  // A completed login already removed the entry. A v2 entry stays pending so the prompt remains;
303
303
  // a legacy guest is remounted because it only learns of a login by reloading.
304
304
  onClosed: () => {
305
- const r = L.current[e.origin];
306
- !r || r.v2 || b(e.origin);
305
+ const t = j.current[r.origin];
306
+ !t || t.v2 || k(r.origin);
307
307
  }
308
308
  });
309
309
  },
310
- [s, b]
311
- ), V = {
310
+ [s, k]
311
+ ), re = {
312
312
  pending: Object.values(I).filter(
313
- (e) => e.status === "interactive"
313
+ (r) => r.status === "interactive"
314
314
  ),
315
- authorize: J,
316
- approve: G,
317
- complete: k,
318
- dismiss: $,
319
- originEpochs: Z,
320
- credentials: H,
321
- unsupported: g,
322
- setDelivered: P
315
+ authorize: X,
316
+ approve: W,
317
+ complete: $,
318
+ dismiss: B,
319
+ originEpochs: q,
320
+ credentials: Z,
321
+ unsupported: U,
322
+ setDelivered: N
323
323
  };
324
- return /* @__PURE__ */ W.createElement(te.Provider, { value: V }, t);
324
+ return /* @__PURE__ */ D.createElement(ue.Provider, { value: re }, e);
325
325
  };
326
- pe.propTypes = {
327
- children: T.node,
328
- launcher: T.func,
329
- ready: T.bool,
326
+ _e.propTypes = {
327
+ children: w.node,
328
+ launcher: w.func,
329
+ ready: w.bool,
330
330
  /**
331
331
  * `async (request, { approve }) => result` where request =
332
332
  * `{ origin, clientId, scope, authUrl }` (origin is the zone-attested frame origin) and result
@@ -335,181 +335,181 @@ pe.propTypes = {
335
335
  * on 200, `{ consentRequired: true, client: { name, hostname }, stepUp }` on 409, `{ error,
336
336
  * … }` otherwise. Provided only by hosts that are themselves first-party clients.
337
337
  */
338
- broker: T.func
338
+ broker: w.func
339
339
  };
340
- const Ie = () => N(te), _e = (t) => {
341
- const { originEpochs: s } = N(te), u = re(t);
340
+ const $e = () => te(ue), ze = (e) => {
341
+ const { originEpochs: s } = te(ue), u = oe(e);
342
342
  return u && s[u] || 0;
343
- }, Me = (t) => {
344
- const { credentials: s } = N(te), u = re(t);
343
+ }, Fe = (e) => {
344
+ const { credentials: s } = te(ue), u = oe(e);
345
345
  return u && s[u] || null;
346
- }, ye = (t) => {
347
- const { unsupported: s } = N(te), u = re(t);
346
+ }, De = (e) => {
347
+ const { unsupported: s } = te(ue), u = oe(e);
348
348
  return u && s[u] || null;
349
- }, de = "MMEmbeddableZoneProvider requires a boolean `ready` prop (true once the host holds the bearer its credentialBroker needs). Embedded apps will not load until it is provided.", Ce = ({
350
- children: t,
349
+ }, Te = "MMEmbeddableZoneProvider requires a boolean `ready` prop (true once the host holds the bearer its credentialBroker needs). Embedded apps will not load until it is provided.", Pe = ({
350
+ children: e,
351
351
  authorizationLauncher: s,
352
352
  credentialBroker: u,
353
- ready: h
353
+ ready: m
354
354
  }) => {
355
- const R = h === !0, I = p(!1);
356
- w(() => {
357
- h !== void 0 || I.current || (I.current = !0, console.error(de), typeof window != "undefined" && typeof window.alert == "function" && window.alert(de));
358
- }, [h]);
359
- const [C, Z] = x({}), [X, H] = x({}), _ = p({}), g = p({}), A = p({}), F = m((i, a) => {
360
- var o;
361
- return !!((o = A.current[i]) != null && o.has(a));
362
- }, []), L = m((i, a, o) => {
363
- Z((d) => ({ ...d, [i]: { origin: a, frameRef: o } }));
364
- }, []), O = m((i) => {
365
- Z((a) => {
366
- const o = { ...a };
367
- return delete o[i], o;
368
- }), H((a) => {
369
- const o = { ...a };
370
- return delete o[i], o;
371
- }), delete A.current[i], Object.keys(g.current).forEach((a) => {
372
- g.current[a].instanceId === i && delete g.current[a];
355
+ const E = m === !0, I = d(!1);
356
+ g(() => {
357
+ m !== void 0 || I.current || (I.current = !0, console.error(Te), typeof window != "undefined" && typeof window.alert == "function" && window.alert(Te));
358
+ }, [m]);
359
+ const [A, q] = F({}), [J, Z] = F({}), L = d({}), U = d({}), y = d({}), R = h((i, a) => {
360
+ var c;
361
+ return !!((c = y.current[i]) != null && c.has(a));
362
+ }, []), j = h((i, a, c) => {
363
+ q((f) => ({ ...f, [i]: { origin: a, frameRef: c } }));
364
+ }, []), P = h((i) => {
365
+ q((a) => {
366
+ const c = { ...a };
367
+ return delete c[i], c;
368
+ }), Z((a) => {
369
+ const c = { ...a };
370
+ return delete c[i], c;
371
+ }), delete y.current[i], Object.keys(U.current).forEach((a) => {
372
+ U.current[a].instanceId === i && delete U.current[a];
373
373
  });
374
374
  }, []);
375
- w(() => () => {
376
- g.current = {};
377
- }, []), w(() => {
378
- const i = (o = [], d, l) => {
379
- o.forEach((b) => b(d, l));
380
- }, a = (o) => {
381
- var v, y, q, B, G, J, V;
382
- if (!((v = o == null ? void 0 : o.data) != null && v.instanceId))
375
+ g(() => () => {
376
+ U.current = {};
377
+ }, []), g(() => {
378
+ const i = (c = [], f, l) => {
379
+ c.forEach((k) => k(f, l));
380
+ }, a = (c) => {
381
+ var T, M, z, ee, W, X, re;
382
+ if (!((T = c == null ? void 0 : c.data) != null && T.instanceId))
383
383
  return;
384
- const { instanceId: d, type: l } = o.data, b = C[d], $ = (q = (y = b == null ? void 0 : b.frameRef) == null ? void 0 : y.current) == null ? void 0 : q.contentWindow;
385
- if (!$ || o.source !== $ || o.origin !== b.origin)
384
+ const { instanceId: f, type: l } = c.data, k = A[f], B = (z = (M = k == null ? void 0 : k.frameRef) == null ? void 0 : M.current) == null ? void 0 : z.contentWindow;
385
+ if (!B || c.source !== B || c.origin !== k.origin)
386
386
  return;
387
- const S = { origin: o.origin }, k = _.current;
387
+ const O = { origin: c.origin }, $ = L.current;
388
388
  if (l === "response") {
389
- const { callbackId: e, response: n, error: r } = o.data, c = g.current[e];
390
- c && c.instanceId === d && (c.callback(n, r), delete g.current[e]);
389
+ const { callbackId: r, response: n, error: t } = c.data, o = U.current[r];
390
+ o && o.instanceId === f && (o.callback(n, t), delete U.current[r]);
391
391
  return;
392
392
  }
393
393
  if (l === "mark-registered") {
394
- const { requestType: e } = o.data;
395
- A.current[d] || (A.current[d] = /* @__PURE__ */ new Set()), A.current[d].add(e);
394
+ const { requestType: r } = c.data;
395
+ y.current[f] || (y.current[f] = /* @__PURE__ */ new Set()), y.current[f].add(r);
396
396
  return;
397
397
  }
398
- l === "ready" && H((e) => ({ ...e, [d]: !0 })), i((B = k[d]) == null ? void 0 : B[l], o.data, S), i((G = k["*"]) == null ? void 0 : G[l], o.data, S), i((J = k[d]) == null ? void 0 : J["*"], o.data, S), i((V = k["*"]) == null ? void 0 : V["*"], o.data, S);
398
+ l === "ready" && Z((r) => ({ ...r, [f]: !0 })), i((ee = $[f]) == null ? void 0 : ee[l], c.data, O), i((W = $["*"]) == null ? void 0 : W[l], c.data, O), i((X = $[f]) == null ? void 0 : X["*"], c.data, O), i((re = $["*"]) == null ? void 0 : re["*"], c.data, O);
399
399
  };
400
400
  return window.addEventListener("message", a), () => {
401
401
  window.removeEventListener("message", a);
402
402
  };
403
- }, [C]);
404
- const M = m(
405
- (i, a, o, d) => {
406
- var b, $;
407
- const l = C[i];
403
+ }, [A]);
404
+ const b = h(
405
+ (i, a, c, f) => {
406
+ var k, B;
407
+ const l = A[i];
408
408
  if (!l) {
409
409
  console.warn(`Origin not set for id: ${i}. Unable to send message.`);
410
410
  return;
411
411
  }
412
- ($ = (b = l == null ? void 0 : l.frameRef) == null ? void 0 : b.current) != null && $.contentWindow && l.frameRef.current.contentWindow.postMessage(
413
- { type: a, ...o, instanceId: i },
414
- d || l.origin
412
+ (B = (k = l == null ? void 0 : l.frameRef) == null ? void 0 : k.current) != null && B.contentWindow && l.frameRef.current.contentWindow.postMessage(
413
+ { type: a, ...c, instanceId: i },
414
+ f || l.origin
415
415
  );
416
416
  },
417
- [C]
418
- ), K = p(0), Y = m(() => `${Date.now()}-${++K.current}`, []), U = m(
419
- async (i, a, o = {}) => new Promise((d, l) => {
420
- const b = Y(), $ = (S, k) => {
421
- delete g.current[b], k ? l(k) : d(S);
417
+ [A]
418
+ ), Y = d(0), Q = h(() => `${Date.now()}-${++Y.current}`, []), v = h(
419
+ async (i, a, c = {}) => new Promise((f, l) => {
420
+ const k = Q(), B = (O, $) => {
421
+ delete U.current[k], $ ? l($) : f(O);
422
422
  };
423
- g.current[b] = { instanceId: i, callback: $ }, M(i, "request", { callbackId: b, requestType: a, data: o });
423
+ U.current[k] = { instanceId: i, callback: B }, b(i, "request", { callbackId: k, requestType: a, data: c });
424
424
  }),
425
- [M]
426
- ), D = m(
425
+ [b]
426
+ ), K = h(
427
427
  (i, a) => {
428
- M(i, "load-options", a);
428
+ b(i, "load-options", a);
429
429
  },
430
- [M]
431
- ), P = m(
430
+ [b]
431
+ ), N = h(
432
432
  (i, a) => {
433
- M(i, "validate", a);
433
+ b(i, "validate", a);
434
434
  },
435
- [M]
436
- ), z = ge(
435
+ [b]
436
+ ), x = Me(
437
437
  () => ({
438
- registerFrame: L,
439
- unregisterFrame: O,
440
- sendMessage: M,
441
- sendRequest: U,
442
- loadOptions: D,
443
- validate: P,
444
- hasHandler: F,
445
- readyFrames: X,
446
- ready: R,
447
- addListener: (i, a, o) => (_.current[i] || (_.current[i] = {}), _.current[i][a] || (_.current[i][a] = []), _.current[i][a].push(o), () => {
448
- _.current[i][a] = _.current[i][a].filter((d) => d !== o);
438
+ registerFrame: j,
439
+ unregisterFrame: P,
440
+ sendMessage: b,
441
+ sendRequest: v,
442
+ loadOptions: K,
443
+ validate: N,
444
+ hasHandler: R,
445
+ readyFrames: J,
446
+ ready: E,
447
+ addListener: (i, a, c) => (L.current[i] || (L.current[i] = {}), L.current[i][a] || (L.current[i][a] = []), L.current[i][a].push(c), () => {
448
+ L.current[i][a] = L.current[i][a].filter((f) => f !== c);
449
449
  })
450
450
  }),
451
451
  [
452
- L,
453
- O,
454
- M,
455
- U,
456
- D,
452
+ j,
457
453
  P,
458
- F,
459
- X,
460
- R
454
+ b,
455
+ v,
456
+ K,
457
+ N,
458
+ R,
459
+ J,
460
+ E
461
461
  ]
462
462
  );
463
- return /* @__PURE__ */ W.createElement(se.Provider, { value: z }, /* @__PURE__ */ W.createElement(
464
- pe,
463
+ return /* @__PURE__ */ D.createElement(ae.Provider, { value: x }, /* @__PURE__ */ D.createElement(
464
+ _e,
465
465
  {
466
466
  launcher: s,
467
467
  broker: u,
468
- ready: R
468
+ ready: E
469
469
  },
470
- t
470
+ e
471
471
  ));
472
- }, ee = (t, s, u) => {
473
- const h = N(se);
474
- if (h === null)
472
+ }, se = (e, s, u) => {
473
+ const m = te(ae);
474
+ if (m === null)
475
475
  throw new Error(
476
476
  "useEmbeddedEffect must be used within a MMEmbeddableZoneProvider"
477
477
  );
478
- const R = p(u);
479
- w(() => {
480
- R.current = u;
481
- }, [u]), w(() => {
482
- if (!(!t || !s)) {
478
+ const E = d(u);
479
+ g(() => {
480
+ E.current = u;
481
+ }, [u]), g(() => {
482
+ if (!(!e || !s)) {
483
483
  if (s.startsWith("key:")) {
484
484
  const I = s.substring(4);
485
- return h.readyFrames[t] && h.sendMessage(t, "subscribe-key", { keyChord: I }), h.addListener(
486
- t,
485
+ return m.readyFrames[e] && m.sendMessage(e, "subscribe-key", { keyChord: I }), m.addListener(
486
+ e,
487
487
  `key-pressed:${I}`,
488
- (...Z) => R.current(...Z)
488
+ (...q) => E.current(...q)
489
489
  );
490
490
  }
491
- return h.addListener(
492
- t,
491
+ return m.addListener(
492
+ e,
493
493
  s,
494
- (...I) => R.current(...I)
494
+ (...I) => E.current(...I)
495
495
  );
496
496
  }
497
- }, [h, t, s]);
497
+ }, [m, e, s]);
498
498
  };
499
- Ce.propTypes = {
500
- children: T.node.isRequired,
499
+ Pe.propTypes = {
500
+ children: w.node.isRequired,
501
501
  /**
502
502
  * Required. True once the host holds its bearer; zones mount no iframe until then. Missing =
503
503
  * not ready, plus a one-time alert.
504
504
  */
505
- ready: T.bool.isRequired,
505
+ ready: w.bool.isRequired,
506
506
  /**
507
507
  * Optional interactive-step launcher for embedded authorizations,
508
508
  * `(entry, { onBlocked, onClosed }) => cleanup`. Defaults to a top-level
509
509
  * popup. Hosts that cannot open windows (Android WebView shells) drive
510
510
  * their own UI from useEmbeddedAuthorizations() instead.
511
511
  */
512
- authorizationLauncher: T.func,
512
+ authorizationLauncher: w.func,
513
513
  /**
514
514
  * Optional credential broker for hosts that are first-party MachineMetrics clients
515
515
  * (`async (request, { approve }) => result`, see EmbeddedAuthorizationManager). When present,
@@ -517,16 +517,36 @@ Ce.propTypes = {
517
517
  * from the broker's `client` identity; a broker answer the host may not act on falls back to the
518
518
  * interactive entry and its popup.
519
519
  */
520
- credentialBroker: T.func
520
+ credentialBroker: w.func
521
521
  };
522
- const oe = ce.default || ce, Le = 1e4, Ae = 2e3, Ue = "credentials", ve = (t, s) => `${t}/mm-embedded-interop?id=${encodeURIComponent(s)}&origin=${encodeURIComponent(
522
+ const pe = ge.default || ge, Be = 1e4, We = 6e3, qe = 5e3, je = 2e4, He = 3e3, Ae = () => typeof document != "undefined" && document.visibilityState === "hidden", ce = (e, s, u) => {
523
+ if (e.current && clearTimeout(e.current.handle), Ae()) {
524
+ e.current = { ms: s, fn: u, suspended: !0 };
525
+ return;
526
+ }
527
+ const m = Date.now(), E = setTimeout(() => {
528
+ if (Date.now() - m - s > He) {
529
+ ce(e, s, u);
530
+ return;
531
+ }
532
+ e.current = void 0, u();
533
+ }, s);
534
+ e.current = { handle: E, ms: s, fn: u };
535
+ }, V = (e) => {
536
+ e.current && clearTimeout(e.current.handle), e.current = void 0;
537
+ }, de = (e) => {
538
+ e.current && !e.current.suspended && (clearTimeout(e.current.handle), e.current = { ms: e.current.ms, fn: e.current.fn, suspended: !0 });
539
+ }, fe = (e) => {
540
+ e.current && e.current.suspended && ce(e, e.current.ms, e.current.fn);
541
+ }, Ze = "credentials", Ke = (e, s) => `${e}/mm-embedded-interop?id=${encodeURIComponent(s)}&origin=${encodeURIComponent(
523
542
  window.location.origin
524
- )}&caps=${Ue}`, xe = oe.iframe`
543
+ )}&caps=${Ze}`, Ge = pe.iframe`
525
544
  width: 100%;
526
545
  height: 100%;
527
546
  border: none;
528
- visibility: ${(t) => t.$isReady ? "visible" : "hidden"};
529
- `, Oe = oe.div`
547
+ visibility: ${(e) => e.$isReady ? "visible" : "hidden"};
548
+ ${(e) => e.$collapsed ? "position: absolute; width: 1px; height: 1px; overflow: hidden;" : ""}
549
+ `, Ve = pe.div`
530
550
  width: 100%;
531
551
  height: 100%;
532
552
  display: flex;
@@ -539,8 +559,8 @@ const oe = ce.default || ce, Le = 1e4, Ae = 2e3, Ue = "credentials", ve = (t, s)
539
559
  text-align: center;
540
560
  color: #555;
541
561
  font-size: 14px;
542
- `, ze = (t) => {
543
- const s = t && t.origin || "This app", u = t && t.reason || "";
562
+ `, Ye = (e) => {
563
+ const s = e && e.origin || "This app", u = e && e.reason || "";
544
564
  switch (u) {
545
565
  case "broker:scope_above_ceiling":
546
566
  return {
@@ -567,176 +587,206 @@ const oe = ce.default || ce, Le = 1e4, Ae = 2e3, Ue = "credentials", ve = (t, s)
567
587
  detail: "It needs an update to support embedding from a different domain."
568
588
  };
569
589
  }
570
- }, me = ({ entry: t }) => {
571
- const s = ze(t);
572
- return /* @__PURE__ */ W.createElement(Oe, { "data-reason": t && t.reason || void 0 }, /* @__PURE__ */ W.createElement("div", { style: { fontWeight: 600 } }, s.title), /* @__PURE__ */ W.createElement("div", { style: { fontSize: 12, color: "#888" } }, s.detail));
590
+ }, Le = ({ entry: e }) => {
591
+ const s = Ye(e);
592
+ return /* @__PURE__ */ D.createElement(Ve, { "data-reason": e && e.reason || void 0 }, /* @__PURE__ */ D.createElement("div", { style: { fontWeight: 600 } }, s.title), /* @__PURE__ */ D.createElement("div", { style: { fontSize: 12, color: "#888" } }, s.detail));
573
593
  };
574
- me.propTypes = {
575
- entry: T.shape({
576
- origin: T.string,
577
- name: T.string,
578
- reason: T.string,
579
- detail: T.object
594
+ Le.propTypes = {
595
+ entry: w.shape({
596
+ origin: w.string,
597
+ name: w.string,
598
+ reason: w.string,
599
+ detail: w.object
580
600
  })
581
601
  };
582
- const $e = oe.div`
602
+ const Qe = pe.div`
583
603
  height: 100%;
584
604
  display: flex;
585
605
  flex: 1;
586
606
  align-items: center;
587
607
  justify-content: center;
588
- `, Se = () => /* @__PURE__ */ W.createElement($e, null, /* @__PURE__ */ W.createElement("div", { style: { textAlign: "center" } }, "This app couldn’t be loaded as an embeddable widget.")), Fe = ({
589
- id: t,
608
+ `, Xe = () => /* @__PURE__ */ D.createElement(Qe, null, /* @__PURE__ */ D.createElement("div", { style: { textAlign: "center" } }, "This app couldn’t be loaded as an embeddable widget.")), Je = ({
609
+ id: e,
590
610
  src: s,
591
611
  path: u,
592
- onInit: h = () => {
612
+ onInit: m = () => {
593
613
  },
594
- onTimeout: R,
595
- context: I = {},
596
- params: C = {},
614
+ onTimeout: E,
615
+ onRemount: I,
616
+ onStall: A,
617
+ context: q = {},
618
+ params: J = {},
597
619
  renderUnsupported: Z,
598
- renderTimeout: X,
599
- ...H
620
+ renderTimeout: L,
621
+ ...U
600
622
  }) => {
601
- if ("isConfiguring" in H)
623
+ if ("isConfiguring" in U)
602
624
  return console.error(
603
625
  "isConfiguring must be passed via the params prop to MMEmbeddableZone"
604
626
  ), null;
605
- if ("colorMode" in I)
627
+ if ("colorMode" in q)
606
628
  return console.error(
607
629
  "colorMode must be passed via the params prop to MMEmbeddableZone"
608
630
  ), null;
609
- if ("isFullScreen" in I)
631
+ if ("isFullScreen" in q)
610
632
  return console.error(
611
633
  "isFullScreen must be passed via the params prop to MMEmbeddableZone"
612
634
  ), null;
613
- const _ = p(), g = re(s), [A, F] = x(), [L, O] = x(0), [M, K] = x(!1), [Y, U] = x(!1), D = _e(s), P = Me(s), z = ye(s), { setDelivered: i } = Ie(), [a, o] = x(0), [d, l] = x(null), b = p(!0), { registerFrame: $, unregisterFrame: S, sendMessage: k, ready: v } = N(
614
- se
615
- ), [y, q] = x(), B = p(), G = p(R), J = p(h), V = p(!1), e = p(), n = p(), r = m(() => {
616
- V.current = !1, clearTimeout(B.current), clearTimeout(e.current), clearTimeout(n.current), O(0), K(!1), U(!1), l(null), b.current = !0, i(g, t, !1);
617
- }, [i, g, t]);
618
- w(() => {
619
- (D > 0 || a > 0) && r();
620
- }, [D, a, r]), w(() => {
621
- G.current = R;
622
- }, [R]), w(() => {
623
- J.current = h;
624
- }, [h]), w(() => {
625
- L && k(
626
- t,
635
+ const y = d(), R = oe(s), [j, P] = F(), [b, Y] = F(0), [Q, v] = F(!1), [K, N] = F(!1), x = ze(s), i = Fe(s), a = De(s), { setDelivered: c } = $e(), [f, l] = F(0), [k, B] = F(null), { registerFrame: O, unregisterFrame: $, sendMessage: T, ready: M } = te(
636
+ ae
637
+ ), [z, ee] = F(), W = d(), X = d(E), re = d(m), r = d(I), n = d(A), t = d(!1), o = d(), p = d(), C = d(!1), S = d(!1), G = d(null), H = h(() => {
638
+ t.current = !1, C.current = !1, S.current = !1, G.current = null, V(W), V(o), V(p), Y(0), v(!1), N(!1), B(null), c(R, e, !1);
639
+ }, [c, R, e]);
640
+ g(() => {
641
+ (x > 0 || f > 0) && H();
642
+ }, [x, f, H]), g(() => {
643
+ X.current = E;
644
+ }, [E]), g(() => {
645
+ re.current = m;
646
+ }, [m]), g(() => {
647
+ r.current = I;
648
+ }, [I]), g(() => {
649
+ n.current = A;
650
+ }, [A]), g(() => {
651
+ const _ = () => {
652
+ if (Ae()) {
653
+ de(W), de(o), de(p);
654
+ return;
655
+ }
656
+ fe(W), fe(p), C.current && fe(o);
657
+ };
658
+ return document.addEventListener("visibilitychange", _), () => document.removeEventListener("visibilitychange", _);
659
+ }, []), g(() => {
660
+ b && T(
661
+ e,
627
662
  "set-context",
628
663
  {
629
664
  context: {
630
- ...I
665
+ ...q
631
666
  }
632
667
  },
633
- g
668
+ R
634
669
  );
635
- }, [I, t, L, g]), w(() => {
636
- L && k(t, "set-params", { params: C }, g);
637
- }, [C, t, L, g]), w(() => {
638
- u !== void 0 && q((u == null ? void 0 : u.indexOf("/")) === 0 ? u : `/${u}`);
639
- }, [u]), w(() => {
640
- y === void 0 || !L || k(t, "navigate", { path: y }, g);
641
- }, [y, L, t, k, g]), w(() => {
642
- if (!s || !t || !_)
670
+ }, [q, e, b, R]), g(() => {
671
+ b && T(e, "set-params", { params: J }, R);
672
+ }, [J, e, b, R]), g(() => {
673
+ u !== void 0 && ee((u == null ? void 0 : u.indexOf("/")) === 0 ? u : `/${u}`);
674
+ }, [u]), g(() => {
675
+ z === void 0 || !b || T(e, "navigate", { path: z }, R);
676
+ }, [z, b, e, T, R]), g(() => {
677
+ if (!s || !e || !y)
643
678
  return;
644
- if (!v) {
645
- r(), F(void 0);
679
+ if (!M) {
680
+ H(), P(void 0);
646
681
  return;
647
682
  }
648
- r();
649
- const f = new URL(s);
650
- return $(t, f.origin, _), J.current(), F(ve(f.origin, t)), () => {
651
- S(t);
683
+ H();
684
+ const _ = new URL(s);
685
+ return O(e, _.origin, y), re.current(), P(Ke(_.origin, e)), () => {
686
+ $(e);
652
687
  };
653
- }, [s, t, v, $, _, r]), w(() => {
654
- if (!(!A || V.current))
655
- return B.current = setTimeout(() => {
656
- K(!0), G.current && G.current();
657
- }, Le), () => clearTimeout(B.current);
658
- }, [A, s, D, a]);
659
- const c = m(() => {
660
- V.current = !0, clearTimeout(B.current), K(!1);
688
+ }, [s, e, M, O, y, H]);
689
+ const ne = h(() => {
690
+ v(!0), X.current && X.current();
661
691
  }, []);
662
- if (ee(t, "init", (f) => {
663
- c(), Array.isArray(f == null ? void 0 : f.acceptsCredentials) && (l(f.acceptsCredentials), b.current = !1, clearTimeout(e.current), e.current = void 0);
664
- }), ee(t, "authorize", c), ee(t, "login", c), ee(t, "credential-request", () => {
665
- c(), U(!0);
666
- }), w(() => {
667
- if (!Y || !P)
692
+ g(() => {
693
+ if (!(!j || t.current))
694
+ return ce(W, Be, ne), () => V(W);
695
+ }, [j, s, x, f, ne]);
696
+ const ie = h(() => {
697
+ t.current = !0, V(W), v(!1);
698
+ }, []), le = h(() => {
699
+ if (!S.current) {
700
+ S.current = !0, T(e, "credential", G.current, R), n.current && n.current("redelivered"), ce(p, je, le);
668
701
  return;
669
- const f = d;
670
- if (Array.isArray(f) && !f.includes(P.kind))
702
+ }
703
+ n.current && n.current("ready"), ne();
704
+ }, [e, T, R, ne]);
705
+ se(e, "init", (_) => {
706
+ ie(), Array.isArray(_ == null ? void 0 : _.acceptsCredentials) && B(_.acceptsCredentials);
707
+ }), se(e, "authorize", ie), se(e, "login", ie), se(e, "credential-request", () => {
708
+ ie(), N(!0);
709
+ }), g(() => {
710
+ if (!K || !i)
671
711
  return;
672
- const Q = { ...P.kind === "access_token" ? { accessToken: P.accessToken } : {}, credential: P };
673
- return k(t, "credential", Q, g), i(g, t, !0), clearTimeout(n.current), n.current = setTimeout(() => {
674
- n.current = void 0, k(t, "credential", Q, g);
675
- }, Ae), () => clearTimeout(n.current);
712
+ const _ = k;
713
+ if (Array.isArray(_) && !_.includes(i.kind))
714
+ return;
715
+ const be = { ...i.kind === "access_token" ? { accessToken: i.accessToken } : {}, credential: i };
716
+ G.current = be, S.current = !1, T(e, "credential", be, R), c(R, e, !0), ce(p, qe, le);
676
717
  }, [
677
- Y,
678
- P,
679
- d,
680
- t,
718
+ le,
719
+ K,
720
+ i,
681
721
  k,
682
- g,
683
- i
684
- ]), ee(t, "ready", () => {
685
- c(), clearTimeout(n.current), n.current = void 0, O((f) => f + 1);
686
- }), ee(t, "heartbeat", () => {
687
- b.current && (e.current && clearTimeout(e.current), e.current = setTimeout(() => {
688
- o((f) => f + 1);
689
- }, 6e3));
690
- }), w(() => () => {
691
- e.current && clearTimeout(e.current);
692
- }, []), z)
693
- return Z ? Z(z) : /* @__PURE__ */ W.createElement(me, { entry: z });
694
- if (M && !L)
695
- return X ? X() : /* @__PURE__ */ W.createElement(Se, null);
696
- const E = { ...H };
697
- return delete E.skipManifestCheck, /* @__PURE__ */ W.createElement(
698
- xe,
722
+ e,
723
+ T,
724
+ R,
725
+ c
726
+ ]), se(e, "ready", () => {
727
+ ie(), V(p), Y((_) => _ + 1);
728
+ });
729
+ const ye = h(() => {
730
+ r.current && r.current("heartbeat"), l((_) => _ + 1);
731
+ }, []);
732
+ if (se(e, "heartbeat", () => {
733
+ C.current = !0, ce(o, We, ye);
734
+ }), g(() => () => {
735
+ V(o), V(p), V(W);
736
+ }, []), a)
737
+ return Z ? Z(a) : /* @__PURE__ */ D.createElement(Le, { entry: a });
738
+ const he = !!(Q && !b), me = { ...U };
739
+ return delete me.skipManifestCheck, /* @__PURE__ */ D.createElement(D.Fragment, null, he && (L ? L() : /* @__PURE__ */ D.createElement(Xe, null)), /* @__PURE__ */ D.createElement(
740
+ Ge,
699
741
  {
700
- key: `auth-epoch-${D}-frame-${a}`,
701
- $isReady: L,
702
- ref: _,
703
- src: A,
704
- ...E
742
+ key: `auth-epoch-${x}-frame-${f}`,
743
+ $isReady: b,
744
+ $collapsed: he,
745
+ ref: y,
746
+ src: j,
747
+ ...me
705
748
  }
706
- );
749
+ ));
707
750
  };
708
- Fe.propTypes = {
709
- id: T.string,
710
- src: T.string.isRequired,
711
- path: T.string,
712
- onInit: T.func,
713
- onTimeout: T.func,
751
+ Je.propTypes = {
752
+ id: w.string,
753
+ src: w.string.isRequired,
754
+ path: w.string,
755
+ onInit: w.func,
756
+ onTimeout: w.func,
757
+ /** Called with the reason ('heartbeat') just before the frame is re-keyed. */
758
+ onRemount: w.func,
759
+ /**
760
+ * Called when a frame that said init has not said ready: 'redelivered' when the held credential is
761
+ * sent once more, 'ready' when the failure message is shown instead.
762
+ */
763
+ onStall: w.func,
714
764
  /**
715
765
  * Optional host-styled renderer for the structurally-unsupported embed
716
766
  * state (legacy app on a cross-site origin), `(entry) => ReactNode`. Falls
717
767
  * back to a minimal built-in placeholder.
718
768
  */
719
- renderUnsupported: T.func,
769
+ renderUnsupported: w.func,
720
770
  /**
721
771
  * Optional host-styled renderer for the handshake-timeout failure state
722
772
  * (the app is not embeddable / could not load), `() => ReactNode`. Falls
723
773
  * back to a minimal centered message.
724
774
  */
725
- renderTimeout: T.func
775
+ renderTimeout: w.func
726
776
  };
727
777
  export {
728
- be as CREDENTIAL_KIND_ACCESS_TOKEN,
729
- te as EmbeddedAuthorizationContext,
730
- Fe as MMEmbeddableZone,
731
- se as MMEmbeddableZoneContext,
732
- Ce as MMEmbeddableZoneProvider,
733
- le as isCrossSite,
734
- ie as normalizeCredential,
735
- ke as popupAuthorizationLauncher,
736
- ze as unsupportedCopy,
737
- Ie as useEmbeddedAuthorizations,
738
- Me as useEmbeddedCredential,
739
- ee as useEmbeddedEffect,
740
- _e as useEmbeddedOriginEpoch,
741
- ye as useEmbeddedUnsupported
778
+ Ce as CREDENTIAL_KIND_ACCESS_TOKEN,
779
+ ue as EmbeddedAuthorizationContext,
780
+ Je as MMEmbeddableZone,
781
+ ae as MMEmbeddableZoneContext,
782
+ Pe as MMEmbeddableZoneProvider,
783
+ ke as isCrossSite,
784
+ Ee as normalizeCredential,
785
+ Oe as popupAuthorizationLauncher,
786
+ Ye as unsupportedCopy,
787
+ $e as useEmbeddedAuthorizations,
788
+ Fe as useEmbeddedCredential,
789
+ se as useEmbeddedEffect,
790
+ ze as useEmbeddedOriginEpoch,
791
+ De as useEmbeddedUnsupported
742
792
  };