diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index facfc9bb0..7dbfc58ec 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -105,11 +105,9 @@ jobs: - name: Upload documentation to database if: ${{ env.REF_TYPE == 'tag' && (!inputs.ref || inputs.ref == 'main') }} env: - DATABASE_URL: ${{ secrets.DATABASE_URL }} CF_D1_DOCS_API_KEY: ${{ secrets.CF_D1_DOCS_API_KEY }} CF_D1_DOCS_ID: ${{ secrets.CF_D1_DOCS_ID }} CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -123,11 +121,9 @@ jobs: - name: Upload documentation to database if: ${{ env.REF_TYPE == 'tag' && inputs.ref && inputs.ref != 'main' }} env: - DATABASE_URL: ${{ secrets.DATABASE_URL }} CF_D1_DOCS_API_KEY: ${{ secrets.CF_D1_DOCS_API_KEY }} CF_D1_DOCS_ID: ${{ secrets.CF_D1_DOCS_ID }} CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -141,7 +137,6 @@ jobs: - name: Upload split documentation to blob storage if: ${{ env.REF_TYPE == 'tag' && (!inputs.ref || inputs.ref == 'main') }} env: - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -154,7 +149,6 @@ jobs: - name: Upload split documentation to blob storage if: ${{ env.REF_TYPE == 'tag' && inputs.ref && inputs.ref != 'main' }} env: - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -181,11 +175,9 @@ jobs: - name: Upload documentation to database if: ${{ env.REF_TYPE == 'branch' && (!inputs.ref || inputs.ref == 'main') }} env: - DATABASE_URL: ${{ secrets.DATABASE_URL }} CF_D1_DOCS_API_KEY: ${{ secrets.CF_D1_DOCS_API_KEY }} CF_D1_DOCS_ID: ${{ secrets.CF_D1_DOCS_ID }} CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -196,11 +188,9 @@ jobs: - name: Upload documentation to database if: ${{ env.REF_TYPE == 'branch' && inputs.ref && inputs.ref != 'main' }} env: - DATABASE_URL: ${{ secrets.DATABASE_URL }} CF_D1_DOCS_API_KEY: ${{ secrets.CF_D1_DOCS_API_KEY }} CF_D1_DOCS_ID: ${{ secrets.CF_D1_DOCS_ID }} CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -211,7 +201,6 @@ jobs: - name: Upload split documentation to blob storage if: ${{ env.REF_TYPE == 'branch' && (!inputs.ref || inputs.ref == 'main') }} env: - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} @@ -221,7 +210,6 @@ jobs: - name: Upload split documentation to blob storage if: ${{ env.REF_TYPE == 'branch' && inputs.ref && inputs.ref != 'main' }} env: - BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }} CF_R2_DOCS_URL: ${{ secrets.CF_R2_DOCS_URL }} CF_R2_DOCS_ACCESS_KEY_ID: ${{ secrets.CF_R2_DOCS_ACCESS_KEY_ID }} CF_R2_DOCS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_DOCS_SECRET_ACCESS_KEY }} diff --git a/apps/website/package.json b/apps/website/package.json index 1732959f5..5023a68e3 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -51,6 +51,7 @@ "@vercel/analytics": "^1.5.0", "@vercel/edge-config": "^1.4.0", "@vercel/postgres": "^0.10.0", + "cloudflare": "^4.2.0", "cmdk": "^1.1.1", "cva": "1.0.0-beta.3", "geist": "^1.3.1", diff --git a/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/opengraph-image.tsx.bak b/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/opengraph-image.tsx.bak index ebc257e77..11fd8ec5f 100644 --- a/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/opengraph-image.tsx.bak +++ b/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/opengraph-image.tsx.bak @@ -31,7 +31,7 @@ export default async function Image({ const isMain = version === 'main'; const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${packageName}/${version}.${normalizeItem}.api.json`, + `${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.${normalizeItem}.api.json`, { next: { revalidate: isMain ? 0 : 604_800 } }, ); const node = await fileContent.json(); diff --git a/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/page.tsx b/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/page.tsx index f563bf3bc..e17047f05 100644 --- a/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/page.tsx +++ b/apps/website/src/app/docs/packages/[packageName]/[version]/[[...item]]/page.tsx @@ -7,6 +7,7 @@ import type { Metadata } from 'next'; import { MDXRemote } from 'next-mdx-remote-client/rsc'; import remarkGfm from 'remark-gfm'; import { DocItem } from '@/components/DocItem'; +import { PACKAGES_WITH_ENTRY_POINTS } from '@/util/constants'; import { fetchNode } from '@/util/fetchNode'; import { parseDocsPathParams } from '@/util/parseDocsPathParams'; import { getSingletonHighlighter } from '@/util/shiki.bundle'; @@ -52,6 +53,12 @@ export default async function Page({ const { entryPoints: parsedEntrypoints, foundItem } = parseDocsPathParams(item); if (!foundItem) { + const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName); + + if (hasEntryPoint) { + return <>Placeholder; + } + const fileContent = await readFile(join(process.cwd(), `src/assets/readme/${packageName}/home-README.md`), 'utf8'); return ( diff --git a/apps/website/src/middleware.ts b/apps/website/src/middleware.ts index 1bd4ceb2e..c2d2880a8 100644 --- a/apps/website/src/middleware.ts +++ b/apps/website/src/middleware.ts @@ -1,20 +1,25 @@ -import { sql } from '@vercel/postgres'; +import Cloudflare from 'cloudflare'; import { NextResponse, type NextRequest } from 'next/server'; import { PACKAGES } from './util/constants'; import { ENV } from './util/env'; +const client = new Cloudflare({ + apiToken: process.env.CF_D1_DOCS_API_KEY, +}); + async function fetchLatestVersion(packageName: string): Promise { if (ENV.IS_LOCAL_DEV) { return 'main'; } try { - const { rows } = await sql<{ version: string }>`with ordered_versions as ( - select version from documentation where name = ${packageName} and version != 'main' order by string_to_array(version, '.')::int[] desc - ) - select version from ordered_versions limit 1`; + const { result } = await client.d1.database.query(process.env.CF_D1_DOCS_ID!, { + account_id: process.env.CF_ACCOUNT_ID!, + sql: `select version from documentation where name = ? and version != 'main' order by version desc limit 1;`, + params: [packageName], + }); - return rows[0]?.version ?? 'main'; + return (result[0]?.results as { version: string }[] | undefined)?.[0]?.version ?? 'main'; } catch { return ''; } diff --git a/apps/website/src/util/constants.ts b/apps/website/src/util/constants.ts index 4a51b4c81..9f7481b0a 100644 --- a/apps/website/src/util/constants.ts +++ b/apps/website/src/util/constants.ts @@ -1,5 +1,6 @@ export const PACKAGES = [ { name: 'discord.js' }, + { name: 'discord-api-types' }, { name: 'brokers' }, { name: 'builders' }, { name: 'collection' }, @@ -11,7 +12,6 @@ export const PACKAGES = [ { name: 'util' }, { name: 'voice' }, { name: 'ws' }, - // { name: 'discord-api-types' }, ]; export const PACKAGES_WITH_ENTRY_POINTS = ['discord-api-types']; diff --git a/apps/website/src/util/fetchDependencies.ts b/apps/website/src/util/fetchDependencies.ts index 90e16bea9..55df789b1 100644 --- a/apps/website/src/util/fetchDependencies.ts +++ b/apps/website/src/util/fetchDependencies.ts @@ -29,7 +29,7 @@ export async function fetchDependencies({ try { const isMain = version === 'main'; const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${packageName}/${version}.dependencies.api.json`, + `${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.dependencies.api.json`, { next: { revalidate: isMain ? 0 : 604_800 } }, ); const parsedDependencies = await fileContent.json(); diff --git a/apps/website/src/util/fetchEntryPoints.ts b/apps/website/src/util/fetchEntryPoints.ts index fa168753c..98216b411 100644 --- a/apps/website/src/util/fetchEntryPoints.ts +++ b/apps/website/src/util/fetchEntryPoints.ts @@ -1,34 +1,36 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; -// import { sql } from '@vercel/postgres'; +import { PACKAGES_WITH_ENTRY_POINTS } from './constants'; import { ENV } from './env'; export async function fetchEntryPoints(packageName: string, version: string) { + const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName); + + if (!hasEntryPoint) { + return []; + } + if (ENV.IS_LOCAL_DEV) { const fileContent = await readFile( - join(process.cwd(), `../../packages/${packageName}/docs/${packageName}/split/${version}.entrypoints.api.json`), + join( + process.cwd(), + `${hasEntryPoint ? `../../../discord-api-types` : `../../packages/${packageName}`}/docs/${packageName}/split/${version}.entrypoints.api.json`, + ), 'utf8', ); return JSON.parse(fileContent); } - // try { - // const { rows } = await sql<{ - // entryPoint: string; - // }>`select entryPoint from documentation where name = ${packageName} and version = ${version} order by - // case - // when version = 'main' then 0 - // else 1 - // end, - // case - // when version = 'main' then null - // else string_to_array(version, '.')::int[] - // end desc; - // `; + const isMain = version === 'main'; + const fileContent = await fetch( + `${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.entrypoints.api.json`, + { next: { revalidate: isMain ? 0 : 604_800 } }, + ); - // return rows; - // } catch { - return []; - // } + if (!fileContent.ok) { + return null; + } + + return fileContent.json(); } diff --git a/apps/website/src/util/fetchNode.ts b/apps/website/src/util/fetchNode.ts index 07f19fb01..8a09da835 100644 --- a/apps/website/src/util/fetchNode.ts +++ b/apps/website/src/util/fetchNode.ts @@ -1,5 +1,6 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; +import { PACKAGES_WITH_ENTRY_POINTS } from './constants'; import { ENV } from './env'; export async function fetchNode({ @@ -13,6 +14,7 @@ export async function fetchNode({ readonly packageName: string; readonly version: string; }) { + const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName); const normalizedEntryPoint = entryPoint ? `${entryPoint}.` : ''; const normalizeItem = item.replaceAll(':', '.').toLowerCase(); @@ -20,7 +22,7 @@ export async function fetchNode({ const fileContent = await readFile( join( process.cwd(), - `../../packages/${packageName}/docs/${packageName}/split/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`, + `${hasEntryPoint || normalizedEntryPoint ? `../../../discord-api-types` : `../../packages/${packageName}`}/docs/${packageName}/split/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`, ), 'utf8', ); @@ -30,7 +32,7 @@ export async function fetchNode({ const isMain = version === 'main'; const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${packageName}/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`, + `${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`, { next: { revalidate: isMain ? 0 : 604_800 } }, ); diff --git a/apps/website/src/util/fetchSitemap.ts b/apps/website/src/util/fetchSitemap.ts index d76d0e224..d324c702f 100644 --- a/apps/website/src/util/fetchSitemap.ts +++ b/apps/website/src/util/fetchSitemap.ts @@ -1,5 +1,6 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; +import { PACKAGES_WITH_ENTRY_POINTS } from './constants'; import { ENV } from './env'; export async function fetchSitemap({ @@ -11,13 +12,14 @@ export async function fetchSitemap({ readonly packageName: string; readonly version: string; }) { + const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName); const normalizedEntryPoint = entryPoint ? `${entryPoint}.` : ''; if (ENV.IS_LOCAL_DEV) { const fileContent = await readFile( join( process.cwd(), - `../../packages/${packageName}/docs/${packageName}/split/${version}.${normalizedEntryPoint}sitemap.api.json`, + `${hasEntryPoint || normalizedEntryPoint ? `../../../discord-api-types` : `../../packages/${packageName}`}/docs/${packageName}/split/${version}.${normalizedEntryPoint}sitemap.api.json`, ), 'utf8', ); @@ -27,7 +29,7 @@ export async function fetchSitemap({ const isMain = version === 'main'; const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${packageName}/${version}.${normalizedEntryPoint}sitemap.api.json`, + `${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.${normalizedEntryPoint}sitemap.api.json`, { next: { revalidate: isMain ? 0 : 604_800 }, }, diff --git a/apps/website/src/util/fetchVersions.ts b/apps/website/src/util/fetchVersions.ts index 69e1af894..248207bd1 100644 --- a/apps/website/src/util/fetchVersions.ts +++ b/apps/website/src/util/fetchVersions.ts @@ -1,26 +1,23 @@ -import { sql } from '@vercel/postgres'; +import Cloudflare from 'cloudflare'; import { ENV } from './env'; +const client = new Cloudflare({ + apiToken: process.env.CF_D1_DOCS_API_KEY, +}); + export async function fetchVersions(packageName: string) { if (ENV.IS_LOCAL_DEV) { return [{ version: 'main' }]; } try { - const { rows } = await sql<{ - version: string; - }>`select version from documentation where name = ${packageName} order by - case - when version = 'main' then 0 - else 1 - end, - case - when version = 'main' then null - else string_to_array(version, '.')::int[] - end desc; - `; + const { result } = await client.d1.database.query(process.env.CF_D1_DOCS_ID!, { + account_id: process.env.CF_ACCOUNT_ID!, + sql: `select version from documentation where name = ? order by version desc;`, + params: [packageName], + }); - return rows; + return (result[0]?.results as { version: string }[] | undefined) ?? []; } catch { return []; } diff --git a/packages/actions/src/uploadDocumentation/index.ts b/packages/actions/src/uploadDocumentation/index.ts index 88773067c..57ca7b488 100644 --- a/packages/actions/src/uploadDocumentation/index.ts +++ b/packages/actions/src/uploadDocumentation/index.ts @@ -3,13 +3,10 @@ import process from 'node:process'; import { getInput, setFailed } from '@actions/core'; import { create } from '@actions/glob'; import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3'; -import { put } from '@vercel/blob'; -import { createPool } from '@vercel/postgres'; import Cloudflare from 'cloudflare'; import pLimit from 'p-limit'; if ( - !process.env.DATABASE_URL || !process.env.CF_R2_DOCS_URL || !process.env.CF_R2_DOCS_ACCESS_KEY_ID || !process.env.CF_R2_DOCS_SECRET_ACCESS_KEY || @@ -25,10 +22,6 @@ if ( const pkg = getInput('package') || '*'; const version = getInput('version') || 'main'; -const pool = createPool({ - connectionString: process.env.DATABASE_URL, -}); - const S3 = new S3Client({ region: 'auto', endpoint: process.env.CF_R2_DOCS_URL!, @@ -60,15 +53,6 @@ for await (const file of globber.globGenerator()) { const key = `${name.replace('@discordjs/', '')}/${version}.json`; - const { url } = await put(key, data, { - access: 'public', - addRandomSuffix: false, - }); - await pool.sql`insert into documentation (name, version, url) values (${name.replace( - '@discordjs/', - '', - )}, ${version}, ${url}) on conflict (name, version) do update set url = EXCLUDED.url`; - await S3.send( new PutObjectCommand({ Bucket: process.env.CF_R2_DOCS_BUCKET, diff --git a/packages/actions/src/uploadSplitDocumentation/index.ts b/packages/actions/src/uploadSplitDocumentation/index.ts index e1c41590a..85035f6f5 100644 --- a/packages/actions/src/uploadSplitDocumentation/index.ts +++ b/packages/actions/src/uploadSplitDocumentation/index.ts @@ -5,7 +5,6 @@ import { setTimeout as sleep } from 'node:timers/promises'; import { setFailed, getInput } from '@actions/core'; import { create } from '@actions/glob'; import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'; -import { put } from '@vercel/blob'; import PQueue from 'p-queue'; if ( @@ -47,10 +46,6 @@ for await (const file of globber.globGenerator()) { const name = basename(file).replace('main.', ''); async function upload(retries = 0) { try { - await put(`rewrite/${pkgName}/${version}.${name}`, data, { - access: 'public', - addRandomSuffix: false, - }); await S3.send( new PutObjectCommand({ Bucket: process.env.CF_R2_DOCS_BUCKET, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1659718a4..b65a9c638 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,7 +45,7 @@ importers: version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) eslint-import-resolver-typescript: specifier: ^4.3.4 - version: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + version: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.1 version: 19.1.0-rc.1(eslint@9.25.1(jiti@2.4.2)) @@ -275,6 +275,9 @@ importers: '@vercel/postgres': specifier: ^0.10.0 version: 0.10.0(utf-8-validate@6.0.5) + cloudflare: + specifier: ^4.2.0 + version: 4.2.0(encoding@0.1.13) cmdk: specifier: ^1.1.1 version: 1.1.1(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -568,7 +571,7 @@ importers: version: 9.25.1(jiti@2.4.2) eslint-config-neon: specifier: ^0.2.7 - version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) + version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) eslint-formatter-compact: specifier: ^8.40.0 version: 8.40.0 @@ -1454,7 +1457,7 @@ importers: version: 9.25.1(jiti@2.4.2) eslint-config-neon: specifier: ^0.2.7 - version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) + version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) eslint-formatter-compact: specifier: ^8.40.0 version: 8.40.0 @@ -1757,7 +1760,7 @@ importers: version: 9.25.1(jiti@2.4.2) eslint-config-neon: specifier: ^0.2.7 - version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) + version: 0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) eslint-formatter-compact: specifier: ^8.40.0 version: 8.40.0 @@ -21798,7 +21801,7 @@ snapshots: cloudflare@4.2.0(encoding@0.1.13): dependencies: - '@types/node': 18.19.87 + '@types/node': 18.17.9 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 agentkeepalive: 4.6.0 @@ -22928,7 +22931,7 @@ snapshots: eslint: 9.25.1(jiti@2.4.2) semver: 7.6.3 - eslint-config-neon@0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4): + eslint-config-neon@0.2.7(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4): dependencies: '@angular-eslint/eslint-plugin': 19.3.0(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) '@angular-eslint/eslint-plugin-template': 19.3.0(@typescript-eslint/types@8.31.0)(@typescript-eslint/utils@8.31.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4))(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) @@ -22943,7 +22946,7 @@ snapshots: '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.5.4) astro-eslint-parser: 1.2.2 eslint-config-prettier: 10.1.1(eslint@9.25.1(jiti@2.4.2)) - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)) eslint-mdx: 3.3.2(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-astro: 1.3.1(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-cypress: 4.2.0(eslint@9.25.1(jiti@2.4.2)) @@ -22994,7 +22997,7 @@ snapshots: '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) astro-eslint-parser: 1.2.2 eslint-config-prettier: 10.1.1(eslint@9.25.1(jiti@2.4.2)) - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)) eslint-mdx: 3.3.2(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-astro: 1.3.1(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-cypress: 4.2.0(eslint@9.25.1(jiti@2.4.2)) @@ -23097,7 +23100,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)): + eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)): dependencies: debug: 4.4.0 eslint: 9.25.1(jiti@2.4.2) @@ -23140,7 +23143,7 @@ snapshots: '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3) eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4(eslint-plugin-import-x@4.10.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color diff --git a/turbo.json b/turbo.json index db7536ea9..4ba96d5cb 100644 --- a/turbo.json +++ b/turbo.json @@ -34,17 +34,16 @@ "VERCEL_ENV", "NEXT_PUBLIC_LOCAL_DEV", "EDGE_CONFIG", - "DATABASE_URL", "MAX_FETCH_SIZE", - "POSTGRES_URL", - "POSTGRES_URL_NON_POOLING", - "POSTGRES_PRISMA_URL", - "POSTGRES_USER", - "POSTGRES_PASSWORD", - "POSTGRES_HOST", - "POSTGRES_DATABASE", - "BLOB_READ_WRITE_TOKEN", - "BLOB_STORAGE_URL" + "CF_ACCOUNT_ID", + "CF_R2_DOCS_URL", + "CF_R2_DOCS_ACCESS_KEY_ID", + "CF_R2_DOCS_SECRET_ACCESS_KEY", + "CF_R2_DOCS_TOKEN", + "CF_R2_DOCS_BUCKET", + "CF_R2_DOCS_BUCKET_URL", + "CF_D1_DOCS_ID", + "CF_D1_DOCS_API_KEY" ], "dependsOn": ["^build", "^docs"], "inputs": [ @@ -66,17 +65,16 @@ "VERCEL_ENV", "NEXT_PUBLIC_LOCAL_DEV", "EDGE_CONFIG", - "DATABASE_URL", "MAX_FETCH_SIZE", - "POSTGRES_URL", - "POSTGRES_URL_NON_POOLING", - "POSTGRES_PRISMA_URL", - "POSTGRES_USER", - "POSTGRES_PASSWORD", - "POSTGRES_HOST", - "POSTGRES_DATABASE", - "BLOB_READ_WRITE_TOKEN", - "BLOB_STORAGE_URL" + "CF_ACCOUNT_ID", + "CF_R2_DOCS_URL", + "CF_R2_DOCS_ACCESS_KEY_ID", + "CF_R2_DOCS_SECRET_ACCESS_KEY", + "CF_R2_DOCS_TOKEN", + "CF_R2_DOCS_BUCKET", + "CF_R2_DOCS_BUCKET_URL", + "CF_D1_DOCS_ID", + "CF_D1_DOCS_API_KEY" ], "dependsOn": ["^build"], "inputs": [