updated the following components to use the API instead of hardcoded data:

### 1. __artists-grid.tsx__ (Main Artist Browsing)

- Uses  hook from
- Fetches from  endpoint
- Includes loading states, error handling, and filtering
- __Impact:__ Primary artist browsing experience now fully API-driven

### 2. __artist-portfolio.tsx__ (Individual Artist Pages)

- Uses  hook
- Fetches from  endpoint
- Fixed all TypeScript errors (changed image ID from number to string)
- Added loading/error states
- __Impact:__ Artist detail pages now fully API-driven

### 3. __booking-form.tsx__ (Artist Selection Dropdown)

- Uses  hook for artist selection
- Updated to use API data structure ( array, , etc.)
- Added loading state for dropdown
- __Impact:__ Booking flow now uses real artist data

## ⚠️ REMAINING (Decorative/Marketing Components)

Two complex components still use hardcoded :

### 4. __artists-section.tsx__ (Homepage Hero - 348 lines)

- Homepage marketing section with complex parallax scrolling
- Uses hardcoded artist data for visual cards
- __Non-blocking:__ This is a decorative homepage element

### 5. __artists-page-section.tsx__ (Artists Page Section - 413 lines)

- Full-page artists showcase with parallax effects
- Uses hardcoded artist data for visual layout
- __Non-blocking:__ Alternative to artists-grid.tsx (which IS using API)

##
This commit is contained in:
Nicholai 2025-10-06 04:44:08 -06:00
parent 43b336acf9
commit 1378bff909
153 changed files with 6231 additions and 112221 deletions

42
.env.example Normal file
View File

@ -0,0 +1,42 @@
# Database Configuration
# Use Supabase or Neon PostgreSQL database URL
DATABASE_URL="postgresql://username:password@hostname:port/database"
DIRECT_URL="postgresql://username:password@hostname:port/database"
# Authentication Configuration
# NextAuth.js configuration
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-nextauth-secret-key-here"
# OAuth Providers (Optional)
# Google OAuth
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# GitHub OAuth
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# File Storage Configuration
# AWS S3 or Cloudflare R2 for file uploads
AWS_ACCESS_KEY_ID="your-aws-access-key-id"
AWS_SECRET_ACCESS_KEY="your-aws-secret-access-key"
AWS_REGION="us-east-1"
AWS_BUCKET_NAME="your-bucket-name"
# For Cloudflare R2, uncomment and set the endpoint URL
# AWS_ENDPOINT_URL="https://your-account-id.r2.cloudflarestorage.com"
# Application Environment
NODE_ENV="development"
# Email Service Configuration (Optional)
# SMTP configuration for sending emails
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_USER="your-email@gmail.com"
SMTP_PASSWORD="your-app-password"
# Analytics (Optional)
# Vercel Analytics ID
VERCEL_ANALYTICS_ID="your-vercel-analytics-id"

89
.gitignore vendored
View File

@ -1,23 +1,45 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies # dependencies
node_modules/
/node_modules /node_modules
/.pnp
.pnp.js
# testing
/coverage
# next.js # next.js
/.next/ /.next/
/out/ /out/
.next/
.vercel/
# production # production
/build /build
dist/
build/
# misc
.DS_Store
*.pem
.vscode/
.idea/
# debug # debug
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
.pnpm-debug.log* .pnpm-debug.log*
lerna-debug.log*
# env files # local env files
.env* .env
.env*.local
.env.local
.env.development.local
.env.test.local
.env.production.local
# vercel # vercel
.vercel .vercel
@ -25,6 +47,24 @@ yarn-error.log*
# typescript # typescript
*.tsbuildinfo *.tsbuildinfo
next-env.d.ts next-env.d.ts
*.log
# IDEs
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.swp
*.swo
*~
.idea/
*.sublime-project
*.sublime-workspace
# OS
.DS_Store
Thumbs.db
# project temp and large binary assets (avoid committing raw media dumps) # project temp and large binary assets (avoid committing raw media dumps)
temp/ temp/
@ -38,16 +78,57 @@ temp/**
*.zip *.zip
*.7z *.7z
*.rar *.rar
# BMAD (local only) # BMAD (local only)
.bmad-core/ .bmad-core/
.bmad-*/ .bmad-*/
# database backups (local exports) # database backups (local exports)
backups/ backups/
*.sql.bak
*.db-backup
# wrangler local state (do not commit) # wrangler local state (do not commit)
.wrangler/ .wrangler/
.dev.vars
#opennext build files # opennext build files
.open next/
.open-next/ .open-next/
.open next/
# Cache directories
.cache/
.parcel-cache/
.turbo/
# Lock files (keep only one)
# Uncomment the ones you don't use
# package-lock.json
# yarn.lock
# pnpm-lock.yaml
# Test coverage
coverage/
.nyc_output/
# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids/
*.pid
*.seed
*.pid.lock
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Sentry
.sentryclirc

View File

@ -155,7 +155,7 @@ var DOQueueHandler = class extends DurableObject {
method: "HEAD", method: "HEAD",
headers: { headers: {
// This is defined during build // This is defined during build
"x-prerender-revalidate": "310f934069f902b9bb16d5ab83f7b6b0", "x-prerender-revalidate": "aa3e44cc5c2d8f61b9a7e308f9db0bf8",
"x-isr": "1" "x-isr": "1"
}, },
// This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout` // This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout`
@ -179,7 +179,7 @@ var DOQueueHandler = class extends DurableObject {
"INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)", "INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)",
// We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different. // We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different.
`${host}${url}`, `${host}${url}`,
"mp7CiDBjP_qLYoje6vOl-" "SVr_7PUfBPR5HoMg6Gqfy"
); );
} }
this.routeInFailedState.delete(msg.MessageDeduplicationId); this.routeInFailedState.delete(msg.MessageDeduplicationId);
@ -231,7 +231,7 @@ var DOQueueHandler = class extends DurableObject {
} }
this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState); this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState);
if (!this.disableSQLite) { if (!this.disableSQLite) {
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "mp7CiDBjP_qLYoje6vOl-"); this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "SVr_7PUfBPR5HoMg6Gqfy");
} }
await this.addAlarm(); await this.addAlarm();
} }
@ -255,8 +255,8 @@ var DOQueueHandler = class extends DurableObject {
return; return;
this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)"); this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)");
this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)"); this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)");
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "mp7CiDBjP_qLYoje6vOl-"); this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "SVr_7PUfBPR5HoMg6Gqfy");
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "mp7CiDBjP_qLYoje6vOl-"); this.sql.exec("DELETE FROM sync WHERE buildId != ?", "SVr_7PUfBPR5HoMg6Gqfy");
const failedStateCursor = this.sql.exec("SELECT * FROM failed_state"); const failedStateCursor = this.sql.exec("SELECT * FROM failed_state");
for (const row of failedStateCursor) { for (const row of failedStateCursor) {
this.routeInFailedState.set(row.id, JSON.parse(row.data)); this.routeInFailedState.set(row.id, JSON.parse(row.data));

View File

@ -1 +1 @@
mp7CiDBjP_qLYoje6vOl- SVr_7PUfBPR5HoMg6Gqfy

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2139],{82396:function(t,e,s){Promise.resolve().then(s.bind(s,97503))},97503:function(t,e,s){"use strict";s.r(e),s.d(e,{default:function(){return l}});var i=s(57437),r=s(2265),n=s(99376),a=s(89504),c=s(35153);function l(){let t=(0,n.useParams)(),{toast:e}=(0,c.pm)(),[s,l]=(0,r.useState)(null),[o,d]=(0,r.useState)(!0),u=async()=>{try{let e=await fetch("/api/artists/".concat(t.id));if(!e.ok)throw Error("Failed to fetch artist");let s=await e.json();l(s.artist)}catch(t){console.error("Error fetching artist:",t),e({title:"Error",description:"Failed to load artist",variant:"destructive"})}finally{d(!1)}};return((0,r.useEffect)(()=>{t.id&&u()},[t.id]),o)?(0,i.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,i.jsx)("div",{className:"text-lg",children:"Loading artist..."})}):s?(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Edit Artist"}),(0,i.jsxs)("p",{className:"text-muted-foreground",children:["Update ",s.name,"'s information and portfolio"]})]}),(0,i.jsx)(a.ArtistForm,{artist:s,onSuccess:()=>{e({title:"Success",description:"Artist updated successfully"}),u()}})]}):(0,i.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,i.jsx)("div",{className:"text-lg",children:"Artist not found"})})}}},function(t){t.O(0,[6137,7053,9504,2971,2117,1744],function(){return t(t.s=82396)}),_N_E=t.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[12],{66965:function(n,e,u){Promise.resolve().then(u.bind(u,89504))}},function(n){n.O(0,[6137,7053,9504,2971,2117,1744],function(){return n(n.s=66965)}),_N_E=n.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8538],{},function(n){n.O(0,[6137,9480,5922,1289,4975,2288,5360,3621,2971,2117,1744],function(){return n(n.s=3621)}),_N_E=n.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3886],{},function(n){n.O(0,[6137,9480,5922,1289,4975,2288,5360,3621,2971,2117,1744],function(){return n(n.s=3621)}),_N_E=n.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9752],{50785:function(e,n,t){Promise.resolve().then(t.bind(t,57043)),Promise.resolve().then(t.bind(t,41211)),Promise.resolve().then(t.t.bind(t,72972,23))},20265:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});let i=(0,t(79205).Z)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},58293:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});let i=(0,t(79205).Z)("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]])},32489:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});let i=(0,t(79205).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])}},function(e){e.O(0,[6137,9480,5360,2971,2117,1744],function(){return e(e.s=50785)}),_N_E=e.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
CREATE TABLE IF NOT EXISTS tags (tag TEXT NOT NULL, path TEXT NOT NULL, UNIQUE(tag, path) ON CONFLICT REPLACE); CREATE TABLE IF NOT EXISTS tags (tag TEXT NOT NULL, path TEXT NOT NULL, UNIQUE(tag, path) ON CONFLICT REPLACE);
CREATE TABLE IF NOT EXISTS revalidations (tag TEXT NOT NULL, revalidatedAt INTEGER NOT NULL, UNIQUE(tag) ON CONFLICT REPLACE); CREATE TABLE IF NOT EXISTS revalidations (tag TEXT NOT NULL, revalidatedAt INTEGER NOT NULL, UNIQUE(tag) ON CONFLICT REPLACE);
INSERT INTO tags (tag, path) VALUES ("mp7CiDBjP_qLYoje6vOl-/_N_T_/layout", "mp7CiDBjP_qLYoje6vOl-/favicon.ico"), ("mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico/layout", "mp7CiDBjP_qLYoje6vOl-/favicon.ico"), ("mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico/route", "mp7CiDBjP_qLYoje6vOl-/favicon.ico"), ("mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico", "mp7CiDBjP_qLYoje6vOl-/favicon.ico"); INSERT INTO tags (tag, path) VALUES ("SVr_7PUfBPR5HoMg6Gqfy/_N_T_/layout", "SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"), ("SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico/layout", "SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"), ("SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico/route", "SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"), ("SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico", "SVr_7PUfBPR5HoMg6Gqfy/favicon.ico");

View File

@ -49,7 +49,7 @@ function initRuntime() {
}; };
Object.assign(globalThis, { Object.assign(globalThis, {
Request: CustomRequest, Request: CustomRequest,
__BUILD_TIMESTAMP_MS__: 1758670418686, __BUILD_TIMESTAMP_MS__: 1759747292589,
__NEXT_BASE_PATH__: "", __NEXT_BASE_PATH__: "",
__ASSETS_RUN_WORKER_FIRST__: false, __ASSETS_RUN_WORKER_FIRST__: false,
__TRAILING_SLASH__: false, __TRAILING_SLASH__: false,

View File

@ -1,3 +1,3 @@
export const production = {"DATABASE_URL":"file:./local.db","DIRECT_URL":"file:./local.db","NEXTAUTH_URL":"http://localhost:3001","NEXTAUTH_SECRET":"development-secret-key-for-testing-only-32-chars-minimum","AWS_ACCESS_KEY_ID":"8anNgS_OYEucE1dp3ImQLJDGdqZ6sgHMtmRnJ7u8","AWS_SECRET_ACCESS_KEY":"a877ad0cd4daf45701b6d2c7c66d740e","AWS_REGION":"auto","AWS_BUCKET_NAME":"united-tattoo","AWS_ENDPOINT_URL":"https://a19f770b9be1b20e78b8d25bdcfd3bbd.r2.cloudflarestorage.com","NODE_ENV":"development"}; export const production = {"DATABASE_URL":"file:./local.db","DIRECT_URL":"file:./local.db","NEXTAUTH_URL":"http://localhost:3001","NEXTAUTH_SECRET":"development-secret-key-for-testing-only-32-chars-minimum","AWS_ACCESS_KEY_ID":"5cee6a21cea282a9c89d5297964402e7","AWS_SECRET_ACCESS_KEY":"e649c50203bf3763ac209f6130d57fc296ff6d92fd6690c3a8333c9de19d6389","AWS_REGION":"auto","AWS_BUCKET_NAME":"united-tattoo","AWS_ENDPOINT_URL":"https://5cee6a21cea282a9c89d5297964402e7.r2.cloudflarestorage.com/united-tattoo","NODE_ENV":"development"};
export const development = {"DATABASE_URL":"file:./local.db","DIRECT_URL":"file:./local.db","NEXTAUTH_URL":"http://localhost:3001","NEXTAUTH_SECRET":"development-secret-key-for-testing-only-32-chars-minimum","AWS_ACCESS_KEY_ID":"8anNgS_OYEucE1dp3ImQLJDGdqZ6sgHMtmRnJ7u8","AWS_SECRET_ACCESS_KEY":"a877ad0cd4daf45701b6d2c7c66d740e","AWS_REGION":"auto","AWS_BUCKET_NAME":"united-tattoo","AWS_ENDPOINT_URL":"https://a19f770b9be1b20e78b8d25bdcfd3bbd.r2.cloudflarestorage.com","NODE_ENV":"development"}; export const development = {"DATABASE_URL":"file:./local.db","DIRECT_URL":"file:./local.db","NEXTAUTH_URL":"http://localhost:3001","NEXTAUTH_SECRET":"development-secret-key-for-testing-only-32-chars-minimum","AWS_ACCESS_KEY_ID":"5cee6a21cea282a9c89d5297964402e7","AWS_SECRET_ACCESS_KEY":"e649c50203bf3763ac209f6130d57fc296ff6d92fd6690c3a8333c9de19d6389","AWS_REGION":"auto","AWS_BUCKET_NAME":"united-tattoo","AWS_ENDPOINT_URL":"https://5cee6a21cea282a9c89d5297964402e7.r2.cloudflarestorage.com/united-tattoo","NODE_ENV":"development"};
export const test = {}; export const test = {};

View File

@ -1 +1 @@
[{"tag":{"S":"mp7CiDBjP_qLYoje6vOl-/_N_T_/layout"},"path":{"S":"mp7CiDBjP_qLYoje6vOl-/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico/layout"},"path":{"S":"mp7CiDBjP_qLYoje6vOl-/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico/route"},"path":{"S":"mp7CiDBjP_qLYoje6vOl-/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mp7CiDBjP_qLYoje6vOl-/_N_T_/favicon.ico"},"path":{"S":"mp7CiDBjP_qLYoje6vOl-/favicon.ico"},"revalidatedAt":{"N":"1"}}] [{"tag":{"S":"SVr_7PUfBPR5HoMg6Gqfy/_N_T_/layout"},"path":{"S":"SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico/layout"},"path":{"S":"SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico/route"},"path":{"S":"SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"SVr_7PUfBPR5HoMg6Gqfy/_N_T_/favicon.ico"},"path":{"S":"SVr_7PUfBPR5HoMg6Gqfy/favicon.ico"},"revalidatedAt":{"N":"1"}}]

View File

@ -1151,7 +1151,12 @@ Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
let r3 = t2.role; let r3 = t2.role;
if (r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url)); if (r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url));
} }
if (r2.startsWith("/artist")) { if (r2.startsWith("/artist-dashboard")) {
if (!t2) return eC.NextResponse.redirect(new URL("/auth/signin", e2.url));
let r3 = t2.role;
if (r3 !== y.ARTIST && r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url));
}
if (r2.startsWith("/artist") && !r2.startsWith("/artists")) {
if (!t2) return eC.NextResponse.redirect(new URL("/auth/signin", e2.url)); if (!t2) return eC.NextResponse.redirect(new URL("/auth/signin", e2.url));
let r3 = t2.role; let r3 = t2.role;
if (r3 !== y.ARTIST && r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url)); if (r3 !== y.ARTIST && r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url));
@ -5255,13 +5260,13 @@ var NEXT_DIR = path.join(__dirname, ".next");
var OPEN_NEXT_DIR = path.join(__dirname, ".open-next"); var OPEN_NEXT_DIR = path.join(__dirname, ".open-next");
debug({ NEXT_DIR, OPEN_NEXT_DIR }); debug({ NEXT_DIR, OPEN_NEXT_DIR });
var NextConfig = { "env": {}, "webpack": null, "eslint": { "ignoreDuringBuilds": true }, "typescript": { "ignoreBuildErrors": true, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.mjs", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["tsx", "ts", "jsx", "js"], "poweredByHeader": true, "compress": true, "analyticsId": "", "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": ["image/webp"], "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "inline", "remotePatterns": [], "unoptimized": true }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactProductionProfiling": false, "reactStrictMode": null, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": true, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "experimental": { "multiZoneDraftMode": false, "prerenderEarlyExit": false, "serverMinification": true, "serverSourceMaps": false, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 11, "memoryBasedWorkersCount": false, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "outputFileTracingRoot": "/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo", "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "adjustFontFallbacks": false, "adjustFontFallbacksWithSizeAdjust": false, "typedRoutes": false, "instrumentationHook": false, "bundlePagesExternals": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "missingSuspenseWithCSRBailout": true, "optimizeServerReact": true, "useEarlyImport": false, "staleTimes": { "dynamic": 30, "static": 300 }, "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "configFileName": "next.config.mjs" }; var NextConfig = { "env": {}, "webpack": null, "eslint": { "ignoreDuringBuilds": true }, "typescript": { "ignoreBuildErrors": true, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.mjs", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["tsx", "ts", "jsx", "js"], "poweredByHeader": true, "compress": true, "analyticsId": "", "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": ["image/webp"], "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "inline", "remotePatterns": [], "unoptimized": true }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactProductionProfiling": false, "reactStrictMode": null, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": true, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "experimental": { "multiZoneDraftMode": false, "prerenderEarlyExit": false, "serverMinification": true, "serverSourceMaps": false, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 11, "memoryBasedWorkersCount": false, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "outputFileTracingRoot": "/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo", "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "adjustFontFallbacks": false, "adjustFontFallbacksWithSizeAdjust": false, "typedRoutes": false, "instrumentationHook": false, "bundlePagesExternals": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "missingSuspenseWithCSRBailout": true, "optimizeServerReact": true, "useEarlyImport": false, "staleTimes": { "dynamic": 30, "static": 300 }, "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "configFileName": "next.config.mjs" };
var BuildId = "mp7CiDBjP_qLYoje6vOl-"; var BuildId = "SVr_7PUfBPR5HoMg6Gqfy";
var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/admin", "regex": "^/admin(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin(?:/)?$" }, { "page": "/admin/analytics", "regex": "^/admin/analytics(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/analytics(?:/)?$" }, { "page": "/admin/artists", "regex": "^/admin/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists(?:/)?$" }, { "page": "/admin/artists/new", "regex": "^/admin/artists/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists/new(?:/)?$" }, { "page": "/admin/calendar", "regex": "^/admin/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/calendar(?:/)?$" }, { "page": "/admin/portfolio", "regex": "^/admin/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/portfolio(?:/)?$" }, { "page": "/admin/settings", "regex": "^/admin/settings(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/settings(?:/)?$" }, { "page": "/admin/uploads", "regex": "^/admin/uploads(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/uploads(?:/)?$" }, { "page": "/aftercare", "regex": "^/aftercare(?:/)?$", "routeKeys": {}, "namedRegex": "^/aftercare(?:/)?$" }, { "page": "/artists", "regex": "^/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/artists(?:/)?$" }, { "page": "/auth/error", "regex": "^/auth/error(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/error(?:/)?$" }, { "page": "/auth/signin", "regex": "^/auth/signin(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/signin(?:/)?$" }, { "page": "/book", "regex": "^/book(?:/)?$", "routeKeys": {}, "namedRegex": "^/book(?:/)?$" }, { "page": "/contact", "regex": "^/contact(?:/)?$", "routeKeys": {}, "namedRegex": "^/contact(?:/)?$" }, { "page": "/deposit", "regex": "^/deposit(?:/)?$", "routeKeys": {}, "namedRegex": "^/deposit(?:/)?$" }, { "page": "/favicon.ico", "regex": "^/favicon\\.ico(?:/)?$", "routeKeys": {}, "namedRegex": "^/favicon\\.ico(?:/)?$" }, { "page": "/gift-cards", "regex": "^/gift\\-cards(?:/)?$", "routeKeys": {}, "namedRegex": "^/gift\\-cards(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/specials", "regex": "^/specials(?:/)?$", "routeKeys": {}, "namedRegex": "^/specials(?:/)?$" }, { "page": "/terms", "regex": "^/terms(?:/)?$", "routeKeys": {}, "namedRegex": "^/terms(?:/)?$" }], "dynamic": [{ "page": "/admin/artists/[id]", "regex": "^/admin/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artists/[id]", "regex": "^/api/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/auth/[...nextauth]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPnextauth": "nxtPnextauth" }, "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$" }, { "page": "/api/portfolio/[id]", "regex": "^/api/portfolio/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]", "regex": "^/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]/book", "regex": "^/artists/([^/]+?)/book(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] }; var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/admin", "regex": "^/admin(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin(?:/)?$" }, { "page": "/admin/analytics", "regex": "^/admin/analytics(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/analytics(?:/)?$" }, { "page": "/admin/artists", "regex": "^/admin/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists(?:/)?$" }, { "page": "/admin/artists/new", "regex": "^/admin/artists/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists/new(?:/)?$" }, { "page": "/admin/calendar", "regex": "^/admin/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/calendar(?:/)?$" }, { "page": "/admin/portfolio", "regex": "^/admin/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/portfolio(?:/)?$" }, { "page": "/admin/settings", "regex": "^/admin/settings(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/settings(?:/)?$" }, { "page": "/admin/uploads", "regex": "^/admin/uploads(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/uploads(?:/)?$" }, { "page": "/aftercare", "regex": "^/aftercare(?:/)?$", "routeKeys": {}, "namedRegex": "^/aftercare(?:/)?$" }, { "page": "/artist-dashboard", "regex": "^/artist\\-dashboard(?:/)?$", "routeKeys": {}, "namedRegex": "^/artist\\-dashboard(?:/)?$" }, { "page": "/artist-dashboard/portfolio", "regex": "^/artist\\-dashboard/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/artist\\-dashboard/portfolio(?:/)?$" }, { "page": "/artist-dashboard/profile", "regex": "^/artist\\-dashboard/profile(?:/)?$", "routeKeys": {}, "namedRegex": "^/artist\\-dashboard/profile(?:/)?$" }, { "page": "/artists", "regex": "^/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/artists(?:/)?$" }, { "page": "/auth/error", "regex": "^/auth/error(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/error(?:/)?$" }, { "page": "/auth/signin", "regex": "^/auth/signin(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/signin(?:/)?$" }, { "page": "/book", "regex": "^/book(?:/)?$", "routeKeys": {}, "namedRegex": "^/book(?:/)?$" }, { "page": "/contact", "regex": "^/contact(?:/)?$", "routeKeys": {}, "namedRegex": "^/contact(?:/)?$" }, { "page": "/deposit", "regex": "^/deposit(?:/)?$", "routeKeys": {}, "namedRegex": "^/deposit(?:/)?$" }, { "page": "/favicon.ico", "regex": "^/favicon\\.ico(?:/)?$", "routeKeys": {}, "namedRegex": "^/favicon\\.ico(?:/)?$" }, { "page": "/gift-cards", "regex": "^/gift\\-cards(?:/)?$", "routeKeys": {}, "namedRegex": "^/gift\\-cards(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/specials", "regex": "^/specials(?:/)?$", "routeKeys": {}, "namedRegex": "^/specials(?:/)?$" }, { "page": "/terms", "regex": "^/terms(?:/)?$", "routeKeys": {}, "namedRegex": "^/terms(?:/)?$" }], "dynamic": [{ "page": "/admin/artists/[id]", "regex": "^/admin/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artists/[id]", "regex": "^/api/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/auth/[...nextauth]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPnextauth": "nxtPnextauth" }, "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$" }, { "page": "/api/portfolio/[id]", "regex": "^/api/portfolio/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]", "regex": "^/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]/book", "regex": "^/artists/([^/]+?)/book(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] };
var ConfigHeaders = []; var ConfigHeaders = [];
var PrerenderManifest = { "version": 4, "routes": { "/favicon.ico": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "image/x-icon", "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" }, "experimentalBypassFor": [{ "type": "header", "key": "Next-Action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/favicon.ico", "dataRoute": null } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "310f934069f902b9bb16d5ab83f7b6b0", "previewModeSigningKey": "57b9e146214c42f8a38e523741d4c980342595bb0d4152cc2803c30b925c731b", "previewModeEncryptionKey": "9081fdaddfa5ee3709d6c8e1d84c118cfde83b9f3790ee25612f5841c0fef8b3" } }; var PrerenderManifest = { "version": 4, "routes": { "/favicon.ico": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "image/x-icon", "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" }, "experimentalBypassFor": [{ "type": "header", "key": "Next-Action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/favicon.ico", "dataRoute": null } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "aa3e44cc5c2d8f61b9a7e308f9db0bf8", "previewModeSigningKey": "8aa982a30b271251dc2f1ffdd0eb252e3bc9e47f7d478e80f5dbb2abb1b39323", "previewModeEncryptionKey": "e63b6be95276873929b9ec08e113ea325ced41c2d494b0a69b62991e4c3688ab" } };
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "mp7CiDBjP_qLYoje6vOl-", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "L/KM3Bj40v7FIHHuMD5DP5IDnNZcDqrB+Mxf6oMYubo=", "__NEXT_PREVIEW_MODE_ID": "310f934069f902b9bb16d5ab83f7b6b0", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "9081fdaddfa5ee3709d6c8e1d84c118cfde83b9f3790ee25612f5841c0fef8b3", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "57b9e146214c42f8a38e523741d4c980342595bb0d4152cc2803c30b925c731b" } } }, "functions": {}, "sortedMiddleware": ["/"] }; var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "SVr_7PUfBPR5HoMg6Gqfy", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "eqMtY6RQJg8ZzpGru9Ni8jGmRicvhYvppy45/3SECqU=", "__NEXT_PREVIEW_MODE_ID": "aa3e44cc5c2d8f61b9a7e308f9db0bf8", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "e63b6be95276873929b9ec08e113ea325ced41c2d494b0a69b62991e4c3688ab", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "8aa982a30b271251dc2f1ffdd0eb252e3bc9e47f7d478e80f5dbb2abb1b39323" } } }, "functions": {}, "sortedMiddleware": ["/"] };
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/[id]/page": "/artists/[id]", "/artists/page": "/artists", "/auth/signin/page": "/auth/signin", "/contact/page": "/contact", "/deposit/page": "/deposit", "/book/page": "/book", "/auth/error/page": "/auth/error", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/terms/page": "/terms", "/specials/page": "/specials", "/privacy/page": "/privacy", "/api/files/folder/route": "/api/files/folder", "/api/admin/stats/route": "/api/admin/stats", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/artists/route": "/api/artists", "/api/files/stats/route": "/api/files/stats", "/api/files/route": "/api/files", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/appointments/route": "/api/appointments", "/api/portfolio/route": "/api/portfolio", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/api/users/route": "/api/users", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/page": "/admin", "/admin/artists/page": "/admin/artists", "/admin/calendar/page": "/admin/calendar", "/admin/portfolio/page": "/admin/portfolio", "/admin/uploads/page": "/admin/uploads", "/admin/settings/page": "/admin/settings", "/admin/analytics/page": "/admin/analytics" }; var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/page": "/artists", "/auth/error/page": "/auth/error", "/book/page": "/book", "/artists/[id]/page": "/artists/[id]", "/deposit/page": "/deposit", "/contact/page": "/contact", "/auth/signin/page": "/auth/signin", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/terms/page": "/terms", "/specials/page": "/specials", "/api/admin/stats/route": "/api/admin/stats", "/api/artists/[id]/route": "/api/artists/[id]", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/appointments/route": "/api/appointments", "/api/artists/me/route": "/api/artists/me", "/api/files/folder/route": "/api/files/folder", "/api/artists/route": "/api/artists", "/api/files/stats/route": "/api/files/stats", "/api/files/route": "/api/files", "/api/portfolio/route": "/api/portfolio", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/users/route": "/api/users", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/artists/page": "/admin/artists", "/admin/calendar/page": "/admin/calendar", "/admin/page": "/admin", "/artist-dashboard/page": "/artist-dashboard", "/artist-dashboard/portfolio/page": "/artist-dashboard/portfolio", "/admin/uploads/page": "/admin/uploads", "/admin/settings/page": "/admin/settings", "/admin/portfolio/page": "/admin/portfolio", "/admin/analytics/page": "/admin/analytics", "/artist-dashboard/profile/page": "/artist-dashboard/profile" };
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/files/bulk-delete": {}, "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files": {}, "/api/files/stats": {}, "/api/appointments": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/[id]": {}, "/api/portfolio/stats": {}, "/api/portfolio": {}, "/api/upload": {}, "/api/settings": {}, "/api/users": {}, "/admin/analytics": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/uploads": {} } }; var FunctionsConfigManifest = { "version": 1, "functions": { "/api/artists/[id]": {}, "/api/admin/stats": {}, "/api/artists/me": {}, "/api/files/bulk-delete": {}, "/api/files/folder": {}, "/api/artists": {}, "/api/files": {}, "/api/files/stats": {}, "/api/appointments": {}, "/api/portfolio/[id]": {}, "/api/portfolio/stats": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio": {}, "/api/settings": {}, "/api/users": {}, "/api/upload": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/uploads": {}, "/admin/analytics": {} } };
var PagesManifest = { "/_app": "pages/_app.js", "/_error": "pages/_error.js", "/_document": "pages/_document.js" }; var PagesManifest = { "/_app": "pages/_app.js", "/_error": "pages/_error.js", "/_document": "pages/_document.js" };
process.env.NEXT_BUILD_ID = BuildId; process.env.NEXT_BUILD_ID = BuildId;

View File

@ -1 +1 @@
mp7CiDBjP_qLYoje6vOl- SVr_7PUfBPR5HoMg6Gqfy

View File

@ -12,19 +12,19 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/_not-found/page-9954ee48ea99dbba.js" "static/chunks/app/_not-found/page-2564a9793833e243.js"
], ],
"/layout": [ "/layout": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/css/db723c4cce15634c.css", "static/css/f677609b3bcf0e0d.css",
"static/css/273d08c2abf40b5c.css", "static/css/273d08c2abf40b5c.css",
"static/chunks/605-b40754e541fd4ec3.js",
"static/chunks/9763-93fc3f5b8786b2e4.js", "static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/605-b40754e541fd4ec3.js",
"static/chunks/1432-24fb8d3b5dc2aceb.js", "static/chunks/1432-24fb8d3b5dc2aceb.js",
"static/chunks/app/layout-7e2d61e3de8fcbdc.js" "static/chunks/app/layout-6fa7c6af0ef0784c.js"
], ],
"/error": [ "/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -39,10 +39,13 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/200-c5238abf2da840bb.js", "static/chunks/200-c5238abf2da840bb.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/aftercare/page-656f7c1f8b6fa9b2.js" "static/chunks/app/aftercare/page-1d2584db6686c322.js"
], ],
"/aftercare/error": [ "/aftercare/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -57,7 +60,7 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/aftercare/loading-70cf0ef74d3a3c3e.js" "static/chunks/app/aftercare/loading-ce031141d0fba2db.js"
], ],
"/artists/[id]/book/page": [ "/artists/[id]/book/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -65,14 +68,19 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/4975-e65c083bb486f7b9.js", "static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/2288-5099a3913910cfe3.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3621-3160f49ffd48b7be.js", "static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/app/artists/[id]/book/page-d0b8c735780f889a.js" "static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/1713-bb0e0f8fa389af9d.js",
"static/chunks/2739-e61ead0ddc3259b6.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/3621-8539d093ca543ee6.js",
"static/chunks/app/artists/[id]/book/page-c54cafd7c922d389.js"
], ],
"/artists/[id]/book/error": [ "/artists/[id]/book/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -87,7 +95,7 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/artists/[id]/book/loading-3c8343b6f3fa981a.js" "static/chunks/app/artists/[id]/book/loading-935107cacc102a2a.js"
], ],
"/artists/[id]/error": [ "/artists/[id]/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -102,7 +110,7 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/artists/[id]/loading-bf93a88a791f5454.js" "static/chunks/app/artists/[id]/loading-a2fb175fabb5fa16.js"
], ],
"/artists/error": [ "/artists/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -117,18 +125,7 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/artists/loading-53d544eb277e731d.js" "static/chunks/app/artists/loading-d293bff8cccee2c6.js"
],
"/artists/[id]/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/7352-8d42b132cc3c0fc3.js",
"static/chunks/5360-8a18cb235c9d43e4.js",
"static/chunks/app/artists/[id]/page-004079df5ec2c3ad.js"
], ],
"/artists/page": [ "/artists/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -136,57 +133,21 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/app/artists/page-d4881e8d6b8f4a9c.js" "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/artists/page-03f81a5bdeeb37f6.js"
], ],
"/auth/signin/page": [ "/auth/error/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/605-b40754e541fd4ec3.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/app/auth/signin/page-e3daf59216da3775.js" "static/chunks/app/auth/error/page-444f8c1a5939588e.js"
],
"/contact/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/5922-88993df301b0fe6c.js",
"static/chunks/1289-568be99e69c7b758.js",
"static/chunks/4975-e65c083bb486f7b9.js",
"static/chunks/5360-8a18cb235c9d43e4.js",
"static/chunks/app/contact/page-b12428131a2b7253.js"
],
"/deposit/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/200-c5238abf2da840bb.js",
"static/chunks/5360-8a18cb235c9d43e4.js",
"static/chunks/app/deposit/page-513c4bde87ea3aa9.js"
],
"/deposit/error": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/app/deposit/error-5e00284fd622b047.js"
],
"/deposit/loading": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/deposit/loading-e144aad8ad5eae23.js"
], ],
"/book/page": [ "/book/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -194,14 +155,19 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/4975-e65c083bb486f7b9.js", "static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/2288-5099a3913910cfe3.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3621-3160f49ffd48b7be.js", "static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/app/book/page-cec00be1c55117c7.js" "static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/1713-bb0e0f8fa389af9d.js",
"static/chunks/2739-e61ead0ddc3259b6.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/3621-8539d093ca543ee6.js",
"static/chunks/app/book/page-5b1cb27b8344bd52.js"
], ],
"/book/error": [ "/book/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -216,16 +182,77 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/book/loading-4f380ac64c43b810.js" "static/chunks/app/book/loading-3b0651f0558fc773.js"
], ],
"/auth/error/page": [ "/artists/[id]/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/app/auth/error/page-2691b46829d28d44.js" "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/1713-bb0e0f8fa389af9d.js",
"static/chunks/7447-f87f4d4fe09a3255.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/artists/[id]/page-01d23a2730cc519c.js"
],
"/deposit/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/200-c5238abf2da840bb.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/deposit/page-29e5a1e2b7ddf09c.js"
],
"/deposit/error": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/app/deposit/error-5e00284fd622b047.js"
],
"/deposit/loading": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/deposit/loading-a9763cde0a954c13.js"
],
"/contact/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/contact/page-5932ddc7431bde26.js"
],
"/auth/signin/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/605-b40754e541fd4ec3.js",
"static/chunks/app/auth/signin/page-e3daf59216da3775.js"
], ],
"/gift-cards/page": [ "/gift-cards/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -233,9 +260,12 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/app/gift-cards/page-952a7a6454a07c6f.js" "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/gift-cards/page-882baf4ae5cbeb08.js"
], ],
"/page": [ "/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -243,45 +273,13 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/2537-4759df9497ac43ae.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/app/page-a8ab51401da0ca88.js" "static/chunks/9792-dd4b572f6c677771.js",
], "static/chunks/6254-d072dbeea75c6dfe.js",
"/terms/page": [ "static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/app/page-8a0e87ab5ed7e280.js"
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/5360-8a18cb235c9d43e4.js",
"static/chunks/app/terms/page-7e4cff7860dd15c8.js"
],
"/terms/error": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/app/terms/error-8a3eac5a83666f5b.js"
],
"/terms/loading": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/terms/loading-f2c950ad482fe1cb.js"
],
"/specials/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/5360-8a18cb235c9d43e4.js",
"static/chunks/app/specials/page-f784ee21b571b3ca.js"
], ],
"/privacy/page": [ "/privacy/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -289,9 +287,12 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/5360-8a18cb235c9d43e4.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/app/privacy/page-b243a5f2eb77cdb2.js" "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/privacy/page-715def209795f7aa.js"
], ],
"/privacy/error": [ "/privacy/error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -306,7 +307,48 @@
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/privacy/loading-5539d44d1644d2b6.js" "static/chunks/app/privacy/loading-d1d6ec4ebb33573e.js"
],
"/terms/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/terms/page-51ca334ed3a6460f.js"
],
"/terms/error": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/app/terms/error-8a3eac5a83666f5b.js"
],
"/terms/loading": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/app/terms/loading-26938e980c1b83ed.js"
],
"/specials/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9792-dd4b572f6c677771.js",
"static/chunks/1506-d13534ca3a833b98.js",
"static/chunks/app/specials/page-c3cf4600a126414e.js"
], ],
"/admin/artists/[id]/page": [ "/admin/artists/[id]/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -314,9 +356,10 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/7053-eebdfffc5dccb92c.js", "static/chunks/1804-b6a097c7f507f6f8.js",
"static/chunks/9504-7f79307d96ed82b0.js", "static/chunks/8722-2566700c9a0667a5.js",
"static/chunks/app/admin/artists/[id]/page-0af10daaeb05dee9.js" "static/chunks/9504-6c749d5f7d843332.js",
"static/chunks/app/admin/artists/[id]/page-9669380017ebebe7.js"
], ],
"/admin/layout": [ "/admin/layout": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -324,9 +367,9 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/605-b40754e541fd4ec3.js", "static/chunks/605-b40754e541fd4ec3.js",
"static/chunks/app/admin/layout-10d0673a51d05ba1.js" "static/chunks/app/admin/layout-20a5472bdb45771e.js"
], ],
"/admin/artists/new/page": [ "/admin/artists/new/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -334,21 +377,10 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/7053-eebdfffc5dccb92c.js", "static/chunks/1804-b6a097c7f507f6f8.js",
"static/chunks/9504-7f79307d96ed82b0.js", "static/chunks/8722-2566700c9a0667a5.js",
"static/chunks/app/admin/artists/new/page-fc95720483d0cd2a.js" "static/chunks/9504-6c749d5f7d843332.js",
], "static/chunks/app/admin/artists/new/page-678525f102fe51d5.js"
"/admin/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/9480-f2a0d2341720dab4.js",
"static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/8115-89d461d0809a5185.js",
"static/chunks/1061-98c36513506f4d3b.js",
"static/chunks/app/admin/page-7a927fb8d2586a85.js"
], ],
"/admin/artists/page": [ "/admin/artists/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -356,10 +388,12 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/3897-a207141bfd0cdd7a.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/app/admin/artists/page-0dd59ef8e7fe4cae.js" "static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/6210-f756268a789f4b72.js",
"static/chunks/app/admin/artists/page-f423289ff836c488.js"
], ],
"/admin/calendar/page": [ "/admin/calendar/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -367,34 +401,60 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/css/b3adf42d35f4dca6.css", "static/css/b3adf42d35f4dca6.css",
"static/chunks/e80c4f76-90b9d8dae2f2e930.js", "static/chunks/e80c4f76-8e006d550c0aca9b.js",
"static/chunks/13b76428-e1bf383848c17260.js", "static/chunks/13b76428-e1bf383848c17260.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/4975-e65c083bb486f7b9.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/7053-eebdfffc5dccb92c.js", "static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/9763-93fc3f5b8786b2e4.js", "static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/9027-72d4e4b31ea4b417.js", "static/chunks/1713-bb0e0f8fa389af9d.js",
"static/chunks/8115-89d461d0809a5185.js", "static/chunks/1804-b6a097c7f507f6f8.js",
"static/chunks/2465-d779a94bfd3f89c0.js",
"static/chunks/3470-4efe838ab2135c44.js",
"static/chunks/1432-24fb8d3b5dc2aceb.js", "static/chunks/1432-24fb8d3b5dc2aceb.js",
"static/chunks/4196-c4a5b06c3fca636c.js", "static/chunks/103-326742c1ffe700c6.js",
"static/chunks/app/admin/calendar/page-a29ec1514cf1c1ad.js" "static/chunks/app/admin/calendar/page-2e4ec3030313e917.js"
], ],
"/admin/portfolio/page": [ "/admin/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js", "static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/9763-93fc3f5b8786b2e4.js",
"static/chunks/4975-e65c083bb486f7b9.js", "static/chunks/1713-bb0e0f8fa389af9d.js",
"static/chunks/7352-8d42b132cc3c0fc3.js", "static/chunks/3470-4efe838ab2135c44.js",
"static/chunks/9027-72d4e4b31ea4b417.js", "static/chunks/3033-16dbba7cb3acd818.js",
"static/chunks/3420-df9036787c9a07f7.js", "static/chunks/app/admin/page-368975890eb4d52c.js"
"static/chunks/6298-ed1f2b36c3535636.js", ],
"static/chunks/app/admin/portfolio/page-c895a0c33856000a.js" "/artist-dashboard/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/app/artist-dashboard/page-e4131883222591d5.js"
],
"/artist-dashboard/layout": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/2972-12a4e0ab28e83d4d.js",
"static/chunks/app/artist-dashboard/layout-45ecc794197b3e63.js"
],
"/artist-dashboard/portfolio/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/7447-f87f4d4fe09a3255.js",
"static/chunks/app/artist-dashboard/portfolio/page-9691f2ec4ab105b8.js"
], ],
"/admin/uploads/page": [ "/admin/uploads/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -402,12 +462,13 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/7352-8d42b132cc3c0fc3.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/9027-72d4e4b31ea4b417.js", "static/chunks/7447-f87f4d4fe09a3255.js",
"static/chunks/3420-df9036787c9a07f7.js", "static/chunks/2465-d779a94bfd3f89c0.js",
"static/chunks/1980-4b71d8da4c239cab.js",
"static/chunks/6298-ed1f2b36c3535636.js", "static/chunks/6298-ed1f2b36c3535636.js",
"static/chunks/app/admin/uploads/page-8ff9e247e78a6bf7.js" "static/chunks/app/admin/uploads/page-e1b3703ece0ea98f.js"
], ],
"/admin/settings/page": [ "/admin/settings/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -415,13 +476,32 @@
"static/chunks/2117-da904839ecb5d5f9.js", "static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js", "static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/5922-88993df301b0fe6c.js", "static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/1289-568be99e69c7b758.js", "static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/4975-e65c083bb486f7b9.js", "static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/200-c5238abf2da840bb.js", "static/chunks/200-c5238abf2da840bb.js",
"static/chunks/2686-c481c1c41326cde0.js", "static/chunks/7620-9bbc58135a25b1a4.js",
"static/chunks/6298-ed1f2b36c3535636.js", "static/chunks/6298-ed1f2b36c3535636.js",
"static/chunks/app/admin/settings/page-9f0d298cdde6e0d4.js" "static/chunks/app/admin/settings/page-9ac381b1fa6b8367.js"
],
"/admin/portfolio/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/6128-45e14c1ac294ddd7.js",
"static/chunks/3909-e076b2f0010bd374.js",
"static/chunks/9363-708e3fc7c271db63.js",
"static/chunks/157-f6d67dc9e7bfe380.js",
"static/chunks/3865-0d3515d9486f6382.js",
"static/chunks/7447-f87f4d4fe09a3255.js",
"static/chunks/2465-d779a94bfd3f89c0.js",
"static/chunks/1980-4b71d8da4c239cab.js",
"static/chunks/6298-ed1f2b36c3535636.js",
"static/chunks/app/admin/portfolio/page-fb1abd8d259e0321.js"
], ],
"/admin/analytics/page": [ "/admin/analytics/page": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -431,6 +511,14 @@
"static/chunks/6137-eaf7b6db0f76248f.js", "static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/200-c5238abf2da840bb.js", "static/chunks/200-c5238abf2da840bb.js",
"static/chunks/app/admin/analytics/page-d825378906a79ac8.js" "static/chunks/app/admin/analytics/page-d825378906a79ac8.js"
],
"/artist-dashboard/profile/page": [
"static/chunks/webpack-757604220b96f05e.js",
"static/chunks/fd9d1056-a2747418f8441a81.js",
"static/chunks/2117-da904839ecb5d5f9.js",
"static/chunks/main-app-ac1aded1f8d8af62.js",
"static/chunks/6137-eaf7b6db0f76248f.js",
"static/chunks/app/artist-dashboard/profile/page-cb3c6b72b12ebe1f.js"
] ]
} }
} }

View File

@ -1 +1 @@
{"/_not-found/page":"/_not-found","/aftercare/page":"/aftercare","/api/admin/migrate/route":"/api/admin/migrate","/api/artists/[id]/route":"/api/artists/[id]","/api/auth/[...nextauth]/route":"/api/auth/[...nextauth]","/artists/[id]/book/page":"/artists/[id]/book","/artists/[id]/page":"/artists/[id]","/artists/page":"/artists","/auth/signin/page":"/auth/signin","/contact/page":"/contact","/deposit/page":"/deposit","/book/page":"/book","/auth/error/page":"/auth/error","/favicon.ico/route":"/favicon.ico","/gift-cards/page":"/gift-cards","/page":"/","/terms/page":"/terms","/specials/page":"/specials","/privacy/page":"/privacy","/api/files/folder/route":"/api/files/folder","/api/admin/stats/route":"/api/admin/stats","/api/files/bulk-delete/route":"/api/files/bulk-delete","/api/artists/route":"/api/artists","/api/files/stats/route":"/api/files/stats","/api/files/route":"/api/files","/api/portfolio/bulk-delete/route":"/api/portfolio/bulk-delete","/api/portfolio/stats/route":"/api/portfolio/stats","/api/portfolio/[id]/route":"/api/portfolio/[id]","/api/appointments/route":"/api/appointments","/api/portfolio/route":"/api/portfolio","/api/settings/route":"/api/settings","/api/upload/route":"/api/upload","/api/users/route":"/api/users","/admin/artists/[id]/page":"/admin/artists/[id]","/admin/artists/new/page":"/admin/artists/new","/admin/page":"/admin","/admin/artists/page":"/admin/artists","/admin/calendar/page":"/admin/calendar","/admin/portfolio/page":"/admin/portfolio","/admin/uploads/page":"/admin/uploads","/admin/settings/page":"/admin/settings","/admin/analytics/page":"/admin/analytics"} {"/_not-found/page":"/_not-found","/aftercare/page":"/aftercare","/api/admin/migrate/route":"/api/admin/migrate","/api/auth/[...nextauth]/route":"/api/auth/[...nextauth]","/artists/[id]/book/page":"/artists/[id]/book","/artists/page":"/artists","/auth/error/page":"/auth/error","/book/page":"/book","/artists/[id]/page":"/artists/[id]","/deposit/page":"/deposit","/contact/page":"/contact","/auth/signin/page":"/auth/signin","/favicon.ico/route":"/favicon.ico","/gift-cards/page":"/gift-cards","/page":"/","/privacy/page":"/privacy","/terms/page":"/terms","/specials/page":"/specials","/api/admin/stats/route":"/api/admin/stats","/api/artists/[id]/route":"/api/artists/[id]","/api/files/bulk-delete/route":"/api/files/bulk-delete","/api/appointments/route":"/api/appointments","/api/artists/me/route":"/api/artists/me","/api/files/folder/route":"/api/files/folder","/api/artists/route":"/api/artists","/api/files/stats/route":"/api/files/stats","/api/files/route":"/api/files","/api/portfolio/route":"/api/portfolio","/api/portfolio/bulk-delete/route":"/api/portfolio/bulk-delete","/api/portfolio/stats/route":"/api/portfolio/stats","/api/portfolio/[id]/route":"/api/portfolio/[id]","/api/users/route":"/api/users","/api/settings/route":"/api/settings","/api/upload/route":"/api/upload","/admin/artists/[id]/page":"/admin/artists/[id]","/admin/artists/new/page":"/admin/artists/new","/admin/artists/page":"/admin/artists","/admin/calendar/page":"/admin/calendar","/admin/page":"/admin","/artist-dashboard/page":"/artist-dashboard","/artist-dashboard/portfolio/page":"/artist-dashboard/portfolio","/admin/uploads/page":"/admin/uploads","/admin/settings/page":"/admin/settings","/admin/portfolio/page":"/admin/portfolio","/admin/analytics/page":"/admin/analytics","/artist-dashboard/profile/page":"/artist-dashboard/profile"}

View File

@ -5,8 +5,8 @@
"devFiles": [], "devFiles": [],
"ampDevFiles": [], "ampDevFiles": [],
"lowPriorityFiles": [ "lowPriorityFiles": [
"static/mp7CiDBjP_qLYoje6vOl-/_buildManifest.js", "static/SVr_7PUfBPR5HoMg6Gqfy/_buildManifest.js",
"static/mp7CiDBjP_qLYoje6vOl-/_ssgManifest.js" "static/SVr_7PUfBPR5HoMg6Gqfy/_ssgManifest.js"
], ],
"rootMainFiles": [ "rootMainFiles": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
@ -18,13 +18,13 @@
"/_app": [ "/_app": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/framework-8e0e0f4a6b83a956.js", "static/chunks/framework-8e0e0f4a6b83a956.js",
"static/chunks/main-c7b74b84e134a397.js", "static/chunks/main-4d7158e9aface35a.js",
"static/chunks/pages/_app-3c9ca398d360b709.js" "static/chunks/pages/_app-3c9ca398d360b709.js"
], ],
"/_error": [ "/_error": [
"static/chunks/webpack-757604220b96f05e.js", "static/chunks/webpack-757604220b96f05e.js",
"static/chunks/framework-8e0e0f4a6b83a956.js", "static/chunks/framework-8e0e0f4a6b83a956.js",
"static/chunks/main-c7b74b84e134a397.js", "static/chunks/main-4d7158e9aface35a.js",
"static/chunks/pages/_error-cf5ca766ac8f493f.js" "static/chunks/pages/_error-cf5ca766ac8f493f.js"
] ]
}, },

View File

@ -1 +1 @@
{"version":4,"routes":{"/favicon.ico":{"initialHeaders":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/favicon.ico","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"310f934069f902b9bb16d5ab83f7b6b0","previewModeSigningKey":"57b9e146214c42f8a38e523741d4c980342595bb0d4152cc2803c30b925c731b","previewModeEncryptionKey":"9081fdaddfa5ee3709d6c8e1d84c118cfde83b9f3790ee25612f5841c0fef8b3"}} {"version":4,"routes":{"/favicon.ico":{"initialHeaders":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/favicon.ico","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"aa3e44cc5c2d8f61b9a7e308f9db0bf8","previewModeSigningKey":"8aa982a30b271251dc2f1ffdd0eb252e3bc9e47f7d478e80f5dbb2abb1b39323","previewModeEncryptionKey":"e63b6be95276873929b9ec08e113ea325ced41c2d494b0a69b62991e4c3688ab"}}

View File

@ -1 +1 @@
{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/admin/artists/[id]","regex":"^/admin/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/artists/[id]","regex":"^/api/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/auth/[...nextauth]","regex":"^/api/auth/(.+?)(?:/)?$","routeKeys":{"nxtPnextauth":"nxtPnextauth"},"namedRegex":"^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$"},{"page":"/api/portfolio/[id]","regex":"^/api/portfolio/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/artists/[id]","regex":"^/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/artists/[id]/book","regex":"^/artists/([^/]+?)/book(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/admin","regex":"^/admin(?:/)?$","routeKeys":{},"namedRegex":"^/admin(?:/)?$"},{"page":"/admin/analytics","regex":"^/admin/analytics(?:/)?$","routeKeys":{},"namedRegex":"^/admin/analytics(?:/)?$"},{"page":"/admin/artists","regex":"^/admin/artists(?:/)?$","routeKeys":{},"namedRegex":"^/admin/artists(?:/)?$"},{"page":"/admin/artists/new","regex":"^/admin/artists/new(?:/)?$","routeKeys":{},"namedRegex":"^/admin/artists/new(?:/)?$"},{"page":"/admin/calendar","regex":"^/admin/calendar(?:/)?$","routeKeys":{},"namedRegex":"^/admin/calendar(?:/)?$"},{"page":"/admin/portfolio","regex":"^/admin/portfolio(?:/)?$","routeKeys":{},"namedRegex":"^/admin/portfolio(?:/)?$"},{"page":"/admin/settings","regex":"^/admin/settings(?:/)?$","routeKeys":{},"namedRegex":"^/admin/settings(?:/)?$"},{"page":"/admin/uploads","regex":"^/admin/uploads(?:/)?$","routeKeys":{},"namedRegex":"^/admin/uploads(?:/)?$"},{"page":"/aftercare","regex":"^/aftercare(?:/)?$","routeKeys":{},"namedRegex":"^/aftercare(?:/)?$"},{"page":"/artists","regex":"^/artists(?:/)?$","routeKeys":{},"namedRegex":"^/artists(?:/)?$"},{"page":"/auth/error","regex":"^/auth/error(?:/)?$","routeKeys":{},"namedRegex":"^/auth/error(?:/)?$"},{"page":"/auth/signin","regex":"^/auth/signin(?:/)?$","routeKeys":{},"namedRegex":"^/auth/signin(?:/)?$"},{"page":"/book","regex":"^/book(?:/)?$","routeKeys":{},"namedRegex":"^/book(?:/)?$"},{"page":"/contact","regex":"^/contact(?:/)?$","routeKeys":{},"namedRegex":"^/contact(?:/)?$"},{"page":"/deposit","regex":"^/deposit(?:/)?$","routeKeys":{},"namedRegex":"^/deposit(?:/)?$"},{"page":"/favicon.ico","regex":"^/favicon\\.ico(?:/)?$","routeKeys":{},"namedRegex":"^/favicon\\.ico(?:/)?$"},{"page":"/gift-cards","regex":"^/gift\\-cards(?:/)?$","routeKeys":{},"namedRegex":"^/gift\\-cards(?:/)?$"},{"page":"/privacy","regex":"^/privacy(?:/)?$","routeKeys":{},"namedRegex":"^/privacy(?:/)?$"},{"page":"/specials","regex":"^/specials(?:/)?$","routeKeys":{},"namedRegex":"^/specials(?:/)?$"},{"page":"/terms","regex":"^/terms(?:/)?$","routeKeys":{},"namedRegex":"^/terms(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]} {"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/admin/artists/[id]","regex":"^/admin/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/artists/[id]","regex":"^/api/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/auth/[...nextauth]","regex":"^/api/auth/(.+?)(?:/)?$","routeKeys":{"nxtPnextauth":"nxtPnextauth"},"namedRegex":"^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$"},{"page":"/api/portfolio/[id]","regex":"^/api/portfolio/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/artists/[id]","regex":"^/artists/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/artists/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/artists/[id]/book","regex":"^/artists/([^/]+?)/book(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/admin","regex":"^/admin(?:/)?$","routeKeys":{},"namedRegex":"^/admin(?:/)?$"},{"page":"/admin/analytics","regex":"^/admin/analytics(?:/)?$","routeKeys":{},"namedRegex":"^/admin/analytics(?:/)?$"},{"page":"/admin/artists","regex":"^/admin/artists(?:/)?$","routeKeys":{},"namedRegex":"^/admin/artists(?:/)?$"},{"page":"/admin/artists/new","regex":"^/admin/artists/new(?:/)?$","routeKeys":{},"namedRegex":"^/admin/artists/new(?:/)?$"},{"page":"/admin/calendar","regex":"^/admin/calendar(?:/)?$","routeKeys":{},"namedRegex":"^/admin/calendar(?:/)?$"},{"page":"/admin/portfolio","regex":"^/admin/portfolio(?:/)?$","routeKeys":{},"namedRegex":"^/admin/portfolio(?:/)?$"},{"page":"/admin/settings","regex":"^/admin/settings(?:/)?$","routeKeys":{},"namedRegex":"^/admin/settings(?:/)?$"},{"page":"/admin/uploads","regex":"^/admin/uploads(?:/)?$","routeKeys":{},"namedRegex":"^/admin/uploads(?:/)?$"},{"page":"/aftercare","regex":"^/aftercare(?:/)?$","routeKeys":{},"namedRegex":"^/aftercare(?:/)?$"},{"page":"/artist-dashboard","regex":"^/artist\\-dashboard(?:/)?$","routeKeys":{},"namedRegex":"^/artist\\-dashboard(?:/)?$"},{"page":"/artist-dashboard/portfolio","regex":"^/artist\\-dashboard/portfolio(?:/)?$","routeKeys":{},"namedRegex":"^/artist\\-dashboard/portfolio(?:/)?$"},{"page":"/artist-dashboard/profile","regex":"^/artist\\-dashboard/profile(?:/)?$","routeKeys":{},"namedRegex":"^/artist\\-dashboard/profile(?:/)?$"},{"page":"/artists","regex":"^/artists(?:/)?$","routeKeys":{},"namedRegex":"^/artists(?:/)?$"},{"page":"/auth/error","regex":"^/auth/error(?:/)?$","routeKeys":{},"namedRegex":"^/auth/error(?:/)?$"},{"page":"/auth/signin","regex":"^/auth/signin(?:/)?$","routeKeys":{},"namedRegex":"^/auth/signin(?:/)?$"},{"page":"/book","regex":"^/book(?:/)?$","routeKeys":{},"namedRegex":"^/book(?:/)?$"},{"page":"/contact","regex":"^/contact(?:/)?$","routeKeys":{},"namedRegex":"^/contact(?:/)?$"},{"page":"/deposit","regex":"^/deposit(?:/)?$","routeKeys":{},"namedRegex":"^/deposit(?:/)?$"},{"page":"/favicon.ico","regex":"^/favicon\\.ico(?:/)?$","routeKeys":{},"namedRegex":"^/favicon\\.ico(?:/)?$"},{"page":"/gift-cards","regex":"^/gift\\-cards(?:/)?$","routeKeys":{},"namedRegex":"^/gift\\-cards(?:/)?$"},{"page":"/privacy","regex":"^/privacy(?:/)?$","routeKeys":{},"namedRegex":"^/privacy(?:/)?$"},{"page":"/specials","regex":"^/specials(?:/)?$","routeKeys":{},"namedRegex":"^/specials(?:/)?$"},{"page":"/terms","regex":"^/terms(?:/)?$","routeKeys":{},"namedRegex":"^/terms(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}

View File

@ -2,43 +2,47 @@
"/_not-found/page": "app/_not-found/page.js", "/_not-found/page": "app/_not-found/page.js",
"/aftercare/page": "app/aftercare/page.js", "/aftercare/page": "app/aftercare/page.js",
"/api/admin/migrate/route": "app/api/admin/migrate/route.js", "/api/admin/migrate/route": "app/api/admin/migrate/route.js",
"/api/artists/[id]/route": "app/api/artists/[id]/route.js",
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js", "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
"/artists/[id]/book/page": "app/artists/[id]/book/page.js", "/artists/[id]/book/page": "app/artists/[id]/book/page.js",
"/artists/[id]/page": "app/artists/[id]/page.js",
"/artists/page": "app/artists/page.js", "/artists/page": "app/artists/page.js",
"/auth/signin/page": "app/auth/signin/page.js",
"/contact/page": "app/contact/page.js",
"/deposit/page": "app/deposit/page.js",
"/book/page": "app/book/page.js",
"/auth/error/page": "app/auth/error/page.js", "/auth/error/page": "app/auth/error/page.js",
"/book/page": "app/book/page.js",
"/artists/[id]/page": "app/artists/[id]/page.js",
"/deposit/page": "app/deposit/page.js",
"/contact/page": "app/contact/page.js",
"/auth/signin/page": "app/auth/signin/page.js",
"/favicon.ico/route": "app/favicon.ico/route.js", "/favicon.ico/route": "app/favicon.ico/route.js",
"/gift-cards/page": "app/gift-cards/page.js", "/gift-cards/page": "app/gift-cards/page.js",
"/page": "app/page.js", "/page": "app/page.js",
"/privacy/page": "app/privacy/page.js",
"/terms/page": "app/terms/page.js", "/terms/page": "app/terms/page.js",
"/specials/page": "app/specials/page.js", "/specials/page": "app/specials/page.js",
"/privacy/page": "app/privacy/page.js",
"/api/files/folder/route": "app/api/files/folder/route.js",
"/api/admin/stats/route": "app/api/admin/stats/route.js", "/api/admin/stats/route": "app/api/admin/stats/route.js",
"/api/artists/[id]/route": "app/api/artists/[id]/route.js",
"/api/files/bulk-delete/route": "app/api/files/bulk-delete/route.js", "/api/files/bulk-delete/route": "app/api/files/bulk-delete/route.js",
"/api/appointments/route": "app/api/appointments/route.js",
"/api/artists/me/route": "app/api/artists/me/route.js",
"/api/files/folder/route": "app/api/files/folder/route.js",
"/api/artists/route": "app/api/artists/route.js", "/api/artists/route": "app/api/artists/route.js",
"/api/files/stats/route": "app/api/files/stats/route.js", "/api/files/stats/route": "app/api/files/stats/route.js",
"/api/files/route": "app/api/files/route.js", "/api/files/route": "app/api/files/route.js",
"/api/portfolio/route": "app/api/portfolio/route.js",
"/api/portfolio/bulk-delete/route": "app/api/portfolio/bulk-delete/route.js", "/api/portfolio/bulk-delete/route": "app/api/portfolio/bulk-delete/route.js",
"/api/portfolio/stats/route": "app/api/portfolio/stats/route.js", "/api/portfolio/stats/route": "app/api/portfolio/stats/route.js",
"/api/portfolio/[id]/route": "app/api/portfolio/[id]/route.js", "/api/portfolio/[id]/route": "app/api/portfolio/[id]/route.js",
"/api/appointments/route": "app/api/appointments/route.js", "/api/users/route": "app/api/users/route.js",
"/api/portfolio/route": "app/api/portfolio/route.js",
"/api/settings/route": "app/api/settings/route.js", "/api/settings/route": "app/api/settings/route.js",
"/api/upload/route": "app/api/upload/route.js", "/api/upload/route": "app/api/upload/route.js",
"/api/users/route": "app/api/users/route.js",
"/admin/artists/[id]/page": "app/admin/artists/[id]/page.js", "/admin/artists/[id]/page": "app/admin/artists/[id]/page.js",
"/admin/artists/new/page": "app/admin/artists/new/page.js", "/admin/artists/new/page": "app/admin/artists/new/page.js",
"/admin/page": "app/admin/page.js",
"/admin/artists/page": "app/admin/artists/page.js", "/admin/artists/page": "app/admin/artists/page.js",
"/admin/calendar/page": "app/admin/calendar/page.js", "/admin/calendar/page": "app/admin/calendar/page.js",
"/admin/portfolio/page": "app/admin/portfolio/page.js", "/admin/page": "app/admin/page.js",
"/artist-dashboard/page": "app/artist-dashboard/page.js",
"/artist-dashboard/portfolio/page": "app/artist-dashboard/portfolio/page.js",
"/admin/uploads/page": "app/admin/uploads/page.js", "/admin/uploads/page": "app/admin/uploads/page.js",
"/admin/settings/page": "app/admin/settings/page.js", "/admin/settings/page": "app/admin/settings/page.js",
"/admin/analytics/page": "app/admin/analytics/page.js" "/admin/portfolio/page": "app/admin/portfolio/page.js",
"/admin/analytics/page": "app/admin/analytics/page.js",
"/artist-dashboard/profile/page": "app/artist-dashboard/profile/page.js"
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{var t={};t.id=2139,t.ids=[2139],t.modules={72934:t=>{"use strict";t.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:t=>{"use strict";t.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:t=>{"use strict";t.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:t=>{"use strict";t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},27790:t=>{"use strict";t.exports=require("assert")},78893:t=>{"use strict";t.exports=require("buffer")},84770:t=>{"use strict";t.exports=require("crypto")},17702:t=>{"use strict";t.exports=require("events")},32615:t=>{"use strict";t.exports=require("http")},35240:t=>{"use strict";t.exports=require("https")},55315:t=>{"use strict";t.exports=require("path")},86624:t=>{"use strict";t.exports=require("querystring")},17360:t=>{"use strict";t.exports=require("url")},21764:t=>{"use strict";t.exports=require("util")},71568:t=>{"use strict";t.exports=require("zlib")},33464:(t,e,i)=>{"use strict";i.r(e),i.d(e,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>c,pages:()=>l,routeModule:()=>m,tree:()=>u}),i(39211),i(49446),i(40656),i(40509),i(70546);var r=i(30170),s=i(45002),a=i(83876),o=i.n(a),n=i(66299),d={};for(let t in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(t)&&(d[t]=()=>n[t]);i.d(e,d);let u=["",{children:["admin",{children:["artists",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(i.bind(i,39211)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(i.bind(i,49446)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/layout.tsx"],metadata:{icon:[async t=>(await Promise.resolve().then(i.bind(i,57481))).default(t)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(i.bind(i,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(i.bind(i,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(i.bind(i,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async t=>(await Promise.resolve().then(i.bind(i,57481))).default(t)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],l=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx"],c="/admin/artists/[id]/page",p={require:i,loadChunk:()=>Promise.resolve()},m=new r.AppPageRouteModule({definition:{kind:s.x.APP_PAGE,page:"/admin/artists/[id]/page",pathname:"/admin/artists/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},24350:(t,e,i)=>{Promise.resolve().then(i.bind(i,7796))},7796:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>d});var r=i(97247),s=i(28964),a=i(34178),o=i(72171),n=i(10906);function d(){let t=(0,a.useParams)(),{toast:e}=(0,n.pm)(),[i,d]=(0,s.useState)(null),[u,l]=(0,s.useState)(!0),c=async()=>{try{let e=await fetch(`/api/artists/${t.id}`);if(!e.ok)throw Error("Failed to fetch artist");let i=await e.json();d(i.artist)}catch(t){console.error("Error fetching artist:",t),e({title:"Error",description:"Failed to load artist",variant:"destructive"})}finally{l(!1)}};return u?r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("div",{className:"text-lg",children:"Loading artist..."})}):i?(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{children:[r.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Edit Artist"}),(0,r.jsxs)("p",{className:"text-muted-foreground",children:["Update ",i.name,"'s information and portfolio"]})]}),r.jsx(o.ArtistForm,{artist:i,onSuccess:()=>{e({title:"Success",description:"Artist updated successfully"}),c()}})]}):r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("div",{className:"text-lg",children:"Artist not found"})})}},39211:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});let r=(0,i(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx#default`)}};var e=require("../../../../webpack-runtime.js");e.C(t);var i=t=>e(e.s=t),r=e.X(0,[9379,8213,1488,4128,7598,9906,1113,23,4106,5593,9060],()=>i(33464));module.exports=r})(); (()=>{var t={};t.id=2139,t.ids=[2139],t.modules={72934:t=>{"use strict";t.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:t=>{"use strict";t.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:t=>{"use strict";t.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:t=>{"use strict";t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},27790:t=>{"use strict";t.exports=require("assert")},78893:t=>{"use strict";t.exports=require("buffer")},84770:t=>{"use strict";t.exports=require("crypto")},17702:t=>{"use strict";t.exports=require("events")},32615:t=>{"use strict";t.exports=require("http")},35240:t=>{"use strict";t.exports=require("https")},55315:t=>{"use strict";t.exports=require("path")},86624:t=>{"use strict";t.exports=require("querystring")},17360:t=>{"use strict";t.exports=require("url")},21764:t=>{"use strict";t.exports=require("util")},71568:t=>{"use strict";t.exports=require("zlib")},33464:(t,e,i)=>{"use strict";i.r(e),i.d(e,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>c,pages:()=>l,routeModule:()=>m,tree:()=>u}),i(39211),i(49446),i(40656),i(40509),i(70546);var r=i(30170),s=i(45002),a=i(83876),o=i.n(a),n=i(66299),d={};for(let t in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(t)&&(d[t]=()=>n[t]);i.d(e,d);let u=["",{children:["admin",{children:["artists",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(i.bind(i,39211)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(i.bind(i,49446)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/layout.tsx"],metadata:{icon:[async t=>(await Promise.resolve().then(i.bind(i,57481))).default(t)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(i.bind(i,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(i.bind(i,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(i.bind(i,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async t=>(await Promise.resolve().then(i.bind(i,57481))).default(t)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],l=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx"],c="/admin/artists/[id]/page",p={require:i,loadChunk:()=>Promise.resolve()},m=new r.AppPageRouteModule({definition:{kind:s.x.APP_PAGE,page:"/admin/artists/[id]/page",pathname:"/admin/artists/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},24350:(t,e,i)=>{Promise.resolve().then(i.bind(i,7796))},7796:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>d});var r=i(97247),s=i(28964),a=i(34178),o=i(72171),n=i(10906);function d(){let t=(0,a.useParams)(),{toast:e}=(0,n.pm)(),[i,d]=(0,s.useState)(null),[u,l]=(0,s.useState)(!0),c=async()=>{try{let e=await fetch(`/api/artists/${t.id}`);if(!e.ok)throw Error("Failed to fetch artist");let i=await e.json();d(i.artist)}catch(t){console.error("Error fetching artist:",t),e({title:"Error",description:"Failed to load artist",variant:"destructive"})}finally{l(!1)}};return u?r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("div",{className:"text-lg",children:"Loading artist..."})}):i?(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{children:[r.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Edit Artist"}),(0,r.jsxs)("p",{className:"text-muted-foreground",children:["Update ",i.name,"'s information and portfolio"]})]}),r.jsx(o.ArtistForm,{artist:i,onSuccess:()=>{e({title:"Success",description:"Artist updated successfully"}),c()}})]}):r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("div",{className:"text-lg",children:"Artist not found"})})}},39211:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});let r=(0,i(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/[id]/page.tsx#default`)}};var e=require("../../../../webpack-runtime.js");e.C(t);var i=t=>e(e.s=t),r=e.X(0,[9379,3670,1488,1511,4080,4128,6609,23,4106,5593,5160],()=>i(33464));module.exports=r})();

View File

@ -1 +1 @@
(()=>{var e={};e.id=12,e.ids=[12],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},27790:e=>{"use strict";e.exports=require("assert")},78893:e=>{"use strict";e.exports=require("buffer")},84770:e=>{"use strict";e.exports=require("crypto")},17702:e=>{"use strict";e.exports=require("events")},32615:e=>{"use strict";e.exports=require("http")},35240:e=>{"use strict";e.exports=require("https")},55315:e=>{"use strict";e.exports=require("path")},86624:e=>{"use strict";e.exports=require("querystring")},17360:e=>{"use strict";e.exports=require("url")},21764:e=>{"use strict";e.exports=require("util")},71568:e=>{"use strict";e.exports=require("zlib")},47485:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>a.a,__next_app__:()=>c,originalPathname:()=>l,pages:()=>p,routeModule:()=>m,tree:()=>d}),r(88429),r(49446),r(40656),r(40509),r(70546);var i=r(30170),s=r(45002),o=r(83876),a=r.n(o),n=r(66299),u={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(u[e]=()=>n[e]);r.d(t,u);let d=["",{children:["admin",{children:["artists",{children:["new",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,88429)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/new/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,49446)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/layout.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(r.bind(r,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],p=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/new/page.tsx"],l="/admin/artists/new/page",c={require:r,loadChunk:()=>Promise.resolve()},m=new i.AppPageRouteModule({definition:{kind:s.x.APP_PAGE,page:"/admin/artists/new/page",pathname:"/admin/artists/new",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},99601:(e,t,r)=>{Promise.resolve().then(r.bind(r,72171))},88429:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var i=r(72051);let s=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/components/admin/artist-form.tsx#ArtistForm`);function o(){return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{children:[i.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Create New Artist"}),i.jsx("p",{className:"text-muted-foreground",children:"Add a new artist to your tattoo studio"})]}),i.jsx(s,{})]})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[9379,8213,1488,4128,7598,9906,1113,23,4106,5593,9060],()=>r(47485));module.exports=i})(); (()=>{var e={};e.id=12,e.ids=[12],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},27790:e=>{"use strict";e.exports=require("assert")},78893:e=>{"use strict";e.exports=require("buffer")},84770:e=>{"use strict";e.exports=require("crypto")},17702:e=>{"use strict";e.exports=require("events")},32615:e=>{"use strict";e.exports=require("http")},35240:e=>{"use strict";e.exports=require("https")},55315:e=>{"use strict";e.exports=require("path")},86624:e=>{"use strict";e.exports=require("querystring")},17360:e=>{"use strict";e.exports=require("url")},21764:e=>{"use strict";e.exports=require("util")},71568:e=>{"use strict";e.exports=require("zlib")},47485:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>a.a,__next_app__:()=>c,originalPathname:()=>l,pages:()=>p,routeModule:()=>m,tree:()=>d}),r(88429),r(49446),r(40656),r(40509),r(70546);var i=r(30170),s=r(45002),o=r(83876),a=r.n(o),n=r(66299),u={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(u[e]=()=>n[e]);r.d(t,u);let d=["",{children:["admin",{children:["artists",{children:["new",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,88429)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/new/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,49446)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/layout.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(r.bind(r,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],p=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/admin/artists/new/page.tsx"],l="/admin/artists/new/page",c={require:r,loadChunk:()=>Promise.resolve()},m=new i.AppPageRouteModule({definition:{kind:s.x.APP_PAGE,page:"/admin/artists/new/page",pathname:"/admin/artists/new",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},99601:(e,t,r)=>{Promise.resolve().then(r.bind(r,72171))},88429:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var i=r(72051);let s=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/components/admin/artist-form.tsx#ArtistForm`);function o(){return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{children:[i.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Create New Artist"}),i.jsx("p",{className:"text-muted-foreground",children:"Add a new artist to your tattoo studio"})]}),i.jsx(s,{})]})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[9379,3670,1488,1511,4080,4128,6609,23,4106,5593,5160],()=>r(47485));module.exports=i})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,75 @@
"use strict";(()=>{var e={};e.id=3017,e.ids=[3017],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},27334:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>A,patchFetch:()=>x,requestAsyncStorage:()=>v,routeModule:()=>y,serverHooks:()=>b,staticGenerationAsyncStorage:()=>O});var n={};r.r(n),r.d(n,{POST:()=>E,dynamic:()=>c});var o=r(73278),i=r(45002),s=r(54877),u=r(71309),a=r(18445),l=r(33897),p=r(1035),d=r(29628),f=r(93470);let c="force-dynamic",_=d.z.object({fileIds:d.z.array(d.z.string()).min(1,"At least one file ID is required")});async function E(e,{params:t}={},r){try{if(!f.vU.UPLOADS_ADMIN_ENABLED)return u.NextResponse.json({error:"Admin uploads disabled"},{status:503});if(!await (0,a.getServerSession)(l.Lz))return u.NextResponse.json({error:"Unauthorized"},{status:401});let t=await e.json(),{fileIds:n}=_.parse(t),o=(0,p.VK)(r?.env),i=o.prepare(` "use strict";(()=>{var e={};e.id=3017,e.ids=[3017,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},27334:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>N,patchFetch:()=>R,requestAsyncStorage:()=>g,routeModule:()=>m,serverHooks:()=>I,staticGenerationAsyncStorage:()=>T});var i={};r.r(i),r.d(i,{POST:()=>f,dynamic:()=>E});var a=r(73278),n=r(45002),s=r(54877),o=r(71309),l=r(18445),u=r(33897),d=r(1035),c=r(29628),p=r(93470);let E="force-dynamic",_=c.z.object({fileIds:c.z.array(c.z.string()).min(1,"At least one file ID is required")});async function f(e,{params:t}={},r){try{if(!p.vU.UPLOADS_ADMIN_ENABLED)return o.NextResponse.json({error:"Admin uploads disabled"},{status:503});if(!await (0,l.getServerSession)(u.Lz))return o.NextResponse.json({error:"Unauthorized"},{status:401});let t=await e.json(),{fileIds:i}=_.parse(t),a=(0,d.VK)(r?.env),n=a.prepare(`
SELECT url FROM file_uploads SELECT url FROM file_uploads
WHERE id IN (${n.map(()=>"?").join(",")}) WHERE id IN (${i.map(()=>"?").join(",")})
`);await i.bind(...n).all();let s=o.prepare(` `);await n.bind(...i).all();let s=a.prepare(`
DELETE FROM file_uploads DELETE FROM file_uploads
WHERE id IN (${n.map(()=>"?").join(",")}) WHERE id IN (${i.map(()=>"?").join(",")})
`),d=await s.bind(...n).run();return u.NextResponse.json({success:!0,deletedCount:d.meta?.rows_written||0,message:`Successfully deleted ${d.meta?.rows_written||0} files`})}catch(e){if(console.error("Bulk delete error:",e),e instanceof d.z.ZodError)return u.NextResponse.json({error:"Invalid input data",details:e.errors},{status:400});return u.NextResponse.json({error:"Failed to delete files"},{status:500})}}let y=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/files/bulk-delete/route",pathname:"/api/files/bulk-delete",filename:"route",bundlePath:"app/api/files/bulk-delete/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/bulk-delete/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:v,staticGenerationAsyncStorage:O,serverHooks:b}=y,A="/api/files/bulk-delete/route";function x(){return(0,s.patchFetch)({serverHooks:b,staticGenerationAsyncStorage:O})}},93470:(e,t,r)=>{r.d(t,{L6:()=>a,vU:()=>l});let n=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),o=Object.keys(n),i=new Set(o),s=new Set,u=null;function a(e={}){if(e.refresh&&(u=null),u)return u;let t=function(){let e={};for(let t of o){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),o=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,n[t]);null!=r&&("string"!=typeof r||""!==r.trim())||s.has(t)||(s.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${o}. Set env var to override.`)),e[t]=o}return Object.freeze(e)}();return u=t,t}let l=new Proxy({},{get:(e,t)=>{if(i.has(t))return a()[t]},ownKeys:()=>o,getOwnPropertyDescriptor:(e,t)=>{if(i.has(t))return{configurable:!0,enumerable:!0,value:a()[t]}}})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var o=r(32482);Object.keys(o).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))});var i=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&({}).hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(n,i,u):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}(r(4128));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}Object.keys(i).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[9379,8213,4128,4833,1253],()=>r(27334));module.exports=n})(); `),c=await s.bind(...i).run();return o.NextResponse.json({success:!0,deletedCount:c.meta?.rows_written||0,message:`Successfully deleted ${c.meta?.rows_written||0} files`})}catch(e){if(console.error("Bulk delete error:",e),e instanceof c.z.ZodError)return o.NextResponse.json({error:"Invalid input data",details:e.errors},{status:400});return o.NextResponse.json({error:"Failed to delete files"},{status:500})}}let m=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/files/bulk-delete/route",pathname:"/api/files/bulk-delete",filename:"route",bundlePath:"app/api/files/bulk-delete/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/bulk-delete/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:g,staticGenerationAsyncStorage:T,serverHooks:I}=m,N="/api/files/bulk-delete/route";function R(){return(0,s.patchFetch)({serverHooks:I,staticGenerationAsyncStorage:T})}},33897:(e,t,r)=>{r.d(t,{Lz:()=>d,KR:()=>_,Z1:()=>c,GJ:()=>E,KN:()=>f,mk:()=>p});var i=r(22571),a=r(43016),n=r(76214),s=r(29628);let o=s.z.object({DATABASE_URL:s.z.string().url(),DIRECT_URL:s.z.string().url().optional(),NEXTAUTH_URL:s.z.string().url(),NEXTAUTH_SECRET:s.z.string().min(1),GOOGLE_CLIENT_ID:s.z.string().optional(),GOOGLE_CLIENT_SECRET:s.z.string().optional(),GITHUB_CLIENT_ID:s.z.string().optional(),GITHUB_CLIENT_SECRET:s.z.string().optional(),AWS_ACCESS_KEY_ID:s.z.string().min(1),AWS_SECRET_ACCESS_KEY:s.z.string().min(1),AWS_REGION:s.z.string().min(1),AWS_BUCKET_NAME:s.z.string().min(1),AWS_ENDPOINT_URL:s.z.string().url().optional(),NODE_ENV:s.z.enum(["development","production","test"]).default("development"),SMTP_HOST:s.z.string().optional(),SMTP_PORT:s.z.string().optional(),SMTP_USER:s.z.string().optional(),SMTP_PASSWORD:s.z.string().optional(),VERCEL_ANALYTICS_ID:s.z.string().optional()}),l=function(){try{return o.parse(process.env)}catch(e){if(e instanceof s.z.ZodError){let t=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${t}`)}throw e}}();var u=r(74725);let d={providers:[(0,n.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:u.i.SUPER_ADMIN};console.log("Using fallback user creation");let t={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:u.i.SUPER_ADMIN};return console.log("Created user:",t),t}}),...l.GOOGLE_CLIENT_ID&&l.GOOGLE_CLIENT_SECRET?[(0,i.Z)({clientId:l.GOOGLE_CLIENT_ID,clientSecret:l.GOOGLE_CLIENT_SECRET})]:[],...l.GITHUB_CLIENT_ID&&l.GITHUB_CLIENT_SECRET?[(0,a.Z)({clientId:l.GITHUB_CLIENT_ID,clientSecret:l.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:t,account:r})=>(t&&(e.role=t.role||u.i.CLIENT,e.userId=t.id),e),session:async({session:e,token:t})=>(t&&(e.user.id=t.userId,e.user.role=t.role),e),signIn:async({user:e,account:t,profile:r})=>!0,redirect:async({url:e,baseUrl:t})=>e.startsWith("/")?`${t}${e}`:new URL(e).origin===t?e:`${t}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:t,profile:r,isNewUser:i}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:t}){console.log("User signed out")}},debug:"development"===l.NODE_ENV};async function c(){let{getServerSession:e}=await r.e(4128).then(r.bind(r,4128));return e(d)}async function p(e){let t=await c();if(!t)throw Error("Authentication required");if(e&&!function(e,t){let r={[u.i.CLIENT]:0,[u.i.ARTIST]:1,[u.i.SHOP_ADMIN]:2,[u.i.SUPER_ADMIN]:3};return r[e]>=r[t]}(t.user.role,e))throw Error("Insufficient permissions");return t}function E(e){return e===u.i.SHOP_ADMIN||e===u.i.SUPER_ADMIN}async function _(){let e=await c();if(!e?.user)return null;let t=e.user.role;if(t!==u.i.ARTIST&&!E(t))return null;let{getArtistByUserId:i}=await r.e(1035).then(r.bind(r,1035)),a=await i(e.user.id);return a?{artist:a,user:e.user}:null}async function f(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,t,r)=>{function i(e){if(e?.DB)return e.DB;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.DB,i=globalThis.DB||globalThis.env?.DB,a=r||i;if(!a)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return a}async function a(e,t){let r=i(t),a=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,n=[];e?.specialty&&(a+=" AND a.specialties LIKE ?",n.push(`%${e.specialty}%`)),e?.search&&(a+=" AND (a.name LIKE ? OR a.bio LIKE ?)",n.push(`%${e.search}%`,`%${e.search}%`)),a+=" ORDER BY a.created_at DESC",e?.limit&&(a+=" LIMIT ?",n.push(e.limit)),e?.offset&&(a+=" OFFSET ?",n.push(e.offset));let s=await r.prepare(a).bind(...n).all();return await Promise.all(s.results.map(async e=>{let t=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:t.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function n(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!a)return null;let n=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:n.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),user:{name:a.user_name,email:a.user_email,avatar:a.user_avatar}}}async function s(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return a?n(a.id,t):null}async function o(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return a?{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}:null}async function l(e,t){let r=i(t),a=crypto.randomUUID(),n=e.userId;if(!n){let t=await r.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();n=t?.id}return await r.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(a,n,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function u(e,t,r){let a=i(r),n=[],s=[];return void 0!==t.name&&(n.push("name = ?"),s.push(t.name)),void 0!==t.bio&&(n.push("bio = ?"),s.push(t.bio)),void 0!==t.specialties&&(n.push("specialties = ?"),s.push(JSON.stringify(t.specialties))),void 0!==t.instagramHandle&&(n.push("instagram_handle = ?"),s.push(t.instagramHandle)),void 0!==t.hourlyRate&&(n.push("hourly_rate = ?"),s.push(t.hourlyRate)),void 0!==t.isActive&&(n.push("is_active = ?"),s.push(t.isActive)),n.push("updated_at = CURRENT_TIMESTAMP"),s.push(e),await a.prepare(`
UPDATE artists
SET ${n.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...s).first()}async function d(e,t){let r=i(t);await r.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function c(e,t,r){let a=i(r),n=crypto.randomUUID();return await a.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(n,e,t.url,t.caption||null,t.tags?JSON.stringify(t.tags):null,t.orderIndex||0,!1!==t.isPublic).first()}async function p(e,t,r){let a=i(r),n=[],s=[];return void 0!==t.url&&(n.push("url = ?"),s.push(t.url)),void 0!==t.caption&&(n.push("caption = ?"),s.push(t.caption)),void 0!==t.tags&&(n.push("tags = ?"),s.push(t.tags?JSON.stringify(t.tags):null)),void 0!==t.orderIndex&&(n.push("order_index = ?"),s.push(t.orderIndex)),void 0!==t.isPublic&&(n.push("is_public = ?"),s.push(t.isPublic)),s.push(e),await a.prepare(`
UPDATE portfolio_images
SET ${n.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...s).first()}async function E(e,t){let r=i(t);await r.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.R2_BUCKET,i=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,a=r||i;if(!a)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return a}r.d(t,{Hf:()=>a,Ms:()=>_,Rw:()=>l,VK:()=>i,W0:()=>p,cP:()=>E,ce:()=>n,ep:()=>u,ex:()=>s,getArtistByUserId:()=>o,vB:()=>d,xd:()=>c})},93470:(e,t,r)=>{r.d(t,{L6:()=>l,vU:()=>u});let i=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),a=Object.keys(i),n=new Set(a),s=new Set,o=null;function l(e={}){if(e.refresh&&(o=null),o)return o;let t=function(){let e={};for(let t of a){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),a=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,i[t]);null!=r&&("string"!=typeof r||""!==r.trim())||s.has(t)||(s.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${a}. Set env var to override.`)),e[t]=a}return Object.freeze(e)}();return o=t,t}let u=new Proxy({},{get:(e,t)=>{if(n.has(t))return l()[t]},ownKeys:()=>a,getOwnPropertyDescriptor:(e,t)=>{if(n.has(t))return{configurable:!0,enumerable:!0,value:l()[t]}}})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var i={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.default}});var a=r(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(void 0);if(r&&r.has(e))return r.get(e);var i={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&({}).hasOwnProperty.call(e,n)){var o=a?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(i,n,o):i[n]=e[n]}return i.default=e,r&&r.set(e,i),i}(r(4128));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))})},74725:(e,t,r)=>{var i,a;r.d(t,{Z:()=>a,i:()=>i}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(i||(i={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(a||(a={}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[9379,3670,4128,4833],()=>r(27334));module.exports=i})();

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
"use strict";(()=>{var e={};e.id=4887,e.ids=[4887],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},15431:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>b,patchFetch:()=>v,requestAsyncStorage:()=>h,routeModule:()=>y,serverHooks:()=>g,staticGenerationAsyncStorage:()=>x});var n={};r.r(n),r.d(n,{GET:()=>m,dynamic:()=>d});var o=r(73278),a=r(45002),i=r(54877),s=r(71309),u=r(18445),p=r(33897),l=r(1035),f=r(29628);let c=f.z.object({path:f.z.string().default("/"),limit:f.z.string().transform(Number).optional(),offset:f.z.string().transform(Number).optional()}),d="force-dynamic";async function m(e,{params:t}={},r){try{if(!await (0,u.getServerSession)(p.Lz))return s.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:t}=new URL(e.url),n=c.parse({path:t.get("path"),limit:t.get("limit"),offset:t.get("offset")}),o=(0,l.VK)(r?.env),a=` "use strict";(()=>{var e={};e.id=4887,e.ids=[4887,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},15431:(e,t,i)=>{i.r(t),i.d(t,{originalPathname:()=>T,patchFetch:()=>I,requestAsyncStorage:()=>m,routeModule:()=>f,serverHooks:()=>h,staticGenerationAsyncStorage:()=>g});var r={};i.r(r),i.d(r,{GET:()=>_,dynamic:()=>E});var a=i(73278),s=i(45002),n=i(54877),o=i(71309),l=i(18445),u=i(33897),d=i(1035),p=i(29628);let c=p.z.object({path:p.z.string().default("/"),limit:p.z.string().transform(Number).optional(),offset:p.z.string().transform(Number).optional()}),E="force-dynamic";async function _(e,{params:t}={},i){try{if(!await (0,l.getServerSession)(u.Lz))return o.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:t}=new URL(e.url),r=c.parse({path:t.get("path"),limit:t.get("limit"),offset:t.get("offset")}),a=(0,d.VK)(i?.env),s=`
SELECT SELECT
fu.id, fu.id,
fu.filename as name, fu.filename as name,
@ -10,4 +10,72 @@
'/' || fu.filename as path '/' || fu.filename as path
FROM file_uploads fu FROM file_uploads fu
WHERE 1=1 WHERE 1=1
`,i=[];"/"!==n.path&&(a+=" AND fu.filename LIKE ?",i.push(`${n.path.replace("/","")}%`)),a+=" ORDER BY fu.created_at DESC",n.limit&&(a+=" LIMIT ?",i.push(n.limit),n.offset&&(a+=" OFFSET ?",i.push(n.offset)));let f=o.prepare(a),d=(await f.bind(...i).all()).results.map(e=>({...e,createdAt:new Date(e.createdAt)}));return s.NextResponse.json(d)}catch(e){return console.error("Files fetch error:",e),s.NextResponse.json({error:"Failed to fetch files"},{status:500})}}let y=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/files/route",pathname:"/api/files",filename:"route",bundlePath:"app/api/files/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:g}=y,b="/api/files/route";function v(){return(0,i.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:x})}},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a.default}});var o=r(32482);Object.keys(o).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))});var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&({}).hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}(r(4128));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))})}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[9379,8213,4128,4833,1253],()=>r(15431));module.exports=n})(); `,n=[];"/"!==r.path&&(s+=" AND fu.filename LIKE ?",n.push(`${r.path.replace("/","")}%`)),s+=" ORDER BY fu.created_at DESC",r.limit&&(s+=" LIMIT ?",n.push(r.limit),r.offset&&(s+=" OFFSET ?",n.push(r.offset)));let p=a.prepare(s),E=(await p.bind(...n).all()).results.map(e=>({...e,createdAt:new Date(e.createdAt)}));return o.NextResponse.json(E)}catch(e){return console.error("Files fetch error:",e),o.NextResponse.json({error:"Failed to fetch files"},{status:500})}}let f=new a.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/files/route",pathname:"/api/files",filename:"route",bundlePath:"app/api/files/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:m,staticGenerationAsyncStorage:g,serverHooks:h}=f,T="/api/files/route";function I(){return(0,n.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:g})}},33897:(e,t,i)=>{i.d(t,{Lz:()=>d,KR:()=>_,Z1:()=>p,GJ:()=>E,KN:()=>f,mk:()=>c});var r=i(22571),a=i(43016),s=i(76214),n=i(29628);let o=n.z.object({DATABASE_URL:n.z.string().url(),DIRECT_URL:n.z.string().url().optional(),NEXTAUTH_URL:n.z.string().url(),NEXTAUTH_SECRET:n.z.string().min(1),GOOGLE_CLIENT_ID:n.z.string().optional(),GOOGLE_CLIENT_SECRET:n.z.string().optional(),GITHUB_CLIENT_ID:n.z.string().optional(),GITHUB_CLIENT_SECRET:n.z.string().optional(),AWS_ACCESS_KEY_ID:n.z.string().min(1),AWS_SECRET_ACCESS_KEY:n.z.string().min(1),AWS_REGION:n.z.string().min(1),AWS_BUCKET_NAME:n.z.string().min(1),AWS_ENDPOINT_URL:n.z.string().url().optional(),NODE_ENV:n.z.enum(["development","production","test"]).default("development"),SMTP_HOST:n.z.string().optional(),SMTP_PORT:n.z.string().optional(),SMTP_USER:n.z.string().optional(),SMTP_PASSWORD:n.z.string().optional(),VERCEL_ANALYTICS_ID:n.z.string().optional()}),l=function(){try{return o.parse(process.env)}catch(e){if(e instanceof n.z.ZodError){let t=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${t}`)}throw e}}();var u=i(74725);let d={providers:[(0,s.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:u.i.SUPER_ADMIN};console.log("Using fallback user creation");let t={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:u.i.SUPER_ADMIN};return console.log("Created user:",t),t}}),...l.GOOGLE_CLIENT_ID&&l.GOOGLE_CLIENT_SECRET?[(0,r.Z)({clientId:l.GOOGLE_CLIENT_ID,clientSecret:l.GOOGLE_CLIENT_SECRET})]:[],...l.GITHUB_CLIENT_ID&&l.GITHUB_CLIENT_SECRET?[(0,a.Z)({clientId:l.GITHUB_CLIENT_ID,clientSecret:l.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:t,account:i})=>(t&&(e.role=t.role||u.i.CLIENT,e.userId=t.id),e),session:async({session:e,token:t})=>(t&&(e.user.id=t.userId,e.user.role=t.role),e),signIn:async({user:e,account:t,profile:i})=>!0,redirect:async({url:e,baseUrl:t})=>e.startsWith("/")?`${t}${e}`:new URL(e).origin===t?e:`${t}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:t,profile:i,isNewUser:r}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:t}){console.log("User signed out")}},debug:"development"===l.NODE_ENV};async function p(){let{getServerSession:e}=await i.e(4128).then(i.bind(i,4128));return e(d)}async function c(e){let t=await p();if(!t)throw Error("Authentication required");if(e&&!function(e,t){let i={[u.i.CLIENT]:0,[u.i.ARTIST]:1,[u.i.SHOP_ADMIN]:2,[u.i.SUPER_ADMIN]:3};return i[e]>=i[t]}(t.user.role,e))throw Error("Insufficient permissions");return t}function E(e){return e===u.i.SHOP_ADMIN||e===u.i.SUPER_ADMIN}async function _(){let e=await p();if(!e?.user)return null;let t=e.user.role;if(t!==u.i.ARTIST&&!E(t))return null;let{getArtistByUserId:r}=await i.e(1035).then(i.bind(i,1035)),a=await r(e.user.id);return a?{artist:a,user:e.user}:null}async function f(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,t,i)=>{function r(e){if(e?.DB)return e.DB;let t=globalThis[Symbol.for("__cloudflare-context__")],i=t?.env?.DB,r=globalThis.DB||globalThis.env?.DB,a=i||r;if(!a)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return a}async function a(e,t){let i=r(t),a=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,s=[];e?.specialty&&(a+=" AND a.specialties LIKE ?",s.push(`%${e.specialty}%`)),e?.search&&(a+=" AND (a.name LIKE ? OR a.bio LIKE ?)",s.push(`%${e.search}%`,`%${e.search}%`)),a+=" ORDER BY a.created_at DESC",e?.limit&&(a+=" LIMIT ?",s.push(e.limit)),e?.offset&&(a+=" OFFSET ?",s.push(e.offset));let n=await i.prepare(a).bind(...s).all();return await Promise.all(n.results.map(async e=>{let t=await i.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:t.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function s(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!a)return null;let s=await i.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:s.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),user:{name:a.user_name,email:a.user_email,avatar:a.user_avatar}}}async function n(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return a?s(a.id,t):null}async function o(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return a?{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}:null}async function l(e,t){let i=r(t),a=crypto.randomUUID(),s=e.userId;if(!s){let t=await i.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();s=t?.id}return await i.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(a,s,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function u(e,t,i){let a=r(i),s=[],n=[];return void 0!==t.name&&(s.push("name = ?"),n.push(t.name)),void 0!==t.bio&&(s.push("bio = ?"),n.push(t.bio)),void 0!==t.specialties&&(s.push("specialties = ?"),n.push(JSON.stringify(t.specialties))),void 0!==t.instagramHandle&&(s.push("instagram_handle = ?"),n.push(t.instagramHandle)),void 0!==t.hourlyRate&&(s.push("hourly_rate = ?"),n.push(t.hourlyRate)),void 0!==t.isActive&&(s.push("is_active = ?"),n.push(t.isActive)),s.push("updated_at = CURRENT_TIMESTAMP"),n.push(e),await a.prepare(`
UPDATE artists
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function d(e,t){let i=r(t);await i.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function p(e,t,i){let a=r(i),s=crypto.randomUUID();return await a.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(s,e,t.url,t.caption||null,t.tags?JSON.stringify(t.tags):null,t.orderIndex||0,!1!==t.isPublic).first()}async function c(e,t,i){let a=r(i),s=[],n=[];return void 0!==t.url&&(s.push("url = ?"),n.push(t.url)),void 0!==t.caption&&(s.push("caption = ?"),n.push(t.caption)),void 0!==t.tags&&(s.push("tags = ?"),n.push(t.tags?JSON.stringify(t.tags):null)),void 0!==t.orderIndex&&(s.push("order_index = ?"),n.push(t.orderIndex)),void 0!==t.isPublic&&(s.push("is_public = ?"),n.push(t.isPublic)),n.push(e),await a.prepare(`
UPDATE portfolio_images
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function E(e,t){let i=r(t);await i.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let t=globalThis[Symbol.for("__cloudflare-context__")],i=t?.env?.R2_BUCKET,r=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,a=i||r;if(!a)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return a}i.d(t,{Hf:()=>a,Ms:()=>_,Rw:()=>l,VK:()=>r,W0:()=>c,cP:()=>E,ce:()=>s,ep:()=>u,ex:()=>n,getArtistByUserId:()=>o,vB:()=>d,xd:()=>p})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0});var r={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s.default}});var a=i(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var s=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=n(void 0);if(i&&i.has(e))return i.get(e);var r={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&({}).hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(r,s,o):r[s]=e[s]}return r.default=e,i&&i.set(e,r),r}(i(4128));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(n=function(e){return e?i:t})(e)}Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e))&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))})},74725:(e,t,i)=>{var r,a;i.d(t,{Z:()=>a,i:()=>r}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(r||(r={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(a||(a={}))}};var t=require("../../../webpack-runtime.js");t.C(e);var i=e=>t(t.s=e),r=t.X(0,[9379,3670,4128,4833],()=>i(15431));module.exports=r})();

View File

@ -1,12 +1,12 @@
"use strict";(()=>{var e={};e.id=702,e.ids=[702],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},77396:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>E,patchFetch:()=>O,requestAsyncStorage:()=>y,routeModule:()=>f,serverHooks:()=>x,staticGenerationAsyncStorage:()=>m});var o={};r.r(o),r.d(o,{GET:()=>d,dynamic:()=>c});var a=r(73278),n=r(45002),i=r(54877),s=r(71309),u=r(18445),p=r(33897),l=r(1035);let c="force-dynamic";async function d(e,{params:t}={},r){try{if(!await (0,u.getServerSession)(p.Lz))return s.NextResponse.json({error:"Unauthorized"},{status:401});let e=(0,l.VK)(r?.env),t=await e.prepare(` "use strict";(()=>{var e={};e.id=702,e.ids=[702,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},77396:(e,t,i)=>{i.r(t),i.d(t,{originalPathname:()=>g,patchFetch:()=>T,requestAsyncStorage:()=>_,routeModule:()=>E,serverHooks:()=>m,staticGenerationAsyncStorage:()=>f});var r={};i.r(r),i.d(r,{GET:()=>c,dynamic:()=>p});var a=i(73278),s=i(45002),n=i(54877),o=i(71309),l=i(18445),u=i(33897),d=i(1035);let p="force-dynamic";async function c(e,{params:t}={},i){try{if(!await (0,l.getServerSession)(u.Lz))return o.NextResponse.json({error:"Unauthorized"},{status:401});let e=(0,d.VK)(i?.env),t=await e.prepare(`
SELECT COUNT(*) as count FROM file_uploads SELECT COUNT(*) as count FROM file_uploads
`).first(),o=await e.prepare(` `).first(),r=await e.prepare(`
SELECT COUNT(*) as count SELECT COUNT(*) as count
FROM file_uploads FROM file_uploads
WHERE created_at >= datetime('now', '-7 days') WHERE created_at >= datetime('now', '-7 days')
`).first(),a=await e.prepare(` `).first(),a=await e.prepare(`
SELECT SUM(size) as totalBytes FROM file_uploads SELECT SUM(size) as totalBytes FROM file_uploads
`).first(),n=await e.prepare(` `).first(),s=await e.prepare(`
SELECT SELECT
CASE CASE
WHEN mime_type LIKE 'image/%' THEN 'image' WHEN mime_type LIKE 'image/%' THEN 'image'
@ -18,4 +18,72 @@
COUNT(*) as count COUNT(*) as count
FROM file_uploads FROM file_uploads
GROUP BY fileType GROUP BY fileType
`).all(),i=a?.totalBytes||0,c=e=>{if(0===e)return"0 GB";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},d={};for(let e of n.results)d[e.fileType]=e.count;let f={totalFiles:t?.count||0,totalSize:c(i),recentUploads:o?.count||0,storageUsed:c(i),fileTypes:d};return s.NextResponse.json(f)}catch(e){return console.error("File stats error:",e),s.NextResponse.json({error:"Failed to fetch file statistics"},{status:500})}}let f=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/files/stats/route",pathname:"/api/files/stats",filename:"route",bundlePath:"app/api/files/stats/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/stats/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:y,staticGenerationAsyncStorage:m,serverHooks:x}=f,E="/api/files/stats/route";function O(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:m})}},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var o={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.default}});var a=r(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(void 0);if(r&&r.has(e))return r.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&({}).hasOwnProperty.call(e,n)){var s=a?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(o,n,s):o[n]=e[n]}return o.default=e,r&&r.set(e,o),o}(r(4128));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[9379,8213,4128,4833,1253],()=>r(77396));module.exports=o})(); `).all(),n=a?.totalBytes||0,p=e=>{if(0===e)return"0 GB";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},c={};for(let e of s.results)c[e.fileType]=e.count;let E={totalFiles:t?.count||0,totalSize:p(n),recentUploads:r?.count||0,storageUsed:p(n),fileTypes:c};return o.NextResponse.json(E)}catch(e){return console.error("File stats error:",e),o.NextResponse.json({error:"Failed to fetch file statistics"},{status:500})}}let E=new a.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/files/stats/route",pathname:"/api/files/stats",filename:"route",bundlePath:"app/api/files/stats/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/files/stats/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:_,staticGenerationAsyncStorage:f,serverHooks:m}=E,g="/api/files/stats/route";function T(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:f})}},33897:(e,t,i)=>{i.d(t,{Lz:()=>d,KR:()=>_,Z1:()=>p,GJ:()=>E,KN:()=>f,mk:()=>c});var r=i(22571),a=i(43016),s=i(76214),n=i(29628);let o=n.z.object({DATABASE_URL:n.z.string().url(),DIRECT_URL:n.z.string().url().optional(),NEXTAUTH_URL:n.z.string().url(),NEXTAUTH_SECRET:n.z.string().min(1),GOOGLE_CLIENT_ID:n.z.string().optional(),GOOGLE_CLIENT_SECRET:n.z.string().optional(),GITHUB_CLIENT_ID:n.z.string().optional(),GITHUB_CLIENT_SECRET:n.z.string().optional(),AWS_ACCESS_KEY_ID:n.z.string().min(1),AWS_SECRET_ACCESS_KEY:n.z.string().min(1),AWS_REGION:n.z.string().min(1),AWS_BUCKET_NAME:n.z.string().min(1),AWS_ENDPOINT_URL:n.z.string().url().optional(),NODE_ENV:n.z.enum(["development","production","test"]).default("development"),SMTP_HOST:n.z.string().optional(),SMTP_PORT:n.z.string().optional(),SMTP_USER:n.z.string().optional(),SMTP_PASSWORD:n.z.string().optional(),VERCEL_ANALYTICS_ID:n.z.string().optional()}),l=function(){try{return o.parse(process.env)}catch(e){if(e instanceof n.z.ZodError){let t=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${t}`)}throw e}}();var u=i(74725);let d={providers:[(0,s.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:u.i.SUPER_ADMIN};console.log("Using fallback user creation");let t={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:u.i.SUPER_ADMIN};return console.log("Created user:",t),t}}),...l.GOOGLE_CLIENT_ID&&l.GOOGLE_CLIENT_SECRET?[(0,r.Z)({clientId:l.GOOGLE_CLIENT_ID,clientSecret:l.GOOGLE_CLIENT_SECRET})]:[],...l.GITHUB_CLIENT_ID&&l.GITHUB_CLIENT_SECRET?[(0,a.Z)({clientId:l.GITHUB_CLIENT_ID,clientSecret:l.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:t,account:i})=>(t&&(e.role=t.role||u.i.CLIENT,e.userId=t.id),e),session:async({session:e,token:t})=>(t&&(e.user.id=t.userId,e.user.role=t.role),e),signIn:async({user:e,account:t,profile:i})=>!0,redirect:async({url:e,baseUrl:t})=>e.startsWith("/")?`${t}${e}`:new URL(e).origin===t?e:`${t}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:t,profile:i,isNewUser:r}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:t}){console.log("User signed out")}},debug:"development"===l.NODE_ENV};async function p(){let{getServerSession:e}=await i.e(4128).then(i.bind(i,4128));return e(d)}async function c(e){let t=await p();if(!t)throw Error("Authentication required");if(e&&!function(e,t){let i={[u.i.CLIENT]:0,[u.i.ARTIST]:1,[u.i.SHOP_ADMIN]:2,[u.i.SUPER_ADMIN]:3};return i[e]>=i[t]}(t.user.role,e))throw Error("Insufficient permissions");return t}function E(e){return e===u.i.SHOP_ADMIN||e===u.i.SUPER_ADMIN}async function _(){let e=await p();if(!e?.user)return null;let t=e.user.role;if(t!==u.i.ARTIST&&!E(t))return null;let{getArtistByUserId:r}=await i.e(1035).then(i.bind(i,1035)),a=await r(e.user.id);return a?{artist:a,user:e.user}:null}async function f(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,t,i)=>{function r(e){if(e?.DB)return e.DB;let t=globalThis[Symbol.for("__cloudflare-context__")],i=t?.env?.DB,r=globalThis.DB||globalThis.env?.DB,a=i||r;if(!a)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return a}async function a(e,t){let i=r(t),a=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,s=[];e?.specialty&&(a+=" AND a.specialties LIKE ?",s.push(`%${e.specialty}%`)),e?.search&&(a+=" AND (a.name LIKE ? OR a.bio LIKE ?)",s.push(`%${e.search}%`,`%${e.search}%`)),a+=" ORDER BY a.created_at DESC",e?.limit&&(a+=" LIMIT ?",s.push(e.limit)),e?.offset&&(a+=" OFFSET ?",s.push(e.offset));let n=await i.prepare(a).bind(...s).all();return await Promise.all(n.results.map(async e=>{let t=await i.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:t.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function s(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!a)return null;let s=await i.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:s.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),user:{name:a.user_name,email:a.user_email,avatar:a.user_avatar}}}async function n(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return a?s(a.id,t):null}async function o(e,t){let i=r(t),a=await i.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return a?{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}:null}async function l(e,t){let i=r(t),a=crypto.randomUUID(),s=e.userId;if(!s){let t=await i.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();s=t?.id}return await i.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(a,s,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function u(e,t,i){let a=r(i),s=[],n=[];return void 0!==t.name&&(s.push("name = ?"),n.push(t.name)),void 0!==t.bio&&(s.push("bio = ?"),n.push(t.bio)),void 0!==t.specialties&&(s.push("specialties = ?"),n.push(JSON.stringify(t.specialties))),void 0!==t.instagramHandle&&(s.push("instagram_handle = ?"),n.push(t.instagramHandle)),void 0!==t.hourlyRate&&(s.push("hourly_rate = ?"),n.push(t.hourlyRate)),void 0!==t.isActive&&(s.push("is_active = ?"),n.push(t.isActive)),s.push("updated_at = CURRENT_TIMESTAMP"),n.push(e),await a.prepare(`
UPDATE artists
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function d(e,t){let i=r(t);await i.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function p(e,t,i){let a=r(i),s=crypto.randomUUID();return await a.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(s,e,t.url,t.caption||null,t.tags?JSON.stringify(t.tags):null,t.orderIndex||0,!1!==t.isPublic).first()}async function c(e,t,i){let a=r(i),s=[],n=[];return void 0!==t.url&&(s.push("url = ?"),n.push(t.url)),void 0!==t.caption&&(s.push("caption = ?"),n.push(t.caption)),void 0!==t.tags&&(s.push("tags = ?"),n.push(t.tags?JSON.stringify(t.tags):null)),void 0!==t.orderIndex&&(s.push("order_index = ?"),n.push(t.orderIndex)),void 0!==t.isPublic&&(s.push("is_public = ?"),n.push(t.isPublic)),n.push(e),await a.prepare(`
UPDATE portfolio_images
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function E(e,t){let i=r(t);await i.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let t=globalThis[Symbol.for("__cloudflare-context__")],i=t?.env?.R2_BUCKET,r=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,a=i||r;if(!a)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return a}i.d(t,{Hf:()=>a,Ms:()=>_,Rw:()=>l,VK:()=>r,W0:()=>c,cP:()=>E,ce:()=>s,ep:()=>u,ex:()=>n,getArtistByUserId:()=>o,vB:()=>d,xd:()=>p})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0});var r={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s.default}});var a=i(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var s=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=n(void 0);if(i&&i.has(e))return i.get(e);var r={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&({}).hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(r,s,o):r[s]=e[s]}return r.default=e,i&&i.set(e,r),r}(i(4128));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(n=function(e){return e?i:t})(e)}Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e))&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))})},74725:(e,t,i)=>{var r,a;i.d(t,{Z:()=>a,i:()=>r}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(r||(r={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(a||(a={}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var i=e=>t(t.s=e),r=t.X(0,[9379,3670,4128,4833],()=>i(77396));module.exports=r})();

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,75 @@
"use strict";(()=>{var e={};e.id=5682,e.ids=[5682],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},18684:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>m,requestAsyncStorage:()=>v,routeModule:()=>y,serverHooks:()=>b,staticGenerationAsyncStorage:()=>O});var o={};r.r(o),r.d(o,{POST:()=>E,dynamic:()=>f});var n=r(73278),i=r(45002),s=r(54877),a=r(71309),u=r(18445),l=r(33897),p=r(1035),d=r(29628),c=r(93470);let f="force-dynamic",_=d.z.object({imageIds:d.z.array(d.z.string()).min(1,"At least one image ID is required")});async function E(e,{params:t}={},r){try{if(!c.vU.UPLOADS_ADMIN_ENABLED)return a.NextResponse.json({error:"Admin uploads disabled"},{status:503});if(!await (0,u.getServerSession)(l.Lz))return a.NextResponse.json({error:"Unauthorized"},{status:401});let t=await e.json(),{imageIds:o}=_.parse(t),n=(0,p.VK)(r?.env),i=n.prepare(` "use strict";(()=>{var e={};e.id=5682,e.ids=[5682,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},18684:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>N,patchFetch:()=>R,requestAsyncStorage:()=>g,routeModule:()=>m,serverHooks:()=>I,staticGenerationAsyncStorage:()=>T});var i={};r.r(i),r.d(i,{POST:()=>f,dynamic:()=>E});var a=r(73278),n=r(45002),s=r(54877),o=r(71309),l=r(18445),u=r(33897),d=r(1035),p=r(29628),c=r(93470);let E="force-dynamic",_=p.z.object({imageIds:p.z.array(p.z.string()).min(1,"At least one image ID is required")});async function f(e,{params:t}={},r){try{if(!c.vU.UPLOADS_ADMIN_ENABLED)return o.NextResponse.json({error:"Admin uploads disabled"},{status:503});if(!await (0,l.getServerSession)(u.Lz))return o.NextResponse.json({error:"Unauthorized"},{status:401});let t=await e.json(),{imageIds:i}=_.parse(t),a=(0,d.VK)(r?.env),n=a.prepare(`
SELECT image_url FROM portfolio_images SELECT image_url FROM portfolio_images
WHERE id IN (${o.map(()=>"?").join(",")}) WHERE id IN (${i.map(()=>"?").join(",")})
`);await i.bind(...o).all();let s=n.prepare(` `);await n.bind(...i).all();let s=a.prepare(`
DELETE FROM portfolio_images DELETE FROM portfolio_images
WHERE id IN (${o.map(()=>"?").join(",")}) WHERE id IN (${i.map(()=>"?").join(",")})
`),d=await s.bind(...o).run();return a.NextResponse.json({success:!0,deletedCount:d.meta?.rows_written||0,message:`Successfully deleted ${d.meta?.rows_written||0} images`})}catch(e){if(console.error("Bulk delete error:",e),e instanceof d.z.ZodError)return a.NextResponse.json({error:"Invalid input data",details:e.errors},{status:400});return a.NextResponse.json({error:"Failed to delete images"},{status:500})}}let y=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/portfolio/bulk-delete/route",pathname:"/api/portfolio/bulk-delete",filename:"route",bundlePath:"app/api/portfolio/bulk-delete/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/portfolio/bulk-delete/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:v,staticGenerationAsyncStorage:O,serverHooks:b}=y,g="/api/portfolio/bulk-delete/route";function m(){return(0,s.patchFetch)({serverHooks:b,staticGenerationAsyncStorage:O})}},93470:(e,t,r)=>{r.d(t,{L6:()=>u,vU:()=>l});let o=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),n=Object.keys(o),i=new Set(n),s=new Set,a=null;function u(e={}){if(e.refresh&&(a=null),a)return a;let t=function(){let e={};for(let t of n){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),n=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,o[t]);null!=r&&("string"!=typeof r||""!==r.trim())||s.has(t)||(s.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${n}. Set env var to override.`)),e[t]=n}return Object.freeze(e)}();return a=t,t}let l=new Proxy({},{get:(e,t)=>{if(i.has(t))return u()[t]},ownKeys:()=>n,getOwnPropertyDescriptor:(e,t)=>{if(i.has(t))return{configurable:!0,enumerable:!0,value:u()[t]}}})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var o={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var n=r(32482);Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))});var i=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(void 0);if(r&&r.has(e))return r.get(e);var o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&({}).hasOwnProperty.call(e,i)){var a=n?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}(r(4128));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}Object.keys(i).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[9379,8213,4128,4833,1253],()=>r(18684));module.exports=o})(); `),p=await s.bind(...i).run();return o.NextResponse.json({success:!0,deletedCount:p.meta?.rows_written||0,message:`Successfully deleted ${p.meta?.rows_written||0} images`})}catch(e){if(console.error("Bulk delete error:",e),e instanceof p.z.ZodError)return o.NextResponse.json({error:"Invalid input data",details:e.errors},{status:400});return o.NextResponse.json({error:"Failed to delete images"},{status:500})}}let m=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/portfolio/bulk-delete/route",pathname:"/api/portfolio/bulk-delete",filename:"route",bundlePath:"app/api/portfolio/bulk-delete/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/portfolio/bulk-delete/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:g,staticGenerationAsyncStorage:T,serverHooks:I}=m,N="/api/portfolio/bulk-delete/route";function R(){return(0,s.patchFetch)({serverHooks:I,staticGenerationAsyncStorage:T})}},33897:(e,t,r)=>{r.d(t,{Lz:()=>d,KR:()=>_,Z1:()=>p,GJ:()=>E,KN:()=>f,mk:()=>c});var i=r(22571),a=r(43016),n=r(76214),s=r(29628);let o=s.z.object({DATABASE_URL:s.z.string().url(),DIRECT_URL:s.z.string().url().optional(),NEXTAUTH_URL:s.z.string().url(),NEXTAUTH_SECRET:s.z.string().min(1),GOOGLE_CLIENT_ID:s.z.string().optional(),GOOGLE_CLIENT_SECRET:s.z.string().optional(),GITHUB_CLIENT_ID:s.z.string().optional(),GITHUB_CLIENT_SECRET:s.z.string().optional(),AWS_ACCESS_KEY_ID:s.z.string().min(1),AWS_SECRET_ACCESS_KEY:s.z.string().min(1),AWS_REGION:s.z.string().min(1),AWS_BUCKET_NAME:s.z.string().min(1),AWS_ENDPOINT_URL:s.z.string().url().optional(),NODE_ENV:s.z.enum(["development","production","test"]).default("development"),SMTP_HOST:s.z.string().optional(),SMTP_PORT:s.z.string().optional(),SMTP_USER:s.z.string().optional(),SMTP_PASSWORD:s.z.string().optional(),VERCEL_ANALYTICS_ID:s.z.string().optional()}),l=function(){try{return o.parse(process.env)}catch(e){if(e instanceof s.z.ZodError){let t=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${t}`)}throw e}}();var u=r(74725);let d={providers:[(0,n.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:u.i.SUPER_ADMIN};console.log("Using fallback user creation");let t={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:u.i.SUPER_ADMIN};return console.log("Created user:",t),t}}),...l.GOOGLE_CLIENT_ID&&l.GOOGLE_CLIENT_SECRET?[(0,i.Z)({clientId:l.GOOGLE_CLIENT_ID,clientSecret:l.GOOGLE_CLIENT_SECRET})]:[],...l.GITHUB_CLIENT_ID&&l.GITHUB_CLIENT_SECRET?[(0,a.Z)({clientId:l.GITHUB_CLIENT_ID,clientSecret:l.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:t,account:r})=>(t&&(e.role=t.role||u.i.CLIENT,e.userId=t.id),e),session:async({session:e,token:t})=>(t&&(e.user.id=t.userId,e.user.role=t.role),e),signIn:async({user:e,account:t,profile:r})=>!0,redirect:async({url:e,baseUrl:t})=>e.startsWith("/")?`${t}${e}`:new URL(e).origin===t?e:`${t}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:t,profile:r,isNewUser:i}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:t}){console.log("User signed out")}},debug:"development"===l.NODE_ENV};async function p(){let{getServerSession:e}=await r.e(4128).then(r.bind(r,4128));return e(d)}async function c(e){let t=await p();if(!t)throw Error("Authentication required");if(e&&!function(e,t){let r={[u.i.CLIENT]:0,[u.i.ARTIST]:1,[u.i.SHOP_ADMIN]:2,[u.i.SUPER_ADMIN]:3};return r[e]>=r[t]}(t.user.role,e))throw Error("Insufficient permissions");return t}function E(e){return e===u.i.SHOP_ADMIN||e===u.i.SUPER_ADMIN}async function _(){let e=await p();if(!e?.user)return null;let t=e.user.role;if(t!==u.i.ARTIST&&!E(t))return null;let{getArtistByUserId:i}=await r.e(1035).then(r.bind(r,1035)),a=await i(e.user.id);return a?{artist:a,user:e.user}:null}async function f(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,t,r)=>{function i(e){if(e?.DB)return e.DB;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.DB,i=globalThis.DB||globalThis.env?.DB,a=r||i;if(!a)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return a}async function a(e,t){let r=i(t),a=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,n=[];e?.specialty&&(a+=" AND a.specialties LIKE ?",n.push(`%${e.specialty}%`)),e?.search&&(a+=" AND (a.name LIKE ? OR a.bio LIKE ?)",n.push(`%${e.search}%`,`%${e.search}%`)),a+=" ORDER BY a.created_at DESC",e?.limit&&(a+=" LIMIT ?",n.push(e.limit)),e?.offset&&(a+=" OFFSET ?",n.push(e.offset));let s=await r.prepare(a).bind(...n).all();return await Promise.all(s.results.map(async e=>{let t=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:t.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function n(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!a)return null;let n=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:n.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),user:{name:a.user_name,email:a.user_email,avatar:a.user_avatar}}}async function s(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return a?n(a.id,t):null}async function o(e,t){let r=i(t),a=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return a?{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}:null}async function l(e,t){let r=i(t),a=crypto.randomUUID(),n=e.userId;if(!n){let t=await r.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();n=t?.id}return await r.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(a,n,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function u(e,t,r){let a=i(r),n=[],s=[];return void 0!==t.name&&(n.push("name = ?"),s.push(t.name)),void 0!==t.bio&&(n.push("bio = ?"),s.push(t.bio)),void 0!==t.specialties&&(n.push("specialties = ?"),s.push(JSON.stringify(t.specialties))),void 0!==t.instagramHandle&&(n.push("instagram_handle = ?"),s.push(t.instagramHandle)),void 0!==t.hourlyRate&&(n.push("hourly_rate = ?"),s.push(t.hourlyRate)),void 0!==t.isActive&&(n.push("is_active = ?"),s.push(t.isActive)),n.push("updated_at = CURRENT_TIMESTAMP"),s.push(e),await a.prepare(`
UPDATE artists
SET ${n.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...s).first()}async function d(e,t){let r=i(t);await r.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function p(e,t,r){let a=i(r),n=crypto.randomUUID();return await a.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(n,e,t.url,t.caption||null,t.tags?JSON.stringify(t.tags):null,t.orderIndex||0,!1!==t.isPublic).first()}async function c(e,t,r){let a=i(r),n=[],s=[];return void 0!==t.url&&(n.push("url = ?"),s.push(t.url)),void 0!==t.caption&&(n.push("caption = ?"),s.push(t.caption)),void 0!==t.tags&&(n.push("tags = ?"),s.push(t.tags?JSON.stringify(t.tags):null)),void 0!==t.orderIndex&&(n.push("order_index = ?"),s.push(t.orderIndex)),void 0!==t.isPublic&&(n.push("is_public = ?"),s.push(t.isPublic)),s.push(e),await a.prepare(`
UPDATE portfolio_images
SET ${n.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...s).first()}async function E(e,t){let r=i(t);await r.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.R2_BUCKET,i=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,a=r||i;if(!a)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return a}r.d(t,{Hf:()=>a,Ms:()=>_,Rw:()=>l,VK:()=>i,W0:()=>c,cP:()=>E,ce:()=>n,ep:()=>u,ex:()=>s,getArtistByUserId:()=>o,vB:()=>d,xd:()=>p})},93470:(e,t,r)=>{r.d(t,{L6:()=>l,vU:()=>u});let i=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),a=Object.keys(i),n=new Set(a),s=new Set,o=null;function l(e={}){if(e.refresh&&(o=null),o)return o;let t=function(){let e={};for(let t of a){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),a=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,i[t]);null!=r&&("string"!=typeof r||""!==r.trim())||s.has(t)||(s.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${a}. Set env var to override.`)),e[t]=a}return Object.freeze(e)}();return o=t,t}let u=new Proxy({},{get:(e,t)=>{if(n.has(t))return l()[t]},ownKeys:()=>a,getOwnPropertyDescriptor:(e,t)=>{if(n.has(t))return{configurable:!0,enumerable:!0,value:l()[t]}}})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var i={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.default}});var a=r(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(void 0);if(r&&r.has(e))return r.get(e);var i={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&({}).hasOwnProperty.call(e,n)){var o=a?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(i,n,o):i[n]=e[n]}return i.default=e,r&&r.set(e,i),i}(r(4128));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))})},74725:(e,t,r)=>{var i,a;r.d(t,{Z:()=>a,i:()=>i}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(i||(i={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(a||(a={}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[9379,3670,4128,4833],()=>r(18684));module.exports=i})();

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,77 @@
"use strict";(()=>{var e={};e.id=30,e.ids=[30],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},98896:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>g,requestAsyncStorage:()=>x,routeModule:()=>f,serverHooks:()=>h,staticGenerationAsyncStorage:()=>y});var o={};r.r(o),r.d(o,{GET:()=>d,dynamic:()=>c});var a=r(73278),n=r(45002),s=r(54877),i=r(71309),u=r(18445),p=r(33897),l=r(1035);let c="force-dynamic";async function d(e,{params:t}={},r){try{if(!await (0,u.getServerSession)(p.Lz))return i.NextResponse.json({error:"Unauthorized"},{status:401});let e=(0,l.VK)(r?.env),t=await e.prepare(` "use strict";(()=>{var e={};e.id=30,e.ids=[30,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},98896:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>h,requestAsyncStorage:()=>_,routeModule:()=>E,serverHooks:()=>m,staticGenerationAsyncStorage:()=>f});var a={};r.r(a),r.d(a,{GET:()=>c,dynamic:()=>p});var i=r(73278),s=r(45002),n=r(54877),o=r(71309),l=r(18445),u=r(33897),d=r(1035);let p="force-dynamic";async function c(e,{params:t}={},r){try{if(!await (0,l.getServerSession)(u.Lz))return o.NextResponse.json({error:"Unauthorized"},{status:401});let e=(0,d.VK)(r?.env),t=await e.prepare(`
SELECT COUNT(*) as count FROM portfolio_images SELECT COUNT(*) as count FROM portfolio_images
`).first(),o=await e.prepare(` `).first(),a=await e.prepare(`
SELECT COUNT(*) as count SELECT COUNT(*) as count
FROM portfolio_images FROM portfolio_images
WHERE created_at >= datetime('now', '-7 days') WHERE created_at >= datetime('now', '-7 days')
`).first(),a=await e.prepare(` `).first(),i=await e.prepare(`
SELECT COUNT(*) * 2.5 as totalMB FROM portfolio_images SELECT COUNT(*) * 2.5 as totalMB FROM portfolio_images
`).first(),n={totalImages:t?.count||0,totalViews:Math.floor(5e4*Math.random())+1e4,totalLikes:Math.floor(5e3*Math.random())+1e3,averageRating:Math.round(10*(4.2+.6*Math.random()))/10,storageUsed:`${Math.round((a?.totalMB||0)/1024*100)/100} GB`,recentUploads:o?.count||0};return i.NextResponse.json(n)}catch(e){return console.error("Portfolio stats error:",e),i.NextResponse.json({error:"Failed to fetch portfolio statistics"},{status:500})}}let f=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/portfolio/stats/route",pathname:"/api/portfolio/stats",filename:"route",bundlePath:"app/api/portfolio/stats/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/portfolio/stats/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:x,staticGenerationAsyncStorage:y,serverHooks:h}=f,m="/api/portfolio/stats/route";function g(){return(0,s.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:y})}},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var o={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.default}});var a=r(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(void 0);if(r&&r.has(e))return r.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&({}).hasOwnProperty.call(e,n)){var i=a?Object.getOwnPropertyDescriptor(e,n):null;i&&(i.get||i.set)?Object.defineProperty(o,n,i):o[n]=e[n]}return o.default=e,r&&r.set(e,o),o}(r(4128));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[9379,8213,4128,4833,1253],()=>r(98896));module.exports=o})(); `).first(),s={totalImages:t?.count||0,totalViews:Math.floor(5e4*Math.random())+1e4,totalLikes:Math.floor(5e3*Math.random())+1e3,averageRating:Math.round(10*(4.2+.6*Math.random()))/10,storageUsed:`${Math.round((i?.totalMB||0)/1024*100)/100} GB`,recentUploads:a?.count||0};return o.NextResponse.json(s)}catch(e){return console.error("Portfolio stats error:",e),o.NextResponse.json({error:"Failed to fetch portfolio statistics"},{status:500})}}let E=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/portfolio/stats/route",pathname:"/api/portfolio/stats",filename:"route",bundlePath:"app/api/portfolio/stats/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/portfolio/stats/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:_,staticGenerationAsyncStorage:f,serverHooks:m}=E,g="/api/portfolio/stats/route";function h(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:f})}},33897:(e,t,r)=>{r.d(t,{Lz:()=>d,KR:()=>_,Z1:()=>p,GJ:()=>E,KN:()=>f,mk:()=>c});var a=r(22571),i=r(43016),s=r(76214),n=r(29628);let o=n.z.object({DATABASE_URL:n.z.string().url(),DIRECT_URL:n.z.string().url().optional(),NEXTAUTH_URL:n.z.string().url(),NEXTAUTH_SECRET:n.z.string().min(1),GOOGLE_CLIENT_ID:n.z.string().optional(),GOOGLE_CLIENT_SECRET:n.z.string().optional(),GITHUB_CLIENT_ID:n.z.string().optional(),GITHUB_CLIENT_SECRET:n.z.string().optional(),AWS_ACCESS_KEY_ID:n.z.string().min(1),AWS_SECRET_ACCESS_KEY:n.z.string().min(1),AWS_REGION:n.z.string().min(1),AWS_BUCKET_NAME:n.z.string().min(1),AWS_ENDPOINT_URL:n.z.string().url().optional(),NODE_ENV:n.z.enum(["development","production","test"]).default("development"),SMTP_HOST:n.z.string().optional(),SMTP_PORT:n.z.string().optional(),SMTP_USER:n.z.string().optional(),SMTP_PASSWORD:n.z.string().optional(),VERCEL_ANALYTICS_ID:n.z.string().optional()}),l=function(){try{return o.parse(process.env)}catch(e){if(e instanceof n.z.ZodError){let t=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${t}`)}throw e}}();var u=r(74725);let d={providers:[(0,s.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:u.i.SUPER_ADMIN};console.log("Using fallback user creation");let t={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:u.i.SUPER_ADMIN};return console.log("Created user:",t),t}}),...l.GOOGLE_CLIENT_ID&&l.GOOGLE_CLIENT_SECRET?[(0,a.Z)({clientId:l.GOOGLE_CLIENT_ID,clientSecret:l.GOOGLE_CLIENT_SECRET})]:[],...l.GITHUB_CLIENT_ID&&l.GITHUB_CLIENT_SECRET?[(0,i.Z)({clientId:l.GITHUB_CLIENT_ID,clientSecret:l.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:t,account:r})=>(t&&(e.role=t.role||u.i.CLIENT,e.userId=t.id),e),session:async({session:e,token:t})=>(t&&(e.user.id=t.userId,e.user.role=t.role),e),signIn:async({user:e,account:t,profile:r})=>!0,redirect:async({url:e,baseUrl:t})=>e.startsWith("/")?`${t}${e}`:new URL(e).origin===t?e:`${t}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:t,profile:r,isNewUser:a}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:t}){console.log("User signed out")}},debug:"development"===l.NODE_ENV};async function p(){let{getServerSession:e}=await r.e(4128).then(r.bind(r,4128));return e(d)}async function c(e){let t=await p();if(!t)throw Error("Authentication required");if(e&&!function(e,t){let r={[u.i.CLIENT]:0,[u.i.ARTIST]:1,[u.i.SHOP_ADMIN]:2,[u.i.SUPER_ADMIN]:3};return r[e]>=r[t]}(t.user.role,e))throw Error("Insufficient permissions");return t}function E(e){return e===u.i.SHOP_ADMIN||e===u.i.SUPER_ADMIN}async function _(){let e=await p();if(!e?.user)return null;let t=e.user.role;if(t!==u.i.ARTIST&&!E(t))return null;let{getArtistByUserId:a}=await r.e(1035).then(r.bind(r,1035)),i=await a(e.user.id);return i?{artist:i,user:e.user}:null}async function f(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,t,r)=>{function a(e){if(e?.DB)return e.DB;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.DB,a=globalThis.DB||globalThis.env?.DB,i=r||a;if(!i)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return i}async function i(e,t){let r=a(t),i=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,s=[];e?.specialty&&(i+=" AND a.specialties LIKE ?",s.push(`%${e.specialty}%`)),e?.search&&(i+=" AND (a.name LIKE ? OR a.bio LIKE ?)",s.push(`%${e.search}%`,`%${e.search}%`)),i+=" ORDER BY a.created_at DESC",e?.limit&&(i+=" LIMIT ?",s.push(e.limit)),e?.offset&&(i+=" OFFSET ?",s.push(e.offset));let n=await r.prepare(i).bind(...s).all();return await Promise.all(n.results.map(async e=>{let t=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:t.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function s(e,t){let r=a(t),i=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!i)return null;let s=await r.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:i.id,userId:i.user_id,slug:i.slug,name:i.name,bio:i.bio,specialties:i.specialties?JSON.parse(i.specialties):[],instagramHandle:i.instagram_handle,isActive:!!i.is_active,hourlyRate:i.hourly_rate,portfolioImages:s.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(i.created_at),updatedAt:new Date(i.updated_at),user:{name:i.user_name,email:i.user_email,avatar:i.user_avatar}}}async function n(e,t){let r=a(t),i=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return i?s(i.id,t):null}async function o(e,t){let r=a(t),i=await r.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return i?{id:i.id,userId:i.user_id,slug:i.slug,name:i.name,bio:i.bio,specialties:i.specialties?JSON.parse(i.specialties):[],instagramHandle:i.instagram_handle,isActive:!!i.is_active,hourlyRate:i.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(i.created_at),updatedAt:new Date(i.updated_at)}:null}async function l(e,t){let r=a(t),i=crypto.randomUUID(),s=e.userId;if(!s){let t=await r.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();s=t?.id}return await r.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(i,s,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function u(e,t,r){let i=a(r),s=[],n=[];return void 0!==t.name&&(s.push("name = ?"),n.push(t.name)),void 0!==t.bio&&(s.push("bio = ?"),n.push(t.bio)),void 0!==t.specialties&&(s.push("specialties = ?"),n.push(JSON.stringify(t.specialties))),void 0!==t.instagramHandle&&(s.push("instagram_handle = ?"),n.push(t.instagramHandle)),void 0!==t.hourlyRate&&(s.push("hourly_rate = ?"),n.push(t.hourlyRate)),void 0!==t.isActive&&(s.push("is_active = ?"),n.push(t.isActive)),s.push("updated_at = CURRENT_TIMESTAMP"),n.push(e),await i.prepare(`
UPDATE artists
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function d(e,t){let r=a(t);await r.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function p(e,t,r){let i=a(r),s=crypto.randomUUID();return await i.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(s,e,t.url,t.caption||null,t.tags?JSON.stringify(t.tags):null,t.orderIndex||0,!1!==t.isPublic).first()}async function c(e,t,r){let i=a(r),s=[],n=[];return void 0!==t.url&&(s.push("url = ?"),n.push(t.url)),void 0!==t.caption&&(s.push("caption = ?"),n.push(t.caption)),void 0!==t.tags&&(s.push("tags = ?"),n.push(t.tags?JSON.stringify(t.tags):null)),void 0!==t.orderIndex&&(s.push("order_index = ?"),n.push(t.orderIndex)),void 0!==t.isPublic&&(s.push("is_public = ?"),n.push(t.isPublic)),n.push(e),await i.prepare(`
UPDATE portfolio_images
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function E(e,t){let r=a(t);await r.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let t=globalThis[Symbol.for("__cloudflare-context__")],r=t?.env?.R2_BUCKET,a=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,i=r||a;if(!i)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return i}r.d(t,{Hf:()=>i,Ms:()=>_,Rw:()=>l,VK:()=>a,W0:()=>c,cP:()=>E,ce:()=>s,ep:()=>u,ex:()=>n,getArtistByUserId:()=>o,vB:()=>d,xd:()=>p})},32482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},18445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s.default}});var i=r(32482);Object.keys(i).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(a,e))&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))});var s=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(void 0);if(r&&r.has(e))return r.get(e);var a={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&({}).hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(a,s,o):a[s]=e[s]}return a.default=e,r&&r.set(e,a),a}(r(4128));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(a,e))&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))})},74725:(e,t,r)=>{var a,i;r.d(t,{Z:()=>i,i:()=>a}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(a||(a={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(i||(i={}))}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[9379,3670,4128,4833],()=>r(98896));module.exports=a})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,72 @@
"use strict";(()=>{var e={};e.id=5701,e.ids=[5701],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},56710:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>O,requestAsyncStorage:()=>j,routeModule:()=>y,serverHooks:()=>R,staticGenerationAsyncStorage:()=>E});var n={};t.r(n),t.d(n,{GET:()=>x,POST:()=>m,dynamic:()=>d});var s=t(73278),o=t(45002),a=t(54877),i=t(71309),u=t(18445),p=t(33897),l=t(1035),c=t(29628);let d="force-dynamic",f=c.z.object({name:c.z.string().min(1),email:c.z.string().email(),role:c.z.enum(["SUPER_ADMIN","SHOP_ADMIN","ARTIST","CLIENT"])});async function x(e,{params:r}={},t){try{let r=await (0,u.getServerSession)(p.Lz);if(!r?.user)return i.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:n}=new URL(e.url),s=n.get("email"),o=(0,l.VK)(t?.env);if(s){let e=o.prepare("SELECT * FROM users WHERE email = ?"),r=await e.bind(s).first();if(!r)return i.NextResponse.json({error:"User not found"},{status:404});return i.NextResponse.json({user:r})}{let e=o.prepare("SELECT * FROM users ORDER BY created_at DESC"),r=await e.all();return i.NextResponse.json({users:r.results})}}catch(e){return console.error("Error fetching users:",e),i.NextResponse.json({error:"Failed to fetch users"},{status:500})}}async function m(e,{params:r}={},t){try{let r=await (0,u.getServerSession)(p.Lz);if(!r?.user)return i.NextResponse.json({error:"Unauthorized"},{status:401});let n=await e.json(),s=f.parse(n),o=(0,l.VK)(t?.env),a=o.prepare("SELECT id FROM users WHERE email = ?"),c=await a.bind(s.email).first();if(c)return i.NextResponse.json({user:c});let d=crypto.randomUUID(),x=o.prepare(` "use strict";(()=>{var e={};e.id=5701,e.ids=[5701,1035],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},56710:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>I,patchFetch:()=>h,requestAsyncStorage:()=>g,routeModule:()=>f,serverHooks:()=>T,staticGenerationAsyncStorage:()=>R});var i={};t.r(i),t.d(i,{GET:()=>_,POST:()=>m,dynamic:()=>c});var a=t(73278),s=t(45002),n=t(54877),o=t(71309),u=t(18445),l=t(33897),d=t(1035),p=t(29628);let c="force-dynamic",E=p.z.object({name:p.z.string().min(1),email:p.z.string().email(),role:p.z.enum(["SUPER_ADMIN","SHOP_ADMIN","ARTIST","CLIENT"])});async function _(e,{params:r}={},t){try{let r=await (0,u.getServerSession)(l.Lz);if(!r?.user)return o.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:i}=new URL(e.url),a=i.get("email"),s=(0,d.VK)(t?.env);if(a){let e=s.prepare("SELECT * FROM users WHERE email = ?"),r=await e.bind(a).first();if(!r)return o.NextResponse.json({error:"User not found"},{status:404});return o.NextResponse.json({user:r})}{let e=s.prepare("SELECT * FROM users ORDER BY created_at DESC"),r=await e.all();return o.NextResponse.json({users:r.results})}}catch(e){return console.error("Error fetching users:",e),o.NextResponse.json({error:"Failed to fetch users"},{status:500})}}async function m(e,{params:r}={},t){try{let r=await (0,u.getServerSession)(l.Lz);if(!r?.user)return o.NextResponse.json({error:"Unauthorized"},{status:401});let i=await e.json(),a=E.parse(i),s=(0,d.VK)(t?.env),n=s.prepare("SELECT id FROM users WHERE email = ?"),p=await n.bind(a.email).first();if(p)return o.NextResponse.json({user:p});let c=crypto.randomUUID(),_=s.prepare(`
INSERT INTO users (id, email, name, role, created_at, updated_at) INSERT INTO users (id, email, name, role, created_at, updated_at)
VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
`);await x.bind(d,s.email,s.name,s.role).run();let m=o.prepare("SELECT * FROM users WHERE id = ?"),y=await m.bind(d).first();return i.NextResponse.json({user:y},{status:201})}catch(e){if(console.error("Error creating user:",e),e instanceof c.z.ZodError)return i.NextResponse.json({error:"Invalid user data",details:e.errors},{status:400});return i.NextResponse.json({error:"Failed to create user"},{status:500})}}let y=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/users/route",pathname:"/api/users",filename:"route",bundlePath:"app/api/users/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/users/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:j,staticGenerationAsyncStorage:E,serverHooks:R}=y,v="/api/users/route";function O(){return(0,a.patchFetch)({serverHooks:R,staticGenerationAsyncStorage:E})}},32482:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},18445:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={};Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o.default}});var s=t(32482);Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in r&&r[e]===s[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return s[e]}}))});var o=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&({}).hasOwnProperty.call(e,o)){var i=s?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}(t(4128));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}Object.keys(o).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))})}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[9379,8213,4128,4833,1253],()=>t(56710));module.exports=n})(); `);await _.bind(c,a.email,a.name,a.role).run();let m=s.prepare("SELECT * FROM users WHERE id = ?"),f=await m.bind(c).first();return o.NextResponse.json({user:f},{status:201})}catch(e){if(console.error("Error creating user:",e),e instanceof p.z.ZodError)return o.NextResponse.json({error:"Invalid user data",details:e.errors},{status:400});return o.NextResponse.json({error:"Failed to create user"},{status:500})}}let f=new a.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/users/route",pathname:"/api/users",filename:"route",bundlePath:"app/api/users/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/users/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:g,staticGenerationAsyncStorage:R,serverHooks:T}=f,I="/api/users/route";function h(){return(0,n.patchFetch)({serverHooks:T,staticGenerationAsyncStorage:R})}},33897:(e,r,t)=>{t.d(r,{Lz:()=>d,KR:()=>_,Z1:()=>p,GJ:()=>E,KN:()=>m,mk:()=>c});var i=t(22571),a=t(43016),s=t(76214),n=t(29628);let o=n.z.object({DATABASE_URL:n.z.string().url(),DIRECT_URL:n.z.string().url().optional(),NEXTAUTH_URL:n.z.string().url(),NEXTAUTH_SECRET:n.z.string().min(1),GOOGLE_CLIENT_ID:n.z.string().optional(),GOOGLE_CLIENT_SECRET:n.z.string().optional(),GITHUB_CLIENT_ID:n.z.string().optional(),GITHUB_CLIENT_SECRET:n.z.string().optional(),AWS_ACCESS_KEY_ID:n.z.string().min(1),AWS_SECRET_ACCESS_KEY:n.z.string().min(1),AWS_REGION:n.z.string().min(1),AWS_BUCKET_NAME:n.z.string().min(1),AWS_ENDPOINT_URL:n.z.string().url().optional(),NODE_ENV:n.z.enum(["development","production","test"]).default("development"),SMTP_HOST:n.z.string().optional(),SMTP_PORT:n.z.string().optional(),SMTP_USER:n.z.string().optional(),SMTP_PASSWORD:n.z.string().optional(),VERCEL_ANALYTICS_ID:n.z.string().optional()}),u=function(){try{return o.parse(process.env)}catch(e){if(e instanceof n.z.ZodError){let r=e.errors.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${r}`)}throw e}}();var l=t(74725);let d={providers:[(0,s.Z)({name:"credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(console.log("Authorize called with:",e),!e?.email||!e?.password)return console.log("Missing email or password"),null;if(console.log("Email received:",e.email),console.log("Password received:",e.password?"***":"empty"),"nicholai@biohazardvfx.com"===e.email)return console.log("Admin user recognized!"),{id:"admin-nicholai",email:"nicholai@biohazardvfx.com",name:"Nicholai",role:l.i.SUPER_ADMIN};console.log("Using fallback user creation");let r={id:"dev-user-"+Date.now(),email:e.email,name:e.email.split("@")[0],role:l.i.SUPER_ADMIN};return console.log("Created user:",r),r}}),...u.GOOGLE_CLIENT_ID&&u.GOOGLE_CLIENT_SECRET?[(0,i.Z)({clientId:u.GOOGLE_CLIENT_ID,clientSecret:u.GOOGLE_CLIENT_SECRET})]:[],...u.GITHUB_CLIENT_ID&&u.GITHUB_CLIENT_SECRET?[(0,a.Z)({clientId:u.GITHUB_CLIENT_ID,clientSecret:u.GITHUB_CLIENT_SECRET})]:[]],session:{strategy:"jwt",maxAge:2592e3},callbacks:{jwt:async({token:e,user:r,account:t})=>(r&&(e.role=r.role||l.i.CLIENT,e.userId=r.id),e),session:async({session:e,token:r})=>(r&&(e.user.id=r.userId,e.user.role=r.role),e),signIn:async({user:e,account:r,profile:t})=>!0,redirect:async({url:e,baseUrl:r})=>e.startsWith("/")?`${r}${e}`:new URL(e).origin===r?e:`${r}/admin`},pages:{signIn:"/auth/signin",error:"/auth/error"},events:{async signIn({user:e,account:r,profile:t,isNewUser:i}){console.log(`User ${e.email} signed in`)},async signOut({session:e,token:r}){console.log("User signed out")}},debug:"development"===u.NODE_ENV};async function p(){let{getServerSession:e}=await t.e(4128).then(t.bind(t,4128));return e(d)}async function c(e){let r=await p();if(!r)throw Error("Authentication required");if(e&&!function(e,r){let t={[l.i.CLIENT]:0,[l.i.ARTIST]:1,[l.i.SHOP_ADMIN]:2,[l.i.SUPER_ADMIN]:3};return t[e]>=t[r]}(r.user.role,e))throw Error("Insufficient permissions");return r}function E(e){return e===l.i.SHOP_ADMIN||e===l.i.SUPER_ADMIN}async function _(){let e=await p();if(!e?.user)return null;let r=e.user.role;if(r!==l.i.ARTIST&&!E(r))return null;let{getArtistByUserId:i}=await t.e(1035).then(t.bind(t,1035)),a=await i(e.user.id);return a?{artist:a,user:e.user}:null}async function m(){let e=await _();if(!e)throw Error("Artist authentication required");return e}},1035:(e,r,t)=>{function i(e){if(e?.DB)return e.DB;let r=globalThis[Symbol.for("__cloudflare-context__")],t=r?.env?.DB,i=globalThis.DB||globalThis.env?.DB,a=t||i;if(!a)throw Error("Cloudflare D1 binding (env.DB) is unavailable");return a}async function a(e,r){let t=i(r),a=`
SELECT
a.id,
a.slug,
a.name,
a.bio,
a.specialties,
a.instagram_handle,
a.is_active,
a.hourly_rate
FROM artists a
WHERE a.is_active = 1
`,s=[];e?.specialty&&(a+=" AND a.specialties LIKE ?",s.push(`%${e.specialty}%`)),e?.search&&(a+=" AND (a.name LIKE ? OR a.bio LIKE ?)",s.push(`%${e.search}%`,`%${e.search}%`)),a+=" ORDER BY a.created_at DESC",e?.limit&&(a+=" LIMIT ?",s.push(e.limit)),e?.offset&&(a+=" OFFSET ?",s.push(e.offset));let n=await t.prepare(a).bind(...s).all();return await Promise.all(n.results.map(async e=>{let r=await t.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ? AND is_public = 1
ORDER BY order_index ASC, created_at DESC
`).bind(e.id).all();return{id:e.id,slug:e.slug,name:e.name,bio:e.bio,specialties:e.specialties?JSON.parse(e.specialties):[],instagramHandle:e.instagram_handle,isActive:!!e.is_active,hourlyRate:e.hourly_rate,portfolioImages:r.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)}))}}))}async function s(e,r){let t=i(r),a=await t.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.id = ?
`).bind(e).first();if(!a)return null;let s=await t.prepare(`
SELECT * FROM portfolio_images
WHERE artist_id = ?
ORDER BY order_index ASC, created_at DESC
`).bind(e).all();return{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:s.results.map(e=>({id:e.id,artistId:e.artist_id,url:e.url,caption:e.caption,tags:e.tags?JSON.parse(e.tags):[],orderIndex:e.order_index,isPublic:!!e.is_public,createdAt:new Date(e.created_at)})),availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),user:{name:a.user_name,email:a.user_email,avatar:a.user_avatar}}}async function n(e,r){let t=i(r),a=await t.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email,
u.avatar as user_avatar
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.slug = ?
`).bind(e).first();return a?s(a.id,r):null}async function o(e,r){let t=i(r),a=await t.prepare(`
SELECT
a.*,
u.name as user_name,
u.email as user_email
FROM artists a
LEFT JOIN users u ON a.user_id = u.id
WHERE a.user_id = ?
`).bind(e).first();return a?{id:a.id,userId:a.user_id,slug:a.slug,name:a.name,bio:a.bio,specialties:a.specialties?JSON.parse(a.specialties):[],instagramHandle:a.instagram_handle,isActive:!!a.is_active,hourlyRate:a.hourly_rate,portfolioImages:[],availability:[],createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}:null}async function u(e,r){let t=i(r),a=crypto.randomUUID(),s=e.userId;if(!s){let r=await t.prepare(`
INSERT INTO users (id, email, name, role)
VALUES (?, ?, ?, 'ARTIST')
RETURNING id
`).bind(crypto.randomUUID(),e.email||`${e.name.toLowerCase().replace(/\s+/g,".")}@unitedtattoo.com`,e.name).first();s=r?.id}return await t.prepare(`
INSERT INTO artists (id, user_id, name, bio, specialties, instagram_handle, hourly_rate, is_active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(a,s,e.name,e.bio,JSON.stringify(e.specialties),e.instagramHandle||null,e.hourlyRate||null,!1!==e.isActive).first()}async function l(e,r,t){let a=i(t),s=[],n=[];return void 0!==r.name&&(s.push("name = ?"),n.push(r.name)),void 0!==r.bio&&(s.push("bio = ?"),n.push(r.bio)),void 0!==r.specialties&&(s.push("specialties = ?"),n.push(JSON.stringify(r.specialties))),void 0!==r.instagramHandle&&(s.push("instagram_handle = ?"),n.push(r.instagramHandle)),void 0!==r.hourlyRate&&(s.push("hourly_rate = ?"),n.push(r.hourlyRate)),void 0!==r.isActive&&(s.push("is_active = ?"),n.push(r.isActive)),s.push("updated_at = CURRENT_TIMESTAMP"),n.push(e),await a.prepare(`
UPDATE artists
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function d(e,r){let t=i(r);await t.prepare("UPDATE artists SET is_active = 0 WHERE id = ?").bind(e).run()}async function p(e,r,t){let a=i(t),s=crypto.randomUUID();return await a.prepare(`
INSERT INTO portfolio_images (id, artist_id, url, caption, tags, order_index, is_public)
VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING *
`).bind(s,e,r.url,r.caption||null,r.tags?JSON.stringify(r.tags):null,r.orderIndex||0,!1!==r.isPublic).first()}async function c(e,r,t){let a=i(t),s=[],n=[];return void 0!==r.url&&(s.push("url = ?"),n.push(r.url)),void 0!==r.caption&&(s.push("caption = ?"),n.push(r.caption)),void 0!==r.tags&&(s.push("tags = ?"),n.push(r.tags?JSON.stringify(r.tags):null)),void 0!==r.orderIndex&&(s.push("order_index = ?"),n.push(r.orderIndex)),void 0!==r.isPublic&&(s.push("is_public = ?"),n.push(r.isPublic)),n.push(e),await a.prepare(`
UPDATE portfolio_images
SET ${s.join(", ")}
WHERE id = ?
RETURNING *
`).bind(...n).first()}async function E(e,r){let t=i(r);await t.prepare("DELETE FROM portfolio_images WHERE id = ?").bind(e).run()}function _(e){if(e?.R2_BUCKET)return e.R2_BUCKET;let r=globalThis[Symbol.for("__cloudflare-context__")],t=r?.env?.R2_BUCKET,i=globalThis.R2_BUCKET||globalThis.env?.R2_BUCKET,a=t||i;if(!a)throw Error("Cloudflare R2 binding (env.R2_BUCKET) is unavailable");return a}t.d(r,{Hf:()=>a,Ms:()=>_,Rw:()=>u,VK:()=>i,W0:()=>c,cP:()=>E,ce:()=>s,ep:()=>l,ex:()=>n,getArtistByUserId:()=>o,vB:()=>d,xd:()=>p})},32482:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},18445:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var i={};Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s.default}});var a=t(32482);Object.keys(a).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in r&&r[e]===a[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return a[e]}}))});var s=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=n(void 0);if(t&&t.has(e))return t.get(e);var i={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&({}).hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s]}return i.default=e,t&&t.set(e,i),i}(t(4128));function n(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(n=function(e){return e?t:r})(e)}Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(i,e))&&(e in r&&r[e]===s[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return s[e]}}))})},74725:(e,r,t)=>{var i,a;t.d(r,{Z:()=>a,i:()=>i}),function(e){e.SUPER_ADMIN="SUPER_ADMIN",e.SHOP_ADMIN="SHOP_ADMIN",e.ARTIST="ARTIST",e.CLIENT="CLIENT"}(i||(i={})),function(e){e.PENDING="PENDING",e.CONFIRMED="CONFIRMED",e.IN_PROGRESS="IN_PROGRESS",e.COMPLETED="COMPLETED",e.CANCELLED="CANCELLED"}(a||(a={}))}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),i=r.X(0,[9379,3670,4128,4833],()=>t(56710));module.exports=i})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{var e={};e.id=3886,e.ids=[3886],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},16543:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>r.a,__next_app__:()=>m,originalPathname:()=>u,pages:()=>d,routeModule:()=>p,tree:()=>c}),s(8696),s(84172),s(96141),s(40656),s(40509),s(70546);var a=s(30170),o=s(45002),i=s(83876),r=s.n(i),n=s(66299),l={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>n[e]);s.d(t,l);let c=["",{children:["book",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,8696)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/page.tsx"]}]},{error:[()=>Promise.resolve().then(s.bind(s,84172)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/error.tsx"],loading:[()=>Promise.resolve().then(s.bind(s,96141)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/loading.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(s.bind(s,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(s.bind(s,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/page.tsx"],u="/book/page",m={require:s,loadChunk:()=>Promise.resolve()},p=new a.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/book/page",pathname:"/book",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},99633:(e,t,s)=>{Promise.resolve().then(s.bind(s,95808))},95808:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(97247),o=s(2502),i=s(58053),r=s(35921);function n({reset:e}){return a.jsx("div",{className:"container mx-auto px-4 py-8",children:(0,a.jsxs)(o.bZ,{variant:"destructive",className:"max-w-2xl mx-auto",children:[a.jsx(r.Z,{className:"h-4 w-4"}),a.jsx(o.Cd,{children:"Something went wrong!"}),(0,a.jsxs)(o.X,{className:"space-y-4",children:[a.jsx("p",{children:"We encountered an error while loading the booking form. Please try again or contact support if the problem persists."}),a.jsx(i.z,{onClick:e,variant:"outline",size:"sm",children:"Try again"})]})]})})}},84172:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>a});let a=(0,s(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/error.tsx#default`)},96141:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>i});var a=s(72051),o=s(58030);function i(){return(0,a.jsxs)("div",{className:"container mx-auto px-4 py-8 space-y-8",children:[(0,a.jsxs)("div",{className:"text-center space-y-4",children:[a.jsx(o.O,{className:"h-12 w-72 mx-auto"}),a.jsx(o.O,{className:"h-6 w-96 mx-auto"})]}),(0,a.jsxs)("div",{className:"max-w-2xl mx-auto space-y-6",children:[(0,a.jsxs)("div",{className:"grid gap-6 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-20"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-24"}),a.jsx(o.O,{className:"h-10 w-full"})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-16"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-20"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-28"}),a.jsx(o.O,{className:"h-24 w-full"})]}),a.jsx(o.O,{className:"h-12 w-32"})]})]})}},8696:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(72051),o=s(94604),i=s(38252),r=s(86006);function n(){return(0,a.jsxs)("main",{className:"min-h-screen",children:[a.jsx(o.W,{}),a.jsx("div",{className:"pt-16",children:a.jsx(i.F,{})}),a.jsx(r.$,{})]})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),a=t.X(0,[9379,1488,7598,9906,1181,8472,3630,8328,9366,4106,5896,4012],()=>s(16543));module.exports=a})(); (()=>{var e={};e.id=3886,e.ids=[3886],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},16543:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>r.a,__next_app__:()=>m,originalPathname:()=>u,pages:()=>d,routeModule:()=>p,tree:()=>c}),s(8696),s(84172),s(96141),s(40656),s(40509),s(70546);var a=s(30170),o=s(45002),i=s(83876),r=s.n(i),n=s(66299),l={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>n[e]);s.d(t,l);let c=["",{children:["book",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,8696)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/page.tsx"]}]},{error:[()=>Promise.resolve().then(s.bind(s,84172)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/error.tsx"],loading:[()=>Promise.resolve().then(s.bind(s,96141)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/loading.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(s.bind(s,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(s.bind(s,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/page.tsx"],u="/book/page",m={require:s,loadChunk:()=>Promise.resolve()},p=new a.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/book/page",pathname:"/book",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},99633:(e,t,s)=>{Promise.resolve().then(s.bind(s,95808))},95808:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(97247),o=s(2502),i=s(58053),r=s(35921);function n({reset:e}){return a.jsx("div",{className:"container mx-auto px-4 py-8",children:(0,a.jsxs)(o.bZ,{variant:"destructive",className:"max-w-2xl mx-auto",children:[a.jsx(r.Z,{className:"h-4 w-4"}),a.jsx(o.Cd,{children:"Something went wrong!"}),(0,a.jsxs)(o.X,{className:"space-y-4",children:[a.jsx("p",{children:"We encountered an error while loading the booking form. Please try again or contact support if the problem persists."}),a.jsx(i.z,{onClick:e,variant:"outline",size:"sm",children:"Try again"})]})]})})}},84172:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>a});let a=(0,s(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/book/error.tsx#default`)},96141:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>i});var a=s(72051),o=s(58030);function i(){return(0,a.jsxs)("div",{className:"container mx-auto px-4 py-8 space-y-8",children:[(0,a.jsxs)("div",{className:"text-center space-y-4",children:[a.jsx(o.O,{className:"h-12 w-72 mx-auto"}),a.jsx(o.O,{className:"h-6 w-96 mx-auto"})]}),(0,a.jsxs)("div",{className:"max-w-2xl mx-auto space-y-6",children:[(0,a.jsxs)("div",{className:"grid gap-6 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-20"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-24"}),a.jsx(o.O,{className:"h-10 w-full"})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-16"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-20"}),a.jsx(o.O,{className:"h-10 w-full"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[a.jsx(o.O,{className:"h-4 w-28"}),a.jsx(o.O,{className:"h-24 w-full"})]}),a.jsx(o.O,{className:"h-12 w-32"})]})]})}},8696:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(72051),o=s(94604),i=s(38252),r=s(86006);function n(){return(0,a.jsxs)("main",{className:"min-h-screen",children:[a.jsx(o.W,{}),a.jsx("div",{className:"pt-16",children:a.jsx(i.F,{})}),a.jsx(r.$,{})]})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),a=t.X(0,[9379,1488,1511,4080,6082,6758,1181,6626,6967,2133,817,490,3744,4106,4298,4012],()=>s(16543));module.exports=a})();

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More