From a6548f7b364e403d5265a0015003021b5c11f004 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Wed, 6 Nov 2024 13:57:54 +0800 Subject: [PATCH 1/2] Fix: validasi Deksripsi: - Penambahan fitur kirim ulang kode ## No Issue --- package.json | 5 +- src/app/dev/auth/validasi/[id]/page.tsx | 4 +- src/app/zCoba/page.tsx | 11 +- src/app_modules/auth/fun/fun_resend_code.ts | 40 + src/app_modules/auth/fun/index.ts | 3 + src/app_modules/auth/validasi/view.tsx | 75 +- .../check_cookies/layout_cek_cookies.tsx | 8 +- src/app_modules/zCoba/coba_realtime.tsx | 48 ++ src/app_modules/zCoba/index.tsx | 158 ++-- src/lib/envs.ts | 2 +- yarn.lock | 710 +++++++++--------- 11 files changed, 580 insertions(+), 484 deletions(-) create mode 100644 src/app_modules/auth/fun/fun_resend_code.ts create mode 100644 src/app_modules/auth/fun/index.ts create mode 100644 src/app_modules/zCoba/coba_realtime.tsx diff --git a/package.json b/package.json index 40893592..ef27deb7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hipmi", - "version": "1.0.12", + "version": "1.1.0", "private": true, "prisma": { "seed": "npx tsx prisma/seed.ts" @@ -88,7 +88,6 @@ "utf-8-validate": "^6.0.3", "uuid": "^9.0.1", "wibu": "bipproduction/wibu", - "wibu-realtime": "bipproduction/wibu-realtime", "yaml": "^2.3.2" } -} \ No newline at end of file +} diff --git a/src/app/dev/auth/validasi/[id]/page.tsx b/src/app/dev/auth/validasi/[id]/page.tsx index a09b59c2..508c0f49 100644 --- a/src/app/dev/auth/validasi/[id]/page.tsx +++ b/src/app/dev/auth/validasi/[id]/page.tsx @@ -6,7 +6,7 @@ import { RouterAuth } from "@/app/lib/router_hipmi/router_auth"; export default async function Page({ params }: { params: { id: string } }) { let kodeId = params.id; const dataOtp = await auth_getCodeOtpByNumber({ kodeId: kodeId }); - if (dataOtp === null) return redirect(RouterAuth.login); + // if (dataOtp === null) return redirect(RouterAuth.login); - return ; + return ; } diff --git a/src/app/zCoba/page.tsx b/src/app/zCoba/page.tsx index daab8eca..cfa7cd65 100644 --- a/src/app/zCoba/page.tsx +++ b/src/app/zCoba/page.tsx @@ -1,16 +1,17 @@ -import ComponentGlobal_HeaderTamplate from "@/app_modules/_global/header_tamplate"; -import UIGlobal_LayoutTamplate from "@/app_modules/_global/ui/ui_layout_tamplate"; -import Coba_TestLoading from "@/app_modules/zCoba"; -import { Text } from "@mantine/core"; +import { funGetUserIdByToken } from "@/app_modules/_global/fun/get"; +import { CobaRealtime } from "@/app_modules/zCoba/coba_realtime"; export default async function Page() { await new Promise((a, b) => { setTimeout(a, 3000); }); + const userLoginId = await funGetUserIdByToken(); + return ( <> - + + {/* */} {/* */} ); diff --git a/src/app_modules/auth/fun/fun_resend_code.ts b/src/app_modules/auth/fun/fun_resend_code.ts new file mode 100644 index 00000000..2f645761 --- /dev/null +++ b/src/app_modules/auth/fun/fun_resend_code.ts @@ -0,0 +1,40 @@ +"use server"; + +import { prisma } from "@/app/lib"; +import { randomOTP } from "./rondom_otp"; + +export async function auth_funResendCode({ nomor }: { nomor: string }) { + const codeOtp = randomOTP(); + + try { + const res = await fetch( + `https://wa.wibudev.com/code?nom=${nomor}&text=HIPMI - Kode ini bersifat RAHASIA dan JANGAN DI BAGIKAN KEPADA SIAPAPUN, termasuk anggota ataupun pengurus HIPMI lainnya. + \n + >> Kode OTP anda: ${codeOtp}. + ` + ); + + const sendWa = await res.json(); + if (sendWa.status !== "success") + return { status: 400, message: "WA Tidak Terdaftar", kodeId: {} }; + + const createOtpId = await prisma.kodeOtp.create({ + data: { + nomor: nomor, + otp: codeOtp, + }, + }); + + if (!createOtpId) + return { status: 400, message: "Gagal Membuat Kode OTP", kodeId: {} }; + + return { + status: 200, + message: "Kode Verifikasi Dikirim", + kodeId: createOtpId.id, + }; + } catch (error) { + console.log(error); + return { status: 500, message: "Server Error !!!", kodeId: {} }; + } +} diff --git a/src/app_modules/auth/fun/index.ts b/src/app_modules/auth/fun/index.ts new file mode 100644 index 00000000..eb86088a --- /dev/null +++ b/src/app_modules/auth/fun/index.ts @@ -0,0 +1,3 @@ +import { auth_funResendCode } from "./fun_resend_code"; + +export { auth_funResendCode }; diff --git a/src/app_modules/auth/validasi/view.tsx b/src/app_modules/auth/validasi/view.tsx index 23ccf333..8bdeef14 100644 --- a/src/app_modules/auth/validasi/view.tsx +++ b/src/app_modules/auth/validasi/view.tsx @@ -3,15 +3,16 @@ import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; import { RouterAuth } from "@/app/lib/router_hipmi/router_auth"; import { RouterHome } from "@/app/lib/router_hipmi/router_home"; +import { GlobalEnv } from "@/app/lib/token"; import { AccentColor, MainColor, } from "@/app_modules/_global/color/color_pallet"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; +import { UIGlobal_LayoutDefault } from "@/app_modules/_global/ui"; import { ActionIcon, - BackgroundImage, Box, Button, Center, @@ -20,23 +21,33 @@ import { Text, Title, } from "@mantine/core"; -import { useFocusTrap } from "@mantine/hooks"; +import { useFocusTrap, useShallowEffect } from "@mantine/hooks"; +import { Prisma } from "@prisma/client"; import { IconChevronLeft } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; +import { auth_funResendCode } from "../fun"; import { auth_funDeleteAktivasiKodeOtpById } from "../fun/fun_edit_aktivasi_kode_otp_by_id"; import { auth_funValidasi } from "../fun/fun_validasi"; -import { GlobalEnv } from "@/app/lib/token"; -import { UIGlobal_LayoutDefault } from "@/app_modules/_global/ui"; -export default function Validasi({ dataOtp }: { dataOtp: any }) { +export default function Validasi({ + dataOtp, +}: { + dataOtp: Prisma.KodeOtpSelect; +}) { const router = useRouter(); - const [nomor, setnomor] = useState(dataOtp.nomor); - const [code, setCode] = useState(dataOtp.otp); + const nomor = dataOtp.nomor as any; + const code = dataOtp.otp as any; const [inputCode, setInputOtp] = useState(""); const focusTrapRef = useFocusTrap(); const [loading, setLoading] = useState(false); + const [counter, setCounter] = useState(60); + + useShallowEffect(() => { + counter > 0 && setTimeout(() => setCounter(counter - 1), 1000); + }, [counter]); + async function onVerifikasi() { if (!inputCode) return ComponentGlobal_NotifikasiPeringatan("Lengkapi Kode"); @@ -48,7 +59,9 @@ export default function Validasi({ dataOtp }: { dataOtp: any }) { HIPMI_PWD: GlobalEnv.value?.WIBU_PWD as string, }); if (res.status === 200) { - const resAktivasi = await auth_funDeleteAktivasiKodeOtpById(dataOtp.id); + const resAktivasi = await auth_funDeleteAktivasiKodeOtpById( + dataOtp.id as any + ); if (resAktivasi.status === 200) { if (res.role === "1") { ComponentGlobal_NotifikasiBerhasil(res.message); @@ -85,6 +98,16 @@ export default function Validasi({ dataOtp }: { dataOtp: any }) { router.back(); } + async function onResendCode() { + const res = await auth_funResendCode({ nomor: nomor }); + if (res.status === 200) { + ComponentGlobal_NotifikasiBerhasil(res.message, 2000); + router.push(RouterAuth.validasi + res.kodeId, { scroll: false }); + } else { + ComponentGlobal_NotifikasiPeringatan(res.message); + } + } + return ( <> @@ -102,24 +125,25 @@ export default function Validasi({ dataOtp }: { dataOtp: any }) { - + Verifikasi Kode OTP - - - Masukan 4 digit kode otp - - - Yang dikirim ke{" "} - - {" "} - +{nomor} + + + Masukan 4 digit kode otp + + Yang dikirim ke{" "} + + {" "} + +{nomor} + - +
+ + + Tidak menerima kode ?{" "} + {counter > 0 ? ( + + {counter + "s"} + + ) : ( + onResendCode()}> + Kirim ulang + + )} +
+
+ + ); +} diff --git a/src/app_modules/zCoba/index.tsx b/src/app_modules/zCoba/index.tsx index 67a35fc7..0f23eeb6 100644 --- a/src/app_modules/zCoba/index.tsx +++ b/src/app_modules/zCoba/index.tsx @@ -1,17 +1,14 @@ "use client"; -import { - ActionIcon, - Box, - Button, - Stack -} from "@mantine/core"; +import { ActionIcon, Box, Button, Stack, Title } from "@mantine/core"; import { useState } from "react"; import { IconPencilPlus } from "@tabler/icons-react"; import _ from "lodash"; import UIGlobal_LayoutTamplate from "../_global/ui/ui_layout_tamplate"; - +import { useShallowEffect } from "@mantine/hooks"; +import { WibuRealtime } from "wibu"; +import { v4 } from "uuid"; const newData = Array(20) .fill(0) @@ -35,89 +32,84 @@ const data2 = [ }, ]; -export default function Coba_TestLoading() { - const [data, setData] = useState(data2); +export default function Coba_TestLoading({ + userLoginId, +}: { + userLoginId: string; +}) { + // const [data, setData] = useState(data2); const [openDrawer, setOpenDrawer] = useState(false); + const [newData, setNewData] = useState({}); + + useShallowEffect(() => { + WibuRealtime.init({ + WIBU_REALTIME_TOKEN: process.env.WIBU_REALTIME_KEY as any, + project: "hipmi", + onData(data) { + console.log(data); + }, + }); + + return () => { + WibuRealtime.cleanup(); + }; + }, []); return ( <> - - {/* */} - - - + + User {userLoginId} + + ); + // return ( + // <> + // + // {/* */} + // + // + // + // ); + // Clone data - return ( - <> - - - - + // return ( + // <> + // + // + // + // -
{JSON.stringify(data, null, 2)}
-
- - ); -} - -function CreateButton() { - return ( - <> - - - - - {/* - {}} - > - - - */} - - ); + //
{JSON.stringify(data, null, 2)}
+ //
+ // + // ); } diff --git a/src/lib/envs.ts b/src/lib/envs.ts index 09387beb..8590bd47 100644 --- a/src/lib/envs.ts +++ b/src/lib/envs.ts @@ -5,5 +5,5 @@ Client_KEY : process.env.Client_KEY, Server_KEY : process.env.Server_KEY, MAPBOX_TOKEN : process.env.MAPBOX_TOKEN, WS_APIKEY : process.env.WS_APIKEY, -WIBU_REALTIME_KEY : process.env.WIBU_REALTIME_KEY +NEXT_PUBLIC_WIBU_REALTIME_TOKEN : process.env.NEXT_PUBLIC_WIBU_REALTIME_TOKEN } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index bf084072..689b9e6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -428,6 +428,14 @@ dependencies: "@floating-ui/utils" "^0.2.7" +"@floating-ui/dom@^1.0.0": + version "1.6.12" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" + integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.8" + "@floating-ui/dom@^1.2.1": version "1.6.10" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.10.tgz#b74c32f34a50336c86dcf1f1c845cf3a39e26d6f" @@ -443,6 +451,13 @@ dependencies: "@floating-ui/dom" "^1.2.1" +"@floating-ui/react-dom@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.2.tgz#a1349bbf6a0e5cb5ded55d023766f20a4d439a31" + integrity sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A== + dependencies: + "@floating-ui/dom" "^1.0.0" + "@floating-ui/react@^0.19.1": version "0.19.2" resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.19.2.tgz#c6e4d2097ed0dca665a7c042ddf9cdecc95e9412" @@ -452,11 +467,25 @@ aria-hidden "^1.1.3" tabbable "^6.0.1" +"@floating-ui/react@^0.26.9": + version "0.26.27" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.27.tgz#402f7b4b2702650662705fe9cbe0f1d5607846a1" + integrity sha512-jLP72x0Kr2CgY6eTYi/ra3VA9LOkTo4C+DUTrbFgFOExKy3omYVmwMjNKqxAHdsnyLS96BIDLcO2SlnsNf8KUQ== + dependencies: + "@floating-ui/react-dom" "^2.1.2" + "@floating-ui/utils" "^0.2.8" + tabbable "^6.0.0" + "@floating-ui/utils@^0.2.7": version "0.2.7" resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.7.tgz#d0ece53ce99ab5a8e37ebdfe5e32452a2bfc073e" integrity sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA== +"@floating-ui/utils@^0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62" + integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig== + "@google/generative-ai@^0.19.0": version "0.19.0" resolved "https://registry.yarnpkg.com/@google/generative-ai/-/generative-ai-0.19.0.tgz#02cb718e596d390e5356dfb71ab8316acca72a41" @@ -498,23 +527,6 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@javascript-obfuscator/escodegen@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz#ff7eb7f8a7c004532e93b14ae8b2196dcf9a1a9e" - integrity sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw== - dependencies: - "@javascript-obfuscator/estraverse" "^5.3.0" - esprima "^4.0.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -"@javascript-obfuscator/estraverse@5.4.0", "@javascript-obfuscator/estraverse@^5.3.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz#6ddb28617356cfce9046a820f72af029f1bb5287" - integrity sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w== - "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" @@ -534,14 +546,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" @@ -580,6 +584,18 @@ react-remove-scroll "^2.5.5" react-textarea-autosize "8.3.4" +"@mantine/core@^7.13.3": + version "7.13.4" + resolved "https://registry.yarnpkg.com/@mantine/core/-/core-7.13.4.tgz#3ee9733d132deeb8d29b12d8e852b2c4f9b4bb7d" + integrity sha512-9I6+SqTq90pnI3WPmOQzQ1PL7IkhQg/5ft8Awhgut8tvk1VaKruDm/K5ysUG3ncHrP+QTI2UHYjNlUrux6HKlw== + dependencies: + "@floating-ui/react" "^0.26.9" + clsx "^2.1.1" + react-number-format "^5.3.1" + react-remove-scroll "^2.5.7" + react-textarea-autosize "8.5.3" + type-fest "^4.12.0" + "@mantine/dates@^6.0.17": version "6.0.22" resolved "https://registry.yarnpkg.com/@mantine/dates/-/dates-6.0.22.tgz#e6f2325705c8355ca7416ab4039db4fe065f62f2" @@ -612,6 +628,11 @@ resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-7.12.1.tgz#a2b402b02eb2f8bb64739656dce87e00935f92f8" integrity sha512-YPA3qiMHJkWID5+YzakBaLvjHtX3Fg3PdPY49iIb/CaWM9+lrJ+77TOVS7bsY7ZTBHXUfzft1/6Woqt3xSuweA== +"@mantine/hooks@^7.13.3": + version "7.13.4" + resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-7.13.4.tgz#2e4a8aa910a1d9cfc8ad513b33d3a483a41c7f88" + integrity sha512-B2QCegQyWlLdenVNaLNK8H9cTAjLW9JKJ3xWg+ShhpjZDHT2hjZz4L0Nt071Z7mPvyAaOwKGM0FyqTcTjdECfg== + "@mantine/next@^6.0.17": version "6.0.22" resolved "https://registry.yarnpkg.com/@mantine/next/-/next-6.0.22.tgz#71fc93b8a3ae24d10f292502fa211b5916ab58cb" @@ -1742,7 +1763,7 @@ "@types/connect" "*" "@types/node" "*" -"@types/cli-progress@^3.11.5", "@types/cli-progress@^3.11.6": +"@types/cli-progress@^3.11.5": version "3.11.6" resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.6.tgz#94b334ebe4190f710e51c1bf9b4fedb681fa9e45" integrity sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA== @@ -1883,11 +1904,6 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/mustache@^4.2.5": version "4.2.5" resolved "https://registry.yarnpkg.com/@types/mustache/-/mustache-4.2.5.tgz#9129f0d6857f976e00e171bbb3460e4b702f84ef" @@ -2038,10 +2054,12 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== -"@types/validator@^13.11.8": - version "13.12.2" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.2.tgz#760329e756e18a4aab82fc502b51ebdfebbe49f5" - integrity sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA== +"@types/web-push@^3.6.3": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@types/web-push/-/web-push-3.6.4.tgz#4c6e10d3963ba51e7b4b8fff185f43612c0d1346" + integrity sha512-GnJmSr40H3RAnj0s34FNTcJi1hmWFV5KXugE0mYWnYhgTAHLJ/dJKAwDmvPJYMke0RplY2XE9LnM4hqSqKIjhQ== + dependencies: + "@types/node" "*" "@types/ws@^8.5.10", "@types/ws@^8.5.9": version "8.5.12" @@ -2055,7 +2073,7 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^17.0.32", "@types/yargs@^17.0.33": +"@types/yargs@^17.0.32": version "17.0.33" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== @@ -2135,12 +2153,7 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -acorn@8.8.2: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.11.0, acorn@^8.12.1, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== @@ -2152,6 +2165,13 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + agentkeepalive@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" @@ -2308,12 +2328,7 @@ array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: call-bind "^1.0.5" is-array-buffer "^3.0.4" -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: +array-includes@^3.0.2, array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== @@ -2374,6 +2389,19 @@ array.prototype.flatmap@^1.3.2: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" + array.prototype.tosorted@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" @@ -2399,10 +2427,15 @@ arraybuffer.prototype.slice@^1.0.3: is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +asn1.js@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1js@^3.0.1, asn1js@^3.0.5: version "3.0.5" @@ -2413,16 +2446,6 @@ asn1js@^3.0.1, asn1js@^3.0.5: pvutils "^1.1.3" tslib "^2.4.0" -assert@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== - dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2585,6 +2608,11 @@ blessed@^0.1.81: resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" integrity sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ== +bn.js@^4.0.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + bottleneck@^2.15.3: version "2.19.5" resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" @@ -2641,6 +2669,11 @@ browserslist@^4.21.5, browserslist@^4.23.1: node-releases "^2.0.18" update-browserslist-db "^1.1.0" +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2754,14 +2787,6 @@ cardinal@^2.1.1: ansicolors "~0.3.2" redeyed "~2.1.0" -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2782,31 +2807,24 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -chance@1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.9.tgz#fbf409726a956415b4bde0e8db010f60b60fc01b" - integrity sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ== - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - char-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081" integrity sha512-acv43vqJ0+N0rD+Uw3pDHSxP30FHrywu2NO6/wBaHChJIizpDeBUd6NjqhNhy9LGaEAhZAXn46QzmlAvIWd16g== -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - charm@~0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" @@ -2837,15 +2855,6 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -class-validator@0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.1.tgz#ff2411ed8134e9d76acfeb14872884448be98110" - integrity sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ== - dependencies: - "@types/validator" "^13.11.8" - libphonenumber-js "^1.10.53" - validator "^13.9.0" - classnames@^2.2.5: version "2.5.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" @@ -2896,7 +2905,7 @@ clsx@^1.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -clsx@^2.0.0: +clsx@^2.0.0, clsx@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== @@ -2955,16 +2964,6 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" - integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -3062,11 +3061,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - crypto-js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" @@ -3169,6 +3163,11 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +dedent@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + deep-equal@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" @@ -3205,7 +3204,7 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.13" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -3370,6 +3369,13 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + echarts-for-react@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/echarts-for-react/-/echarts-for-react-3.0.2.tgz#ac5859157048a1066d4553e34b328abb24f2b7c1" @@ -3470,7 +3476,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: version "1.23.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== @@ -3522,6 +3528,11 @@ es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23 unbox-primitive "^1.0.2" which-typed-array "^1.1.15" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" @@ -3601,10 +3612,20 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== +es7-shim@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/es7-shim/-/es7-shim-6.0.0.tgz#0c430b40b8505ad15570721a8d8dd4eb0c553155" + integrity sha512-aiQ/QyJBVJbabtsSediM1S4qI+P3p8F5J5YR5o/bH003BCnnclzxK9pi5Qd2Hg01ktAtZCaQBdejHrkOBGwf5Q== + dependencies: + array-includes "^3.0.2" + object.entries "^1.0.3" + object.getownpropertydescriptors "^2.0.2" + object.values "^1.0.3" + string-at "^1.0.1" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" @@ -3621,17 +3642,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - eslint-config-next@13.4.12: version "13.4.12" resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.12.tgz#a42ed2f590855a0481c8bbec49e26db56ad3793f" @@ -3751,14 +3761,6 @@ eslint-plugin-react@^7.31.7: string.prototype.matchall "^4.0.11" string.prototype.repeat "^1.0.0" -eslint-scope@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-scope@^7.2.0: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -3767,11 +3769,6 @@ eslint-scope@^7.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -3829,7 +3826,7 @@ espree@^9.6.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.1, esprima@~4.0.0: +esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3900,7 +3897,7 @@ extend@^3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3926,7 +3923,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -4353,6 +4350,14 @@ has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== +hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" @@ -4447,6 +4452,11 @@ http-parser-js@^0.5.2: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== +http_ece@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.2.0.tgz#84d5885f052eae8c9b075eee4d2eb5105f114479" + integrity sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA== + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -4455,6 +4465,14 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +https-proxy-agent@^7.0.0: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -4507,7 +4525,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4533,11 +4551,6 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -inversify@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/inversify/-/inversify-6.0.1.tgz#b20d35425d5d8c5cd156120237aad0008d969f02" - integrity sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ== - iron-session@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/iron-session/-/iron-session-6.3.1.tgz#9c8b331acc0f9561dd0f942b089e8197576a03de" @@ -4558,7 +4571,7 @@ iron-webcrypto@^0.2.5: dependencies: buffer "^6" -is-arguments@^1.0.4, is-arguments@^1.1.1: +is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -4613,11 +4626,6 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-bun-module@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.1.0.tgz#a66b9830869437f6cdad440ba49ab6e4dc837269" @@ -4680,7 +4688,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-function@^1.0.10, is-generator-function@^1.0.7: +is-generator-function@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== @@ -4699,14 +4707,6 @@ is-map@^2.0.2, is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== -is-nan@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - is-negative-zero@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" @@ -4770,7 +4770,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.13, is-typed-array@^1.1.3: +is-typed-array@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== @@ -4847,35 +4847,6 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -javascript-obfuscator@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/javascript-obfuscator/-/javascript-obfuscator-4.1.1.tgz#489dec97d25bf74e4fd1a20139127eb775318ee2" - integrity sha512-gt+KZpIIrrxXHEQGD8xZrL8mTRwRY0U76/xz/YX0gZdPrSqQhT/c7dYLASlLlecT3r+FxE7je/+C0oLnTDCx4A== - dependencies: - "@javascript-obfuscator/escodegen" "2.3.0" - "@javascript-obfuscator/estraverse" "5.4.0" - acorn "8.8.2" - assert "2.0.0" - chalk "4.1.2" - chance "1.1.9" - class-validator "0.14.1" - commander "10.0.0" - eslint-scope "7.1.1" - eslint-visitor-keys "3.3.0" - fast-deep-equal "3.1.3" - inversify "6.0.1" - js-string-escape "1.0.1" - md5 "2.3.0" - mkdirp "2.1.3" - multimatch "5.0.0" - opencollective-postinstall "2.0.3" - process "0.11.10" - reflect-metadata "0.1.13" - source-map-support "0.5.21" - string-template "1.0.0" - stringz "2.1.0" - tslib "2.5.0" - jay-peg@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/jay-peg/-/jay-peg-1.0.2.tgz#17a54d386e472f5f313f3d6e88770b170ea569f4" @@ -4898,24 +4869,11 @@ jotai@^2.4.3: resolved "https://registry.yarnpkg.com/jotai/-/jotai-2.9.3.tgz#abcae49a737cd50e3144a6c9eb39840db077c727" integrity sha512-IqMWKoXuEzWSShjd9UhalNsRGbdju5G2FrqNLQJT+Ih6p41VNYe2sav5hnwQx4HJr25jq9wRqvGSWGviGG6Gjw== -js-confuser@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/js-confuser/-/js-confuser-1.7.3.tgz#35d73b8ab6da51004373041990f8eeca9d1dae61" - integrity sha512-tavbUa6fXGCv8l346hdnCmoMnoBnYCbbCVFOv2BkcOQ60TE6KUTShOMKdiNgYxrrUUvnC2+7veAOJLFC/ewWmQ== - dependencies: - acorn "^8.12.1" - escodegen "^2.1.0" - js-sdsl@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== -js-string-escape@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4963,6 +4921,15 @@ json-stringify-pretty-compact@^3.0.0: resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz#f71ef9d82ef16483a407869556588e91b681d9ab" integrity sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA== +json-to-ts@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json-to-ts/-/json-to-ts-2.1.0.tgz#c68c0b210a811e8dccbe2752e68efbc0ca62bfc5" + integrity sha512-JeScjtIGYAxQVxEYgQUKROU0329eS+rsTSviGtuKiwKuXpcIU7DxhDYm2tey0vcBetwc9kD0+YHDI5KvEexMew== + dependencies: + es7-shim "^6.0.0" + hash.js "^1.0.3" + pluralize "^3.1.0" + json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -4985,6 +4952,23 @@ json5@^2.2.3: object.assign "^4.1.4" object.values "^1.1.6" +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + kdbush@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39" @@ -5022,19 +5006,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libphonenumber-js@^1.10.53: - version "1.11.9" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.11.9.tgz#e653042b11da2b50b7ea3b206fa7ca998436ae99" - integrity sha512-Zs5wf5HaWzW2/inlupe2tstl0I/Tbqo7lH20ZLr6Is58u7Dz2n+gRFGNlj9/gWxFvNfp9+YyDsiegjNhdixB9A== - lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -5217,15 +5188,6 @@ marked@^4.0.12: resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== -md5@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - mdurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" @@ -5291,6 +5253,11 @@ mimic-response@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5305,7 +5272,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8, minimist@~1.2.5: +minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8, minimist@~1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -5335,11 +5302,6 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" - integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== - mkdirp@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -5391,17 +5353,6 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multimatch@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" - integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - multipipe@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-1.0.2.tgz#cc13efd833c9cda99f224f868461b8e1a3fd939d" @@ -5444,6 +5395,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +net@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/net/-/net-1.0.2.tgz#d1757ec9a7fb2371d83cf4755ce3e27e10829388" + integrity sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ== + next-dev@^1.1.9: version "1.2.8" resolved "https://registry.yarnpkg.com/next-dev/-/next-dev-1.2.8.tgz#27f8838b0767e4d7b7716d3dfbec4b17decc2782" @@ -5631,7 +5587,7 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== -object-is@^1.0.1, object-is@^1.1.5: +object-is@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== @@ -5659,7 +5615,7 @@ object.assign@^4.1.4, object.assign@^4.1.5: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.8: +object.entries@^1.0.3, object.entries@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== @@ -5678,6 +5634,19 @@ object.fromentries@^2.0.7, object.fromentries@^2.0.8: es-abstract "^1.23.2" es-object-atoms "^1.0.0" +object.getownpropertydescriptors@^2.0.2: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + object.groupby@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" @@ -5687,7 +5656,7 @@ object.groupby@^1.0.1: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: +object.values@^1.0.3, object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== @@ -5737,11 +5706,6 @@ openai@^4.60.0: formdata-node "^4.3.2" node-fetch "^2.6.7" -opencollective-postinstall@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - optimist@0.2: version "0.2.8" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.2.8.tgz#e981ab7e268b457948593b55674c099a815cac31" @@ -5756,18 +5720,6 @@ optimist@~0.3.4: dependencies: wordwrap "~0.0.2" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -5940,6 +5892,11 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pluralize@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-3.1.0.tgz#84213d0a12356069daa84060c559242633161368" + integrity sha512-2wcybwjwXOzGI1rlxWtlcs0/nSYK0OzNPqsg35TKxJFQlGhFu3cZ1x7EHS4r4bubQlhzyF4YxxlJqQnIhkUQCw== + png-js@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/png-js/-/png-js-0.1.1.tgz#1cc7c212303acabe74263ec3ac78009580242d93" @@ -6040,11 +5997,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier@^3.3.0: version "3.3.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" @@ -6069,7 +6021,7 @@ process-nextick-args@^2.0.1, process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@0.11.10, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -6395,6 +6347,11 @@ react-map-gl@^7.1.7: "@maplibre/maplibre-gl-style-spec" "^19.2.1" "@types/mapbox-gl" ">=1.0.0" +react-number-format@^5.3.1: + version "5.4.2" + resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-5.4.2.tgz#aec282241f36cee31da13dc5e0f364c0fc6902ab" + integrity sha512-cg//jVdS49PYDgmcYoBnMMHl4XNTMuV723ZnHD2aXYtWWWqbVF3hjQ8iB+UZEuXapLbeA8P8H+1o6ZB1lcw3vg== + react-pdf@^9.0.0, react-pdf@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/react-pdf/-/react-pdf-9.1.0.tgz#2a1456646d2eb4e4a246e83121d195775bbfa5dc" @@ -6442,6 +6399,17 @@ react-remove-scroll@^2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-remove-scroll@^2.5.7: + version "2.6.0" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz#fb03a0845d7768a4f1519a99fdb84983b793dc07" + integrity sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ== + dependencies: + react-remove-scroll-bar "^2.3.6" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + react-responsive-carousel@^3.2.23: version "3.2.23" resolved "https://registry.yarnpkg.com/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz#4c0016ff54603e604bb5c1f9e7ef2d1eda133f1d" @@ -6469,6 +6437,15 @@ react-textarea-autosize@8.3.4: use-composed-ref "^1.3.0" use-latest "^1.2.1" +react-textarea-autosize@8.5.3: + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + react-toastify@^9.1.3: version "9.1.3" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-9.1.3.tgz#1e798d260d606f50e0fab5ee31daaae1d628c5ff" @@ -6569,11 +6546,6 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -reflect-metadata@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - reflect.getprototypeof@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" @@ -6706,16 +6678,16 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - safe-regex-test@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" @@ -6725,6 +6697,11 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + sax@>=0.6.0: version "1.4.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" @@ -6910,24 +6887,11 @@ source-map-js@^1.0.2, source-map-js@^1.2.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -source-map-support@0.5.21, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - sparkline@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/sparkline/-/sparkline-0.1.2.tgz#c3bde46252b1354e710c4b200d54816bd9f07a32" @@ -6960,10 +6924,13 @@ streamsearch@^1.1.0: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -string-template@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" - integrity sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg== +string-at@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/string-at/-/string-at-1.1.0.tgz#332e090c5724418266a27a09394924b9fad41275" + integrity sha512-jCpPowWKBn0NFdvtmK2qxK40Ol4jPcgCt8qYnKpPx6B5eDwHMDhRvq9MCsDEgsOTNtbXY6beAMHMRT2qPJXllA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" @@ -7009,6 +6976,26 @@ string.prototype.matchall@^4.0.11: set-function-name "^2.0.2" side-channel "^1.0.6" +string.prototype.padend@^3.0.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" + integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +string.prototype.padstart@^3.0.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.6.tgz#bda3b28098270e1e285e08318e47ad53bc601ffd" + integrity sha512-1y15lz7otgfRTAVK5qbp3eHIga+w8j7+jIH+7HpUrOfnLVl6n0hbspi4EXf4tR+PNOpBjPstltemkx0SvViOCg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + string.prototype.repeat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" @@ -7027,7 +7014,7 @@ string.prototype.trim@^1.2.9: es-abstract "^1.23.0" es-object-atoms "^1.0.0" -string.prototype.trimend@^1.0.8: +string.prototype.trimend@^1.0.3, string.prototype.trimend@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== @@ -7036,7 +7023,25 @@ string.prototype.trimend@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.8: +string.prototype.trimleft@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.3.tgz#dee305118117d0a1843c1fc0d38d5d0754d83c60" + integrity sha512-699Ibssmj/awVzvdNk4g83/Iu8U9vDohzmA/ly2BrQWGhamuY4Tlvs5XKmKliDt3ky6SKbE1bzPhASKCFlx9Sg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimstart "^1.0.3" + +string.prototype.trimright@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.3.tgz#dc16a21d7456cbc8b2c54d47fe01f06d9efe94eb" + integrity sha512-hoOq56oRFnnfDuXNy2lGHiwT77MehHv9d0zGfRZ8QdC+4zjrkFB9vd5i/zYTd/ymFBd4YxtbdgHt3U6ksGeuBw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimend "^1.0.3" + +string.prototype.trimstart@^1.0.3, string.prototype.trimstart@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== @@ -7064,13 +7069,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringz@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c" - integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== - dependencies: - char-regex "^1.0.2" - "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -7212,7 +7210,7 @@ svg-arc-to-cubic-bezier@^3.0.0, svg-arc-to-cubic-bezier@^3.2.0: resolved "https://registry.yarnpkg.com/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz#390c450035ae1c4a0104d90650304c3bc814abe6" integrity sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g== -tabbable@^6.0.1: +tabbable@^6.0.0, tabbable@^6.0.1: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== @@ -7267,16 +7265,6 @@ term-canvas@0.0.5: resolved "https://registry.yarnpkg.com/term-canvas/-/term-canvas-0.0.5.tgz#597afac2fa6369a6f17860bce9c5f66d6ea0ca96" integrity sha512-eZ3rIWi5yLnKiUcsW8P79fKyooaLmyLWAGqBhFspqMxRNUiB4GmHHk5AzQ4LxvFbJILaXqQZLwbbATLOhCFwkw== -terser@^5.33.0: - version "5.33.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.33.0.tgz#8f9149538c7468ffcb1246cfec603c16720d2db1" - integrity sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -7341,6 +7329,11 @@ tippy.js@^6.3.7: dependencies: "@popperjs/core" "^2.9.0" +tls@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tls/-/tls-0.0.1.tgz#0ab2bf5968d71df2f8c0e1515d24a2240b98aac8" + integrity sha512-GzHpG+hwupY8VMR6rYsnAhTHqT/97zT45PG8WD5eTT1lq+dFE0nN+1PYpsoBcHJgSmTz5ceK2Cv88IkPmIPOtQ== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -7397,11 +7390,6 @@ tslib@2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== -tslib@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tslib@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -7436,18 +7424,16 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^4.12.0: + version "4.26.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e" + integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg== + typed-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" @@ -7644,17 +7630,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - uuid-parse@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/uuid-parse/-/uuid-parse-1.1.0.tgz#7061c5a1384ae0e1f943c538094597e1b5f3a65b" @@ -7675,11 +7650,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -validator@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" - integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - vite-compatible-readable-stream@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/vite-compatible-readable-stream/-/vite-compatible-readable-stream-3.6.1.tgz#27267aebbdc9893c0ddf65a421279cbb1e31d8cd" @@ -7718,6 +7688,17 @@ watchpack@2.4.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +web-push@^3.6.7: + version "3.6.7" + resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.7.tgz#5f5e645951153e37ef90a6ddea5c150ea0f709e1" + integrity sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A== + dependencies: + asn1.js "^5.3.0" + http_ece "1.2.0" + https-proxy-agent "^7.0.0" + jws "^4.0.0" + minimist "^1.2.5" + web-streams-polyfill@4.0.0-beta.3: version "4.0.0-beta.3" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" @@ -7791,7 +7772,7 @@ which-collection@^1.0.1, which-collection@^1.0.2: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== @@ -7809,44 +7790,39 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wibu-realtime@bipproduction/wibu-realtime: - version "0.0.2" - resolved "https://codeload.github.com/bipproduction/wibu-realtime/tar.gz/869adc04670602b4fccb833e7732d72b2061ee15" - dependencies: - "@supabase/supabase-js" "^2.45.4" - jose "^5.9.2" - react "^18.3.1" - react-dom "^18.3.1" - wibu@bipproduction/wibu: - version "0.1.8" - resolved "https://codeload.github.com/bipproduction/wibu/tar.gz/2de28bed14cccf195f634d3b6f7ba07eccf0f441" + version "0.2.84" + resolved "https://codeload.github.com/bipproduction/wibu/tar.gz/bb8dcee89d743d26e79345a1ee74fba77db8cee3" dependencies: "@google/generative-ai" "^0.19.0" + "@hookstate/core" "^4.0.1" + "@mantine/core" "^7.13.3" + "@mantine/hooks" "^7.13.3" + "@octokit/core" "^6.1.2" "@supabase/supabase-js" "^2.45.4" - "@types/cli-progress" "^3.11.6" "@types/crypto-js" "^4.2.2" "@types/lodash" "^4.17.7" - "@types/yargs" "^17.0.33" + "@types/web-push" "^3.6.3" app-root-path "^3.1.0" - cli-progress "^3.12.0" + colors "^1.4.0" crypto-js "^4.2.0" + dedent "^1.5.3" dotenv "^16.4.5" gpt-3-encoder "^1.1.4" - javascript-obfuscator "^4.1.1" jose "^5.9.2" - js-confuser "^1.7.3" + json-to-ts "^2.1.0" loading-cli "^1.1.2" lodash "^4.17.21" + net "^1.0.2" next "^14.2.13" octokit "^4.0.2" openai "^4.60.0" react "^18.3.1" react-dom "^18.3.1" readdirp "^4.0.1" - terser "^5.33.0" + tls "^0.0.1" typescript "^5.6.2" - yargs "^17.7.2" + web-push "^3.6.7" wide-align@^1.1.2: version "1.1.5" @@ -7855,7 +7831,7 @@ wide-align@^1.1.2: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -word-wrap@^1.2.5, word-wrap@~1.2.3: +word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== From aa612d24bc7cb729db66841bd3a48379cf875f70 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Mon, 11 Nov 2024 17:02:42 +0800 Subject: [PATCH 2/2] Fix: Job Deskripsi: - Fix notifikasi admi to user - Fix count notifikasi di admin dan user ## No Issue --- package.json | 1 + src/app/dev/admin/layout.tsx | 11 +- src/app/layout.tsx | 2 + src/app/lib/global_state.ts | 23 ++ src/app/lib/index.ts | 2 + src/app/lib/realtime_provider.tsx | 49 +++ src/app/zCoba/test1/page.tsx | 55 +++ src/app/zCoba/test2/page.tsx | 48 +++ src/app/zz-makuro/page.tsx | 19 +- .../_component/comp_button_user_on_navbar.tsx | 75 ++++ .../_admin_global/_ui/ui_navbar_admin.tsx | 203 ++++++++++ src/app_modules/admin/_admin_global/index.ts | 5 +- .../admin/job/child/review/index.tsx | 52 +-- src/app_modules/admin/layout.tsx | 4 +- src/app_modules/admin/new_layout.tsx | 351 ++++-------------- src/app_modules/admin/new_list_page.tsx | 12 +- .../fun/create/fun_create_notif_user.ts | 3 +- .../fun/get/fun_check_status_job.ts | 20 + .../fun/get/get_notifikasi_by_user_id.ts | 1 + .../admin/notifikasi/route_setting/job.ts | 39 +- .../route_setting/type_of_select_page.ts | 36 ++ .../admin/notifikasi/ui_drawer_notifikasi.tsx | 259 +++++++------ .../home/component/button_header.tsx | 69 ++-- src/app_modules/home/view_home.tsx | 3 + .../button/comp_button_save_create.tsx | 43 +-- src/app_modules/job/create/view.tsx | 1 - src/app_modules/job/detail/arsip/view.tsx | 4 +- src/app_modules/job/detail/publish/view.tsx | 6 +- .../job/fun/create/fun_create_with_file.ts | 82 +--- src/app_modules/job/global_state/index.ts | 2 - src/app_modules/job/splash/ui_splash.tsx | 7 +- .../notifikasi/component/card_view.tsx | 157 ++++---- .../notifikasi/component/path/job.ts | 51 +-- .../fun/check/fun_check_job_status.ts | 25 ++ .../fun/create/create_notif_to_admin.ts | 5 +- .../fun/get/get_notifiaksi_by_id.ts | 2 +- .../notifikasi/ui/ui_notifiaksi.tsx | 50 +-- src/app_modules/zCoba/coba_realtime.tsx | 32 +- src/app_modules/zCoba/ui_coba_upload_file.tsx | 9 +- src/bin/seeder/user_seeder.json | 2 +- src/util/mqtt_loader.tsx | 2 +- yarn.lock | 57 +++ 42 files changed, 1114 insertions(+), 765 deletions(-) create mode 100644 src/app/lib/global_state.ts create mode 100644 src/app/lib/realtime_provider.tsx create mode 100644 src/app/zCoba/test1/page.tsx create mode 100644 src/app/zCoba/test2/page.tsx create mode 100644 src/app_modules/admin/_admin_global/_component/comp_button_user_on_navbar.tsx create mode 100644 src/app_modules/admin/_admin_global/_ui/ui_navbar_admin.tsx create mode 100644 src/app_modules/admin/notifikasi/fun/get/fun_check_status_job.ts create mode 100644 src/app_modules/admin/notifikasi/route_setting/type_of_select_page.ts create mode 100644 src/app_modules/notifikasi/fun/check/fun_check_job_status.ts diff --git a/package.json b/package.json index ef27deb7..dcaedb90 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "utf-8-validate": "^6.0.3", "uuid": "^9.0.1", "wibu": "bipproduction/wibu", + "wibu-pkg": "^1.0.3", "yaml": "^2.3.2" } } diff --git a/src/app/dev/admin/layout.tsx b/src/app/dev/admin/layout.tsx index 40feb1d4..bc8fd499 100644 --- a/src/app/dev/admin/layout.tsx +++ b/src/app/dev/admin/layout.tsx @@ -13,9 +13,10 @@ export default async function Layout({ const userLoginId = await funGetUserIdByToken(); const dataUser = await funGlobal_getUserById({ userId: userLoginId }); - const listNotif = await adminNotifikasi_getByUserId(); + const listNotifikasi = await adminNotifikasi_getByUserId(); const countNotifikasi = await adminNotifikasi_countNotifikasi(); + return ( <> {/* {children} */} - {children} + + {children} + ); } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3da2327d..5b55d385 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,6 +4,7 @@ import "./globals.css"; import { TokenProvider } from "./lib/token"; import dotenv from "dotenv"; import { ServerEnv } from "./lib/server_env"; +import { RealtimeProvider } from "./lib"; dotenv.config({ path: ".env", }); @@ -45,6 +46,7 @@ export default function RootLayout({ + {children} ); diff --git a/src/app/lib/global_state.ts b/src/app/lib/global_state.ts new file mode 100644 index 00000000..63963eb7 --- /dev/null +++ b/src/app/lib/global_state.ts @@ -0,0 +1,23 @@ +import { atom } from "jotai"; + +export type IRealtimeData = { + status?: "Publish" | "Review" | "Draft" | "Reject"; + appId: string; + userId: string; + pesan: string; + title: string; + kategoriApp: + | "JOB" + | "VOTING" + | "EVENT" + | "DONASI" + | "INVESTASI" + | "COLLABORATION" + | "FORUM"; + userRole?: "USER" | "ADMIN"; +}; + +export const gs_realtimeData = atom(null); +export const gs_admin_ntf = atom(0); +export const gs_user_ntf = atom(0); + diff --git a/src/app/lib/index.ts b/src/app/lib/index.ts index 4d002a66..976acb98 100644 --- a/src/app/lib/index.ts +++ b/src/app/lib/index.ts @@ -4,11 +4,13 @@ import prisma from "./prisma"; import { pathAssetImage } from "./path_asset_image"; import { RouterImagePreview } from "./router_hipmi/router_image_preview"; import { RouterAdminGlobal } from "./router_admin/router_admin_global"; +import RealtimeProvider from "./realtime_provider"; export { DIRECTORY_ID }; export { prisma }; export { APIs }; export { pathAssetImage }; +export { RealtimeProvider }; // Router export { RouterImagePreview }; diff --git a/src/app/lib/realtime_provider.tsx b/src/app/lib/realtime_provider.tsx new file mode 100644 index 00000000..361c4a43 --- /dev/null +++ b/src/app/lib/realtime_provider.tsx @@ -0,0 +1,49 @@ +"use client"; + +import { useShallowEffect } from "@mantine/hooks"; +import { useAtom } from "jotai"; +import { WibuRealtime } from "wibu-pkg"; +import { + gs_admin_ntf, + gs_realtimeData, + gs_user_ntf, + IRealtimeData, +} from "./global_state"; + +export type TypeNotification = { + type: "message" | "notification" + pushNotificationTo: "ADMIN" | "USER"; + dataMessage?: IRealtimeData; + userLoginId?: string; +}; + +const WIBU_REALTIME_TOKEN: any = process.env.NEXT_PUBLIC_WIBU_REALTIME_TOKEN; +export default function RealtimeProvider() { + const [dataRealtime, setDataRealtime] = useAtom(gs_realtimeData); + const [newAdminNtf, setNewAdminNtf] = useAtom(gs_admin_ntf); + const [newUserNtf, setNewUserNtf] = useAtom(gs_user_ntf); + + useShallowEffect(() => { + WibuRealtime.init({ + onData(data: TypeNotification) { + if (data.type == "notification" && data.pushNotificationTo == "ADMIN") { + setNewAdminNtf((e) => e + 1); + } + + if (data.type == "notification" && data.pushNotificationTo == "USER") { + setNewUserNtf((e) => e + 1); + setDataRealtime(data.dataMessage as any); + } + + if (data.type == "message") { + // console.log(data.dataMessage); + setDataRealtime(data.dataMessage as any); + } + }, + project: "hipmi", + WIBU_REALTIME_TOKEN: WIBU_REALTIME_TOKEN, + }); + }, []); + + return null; +} diff --git a/src/app/zCoba/test1/page.tsx b/src/app/zCoba/test1/page.tsx new file mode 100644 index 00000000..4439d229 --- /dev/null +++ b/src/app/zCoba/test1/page.tsx @@ -0,0 +1,55 @@ +"use client"; +import { + gs_admin_ntf, + gs_realtimeData, + IRealtimeData, +} from "@/app/lib/global_state"; +import { Button, Stack } from "@mantine/core"; +import { useShallowEffect } from "@mantine/hooks"; +import { useAtom } from "jotai"; +import { WibuRealtime } from "wibu-pkg"; +import { v4 } from "uuid"; +import { useState } from "react"; +const angka = 10; +export default function Page() { + const [dataRealtime, setDataRealtime] = useAtom(gs_realtimeData); + const [adminNtf, setAdminNtf] = useAtom(gs_admin_ntf); + const [notif, setNotif] = useState(angka); + + useShallowEffect(() => { + if (adminNtf) { + setNotif((e) => e + 1); + } + }, [adminNtf]); + + async function onSend() { + const newData: IRealtimeData = { + appId: v4(), + status: "Publish", + userId: "user1", + pesan: "apa kabar", + title: "coba", + kategoriApp: "INVESTASI", + userRole: "ADMIN", + }; + + WibuRealtime.setData({ + type: "message", + pushNotificationTo: "USER", + dataMessage: newData, + }); + } + + return ( + + {notif} + + + ); +} diff --git a/src/app/zCoba/test2/page.tsx b/src/app/zCoba/test2/page.tsx new file mode 100644 index 00000000..e717b3f3 --- /dev/null +++ b/src/app/zCoba/test2/page.tsx @@ -0,0 +1,48 @@ +"use client"; +import { gs_realtimeData, IRealtimeData } from "@/app/lib/global_state"; +import { Button, Stack } from "@mantine/core"; +import { useShallowEffect } from "@mantine/hooks"; +import { useAtom } from "jotai"; +import { WibuRealtime } from "wibu-pkg"; +import { v4 } from "uuid"; + +export default function Page() { + const [dataRealtime, setDataRealtime] = useAtom(gs_realtimeData); + + useShallowEffect(() => { + console.log( + dataRealtime?.userId == "user2" + ? console.log("") + : console.log(dataRealtime) + ); + }, [dataRealtime]); + + async function onSend() { + const newData: IRealtimeData = { + appId: v4(), + status: "Publish", + userId: "user2", + pesan: "apa kabar", + title: "coba", + kategoriApp: "INVESTASI", + userRole: "USER", + }; + + WibuRealtime.setData({ + type: "notification", + pushNotificationTo: "ADMIN", + }); + } + + return ( + + + + ); +} diff --git a/src/app/zz-makuro/page.tsx b/src/app/zz-makuro/page.tsx index a984807d..665c3a1f 100644 --- a/src/app/zz-makuro/page.tsx +++ b/src/app/zz-makuro/page.tsx @@ -1,13 +1,14 @@ "use client"; -import { useShallowEffect } from "@mantine/hooks"; -import { useState } from "react"; +import { useHookstate } from "@hookstate/core"; +import { Button, Stack } from "@mantine/core"; + export default function Page() { - const [origin, setOrigin] = useState(""); - useShallowEffect(() => { - if (typeof window !== "undefined") { - setOrigin(window.location.origin); - } - }, []); - return
{origin}
; + + return ( + + + + + ); } diff --git a/src/app_modules/admin/_admin_global/_component/comp_button_user_on_navbar.tsx b/src/app_modules/admin/_admin_global/_component/comp_button_user_on_navbar.tsx new file mode 100644 index 00000000..c9240494 --- /dev/null +++ b/src/app_modules/admin/_admin_global/_component/comp_button_user_on_navbar.tsx @@ -0,0 +1,75 @@ +import { AccentColor } from "@/app_modules/_global/color"; +import { MODEL_USER } from "@/app_modules/home/model/interface"; +import { Menu, ActionIcon, Stack, Grid, Center, Text } from "@mantine/core"; +import { IconUserCircle, IconUser, IconPhone } from "@tabler/icons-react"; +import { useState } from "react"; +import Admin_Logout from "../logout"; + +export function Admin_ComponentButtonUserCircle({ dataUser }: { dataUser: MODEL_USER }) { + const [isOpenMenuUser, setOpenMenuUser] = useState(false); + return ( + <> + + + console.log("test")}> + + + + + + + + + + + + + {dataUser.username} + + + + + + + + + + +{dataUser.nomor} + + + + + +
+ +
+
+
+
+ + ); +} \ No newline at end of file diff --git a/src/app_modules/admin/_admin_global/_ui/ui_navbar_admin.tsx b/src/app_modules/admin/_admin_global/_ui/ui_navbar_admin.tsx new file mode 100644 index 00000000..d71b65f8 --- /dev/null +++ b/src/app_modules/admin/_admin_global/_ui/ui_navbar_admin.tsx @@ -0,0 +1,203 @@ +import { MainColor } from "@/app_modules/_global/color"; +import { Box, NavLink, Text } from "@mantine/core"; +import { IconCircleDot, IconCircleDotFilled } from "@tabler/icons-react"; +import { useAtom } from "jotai"; +import _ from "lodash"; +import { useRouter } from "next/navigation"; +import { newListAdminPage } from "../../new_list_page"; +import { gs_admin_navbar_isActive_dropdown } from "../new_global_state"; + +export default function Admin_UiNavbar({ + userRoleId, + activeId, + activeChildId, + setActiveId, + setActiveChildId, +}: { + userRoleId: string; + activeId: string; + activeChildId: string; + setActiveId: (val: any) => void; + setActiveChildId: (val: any) => void; +}) { + const router = useRouter(); + // global state + const [openDropdown, setOpenDropdown] = useAtom( + gs_admin_navbar_isActive_dropdown + ); + + // const [activeId, setActiveId] = useAtom(gs_admin_navbar_menu); + // const [activeChildId, setActiveChildId] = useAtom(gs_admin_navbar_subMenu); + + // Kalau fix developer navbar, fix juga navbar admin, dan berlaku sebaliknya + const developerNavbar = newListAdminPage.map((parent) => ( + + {parent.name}} + icon={parent.icon} + onClick={() => { + setActiveId(parent.id); + setActiveChildId(""); + + parent.path == "" ? setActiveChildId(parent.child[0].id) : ""; + parent.path == "" + ? router.push(parent.child[0].path) + : router.push(parent.path); + + openDropdown && activeId === parent.id + ? setOpenDropdown(false) + : setOpenDropdown(true); + }} + // active={activeId === parent.id} + > + {/* Navlink Children */} + {!_.isEmpty(parent.child) && + parent.child.map((child) => ( + + {child.name}} + icon={ + activeChildId === child.id ? ( + + ) : ( + + ) + } + onClick={() => { + setActiveChildId(child.id); + router.push(child.path); + }} + active={activeId === child.id} + /> + + ))} + + + )); + + const bukanDeveloper = newListAdminPage.slice(0, -1); + const adminNavbar = bukanDeveloper.map((parent) => ( + + {parent.name}} + icon={parent.icon} + onClick={() => { + setActiveId(parent.id); + setActiveChildId(""); + + parent.path == "" ? setActiveChildId(parent.child[0].id) : ""; + parent.path == "" + ? router.push(parent.child[0].path) + : router.push(parent.path); + + openDropdown && activeId === parent.id + ? setOpenDropdown(false) + : setOpenDropdown(true); + }} + // active={activeId === parent.id} + > + {/* Navlink Children */} + {!_.isEmpty(parent.child) && + parent.child.map((child) => ( + + {child.name}} + icon={ + activeChildId === child.id ? ( + + ) : ( + + ) + } + onClick={() => { + setActiveChildId(child.id); + router.push(child.path); + }} + active={activeId === child.id} + /> + + ))} + + + )); + + return userRoleId == "2" ? adminNavbar : developerNavbar; +} diff --git a/src/app_modules/admin/_admin_global/index.ts b/src/app_modules/admin/_admin_global/index.ts index 022101bc..0a0b68d1 100644 --- a/src/app_modules/admin/_admin_global/index.ts +++ b/src/app_modules/admin/_admin_global/index.ts @@ -1,5 +1,8 @@ import { Admin_ComponentLoadImageLandscape } from "./_component/comp_admin_load_image"; import { Admin_ComponentSkeletonNavbar } from "./_component/comp_admin_skeleton_navbar"; +import { Admin_ComponentButtonUserCircle } from "./_component/comp_button_user_on_navbar"; +import Admin_UiNavbar from "./_ui/ui_navbar_admin"; export { Admin_ComponentLoadImageLandscape, Admin_ComponentSkeletonNavbar }; - +export { Admin_UiNavbar }; +export {Admin_ComponentButtonUserCircle} \ No newline at end of file diff --git a/src/app_modules/admin/job/child/review/index.tsx b/src/app_modules/admin/job/child/review/index.tsx index 7bc27680..1a897b0c 100644 --- a/src/app_modules/admin/job/child/review/index.tsx +++ b/src/app_modules/admin/job/child/review/index.tsx @@ -36,6 +36,8 @@ import { useState } from "react"; import { AdminJob_funEditCatatanById } from "../../fun/edit/fun_edit_catatan_by_id"; import { AdminJob_funEditStatusPublishById } from "../../fun/edit/fun_edit_status_publish_by_id"; import adminJob_getListReview from "../../fun/get/get_list_review"; +import { IRealtimeData } from "@/app/lib/global_state"; +import { WibuRealtime } from "wibu-pkg"; export default function AdminJob_TableReview({ dataReview, @@ -334,7 +336,7 @@ async function onPublish({ const loadData = await adminJob_getListReview({ page: 1 }); onLoadData(loadData); - const dataNotif = { + const dataNotifikasi: IRealtimeData = { appId: publish.data?.id as any, status: publish.data?.MasterStatus?.name as any, userId: publish.data?.authorId as any, @@ -343,20 +345,16 @@ async function onPublish({ title: "Job publish", }; - const notif = await adminNotifikasi_funCreateToUser({ - data: dataNotif as any, + const createNotifikasi = await adminNotifikasi_funCreateToUser({ + data: dataNotifikasi as any, }); - if (notif.status === 201) { - mqtt_client.publish( - "USER", - JSON.stringify({ userId: publish?.data?.authorId, count: 1 }) - ); - - mqtt_client.publish( - "Job_new_post", - JSON.stringify({ isNewPost: true, count: 1 }) - ); + if (createNotifikasi.status === 201) { + WibuRealtime.setData({ + type: "notification", + pushNotificationTo: "USER", + dataMessage: dataNotifikasi, + }); } ComponentGlobal_NotifikasiBerhasil(publish.message); @@ -382,24 +380,34 @@ async function onReject({ ComponentGlobal_NotifikasiBerhasil(reject.message); - const dataNotif = { + // const dataNotif = { + // appId: reject.data?.id as any, + // status: reject.data?.MasterStatus?.name as any, + // userId: reject.data?.authorId as any, + // pesan: reject.data?.title as any, + // kategoriApp: "JOB", + // title: "Job anda ditolak !", + // }; + + const dataNotifikasi: IRealtimeData = { appId: reject.data?.id as any, status: reject.data?.MasterStatus?.name as any, userId: reject.data?.authorId as any, pesan: reject.data?.title as any, kategoriApp: "JOB", - title: "Job anda ditolak !", + title: "Job reject", }; - const notif = await adminNotifikasi_funCreateToUser({ - data: dataNotif as any, + const createRejectNotifikasi = await adminNotifikasi_funCreateToUser({ + data: dataNotifikasi as any, }); - if (notif.status === 201) { - mqtt_client.publish( - "USER", - JSON.stringify({ userId: dataNotif.userId, count: 1 }) - ); + if (createRejectNotifikasi.status === 201) { + WibuRealtime.setData({ + type: "notification", + pushNotificationTo: "USER", + dataMessage: dataNotifikasi, + }); } } else { ComponentGlobal_NotifikasiGagal(reject.message); diff --git a/src/app_modules/admin/layout.tsx b/src/app_modules/admin/layout.tsx index 20a1fbbc..b94357f0 100644 --- a/src/app_modules/admin/layout.tsx +++ b/src/app_modules/admin/layout.tsx @@ -326,7 +326,7 @@ export default function AdminLayout({ position="right" size={"xs"} > - { setDataNotif(val); @@ -339,7 +339,7 @@ export default function AdminLayout({ onLoadCountNotif={(val: any) => { setCountNotif(val); }} - /> + /> */} ); diff --git a/src/app_modules/admin/new_layout.tsx b/src/app_modules/admin/new_layout.tsx index 443839b1..d4fbddce 100644 --- a/src/app_modules/admin/new_layout.tsx +++ b/src/app_modules/admin/new_layout.tsx @@ -1,62 +1,74 @@ "use client"; +import { gs_admin_ntf } from "@/app/lib/global_state"; import { ActionIcon, AppShell, - Box, - Center, Divider, Drawer, Grid, Group, - Menu, + Indicator, Navbar, - NavLink, ScrollArea, Stack, Text, Title, } from "@mantine/core"; -import { useMediaQuery } from "@mantine/hooks"; -import { - IconBell, - IconCircleDot, - IconCircleDotFilled, - IconPhone, - IconUser, - IconUserCircle, -} from "@tabler/icons-react"; +import { useMediaQuery, useShallowEffect } from "@mantine/hooks"; +import { IconBell } from "@tabler/icons-react"; import { useAtom } from "jotai"; -import _ from "lodash"; -import { useRouter } from "next/navigation"; import { useState } from "react"; -import { AccentColor, MainColor } from "../_global/color"; +import { AccentColor } from "../_global/color"; import { MODEL_USER } from "../home/model/interface"; -import Admin_Logout from "./_admin_global/logout"; +import { MODEL_NOTIFIKASI } from "../notifikasi/model/interface"; +import { + Admin_ComponentButtonUserCircle, + Admin_ComponentSkeletonNavbar, + Admin_UiNavbar, +} from "./_admin_global"; import { - gs_admin_navbar_isActive_dropdown, gs_admin_navbar_menu, gs_admin_navbar_subMenu, } from "./_admin_global/new_global_state"; -import { newListAdminPage } from "./new_list_page"; +import adminNotifikasi_getByUserId from "./notifikasi/fun/get/get_notifikasi_by_user_id"; import { ComponentAdmin_UIDrawerNotifikasi } from "./notifikasi/ui_drawer_notifikasi"; -import { Admin_ComponentSkeletonNavbar } from "./_admin_global"; export function Admin_NewLayout({ children, user, + countNotifikasi, + listNotifikasi, }: { children: React.ReactNode; user: MODEL_USER; + countNotifikasi: number; + listNotifikasi: MODEL_NOTIFIKASI[]; }) { const matches = useMediaQuery("(min-width: 1024px)"); const [dataUser, setDataUser] = useState(user); const userRoleId = dataUser.masterUserRoleId; const [opened, setOpened] = useState(false); + const [activeId, setActiveId] = useAtom(gs_admin_navbar_menu); + const [activeChildId, setActiveChildId] = useAtom(gs_admin_navbar_subMenu); + const [dataNotifikasi, setDataNotifikasi] = + useState(listNotifikasi); // Notifikasi const [isDrawerNotifikasi, setDrawerNotifikasi] = useState(false); - const [isNavbarOpen, setIsNavbarOpen] = useState(false); + const [countNtf, setCountNtf] = useState(countNotifikasi); + const [newAdminNtf, setNewAdminNtf] = useAtom(gs_admin_ntf); + + useShallowEffect(() => { + setCountNtf((e) => e + newAdminNtf), setNewAdminNtf(0); + }, [newAdminNtf, setNewAdminNtf]); + + async function onLoadListNotifikasi() { + const loadNotifikasi = await adminNotifikasi_getByUserId(); + + setDataNotifikasi(loadNotifikasi as []); + setDrawerNotifikasi(true); + } return ( <> @@ -65,7 +77,7 @@ export function Admin_NewLayout({ navbarOffsetBreakpoint={1024} navbar={