{ "name": "model-share", "version": "5.0.1827", "private": true, "packageManager": "pnpm@10.28.1", "scripts": { "preinstall": "npx only-allow pnpm", "start": "next start", "start-debug": "NODE_OPTIONS='--inspect' next start", "build:workers": "node scripts/build-workers.mjs", "predev": "pnpm build:workers", "dev": "next dev", "dev-debug": "pnpm build:workers && cross-env NODE_OPTIONS=\"--max_old_space_size=8192 --inspect\" next dev", "dev-snap": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192 --heapsnapshot-near-heap-limit=3\" next dev", "dev:daemon": "node .claude/skills/dev-server/console.mjs", "dev:rgb": "node .claude/skills/dev-server/cli.mjs rgb start", "dev:rgb:stop": "node .claude/skills/dev-server/cli.mjs rgb stop", "dev:rgb:status": "node .claude/skills/dev-server/cli.mjs rgb status", "prod": "cross-env NODE_ENV=production next dev", "boost": "next-boost", "release:base": "git checkout release && git pull --rebase && git rebase main && git push --force-with-lease && git checkout main", "release:major": "git pull && npm version major && git push --follow-tags && pnpm run release:base", "release:minor": "git pull && npm version minor && git push --follow-tags && pnpm run release:base", "release:patch": "git pull && npm version patch && git push --follow-tags && pnpm run release:base", "release": "pnpm run release:patch", "yolo": "pnpm run release", "seed:scanner-policies": "tsx --env-file=.env scripts/seed-scanner-policies.ts", "prebuild": "pnpm build:workers", "build": "next build", "build:dev": "pnpm build:workers && cross-env NODE_OPTIONS=\"--max_old_space_size=16384\" next build", "build:analyze": "cross-env NODE_OPTIONS=\"--max_old_space_size=16384\" ANALYZE=true next build", "size": "node scripts/bundle-budget.mjs", "deploy": "pnpm run build && pnpm run db:deploy", "postinstall": "pnpm run db:generate", "typecheck": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192\" tsc --noEmit", "lint": "eslint src/ --cache --cache-strategy metadata", "eslint": "cross-env TIMING=1 eslint src/ --quiet --cache --cache-strategy metadata", "prettier:check": "prettier --check \"**/*.{ts,tsx}\"", "prettier:write": "prettier --write \"**/*.{ts,tsx}\"", "db:ui": "prisma studio", "db:pull": "prisma db pull", "db:push": "prisma db push", "db:migrate": "node scripts/prisma-migrate-with-views-workaround.mjs", "db:migrate:empty": "node scripts/create-empty-migration.mjs", "db:applied": "node scripts/prisma-mark-migration-applied.mjs", "db:deploy": "node scripts/prisma-migrate-with-views-workaround.mjs -p && npm run db:program", "db:program": "node scripts/prisma-prepare-programmability.mjs", "db:generate": "node scripts/generate-slim-schema.js && prisma generate --no-hints", "db:seed": "prisma db seed", "share": "ngrok http 3000", "prepare": "husky", "analyze": "cross-env ANALYZE=true next build", "analyze:server": "cross-env BUNDLE_ANALYZE=server next build", "analyze:browser": "cross-env BUNDLE_ANALYZE=browser next build", "tsc:trace": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192\" tsc --generateTrace ./trace --incremental false", "tsc:analyze": "npx analyze-trace trace", "test": "cross-env NODE_ENV=development npx playwright test", "test:ui": "cross-env NODE_ENV=development npx playwright test --ui", "test:gen": "cross-env NODE_ENV=development npx playwright codegen", "test:reset": "make bootstrap-db", "test:unit": "vitest", "test:unit:run": "vitest run", "test:unit:coverage": "vitest run --coverage", "test:lint-rules": "vitest run src/server/services/__tests__/no-io-in-transaction.test.ts", "meilisearch:migrate": "NODE_ENV=development tsx scripts/oneoffs/meilisearch-migration.ts", "tsscript": "NODE_ENV=development tsx", "madge:orphans": "madge --orphans --image ./public/orphans-graph.svg --ts-config ./tsconfig.json --extensions ts,tsx src/", "depcheck": "depcheck", "generate-types": "typed-scss-modules src", "ts-script": "NODE_ENV=development tsx" }, "prisma": { "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts" }, "lint-staged": { "**/*.{ts,tsx}": "tsc-files --noEmit" }, "dependencies": { "@aws-sdk/client-s3": "^3.490.0", "@aws-sdk/lib-storage": "^3.490.0", "@aws-sdk/s3-request-presigner": "^3.490.0", "@axiomhq/axiom-node": "^0.12.0", "@civitai/app-sdk": "^0.6.0", "@civitai/blocks-react": "^0.4.0", "@civitai/client": "0.2.0-beta.71", "@civitai/cybertipline-tools": "^0.1.0", "@civitai/next-axiom": "^0.17.0", "@clavata/sdk": "^0.2.3", "@clickhouse/client": "^0.2.2", "@coinbase/cdp-sdk": "^1.13.0", "@discordjs/rest": "^2.6.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "@emotion/react": "^11.10.4", "@essentials/one-key-map": "^1.2.0", "@flipt-io/flipt-client-js": "^0.2.0", "@floating-ui/dom": "^1.6.0", "@google-cloud/recaptcha-enterprise": "^5.1.1", "@headlessui/react": "2.2", "@hookform/resolvers": "^5.1.1", "@mantine/core": "^7.17.7", "@mantine/dates": "^7.17.7", "@mantine/dropzone": "^7.17.7", "@mantine/hooks": "^7.17.7", "@mantine/modals": "^7.17.7", "@mantine/notifications": "^7.17.7", "@mantine/nprogress": "^7.17.7", "@mantine/tiptap": "^7.17.7", "@marsidev/react-turnstile": "^1.0.1", "@meilisearch/instant-meilisearch": "0.13.5", "@microsoft/signalr": "^7.0.10", "@next-auth/prisma-adapter": "^1.0.7", "@next/bundle-analyzer": "^16.2.7", "@next/third-parties": "^15.0.3", "@node-oauth/oauth2-server": "^5.3.0", "@number-flow/react": "^0.5.7", "@okikio/sharedworker": "^1.1.0", "@openrouter/sdk": "^0.5.1", "@opentelemetry/api": "^1.9.0", "@opentelemetry/api-logs": "^0.211.0", "@opentelemetry/exporter-logs-otlp-proto": "^0.211.0", "@opentelemetry/exporter-trace-otlp-proto": "^0.211.0", "@opentelemetry/instrumentation-http": "^0.213.0", "@opentelemetry/instrumentation-redis": "^0.61.0", "@opentelemetry/resources": "^2.5.0", "@opentelemetry/sdk-logs": "^0.211.0", "@opentelemetry/sdk-node": "^0.211.0", "@opentelemetry/sdk-trace-node": "^2.5.0", "@opentelemetry/semantic-conventions": "^1.39.0", "@paddle/paddle-js": "^1.2.1", "@paddle/paddle-node-sdk": "^1.4.1", "@paypal/react-paypal-js": "^8.1.3", "@prisma/client": "^6.3.0", "@prisma/instrumentation": "^7.4.2", "@react-hook/window-size": "^3.1.1", "@react-pdf/renderer": "^3.3.8", "@stripe/react-stripe-js": "^2.4.0", "@stripe/stripe-js": "^2.2.0", "@tabler/icons-react": "^3.7.0", "@tanstack/react-query": "^5.101.0", "@tanstack/react-query-devtools": "^5.101.0", "@tanstack/react-virtual": "^3.13.12", "@tiptap/core": "3.16.0", "@tiptap/extension-color": "3.16.0", "@tiptap/extension-heading": "3.16.0", "@tiptap/extension-image": "3.16.0", "@tiptap/extension-link": "3.16.0", "@tiptap/extension-mention": "3.16.0", "@tiptap/extension-placeholder": "3.16.0", "@tiptap/extension-text": "3.16.0", "@tiptap/extension-text-style": "3.16.0", "@tiptap/extension-underline": "3.16.0", "@tiptap/extension-youtube": "3.16.0", "@tiptap/extensions": "3.16.0", "@tiptap/html": "3.16.0", "@tiptap/pm": "3.16.0", "@tiptap/react": "3.16.0", "@tiptap/starter-kit": "3.16.0", "@tiptap/static-renderer": "3.16.0", "@tiptap/suggestion": "3.16.0", "@trpc/client": "^11.17.0", "@trpc/next": "^11.17.0", "@trpc/react-query": "^11.17.0", "@trpc/server": "^11.17.0", "@types/stream-to-blob": "^2.0.0", "@typescript/analyze-trace": "^0.10.1", "algoliasearch": "^4.23.3", "archiver": "^6.0.1", "blurhash": "^2.0.4", "chalk": "^5.2.0", "chart.js": "^4.4.0", "chartjs-adapter-dayjs-4": "^1.0.4", "circular-dependency-plugin": "^5.2.2", "cloudflare": "^2.9.1", "clsx": "^2.1.1", "compromise": "^14.14.4", "cookies-next": "^2.1.1", "dayjs": "^1.11.12", "decimal.js": "^10.5.0", "discord-api-types": "^0.38.37", "discord.js": "^14.7.1", "dotenv": "^16.4.5", "draft-js": "^0.11.7", "embla-carousel": "^8.6.0", "embla-carousel-autoplay": "^8.5.2", "embla-carousel-react": "^8.5.2", "exceljs": "^4.4.0", "exifreader": "^4.13.0", "fastest-levenshtein": "^1.0.16", "file-saver": "^2.0.5", "google-auth-library": "^9.15.0", "googleapis": "^144.0.0", "gray-matter": "^4.0.3", "happy-dom": "^20.0.2", "he": "^1.2.0", "html-to-text": "^9.0.5", "idb-keyval": "^6.2.0", "immer": "^9.0.15", "instantsearch.js": "4.64.1", "jose": "^6.0.11", "js-yaml": "^4.1.1", "jsonwebtoken": "^9.0.1", "jssha": "^3.3.1", "jszip": "^3.10.1", "konva": "^10.0.12", "linkify-react": "^4.1.3", "linkifyjs": "^4.1.3", "lodash-es": "^4.17.21", "lottie-react": "^2.4.1", "lru-cache": "^11.2.2", "mantine-react-table": "^2.0.0-beta.9", "masonic": "^3.7.0", "meilisearch": "0.33.0", "motion": "^11.11.17", "msgpackr": "^1.10.2", "next": "^16.2.7", "next-auth": "^4.24.5", "nodemailer": "^6.8.0", "obscenity": "^0.4.5", "openai": "^4.73.0", "p-limit": "^6.2.0", "path-to-regexp": "^6.2.1", "pg": "^8.11.3", "prom-client": "^14.2.0", "qrcode.react": "^4.2.0", "query-string": "^7.1.1", "rand-seed": "^1.0.2", "randomstring": "^1.3.0", "react": "^18.3.1", "react-blurhash": "^0.2.0", "react-chartjs-2": "^5.2.0", "react-dom": "^18.3.1", "react-easy-crop": "^5.4.1", "react-highlight-within-textarea": "^3.2.1", "react-hook-form": "^7.71.1", "react-instantsearch": "7.12.0", "react-instantsearch-router-nextjs": "7.12.0", "react-intersection-observer": "^9.4.0", "react-joyride": "^2.9.3", "react-konva": "^18.2.14", "react-markdown": "^9.0.1", "react-social-media-embed": "^2.5.9", "redis": "^5.8.3", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "request-ip": "^3.3.0", "sanitize-html": "2.12.1", "sass": "^1.82.0", "semver": "^7.6.0", "sharp": "^0.32.6", "slate": "^0.94.1", "slate-history": "^0.93.0", "slate-react": "^0.95.0", "slugify": "^1.6.5", "socket.io-client": "^4.5.4", "source-map": "^0.7.4", "stacktrace-parser": "^0.1.10", "stream-to-blob": "^2.0.1", "stripe": "^11.6.0", "superjson": "^2.2.6", "trie-memoize": "^1.2.0", "unfurl.js": "^6.4.0", "unified": "^11.0.5", "use-sound": "^5.0.0", "uuid": "^9.0.0", "viem": "^2.30.6", "xml2js": "^0.6.2", "yaml": "^2.8.1", "zod": "^4.0.17", "zustand": "^4.3.7" }, "devDependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.6", "@electric-sql/pglite": "^0.4.6", "@faker-js/faker": "^9.0.3", "@ladle/react": "^5.1.1", "@next/eslint-plugin-next": "^15.5.19", "@playwright/test": "^1.57.0", "@prisma/generator-helper": "^5.22.0", "@types/archiver": "^6.0.2", "@types/cloudflare": "^2.7.9", "@types/file-saver": "^2.0.7", "@types/he": "^1.2.3", "@types/html-to-text": "^9.0.4", "@types/js-yaml": "^4.0.9", "@types/jsonwebtoken": "^9.0.2", "@types/lodash-es": "^4.17.7", "@types/mailchimp__mailchimp_marketing": "^3.0.12", "@types/marked": "^4.0.7", "@types/node": "20.19.9", "@types/node-os-utils": "^1.3.1", "@types/nodemailer": "^6.4.7", "@types/offscreencanvas": "^2019.7.3", "@types/pg": "^8.11.0", "@types/pg-format": "^1.0.5", "@types/randomstring": "^1.1.8", "@types/react": "18.0.14", "@types/react-dom": "18.0.5", "@types/request-ip": "^0.0.37", "@types/sanitize-html": "^2.6.2", "@types/semver": "^7.7.1", "@types/sharp": "^0.31.0", "@types/uuid": "^9.0.0", "@types/vimeo__player": "^2.18.3", "@types/xml2js": "^0.4.14", "@typescript-eslint/eslint-plugin": "^5.33.0", "@typescript-eslint/parser": "^5.33.0", "@vitest/coverage-v8": "^4.0.18", "autoprefixer": "^10.4.19", "cross-env": "^7.0.3", "cssnano": "^7.0.1", "esbuild": "^0.25.5", "eslint": "8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-mantine": "2.0.0", "eslint-config-next": "^16.2.7", "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-typescript": "^3.5.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-local-rules": "^3.0.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-tailwindcss": "^3.15.1", "husky": "^9.1.1", "lint-staged": "^15.2.7", "pg-format": "^1.0.4", "playwright": "^1.57.0", "postcss": "^8.5.3", "postcss-assign-layer": "^0.4.0", "postcss-preset-mantine": "^1.17.0", "postcss-simple-vars": "^7.0.1", "prettier": "^2.8.8", "prisma": "^6.3.0", "prisma-generator-typescript-interfaces": "^1.6.1", "tailwindcss": "^3.4.3", "ts-node": "^10.9.1", "tsx": "^4.19.2", "typed-scss-modules": "^8.1.1", "typescript": "^5.9.2", "vitest": "^4.0.18", "ws": "^8.19.0" }, "ct3aMetadata": { "initVersion": "6.2.1" }, "overrides": { "openai": { "zod": "$zod" } }, "pnpm": { "onlyBuiltDependencies": [ "@parcel/watcher", "@prisma/client", "@prisma/engines", "bigint-buffer", "bufferutil", "core-js", "esbuild", "exifreader", "msgpackr-extract", "prisma", "protobufjs", "sharp", "unrs-resolver", "utf-8-validate" ], "patchedDependencies": { "@mantine/hooks": "patches/@mantine__hooks.patch" } } }