From 77ac9b063f92c443e1ee79810d23db0ee7c4dc53 Mon Sep 17 00:00:00 2001 From: MK Date: Thu, 9 Apr 2026 14:37:42 +0800 Subject: [PATCH 1/3] feat: show deploy version on select-all MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Inject git commit hash and build timestamp at build time via Vite's define option. Display them in a hidden element at the bottom of the download page — text matches the background color and only becomes visible when the user selects all text (Ctrl+A / Cmd+A). --- package.json | 1 + pnpm-lock.yaml | 619 +++++++++++++++++++++++++++++--------------- pnpm-workspace.yaml | 6 +- routes/index.ts | 6 + vite.config.ts | 8 + 5 files changed, 430 insertions(+), 210 deletions(-) diff --git a/package.json b/package.json index 6b9ff14..87818f9 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "prepare": "vp config" }, "devDependencies": { + "@types/node": "^25.5.2", "vite": "catalog:", "vite-plus": "catalog:", "void": "npm:@void-sdk/void@0.2.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41a0cdf..a2577e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,26 +7,29 @@ settings: catalogs: default: vite-plus: - specifier: latest + specifier: ^0.1.16 version: 0.1.16 overrides: - vite: npm:@voidzero-dev/vite-plus-core@latest - vitest: npm:@voidzero-dev/vite-plus-test@latest + vite: npm:@voidzero-dev/vite-plus-core@^0.1.16 + vitest: npm:@voidzero-dev/vite-plus-test@^0.1.16 importers: .: devDependencies: + '@types/node': + specifier: ^25.5.2 + version: 25.5.2 vite: - specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' + specifier: npm:@voidzero-dev/vite-plus-core@^0.1.16 + version: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' vite-plus: specifier: 'catalog:' - version: 0.1.16(@opentelemetry/api@1.9.1)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(tsx@4.21.0) + version: 0.1.16(@opentelemetry/api@1.9.1)(@types/node@25.5.2)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(tsx@4.21.0) void: specifier: npm:@void-sdk/void@0.2.6 - version: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + version: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' packages: @@ -117,8 +120,8 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@better-auth/core@1.6.0': - resolution: {integrity: sha512-LmdPTyKRDn6iCcXBGlOHOyzpJl1W/3w64zrEbhhHaWmtdpzQWlY8awlWBoDTL9eL4TAusr9dDvwIbMYTvEqaeA==} + '@better-auth/core@1.6.1': + resolution: {integrity: sha512-HnRQEuuCT7tIc2GMuRGqudt0DNO8+LhoR3O1heY/nYMxbxPVOBm/f4UQFXeb5HYcHpDrwTO+woWpp318OQ++Uw==} peerDependencies: '@better-auth/utils': 0.4.0 '@better-fetch/fetch': 1.1.21 @@ -132,46 +135,46 @@ packages: '@cloudflare/workers-types': optional: true - '@better-auth/drizzle-adapter@1.6.0': - resolution: {integrity: sha512-iMgvZlrL4FI63CGaxLqE5rgA2Q9VVmc2fQIP7N5E79nGAEpHtztstHFPlen9RDLRJA4xa3wuyVaPSILylwE+LA==} + '@better-auth/drizzle-adapter@1.6.1': + resolution: {integrity: sha512-DgFDG8emuBxHYHA1xfUSCtMExsxOw6W3A1AVLA8TzYIg4qjkfDXcnI40ZPkDfsdnYm2WwQgJYRWP5KXlESakGA==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 drizzle-orm: '>=0.41.0' peerDependenciesMeta: drizzle-orm: optional: true - '@better-auth/kysely-adapter@1.6.0': - resolution: {integrity: sha512-ZLEp2j3jquX7wrPQ7tPOSRAjmMoHhdrsgkuH9Bp/fgNZV7M1eiwAY6fHRGKad6KIldoI+iazMUIm60v11fIHCg==} + '@better-auth/kysely-adapter@1.6.1': + resolution: {integrity: sha512-P3X/nTpY5EoBD9HEF5I4gTCGL3lf7wIlzdQweL1+WIlJK0yw6jaSqyne82PvgbLs63BLKODrQ8KNy9yrQKwPBw==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 kysely: ^0.27.0 || ^0.28.0 peerDependenciesMeta: kysely: optional: true - '@better-auth/memory-adapter@1.6.0': - resolution: {integrity: sha512-FbLmz6ujltw8RDUkBzutwIfoV+q9Mu0gLVrfhDAb9INe+jLcaQikiIjFdVwPzpx+bOs6bWTDfylrlI6+Ytxs3Q==} + '@better-auth/memory-adapter@1.6.1': + resolution: {integrity: sha512-avyECOAv5LsSlIPoQpM++iMlc34YRde/B8klfbJpnqFE25NXtDTyxlv0xkp+RWETWqrnHs4vC+rLePylK7LwGg==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 - '@better-auth/mongo-adapter@1.6.0': - resolution: {integrity: sha512-EYZwMpcpoaLRnfhEr+k+MTKS8SKi51TWh1b7bLSy+yHLL0PdbadFsGYZPgzLbZEaq4kUP0asMzXxA+blutjOQQ==} + '@better-auth/mongo-adapter@1.6.1': + resolution: {integrity: sha512-ijK+5eePMV5Vgy88lvUgn0eP5jeWvV5wYPtpFFTu+n+jCpe5VEcqlpTdYiSP3s3MhW9QucoNg08ov0hhaiM83Q==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 mongodb: ^6.0.0 || ^7.0.0 peerDependenciesMeta: mongodb: optional: true - '@better-auth/prisma-adapter@1.6.0': - resolution: {integrity: sha512-8x/aqR1NckGiC49P02cxuH0wLzbJXvE/v2NnMEFo6h3uWq4ESYL0jTY9vNlFeVIKDyGSzrbteofzzG+yQv0wAQ==} + '@better-auth/prisma-adapter@1.6.1': + resolution: {integrity: sha512-KqNHKHFQM+Pc2SF/k5DbVAUzCXZqMIDx4QpFAmDt3Wo0tzvGl12g6/ph8bOM8LKScZAVPpkm3z+NRDbh5sKuuw==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 prisma: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -181,10 +184,10 @@ packages: prisma: optional: true - '@better-auth/telemetry@1.6.0': - resolution: {integrity: sha512-JrJyx1ioswEAh8rB7mVxEFIDLl6AK3W3rtqc2MK6BgvcmKveWJ730Eoi/PNvi0b4tFk4kczmuQITm69uMbnTvQ==} + '@better-auth/telemetry@1.6.1': + resolution: {integrity: sha512-UrY49vZ7RHvMlsVlivgvIsCECdl2DAQfmqI8aymY0GMWE6MjukrZ3iS+L+txKWrV7I8vt5itc468ntR1PuvbKw==} peerDependencies: - '@better-auth/core': ^1.6.0 + '@better-auth/core': ^1.6.1 '@better-auth/utils': 0.4.0 '@better-fetch/fetch': 1.1.21 @@ -243,8 +246,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260408.1': - resolution: {integrity: sha512-kE1tKfHUyIldsj3ea2XEqvLRHkDwc83YM7nar6SS5+cj81IoAFR/OZNDwZWHb6vx+pC31PBJGtROlfZzsgxudQ==} + '@cloudflare/workers-types@4.20260409.1': + resolution: {integrity: sha512-0rGuppPeip6dqlI6013wC8tE+kbRK+tcaDfqCxKf9sEHDNfSWWUuKgIEDpt6IHHP2O0iYBQpngk5Siv4CL/HGQ==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -1531,6 +1534,9 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/node@25.5.2': + resolution: {integrity: sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1605,6 +1611,23 @@ packages: valibot: '>=1.0.0-beta.7' vite: ^8.0.0 zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + '@void-sdk/md': + optional: true + '@void-sdk/react': + optional: true + '@void-sdk/solid': + optional: true + '@void-sdk/svelte': + optional: true + '@void-sdk/vue': + optional: true + arktype: + optional: true + valibot: + optional: true + zod: + optional: true '@void-sdk/vue@0.2.6': resolution: {integrity: sha512-C6O1MWGZhCMD0XSkj6FZls+ZyMjmBoqVz60rMpKiSgfrXsvZtpZm2tpisK864vJ252m6JqeRMN8hpO+9ITYe8A==, tarball: https://npm.pkg.github.com/download/@void-sdk/vue/0.2.6/e27698079e07fb0582c4b58bb5d41070edecb525} @@ -1830,8 +1853,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - better-auth@1.6.0: - resolution: {integrity: sha512-reEK4X37w/X0Wi0ZpNSo6w3j9F2tsA7ebWn2AmWTzkceiatkxcadRg9aK+Mirw2PY56GQqX9dBgqBG6XMNU/Zg==} + better-auth@1.6.1: + resolution: {integrity: sha512-rXxR5G0xNezCiwlxdvU5L0BsYvlddvGfL61azo1w8IFrqck0jPOuE9zU28ZFJpQjfTNwXhWp0ddEqxY7zVZxmQ==} peerDependencies: '@lynx-js/react': '*' '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -1927,8 +1950,8 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - caniuse-lite@1.0.30001786: - resolution: {integrity: sha512-4oxTZEvqmLLrERwxO76yfKM7acZo310U+v4kqexI2TL1DkkUEMT8UijrxxcnVdxR3qkVf5awGRX+4Z6aPHVKrA==} + caniuse-lite@1.0.30001787: + resolution: {integrity: sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1991,8 +2014,8 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.7.0: - resolution: {integrity: sha512-qCvc8m7cImp1QDCsiY+C2EdSBWSj7Ucfoq87scSdYboDiIKdvMtFbH1U2VReBls6WMhMaUOoK3ZJEDNG/7zm3w==} + devalue@5.7.1: + resolution: {integrity: sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -2111,8 +2134,8 @@ packages: drizzle-orm: '>=0.36.0' zod: ^3.25.0 || ^4.0.0 - electron-to-chromium@1.5.332: - resolution: {integrity: sha512-7OOtytmh/rINMLwaFTbcMVvYXO3AUm029X0LcyfYk0B557RlPkdpTpnH9+htMlfu5dKwOmT0+Zs2Aw+lnn6TeQ==} + electron-to-chromium@1.5.334: + resolution: {integrity: sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog==} end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2771,6 +2794,9 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici@7.24.4: resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} engines: {node: '>=20.18.1'} @@ -2924,8 +2950,10 @@ snapshots: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 + optional: true - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.0': + optional: true '@babel/core@7.29.0': dependencies: @@ -2946,6 +2974,7 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + optional: true '@babel/generator@7.29.1': dependencies: @@ -2954,6 +2983,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + optional: true '@babel/helper-compilation-targets@7.28.6': dependencies: @@ -2962,12 +2992,15 @@ snapshots: browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 + optional: true - '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.28.0': + optional: true '@babel/helper-module-imports@7.18.6': dependencies: '@babel/types': 7.29.0 + optional: true '@babel/helper-module-imports@7.28.6': dependencies: @@ -2975,6 +3008,7 @@ snapshots: '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color + optional: true '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: @@ -2984,34 +3018,43 @@ snapshots: '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color + optional: true - '@babel/helper-plugin-utils@7.28.6': {} + '@babel/helper-plugin-utils@7.28.6': + optional: true - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.27.1': + optional: true - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.28.5': + optional: true - '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.27.1': + optional: true '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 '@babel/types': 7.29.0 + optional: true '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 + optional: true '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + optional: true '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 '@babel/parser': 7.29.2 '@babel/types': 7.29.0 + optional: true '@babel/traverse@7.29.0': dependencies: @@ -3024,13 +3067,15 @@ snapshots: debug: 4.4.3 transitivePeerDependencies: - supports-color + optional: true '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + optional: true - '@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)': + '@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0)': dependencies: '@better-auth/utils': 0.4.0 '@better-fetch/fetch': 1.1.21 @@ -3043,40 +3088,40 @@ snapshots: nanostores: 1.2.0 zod: 4.3.6 optionalDependencies: - '@cloudflare/workers-types': 4.20260408.1 + '@cloudflare/workers-types': 4.20260409.1 - '@better-auth/drizzle-adapter@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))': + '@better-auth/drizzle-adapter@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 optionalDependencies: - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) - '@better-auth/kysely-adapter@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(kysely@0.28.15)': + '@better-auth/kysely-adapter@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(kysely@0.28.15)': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 optionalDependencies: kysely: 0.28.15 - '@better-auth/memory-adapter@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': + '@better-auth/memory-adapter@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 - '@better-auth/mongo-adapter@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': + '@better-auth/mongo-adapter@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 - '@better-auth/prisma-adapter@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': + '@better-auth/prisma-adapter@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 - '@better-auth/telemetry@1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)': + '@better-auth/telemetry@1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)': dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) '@better-auth/utils': 0.4.0 '@better-fetch/fetch': 1.1.21 @@ -3094,13 +3139,13 @@ snapshots: optionalDependencies: workerd: 1.20260405.1 - '@cloudflare/vite-plugin@1.31.1(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(workerd@1.20260405.1)(wrangler@4.81.0(@cloudflare/workers-types@4.20260408.1))': + '@cloudflare/vite-plugin@1.31.1(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(workerd@1.20260405.1)(wrangler@4.81.0(@cloudflare/workers-types@4.20260409.1))': dependencies: '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260405.1) miniflare: 4.20260405.0 unenv: 2.0.0-rc.24 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - wrangler: 4.81.0(@cloudflare/workers-types@4.20260408.1) + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + wrangler: 4.81.0(@cloudflare/workers-types@4.20260409.1) ws: 8.18.0 transitivePeerDependencies: - bufferutil @@ -3122,7 +3167,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260405.1': optional: true - '@cloudflare/workers-types@4.20260408.1': {} + '@cloudflare/workers-types@4.20260409.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -3549,11 +3594,13 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 + optional: true '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 + optional: true '@jridgewell/resolve-uri@3.1.2': {} @@ -3563,6 +3610,7 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + optional: true '@jridgewell/trace-mapping@0.3.9': dependencies: @@ -3778,9 +3826,11 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@rolldown/pluginutils@1.0.0-rc.2': {} + '@rolldown/pluginutils@1.0.0-rc.2': + optional: true - '@rolldown/pluginutils@1.0.0-rc.7': {} + '@rolldown/pluginutils@1.0.0-rc.7': + optional: true '@shikijs/core@4.0.2': dependencies: @@ -3789,43 +3839,52 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + optional: true '@shikijs/engine-javascript@4.0.2': dependencies: '@shikijs/types': 4.0.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.5 + optional: true '@shikijs/engine-oniguruma@4.0.2': dependencies: '@shikijs/types': 4.0.2 '@shikijs/vscode-textmate': 10.0.2 + optional: true '@shikijs/langs@4.0.2': dependencies: '@shikijs/types': 4.0.2 + optional: true '@shikijs/primitive@4.0.2': dependencies: '@shikijs/types': 4.0.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + optional: true '@shikijs/themes@4.0.2': dependencies: '@shikijs/types': 4.0.2 + optional: true '@shikijs/transformers@4.0.2': dependencies: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 + optional: true '@shikijs/types@4.0.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + optional: true - '@shikijs/vscode-textmate@10.0.2': {} + '@shikijs/vscode-textmate@10.0.2': + optional: true '@sindresorhus/is@7.2.0': {} @@ -3836,15 +3895,17 @@ snapshots: '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': dependencies: acorn: 8.16.0 + optional: true - '@sveltejs/vite-plugin-svelte@7.0.0(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(svelte@5.55.2)': + '@sveltejs/vite-plugin-svelte@7.0.0(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(svelte@5.55.2)': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 svelte: 5.55.2 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)) + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)) + optional: true '@types/babel__core@7.20.5': dependencies: @@ -3853,19 +3914,23 @@ snapshots: '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 + optional: true '@types/babel__generator@7.27.0': dependencies: '@babel/types': 7.29.0 + optional: true '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.29.2 '@babel/types': 7.29.0 + optional: true '@types/babel__traverse@7.28.0': dependencies: '@babel/types': 7.29.0 + optional: true '@types/chai@5.2.3': dependencies: @@ -3874,45 +3939,61 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/estree@1.0.8': {} + '@types/estree@1.0.8': + optional: true '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 + optional: true - '@types/linkify-it@5.0.0': {} + '@types/linkify-it@5.0.0': + optional: true '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 + optional: true '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 + optional: true - '@types/mdurl@2.0.0': {} + '@types/mdurl@2.0.0': + optional: true - '@types/trusted-types@2.0.7': {} + '@types/node@25.5.2': + dependencies: + undici-types: 7.18.2 - '@types/unist@3.0.3': {} + '@types/trusted-types@2.0.7': + optional: true - '@typescript-eslint/types@8.58.1': {} + '@types/unist@3.0.3': + optional: true - '@ungap/structured-clone@1.3.0': {} + '@typescript-eslint/types@8.58.1': + optional: true + + '@ungap/structured-clone@1.3.0': + optional: true - '@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))': + '@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + optional: true - '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(vue@3.5.32)': + '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(vue@3.5.32)': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' vue: 3.5.32 + optional: true - '@void-sdk/md@0.2.6(@types/markdown-it@14.1.2)(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(markdown-it@14.1.1)': + '@void-sdk/md@0.2.6(@types/markdown-it@14.1.2)(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(markdown-it@14.1.1)': dependencies: '@shikijs/engine-javascript': 4.0.2 '@shikijs/transformers': 4.0.2 @@ -3924,67 +4005,72 @@ snapshots: markdown-it-emoji: 3.0.0 shiki: 4.0.2 tinyglobby: 0.2.16 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' transitivePeerDependencies: - '@types/markdown-it' - markdown-it + optional: true - '@void-sdk/react@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@void-sdk/react@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@vitejs/plugin-react': 6.0.1(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)) + '@vitejs/plugin-react': 6.0.1(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' transitivePeerDependencies: - '@rolldown/plugin-babel' - babel-plugin-react-compiler + optional: true - '@void-sdk/solid@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(solid-js@1.9.12)': + '@void-sdk/solid@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(solid-js@1.9.12)': dependencies: solid-js: 1.9.12 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - vite-plugin-solid: 2.11.12(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(solid-js@1.9.12) - void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + vite-plugin-solid: 2.11.12(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(solid-js@1.9.12) + void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' transitivePeerDependencies: - '@testing-library/jest-dom' - supports-color + optional: true - '@void-sdk/svelte@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(svelte@5.55.2)': + '@void-sdk/svelte@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(svelte@5.55.2)': dependencies: - '@sveltejs/vite-plugin-svelte': 7.0.0(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(svelte@5.55.2) + '@sveltejs/vite-plugin-svelte': 7.0.0(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(svelte@5.55.2) svelte: 5.55.2 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + optional: true - '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)': + '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)': dependencies: - '@cloudflare/vite-plugin': 1.31.1(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(workerd@1.20260405.1)(wrangler@4.81.0(@cloudflare/workers-types@4.20260408.1)) - '@cloudflare/workers-types': 4.20260408.1 + '@cloudflare/vite-plugin': 1.31.1(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(workerd@1.20260405.1)(wrangler@4.81.0(@cloudflare/workers-types@4.20260409.1)) + '@cloudflare/workers-types': 4.20260409.1 '@hono/oauth-providers': 0.8.5(hono@4.12.12) '@napi-rs/keyring': 1.2.0 - '@void-sdk/md': 0.2.6(@types/markdown-it@14.1.2)(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(markdown-it@14.1.1) - '@void-sdk/react': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@void-sdk/solid': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(solid-js@1.9.12) - '@void-sdk/svelte': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(svelte@5.55.2) - '@void-sdk/vue': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(vue@3.5.32) - arktype: 2.2.0 - better-auth: 1.6.0(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(vue@3.5.32) + better-auth: 1.6.1(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(vue@3.5.32) better-sqlite3: 12.8.0 blake3-jit: 1.0.0 - drizzle-arktype: 0.1.3(arktype@2.2.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)) + drizzle-arktype: 0.1.3(arktype@2.2.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)) drizzle-kit: 0.31.10 - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) - drizzle-valibot: 0.4.2(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(valibot@1.3.1) - drizzle-zod: 0.8.3(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(zod@4.3.6) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-valibot: 0.4.2(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(valibot@1.3.1) + drizzle-zod: 0.8.3(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(zod@4.3.6) hono: 4.12.12 ignore: 5.3.2 jsonc-parser: 3.3.1 pg: 8.20.0 + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + wrangler: 4.81.0(@cloudflare/workers-types@4.20260409.1) + optionalDependencies: + '@void-sdk/md': 0.2.6(@types/markdown-it@14.1.2)(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(markdown-it@14.1.1) + '@void-sdk/react': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@void-sdk/solid': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(solid-js@1.9.12) + '@void-sdk/svelte': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(svelte@5.55.2) + '@void-sdk/vue': 0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(vue@3.5.32) + arktype: 2.2.0 valibot: 1.3.1 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - wrangler: 4.81.0(@cloudflare/workers-types@4.20260408.1) zod: 4.3.6 transitivePeerDependencies: - '@aws-sdk/client-rds-data' @@ -4030,20 +4116,22 @@ snapshots: - vue - workerd - '@void-sdk/vue@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(vue@3.5.32)': + '@void-sdk/vue@0.2.6(@void-sdk/void@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(vue@3.5.32)': dependencies: - '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(vue@3.5.32) - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' + '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(vue@3.5.32) + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + void: '@void-sdk/void@0.2.6(@opentelemetry/api@1.9.1)(@void-sdk/md@0.2.6)(@void-sdk/react@0.2.6)(@void-sdk/solid@0.2.6)(@void-sdk/svelte@0.2.6)(@void-sdk/vue@0.2.6)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(arktype@2.2.0)(kysely@0.28.15)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(valibot@1.3.1)(vue@3.5.32)(workerd@1.20260405.1)(zod@4.3.6)' vue: 3.5.32 + optional: true - '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)': + '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)': dependencies: '@oxc-project/runtime': 0.123.0 '@oxc-project/types': 0.123.0 lightningcss: 1.32.0 postcss: 8.5.9 optionalDependencies: + '@types/node': 25.5.2 fsevents: 2.3.3 tsx: 4.21.0 @@ -4065,11 +4153,11 @@ snapshots: '@voidzero-dev/vite-plus-linux-x64-musl@0.1.16': optional: true - '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.1)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(tsx@4.21.0)': + '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.1)(@types/node@25.5.2)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(tsx@4.21.0)': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.16(tsx@4.21.0) + '@voidzero-dev/vite-plus-core': 0.1.16(@types/node@25.5.2)(tsx@4.21.0) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.1.0 @@ -4079,10 +4167,11 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.1.1 tinyglobby: 0.2.16 - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' ws: 8.20.0 optionalDependencies: '@opentelemetry/api': 1.9.1 + '@types/node': 25.5.2 transitivePeerDependencies: - '@arethetypeswrong/core' - '@tsdown/css' @@ -4117,11 +4206,13 @@ snapshots: entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 + optional: true '@vue/compiler-dom@3.5.32': dependencies: '@vue/compiler-core': 3.5.32 '@vue/shared': 3.5.32 + optional: true '@vue/compiler-sfc@3.5.32': dependencies: @@ -4134,20 +4225,24 @@ snapshots: magic-string: 0.30.21 postcss: 8.5.9 source-map-js: 1.2.1 + optional: true '@vue/compiler-ssr@3.5.32': dependencies: '@vue/compiler-dom': 3.5.32 '@vue/shared': 3.5.32 + optional: true '@vue/reactivity@3.5.32': dependencies: '@vue/shared': 3.5.32 + optional: true '@vue/runtime-core@3.5.32': dependencies: '@vue/reactivity': 3.5.32 '@vue/shared': 3.5.32 + optional: true '@vue/runtime-dom@3.5.32': dependencies: @@ -4155,24 +4250,31 @@ snapshots: '@vue/runtime-core': 3.5.32 '@vue/shared': 3.5.32 csstype: 3.2.3 + optional: true '@vue/server-renderer@3.5.32(vue@3.5.32)': dependencies: '@vue/compiler-ssr': 3.5.32 '@vue/shared': 3.5.32 vue: 3.5.32 + optional: true - '@vue/shared@3.5.32': {} + '@vue/shared@3.5.32': + optional: true - acorn@8.16.0: {} + acorn@8.16.0: + optional: true argparse@1.0.10: dependencies: sprintf-js: 1.0.3 + optional: true - argparse@2.0.1: {} + argparse@2.0.1: + optional: true - aria-query@5.3.1: {} + aria-query@5.3.1: + optional: true arkregex@0.0.5: dependencies: @@ -4186,7 +4288,8 @@ snapshots: assertion-error@2.0.1: {} - axobject-query@4.1.0: {} + axobject-query@4.1.0: + optional: true babel-plugin-jsx-dom-expressions@0.40.6(@babel/core@7.29.0): dependencies: @@ -4196,6 +4299,7 @@ snapshots: '@babel/types': 7.29.0 html-entities: 2.3.3 parse5: 7.3.0 + optional: true babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.12): dependencies: @@ -4203,20 +4307,22 @@ snapshots: babel-plugin-jsx-dom-expressions: 0.40.6(@babel/core@7.29.0) optionalDependencies: solid-js: 1.9.12 + optional: true base64-js@1.5.1: {} - baseline-browser-mapping@2.10.16: {} + baseline-browser-mapping@2.10.16: + optional: true - better-auth@1.6.0(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(vue@3.5.32): + better-auth@1.6.1(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.12)(svelte@5.55.2)(vue@3.5.32): dependencies: - '@better-auth/core': 1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) - '@better-auth/drizzle-adapter': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)) - '@better-auth/kysely-adapter': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(kysely@0.28.15) - '@better-auth/memory-adapter': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) - '@better-auth/mongo-adapter': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) - '@better-auth/prisma-adapter': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) - '@better-auth/telemetry': 1.6.0(@better-auth/core@1.6.0(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21) + '@better-auth/core': 1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0) + '@better-auth/drizzle-adapter': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)) + '@better-auth/kysely-adapter': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(kysely@0.28.15) + '@better-auth/memory-adapter': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) + '@better-auth/mongo-adapter': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) + '@better-auth/prisma-adapter': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0) + '@better-auth/telemetry': 1.6.1(@better-auth/core@1.6.1(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-call@1.3.5(zod@4.3.6))(jose@6.2.2)(kysely@0.28.15)(nanostores@1.2.0))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21) '@better-auth/utils': 0.4.0 '@better-fetch/fetch': 1.1.21 '@noble/ciphers': 2.1.1 @@ -4230,7 +4336,7 @@ snapshots: optionalDependencies: better-sqlite3: 12.8.0 drizzle-kit: 0.31.10 - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) pg: 8.20.0 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -4272,10 +4378,11 @@ snapshots: browserslist@4.28.2: dependencies: baseline-browser-mapping: 2.10.16 - caniuse-lite: 1.0.30001786 - electron-to-chromium: 1.5.332 + caniuse-lite: 1.0.30001787 + electron-to-chromium: 1.5.334 node-releases: 2.0.37 update-browserslist-db: 1.2.3(browserslist@4.28.2) + optional: true buffer-from@1.1.2: {} @@ -4284,29 +4391,38 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - caniuse-lite@1.0.30001786: {} + caniuse-lite@1.0.30001787: + optional: true - ccount@2.0.1: {} + ccount@2.0.1: + optional: true - character-entities-html4@2.1.0: {} + character-entities-html4@2.1.0: + optional: true - character-entities-legacy@3.0.0: {} + character-entities-legacy@3.0.0: + optional: true chownr@1.1.4: {} - clsx@2.1.1: {} + clsx@2.1.1: + optional: true - comma-separated-tokens@2.0.3: {} + comma-separated-tokens@2.0.3: + optional: true - convert-source-map@2.0.0: {} + convert-source-map@2.0.0: + optional: true cookie@1.1.1: {} - csstype@3.2.3: {} + csstype@3.2.3: + optional: true debug@4.4.3: dependencies: ms: 2.1.3 + optional: true decompress-response@6.0.0: dependencies: @@ -4314,24 +4430,28 @@ snapshots: deep-extend@0.6.0: {} - deepmerge@4.3.1: {} + deepmerge@4.3.1: + optional: true defu@6.1.7: {} - dequal@2.0.3: {} + dequal@2.0.3: + optional: true detect-libc@2.1.2: {} - devalue@5.7.0: {} + devalue@5.7.1: + optional: true devlop@1.1.0: dependencies: dequal: 2.0.3 + optional: true - drizzle-arktype@0.1.3(arktype@2.2.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)): + drizzle-arktype@0.1.3(arktype@2.2.0)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0)): dependencies: arktype: 2.2.0 - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) drizzle-kit@0.31.10: dependencies: @@ -4340,35 +4460,39 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0): + drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0): optionalDependencies: - '@cloudflare/workers-types': 4.20260408.1 + '@cloudflare/workers-types': 4.20260409.1 '@opentelemetry/api': 1.9.1 better-sqlite3: 12.8.0 kysely: 0.28.15 pg: 8.20.0 - drizzle-valibot@0.4.2(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(valibot@1.3.1): + drizzle-valibot@0.4.2(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(valibot@1.3.1): dependencies: - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) valibot: 1.3.1 - drizzle-zod@0.8.3(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(zod@4.3.6): + drizzle-zod@0.8.3(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0))(zod@4.3.6): dependencies: - drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260408.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) + drizzle-orm: 0.45.2(@cloudflare/workers-types@4.20260409.1)(@opentelemetry/api@1.9.1)(better-sqlite3@12.8.0)(kysely@0.28.15)(pg@8.20.0) zod: 4.3.6 - electron-to-chromium@1.5.332: {} + electron-to-chromium@1.5.334: + optional: true end-of-stream@1.4.5: dependencies: once: 1.4.0 - entities@4.5.0: {} + entities@4.5.0: + optional: true - entities@6.0.1: {} + entities@6.0.1: + optional: true - entities@7.0.1: {} + entities@7.0.1: + optional: true error-stack-parser-es@1.0.5: {} @@ -4486,24 +4610,30 @@ snapshots: '@esbuild/win32-ia32': 0.27.7 '@esbuild/win32-x64': 0.27.7 - escalade@3.2.0: {} + escalade@3.2.0: + optional: true - esm-env@1.2.2: {} + esm-env@1.2.2: + optional: true - esprima@4.0.1: {} + esprima@4.0.1: + optional: true esrap@2.2.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 '@typescript-eslint/types': 8.58.1 + optional: true - estree-walker@2.0.2: {} + estree-walker@2.0.2: + optional: true expand-template@2.0.3: {} extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 + optional: true fdir@6.5.0(picomatch@4.0.4): optionalDependencies: @@ -4516,7 +4646,8 @@ snapshots: fsevents@2.3.3: optional: true - gensync@1.0.0-beta.2: {} + gensync@1.0.0-beta.2: + optional: true get-tsconfig@4.13.7: dependencies: @@ -4530,6 +4661,7 @@ snapshots: kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 + optional: true hast-util-to-html@9.0.5: dependencies: @@ -4544,16 +4676,20 @@ snapshots: space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 + optional: true hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 + optional: true hono@4.12.12: {} - html-entities@2.3.3: {} + html-entities@2.3.3: + optional: true - html-void-elements@3.0.0: {} + html-void-elements@3.0.0: + optional: true ieee754@1.2.1: {} @@ -4563,30 +4699,38 @@ snapshots: ini@1.3.8: {} - is-extendable@0.1.1: {} + is-extendable@0.1.1: + optional: true is-reference@3.0.3: dependencies: '@types/estree': 1.0.8 + optional: true - is-what@4.1.16: {} + is-what@4.1.16: + optional: true jose@6.2.2: {} - js-tokens@4.0.0: {} + js-tokens@4.0.0: + optional: true js-yaml@3.14.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 + optional: true - jsesc@3.1.0: {} + jsesc@3.1.0: + optional: true - json5@2.2.3: {} + json5@2.2.3: + optional: true jsonc-parser@3.3.1: {} - kind-of@6.0.3: {} + kind-of@6.0.3: + optional: true kleur@4.1.5: {} @@ -4644,16 +4788,20 @@ snapshots: linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 + optional: true - locate-character@3.0.0: {} + locate-character@3.0.0: + optional: true lru-cache@5.1.1: dependencies: yallist: 3.1.1 + optional: true magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + optional: true markdown-exit@1.0.0-beta.9: dependencies: @@ -4664,19 +4812,24 @@ snapshots: mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 + optional: true markdown-it-anchor@9.2.0(@types/markdown-it@14.1.2)(markdown-it@14.1.1): dependencies: '@types/markdown-it': 14.1.2 markdown-it: 14.1.1 + optional: true markdown-it-attrs@4.3.1(markdown-it@14.1.1): dependencies: markdown-it: 14.1.1 + optional: true - markdown-it-container@4.0.0: {} + markdown-it-container@4.0.0: + optional: true - markdown-it-emoji@3.0.0: {} + markdown-it-emoji@3.0.0: + optional: true markdown-it@14.1.1: dependencies: @@ -4686,6 +4839,7 @@ snapshots: mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 + optional: true mdast-util-to-hast@13.2.1: dependencies: @@ -4698,29 +4852,37 @@ snapshots: unist-util-position: 5.0.0 unist-util-visit: 5.1.0 vfile: 6.0.3 + optional: true - mdurl@2.0.0: {} + mdurl@2.0.0: + optional: true merge-anything@5.1.7: dependencies: is-what: 4.1.16 + optional: true micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + optional: true - micromark-util-encode@2.0.1: {} + micromark-util-encode@2.0.1: + optional: true micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 + optional: true - micromark-util-symbol@2.0.1: {} + micromark-util-symbol@2.0.1: + optional: true - micromark-util-types@2.0.2: {} + micromark-util-types@2.0.2: + optional: true mimic-response@3.1.0: {} @@ -4742,7 +4904,8 @@ snapshots: mrmime@2.0.1: {} - ms@2.1.3: {} + ms@2.1.3: + optional: true nanoid@3.3.11: {} @@ -4754,7 +4917,8 @@ snapshots: dependencies: semver: 7.7.4 - node-releases@2.0.37: {} + node-releases@2.0.37: + optional: true obug@2.1.1: {} @@ -4762,13 +4926,15 @@ snapshots: dependencies: wrappy: 1.0.2 - oniguruma-parser@0.12.1: {} + oniguruma-parser@0.12.1: + optional: true oniguruma-to-es@4.3.5: dependencies: oniguruma-parser: 0.12.1 regex: 6.1.0 regex-recursion: 6.0.2 + optional: true oxfmt@0.43.0: dependencies: @@ -4829,6 +4995,7 @@ snapshots: parse5@7.3.0: dependencies: entities: 6.0.1 + optional: true path-to-regexp@6.3.0: {} @@ -4910,14 +5077,16 @@ snapshots: tar-fs: 2.1.4 tunnel-agent: 0.6.0 - property-information@7.1.0: {} + property-information@7.1.0: + optional: true pump@3.0.4: dependencies: end-of-stream: 1.4.5 once: 1.4.0 - punycode.js@2.3.1: {} + punycode.js@2.3.1: + optional: true rc@1.2.8: dependencies: @@ -4930,8 +5099,10 @@ snapshots: dependencies: react: 19.2.4 scheduler: 0.27.0 + optional: true - react@19.2.4: {} + react@19.2.4: + optional: true readable-stream@3.6.2: dependencies: @@ -4942,12 +5113,15 @@ snapshots: regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 + optional: true - regex-utilities@2.3.0: {} + regex-utilities@2.3.0: + optional: true regex@6.1.0: dependencies: regex-utilities: 2.3.0 + optional: true resolve-pkg-maps@1.0.0: {} @@ -4955,22 +5129,27 @@ snapshots: safe-buffer@5.2.1: {} - scheduler@0.27.0: {} + scheduler@0.27.0: + optional: true section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 + optional: true - semver@6.3.1: {} + semver@6.3.1: + optional: true semver@7.7.4: {} seroval-plugins@1.5.2(seroval@1.5.2): dependencies: seroval: 1.5.2 + optional: true - seroval@1.5.2: {} + seroval@1.5.2: + optional: true set-cookie-parser@3.1.0: {} @@ -5015,6 +5194,7 @@ snapshots: '@shikijs/types': 4.0.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + optional: true simple-concat@1.0.1: {} @@ -5035,6 +5215,7 @@ snapshots: csstype: 3.2.3 seroval: 1.5.2 seroval-plugins: 1.5.2(seroval@1.5.2) + optional: true solid-refresh@0.6.3(solid-js@1.9.12): dependencies: @@ -5044,6 +5225,7 @@ snapshots: solid-js: 1.9.12 transitivePeerDependencies: - supports-color + optional: true source-map-js@1.2.1: {} @@ -5054,11 +5236,13 @@ snapshots: source-map@0.6.1: {} - space-separated-tokens@2.0.2: {} + space-separated-tokens@2.0.2: + optional: true split2@4.2.0: {} - sprintf-js@1.0.3: {} + sprintf-js@1.0.3: + optional: true std-env@4.0.0: {} @@ -5070,8 +5254,10 @@ snapshots: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + optional: true - strip-bom-string@1.0.0: {} + strip-bom-string@1.0.0: + optional: true strip-json-comments@2.0.1: {} @@ -5088,13 +5274,14 @@ snapshots: aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 - devalue: 5.7.0 + devalue: 5.7.1 esm-env: 1.2.2 esrap: 2.2.4 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 zimmerframe: 1.1.4 + optional: true tar-fs@2.1.4: dependencies: @@ -5124,7 +5311,8 @@ snapshots: totalist@3.0.1: {} - trim-lines@3.0.1: {} + trim-lines@3.0.1: + optional: true tslib@2.8.1: optional: true @@ -5140,7 +5328,10 @@ snapshots: dependencies: safe-buffer: 5.2.1 - uc.micro@2.1.0: {} + uc.micro@2.1.0: + optional: true + + undici-types@7.18.2: {} undici@7.24.4: {} @@ -5151,31 +5342,37 @@ snapshots: unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 + optional: true unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 + optional: true unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 + optional: true unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 + optional: true unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 + optional: true update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 + optional: true util-deprecate@1.0.2: {} @@ -5185,13 +5382,15 @@ snapshots: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 + optional: true vfile@6.0.3: dependencies: '@types/unist': 3.0.3 vfile-message: 4.0.3 + optional: true - vite-plugin-solid@2.11.12(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(solid-js@1.9.12): + vite-plugin-solid@2.11.12(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(solid-js@1.9.12): dependencies: '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 @@ -5199,16 +5398,17 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.12 solid-refresh: 0.6.3(solid-js@1.9.12) - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' - vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)) + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)) transitivePeerDependencies: - supports-color + optional: true - vite-plus@0.1.16(@opentelemetry/api@1.9.1)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(tsx@4.21.0): + vite-plus@0.1.16(@opentelemetry/api@1.9.1)(@types/node@25.5.2)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(tsx@4.21.0): dependencies: '@oxc-project/types': 0.123.0 - '@voidzero-dev/vite-plus-core': 0.1.16(tsx@4.21.0) - '@voidzero-dev/vite-plus-test': 0.1.16(@opentelemetry/api@1.9.1)(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0))(tsx@4.21.0) + '@voidzero-dev/vite-plus-core': 0.1.16(@types/node@25.5.2)(tsx@4.21.0) + '@voidzero-dev/vite-plus-test': 0.1.16(@opentelemetry/api@1.9.1)(@types/node@25.5.2)(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0))(tsx@4.21.0) oxfmt: 0.43.0 oxlint: 1.58.0(oxlint-tsgolint@0.20.0) oxlint-tsgolint: 0.20.0 @@ -5249,9 +5449,10 @@ snapshots: - vite - yaml - vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)): + vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)): optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.1.16(tsx@4.21.0)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@25.5.2)(tsx@4.21.0)' + optional: true vue@3.5.32: dependencies: @@ -5260,6 +5461,7 @@ snapshots: '@vue/runtime-dom': 3.5.32 '@vue/server-renderer': 3.5.32(vue@3.5.32) '@vue/shared': 3.5.32 + optional: true workerd@1.20260405.1: optionalDependencies: @@ -5269,7 +5471,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260405.1 '@cloudflare/workerd-windows-64': 1.20260405.1 - wrangler@4.81.0(@cloudflare/workers-types@4.20260408.1): + wrangler@4.81.0(@cloudflare/workers-types@4.20260409.1): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260405.1) @@ -5280,7 +5482,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260405.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260408.1 + '@cloudflare/workers-types': 4.20260409.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -5294,7 +5496,8 @@ snapshots: xtend@4.0.2: {} - yallist@3.1.1: {} + yallist@3.1.1: + optional: true youch-core@0.3.3: dependencies: @@ -5309,8 +5512,10 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 - zimmerframe@1.1.4: {} + zimmerframe@1.1.4: + optional: true zod@4.3.6: {} - zwitch@2.0.4: {} + zwitch@2.0.4: + optional: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6a049a0..8845dc7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,7 @@ catalog: - vite: npm:@voidzero-dev/vite-plus-core@latest - vitest: npm:@voidzero-dev/vite-plus-test@latest - vite-plus: latest + vite: npm:@voidzero-dev/vite-plus-core@^0.1.16 + vite-plus: ^0.1.16 + vitest: npm:@voidzero-dev/vite-plus-test@^0.1.16 overrides: vite: "catalog:" vitest: "catalog:" diff --git a/routes/index.ts b/routes/index.ts index 43d6f42..c5a1136 100644 --- a/routes/index.ts +++ b/routes/index.ts @@ -1,6 +1,9 @@ import { defineHandler } from "void"; import { kv } from "void/kv"; +declare const __DEPLOY_COMMIT__: string; +declare const __DEPLOY_TIME__: string; + const GITHUB_OWNER = "voidzero-dev"; const GITHUB_REPO = "vite-plus"; const ASSET_NAMES: Record = { @@ -219,6 +222,8 @@ h1{font-size:1.5rem;font-weight:700;margin-bottom:6px} .note{color:#999;font-size:.85rem;line-height:1.6} .note a{color:#2563eb;text-decoration:none} .note a:hover{text-decoration:underline} +.deploy-info{color:#fafafa;font-size:.7rem;margin-top:24px;user-select:all} +.deploy-info::selection{color:#999;background:#e5e5e5} @@ -250,6 +255,7 @@ ${

Windows installer for Vite+, the unified toolchain for the web.

+

deploy: ${escapeHtml(__DEPLOY_COMMIT__)} · ${escapeHtml(__DEPLOY_TIME__)}

${ hasBoth diff --git a/vite.config.ts b/vite.config.ts index fec9921..53981d4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,11 @@ // vite.config.ts +import { execSync } from "node:child_process"; import { defineConfig } from "vite-plus"; import { voidPlugin } from "void"; +const commitHash = execSync("git rev-parse --short HEAD").toString().trim(); +const buildTime = new Date().toISOString(); + export default defineConfig({ staged: { "*": "vp check --fix", @@ -9,4 +13,8 @@ export default defineConfig({ fmt: {}, lint: { options: { typeAware: true, typeCheck: true } }, plugins: [voidPlugin()], + define: { + __DEPLOY_COMMIT__: JSON.stringify(commitHash), + __DEPLOY_TIME__: JSON.stringify(buildTime), + }, }); From c82b7a8b7afd6e061b2aa4f5cda9b8828df2a038 Mon Sep 17 00:00:00 2001 From: MK Date: Thu, 9 Apr 2026 14:41:34 +0800 Subject: [PATCH 2/3] ci: add staging deploy job for PRs Deploy to vp-setup-staging on pull requests after tests pass, using the project config from .void/project.json. Comments on the PR with the staging preview URL after successful deployment. --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29018b2..061eadc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,9 @@ on: pull_request: branches: [main] +permissions: + pull-requests: write + jobs: test: runs-on: ubuntu-latest @@ -19,3 +22,29 @@ jobs: - run: vp check - run: vp build - run: vp test + + staging-deploy: + needs: test + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: voidzero-dev/setup-vp@v1 + with: + cache: true + registry-url: https://npm.pkg.github.com + env: + NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} + - run: vpx void deploy + env: + VOID_TOKEN: ${{ secrets.VOID_TOKEN }} + - name: Comment on PR + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: '✅ Staging deployment successful!\n\nPreview: https://vp-setup-staging.void.app/' + }) From f55e53da2443b007d5cc8897b590ec4a78d29b2f Mon Sep 17 00:00:00 2001 From: MK Date: Thu, 9 Apr 2026 14:42:51 +0800 Subject: [PATCH 3/3] fix(ci): add contents:read permission and set VOID_PROJECT explicitly The checkout action needs contents:read when custom permissions are set. Set VOID_PROJECT to vp-setup-staging explicitly instead of relying on .void/project.json. --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 061eadc..8d29ab0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,7 @@ on: branches: [main] permissions: + contents: read pull-requests: write jobs: @@ -38,6 +39,7 @@ jobs: - run: vpx void deploy env: VOID_TOKEN: ${{ secrets.VOID_TOKEN }} + VOID_PROJECT: vp-setup-staging - name: Comment on PR uses: actions/github-script@v7 with: