diff --git a/.changeset/nice-penguins-grow.md b/.changeset/nice-penguins-grow.md new file mode 100644 index 0000000000..678e32714d --- /dev/null +++ b/.changeset/nice-penguins-grow.md @@ -0,0 +1,10 @@ +--- +"uploadthing": minor +"@uploadthing/svelte": minor +"@uploadthing/react": minor +"@uploadthing/solid": minor +"@uploadthing/expo": minor +"@uploadthing/vue": minor +--- + +feat: allow custom fetch override diff --git a/.github/replace-workspace-protocol.ts b/.github/replace-workspace-protocol.ts index 85971886ac..ec74939503 100644 --- a/.github/replace-workspace-protocol.ts +++ b/.github/replace-workspace-protocol.ts @@ -49,7 +49,6 @@ for (const dep in workspacePkg.peerDependencies) { } // Remove unnecessary fields -workspacePkg.eslintConfig = undefined; workspacePkg.devDependencies = undefined; workspacePkg.scripts = undefined; diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8f56638a5d..ec64b47cb4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,6 +31,10 @@ jobs: - name: Build run: pnpm turbo build --filter "./packages/*" + + - name: Install Playwright + run: pnpm exec playwright install chromium + - name: Test run: pnpm run test env: diff --git a/.github/workflows/pkg-pr-new.yaml b/.github/workflows/pkg-pr-new.yaml index a30ae2dc19..b278bdc847 100644 --- a/.github/workflows/pkg-pr-new.yaml +++ b/.github/workflows/pkg-pr-new.yaml @@ -1,6 +1,10 @@ name: Publish Test Releases on: [push, pull_request] +env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + jobs: build: runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 68d663c294..4d3dbe52c6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,9 @@ node_modules # testing coverage +# astro +.astro + # next.js .next/ out/ @@ -26,6 +29,7 @@ expo-env.d.ts .data .idea *.db +*.timestamp_* # debug npm-debug.log* diff --git a/.nvmrc b/.nvmrc index a3d2332c18..e70b3aebd5 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.11 \ No newline at end of file +22.12 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 35e445ef1b..f0f3a21278 100644 --- a/.prettierignore +++ b/.prettierignore @@ -25,9 +25,12 @@ yarn-error.log* CHANGELOG.md +.astro .svelte-kit .solid .nuxt .output +routeTree.gen.ts + pnpm-lock.yaml diff --git a/.vscode/settings.json b/.vscode/settings.json index fb3635cbc4..8afcaebea0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,8 +9,12 @@ "eslint.workingDirectories": [ "docs", { "pattern": "./packages/**" }, - { "pattern": "./examples/**" } + { "pattern": "./examples/**" }, + { "pattern": "./tooling/**" }, + { "pattern": "./playground/**" }, + { "pattern": "./playground-v6/**" } ], + "eslint.useFlatConfig": true, "[svelte]": { "editor.defaultFormatter": "svelte.svelte-vscode" }, diff --git a/docs/package.json b/docs/package.json index 34d4b9b119..aa07d6bcca 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,35 +11,35 @@ }, "browserslist": "defaults, not ie <= 11", "dependencies": { - "@algolia/autocomplete-core": "^1.17.4", - "@headlessui/react": "^2.1.8", - "@headlessui/tailwindcss": "^0.2.0", - "@heroicons/react": "^2.1.3", - "@mdx-js/loader": "^3.0.1", - "@mdx-js/react": "^3.0.1", - "@next/mdx": "^14.2.11", - "@scalar/api-reference-react": "^0.3.37", + "@algolia/autocomplete-core": "^1.17.8", + "@headlessui/react": "^2.2.0", + "@headlessui/tailwindcss": "^0.2.1", + "@heroicons/react": "^2.2.0", + "@mdx-js/loader": "^3.1.0", + "@mdx-js/react": "^3.1.0", + "@next/mdx": "^15.1.3", + "@scalar/api-reference-react": "^0.4.8", + "@shikijs/transformers": "^1.26.1", "@sindresorhus/slugify": "^2.1.1", - "@tailwindcss/typography": "^0.5.10", + "@tailwindcss/typography": "^0.5.15", "@types/mdast": "^4.0.4", "@types/mdx": "^2.0.13", - "@types/node": "^20.14.0", + "@types/node": "^22.10.0", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/react-highlight-words": "^0.20.0", "@uploadthing/react": "workspace:*", "acorn": "^8.12.1", - "autoprefixer": "^10.4.20", "clsx": "^2.1.0", "fast-glob": "^3.3.2", "flexsearch": "^0.7.43", - "framer-motion": "^11.5.4", "mdast-util-to-string": "^4.0.0", "mdx-annotations": "^0.1.4", - "next": "14.2.11", + "motion": "^12.0.0-alpha.2", + "next": "15.1.3", "next-sitemap": "^4.2.3", - "next-themes": "^0.3.0", - "next-view-transitions": "^0.3.0", + "next-themes": "^0.4.4", + "next-view-transitions": "^0.3.4", "npm-to-yarn": "^3.0.0", "react": "18.3.1", "react-dom": "18.3.1", @@ -47,26 +47,18 @@ "recma-import-images": "^0.0.3", "remark": "^15.0.1", "remark-gfm": "^4.0.0", - "remark-mdx": "^3.0.1", + "remark-mdx": "^3.1.0", "remark-unwrap-images": "^4.0.0", - "shiki": "^1.17.5", + "sharp": "0.33.5", + "shiki": "^1.26.1", "simple-functional-loader": "^1.2.1", "tailwindcss": "^3.4.16", - "typescript": "^5.5.2", + "typescript": "5.7.2", "unified": "^11.0.5", "unist-util-filter": "^5.0.1", "unist-util-visit": "^5.0.0", "uploadthing": "workspace:*", - "zod": "^3.23.8", - "zustand": "^4.3.2" - }, - "devDependencies": { - "@shikijs/transformers": "^1.17.5", - "eslint": "^8.57.0", - "eslint-config-next": "^14.2.1", - "prettier": "^3.3.2", - "prettier-plugin-tailwindcss": "^0.6.5", - "sharp": "0.33.1" - }, - "packageManager": "pnpm@9.6.0" + "zod": "^3.24.1", + "zustand": "^5.0.2" + } } diff --git a/docs/postcss.config.cjs b/docs/postcss.config.js similarity index 50% rename from docs/postcss.config.cjs rename to docs/postcss.config.js index 12a703d900..01bf7432f6 100644 --- a/docs/postcss.config.cjs +++ b/docs/postcss.config.js @@ -1,6 +1,5 @@ -module.exports = { +export default { plugins: { tailwindcss: {}, - autoprefixer: {}, }, }; diff --git a/docs/src/app/(docs)/client-layout.tsx b/docs/src/app/(docs)/client-layout.tsx index 20888050af..d4f1b777df 100644 --- a/docs/src/app/(docs)/client-layout.tsx +++ b/docs/src/app/(docs)/client-layout.tsx @@ -8,7 +8,7 @@ import { LogoBlob, LogoText } from "@/components/Logo"; import { Navigation } from "@/components/Navigation"; import { SectionProvider, type Section } from "@/components/SectionProvider"; import { XMarkIcon } from "@heroicons/react/20/solid"; -import { motion } from "framer-motion"; +import { motion } from "motion/react"; import { Link } from "next-view-transitions"; const PreviewBanner = (props: { diff --git a/docs/src/app/(docs)/getting-started/astro/page.mdx b/docs/src/app/(docs)/getting-started/astro/page.mdx index d40c26bc1d..dc99186ddd 100644 --- a/docs/src/app/(docs)/getting-started/astro/page.mdx +++ b/docs/src/app/(docs)/getting-started/astro/page.mdx @@ -239,7 +239,7 @@ const routerConfig = extractRouterConfig(uploadRouter); (globalThis as any).__UPLOADTHING ??= routerConfig; --- -