@isi-ui7/bos7-shared 0.2.13 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import { jsx as Ge, jsxs as gt, Fragment as Ri } from "react/jsx-runtime";
2
- import Mi, { createContext as _n, useState as Ct, useCallback as kt, useEffect as At, useContext as xn, useMemo as Ur } from "react";
3
- import { createHash as Oi } from "node:crypto";
1
+ import { jsx as Ge, jsxs as gt, Fragment as Mi } from "react/jsx-runtime";
2
+ import Oi, { createContext as _n, useState as Ct, useCallback as kt, useEffect as At, useContext as xn, useMemo as Ur } from "react";
3
+ import { createHash as Ii } from "node:crypto";
4
4
  const Sn = _n(null), Cr = "bos7_logout_at";
5
- function Ii() {
5
+ function Pi() {
6
6
  const M = process.env.NEXT_PUBLIC_APP_URL;
7
7
  if (M)
8
8
  return `${M.replace(/\/+$/, "")}/api/auth/callback`;
@@ -12,7 +12,7 @@ function Ii() {
12
12
  }
13
13
  return "";
14
14
  }
15
- function Pi() {
15
+ function Ni() {
16
16
  const M = process.env.NEXT_PUBLIC_APP_URL;
17
17
  if (M)
18
18
  return `${M.replace(/\/+$/, "")}/`;
@@ -22,15 +22,15 @@ function Pi() {
22
22
  }
23
23
  return "/";
24
24
  }
25
- async function Ni() {
25
+ async function ji() {
26
26
  const M = new Uint8Array(32);
27
27
  return crypto.getRandomValues(M), btoa(String.fromCharCode(...M)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
28
28
  }
29
- async function ji(M) {
29
+ async function Di(M) {
30
30
  const r = new TextEncoder().encode(M), x = await crypto.subtle.digest("SHA-256", r);
31
31
  return btoa(String.fromCharCode(...new Uint8Array(x))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
32
32
  }
33
- function Di() {
33
+ function Li() {
34
34
  const M = new Uint8Array(16);
35
35
  return crypto.getRandomValues(M), btoa(String.fromCharCode(...M)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
36
36
  }
@@ -39,7 +39,7 @@ function Rr(M) {
39
39
  const L = `${M}=`, r = document.cookie.split("; ").find((x) => x.startsWith(L));
40
40
  return r ? decodeURIComponent(r.slice(L.length)) : null;
41
41
  }
42
- function Li({ children: M }) {
42
+ function Bi({ children: M }) {
43
43
  const [L, r] = Ct({
44
44
  isAuthenticated: !1,
45
45
  isLoading: !0,
@@ -99,7 +99,7 @@ function Li({ children: M }) {
99
99
  const t = process.env.NEXT_PUBLIC_AUTH7_URL, l = process.env.NEXT_PUBLIC_AUTH7_CLIENT_ID;
100
100
  if (!t) throw new Error("[bos7] NEXT_PUBLIC_AUTH7_URL env var is required");
101
101
  if (!l) throw new Error("[bos7] NEXT_PUBLIC_AUTH7_CLIENT_ID env var is required");
102
- const i = await Ni(), s = await ji(i), f = Di(), h = Ii(), u = typeof window < "u" ? window.location.pathname : "/";
102
+ const i = await ji(), s = await Di(i), f = Li(), h = Pi(), u = typeof window < "u" ? window.location.pathname : "/";
103
103
  document.cookie = `auth7_pkce_verifier=${i}; path=/; max-age=600; samesite=lax`, document.cookie = `auth7_oauth_state=${f}; path=/; max-age=600; samesite=lax`, document.cookie = `auth7_return_url=${encodeURIComponent(u)}; path=/; max-age=600; samesite=lax`;
104
104
  const p = new URLSearchParams({
105
105
  client_id: l,
@@ -119,7 +119,7 @@ function Li({ children: M }) {
119
119
  if (!t) throw new Error("[bos7] NEXT_PUBLIC_AUTH7_URL env var is required");
120
120
  if (!l) throw new Error("[bos7] NEXT_PUBLIC_AUTH7_CLIENT_ID env var is required");
121
121
  await fetch("/api/auth/logout", { method: "POST" }).catch(() => null);
122
- const i = `${t}/oauth2/logout?client_id=${l}&post_logout_redirect_uri=${encodeURIComponent(Pi())}`;
122
+ const i = `${t}/oauth2/logout?client_id=${l}&post_logout_redirect_uri=${encodeURIComponent(Ni())}`;
123
123
  window.location.href = i;
124
124
  }, []), e = kt(async () => {
125
125
  try {
@@ -152,7 +152,7 @@ function En() {
152
152
  throw new Error("useAuthContext must be used within AuthProvider");
153
153
  return M;
154
154
  }
155
- function Bi() {
155
+ function Fi() {
156
156
  const { isAuthenticated: M, isLoading: L, user: r, accessToken: x, error: w, login: c, logout: o, refreshSession: a } = En();
157
157
  return {
158
158
  isAuthenticated: M,
@@ -173,23 +173,23 @@ function Gt(M) {
173
173
  function kn() {
174
174
  return typeof window < "u" ? `${window.location.origin}/api/auth/callback` : "";
175
175
  }
176
- async function Fi() {
176
+ async function Ui() {
177
177
  const M = new Uint8Array(32);
178
178
  return crypto.getRandomValues(M), Zr(M);
179
179
  }
180
- async function Ui(M) {
180
+ async function Hi(M) {
181
181
  const r = new TextEncoder().encode(M), x = await crypto.subtle.digest("SHA-256", r);
182
182
  return Zr(new Uint8Array(x));
183
183
  }
184
184
  function Zr(M) {
185
185
  return btoa(String.fromCharCode(...M)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
186
186
  }
187
- function Hi() {
187
+ function zi() {
188
188
  const M = new Uint8Array(16);
189
189
  return crypto.getRandomValues(M), Zr(M);
190
190
  }
191
- async function ro() {
192
- const M = Gt("NEXT_PUBLIC_AUTH7_URL"), L = Gt("AUTH7_CLIENT_ID"), r = await Fi(), x = await Ui(r), w = Hi(), c = kn(), o = "openid profile email roles offline_access", a = new URLSearchParams({
191
+ async function no() {
192
+ const M = Gt("NEXT_PUBLIC_AUTH7_URL"), L = Gt("AUTH7_CLIENT_ID"), r = await Ui(), x = await Hi(r), w = zi(), c = kn(), o = "openid profile email roles offline_access", a = new URLSearchParams({
193
193
  client_id: L,
194
194
  redirect_uri: c,
195
195
  response_type: "code",
@@ -200,7 +200,7 @@ async function ro() {
200
200
  });
201
201
  return { url: `${M}/oauth2/authorize?${a.toString()}`, codeVerifier: r, state: w };
202
202
  }
203
- async function no(M, L) {
203
+ async function io(M, L) {
204
204
  const r = Gt("NEXT_PUBLIC_AUTH7_URL"), x = Gt("AUTH7_CLIENT_ID"), w = kn(), c = new URLSearchParams({
205
205
  grant_type: "authorization_code",
206
206
  code: M,
@@ -220,7 +220,7 @@ async function no(M, L) {
220
220
  }
221
221
  return o.json();
222
222
  }
223
- async function zi(M) {
223
+ async function $i(M) {
224
224
  const L = await fetch("/api/auth/refresh", {
225
225
  method: "POST",
226
226
  headers: {
@@ -238,7 +238,7 @@ async function zi(M) {
238
238
  scope: ""
239
239
  };
240
240
  }
241
- async function io(M) {
241
+ async function so(M) {
242
242
  const L = Gt("NEXT_PUBLIC_AUTH7_URL"), r = Gt("AUTH7_CLIENT_ID"), x = new URLSearchParams({
243
243
  token: M,
244
244
  token_type_hint: "access_token",
@@ -252,7 +252,7 @@ async function io(M) {
252
252
  body: x.toString()
253
253
  });
254
254
  }
255
- async function so(M) {
255
+ async function ao(M) {
256
256
  const L = await fetch("/api/auth/me", {
257
257
  headers: {
258
258
  Authorization: `Bearer ${M}`
@@ -262,14 +262,14 @@ async function so(M) {
262
262
  throw new Error("Failed to get user info");
263
263
  return L.json();
264
264
  }
265
- function $i(M) {
265
+ function Wi(M) {
266
266
  return M <= Date.now() + 3e5;
267
267
  }
268
- function Wi(M) {
268
+ function qi(M) {
269
269
  const L = Date.now() + M.expires_in * 1e3;
270
270
  document.cookie = `access_token=${M.access_token}; path=/; max-age=${M.expires_in}; samesite=lax`, document.cookie = `token_expires_at=${L}; path=/; max-age=${M.expires_in}; samesite=lax`, document.cookie = `token_scope=${M.scope}; path=/; max-age=${M.expires_in}; samesite=lax`, M.refresh_token && (document.cookie = `refresh_token=${M.refresh_token}; path=/; max-age=${8 * 3600}; samesite=lax`), M.id_token && (document.cookie = `id_token=${M.id_token}; path=/; max-age=${M.expires_in}; samesite=lax`);
271
271
  }
272
- function ao() {
272
+ function oo() {
273
273
  [
274
274
  "access_token",
275
275
  "refresh_token",
@@ -291,10 +291,10 @@ function dr() {
291
291
  }, L = M("access_token"), r = M("refresh_token"), x = M("token_expires_at"), w = x ? parseInt(x, 10) : 0;
292
292
  return { accessToken: L, refreshToken: r, expiresAt: w };
293
293
  }
294
- function oo(M, L, r) {
294
+ function lo(M, L, r) {
295
295
  document.cookie = `auth7_pkce_verifier=${M}; path=/; max-age=600; samesite=lax`, document.cookie = `auth7_oauth_state=${L}; path=/; max-age=600; samesite=lax`, document.cookie = `auth7_return_url=${encodeURIComponent(r)}; path=/; max-age=600; samesite=lax`;
296
296
  }
297
- function lo() {
297
+ function uo() {
298
298
  const M = (L) => {
299
299
  var w;
300
300
  const x = `; ${document.cookie}`.split(`; ${L}=`);
@@ -306,16 +306,16 @@ function lo() {
306
306
  returnUrl: M("auth7_return_url") ? decodeURIComponent(M("auth7_return_url")) : null
307
307
  };
308
308
  }
309
- function uo() {
309
+ function co() {
310
310
  document.cookie = "auth7_pkce_verifier=; path=/; max-age=0; samesite=lax", document.cookie = "auth7_oauth_state=; path=/; max-age=0; samesite=lax", document.cookie = "auth7_return_url=; path=/; max-age=0; samesite=lax";
311
311
  }
312
- function co() {
312
+ function fo() {
313
313
  const M = En(), [L, r] = Ct(!1), [x, w] = Ct(null);
314
314
  At(() => {
315
315
  if (!M.isAuthenticated || !M.accessToken)
316
316
  return;
317
317
  const { expiresAt: o } = dr();
318
- if ($i(o)) {
318
+ if (Wi(o)) {
319
319
  r(!0);
320
320
  return;
321
321
  }
@@ -332,8 +332,8 @@ function co() {
332
332
  return;
333
333
  }
334
334
  try {
335
- const a = await zi(o);
336
- Wi(a), c();
335
+ const a = await $i(o);
336
+ qi(a), c();
337
337
  } catch {
338
338
  M.logout();
339
339
  }
@@ -349,7 +349,7 @@ function co() {
349
349
  }
350
350
  const bn = process.env.AUTH7_CLIENT_SECRET ?? "";
351
351
  let qt = null;
352
- async function fo() {
352
+ async function ho() {
353
353
  const M = process.env.AUTH7_API_URL, L = process.env.AUTH7_CLIENT_ID;
354
354
  if (!M) throw new Error("[bos7] AUTH7_API_URL env var is required");
355
355
  if (!L) throw new Error("[bos7] AUTH7_CLIENT_ID env var is required");
@@ -382,14 +382,14 @@ async function fo() {
382
382
  return console.warn("[auth7:service-account] token request error", x), null;
383
383
  }
384
384
  }
385
- function ho() {
385
+ function po() {
386
386
  qt = null;
387
387
  }
388
- const qi = process.env.AUTH7_API_URL ?? "http://localhost:8090", Vi = process.env.AUTH7_CLIENT_ID ?? "bos7-portal", gn = process.env.AUTH7_CLIENT_SECRET ?? "", Tn = 256, Tt = /* @__PURE__ */ new Map();
389
- function Xi(M, L) {
390
- return Oi("sha256").update(`${M}:${L}`).digest("hex");
388
+ const Vi = process.env.AUTH7_API_URL ?? "http://localhost:8090", Xi = process.env.AUTH7_CLIENT_ID ?? "bos7-portal", gn = process.env.AUTH7_CLIENT_SECRET ?? "", Tn = 256, Tt = /* @__PURE__ */ new Map();
389
+ function Ki(M, L) {
390
+ return Ii("sha256").update(`${M}:${L}`).digest("hex");
391
391
  }
392
- function Ki() {
392
+ function Gi() {
393
393
  const M = Date.now();
394
394
  for (const [L, r] of Tt)
395
395
  r.expiresAt <= M && Tt.delete(L);
@@ -398,18 +398,18 @@ function Ki() {
398
398
  L !== void 0 && Tt.delete(L);
399
399
  }
400
400
  }
401
- function po() {
401
+ function mo() {
402
402
  Tt.clear();
403
403
  }
404
404
  async function Jr(M, L, r, x = {}) {
405
- const { failClosed: w = !1 } = x, c = Xi(M, L), o = Tt.get(c);
405
+ const { failClosed: w = !1 } = x, c = Ki(M, L), o = Tt.get(c);
406
406
  if (o && o.expiresAt > Date.now())
407
407
  return o.result;
408
408
  if (!gn) {
409
409
  if (w) throw new Error("[auth7:token-exchange] AUTH7_CLIENT_SECRET not configured; fail-closed mode active");
410
410
  return { accessToken: M, expiresIn: 900, scope: r ?? "" };
411
411
  }
412
- const a = Buffer.from(`${Vi}:${gn}`).toString("base64");
412
+ const a = Buffer.from(`${Xi}:${gn}`).toString("base64");
413
413
  try {
414
414
  const n = new URLSearchParams({
415
415
  grant_type: "urn:ietf:params:oauth:grant-type:token-exchange",
@@ -419,7 +419,7 @@ async function Jr(M, L, r, x = {}) {
419
419
  audience: L
420
420
  });
421
421
  r && n.set("scope", r);
422
- const e = await fetch(`${qi}/oauth2/token`, {
422
+ const e = await fetch(`${Vi}/oauth2/token`, {
423
423
  method: "POST",
424
424
  headers: {
425
425
  "Content-Type": "application/x-www-form-urlencoded",
@@ -445,14 +445,14 @@ async function Jr(M, L, r, x = {}) {
445
445
  expiresIn: t.expires_in,
446
446
  scope: t.scope ?? r ?? ""
447
447
  };
448
- return Tt.size >= Tn && Ki(), Tt.set(c, { result: l, expiresAt: Date.now() + (t.expires_in - 30) * 1e3 }), l;
448
+ return Tt.size >= Tn && Gi(), Tt.set(c, { result: l, expiresAt: Date.now() + (t.expires_in - 30) * 1e3 }), l;
449
449
  } catch (n) {
450
450
  if (console.warn("[auth7:token-exchange] error", n), w) throw n instanceof Error ? n : new Error("[auth7:token-exchange] unexpected error");
451
451
  return { accessToken: M, expiresIn: 900, scope: r ?? "" };
452
452
  }
453
453
  }
454
- const Gi = process.env.BACKEND_URL ?? "";
455
- function Yi(M) {
454
+ const Yi = process.env.BACKEND_URL ?? "";
455
+ function Zi(M) {
456
456
  const L = M.split(".");
457
457
  if (L.length < 2) return {};
458
458
  try {
@@ -461,8 +461,8 @@ function Yi(M) {
461
461
  return {};
462
462
  }
463
463
  }
464
- function Zi(M) {
465
- const L = Yi(M), r = (x) => typeof x == "string" ? x : "";
464
+ function Ji(M) {
465
+ const L = Zi(M), r = (x) => typeof x == "string" ? x : "";
466
466
  return {
467
467
  "X-Actor-UserID": r(L.sub),
468
468
  "X-Actor-Username": r(L.preferred_username),
@@ -493,8 +493,8 @@ async function fr(M, L, r, x, w, c = {}) {
493
493
  }
494
494
  return a.status === 204 || a.headers.get("content-length") === "0" ? { ok: !0 } : { ok: !0, data: await a.json() };
495
495
  }
496
- async function mo(M, L, r = {}) {
497
- const { backendUrl: x = Gi, ...w } = r, { accessToken: c } = await Jr(M, L, void 0, w), o = Zi(M);
496
+ async function bo(M, L, r = {}) {
497
+ const { backendUrl: x = Yi, ...w } = r, { accessToken: c } = await Jr(M, L, void 0, w), o = Ji(M);
498
498
  return {
499
499
  get: (a, n) => fr("GET", a, c, x, o, { query: n }),
500
500
  post: (a, n) => fr("POST", a, c, x, o, { body: n }),
@@ -502,7 +502,7 @@ async function mo(M, L, r = {}) {
502
502
  delete: (a) => fr("DELETE", a, c, x, o)
503
503
  };
504
504
  }
505
- const bo = {
505
+ const go = {
506
506
  ACCESS_TOKEN: "access_token",
507
507
  REFRESH_TOKEN: "refresh_token",
508
508
  ID_TOKEN: "id_token",
@@ -511,20 +511,20 @@ const bo = {
511
511
  PKCE_VERIFIER: "auth7_pkce_verifier",
512
512
  OAUTH_STATE: "auth7_oauth_state",
513
513
  OAUTH_RETURN_URL: "auth7_return_url"
514
- }, go = {
514
+ }, yo = {
515
515
  AUTHORIZE: "/oauth2/authorize",
516
516
  TOKEN: "/oauth2/token",
517
517
  REVOKE: "/oauth2/revoke",
518
518
  LOGOUT: "/oauth2/logout",
519
519
  USERINFO: "/oauth2/userinfo"
520
- }, yo = {
520
+ }, vo = {
521
521
  OPENID: "openid",
522
522
  PROFILE: "profile",
523
523
  EMAIL: "email",
524
524
  ROLES: "roles"
525
525
  };
526
526
  var Ze = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
527
- function Ji(M) {
527
+ function Qi(M) {
528
528
  return M && M.__esModule && Object.prototype.hasOwnProperty.call(M, "default") ? M.default : M;
529
529
  }
530
530
  var Hr = { exports: {} }, An = {}, Qr = {}, Cn = {};
@@ -1373,23 +1373,23 @@ var Bn = {};
1373
1373
  }
1374
1374
  }
1375
1375
  })(Bn);
1376
- var mr = {}, rn = Object.defineProperty, Qi = Object.getOwnPropertyDescriptor, es = Object.getOwnPropertyNames, ts = Object.prototype.hasOwnProperty, rs = (M, L) => {
1376
+ var mr = {}, rn = Object.defineProperty, es = Object.getOwnPropertyDescriptor, ts = Object.getOwnPropertyNames, rs = Object.prototype.hasOwnProperty, ns = (M, L) => {
1377
1377
  for (var r in L)
1378
1378
  rn(M, r, { get: L[r], enumerable: !0 });
1379
- }, ns = (M, L, r, x) => {
1379
+ }, is = (M, L, r, x) => {
1380
1380
  if (L && typeof L == "object" || typeof L == "function")
1381
- for (let w of es(L))
1382
- !ts.call(M, w) && w !== r && rn(M, w, { get: () => L[w], enumerable: !(x = Qi(L, w)) || x.enumerable });
1381
+ for (let w of ts(L))
1382
+ !rs.call(M, w) && w !== r && rn(M, w, { get: () => L[w], enumerable: !(x = es(L, w)) || x.enumerable });
1383
1383
  return M;
1384
- }, is = (M) => ns(rn({}, "__esModule", { value: !0 }), M), Fn = {};
1385
- rs(Fn, {
1386
- RequestCookies: () => hs,
1387
- ResponseCookies: () => ds,
1384
+ }, ss = (M) => is(rn({}, "__esModule", { value: !0 }), M), Fn = {};
1385
+ ns(Fn, {
1386
+ RequestCookies: () => ds,
1387
+ ResponseCookies: () => ps,
1388
1388
  parseCookie: () => nn,
1389
1389
  parseSetCookie: () => Un,
1390
1390
  stringifyCookie: () => rr
1391
1391
  });
1392
- var ss = is(Fn);
1392
+ var as = ss(Fn);
1393
1393
  function rr(M) {
1394
1394
  var L;
1395
1395
  const r = [
@@ -1449,28 +1449,28 @@ function Un(M) {
1449
1449
  ...o && { httpOnly: !0 },
1450
1450
  ...typeof a == "string" && { maxAge: Number(a) },
1451
1451
  path: n,
1452
- ...e && { sameSite: ls(e) },
1452
+ ...e && { sameSite: us(e) },
1453
1453
  ...t && { secure: !0 },
1454
- ...i && { priority: cs(i) },
1454
+ ...i && { priority: fs(i) },
1455
1455
  ...l && { partitioned: !0 }
1456
1456
  };
1457
- return as(s);
1457
+ return os(s);
1458
1458
  }
1459
- function as(M) {
1459
+ function os(M) {
1460
1460
  const L = {};
1461
1461
  for (const r in M)
1462
1462
  M[r] && (L[r] = M[r]);
1463
1463
  return L;
1464
1464
  }
1465
- var os = ["strict", "lax", "none"];
1466
- function ls(M) {
1467
- return M = M.toLowerCase(), os.includes(M) ? M : void 0;
1468
- }
1469
- var us = ["low", "medium", "high"];
1470
- function cs(M) {
1471
- return M = M.toLowerCase(), us.includes(M) ? M : void 0;
1465
+ var ls = ["strict", "lax", "none"];
1466
+ function us(M) {
1467
+ return M = M.toLowerCase(), ls.includes(M) ? M : void 0;
1472
1468
  }
1469
+ var cs = ["low", "medium", "high"];
1473
1470
  function fs(M) {
1471
+ return M = M.toLowerCase(), cs.includes(M) ? M : void 0;
1472
+ }
1473
+ function hs(M) {
1474
1474
  if (!M)
1475
1475
  return [];
1476
1476
  var L = [], r = 0, x, w, c, o, a;
@@ -1494,7 +1494,7 @@ function fs(M) {
1494
1494
  }
1495
1495
  return L;
1496
1496
  }
1497
- var hs = class {
1497
+ var ds = class {
1498
1498
  constructor(M) {
1499
1499
  this._parsed = /* @__PURE__ */ new Map(), this._headers = M;
1500
1500
  const L = M.get("cookie");
@@ -1560,12 +1560,12 @@ var hs = class {
1560
1560
  toString() {
1561
1561
  return [...this._parsed.values()].map((M) => `${M.name}=${encodeURIComponent(M.value)}`).join("; ");
1562
1562
  }
1563
- }, ds = class {
1563
+ }, ps = class {
1564
1564
  constructor(M) {
1565
1565
  this._parsed = /* @__PURE__ */ new Map();
1566
1566
  var L, r, x;
1567
1567
  this._headers = M;
1568
- const w = (x = (r = (L = M.getSetCookie) == null ? void 0 : L.call(M)) != null ? r : M.get("set-cookie")) != null ? x : [], c = Array.isArray(w) ? w : fs(w);
1568
+ const w = (x = (r = (L = M.getSetCookie) == null ? void 0 : L.call(M)) != null ? r : M.get("set-cookie")) != null ? x : [], c = Array.isArray(w) ? w : hs(w);
1569
1569
  for (const o of c) {
1570
1570
  const a = Un(o);
1571
1571
  a && this._parsed.set(a.name, a);
@@ -1597,7 +1597,7 @@ var hs = class {
1597
1597
  */
1598
1598
  set(...M) {
1599
1599
  const [L, r, x] = M.length === 1 ? [M[0].name, M[0].value, M[0]] : M, w = this._parsed;
1600
- return w.set(L, ms({ name: L, value: r, ...x })), ps(w, this._headers), this;
1600
+ return w.set(L, bs({ name: L, value: r, ...x })), ms(w, this._headers), this;
1601
1601
  }
1602
1602
  /**
1603
1603
  * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.
@@ -1613,14 +1613,14 @@ var hs = class {
1613
1613
  return [...this._parsed.values()].map(rr).join("; ");
1614
1614
  }
1615
1615
  };
1616
- function ps(M, L) {
1616
+ function ms(M, L) {
1617
1617
  L.delete("set-cookie");
1618
1618
  for (const [, r] of M) {
1619
1619
  const x = rr(r);
1620
1620
  L.append("set-cookie", x);
1621
1621
  }
1622
1622
  }
1623
- function ms(M = { name: "", value: "" }) {
1623
+ function bs(M = { name: "", value: "" }) {
1624
1624
  return typeof M.expires == "number" && (M.expires = new Date(M.expires)), M.maxAge && (M.expires = new Date(Date.now() + M.maxAge * 1e3)), (M.path === null || M.path === void 0) && (M.path = "/"), M;
1625
1625
  }
1626
1626
  (function(M) {
@@ -1644,7 +1644,7 @@ function ms(M = { name: "", value: "" }) {
1644
1644
  return r.stringifyCookie;
1645
1645
  }
1646
1646
  });
1647
- const r = ss;
1647
+ const r = as;
1648
1648
  })(mr);
1649
1649
  (function(M) {
1650
1650
  Object.defineProperty(M, "__esModule", {
@@ -1978,7 +1978,7 @@ var zr = {}, Wn = { exports: {} };
1978
1978
  var x = r(226);
1979
1979
  Wn.exports = x;
1980
1980
  })();
1981
- var bs = Wn.exports;
1981
+ var gs = Wn.exports;
1982
1982
  (function(M) {
1983
1983
  Object.defineProperty(M, "__esModule", {
1984
1984
  value: !0
@@ -2000,7 +2000,7 @@ var bs = Wn.exports;
2000
2000
  return c;
2001
2001
  }
2002
2002
  });
2003
- const r = /* @__PURE__ */ x(bs);
2003
+ const r = /* @__PURE__ */ x(gs);
2004
2004
  function x(a) {
2005
2005
  return a && a.__esModule ? a : {
2006
2006
  default: a
@@ -2246,7 +2246,7 @@ var $r = { exports: {} };
2246
2246
  ], s = "_rsc", f = "x-nextjs-stale-time", h = "x-nextjs-postponed", u = "x-nextjs-rewritten-path", p = "x-nextjs-rewritten-query", d = "x-nextjs-prerender", v = "x-nextjs-action-not-found", S = "x-nextjs-request-id", C = "x-nextjs-html-request-id", j = "x-action-revalidated";
2247
2247
  (typeof L.default == "function" || typeof L.default == "object" && L.default !== null) && typeof L.default.__esModule > "u" && (Object.defineProperty(L.default, "__esModule", { value: !0 }), Object.assign(L.default, L), M.exports = L.default);
2248
2248
  })($r, $r.exports);
2249
- var gs = $r.exports, Er = {};
2249
+ var ys = $r.exports, Er = {};
2250
2250
  (function(M) {
2251
2251
  Object.defineProperty(M, "__esModule", {
2252
2252
  value: !0
@@ -2307,7 +2307,7 @@ var gs = $r.exports, Er = {};
2307
2307
  return r.workUnitAsyncStorageInstance;
2308
2308
  }
2309
2309
  });
2310
- const r = Yn, x = gs, w = Er;
2310
+ const r = Yn, x = ys, w = Er;
2311
2311
  function c(h) {
2312
2312
  throw Object.defineProperty(new Error(`\`${h}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), "__NEXT_ERROR_CODE", {
2313
2313
  value: "E251",
@@ -2471,7 +2471,7 @@ var Zn = {}, Wr = { exports: {} };
2471
2471
  }
2472
2472
  (typeof L.default == "function" || typeof L.default == "object" && L.default !== null) && typeof L.default.__esModule > "u" && (Object.defineProperty(L.default, "__esModule", { value: !0 }), Object.assign(L.default, L), M.exports = L.default);
2473
2473
  })(Wr, Wr.exports);
2474
- var ys = Wr.exports, qr = { exports: {} };
2474
+ var vs = Wr.exports, qr = { exports: {} };
2475
2475
  (function(M, L) {
2476
2476
  Object.defineProperty(L, "__esModule", {
2477
2477
  value: !0
@@ -2758,7 +2758,7 @@ var ei = {};
2758
2758
  return $;
2759
2759
  }
2760
2760
  });
2761
- const r = /* @__PURE__ */ i(Mi), x = ys, w = an, c = sn, o = xr, a = on, n = Jn, e = Qn, t = ei, l = Er;
2761
+ const r = /* @__PURE__ */ i(Oi), x = vs, w = an, c = sn, o = xr, a = on, n = Jn, e = Qn, t = ei, l = Er;
2762
2762
  function i(Y) {
2763
2763
  return Y && Y.__esModule ? Y : {
2764
2764
  default: Y
@@ -3492,10 +3492,10 @@ var ii = {}, si = {};
3492
3492
  })(Hr, Hr.exports);
3493
3493
  var Dt = Hr.exports;
3494
3494
  const Mr = "bos7";
3495
- function vo(M) {
3495
+ function wo(M) {
3496
3496
  return M.nextUrl.pathname.toLowerCase().includes("/approve") ? "approve" : M.method === "GET" || M.method === "HEAD" ? "read" : "write";
3497
3497
  }
3498
- function vs(M) {
3498
+ function ws(M) {
3499
3499
  var r;
3500
3500
  const L = (r = M.cookies.get("access_token")) == null ? void 0 : r.value;
3501
3501
  if (!L) return [];
@@ -3508,19 +3508,19 @@ function vs(M) {
3508
3508
  return [];
3509
3509
  }
3510
3510
  }
3511
- function wo(M, L) {
3512
- const r = vs(M), x = `${Mr}:${L}`;
3511
+ function _o(M, L) {
3512
+ const r = ws(M), x = `${Mr}:${L}`;
3513
3513
  return (r.includes(`${Mr}:approve`) || L === "read" && r.includes(`${Mr}:write`) ? !0 : r.includes(x)) ? null : Dt.NextResponse.json(
3514
3514
  { error: { code: "INSUFFICIENT_SCOPE", message: `required scope: ${x}` } },
3515
3515
  { status: 403 }
3516
3516
  );
3517
3517
  }
3518
- function ws(M) {
3518
+ function _s(M) {
3519
3519
  const L = M.split(":")[0], r = L.split(".");
3520
3520
  if (!(r.length < 2 || L === "localhost"))
3521
3521
  return "." + r.slice(-2).join(".");
3522
3522
  }
3523
- async function _o(M, L) {
3523
+ async function xo(M, L) {
3524
3524
  var l;
3525
3525
  const r = (l = M.cookies.get("access_token")) == null ? void 0 : l.value;
3526
3526
  if (!r)
@@ -3575,7 +3575,7 @@ async function _o(M, L) {
3575
3575
  });
3576
3576
  const t = x.branch_id ?? c.branch_id;
3577
3577
  if (t) {
3578
- const s = (L.branchCookieDomain ?? ws)(M.headers.get("host") || "");
3578
+ const s = (L.branchCookieDomain ?? _s)(M.headers.get("host") || "");
3579
3579
  s && o.cookies.set("bos7_branch", t, {
3580
3580
  httpOnly: !1,
3581
3581
  secure: a,
@@ -3587,10 +3587,10 @@ async function _o(M, L) {
3587
3587
  }
3588
3588
  return o;
3589
3589
  }
3590
- function xo({ children: M }) {
3590
+ function So({ children: M }) {
3591
3591
  return /* @__PURE__ */ Ge("div", { className: "page", children: M });
3592
3592
  }
3593
- function So({
3593
+ function Eo({
3594
3594
  title: M,
3595
3595
  subtitle: L,
3596
3596
  titleExtra: r,
@@ -3612,31 +3612,31 @@ function So({
3612
3612
  w && /* @__PURE__ */ Ge("div", { className: "page__actions", children: w })
3613
3613
  ] });
3614
3614
  }
3615
- function Eo({ children: M }) {
3615
+ function ko({ children: M }) {
3616
3616
  return /* @__PURE__ */ Ge("div", { className: "page__body", children: M });
3617
3617
  }
3618
- function ko({
3618
+ function To({
3619
3619
  children: M,
3620
3620
  spread: L = !1
3621
3621
  }) {
3622
3622
  return /* @__PURE__ */ Ge("div", { className: `page__footer${L ? " page__footer--spread" : ""}`, children: M });
3623
3623
  }
3624
3624
  const ln = crypto, ai = (M) => M instanceof CryptoKey, Kt = new TextEncoder(), Vr = new TextDecoder();
3625
- function _s(...M) {
3625
+ function xs(...M) {
3626
3626
  const L = M.reduce((w, { length: c }) => w + c, 0), r = new Uint8Array(L);
3627
3627
  let x = 0;
3628
3628
  for (const w of M)
3629
3629
  r.set(w, x), x += w.length;
3630
3630
  return r;
3631
3631
  }
3632
- const xs = (M) => {
3632
+ const Ss = (M) => {
3633
3633
  let L = M;
3634
3634
  typeof L == "string" && (L = Kt.encode(L));
3635
3635
  const r = 32768, x = [];
3636
3636
  for (let w = 0; w < L.length; w += r)
3637
3637
  x.push(String.fromCharCode.apply(null, L.subarray(w, w + r)));
3638
3638
  return btoa(x.join(""));
3639
- }, Or = (M) => xs(M).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"), Ss = (M) => {
3639
+ }, Or = (M) => Ss(M).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"), Es = (M) => {
3640
3640
  const L = atob(M), r = new Uint8Array(L.length);
3641
3641
  for (let x = 0; x < L.length; x++)
3642
3642
  r[x] = L.charCodeAt(x);
@@ -3645,7 +3645,7 @@ const xs = (M) => {
3645
3645
  let L = M;
3646
3646
  L instanceof Uint8Array && (L = Vr.decode(L)), L = L.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
3647
3647
  try {
3648
- return Ss(L);
3648
+ return Es(L);
3649
3649
  } catch {
3650
3650
  throw new TypeError("The input to be decoded is not correctly encoded.");
3651
3651
  }
@@ -3657,42 +3657,42 @@ class vt extends Error {
3657
3657
  }
3658
3658
  }
3659
3659
  vt.code = "ERR_JOSE_GENERIC";
3660
- class Es extends vt {
3660
+ class ks extends vt {
3661
3661
  constructor(L, r, x = "unspecified", w = "unspecified") {
3662
3662
  super(L, { cause: { claim: x, reason: w, payload: r } }), this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED", this.claim = x, this.reason = w, this.payload = r;
3663
3663
  }
3664
3664
  }
3665
- Es.code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
3666
- class ks extends vt {
3665
+ ks.code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
3666
+ class Ts extends vt {
3667
3667
  constructor(L, r, x = "unspecified", w = "unspecified") {
3668
3668
  super(L, { cause: { claim: x, reason: w, payload: r } }), this.code = "ERR_JWT_EXPIRED", this.claim = x, this.reason = w, this.payload = r;
3669
3669
  }
3670
3670
  }
3671
- ks.code = "ERR_JWT_EXPIRED";
3672
- class Ts extends vt {
3671
+ Ts.code = "ERR_JWT_EXPIRED";
3672
+ class As extends vt {
3673
3673
  constructor() {
3674
3674
  super(...arguments), this.code = "ERR_JOSE_ALG_NOT_ALLOWED";
3675
3675
  }
3676
3676
  }
3677
- Ts.code = "ERR_JOSE_ALG_NOT_ALLOWED";
3677
+ As.code = "ERR_JOSE_ALG_NOT_ALLOWED";
3678
3678
  class Lt extends vt {
3679
3679
  constructor() {
3680
3680
  super(...arguments), this.code = "ERR_JOSE_NOT_SUPPORTED";
3681
3681
  }
3682
3682
  }
3683
3683
  Lt.code = "ERR_JOSE_NOT_SUPPORTED";
3684
- class As extends vt {
3684
+ class Cs extends vt {
3685
3685
  constructor(L = "decryption operation failed", r) {
3686
3686
  super(L, r), this.code = "ERR_JWE_DECRYPTION_FAILED";
3687
3687
  }
3688
3688
  }
3689
- As.code = "ERR_JWE_DECRYPTION_FAILED";
3690
- class Cs extends vt {
3689
+ Cs.code = "ERR_JWE_DECRYPTION_FAILED";
3690
+ class Rs extends vt {
3691
3691
  constructor() {
3692
3692
  super(...arguments), this.code = "ERR_JWE_INVALID";
3693
3693
  }
3694
3694
  }
3695
- Cs.code = "ERR_JWE_INVALID";
3695
+ Rs.code = "ERR_JWE_INVALID";
3696
3696
  class Vt extends vt {
3697
3697
  constructor() {
3698
3698
  super(...arguments), this.code = "ERR_JWS_INVALID";
@@ -3705,42 +3705,42 @@ class oi extends vt {
3705
3705
  }
3706
3706
  }
3707
3707
  oi.code = "ERR_JWT_INVALID";
3708
- class Rs extends vt {
3708
+ class Ms extends vt {
3709
3709
  constructor() {
3710
3710
  super(...arguments), this.code = "ERR_JWK_INVALID";
3711
3711
  }
3712
3712
  }
3713
- Rs.code = "ERR_JWK_INVALID";
3714
- class Ms extends vt {
3713
+ Ms.code = "ERR_JWK_INVALID";
3714
+ class Os extends vt {
3715
3715
  constructor() {
3716
3716
  super(...arguments), this.code = "ERR_JWKS_INVALID";
3717
3717
  }
3718
3718
  }
3719
- Ms.code = "ERR_JWKS_INVALID";
3720
- class Os extends vt {
3719
+ Os.code = "ERR_JWKS_INVALID";
3720
+ class Is extends vt {
3721
3721
  constructor(L = "no applicable key found in the JSON Web Key Set", r) {
3722
3722
  super(L, r), this.code = "ERR_JWKS_NO_MATCHING_KEY";
3723
3723
  }
3724
3724
  }
3725
- Os.code = "ERR_JWKS_NO_MATCHING_KEY";
3726
- class Is extends vt {
3725
+ Is.code = "ERR_JWKS_NO_MATCHING_KEY";
3726
+ class Ps extends vt {
3727
3727
  constructor(L = "multiple matching keys found in the JSON Web Key Set", r) {
3728
3728
  super(L, r), this.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
3729
3729
  }
3730
3730
  }
3731
- Is.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
3732
- class Ps extends vt {
3731
+ Ps.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
3732
+ class Ns extends vt {
3733
3733
  constructor(L = "request timed out", r) {
3734
3734
  super(L, r), this.code = "ERR_JWKS_TIMEOUT";
3735
3735
  }
3736
3736
  }
3737
- Ps.code = "ERR_JWKS_TIMEOUT";
3738
- class Ns extends vt {
3737
+ Ns.code = "ERR_JWKS_TIMEOUT";
3738
+ class js extends vt {
3739
3739
  constructor(L = "signature verification failed", r) {
3740
3740
  super(L, r), this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
3741
3741
  }
3742
3742
  }
3743
- Ns.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
3743
+ js.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
3744
3744
  function St(M, L = "algorithm.name") {
3745
3745
  return new TypeError(`CryptoKey does not support this operation, its ${L} must be ${M}`);
3746
3746
  }
@@ -3750,7 +3750,7 @@ function Zt(M, L) {
3750
3750
  function Ir(M) {
3751
3751
  return parseInt(M.name.slice(4), 10);
3752
3752
  }
3753
- function js(M) {
3753
+ function Ds(M) {
3754
3754
  switch (M) {
3755
3755
  case "ES256":
3756
3756
  return "P-256";
@@ -3762,7 +3762,7 @@ function js(M) {
3762
3762
  throw new Error("unreachable");
3763
3763
  }
3764
3764
  }
3765
- function Ds(M, L) {
3765
+ function Ls(M, L) {
3766
3766
  if (L.length && !L.some((r) => M.usages.includes(r))) {
3767
3767
  let r = "CryptoKey does not support this operation, its usages must include ";
3768
3768
  if (L.length > 2) {
@@ -3772,7 +3772,7 @@ function Ds(M, L) {
3772
3772
  throw new TypeError(r);
3773
3773
  }
3774
3774
  }
3775
- function Ls(M, L, ...r) {
3775
+ function Bs(M, L, ...r) {
3776
3776
  switch (L) {
3777
3777
  case "HS256":
3778
3778
  case "HS384":
@@ -3819,7 +3819,7 @@ function Ls(M, L, ...r) {
3819
3819
  case "ES512": {
3820
3820
  if (!Zt(M.algorithm, "ECDSA"))
3821
3821
  throw St("ECDSA");
3822
- const x = js(L);
3822
+ const x = Ds(L);
3823
3823
  if (M.algorithm.namedCurve !== x)
3824
3824
  throw St(x, "algorithm.namedCurve");
3825
3825
  break;
@@ -3827,7 +3827,7 @@ function Ls(M, L, ...r) {
3827
3827
  default:
3828
3828
  throw new TypeError("CryptoKey does not support this operation");
3829
3829
  }
3830
- Ds(M, r);
3830
+ Ls(M, r);
3831
3831
  }
3832
3832
  function li(M, L, ...r) {
3833
3833
  var x;
@@ -3841,7 +3841,7 @@ const yn = (M, ...L) => li("Key must be ", M, ...L);
3841
3841
  function ui(M, L, ...r) {
3842
3842
  return li(`Key for the ${M} algorithm must be `, L, ...r);
3843
3843
  }
3844
- const ci = (M) => ai(M) ? !0 : (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject", br = ["CryptoKey"], Bs = (...M) => {
3844
+ const ci = (M) => ai(M) ? !0 : (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject", br = ["CryptoKey"], Fs = (...M) => {
3845
3845
  const L = M.filter(Boolean);
3846
3846
  if (L.length === 0 || L.length === 1)
3847
3847
  return !0;
@@ -3860,11 +3860,11 @@ const ci = (M) => ai(M) ? !0 : (M == null ? void 0 : M[Symbol.toStringTag]) ===
3860
3860
  }
3861
3861
  return !0;
3862
3862
  };
3863
- function Fs(M) {
3863
+ function Us(M) {
3864
3864
  return typeof M == "object" && M !== null;
3865
3865
  }
3866
3866
  function fi(M) {
3867
- if (!Fs(M) || Object.prototype.toString.call(M) !== "[object Object]")
3867
+ if (!Us(M) || Object.prototype.toString.call(M) !== "[object Object]")
3868
3868
  return !1;
3869
3869
  if (Object.getPrototypeOf(M) === null)
3870
3870
  return !0;
@@ -3873,7 +3873,7 @@ function fi(M) {
3873
3873
  L = Object.getPrototypeOf(L);
3874
3874
  return Object.getPrototypeOf(M) === L;
3875
3875
  }
3876
- const Us = (M, L) => {
3876
+ const Hs = (M, L) => {
3877
3877
  if (M.startsWith("RS") || M.startsWith("PS")) {
3878
3878
  const { modulusLength: r } = L.algorithm;
3879
3879
  if (typeof r != "number" || r < 2048)
@@ -3883,16 +3883,16 @@ const Us = (M, L) => {
3883
3883
  function nr(M) {
3884
3884
  return fi(M) && typeof M.kty == "string";
3885
3885
  }
3886
- function Hs(M) {
3886
+ function zs(M) {
3887
3887
  return M.kty !== "oct" && typeof M.d == "string";
3888
3888
  }
3889
- function zs(M) {
3889
+ function $s(M) {
3890
3890
  return M.kty !== "oct" && typeof M.d > "u";
3891
3891
  }
3892
- function $s(M) {
3892
+ function Ws(M) {
3893
3893
  return nr(M) && M.kty === "oct" && typeof M.k == "string";
3894
3894
  }
3895
- function Ws(M) {
3895
+ function qs(M) {
3896
3896
  let L, r;
3897
3897
  switch (M.kty) {
3898
3898
  case "RSA": {
@@ -3967,10 +3967,10 @@ function Ws(M) {
3967
3967
  }
3968
3968
  return { algorithm: L, keyUsages: r };
3969
3969
  }
3970
- const qs = async (M) => {
3970
+ const Vs = async (M) => {
3971
3971
  if (!M.alg)
3972
3972
  throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
3973
- const { algorithm: L, keyUsages: r } = Ws(M), x = [
3973
+ const { algorithm: L, keyUsages: r } = qs(M), x = [
3974
3974
  L,
3975
3975
  M.ext ?? !1,
3976
3976
  M.key_ops ?? r
@@ -3982,21 +3982,21 @@ const di = (M) => (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject",
3982
3982
  let c = M.get(L);
3983
3983
  if (c != null && c[x])
3984
3984
  return c[x];
3985
- const o = await qs({ ...r, alg: x });
3985
+ const o = await Vs({ ...r, alg: x });
3986
3986
  return w && Object.freeze(L), c ? c[x] = o : M.set(L, { [x]: o }), o;
3987
- }, Vs = (M, L) => {
3987
+ }, Xs = (M, L) => {
3988
3988
  if (di(M)) {
3989
3989
  let r = M.export({ format: "jwk" });
3990
3990
  return delete r.d, delete r.dp, delete r.dq, delete r.p, delete r.q, delete r.qi, r.k ? hi(r.k) : (Wt || (Wt = /* @__PURE__ */ new WeakMap()), gr(Wt, M, r, L));
3991
3991
  }
3992
3992
  return nr(M) ? M.k ? un(M.k) : (Wt || (Wt = /* @__PURE__ */ new WeakMap()), gr(Wt, M, M, L, !0)) : M;
3993
- }, Xs = (M, L) => {
3993
+ }, Ks = (M, L) => {
3994
3994
  if (di(M)) {
3995
3995
  let r = M.export({ format: "jwk" });
3996
3996
  return r.k ? hi(r.k) : ($t || ($t = /* @__PURE__ */ new WeakMap()), gr($t, M, r, L));
3997
3997
  }
3998
3998
  return nr(M) ? M.k ? un(M.k) : ($t || ($t = /* @__PURE__ */ new WeakMap()), gr($t, M, M, L, !0)) : M;
3999
- }, Ks = { normalizePublicKey: Vs, normalizePrivateKey: Xs }, Xt = (M) => M == null ? void 0 : M[Symbol.toStringTag], Xr = (M, L, r) => {
3999
+ }, Gs = { normalizePublicKey: Xs, normalizePrivateKey: Ks }, Xt = (M) => M == null ? void 0 : M[Symbol.toStringTag], Xr = (M, L, r) => {
4000
4000
  var x, w;
4001
4001
  if (L.use !== void 0 && L.use !== "sig")
4002
4002
  throw new TypeError("Invalid key for this operation, when present its use must be sig");
@@ -4005,10 +4005,10 @@ const di = (M) => (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject",
4005
4005
  if (L.alg !== void 0 && L.alg !== M)
4006
4006
  throw new TypeError(`Invalid key for this operation, when present its alg must be ${M}`);
4007
4007
  return !0;
4008
- }, Gs = (M, L, r, x) => {
4008
+ }, Ys = (M, L, r, x) => {
4009
4009
  if (!(L instanceof Uint8Array)) {
4010
4010
  if (x && nr(L)) {
4011
- if ($s(L) && Xr(M, L, r))
4011
+ if (Ws(L) && Xr(M, L, r))
4012
4012
  return;
4013
4013
  throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present');
4014
4014
  }
@@ -4017,15 +4017,15 @@ const di = (M) => (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject",
4017
4017
  if (L.type !== "secret")
4018
4018
  throw new TypeError(`${Xt(L)} instances for symmetric algorithms must be of type "secret"`);
4019
4019
  }
4020
- }, Ys = (M, L, r, x) => {
4020
+ }, Zs = (M, L, r, x) => {
4021
4021
  if (x && nr(L))
4022
4022
  switch (r) {
4023
4023
  case "sign":
4024
- if (Hs(L) && Xr(M, L, r))
4024
+ if (zs(L) && Xr(M, L, r))
4025
4025
  return;
4026
4026
  throw new TypeError("JSON Web Key for this operation be a private JWK");
4027
4027
  case "verify":
4028
- if (zs(L) && Xr(M, L, r))
4028
+ if ($s(L) && Xr(M, L, r))
4029
4029
  return;
4030
4030
  throw new TypeError("JSON Web Key for this operation be a public JWK");
4031
4031
  }
@@ -4043,11 +4043,11 @@ const di = (M) => (M == null ? void 0 : M[Symbol.toStringTag]) === "KeyObject",
4043
4043
  throw new TypeError(`${Xt(L)} instances for asymmetric algorithm encryption must be of type "public"`);
4044
4044
  };
4045
4045
  function pi(M, L, r, x) {
4046
- L.startsWith("HS") || L === "dir" || L.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(L) ? Gs(L, r, x, M) : Ys(L, r, x, M);
4046
+ L.startsWith("HS") || L === "dir" || L.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(L) ? Ys(L, r, x, M) : Zs(L, r, x, M);
4047
4047
  }
4048
4048
  pi.bind(void 0, !1);
4049
- const Zs = pi.bind(void 0, !0);
4050
- function Js(M, L, r, x, w) {
4049
+ const Js = pi.bind(void 0, !0);
4050
+ function Qs(M, L, r, x, w) {
4051
4051
  if (w.crit !== void 0 && (x == null ? void 0 : x.crit) === void 0)
4052
4052
  throw new M('"crit" (Critical) Header Parameter MUST be integrity protected');
4053
4053
  if (!x || x.crit === void 0)
@@ -4066,7 +4066,7 @@ function Js(M, L, r, x, w) {
4066
4066
  }
4067
4067
  return new Set(x.crit);
4068
4068
  }
4069
- function Qs(M, L) {
4069
+ function ea(M, L) {
4070
4070
  const r = `SHA-${M.slice(-3)}`;
4071
4071
  switch (M) {
4072
4072
  case "HS256":
@@ -4093,9 +4093,9 @@ function Qs(M, L) {
4093
4093
  throw new Lt(`alg ${M} is not supported either by JOSE or your javascript runtime`);
4094
4094
  }
4095
4095
  }
4096
- async function ea(M, L, r) {
4097
- if (L = await Ks.normalizePrivateKey(L, M), ai(L))
4098
- return Ls(L, M, r), L;
4096
+ async function ta(M, L, r) {
4097
+ if (L = await Gs.normalizePrivateKey(L, M), ai(L))
4098
+ return Bs(L, M, r), L;
4099
4099
  if (L instanceof Uint8Array) {
4100
4100
  if (!M.startsWith("HS"))
4101
4101
  throw new TypeError(yn(L, ...br));
@@ -4103,8 +4103,8 @@ async function ea(M, L, r) {
4103
4103
  }
4104
4104
  throw new TypeError(yn(L, ...br, "Uint8Array", "JSON Web Key"));
4105
4105
  }
4106
- const Nt = (M) => Math.floor(M.getTime() / 1e3), mi = 60, bi = mi * 60, cn = bi * 24, ta = cn * 7, ra = cn * 365.25, na = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, Pr = (M) => {
4107
- const L = na.exec(M);
4106
+ const Nt = (M) => Math.floor(M.getTime() / 1e3), mi = 60, bi = mi * 60, cn = bi * 24, ra = cn * 7, na = cn * 365.25, ia = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, Pr = (M) => {
4107
+ const L = ia.exec(M);
4108
4108
  if (!L || L[4] && L[1])
4109
4109
  throw new TypeError("Invalid time period format");
4110
4110
  const r = parseFloat(L[2]), x = L[3].toLowerCase();
@@ -4139,20 +4139,20 @@ const Nt = (M) => Math.floor(M.getTime() / 1e3), mi = 60, bi = mi * 60, cn = bi
4139
4139
  case "week":
4140
4140
  case "weeks":
4141
4141
  case "w":
4142
- w = Math.round(r * ta);
4142
+ w = Math.round(r * ra);
4143
4143
  break;
4144
4144
  default:
4145
- w = Math.round(r * ra);
4145
+ w = Math.round(r * na);
4146
4146
  break;
4147
4147
  }
4148
4148
  return L[1] === "-" || L[4] === "ago" ? -w : w;
4149
- }, ia = async (M, L, r) => {
4150
- const x = await ea(M, L, "sign");
4151
- Us(M, x);
4152
- const w = await ln.subtle.sign(Qs(M, x.algorithm), x, r);
4149
+ }, sa = async (M, L, r) => {
4150
+ const x = await ta(M, L, "sign");
4151
+ Hs(M, x);
4152
+ const w = await ln.subtle.sign(ea(M, x.algorithm), x, r);
4153
4153
  return new Uint8Array(w);
4154
4154
  };
4155
- class sa {
4155
+ class aa {
4156
4156
  constructor(L) {
4157
4157
  if (!(L instanceof Uint8Array))
4158
4158
  throw new TypeError("payload must be an instance of Uint8Array");
@@ -4171,33 +4171,33 @@ class sa {
4171
4171
  async sign(L, r) {
4172
4172
  if (!this._protectedHeader && !this._unprotectedHeader)
4173
4173
  throw new Vt("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
4174
- if (!Bs(this._protectedHeader, this._unprotectedHeader))
4174
+ if (!Fs(this._protectedHeader, this._unprotectedHeader))
4175
4175
  throw new Vt("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
4176
4176
  const x = {
4177
4177
  ...this._protectedHeader,
4178
4178
  ...this._unprotectedHeader
4179
- }, w = Js(Vt, /* @__PURE__ */ new Map([["b64", !0]]), r == null ? void 0 : r.crit, this._protectedHeader, x);
4179
+ }, w = Qs(Vt, /* @__PURE__ */ new Map([["b64", !0]]), r == null ? void 0 : r.crit, this._protectedHeader, x);
4180
4180
  let c = !0;
4181
4181
  if (w.has("b64") && (c = this._protectedHeader.b64, typeof c != "boolean"))
4182
4182
  throw new Vt('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
4183
4183
  const { alg: o } = x;
4184
4184
  if (typeof o != "string" || !o)
4185
4185
  throw new Vt('JWS "alg" (Algorithm) Header Parameter missing or invalid');
4186
- Zs(o, L, "sign");
4186
+ Js(o, L, "sign");
4187
4187
  let a = this._payload;
4188
4188
  c && (a = Kt.encode(Or(a)));
4189
4189
  let n;
4190
4190
  this._protectedHeader ? n = Kt.encode(Or(JSON.stringify(this._protectedHeader))) : n = Kt.encode("");
4191
- const e = _s(n, Kt.encode("."), a), t = await ia(o, L, e), l = {
4191
+ const e = xs(n, Kt.encode("."), a), t = await sa(o, L, e), l = {
4192
4192
  signature: Or(t),
4193
4193
  payload: ""
4194
4194
  };
4195
4195
  return c && (l.payload = Vr.decode(a)), this._unprotectedHeader && (l.header = this._unprotectedHeader), this._protectedHeader && (l.protected = Vr.decode(n)), l;
4196
4196
  }
4197
4197
  }
4198
- class aa {
4198
+ class oa {
4199
4199
  constructor(L) {
4200
- this._flattened = new sa(L);
4200
+ this._flattened = new aa(L);
4201
4201
  }
4202
4202
  setProtectedHeader(L) {
4203
4203
  return this._flattened.setProtectedHeader(L), this;
@@ -4214,7 +4214,7 @@ function jt(M, L) {
4214
4214
  throw new TypeError(`Invalid ${M} input`);
4215
4215
  return L;
4216
4216
  }
4217
- class oa {
4217
+ class la {
4218
4218
  constructor(L = {}) {
4219
4219
  if (!fi(L))
4220
4220
  throw new TypeError("JWT Claims Set MUST be an object");
@@ -4245,29 +4245,29 @@ class oa {
4245
4245
  } : this._payload = { ...this._payload, iat: jt("setIssuedAt", L) }, this;
4246
4246
  }
4247
4247
  }
4248
- class gi extends oa {
4248
+ class gi extends la {
4249
4249
  setProtectedHeader(L) {
4250
4250
  return this._protectedHeader = L, this;
4251
4251
  }
4252
4252
  async sign(L, r) {
4253
4253
  var w;
4254
- const x = new aa(Kt.encode(JSON.stringify(this._payload)));
4254
+ const x = new oa(Kt.encode(JSON.stringify(this._payload)));
4255
4255
  if (x.setProtectedHeader(this._protectedHeader), Array.isArray((w = this._protectedHeader) == null ? void 0 : w.crit) && this._protectedHeader.crit.includes("b64") && this._protectedHeader.b64 === !1)
4256
4256
  throw new oi("JWTs MUST NOT use unencoded payload");
4257
4257
  return x.sign(L, r);
4258
4258
  }
4259
4259
  }
4260
- function la() {
4260
+ function ua() {
4261
4261
  const M = process.env.BACKEND_URL;
4262
4262
  if (!M) throw new Error("[bos7] BACKEND_URL env var is required");
4263
4263
  return M;
4264
4264
  }
4265
- function ua() {
4265
+ function ca() {
4266
4266
  return process.env.BACKEND_JWT_SECRET ?? "";
4267
4267
  }
4268
4268
  const vn = "00000000-0000-0000-0000-000000000001";
4269
- async function ca() {
4270
- const M = ua();
4269
+ async function fa() {
4270
+ const M = ca();
4271
4271
  if (!M)
4272
4272
  throw new Error("[bos7] BACKEND_JWT_SECRET env var is required when accessToken is not provided");
4273
4273
  const L = new TextEncoder().encode(M);
@@ -4278,8 +4278,8 @@ async function ca() {
4278
4278
  }
4279
4279
  async function kr(M, L, r = {}) {
4280
4280
  var n, e;
4281
- const x = r.accessToken ?? await ca();
4282
- let c = `${la()}${L}`;
4281
+ const x = r.accessToken ?? await fa();
4282
+ let c = `${ua()}${L}`;
4283
4283
  r.query && Object.keys(r.query).length > 0 && (c += "?" + new URLSearchParams(r.query).toString());
4284
4284
  const o = await fetch(c, {
4285
4285
  method: M,
@@ -4298,16 +4298,16 @@ async function kr(M, L, r = {}) {
4298
4298
  }
4299
4299
  return o.status === 204 || o.headers.get("content-length") === "0" ? { ok: !0 } : { ok: !0, data: await o.json() };
4300
4300
  }
4301
- function To(M, L, r) {
4301
+ function Ao(M, L, r) {
4302
4302
  return kr("GET", M, { query: L, accessToken: r });
4303
4303
  }
4304
- function Ao(M, L, r) {
4304
+ function Co(M, L, r) {
4305
4305
  return kr("POST", M, { body: L, accessToken: r });
4306
4306
  }
4307
- function Co(M, L, r) {
4307
+ function Ro(M, L, r) {
4308
4308
  return kr("PUT", M, { body: L, accessToken: r });
4309
4309
  }
4310
- function Ro(M, L) {
4310
+ function Mo(M, L) {
4311
4311
  return kr("DELETE", M, { accessToken: L });
4312
4312
  }
4313
4313
  function hr(M) {
@@ -27327,8 +27327,8 @@ use chrome, FireFox or Internet Explorer 11`);
27327
27327
  }, {}] }, {}, [15])(15);
27328
27328
  });
27329
27329
  })(yi);
27330
- var fa = yi.exports;
27331
- const ha = /* @__PURE__ */ Ji(fa);
27330
+ var ha = yi.exports;
27331
+ const da = /* @__PURE__ */ Qi(ha);
27332
27332
  function pr(M, L) {
27333
27333
  return M == null ? "" : L === "currency" ? typeof M == "number" ? M : Number(M) || 0 : L === "date" && typeof M == "string" ? M.slice(0, 10) : M;
27334
27334
  }
@@ -27340,10 +27340,10 @@ const jr = {
27340
27340
  left: { style: "thin", color: { argb: "FFD0D0D0" } },
27341
27341
  bottom: { style: "thin", color: { argb: "FFD0D0D0" } },
27342
27342
  right: { style: "thin", color: { argb: "FFD0D0D0" } }
27343
- }, da = { type: "pattern", pattern: "solid", fgColor: { argb: "FF1F61FE" } }, pa = { type: "pattern", pattern: "solid", fgColor: { argb: "FFE8F0FE" } };
27344
- async function Mo(M, L, r, x) {
27343
+ }, pa = { type: "pattern", pattern: "solid", fgColor: { argb: "FF1F61FE" } }, ma = { type: "pattern", pattern: "solid", fgColor: { argb: "FFE8F0FE" } };
27344
+ async function Oo(M, L, r, x) {
27345
27345
  var h, u;
27346
- const w = new ha.Workbook(), c = w.addWorksheet(r.slice(0, 31)), o = L.length;
27346
+ const w = new da.Workbook(), c = w.addWorksheet(r.slice(0, 31)), o = L.length;
27347
27347
  let a = 1;
27348
27348
  const n = x == null ? void 0 : x.meta;
27349
27349
  if (n != null && n.title) {
@@ -27362,7 +27362,7 @@ async function Mo(M, L, r, x) {
27362
27362
  const e = a, t = c.getRow(e);
27363
27363
  if (L.forEach((p, d) => {
27364
27364
  const v = t.getCell(d + 1);
27365
- v.value = p.title, v.font = { bold: !0, color: { argb: "FFFFFFFF" } }, v.fill = da, v.border = jr, v.alignment = { horizontal: Nr(p), vertical: "middle" };
27365
+ v.value = p.title, v.font = { bold: !0, color: { argb: "FFFFFFFF" } }, v.fill = pa, v.border = jr, v.alignment = { horizontal: Nr(p), vertical: "middle" };
27366
27366
  }), t.height = 20, a += 1, M.forEach((p) => {
27367
27367
  const d = c.getRow(a);
27368
27368
  L.forEach((v, S) => {
@@ -27374,7 +27374,7 @@ async function Mo(M, L, r, x) {
27374
27374
  let v = !1;
27375
27375
  L.forEach((S, C) => {
27376
27376
  const j = p.getCell(C + 1);
27377
- j.font = { bold: !0 }, j.fill = pa, j.border = { ...jr, top: { style: "medium", color: { argb: "FF1F61FE" } } }, j.alignment = { horizontal: Nr(S), vertical: "middle" }, S.field in x.totals ? (j.value = pr(x.totals[S.field], S.displayFormat), S.displayFormat === "currency" && (j.numFmt = "#,##0.00")) : v || (j.value = d, v = !0);
27377
+ j.font = { bold: !0 }, j.fill = ma, j.border = { ...jr, top: { style: "medium", color: { argb: "FF1F61FE" } } }, j.alignment = { horizontal: Nr(S), vertical: "middle" }, S.field in x.totals ? (j.value = pr(x.totals[S.field], S.displayFormat), S.displayFormat === "currency" && (j.numFmt = "#,##0.00")) : v || (j.value = d, v = !0);
27378
27378
  }), a += 1;
27379
27379
  }
27380
27380
  L.forEach((p, d) => {
@@ -27387,14 +27387,14 @@ async function Mo(M, L, r, x) {
27387
27387
  const l = await w.xlsx.writeBuffer(), i = new Blob([l], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }), s = URL.createObjectURL(i), f = document.createElement("a");
27388
27388
  f.href = s, f.download = `${r}.xlsx`, document.body.appendChild(f), f.click(), f.remove(), URL.revokeObjectURL(s);
27389
27389
  }
27390
- function ma(M, L) {
27390
+ function ba(M, L) {
27391
27391
  return String(pr(M, L));
27392
27392
  }
27393
- async function Oo(M, L, r) {
27394
- const { default: x } = await import("./jspdf.es.min-Ds3Fsl60.js").then((o) => o.j), { default: w } = await import("./jspdf.plugin.autotable-DcntYaes.js"), c = new x({ orientation: "landscape" });
27393
+ async function Io(M, L, r) {
27394
+ const { default: x } = await import("./jspdf.es.min-CnDMxfNp.js").then((o) => o.j), { default: w } = await import("./jspdf.plugin.autotable-DcntYaes.js"), c = new x({ orientation: "landscape" });
27395
27395
  c.setFontSize(14), c.text(r, 14, 15), c.setFontSize(10), w(c, {
27396
27396
  head: [L.map((o) => o.title)],
27397
- body: M.map((o) => L.map((a) => ma(o[a.field], a.displayFormat))),
27397
+ body: M.map((o) => L.map((a) => ba(o[a.field], a.displayFormat))),
27398
27398
  startY: 22,
27399
27399
  styles: { fontSize: 8 },
27400
27400
  headStyles: { fillColor: [31, 97, 254] }
@@ -27402,7 +27402,7 @@ async function Oo(M, L, r) {
27402
27402
  }), c.save(`${r}.pdf`);
27403
27403
  }
27404
27404
  const vi = "";
27405
- async function Io(M, L) {
27405
+ async function Po(M, L) {
27406
27406
  const r = await fetch(`${vi}/api/${M}`, {
27407
27407
  method: "POST",
27408
27408
  headers: { "Content-Type": "application/json" },
@@ -27412,7 +27412,7 @@ async function Io(M, L) {
27412
27412
  throw new Error(`queryList(${M}) gagal: ${r.status} ${r.statusText}`);
27413
27413
  return r.json();
27414
27414
  }
27415
- async function Po(M, L, r) {
27415
+ async function No(M, L, r) {
27416
27416
  const x = { payload: r }, w = await fetch(`${vi}/api/${M}/service/${L}`, {
27417
27417
  method: "POST",
27418
27418
  headers: { "Content-Type": "application/json" },
@@ -27422,7 +27422,7 @@ async function Po(M, L, r) {
27422
27422
  throw new Error(`callService(${M}, ${L}) gagal: ${w.status} ${w.statusText}`);
27423
27423
  return w.json();
27424
27424
  }
27425
- class ba {
27425
+ class ga {
27426
27426
  constructor(L) {
27427
27427
  this.conn = null, this.subscriptions = /* @__PURE__ */ new Map(), this.config = {
27428
27428
  name: "bos7-client",
@@ -27458,17 +27458,17 @@ class ba {
27458
27458
  }
27459
27459
  }
27460
27460
  let er = null;
27461
- async function ga(M) {
27462
- const L = new ba(M);
27461
+ async function ya(M) {
27462
+ const L = new ga(M);
27463
27463
  return await L.connect(), er = L, L;
27464
27464
  }
27465
- function No() {
27465
+ function jo() {
27466
27466
  return er;
27467
27467
  }
27468
- function jo() {
27468
+ function Do() {
27469
27469
  return (er == null ? void 0 : er.isConnected()) ?? !1;
27470
27470
  }
27471
- class ya {
27471
+ class va {
27472
27472
  constructor(L) {
27473
27473
  this.handlers = /* @__PURE__ */ new Map(), this.subjects = /* @__PURE__ */ new Map(), this.client = L;
27474
27474
  }
@@ -27491,17 +27491,17 @@ class ya {
27491
27491
  }
27492
27492
  }
27493
27493
  let yr = null;
27494
- async function Do(M) {
27495
- const L = await ga({
27494
+ async function Lo(M) {
27495
+ const L = await ya({
27496
27496
  url: M.url,
27497
27497
  name: M.name ?? "bos7-event-bus"
27498
27498
  });
27499
- return yr = new ya(L), yr;
27499
+ return yr = new va(L), yr;
27500
27500
  }
27501
- function Lo() {
27501
+ function Bo() {
27502
27502
  return yr;
27503
27503
  }
27504
- function Bo() {
27504
+ function Fo() {
27505
27505
  return yr;
27506
27506
  }
27507
27507
  const wi = "https://workflow.bos7.local";
@@ -27509,10 +27509,10 @@ function fn(M, L) {
27509
27509
  const r = window.open(M, L);
27510
27510
  r == null || r.focus();
27511
27511
  }
27512
- function Fo(M) {
27512
+ function Uo(M) {
27513
27513
  fn(M, "bos7PortalNotificationsWindow");
27514
27514
  }
27515
- function va(M, L = wi) {
27515
+ function wa(M, L = wi) {
27516
27516
  if (!M) return !1;
27517
27517
  try {
27518
27518
  const r = new URL(M, window.location.origin), x = new URL(L).origin;
@@ -27521,7 +27521,7 @@ function va(M, L = wi) {
27521
27521
  return !1;
27522
27522
  }
27523
27523
  }
27524
- function Uo(M, L, r = wi) {
27524
+ function Ho(M, L, r = wi) {
27525
27525
  if (!M) return;
27526
27526
  if (M.startsWith("/inbox"))
27527
27527
  try {
@@ -27536,7 +27536,7 @@ function Uo(M, L, r = wi) {
27536
27536
  L(M);
27537
27537
  return;
27538
27538
  }
27539
- if (!va(M, r)) {
27539
+ if (!wa(M, r)) {
27540
27540
  try {
27541
27541
  const w = new URL(M);
27542
27542
  if (w.origin === window.location.origin) {
@@ -27550,7 +27550,7 @@ function Uo(M, L, r = wi) {
27550
27550
  window.open(M, "_blank", "noopener,noreferrer");
27551
27551
  }
27552
27552
  }
27553
- const Ho = {
27553
+ const zo = {
27554
27554
  labelSpacing: "6px",
27555
27555
  labelFontSize: "12px",
27556
27556
  labelFontWeight: 500,
@@ -27565,7 +27565,7 @@ const Ho = {
27565
27565
  columnGap: "16px",
27566
27566
  readonlyBackground: "#f4f4f4",
27567
27567
  readonlyCursor: "default"
27568
- }, zo = {
27568
+ }, $o = {
27569
27569
  labelSpacing: "--ui7-form-label-gap",
27570
27570
  labelFontSize: "--ui7-form-label-font-size",
27571
27571
  labelFontWeight: "--ui7-form-label-font-weight",
@@ -27598,7 +27598,7 @@ const Ho = {
27598
27598
  controlReadonly: "ui7-form-control--readonly",
27599
27599
  helper: "ui7-form-helper",
27600
27600
  readonlyValue: "ui7-form-readonly-value"
27601
- }, $o = {
27601
+ }, Wo = {
27602
27602
  compact: {
27603
27603
  controlHeight: "2rem",
27604
27604
  rowGap: "1rem",
@@ -27612,13 +27612,13 @@ const Ho = {
27612
27612
  columnGap: "1.25rem"
27613
27613
  }
27614
27614
  };
27615
- function wa(M, L = "compact") {
27615
+ function _a(M, L = "compact") {
27616
27616
  return M === "compact" ? "compact" : M === "comfortable" || M === "normal" ? "comfortable" : L;
27617
27617
  }
27618
- function _a(M, L = "compact") {
27619
- return wa(M, L) === "compact" ? Bt.densityCompact : Bt.densityComfortable;
27618
+ function xa(M, L = "compact") {
27619
+ return _a(M, L) === "compact" ? Bt.densityCompact : Bt.densityComfortable;
27620
27620
  }
27621
- function xa(M) {
27621
+ function Sa(M) {
27622
27622
  switch (M) {
27623
27623
  case "half":
27624
27624
  return Bt.widthHalf;
@@ -27629,11 +27629,11 @@ function xa(M) {
27629
27629
  return Bt.widthTwoThirds;
27630
27630
  }
27631
27631
  }
27632
- function Wo(M) {
27632
+ function qo(M) {
27633
27633
  const L = [Bt.scope];
27634
- return (M == null ? void 0 : M.density) !== void 0 && L.push(_a(M.density)), L.push(xa(M == null ? void 0 : M.width)), M != null && M.readonly && L.push(Bt.readonly), M != null && M.className && L.push(M.className), L.join(" ");
27634
+ return (M == null ? void 0 : M.density) !== void 0 && L.push(xa(M.density)), L.push(Sa(M == null ? void 0 : M.width)), M != null && M.readonly && L.push(Bt.readonly), M != null && M.className && L.push(M.className), L.join(" ");
27635
27635
  }
27636
- const vr = "id", _i = "core7_locale", Sa = {
27636
+ const vr = "id", _i = "core7_locale", Ea = {
27637
27637
  "ui7.rowsPerPage": "Tampil",
27638
27638
  "ui7.search": "Cari",
27639
27639
  "ui7.noData": "Tidak ada data",
@@ -27715,7 +27715,7 @@ const vr = "id", _i = "core7_locale", Sa = {
27715
27715
  "bos7.deleteTitle": "Konfirmasi Hapus",
27716
27716
  "bos7.deleteDescription": "Data berikut akan dihapus permanen.",
27717
27717
  "bos7.deleteConfirm": "Hapus"
27718
- }, Ea = {
27718
+ }, ka = {
27719
27719
  "ui7.rowsPerPage": "Show",
27720
27720
  "ui7.search": "Search",
27721
27721
  "ui7.noData": "No data",
@@ -27798,23 +27798,23 @@ const vr = "id", _i = "core7_locale", Sa = {
27798
27798
  "bos7.deleteDescription": "The following data will be permanently deleted.",
27799
27799
  "bos7.deleteConfirm": "Delete"
27800
27800
  }, Kr = {
27801
- id: Sa,
27802
- en: Ea
27801
+ id: Ea,
27802
+ en: ka
27803
27803
  };
27804
- function ka() {
27804
+ function Ta() {
27805
27805
  if (typeof document > "u") return null;
27806
27806
  const M = document.cookie.split(";").map((r) => r.trim()).find((r) => r.startsWith(`${_i}=`));
27807
27807
  if (!M) return null;
27808
27808
  const L = M.split("=", 2)[1] ?? "";
27809
27809
  return L === "en" ? "en" : L === "id" ? "id" : null;
27810
27810
  }
27811
- function Ta() {
27811
+ function Aa() {
27812
27812
  if (typeof navigator > "u") return null;
27813
27813
  const M = (navigator.language || "").toLowerCase();
27814
27814
  return M.startsWith("en") ? "en" : M.startsWith("id") ? "id" : null;
27815
27815
  }
27816
- function Aa(M) {
27817
- return ka() ?? M ?? Ta() ?? vr;
27816
+ function Ca(M) {
27817
+ return Ta() ?? M ?? Aa() ?? vr;
27818
27818
  }
27819
27819
  function Dr(M) {
27820
27820
  typeof document > "u" || (document.cookie = `${_i}=${M}; path=/; max-age=31536000; samesite=lax`);
@@ -27826,7 +27826,7 @@ const xi = _n({
27826
27826
  t: (M, L) => L ?? M,
27827
27827
  dictionary: Kr[vr]
27828
27828
  });
27829
- function Ca({
27829
+ function Ra({
27830
27830
  children: M,
27831
27831
  locale: L,
27832
27832
  defaultLocale: r,
@@ -27853,7 +27853,7 @@ function Ca({
27853
27853
  return At(() => {
27854
27854
  if (L) return;
27855
27855
  let n = !1;
27856
- const e = Aa(r);
27856
+ const e = Ca(r);
27857
27857
  return c(e), Dr(e), fetch("/api/auth/preferences", { cache: "no-store" }).then(async (t) => t.ok ? await t.json() : null).then((t) => {
27858
27858
  if (n) return;
27859
27859
  const l = t == null ? void 0 : t.locale;
@@ -27870,7 +27870,7 @@ function hn() {
27870
27870
  function Si() {
27871
27871
  return hn().t;
27872
27872
  }
27873
- function Ra() {
27873
+ function Ma() {
27874
27874
  const M = Si();
27875
27875
  return {
27876
27876
  rowsPerPage: M("ui7.rowsPerPage", "Tampil"),
@@ -27912,14 +27912,14 @@ function Ra() {
27912
27912
  viewAll: M("ui7.viewAll", "Lihat semua")
27913
27913
  };
27914
27914
  }
27915
- function qo(M) {
27915
+ function Vo(M) {
27916
27916
  const L = (M == null ? void 0 : M.withAuth) ?? !0, r = M == null ? void 0 : M.dictionaries, x = (M == null ? void 0 : M.defaultLocale) ?? "en";
27917
27917
  return function({ children: c, Layout: o }) {
27918
- const a = /* @__PURE__ */ Ge(Ca, { defaultLocale: x, dictionaries: r, children: /* @__PURE__ */ Ge(o, { children: c }) });
27919
- return L ? /* @__PURE__ */ Ge(Li, { children: a }) : a;
27918
+ const a = /* @__PURE__ */ Ge(Ra, { defaultLocale: x, dictionaries: r, children: /* @__PURE__ */ Ge(o, { children: c }) });
27919
+ return L ? /* @__PURE__ */ Ge(Bi, { children: a }) : a;
27920
27920
  };
27921
27921
  }
27922
- function Ma(M, L, r) {
27922
+ function Oa(M, L, r) {
27923
27923
  if (M === "profile") {
27924
27924
  window.open(`${L}/profile`, "_blank");
27925
27925
  return;
@@ -27930,7 +27930,7 @@ function Ma(M, L, r) {
27930
27930
  }
27931
27931
  r();
27932
27932
  }
27933
- function Oa(M) {
27933
+ function Ia(M) {
27934
27934
  var L;
27935
27935
  return (L = document.cookie.split("; ").find((r) => r.startsWith(`${M}=`))) == null ? void 0 : L.split("=")[1];
27936
27936
  }
@@ -27945,17 +27945,17 @@ async function Ei(M, L = "/api/auth/switch-branch") {
27945
27945
  return !1;
27946
27946
  }
27947
27947
  }
27948
- function Ia(M, L) {
27948
+ function Pa(M, L) {
27949
27949
  const r = "bos7_branch", x = "/api/auth/switch-branch", w = () => window.location.reload(), c = () => {
27950
27950
  if (document.visibilityState !== "visible") return;
27951
- const o = Oa(r);
27951
+ const o = Ia(r);
27952
27952
  !o || o === M || Ei(o, x).then((a) => {
27953
27953
  a && w();
27954
27954
  });
27955
27955
  };
27956
27956
  return document.addEventListener("visibilitychange", c), () => document.removeEventListener("visibilitychange", c);
27957
27957
  }
27958
- function Pa({
27958
+ function Na({
27959
27959
  branches: M,
27960
27960
  currentBranch: L,
27961
27961
  onSwitch: r
@@ -27990,7 +27990,7 @@ function Pa({
27990
27990
  ] })
27991
27991
  ] });
27992
27992
  }
27993
- function Na() {
27993
+ function ja() {
27994
27994
  const { t: M, locale: L, setLocale: r } = hn(), [x, w] = Ct(!1), c = (e) => `profile-branch-item${L === e ? " profile-branch-item--active" : ""}`, o = L === "en" ? M("ui7.languageEn", "English") : M("ui7.languageId", "Bahasa Indonesia"), a = L === "en" ? "Language" : "Bahasa", n = kt((e) => {
27995
27995
  r(e), fetch("/api/auth/preferences", {
27996
27996
  method: "POST",
@@ -28023,7 +28023,7 @@ function Na() {
28023
28023
  ] })
28024
28024
  ] });
28025
28025
  }
28026
- function Vo({
28026
+ function Xo({
28027
28027
  children: M,
28028
28028
  deps: L,
28029
28029
  navItems: r,
@@ -28042,7 +28042,7 @@ function Vo({
28042
28042
  sideNavItems: h
28043
28043
  }) {
28044
28044
  var g;
28045
- const u = process.env.NEXT_PUBLIC_CORPORATE_ID || "carbon-default", p = process.env.NEXT_PUBLIC_APP_NAME || w, d = process.env.NEXT_PUBLIC_AUTH7_URL || c, v = process.env.NEXT_PUBLIC_PORTAL_URL || o, S = L.usePathname(), C = L.useRouter(), j = L.useAuth ?? Bi, { isAuthenticated: B, isLoading: N, user: D, login: F, logout: z } = j();
28045
+ const u = process.env.NEXT_PUBLIC_CORPORATE_ID || "carbon-default", p = process.env.NEXT_PUBLIC_APP_NAME || w, d = process.env.NEXT_PUBLIC_AUTH7_URL || c, v = process.env.NEXT_PUBLIC_PORTAL_URL || o, S = L.usePathname(), C = L.useRouter(), j = L.useAuth ?? Fi, { isAuthenticated: B, isLoading: N, user: D, login: F, logout: z } = j();
28046
28046
  At(() => {
28047
28047
  !N && !B && F();
28048
28048
  }, [N, B, F]);
@@ -28061,7 +28061,7 @@ function Vo({
28061
28061
  k && (e ? e(k, (O) => C.push(O)) : C.push(k));
28062
28062
  }, [A, _, e, C]), b = Ur(() => x(r, S), [x, r, S]);
28063
28063
  return N || !B ? /* @__PURE__ */ Ge("div", { style: { padding: "2rem", color: "#525252" }, children: N ? "Loading…" : "Redirecting to sign-in…" }) : /* @__PURE__ */ Ge(
28064
- ja,
28064
+ Da,
28065
28065
  {
28066
28066
  deps: L,
28067
28067
  corporateId: u,
@@ -28090,16 +28090,16 @@ function Vo({
28090
28090
  }
28091
28091
  );
28092
28092
  }
28093
- function ja({
28093
+ function Da({
28094
28094
  deps: M,
28095
28095
  corporateId: L,
28096
28096
  children: r,
28097
28097
  ...x
28098
28098
  }) {
28099
- const w = M.GlobalTheme, c = M.ModalProvider, o = Ra();
28100
- return /* @__PURE__ */ Ge(w, { corporateId: L, variant: "white", labels: o, children: /* @__PURE__ */ Ge(c, { children: /* @__PURE__ */ Ge(Da, { deps: M, ...x, children: r }) }) });
28099
+ const w = M.GlobalTheme, c = M.ModalProvider, o = Ma();
28100
+ return /* @__PURE__ */ Ge(w, { corporateId: L, variant: "white", labels: o, children: /* @__PURE__ */ Ge(c, { children: /* @__PURE__ */ Ge(La, { deps: M, ...x, children: r }) }) });
28101
28101
  }
28102
- function Da({
28102
+ function La({
28103
28103
  deps: M,
28104
28104
  appName: L,
28105
28105
  auth7UiUrl: r,
@@ -28151,12 +28151,12 @@ function Da({
28151
28151
  B([_]), D(_);
28152
28152
  }
28153
28153
  });
28154
- }, [h]), At(() => Ia(h ?? void 0), [h]);
28154
+ }, [h]), At(() => Pa(h ?? void 0), [h]);
28155
28155
  const F = kt(async (A) => {
28156
28156
  await Ei(A.id) && window.location.reload();
28157
- }, []), z = f ? `${f.charAt(0).toUpperCase()}${f.slice(1)}` : x || void 0, U = /* @__PURE__ */ gt(Ri, { children: [
28158
- /* @__PURE__ */ Ge(Pa, { branches: j, currentBranch: N, onSwitch: F }),
28159
- /* @__PURE__ */ Ge(Na, {})
28157
+ }, []), z = f ? `${f.charAt(0).toUpperCase()}${f.slice(1)}` : x || void 0, U = /* @__PURE__ */ gt(Mi, { children: [
28158
+ /* @__PURE__ */ Ge(Na, { branches: j, currentBranch: N, onSwitch: F }),
28159
+ /* @__PURE__ */ Ge(ja, {})
28160
28160
  ] }), E = M.UiShell;
28161
28161
  return /* @__PURE__ */ Ge(
28162
28162
  E,
@@ -28187,7 +28187,7 @@ function Da({
28187
28187
  email: s || ""
28188
28188
  },
28189
28189
  profileActions: ["profile", "change-password", "logout"],
28190
- onProfileAction: (A) => Ma(A, r, v),
28190
+ onProfileAction: (A) => Oa(A, r, v),
28191
28191
  profileExtra: U,
28192
28192
  apps: n ? void 0 : {
28193
28193
  onFetch: () => fetch("/api/apps").then((A) => A.json()).then((A) => A.apps),
@@ -28204,7 +28204,7 @@ function Da({
28204
28204
  }
28205
28205
  );
28206
28206
  }
28207
- const Gr = process.env.NOTIF7_URL ?? "", ki = process.env.NOTIF7_JWT_SECRET ?? "", Qt = "b0000000-0000-0000-0000-000000000001", La = "c0000000-0000-0000-0000-000000000001";
28207
+ const Gr = process.env.NOTIF7_URL ?? "", ki = process.env.NOTIF7_JWT_SECRET ?? "", Qt = "b0000000-0000-0000-0000-000000000001", Ba = "c0000000-0000-0000-0000-000000000001";
28208
28208
  function dn(M) {
28209
28209
  var r, x, w, c;
28210
28210
  const L = ((w = (x = (r = M.cookies) == null ? void 0 : r.get) == null ? void 0 : x.call(r, "access_token")) == null ? void 0 : w.value) ?? ((c = (M.headers.get("cookie") ?? "").split(";").find((o) => o.trim().startsWith("access_token="))) == null ? void 0 : c.split("=").slice(1).join("=").trim());
@@ -28218,12 +28218,12 @@ function dn(M) {
28218
28218
  return Qt;
28219
28219
  }
28220
28220
  }
28221
- async function Ba(M) {
28221
+ async function Fa(M) {
28222
28222
  const L = new TextEncoder().encode(ki);
28223
- return new gi({ branch_id: La, roles: ["app_user"] }).setProtectedHeader({ alg: "HS256" }).setSubject(M).setJti(crypto.randomUUID()).setExpirationTime("60s").setIssuedAt().sign(L);
28223
+ return new gi({ branch_id: Ba, roles: ["app_user"] }).setProtectedHeader({ alg: "HS256" }).setSubject(M).setJti(crypto.randomUUID()).setExpirationTime("60s").setIssuedAt().sign(L);
28224
28224
  }
28225
28225
  async function tr(M, L, r = {}) {
28226
- const x = r.userID ?? Qt, w = r.accessToken ? `Bearer ${r.accessToken}` : ki ? `Bearer ${await Ba(x)}` : "", c = r.query ? `${Gr}${L}?${r.query}` : `${Gr}${L}`;
28226
+ const x = r.userID ?? Qt, w = r.accessToken ? `Bearer ${r.accessToken}` : ki ? `Bearer ${await Fa(x)}` : "", c = r.query ? `${Gr}${L}?${r.query}` : `${Gr}${L}`;
28227
28227
  return fetch(c, {
28228
28228
  method: M,
28229
28229
  headers: {
@@ -28233,7 +28233,7 @@ async function tr(M, L, r = {}) {
28233
28233
  ...r.body !== void 0 ? { body: r.body } : {}
28234
28234
  });
28235
28235
  }
28236
- const Fa = /* @__PURE__ */ new Set([
28236
+ const Ua = /* @__PURE__ */ new Set([
28237
28237
  "task.assign",
28238
28238
  "task.assigned",
28239
28239
  "task.delegated_to_you",
@@ -28243,26 +28243,26 @@ function Tr(M) {
28243
28243
  var L, r, x, w;
28244
28244
  return ((x = (r = (L = M.cookies) == null ? void 0 : L.get) == null ? void 0 : r.call(L, "access_token")) == null ? void 0 : x.value) ?? ((w = (M.headers.get("cookie") ?? "").split(";").find((c) => c.trim().startsWith("access_token="))) == null ? void 0 : w.split("=").slice(1).join("=").trim());
28245
28245
  }
28246
- function Ua(M) {
28246
+ function Ha(M) {
28247
28247
  const L = M.Payload;
28248
28248
  if (!L) return;
28249
28249
  const r = [L.task_id, L.taskId, L.taskID, L.id, L.ref_id];
28250
28250
  for (const x of r)
28251
28251
  if (typeof x == "string" && x.trim() !== "") return x;
28252
28252
  }
28253
- const Ha = /* @__PURE__ */ new Set([
28253
+ const za = /* @__PURE__ */ new Set([
28254
28254
  "instance.completed",
28255
28255
  "instance.cancelled"
28256
28256
  ]);
28257
28257
  function wn(M, L, r) {
28258
28258
  const x = (M.EventType || "").toLowerCase();
28259
- if (Ha.has(x)) return;
28259
+ if (za.has(x)) return;
28260
28260
  if (!r.has(x)) return M.RefURL || void 0;
28261
- const w = Ua(M);
28261
+ const w = Ha(M);
28262
28262
  return w ? `${L}/inbox/${w}` : `${L}/inbox`;
28263
28263
  }
28264
- async function Xo(M, L = {}) {
28265
- const r = L.workflowBaseUrl || process.env.NEXT_PUBLIC_BOS7_WORKFLOW_URL || "https://workflow.bos7.local", x = L.taskEventTypes || Fa, w = L.includeUserID ?? !0, c = L.graceful ?? !0, o = L.tableActionField || "action_url", a = L.bellTitleMap || {}, n = L.bellTimestampLocale ?? !1, t = new URL(M.url).searchParams, l = t.has("page") || t.has("per_page"), i = Tr(M), s = w ? dn(M) : void 0;
28264
+ async function Ko(M, L = {}) {
28265
+ const r = L.workflowBaseUrl || process.env.NEXT_PUBLIC_BOS7_WORKFLOW_URL || "https://workflow.bos7.local", x = L.taskEventTypes || Ua, w = L.includeUserID ?? !0, c = L.graceful ?? !0, o = L.tableActionField || "action_url", a = L.bellTitleMap || {}, n = L.bellTimestampLocale ?? !1, t = new URL(M.url).searchParams, l = t.has("page") || t.has("per_page"), i = Tr(M), s = w ? dn(M) : void 0;
28266
28266
  try {
28267
28267
  if (l) {
28268
28268
  const v = Math.max(1, Number(t.get("page") ?? "1")), S = Math.max(1, Number(t.get("per_page") ?? "20")), C = t.get("is_read"), j = new URLSearchParams({
@@ -28327,7 +28327,7 @@ async function Xo(M, L = {}) {
28327
28327
  return Response.json({ notifications: [], badgeCount: 0 });
28328
28328
  }
28329
28329
  }
28330
- async function Ko(M, L = {}) {
28330
+ async function Go(M, L = {}) {
28331
28331
  const r = L.includeUserID ?? !0, x = L.path || "/api/v1/notifications/read-all", w = L.graceful ?? !1, c = Tr(M), o = r ? dn(M) : void 0;
28332
28332
  try {
28333
28333
  const a = await tr("POST", x, { userID: o, accessToken: c, body: "{}" }), n = await a.json().catch(() => ({}));
@@ -28336,7 +28336,7 @@ async function Ko(M, L = {}) {
28336
28336
  return w ? Response.json({ ok: !0 }) : Response.json({ ok: !1 }, { status: 502 });
28337
28337
  }
28338
28338
  }
28339
- async function Go(M, L, r = {}) {
28339
+ async function Yo(M, L, r = {}) {
28340
28340
  const x = r.includeUserID ?? !0, w = r.graceful ?? !1, c = Tr(M), o = x ? dn(M) : void 0;
28341
28341
  try {
28342
28342
  const a = await tr("PATCH", `/api/v1/notifications/${L}/read`, { userID: o, accessToken: c }), n = await a.json().catch(() => ({}));
@@ -28345,7 +28345,7 @@ async function Go(M, L, r = {}) {
28345
28345
  return w ? Response.json({ ok: !0 }) : Response.json({ ok: !1 }, { status: 502 });
28346
28346
  }
28347
28347
  }
28348
- async function Yo(M, L = {}) {
28348
+ async function Zo(M, L = {}) {
28349
28349
  const r = Tr(M);
28350
28350
  if (!r)
28351
28351
  return new Response(
@@ -28383,11 +28383,11 @@ async function Yo(M, L = {}) {
28383
28383
  }
28384
28384
  });
28385
28385
  }
28386
- async function Zo(M, L, r) {
28386
+ async function Jo(M, L, r) {
28387
28387
  if (M)
28388
28388
  return M(L, r);
28389
28389
  }
28390
- function Jo(M, L) {
28390
+ function Qo(M, L) {
28391
28391
  return L != null && L.fieldOverrides ? M.filter((r) => {
28392
28392
  var x, w;
28393
28393
  return ((w = (x = L.fieldOverrides) == null ? void 0 : x[r.key]) == null ? void 0 : w.hidden) !== !0;
@@ -28405,11 +28405,11 @@ function Jo(M, L) {
28405
28405
  const Yr = {
28406
28406
  precisionByCurrency: { IDR: 2, USD: 4 },
28407
28407
  defaultPrecision: 2
28408
- }, za = 6;
28408
+ }, $a = 6;
28409
28409
  function Ti(M, L, r) {
28410
28410
  return M != null && M.labelKey ? r(M.labelKey, M.label ?? L) : (M == null ? void 0 : M.label) ?? L;
28411
28411
  }
28412
- function $a(M, L) {
28412
+ function Wa(M, L) {
28413
28413
  return M != null && M.helpKey ? L(M.helpKey, M.help ?? "") : M == null ? void 0 : M.help;
28414
28414
  }
28415
28415
  function Ai(M, L) {
@@ -28428,7 +28428,7 @@ function Ai(M, L) {
28428
28428
  return Array.isArray(M.enum) ? "select" : M.format === "date" || M.format === "date-time" ? "date" : "text";
28429
28429
  }
28430
28430
  }
28431
- function Wa(M, L) {
28431
+ function qa(M, L) {
28432
28432
  const r = L == null ? void 0 : L.numeric;
28433
28433
  if (r)
28434
28434
  switch (r.kind) {
@@ -28463,11 +28463,11 @@ function Ci(M, L, r) {
28463
28463
  if (Array.isArray(M.enum))
28464
28464
  return M.enum.map((w) => ({ value: String(w), label: String(w) }));
28465
28465
  }
28466
- function qa(M, L) {
28466
+ function Va(M, L) {
28467
28467
  const r = {};
28468
28468
  return L && (r.required = !0), typeof M.minimum == "number" && (r.min = M.minimum), typeof M.maximum == "number" && (r.max = M.maximum), typeof M.minLength == "number" && (r.minLength = M.minLength), typeof M.maxLength == "number" && (r.maxLength = M.maxLength), typeof M.pattern == "string" && (r.pattern = new RegExp(M.pattern)), Object.keys(r).length ? r : void 0;
28469
28469
  }
28470
- function Va(M) {
28470
+ function Xa(M) {
28471
28471
  if (M.default !== void 0) return M.default;
28472
28472
  switch (M.type) {
28473
28473
  case "integer":
@@ -28479,7 +28479,7 @@ function Va(M) {
28479
28479
  return "";
28480
28480
  }
28481
28481
  }
28482
- function Xa(M, L, r) {
28482
+ function Ka(M, L, r) {
28483
28483
  const x = Ai(M, L), w = L == null ? void 0 : L.numeric;
28484
28484
  return (w == null ? void 0 : w.kind) === "currency" ? {
28485
28485
  type: "currency",
@@ -28489,7 +28489,7 @@ function Xa(M, L, r) {
28489
28489
  options: (Ci(M, L, r) ?? []).map((c) => ({ value: String(c.value), label: c.label }))
28490
28490
  } : x === "date" ? { type: "date" } : { type: "text", maxLength: M.maxLength, placeholder: L == null ? void 0 : L.placeholder };
28491
28491
  }
28492
- function Ka(M, L) {
28492
+ function Ga(M, L) {
28493
28493
  const r = M.items;
28494
28494
  if (!(r != null && r.properties)) return;
28495
28495
  const x = r.properties, w = new Set(r.required ?? []), c = Object.entries(x), o = c.map(([t, l]) => {
@@ -28497,12 +28497,12 @@ function Ka(M, L) {
28497
28497
  return {
28498
28498
  field: t,
28499
28499
  header: Ti(i, t, L),
28500
- columnType: Xa(l, i, L),
28500
+ columnType: Ka(l, i, L),
28501
28501
  required: w.has(t)
28502
28502
  };
28503
28503
  }), a = () => {
28504
28504
  const t = {};
28505
- for (const [l, i] of c) t[l] = Va(i);
28505
+ for (const [l, i] of c) t[l] = Xa(i);
28506
28506
  return t;
28507
28507
  }, n = (t) => {
28508
28508
  const l = {};
@@ -28514,14 +28514,14 @@ function Ka(M, L) {
28514
28514
  }, e = M["x-ui"];
28515
28515
  return { columns: o, newRowFactory: a, validateRow: n, maxRows: e == null ? void 0 : e.maxRows };
28516
28516
  }
28517
- function Ga(M, L, r, x) {
28517
+ function Ya(M, L, r, x) {
28518
28518
  var e;
28519
28519
  const w = L["x-ui"], c = Ai(L, w), o = {
28520
28520
  key: M,
28521
28521
  label: Ti(w, M, x),
28522
28522
  type: c,
28523
- span: (w == null ? void 0 : w.span) ?? (c === "detail-rows" ? 12 : za)
28524
- }, a = $a(w, x);
28523
+ span: (w == null ? void 0 : w.span) ?? (c === "detail-rows" ? 12 : $a)
28524
+ }, a = Wa(w, x);
28525
28525
  if (a && (o.helperText = a), w != null && w.placeholder && (o.placeholder = w.placeholder), typeof L.maxLength == "number" && (o.maxLength = L.maxLength), (e = w == null ? void 0 : w.readonlyOn) != null && e.length) {
28526
28526
  const t = w.readonlyOn;
28527
28527
  o.readonly = (l) => t.includes(l);
@@ -28531,14 +28531,14 @@ function Ga(M, L, r, x) {
28531
28531
  t && (o.options = t);
28532
28532
  }
28533
28533
  if (c === "number") {
28534
- const t = Wa(L, w);
28534
+ const t = qa(L, w);
28535
28535
  t && (o.numeric = t), o.inputMode = (t == null ? void 0 : t.kind) === "integer" ? "numeric" : "decimal";
28536
28536
  }
28537
28537
  if (c === "toggle" && (w != null && w.toggle) && (o.toggle = { valueOn: w.toggle.valueOn, valueOff: w.toggle.valueOff }), c === "detail-rows") {
28538
- const t = Ka(L, x);
28538
+ const t = Ga(L, x);
28539
28539
  t && (o.detailRows = t);
28540
28540
  }
28541
- const n = qa(L, r);
28541
+ const n = Va(L, r);
28542
28542
  return n && (o.validation = n), o;
28543
28543
  }
28544
28544
  function Lr(M) {
@@ -28552,7 +28552,7 @@ function Br(M) {
28552
28552
  function Fr(M, L, r) {
28553
28553
  return M.messageKey ? L(M.messageKey, M.message ?? r) : M.message ?? r;
28554
28554
  }
28555
- function Ya(M, L) {
28555
+ function Za(M, L) {
28556
28556
  return M != null && M.length ? (r) => {
28557
28557
  const x = {};
28558
28558
  for (const w of M)
@@ -28582,7 +28582,7 @@ function Ya(M, L) {
28582
28582
  return x;
28583
28583
  } : () => ({});
28584
28584
  }
28585
- function Za(M, L, r, x) {
28585
+ function Ja(M, L, r, x) {
28586
28586
  var o, a;
28587
28587
  const w = (o = M["x-ui"]) == null ? void 0 : o.layout;
28588
28588
  if ((a = w == null ? void 0 : w.sections) != null && a.length) {
@@ -28604,21 +28604,21 @@ function Za(M, L, r, x) {
28604
28604
  }
28605
28605
  ];
28606
28606
  }
28607
- function Qo(M, L) {
28607
+ function el(M, L) {
28608
28608
  const r = M.properties ?? {}, x = new Set(M.required ?? []), w = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map();
28609
28609
  Object.entries(r).forEach(([n, e], t) => {
28610
28610
  var i;
28611
- w.set(n, Ga(n, e, x.has(n), L));
28611
+ w.set(n, Ya(n, e, x.has(n), L));
28612
28612
  const l = (i = e["x-ui"]) == null ? void 0 : i.order;
28613
28613
  c.set(n, typeof l == "number" ? l : t);
28614
28614
  });
28615
- const o = Za(M, w, c, L), a = Ya(M["x-rules"], L);
28615
+ const o = Ja(M, w, c, L), a = Za(M["x-rules"], L);
28616
28616
  return { sections: o, validate: a };
28617
28617
  }
28618
28618
  function Jt(M, L) {
28619
28619
  return M.replace(/\{\{(\w+)\}\}/g, (r, x) => String(L[x] ?? ""));
28620
28620
  }
28621
- function el() {
28621
+ function tl() {
28622
28622
  const M = Si();
28623
28623
  return {
28624
28624
  validRequired: (L) => Jt(M("bos7.validRequired", "{{label}} wajib diisi"), { label: L }),
@@ -28656,9 +28656,13 @@ function el() {
28656
28656
  deleteConfirm: M("bos7.deleteConfirm", "Hapus")
28657
28657
  };
28658
28658
  }
28659
- async function Ja(M, L) {
28659
+ function Ri(M, L) {
28660
+ const r = new URL(M.url).search;
28661
+ return r ? `${L}${r}` : L;
28662
+ }
28663
+ async function Qa(M, L) {
28660
28664
  var a;
28661
- const r = (a = M.cookies.get(L.accessTokenCookie ?? "access_token")) == null ? void 0 : a.value, x = await Jr(r ?? "", L.audience), w = await M.json(), c = await fetch(`${L.backendUrl}${L.path}`, {
28665
+ const r = (a = M.cookies.get(L.accessTokenCookie ?? "access_token")) == null ? void 0 : a.value, x = await Jr(r ?? "", L.audience), w = await M.json(), c = await fetch(`${L.backendUrl}${Ri(M, L.path)}`, {
28662
28666
  method: "POST",
28663
28667
  headers: {
28664
28668
  "Content-Type": "application/json",
@@ -28669,11 +28673,11 @@ async function Ja(M, L) {
28669
28673
  }), o = await c.json();
28670
28674
  return Dt.NextResponse.json(o, { status: c.status });
28671
28675
  }
28672
- async function tl(M, L) {
28676
+ async function rl(M, L) {
28673
28677
  var n;
28674
28678
  if (!L.extraColumnTypes)
28675
- return Ja(M, L);
28676
- const r = (n = M.cookies.get(L.accessTokenCookie ?? "access_token")) == null ? void 0 : n.value, x = await Jr(r ?? "", L.audience), w = await M.json(), c = await fetch(`${L.backendUrl}${L.path}`, {
28679
+ return Qa(M, L);
28680
+ const r = (n = M.cookies.get(L.accessTokenCookie ?? "access_token")) == null ? void 0 : n.value, x = await Jr(r ?? "", L.audience), w = await M.json(), c = await fetch(`${L.backendUrl}${Ri(M, L.path)}`, {
28677
28681
  method: "POST",
28678
28682
  headers: {
28679
28683
  "Content-Type": "application/json",
@@ -28685,77 +28689,77 @@ async function tl(M, L) {
28685
28689
  return o.columnTypes = { ...a, ...L.extraColumnTypes }, Dt.NextResponse.json(o, { status: c.status });
28686
28690
  }
28687
28691
  export {
28688
- Uo as $,
28689
- Li as A,
28690
- oo as B,
28691
- lo as C,
28692
- uo as D,
28693
- So as E,
28694
- Eo as F,
28695
- ko as G,
28696
- To as H,
28697
- Ao as I,
28698
- Co as J,
28699
- Ro as K,
28700
- Mo as L,
28701
- Oo as M,
28702
- Io as N,
28703
- bo as O,
28704
- xo as P,
28705
- Po as Q,
28706
- ba as R,
28707
- ga as S,
28708
- No as T,
28709
- jo as U,
28710
- Do as V,
28711
- Lo as W,
28712
- Bo as X,
28692
+ Ho as $,
28693
+ Bi as A,
28694
+ lo as B,
28695
+ uo as C,
28696
+ co as D,
28697
+ Eo as E,
28698
+ ko as F,
28699
+ To as G,
28700
+ Ao as H,
28701
+ Co as I,
28702
+ Ro as J,
28703
+ Mo as K,
28704
+ Oo as L,
28705
+ Io as M,
28706
+ Po as N,
28707
+ go as O,
28708
+ So as P,
28709
+ No as Q,
28710
+ ga as R,
28711
+ ya as S,
28712
+ jo as T,
28713
+ Do as U,
28714
+ Lo as V,
28715
+ Bo as W,
28716
+ Fo as X,
28713
28717
  wi as Y,
28714
- Fo as Z,
28715
- va as _,
28716
- tl as a,
28717
- Ho as a0,
28718
- zo as a1,
28718
+ Uo as Z,
28719
+ wa as _,
28720
+ rl as a,
28721
+ zo as a0,
28722
+ $o as a1,
28719
28723
  Bt as a2,
28720
- $o as a3,
28721
- wa as a4,
28722
- _a as a5,
28723
- xa as a6,
28724
- Wo as a7,
28725
- qo as a8,
28726
- Vo as a9,
28727
- Xo as aa,
28728
- Ko as ab,
28729
- Go as ac,
28730
- Yo as ad,
28731
- Zo as ae,
28732
- Jo as af,
28733
- Ya as ag,
28734
- Qo as ah,
28735
- el as ai,
28736
- Bi as b,
28724
+ Wo as a3,
28725
+ _a as a4,
28726
+ xa as a5,
28727
+ Sa as a6,
28728
+ qo as a7,
28729
+ Vo as a8,
28730
+ Xo as a9,
28731
+ Ko as aa,
28732
+ Go as ab,
28733
+ Yo as ac,
28734
+ Zo as ad,
28735
+ Jo as ae,
28736
+ Qo as af,
28737
+ Za as ag,
28738
+ el as ah,
28739
+ tl as ai,
28740
+ Fi as b,
28737
28741
  Ze as c,
28738
- co as d,
28739
- fo as e,
28740
- ho as f,
28741
- Ji as g,
28742
+ fo as d,
28743
+ ho as e,
28744
+ po as f,
28745
+ Qi as g,
28742
28746
  Jr as h,
28743
- po as i,
28744
- mo as j,
28745
- _o as k,
28746
- go as l,
28747
- yo as m,
28748
- ro as n,
28749
- no as o,
28750
- Ja as p,
28751
- zi as q,
28752
- wo as r,
28753
- vo as s,
28754
- io as t,
28747
+ mo as i,
28748
+ bo as j,
28749
+ xo as k,
28750
+ yo as l,
28751
+ vo as m,
28752
+ no as n,
28753
+ io as o,
28754
+ Qa as p,
28755
+ $i as q,
28756
+ _o as r,
28757
+ wo as s,
28758
+ so as t,
28755
28759
  En as u,
28756
- so as v,
28757
- $i as w,
28758
- Wi as x,
28759
- ao as y,
28760
+ ao as v,
28761
+ Wi as w,
28762
+ qi as x,
28763
+ oo as y,
28760
28764
  dr as z
28761
28765
  };