@machinemetrics/mm-react-embeddable 2.0.3-1 → 2.0.3-2

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 F, { createContext as ye, useContext as ne, useState as D, useRef as l, useCallback as h, useEffect as g, useMemo as Ce } from "react";
2
+ import w from "prop-types";
3
+ import Re from "styled-components";
4
+ const le = ye(null), ue = ye({
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
+ }), Ue = "access_token", Ee = (e) => e ? e.kind ? e : e.accessToken ? {
20
+ kind: Ue,
21
+ accessToken: e.accessToken,
22
+ expiresAt: e.expiresAt || null
23
+ } : null : null, Se = 60, xe = 120, Oe = 3e4, $e = /* @__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
+ }, we = (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
+ }, Te = (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 : Te(u.hostname) !== Te(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
+ }, ze = (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
58
  const R = setInterval(() => {
59
- h.closed && (clearInterval(R), u());
59
+ m.closed && (clearInterval(R), u());
60
60
  }, 1e3);
61
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];
62
+ }, Ae = ({ children: e, launcher: s, broker: u, ready: m }) => {
63
+ const R = ne(le), [y, A] = D({}), [q, J] = D({}), [H, L] = D({}), [U, M] = D({}), E = l(H);
64
+ E.current = H;
65
+ const j = l(y);
66
+ j.current = y;
67
+ const P = l(null), b = l({}), G = l({}), V = l(u);
68
+ V.current = u;
69
+ const C = l({}), Z = l({}), N = h((r, n, t) => {
70
+ !r || !n || (C.current[r] || (C.current[r] = /* @__PURE__ */ new Set()), t ? C.current[r].add(n) : C.current[r].delete(n));
71
+ }, []), S = 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), M(t);
77
+ }, []), i = h(
78
+ (r, n) => {
79
+ r && (M((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
+ }), S(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
+ [S]
89
+ ), a = h(
90
+ (r, { v2: n = !1, origin: t = null } = {}) => {
91
+ var o;
92
+ if (t) {
93
+ if (n && E.current[t]) {
94
+ if (!((o = C.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 - (Z.current[t] || 0) < Oe)
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
+ Z.current[t] = p, C.current[t].clear();
100
+ const I = { ...E.current };
101
+ delete I[t], E.current = I, L(I);
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 && V.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: G.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
+ }), S(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
+ [S]
121
+ ), c = l({}), f = h((r) => {
122
+ c.current[r] && (clearTimeout(c.current[r]), delete c.current[r]);
123
+ }, []), d = 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
+ ), T = h(
134
+ (r) => {
135
+ r && (d(r), J((n) => ({
136
136
  ...n,
137
- [e]: (n[e] || 0) + 1
137
+ [r]: (n[r] || 0) + 1
138
138
  })));
139
139
  },
140
- [l]
141
- ), $ = m(
142
- (e) => {
143
- l(e.origin);
140
+ [d]
141
+ ), B = h(
142
+ (r) => {
143
+ d(r.origin);
144
144
  },
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");
145
+ [d]
146
+ ), x = h(
147
+ (r, n) => {
148
+ const t = we(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(() => {
159
+ g(() => {
160
160
  if (!R)
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
+ R.addListener("*", "init", (n, t) => {
164
+ t != null && t.origin && (n != null && n.clientId) && (b.current[t.origin] = n.clientId, S(t.origin)), t != null && t.origin && Array.isArray(n == null ? void 0 : n.acceptsCredentials) ? G.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),
166
+ R.addListener("*", "authorize", x),
167
+ R.addListener("*", "login", x),
168
168
  R.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: we(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
+ }, [R, x, a, S, 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((I) => ({
187
+ ...I,
188
+ [o]: Ee({ accessToken: t.accessToken })
189
+ })), d(o);
190
190
  return;
191
191
  }
192
- b(c);
192
+ T(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
+ }, [d, T]);
197
+ const O = h(
198
+ (r, n) => {
199
+ const t = r == null ? void 0 : r.origin, o = Ee(n);
200
+ !t || !o || (L((p) => ({ ...p, [t]: o })), d(t));
201
201
  },
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;
202
+ [d]
203
+ ), k = h((r, n) => {
204
+ A((t) => t[r] ? { ...t, [r]: { ...t[r], ...n } } : t);
205
+ }, []), v = l({}), $ = h(
206
+ async (r, { approve: n } = {}) => {
207
+ const t = V.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 ? k(o, { error: { reason: "broker_unavailable" } }) : k(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 I = p == null ? void 0 : p.status, z = (p == null ? void 0 : p.body) || {};
224
+ if (I === 200 && z.credential) {
225
+ O(r, z.credential);
226
226
  return;
227
227
  }
228
- if (f === 409 && j.consentRequired) {
229
- v(c, {
228
+ if (I === 409 && z.consentRequired) {
229
+ k(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: z.client || null,
233
+ stepUp: !!z.stepUp,
234
+ scope: z.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 K = z.error || "broker_error";
241
+ if (!n && $e.has(K)) {
242
+ k(o, { status: "interactive" });
243
243
  return;
244
244
  }
245
- if (n && Q === "consent_denied") {
246
- v(c, { error: null });
245
+ if (n && K === "consent_denied") {
246
+ k(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 (K === "rate_limited" && !r.rateLimitRetried) {
250
+ const X = Math.min(
251
+ Number(z.retryAfter) > 0 ? Number(z.retryAfter) : Se,
252
+ xe
253
+ ), te = { ...r, rateLimitRetried: !0 };
254
+ f(o), c.current[o] = setTimeout(() => {
255
+ delete c.current[o], v.current[o] = !0, ee.current(te, { approve: n }).finally(() => {
256
+ delete v.current[o];
257
257
  });
258
- }, ne * 1e3), v(c, { rateLimitRetried: !0 });
258
+ }, X * 1e3), k(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
+ d(o), M((X) => ({
262
+ ...X,
263
+ [o]: {
264
+ origin: o,
265
+ reason: `broker:${K}`,
266
+ detail: { status: I != null ? I : null, reason: K },
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
+ [O, k, d, f]
272
+ ), ee = l($);
273
+ ee.current = $, g(() => {
274
+ Object.values(y).forEach((r) => {
275
+ r.status !== "broker" || v.current[r.origin] || c.current[r.origin] || (v.current[r.origin] = !0, $(r).finally(() => {
276
+ delete v.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
+ }, [y, $]);
280
+ const W = h(
281
+ (r) => !V.current || !(r != null && r.consent) || v.current[r.origin] ? Promise.resolve() : (v.current[r.origin] = !0, $(r, { approve: !0 }).finally(() => {
282
+ delete v.current[r.origin];
283
283
  })),
284
- [q]
284
+ [$]
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 = {}, v.current = {}, b.current = {}, G.current = {}, C.current = {}, Z.current = {}, E.current = {}, L({}), A({}), M({}));
290
+ }, [m]);
291
+ const Q = h(
292
+ (r) => {
293
+ P.current && (P.current(), P.current = null);
294
+ const n = s || ze;
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 || T(r.origin);
307
307
  }
308
308
  });
309
309
  },
310
- [s, b]
311
- ), V = {
312
- pending: Object.values(I).filter(
313
- (e) => e.status === "interactive"
310
+ [s, T]
311
+ ), re = {
312
+ pending: Object.values(y).filter(
313
+ (r) => r.status === "interactive"
314
314
  ),
315
- authorize: J,
316
- approve: G,
317
- complete: k,
318
- dismiss: $,
319
- originEpochs: Z,
315
+ authorize: Q,
316
+ approve: W,
317
+ complete: O,
318
+ dismiss: B,
319
+ originEpochs: q,
320
320
  credentials: H,
321
- unsupported: g,
322
- setDelivered: P
321
+ unsupported: U,
322
+ setDelivered: N
323
323
  };
324
- return /* @__PURE__ */ W.createElement(te.Provider, { value: V }, t);
324
+ return /* @__PURE__ */ F.createElement(ue.Provider, { value: re }, e);
325
325
  };
326
- pe.propTypes = {
327
- children: T.node,
328
- launcher: T.func,
329
- ready: T.bool,
326
+ Ae.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 De = () => ne(ue), Fe = (e) => {
341
+ const { originEpochs: s } = ne(ue), u = oe(e);
342
342
  return u && s[u] || 0;
343
- }, Me = (t) => {
344
- const { credentials: s } = N(te), u = re(t);
343
+ }, Pe = (e) => {
344
+ const { credentials: s } = ne(ue), u = oe(e);
345
345
  return u && s[u] || null;
346
- }, ye = (t) => {
347
- const { unsupported: s } = N(te), u = re(t);
346
+ }, Be = (e) => {
347
+ const { unsupported: s } = ne(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
+ }, Ie = "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.", We = ({
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;
355
+ const R = m === !0, y = l(!1);
356
+ g(() => {
357
+ m !== void 0 || y.current || (y.current = !0, console.error(Ie), typeof window != "undefined" && typeof window.alert == "function" && window.alert(Ie));
358
+ }, [m]);
359
+ const [A, q] = D({}), [J, H] = D({}), L = l({}), U = l({}), M = l({}), E = h((i, a) => {
360
+ var c;
361
+ return !!((c = M.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
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];
369
+ const c = { ...a };
370
+ return delete c[i], c;
371
+ }), delete M.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, d) => {
379
+ c.forEach((T) => T(f, d));
380
+ }, a = (c) => {
381
+ var k, v, $, ee, W, Q, re;
382
+ if (!((k = c == null ? void 0 : c.data) != null && k.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: d } = c.data, T = A[f], B = ($ = (v = T == null ? void 0 : T.frameRef) == null ? void 0 : v.current) == null ? void 0 : $.contentWindow;
385
+ if (!B || c.source !== B || c.origin !== T.origin)
386
386
  return;
387
- const S = { origin: o.origin }, k = _.current;
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]);
387
+ const x = { origin: c.origin }, O = L.current;
388
+ if (d === "response") {
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
- 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);
393
+ if (d === "mark-registered") {
394
+ const { requestType: r } = c.data;
395
+ M.current[f] || (M.current[f] = /* @__PURE__ */ new Set()), M.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
+ d === "ready" && H((r) => ({ ...r, [f]: !0 })), i((ee = O[f]) == null ? void 0 : ee[d], c.data, x), i((W = O["*"]) == null ? void 0 : W[d], c.data, x), i((Q = O[f]) == null ? void 0 : Q["*"], c.data, x), i((re = O["*"]) == null ? void 0 : re["*"], c.data, x);
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];
408
- if (!l) {
403
+ }, [A]);
404
+ const b = h(
405
+ (i, a, c, f) => {
406
+ var T, B;
407
+ const d = A[i];
408
+ if (!d) {
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 = (T = d == null ? void 0 : d.frameRef) == null ? void 0 : T.current) != null && B.contentWindow && d.frameRef.current.contentWindow.postMessage(
413
+ { type: a, ...c, instanceId: i },
414
+ f || d.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
+ ), G = l(0), V = h(() => `${Date.now()}-${++G.current}`, []), C = h(
419
+ async (i, a, c = {}) => new Promise((f, d) => {
420
+ const T = V(), B = (x, O) => {
421
+ delete U.current[T], O ? d(O) : f(x);
422
422
  };
423
- g.current[b] = { instanceId: i, callback: $ }, M(i, "request", { callbackId: b, requestType: a, data: o });
423
+ U.current[T] = { instanceId: i, callback: B }, b(i, "request", { callbackId: T, requestType: a, data: c });
424
424
  }),
425
- [M]
426
- ), D = m(
425
+ [b]
426
+ ), Z = 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
+ ), S = Ce(
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,
438
+ registerFrame: j,
439
+ unregisterFrame: P,
440
+ sendMessage: b,
441
+ sendRequest: C,
442
+ loadOptions: Z,
443
+ validate: N,
444
+ hasHandler: E,
445
+ readyFrames: J,
446
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);
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,
454
+ b,
455
+ C,
456
+ Z,
457
+ N,
458
+ E,
459
+ J,
460
460
  R
461
461
  ]
462
462
  );
463
- return /* @__PURE__ */ W.createElement(se.Provider, { value: z }, /* @__PURE__ */ W.createElement(
464
- pe,
463
+ return /* @__PURE__ */ F.createElement(le.Provider, { value: S }, /* @__PURE__ */ F.createElement(
464
+ Ae,
465
465
  {
466
466
  launcher: s,
467
467
  broker: u,
468
468
  ready: R
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 = ne(le);
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(() => {
478
+ const R = l(u);
479
+ g(() => {
480
480
  R.current = u;
481
- }, [u]), w(() => {
482
- if (!(!t || !s)) {
481
+ }, [u]), g(() => {
482
+ if (!(!e || !s)) {
483
483
  if (s.startsWith("key:")) {
484
- const I = s.substring(4);
485
- return h.readyFrames[t] && h.sendMessage(t, "subscribe-key", { keyChord: I }), h.addListener(
486
- t,
487
- `key-pressed:${I}`,
488
- (...Z) => R.current(...Z)
484
+ const y = s.substring(4);
485
+ return m.readyFrames[e] && m.sendMessage(e, "subscribe-key", { keyChord: y }), m.addListener(
486
+ e,
487
+ `key-pressed:${y}`,
488
+ (...q) => R.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
+ (...y) => R.current(...y)
495
495
  );
496
496
  }
497
- }, [h, t, s]);
497
+ }, [m, e, s]);
498
498
  };
499
- Ce.propTypes = {
500
- children: T.node.isRequired,
499
+ We.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 he = Re.default || Re, qe = 1e4, je = 6e3, _e = 15e3, He = 2e3, Ze = 3e3, Le = () => typeof document != "undefined" && document.visibilityState === "hidden", ce = (e, s, u) => {
523
+ if (e.current && clearTimeout(e.current.handle), Le()) {
524
+ e.current = { ms: s, fn: u, suspended: !0 };
525
+ return;
526
+ }
527
+ const m = Date.now(), R = setTimeout(() => {
528
+ if (Date.now() - m - s > Ze) {
529
+ ce(e, s, u);
530
+ return;
531
+ }
532
+ e.current = void 0, u();
533
+ }, s);
534
+ e.current = { handle: R, ms: s, fn: u };
535
+ }, Y = (e) => {
536
+ e.current && clearTimeout(e.current.handle), e.current = void 0;
537
+ }, fe = (e) => {
538
+ e.current && !e.current.suspended && (clearTimeout(e.current.handle), e.current = { ms: e.current.ms, fn: e.current.fn, suspended: !0 });
539
+ }, pe = (e) => {
540
+ e.current && e.current.suspended && ce(e, e.current.ms, e.current.fn);
541
+ }, Ke = "credentials", Ye = (e, s) => `${e}/mm-embedded-interop?id=${encodeURIComponent(s)}&origin=${encodeURIComponent(
523
542
  window.location.origin
524
- )}&caps=${Ue}`, xe = oe.iframe`
543
+ )}&caps=${Ke}`, Ge = he.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 = he.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
+ `, Qe = (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,208 @@ 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
+ }, Me = ({ entry: e }) => {
591
+ const s = Qe(e);
592
+ return /* @__PURE__ */ F.createElement(Ve, { "data-reason": e && e.reason || void 0 }, /* @__PURE__ */ F.createElement("div", { style: { fontWeight: 600 } }, s.title), /* @__PURE__ */ F.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
+ Me.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 Xe = he.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
+ `, Je = () => /* @__PURE__ */ F.createElement(Xe, null, /* @__PURE__ */ F.createElement("div", { style: { textAlign: "center" } }, "This app couldn’t be loaded as an embeddable widget.")), Ne = ({
609
+ id: e,
590
610
  src: s,
591
611
  path: u,
592
- onInit: h = () => {
612
+ onInit: m = () => {
593
613
  },
594
614
  onTimeout: R,
595
- context: I = {},
596
- params: C = {},
597
- renderUnsupported: Z,
598
- renderTimeout: X,
599
- ...H
615
+ onRemount: y,
616
+ onStall: A,
617
+ context: q = {},
618
+ params: J = {},
619
+ renderUnsupported: 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 M = l(), E = oe(s), [j, P] = D(), [b, G] = D(0), [V, C] = D(!1), [Z, N] = D(!1), S = Fe(s), i = Pe(s), a = Be(s), { setDelivered: c } = De(), [f, d] = D(0), [T, B] = D(null), { registerFrame: x, unregisterFrame: O, sendMessage: k, ready: v } = ne(
636
+ le
637
+ ), [$, ee] = D(), W = l(), Q = l(R), re = l(m), r = l(y), n = l(A), t = l(!1), o = l(), p = l(), I = l(), z = l(!1), K = l(!1), X = l(null), te = h(() => {
638
+ t.current = !1, z.current = !1, K.current = !1, X.current = null, Y(W), Y(o), Y(p), clearTimeout(I.current), G(0), C(!1), N(!1), B(null), c(E, e, !1);
639
+ }, [c, E, e]);
640
+ g(() => {
641
+ (S > 0 || f > 0) && te();
642
+ }, [S, f, te]), g(() => {
643
+ Q.current = R;
644
+ }, [R]), g(() => {
645
+ re.current = m;
646
+ }, [m]), g(() => {
647
+ r.current = y;
648
+ }, [y]), g(() => {
649
+ n.current = A;
650
+ }, [A]), g(() => {
651
+ const _ = () => {
652
+ if (Le()) {
653
+ fe(W), fe(o), fe(p);
654
+ return;
655
+ }
656
+ pe(W), pe(p), z.current && pe(o);
657
+ };
658
+ return document.addEventListener("visibilitychange", _), () => document.removeEventListener("visibilitychange", _);
659
+ }, []), g(() => {
660
+ b && k(
661
+ e,
627
662
  "set-context",
628
663
  {
629
664
  context: {
630
- ...I
665
+ ...q
631
666
  }
632
667
  },
633
- g
668
+ E
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, E]), g(() => {
671
+ b && k(e, "set-params", { params: J }, E);
672
+ }, [J, e, b, E]), g(() => {
673
+ u !== void 0 && ee((u == null ? void 0 : u.indexOf("/")) === 0 ? u : `/${u}`);
674
+ }, [u]), g(() => {
675
+ $ === void 0 || !b || k(e, "navigate", { path: $ }, E);
676
+ }, [$, b, e, k, E]), g(() => {
677
+ if (!s || !e || !M)
643
678
  return;
644
679
  if (!v) {
645
- r(), F(void 0);
680
+ te(), 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
+ te();
684
+ const _ = new URL(s);
685
+ return x(e, _.origin, M), re.current(), P(Ye(_.origin, e)), () => {
686
+ O(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, v, x, M, te]);
689
+ const ae = h(() => {
690
+ C(!0), Q.current && Q.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, qe, ae), () => Y(W);
695
+ }, [j, s, S, f, ae]);
696
+ const ie = h(() => {
697
+ t.current = !0, Y(W), C(!1);
698
+ }, []), me = h(() => {
699
+ const _ = X.current;
700
+ if (_ && !K.current) {
701
+ K.current = !0, k(e, "credential", _, E), n.current && n.current("redelivered"), ce(p, _e, me);
702
+ return;
703
+ }
704
+ n.current && n.current("ready"), ae();
705
+ }, [e, k, E, ae]);
706
+ se(e, "init", (_) => {
707
+ ie(), ce(p, _e, me), Array.isArray(_ == null ? void 0 : _.acceptsCredentials) && B(_.acceptsCredentials);
708
+ }), se(e, "authorize", ie), se(e, "login", ie), se(e, "credential-request", () => {
709
+ ie(), N(!0);
710
+ }), g(() => {
711
+ if (!Z || !i)
668
712
  return;
669
- const f = d;
670
- if (Array.isArray(f) && !f.includes(P.kind))
713
+ const _ = T;
714
+ if (Array.isArray(_) && !_.includes(i.kind))
671
715
  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);
716
+ const de = { ...i.kind === "access_token" ? { accessToken: i.accessToken } : {}, credential: i };
717
+ return X.current = de, k(e, "credential", de, E), c(E, e, !0), clearTimeout(I.current), I.current = setTimeout(() => {
718
+ I.current = void 0, k(e, "credential", de, E);
719
+ }, He), () => clearTimeout(I.current);
676
720
  }, [
677
- Y,
678
- P,
679
- d,
680
- t,
721
+ Z,
722
+ i,
723
+ T,
724
+ e,
681
725
  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,
726
+ E,
727
+ c
728
+ ]), se(e, "ready", () => {
729
+ ie(), Y(p), clearTimeout(I.current), I.current = void 0, G((_) => _ + 1);
730
+ });
731
+ const ve = h(() => {
732
+ r.current && r.current("heartbeat"), d((_) => _ + 1);
733
+ }, []);
734
+ if (se(e, "heartbeat", () => {
735
+ z.current = !0, ce(o, je, ve);
736
+ }), g(() => () => {
737
+ Y(o), Y(p), Y(W), clearTimeout(I.current);
738
+ }, []), a)
739
+ return H ? H(a) : /* @__PURE__ */ F.createElement(Me, { entry: a });
740
+ const be = !!(V && !b), ge = { ...U };
741
+ return delete ge.skipManifestCheck, /* @__PURE__ */ F.createElement(F.Fragment, null, be && (L ? L() : /* @__PURE__ */ F.createElement(Je, null)), /* @__PURE__ */ F.createElement(
742
+ Ge,
699
743
  {
700
- key: `auth-epoch-${D}-frame-${a}`,
701
- $isReady: L,
702
- ref: _,
703
- src: A,
704
- ...E
744
+ key: `auth-epoch-${S}-frame-${f}`,
745
+ $isReady: b,
746
+ $collapsed: be,
747
+ ref: M,
748
+ src: j,
749
+ ...ge
705
750
  }
706
- );
751
+ ));
707
752
  };
708
- Fe.propTypes = {
709
- id: T.string,
710
- src: T.string.isRequired,
711
- path: T.string,
712
- onInit: T.func,
713
- onTimeout: T.func,
753
+ Ne.propTypes = {
754
+ id: w.string,
755
+ src: w.string.isRequired,
756
+ path: w.string,
757
+ onInit: w.func,
758
+ onTimeout: w.func,
759
+ /** Called with the reason ('heartbeat') just before the frame is re-keyed. */
760
+ onRemount: w.func,
761
+ /**
762
+ * Called when a frame that said init has not said ready: 'redelivered' when the held credential is
763
+ * sent once more, 'ready' when the failure message is shown instead.
764
+ */
765
+ onStall: w.func,
714
766
  /**
715
767
  * Optional host-styled renderer for the structurally-unsupported embed
716
768
  * state (legacy app on a cross-site origin), `(entry) => ReactNode`. Falls
717
769
  * back to a minimal built-in placeholder.
718
770
  */
719
- renderUnsupported: T.func,
771
+ renderUnsupported: w.func,
720
772
  /**
721
773
  * Optional host-styled renderer for the handshake-timeout failure state
722
774
  * (the app is not embeddable / could not load), `() => ReactNode`. Falls
723
775
  * back to a minimal centered message.
724
776
  */
725
- renderTimeout: T.func
777
+ renderTimeout: w.func
726
778
  };
727
779
  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
780
+ Ue as CREDENTIAL_KIND_ACCESS_TOKEN,
781
+ ue as EmbeddedAuthorizationContext,
782
+ Ne as MMEmbeddableZone,
783
+ le as MMEmbeddableZoneContext,
784
+ We as MMEmbeddableZoneProvider,
785
+ ke as isCrossSite,
786
+ Ee as normalizeCredential,
787
+ ze as popupAuthorizationLauncher,
788
+ Qe as unsupportedCopy,
789
+ De as useEmbeddedAuthorizations,
790
+ Pe as useEmbeddedCredential,
791
+ se as useEmbeddedEffect,
792
+ Fe as useEmbeddedOriginEpoch,
793
+ Be as useEmbeddedUnsupported
742
794
  };