@isi-ui7/bos7-shared 0.2.13 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/crud-types.d.ts +29 -0
- package/dist/{index-CPY3DDQN.js → index-DV8lJjii.js} +367 -363
- package/dist/{index.es-Dy3lNA6h.js → index.es-DqL2wDqB.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/{jspdf.es.min-Ds3Fsl60.js → jspdf.es.min-iZWDIC-k.js} +2 -2
- package/dist/{jspdf.plugin.autotable-DcntYaes.js → jspdf.plugin.autotable-DFaknRns.js} +19 -22
- package/dist/purify.es-Cm3utOpm.js +560 -0
- package/package.json +15 -14
- package/src/crud-client-error.test.ts +53 -0
- package/src/crud-components.tsx +52 -9
- package/src/crud-types.ts +26 -0
- package/src/data-table/proxy.ts +11 -2
- package/src/workflow/crud-client.ts +33 -2
- package/dist/purify.es-CiEWEeUM.js +0 -605
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as Ge, jsxs as gt, Fragment as
|
|
2
|
-
import
|
|
3
|
-
import { createHash as
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
176
|
+
async function Ui() {
|
|
177
177
|
const M = new Uint8Array(32);
|
|
178
178
|
return crypto.getRandomValues(M), Zr(M);
|
|
179
179
|
}
|
|
180
|
-
async function
|
|
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
|
|
187
|
+
function zi() {
|
|
188
188
|
const M = new Uint8Array(16);
|
|
189
189
|
return crypto.getRandomValues(M), Zr(M);
|
|
190
190
|
}
|
|
191
|
-
async function
|
|
192
|
-
const M = Gt("NEXT_PUBLIC_AUTH7_URL"), L = Gt("AUTH7_CLIENT_ID"), r = await
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
265
|
+
function Wi(M) {
|
|
266
266
|
return M <= Date.now() + 3e5;
|
|
267
267
|
}
|
|
268
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
336
|
-
|
|
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
|
|
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
|
|
385
|
+
function po() {
|
|
386
386
|
qt = null;
|
|
387
387
|
}
|
|
388
|
-
const
|
|
389
|
-
function
|
|
390
|
-
return
|
|
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
|
|
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
|
|
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 =
|
|
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(`${
|
|
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(`${
|
|
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 &&
|
|
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
|
|
455
|
-
function
|
|
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
|
|
465
|
-
const L =
|
|
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
|
|
497
|
-
const { backendUrl: x =
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
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,
|
|
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
|
-
},
|
|
1379
|
+
}, is = (M, L, r, x) => {
|
|
1380
1380
|
if (L && typeof L == "object" || typeof L == "function")
|
|
1381
|
-
for (let w of
|
|
1382
|
-
!
|
|
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
|
-
},
|
|
1385
|
-
|
|
1386
|
-
RequestCookies: () =>
|
|
1387
|
-
ResponseCookies: () =>
|
|
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
|
|
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:
|
|
1452
|
+
...e && { sameSite: us(e) },
|
|
1453
1453
|
...t && { secure: !0 },
|
|
1454
|
-
...i && { priority:
|
|
1454
|
+
...i && { priority: fs(i) },
|
|
1455
1455
|
...l && { partitioned: !0 }
|
|
1456
1456
|
};
|
|
1457
|
-
return
|
|
1457
|
+
return os(s);
|
|
1458
1458
|
}
|
|
1459
|
-
function
|
|
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
|
|
1466
|
-
function
|
|
1467
|
-
return M = M.toLowerCase(),
|
|
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
|
|
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
|
-
},
|
|
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 :
|
|
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,
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
3512
|
-
const r =
|
|
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
|
|
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
|
|
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 ??
|
|
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
|
|
3590
|
+
function So({ children: M }) {
|
|
3591
3591
|
return /* @__PURE__ */ Ge("div", { className: "page", children: M });
|
|
3592
3592
|
}
|
|
3593
|
-
function
|
|
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
|
|
3615
|
+
function ko({ children: M }) {
|
|
3616
3616
|
return /* @__PURE__ */ Ge("div", { className: "page__body", children: M });
|
|
3617
3617
|
}
|
|
3618
|
-
function
|
|
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
|
|
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
|
|
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) =>
|
|
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
|
|
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
|
|
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
|
-
|
|
3666
|
-
class
|
|
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
|
-
|
|
3672
|
-
class
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
3690
|
-
class
|
|
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
|
-
|
|
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
|
|
3708
|
+
class Ms extends vt {
|
|
3709
3709
|
constructor() {
|
|
3710
3710
|
super(...arguments), this.code = "ERR_JWK_INVALID";
|
|
3711
3711
|
}
|
|
3712
3712
|
}
|
|
3713
|
-
|
|
3714
|
-
class
|
|
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
|
-
|
|
3720
|
-
class
|
|
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
|
-
|
|
3726
|
-
class
|
|
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
|
-
|
|
3732
|
-
class
|
|
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
|
-
|
|
3738
|
-
class
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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"],
|
|
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
|
|
3863
|
+
function Us(M) {
|
|
3864
3864
|
return typeof M == "object" && M !== null;
|
|
3865
3865
|
}
|
|
3866
3866
|
function fi(M) {
|
|
3867
|
-
if (!
|
|
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
|
|
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
|
|
3886
|
+
function zs(M) {
|
|
3887
3887
|
return M.kty !== "oct" && typeof M.d == "string";
|
|
3888
3888
|
}
|
|
3889
|
-
function
|
|
3889
|
+
function $s(M) {
|
|
3890
3890
|
return M.kty !== "oct" && typeof M.d > "u";
|
|
3891
3891
|
}
|
|
3892
|
-
function
|
|
3892
|
+
function Ws(M) {
|
|
3893
3893
|
return nr(M) && M.kty === "oct" && typeof M.k == "string";
|
|
3894
3894
|
}
|
|
3895
|
-
function
|
|
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
|
|
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 } =
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4008
|
+
}, Ys = (M, L, r, x) => {
|
|
4009
4009
|
if (!(L instanceof Uint8Array)) {
|
|
4010
4010
|
if (x && nr(L)) {
|
|
4011
|
-
if (
|
|
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
|
-
},
|
|
4020
|
+
}, Zs = (M, L, r, x) => {
|
|
4021
4021
|
if (x && nr(L))
|
|
4022
4022
|
switch (r) {
|
|
4023
4023
|
case "sign":
|
|
4024
|
-
if (
|
|
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 (
|
|
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) ?
|
|
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
|
|
4050
|
-
function
|
|
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
|
|
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
|
|
4097
|
-
if (L = await
|
|
4098
|
-
return
|
|
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,
|
|
4107
|
-
const L =
|
|
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 *
|
|
4142
|
+
w = Math.round(r * ra);
|
|
4143
4143
|
break;
|
|
4144
4144
|
default:
|
|
4145
|
-
w = Math.round(r *
|
|
4145
|
+
w = Math.round(r * na);
|
|
4146
4146
|
break;
|
|
4147
4147
|
}
|
|
4148
4148
|
return L[1] === "-" || L[4] === "ago" ? -w : w;
|
|
4149
|
-
},
|
|
4150
|
-
const x = await
|
|
4151
|
-
|
|
4152
|
-
const w = await ln.subtle.sign(
|
|
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
|
|
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 (!
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
|
4198
|
+
class oa {
|
|
4199
4199
|
constructor(L) {
|
|
4200
|
-
this._flattened = new
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
4270
|
-
const M =
|
|
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
|
|
4282
|
-
let c = `${
|
|
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
|
|
4301
|
+
function Ao(M, L, r) {
|
|
4302
4302
|
return kr("GET", M, { query: L, accessToken: r });
|
|
4303
4303
|
}
|
|
4304
|
-
function
|
|
4304
|
+
function Co(M, L, r) {
|
|
4305
4305
|
return kr("POST", M, { body: L, accessToken: r });
|
|
4306
4306
|
}
|
|
4307
|
-
function
|
|
4307
|
+
function Ro(M, L, r) {
|
|
4308
4308
|
return kr("PUT", M, { body: L, accessToken: r });
|
|
4309
4309
|
}
|
|
4310
|
-
function
|
|
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
|
|
27331
|
-
const
|
|
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
|
-
},
|
|
27344
|
-
async function
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
27390
|
+
function ba(M, L) {
|
|
27391
27391
|
return String(pr(M, L));
|
|
27392
27392
|
}
|
|
27393
|
-
async function
|
|
27394
|
-
const { default: x } = await import("./jspdf.es.min-
|
|
27393
|
+
async function Io(M, L, r) {
|
|
27394
|
+
const { default: x } = await import("./jspdf.es.min-iZWDIC-k.js").then((o) => o.j), { default: w } = await import("./jspdf.plugin.autotable-DFaknRns.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) =>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
27462
|
-
const L = new
|
|
27461
|
+
async function ya(M) {
|
|
27462
|
+
const L = new ga(M);
|
|
27463
27463
|
return await L.connect(), er = L, L;
|
|
27464
27464
|
}
|
|
27465
|
-
function
|
|
27465
|
+
function jo() {
|
|
27466
27466
|
return er;
|
|
27467
27467
|
}
|
|
27468
|
-
function
|
|
27468
|
+
function Do() {
|
|
27469
27469
|
return (er == null ? void 0 : er.isConnected()) ?? !1;
|
|
27470
27470
|
}
|
|
27471
|
-
class
|
|
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
|
|
27495
|
-
const L = await
|
|
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
|
|
27499
|
+
return yr = new va(L), yr;
|
|
27500
27500
|
}
|
|
27501
|
-
function
|
|
27501
|
+
function Bo() {
|
|
27502
27502
|
return yr;
|
|
27503
27503
|
}
|
|
27504
|
-
function
|
|
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
|
|
27512
|
+
function Uo(M) {
|
|
27513
27513
|
fn(M, "bos7PortalNotificationsWindow");
|
|
27514
27514
|
}
|
|
27515
|
-
function
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
27615
|
+
function _a(M, L = "compact") {
|
|
27616
27616
|
return M === "compact" ? "compact" : M === "comfortable" || M === "normal" ? "comfortable" : L;
|
|
27617
27617
|
}
|
|
27618
|
-
function
|
|
27619
|
-
return
|
|
27618
|
+
function xa(M, L = "compact") {
|
|
27619
|
+
return _a(M, L) === "compact" ? Bt.densityCompact : Bt.densityComfortable;
|
|
27620
27620
|
}
|
|
27621
|
-
function
|
|
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
|
|
27632
|
+
function qo(M) {
|
|
27633
27633
|
const L = [Bt.scope];
|
|
27634
|
-
return (M == null ? void 0 : M.density) !== void 0 && L.push(
|
|
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",
|
|
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
|
-
},
|
|
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:
|
|
27802
|
-
en:
|
|
27801
|
+
id: Ea,
|
|
27802
|
+
en: ka
|
|
27803
27803
|
};
|
|
27804
|
-
function
|
|
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
|
|
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
|
|
27817
|
-
return
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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(
|
|
27919
|
-
return L ? /* @__PURE__ */ Ge(
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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 ??
|
|
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
|
-
|
|
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
|
|
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 =
|
|
28100
|
-
return /* @__PURE__ */ Ge(w, { corporateId: L, variant: "white", labels: o, children: /* @__PURE__ */ Ge(c, { children: /* @__PURE__ */ Ge(
|
|
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
|
|
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(() =>
|
|
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(
|
|
28158
|
-
/* @__PURE__ */ Ge(
|
|
28159
|
-
/* @__PURE__ */ Ge(
|
|
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) =>
|
|
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",
|
|
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
|
|
28221
|
+
async function Fa(M) {
|
|
28222
28222
|
const L = new TextEncoder().encode(ki);
|
|
28223
|
-
return new gi({ branch_id:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
28259
|
+
if (za.has(x)) return;
|
|
28260
28260
|
if (!r.has(x)) return M.RefURL || void 0;
|
|
28261
|
-
const w =
|
|
28261
|
+
const w = Ha(M);
|
|
28262
28262
|
return w ? `${L}/inbox/${w}` : `${L}/inbox`;
|
|
28263
28263
|
}
|
|
28264
|
-
async function
|
|
28265
|
-
const r = L.workflowBaseUrl || process.env.NEXT_PUBLIC_BOS7_WORKFLOW_URL || "https://workflow.bos7.local", x = L.taskEventTypes ||
|
|
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
|
|
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
|
|
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
|
|
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
|
|
28386
|
+
async function Jo(M, L, r) {
|
|
28387
28387
|
if (M)
|
|
28388
28388
|
return M(L, r);
|
|
28389
28389
|
}
|
|
28390
|
-
function
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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] =
|
|
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
|
|
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 :
|
|
28524
|
-
}, a =
|
|
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 =
|
|
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 =
|
|
28538
|
+
const t = Ga(L, x);
|
|
28539
28539
|
t && (o.detailRows = t);
|
|
28540
28540
|
}
|
|
28541
|
-
const n =
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
|
28676
|
+
async function rl(M, L) {
|
|
28673
28677
|
var n;
|
|
28674
28678
|
if (!L.extraColumnTypes)
|
|
28675
|
-
return
|
|
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
|
-
|
|
28689
|
-
|
|
28690
|
-
|
|
28691
|
-
|
|
28692
|
-
|
|
28693
|
-
|
|
28694
|
-
|
|
28695
|
-
|
|
28696
|
-
|
|
28697
|
-
|
|
28698
|
-
|
|
28699
|
-
|
|
28700
|
-
|
|
28701
|
-
|
|
28702
|
-
|
|
28703
|
-
|
|
28704
|
-
|
|
28705
|
-
|
|
28706
|
-
|
|
28707
|
-
|
|
28708
|
-
|
|
28709
|
-
|
|
28710
|
-
|
|
28711
|
-
|
|
28712
|
-
|
|
28713
|
-
|
|
28714
|
-
|
|
28715
|
-
|
|
28716
|
-
|
|
28717
|
-
|
|
28718
|
-
|
|
28719
|
-
|
|
28720
|
-
|
|
28721
|
-
|
|
28722
|
-
|
|
28723
|
-
|
|
28724
|
-
|
|
28725
|
-
|
|
28726
|
-
|
|
28727
|
-
|
|
28728
|
-
|
|
28729
|
-
|
|
28730
|
-
|
|
28731
|
-
|
|
28732
|
-
|
|
28733
|
-
|
|
28734
|
-
|
|
28735
|
-
|
|
28692
|
+
Wi as $,
|
|
28693
|
+
vo as A,
|
|
28694
|
+
Lo as B,
|
|
28695
|
+
Vo as C,
|
|
28696
|
+
wi as D,
|
|
28697
|
+
io as E,
|
|
28698
|
+
Jr as F,
|
|
28699
|
+
Oo as G,
|
|
28700
|
+
Io as H,
|
|
28701
|
+
jo as I,
|
|
28702
|
+
Bo as J,
|
|
28703
|
+
uo as K,
|
|
28704
|
+
ho as L,
|
|
28705
|
+
dr as M,
|
|
28706
|
+
ga as N,
|
|
28707
|
+
go as O,
|
|
28708
|
+
ko as P,
|
|
28709
|
+
qo as Q,
|
|
28710
|
+
xa as R,
|
|
28711
|
+
Sa as S,
|
|
28712
|
+
ao as T,
|
|
28713
|
+
Wo as U,
|
|
28714
|
+
Ko as V,
|
|
28715
|
+
Go as W,
|
|
28716
|
+
Yo as X,
|
|
28717
|
+
Zo as Y,
|
|
28718
|
+
xo as Z,
|
|
28719
|
+
Do as _,
|
|
28720
|
+
Xo as a,
|
|
28721
|
+
_a as a0,
|
|
28722
|
+
Uo as a1,
|
|
28723
|
+
wa as a2,
|
|
28724
|
+
Qa as a3,
|
|
28725
|
+
rl as a4,
|
|
28726
|
+
Po as a5,
|
|
28727
|
+
$i as a6,
|
|
28728
|
+
_o as a7,
|
|
28729
|
+
Ho as a8,
|
|
28730
|
+
so as a9,
|
|
28731
|
+
Jo as aa,
|
|
28732
|
+
wo as ab,
|
|
28733
|
+
lo as ac,
|
|
28734
|
+
qi as ad,
|
|
28735
|
+
Fi as ae,
|
|
28736
|
+
En as af,
|
|
28737
|
+
tl as ag,
|
|
28738
|
+
Fo as ah,
|
|
28739
|
+
fo as ai,
|
|
28736
28740
|
Bi as b,
|
|
28737
28741
|
Ze as c,
|
|
28738
|
-
|
|
28739
|
-
|
|
28740
|
-
|
|
28741
|
-
|
|
28742
|
-
|
|
28743
|
-
|
|
28744
|
-
|
|
28745
|
-
|
|
28746
|
-
|
|
28747
|
-
|
|
28748
|
-
|
|
28749
|
-
|
|
28750
|
-
|
|
28751
|
-
|
|
28752
|
-
|
|
28753
|
-
|
|
28754
|
-
|
|
28755
|
-
|
|
28756
|
-
|
|
28757
|
-
|
|
28758
|
-
|
|
28759
|
-
|
|
28760
|
-
|
|
28742
|
+
yo as d,
|
|
28743
|
+
To as e,
|
|
28744
|
+
Eo as f,
|
|
28745
|
+
Qi as g,
|
|
28746
|
+
So as h,
|
|
28747
|
+
Bt as i,
|
|
28748
|
+
$o as j,
|
|
28749
|
+
zo as k,
|
|
28750
|
+
Qo as l,
|
|
28751
|
+
Mo as m,
|
|
28752
|
+
Ao as n,
|
|
28753
|
+
Co as o,
|
|
28754
|
+
Ro as p,
|
|
28755
|
+
no as q,
|
|
28756
|
+
el as r,
|
|
28757
|
+
Za as s,
|
|
28758
|
+
No as t,
|
|
28759
|
+
mo as u,
|
|
28760
|
+
co as v,
|
|
28761
|
+
po as w,
|
|
28762
|
+
oo as x,
|
|
28763
|
+
ya as y,
|
|
28764
|
+
bo as z
|
|
28761
28765
|
};
|