From 2fe32edc3a9f2ccfd3ef617a2855078a0fe3003b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Do=C4=9Fan=20=C3=96zban?= Date: Mon, 6 Jul 2026 02:27:06 +0200 Subject: [PATCH] feat: add architecture, api routes and components --- .dockerignore | 7 + .gitignore | 2 + Dockerfile | 32 + build_log.txt | Bin 0 -> 4320 bytes dev.db | Bin 0 -> 12288 bytes docker-compose.yml | 19 + next.config.ts | 4 +- package-lock.json | 1292 ++++++++++++++++++++- package.json | 11 +- prisma/dev.db | Bin 0 -> 1011712 bytes prisma/schema.prisma | 21 + src/app/admin/edit/[id]/page.tsx | 20 + src/app/admin/layout.tsx | 80 ++ src/app/admin/new/page.tsx | 14 + src/app/admin/page.tsx | 118 ++ src/app/api/admin/locations/[id]/route.ts | 50 + src/app/api/admin/locations/route.ts | 42 + src/app/api/auth/login/route.ts | 39 + src/app/api/auth/logout/route.ts | 10 + src/app/api/config/route.ts | 7 + src/app/api/locations/route.ts | 22 + src/app/globals.css | 158 ++- src/app/layout.tsx | 26 +- src/app/login/page.tsx | 122 ++ src/app/page.module.css | 1 - src/app/page.tsx | 65 +- src/components/AdminLocationForm.tsx | 202 ++++ src/components/BootstrapClient.tsx | 11 + src/components/Gallery.tsx | 520 +++++++++ src/lib/prisma.ts | 10 + src/middleware.ts | 39 + 31 files changed, 2796 insertions(+), 148 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 build_log.txt create mode 100644 dev.db create mode 100644 docker-compose.yml create mode 100644 prisma/dev.db create mode 100644 prisma/schema.prisma create mode 100644 src/app/admin/edit/[id]/page.tsx create mode 100644 src/app/admin/layout.tsx create mode 100644 src/app/admin/new/page.tsx create mode 100644 src/app/admin/page.tsx create mode 100644 src/app/api/admin/locations/[id]/route.ts create mode 100644 src/app/api/admin/locations/route.ts create mode 100644 src/app/api/auth/login/route.ts create mode 100644 src/app/api/auth/logout/route.ts create mode 100644 src/app/api/config/route.ts create mode 100644 src/app/api/locations/route.ts create mode 100644 src/app/login/page.tsx create mode 100644 src/components/AdminLocationForm.tsx create mode 100644 src/components/BootstrapClient.tsx create mode 100644 src/components/Gallery.tsx create mode 100644 src/lib/prisma.ts create mode 100644 src/middleware.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c550055 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +Dockerfile +.dockerignore +node_modules +npm-debug.log +README.md +.next +.git diff --git a/.gitignore b/.gitignore index 5ef6a52..f390d12 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,5 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +/src/generated/prisma diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f4c8f2d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM node:20-bullseye-slim AS base + +FROM base AS deps +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci + +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +RUN npx prisma generate +RUN npm run build + +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV production +ENV PORT 3000 +ENV HOSTNAME "0.0.0.0" + +COPY --from=builder /app/public ./public +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static + +COPY --from=builder /app/prisma ./prisma +COPY --from=builder /app/package.json /app/dev.d[b] ./ + +EXPOSE 3000 + +CMD ["sh", "-c", "mkdir -p /app/data && DATABASE_URL=file:/app/data/prod.db npx prisma@6 db push && node server.js"] \ No newline at end of file diff --git a/build_log.txt b/build_log.txt new file mode 100644 index 0000000000000000000000000000000000000000..29ac402c6c67679792d0e8fe8ec3751dbc2ae732 GIT binary patch literal 4320 zcmds)-EJFI5Xa{liFa64f~KNz>`?NBgn%@WazP8F;--!gXKe?!@j9}%NlVqfL?3}y z;!(Im0{*|5Y<6w0LoF(Vs?~m-nKLv0`8wzP_2wPI#wJ$s>NGS|aiD=Ku>5Mji@GaGL(RksA!Xw8Q~gbJ_4RkA>!oqBhSL68ch0DRKd*Z{}V|_od@AV#N-cZtaWx+svMBu;?;L(mo z!G>SM@A$Ela_F%-UMT5UddMQYiG8_C8|mxBZAxWJCQ2?#B2wY^OKHsQXYqj>ESarp z2GPmo)4LkI5DnX~n}{#A;-SwX^U-xIo0<2GBqcr@3wPX~sdRQ^3xDu@CXP>a-;#fJ ztnD~QipyABLyhlCH<6o&R(PB`SiAl!{ExI-|4P!4G~&4;Ya@5D@XdR}2~RW2W$%KEWlM|RPR3ZCkl9DN{Ku8N^<5|2V~r1EuNHyHxoN+l2LvN>v@%xk0+ zw&gaT6FbsL9!7=T5%&{2^h|pso%kLUd#a{Xv{G8Hl3j&-s9@i}?ifGli)tz{lvQ-# z`5V}y$}VQGM`xl=Gx3%)LmyA>W54(!qc5d@QH8JAt7~7BJ>&INZ!YB^i>S?On6F&; zRwN;*$fkc1M<}mE30;Yy=}VXTddBkb?DP}u#R&dMJR0sEqYTm!Qu-(>S)Zl__*pGGtZHzMgci zp5E1&hgx}$Y)cVbw|k;~VcU8)G#0C8^re<}AJ)<4RXnD#lb>`9L7@-*hh1Rm-gX5bOA!V!l-y>kqk(>#@b|ICkobJJ$a#kEvPm zxTSo?wz@q2r@nO)a%3***UMLMc&~n~TDF2W9q*Qq2l_hX54Dqjs-DByrJ+8xO!vjs z*)!?8uDkPCkjDA)rnP6=*PfPFWObjC`pzu8{gcpenu>h{yRzG=;fAl&Eq&j0uh7Tf zi_;W+o6{EDta^O2S7is$t;}GZVvqS!J^aLXFZDCP5<4TlIK_V}xp6wL>gDX4>SFyx zcAVY!{EwXt()XpSJkjQwk!VKs%*kna{yAIr`WNj^hy4E%o^(y$){7N28 z=eol-+0DcF2huiueM#Q0y>xhQauLwSIDKM*o|6Vq6mmr=Aw-dVNA|K6=cQniC@^D> z2_8?&bERV&x?@mBzcvl3mA5r|Sf#RQ+}EgMJUFy}C;P}W>A>z;x;>`1#`yU68No#q zEIl?4d0f1$k3>vpRIY6p0ES6-WG+IBYU}3gC;;}^JY0zat?zAf_ zc6yevyz~pt_=HERd!}9EMjx3DZ72C8;$FKfFAd~`zAj5ynRAiT8QHeccidvdp`%-a zd2*ike$t>Ibjcv)okRvRuTov0J_;_pH1s{_78lFRE4?8pQz(0uX=z z1Rwwb2tWV=5P$##AOL}F6{r@4;s1YIUoYx{00bZa0SG_<0uX=z1Rwwb2+Rb20M-DJ A6#xJL literal 0 HcmV?d00001 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9170ac9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.8' + +services: + gsv_gallery: + image: atakanozban/gsv_gallery:latest + container_name: gsv_gallery_test + ports: + - "3000:3000" + environment: + - PORT=3000 + - DATABASE_URL=file:/app/data/prod.db + - GOOGLE_MAPS_API_KEY=senin_gercek_api_keyin + - ADMIN_USERNAME=atakan + - ADMIN_PASSWORD=testpass + - GOOGLE_CLIENT_ID=google_id + - GOOGLE_CLIENT_SECRET=google_secret + volumes: + - ./data:/app/data + restart: unless-stopped \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index e9ffa30..de2d453 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,7 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { - /* config options here */ + output: "standalone", }; -export default nextConfig; +export default nextConfig; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4c8b9ad..6236b53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,25 @@ "name": "portfolio_gsv", "version": "0.1.0", "dependencies": { + "@googlemaps/js-api-loader": "^2.0.2", + "@googlemaps/markerclusterer": "^2.6.2", + "@tmcw/togeojson": "^7.1.2", + "@types/geojson": "^7946.0.16", + "bootstrap": "^5.3.8", + "googleapis": "^171.4.0", "next": "16.1.6", "react": "19.2.3", "react-dom": "19.2.3" }, "devDependencies": { + "@prisma/client": "^6.4.0", + "@types/google.maps": "^3.58.1", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "16.1.6", + "prisma": "^6.4.0", "typescript": "^5" } }, @@ -439,6 +448,26 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@googlemaps/js-api-loader": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-2.0.2.tgz", + "integrity": "sha512-bKVuTqatS8Jven5aFqVB7rCHF1VFEzpzyi0ruzO0GUR+A7m9oMqMgtnmpANj7kMYEvvhty8Fk7TnJ1MKjWHu+Q==", + "license": "Apache-2.0", + "dependencies": { + "@types/google.maps": "^3.53.1" + } + }, + "node_modules/@googlemaps/markerclusterer": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.6.2.tgz", + "integrity": "sha512-U6uVhq8iWhiIckA89sgRu8OK35mjd6/3CuoZKWakKEf0QmRRWpatlsPb3kqXkoWSmbcZkopRiI4dnW6DQSd7bQ==", + "license": "Apache-2.0", + "dependencies": { + "@types/supercluster": "^7.1.3", + "fast-equals": "^5.2.2", + "supercluster": "^8.0.1" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -957,6 +986,23 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1212,6 +1258,113 @@ "node": ">=12.4.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@prisma/client": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.19.3.tgz", + "integrity": "sha512-mKq3jQFhjvko5LTJFHGilsuQs+W+T3Gm451NzuTDGQxwCzwXHYnIu2zGkRoW+Exq3Rob7yp2MfzSrdIiZVhrBg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "prisma": "*", + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@prisma/config": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.19.3.tgz", + "integrity": "sha512-CBPT44BjlQxEt8kiMEauji2WHTDoVBOKl7UlewXmUgBPnr/oPRZC3psci5chJnYmH0ivEIog2OU9PGWoki3DLQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "c12": "3.1.0", + "deepmerge-ts": "7.1.5", + "effect": "3.21.0", + "empathic": "2.0.0" + } + }, + "node_modules/@prisma/debug": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.19.3.tgz", + "integrity": "sha512-ljkJ+SgpXNktLG0Q/n4JGYCkKf0f8oYLyjImS2I8e2q2WCfdRRtWER062ZV/ixaNP2M2VKlWXVJiGzZaUgbKZw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.19.3.tgz", + "integrity": "sha512-RSYxtlYFl5pJ8ZePgMv0lZ9IzVCOdTPOegrs2qcbAEFrBI1G33h6wyC9kjQvo0DnYEhEVY0X4LsuFHXLKQk88g==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3", + "@prisma/engines-version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "@prisma/fetch-engine": "6.19.3", + "@prisma/get-platform": "6.19.3" + } + }, + "node_modules/@prisma/engines-version": { + "version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7.tgz", + "integrity": "sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.19.3.tgz", + "integrity": "sha512-tKtl/qco9Nt7LU5iKhpultD8O4vMCZcU2CHjNTnRrL1QvSUr5W/GcyFPjNL87GtRrwBc7ubXXD9xy4EvLvt8JA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3", + "@prisma/engines-version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "@prisma/get-platform": "6.19.3" + } + }, + "node_modules/@prisma/get-platform": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.19.3.tgz", + "integrity": "sha512-xFj1VcJ1N3MKooOQAGO0W5tsd0W2QzIvW7DD7c/8H14Zmp4jseeWAITm+w2LLoLrlhoHdPPh0NMZ8mfL6puoHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.19.3" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1219,6 +1372,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", @@ -1228,6 +1388,15 @@ "tslib": "^2.8.0" } }, + "node_modules/@tmcw/togeojson": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@tmcw/togeojson/-/togeojson-7.1.2.tgz", + "integrity": "sha512-QKnFs9DAuqqBVj4d6c69tV1Dj2TspSBTqffivoN0YoBCVdP/JY1+WaYCJbzU49RkoU5NOSOJ3jtFHCdEUVh21A==", + "license": "BSD-2-Clause", + "engines": { + "node": "*" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1246,6 +1415,18 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1291,6 +1472,15 @@ "@types/react": "^19.2.0" } }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.56.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz", @@ -1867,6 +2057,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", @@ -1884,11 +2083,22 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -2137,6 +2347,26 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/baseline-browser-mapping": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", @@ -2149,6 +2379,34 @@ "node": ">=6.0.0" } }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -2208,6 +2466,41 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/c12": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.1.0.tgz", + "integrity": "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.3", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^16.6.1", + "exsolve": "^1.0.7", + "giget": "^2.0.0", + "jiti": "^2.4.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.2.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.5" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -2231,7 +2524,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2245,7 +2537,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2305,6 +2596,32 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -2315,7 +2632,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -2328,7 +2644,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/concat-map": { @@ -2338,6 +2653,23 @@ "dev": true, "license": "MIT" }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2349,7 +2681,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -2374,6 +2705,15 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -2432,7 +2772,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2453,6 +2792,16 @@ "dev": true, "license": "MIT" }, + "node_modules/deepmerge-ts": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2489,6 +2838,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "dev": true, + "license": "MIT" + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -2512,11 +2875,23 @@ "node": ">=0.10.0" } }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2527,6 +2902,32 @@ "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/effect": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/effect/-/effect-3.21.0.tgz", + "integrity": "sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "fast-check": "^3.23.1" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.302", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", @@ -2538,9 +2939,18 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, "license": "MIT" }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/es-abstract": { "version": "1.24.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", @@ -2614,7 +3024,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2624,7 +3033,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2662,7 +3070,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2933,6 +3340,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -3172,6 +3580,42 @@ "node": ">=0.10.0" } }, + "node_modules/exsolve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.0.tgz", + "integrity": "sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-check": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.23.2.tgz", + "integrity": "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT", + "dependencies": { + "pure-rand": "^6.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3179,6 +3623,15 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-equals": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", + "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/fast-glob": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", @@ -3233,6 +3686,29 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3313,11 +3789,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3354,6 +3857,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gaxios": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/gcp-metadata": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -3378,7 +3910,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3403,7 +3934,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3444,6 +3974,45 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3457,6 +4026,42 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", + "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", @@ -3487,11 +4092,66 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/google-auth-library": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", + "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^7.0.0", + "gcp-metadata": "^8.0.0", + "google-logging-utils": "^1.0.0", + "gtoken": "^8.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/googleapis": { + "version": "171.4.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-171.4.0.tgz", + "integrity": "sha512-xybFL2SmmUgIifgsbsRQYRdNrSAYwxWZDmkZTGjUIaRnX5jPqR8el/cEvo6rCqh7iaZx6MfEPS/lrDgZ0bymkg==", + "license": "Apache-2.0", + "dependencies": { + "google-auth-library": "^10.2.0", + "googleapis-common": "^8.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/googleapis-common": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-8.0.1.tgz", + "integrity": "sha512-eCzNACUXPb1PW5l0ULTzMHaL/ltPRADoPgjBlT8jWsTbxkCp6siv+qKJ/1ldaybCthGwsYFYallF7u9AkU4L+A==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^7.0.0-rc.4", + "google-auth-library": "^10.1.0", + "qs": "^6.7.0", + "url-template": "^2.0.8" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3500,6 +4160,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gtoken": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz", + "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==", + "license": "MIT", + "dependencies": { + "gaxios": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -3556,7 +4229,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3585,7 +4257,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3611,6 +4282,19 @@ "hermes-estree": "0.25.1" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3847,6 +4531,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", @@ -4089,7 +4782,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/iterator.prototype": { @@ -4110,6 +4802,32 @@ "node": ">= 0.4" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4143,6 +4861,15 @@ "node": ">=6" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -4193,6 +4920,33 @@ "node": ">=4.0" } }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -4287,7 +5041,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4340,11 +5093,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { @@ -4441,6 +5202,26 @@ } } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-exports-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", @@ -4460,6 +5241,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "dev": true, + "license": "MIT" + }, "node_modules/node-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", @@ -4467,6 +5273,31 @@ "dev": true, "license": "MIT" }, + "node_modules/nypm": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.8.tgz", + "integrity": "sha512-Q9K4Diu6l5u6xJQogeFSs/zKtyMSgFKFtRQV+tHP4kL7KPm2grpBU0dFIwFaXwNxN0MtfKWc43VpCugAa+LPsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.2.2", + "pathe": "^2.0.3", + "tinyexec": "^1.2.4" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "dev": true, + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4481,7 +5312,6 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4590,6 +5420,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -4658,6 +5495,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4685,7 +5528,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4698,6 +5540,42 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4717,6 +5595,18 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -4765,6 +5655,33 @@ "node": ">= 0.8.0" } }, + "node_modules/prisma": { + "version": "6.19.3", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.19.3.tgz", + "integrity": "sha512-++ZJ0ijLrDJF6hNB4t4uxg2br3fC4H9Yc9tcbjr2fcNFP3rh/SBNrAgjhsqBU4Ght8JPrVofG/ZkXfnSfnYsFg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@prisma/config": "6.19.3", + "@prisma/engines": "6.19.3" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4787,6 +5704,38 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4808,6 +5757,17 @@ ], "license": "MIT" }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, "node_modules/react": { "version": "19.2.3", "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", @@ -4838,6 +5798,20 @@ "dev": true, "license": "MIT" }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -4934,6 +5908,21 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4978,6 +5967,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -5140,7 +6149,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -5153,7 +6161,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5163,7 +6170,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5183,7 +6189,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5200,7 +6205,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -5219,7 +6223,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -5235,6 +6238,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5265,6 +6280,65 @@ "node": ">= 0.4" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -5378,6 +6452,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5424,6 +6535,15 @@ } } }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5450,6 +6570,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tinyexec": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -5789,11 +6919,25 @@ "punycode": "^2.1.0" } }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", + "license": "BSD" + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -5904,6 +7048,94 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/package.json b/package.json index d466368..cb56fd4 100644 --- a/package.json +++ b/package.json @@ -4,21 +4,30 @@ "private": true, "scripts": { "dev": "next dev", - "build": "next build", + "build": "npx prisma generate && next build", "start": "next start", "lint": "eslint" }, "dependencies": { + "@googlemaps/js-api-loader": "^2.0.2", + "@googlemaps/markerclusterer": "^2.6.2", + "@tmcw/togeojson": "^7.1.2", + "@types/geojson": "^7946.0.16", + "bootstrap": "^5.3.8", + "googleapis": "^171.4.0", "next": "16.1.6", "react": "19.2.3", "react-dom": "19.2.3" }, "devDependencies": { + "@prisma/client": "^6.4.0", + "@types/google.maps": "^3.58.1", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "16.1.6", + "prisma": "^6.4.0", "typescript": "^5" } } diff --git a/prisma/dev.db b/prisma/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..ff448f8c46f384167e8802115522f86324eeb21a GIT binary patch literal 1011712 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

-#c8b7&}%leqqv6- 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
Ef}Elxp0!7c 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⋘R9%9bfDYB)M!O$2>&qp2V5bgA|Y;BUC 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 z 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 literal 0 HcmV?d00001 diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..d3f26f1 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,21 @@ +generator client { + provider = "prisma-client-js" + binaryTargets = ["native", "debian-openssl-1.1.x", "debian-openssl-3.0.x"] +} + +datasource db { + provider = "sqlite" + url = env("DATABASE_URL") +} + +model Location { + id String @id @default(uuid()) + title String + city String + tags String + captureDate DateTime + visibility String @default("public") // 'public' or 'unlisted' + gpxData String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} diff --git a/src/app/admin/edit/[id]/page.tsx b/src/app/admin/edit/[id]/page.tsx new file mode 100644 index 0000000..b6bfff1 --- /dev/null +++ b/src/app/admin/edit/[id]/page.tsx @@ -0,0 +1,20 @@ +import AdminLocationForm from "@/components/AdminLocationForm"; + +export default async function EditLocationPage({ + params, +}: { + params: Promise<{ id: string }>; +}) { + const { id } = await params; + + return ( +

+
+
Edit Location
+
+
+ +
+
+ ); +} diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx new file mode 100644 index 0000000..e445d18 --- /dev/null +++ b/src/app/admin/layout.tsx @@ -0,0 +1,80 @@ +"use client"; + +import Link from "next/link"; +import { useEffect } from "react"; +import { useRouter } from "next/navigation"; + +export default function AdminLayout({ + children, +}: { + children: React.ReactNode; +}) { + const router = useRouter(); + + const handleLogout = async () => { + try { + await fetch("/api/auth/logout", { method: "POST" }); + router.push("/login"); + router.refresh(); + } catch (e) { + console.error("Logout failed", e); + } + }; + + const closeAdminSidebar = () => { + if (typeof window !== 'undefined' && typeof document !== 'undefined') { + const offcanvasEl = document.getElementById('adminSidebar'); + if (offcanvasEl && (window as any).bootstrap) { + try { + const bsOffcanvas = (window as any).bootstrap.Offcanvas.getInstance(offcanvasEl) || new (window as any).bootstrap.Offcanvas(offcanvasEl); + if (bsOffcanvas) { + bsOffcanvas.hide(); + } + } catch (e) { + console.error('Error closing admin offcanvas:', e); + offcanvasEl.classList.remove('show', 'showing'); + } + } + } + }; + return ( +
+ {/* Mobile Header with Toggle Button */} +
+ Admin Panel + +
+ + {/* Sidebar (Offcanvas on mobile, visible on desktop) */} +
+
+
Admin Panel
+ +
+ + Admin Panel + +
+
    +
  • + + Go to Site + +
  • +
  • + +
  • +
+
+ + {/* Main Content Area */} +
+
{children}
+
+
+ ); +} diff --git a/src/app/admin/new/page.tsx b/src/app/admin/new/page.tsx new file mode 100644 index 0000000..8801009 --- /dev/null +++ b/src/app/admin/new/page.tsx @@ -0,0 +1,14 @@ +import AdminLocationForm from "@/components/AdminLocationForm"; + +export default function NewLocationPage() { + return ( +
+
+
Add New Location
+
+
+ +
+
+ ); +} diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx new file mode 100644 index 0000000..8150800 --- /dev/null +++ b/src/app/admin/page.tsx @@ -0,0 +1,118 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Link from "next/link"; +import { Location } from "@prisma/client"; + +export default function AdminDashboard() { + const [locations, setLocations] = useState([]); + const [loading, setLoading] = useState(true); + + const fetchLocations = async () => { + try { + const res = await fetch("/api/admin/locations"); + if (res.ok) { + const data = await res.json(); + setLocations(data); + } + } catch (error) { + console.error("Failed to fetch locations", error); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + fetchLocations(); + }, []); + + const handleDelete = async (id: string) => { + if (!confirm("Are you sure you want to delete this location?")) return; + try { + const res = await fetch(`/api/admin/locations/${id}`, { + method: "DELETE", + }); + if (res.ok) { + fetchLocations(); + } else { + alert("Failed to delete"); + } + } catch (error) { + console.error(error); + } + }; + + if (loading) return
Loading...
; + + return ( + <> +
+
+
Manage Locations (Projects)
+ + + Add New Project + +
+
+
+ + + + + + + + + + + + {locations.map((loc) => ( + + + + + + + + ))} + {locations.length === 0 && ( + + + + )} + +
TitleCityGPX RouteVisibilityActions
{loc.title}{loc.city} + {loc.gpxData ? ( + Has Route + ) : ( + No Route + )} + + + {loc.visibility} + + + + Edit + + +
+ No locations found. Start by adding one. +
+
+
+
+ + ); +} diff --git a/src/app/api/admin/locations/[id]/route.ts b/src/app/api/admin/locations/[id]/route.ts new file mode 100644 index 0000000..aa6fe2d --- /dev/null +++ b/src/app/api/admin/locations/[id]/route.ts @@ -0,0 +1,50 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib/prisma"; + +export const dynamic = "force-dynamic"; + +export async function PUT( + request: Request, + { params }: { params: Promise<{ id: string }> } +) { + try { + const { id } = await params; + const body = await request.json(); + + const location = await prisma.location.update({ + where: { id }, + // @ts-ignore + data: { + title: body.title, + city: body.city, + gpxData: body.gpxData, + tags: body.tags, + captureDate: new Date(body.captureDate), + visibility: body.visibility, + }, + }); + + return NextResponse.json(location); + } catch (error) { + console.error("Error updating location:", error); + return NextResponse.json({ error: "Failed to update location" }, { status: 500 }); + } +} + +export async function DELETE( + request: Request, + { params }: { params: Promise<{ id: string }> } +) { + try { + const { id } = await params; + + await prisma.location.delete({ + where: { id }, + }); + + return NextResponse.json({ success: true }); + } catch (error) { + console.error("Error deleting location:", error); + return NextResponse.json({ error: "Failed to delete location" }, { status: 500 }); + } +} diff --git a/src/app/api/admin/locations/route.ts b/src/app/api/admin/locations/route.ts new file mode 100644 index 0000000..ad05d84 --- /dev/null +++ b/src/app/api/admin/locations/route.ts @@ -0,0 +1,42 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib/prisma"; + +export const dynamic = "force-dynamic"; + +export async function GET() { + try { + const locations = await prisma.location.findMany({ + orderBy: { + createdAt: "desc", + }, + }); + + return NextResponse.json(locations); + } catch (error) { + console.error("Error fetching all locations:", error); + return NextResponse.json({ error: "Failed to fetch locations" }, { status: 500 }); + } +} + +export async function POST(request: Request) { + try { + const body = await request.json(); + + // Convert strings to float for lat/lng, or they might already be numbers + const location = await prisma.location.create({ + data: { + title: body.title, + city: body.city, + gpxData: body.gpxData, + tags: body.tags, + captureDate: new Date(body.captureDate), + visibility: body.visibility || "public", + }, + }); + + return NextResponse.json(location); + } catch (error: any) { + console.error("Error creating location:", error); + return NextResponse.json({ error: error instanceof Error ? error.message : "Failed to create location" }, { status: 500 }); + } +} diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts new file mode 100644 index 0000000..55fee6f --- /dev/null +++ b/src/app/api/auth/login/route.ts @@ -0,0 +1,39 @@ +import { NextResponse } from "next/server"; + +export async function POST(request: Request) { + try { + // const { password } = await request.json(); + const { username, password } = await request.json(); + const correctPassword = process.env.ADMIN_PASSWORD; + const correctUsername = process.env.ADMIN_USERNAME || "admin"; + + if (!correctPassword) { + console.error("ADMIN_PASSWORD environment variable is not set."); + return NextResponse.json({ error: "Server Configuration Error" }, { status: 500 }); + } + + // if (password === correctPassword) { + if (username === correctUsername && password === correctPassword) { + const response = NextResponse.json({ success: true }); + + // Set an HTTP-only cookie that expires in 30 days + response.cookies.set({ + name: 'admin_session', + value: 'authenticated', + httpOnly: true, + secure: process.env.NODE_ENV === 'production', + sameSite: 'lax', + maxAge: 60 * 60 * 24 * 30, // 30 days + path: '/', + }); + + return response; + } + + // return NextResponse.json({ error: "Invalid password." }, { status: 401 }); + return NextResponse.json({ error: "Invalid credentials." }, { status: 401 }); + + } catch (error) { + return NextResponse.json({ error: "Invalid request." }, { status: 400 }); + } +} diff --git a/src/app/api/auth/logout/route.ts b/src/app/api/auth/logout/route.ts new file mode 100644 index 0000000..acafaca --- /dev/null +++ b/src/app/api/auth/logout/route.ts @@ -0,0 +1,10 @@ +import { NextResponse } from "next/server"; + +export async function POST() { + const response = NextResponse.json({ success: true }); + + // Hard delete the cookie + response.cookies.delete('admin_session'); + + return response; +} diff --git a/src/app/api/config/route.ts b/src/app/api/config/route.ts new file mode 100644 index 0000000..a089ed7 --- /dev/null +++ b/src/app/api/config/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET() { + return NextResponse.json({ + apiKey: process.env.GOOGLE_MAPS_API_KEY || "" + }); +} \ No newline at end of file diff --git a/src/app/api/locations/route.ts b/src/app/api/locations/route.ts new file mode 100644 index 0000000..96b631f --- /dev/null +++ b/src/app/api/locations/route.ts @@ -0,0 +1,22 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib/prisma"; + +export const dynamic = "force-dynamic"; + +export async function GET() { + try { + const locations = await prisma.location.findMany({ + where: { + visibility: "public", + }, + orderBy: { + createdAt: "desc", + }, + }); + + return NextResponse.json(locations); + } catch (error) { + console.error("Error fetching public locations:", error); + return NextResponse.json({ error: "Failed to fetch locations" }, { status: 500 }); + } +} diff --git a/src/app/globals.css b/src/app/globals.css index e3734be..1eaf6da 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,42 +1,130 @@ -:root { - --background: #ffffff; - --foreground: #171717; -} - -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } -} - -html, body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: var(--foreground); - background: var(--background); - font-family: Arial, Helvetica, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -* { - box-sizing: border-box; - padding: 0; margin: 0; + padding: 0; + font-family: "Google Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + background-color: #202124; + color: #e8eaed; } -a { - color: inherit; - text-decoration: none; +::-webkit-scrollbar { + width: 8px; + height: 8px; } -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; +::-webkit-scrollbar-track { + background: #202124; +} + +::-webkit-scrollbar-thumb { + background: #5f6368; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #80868b; +} + +.gsv-navbar { + background-color: #202124; + border-bottom: 1px solid #3c4043; +} + +.gsv-sidebar { + background-color: #202124; + border-right: 1px solid #3c4043; +} + +.gsv-search-container { + border-bottom: 1px solid #3c4043; +} + +.gsv-input { + background-color: #303134; + border: 1px solid #5f6368; + color: #e8eaed; +} + +.gsv-input:focus { + background-color: #303134; + border-color: #8ab4f8; + color: #e8eaed; + box-shadow: 0 0 0 1px #8ab4f8; +} + +.gsv-input::placeholder { + color: #9aa0a6; +} + +select.gsv-input option { + background-color: #303134; + color: #e8eaed; +} + +.gsv-card { + background-color: #303134; + border: 1px solid transparent; + color: #e8eaed; + transition: all 0.2s ease-in-out; + border-radius: 8px; +} + +.gsv-card:hover { + background-color: #3c4043; + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); +} + +.gsv-card-active { + background-color: #42474b; + border: 1px solid #8ab4f8; +} + +.gsv-title { + color: #e8eaed; + font-weight: 500; +} + +.gsv-subtitle { + color: #9aa0a6; +} + +.gsv-btn-share { + color: #8ab4f8; + border: 1px solid #5f6368; + background-color: transparent; + transition: all 0.2s ease-in-out; +} + +.gsv-btn-share:hover { + background-color: rgba(138, 180, 248, 0.04); + color: #a8c7fa; + border-color: #8ab4f8; +} + +.gsv-btn-maps { + background-color: #8ab4f8; + color: #202124; + font-weight: 500; + border: none; + transition: all 0.2s ease-in-out; +} + +.gsv-btn-maps:hover { + background-color: #a8c7fa; + color: #202124; +} + +.offcanvas-backdrop { + opacity: 0 !important; + background-color: transparent !important; +} + +.gsv-search-wrapper { + max-width: 150px; +} + +@media (min-width: 768px) { + .gsv-search-wrapper { + max-width: 400px; } -} +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 42fc323..31291f8 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,20 +1,11 @@ import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; +import "bootstrap/dist/css/bootstrap.min.css"; import "./globals.css"; - -const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], -}); - -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); +import BootstrapClient from "@/components/BootstrapClient"; export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "Street View Gallery", + description: "Public gallery of Google Street View panoramas", }; export default function RootLayout({ @@ -23,9 +14,12 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - - {children} + + +
+ {children} +
+ ); diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx new file mode 100644 index 0000000..1c00b37 --- /dev/null +++ b/src/app/login/page.tsx @@ -0,0 +1,122 @@ +"use client"; + +import { useState } from "react"; +import { useRouter } from "next/navigation"; + +export default function LoginPage() { + const [username, setUsername] = useState(""); + const [password, setPassword] = useState(""); + const [error, setError] = useState(""); + const [loading, setLoading] = useState(false); + const router = useRouter(); + + const handleLogin = async (e: React.FormEvent) => { + e.preventDefault(); + setError(""); + setLoading(true); + + try { + // const res = await fetch("/api/auth/login", { + // method: "POST", + // headers: { "Content-Type": "application/json" }, + // body: JSON.stringify({ password }), + // }); + const res = await fetch("/api/auth/login", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ username, password }), + }); + + if (res.ok) { + router.push("/admin"); + router.refresh(); + } else { + const data = await res.json(); + // setError(data.error || "Invalid password"); + setError(data.error || "Invalid credentials"); + } + } catch (err) { + setError("Something went wrong. Please try again."); + } finally { + setLoading(false); + } + }; + + return ( +
+
+
+

Admin Portal

+ Portfolio Management +
+
+
+ {error && ( +
+ {error} +
+ )} +
+ + setUsername(e.target.value)} + placeholder="Enter username..." + required + autoFocus + /> +
+ {/* Original secure password input block: +
+ + setPassword(e.target.value)} + placeholder="Enter password..." + required + autoFocus + /> +
+ */} +
+ + setPassword(e.target.value)} + placeholder="Enter password..." + required + /> +
+ {/* Original button block: + + */} + +
+
+
+ +
+
+
+ ); +} diff --git a/src/app/page.module.css b/src/app/page.module.css index 59dea42..8f1b56e 100644 --- a/src/app/page.module.css +++ b/src/app/page.module.css @@ -93,7 +93,6 @@ a.secondary { border-color: var(--button-secondary-border); } -/* Enable hover only on non-touch devices */ @media (hover: hover) and (pointer: fine) { a.primary:hover { background: var(--button-primary-hover); diff --git a/src/app/page.tsx b/src/app/page.tsx index 7b947a2..044f44b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,66 +1,5 @@ -import Image from "next/image"; -import styles from "./page.module.css"; +import Gallery from "@/components/Gallery"; export default function Home() { - return ( -
-
- Next.js logo -
-

To get started, edit the page.tsx file.

-

- Looking for a starting point or more instructions? Head over to{" "} - - Templates - {" "} - or the{" "} - - Learning - {" "} - center. -

-
- -
-
- ); + return ; } diff --git a/src/components/AdminLocationForm.tsx b/src/components/AdminLocationForm.tsx new file mode 100644 index 0000000..414c30a --- /dev/null +++ b/src/components/AdminLocationForm.tsx @@ -0,0 +1,202 @@ +"use client"; + +import { useState, useEffect, useRef } from "react"; +import { useRouter } from "next/navigation"; +import { Location } from "@prisma/client"; +import { setOptions, importLibrary } from "@googlemaps/js-api-loader"; + +export default function AdminLocationForm({ + locationId, +}: { + locationId?: string; +}) { + const router = useRouter(); + const [loading, setLoading] = useState(false); + const [fetching, setFetching] = useState(!!locationId); + + const mapRef = useRef(null); + const googleMapObj = useRef(null); + const markerRef = useRef(null); + + const [formData, setFormData] = useState({ + title: "", + city: "", + gpxData: "", + tags: "", + captureDate: new Date().toISOString().split("T")[0], + visibility: "public", + }); + + useEffect(() => { + if (locationId) { + // Fetch entire list and find by ID (simple approach) or create a GET /api/admin/locations/[id] single route. + // Since we don't have a single GET endpoint, let's fetch all and filter. + fetch("/api/admin/locations") + .then((res) => res.json()) + .then((data: Location[]) => { + if (Array.isArray(data)) { + const loc = data.find((l) => l.id === locationId); + if (loc) { + setFormData({ + title: loc.title, + city: loc.city, + gpxData: loc.gpxData || "", + tags: loc.tags, + captureDate: new Date(loc.captureDate).toISOString().split("T")[0], + visibility: loc.visibility, + }); + } + } else { + console.error("API returned non-array data for locations:", data); + } + setFetching(false); + }) + .catch((err) => { + console.error("Error fetching admin locations:", err); + setFetching(false); + }); + } + }, [locationId]); + + const handleFileChange = (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = (event) => { + const text = event.target?.result as string; + setFormData((prev) => ({ ...prev, gpxData: text })); + }; + reader.readAsText(file); + }; + + const handleChange = ( + e: React.ChangeEvent + ) => { + setFormData((prev) => ({ ...prev, [e.target.name]: e.target.value })); + }; + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setLoading(true); + + const endpoint = locationId + ? `/api/admin/locations/${locationId}` + : "/api/admin/locations"; + const method = locationId ? "PUT" : "POST"; + + try { + const res = await fetch(endpoint, { + method, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(formData), + }); + + if (res.ok) { + router.push("/admin"); + } else { + const errorData = await res.json().catch(() => ({})); + alert(`Operation failed: ${errorData.error || res.statusText}`); + } + } catch (error: any) { + console.error(error); + alert(`Network error: ${error.message}`); + } finally { + setLoading(false); + } + }; + + if (fetching) return
Loading...
; + + return ( +
+
+ + +
+
+ + +
+
+ + + Upload the .gpx file for this project's journey. + {formData.gpxData && ( +
+ ✓ GPX data loaded ({formData.gpxData.length} bytes) +
+ )} +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ ); +} diff --git a/src/components/BootstrapClient.tsx b/src/components/BootstrapClient.tsx new file mode 100644 index 0000000..97cfaac --- /dev/null +++ b/src/components/BootstrapClient.tsx @@ -0,0 +1,11 @@ +"use client"; + +import { useEffect } from "react"; + +export default function BootstrapClient() { + useEffect(() => { + require("bootstrap/dist/js/bootstrap.bundle.min.js"); + }, []); + + return null; +} diff --git a/src/components/Gallery.tsx b/src/components/Gallery.tsx new file mode 100644 index 0000000..865b489 --- /dev/null +++ b/src/components/Gallery.tsx @@ -0,0 +1,520 @@ +"use client"; + +import { useEffect, useState, useRef } from "react"; +import { importLibrary, setOptions } from "@googlemaps/js-api-loader"; +import { Location } from "@prisma/client"; +import { gpx } from "@tmcw/togeojson"; + +export default function Gallery() { + const [locations, setLocations] = useState([]); + const [filteredLocations, setFilteredLocations] = useState([]); + const [selectedLocation, setSelectedLocation] = useState(null); + const [search, setSearch] = useState(""); + const [viewingStreetView, setViewingStreetView] = useState(false); + const [iframeUrl, setIframeUrl] = useState(null); + const [isMobileSidebarOpen, setIsMobileSidebarOpen] = useState(false); + const [thumbnails, setThumbnails] = useState>({}); + const [toastMessage, setToastMessage] = useState(null); + const [totalMiles, setTotalMiles] = useState(0); + const [geometryLoaded, setGeometryLoaded] = useState(false); + + // Sunucudan dynamic olarak çekeceğimiz key için state + const [runtimeApiKey, setRuntimeApiKey] = useState(""); + + const locationsRef = useRef([]); + + const mapRef = useRef(null); + const miniMapRef = useRef(null); + const googleMapObj = useRef(null); + const miniMapObj = useRef(null); + const miniMapMarkerObj = useRef(null); + const svServiceRef = useRef(null); + const activePolylinesRef = useRef<{ id: string; polyline: google.maps.Polyline; bounds: google.maps.LatLngBounds; firstCoord: google.maps.LatLngLiteral }[]>([]); + + // 1. Sayfa mount olduğunda runtime API keyi kap gel + useEffect(() => { + fetch("/api/config") + .then((res) => res.json()) + .then((data) => { + if (data.apiKey) setRuntimeApiKey(data.apiKey); + }) + .catch((err) => console.error("Error fetching config:", err)); + }, []); + + // Fetch locations + useEffect(() => { + const queryParams = new URLSearchParams(window.location.search); + const initialLocId = queryParams.get("locationId"); + + fetch("/api/locations") + .then((res) => res.json()) + .then((data) => { + if (Array.isArray(data)) { + setLocations(data); + locationsRef.current = data; + setFilteredLocations(data); + if (data.length > 0) { + const targetLoc = data.find((l: Location) => l.id === initialLocId) || data[0]; + setSelectedLocation(targetLoc); + } + } else { + console.error("API returned non-array data:", data); + } + }) + .catch((err) => console.error("Error fetching locations:", err)); + }, []); + + // Filter locations + useEffect(() => { + const term = search.toLowerCase(); + setFilteredLocations( + locations.filter((loc) => { + return loc.title.toLowerCase().includes(term) || loc.city.toLowerCase().includes(term) || (loc.tags && loc.tags.toLowerCase().includes(term)); + }) + ); + }, [search, locations]); + + // Load Google Maps API & Initialize + useEffect(() => { + if (!runtimeApiKey) return; // Key gelene kadar bekle, haritayı patlatma + + setOptions({ + key: runtimeApiKey, // Dynamic runtime key devrede + v: "weekly", + }); + + importLibrary("maps").then(async () => { + const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; + const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; + const { StreetViewPanorama } = await google.maps.importLibrary("streetView") as google.maps.StreetViewLibrary; + await google.maps.importLibrary("geometry"); + + setGeometryLoaded(true); + + svServiceRef.current = new google.maps.StreetViewService(); + + googleMapObj.current = new Map(mapRef.current as HTMLElement, { + center: { lat: 20, lng: 0 }, + zoom: 2, + mapId: "STREET_VIEW_GALLERY_MAP", + }); + + miniMapObj.current = new Map(miniMapRef.current as HTMLElement, { + center: { lat: 20, lng: 0 }, + zoom: 14, + mapId: "STREET_VIEW_MINI_MAP", + disableDefaultUI: true, + zoomControl: false, + mapTypeControl: false, + streetViewControl: false, + fullscreenControl: false, + clickableIcons: false, + keyboardShortcuts: false + }); + + miniMapMarkerObj.current = new AdvancedMarkerElement({ + map: miniMapObj.current, + position: { lat: 0, lng: 0 }, + }); + + const defaultStreetView = googleMapObj.current.getStreetView(); + defaultStreetView.setOptions({ enableCloseButton: false }); + + defaultStreetView.addListener("visible_changed", () => { + if (defaultStreetView.getVisible()) { + const pos = defaultStreetView.getPosition(); + defaultStreetView.setVisible(false); + + if (pos) { + // Pegman drop interception key'i yenilendi + setIframeUrl(`https://www.google.com/maps/embed/v1/streetview?key=${runtimeApiKey}&location=${pos.lat()},${pos.lng()}&heading=0&pitch=0&fov=90`); + setViewingStreetView(true); + + if (miniMapObj.current && miniMapMarkerObj.current) { + miniMapObj.current.setCenter(pos); + miniMapMarkerObj.current.position = pos; + } + } + } + }); + }); + }, [runtimeApiKey]); // runtimeApiKey gelince tetiklenecek + + // Draw all GPX routes for filtered locations + useEffect(() => { + if (!googleMapObj.current || typeof window === 'undefined' || !window.google || !geometryLoaded || !runtimeApiKey) return; + + // Clear existing routes + activePolylinesRef.current.forEach((p) => p.polyline.setMap(null)); + activePolylinesRef.current = []; + + const bounds = new google.maps.LatLngBounds(); + let hasPoints = false; + let calculatedMeters = 0; + const newThumbnails: Record = {}; + + filteredLocations.forEach((loc) => { + if (!loc.gpxData) return; + + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(loc.gpxData, "text/xml"); + const geoJson = gpx(xmlDoc); + + let coords: google.maps.LatLngLiteral[] = []; + let locBounds = new google.maps.LatLngBounds(); + + geoJson.features.forEach((feature) => { + if (feature.geometry?.type === "LineString") { + coords = coords.concat(feature.geometry.coordinates.map((c: any) => ({ lat: c[1], lng: c[0] }))); + } else if (feature.geometry?.type === "MultiLineString") { + feature.geometry.coordinates.forEach((line: any) => { + coords = coords.concat(line.map((c: any) => ({ lat: c[1], lng: c[0] }))); + }); + } else if (feature.geometry?.type === "Point") { + coords.push({ lat: feature.geometry.coordinates[1], lng: feature.geometry.coordinates[0] }); + } + }); + + if (coords.length > 0) { + calculatedMeters += google.maps.geometry.spherical.computeLength(coords); + + const polyline = new google.maps.Polyline({ + path: coords, + strokeColor: "#0000FF", + strokeOpacity: 0.6, + strokeWeight: 4, + clickable: true, + map: googleMapObj.current, + zIndex: selectedLocation?.id === loc.id ? 10 : 1, + }); + + const miniPolyline = new google.maps.Polyline({ + path: coords, + strokeColor: "#0000FF", + strokeOpacity: 0.8, + strokeWeight: 4, + map: miniMapObj.current, + zIndex: 1, + clickable: true + }); + + coords.forEach((c) => { + bounds.extend(c); + locBounds.extend(c); + hasPoints = true; + }); + + activePolylinesRef.current.push({ + id: loc.id, + polyline, + bounds: locBounds, + firstCoord: coords[0] + }); + + // Main Map click + polyline.addListener("click", (clickEvent: google.maps.MapMouseEvent) => { + if (!clickEvent.latLng) return; + const clickPos = clickEvent.latLng; + setIframeUrl(`https://www.google.com/maps/embed/v1/streetview?key=${runtimeApiKey}&location=${clickPos.lat()},${clickPos.lng()}&heading=0&pitch=0&fov=90`); + setViewingStreetView(true); + + if (miniMapObj.current && miniMapMarkerObj.current) { + miniMapObj.current.setCenter(clickPos); + miniMapMarkerObj.current.position = clickPos; + } + }); + + // Mini Map click + miniPolyline.addListener("click", (clickEvent: google.maps.MapMouseEvent) => { + if (!clickEvent.latLng) return; + const clickPos = clickEvent.latLng; + setIframeUrl(`https://www.google.com/maps/embed/v1/streetview?key=${runtimeApiKey}&location=${clickPos.lat()},${clickPos.lng()}&heading=0&pitch=0&fov=90`); + setViewingStreetView(true); + + if (miniMapObj.current && miniMapMarkerObj.current) { + miniMapObj.current.setCenter(clickPos); + miniMapMarkerObj.current.position = clickPos; + } + }); + + // Generate Static Map Thumbnail URL (Runtime key kullanıyor) + try { + const maxThumbnailPoints = 150; + const step = Math.max(1, Math.floor(coords.length / maxThumbnailPoints)); + const simplifiedCoords = coords.filter((_, i) => i % step === 0); + const encodedPath = google.maps.geometry.encoding.encodePath(simplifiedCoords); + newThumbnails[loc.id] = `https://maps.googleapis.com/maps/api/staticmap?size=600x250&scale=2&path=weight:3%7Ccolor:blue%7Cenc:${encodedPath}&key=${runtimeApiKey}`; + } catch (err) { + console.error("Failed to generate static map thumbnail", err); + } + } + }); + + setThumbnails(newThumbnails); + setTotalMiles(calculatedMeters * 0.000621371); + + if (hasPoints) { + googleMapObj.current.fitBounds(bounds); + } + + }, [filteredLocations, geometryLoaded, selectedLocation, runtimeApiKey]); // runtimeApiKey dependecy eklendi + + // Handle Selection Highlights and panning smoothly + useEffect(() => { + if (!googleMapObj.current || !geometryLoaded) return; + + let didPan = false; + + activePolylinesRef.current.forEach((item) => { + if (selectedLocation?.id === item.id) { + item.polyline.setOptions({ strokeColor: "#00FF00", strokeOpacity: 1.0, strokeWeight: 6, zIndex: 10 }); + if (!didPan) { + googleMapObj.current!.fitBounds(item.bounds); + didPan = true; + } + } else { + item.polyline.setOptions({ strokeColor: "#0000FF", strokeOpacity: 0.6, strokeWeight: 4, zIndex: 1 }); + } + }); + }, [selectedLocation, geometryLoaded]); + + // Update URL when selection changes + useEffect(() => { + if (!selectedLocation) return; + if (typeof window !== "undefined") { + const url = new URL(window.location.href); + url.searchParams.set("locationId", selectedLocation.id); + window.history.pushState({}, "", url.toString()); + } + }, [selectedLocation]); + + const closeMobileSidebar = () => { + setIsMobileSidebarOpen(false); + }; + + const handleLocationSelect = (loc: Location) => { + setViewingStreetView(false); + setIframeUrl(null); + + if (selectedLocation?.id === loc.id) { + const item = activePolylinesRef.current.find(p => p.id === loc.id); + if (item && googleMapObj.current) { + googleMapObj.current.fitBounds(item.bounds); + } + } else { + setSelectedLocation(loc); + } + closeMobileSidebar(); + }; + + return ( +
+ + +
+ {/* Left: List */} +
+
+
Locations
+ +
+ +
+
+ {filteredLocations.map((loc) => ( +
handleLocationSelect(loc)} + style={{ cursor: "pointer", overflow: "hidden" }} + > + {/* --- MOBILE LAYOUT --- */} +
+
+ {thumbnails[loc.id] ? ( + Route thumbnail + ) : ( +
+ Loading... +
+ )} +
+
+
{loc.title}
+

+ {loc.city}
{new Date(loc.captureDate).toLocaleDateString()} +

+
+ {loc.tags && ( + {loc.tags} + )} + {!loc.gpxData && ( + No Route + )} +
+
+
+ + {/* --- DESKTOP LAYOUT --- */} +
+
+ {thumbnails[loc.id] ? ( + Route thumbnail + ) : ( + Loading Map... + )} +
+
+
{loc.title}
+

+ {loc.city} • {new Date(loc.captureDate).toLocaleDateString()} +

+
+ {loc.tags} +
+
+ {!loc.gpxData && ( + No Route Data + )} +
+
+
+
+ ))} + {filteredLocations.length === 0 && ( +
No locations found.
+ )} + + {locations.length > 0 && ( +
+ Images dating back to { + new Date(Math.min(...locations.map(l => new Date(l.captureDate).getTime()))).getFullYear() + } +
+ )} +
+
+
+ + {/* Main Panel */} +
+
+ + {viewingStreetView && iframeUrl && ( + <> +
+ +
+ + + )} + +
+
+
+ + {isMobileSidebarOpen && ( +
setIsMobileSidebarOpen(false)} + /> + )} +
+ ); +} \ No newline at end of file diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts new file mode 100644 index 0000000..9fbde77 --- /dev/null +++ b/src/lib/prisma.ts @@ -0,0 +1,10 @@ +import { PrismaClient } from "@prisma/client"; + +// PrismaClient is attached to the `global` object in development to prevent +// exhausting your database connection limit. +const globalForPrisma = global as unknown as { prisma: PrismaClient }; + +export const prisma = + globalForPrisma.prisma || new PrismaClient(); + +if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma; diff --git a/src/middleware.ts b/src/middleware.ts new file mode 100644 index 0000000..7df1462 --- /dev/null +++ b/src/middleware.ts @@ -0,0 +1,39 @@ +import { NextResponse } from 'next/server'; +import type { NextRequest } from 'next/server'; + +export function middleware(request: NextRequest) { + const isAuthRoute = request.nextUrl.pathname.startsWith('/login') || request.nextUrl.pathname.startsWith('/api/auth'); + const isAdminRoute = request.nextUrl.pathname.startsWith('/admin') || request.nextUrl.pathname.startsWith('/api/admin'); + + // If trying to access admin routes, verify the session cookie + if (isAdminRoute) { + const adminSession = request.cookies.get('admin_session'); + + // Allow GET /api/admin/locations (used by the public gallery) + if (request.nextUrl.pathname === '/api/admin/locations' && request.method === 'GET') { + return NextResponse.next(); + } + + // Redirect to login if no session cookie exists + if (!adminSession?.value) { + if (request.nextUrl.pathname.startsWith('/api/')) { + return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); + } + return NextResponse.redirect(new URL('/login', request.url)); + } + } + + // If trying to access login page but already authenticated, redirect to admin + if (request.nextUrl.pathname === '/login') { + const adminSession = request.cookies.get('admin_session'); + if (adminSession?.value) { + return NextResponse.redirect(new URL('/admin', request.url)); + } + } + + return NextResponse.next(); +} + +export const config = { + matcher: ['/admin/:path*', '/api/admin/:path*', '/login'], +};