feat: move env handling from dotenv to dotenvx

pull/715/head
Travis Fischer 2025-06-14 12:10:21 +07:00
rodzic 6d4c551f71
commit 1c414f5eb6
21 zmienionych plików z 216 dodań i 85 usunięć

11
.gitignore vendored
Wyświetl plik

@ -25,7 +25,11 @@ yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
# dotenv files
.env
.env.production
.env.staging
.env.test
.env*.local
# turbo
@ -38,14 +42,15 @@ yarn-error.log*
*.tsbuildinfo
next-env.d.ts
.env
old/
out/
apps/api/auth-db-temp.json
.dev.vars
.dev.vars.production
.dev.vars.staging
.dev.vars.test
.wrangler
.sentryclirc

Wyświetl plik

@ -7,6 +7,7 @@
DATABASE_URL=
# SENTRY_DSN is optional (not set by default in development environment)
SENTRY_DSN=
STRIPE_SECRET_KEY=

Wyświetl plik

@ -1,6 +1,3 @@
/* eslint-disable no-process-env */
import 'dotenv/config'
import { defineConfig } from 'drizzle-kit'
export default defineConfig({
@ -8,6 +5,7 @@ export default defineConfig({
schema: './src/db/schema/index.ts',
dialect: 'postgresql',
dbCredentials: {
// eslint-disable-next-line no-process-env
url: process.env.DATABASE_URL!
}
})

Wyświetl plik

@ -19,7 +19,12 @@
},
"scripts": {
"build": "tsup",
"dev": "tsx src/server.ts",
"dev": "dotenvx run -- tsx src/server.ts",
"dev:prod": "dotenvx run -o -f .env.production -- tsx src/server.ts",
"start": "dotenvx run -- node dist/server.js",
"start:prod": "dotenvx run -o -f .env.production -- node dist/server.js",
"drizzle-kit": "dotenvx run -- drizzle-kit",
"drizzle-kit:prod": "dotenvx run -o -f .env.production -- drizzle-kit",
"clean": "del dist",
"test": "run-s test:*",
"test:typecheck": "tsc --noEmit"
@ -38,7 +43,6 @@
"@hono/zod-openapi": "catalog:",
"@paralleldrive/cuid2": "catalog:",
"@sentry/node": "catalog:",
"dotenv": "catalog:",
"exit-hook": "catalog:",
"hono": "catalog:",
"octokit": "catalog:",

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import type { Simplify } from 'type-fest'
import { parseZodSchema } from '@agentic/platform-core'
import {

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import * as Sentry from '@sentry/node'
// This MUST be run before anything else (imported first in the root file).

Wyświetl plik

@ -5,7 +5,7 @@
# a local .env file in order to run this project.
# ------------------------------------------------------------------------------
AGENTIC_API_BASE_URL=
AGENTIC_API_ACCESS_TOKEN=
AGENTIC_GATEWAY_BASE_URL=
AGENTIC_API_BASE_URL='http://localhost:3001'
AGENTIC_GATEWAY_BASE_URL='http://localhost:8787'

Wyświetl plik

@ -14,9 +14,12 @@
"scripts": {
"test": "run-s test:*",
"test:typecheck": "tsc --noEmit",
"e2e": "vitest run",
"e2e-http": "vitest run src/http-e2e.test.ts",
"e2e-mcp": "vitest run src/mcp-e2e.test.ts"
"e2e": "dotenvx run -- vitest run",
"e2e-http": "dotenvx run -- vitest run src/http-e2e.test.ts",
"e2e-mcp": "dotenvx run -- vitest run src/mcp-e2e.test.ts",
"e2e:prod": "dotenvx run -o -f .env.production -- vitest run",
"e2e-http:prod": "dotenvx run -o -f .env.production -- vitest run src/http-e2e.test.ts",
"e2e-mcp:prod": "dotenvx run -o -f .env.production -- vitest run src/mcp-e2e.test.ts"
},
"dependencies": {
"ky": "catalog:",

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import { parseZodSchema } from '@agentic/platform-core'
import { z } from 'zod'

Wyświetl plik

@ -25,7 +25,7 @@
"test": "run-s test:*",
"test:typecheck": "tsc --noEmit",
"test:unit": "vitest run",
"sentry:sourcemaps": "_SENTRY_RELEASE=$(sentry-cli releases propose-version) && sentry-cli releases new $_SENTRY_RELEASE --org=agentic-kj --project=node && sentry-cli sourcemaps upload --org=agentic-kj --project=node --release=$_SENTRY_RELEASE --strip-prefix 'dist/..' dist",
"sentry:sourcemaps": "_SENTRY_RELEASE=$(sentry-cli releases propose-version) && sentry-cli releases new $_SENTRY_RELEASE --org=agentic-platform --project=node && sentry-cli sourcemaps upload --org=agentic-platform --project=node --release=$_SENTRY_RELEASE --strip-prefix 'dist/..' dist",
"postdeploy": "pnpm sentry:sourcemaps"
},
"dependencies": {

Wyświetl plik

@ -1,13 +1,11 @@
@import 'tailwindcss';
@plugin '@tailwindcss/typography';
@custom-variant dark (&:is(.dark *));
/* @custom-variant dark (&:where(.dark, .dark *)); */
@theme {
--font-heading: var(--font-josefin-sans);
--font-body: var(--font-inter);
--font-heading: var(--font-geist);
--font-body: var(--font-geist);
}
:root {

Wyświetl plik

@ -2,7 +2,7 @@ import './globals.css'
import type { Metadata } from 'next'
import cs from 'clsx'
import { Inter } from 'next/font/google'
import { Geist } from 'next/font/google'
import { Toaster } from 'sonner'
import { Bootstrap } from '@/components/bootstrap'
@ -14,16 +14,11 @@ import * as config from '@/lib/config'
import styles from './styles.module.css'
const inter = Inter({
variable: '--font-inter',
const geist = Geist({
variable: '--font-geist',
subsets: ['latin']
})
// const josefinSans = Josefin_Sans({
// variable: '--font-josefin-sans',
// subsets: ['latin']
// })
export const metadata: Metadata = {
title: config.title,
description: config.description,
@ -53,7 +48,7 @@ export default function RootLayout({
}>) {
return (
<html lang='en' suppressHydrationWarning>
<body className={`${inter.variable} antialiased`}>
<body className={`${geist.variable} antialiased`}>
<ThemeProvider
attribute='class'
defaultTheme='dark'

Wyświetl plik

@ -29,10 +29,10 @@
"knip": "knip"
},
"devDependencies": {
"@dotenvx/dotenvx": "^1.44.2",
"@fisch0920/config": "catalog:",
"@types/node": "catalog:",
"del-cli": "catalog:",
"dotenv": "catalog:",
"eslint": "catalog:",
"eslint-plugin-drizzle": "catalog:",
"knip": "catalog:",

Wyświetl plik

@ -31,7 +31,6 @@
"@hono/node-server": "catalog:",
"commander": "catalog:",
"conf": "catalog:",
"dotenv": "catalog:",
"get-port": "catalog:",
"hono": "catalog:",
"open": "catalog:",

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import { AgenticApiClient } from '@agentic/platform-api-client'
import { Command } from 'commander'
import restoreCursor from 'restore-cursor'

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import { z } from 'zod'
export const envSchema = z.object({

Wyświetl plik

@ -1,5 +1,3 @@
import 'dotenv/config'
import { FastMCP } from 'fastmcp'
import { z } from 'zod'

Wyświetl plik

@ -25,7 +25,7 @@
"@agentic/platform-core": "workspace:*",
"@hono/sentry": "catalog:",
"@sentry/core": "catalog:",
"dotenv": "catalog:",
"dotenv": "^16.5.0",
"eventid": "catalog:",
"hono": "catalog:",
"ky": "catalog:",

Wyświetl plik

@ -16,7 +16,7 @@ export const envSchema = z
LOG_LEVEL: logLevelsSchema.default('info'),
SENTRY_DSN: z.string().url()
SENTRY_DSN: z.string().url().optional()
})
.strip()
@ -30,6 +30,12 @@ export function parseEnv(inputEnv: unknown) {
const isProd = env.ENVIRONMENT === 'production'
const isBrowser = (globalThis as any).window !== undefined
if (isProd && !env.SENTRY_DSN) {
throw new Error(
'Internal error: missing required "SENTRY_DSN" environment variable in production'
)
}
return {
...env,
isDev,

Wyświetl plik

@ -108,9 +108,6 @@ catalogs:
del-cli:
specifier: ^6.0.0
version: 6.0.0
dotenv:
specifier: ^16.5.0
version: 16.5.0
drizzle-kit:
specifier: ^0.31.1
version: 0.31.1
@ -266,6 +263,9 @@ importers:
.:
devDependencies:
'@dotenvx/dotenvx':
specifier: ^1.44.2
version: 1.44.2
'@fisch0920/config':
specifier: 'catalog:'
version: 1.1.2(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(prettier@3.5.3)(typescript@5.8.3)(vitest@3.2.3(@edge-runtime/vm@5.0.0)(@types/node@22.15.29)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(tsx@4.20.1)(yaml@2.8.0))
@ -275,9 +275,6 @@ importers:
del-cli:
specifier: 'catalog:'
version: 6.0.0
dotenv:
specifier: 'catalog:'
version: 16.5.0
eslint:
specifier: 'catalog:'
version: 9.28.0(jiti@2.4.2)
@ -365,9 +362,6 @@ importers:
'@sentry/node':
specifier: 'catalog:'
version: 9.28.1
dotenv:
specifier: 'catalog:'
version: 16.5.0
exit-hook:
specifier: 'catalog:'
version: 4.0.0
@ -654,9 +648,6 @@ importers:
conf:
specifier: 'catalog:'
version: 14.0.0
dotenv:
specifier: 'catalog:'
version: 16.5.0
get-port:
specifier: 'catalog:'
version: 7.1.0
@ -781,7 +772,7 @@ importers:
specifier: 'catalog:'
version: 9.28.1
dotenv:
specifier: 'catalog:'
specifier: ^16.5.0
version: 16.5.0
eventid:
specifier: 'catalog:'
@ -1089,9 +1080,19 @@ packages:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
'@dotenvx/dotenvx@1.44.2':
resolution: {integrity: sha512-2C44+G2dch4cB6zw7+oGQ9VcFQuuVhc5xOzfVvY7iUEj2PRhiVMIB6SpNMK1V5TvpdqrAqCYFjclK18Mh9vwNQ==}
hasBin: true
'@drizzle-team/brocli@0.10.2':
resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
'@ecies/ciphers@0.2.3':
resolution: {integrity: sha512-tapn6XhOueMwht3E2UzY0ZZjYokdaw9XtL9kEyjhQ/Fb9vL9xTFbOaI+fV0AWvTpYu4BNloC6getKW6NtSg4mA==}
engines: {bun: '>=1', deno: '>=2', node: '>=16'}
peerDependencies:
'@noble/ciphers': ^1.0.0
'@edge-runtime/primitives@6.0.0':
resolution: {integrity: sha512-FqoxaBT+prPBHBwE1WXS1ocnu/VLTQyZ6NMUBAdbP7N2hsFTTxMC/jMu2D/8GAlMQfxeuppcPuCUk/HO3fpIvA==}
engines: {node: '>=18'}
@ -2072,6 +2073,14 @@ packages:
cpu: [x64]
os: [win32]
'@noble/ciphers@1.3.0':
resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==}
engines: {node: ^14.21.3 || >=16}
'@noble/curves@1.9.2':
resolution: {integrity: sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==}
engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16}
@ -3768,6 +3777,10 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
commander@11.1.0:
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
engines: {node: '>=16'}
commander@13.1.0:
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
@ -4098,6 +4111,10 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
eciesjs@0.4.15:
resolution: {integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==}
engines: {bun: '>=1', deno: '>=2', node: '>=16'}
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@ -4387,6 +4404,10 @@ packages:
resolution: {integrity: sha512-fvIkb9qZzdMxgZrEQDyll+9oJsyaVvY92I2Re+qK0qEJ+w5s0X3dtz+M0VAPOjP1gtU3iqWyjQ0G3nvd5CLZ2g==}
engines: {node: '>=20.0.0'}
execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
execa@9.6.0:
resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
engines: {node: ^18.19.0 || >=20.5.0}
@ -4593,6 +4614,10 @@ packages:
get-source@2.0.12:
resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
get-stream@9.0.1:
resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
engines: {node: '>=18'}
@ -4711,6 +4736,10 @@ packages:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
human-signals@8.0.1:
resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
engines: {node: '>=18.18.0'}
@ -4894,6 +4923,10 @@ packages:
resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
engines: {node: '>= 0.4'}
is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
is-stream@4.0.1:
resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
engines: {node: '>=18'}
@ -5247,6 +5280,9 @@ packages:
resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
engines: {node: '>=18'}
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@ -5276,6 +5312,10 @@ packages:
engines: {node: '>=10.0.0'}
hasBin: true
mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
mimic-function@5.0.1:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
@ -5443,6 +5483,10 @@ packages:
engines: {node: ^20.5.0 || >=22.0.0, npm: '>= 10'}
hasBin: true
npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
npm-run-path@6.0.0:
resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
engines: {node: '>=18'}
@ -5459,6 +5503,10 @@ packages:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
object-treeify@1.1.33:
resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==}
engines: {node: '>= 10'}
object.assign@4.1.7:
resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
engines: {node: '>= 0.4'}
@ -5493,6 +5541,10 @@ packages:
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
onetime@7.0.0:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
@ -6088,6 +6140,9 @@ packages:
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@ -6249,6 +6304,10 @@ packages:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
strip-final-newline@4.0.0:
resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
engines: {node: '>=18'}
@ -6760,6 +6819,11 @@ packages:
engines: {node: '>= 8'}
hasBin: true
which@4.0.0:
resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
engines: {node: ^16.13.0 || >=18.0.0}
hasBin: true
which@5.0.0:
resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==}
engines: {node: ^18.17.0 || >=20.5.0}
@ -7071,8 +7135,24 @@ snapshots:
dependencies:
'@jridgewell/trace-mapping': 0.3.9
'@dotenvx/dotenvx@1.44.2':
dependencies:
commander: 11.1.0
dotenv: 16.5.0
eciesjs: 0.4.15
execa: 5.1.1
fdir: 6.4.4(picomatch@4.0.2)
ignore: 5.3.2
object-treeify: 1.1.33
picomatch: 4.0.2
which: 4.0.0
'@drizzle-team/brocli@0.10.2': {}
'@ecies/ciphers@0.2.3(@noble/ciphers@1.3.0)':
dependencies:
'@noble/ciphers': 1.3.0
'@edge-runtime/primitives@6.0.0': {}
'@edge-runtime/vm@5.0.0':
@ -7714,6 +7794,12 @@ snapshots:
'@next/swc-win32-x64-msvc@15.3.3':
optional: true
'@noble/ciphers@1.3.0': {}
'@noble/curves@1.9.2':
dependencies:
'@noble/hashes': 1.8.0
'@noble/hashes@1.8.0': {}
'@nodelib/fs.scandir@2.1.5':
@ -9490,6 +9576,8 @@ snapshots:
colorette@2.0.20: {}
commander@11.1.0: {}
commander@13.1.0: {}
commander@14.0.0: {}
@ -9715,6 +9803,13 @@ snapshots:
eastasianwidth@0.2.0: {}
eciesjs@0.4.15:
dependencies:
'@ecies/ciphers': 0.2.3(@noble/ciphers@1.3.0)
'@noble/ciphers': 1.3.0
'@noble/curves': 1.9.2
'@noble/hashes': 1.8.0
ee-first@1.1.1: {}
electron-to-chromium@1.5.143: {}
@ -10197,6 +10292,18 @@ snapshots:
dependencies:
eventsource-parser: 3.0.2
execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
get-stream: 6.0.1
human-signals: 2.1.0
is-stream: 2.0.1
merge-stream: 2.0.0
npm-run-path: 4.0.1
onetime: 5.1.2
signal-exit: 3.0.7
strip-final-newline: 2.0.0
execa@9.6.0:
dependencies:
'@sindresorhus/merge-streams': 4.0.0
@ -10449,6 +10556,8 @@ snapshots:
data-uri-to-buffer: 2.0.2
source-map: 0.6.1
get-stream@6.0.1: {}
get-stream@9.0.1:
dependencies:
'@sec-ant/readable-stream': 0.4.1
@ -10588,6 +10697,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
human-signals@2.1.0: {}
human-signals@8.0.1: {}
hyphenate-style-name@1.1.0: {}
@ -10747,6 +10858,8 @@ snapshots:
dependencies:
call-bound: 1.0.4
is-stream@2.0.1: {}
is-stream@4.0.1: {}
is-string@1.1.1:
@ -11059,6 +11172,8 @@ snapshots:
merge-descriptors@2.0.0: {}
merge-stream@2.0.0: {}
merge2@1.4.1: {}
micromatch@4.0.8:
@ -11080,6 +11195,8 @@ snapshots:
mime@3.0.0: {}
mimic-fn@2.1.0: {}
mimic-function@5.0.1: {}
min-indent@1.0.1: {}
@ -11240,6 +11357,10 @@ snapshots:
shell-quote: 1.8.2
which: 5.0.0
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
npm-run-path@6.0.0:
dependencies:
path-key: 4.0.0
@ -11251,6 +11372,8 @@ snapshots:
object-keys@1.1.1: {}
object-treeify@1.1.33: {}
object.assign@4.1.7:
dependencies:
call-bind: 1.0.8
@ -11311,6 +11434,10 @@ snapshots:
dependencies:
wrappy: 1.0.2
onetime@5.1.2:
dependencies:
mimic-fn: 2.1.0
onetime@7.0.0:
dependencies:
mimic-function: 5.0.1
@ -12020,6 +12147,8 @@ snapshots:
siginfo@2.0.0: {}
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
simple-git-hooks@2.13.0: {}
@ -12214,6 +12343,8 @@ snapshots:
strip-bom@3.0.0: {}
strip-final-newline@2.0.0: {}
strip-final-newline@4.0.0: {}
strip-indent@4.0.0:
@ -12733,6 +12864,10 @@ snapshots:
dependencies:
isexe: 2.0.0
which@4.0.0:
dependencies:
isexe: 3.1.1
which@5.0.0:
dependencies:
isexe: 3.1.1

Wyświetl plik

@ -3,35 +3,35 @@ packages:
- apps/*
- packages/fixtures/valid/*
onlyBuiltDependencies:
- "@sentry/cli"
- '@sentry/cli'
catalog:
"@agentic/openauth": ^0.4.3
"@ai-sdk/openai": ^1.3.22
"@apideck/better-ajv-errors": ^0.3.6
"@clack/prompts": ^0.11.0
"@cloudflare/workers-types": ^4.20250610.0
"@commander-js/extra-typings": ^14.0.0
"@edge-runtime/vm": ^5.0.0
"@fisch0920/config": ^1.1.2
"@fisch0920/drizzle-orm": ^0.43.7
"@fisch0920/drizzle-zod": ^0.7.9
"@hono/node-server": ^1.14.4
"@hono/sentry": ^1.2.2
"@hono/zod-openapi": ^0.19.8
"@hono/zod-validator": ^0.7.0
"@modelcontextprotocol/sdk": ^1.12.1
"@paralleldrive/cuid2": ^2.2.2
"@react-email/components": ^0.0.42
"@redocly/openapi-core": ^1.34.3
"@sentry/cli": ^2.46.0
"@sentry/cloudflare": ^9.28.1
"@sentry/core": ^9.28.1
"@sentry/node": ^9.28.1
"@types/ms": ^2.1.0
"@types/node": ^22.15.29
"@types/react": ^19.1.8
"@types/react-dom": ^19.1.6
"@types/semver": ^7.7.0
'@agentic/openauth': ^0.4.3
'@ai-sdk/openai': ^1.3.22
'@apideck/better-ajv-errors': ^0.3.6
'@clack/prompts': ^0.11.0
'@cloudflare/workers-types': ^4.20250610.0
'@commander-js/extra-typings': ^14.0.0
'@edge-runtime/vm': ^5.0.0
'@fisch0920/config': ^1.1.2
'@fisch0920/drizzle-orm': ^0.43.7
'@fisch0920/drizzle-zod': ^0.7.9
'@hono/node-server': ^1.14.4
'@hono/sentry': ^1.2.2
'@hono/zod-openapi': ^0.19.8
'@hono/zod-validator': ^0.7.0
'@modelcontextprotocol/sdk': ^1.12.1
'@paralleldrive/cuid2': ^2.2.2
'@react-email/components': ^0.0.42
'@redocly/openapi-core': ^1.34.3
'@sentry/cli': ^2.46.0
'@sentry/cloudflare': ^9.28.1
'@sentry/core': ^9.28.1
'@sentry/node': ^9.28.1
'@types/ms': ^2.1.0
'@types/node': ^22.15.29
'@types/react': ^19.1.8
'@types/react-dom': ^19.1.6
'@types/semver': ^7.7.0
agents: ^0.0.95
ai: ^4.3.15
ajv: ^8.17.1
@ -42,7 +42,6 @@ catalog:
conf: ^14.0.0
decamelize: ^6.0.0
del-cli: ^6.0.0
dotenv: ^16.5.0
drizzle-kit: ^0.31.1
drizzle-orm: ^0.44.2
email-validator: ^2.0.4