@ibdop/platform-kit 1.0.18 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import et, { useState as A, useRef as tt, useCallback as S, useEffect as L, useMemo as ye, Component as Lt, createContext as Ut, useContext as Bt } from "react";
2
- import Vt from "axios";
3
- function B() {
1
+ import tt, { useState as A, useRef as rt, useCallback as S, useEffect as L, useMemo as ve, Component as Vt, createContext as Bt, useContext as Ht } from "react";
2
+ import Wt, { AxiosHeaders as zt } from "axios";
3
+ function V() {
4
4
  if (typeof window > "u") return null;
5
5
  const t = window;
6
6
  if (t.__SHELL_AUTH_INSTANCE__)
@@ -8,8 +8,8 @@ function B() {
8
8
  const r = window;
9
9
  return r.__SHELL_AUTH__?.authInstance ? r.__SHELL_AUTH__.authInstance : null;
10
10
  }
11
- function dr() {
12
- const t = B();
11
+ function br() {
12
+ const t = V();
13
13
  if (!t)
14
14
  return { isAuthenticated: !1 };
15
15
  let r;
@@ -20,29 +20,29 @@ function dr() {
20
20
  r = t.user.profile.access_token;
21
21
  else if (typeof n.getAccessToken == "function")
22
22
  try {
23
- const i = n.getAccessToken();
24
- i instanceof Promise ? console.warn("[shellAuth] getAccessToken returned Promise - token may not be available synchronously") : typeof i == "string" && (r = i);
25
- } catch (i) {
26
- console.warn("[shellAuth] Failed to get access token via getAccessToken:", i);
23
+ const s = n.getAccessToken();
24
+ s instanceof Promise ? console.warn("[shellAuth] getAccessToken returned Promise - token may not be available synchronously") : typeof s == "string" && (r = s);
25
+ } catch (s) {
26
+ console.warn("[shellAuth] Failed to get access token via getAccessToken:", s);
27
27
  }
28
28
  return {
29
29
  isAuthenticated: t.isAuthenticated,
30
30
  user: t.user ? { ...t.user, access_token: r } : void 0
31
31
  };
32
32
  }
33
- function pr() {
34
- const t = B();
33
+ function xr() {
34
+ const t = V();
35
35
  return t?.isAuthenticated ? t.user?.profile?.access_token ?? null : null;
36
36
  }
37
- function hr() {
38
- return B()?.isAuthenticated ?? !1;
37
+ function kr() {
38
+ return V()?.isAuthenticated ?? !1;
39
39
  }
40
- async function Ht() {
41
- const t = B();
40
+ async function Gt() {
41
+ const t = V();
42
42
  t?.signinRedirect ? await t.signinRedirect() : typeof window < "u" && (window.location.href = "/");
43
43
  }
44
- async function mr() {
45
- const t = B();
44
+ async function Ar() {
45
+ const t = V();
46
46
  t?.removeUser && await t.removeUser();
47
47
  }
48
48
  const Je = {
@@ -52,19 +52,19 @@ const Je = {
52
52
  }
53
53
  };
54
54
  function ae() {
55
- const [t, r] = A(null), [n, i] = A(!0), c = tt(0), d = 20, a = S(() => B(), []);
55
+ const [t, r] = A(null), [n, s] = A(!0), c = rt(0), d = 20, a = S(() => V(), []);
56
56
  L(() => {
57
- const y = a();
58
- if (y) {
59
- r(y), i(!1);
57
+ const v = a();
58
+ if (v) {
59
+ r(v), s(!1);
60
60
  return;
61
61
  }
62
62
  const u = (f) => {
63
- r(f.detail), i(!1);
63
+ r(f.detail), s(!1);
64
64
  }, h = setInterval(() => {
65
65
  c.current++;
66
66
  const f = a();
67
- f ? (Je.log("Auth found via polling, attempts:", c.current), r(f), i(!1), clearInterval(h)) : c.current >= d && (i(!1), clearInterval(h));
67
+ f ? (Je.log("Auth found via polling, attempts:", c.current), r(f), s(!1), clearInterval(h)) : c.current >= d && (s(!1), clearInterval(h));
68
68
  }, 500);
69
69
  return window.addEventListener("shell-auth-ready", u), () => {
70
70
  clearInterval(h), window.removeEventListener("shell-auth-ready", u);
@@ -75,17 +75,17 @@ function ae() {
75
75
  isAuthenticated: !1,
76
76
  isLoading: n,
77
77
  signinRedirect: async () => {
78
- const y = B();
79
- y?.signinRedirect ? await y.signinRedirect() : typeof window < "u" && (window.location.href = "/");
78
+ const v = V();
79
+ v?.signinRedirect ? await v.signinRedirect() : typeof window < "u" && (window.location.href = "/");
80
80
  },
81
81
  removeUser: async () => {
82
- const y = B();
83
- y?.removeUser && await y.removeUser();
82
+ const v = V();
83
+ v?.removeUser && await v.removeUser();
84
84
  }
85
85
  };
86
86
  return Je.log("Auth result:", { isAuthenticated: p.isAuthenticated, isLoading: p.isLoading }), p;
87
87
  }
88
- const zt = {
88
+ const Yt = {
89
89
  log: (...t) => {
90
90
  },
91
91
  warn: (...t) => {
@@ -94,7 +94,7 @@ const zt = {
94
94
  console.error("[useInfoData]", ...t);
95
95
  }
96
96
  };
97
- function Wt(t) {
97
+ function qt(t) {
98
98
  if (t) return t;
99
99
  if (typeof window < "u") {
100
100
  const r = window;
@@ -102,28 +102,28 @@ function Wt(t) {
102
102
  }
103
103
  return "unknown-mfe";
104
104
  }
105
- function Gt(t) {
106
- const [r, n] = A(null), [i, c] = A(!0), [d, a] = A(null), s = S(() => {
107
- const y = Wt(t?.mfeName).replace("@ib-dop/", "");
108
- c(!0), a(null), fetch(`/svc/${y}/info.json`).then((u) => {
105
+ function Jt(t) {
106
+ const [r, n] = A(null), [s, c] = A(!0), [d, a] = A(null), i = S(() => {
107
+ const v = qt(t?.mfeName).replace("@ib-dop/", "");
108
+ c(!0), a(null), fetch(`/svc/${v}/info.json`).then((u) => {
109
109
  if (!u.ok)
110
110
  throw new Error(`HTTP ${u.status}: ${u.statusText}`);
111
111
  return u.json();
112
112
  }).then((u) => {
113
113
  n(u);
114
114
  }).catch((u) => {
115
- zt.error("Failed to load info:", u), a(u instanceof Error ? u.message : String(u));
115
+ Yt.error("Failed to load info:", u), a(u instanceof Error ? u.message : String(u));
116
116
  }).finally(() => {
117
117
  c(!1);
118
118
  });
119
119
  }, [t?.mfeName]);
120
120
  return L(() => {
121
- s();
122
- }, [s]), {
121
+ i();
122
+ }, [i]), {
123
123
  data: r,
124
- isLoading: i,
124
+ isLoading: s,
125
125
  error: d,
126
- refetch: s
126
+ refetch: i
127
127
  };
128
128
  }
129
129
  const _e = {
@@ -139,25 +139,25 @@ const _e = {
139
139
  client_id: "",
140
140
  environment: "development"
141
141
  };
142
- function gr() {
143
- const [t, r] = A(null), [n, i] = A(!0), [c, d] = A(null);
142
+ function Tr() {
143
+ const [t, r] = A(null), [n, s] = A(!0), [c, d] = A(null);
144
144
  return L(() => {
145
145
  (() => {
146
146
  if (typeof sessionStorage > "u") {
147
- d("sessionStorage not available"), r(re), i(!1);
147
+ d("sessionStorage not available"), r(re), s(!1);
148
148
  return;
149
149
  }
150
150
  try {
151
- const s = sessionStorage.getItem("config");
152
- if (s) {
153
- const p = JSON.parse(s);
151
+ const i = sessionStorage.getItem("config");
152
+ if (i) {
153
+ const p = JSON.parse(i);
154
154
  r({ ...re, ...p }), d(null), _e.log("Config loaded successfully");
155
155
  } else
156
156
  r(re), d("Config not found in sessionStorage"), _e.warn("Config not found in sessionStorage");
157
- } catch (s) {
158
- _e.error("Error parsing config:", s), r(re), d("Error parsing config");
157
+ } catch (i) {
158
+ _e.error("Error parsing config:", i), r(re), d("Error parsing config");
159
159
  } finally {
160
- i(!1);
160
+ s(!1);
161
161
  }
162
162
  })();
163
163
  }, []), {
@@ -166,18 +166,56 @@ function gr() {
166
166
  error: c
167
167
  };
168
168
  }
169
- const rt = "platform-kit", ne = {
169
+ const Ke = "ibdop_trace_id", Kt = "00", Xt = "01";
170
+ function nt(t) {
171
+ const r = new Uint8Array(t);
172
+ if (typeof crypto < "u" && typeof crypto.getRandomValues == "function")
173
+ crypto.getRandomValues(r);
174
+ else
175
+ for (let n = 0; n < t; n += 1)
176
+ r[n] = Math.floor(Math.random() * 256);
177
+ return Array.from(r, (n) => n.toString(16).padStart(2, "0")).join("");
178
+ }
179
+ function Qt(t, r) {
180
+ return t.length === r && /^[0-9a-f]+$/.test(t);
181
+ }
182
+ function Zt(t) {
183
+ const r = t.getItem(Ke)?.toLowerCase() ?? "";
184
+ if (Qt(r, 32))
185
+ return r;
186
+ const n = nt(16);
187
+ return t.setItem(Ke, n), n;
188
+ }
189
+ function er(t) {
190
+ const r = nt(8);
191
+ return `${Kt}-${t}-${r}-${Xt}`;
192
+ }
193
+ function tr(t, r) {
194
+ try {
195
+ const n = new URL(t, r);
196
+ return n.origin !== r ? !1 : n.pathname.startsWith("/api/") || n.pathname.startsWith("/svc/");
197
+ } catch {
198
+ return !1;
199
+ }
200
+ }
201
+ function rr(t) {
202
+ if (typeof window > "u" || !t.url || !tr(t.url, window.location.origin))
203
+ return;
204
+ const r = Zt(window.sessionStorage), n = er(r), s = zt.from(t.headers);
205
+ s.has("traceparent") || s.set("traceparent", n), t.headers = s;
206
+ }
207
+ const ot = "platform-kit", ne = {
170
208
  log: (...t) => {
171
209
  },
172
210
  warn: (...t) => {
173
211
  },
174
212
  error: (...t) => {
175
- console.error(`[${rt}]`, ...t);
213
+ console.error(`[${ot}]`, ...t);
176
214
  },
177
215
  info: (...t) => {
178
216
  }
179
217
  };
180
- function Yt(t) {
218
+ function nr(t) {
181
219
  const r = t.response;
182
220
  let n = "unknown";
183
221
  return r ? r.status === 401 ? n = "unauthorized" : r.status === 403 ? n = "forbidden" : r.status === 404 ? n = "not_found" : r.status >= 500 && (n = "server") : n = "network", {
@@ -189,20 +227,20 @@ function Yt(t) {
189
227
  url: t.config?.url
190
228
  };
191
229
  }
192
- const qt = 3, Jt = 1e3;
193
- function Kt(t) {
230
+ const or = 3, sr = 1e3;
231
+ function ar(t) {
194
232
  return !t || t >= 500 || t === 429;
195
233
  }
196
- function Xt(t) {
234
+ function ir(t) {
197
235
  return new Promise((r) => setTimeout(r, t));
198
236
  }
199
- function Qt(t = {}) {
200
- const r = t.name || rt, n = t.retries ?? qt, i = t.retryDelay ?? Jt, c = {
237
+ function cr(t = {}) {
238
+ const r = t.name || ot, n = t.retries ?? or, s = t.retryDelay ?? sr, c = {
201
239
  log: (...a) => ne.log(`[API:${r}]`, ...a),
202
240
  warn: (...a) => ne.warn(`[API:${r}]`, ...a),
203
241
  error: (...a) => ne.error(`[API:${r}]`, ...a),
204
242
  info: (...a) => ne.info(`[API:${r}]`, ...a)
205
- }, d = Vt.create({
243
+ }, d = Wt.create({
206
244
  timeout: t.timeout ?? 1e4,
207
245
  baseURL: t.baseURL ?? "",
208
246
  headers: {
@@ -211,54 +249,54 @@ function Qt(t = {}) {
211
249
  });
212
250
  return d.interceptors.request.use(
213
251
  (a) => {
214
- const s = B();
252
+ const i = V();
215
253
  return c.info("Auth state check:", {
216
- isAuthenticated: s?.isAuthenticated,
217
- hasUser: !!s?.user,
218
- hasToken: !!s?.user?.access_token
219
- }), s?.isAuthenticated && s.user?.access_token ? (a.headers.Authorization = `Bearer ${s.user.access_token}`, c.info("Auth token attached")) : s?.isAuthenticated && !s.user?.access_token ? c.info("User authenticated but token not yet available") : c.info("User not authenticated - request without token"), c.log(`${a.method?.toUpperCase()} ${a.url}`), a;
254
+ isAuthenticated: i?.isAuthenticated,
255
+ hasUser: !!i?.user,
256
+ hasToken: !!i?.user?.access_token
257
+ }), i?.isAuthenticated && i.user?.access_token ? (a.headers.Authorization = `Bearer ${i.user.access_token}`, c.info("Auth token attached")) : i?.isAuthenticated && !i.user?.access_token ? c.info("User authenticated but token not yet available") : c.info("User not authenticated - request without token"), rr(a), c.log(`${a.method?.toUpperCase()} ${a.url}`), a;
220
258
  },
221
259
  (a) => (c.error("Request interceptor error:", a.message), Promise.reject(a))
222
260
  ), d.interceptors.response.use(
223
261
  (a) => (c.log(`Response ${a.status}:`, a.config.url), a),
224
262
  async (a) => {
225
- const s = a.response?.status, p = a.config?.url, y = a.config?._retryCount ?? 0;
226
- if (Kt(s) && y < n) {
263
+ const i = a.response?.status, p = a.config?.url, v = a.config?._retryCount ?? 0;
264
+ if (ar(i) && v < n) {
227
265
  const u = a.config;
228
- u._retryCount = y + 1;
229
- const h = i * Math.pow(2, y);
230
- return c.warn(`Retrying (${u._retryCount}/${n}) after ${h}ms:`, p), await Xt(h), d.request(u);
266
+ u._retryCount = v + 1;
267
+ const h = s * Math.pow(2, v);
268
+ return c.warn(`Retrying (${u._retryCount}/${n}) after ${h}ms:`, p), await ir(h), d.request(u);
231
269
  }
232
- return s === 401 ? (c.warn("401 Unauthorized - triggering re-auth"), Ht()) : s === 403 ? c.warn("403 Forbidden - insufficient permissions") : s === 404 ? c.warn("404 Not found:", p) : s === 429 ? c.warn("429 Rate limited") : s === 500 ? c.error("500 Server error:", p) : a.response ? c.warn(`Error ${s}:`, a.message) : c.error("Network error - backend may be unavailable:", p), Promise.reject(Yt(a));
270
+ return i === 401 ? (c.warn("401 Unauthorized - triggering re-auth"), Gt()) : i === 403 ? c.warn("403 Forbidden - insufficient permissions") : i === 404 ? c.warn("404 Not found:", p) : i === 429 ? c.warn("429 Rate limited") : i === 500 ? c.error("500 Server error:", p) : a.response ? c.warn(`Error ${i}:`, a.message) : c.error("Network error - backend may be unavailable:", p), Promise.reject(nr(a));
233
271
  }
234
272
  ), d;
235
273
  }
236
- const H = Qt();
237
- async function _r(t, r, n = H) {
238
- const i = await n.get(t, { params: r });
274
+ const H = cr();
275
+ async function Rr(t, r, n = H) {
276
+ const s = await n.get(t, { params: r });
239
277
  return {
240
- data: i.data,
241
- status: i.status,
242
- ok: i.status >= 200 && i.status < 300
278
+ data: s.data,
279
+ status: s.status,
280
+ ok: s.status >= 200 && s.status < 300
243
281
  };
244
282
  }
245
- async function vr(t, r, n = H) {
246
- const i = await n.post(t, r);
283
+ async function Sr(t, r, n = H) {
284
+ const s = await n.post(t, r);
247
285
  return {
248
- data: i.data,
249
- status: i.status,
250
- ok: i.status >= 200 && i.status < 300
286
+ data: s.data,
287
+ status: s.status,
288
+ ok: s.status >= 200 && s.status < 300
251
289
  };
252
290
  }
253
- async function yr(t, r, n = H) {
254
- const i = await n.put(t, r);
291
+ async function Cr(t, r, n = H) {
292
+ const s = await n.put(t, r);
255
293
  return {
256
- data: i.data,
257
- status: i.status,
258
- ok: i.status >= 200 && i.status < 300
294
+ data: s.data,
295
+ status: s.status,
296
+ ok: s.status >= 200 && s.status < 300
259
297
  };
260
298
  }
261
- async function Er(t, r = H) {
299
+ async function Ir(t, r = H) {
262
300
  const n = await r.delete(t);
263
301
  return {
264
302
  data: n.data,
@@ -266,7 +304,7 @@ async function Er(t, r = H) {
266
304
  ok: n.status >= 200 && n.status < 300
267
305
  };
268
306
  }
269
- function nt(t) {
307
+ function st(t) {
270
308
  if (typeof window > "u") return;
271
309
  const r = window.__MF_NAME__ || "unknown", n = {
272
310
  ...t,
@@ -278,7 +316,7 @@ function nt(t) {
278
316
  bubbles: !0
279
317
  }));
280
318
  }
281
- function Ke(t, r) {
319
+ function Xe(t, r) {
282
320
  const n = {
283
321
  network: {
284
322
  title: "Нет подключения",
@@ -308,25 +346,25 @@ function Ke(t, r) {
308
346
  title: "Неизвестная ошибка",
309
347
  message: t.message || "Произошла неизвестная ошибка."
310
348
  }
311
- }, i = n[t.type] || n.unknown;
312
- nt({
349
+ }, s = n[t.type] || n.unknown;
350
+ st({
313
351
  type: t.type === "network" ? "warning" : "error",
314
- title: i.title,
315
- message: r ? `${i.message} (${r})` : i.message
352
+ title: s.title,
353
+ message: r ? `${s.message} (${r})` : s.message
316
354
  });
317
355
  }
318
- function Zt(t) {
356
+ function ur(t) {
319
357
  return t instanceof Error && t.name === "AbortError";
320
358
  }
321
359
  function ie(t, r = {}) {
322
360
  const {
323
361
  notifyOnError: n = !0,
324
- notifyOnSuccess: i = !1,
362
+ notifyOnSuccess: s = !1,
325
363
  successMessage: c,
326
364
  errorContext: d,
327
365
  onSuccess: a,
328
- onError: s
329
- } = r, [p, y] = A(null), [u, h] = A(null), [f, E] = A(!1), g = tt(null), C = u !== null, R = p !== null && !f && !C;
366
+ onError: i
367
+ } = r, [p, v] = A(null), [u, h] = A(null), [f, E] = A(!1), g = rt(null), C = u !== null, R = p !== null && !f && !C;
330
368
  L(() => () => {
331
369
  g.current && g.current.abort();
332
370
  }, []);
@@ -334,37 +372,37 @@ function ie(t, r = {}) {
334
372
  g.current && (g.current.abort(), g.current = null, E(!1));
335
373
  }, []), _ = S(async () => {
336
374
  g.current && g.current.abort(), g.current = new AbortController();
337
- const P = g.current.signal;
375
+ const O = g.current.signal;
338
376
  E(!0), h(null);
339
377
  try {
340
- const O = await t(P);
341
- if (P.aborted)
378
+ const P = await t(O);
379
+ if (O.aborted)
342
380
  return null;
343
- if (O.ok)
344
- return y(O.data), i && c && nt({
381
+ if (P.ok)
382
+ return v(P.data), s && c && st({
345
383
  type: "success",
346
384
  title: "Успешно",
347
385
  message: c
348
- }), a?.(O.data), O.data;
386
+ }), a?.(P.data), P.data;
349
387
  {
350
388
  const U = {
351
- message: O.data || "Request failed",
352
- status: O.status,
389
+ message: P.data || "Request failed",
390
+ status: P.status,
353
391
  type: "client",
354
392
  timestamp: Date.now()
355
393
  };
356
- return h(U), n && Ke(U, d), s?.(U), null;
394
+ return h(U), n && Xe(U, d), i?.(U), null;
357
395
  }
358
- } catch (O) {
359
- if (Zt(O))
396
+ } catch (P) {
397
+ if (ur(P))
360
398
  return null;
361
- const U = O;
362
- return h(U), n && Ke(U, d), s?.(U), null;
399
+ const U = P;
400
+ return h(U), n && Xe(U, d), i?.(U), null;
363
401
  } finally {
364
- P.aborted || E(!1), g.current = null;
402
+ O.aborted || E(!1), g.current = null;
365
403
  }
366
- }, [t, n, i, c, d, a, s]), I = S(() => {
367
- y(null), h(null), E(!1);
404
+ }, [t, n, s, c, d, a, i]), I = S(() => {
405
+ v(null), h(null), E(!1);
368
406
  }, []);
369
407
  return {
370
408
  data: p,
@@ -377,28 +415,28 @@ function ie(t, r = {}) {
377
415
  abort: x
378
416
  };
379
417
  }
380
- function wr(t, r = {}) {
381
- const { skip: n = !1, headers: i, immediate: c = !0, ...d } = r, a = ye(() => (p) => {
382
- const y = i ? i() : {};
418
+ function Mr(t, r = {}) {
419
+ const { skip: n = !1, headers: s, immediate: c = !0, ...d } = r, a = ve(() => (p) => {
420
+ const v = s ? s() : {};
383
421
  return H.get(t, {
384
- headers: { "Content-Type": "application/json", ...y },
422
+ headers: { "Content-Type": "application/json", ...v },
385
423
  signal: p
386
424
  }).then((u) => ({ data: u.data, status: u.status, ok: u.status >= 200 && u.status < 300 }));
387
- }, [t, i]), s = ie(a, { ...d });
425
+ }, [t, s]), i = ie(a, { ...d });
388
426
  return L(() => {
389
- c && !n && s.execute();
390
- }, [c, n, t]), s;
427
+ c && !n && i.execute();
428
+ }, [c, n, t]), i;
391
429
  }
392
- function br(t, r, n = {}) {
430
+ function Nr(t, r, n = {}) {
393
431
  return ie((c) => H.post(t, r, { signal: c }).then((d) => ({ data: d.data, status: d.status, ok: d.status >= 200 && d.status < 300 })), n);
394
432
  }
395
- function xr(t, r, n = {}) {
433
+ function Or(t, r, n = {}) {
396
434
  return ie((c) => H.put(t, r, { signal: c }).then((d) => ({ data: d.data, status: d.status, ok: d.status >= 200 && d.status < 300 })), n);
397
435
  }
398
- function kr(t, r = {}) {
399
- return ie((i) => H.delete(t, { signal: i }).then((c) => ({ data: c.data, status: c.status, ok: c.status >= 200 && c.status < 300 })), r);
436
+ function Pr(t, r = {}) {
437
+ return ie((s) => H.delete(t, { signal: s }).then((c) => ({ data: c.data, status: c.status, ok: c.status >= 200 && c.status < 300 })), r);
400
438
  }
401
- const er = {
439
+ const lr = {
402
440
  canView: ["all"],
403
441
  canEdit: ["ibdop-user", "ibdop-admin", "ibdop-devops"],
404
442
  canDelete: ["ibdop-admin", "ibdop-devops"],
@@ -407,14 +445,14 @@ const er = {
407
445
  canExportData: ["ibdop-user"],
408
446
  canManageUsers: ["ibdop-admin"]
409
447
  };
410
- function Ar(t = {}) {
411
- const r = ae(), n = ye(() => ({
412
- ...er,
448
+ function jr(t = {}) {
449
+ const r = ae(), n = ve(() => ({
450
+ ...lr,
413
451
  ...t
414
- }), [t]), i = ye(() => {
452
+ }), [t]), s = ve(() => {
415
453
  const d = r.user?.profile?.realm_roles || r.user?.profile?.roles || [];
416
454
  return Array.isArray(d) ? d : [d];
417
- }, [r.user]), c = (d) => d.includes("all") ? !0 : d.some((a) => i.includes(a));
455
+ }, [r.user]), c = (d) => d.includes("all") ? !0 : d.some((a) => s.includes(a));
418
456
  return {
419
457
  canView: c(n.canView),
420
458
  canEdit: c(n.canEdit),
@@ -425,8 +463,8 @@ function Ar(t = {}) {
425
463
  canManageUsers: c(n.canManageUsers)
426
464
  };
427
465
  }
428
- function Tr() {
429
- const t = ae(), [r, n] = A([]), [i, c] = A(0), [d, a] = A([]), [s, p] = A(!0), [y, u] = A(null), h = S(async () => {
466
+ function Dr() {
467
+ const t = ae(), [r, n] = A([]), [s, c] = A(0), [d, a] = A([]), [i, p] = A(!0), [v, u] = A(null), h = S(async () => {
430
468
  if (!t.isAuthenticated) {
431
469
  console.debug("[useFeatures] Not authenticated"), p(!1);
432
470
  return;
@@ -460,17 +498,17 @@ function Tr() {
460
498
  );
461
499
  return {
462
500
  features: r,
463
- totalCount: i,
501
+ totalCount: s,
464
502
  userRoles: d,
465
- isLoading: s,
466
- error: y,
503
+ isLoading: i,
504
+ error: v,
467
505
  refetch: h,
468
506
  isFeatureEnabled: f,
469
507
  getFeaturesByMf: E
470
508
  };
471
509
  }
472
- function Rr() {
473
- const t = ae(), [r, n] = A([]), [i, c] = A([]), [d, a] = A(!1), [s, p] = A(!0), [y, u] = A(null), h = S(async () => {
510
+ function Fr() {
511
+ const t = ae(), [r, n] = A([]), [s, c] = A([]), [d, a] = A(!1), [i, p] = A(!0), [v, u] = A(null), h = S(async () => {
474
512
  if (!t.isAuthenticated) {
475
513
  console.debug("[useFeatureAdmin] Not authenticated"), p(!1);
476
514
  return;
@@ -509,8 +547,8 @@ function Rr() {
509
547
  body: JSON.stringify(R)
510
548
  });
511
549
  if (!I.ok) {
512
- const P = await I.json().catch(() => ({}));
513
- throw new Error(P.error || `HTTP ${I.status}`);
550
+ const O = await I.json().catch(() => ({}));
551
+ throw new Error(O.error || `HTTP ${I.status}`);
514
552
  }
515
553
  return await h(), !0;
516
554
  } catch (x) {
@@ -525,14 +563,14 @@ function Rr() {
525
563
  "Content-Type": "application/json"
526
564
  }, I = t.user?.access_token;
527
565
  I && (_.Authorization = `Bearer ${I}`);
528
- const P = await fetch(`/api/features/admin/${encodeURIComponent(R)}`, {
566
+ const O = await fetch(`/api/features/admin/${encodeURIComponent(R)}`, {
529
567
  method: "PUT",
530
568
  headers: _,
531
569
  body: JSON.stringify(x)
532
570
  });
533
- if (!P.ok) {
534
- const O = await P.json().catch(() => ({}));
535
- throw new Error(O.error || `HTTP ${P.status}`);
571
+ if (!O.ok) {
572
+ const P = await O.json().catch(() => ({}));
573
+ throw new Error(P.error || `HTTP ${O.status}`);
536
574
  }
537
575
  return await h(), !0;
538
576
  } catch (_) {
@@ -545,16 +583,16 @@ function Rr() {
545
583
  try {
546
584
  const _ = {}, I = t.user?.access_token;
547
585
  I && (_.Authorization = `Bearer ${I}`);
548
- const P = await fetch(
586
+ const O = await fetch(
549
587
  `/api/features/admin/${encodeURIComponent(R)}/toggle?enabled=${x}`,
550
588
  {
551
589
  method: "POST",
552
590
  headers: _
553
591
  }
554
592
  );
555
- if (!P.ok) {
556
- const O = await P.json().catch(() => ({}));
557
- throw new Error(O.error || `HTTP ${P.status}`);
593
+ if (!O.ok) {
594
+ const P = await O.json().catch(() => ({}));
595
+ throw new Error(P.error || `HTTP ${O.status}`);
558
596
  }
559
597
  return await h(), !0;
560
598
  } catch (_) {
@@ -572,8 +610,8 @@ function Rr() {
572
610
  headers: x
573
611
  });
574
612
  if (!I.ok) {
575
- const P = await I.json().catch(() => ({}));
576
- throw new Error(P.error || `HTTP ${I.status}`);
613
+ const O = await I.json().catch(() => ({}));
614
+ throw new Error(O.error || `HTTP ${I.status}`);
577
615
  }
578
616
  return await h(), !0;
579
617
  } catch (x) {
@@ -586,10 +624,10 @@ function Rr() {
586
624
  h();
587
625
  }, [h]), {
588
626
  features: r,
589
- microfrontends: i,
627
+ microfrontends: s,
590
628
  isAdmin: d,
591
- isLoading: s,
592
- error: y,
629
+ isLoading: i,
630
+ error: v,
593
631
  refetch: h,
594
632
  createFeature: f,
595
633
  updateFeature: E,
@@ -597,8 +635,8 @@ function Rr() {
597
635
  deleteFeature: C
598
636
  };
599
637
  }
600
- function Sr() {
601
- const t = ae(), [r, n] = A([]), [i, c] = A(0), [d, a] = A(!0), [s, p] = A(null), y = S(async () => {
638
+ function $r() {
639
+ const t = ae(), [r, n] = A([]), [s, c] = A(0), [d, a] = A(!0), [i, p] = A(null), v = S(async () => {
602
640
  if (!t.isAuthenticated) {
603
641
  a(!1);
604
642
  return;
@@ -621,35 +659,35 @@ function Sr() {
621
659
  }
622
660
  }, [t.isAuthenticated, t.user?.access_token]);
623
661
  return L(() => {
624
- y();
625
- }, [y]), {
662
+ v();
663
+ }, [v]), {
626
664
  microfrontends: r,
627
- totalCount: i,
665
+ totalCount: s,
628
666
  isLoading: d,
629
- error: s,
630
- refetch: y
667
+ error: i,
668
+ refetch: v
631
669
  };
632
670
  }
633
671
  var oe = { exports: {} }, K = {};
634
- var Xe;
635
- function tr() {
636
- if (Xe) return K;
637
- Xe = 1;
638
- var t = et, r = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.fragment"), i = Object.prototype.hasOwnProperty, c = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, d = { key: !0, ref: !0, __self: !0, __source: !0 };
639
- function a(s, p, y) {
672
+ var Qe;
673
+ function fr() {
674
+ if (Qe) return K;
675
+ Qe = 1;
676
+ var t = tt, r = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.fragment"), s = Object.prototype.hasOwnProperty, c = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, d = { key: !0, ref: !0, __self: !0, __source: !0 };
677
+ function a(i, p, v) {
640
678
  var u, h = {}, f = null, E = null;
641
- y !== void 0 && (f = "" + y), p.key !== void 0 && (f = "" + p.key), p.ref !== void 0 && (E = p.ref);
642
- for (u in p) i.call(p, u) && !d.hasOwnProperty(u) && (h[u] = p[u]);
643
- if (s && s.defaultProps) for (u in p = s.defaultProps, p) h[u] === void 0 && (h[u] = p[u]);
644
- return { $$typeof: r, type: s, key: f, ref: E, props: h, _owner: c.current };
679
+ v !== void 0 && (f = "" + v), p.key !== void 0 && (f = "" + p.key), p.ref !== void 0 && (E = p.ref);
680
+ for (u in p) s.call(p, u) && !d.hasOwnProperty(u) && (h[u] = p[u]);
681
+ if (i && i.defaultProps) for (u in p = i.defaultProps, p) h[u] === void 0 && (h[u] = p[u]);
682
+ return { $$typeof: r, type: i, key: f, ref: E, props: h, _owner: c.current };
645
683
  }
646
684
  return K.Fragment = n, K.jsx = a, K.jsxs = a, K;
647
685
  }
648
686
  var X = {};
649
- var Qe;
650
- function rr() {
651
- return Qe || (Qe = 1, process.env.NODE_ENV !== "production" && (function() {
652
- var t = et, r = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.portal"), i = /* @__PURE__ */ Symbol.for("react.fragment"), c = /* @__PURE__ */ Symbol.for("react.strict_mode"), d = /* @__PURE__ */ Symbol.for("react.profiler"), a = /* @__PURE__ */ Symbol.for("react.provider"), s = /* @__PURE__ */ Symbol.for("react.context"), p = /* @__PURE__ */ Symbol.for("react.forward_ref"), y = /* @__PURE__ */ Symbol.for("react.suspense"), u = /* @__PURE__ */ Symbol.for("react.suspense_list"), h = /* @__PURE__ */ Symbol.for("react.memo"), f = /* @__PURE__ */ Symbol.for("react.lazy"), E = /* @__PURE__ */ Symbol.for("react.offscreen"), g = Symbol.iterator, C = "@@iterator";
687
+ var Ze;
688
+ function dr() {
689
+ return Ze || (Ze = 1, process.env.NODE_ENV !== "production" && (function() {
690
+ var t = tt, r = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.portal"), s = /* @__PURE__ */ Symbol.for("react.fragment"), c = /* @__PURE__ */ Symbol.for("react.strict_mode"), d = /* @__PURE__ */ Symbol.for("react.profiler"), a = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), p = /* @__PURE__ */ Symbol.for("react.forward_ref"), v = /* @__PURE__ */ Symbol.for("react.suspense"), u = /* @__PURE__ */ Symbol.for("react.suspense_list"), h = /* @__PURE__ */ Symbol.for("react.memo"), f = /* @__PURE__ */ Symbol.for("react.lazy"), E = /* @__PURE__ */ Symbol.for("react.offscreen"), g = Symbol.iterator, C = "@@iterator";
653
691
  function R(e) {
654
692
  if (e === null || typeof e != "object")
655
693
  return null;
@@ -674,16 +712,16 @@ function rr() {
674
712
  T.unshift("Warning: " + o), Function.prototype.apply.call(console[e], console, T);
675
713
  }
676
714
  }
677
- var P = !1, O = !1, U = !1, ct = !1, ut = !1, ke;
715
+ var O = !1, P = !1, U = !1, lt = !1, ft = !1, ke;
678
716
  ke = /* @__PURE__ */ Symbol.for("react.module.reference");
679
- function lt(e) {
680
- return !!(typeof e == "string" || typeof e == "function" || e === i || e === d || ut || e === c || e === y || e === u || ct || e === E || P || O || U || typeof e == "object" && e !== null && (e.$$typeof === f || e.$$typeof === h || e.$$typeof === a || e.$$typeof === s || e.$$typeof === p || // This needs to include all possible module reference object
717
+ function dt(e) {
718
+ return !!(typeof e == "string" || typeof e == "function" || e === s || e === d || ft || e === c || e === v || e === u || lt || e === E || O || P || U || typeof e == "object" && e !== null && (e.$$typeof === f || e.$$typeof === h || e.$$typeof === a || e.$$typeof === i || e.$$typeof === p || // This needs to include all possible module reference object
681
719
  // types supported by any Flight configuration anywhere since
682
720
  // we don't know which Flight build this will end up being used
683
721
  // with.
684
722
  e.$$typeof === ke || e.getModuleId !== void 0));
685
723
  }
686
- function ft(e, o, l) {
724
+ function pt(e, o, l) {
687
725
  var m = e.displayName;
688
726
  if (m)
689
727
  return m;
@@ -693,7 +731,7 @@ function rr() {
693
731
  function Ae(e) {
694
732
  return e.displayName || "Context";
695
733
  }
696
- function V(e) {
734
+ function B(e) {
697
735
  if (e == null)
698
736
  return null;
699
737
  if (typeof e.tag == "number" && _("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
@@ -701,7 +739,7 @@ function rr() {
701
739
  if (typeof e == "string")
702
740
  return e;
703
741
  switch (e) {
704
- case i:
742
+ case s:
705
743
  return "Fragment";
706
744
  case n:
707
745
  return "Portal";
@@ -709,28 +747,28 @@ function rr() {
709
747
  return "Profiler";
710
748
  case c:
711
749
  return "StrictMode";
712
- case y:
750
+ case v:
713
751
  return "Suspense";
714
752
  case u:
715
753
  return "SuspenseList";
716
754
  }
717
755
  if (typeof e == "object")
718
756
  switch (e.$$typeof) {
719
- case s:
757
+ case i:
720
758
  var o = e;
721
759
  return Ae(o) + ".Consumer";
722
760
  case a:
723
761
  var l = e;
724
762
  return Ae(l._context) + ".Provider";
725
763
  case p:
726
- return ft(e, e.render, "ForwardRef");
764
+ return pt(e, e.render, "ForwardRef");
727
765
  case h:
728
766
  var m = e.displayName || null;
729
- return m !== null ? m : V(e.type) || "Memo";
767
+ return m !== null ? m : B(e.type) || "Memo";
730
768
  case f: {
731
769
  var k = e, T = k._payload, b = k._init;
732
770
  try {
733
- return V(b(T));
771
+ return B(b(T));
734
772
  } catch {
735
773
  return null;
736
774
  }
@@ -738,18 +776,18 @@ function rr() {
738
776
  }
739
777
  return null;
740
778
  }
741
- var z = Object.assign, q = 0, Te, Re, Se, Ce, Ie, Me, Ne;
742
- function Pe() {
779
+ var W = Object.assign, q = 0, Te, Re, Se, Ce, Ie, Me, Ne;
780
+ function Oe() {
743
781
  }
744
- Pe.__reactDisabledLog = !0;
745
- function dt() {
782
+ Oe.__reactDisabledLog = !0;
783
+ function ht() {
746
784
  {
747
785
  if (q === 0) {
748
786
  Te = console.log, Re = console.info, Se = console.warn, Ce = console.error, Ie = console.group, Me = console.groupCollapsed, Ne = console.groupEnd;
749
787
  var e = {
750
788
  configurable: !0,
751
789
  enumerable: !0,
752
- value: Pe,
790
+ value: Oe,
753
791
  writable: !0
754
792
  };
755
793
  Object.defineProperties(console, {
@@ -765,7 +803,7 @@ function rr() {
765
803
  q++;
766
804
  }
767
805
  }
768
- function pt() {
806
+ function mt() {
769
807
  {
770
808
  if (q--, q === 0) {
771
809
  var e = {
@@ -774,25 +812,25 @@ function rr() {
774
812
  writable: !0
775
813
  };
776
814
  Object.defineProperties(console, {
777
- log: z({}, e, {
815
+ log: W({}, e, {
778
816
  value: Te
779
817
  }),
780
- info: z({}, e, {
818
+ info: W({}, e, {
781
819
  value: Re
782
820
  }),
783
- warn: z({}, e, {
821
+ warn: W({}, e, {
784
822
  value: Se
785
823
  }),
786
- error: z({}, e, {
824
+ error: W({}, e, {
787
825
  value: Ce
788
826
  }),
789
- group: z({}, e, {
827
+ group: W({}, e, {
790
828
  value: Ie
791
829
  }),
792
- groupCollapsed: z({}, e, {
830
+ groupCollapsed: W({}, e, {
793
831
  value: Me
794
832
  }),
795
- groupEnd: z({}, e, {
833
+ groupEnd: W({}, e, {
796
834
  value: Ne
797
835
  })
798
836
  });
@@ -816,10 +854,10 @@ function rr() {
816
854
  }
817
855
  var fe = !1, Z;
818
856
  {
819
- var ht = typeof WeakMap == "function" ? WeakMap : Map;
820
- Z = new ht();
857
+ var gt = typeof WeakMap == "function" ? WeakMap : Map;
858
+ Z = new gt();
821
859
  }
822
- function Oe(e, o) {
860
+ function Pe(e, o) {
823
861
  if (!e || fe)
824
862
  return "";
825
863
  {
@@ -832,7 +870,7 @@ function rr() {
832
870
  var k = Error.prepareStackTrace;
833
871
  Error.prepareStackTrace = void 0;
834
872
  var T;
835
- T = ue.current, ue.current = null, dt();
873
+ T = ue.current, ue.current = null, ht();
836
874
  try {
837
875
  if (o) {
838
876
  var b = function() {
@@ -885,15 +923,15 @@ function rr() {
885
923
  }
886
924
  }
887
925
  } finally {
888
- fe = !1, ue.current = T, pt(), Error.prepareStackTrace = k;
926
+ fe = !1, ue.current = T, mt(), Error.prepareStackTrace = k;
889
927
  }
890
- var Y = e ? e.displayName || e.name : "", W = Y ? Q(Y) : "";
891
- return typeof e == "function" && Z.set(e, W), W;
928
+ var Y = e ? e.displayName || e.name : "", z = Y ? Q(Y) : "";
929
+ return typeof e == "function" && Z.set(e, z), z;
892
930
  }
893
- function mt(e, o, l) {
894
- return Oe(e, !1);
931
+ function _t(e, o, l) {
932
+ return Pe(e, !1);
895
933
  }
896
- function gt(e) {
934
+ function yt(e) {
897
935
  var o = e.prototype;
898
936
  return !!(o && o.isReactComponent);
899
937
  }
@@ -901,11 +939,11 @@ function rr() {
901
939
  if (e == null)
902
940
  return "";
903
941
  if (typeof e == "function")
904
- return Oe(e, gt(e));
942
+ return Pe(e, yt(e));
905
943
  if (typeof e == "string")
906
944
  return Q(e);
907
945
  switch (e) {
908
- case y:
946
+ case v:
909
947
  return Q("Suspense");
910
948
  case u:
911
949
  return Q("SuspenseList");
@@ -913,7 +951,7 @@ function rr() {
913
951
  if (typeof e == "object")
914
952
  switch (e.$$typeof) {
915
953
  case p:
916
- return mt(e.render);
954
+ return _t(e.render);
917
955
  case h:
918
956
  return ee(e.type, o, l);
919
957
  case f: {
@@ -934,7 +972,7 @@ function rr() {
934
972
  } else
935
973
  De.setExtraStackFrame(null);
936
974
  }
937
- function _t(e, o, l, m, k) {
975
+ function vt(e, o, l, m, k) {
938
976
  {
939
977
  var T = Function.call.bind(J);
940
978
  for (var b in e)
@@ -953,17 +991,17 @@ function rr() {
953
991
  }
954
992
  }
955
993
  }
956
- var vt = Array.isArray;
994
+ var Et = Array.isArray;
957
995
  function de(e) {
958
- return vt(e);
996
+ return Et(e);
959
997
  }
960
- function yt(e) {
998
+ function wt(e) {
961
999
  {
962
1000
  var o = typeof Symbol == "function" && Symbol.toStringTag, l = o && e[Symbol.toStringTag] || e.constructor.name || "Object";
963
1001
  return l;
964
1002
  }
965
1003
  }
966
- function Et(e) {
1004
+ function bt(e) {
967
1005
  try {
968
1006
  return Fe(e), !1;
969
1007
  } catch {
@@ -974,16 +1012,16 @@ function rr() {
974
1012
  return "" + e;
975
1013
  }
976
1014
  function $e(e) {
977
- if (Et(e))
978
- return _("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", yt(e)), Fe(e);
1015
+ if (bt(e))
1016
+ return _("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", wt(e)), Fe(e);
979
1017
  }
980
- var Le = x.ReactCurrentOwner, wt = {
1018
+ var Le = x.ReactCurrentOwner, xt = {
981
1019
  key: !0,
982
1020
  ref: !0,
983
1021
  __self: !0,
984
1022
  __source: !0
985
- }, Ue, Be;
986
- function bt(e) {
1023
+ }, Ue, Ve;
1024
+ function kt(e) {
987
1025
  if (J.call(e, "ref")) {
988
1026
  var o = Object.getOwnPropertyDescriptor(e, "ref").get;
989
1027
  if (o && o.isReactWarning)
@@ -991,7 +1029,7 @@ function rr() {
991
1029
  }
992
1030
  return e.ref !== void 0;
993
1031
  }
994
- function xt(e) {
1032
+ function At(e) {
995
1033
  if (J.call(e, "key")) {
996
1034
  var o = Object.getOwnPropertyDescriptor(e, "key").get;
997
1035
  if (o && o.isReactWarning)
@@ -999,10 +1037,10 @@ function rr() {
999
1037
  }
1000
1038
  return e.key !== void 0;
1001
1039
  }
1002
- function kt(e, o) {
1040
+ function Tt(e, o) {
1003
1041
  typeof e.ref == "string" && Le.current;
1004
1042
  }
1005
- function At(e, o) {
1043
+ function Rt(e, o) {
1006
1044
  {
1007
1045
  var l = function() {
1008
1046
  Ue || (Ue = !0, _("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", o));
@@ -1013,10 +1051,10 @@ function rr() {
1013
1051
  });
1014
1052
  }
1015
1053
  }
1016
- function Tt(e, o) {
1054
+ function St(e, o) {
1017
1055
  {
1018
1056
  var l = function() {
1019
- Be || (Be = !0, _("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", o));
1057
+ Ve || (Ve = !0, _("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", o));
1020
1058
  };
1021
1059
  l.isReactWarning = !0, Object.defineProperty(e, "ref", {
1022
1060
  get: l,
@@ -1024,7 +1062,7 @@ function rr() {
1024
1062
  });
1025
1063
  }
1026
1064
  }
1027
- var Rt = function(e, o, l, m, k, T, b) {
1065
+ var Ct = function(e, o, l, m, k, T, b) {
1028
1066
  var w = {
1029
1067
  // This tag allows us to uniquely identify this as a React Element
1030
1068
  $$typeof: r,
@@ -1053,12 +1091,12 @@ function rr() {
1053
1091
  value: k
1054
1092
  }), Object.freeze && (Object.freeze(w.props), Object.freeze(w)), w;
1055
1093
  };
1056
- function St(e, o, l, m, k) {
1094
+ function It(e, o, l, m, k) {
1057
1095
  {
1058
1096
  var T, b = {}, w = null, j = null;
1059
- l !== void 0 && ($e(l), w = "" + l), xt(o) && ($e(o.key), w = "" + o.key), bt(o) && (j = o.ref, kt(o, k));
1097
+ l !== void 0 && ($e(l), w = "" + l), At(o) && ($e(o.key), w = "" + o.key), kt(o) && (j = o.ref, Tt(o, k));
1060
1098
  for (T in o)
1061
- J.call(o, T) && !wt.hasOwnProperty(T) && (b[T] = o[T]);
1099
+ J.call(o, T) && !xt.hasOwnProperty(T) && (b[T] = o[T]);
1062
1100
  if (e && e.defaultProps) {
1063
1101
  var M = e.defaultProps;
1064
1102
  for (T in M)
@@ -1066,18 +1104,18 @@ function rr() {
1066
1104
  }
1067
1105
  if (w || j) {
1068
1106
  var N = typeof e == "function" ? e.displayName || e.name || "Unknown" : e;
1069
- w && At(b, N), j && Tt(b, N);
1107
+ w && Rt(b, N), j && St(b, N);
1070
1108
  }
1071
- return Rt(e, w, j, k, m, Le.current, b);
1109
+ return Ct(e, w, j, k, m, Le.current, b);
1072
1110
  }
1073
1111
  }
1074
- var pe = x.ReactCurrentOwner, Ve = x.ReactDebugCurrentFrame;
1112
+ var pe = x.ReactCurrentOwner, Be = x.ReactDebugCurrentFrame;
1075
1113
  function G(e) {
1076
1114
  if (e) {
1077
1115
  var o = e._owner, l = ee(e.type, e._source, o ? o.type : null);
1078
- Ve.setExtraStackFrame(l);
1116
+ Be.setExtraStackFrame(l);
1079
1117
  } else
1080
- Ve.setExtraStackFrame(null);
1118
+ Be.setExtraStackFrame(null);
1081
1119
  }
1082
1120
  var he;
1083
1121
  he = !1;
@@ -1087,7 +1125,7 @@ function rr() {
1087
1125
  function He() {
1088
1126
  {
1089
1127
  if (pe.current) {
1090
- var e = V(pe.current.type);
1128
+ var e = B(pe.current.type);
1091
1129
  if (e)
1092
1130
  return `
1093
1131
 
@@ -1096,11 +1134,11 @@ Check the render method of \`` + e + "`.";
1096
1134
  return "";
1097
1135
  }
1098
1136
  }
1099
- function Ct(e) {
1137
+ function Mt(e) {
1100
1138
  return "";
1101
1139
  }
1102
- var ze = {};
1103
- function It(e) {
1140
+ var We = {};
1141
+ function Nt(e) {
1104
1142
  {
1105
1143
  var o = He();
1106
1144
  if (!o) {
@@ -1112,17 +1150,17 @@ Check the top-level render call using <` + l + ">.");
1112
1150
  return o;
1113
1151
  }
1114
1152
  }
1115
- function We(e, o) {
1153
+ function ze(e, o) {
1116
1154
  {
1117
1155
  if (!e._store || e._store.validated || e.key != null)
1118
1156
  return;
1119
1157
  e._store.validated = !0;
1120
- var l = It(o);
1121
- if (ze[l])
1158
+ var l = Nt(o);
1159
+ if (We[l])
1122
1160
  return;
1123
- ze[l] = !0;
1161
+ We[l] = !0;
1124
1162
  var m = "";
1125
- e && e._owner && e._owner !== pe.current && (m = " It was passed a child from " + V(e._owner.type) + "."), G(e), _('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', l, m), G(null);
1163
+ e && e._owner && e._owner !== pe.current && (m = " It was passed a child from " + B(e._owner.type) + "."), G(e), _('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', l, m), G(null);
1126
1164
  }
1127
1165
  }
1128
1166
  function Ge(e, o) {
@@ -1132,7 +1170,7 @@ Check the top-level render call using <` + l + ">.");
1132
1170
  if (de(e))
1133
1171
  for (var l = 0; l < e.length; l++) {
1134
1172
  var m = e[l];
1135
- me(m) && We(m, o);
1173
+ me(m) && ze(m, o);
1136
1174
  }
1137
1175
  else if (me(e))
1138
1176
  e._store && (e._store.validated = !0);
@@ -1140,11 +1178,11 @@ Check the top-level render call using <` + l + ">.");
1140
1178
  var k = R(e);
1141
1179
  if (typeof k == "function" && k !== e.entries)
1142
1180
  for (var T = k.call(e), b; !(b = T.next()).done; )
1143
- me(b.value) && We(b.value, o);
1181
+ me(b.value) && ze(b.value, o);
1144
1182
  }
1145
1183
  }
1146
1184
  }
1147
- function Mt(e) {
1185
+ function Ot(e) {
1148
1186
  {
1149
1187
  var o = e.type;
1150
1188
  if (o == null || typeof o == "string")
@@ -1159,17 +1197,17 @@ Check the top-level render call using <` + l + ">.");
1159
1197
  else
1160
1198
  return;
1161
1199
  if (l) {
1162
- var m = V(o);
1163
- _t(l, e.props, "prop", m, e);
1200
+ var m = B(o);
1201
+ vt(l, e.props, "prop", m, e);
1164
1202
  } else if (o.PropTypes !== void 0 && !he) {
1165
1203
  he = !0;
1166
- var k = V(o);
1204
+ var k = B(o);
1167
1205
  _("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", k || "Unknown");
1168
1206
  }
1169
1207
  typeof o.getDefaultProps == "function" && !o.getDefaultProps.isReactClassApproved && _("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
1170
1208
  }
1171
1209
  }
1172
- function Nt(e) {
1210
+ function Pt(e) {
1173
1211
  {
1174
1212
  for (var o = Object.keys(e.props), l = 0; l < o.length; l++) {
1175
1213
  var m = o[l];
@@ -1184,16 +1222,16 @@ Check the top-level render call using <` + l + ">.");
1184
1222
  var Ye = {};
1185
1223
  function qe(e, o, l, m, k, T) {
1186
1224
  {
1187
- var b = lt(e);
1225
+ var b = dt(e);
1188
1226
  if (!b) {
1189
1227
  var w = "";
1190
1228
  (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (w += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
1191
- var j = Ct();
1229
+ var j = Mt();
1192
1230
  j ? w += j : w += He();
1193
1231
  var M;
1194
- e === null ? M = "null" : de(e) ? M = "array" : e !== void 0 && e.$$typeof === r ? (M = "<" + (V(e.type) || "Unknown") + " />", w = " Did you accidentally export a JSX literal instead of a component?") : M = typeof e, _("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", M, w);
1232
+ e === null ? M = "null" : de(e) ? M = "array" : e !== void 0 && e.$$typeof === r ? (M = "<" + (B(e.type) || "Unknown") + " />", w = " Did you accidentally export a JSX literal instead of a component?") : M = typeof e, _("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", M, w);
1195
1233
  }
1196
- var N = St(e, o, l, k, T);
1234
+ var N = It(e, o, l, k, T);
1197
1235
  if (N == null)
1198
1236
  return N;
1199
1237
  if (b) {
@@ -1210,47 +1248,47 @@ Check the top-level render call using <` + l + ">.");
1210
1248
  Ge($, e);
1211
1249
  }
1212
1250
  if (J.call(o, "key")) {
1213
- var W = V(e), F = Object.keys(o).filter(function($t) {
1214
- return $t !== "key";
1251
+ var z = B(e), F = Object.keys(o).filter(function(Ut) {
1252
+ return Ut !== "key";
1215
1253
  }), ge = F.length > 0 ? "{key: someKey, " + F.join(": ..., ") + ": ...}" : "{key: someKey}";
1216
- if (!Ye[W + ge]) {
1217
- var Ft = F.length > 0 ? "{" + F.join(": ..., ") + ": ...}" : "{}";
1254
+ if (!Ye[z + ge]) {
1255
+ var Lt = F.length > 0 ? "{" + F.join(": ..., ") + ": ...}" : "{}";
1218
1256
  _(`A props object containing a "key" prop is being spread into JSX:
1219
1257
  let props = %s;
1220
1258
  <%s {...props} />
1221
1259
  React keys must be passed directly to JSX without using spread:
1222
1260
  let props = %s;
1223
- <%s key={someKey} {...props} />`, ge, W, Ft, W), Ye[W + ge] = !0;
1261
+ <%s key={someKey} {...props} />`, ge, z, Lt, z), Ye[z + ge] = !0;
1224
1262
  }
1225
1263
  }
1226
- return e === i ? Nt(N) : Mt(N), N;
1264
+ return e === s ? Pt(N) : Ot(N), N;
1227
1265
  }
1228
1266
  }
1229
- function Pt(e, o, l) {
1267
+ function jt(e, o, l) {
1230
1268
  return qe(e, o, l, !0);
1231
1269
  }
1232
- function Ot(e, o, l) {
1270
+ function Dt(e, o, l) {
1233
1271
  return qe(e, o, l, !1);
1234
1272
  }
1235
- var jt = Ot, Dt = Pt;
1236
- X.Fragment = i, X.jsx = jt, X.jsxs = Dt;
1273
+ var Ft = Dt, $t = jt;
1274
+ X.Fragment = s, X.jsx = Ft, X.jsxs = $t;
1237
1275
  })()), X;
1238
1276
  }
1239
- var Ze;
1240
- function nr() {
1241
- return Ze || (Ze = 1, process.env.NODE_ENV === "production" ? oe.exports = tr() : oe.exports = rr()), oe.exports;
1277
+ var et;
1278
+ function pr() {
1279
+ return et || (et = 1, process.env.NODE_ENV === "production" ? oe.exports = fr() : oe.exports = dr()), oe.exports;
1242
1280
  }
1243
- var v = nr();
1244
- const ot = "platform-kit", or = !1, ve = {
1281
+ var y = pr();
1282
+ const at = "platform-kit", hr = !1, ye = {
1245
1283
  log: (...t) => {
1246
1284
  },
1247
1285
  warn: (...t) => {
1248
1286
  },
1249
1287
  error: (...t) => {
1250
- console.error(`[${ot}]`, ...t);
1288
+ console.error(`[${at}]`, ...t);
1251
1289
  }
1252
1290
  };
1253
- class Cr extends Lt {
1291
+ class Lr extends Vt {
1254
1292
  hasDispatched = !1;
1255
1293
  constructor(r) {
1256
1294
  super(r), this.state = { hasError: !1 };
@@ -1264,7 +1302,7 @@ class Cr extends Lt {
1264
1302
  const r = window;
1265
1303
  if (r.__MF_NAME__) return r.__MF_NAME__;
1266
1304
  }
1267
- return ot;
1305
+ return at;
1268
1306
  }
1269
1307
  /**
1270
1308
  * Определить нужно ли показывать детали ошибки
@@ -1282,7 +1320,7 @@ class Cr extends Lt {
1282
1320
  }
1283
1321
  } catch {
1284
1322
  }
1285
- return or;
1323
+ return hr;
1286
1324
  }
1287
1325
  /**
1288
1326
  * Dispatch ошибки в shell
@@ -1290,12 +1328,12 @@ class Cr extends Lt {
1290
1328
  dispatchError(r, n) {
1291
1329
  if (this.hasDispatched || typeof window > "u") return;
1292
1330
  this.hasDispatched = !0;
1293
- const i = this.getMfeName();
1294
- ve.error("ErrorBoundary caught:", r);
1331
+ const s = this.getMfeName();
1332
+ ye.error("ErrorBoundary caught:", r);
1295
1333
  try {
1296
1334
  window.dispatchEvent(new CustomEvent("mfe-error", {
1297
1335
  detail: {
1298
- mfeName: i,
1336
+ mfeName: s,
1299
1337
  error: r.message || String(r),
1300
1338
  stack: r.stack,
1301
1339
  componentStack: n?.componentStack,
@@ -1304,7 +1342,7 @@ class Cr extends Lt {
1304
1342
  bubbles: !0
1305
1343
  }));
1306
1344
  } catch (c) {
1307
- ve.error("Failed to dispatch mfe-error event:", c);
1345
+ ye.error("Failed to dispatch mfe-error event:", c);
1308
1346
  }
1309
1347
  }
1310
1348
  /**
@@ -1317,7 +1355,7 @@ class Cr extends Lt {
1317
1355
  * Обработать ошибку
1318
1356
  */
1319
1357
  componentDidCatch(r, n) {
1320
- this.dispatchError(r, n), ve.error("Error info:", n.componentStack);
1358
+ this.dispatchError(r, n), ye.error("Error info:", n.componentStack);
1321
1359
  }
1322
1360
  /**
1323
1361
  * Копировать ошибку в буфер обмена
@@ -1349,8 +1387,8 @@ ${this.state.error?.stack}`;
1349
1387
  */
1350
1388
  render() {
1351
1389
  if (this.state.hasError) {
1352
- const r = this.state.error?.message || "Unknown error", n = this.state.error?.stack || "", i = this.shouldShowDetails(), c = this.getMfeName();
1353
- return /* @__PURE__ */ v.jsxs("div", { style: {
1390
+ const r = this.state.error?.message || "Unknown error", n = this.state.error?.stack || "", s = this.shouldShowDetails(), c = this.getMfeName();
1391
+ return /* @__PURE__ */ y.jsxs("div", { style: {
1354
1392
  padding: "20px",
1355
1393
  textAlign: "center",
1356
1394
  color: "#d32f2f",
@@ -1360,12 +1398,12 @@ ${this.state.error?.stack}`;
1360
1398
  borderRadius: "4px",
1361
1399
  margin: "10px"
1362
1400
  }, children: [
1363
- /* @__PURE__ */ v.jsxs("h2", { style: { fontSize: "16px", margin: "0 0 8px 0" }, children: [
1401
+ /* @__PURE__ */ y.jsxs("h2", { style: { fontSize: "16px", margin: "0 0 8px 0" }, children: [
1364
1402
  "⚠️ Ошибка в ",
1365
1403
  c
1366
1404
  ] }),
1367
- /* @__PURE__ */ v.jsx("p", { style: { fontSize: "12px", margin: 0 }, children: "Произошла ошибка в микрофронтенде. Сообщение отправлено в shell." }),
1368
- i && /* @__PURE__ */ v.jsxs("details", { style: {
1405
+ /* @__PURE__ */ y.jsx("p", { style: { fontSize: "12px", margin: 0 }, children: "Произошла ошибка в микрофронтенде. Сообщение отправлено в shell." }),
1406
+ s && /* @__PURE__ */ y.jsxs("details", { style: {
1369
1407
  whiteSpace: "pre-wrap",
1370
1408
  textAlign: "left",
1371
1409
  marginTop: "10px",
@@ -1373,8 +1411,8 @@ ${this.state.error?.stack}`;
1373
1411
  padding: "8px",
1374
1412
  borderRadius: "4px"
1375
1413
  }, children: [
1376
- /* @__PURE__ */ v.jsx("summary", { style: { cursor: "pointer", fontWeight: "bold" }, children: "Детали ошибки" }),
1377
- /* @__PURE__ */ v.jsxs("pre", { style: {
1414
+ /* @__PURE__ */ y.jsx("summary", { style: { cursor: "pointer", fontWeight: "bold" }, children: "Детали ошибки" }),
1415
+ /* @__PURE__ */ y.jsxs("pre", { style: {
1378
1416
  fontSize: "11px",
1379
1417
  overflow: "auto",
1380
1418
  maxHeight: "150px",
@@ -1389,8 +1427,8 @@ ${this.state.error?.stack}`;
1389
1427
  ${n}`
1390
1428
  ] })
1391
1429
  ] }),
1392
- /* @__PURE__ */ v.jsxs("div", { style: { marginTop: "12px", display: "flex", gap: "8px", justifyContent: "center" }, children: [
1393
- /* @__PURE__ */ v.jsx(
1430
+ /* @__PURE__ */ y.jsxs("div", { style: { marginTop: "12px", display: "flex", gap: "8px", justifyContent: "center" }, children: [
1431
+ /* @__PURE__ */ y.jsx(
1394
1432
  "button",
1395
1433
  {
1396
1434
  onClick: this.handleCopy,
@@ -1405,7 +1443,7 @@ ${n}`
1405
1443
  children: "📋 Копировать"
1406
1444
  }
1407
1445
  ),
1408
- /* @__PURE__ */ v.jsx(
1446
+ /* @__PURE__ */ y.jsx(
1409
1447
  "button",
1410
1448
  {
1411
1449
  onClick: this.handleRetry,
@@ -1420,7 +1458,7 @@ ${n}`
1420
1458
  children: "🔄 Обновить"
1421
1459
  }
1422
1460
  ),
1423
- /* @__PURE__ */ v.jsx(
1461
+ /* @__PURE__ */ y.jsx(
1424
1462
  "button",
1425
1463
  {
1426
1464
  onClick: this.handleGoHome,
@@ -1441,7 +1479,7 @@ ${n}`
1441
1479
  return this.props.children == null ? null : this.props.children;
1442
1480
  }
1443
1481
  }
1444
- function sr() {
1482
+ function mr() {
1445
1483
  const [t, r] = A("light");
1446
1484
  return L(() => {
1447
1485
  const n = () => {
@@ -1449,11 +1487,11 @@ function sr() {
1449
1487
  r(d ? "dark" : "light"), console.log("[VersionInfo] Theme detected:", d ? "dark" : "light", "classes:", document.body.className);
1450
1488
  };
1451
1489
  n();
1452
- const i = new MutationObserver(n);
1453
- i.observe(document.body, { attributes: !0, attributeFilter: ["class"] });
1490
+ const s = new MutationObserver(n);
1491
+ s.observe(document.body, { attributes: !0, attributeFilter: ["class"] });
1454
1492
  const c = window.matchMedia("(prefers-color-scheme: dark)");
1455
1493
  return c.addEventListener("change", n), () => {
1456
- i.disconnect(), c.removeEventListener("change", n);
1494
+ s.disconnect(), c.removeEventListener("change", n);
1457
1495
  };
1458
1496
  }, []), t;
1459
1497
  }
@@ -1468,21 +1506,21 @@ const D = {
1468
1506
  tags: "🏷️",
1469
1507
  spreadsheet: "📊"
1470
1508
  };
1471
- function Ir({ mfeName: t }) {
1472
- const { data: r, isLoading: n, error: i } = Gt({ mfeName: t }), [c, d] = A(!1), a = sr();
1509
+ function Ur({ mfeName: t }) {
1510
+ const { data: r, isLoading: n, error: s } = Jt({ mfeName: t }), [c, d] = A(!1), a = mr();
1473
1511
  if (n)
1474
- return /* @__PURE__ */ v.jsxs("span", { className: "text-muted small me-2", children: [
1475
- /* @__PURE__ */ v.jsx("span", { className: "me-1", children: "⏳" }),
1512
+ return /* @__PURE__ */ y.jsxs("span", { className: "text-muted small me-2", children: [
1513
+ /* @__PURE__ */ y.jsx("span", { className: "me-1", children: "⏳" }),
1476
1514
  "Загрузка..."
1477
1515
  ] });
1478
- if (i || !r)
1479
- return /* @__PURE__ */ v.jsxs("span", { className: "text-muted small me-2", title: `Ошибка: ${i || "нет данных"}`, children: [
1480
- /* @__PURE__ */ v.jsx("span", { className: "me-1", children: "ℹ️" }),
1516
+ if (s || !r)
1517
+ return /* @__PURE__ */ y.jsxs("span", { className: "text-muted small me-2", title: `Ошибка: ${s || "нет данных"}`, children: [
1518
+ /* @__PURE__ */ y.jsx("span", { className: "me-1", children: "ℹ️" }),
1481
1519
  "N/A"
1482
1520
  ] });
1483
- const s = r, p = s.BUILD_VERSION || s.IMAGE_VERSION || s.APP_NAME || "N/A", y = s.APP_NAME ? `${s.APP_NAME}: ${p}` : p || t, u = [];
1484
- return s.APP_NAME && u.push({ key: "APP_NAME", value: s.APP_NAME, label: "Приложение", icon: D.apps }), s.BUILD_VERSION && u.push({ key: "BUILD_VERSION", value: s.BUILD_VERSION, label: "Версия", icon: D.tags }), s.IMAGE_VERSION && u.push({ key: "IMAGE_VERSION", value: s.IMAGE_VERSION, label: "Образ", icon: D.storage }), s.GIT_COMMIT && u.push({ key: "GIT_COMMIT", value: s.GIT_COMMIT, label: "Commit", icon: D.spreadsheet }), s.COMMIT_SHA && u.push({ key: "COMMIT_SHA", value: s.COMMIT_SHA, label: "Commit", icon: D.spreadsheet }), s.GIT_BRANCH && u.push({ key: "GIT_BRANCH", value: s.GIT_BRANCH, label: "Ветка", icon: D.spreadsheet }), s.BUILD_BRANCH && u.push({ key: "BUILD_BRANCH", value: s.BUILD_BRANCH, label: "Ветка", icon: D.spreadsheet }), s.CI_COMMIT_AUTHOR && u.push({ key: "CI_COMMIT_AUTHOR", value: s.CI_COMMIT_AUTHOR, label: "Автор", icon: D.user }), s.CI_COMMIT_TIMESTAMP && u.push({ key: "CI_COMMIT_TIMESTAMP", value: s.CI_COMMIT_TIMESTAMP, label: "Дата", icon: D.clock }), s.BUILD_DATE && u.push({ key: "BUILD_DATE", value: s.BUILD_DATE, label: "Сборка", icon: D.clock }), s.CI_JOB_URL && u.push({ key: "CI_JOB_URL", value: s.CI_JOB_URL, label: "CI Job", icon: D.link }), s.CI_PIPELINE_URL && u.push({ key: "CI_PIPELINE_URL", value: s.CI_PIPELINE_URL, label: "Pipeline", icon: D.link }), s.CI_COMMIT_MESSAGE && (s.CI_COMMIT_MESSAGE.length > 60 ? s.CI_COMMIT_MESSAGE.substring(0, 57) + "" : s.CI_COMMIT_MESSAGE, u.push({ key: "CI_COMMIT_MESSAGE", value: s.CI_COMMIT_MESSAGE, label: "Сообщение", icon: D.code })), /* @__PURE__ */ v.jsxs("div", { style: { display: "inline-block", position: "relative" }, children: [
1485
- /* @__PURE__ */ v.jsxs(
1521
+ const i = r, p = i.BUILD_VERSION || i.IMAGE_VERSION || i.APP_NAME || "N/A", v = i.APP_NAME ? `${i.APP_NAME}: ${p}` : p || t, u = [];
1522
+ return i.APP_NAME && u.push({ key: "APP_NAME", value: i.APP_NAME, label: "Приложение", icon: D.apps }), i.BUILD_VERSION && u.push({ key: "BUILD_VERSION", value: i.BUILD_VERSION, label: "Версия", icon: D.tags }), i.IMAGE_VERSION && u.push({ key: "IMAGE_VERSION", value: i.IMAGE_VERSION, label: "Образ", icon: D.storage }), i.GIT_COMMIT && u.push({ key: "GIT_COMMIT", value: i.GIT_COMMIT, label: "Commit", icon: D.spreadsheet }), i.COMMIT_SHA && u.push({ key: "COMMIT_SHA", value: i.COMMIT_SHA, label: "Commit", icon: D.spreadsheet }), i.GIT_BRANCH && u.push({ key: "GIT_BRANCH", value: i.GIT_BRANCH, label: "Ветка", icon: D.spreadsheet }), i.BUILD_BRANCH && u.push({ key: "BUILD_BRANCH", value: i.BUILD_BRANCH, label: "Ветка", icon: D.spreadsheet }), i.CI_COMMIT_AUTHOR && u.push({ key: "CI_COMMIT_AUTHOR", value: i.CI_COMMIT_AUTHOR, label: "Автор", icon: D.user }), i.CI_COMMIT_TIMESTAMP && u.push({ key: "CI_COMMIT_TIMESTAMP", value: i.CI_COMMIT_TIMESTAMP, label: "Дата", icon: D.clock }), i.BUILD_DATE && u.push({ key: "BUILD_DATE", value: i.BUILD_DATE, label: "Сборка", icon: D.clock }), i.CI_JOB_URL && u.push({ key: "CI_JOB_URL", value: i.CI_JOB_URL, label: "CI Job", icon: D.link }), i.CI_PIPELINE_URL && u.push({ key: "CI_PIPELINE_URL", value: i.CI_PIPELINE_URL, label: "Pipeline", icon: D.link }), i.CI_COMMIT_MESSAGE && (i.CI_COMMIT_MESSAGE.length > 60 ? i.CI_COMMIT_MESSAGE.substring(0, 57) + "" : i.CI_COMMIT_MESSAGE, u.push({ key: "CI_COMMIT_MESSAGE", value: i.CI_COMMIT_MESSAGE, label: "Сообщение", icon: D.code })), /* @__PURE__ */ y.jsxs("div", { style: { display: "inline-block", position: "relative" }, children: [
1523
+ /* @__PURE__ */ y.jsxs(
1486
1524
  "button",
1487
1525
  {
1488
1526
  onClick: () => d(!c),
@@ -1497,12 +1535,12 @@ function Ir({ mfeName: t }) {
1497
1535
  },
1498
1536
  title: "Информация о версии",
1499
1537
  children: [
1500
- /* @__PURE__ */ v.jsx("span", { className: "me-1", children: D.info }),
1501
- /* @__PURE__ */ v.jsx("span", { style: { color: a === "dark" ? "#c4c7cc" : "#212529" }, children: p })
1538
+ /* @__PURE__ */ y.jsx("span", { className: "me-1", children: D.info }),
1539
+ /* @__PURE__ */ y.jsx("span", { style: { color: a === "dark" ? "#c4c7cc" : "#212529" }, children: p })
1502
1540
  ]
1503
1541
  }
1504
1542
  ),
1505
- c && /* @__PURE__ */ v.jsxs(
1543
+ c && /* @__PURE__ */ y.jsxs(
1506
1544
  "div",
1507
1545
  {
1508
1546
  style: {
@@ -1520,7 +1558,7 @@ function Ir({ mfeName: t }) {
1520
1558
  marginTop: "4px"
1521
1559
  },
1522
1560
  children: [
1523
- /* @__PURE__ */ v.jsxs("div", { style: {
1561
+ /* @__PURE__ */ y.jsxs("div", { style: {
1524
1562
  marginBottom: "8px",
1525
1563
  paddingBottom: "6px",
1526
1564
  borderBottom: `1px solid ${a === "dark" ? "#40444b" : "#dee2e6"}`,
@@ -1528,23 +1566,23 @@ function Ir({ mfeName: t }) {
1528
1566
  alignItems: "center",
1529
1567
  fontSize: "13px"
1530
1568
  }, children: [
1531
- /* @__PURE__ */ v.jsx("span", { className: "me-1", children: D.apps }),
1532
- /* @__PURE__ */ v.jsx("strong", { style: { color: a === "dark" ? "#e4e5e6" : "#212529" }, children: y })
1569
+ /* @__PURE__ */ y.jsx("span", { className: "me-1", children: D.apps }),
1570
+ /* @__PURE__ */ y.jsx("strong", { style: { color: a === "dark" ? "#e4e5e6" : "#212529" }, children: v })
1533
1571
  ] }),
1534
- u.length > 0 && /* @__PURE__ */ v.jsx("div", { style: { fontSize: "12px" }, children: u.filter(
1572
+ u.length > 0 && /* @__PURE__ */ y.jsx("div", { style: { fontSize: "12px" }, children: u.filter(
1535
1573
  (h) => (
1536
1574
  // Hide these fields - they're already in header or redundant
1537
1575
  h.key !== "APP_NAME" && h.key !== "BUILD_VERSION" && h.key !== "IMAGE_VERSION"
1538
1576
  )
1539
1577
  ).map(({ key: h, value: f, label: E, icon: g }) => {
1540
1578
  const C = h.includes("URL"), R = C ? "🔗" : f;
1541
- return /* @__PURE__ */ v.jsxs("div", { style: { marginBottom: "4px", display: "flex", alignItems: "center" }, children: [
1542
- /* @__PURE__ */ v.jsx("span", { className: "me-1", style: { flexShrink: 0 }, children: g }),
1543
- /* @__PURE__ */ v.jsxs("span", { style: { color: a === "dark" ? "#949ba3" : "#6c757d", marginRight: "4px" }, children: [
1579
+ return /* @__PURE__ */ y.jsxs("div", { style: { marginBottom: "4px", display: "flex", alignItems: "center" }, children: [
1580
+ /* @__PURE__ */ y.jsx("span", { className: "me-1", style: { flexShrink: 0 }, children: g }),
1581
+ /* @__PURE__ */ y.jsxs("span", { style: { color: a === "dark" ? "#949ba3" : "#6c757d", marginRight: "4px" }, children: [
1544
1582
  E,
1545
1583
  ":"
1546
1584
  ] }),
1547
- C ? /* @__PURE__ */ v.jsx(
1585
+ C ? /* @__PURE__ */ y.jsx(
1548
1586
  "a",
1549
1587
  {
1550
1588
  href: f,
@@ -1553,11 +1591,11 @@ function Ir({ mfeName: t }) {
1553
1591
  style: { color: "#4da6ff", textDecoration: "none" },
1554
1592
  children: "🔗"
1555
1593
  }
1556
- ) : /* @__PURE__ */ v.jsx("span", { style: { color: a === "dark" ? "#c4c7cc" : "#212529" }, children: R })
1594
+ ) : /* @__PURE__ */ y.jsx("span", { style: { color: a === "dark" ? "#c4c7cc" : "#212529" }, children: R })
1557
1595
  ] }, h);
1558
1596
  }) }),
1559
- u.length === 0 && /* @__PURE__ */ v.jsx("div", { className: "text-center text-muted py-2 small", children: "Нет информации о версии" }),
1560
- /* @__PURE__ */ v.jsx("div", { style: {
1597
+ u.length === 0 && /* @__PURE__ */ y.jsx("div", { className: "text-center text-muted py-2 small", children: "Нет информации о версии" }),
1598
+ /* @__PURE__ */ y.jsx("div", { style: {
1561
1599
  marginTop: "8px",
1562
1600
  paddingTop: "6px",
1563
1601
  borderTop: `1px solid ${a === "dark" ? "#40444b" : "#dee2e6"}`,
@@ -1565,7 +1603,7 @@ function Ir({ mfeName: t }) {
1565
1603
  fontSize: "11px",
1566
1604
  color: "#6c757d"
1567
1605
  }, children: "IngoBank DevOps Platform" }),
1568
- /* @__PURE__ */ v.jsx(
1606
+ /* @__PURE__ */ y.jsx(
1569
1607
  "button",
1570
1608
  {
1571
1609
  onClick: () => d(!1),
@@ -1585,7 +1623,7 @@ function Ir({ mfeName: t }) {
1585
1623
  ]
1586
1624
  }
1587
1625
  ),
1588
- c && /* @__PURE__ */ v.jsx(
1626
+ c && /* @__PURE__ */ y.jsx(
1589
1627
  "div",
1590
1628
  {
1591
1629
  onClick: () => d(!1),
@@ -1601,17 +1639,17 @@ function Ir({ mfeName: t }) {
1601
1639
  )
1602
1640
  ] });
1603
1641
  }
1604
- const Ee = "platform-kit", st = Ut(null);
1605
- function Mr({ children: t }) {
1606
- const [r, n] = A([]), i = typeof window < "u" && window.__MF_NAME__ || Ee, c = S((f, E, g, C) => ({
1642
+ const Ee = "platform-kit", it = Bt(null);
1643
+ function Vr({ children: t }) {
1644
+ const [r, n] = A([]), s = typeof window < "u" && window.__MF_NAME__ || Ee, c = S((f, E, g, C) => ({
1607
1645
  id: `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
1608
1646
  type: f,
1609
1647
  title: E,
1610
1648
  message: g,
1611
- mfeName: i,
1649
+ mfeName: s,
1612
1650
  timestamp: Date.now(),
1613
1651
  duration: C
1614
- }), [i]), d = S((f) => {
1652
+ }), [s]), d = S((f) => {
1615
1653
  n((g) => [...g, f].slice(0, 5));
1616
1654
  const E = f.duration || 5e3;
1617
1655
  E > 0 && setTimeout(() => {
@@ -1623,11 +1661,11 @@ function Mr({ children: t }) {
1623
1661
  detail: E,
1624
1662
  bubbles: !0
1625
1663
  }));
1626
- }, [c, d]), s = S((f, E = "Успешно") => {
1664
+ }, [c, d]), i = S((f, E = "Успешно") => {
1627
1665
  a({ type: "success", title: E, message: f });
1628
1666
  }, [a]), p = S((f, E = "Ошибка") => {
1629
1667
  a({ type: "error", title: E, message: f });
1630
- }, [a]), y = S((f, E = "Предупреждение") => {
1668
+ }, [a]), v = S((f, E = "Предупреждение") => {
1631
1669
  a({ type: "warning", title: E, message: f });
1632
1670
  }, [a]), u = S((f, E = "Информация") => {
1633
1671
  a({ type: "info", title: E, message: f });
@@ -1649,16 +1687,16 @@ function Mr({ children: t }) {
1649
1687
  return window.addEventListener("mfe-notification", f), () => {
1650
1688
  window.removeEventListener("mfe-notification", f);
1651
1689
  };
1652
- }, [d]), /* @__PURE__ */ v.jsxs(st.Provider, { value: {
1690
+ }, [d]), /* @__PURE__ */ y.jsxs(it.Provider, { value: {
1653
1691
  notify: a,
1654
- notifySuccess: s,
1692
+ notifySuccess: i,
1655
1693
  notifyError: p,
1656
- notifyWarning: y,
1694
+ notifyWarning: v,
1657
1695
  notifyInfo: u,
1658
1696
  removeNotification: h
1659
1697
  }, children: [
1660
1698
  t,
1661
- r.length > 0 && /* @__PURE__ */ v.jsx(
1699
+ r.length > 0 && /* @__PURE__ */ y.jsx(
1662
1700
  "div",
1663
1701
  {
1664
1702
  style: {
@@ -1673,7 +1711,7 @@ function Mr({ children: t }) {
1673
1711
  gap: "8px",
1674
1712
  pointerEvents: "none"
1675
1713
  },
1676
- children: r.map((f) => /* @__PURE__ */ v.jsxs(
1714
+ children: r.map((f) => /* @__PURE__ */ y.jsxs(
1677
1715
  "div",
1678
1716
  {
1679
1717
  className: `notification notification-${f.type}`,
@@ -1689,12 +1727,12 @@ function Mr({ children: t }) {
1689
1727
  gap: "12px"
1690
1728
  },
1691
1729
  children: [
1692
- /* @__PURE__ */ v.jsxs("div", { style: { flex: 1 }, children: [
1693
- /* @__PURE__ */ v.jsx("strong", { style: { display: "block", marginBottom: "4px" }, children: f.title }),
1694
- /* @__PURE__ */ v.jsx("p", { style: { margin: 0, fontSize: "14px" }, children: f.message }),
1695
- /* @__PURE__ */ v.jsx("small", { style: { opacity: 0.7, fontSize: "12px" }, children: f.mfeName })
1730
+ /* @__PURE__ */ y.jsxs("div", { style: { flex: 1 }, children: [
1731
+ /* @__PURE__ */ y.jsx("strong", { style: { display: "block", marginBottom: "4px" }, children: f.title }),
1732
+ /* @__PURE__ */ y.jsx("p", { style: { margin: 0, fontSize: "14px" }, children: f.message }),
1733
+ /* @__PURE__ */ y.jsx("small", { style: { opacity: 0.7, fontSize: "12px" }, children: f.mfeName })
1696
1734
  ] }),
1697
- /* @__PURE__ */ v.jsx(
1735
+ /* @__PURE__ */ y.jsx(
1698
1736
  "button",
1699
1737
  {
1700
1738
  onClick: () => h(f.id),
@@ -1717,8 +1755,8 @@ function Mr({ children: t }) {
1717
1755
  )
1718
1756
  ] });
1719
1757
  }
1720
- function Nr() {
1721
- const t = Bt(st);
1758
+ function Br() {
1759
+ const t = Ht(it);
1722
1760
  return t || {
1723
1761
  notify: () => {
1724
1762
  },
@@ -1734,7 +1772,7 @@ function Nr() {
1734
1772
  }
1735
1773
  };
1736
1774
  }
1737
- function Pr(t) {
1775
+ function Hr(t) {
1738
1776
  if (typeof window > "u") return;
1739
1777
  const r = window.__MF_NAME__ || Ee, n = {
1740
1778
  ...t,
@@ -1749,18 +1787,18 @@ function Pr(t) {
1749
1787
  function ce(t, r) {
1750
1788
  const n = r?.prefix ? `[${r.prefix}]` : `[${t}]`;
1751
1789
  return {
1752
- log: (...i) => {
1790
+ log: (...s) => {
1753
1791
  },
1754
- warn: (...i) => {
1792
+ warn: (...s) => {
1755
1793
  },
1756
- error: (...i) => {
1757
- console.error(n, ...i);
1794
+ error: (...s) => {
1795
+ console.error(n, ...s);
1758
1796
  },
1759
- info: (...i) => {
1797
+ info: (...s) => {
1760
1798
  }
1761
1799
  };
1762
1800
  }
1763
- const Or = ce("platform-kit", { prefix: "AUTH" }), jr = ce("platform-kit", { prefix: "API" }), Dr = ce("platform-kit", { prefix: "ERROR" }), Fr = ce("platform-kit", { prefix: "INFO" }), ar = {}, ir = {
1801
+ const Wr = ce("platform-kit", { prefix: "AUTH" }), zr = ce("platform-kit", { prefix: "API" }), Gr = ce("platform-kit", { prefix: "ERROR" }), Yr = ce("platform-kit", { prefix: "INFO" }), gr = {}, _r = {
1764
1802
  log: (...t) => {
1765
1803
  },
1766
1804
  warn: (...t) => {
@@ -1772,12 +1810,12 @@ const Or = ce("platform-kit", { prefix: "AUTH" }), jr = ce("platform-kit", { pre
1772
1810
  function be(t) {
1773
1811
  return t ? t.mfeName ? t.mfeName : t.name ? t.name.replace("@ib-dop/", "") : null : null;
1774
1812
  }
1775
- function at() {
1813
+ function ct() {
1776
1814
  if (typeof window > "u") return null;
1777
1815
  const t = window;
1778
1816
  return t.__MF_NAME__ ? t.__MF_NAME__ : null;
1779
1817
  }
1780
- function it() {
1818
+ function ut() {
1781
1819
  if (typeof window > "u") return null;
1782
1820
  try {
1783
1821
  const t = sessionStorage.getItem("mf-config");
@@ -1792,84 +1830,85 @@ function it() {
1792
1830
  return null;
1793
1831
  }
1794
1832
  function xe() {
1795
- const t = ar;
1833
+ const t = gr;
1796
1834
  return t.VITE_MFE_NAME ? String(t.VITE_MFE_NAME) : t.MFE_NAME ? String(t.MFE_NAME) : null;
1797
1835
  }
1798
1836
  let se = null, we = !1;
1799
- function cr(t, r) {
1837
+ function yr(t, r) {
1800
1838
  const n = be(t);
1801
1839
  if (n)
1802
1840
  return n;
1803
1841
  if (we && se)
1804
1842
  return se;
1805
- const i = [
1806
- { source: "window.__MF_NAME__", value: at() },
1807
- { source: "sessionStorage.mf-config", value: it() },
1843
+ const s = [
1844
+ { source: "window.__MF_NAME__", value: ct() },
1845
+ { source: "sessionStorage.mf-config", value: ut() },
1808
1846
  { source: "import.meta.env.VITE_MFE_NAME", value: xe() }
1809
1847
  ];
1810
- for (const { source: d, value: a } of i)
1848
+ for (const { source: d, value: a } of s)
1811
1849
  if (a)
1812
1850
  return se = a, we = !0, a;
1813
1851
  if (r)
1814
1852
  return r;
1815
1853
  const c = "Cannot determine MFE name. Please pass mfeName in props, set window.__MF_NAME__, sessionStorage.mf-config, or VITE_MFE_NAME";
1816
- throw ir.error(c), new Error(c);
1854
+ throw _r.error(c), new Error(c);
1817
1855
  }
1818
- function $r(t) {
1819
- return cr(t);
1856
+ function qr(t) {
1857
+ return yr(t);
1820
1858
  }
1821
- function ur(t) {
1822
- return be(t) ? "props.mfeName" : at() ? "window.__MF_NAME__" : it() ? "sessionStorage.mf-config" : xe() ? "import.meta.env.VITE_MFE_NAME" : null;
1859
+ function vr(t) {
1860
+ return be(t) ? "props.mfeName" : ct() ? "window.__MF_NAME__" : ut() ? "sessionStorage.mf-config" : xe() ? "import.meta.env.VITE_MFE_NAME" : null;
1823
1861
  }
1824
- function Lr(t) {
1825
- return ur(t) !== null;
1862
+ function Jr(t) {
1863
+ return vr(t) !== null;
1826
1864
  }
1827
- function Ur() {
1865
+ function Kr() {
1828
1866
  se = null, we = !1;
1829
1867
  }
1830
- function Br(t) {
1868
+ function Xr(t) {
1831
1869
  const r = [];
1832
1870
  return be(t) && r.push("props.mfeName"), typeof window < "u" && (window.__MF_NAME__ && r.push("window.__MF_NAME__"), sessionStorage.getItem("mf-config") && r.push("sessionStorage.mf-config")), xe() && r.push("import.meta.env.VITE_MFE_NAME"), r;
1833
1871
  }
1834
1872
  export {
1835
- Cr as ErrorBoundary,
1836
- Mr as NotificationProvider,
1837
- Ir as VersionInfo,
1873
+ Lr as ErrorBoundary,
1874
+ Vr as NotificationProvider,
1875
+ Ur as VersionInfo,
1838
1876
  H as api,
1839
- jr as apiLogger,
1840
- Or as authLogger,
1841
- Qt as createApiClient,
1877
+ zr as apiLogger,
1878
+ rr as attachTraceparentToAxios,
1879
+ Wr as authLogger,
1880
+ cr as createApiClient,
1842
1881
  ce as createMfLogger,
1843
- Er as del,
1844
- Pr as dispatchNotification,
1845
- Dr as errorLogger,
1846
- _r as get,
1847
- pr as getAccessToken,
1848
- Br as getAllMfeNameSources,
1849
- dr as getAuthState,
1850
- cr as getMfeName,
1851
- ur as getMfeNameSource,
1852
- B as getShellAuth,
1853
- Lr as hasMfeName,
1854
- Fr as infoLogger,
1855
- hr as isAuthenticated,
1856
- mr as logout,
1857
- vr as post,
1858
- yr as put,
1859
- Ht as redirectToLogin,
1860
- $r as requireMfeName,
1861
- Ur as resetMfeNameCache,
1882
+ Ir as del,
1883
+ Hr as dispatchNotification,
1884
+ Gr as errorLogger,
1885
+ Rr as get,
1886
+ xr as getAccessToken,
1887
+ Xr as getAllMfeNameSources,
1888
+ br as getAuthState,
1889
+ yr as getMfeName,
1890
+ vr as getMfeNameSource,
1891
+ V as getShellAuth,
1892
+ Jr as hasMfeName,
1893
+ Yr as infoLogger,
1894
+ kr as isAuthenticated,
1895
+ Ar as logout,
1896
+ Sr as post,
1897
+ Cr as put,
1898
+ Gt as redirectToLogin,
1899
+ qr as requireMfeName,
1900
+ Kr as resetMfeNameCache,
1862
1901
  ie as useApi,
1863
- kr as useDel,
1864
- Rr as useFeatureAdmin,
1865
- Tr as useFeatures,
1866
- wr as useGet,
1867
- Gt as useInfoData,
1868
- Sr as useMicrofrontendsFeatures,
1869
- Nr as useNotification,
1870
- Ar as usePermissions,
1871
- br as usePost,
1872
- xr as usePut,
1902
+ Pr as useDel,
1903
+ Fr as useFeatureAdmin,
1904
+ Dr as useFeatures,
1905
+ Mr as useGet,
1906
+ Jt as useInfoData,
1907
+ $r as useMicrofrontendsFeatures,
1908
+ Br as useNotification,
1909
+ jr as usePermissions,
1910
+ Nr as usePost,
1911
+ Or as usePut,
1873
1912
  ae as useShellAuth,
1874
- gr as useV1Config
1913
+ Tr as useV1Config
1875
1914
  };