fix: env variables did not resolve in prod

This commit is contained in:
Aarnav Tale 2025-03-24 13:20:54 -04:00
parent 24a99a2115
commit 0b2e5fac40
No known key found for this signature in database
5 changed files with 106 additions and 105 deletions

View File

@ -38,27 +38,38 @@ export function configureLogger(env: string | undefined) {
log.debug('config', 'It is recommended this be disabled in production'); log.debug('config', 'It is recommended this be disabled in production');
} }
interface Overrides { export interface EnvOverrides {
loadEnv: string | undefined; loadEnv: boolean;
path: string | undefined; path: string;
} }
export type EnvOverrides = typeof schema.infer; export function configureConfig(
const schema = type({ overrides: Partial<EnvOverrides>,
loadEnv: booleanEnv.default('false'), ): EnvOverrides {
path: 'string = "/etc/headplane/config.yaml"', const loadResult = booleanEnv(overrides.loadEnv);
}); if (loadResult instanceof type.errors) {
export function configureConfig(overrides: Overrides) {
const result = schema(overrides);
if (result instanceof type.errors) {
log.error( log.error(
'config', 'config',
'HEADPLANE_LOAD_ENV_OVERRIDES or HEADPLANE_CONFIG_PATH value is invalid: %s', 'HEADPLANE_LOAD_ENV_OVERRIDES value is invalid: %s',
result.summary, loadResult.summary,
); );
exit(1); exit(1);
} }
return result; const pathResult = type('string | undefined')(overrides.path);
if (pathResult instanceof type.errors) {
log.error(
'config',
'HEADPLANE_CONFIG_PATH value is invalid: %s',
pathResult.summary,
);
exit(1);
}
return {
loadEnv: loadResult,
path: pathResult ?? '/etc/headplane/config.yaml',
};
} }

View File

@ -1,4 +1,4 @@
import { versions } from 'node:process'; import { env, versions } from 'node:process';
import type { UpgradeWebSocket } from 'hono/ws'; import type { UpgradeWebSocket } from 'hono/ws';
import { createHonoServer } from 'react-router-hono-server/node'; import { createHonoServer } from 'react-router-hono-server/node';
import type { WebSocket } from 'ws'; import type { WebSocket } from 'ws';
@ -20,11 +20,11 @@ declare global {
// This module contains a side-effect because everything running here // This module contains a side-effect because everything running here
// exists for the lifetime of the process, making it appropriate. // exists for the lifetime of the process, making it appropriate.
log.info('server', 'Running Node.js %s', versions.node); log.info('server', 'Running Node.js %s', versions.node);
configureLogger(process.env[envVariables.debugLog]); configureLogger(env[envVariables.debugLog]);
const config = await loadConfig( const config = await loadConfig(
configureConfig({ configureConfig({
loadEnv: process.env[envVariables.envOverrides], loadEnv: env[envVariables.envOverrides],
path: process.env[envVariables.configPath], path: env[envVariables.configPath],
}), }),
); );

View File

@ -22,6 +22,9 @@ Here are a few more examples:
**This functionality is NOT enabled by default!** **This functionality is NOT enabled by default!**
To enable it, set the environment variable **`HEADPLANE_LOAD_ENV_OVERRIDES=true`**. To enable it, set the environment variable **`HEADPLANE_LOAD_ENV_OVERRIDES=true`**.
Setting this also tells Headplane to load the relative `.env` file into the environment. Setting this also tells Headplane to load the relative `.env` file into the environment.
> Also note that this is **only** for configuration overrides, not for general
> environment variables meaning you cannot specify variables such as
> `HEADPLANE_DEBUG_LOG=true` or `HEADPLANE_CONFIG_PATH=/etc/headplane/config.yaml`.
## Debugging ## Debugging
To enable debug logging, set the **`HEADPLANE_DEBUG_LOG=true`** environment variable. To enable debug logging, set the **`HEADPLANE_DEBUG_LOG=true`** environment variable.

View File

@ -5,9 +5,9 @@
"version": "0.5.5", "version": "0.5.5",
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "react-router build && vite build -c server/vite.config.ts", "build": "react-router build",
"dev": "HEADPLANE_LOAD_ENV_OVERRIDES=true vite-node -w -c server/vite.config.ts server/entry.ts", "dev": "HEADPLANE_LOAD_ENV_OVERRIDES=true HEADPLANE_CONFIG_PATH=./config.example.yaml p react-router dev",
"start": "node build/headplane/server.js", "start": "node build/server/index.js",
"typecheck": "tsc" "typecheck": "tsc"
}, },
"dependencies": { "dependencies": {
@ -16,6 +16,7 @@
"@dnd-kit/sortable": "^8.0.0", "@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
"@fontsource-variable/inter": "^5.1.1", "@fontsource-variable/inter": "^5.1.1",
"@hono/node-server": "^1.14.0",
"@kubernetes/client-node": "^0.22.3", "@kubernetes/client-node": "^0.22.3",
"@primer/octicons-react": "^19.14.0", "@primer/octicons-react": "^19.14.0",
"@react-aria/toast": "3.0.0-beta.18", "@react-aria/toast": "3.0.0-beta.18",
@ -56,16 +57,16 @@
"@react-router/dev": "^7.4.0", "@react-router/dev": "^7.4.0",
"@types/websocket": "^1.0.10", "@types/websocket": "^1.0.10",
"@types/ws": "^8.5.13", "@types/ws": "^8.5.13",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.21",
"babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229",
"lefthook": "^1.10.9", "lefthook": "^1.10.9",
"postcss": "^8.4.49", "postcss": "^8.5.3",
"react-router-dom": "^7.4.0", "react-router-dom": "^7.4.0",
"react-scan": "^0.1.0", "react-scan": "^0.1.0",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"tailwindcss-react-aria-components": "^2.0.0", "tailwindcss-react-aria-components": "^2.0.0",
"typescript": "^5.7.2", "typescript": "^5.8.2",
"vite": "^6.2.2", "vite": "^6.2.2",
"vite-node": "^3.0.8", "vite-node": "^3.0.8",
"vite-plugin-babel": "^1.3.0", "vite-plugin-babel": "^1.3.0",

146
pnpm-lock.yaml generated
View File

@ -28,6 +28,9 @@ importers:
'@fontsource-variable/inter': '@fontsource-variable/inter':
specifier: ^5.1.1 specifier: ^5.1.1
version: 5.1.1 version: 5.1.1
'@hono/node-server':
specifier: ^1.14.0
version: 1.14.0(hono@4.7.5)
'@kubernetes/client-node': '@kubernetes/client-node':
specifier: ^0.22.3 specifier: ^0.22.3
version: 0.22.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) version: 0.22.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@ -39,7 +42,7 @@ importers:
version: 3.0.0-beta.18(react@19.0.0) version: 3.0.0-beta.18(react@19.0.0)
'@react-router/node': '@react-router/node':
specifier: ^7.4.0 specifier: ^7.4.0
version: 7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) version: 7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.8.2)
'@react-stately/toast': '@react-stately/toast':
specifier: 3.0.0-beta.7 specifier: 3.0.0-beta.7
version: 3.0.0-beta.7(react@19.0.0) version: 3.0.0-beta.7(react@19.0.0)
@ -102,7 +105,7 @@ importers:
version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-router-hono-server: react-router-hono-server:
specifier: ^2.11.0 specifier: ^2.11.0
version: 2.11.0(@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) version: 2.11.0(@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))
react-stately: react-stately:
specifier: ^3.35.0 specifier: ^3.35.0
version: 3.35.0(react@19.0.0) version: 3.35.0(react@19.0.0)
@ -136,7 +139,7 @@ importers:
version: 1.9.4 version: 1.9.4
'@react-router/dev': '@react-router/dev':
specifier: ^7.4.0 specifier: ^7.4.0
version: 7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) version: 7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)
'@types/websocket': '@types/websocket':
specifier: ^1.0.10 specifier: ^1.0.10
version: 1.0.10 version: 1.0.10
@ -144,8 +147,8 @@ importers:
specifier: ^8.5.13 specifier: ^8.5.13
version: 8.5.13 version: 8.5.13
autoprefixer: autoprefixer:
specifier: ^10.4.20 specifier: ^10.4.21
version: 10.4.20(postcss@8.4.49) version: 10.4.21(postcss@8.5.3)
babel-plugin-react-compiler: babel-plugin-react-compiler:
specifier: 19.0.0-beta-55955c9-20241229 specifier: 19.0.0-beta-55955c9-20241229
version: 19.0.0-beta-55955c9-20241229 version: 19.0.0-beta-55955c9-20241229
@ -153,8 +156,8 @@ importers:
specifier: ^1.10.9 specifier: ^1.10.9
version: 1.10.9 version: 1.10.9
postcss: postcss:
specifier: ^8.4.49 specifier: ^8.5.3
version: 8.4.49 version: 8.5.3
react-router-dom: react-router-dom:
specifier: ^7.4.0 specifier: ^7.4.0
version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@ -171,8 +174,8 @@ importers:
specifier: ^2.0.0 specifier: ^2.0.0
version: 2.0.0(tailwindcss@3.4.17) version: 2.0.0(tailwindcss@3.4.17)
typescript: typescript:
specifier: ^5.7.2 specifier: ^5.8.2
version: 5.7.2 version: 5.8.2
vite: vite:
specifier: ^6.2.2 specifier: ^6.2.2
version: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) version: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
@ -184,7 +187,7 @@ importers:
version: 1.3.0(@babel/core@7.26.0)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) version: 1.3.0(@babel/core@7.26.0)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))
vite-tsconfig-paths: vite-tsconfig-paths:
specifier: ^5.1.4 specifier: ^5.1.4
version: 5.1.4(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))
packages: packages:
@ -965,8 +968,8 @@ packages:
'@formatjs/intl-localematcher@0.5.8': '@formatjs/intl-localematcher@0.5.8':
resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==} resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==}
'@hono/node-server@1.13.8': '@hono/node-server@1.14.0':
resolution: {integrity: sha512-fsn8ucecsAXUoVxrUil0m13kOEq4mkX4/4QozCqmY+HpGfKl74OYSn8JcMA8GnG0ClfdRI4/ZSeG7zhFaVg+wg==} resolution: {integrity: sha512-YUCxJwgHRKSqjrdTk9e4VMGKN27MK5r4+MGPyZTgKH+IYbK+KtYbHeOcPGJ91KGGD6RIQiz2dAHxvjauNhOS8g==}
engines: {node: '>=18.14.1'} engines: {node: '>=18.14.1'}
peerDependencies: peerDependencies:
hono: ^4 hono: ^4
@ -1934,8 +1937,8 @@ packages:
asynckit@0.4.0: asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
autoprefixer@10.4.20: autoprefixer@10.4.21:
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -2261,8 +2264,8 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
hono@4.7.4: hono@4.7.5:
resolution: {integrity: sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg==} resolution: {integrity: sha512-fDOK5W2C1vZACsgLONigdZTRZxuBqFtcKh7bUQ5cVSbwI2RWjloJDcgFOVzbQrlI6pCmhlTsVYZ7zpLj4m4qMQ==}
engines: {node: '>=16.9.0'} engines: {node: '>=16.9.0'}
hosted-git-info@6.1.3: hosted-git-info@6.1.3:
@ -2517,11 +2520,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
node-gyp-build@4.8.4: node-gyp-build@4.8.4:
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
hasBin: true hasBin: true
@ -2666,10 +2664,6 @@ packages:
postcss-value-parser@4.2.0: postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
postcss@8.4.49:
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.3: postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
@ -3064,8 +3058,8 @@ packages:
resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==}
engines: {node: '>=16'} engines: {node: '>=16'}
typescript@5.7.2: typescript@5.8.2:
resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
@ -4010,23 +4004,23 @@ snapshots:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
'@hono/node-server@1.13.8(hono@4.7.4)': '@hono/node-server@1.14.0(hono@4.7.5)':
dependencies: dependencies:
hono: 4.7.4 hono: 4.7.5
'@hono/node-ws@1.1.0(@hono/node-server@1.13.8(hono@4.7.4))(bufferutil@4.0.9)(hono@4.7.4)(utf-8-validate@5.0.10)': '@hono/node-ws@1.1.0(@hono/node-server@1.14.0(hono@4.7.5))(bufferutil@4.0.9)(hono@4.7.5)(utf-8-validate@5.0.10)':
dependencies: dependencies:
'@hono/node-server': 1.13.8(hono@4.7.4) '@hono/node-server': 1.14.0(hono@4.7.5)
hono: 4.7.4 hono: 4.7.5
ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- utf-8-validate - utf-8-validate
'@hono/vite-dev-server@0.17.0(hono@4.7.4)': '@hono/vite-dev-server@0.17.0(hono@4.7.5)':
dependencies: dependencies:
'@hono/node-server': 1.13.8(hono@4.7.4) '@hono/node-server': 1.14.0(hono@4.7.5)
hono: 4.7.4 hono: 4.7.5
minimatch: 9.0.5 minimatch: 9.0.5
'@internationalized/date@3.6.0': '@internationalized/date@3.6.0':
@ -4798,7 +4792,7 @@ snapshots:
react: 19.0.0 react: 19.0.0
react-dom: 19.0.0(react@19.0.0) react-dom: 19.0.0(react@19.0.0)
'@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': '@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)':
dependencies: dependencies:
'@babel/core': 7.26.10 '@babel/core': 7.26.10
'@babel/generator': 7.26.10 '@babel/generator': 7.26.10
@ -4809,7 +4803,7 @@ snapshots:
'@babel/traverse': 7.26.10 '@babel/traverse': 7.26.10
'@babel/types': 7.26.10 '@babel/types': 7.26.10
'@npmcli/package-json': 4.0.1 '@npmcli/package-json': 4.0.1
'@react-router/node': 7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) '@react-router/node': 7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.8.2)
arg: 5.0.2 arg: 5.0.2
babel-dead-code-elimination: 1.0.9 babel-dead-code-elimination: 1.0.9
chokidar: 4.0.3 chokidar: 4.0.3
@ -4826,11 +4820,11 @@ snapshots:
react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
semver: 7.7.1 semver: 7.7.1
set-cookie-parser: 2.7.1 set-cookie-parser: 2.7.1
valibot: 0.41.0(typescript@5.7.2) valibot: 0.41.0(typescript@5.8.2)
vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
vite-node: 3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite-node: 3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
optionalDependencies: optionalDependencies:
typescript: 5.7.2 typescript: 5.8.2
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- babel-plugin-macros - babel-plugin-macros
@ -4847,7 +4841,7 @@ snapshots:
- tsx - tsx
- yaml - yaml
'@react-router/node@7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': '@react-router/node@7.4.0(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.8.2)':
dependencies: dependencies:
'@mjackson/node-fetch-server': 0.2.0 '@mjackson/node-fetch-server': 0.2.0
react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@ -4855,7 +4849,7 @@ snapshots:
stream-slice: 0.1.2 stream-slice: 0.1.2
undici: 6.21.2 undici: 6.21.2
optionalDependencies: optionalDependencies:
typescript: 5.7.2 typescript: 5.8.2
'@react-stately/calendar@3.7.0(react@19.0.0)': '@react-stately/calendar@3.7.0(react@19.0.0)':
dependencies: dependencies:
@ -5446,14 +5440,14 @@ snapshots:
asynckit@0.4.0: {} asynckit@0.4.0: {}
autoprefixer@10.4.20(postcss@8.4.49): autoprefixer@10.4.21(postcss@8.5.3):
dependencies: dependencies:
browserslist: 4.24.2 browserslist: 4.24.4
caniuse-lite: 1.0.30001677 caniuse-lite: 1.0.30001706
fraction.js: 4.3.7 fraction.js: 4.3.7
normalize-range: 0.1.2 normalize-range: 0.1.2
picocolors: 1.1.1 picocolors: 1.1.1
postcss: 8.4.49 postcss: 8.5.3
postcss-value-parser: 4.2.0 postcss-value-parser: 4.2.0
aws-sign2@0.7.0: {} aws-sign2@0.7.0: {}
@ -5816,7 +5810,7 @@ snapshots:
dependencies: dependencies:
function-bind: 1.1.2 function-bind: 1.1.2
hono@4.7.4: {} hono@4.7.5: {}
hosted-git-info@6.1.3: hosted-git-info@6.1.3:
dependencies: dependencies:
@ -6021,8 +6015,6 @@ snapshots:
nanoid@3.3.11: {} nanoid@3.3.11: {}
nanoid@3.3.8: {}
node-gyp-build@4.8.4: node-gyp-build@4.8.4:
optional: true optional: true
@ -6109,28 +6101,28 @@ snapshots:
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
postcss-import@15.1.0(postcss@8.4.49): postcss-import@15.1.0(postcss@8.5.3):
dependencies: dependencies:
postcss: 8.4.49 postcss: 8.5.3
postcss-value-parser: 4.2.0 postcss-value-parser: 4.2.0
read-cache: 1.0.0 read-cache: 1.0.0
resolve: 1.22.10 resolve: 1.22.10
postcss-js@4.0.1(postcss@8.4.49): postcss-js@4.0.1(postcss@8.5.3):
dependencies: dependencies:
camelcase-css: 2.0.1 camelcase-css: 2.0.1
postcss: 8.4.49 postcss: 8.5.3
postcss-load-config@4.0.2(postcss@8.4.49): postcss-load-config@4.0.2(postcss@8.5.3):
dependencies: dependencies:
lilconfig: 3.1.3 lilconfig: 3.1.3
yaml: 2.7.0 yaml: 2.7.0
optionalDependencies: optionalDependencies:
postcss: 8.4.49 postcss: 8.5.3
postcss-nested@6.2.0(postcss@8.4.49): postcss-nested@6.2.0(postcss@8.5.3):
dependencies: dependencies:
postcss: 8.4.49 postcss: 8.5.3
postcss-selector-parser: 6.1.2 postcss-selector-parser: 6.1.2
postcss-selector-parser@6.1.2: postcss-selector-parser@6.1.2:
@ -6140,12 +6132,6 @@ snapshots:
postcss-value-parser@4.2.0: {} postcss-value-parser@4.2.0: {}
postcss@8.4.49:
dependencies:
nanoid: 3.3.8
picocolors: 1.1.1
source-map-js: 1.2.1
postcss@8.5.3: postcss@8.5.3:
dependencies: dependencies:
nanoid: 3.3.11 nanoid: 3.3.11
@ -6254,15 +6240,15 @@ snapshots:
react-dom: 19.0.0(react@19.0.0) react-dom: 19.0.0(react@19.0.0)
react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react-router-hono-server@2.11.0(@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)): react-router-hono-server@2.11.0(@react-router/dev@7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)):
dependencies: dependencies:
'@drizzle-team/brocli': 0.11.0 '@drizzle-team/brocli': 0.11.0
'@hono/node-server': 1.13.8(hono@4.7.4) '@hono/node-server': 1.14.0(hono@4.7.5)
'@hono/node-ws': 1.1.0(@hono/node-server@1.13.8(hono@4.7.4))(bufferutil@4.0.9)(hono@4.7.4)(utf-8-validate@5.0.10) '@hono/node-ws': 1.1.0(@hono/node-server@1.14.0(hono@4.7.5))(bufferutil@4.0.9)(hono@4.7.5)(utf-8-validate@5.0.10)
'@hono/vite-dev-server': 0.17.0(hono@4.7.4) '@hono/vite-dev-server': 0.17.0(hono@4.7.5)
'@react-router/dev': 7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) '@react-router/dev': 7.4.0(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)
'@types/react': 19.0.2 '@types/react': 19.0.2
hono: 4.7.4 hono: 4.7.5
react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies: transitivePeerDependencies:
@ -6549,11 +6535,11 @@ snapshots:
normalize-path: 3.0.0 normalize-path: 3.0.0
object-hash: 3.0.0 object-hash: 3.0.0
picocolors: 1.1.1 picocolors: 1.1.1
postcss: 8.4.49 postcss: 8.5.3
postcss-import: 15.1.0(postcss@8.4.49) postcss-import: 15.1.0(postcss@8.5.3)
postcss-js: 4.0.1(postcss@8.4.49) postcss-js: 4.0.1(postcss@8.5.3)
postcss-load-config: 4.0.2(postcss@8.4.49) postcss-load-config: 4.0.2(postcss@8.5.3)
postcss-nested: 6.2.0(postcss@8.4.49) postcss-nested: 6.2.0(postcss@8.5.3)
postcss-selector-parser: 6.1.2 postcss-selector-parser: 6.1.2
resolve: 1.22.10 resolve: 1.22.10
sucrase: 3.35.0 sucrase: 3.35.0
@ -6596,9 +6582,9 @@ snapshots:
ts-interface-checker@0.1.13: {} ts-interface-checker@0.1.13: {}
tsconfck@3.1.4(typescript@5.7.2): tsconfck@3.1.4(typescript@5.8.2):
optionalDependencies: optionalDependencies:
typescript: 5.7.2 typescript: 5.8.2
tslib@2.6.2: {} tslib@2.6.2: {}
@ -6621,7 +6607,7 @@ snapshots:
type-fest@4.31.0: {} type-fest@4.31.0: {}
typescript@5.7.2: {} typescript@5.8.2: {}
undici-types@6.19.8: {} undici-types@6.19.8: {}
@ -6673,9 +6659,9 @@ snapshots:
uuid@3.4.0: {} uuid@3.4.0: {}
valibot@0.41.0(typescript@5.7.2): valibot@0.41.0(typescript@5.8.2):
optionalDependencies: optionalDependencies:
typescript: 5.7.2 typescript: 5.8.2
validate-npm-package-license@3.0.4: validate-npm-package-license@3.0.4:
dependencies: dependencies:
@ -6737,11 +6723,11 @@ snapshots:
'@babel/core': 7.26.0 '@babel/core': 7.26.0
vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)): vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)):
dependencies: dependencies:
debug: 4.4.0 debug: 4.4.0
globrex: 0.1.2 globrex: 0.1.2
tsconfck: 3.1.4(typescript@5.7.2) tsconfck: 3.1.4(typescript@5.8.2)
optionalDependencies: optionalDependencies:
vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite: 6.2.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies: transitivePeerDependencies: