From 89ca5abe7ded94d62ff6aff1a74d21523f6cc2ef Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Tue, 9 Sep 2025 09:56:18 +0530 Subject: [PATCH] fix: resolve SQLite field mismatch for large starred repo imports (#90) - Add missing database fields (language, description, mirroredLocation, destinationOrg) to repository operations - Add missing organization fields (publicRepositoryCount, privateRepositoryCount, forkRepositoryCount) to schema - Update GitRepo interface to include all required database fields - Fix GitHub data fetching functions to map all fields correctly - Update all sync endpoints (main, repository, organization, scheduler) to handle new fields This fixes the "SQLite query expected X values, received Y" error when importing large numbers (4.6k+) of starred repositories by ensuring all database fields are properly mapped from GitHub API responses through to database insertion. --- .github/assets/logo-new.png | Bin 0 -> 44606 bytes bun.lock | 180 +-- drizzle/0003_open_spacker_dave.sql | 3 + drizzle/meta/0003_snapshot.json | 1805 ++++++++++++++++++++++++++++ drizzle/meta/_journal.json | 7 + package.json | 18 +- src/lib/db/schema.ts | 3 + src/lib/github.ts | 12 + src/lib/scheduler-service.ts | 8 + src/pages/api/sync/index.ts | 4 + src/pages/api/sync/organization.ts | 4 + src/pages/api/sync/repository.ts | 3 + src/types/Repository.ts | 4 + 13 files changed, 1968 insertions(+), 83 deletions(-) create mode 100644 .github/assets/logo-new.png create mode 100644 drizzle/0003_open_spacker_dave.sql create mode 100644 drizzle/meta/0003_snapshot.json diff --git a/.github/assets/logo-new.png b/.github/assets/logo-new.png new file mode 100644 index 0000000000000000000000000000000000000000..465b48ab15717a5d3bcafa9e0af64c1f9ea35277 GIT binary patch literal 44606 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 z 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 E1ArLD)&Kwi literal 0 HcmV?d00001 diff --git a/bun.lock b/bun.lock index c82e551..8c22ba0 100644 --- a/bun.lock +++ b/bun.lock @@ -5,9 +5,9 @@ "name": "gitea-mirror", "dependencies": { "@astrojs/check": "^0.9.4", - "@astrojs/mdx": "4.3.4", + "@astrojs/mdx": "4.3.5", "@astrojs/node": "9.4.3", - "@astrojs/react": "^4.3.0", + "@astrojs/react": "^4.3.1", "@better-auth/sso": "^1.3.8", "@octokit/rest": "^22.0.0", "@radix-ui/react-accordion": "^1.2.12", @@ -27,19 +27,19 @@ "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", - "@tailwindcss/vite": "^4.1.12", + "@tailwindcss/vite": "^4.1.13", "@tanstack/react-virtual": "^3.13.12", "@types/canvas-confetti": "^1.9.0", "@types/react": "^19.1.12", "@types/react-dom": "^19.1.9", - "astro": "^5.13.4", + "astro": "^5.13.6", "bcryptjs": "^3.0.2", - "better-auth": "^1.3.8", + "better-auth": "^1.3.9", "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "dotenv": "^17.2.1", + "dotenv": "^17.2.2", "drizzle-orm": "^0.44.5", "fuse.js": "^7.1.0", "jsonwebtoken": "^9.0.2", @@ -50,10 +50,10 @@ "react-icons": "^5.5.0", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "tailwindcss": "^4.1.12", - "tw-animate-css": "^1.3.7", + "tailwindcss": "^4.1.13", + "tw-animate-css": "^1.3.8", "typescript": "^5.9.2", - "uuid": "^11.1.0", + "uuid": "^13.0.0", "vaul": "^1.1.2", "zod": "^4.1.5", }, @@ -93,13 +93,13 @@ "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.6", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.2", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.2.1", "smol-toml": "^1.3.4", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug=="], - "@astrojs/mdx": ["@astrojs/mdx@4.3.4", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.6", "@mdx-js/mdx": "^3.1.0", "acorn": "^8.14.1", "es-module-lexer": "^1.6.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-Ew3iP+6zuzzJWNEH5Qr1iknrue1heEfgmfuMpuwLaSwqlUiJQ0NDb2oxKosgWU1ROYmVf1H4KCmS6QdMWKyFjw=="], + "@astrojs/mdx": ["@astrojs/mdx@4.3.5", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.6", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.15.0", "es-module-lexer": "^1.7.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-YB3Hhsvl1BxyY0ARe1OrnVzLNKDPXAz9epYvmL+MQ8A85duSsSLQaO3GHB6/qZJKNoLmP6PptOtCONCKkbhPeQ=="], "@astrojs/node": ["@astrojs/node@9.4.3", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.2", "send": "^1.2.0", "server-destroy": "^1.0.1" }, "peerDependencies": { "astro": "^5.7.0" } }, "sha512-P9BQHY8wQU1y9obknXzxV5SS3EpdaRnuDuHKr3RFC7t+2AzcMXeVmMJprQGijnQ8VdijJ8aS7+12tx325TURMQ=="], "@astrojs/prism": ["@astrojs/prism@3.3.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="], - "@astrojs/react": ["@astrojs/react@4.3.0", "", { "dependencies": { "@vitejs/plugin-react": "^4.4.1", "ultrahtml": "^1.6.0", "vite": "^6.3.5" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", "react": "^17.0.2 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" } }, "sha512-N02aj52Iezn69qHyx5+XvPqgsPMEnel9mI5JMbGiRMTzzLMuNaxRVoQTaq2024Dpr7BLsxCjqMkNvelqMDhaHA=="], + "@astrojs/react": ["@astrojs/react@4.3.1", "", { "dependencies": { "@vitejs/plugin-react": "^4.7.0", "ultrahtml": "^1.6.0", "vite": "^6.3.6" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", "react": "^17.0.2 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" } }, "sha512-Jhv35TsDHuQLvwof2z10P3g1s9wIR4UN9jE7O4NZBJNXOt/+qk+L0rY9th4SX7VzccKmRltUGxAhI1cXH52gXw=="], "@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="], @@ -301,11 +301,11 @@ "@levischuck/tiny-cbor": ["@levischuck/tiny-cbor@0.2.11", "", {}, "sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow=="], - "@mdx-js/mdx": ["@mdx-js/mdx@3.1.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw=="], + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], - "@noble/ciphers": ["@noble/ciphers@0.6.0", "", {}, "sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ=="], + "@noble/ciphers": ["@noble/ciphers@2.0.0", "", {}, "sha512-j/l6jpnpaIBM87cAYPJzi/6TgqmBv9spkqPyCXvRYsu5uxqh6tPJZDnD85yo8VWqzTuTQPgfv7NgT63u7kbwAQ=="], - "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + "@noble/hashes": ["@noble/hashes@2.0.0", "", {}, "sha512-h8VUBlE8R42+XIDO229cgisD287im3kdY6nbNZJFjc6ZvKIXPYXe6Vc/t+kyjFdMFyt5JpapzTsEg8n63w5/lw=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -441,7 +441,7 @@ "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.34", "", {}, "sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA=="], - "@rollup/pluginutils": ["@rollup/pluginutils@5.1.4", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.41.1", "", { "os": "android", "cpu": "arm" }, "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw=="], @@ -483,17 +483,17 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.41.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw=="], - "@shikijs/core": ["@shikijs/core@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ=="], + "@shikijs/core": ["@shikijs/core@3.12.2", "", { "dependencies": { "@shikijs/types": "3.12.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-L1Safnhra3tX/oJK5kYHaWmLEBJi1irASwewzY3taX5ibyXyMkkSDZlq01qigjryOBwrXSdFgTiZ3ryzSNeu7Q=="], - "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ=="], + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.12.2", "", { "dependencies": { "@shikijs/types": "3.12.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-Nm3/azSsaVS7hk6EwtHEnTythjQfwvrO5tKqMlaH9TwG1P+PNaR8M0EAKZ+GaH2DFwvcr4iSfTveyxMIvXEHMw=="], - "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-zcZKMnNndgRa3ORja6Iemsr3DrLtkX3cAF7lTJkdMB6v9alhlBsX9uNiCpqofNrXOvpA3h6lHcLJxgCIhVOU5Q=="], + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.12.2", "", { "dependencies": { "@shikijs/types": "3.12.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w=="], - "@shikijs/langs": ["@shikijs/langs@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2" } }, "sha512-H6azIAM+OXD98yztIfs/KH5H4PU39t+SREhmM8LaNXyUrqj2mx+zVkr8MWYqjceSjDw9I1jawm1WdFqU806rMA=="], + "@shikijs/langs": ["@shikijs/langs@3.12.2", "", { "dependencies": { "@shikijs/types": "3.12.2" } }, "sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww=="], - "@shikijs/themes": ["@shikijs/themes@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2" } }, "sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg=="], + "@shikijs/themes": ["@shikijs/themes@3.12.2", "", { "dependencies": { "@shikijs/types": "3.12.2" } }, "sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A=="], - "@shikijs/types": ["@shikijs/types@3.4.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg=="], + "@shikijs/types": ["@shikijs/types@3.12.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q=="], "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], @@ -503,35 +503,35 @@ "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], - "@tailwindcss/node": ["@tailwindcss/node@4.1.12", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.5.1", "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", "tailwindcss": "4.1.12" } }, "sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ=="], + "@tailwindcss/node": ["@tailwindcss/node@4.1.13", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.5.1", "lightningcss": "1.30.1", "magic-string": "^0.30.18", "source-map-js": "^1.2.1", "tailwindcss": "4.1.13" } }, "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.12", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.4.3" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.12", "@tailwindcss/oxide-darwin-arm64": "4.1.12", "@tailwindcss/oxide-darwin-x64": "4.1.12", "@tailwindcss/oxide-freebsd-x64": "4.1.12", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.12", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.12", "@tailwindcss/oxide-linux-arm64-musl": "4.1.12", "@tailwindcss/oxide-linux-x64-gnu": "4.1.12", "@tailwindcss/oxide-linux-x64-musl": "4.1.12", "@tailwindcss/oxide-wasm32-wasi": "4.1.12", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.12", "@tailwindcss/oxide-win32-x64-msvc": "4.1.12" } }, "sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.13", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.4.3" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.13", "@tailwindcss/oxide-darwin-arm64": "4.1.13", "@tailwindcss/oxide-darwin-x64": "4.1.13", "@tailwindcss/oxide-freebsd-x64": "4.1.13", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", "@tailwindcss/oxide-linux-x64-musl": "4.1.13", "@tailwindcss/oxide-wasm32-wasi": "4.1.13", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" } }, "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.12", "", { "os": "android", "cpu": "arm64" }, "sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.13", "", { "os": "android", "cpu": "arm64" }, "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.13", "", { "os": "darwin", "cpu": "arm64" }, "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.13", "", { "os": "darwin", "cpu": "x64" }, "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.13", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12", "", { "os": "linux", "cpu": "arm" }, "sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13", "", { "os": "linux", "cpu": "arm" }, "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.12", "", { "os": "linux", "cpu": "x64" }, "sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.13", "", { "os": "linux", "cpu": "x64" }, "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.12", "", { "os": "linux", "cpu": "x64" }, "sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.13", "", { "os": "linux", "cpu": "x64" }, "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.12", "", { "dependencies": { "@emnapi/core": "^1.4.5", "@emnapi/runtime": "^1.4.5", "@emnapi/wasi-threads": "^1.0.4", "@napi-rs/wasm-runtime": "^0.2.12", "@tybys/wasm-util": "^0.10.0", "tslib": "^2.8.0" }, "cpu": "none" }, "sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.13", "", { "dependencies": { "@emnapi/core": "^1.4.5", "@emnapi/runtime": "^1.4.5", "@emnapi/wasi-threads": "^1.0.4", "@napi-rs/wasm-runtime": "^0.2.12", "@tybys/wasm-util": "^0.10.0", "tslib": "^2.8.0" }, "cpu": "none" }, "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.13", "", { "os": "win32", "cpu": "arm64" }, "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.12", "", { "os": "win32", "cpu": "x64" }, "sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.13", "", { "os": "win32", "cpu": "x64" }, "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw=="], - "@tailwindcss/vite": ["@tailwindcss/vite@4.1.12", "", { "dependencies": { "@tailwindcss/node": "4.1.12", "@tailwindcss/oxide": "4.1.12", "tailwindcss": "4.1.12" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-4pt0AMFDx7gzIrAOIYgYP0KCBuKWqyW8ayrdiLEjoJTT4pKTjrzG/e4uzWtTLDziC+66R9wbUqZBccJalSE5vQ=="], + "@tailwindcss/vite": ["@tailwindcss/vite@4.1.13", "", { "dependencies": { "@tailwindcss/node": "4.1.13", "@tailwindcss/oxide": "4.1.13", "tailwindcss": "4.1.13" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ=="], "@tanstack/react-virtual": ["@tanstack/react-virtual@3.13.12", "", { "dependencies": { "@tanstack/virtual-core": "3.13.12" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA=="], @@ -633,7 +633,7 @@ "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], - "acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], @@ -667,7 +667,7 @@ "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], - "astro": ["astro@5.13.4", "", { "dependencies": { "@astrojs/compiler": "^2.12.2", "@astrojs/internal-helpers": "0.7.2", "@astrojs/markdown-remark": "6.3.6", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", "acorn": "^8.14.1", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.2.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.0", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.6.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.3.0", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.1", "shiki": "^3.2.1", "smol-toml": "^1.3.4", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.12", "tsconfck": "^3.1.5", "ultrahtml": "^1.6.0", "unifont": "~0.5.0", "unist-util-visit": "^5.0.0", "unstorage": "^1.15.0", "vfile": "^6.0.3", "vite": "^6.3.4", "vitefu": "^1.0.6", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.1", "zod": "^3.24.4", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-Mgq5GYy3EHtastGXqdnh1UPuN++8NmJSluAspA5hu33O7YRs/em/L03cUfRXtc60l5yx5BfYJsjF2MFMlcWlzw=="], + "astro": ["astro@5.13.6", "", { "dependencies": { "@astrojs/compiler": "^2.12.2", "@astrojs/internal-helpers": "0.7.2", "@astrojs/markdown-remark": "6.3.6", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.2.0", "acorn": "^8.15.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.3.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.1", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.7.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.3.0", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.18", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.3.0", "picomatch": "^4.0.3", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.2", "shiki": "^3.12.0", "simple-swizzle": "0.2.2", "smol-toml": "^1.4.2", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.5.2", "unist-util-visit": "^5.0.0", "unstorage": "^1.17.0", "vfile": "^6.0.3", "vite": "^6.3.6", "vitefu": "^1.1.1", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.3", "zod": "^3.25.76", "zod-to-json-schema": "^3.24.6", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-chy1J+AO3d4lui4MjUyqusiW1jilfkviCBDz+c2MoXxhIImF96GqoliX+79fGy6KMsnMh5lUn+qwy3yUBJqZqg=="], "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], @@ -683,9 +683,9 @@ "before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="], - "better-auth": ["better-auth@1.3.8", "", { "dependencies": { "@better-auth/utils": "0.2.6", "@better-fetch/fetch": "^1.1.18", "@noble/ciphers": "^0.6.0", "@noble/hashes": "^1.8.0", "@simplewebauthn/browser": "^13.1.2", "@simplewebauthn/server": "^13.1.2", "better-call": "1.0.16", "defu": "^6.1.4", "jose": "^5.10.0", "kysely": "^0.28.5", "nanostores": "^0.11.4", "zod": "^4.1.5" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["react", "react-dom"] }, "sha512-uRFzHbWkhr8eWNy+BJwyMnrZPOvQjwrcLND3nc6jusRteYA9cjeRGElgCPTWTIyWUfzaQ708Lb5Mdq9Gv41Qpw=="], + "better-auth": ["better-auth@1.3.9", "", { "dependencies": { "@better-auth/utils": "0.2.6", "@better-fetch/fetch": "^1.1.18", "@noble/ciphers": "^2.0.0", "@noble/hashes": "^2.0.0", "@simplewebauthn/browser": "^13.1.2", "@simplewebauthn/server": "^13.1.2", "better-call": "1.0.18", "defu": "^6.1.4", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^0.11.4", "zod": "^4.1.5" }, "peerDependencies": { "@lynx-js/react": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@lynx-js/react", "react", "react-dom"] }, "sha512-Ty6BHzuShlqSs7I4RMlBRQ3duOWNB7WWriIu2FJVGjQAOtTVvamzFCR4/j5ROFLoNkpvNTRF7BJozsrMICL1gw=="], - "better-call": ["better-call@1.0.16", "", { "dependencies": { "@better-fetch/fetch": "^1.1.4", "rou3": "^0.5.1", "set-cookie-parser": "^2.7.1", "uncrypto": "^0.1.3" } }, "sha512-42dgJ1rOtc0anOoxjXPOWuel/Z/4aeO7EJ2SiXNwvlkySSgjXhNjAjTMWa8DL1nt6EXS3jl3VKC3mPsU/lUgVA=="], + "better-call": ["better-call@1.0.18", "", { "dependencies": { "@better-fetch/fetch": "^1.1.4", "rou3": "^0.5.1", "set-cookie-parser": "^2.7.1", "uncrypto": "^0.1.3" } }, "sha512-Ojyck3P3fs/egBmCW50tvfbCJorNV5KphfPOKrkCxPfOr8Brth1ruDtAJuhHVHEUiWrXv+vpEgWQk7m7FzhbbQ=="], "blob-to-buffer": ["blob-to-buffer@1.2.9", "", {}, "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA=="], @@ -737,7 +737,7 @@ "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], - "ci-info": ["ci-info@4.2.0", "", {}, "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg=="], + "ci-info": ["ci-info@4.3.0", "", {}, "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ=="], "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], @@ -831,7 +831,7 @@ "dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], - "dotenv": ["dotenv@17.2.1", "", {}, "sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ=="], + "dotenv": ["dotenv@17.2.2", "", {}, "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q=="], "drizzle-kit": ["drizzle-kit@0.31.4", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA=="], @@ -961,7 +961,7 @@ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "h3": ["h3@1.15.3", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.4", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.0", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ=="], + "h3": ["h3@1.15.4", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -1009,7 +1009,7 @@ "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - "import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], @@ -1287,11 +1287,11 @@ "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], - "node-fetch-native": ["node-fetch-native@1.6.6", "", {}, "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ=="], + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], "node-forge": ["node-forge@1.3.1", "", {}, "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="], - "node-mock-http": ["node-mock-http@1.0.0", "", {}, "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ=="], + "node-mock-http": ["node-mock-http@1.0.3", "", {}, "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog=="], "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], @@ -1485,7 +1485,7 @@ "sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="], - "shiki": ["shiki@3.4.2", "", { "dependencies": { "@shikijs/core": "3.4.2", "@shikijs/engine-javascript": "3.4.2", "@shikijs/engine-oniguruma": "3.4.2", "@shikijs/langs": "3.4.2", "@shikijs/themes": "3.4.2", "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ=="], + "shiki": ["shiki@3.12.2", "", { "dependencies": { "@shikijs/core": "3.12.2", "@shikijs/engine-javascript": "3.12.2", "@shikijs/engine-oniguruma": "3.12.2", "@shikijs/langs": "3.12.2", "@shikijs/themes": "3.12.2", "@shikijs/types": "3.12.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-uIrKI+f9IPz1zDT+GMz+0RjzKJiijVr6WDWm9Pe3NNY6QigKCfifCEv9v9R2mDASKKjzjQ2QpFLcxaR3iHSnMA=="], "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], @@ -1501,11 +1501,11 @@ "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], - "smol-toml": ["smol-toml@1.3.4", "", {}, "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA=="], + "smol-toml": ["smol-toml@1.4.2", "", {}, "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g=="], "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], - "source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="], + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], @@ -1539,7 +1539,7 @@ "tailwind-merge": ["tailwind-merge@3.3.1", "", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="], - "tailwindcss": ["tailwindcss@4.1.12", "", {}, "sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA=="], + "tailwindcss": ["tailwindcss@4.1.13", "", {}, "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w=="], "tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="], @@ -1581,7 +1581,7 @@ "tsx": ["tsx@4.20.5", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw=="], - "tw-animate-css": ["tw-animate-css@1.3.7", "", {}, "sha512-lvLb3hTIpB5oGsk8JmLoAjeCHV58nKa2zHYn8yWOoG5JJusH3bhJlF2DLAZ/5NmJ+jyH3ssiAx/2KmbhavJy/A=="], + "tw-animate-css": ["tw-animate-css@1.3.8", "", {}, "sha512-Qrk3PZ7l7wUcGYhwZloqfkWCmaXZAoqjkdbIDvzfGshwGtexa/DAs9koXxIkrpEasyevandomzCBAV1Yyop5rw=="], "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], @@ -1607,7 +1607,7 @@ "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], - "unifont": ["unifont@0.5.0", "", { "dependencies": { "css-tree": "^3.0.0", "ohash": "^2.0.0" } }, "sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA=="], + "unifont": ["unifont@0.5.2", "", { "dependencies": { "css-tree": "^3.0.0", "ofetch": "^1.4.1", "ohash": "^2.0.0" } }, "sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg=="], "unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="], @@ -1633,7 +1633,7 @@ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "unstorage": ["unstorage@1.16.0", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.2", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.6", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA=="], + "unstorage": ["unstorage@1.17.1", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.4", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ=="], "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], @@ -1645,7 +1645,7 @@ "utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], - "uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="], + "uuid": ["uuid@13.0.0", "", { "bin": { "uuid": "dist-node/bin/uuid" } }, "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w=="], "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], @@ -1661,7 +1661,7 @@ "vite-node": ["vite-node@3.2.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="], - "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], + "vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], "vitest": ["vitest@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="], @@ -1755,13 +1755,23 @@ "zod": ["zod@4.1.5", "", {}, "sha512-rcUUZqlLJgBC33IT3PNMgsCq6TzLQEG/Ei/KTCU0PedSWRMAXoOUN+4t/0H+Q8bdnLPdqUYnvboJT0bn/229qg=="], - "zod-to-json-schema": ["zod-to-json-schema@3.24.5", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="], + "zod-to-json-schema": ["zod-to-json-schema@3.24.6", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg=="], "zod-to-ts": ["zod-to-ts@1.2.0", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], - "@astrojs/react/@vitejs/plugin-react": ["@vitejs/plugin-react@4.5.0", "", { "dependencies": { "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@rolldown/pluginutils": "1.0.0-beta.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg=="], + "@astrojs/markdown-remark/import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], + + "@astrojs/markdown-remark/shiki": ["shiki@3.4.2", "", { "dependencies": { "@shikijs/core": "3.4.2", "@shikijs/engine-javascript": "3.4.2", "@shikijs/engine-oniguruma": "3.4.2", "@shikijs/langs": "3.4.2", "@shikijs/themes": "3.4.2", "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ=="], + + "@astrojs/markdown-remark/smol-toml": ["smol-toml@1.3.4", "", {}, "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA=="], + + "@astrojs/react/@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + + "@astrojs/react/vite": ["vite@6.3.6", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA=="], + + "@astrojs/telemetry/ci-info": ["ci-info@4.2.0", "", {}, "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg=="], "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], @@ -1787,8 +1797,12 @@ "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "@rollup/pluginutils/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "@tailwindcss/node/jiti": ["jiti@2.5.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w=="], + "@tailwindcss/node/magic-string": ["magic-string@0.30.19", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.4.5", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.4", "tslib": "^2.4.0" }, "bundled": true }, "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.4.5", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg=="], @@ -1821,10 +1835,18 @@ "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "astro/zod": ["zod@3.25.75", "", {}, "sha512-OhpzAmVzabPOL6C3A3gpAifqr9MqihV/Msx3gor2b2kviCgcb+HM9SEOpMWwwNp9MRunWnhtAKUoo0AHhjyPPg=="], + "astro/magic-string": ["magic-string@0.30.19", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw=="], + + "astro/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "astro/vite": ["vite@6.3.6", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA=="], + + "astro/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "basic-auth/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "better-auth/jose": ["jose@6.1.0", "", {}, "sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA=="], + "body-parser/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], "body-parser/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], @@ -1841,6 +1863,10 @@ "cmdk/@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw=="], + "esast-util-from-js/acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], + + "estree-util-to-js/source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="], + "express/cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], "express/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -1857,10 +1883,14 @@ "magicast/@babel/types": ["@babel/types@7.27.3", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw=="], + "micromark-extension-mdxjs/acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "ofetch/node-fetch-native": ["node-fetch-native@1.6.6", "", {}, "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ=="], + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], @@ -1899,9 +1929,21 @@ "yaml-language-server/yaml": ["yaml@2.2.2", "", {}, "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA=="], - "@astrojs/react/@vitejs/plugin-react/@babel/core": ["@babel/core@7.27.3", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", "@babel/helpers": "^7.27.3", "@babel/parser": "^7.27.3", "@babel/template": "^7.27.2", "@babel/traverse": "^7.27.3", "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA=="], + "@astrojs/markdown-remark/shiki/@shikijs/core": ["@shikijs/core@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ=="], - "@astrojs/react/@vitejs/plugin-react/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.9", "", {}, "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w=="], + "@astrojs/markdown-remark/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ=="], + + "@astrojs/markdown-remark/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-zcZKMnNndgRa3ORja6Iemsr3DrLtkX3cAF7lTJkdMB6v9alhlBsX9uNiCpqofNrXOvpA3h6lHcLJxgCIhVOU5Q=="], + + "@astrojs/markdown-remark/shiki/@shikijs/langs": ["@shikijs/langs@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2" } }, "sha512-H6azIAM+OXD98yztIfs/KH5H4PU39t+SREhmM8LaNXyUrqj2mx+zVkr8MWYqjceSjDw9I1jawm1WdFqU806rMA=="], + + "@astrojs/markdown-remark/shiki/@shikijs/themes": ["@shikijs/themes@3.4.2", "", { "dependencies": { "@shikijs/types": "3.4.2" } }, "sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg=="], + + "@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.4.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg=="], + + "@astrojs/react/@vitejs/plugin-react/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], + + "@astrojs/react/vite/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], @@ -1909,8 +1951,12 @@ "@babel/helper-module-imports/@babel/traverse/@babel/parser": ["@babel/parser@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" }, "bin": "./bin/babel-parser.js" }, "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw=="], + "@tailwindcss/node/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "astro/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + "body-parser/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], "boxen/string-width/emoji-regex": ["emoji-regex@10.4.0", "", {}, "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw=="], @@ -1961,20 +2007,6 @@ "yaml-language-server/vscode-languageserver/vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.16.0", "", { "dependencies": { "vscode-jsonrpc": "6.0.0", "vscode-languageserver-types": "3.16.0" } }, "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A=="], - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/generator": ["@babel/generator@7.27.3", "", { "dependencies": { "@babel/parser": "^7.27.3", "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.27.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.27.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/helpers": ["@babel/helpers@7.27.3", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.3" } }, "sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/parser": ["@babel/parser@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" }, "bin": "./bin/babel-parser.js" }, "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/traverse": ["@babel/traverse@7.27.3", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.27.3", "@babel/parser": "^7.27.3", "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/@babel/types": ["@babel/types@7.27.3", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw=="], - - "@astrojs/react/@vitejs/plugin-react/@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "boxen/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], "serve-static/send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], diff --git a/drizzle/0003_open_spacker_dave.sql b/drizzle/0003_open_spacker_dave.sql new file mode 100644 index 0000000..1665007 --- /dev/null +++ b/drizzle/0003_open_spacker_dave.sql @@ -0,0 +1,3 @@ +ALTER TABLE `organizations` ADD `public_repository_count` integer;--> statement-breakpoint +ALTER TABLE `organizations` ADD `private_repository_count` integer;--> statement-breakpoint +ALTER TABLE `organizations` ADD `fork_repository_count` integer; \ No newline at end of file diff --git a/drizzle/meta/0003_snapshot.json b/drizzle/meta/0003_snapshot.json new file mode 100644 index 0000000..b6497cf --- /dev/null +++ b/drizzle/meta/0003_snapshot.json @@ -0,0 +1,1805 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "376b0dbc-5fd4-4251-979f-f5cc2d1455b3", + "prevId": "dd92f0d1-fba9-4237-874a-b19a465b9dff", + "tables": { + "accounts": { + "name": "accounts", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_user_id": { + "name": "provider_user_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_accounts_account_id": { + "name": "idx_accounts_account_id", + "columns": [ + "account_id" + ], + "isUnique": false + }, + "idx_accounts_user_id": { + "name": "idx_accounts_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_accounts_provider": { + "name": "idx_accounts_provider", + "columns": [ + "provider_id", + "provider_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "accounts_user_id_users_id_fk": { + "name": "accounts_user_id_users_id_fk", + "tableFrom": "accounts", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "configs": { + "name": "configs", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_active": { + "name": "is_active", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "github_config": { + "name": "github_config", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "gitea_config": { + "name": "gitea_config", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "include": { + "name": "include", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'[\"*\"]'" + }, + "exclude": { + "name": "exclude", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'[]'" + }, + "schedule_config": { + "name": "schedule_config", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "cleanup_config": { + "name": "cleanup_config", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": {}, + "foreignKeys": { + "configs_user_id_users_id_fk": { + "name": "configs_user_id_users_id_fk", + "tableFrom": "configs", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "events": { + "name": "events", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "channel": { + "name": "channel", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "read": { + "name": "read", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_events_user_channel": { + "name": "idx_events_user_channel", + "columns": [ + "user_id", + "channel" + ], + "isUnique": false + }, + "idx_events_created_at": { + "name": "idx_events_created_at", + "columns": [ + "created_at" + ], + "isUnique": false + }, + "idx_events_read": { + "name": "idx_events_read", + "columns": [ + "read" + ], + "isUnique": false + } + }, + "foreignKeys": { + "events_user_id_users_id_fk": { + "name": "events_user_id_users_id_fk", + "tableFrom": "events", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "mirror_jobs": { + "name": "mirror_jobs", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "repository_id": { + "name": "repository_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "repository_name": { + "name": "repository_name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "organization_name": { + "name": "organization_name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "details": { + "name": "details", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'imported'" + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "job_type": { + "name": "job_type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'mirror'" + }, + "batch_id": { + "name": "batch_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "total_items": { + "name": "total_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "completed_items": { + "name": "completed_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "item_ids": { + "name": "item_ids", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "completed_item_ids": { + "name": "completed_item_ids", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'[]'" + }, + "in_progress": { + "name": "in_progress", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "started_at": { + "name": "started_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "completed_at": { + "name": "completed_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_checkpoint": { + "name": "last_checkpoint", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "idx_mirror_jobs_user_id": { + "name": "idx_mirror_jobs_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_mirror_jobs_batch_id": { + "name": "idx_mirror_jobs_batch_id", + "columns": [ + "batch_id" + ], + "isUnique": false + }, + "idx_mirror_jobs_in_progress": { + "name": "idx_mirror_jobs_in_progress", + "columns": [ + "in_progress" + ], + "isUnique": false + }, + "idx_mirror_jobs_job_type": { + "name": "idx_mirror_jobs_job_type", + "columns": [ + "job_type" + ], + "isUnique": false + }, + "idx_mirror_jobs_timestamp": { + "name": "idx_mirror_jobs_timestamp", + "columns": [ + "timestamp" + ], + "isUnique": false + } + }, + "foreignKeys": { + "mirror_jobs_user_id_users_id_fk": { + "name": "mirror_jobs_user_id_users_id_fk", + "tableFrom": "mirror_jobs", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "oauth_access_tokens": { + "name": "oauth_access_tokens", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_oauth_access_tokens_access_token": { + "name": "idx_oauth_access_tokens_access_token", + "columns": [ + "access_token" + ], + "isUnique": false + }, + "idx_oauth_access_tokens_user_id": { + "name": "idx_oauth_access_tokens_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_oauth_access_tokens_client_id": { + "name": "idx_oauth_access_tokens_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "oauth_access_tokens_user_id_users_id_fk": { + "name": "oauth_access_tokens_user_id_users_id_fk", + "tableFrom": "oauth_access_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "oauth_applications": { + "name": "oauth_applications", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_secret": { + "name": "client_secret", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "redirect_urls": { + "name": "redirect_urls", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "disabled": { + "name": "disabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "oauth_applications_client_id_unique": { + "name": "oauth_applications_client_id_unique", + "columns": [ + "client_id" + ], + "isUnique": true + }, + "idx_oauth_applications_client_id": { + "name": "idx_oauth_applications_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "idx_oauth_applications_user_id": { + "name": "idx_oauth_applications_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "oauth_consent": { + "name": "oauth_consent", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consent_given": { + "name": "consent_given", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_oauth_consent_user_id": { + "name": "idx_oauth_consent_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_oauth_consent_client_id": { + "name": "idx_oauth_consent_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "idx_oauth_consent_user_client": { + "name": "idx_oauth_consent_user_client", + "columns": [ + "user_id", + "client_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "oauth_consent_user_id_users_id_fk": { + "name": "oauth_consent_user_id_users_id_fk", + "tableFrom": "oauth_consent", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "organizations": { + "name": "organizations", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "avatar_url": { + "name": "avatar_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_role": { + "name": "membership_role", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "is_included": { + "name": "is_included", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "destination_org": { + "name": "destination_org", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'imported'" + }, + "last_mirrored": { + "name": "last_mirrored", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "error_message": { + "name": "error_message", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "repository_count": { + "name": "repository_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "public_repository_count": { + "name": "public_repository_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "private_repository_count": { + "name": "private_repository_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "fork_repository_count": { + "name": "fork_repository_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_organizations_user_id": { + "name": "idx_organizations_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_organizations_config_id": { + "name": "idx_organizations_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "idx_organizations_status": { + "name": "idx_organizations_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "idx_organizations_is_included": { + "name": "idx_organizations_is_included", + "columns": [ + "is_included" + ], + "isUnique": false + } + }, + "foreignKeys": { + "organizations_user_id_users_id_fk": { + "name": "organizations_user_id_users_id_fk", + "tableFrom": "organizations", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "organizations_config_id_configs_id_fk": { + "name": "organizations_config_id_configs_id_fk", + "tableFrom": "organizations", + "tableTo": "configs", + "columnsFrom": [ + "config_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "repositories": { + "name": "repositories", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "full_name": { + "name": "full_name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "clone_url": { + "name": "clone_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization": { + "name": "organization", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mirrored_location": { + "name": "mirrored_location", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "''" + }, + "is_private": { + "name": "is_private", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_fork": { + "name": "is_fork", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "forked_from": { + "name": "forked_from", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "has_issues": { + "name": "has_issues", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_starred": { + "name": "is_starred", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_archived": { + "name": "is_archived", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "size": { + "name": "size", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "has_lfs": { + "name": "has_lfs", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "has_submodules": { + "name": "has_submodules", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "language": { + "name": "language", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_branch": { + "name": "default_branch", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "visibility": { + "name": "visibility", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'public'" + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'imported'" + }, + "last_mirrored": { + "name": "last_mirrored", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "error_message": { + "name": "error_message", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination_org": { + "name": "destination_org", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_repositories_user_id": { + "name": "idx_repositories_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_repositories_config_id": { + "name": "idx_repositories_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "idx_repositories_status": { + "name": "idx_repositories_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "idx_repositories_owner": { + "name": "idx_repositories_owner", + "columns": [ + "owner" + ], + "isUnique": false + }, + "idx_repositories_organization": { + "name": "idx_repositories_organization", + "columns": [ + "organization" + ], + "isUnique": false + }, + "idx_repositories_is_fork": { + "name": "idx_repositories_is_fork", + "columns": [ + "is_fork" + ], + "isUnique": false + }, + "idx_repositories_is_starred": { + "name": "idx_repositories_is_starred", + "columns": [ + "is_starred" + ], + "isUnique": false + } + }, + "foreignKeys": { + "repositories_user_id_users_id_fk": { + "name": "repositories_user_id_users_id_fk", + "tableFrom": "repositories", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "repositories_config_id_configs_id_fk": { + "name": "repositories_config_id_configs_id_fk", + "tableFrom": "repositories", + "tableTo": "configs", + "columnsFrom": [ + "config_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "sessions": { + "name": "sessions", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "sessions_token_unique": { + "name": "sessions_token_unique", + "columns": [ + "token" + ], + "isUnique": true + }, + "idx_sessions_user_id": { + "name": "idx_sessions_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "idx_sessions_token": { + "name": "idx_sessions_token", + "columns": [ + "token" + ], + "isUnique": false + }, + "idx_sessions_expires_at": { + "name": "idx_sessions_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": { + "sessions_user_id_users_id_fk": { + "name": "sessions_user_id_users_id_fk", + "tableFrom": "sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "sso_providers": { + "name": "sso_providers", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "issuer": { + "name": "issuer", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "domain": { + "name": "domain", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "oidc_config": { + "name": "oidc_config", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "sso_providers_provider_id_unique": { + "name": "sso_providers_provider_id_unique", + "columns": [ + "provider_id" + ], + "isUnique": true + }, + "idx_sso_providers_provider_id": { + "name": "idx_sso_providers_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + }, + "idx_sso_providers_domain": { + "name": "idx_sso_providers_domain", + "columns": [ + "domain" + ], + "isUnique": false + }, + "idx_sso_providers_issuer": { + "name": "idx_sso_providers_issuer", + "columns": [ + "issuer" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "users_email_unique": { + "name": "users_email_unique", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "verification_tokens": { + "name": "verification_tokens", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "verification_tokens_token_unique": { + "name": "verification_tokens_token_unique", + "columns": [ + "token" + ], + "isUnique": true + }, + "idx_verification_tokens_token": { + "name": "idx_verification_tokens_token", + "columns": [ + "token" + ], + "isUnique": false + }, + "idx_verification_tokens_identifier": { + "name": "idx_verification_tokens_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "verifications": { + "name": "verifications", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + } + }, + "indexes": { + "idx_verifications_identifier": { + "name": "idx_verifications_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 69148ee..ddc0a39 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -22,6 +22,13 @@ "when": 1753539600567, "tag": "0002_bored_captain_cross", "breakpoints": true + }, + { + "idx": 3, + "version": "6", + "when": 1757390828679, + "tag": "0003_open_spacker_dave", + "breakpoints": true } ] } \ No newline at end of file diff --git a/package.json b/package.json index 622754a..c29c6fb 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,9 @@ }, "dependencies": { "@astrojs/check": "^0.9.4", - "@astrojs/mdx": "4.3.4", + "@astrojs/mdx": "4.3.5", "@astrojs/node": "9.4.3", - "@astrojs/react": "^4.3.0", + "@astrojs/react": "^4.3.1", "@better-auth/sso": "^1.3.8", "@octokit/rest": "^22.0.0", "@radix-ui/react-accordion": "^1.2.12", @@ -65,19 +65,19 @@ "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", - "@tailwindcss/vite": "^4.1.12", + "@tailwindcss/vite": "^4.1.13", "@tanstack/react-virtual": "^3.13.12", "@types/canvas-confetti": "^1.9.0", "@types/react": "^19.1.12", "@types/react-dom": "^19.1.9", - "astro": "^5.13.4", + "astro": "^5.13.6", "bcryptjs": "^3.0.2", - "better-auth": "^1.3.8", + "better-auth": "^1.3.9", "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "dotenv": "^17.2.1", + "dotenv": "^17.2.2", "drizzle-orm": "^0.44.5", "fuse.js": "^7.1.0", "jsonwebtoken": "^9.0.2", @@ -88,10 +88,10 @@ "react-icons": "^5.5.0", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "tailwindcss": "^4.1.12", - "tw-animate-css": "^1.3.7", + "tailwindcss": "^4.1.13", + "tw-animate-css": "^1.3.8", "typescript": "^5.9.2", - "uuid": "^11.1.0", + "uuid": "^13.0.0", "vaul": "^1.1.2", "zod": "^4.1.5" }, diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts index eb36cbd..d50cfc0 100644 --- a/src/lib/db/schema.ts +++ b/src/lib/db/schema.ts @@ -445,6 +445,9 @@ export const organizations = sqliteTable("organizations", { errorMessage: text("error_message"), repositoryCount: integer("repository_count").notNull().default(0), + publicRepositoryCount: integer("public_repository_count"), + privateRepositoryCount: integer("private_repository_count"), + forkRepositoryCount: integer("fork_repository_count"), createdAt: integer("created_at", { mode: "timestamp" }) .notNull() diff --git a/src/lib/github.ts b/src/lib/github.ts index 196ebda..0bd6d41 100644 --- a/src/lib/github.ts +++ b/src/lib/github.ts @@ -68,6 +68,8 @@ export async function getGithubRepositories({ owner: repo.owner.login, organization: repo.owner.type === "Organization" ? repo.owner.login : undefined, + mirroredLocation: "", + destinationOrg: null, isPrivate: repo.private, isForked: repo.fork, @@ -82,6 +84,8 @@ export async function getGithubRepositories({ hasLFS: false, hasSubmodules: false, + language: repo.language, + description: repo.description, defaultBranch: repo.default_branch, visibility: (repo.visibility ?? "public") as GitRepo["visibility"], @@ -125,6 +129,8 @@ export async function getGithubStarredRepositories({ owner: repo.owner.login, organization: repo.owner.type === "Organization" ? repo.owner.login : undefined, + mirroredLocation: "", + destinationOrg: null, isPrivate: repo.private, isForked: repo.fork, @@ -138,6 +144,8 @@ export async function getGithubStarredRepositories({ hasLFS: false, // Placeholder hasSubmodules: false, // Placeholder + language: repo.language, + description: repo.description, defaultBranch: repo.default_branch, visibility: (repo.visibility ?? "public") as GitRepo["visibility"], @@ -244,6 +252,8 @@ export async function getGithubOrganizationRepositories({ owner: repo.owner.login, organization: repo.owner.login, + mirroredLocation: "", + destinationOrg: null, isPrivate: repo.private, isForked: repo.fork, @@ -258,6 +268,8 @@ export async function getGithubOrganizationRepositories({ hasLFS: false, hasSubmodules: false, + language: repo.language, + description: repo.description, defaultBranch: repo.default_branch ?? "main", visibility: (repo.visibility ?? "public") as GitRepo["visibility"], diff --git a/src/lib/scheduler-service.ts b/src/lib/scheduler-service.ts index f575e82..d51e954 100644 --- a/src/lib/scheduler-service.ts +++ b/src/lib/scheduler-service.ts @@ -120,6 +120,8 @@ async function runScheduledSync(config: any): Promise { cloneUrl: repo.cloneUrl, owner: repo.owner, organization: repo.organization, + mirroredLocation: repo.mirroredLocation || "", + destinationOrg: repo.destinationOrg || null, isPrivate: repo.isPrivate, isForked: repo.isForked, forkedFrom: repo.forkedFrom, @@ -129,6 +131,8 @@ async function runScheduledSync(config: any): Promise { size: repo.size, hasLFS: repo.hasLFS, hasSubmodules: repo.hasSubmodules, + language: repo.language || null, + description: repo.description || null, defaultBranch: repo.defaultBranch, visibility: repo.visibility, status: 'imported', @@ -397,6 +401,8 @@ async function performInitialAutoStart(): Promise { cloneUrl: repo.cloneUrl, owner: repo.owner, organization: repo.organization, + mirroredLocation: repo.mirroredLocation || "", + destinationOrg: repo.destinationOrg || null, isPrivate: repo.isPrivate, isForked: repo.isForked, forkedFrom: repo.forkedFrom, @@ -406,6 +412,8 @@ async function performInitialAutoStart(): Promise { size: repo.size, hasLFS: repo.hasLFS, hasSubmodules: repo.hasSubmodules, + language: repo.language || null, + description: repo.description || null, defaultBranch: repo.defaultBranch, visibility: repo.visibility, status: 'imported', diff --git a/src/pages/api/sync/index.ts b/src/pages/api/sync/index.ts index ba6e00f..a65da9b 100644 --- a/src/pages/api/sync/index.ts +++ b/src/pages/api/sync/index.ts @@ -67,6 +67,8 @@ export const POST: APIRoute = async ({ request }) => { cloneUrl: repo.cloneUrl, owner: repo.owner, organization: repo.organization, + mirroredLocation: repo.mirroredLocation || "", + destinationOrg: repo.destinationOrg || null, isPrivate: repo.isPrivate, isForked: repo.isForked, forkedFrom: repo.forkedFrom, @@ -76,6 +78,8 @@ export const POST: APIRoute = async ({ request }) => { size: repo.size, hasLFS: repo.hasLFS, hasSubmodules: repo.hasSubmodules, + language: repo.language || null, + description: repo.description || null, defaultBranch: repo.defaultBranch, visibility: repo.visibility, status: repo.status, diff --git a/src/pages/api/sync/organization.ts b/src/pages/api/sync/organization.ts index 1509ca4..9a8db84 100644 --- a/src/pages/api/sync/organization.ts +++ b/src/pages/api/sync/organization.ts @@ -117,6 +117,8 @@ export const POST: APIRoute = async ({ request }) => { owner: repo.owner.login, organization: repo.owner.type === "Organization" ? repo.owner.login : null, + mirroredLocation: "", + destinationOrg: null, isPrivate: repo.private, isForked: repo.fork, forkedFrom: undefined, @@ -126,6 +128,8 @@ export const POST: APIRoute = async ({ request }) => { size: repo.size, hasLFS: false, hasSubmodules: false, + language: repo.language || null, + description: repo.description || null, defaultBranch: repo.default_branch ?? "main", visibility: (repo.visibility ?? "public") as RepositoryVisibility, status: "imported" as RepoStatus, diff --git a/src/pages/api/sync/repository.ts b/src/pages/api/sync/repository.ts index d21a8f4..3d09eac 100644 --- a/src/pages/api/sync/repository.ts +++ b/src/pages/api/sync/repository.ts @@ -92,12 +92,15 @@ export const POST: APIRoute = async ({ request }) => { size: repoData.size, hasLFS: false, hasSubmodules: false, + language: repoData.language || null, + description: repoData.description || null, defaultBranch: repoData.default_branch, visibility: (repoData.visibility ?? "public") as RepositoryVisibility, status: "imported" as Repository["status"], lastMirrored: undefined, errorMessage: undefined, mirroredLocation: "", + destinationOrg: null, createdAt: repoData.created_at ? new Date(repoData.created_at) : new Date(), diff --git a/src/types/Repository.ts b/src/types/Repository.ts index 80e1e52..da8bce8 100644 --- a/src/types/Repository.ts +++ b/src/types/Repository.ts @@ -48,6 +48,8 @@ export interface GitRepo { owner: string; organization?: string; + mirroredLocation?: string; + destinationOrg?: string | null; isPrivate: boolean; isForked: boolean; @@ -61,6 +63,8 @@ export interface GitRepo { hasLFS: boolean; hasSubmodules: boolean; + language?: string | null; + description?: string | null; defaultBranch: string; visibility: RepositoryVisibility;