diff --git a/apps/backend/.env.example b/apps/backend/.env.example index 135a106..870583f 100644 --- a/apps/backend/.env.example +++ b/apps/backend/.env.example @@ -1,5 +1,6 @@ POSTGRES_USER="example_user" POSTGRES_PASSWORD="example_password" +POSTGRES_DB="example_db" DATABASE_URL="postgresql://example_user:example_password@localhost:5432/example_db?schema=public" diff --git a/apps/backend/Dockerfile b/apps/backend/Dockerfile index 0913d86..4d09a16 100644 --- a/apps/backend/Dockerfile +++ b/apps/backend/Dockerfile @@ -1,5 +1,4 @@ FROM postgres:15 -ENV POSTGRES_USER=${POSTGRES_USER} -ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD} -ENV POSTGRES_DB=devix_admin +# Karena semua environment variable diload dari .env.development via docker-compose.yaml, +# jadi kita ngga perlu set ENV atau load ARG di Dockerfilenya (kosongin aja). \ No newline at end of file diff --git a/apps/backend/Dockerfile.development b/apps/backend/Dockerfile.development new file mode 100644 index 0000000..4d09a16 --- /dev/null +++ b/apps/backend/Dockerfile.development @@ -0,0 +1,4 @@ +FROM postgres:15 + +# Karena semua environment variable diload dari .env.development via docker-compose.yaml, +# jadi kita ngga perlu set ENV atau load ARG di Dockerfilenya (kosongin aja). \ No newline at end of file diff --git a/apps/backend/docker-compose.yaml b/apps/backend/docker-compose.yaml index 8e58e90..cd7436b 100644 --- a/apps/backend/docker-compose.yaml +++ b/apps/backend/docker-compose.yaml @@ -1,21 +1,22 @@ -version: "3" - services: devixid: build: context: . dockerfile: Dockerfile - image: devixid + image: devixid_image + container_name: devixid-container + env_file: + - .env ports: - - "5434:5432" - environment: - POSTGRES_DB: devix_admin + - "5432:5432" + devixid_dev: build: context: . - dockerfile: Dockerfile - image: devixid_dev + dockerfile: Dockerfile.development + image: devixid-dev_image + container_name: devixid-dev_container + env_file: + - .env.development ports: - - "5435:5432" - environment: - POSTGRES_DB: devix_admin_dev + - "5432:5432" \ No newline at end of file diff --git a/apps/backend/package.json b/apps/backend/package.json index 451127d..3a13527 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -11,6 +11,7 @@ "dev": "nest start --watch", "prod": "node dist/main", "start:studio": "npx prisma studio", + "start:dev:studio": "dotenv -e .env.development -- prisma studio", "migrate:deploy": "prisma migrate deploy", "migrate:dev:deploy": "dotenv -e .env.development -- prisma migrate deploy", "debug": "nest start --debug --watch", @@ -29,7 +30,7 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "dotenv -e .env.test -- jest --config --watch --no-cache ./test/jest-e2e.json", - "pretest:e2e": "yarn db:test:restart" + "pretest:e2e": "pnpm db:test:restart" }, "lint-staged": { "**/*.{html,css,scss,less,json,js,jsx,ts,tsx,md,mdx}\"": [ diff --git a/apps/backend/prisma/schema.prisma b/apps/backend/prisma/schema.prisma index 8d3eae4..23f57f4 100644 --- a/apps/backend/prisma/schema.prisma +++ b/apps/backend/prisma/schema.prisma @@ -10,6 +10,18 @@ datasource db { url = env("DATABASE_URL") } +model Portfolio { + id Int @id @default(autoincrement()) + title String + description String + url String + image String @db.VarChar(255) + keywords String[] + uploaderId Int + + @@index([title, keywords]) +} + model User { id Int @id @default(autoincrement()) createdAt DateTime @default(now()) @@ -18,8 +30,14 @@ model User { email String @unique hash String - firstName String? - lastName String? + userName String? + fullName String? + role UserRole @default(ADMIN) @@map("users") } + +enum UserRole { + ADMIN + SUPER_ADMIN +} diff --git a/apps/frontend/src/app/page.tsx b/apps/frontend/src/app/page.tsx index b829602..0978a53 100644 --- a/apps/frontend/src/app/page.tsx +++ b/apps/frontend/src/app/page.tsx @@ -19,9 +19,9 @@ export const metadata: Metadata = { keywords: ["devix", "devixid", "devix_id", "home"], }; -export default function Page() { - let headingAnimationDelay = 0; +let headingAnimationDelay = 0; +export default function Page() { return (
{letter} @@ -85,7 +85,7 @@ export default function Page() { delay: headingAnimationDelay, }} key={loopKey} - className={cn("min-w-unit-5 md:inline-block")} + className={cn("min-w-unit-5")} > {letter} @@ -128,6 +128,7 @@ export default function Page() { ); })} +
{} +interface AnimatedSVGProps extends SVGMotionProps { + lineFill: string; +} export default function ScrollDownSVG({ fill = "none", + lineFill = "none", height = "286", width = "55", ...props @@ -21,7 +24,7 @@ export default function ScrollDownSVG({ > + = 917 && scrollPosition.y <= 1620 - ? "bg-white" - : "bg-black-1" - }`, - "flex w-full flex-col items-center justify-between px-5 py-2 md:w-1/4 md:rounded-br-[25px]", + scrollPosition.y >= 917 && scrollPosition.y <= 1620 + ? "bg-white" + : "bg-black-1", + "flex w-full flex-col overflow-hidden px-5 py-2 md:w-[450px] md:rounded-br-[25px]", )} initial={{ height: "64px" }} - animate={{ height: isNavbarOpen ? "50%" : "64px" }} + animate={{ height: isNavbarOpen ? "339px" : "64px" }} transition={{ duration: 0.3 }} >
@@ -42,6 +38,7 @@ function Navbar({ isNavbarOpen, setIsNavbarOpen, ...props }: NavbarProps) { width={40} quality={100} /> +
+ {NavMenu.map((menu, index) => { - if (index > 0) { - navbarDelayAnimation += 0.1; - navbarXPosition += -10; - } + const key = `${index}`; + const navbarXPosition = Number.parseInt(`${(index + 1) * -10}`, 10); + const navbarDelayAnimation = + Number.parseFloat(`0.${index + 1}`) - 0.05; return ( - = 917 ? "text-black" : "text-white"}`, + + {isNavbarOpen && ( + = 917 && scrollPosition.y <= 1620 + ? "text-black" + : "text-white", + )} + initial={{ + x: navbarXPosition, + opacity: 0, + }} + exit={{ + x: navbarXPosition, + opacity: 0, + }} + transition={{ + duration: 0.2, + delay: navbarDelayAnimation, + type: "spring", + stiffness: 150, + velocity: 90, + }} + animate={{ x: 0, opacity: 1 }} + > + { + setIsNavbarOpen(false); + }} + > + {menu.title} + + )} - initial={{ - x: navbarXPosition, - opacity: 0, - }} - transition={{ - duration: 0.5, - delay: navbarDelayAnimation, - type: "spring", - stiffness: 100, - velocity: 90, - }} - animate={{ x: 0, opacity: 1 }} - > - {menu.title} - + ); })} diff --git a/apps/frontend/src/components/molecules/OurTeams.tsx b/apps/frontend/src/components/molecules/OurTeams.tsx index ed2b8b9..d2c0200 100644 --- a/apps/frontend/src/components/molecules/OurTeams.tsx +++ b/apps/frontend/src/components/molecules/OurTeams.tsx @@ -4,7 +4,10 @@ import { TeamCard } from "./card"; export default function OurTeams() { return ( -
+
Meet our team. diff --git a/apps/frontend/src/components/molecules/button/ScrollDownButton.tsx b/apps/frontend/src/components/molecules/button/ScrollDownButton.tsx index 9649c33..52e10c6 100644 --- a/apps/frontend/src/components/molecules/button/ScrollDownButton.tsx +++ b/apps/frontend/src/components/molecules/button/ScrollDownButton.tsx @@ -22,13 +22,36 @@ export default function ScrollDownButton() { SCROLL DOWN - + +
+
+ +
+
+ +
+
); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5c356e..65cbe2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,19 @@ importers: devDependencies: commitizen: specifier: ^4.3.0 - version: 4.3.0(@types/node@20.12.12)(typescript@5.1.3) + version: 4.3.0(@types/node@22.4.0)(typescript@5.1.3) cz-conventional-changelog: specifier: ^3.3.0 - version: 3.3.0(@types/node@20.12.12)(typescript@5.1.3) + version: 3.3.0(@types/node@22.4.0)(typescript@5.1.3) husky: specifier: ^8.0.3 version: 8.0.3 lint-staged: specifier: ^14.0.1 version: 14.0.1 + turbo: + specifier: 1.2.5 + version: 1.2.5 apps/backend: dependencies: @@ -320,6 +323,10 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.4': resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} @@ -374,8 +381,8 @@ packages: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.5': - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.23.5': @@ -386,8 +393,8 @@ packages: resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.5': - resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} '@babel/parser@7.24.5': @@ -1915,6 +1922,9 @@ packages: '@types/node@20.4.2': resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} + '@types/node@22.4.0': + resolution: {integrity: sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2191,8 +2201,8 @@ packages: ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -2397,8 +2407,8 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} browserslist@4.23.0: @@ -3344,6 +3354,9 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -3358,8 +3371,8 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} finalhandler@1.2.0: @@ -3687,6 +3700,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -4050,6 +4064,10 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4331,6 +4349,10 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -5208,8 +5230,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -5666,12 +5688,79 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + turbo-darwin-64@1.2.5: + resolution: {integrity: sha512-AjMEF8hlA9vy1gXLHBruqgO42s0M0rKKZLQPM239wli5lKEprmxd8WMSjd9YmxRflS+/fwrXfjVl0QRhHjDIww==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@1.2.5: + resolution: {integrity: sha512-2kj4+X9XMGF9o398qVo4HDsaoPy2kcl77X+EYlq2bROoQlGXRrR7R+i/qMvLh4tLsSQAm5eOqEbFyvtMkxT/xg==} + cpu: [arm64] + os: [darwin] + + turbo-freebsd-64@1.2.5: + resolution: {integrity: sha512-29eQUiS/Fky7O8E0YzGh3EETPvMKmMDkFjJn4XtRGO+iZfkIxlqKnAUpT+8kx3nQ/5dAAoTGHflyf4FNEZaCKA==} + cpu: [x64] + os: [freebsd] + + turbo-freebsd-arm64@1.2.5: + resolution: {integrity: sha512-WRFmzgXqXurdRntPrEb7hcOM1Zfjse8OC/sH3V8R9QspYE+upZ42m9ePLt2n5N2shc4XLced/9VFdczx9549Tw==} + cpu: [arm64] + os: [freebsd] + + turbo-linux-32@1.2.5: + resolution: {integrity: sha512-YBzKqXJEoORpPq7vwpNf9ovbVru9aQi7HD88fxYW1wvvuPdNx2ZAmjn8sEMZZPkndfOlf9fXgO3aXr0fjqUWMw==} + cpu: [ia32] + os: [linux] + + turbo-linux-64@1.2.5: + resolution: {integrity: sha512-a85WEfOj4Cw0zd/wo1xoRmqW4kZHAz63nf+vWINyxZOK2H899TCUs+KJpgsacafU0fO36l1rsx2fdUDce/3Dww==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@1.2.5: + resolution: {integrity: sha512-ZtPQx9yw+iMT+sYPYcrtbCye7a/aj93gA2krir4MI+CDp69LuHLuZOOfc8u4JCxSJTbRLoYcwJrdfB9uBSddIQ==} + cpu: [arm64] + os: [linux] + + turbo-linux-arm@1.2.5: + resolution: {integrity: sha512-JlLk5cGmj5yRwBQuPMH36w5ZJg0sBfi+dxBZTkJUV9XM9MRgNUs0MkNnjh9ogGvB4R08HY4ud6XcyRdoKLs9pA==} + cpu: [arm] + os: [linux] + + turbo-linux-mips64le@1.2.5: + resolution: {integrity: sha512-3LLnEwKc5pf7MlUhwvq/ND2cx0f7v3LHK5587CVTQI9nnwgie42n5U168J7BPPPkIE0k0j4S1jeXU18DV3vWbA==} + cpu: [mips64el] + os: [linux] + + turbo-linux-ppc64le@1.2.5: + resolution: {integrity: sha512-1k4lBCu2jdQNF3KXjPAbOER5/j37AdBqHnuHB6JuiOocm+v3WgEfkctkqLrgow3q1HLeb4me3wGXstV//6dzSg==} + cpu: [ppc64] + os: [linux] + + turbo-windows-32@1.2.5: + resolution: {integrity: sha512-XT2g/kZopqARjs39MNVP5XysrK2R0P9QVnrRdVY72zgswLvvcvDI6SM5SPX/SWF4iLU5OEUlpCaUz5dJLGMGUw==} + cpu: [ia32] + os: [win32] + + turbo-windows-64@1.2.5: + resolution: {integrity: sha512-Ut097JJv9qy/8cpHANB7/BH0uh2IZbUeSSRudTl8tfMX8ZEdla/NpJd+omMV4CwPRrZAO6SyKiTfeHFOt/6NgQ==} + cpu: [x64] + os: [win32] + + turbo@1.2.5: + resolution: {integrity: sha512-KXk5BGCaiSSXhtorrLUILB3OTqZ/uruIi0ggb0jSp55ZDSS+G/4OANw7y5QuRjizCpjwunb47AAOox/2Zn2nbA==} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5735,6 +5824,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.6: + resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6006,7 +6098,12 @@ snapshots: '@babel/code-frame@7.24.2': dependencies: - '@babel/highlight': 7.24.5 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 picocolors: 1.0.1 '@babel/compat-data@7.24.4': {} @@ -6014,7 +6111,7 @@ snapshots: '@babel/core@7.24.5': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@babel/generator': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) @@ -6068,7 +6165,7 @@ snapshots: '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.24.5 '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.7 '@babel/helper-plugin-utils@7.24.5': {} @@ -6082,7 +6179,7 @@ snapshots: '@babel/helper-string-parser@7.24.1': {} - '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-option@7.23.5': {} @@ -6094,9 +6191,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/highlight@7.24.5': + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.1 @@ -6181,13 +6278,13 @@ snapshots: '@babel/template@7.24.0': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@babel/parser': 7.24.5 '@babel/types': 7.24.5 '@babel/traverse@7.24.5': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@babel/generator': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 @@ -6203,7 +6300,7 @@ snapshots: '@babel/types@7.24.5': dependencies: '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 '@bcoe/v8-coverage@0.2.3': {} @@ -6214,7 +6311,7 @@ snapshots: '@commitlint/config-validator@19.0.3': dependencies: '@commitlint/types': 19.0.3 - ajv: 8.13.0 + ajv: 8.17.1 optional: true '@commitlint/execute-rule@19.0.0': @@ -6237,7 +6334,7 @@ snapshots: - typescript optional: true - '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.1.3)': + '@commitlint/load@19.2.0(@types/node@22.4.0)(typescript@5.1.3)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -6245,7 +6342,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.1.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.1.3))(typescript@5.1.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.4.0)(cosmiconfig@9.0.0(typescript@5.1.3))(typescript@5.1.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6316,26 +6413,26 @@ snapshots: '@formatjs/ecma402-abstract@1.18.3': dependencies: '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.2 + tslib: 2.6.3 '@formatjs/fast-memoize@2.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@formatjs/icu-messageformat-parser@2.7.7': dependencies: '@formatjs/ecma402-abstract': 1.18.3 '@formatjs/icu-skeleton-parser': 1.8.1 - tslib: 2.6.2 + tslib: 2.6.3 '@formatjs/icu-skeleton-parser@1.8.1': dependencies: '@formatjs/ecma402-abstract': 1.18.3 - tslib: 2.6.2 + tslib: 2.6.3 '@formatjs/intl-localematcher@0.5.4': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@humanwhocodes/config-array@0.11.14': dependencies: @@ -6420,7 +6517,7 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 jest-watcher: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 @@ -6433,7 +6530,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.4.2 + '@types/node': 18.11.18 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -6451,7 +6548,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.4.2 + '@types/node': 18.11.18 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6531,7 +6628,7 @@ snapshots: jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -8490,20 +8587,20 @@ snapshots: '@swc/helpers@0.4.14': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@swc/helpers@0.4.36': dependencies: legacy-swc-helpers: '@swc/helpers@0.4.14' - tslib: 2.6.2 + tslib: 2.6.3 '@swc/helpers@0.5.11': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@swc/helpers@0.5.2': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@tailwindcss/forms@0.5.7(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.4.2)(typescript@5.1.3)))': dependencies: @@ -8562,7 +8659,7 @@ snapshots: '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 20.4.2 + '@types/node': 22.4.0 optional: true '@types/cookiejar@2.1.5': {} @@ -8595,7 +8692,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.4.2 + '@types/node': 18.11.18 '@types/http-errors@2.0.4': {} @@ -8644,6 +8741,11 @@ snapshots: '@types/node@20.4.2': {} + '@types/node@22.4.0': + dependencies: + undici-types: 6.19.6 + optional: true + '@types/parse-json@4.0.2': {} '@types/passport-jwt@3.0.13': @@ -8708,7 +8810,7 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.4.2 + '@types/node': 20.12.12 '@types/yargs-parser@21.0.3': {} @@ -9039,12 +9141,12 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - ajv@8.13.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 optional: true ansi-colors@4.1.3: {} @@ -9327,9 +9429,9 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: + braces@3.0.3: dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 browserslist@4.23.0: dependencies: @@ -9423,7 +9525,7 @@ snapshots: chokidar@3.5.3: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -9435,7 +9537,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -9551,23 +9653,6 @@ snapshots: comment-parser@1.3.1: {} - commitizen@4.3.0: - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.12.12)(typescript@5.1.3) - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.5 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.7 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - commitizen@4.3.0(@types/node@18.11.18)(typescript@4.9.5): dependencies: cachedir: 2.3.0 @@ -9588,10 +9673,10 @@ snapshots: - '@types/node' - typescript - commitizen@4.3.0(@types/node@20.12.12)(typescript@5.1.3): + commitizen@4.3.0(@types/node@22.4.0)(typescript@5.1.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.12.12)(typescript@5.1.3) + cz-conventional-changelog: 3.3.0(@types/node@22.4.0)(typescript@5.1.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -9654,15 +9739,15 @@ snapshots: dependencies: '@types/node': 18.11.18 cosmiconfig: 9.0.0(typescript@4.9.5) - jiti: 1.21.0 + jiti: 1.21.6 typescript: 4.9.5 optional: true - cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.1.3))(typescript@5.1.3): + cosmiconfig-typescript-loader@5.0.0(@types/node@22.4.0)(cosmiconfig@9.0.0(typescript@5.1.3))(typescript@5.1.3): dependencies: - '@types/node': 20.12.12 + '@types/node': 22.4.0 cosmiconfig: 9.0.0(typescript@5.1.3) - jiti: 1.21.0 + jiti: 1.21.6 typescript: 5.1.3 optional: true @@ -9807,16 +9892,16 @@ snapshots: - '@types/node' - typescript - cz-conventional-changelog@3.3.0(@types/node@20.12.12)(typescript@5.1.3): + cz-conventional-changelog@3.3.0(@types/node@22.4.0)(typescript@5.1.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.0 + commitizen: 4.3.0(@types/node@22.4.0)(typescript@5.1.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.1.3) + '@commitlint/load': 19.2.0(@types/node@22.4.0)(typescript@5.1.3) transitivePeerDependencies: - '@types/node' - typescript @@ -10605,7 +10690,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 fast-json-stable-stringify@2.1.0: {} @@ -10613,6 +10698,9 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-uri@3.0.1: + optional: true + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -10629,7 +10717,7 @@ snapshots: dependencies: flat-cache: 3.2.0 - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -10666,7 +10754,7 @@ snapshots: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.5 + micromatch: 4.0.7 resolve-dir: 1.0.1 flat-cache@3.2.0: @@ -11050,7 +11138,7 @@ snapshots: '@formatjs/ecma402-abstract': 1.18.3 '@formatjs/fast-memoize': 2.2.0 '@formatjs/icu-messageformat-parser': 2.7.7 - tslib: 2.6.2 + tslib: 2.6.3 invariant@2.2.4: dependencies: @@ -11251,7 +11339,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.4.2 + '@types/node': 18.11.18 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -11309,7 +11397,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -11345,7 +11433,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.4.2 + '@types/node': 18.11.18 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -11362,7 +11450,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -11381,12 +11469,12 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -11394,7 +11482,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.4.2 + '@types/node': 18.11.18 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -11531,13 +11619,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.4.2 + '@types/node': 18.11.18 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.4.2 + '@types/node': 18.11.18 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -11556,6 +11644,9 @@ snapshots: jiti@1.21.0: {} + jiti@1.21.6: + optional: true + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -11681,7 +11772,7 @@ snapshots: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 5.0.1 - rfdc: 1.3.1 + rfdc: 1.4.1 wrap-ansi: 8.1.0 loader-runner@4.3.0: {} @@ -11806,7 +11897,12 @@ snapshots: micromatch@4.0.5: dependencies: - braces: 3.0.2 + braces: 3.0.3 + picomatch: 2.3.1 + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} @@ -12110,7 +12206,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -12479,7 +12575,7 @@ snapshots: dependencies: react: 18.3.1 react-style-singleton: 2.2.1(@types/react@18.2.15)(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 optionalDependencies: '@types/react': 18.2.15 @@ -12488,7 +12584,7 @@ snapshots: react: 18.3.1 react-remove-scroll-bar: 2.3.6(@types/react@18.2.15)(react@18.3.1) react-style-singleton: 2.2.1(@types/react@18.2.15)(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 use-callback-ref: 1.3.2(@types/react@18.2.15)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.2.15)(react@18.3.1) optionalDependencies: @@ -12499,7 +12595,7 @@ snapshots: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.6.3 optionalDependencies: '@types/react': 18.2.15 @@ -12612,7 +12708,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rimraf@3.0.2: dependencies: @@ -12944,7 +13040,7 @@ snapshots: synckit@0.8.8: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.6.3 tailwind-merge@1.14.0: {} @@ -13157,6 +13253,8 @@ snapshots: tslib@2.6.2: {} + tslib@2.6.3: {} + tsutils@3.21.0(typescript@4.9.5): dependencies: tslib: 1.14.1 @@ -13167,6 +13265,57 @@ snapshots: tslib: 1.14.1 typescript: 5.1.3 + turbo-darwin-64@1.2.5: + optional: true + + turbo-darwin-arm64@1.2.5: + optional: true + + turbo-freebsd-64@1.2.5: + optional: true + + turbo-freebsd-arm64@1.2.5: + optional: true + + turbo-linux-32@1.2.5: + optional: true + + turbo-linux-64@1.2.5: + optional: true + + turbo-linux-arm64@1.2.5: + optional: true + + turbo-linux-arm@1.2.5: + optional: true + + turbo-linux-mips64le@1.2.5: + optional: true + + turbo-linux-ppc64le@1.2.5: + optional: true + + turbo-windows-32@1.2.5: + optional: true + + turbo-windows-64@1.2.5: + optional: true + + turbo@1.2.5: + optionalDependencies: + turbo-darwin-64: 1.2.5 + turbo-darwin-arm64: 1.2.5 + turbo-freebsd-64: 1.2.5 + turbo-freebsd-arm64: 1.2.5 + turbo-linux-32: 1.2.5 + turbo-linux-64: 1.2.5 + turbo-linux-arm: 1.2.5 + turbo-linux-arm64: 1.2.5 + turbo-linux-mips64le: 1.2.5 + turbo-linux-ppc64le: 1.2.5 + turbo-windows-32: 1.2.5 + turbo-windows-64: 1.2.5 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -13235,6 +13384,9 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.6: + optional: true + universalify@2.0.1: {} unpipe@1.0.0: {} @@ -13252,7 +13404,7 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.2.15)(react@18.3.1): dependencies: react: 18.3.1 - tslib: 2.6.2 + tslib: 2.6.3 optionalDependencies: '@types/react': 18.2.15 @@ -13277,7 +13429,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.6.3 optionalDependencies: '@types/react': 18.2.15