@machinemetrics/mm-react-embeddable 2.0.0-0 → 2.0.0-1

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 m, { createContext as ie, useContext as H, useState as C, useRef as R, useCallback as h, useEffect as k, useMemo as le } from "react";
1
+ import g, { createContext as oe, useContext as K, useState as U, useRef as R, useCallback as h, useEffect as k, useMemo as ue } from "react";
2
2
  import T from "prop-types";
3
3
  import D from "styled-components";
4
- const Y = ie(null), J = ie({
4
+ const Y = oe(null), J = oe({
5
5
  pending: [],
6
6
  authorize: () => {
7
7
  },
@@ -14,128 +14,128 @@ const Y = ie(null), J = ie({
14
14
  originEpochs: {},
15
15
  credentials: {},
16
16
  unsupported: {}
17
- }), ae = "access_token", ne = (t) => t ? t.kind ? t : t.accessToken ? {
17
+ }), ae = "access_token", re = (r) => r ? r.kind ? r : r.accessToken ? {
18
18
  kind: ae,
19
- accessToken: t.accessToken,
20
- expiresAt: t.expiresAt || null
21
- } : null : null, de = /* @__PURE__ */ new Set(["host_not_allowed", "invalid_token", "provider_unavailable"]), X = typeof window != "undefined" && window.location.protocol === "https:", fe = 8e3, Q = (t) => {
19
+ accessToken: r.accessToken,
20
+ expiresAt: r.expiresAt || null
21
+ } : null : null, le = /* @__PURE__ */ new Set(["host_not_allowed", "invalid_token", "provider_unavailable"]), X = typeof window != "undefined" && window.location.protocol === "https:", de = 8e3, Q = (r) => {
22
22
  try {
23
- return new URL(t).origin;
23
+ return new URL(r).origin;
24
24
  } catch {
25
25
  return null;
26
26
  }
27
- }, re = (t, s) => {
28
- const i = s == null ? void 0 : s.origin;
29
- return !i || Q(t == null ? void 0 : t.authUrl) !== i ? null : i;
30
- }, se = (t) => {
31
- if (!t || /^\d{1,3}(?:\.\d{1,3}){3}$/.test(t) || t.includes(":"))
32
- return t;
33
- const s = t.split(".");
34
- return s.length <= 2 ? t : s.slice(-2).join(".");
35
- }, pe = (t, s) => {
27
+ }, ne = (r, s) => {
28
+ const c = s == null ? void 0 : s.origin;
29
+ return !c || Q(r == null ? void 0 : r.authUrl) !== c ? null : c;
30
+ }, se = (r) => {
31
+ if (!r || /^\d{1,3}(?:\.\d{1,3}){3}$/.test(r) || r.includes(":"))
32
+ return r;
33
+ const s = r.split(".");
34
+ return s.length <= 2 ? r : s.slice(-2).join(".");
35
+ }, fe = (r, s) => {
36
36
  try {
37
- const i = new URL(t), d = new URL(s);
38
- return i.protocol !== d.protocol ? !0 : se(i.hostname) !== se(d.hostname);
37
+ const c = new URL(r), d = new URL(s);
38
+ return c.protocol !== d.protocol ? !0 : se(c.hostname) !== se(d.hostname);
39
39
  } catch {
40
40
  return !0;
41
41
  }
42
- }, ge = (t, { onBlocked: s, onClosed: i }) => {
42
+ }, pe = (r, { onBlocked: s, onClosed: c }) => {
43
43
  const d = window.open(
44
- t.authUrl,
44
+ r.authUrl,
45
45
  "mm-embed-auth",
46
46
  "popup,width=600,height=700"
47
47
  );
48
48
  if (!d)
49
49
  return s(), () => {
50
50
  };
51
- const f = setInterval(() => {
52
- d.closed && (clearInterval(f), i());
51
+ const p = setInterval(() => {
52
+ d.closed && (clearInterval(p), c());
53
53
  }, 1e3);
54
- return () => clearInterval(f);
55
- }, ce = ({ children: t, launcher: s, broker: i }) => {
56
- const d = H(Y), [f, b] = C({}), [B, I] = C({}), [M, _] = C({}), [A, y] = C({}), W = R(M);
57
- W.current = M;
58
- const E = R(f);
59
- E.current = f;
60
- const L = R(null), K = R({}), O = R({}), q = R({}), j = R(i);
61
- j.current = i;
54
+ return () => clearInterval(p);
55
+ }, ie = ({ children: r, launcher: s, broker: c }) => {
56
+ const d = K(Y), [p, b] = U({}), [j, I] = U({}), [_, A] = U({}), [F, y] = U({}), H = R(_);
57
+ H.current = _;
58
+ const E = R(p);
59
+ E.current = p;
60
+ const O = R(null), G = R({}), C = R({}), v = R({}), S = R(c);
61
+ S.current = c;
62
62
  const z = h((e) => {
63
- const n = O.current[e];
64
- if (!n)
63
+ const t = C.current[e];
64
+ if (!t)
65
65
  return;
66
- const r = (l) => !l[e] || l[e].clientId ? l : { ...l, [e]: { ...l[e], clientId: n } };
67
- b(r), y(r);
68
- }, []), c = h(
69
- (e, n) => {
70
- e && (y((r) => r[e] ? r : {
71
- ...r,
72
- [e]: { origin: e, reason: n, clientId: O.current[e] || null }
66
+ const n = (i) => !i[e] || i[e].clientId ? i : { ...i, [e]: { ...i[e], clientId: t } };
67
+ b(n), y(n);
68
+ }, []), u = h(
69
+ (e, t) => {
70
+ e && (y((n) => n[e] ? n : {
71
+ ...n,
72
+ [e]: { origin: e, reason: t, clientId: C.current[e] || null }
73
73
  }), z(e));
74
74
  },
75
75
  [z]
76
- ), u = h(
77
- (e, { v2: n = !1, origin: r = null } = {}) => {
78
- r && (n && W.current[r] || (b((l) => l[r] ? l : {
79
- ...l,
80
- [r]: {
81
- origin: r,
76
+ ), a = h(
77
+ (e, { v2: t = !1, origin: n = null } = {}) => {
78
+ n && (t && H.current[n] || (b((i) => i[n] ? i : {
79
+ ...i,
80
+ [n]: {
81
+ origin: n,
82
82
  authUrl: e.authUrl,
83
83
  silentUrl: e.silentUrl || null,
84
84
  // v2 entries try the invisible silent resolver first — but only on a host that can
85
85
  // frame login (https). Otherwise (and for legacy signals) go straight to interactive,
86
86
  // so an http host doesn't wait out a silent frame that can never load login.
87
- status: n && j.current ? "broker" : n && e.silentUrl && X ? "silent" : "interactive",
88
- v2: n,
87
+ status: t && S.current ? "broker" : t && e.silentUrl && X ? "silent" : "interactive",
88
+ v2: t,
89
89
  // v1.9: the scope the guest asked for; forwarded verbatim to the broker.
90
90
  scope: e.scope || null,
91
- acceptsCredentials: q.current[r] || null,
91
+ acceptsCredentials: v.current[n] || null,
92
92
  consent: null,
93
93
  error: null,
94
94
  // clientId from the request payload (v2) or the cached init (legacy);
95
95
  // the host resolves the display name from it.
96
- clientId: e.clientId || O.current[r] || null,
96
+ clientId: e.clientId || C.current[n] || null,
97
97
  popupBlocked: !1
98
98
  }
99
- }), z(r)));
99
+ }), z(n)));
100
100
  },
101
101
  [z]
102
102
  ), o = h((e) => {
103
- b((n) => {
104
- if (!n[e])
105
- return n;
106
- const r = { ...n };
107
- return delete r[e], r;
103
+ b((t) => {
104
+ if (!t[e])
105
+ return t;
106
+ const n = { ...t };
107
+ return delete n[e], n;
108
108
  });
109
- }, []), a = h(
109
+ }, []), l = h(
110
110
  (e) => {
111
- e && (o(e), I((n) => ({
112
- ...n,
113
- [e]: (n[e] || 0) + 1
111
+ e && (o(e), I((t) => ({
112
+ ...t,
113
+ [e]: (t[e] || 0) + 1
114
114
  })));
115
115
  },
116
116
  [o]
117
- ), p = h((e) => {
118
- b((n) => !n[e] || n[e].status === "interactive" ? n : {
119
- ...n,
120
- [e]: { ...n[e], status: "interactive" }
117
+ ), w = h((e) => {
118
+ b((t) => !t[e] || t[e].status === "interactive" ? t : {
119
+ ...t,
120
+ [e]: { ...t[e], status: "interactive" }
121
121
  });
122
- }, []), w = h(
122
+ }, []), x = h(
123
123
  (e) => {
124
124
  o(e.origin);
125
125
  },
126
126
  [o]
127
- ), $ = h(
128
- (e, n) => {
129
- const r = re(e, n);
130
- if (r) {
131
- if (pe(r, window.location.origin)) {
132
- c(r, "cross-site-legacy");
127
+ ), L = h(
128
+ (e, t) => {
129
+ const n = ne(e, t);
130
+ if (n) {
131
+ if (fe(n, window.location.origin)) {
132
+ u(n, "cross-site-legacy");
133
133
  return;
134
134
  }
135
- u(e, { origin: r });
135
+ a(e, { origin: n });
136
136
  }
137
137
  },
138
- [u, c]
138
+ [a, u]
139
139
  );
140
140
  k(() => {
141
141
  if (!d)
@@ -147,168 +147,168 @@ const Y = ie(null), J = ie({
147
147
  // signals, so it is usually cached by the time an entry is created. The
148
148
  // clientId is only a lookup key: the host resolves the display name from
149
149
  // it, and a broker binds it to the attested origin server-side.
150
- d.addListener("*", "init", (n, r) => {
151
- r != null && r.origin && (n != null && n.clientId) && (O.current[r.origin] = n.clientId, z(r.origin)), r != null && r.origin && Array.isArray(n == null ? void 0 : n.acceptsCredentials) && (q.current[r.origin] = n.acceptsCredentials);
150
+ d.addListener("*", "init", (t, n) => {
151
+ n != null && n.origin && (t != null && t.clientId) && (C.current[n.origin] = t.clientId, z(n.origin)), n != null && n.origin && Array.isArray(t == null ? void 0 : t.acceptsCredentials) && (v.current[n.origin] = t.acceptsCredentials);
152
152
  }),
153
- d.addListener("*", "authorize", $),
154
- d.addListener("*", "login", $),
153
+ d.addListener("*", "authorize", L),
154
+ d.addListener("*", "login", L),
155
155
  d.addListener(
156
156
  "*",
157
157
  "credential-request",
158
- (n, r) => u(n, { v2: !0, origin: re(n, r) })
158
+ (t, n) => a(t, { v2: !0, origin: ne(t, n) })
159
159
  )
160
160
  ];
161
- return () => e.forEach((n) => n());
162
- }, [d, $, u, z]), k(() => {
163
- const e = (n) => {
164
- const r = n == null ? void 0 : n.data;
165
- if (!r || r.type !== "authorized" && r.type !== "authorize-failed")
161
+ return () => e.forEach((t) => t());
162
+ }, [d, L, a, z]), k(() => {
163
+ const e = (t) => {
164
+ const n = t == null ? void 0 : t.data;
165
+ if (!n || n.type !== "authorized" && n.type !== "authorize-failed")
166
166
  return;
167
- const l = Q(r.authUrl);
168
- if (!(!l || n.origin !== l)) {
169
- if (r.type === "authorized") {
170
- if (r.accessToken) {
171
- if (!E.current[l])
167
+ const i = Q(n.authUrl);
168
+ if (!(!i || t.origin !== i)) {
169
+ if (n.type === "authorized") {
170
+ if (n.accessToken) {
171
+ if (!E.current[i])
172
172
  return;
173
- _((g) => ({
174
- ...g,
175
- [l]: ne({ accessToken: r.accessToken })
176
- })), o(l);
173
+ A((f) => ({
174
+ ...f,
175
+ [i]: re({ accessToken: n.accessToken })
176
+ })), o(i);
177
177
  } else
178
- a(l);
178
+ l(i);
179
179
  return;
180
180
  }
181
- p(l);
181
+ w(i);
182
182
  }
183
183
  };
184
184
  return window.addEventListener("message", e), () => window.removeEventListener("message", e);
185
- }, [o, a, p]);
186
- const U = h(
187
- (e, n) => {
188
- const r = e == null ? void 0 : e.origin, l = ne(n);
189
- !r || !l || (_((g) => ({ ...g, [r]: l })), o(r));
185
+ }, [o, l, w]);
186
+ const M = h(
187
+ (e, t) => {
188
+ const n = e == null ? void 0 : e.origin, i = re(t);
189
+ !n || !i || (A((f) => ({ ...f, [n]: i })), o(n));
190
190
  },
191
191
  [o]
192
- ), x = h((e, n) => {
193
- b((r) => r[e] ? { ...r, [e]: { ...r[e], ...n } } : r);
194
- }, []), S = h(
195
- async (e, { approve: n } = {}) => {
196
- const r = j.current, { origin: l } = e;
197
- let g;
192
+ ), m = h((e, t) => {
193
+ b((n) => n[e] ? { ...n, [e]: { ...n[e], ...t } } : n);
194
+ }, []), $ = h(
195
+ async (e, { approve: t } = {}) => {
196
+ const n = S.current, { origin: i } = e;
197
+ let f;
198
198
  try {
199
- g = await r(
200
- { origin: l, clientId: e.clientId, scope: e.scope, authUrl: e.authUrl },
201
- { approve: n }
199
+ f = await n(
200
+ { origin: i, clientId: e.clientId, scope: e.scope, authUrl: e.authUrl },
201
+ { approve: t }
202
202
  );
203
203
  } catch {
204
- n ? x(l, { error: { reason: "broker_unavailable" } }) : x(l, {
204
+ t ? m(i, { error: { reason: "broker_unavailable" } }) : m(i, {
205
205
  status: e.silentUrl && X ? "silent" : "interactive"
206
206
  });
207
207
  return;
208
208
  }
209
- if ((g == null ? void 0 : g.status) === 200 && g.credential) {
210
- U(e, g.credential);
209
+ if ((f == null ? void 0 : f.status) === 200 && f.credential) {
210
+ M(e, f.credential);
211
211
  return;
212
212
  }
213
- if ((g == null ? void 0 : g.status) === 409 && g.consentRequired) {
214
- x(l, {
213
+ if ((f == null ? void 0 : f.status) === 409 && f.consentRequired) {
214
+ m(i, {
215
215
  status: "interactive",
216
216
  consent: {
217
- client: g.client || null,
218
- stepUp: !!g.stepUp,
219
- scope: g.scope || e.scope
217
+ client: f.client || null,
218
+ stepUp: !!f.stepUp,
219
+ scope: f.scope || e.scope
220
220
  },
221
221
  error: null
222
222
  });
223
223
  return;
224
224
  }
225
- const N = (g == null ? void 0 : g.error) || "broker_error";
226
- if (!n && de.has(N)) {
227
- x(l, {
225
+ const N = (f == null ? void 0 : f.error) || "broker_error";
226
+ if (!t && le.has(N)) {
227
+ m(i, {
228
228
  status: e.silentUrl && X ? "silent" : "interactive"
229
229
  });
230
230
  return;
231
231
  }
232
- if (n && N === "consent_denied") {
233
- x(l, { error: null });
232
+ if (t && N === "consent_denied") {
233
+ m(i, { error: null });
234
234
  return;
235
235
  }
236
- o(l), y((te) => ({
236
+ o(i), y((te) => ({
237
237
  ...te,
238
- [l]: {
239
- origin: l,
238
+ [i]: {
239
+ origin: i,
240
240
  reason: `broker:${N}`,
241
- detail: g || null,
242
- clientId: e.clientId || O.current[l] || null
241
+ detail: f || null,
242
+ clientId: e.clientId || C.current[i] || null
243
243
  }
244
244
  }));
245
245
  },
246
- [U, x, o]
247
- ), v = R({});
246
+ [M, m, o]
247
+ ), B = R({});
248
248
  k(() => {
249
- Object.values(f).forEach((e) => {
250
- e.status !== "broker" || v.current[e.origin] || (v.current[e.origin] = !0, S(e).finally(() => {
251
- delete v.current[e.origin];
249
+ Object.values(p).forEach((e) => {
250
+ e.status !== "broker" || B.current[e.origin] || (B.current[e.origin] = !0, $(e).finally(() => {
251
+ delete B.current[e.origin];
252
252
  }));
253
253
  });
254
- }, [f, S]);
255
- const F = h(
256
- (e) => !j.current || !(e != null && e.consent) ? Promise.resolve() : S(e, { approve: !0 }),
257
- [S]
254
+ }, [p, $]);
255
+ const P = h(
256
+ (e) => !S.current || !(e != null && e.consent) ? Promise.resolve() : $(e, { approve: !0 }),
257
+ [$]
258
258
  );
259
259
  k(() => {
260
- const e = K.current;
261
- Object.values(f).forEach((n) => {
262
- n.status === "silent" && !e[n.origin] && (e[n.origin] = setTimeout(() => {
263
- delete e[n.origin], p(n.origin);
264
- }, fe));
265
- }), Object.keys(e).forEach((n) => {
266
- (!f[n] || f[n].status !== "silent") && (clearTimeout(e[n]), delete e[n]);
260
+ const e = G.current;
261
+ Object.values(p).forEach((t) => {
262
+ t.status === "silent" && !e[t.origin] && (e[t.origin] = setTimeout(() => {
263
+ delete e[t.origin], w(t.origin);
264
+ }, de));
265
+ }), Object.keys(e).forEach((t) => {
266
+ (!p[t] || p[t].status !== "silent") && (clearTimeout(e[t]), delete e[t]);
267
267
  });
268
- }, [f, p]), k(() => () => {
269
- L.current && L.current(), Object.values(K.current).forEach(clearTimeout);
268
+ }, [p, w]), k(() => () => {
269
+ O.current && O.current(), Object.values(G.current).forEach(clearTimeout);
270
270
  }, []);
271
- const Z = h(
271
+ const q = h(
272
272
  (e) => {
273
- L.current && (L.current(), L.current = null);
274
- const n = s || ge;
275
- L.current = n(e, {
273
+ O.current && (O.current(), O.current = null);
274
+ const t = s || pe;
275
+ O.current = t(e, {
276
276
  onBlocked: () => {
277
- b((r) => r[e.origin] ? {
278
- ...r,
279
- [e.origin]: { ...r[e.origin], popupBlocked: !0 }
280
- } : r);
277
+ b((n) => n[e.origin] ? {
278
+ ...n,
279
+ [e.origin]: { ...n[e.origin], popupBlocked: !0 }
280
+ } : n);
281
281
  },
282
282
  onClosed: () => {
283
283
  if (e.v2) {
284
- X && b((r) => !r[e.origin] || !r[e.origin].silentUrl ? r : {
285
- ...r,
286
- [e.origin]: { ...r[e.origin], status: "silent" }
284
+ X && b((n) => !n[e.origin] || !n[e.origin].silentUrl ? n : {
285
+ ...n,
286
+ [e.origin]: { ...n[e.origin], status: "silent" }
287
287
  });
288
288
  return;
289
289
  }
290
- a(e.origin);
290
+ l(e.origin);
291
291
  }
292
292
  });
293
293
  },
294
- [s, a]
295
- ), G = {
294
+ [s, l]
295
+ ), Z = {
296
296
  // Hosts render UI for interactive entries only; silent resolution is
297
297
  // invisible by design.
298
- pending: Object.values(f).filter(
298
+ pending: Object.values(p).filter(
299
299
  (e) => e.status === "interactive"
300
300
  ),
301
- authorize: Z,
302
- approve: F,
303
- complete: U,
304
- dismiss: w,
305
- originEpochs: B,
306
- credentials: M,
307
- unsupported: A
308
- }, P = Object.values(f).filter(
301
+ authorize: q,
302
+ approve: P,
303
+ complete: M,
304
+ dismiss: x,
305
+ originEpochs: j,
306
+ credentials: _,
307
+ unsupported: F
308
+ }, W = Object.values(p).filter(
309
309
  (e) => e.status === "silent" && e.silentUrl
310
310
  );
311
- return /* @__PURE__ */ m.createElement(J.Provider, { value: G }, t, P.map((e) => /* @__PURE__ */ m.createElement(
311
+ return /* @__PURE__ */ g.createElement(J.Provider, { value: Z }, r, W.map((e) => /* @__PURE__ */ g.createElement(
312
312
  "iframe",
313
313
  {
314
314
  key: `mm-silent-auth-${e.origin}`,
@@ -320,7 +320,7 @@ const Y = ie(null), J = ie({
320
320
  }
321
321
  )));
322
322
  };
323
- ce.propTypes = {
323
+ ie.propTypes = {
324
324
  children: T.node,
325
325
  launcher: T.func,
326
326
  /**
@@ -332,143 +332,143 @@ ce.propTypes = {
332
332
  */
333
333
  broker: T.func
334
334
  };
335
- const he = () => H(J), me = (t) => {
336
- const { originEpochs: s } = H(J), i = Q(t);
337
- return i && s[i] || 0;
338
- }, be = (t) => {
339
- const { credentials: s } = H(J), i = Q(t);
340
- return i && s[i] || null;
341
- }, Ee = (t) => {
342
- const { unsupported: s } = H(J), i = Q(t);
343
- return i && s[i] || null;
344
- }, we = ({ children: t, authorizationLauncher: s, credentialBroker: i }) => {
345
- const [d, f] = C({}), [b, B] = C({}), I = R({}), M = R({}), _ = R({}), A = h((c, u) => {
335
+ const he = () => K(J), ge = (r) => {
336
+ const { originEpochs: s } = K(J), c = Q(r);
337
+ return c && s[c] || 0;
338
+ }, me = (r) => {
339
+ const { credentials: s } = K(J), c = Q(r);
340
+ return c && s[c] || null;
341
+ }, be = (r) => {
342
+ const { unsupported: s } = K(J), c = Q(r);
343
+ return c && s[c] || null;
344
+ }, Ee = ({ children: r, authorizationLauncher: s, credentialBroker: c }) => {
345
+ const [d, p] = U({}), [b, j] = U({}), I = R({}), _ = R({}), A = R({}), F = h((u, a) => {
346
346
  var o;
347
- return !!((o = _.current[c]) != null && o.has(u));
348
- }, []), y = h((c, u, o) => {
349
- f((a) => ({ ...a, [c]: { origin: u, frameRef: o } }));
350
- }, []), W = h((c) => {
351
- f((u) => {
352
- const o = { ...u };
353
- return delete o[c], o;
354
- }), B((u) => {
355
- const o = { ...u };
356
- return delete o[c], o;
357
- }), delete _.current[c];
347
+ return !!((o = A.current[u]) != null && o.has(a));
348
+ }, []), y = h((u, a, o) => {
349
+ p((l) => ({ ...l, [u]: { origin: a, frameRef: o } }));
350
+ }, []), H = h((u) => {
351
+ p((a) => {
352
+ const o = { ...a };
353
+ return delete o[u], o;
354
+ }), j((a) => {
355
+ const o = { ...a };
356
+ return delete o[u], o;
357
+ }), delete A.current[u];
358
358
  }, []);
359
359
  k(() => {
360
- const c = (o = [], a, p) => {
361
- o.forEach((w) => w(a, p));
362
- }, u = (o) => {
363
- var S, v, F, Z, G, P, e;
364
- if (!((S = o == null ? void 0 : o.data) != null && S.instanceId))
360
+ const u = (o = [], l, w) => {
361
+ o.forEach((x) => x(l, w));
362
+ }, a = (o) => {
363
+ var $, B, P, q, Z, W, e;
364
+ if (!(($ = o == null ? void 0 : o.data) != null && $.instanceId))
365
365
  return;
366
- const { instanceId: a, type: p } = o.data, w = d[a], $ = (F = (v = w == null ? void 0 : w.frameRef) == null ? void 0 : v.current) == null ? void 0 : F.contentWindow;
367
- if (!$ || o.source !== $ || o.origin !== w.origin)
366
+ const { instanceId: l, type: w } = o.data, x = d[l], L = (P = (B = x == null ? void 0 : x.frameRef) == null ? void 0 : B.current) == null ? void 0 : P.contentWindow;
367
+ if (!L || o.source !== L || o.origin !== x.origin)
368
368
  return;
369
- const U = { origin: o.origin }, x = I.current;
370
- if (p === "response") {
371
- const { callbackId: n, response: r, error: l } = o.data, g = M.current[n];
372
- g && (g(r, l), delete M.current[n]);
369
+ const M = { origin: o.origin }, m = I.current;
370
+ if (w === "response") {
371
+ const { callbackId: t, response: n, error: i } = o.data, f = _.current[t];
372
+ f && (f(n, i), delete _.current[t]);
373
373
  return;
374
374
  }
375
- if (p === "mark-registered") {
376
- const { requestType: n } = o.data;
377
- _.current[a] || (_.current[a] = /* @__PURE__ */ new Set()), _.current[a].add(n);
375
+ if (w === "mark-registered") {
376
+ const { requestType: t } = o.data;
377
+ A.current[l] || (A.current[l] = /* @__PURE__ */ new Set()), A.current[l].add(t);
378
378
  return;
379
379
  }
380
- p === "ready" && B((n) => ({ ...n, [a]: !0 })), c((Z = x[a]) == null ? void 0 : Z[p], o.data, U), c((G = x["*"]) == null ? void 0 : G[p], o.data, U), c((P = x[a]) == null ? void 0 : P["*"], o.data, U), c((e = x["*"]) == null ? void 0 : e["*"], o.data, U);
380
+ w === "ready" && j((t) => ({ ...t, [l]: !0 })), u((q = m[l]) == null ? void 0 : q[w], o.data, M), u((Z = m["*"]) == null ? void 0 : Z[w], o.data, M), u((W = m[l]) == null ? void 0 : W["*"], o.data, M), u((e = m["*"]) == null ? void 0 : e["*"], o.data, M);
381
381
  };
382
- return window.addEventListener("message", u), () => {
383
- window.removeEventListener("message", u);
382
+ return window.addEventListener("message", a), () => {
383
+ window.removeEventListener("message", a);
384
384
  };
385
385
  }, [d]);
386
386
  const E = h(
387
- (c, u, o) => {
388
- var p, w;
389
- const a = d[c];
390
- if (!a) {
391
- console.warn(`Origin not set for id: ${c}. Unable to send message.`);
387
+ (u, a, o) => {
388
+ var w, x;
389
+ const l = d[u];
390
+ if (!l) {
391
+ console.warn(`Origin not set for id: ${u}. Unable to send message.`);
392
392
  return;
393
393
  }
394
- (w = (p = a == null ? void 0 : a.frameRef) == null ? void 0 : p.current) != null && w.contentWindow && a.frameRef.current.contentWindow.postMessage(
395
- { type: u, ...o, instanceId: c },
396
- a.origin
394
+ (x = (w = l == null ? void 0 : l.frameRef) == null ? void 0 : w.current) != null && x.contentWindow && l.frameRef.current.contentWindow.postMessage(
395
+ { type: a, ...o, instanceId: u },
396
+ l.origin
397
397
  );
398
398
  },
399
399
  [d]
400
- ), L = R(0), K = h(() => `${Date.now()}-${++L.current}`, []), O = h(
401
- async (c, u, o = {}) => new Promise((a, p) => {
402
- const w = K(), $ = (U, x) => {
403
- delete M.current[w], x ? p(x) : a(U);
400
+ ), O = R(0), G = h(() => `${Date.now()}-${++O.current}`, []), C = h(
401
+ async (u, a, o = {}) => new Promise((l, w) => {
402
+ const x = G(), L = (M, m) => {
403
+ delete _.current[x], m ? w(m) : l(M);
404
404
  };
405
- M.current[w] = $, E(c, "request", { callbackId: w, requestType: u, data: o });
405
+ _.current[x] = L, E(u, "request", { callbackId: x, requestType: a, data: o });
406
406
  }),
407
407
  [E]
408
- ), q = h(
409
- (c, u) => {
410
- E(c, "load-options", u);
408
+ ), v = h(
409
+ (u, a) => {
410
+ E(u, "load-options", a);
411
411
  },
412
412
  [E]
413
- ), j = h(
414
- (c, u) => {
415
- E(c, "validate", u);
413
+ ), S = h(
414
+ (u, a) => {
415
+ E(u, "validate", a);
416
416
  },
417
417
  [E]
418
- ), z = le(
418
+ ), z = ue(
419
419
  () => ({
420
420
  registerFrame: y,
421
- unregisterFrame: W,
421
+ unregisterFrame: H,
422
422
  sendMessage: E,
423
- sendRequest: O,
424
- loadOptions: q,
425
- validate: j,
426
- hasHandler: A,
423
+ sendRequest: C,
424
+ loadOptions: v,
425
+ validate: S,
426
+ hasHandler: F,
427
427
  readyFrames: b,
428
- addListener: (c, u, o) => (I.current[c] || (I.current[c] = {}), I.current[c][u] || (I.current[c][u] = []), I.current[c][u].push(o), () => {
429
- I.current[c][u] = I.current[c][u].filter((a) => a !== o);
428
+ addListener: (u, a, o) => (I.current[u] || (I.current[u] = {}), I.current[u][a] || (I.current[u][a] = []), I.current[u][a].push(o), () => {
429
+ I.current[u][a] = I.current[u][a].filter((l) => l !== o);
430
430
  })
431
431
  }),
432
432
  [
433
433
  y,
434
- W,
434
+ H,
435
435
  E,
436
- O,
437
- q,
438
- j,
439
- A,
436
+ C,
437
+ v,
438
+ S,
439
+ F,
440
440
  b
441
441
  ]
442
442
  );
443
- return /* @__PURE__ */ m.createElement(Y.Provider, { value: z }, /* @__PURE__ */ m.createElement(ce, { launcher: s, broker: i }, t));
444
- }, V = (t, s, i) => {
445
- const d = H(Y);
443
+ return /* @__PURE__ */ g.createElement(Y.Provider, { value: z }, /* @__PURE__ */ g.createElement(ie, { launcher: s, broker: c }, r));
444
+ }, V = (r, s, c) => {
445
+ const d = K(Y);
446
446
  if (d === null)
447
447
  throw new Error(
448
448
  "useEmbeddedEffect must be used within a MMEmbeddableZoneProvider"
449
449
  );
450
- const f = R(i);
450
+ const p = R(c);
451
451
  k(() => {
452
- f.current = i;
453
- }, [i]), k(() => {
454
- if (!(!t || !s)) {
452
+ p.current = c;
453
+ }, [c]), k(() => {
454
+ if (!(!r || !s)) {
455
455
  if (s.startsWith("key:")) {
456
456
  const b = s.substring(4);
457
- return d.readyFrames[t] && d.sendMessage(t, "subscribe-key", { keyChord: b }), d.addListener(
458
- t,
457
+ return d.readyFrames[r] && d.sendMessage(r, "subscribe-key", { keyChord: b }), d.addListener(
458
+ r,
459
459
  `key-pressed:${b}`,
460
- (...I) => f.current(...I)
460
+ (...I) => p.current(...I)
461
461
  );
462
462
  }
463
463
  return d.addListener(
464
- t,
464
+ r,
465
465
  s,
466
- (...b) => f.current(...b)
466
+ (...b) => p.current(...b)
467
467
  );
468
468
  }
469
- }, [d, t, s]);
469
+ }, [d, r, s]);
470
470
  };
471
- we.propTypes = {
471
+ Ee.propTypes = {
472
472
  children: T.node.isRequired,
473
473
  /**
474
474
  * Optional interactive-step launcher for embedded authorizations,
@@ -485,13 +485,13 @@ we.propTypes = {
485
485
  */
486
486
  credentialBroker: T.func
487
487
  };
488
- const ee = D.default || D, ke = 1e4, Re = "credentials", oe = (t, s) => `${t}/mm-embedded-interop?id=${encodeURIComponent(s)}&origin=${encodeURIComponent(
488
+ const ee = D.default || D, we = 1e4, ke = "credentials", Re = (r, s) => `${r}/mm-embedded-interop?id=${encodeURIComponent(s)}&origin=${encodeURIComponent(
489
489
  window.location.origin
490
- )}&caps=${Re}`, xe = ee.iframe`
490
+ )}&caps=${ke}`, xe = ee.iframe`
491
491
  width: 100%;
492
492
  height: 100%;
493
493
  border: none;
494
- visibility: ${(t) => t.$isReady ? "visible" : "hidden"};
494
+ visibility: ${(r) => r.$isReady ? "visible" : "hidden"};
495
495
  `, Te = ee.div`
496
496
  width: 100%;
497
497
  height: 100%;
@@ -505,9 +505,9 @@ const ee = D.default || D, ke = 1e4, Re = "credentials", oe = (t, s) => `${t}/mm
505
505
  text-align: center;
506
506
  color: #555;
507
507
  font-size: 14px;
508
- `, Ie = (t) => {
509
- const s = t && t.origin || "This app", i = t && t.reason || "";
510
- switch (i) {
508
+ `, Ie = (r) => {
509
+ const s = r && r.origin || "This app", c = r && r.reason || "";
510
+ switch (c) {
511
511
  case "broker:scope_above_ceiling":
512
512
  return {
513
513
  title: `${s} can’t be authorized here`,
@@ -525,7 +525,7 @@ const ee = D.default || D, ke = 1e4, Re = "credentials", oe = (t, s) => `${t}/mm
525
525
  detail: "It can’t be authorized for this account."
526
526
  };
527
527
  default:
528
- return i.startsWith("broker:") ? {
528
+ return c.startsWith("broker:") ? {
529
529
  title: `${s} can’t be authorized here`,
530
530
  detail: "Authorization was refused."
531
531
  } : {
@@ -533,11 +533,11 @@ const ee = D.default || D, ke = 1e4, Re = "credentials", oe = (t, s) => `${t}/mm
533
533
  detail: "It needs an update to support embedding from a different domain."
534
534
  };
535
535
  }
536
- }, ue = ({ entry: t }) => {
537
- const s = Ie(t);
538
- return /* @__PURE__ */ m.createElement(Te, { "data-reason": t && t.reason || void 0 }, /* @__PURE__ */ m.createElement("div", { style: { fontWeight: 600 } }, s.title), /* @__PURE__ */ m.createElement("div", { style: { fontSize: 12, color: "#888" } }, s.detail));
536
+ }, ce = ({ entry: r }) => {
537
+ const s = Ie(r);
538
+ return /* @__PURE__ */ g.createElement(Te, { "data-reason": r && r.reason || void 0 }, /* @__PURE__ */ g.createElement("div", { style: { fontWeight: 600 } }, s.title), /* @__PURE__ */ g.createElement("div", { style: { fontSize: 12, color: "#888" } }, s.detail));
539
539
  };
540
- ue.propTypes = {
540
+ ce.propTypes = {
541
541
  entry: T.shape({
542
542
  origin: T.string,
543
543
  name: T.string,
@@ -545,26 +545,26 @@ ue.propTypes = {
545
545
  detail: T.object
546
546
  })
547
547
  };
548
- const Ue = ee.div`
548
+ const ze = ee.div`
549
549
  height: 100%;
550
550
  display: flex;
551
551
  flex: 1;
552
552
  align-items: center;
553
553
  justify-content: center;
554
- `, ze = () => /* @__PURE__ */ m.createElement(Ue, null, /* @__PURE__ */ m.createElement("div", { style: { textAlign: "center" } }, "This app couldn’t be loaded as an embeddable widget.")), Ce = ({
555
- id: t,
554
+ `, Ue = () => /* @__PURE__ */ g.createElement(ze, null, /* @__PURE__ */ g.createElement("div", { style: { textAlign: "center" } }, "This app couldn’t be loaded as an embeddable widget.")), Ce = ({
555
+ id: r,
556
556
  src: s,
557
- path: i,
557
+ path: c,
558
558
  onInit: d = () => {
559
559
  },
560
- onTimeout: f,
560
+ onTimeout: p,
561
561
  context: b = {},
562
- params: B = {},
562
+ params: j = {},
563
563
  renderUnsupported: I,
564
- renderTimeout: M,
565
- ..._
564
+ renderTimeout: _,
565
+ ...A
566
566
  }) => {
567
- if ("isConfiguring" in _)
567
+ if ("isConfiguring" in A)
568
568
  return console.error(
569
569
  "isConfiguring must be passed via the params prop to MMEmbeddableZone"
570
570
  ), null;
@@ -576,78 +576,76 @@ const Ue = ee.div`
576
576
  return console.error(
577
577
  "isFullScreen must be passed via the params prop to MMEmbeddableZone"
578
578
  ), null;
579
- const A = R(), [y, W] = C(), [E, L] = C(0), [K, O] = C(!1), [q, j] = C(!1), z = me(s), c = be(s), u = Ee(s);
580
- k(() => {
581
- z > 0 && L(0);
582
- }, [z]);
583
- const { registerFrame: o, unregisterFrame: a, sendMessage: p } = H(
579
+ const F = R(), [y, H] = U(), [E, O] = U(0), [G, C] = U(!1), [v, S] = U(!1), z = ge(s), u = me(s), a = be(s), [o, l] = U(0), [w, x] = U(null), { registerFrame: L, unregisterFrame: M, sendMessage: m } = K(
584
580
  Y
585
- ), [w, $] = C(), U = R(), x = R(f), S = R(d), v = R(!1);
581
+ ), [$, B] = U(), P = R(), q = R(p), Z = R(d), W = R(!1), e = h(() => {
582
+ W.current = !1, clearTimeout(P.current), O(0), C(!1), S(!1), x(null);
583
+ }, []);
586
584
  k(() => {
587
- x.current = f;
588
- }, [f]), k(() => {
589
- S.current = d;
585
+ (z > 0 || o > 0) && e();
586
+ }, [z, o, e]), k(() => {
587
+ q.current = p;
588
+ }, [p]), k(() => {
589
+ Z.current = d;
590
590
  }, [d]), k(() => {
591
- E && p(t, "set-context", {
591
+ E && m(r, "set-context", {
592
592
  context: {
593
593
  ...b
594
594
  }
595
595
  });
596
- }, [b, t, E]), k(() => {
597
- E && p(t, "set-params", { params: B });
598
- }, [B, t, E]), k(() => {
599
- i !== void 0 && $((i == null ? void 0 : i.indexOf("/")) === 0 ? i : `/${i}`);
600
- }, [i]), k(() => {
601
- w === void 0 || !E || p(t, "navigate", { path: w });
602
- }, [w, E, t, p]), k(() => {
603
- if (!s || !t || !A)
596
+ }, [b, r, E]), k(() => {
597
+ E && m(r, "set-params", { params: j });
598
+ }, [j, r, E]), k(() => {
599
+ c !== void 0 && B((c == null ? void 0 : c.indexOf("/")) === 0 ? c : `/${c}`);
600
+ }, [c]), k(() => {
601
+ $ === void 0 || !E || m(r, "navigate", { path: $ });
602
+ }, [$, E, r, m]), k(() => {
603
+ if (!s || !r || !F)
604
604
  return;
605
- const e = new URL(s);
606
- return o(t, e.origin, A), S.current(), W(oe(e.origin, t)), () => {
607
- a(t);
605
+ e();
606
+ const i = new URL(s);
607
+ return L(r, i.origin, F), Z.current(), H(Re(i.origin, r)), () => {
608
+ M(r);
608
609
  };
609
- }, [s, t, o, A]), k(() => {
610
- if (!(!y || v.current))
611
- return U.current = setTimeout(() => {
612
- O(!0), x.current && x.current();
613
- }, ke), () => clearTimeout(U.current);
614
- }, [y]);
615
- const F = h(() => {
616
- v.current = !0, clearTimeout(U.current), O(!1);
617
- }, []), [Z, G] = C(null);
618
- V(t, "init", (e) => {
619
- F(), Array.isArray(e == null ? void 0 : e.acceptsCredentials) && G(e.acceptsCredentials);
620
- }), V(t, "authorize", F), V(t, "login", F), V(t, "credential-request", () => {
621
- F(), j(!0);
610
+ }, [s, r, L, F, e]), k(() => {
611
+ if (!(!y || W.current))
612
+ return P.current = setTimeout(() => {
613
+ C(!0), q.current && q.current();
614
+ }, we), () => clearTimeout(P.current);
615
+ }, [y, s, z, o]);
616
+ const t = h(() => {
617
+ W.current = !0, clearTimeout(P.current), C(!1);
618
+ }, []);
619
+ V(r, "init", (i) => {
620
+ t(), Array.isArray(i == null ? void 0 : i.acceptsCredentials) && x(i.acceptsCredentials);
621
+ }), V(r, "authorize", t), V(r, "login", t), V(r, "credential-request", () => {
622
+ t(), S(!0);
622
623
  }), k(() => {
623
- if (!q || !c)
624
+ if (!v || !u)
624
625
  return;
625
- const e = Z;
626
- if (Array.isArray(e) && !e.includes(c.kind))
626
+ const i = w;
627
+ if (Array.isArray(i) && !i.includes(u.kind))
627
628
  return;
628
- const n = c.kind === "access_token" ? { accessToken: c.accessToken } : {};
629
- p(t, "credential", { ...n, credential: c });
630
- }, [q, c, Z, t, p]), V(t, "ready", () => {
631
- F(), L((e) => e + 1);
629
+ const f = u.kind === "access_token" ? { accessToken: u.accessToken } : {};
630
+ m(r, "credential", { ...f, credential: u });
631
+ }, [v, u, w, r, m]), V(r, "ready", () => {
632
+ t(), O((i) => i + 1);
632
633
  });
633
- const P = R();
634
- return V(t, "heartbeat", () => {
635
- P.current && clearTimeout(P.current), P.current = setTimeout(() => {
636
- if (A.current) {
637
- const e = new URL(s);
638
- A.current.src = oe(e.origin, t);
639
- }
634
+ const n = R();
635
+ return V(r, "heartbeat", () => {
636
+ n.current && clearTimeout(n.current), n.current = setTimeout(() => {
637
+ l((i) => i + 1);
640
638
  }, 6e3);
641
639
  }), k(() => () => {
642
- P.current && clearTimeout(P.current);
643
- }, []), u ? I ? I(u) : /* @__PURE__ */ m.createElement(ue, { entry: u }) : K && !E ? M ? M() : /* @__PURE__ */ m.createElement(ze, null) : /* @__PURE__ */ m.createElement(
640
+ n.current && clearTimeout(n.current);
641
+ }, []), a ? I ? I(a) : /* @__PURE__ */ g.createElement(ce, { entry: a }) : G && !E ? _ ? _() : /* @__PURE__ */ g.createElement(Ue, null) : /* @__PURE__ */ g.createElement(
644
642
  xe,
645
643
  {
646
- key: `auth-epoch-${z}`,
644
+ key: `auth-epoch-${z}-frame-${o}`,
647
645
  $isReady: E,
648
- ref: A,
646
+ ref: F,
649
647
  src: y,
650
- ..._
648
+ ...A
651
649
  }
652
650
  );
653
651
  };
@@ -693,7 +691,7 @@ const Me = D.div`
693
691
  justify-content: space-between;
694
692
  padding: 10px 0;
695
693
  gap: 16px;
696
- `, Le = D.button`
694
+ `, Oe = D.button`
697
695
  background: #16a500;
698
696
  color: #fff;
699
697
  border: none;
@@ -702,13 +700,13 @@ const Me = D.div`
702
700
  font-size: 14px;
703
701
  cursor: pointer;
704
702
  white-space: nowrap;
705
- `, Oe = D.p`
703
+ `, Le = D.p`
706
704
  color: #b3261e;
707
705
  font-size: 13px;
708
706
  margin: 4px 0 0;
709
707
  `, Fe = () => {
710
- const { pending: t, authorize: s } = he();
711
- return t.length === 0 ? null : /* @__PURE__ */ m.createElement(Me, null, /* @__PURE__ */ m.createElement(_e, null, /* @__PURE__ */ m.createElement("h3", { style: { margin: "0 0 8px" } }, "Authorization Required"), /* @__PURE__ */ m.createElement("p", { style: { margin: "0 0 12px", fontSize: 14, color: "#555" } }, "The following apps need you to sign in and authorize them before they can load."), t.map((i) => /* @__PURE__ */ m.createElement("div", { key: i.origin }, /* @__PURE__ */ m.createElement(Ae, null, /* @__PURE__ */ m.createElement("div", null, /* @__PURE__ */ m.createElement("div", { style: { fontWeight: 600 } }, i.origin)), /* @__PURE__ */ m.createElement(Le, { onClick: () => s(i) }, "Authorize")), i.popupBlocked && /* @__PURE__ */ m.createElement(Oe, null, "The sign-in window was blocked. Allow popups for this site, then try again.")))));
708
+ const { pending: r, authorize: s } = he();
709
+ return r.length === 0 ? null : /* @__PURE__ */ g.createElement(Me, null, /* @__PURE__ */ g.createElement(_e, null, /* @__PURE__ */ g.createElement("h3", { style: { margin: "0 0 8px" } }, "Authorization Required"), /* @__PURE__ */ g.createElement("p", { style: { margin: "0 0 12px", fontSize: 14, color: "#555" } }, "The following apps need you to sign in and authorize them before they can load."), r.map((c) => /* @__PURE__ */ g.createElement("div", { key: c.origin }, /* @__PURE__ */ g.createElement(Ae, null, /* @__PURE__ */ g.createElement("div", null, /* @__PURE__ */ g.createElement("div", { style: { fontWeight: 600 } }, c.origin)), /* @__PURE__ */ g.createElement(Oe, { onClick: () => s(c) }, "Authorize")), c.popupBlocked && /* @__PURE__ */ g.createElement(Le, null, "The sign-in window was blocked. Allow popups for this site, then try again.")))));
712
710
  };
713
711
  export {
714
712
  ae as CREDENTIAL_KIND_ACCESS_TOKEN,
@@ -716,14 +714,14 @@ export {
716
714
  Fe as EmbeddedAuthorizationPrompt,
717
715
  Ce as MMEmbeddableZone,
718
716
  Y as MMEmbeddableZoneContext,
719
- we as MMEmbeddableZoneProvider,
720
- pe as isCrossSite,
721
- ne as normalizeCredential,
722
- ge as popupAuthorizationLauncher,
717
+ Ee as MMEmbeddableZoneProvider,
718
+ fe as isCrossSite,
719
+ re as normalizeCredential,
720
+ pe as popupAuthorizationLauncher,
723
721
  Ie as unsupportedCopy,
724
722
  he as useEmbeddedAuthorizations,
725
- be as useEmbeddedCredential,
723
+ me as useEmbeddedCredential,
726
724
  V as useEmbeddedEffect,
727
- me as useEmbeddedOriginEpoch,
728
- Ee as useEmbeddedUnsupported
725
+ ge as useEmbeddedOriginEpoch,
726
+ be as useEmbeddedUnsupported
729
727
  };