@trieb.work/nextjs-turbo-redis-cache 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/skills/testing/SKILL.md +121 -0
- package/.github/workflows/ci.yml +199 -69
- package/.github/workflows/release.yml +9 -1
- package/ARCHITECTURE.md +431 -0
- package/CHANGELOG.md +28 -0
- package/README.md +77 -49
- package/dist/index.d.mts +71 -45
- package/dist/index.d.ts +71 -45
- package/dist/index.js +107 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +107 -21
- package/dist/index.mjs.map +1 -1
- package/docs/index.html +7 -6
- package/eslint.config.mjs +1 -1
- package/package.json +15 -16
- package/playwright.config.ts +5 -3
- package/src/CacheComponentsHandler.ts +57 -2
- package/src/RedisStringsHandler.ts +125 -66
- package/src/SyncedMap.ts +62 -13
- package/test/README.md +194 -0
- package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/package.json +6 -6
- package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-15-4-11}/pnpm-lock.yaml +89 -105
- package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11}/package.json +3 -3
- package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11}/pnpm-lock.yaml +53 -53
- package/test/nextjs-test-projects/next-app-16-0-11-cache-components/package.json +28 -0
- package/test/nextjs-test-projects/next-app-16-0-11-cache-components/pnpm-lock.yaml +4206 -0
- package/test/nextjs-test-projects/next-app-16-2-6/eslint.config.mjs +18 -0
- package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6}/package.json +3 -3
- package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6}/pnpm-lock.yaml +54 -60
- package/test/nextjs-test-projects/next-app-16-2-6/postcss.config.mjs +7 -0
- package/test/nextjs-test-projects/next-app-16-2-6/src/app/favicon.ico +0 -0
- package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-2-6}/tsconfig.json +9 -2
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/cache-handler.js +3 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/next.config.ts +13 -0
- package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6-cache-components}/package.json +3 -3
- package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6-cache-components}/pnpm-lock.yaml +54 -60
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/api/cached-static-fetch/route.ts +19 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/api/cached-with-cachelife/route.ts +24 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/api/cached-with-tag/route.ts +21 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/api/revalidate-tag/route.ts +19 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/api/revalidated-fetch/route.ts +19 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/cachelife-short/page.tsx +110 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/page.tsx +90 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/runtime-data-suspense/page.tsx +127 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/stale-while-revalidate/page.tsx +130 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/tag-invalidation/page.tsx +127 -0
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/cache-lab/use-cache-nondeterministic/page.tsx +110 -0
- package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/src/app/layout.tsx +0 -2
- package/test/nextjs-test-projects/next-app-16-2-6-cache-components/src/app/update-tag-test/page.tsx +22 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/README.md +16 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/eslint.config.mjs +18 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/next.config.ts +7 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/package.json +26 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/pnpm-lock.yaml +3896 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/src/pages/api/revalidate.ts +24 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/src/pages/index.tsx +11 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/src/pages/isr/[slug].tsx +49 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/src/pages/static-forever.tsx +20 -0
- package/test/nextjs-test-projects/next-pages-16-2-6/tsconfig.json +34 -0
- package/{tests → test/playwright}/update-tag.spec.ts +1 -1
- package/test/{integration → vitest/integration}/build-id-prefix.integration.test.ts +2 -2
- package/test/{cache-components/cache-components.integration.spec.ts → vitest/integration/cache-components/cache-components.integration.test.ts} +7 -3
- package/test/{cache-components/redis-kill-reconnect.spec.ts → vitest/integration/cache-components/redis-kill-reconnect.test.ts} +28 -7
- package/test/vitest/integration/cache-components/redis-quit-vs-disconnect.test.ts +59 -0
- package/test/vitest/integration/cache-components/redis-subscriber-outage.test.ts +100 -0
- package/test/{cache-components → vitest/integration/cache-components}/scripts/redis-kill-reconnect.ts +31 -8
- package/test/vitest/integration/cache-components/scripts/redis-quit-vs-disconnect.ts +113 -0
- package/test/vitest/integration/cache-components/scripts/redis-subscriber-outage.ts +379 -0
- package/test/vitest/integration/cache-components/scripts/redis-test-helpers.ts +155 -0
- package/test/{integration → vitest/integration}/nextjs-cache-handler.integration.test.ts +15 -9
- package/test/vitest/integration/pages-router.integration.test.ts +420 -0
- package/test/vitest/unit/SyncedMap-reconnect-repro.test.ts +154 -0
- package/{src → test/vitest/unit}/index.test.ts +3 -3
- package/test/vitest/unit/pages-router-kinds.test.ts +292 -0
- package/test/{cache-components/reconnect-socket-already-opened.spec.ts → vitest/unit/reconnect-socket-already-opened.test.ts} +1 -1
- package/{src → test/vitest/unit}/serializer.test.ts +7 -3
- package/{src → test/vitest/unit}/utils/prefix.test.ts +1 -1
- package/vite.config.ts +4 -3
- package/vitest.cache-components.config.ts +1 -1
- package/test/browser/update-tag.browser.test.ts +0 -41
- package/test/integration/next-app-15-0-3/next.config.js +0 -6
- package/test/integration/next-app-15-0-3/package-lock.json +0 -5833
- package/test/integration/next-app-15-0-3/pnpm-lock.yaml +0 -3710
- package/test/integration/next-app-15-3-2/next.config.js +0 -6
- package/test/integration/next-app-15-3-2/package.json +0 -33
- package/test/integration/next-app-15-3-2/pnpm-lock.yaml +0 -3720
- package/test/integration/next-app-15-3-2/postcss.config.mjs +0 -5
- package/test/integration/next-app-15-3-2/src/app/api/revalidateTag/route.ts +0 -15
- package/test/integration/next-app-15-4-7/eslint.config.mjs +0 -16
- package/test/integration/next-app-15-4-7/package-lock.json +0 -5969
- package/test/integration/next-app-15-4-7/package.json +0 -33
- package/test/integration/next-app-15-4-7/postcss.config.mjs +0 -5
- package/test/integration/next-app-15-4-7/src/app/api/revalidateTag/route.ts +0 -15
- package/test/integration/next-app-15-4-7/tsconfig.json +0 -27
- package/test/integration/next-app-16-0-3/src/app/api/cached-static-fetch/route.ts +0 -18
- package/test/integration/next-app-16-0-3/src/app/api/nested-fetch-in-api-route/revalidated-fetch/route.ts +0 -27
- package/test/integration/next-app-16-0-3/src/app/api/revalidatePath/route.ts +0 -15
- package/test/integration/next-app-16-0-3/src/app/api/revalidated-fetch/route.ts +0 -17
- package/test/integration/next-app-16-0-3/src/app/api/uncached-fetch/route.ts +0 -15
- package/test/integration/next-app-16-0-3/src/app/pages/cached-static-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-0-3/src/app/pages/cached-static-fetch/revalidate15--default-page/page.tsx +0 -34
- package/test/integration/next-app-16-0-3/src/app/pages/cached-static-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-0-3/src/app/pages/no-fetch/default-page/page.tsx +0 -55
- package/test/integration/next-app-16-0-3/src/app/pages/revalidated-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-0-3/src/app/pages/revalidated-fetch/revalidate15--default-page/page.tsx +0 -35
- package/test/integration/next-app-16-0-3/src/app/pages/revalidated-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-0-3/src/app/pages/uncached-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-0-3/src/app/pages/uncached-fetch/revalidate15--default-page/page.tsx +0 -32
- package/test/integration/next-app-16-0-3/src/app/pages/uncached-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-2-3/src/app/api/cached-static-fetch/route.ts +0 -18
- package/test/integration/next-app-16-2-3/src/app/api/nested-fetch-in-api-route/revalidated-fetch/route.ts +0 -27
- package/test/integration/next-app-16-2-3/src/app/api/revalidatePath/route.ts +0 -15
- package/test/integration/next-app-16-2-3/src/app/api/revalidated-fetch/route.ts +0 -17
- package/test/integration/next-app-16-2-3/src/app/api/uncached-fetch/route.ts +0 -15
- package/test/integration/next-app-16-2-3/src/app/globals.css +0 -26
- package/test/integration/next-app-16-2-3/src/app/layout.tsx +0 -59
- package/test/integration/next-app-16-2-3/src/app/page.tsx +0 -755
- package/test/integration/next-app-16-2-3/src/app/pages/cached-static-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-2-3/src/app/pages/cached-static-fetch/revalidate15--default-page/page.tsx +0 -34
- package/test/integration/next-app-16-2-3/src/app/pages/cached-static-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-2-3/src/app/pages/no-fetch/default-page/page.tsx +0 -55
- package/test/integration/next-app-16-2-3/src/app/pages/revalidated-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-2-3/src/app/pages/revalidated-fetch/revalidate15--default-page/page.tsx +0 -35
- package/test/integration/next-app-16-2-3/src/app/pages/revalidated-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-2-3/src/app/pages/uncached-fetch/default--force-dynamic-page/page.tsx +0 -19
- package/test/integration/next-app-16-2-3/src/app/pages/uncached-fetch/revalidate15--default-page/page.tsx +0 -32
- package/test/integration/next-app-16-2-3/src/app/pages/uncached-fetch/revalidate15--force-dynamic-page/page.tsx +0 -25
- package/test/integration/next-app-16-2-3/src/app/revalidation-interface.tsx +0 -267
- package/test/integration/next-app-16-2-3-cache-components/public/file.svg +0 -1
- package/test/integration/next-app-16-2-3-cache-components/public/globe.svg +0 -1
- package/test/integration/next-app-16-2-3-cache-components/public/next.svg +0 -1
- package/test/integration/next-app-16-2-3-cache-components/public/vercel.svg +0 -1
- package/test/integration/next-app-16-2-3-cache-components/public/window.svg +0 -1
- package/test/integration/next-app-customized/README.md +0 -36
- package/test/integration/next-app-customized/eslint.config.mjs +0 -16
- package/vitest.browser.config.ts +0 -10
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/README.md +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/eslint.config.mjs +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-15-4-11}/next.config.js +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-15-4-11}/package-lock.json +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/postcss.config.mjs +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/public/file.svg +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/public/globe.svg +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/public/next.svg +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/public/vercel.svg +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/public/window.svg +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/cached-static-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/nested-fetch-in-api-route/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/revalidatePath/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/revalidateTag/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/api/uncached-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/globals.css +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/layout.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/cached-static-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/cached-static-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/cached-static-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/no-fetch/default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/revalidated-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/revalidated-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/revalidated-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/uncached-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/uncached-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/pages/uncached-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/src/app/revalidation-interface.tsx +0 -0
- /package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/tsconfig.json +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-0-11}/README.md +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11}/eslint.config.mjs +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11}/next.config.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11}/postcss.config.mjs +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/api/cached-static-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/api/nested-fetch-in-api-route/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/api/revalidatePath/route.ts +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11}/src/app/api/revalidateTag/route.ts +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/api/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/api/uncached-fetch/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11}/src/app/favicon.ico +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-0-11}/src/app/globals.css +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/layout.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-0-11}/src/app/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/cached-static-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/cached-static-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/cached-static-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/no-fetch/default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/revalidated-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/revalidated-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/revalidated-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/uncached-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/uncached-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11}/src/app/pages/uncached-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-0-11}/src/app/revalidation-interface.tsx +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11}/src/app/update-tag-test/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11}/tsconfig.json +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/README.md +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/cache-handler.js +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11-cache-components}/eslint.config.mjs +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/next.config.ts +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11-cache-components}/postcss.config.mjs +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/public/file.svg +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/public/globe.svg +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/public/next.svg +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/public/vercel.svg +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/public/window.svg +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/api/cached-static-fetch/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/api/cached-with-cachelife/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/api/cached-with-tag/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/api/revalidate-tag/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/api/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/cachelife-short/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/runtime-data-suspense/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/stale-while-revalidate/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/tag-invalidation/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/cache-lab/use-cache-nondeterministic/page.tsx +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/favicon.ico +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/globals.css +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/layout.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/page.tsx +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/revalidation-interface.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-0-11-cache-components}/src/app/update-tag-test/page.tsx +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-0-11-cache-components}/tsconfig.json +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6}/README.md +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6}/next.config.ts +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/api/cached-static-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/api/nested-fetch-in-api-route/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/api/revalidatePath/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6}/src/app/api/revalidateTag/route.ts +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/api/revalidated-fetch/route.ts +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/api/uncached-fetch/route.ts +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6}/src/app/globals.css +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/layout.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6}/src/app/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/cached-static-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/cached-static-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/cached-static-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/no-fetch/default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/revalidated-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/revalidated-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/revalidated-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/uncached-fetch/default--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/uncached-fetch/revalidate15--default-page/page.tsx +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6}/src/app/pages/uncached-fetch/revalidate15--force-dynamic-page/page.tsx +0 -0
- /package/test/{integration/next-app-16-2-3-cache-components → nextjs-test-projects/next-app-16-2-6}/src/app/revalidation-interface.tsx +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6}/src/app/update-tag-test/page.tsx +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/README.md +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/eslint.config.mjs +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/postcss.config.mjs +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6-cache-components}/public/file.svg +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6-cache-components}/public/globe.svg +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6-cache-components}/public/next.svg +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6-cache-components}/public/vercel.svg +0 -0
- /package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-16-2-6-cache-components}/public/window.svg +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/src/app/favicon.ico +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/src/app/globals.css +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/src/app/page.tsx +0 -0
- /package/test/{integration/next-app-16-0-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/src/app/revalidation-interface.tsx +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-16-2-6-cache-components}/tsconfig.json +0 -0
- /package/test/{integration/next-app-16-2-3 → nextjs-test-projects/next-app-customized}/README.md +0 -0
- /package/test/{integration → nextjs-test-projects}/next-app-customized/customized-cache-handler.js +0 -0
- /package/test/{integration/next-app-15-3-2 → nextjs-test-projects/next-app-customized}/eslint.config.mjs +0 -0
- /package/test/{integration → nextjs-test-projects}/next-app-customized/next.config.js +0 -0
- /package/{tests → test/playwright}/cache-lab.spec.ts +0 -0
package/test/README.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Test Structure
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
test/
|
|
5
|
+
├── playwright/ # E2E tests — browser automation (Playwright)
|
|
6
|
+
├── vitest/ # Unit + Integration tests (Vitest)
|
|
7
|
+
│ ├── unit/ # Pure unit tests (no external deps)
|
|
8
|
+
│ └── integration/ # Integration tests (Redis + Next.js server)
|
|
9
|
+
│ └── cache-components/ # Cache Components integration (Next.js 16+)
|
|
10
|
+
└── nextjs-test-projects/ # Next.js app fixtures (shared across test types)
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
| Layer | Runner | What it validates | Needs Redis? | Needs Next.js app? |
|
|
16
|
+
| --------------- | ---------- | ----------------------------------------------------------------------- | ------------ | ------------------ |
|
|
17
|
+
| **Unit** | Vitest | Logic in isolation (serializer, prefix resolution, reconnect handling) | No | No |
|
|
18
|
+
| **Integration** | Vitest | Cache handler ↔ Redis ↔ Next.js HTTP responses (server-side plumbing) | Yes | Yes |
|
|
19
|
+
| **E2E** | Playwright | User-facing behavior in a real browser (Cache Components / `use cache`) | Yes | Yes |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Unit Tests (`test/vitest/unit/`)
|
|
24
|
+
|
|
25
|
+
**Runner:** Vitest
|
|
26
|
+
**Command:** `pnpm test:unit`
|
|
27
|
+
**Config:** `vite.config.ts`
|
|
28
|
+
|
|
29
|
+
Fast tests with no external dependencies. Mocks are used where needed.
|
|
30
|
+
|
|
31
|
+
| File | What it tests |
|
|
32
|
+
| ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `serializer.test.ts` | `CacheValueSerializer` interface, JSON round-trips, singleton stability |
|
|
34
|
+
| `index.test.ts` | `RedisStringsHandler` constructor options, default behaviors |
|
|
35
|
+
| `utils/prefix.test.ts` | `resolveKeyPrefix` logic (BUILD_ID fallback, env var precedence) |
|
|
36
|
+
| `reconnect-socket-already-opened.test.ts` | Regression: reconnect logic doesn't call `connect()` when socket is already open |
|
|
37
|
+
| `pages-router-kinds.test.ts` | Pages Router cache kinds (`PAGES`, `REDIRECT`, `null`/notFound), implicit tags, TTL derivation |
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pnpm test:unit # single run
|
|
41
|
+
pnpm test:unit:watch # watch mode
|
|
42
|
+
pnpm test:unit:coverage # with coverage report (used in CI)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Integration Tests (`test/vitest/integration/`)
|
|
48
|
+
|
|
49
|
+
**Runner:** Vitest
|
|
50
|
+
**Command:** `pnpm test:integration`
|
|
51
|
+
**Config:** `vite.config.ts`
|
|
52
|
+
**Requires:** Redis on localhost:6379, pre-built Next.js test app
|
|
53
|
+
|
|
54
|
+
These tests spawn a real Next.js server as a child process, make `fetch()` requests against it, and verify both HTTP responses and Redis state directly.
|
|
55
|
+
|
|
56
|
+
### Standard Integration (`nextjs-cache-handler.integration.test.ts`)
|
|
57
|
+
|
|
58
|
+
Full cache lifecycle: static pages, fetch caching, revalidation, tag invalidation, TTL behavior. In CI this runs against a matrix of Next.js versions (15.4–16.2).
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pnpm test:integration
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Pages Router (`pages-router.integration.test.ts`)
|
|
65
|
+
|
|
66
|
+
Pages Router cache lifecycle against the `next-pages-16-2-6` app: `PAGES` entry format, TTL derivation from `getStaticProps` `revalidate`, `fallback: 'blocking'` first hits, `notFound: true` (null cache entries), `redirect:` results, and `revalidate: false` TTL fallback.
|
|
67
|
+
|
|
68
|
+
Starts **two** `next start` instances of the same build sharing one Redis and proves that on-demand revalidation (`res.revalidate(path)`) triggered on instance A is served fresh by instance B (HTML and `/_next/data` pageData JSON) — the multi-instance ISR scenario behind a load balancer.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnpm test:integration:pages
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### BUILD_ID Prefix (`build-id-prefix.integration.test.ts`)
|
|
75
|
+
|
|
76
|
+
Verifies that when neither `KEY_PREFIX` nor `VERCEL_URL` is set, the handler falls back to `.next/BUILD_ID` as the Redis key prefix. Runs in its own CI job because it needs a clean environment without those env vars.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pnpm test:integration:build-id-prefix
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Cache Components (`cache-components/`)
|
|
83
|
+
|
|
84
|
+
Integration tests specific to Next.js 16 Cache Components (`use cache`). Uses `next-app-16-2-6-cache-components` as the test app.
|
|
85
|
+
|
|
86
|
+
| File | What it tests |
|
|
87
|
+
| -------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
88
|
+
| `cache-components.integration.test.ts` | `use cache` lifecycle: store, retrieve, tag invalidation, `cacheLife` expiry |
|
|
89
|
+
| `redis-kill-reconnect.test.ts` | Graceful recovery when Redis drops and reconnects (main client ping only) |
|
|
90
|
+
| `redis-subscriber-outage.test.ts` | Issue #86: subscriber PubSub does not recover after Redis outage (expected to fail until bug is fixed) |
|
|
91
|
+
| `redis-quit-vs-disconnect.test.ts` | `quit()` does not reliably close a subscriber during an outage; `disconnect()` does |
|
|
92
|
+
|
|
93
|
+
`redis-kill-reconnect.test.ts` uses a container runtime and auto-detects `podman` first, then `docker`. You can force runtime selection with `CONTAINER_RUNTIME=podman` or `CONTAINER_RUNTIME=docker`.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpm test:integration:cache-components
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Prerequisites for all integration tests:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
cd test/nextjs-test-projects/<app-name>
|
|
103
|
+
pnpm install && pnpm build
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## E2E Tests (`test/playwright/`)
|
|
109
|
+
|
|
110
|
+
**Runner:** Playwright
|
|
111
|
+
**Command:** `pnpm test:e2e`
|
|
112
|
+
**Config:** `playwright.config.ts`
|
|
113
|
+
**Requires:** Redis on localhost:6379 (Playwright auto-starts `next-app-16-2-6-cache-components` via `webServer`)
|
|
114
|
+
|
|
115
|
+
Browser-based tests that validate Cache Components behavior from the user's perspective. Playwright was introduced because the Cache Components (`use cache`) feature in Next.js 16 relies on interactions that `fetch()` alone cannot reproduce:
|
|
116
|
+
|
|
117
|
+
- **Server Actions** are triggered by form submissions / button clicks — requires a real browser context
|
|
118
|
+
- `**updateTag`\*\* must be called from within a Server Action — needs actual UI interaction to verify
|
|
119
|
+
- **Cookie-based cache keys** depend on the browser sending cookies during navigation
|
|
120
|
+
- **Stale-while-revalidate** effects are only observable through page reloads and DOM diffing
|
|
121
|
+
|
|
122
|
+
The Vitest cache-components integration tests verify the server-side plumbing (Redis state, HTTP responses). Playwright closes the gap by testing the full user-facing flow.
|
|
123
|
+
|
|
124
|
+
| File | What it tests |
|
|
125
|
+
| -------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
126
|
+
| `cache-lab.spec.ts` | `use cache` stability, tag invalidation (`updateTag`/`revalidateTag`), runtime cookie-based cache keys, SWR behavior |
|
|
127
|
+
| `update-tag.spec.ts` | `updateTag` via Server Actions (button click → action → UI update) |
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
pnpm test:e2e
|
|
131
|
+
|
|
132
|
+
# Test against a specific Next.js version:
|
|
133
|
+
PLAYWRIGHT_TEST_APP=next-app-16-0-11-cache-components pnpm test:e2e
|
|
134
|
+
|
|
135
|
+
# Or point at an already-running server:
|
|
136
|
+
PLAYWRIGHT_BASE_URL=http://localhost:3001 pnpm test:e2e
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Next.js Test Projects (`test/nextjs-test-projects/`)
|
|
142
|
+
|
|
143
|
+
Minimal Next.js applications used as fixtures. They are not test runners — they provide the server that tests run against.
|
|
144
|
+
|
|
145
|
+
| App | Next.js | Used by |
|
|
146
|
+
| ----------------------------------- | ------- | -------------------------------------------------------------- |
|
|
147
|
+
| `next-app-15-4-11` | 15.4.11 | Integration (matrix, default for local), build-id-prefix |
|
|
148
|
+
| `next-app-16-0-11` | 16.0.11 | Integration (matrix) |
|
|
149
|
+
| `next-app-16-2-6` | 16.2.6 | Integration (matrix) |
|
|
150
|
+
| `next-pages-16-2-6` | 16.2.6 | Integration (Pages Router, two-instance revalidation) |
|
|
151
|
+
| `next-app-16-0-11-cache-components` | 16.0.11 | Integration (cache-components matrix), E2E (Playwright matrix) |
|
|
152
|
+
| `next-app-16-2-6-cache-components` | 16.2.6 | Integration (cache-components matrix), E2E (Playwright matrix) |
|
|
153
|
+
| `next-app-customized` | — | Example of custom config (referenced in project README) |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## CI Jobs
|
|
158
|
+
|
|
159
|
+
The CI workflow (`.github/workflows/ci.yml`) is structured as:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
lint-and-unit → Lint + Unit Tests + Coverage
|
|
163
|
+
├── integration → Matrix: 3 Next.js versions (15.4–16.2)
|
|
164
|
+
├── integration-pages → Pages Router (two-instance revalidation)
|
|
165
|
+
├── integration-build-id-prefix → Isolated BUILD_ID prefix test
|
|
166
|
+
├── integration-cache-components → Matrix: 16.0.11 + 16.2.6 cache-components
|
|
167
|
+
└── e2e → Matrix: Playwright against 16.0.11 + 16.2.6
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
`lint-and-unit` runs first as a gate. All other jobs run in parallel after it passes.
|
|
171
|
+
|
|
172
|
+
| CI Job | Test App(s) | What runs |
|
|
173
|
+
| ------------------------------ | --------------------------------------------------------- | --------------------------------------------------------------- |
|
|
174
|
+
| `lint-and-unit` | — | `pnpm lint` + `pnpm test:unit:coverage` |
|
|
175
|
+
| `integration` | `next-app-15-4-11`, `next-app-16-0-11`, `next-app-16-2-6` | `pnpm test:integration` (per matrix entry) |
|
|
176
|
+
| `integration-pages` | `next-pages-16-2-6` | `pnpm test:integration:pages` |
|
|
177
|
+
| `integration-build-id-prefix` | `next-app-15-4-11` | `pnpm test:integration:build-id-prefix` |
|
|
178
|
+
| `integration-cache-components` | `next-app-16-{0-3,2-3}-cache-components` | `pnpm test:integration:cache-components` + Redis kill/reconnect |
|
|
179
|
+
| `e2e` | `next-app-16-{0-3,2-3}-cache-components` | `pnpm test:e2e` (Playwright) |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Environment Variables
|
|
184
|
+
|
|
185
|
+
| Variable | Used by | Description |
|
|
186
|
+
| ----------------------- | ------------------------------ | ------------------------------------------------------------------------- |
|
|
187
|
+
| `NEXT_TEST_APP` | Integration | Which test app to use (default: `next-app-15-4-11`) |
|
|
188
|
+
| `NEXT_PAGES_TEST_APP` | Integration (Pages Router) | Which Pages Router test app to use (default: `next-pages-16-2-6`) |
|
|
189
|
+
| `CACHE_COMPONENTS_APP` | Integration (cache-components) | Which cache-components app (default: `next-app-16-2-6-cache-components`) |
|
|
190
|
+
| `PLAYWRIGHT_TEST_APP` | E2E | Which app Playwright starts (default: `next-app-16-2-6-cache-components`) |
|
|
191
|
+
| `PLAYWRIGHT_BASE_URL` | E2E | Override base URL (skips `webServer` auto-start) |
|
|
192
|
+
| `SKIP_BUILD` | Integration | Skip Next.js build if app is pre-built |
|
|
193
|
+
| `DEBUG_INTEGRATION` | Integration | Print child process stdout/stderr |
|
|
194
|
+
| `CACHE_COMPONENTS_PORT` | Integration (cache-components) | Port for the server (default: 3065) |
|
package/test/{integration/next-app-15-0-3 → nextjs-test-projects/next-app-15-4-11}/package.json
RENAMED
|
@@ -3,27 +3,27 @@
|
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
|
-
"dev": "export VERCEL_URL=\"dev-test-$RANDOM\" && echo $VERCEL_URL && cd ../../.. && pnpm build && cd test/
|
|
6
|
+
"dev": "export VERCEL_URL=\"dev-test-$RANDOM\" && echo $VERCEL_URL && cd ../../.. && pnpm build && cd test/nextjs-test-projects/next-app-15-4-11 && pnpm i && pnpm build && VERCEL_ENV=production REDISHOST=localhost REDISPORT=6379 DEBUG_CACHE_HANDLER=true pnpm start",
|
|
7
7
|
"build": "next build",
|
|
8
8
|
"start": "next start",
|
|
9
9
|
"lint": "next lint"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"react": "19.
|
|
13
|
-
"react-dom": "19.
|
|
14
|
-
"next": "15.
|
|
12
|
+
"react": "19.2.0",
|
|
13
|
+
"react-dom": "19.2.0",
|
|
14
|
+
"next": "15.4.11",
|
|
15
15
|
"redis": "4.7.0",
|
|
16
16
|
"@trieb.work/nextjs-turbo-redis-cache": "file:../../../"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"typescript": "^5",
|
|
20
|
-
"@types/node": "^
|
|
20
|
+
"@types/node": "^22",
|
|
21
21
|
"@types/react": "^19",
|
|
22
22
|
"@types/react-dom": "^19",
|
|
23
23
|
"@tailwindcss/postcss": "^4",
|
|
24
24
|
"tailwindcss": "^4",
|
|
25
25
|
"eslint": "^9",
|
|
26
|
-
"eslint-config-next": "15.
|
|
26
|
+
"eslint-config-next": "15.4.11",
|
|
27
27
|
"@eslint/eslintrc": "^3"
|
|
28
28
|
}
|
|
29
29
|
}
|
package/test/{integration/next-app-15-4-7 → nextjs-test-projects/next-app-15-4-11}/pnpm-lock.yaml
RENAMED
|
@@ -10,16 +10,16 @@ importers:
|
|
|
10
10
|
dependencies:
|
|
11
11
|
'@trieb.work/nextjs-turbo-redis-cache':
|
|
12
12
|
specifier: file:../../../
|
|
13
|
-
version: file:../../..(next@15.4.
|
|
13
|
+
version: file:../../..(next@15.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(redis@4.7.0)
|
|
14
14
|
next:
|
|
15
|
-
specifier: 15.4.
|
|
16
|
-
version: 15.4.
|
|
15
|
+
specifier: 15.4.11
|
|
16
|
+
version: 15.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
|
17
17
|
react:
|
|
18
|
-
specifier: 19.
|
|
19
|
-
version: 19.
|
|
18
|
+
specifier: 19.2.0
|
|
19
|
+
version: 19.2.0
|
|
20
20
|
react-dom:
|
|
21
|
-
specifier: 19.
|
|
22
|
-
version: 19.
|
|
21
|
+
specifier: 19.2.0
|
|
22
|
+
version: 19.2.0(react@19.2.0)
|
|
23
23
|
redis:
|
|
24
24
|
specifier: 4.7.0
|
|
25
25
|
version: 4.7.0
|
|
@@ -31,20 +31,20 @@ importers:
|
|
|
31
31
|
specifier: ^4
|
|
32
32
|
version: 4.1.4
|
|
33
33
|
'@types/node':
|
|
34
|
-
specifier: ^
|
|
35
|
-
version:
|
|
34
|
+
specifier: ^22
|
|
35
|
+
version: 22.19.19
|
|
36
36
|
'@types/react':
|
|
37
|
-
specifier: 19
|
|
37
|
+
specifier: ^19
|
|
38
38
|
version: 19.1.3
|
|
39
39
|
'@types/react-dom':
|
|
40
|
-
specifier: 19
|
|
40
|
+
specifier: ^19
|
|
41
41
|
version: 19.1.3(@types/react@19.1.3)
|
|
42
42
|
eslint:
|
|
43
43
|
specifier: ^9
|
|
44
44
|
version: 9.24.0(jiti@2.4.2)
|
|
45
45
|
eslint-config-next:
|
|
46
|
-
specifier: 15.4.
|
|
47
|
-
version: 15.4.
|
|
46
|
+
specifier: 15.4.11
|
|
47
|
+
version: 15.4.11(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
|
|
48
48
|
tailwindcss:
|
|
49
49
|
specifier: ^4
|
|
50
50
|
version: 4.1.4
|
|
@@ -61,9 +61,6 @@ packages:
|
|
|
61
61
|
'@emnapi/core@1.4.1':
|
|
62
62
|
resolution: {integrity: sha512-4JFstCTaToCFrPqrGzgkF8N2NHjtsaY4uRh6brZQ5L9e4wbMieX8oDT8N7qfVFTQecHFEtkj4ve49VIZ3mKVqw==}
|
|
63
63
|
|
|
64
|
-
'@emnapi/runtime@1.4.1':
|
|
65
|
-
resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==}
|
|
66
|
-
|
|
67
64
|
'@emnapi/runtime@1.7.1':
|
|
68
65
|
resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
|
|
69
66
|
|
|
@@ -288,60 +285,60 @@ packages:
|
|
|
288
285
|
'@napi-rs/wasm-runtime@0.2.8':
|
|
289
286
|
resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==}
|
|
290
287
|
|
|
291
|
-
'@next/env@15.4.
|
|
292
|
-
resolution: {integrity: sha512-
|
|
288
|
+
'@next/env@15.4.11':
|
|
289
|
+
resolution: {integrity: sha512-mIYp/091eYfPFezKX7ZPTWqrmSXq+ih6+LcUyKvLmeLQGhlPtot33kuEOd4U+xAA7sFfj21+OtCpIZx0g5SpvQ==}
|
|
293
290
|
|
|
294
|
-
'@next/eslint-plugin-next@15.4.
|
|
295
|
-
resolution: {integrity: sha512-
|
|
291
|
+
'@next/eslint-plugin-next@15.4.11':
|
|
292
|
+
resolution: {integrity: sha512-WSY6ZwahlbR3JLfXrBezo2H4OmCeF2aFpguZuTkGV/n7+C10wYP17gxsCXbKVI6TpWmHZysp/AhwovUObPjfEA==}
|
|
296
293
|
|
|
297
|
-
'@next/swc-darwin-arm64@15.4.
|
|
298
|
-
resolution: {integrity: sha512-
|
|
294
|
+
'@next/swc-darwin-arm64@15.4.8':
|
|
295
|
+
resolution: {integrity: sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==}
|
|
299
296
|
engines: {node: '>= 10'}
|
|
300
297
|
cpu: [arm64]
|
|
301
298
|
os: [darwin]
|
|
302
299
|
|
|
303
|
-
'@next/swc-darwin-x64@15.4.
|
|
304
|
-
resolution: {integrity: sha512-
|
|
300
|
+
'@next/swc-darwin-x64@15.4.8':
|
|
301
|
+
resolution: {integrity: sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==}
|
|
305
302
|
engines: {node: '>= 10'}
|
|
306
303
|
cpu: [x64]
|
|
307
304
|
os: [darwin]
|
|
308
305
|
|
|
309
|
-
'@next/swc-linux-arm64-gnu@15.4.
|
|
310
|
-
resolution: {integrity: sha512-
|
|
306
|
+
'@next/swc-linux-arm64-gnu@15.4.8':
|
|
307
|
+
resolution: {integrity: sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==}
|
|
311
308
|
engines: {node: '>= 10'}
|
|
312
309
|
cpu: [arm64]
|
|
313
310
|
os: [linux]
|
|
314
311
|
libc: [glibc]
|
|
315
312
|
|
|
316
|
-
'@next/swc-linux-arm64-musl@15.4.
|
|
317
|
-
resolution: {integrity: sha512-
|
|
313
|
+
'@next/swc-linux-arm64-musl@15.4.8':
|
|
314
|
+
resolution: {integrity: sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==}
|
|
318
315
|
engines: {node: '>= 10'}
|
|
319
316
|
cpu: [arm64]
|
|
320
317
|
os: [linux]
|
|
321
318
|
libc: [musl]
|
|
322
319
|
|
|
323
|
-
'@next/swc-linux-x64-gnu@15.4.
|
|
324
|
-
resolution: {integrity: sha512-
|
|
320
|
+
'@next/swc-linux-x64-gnu@15.4.8':
|
|
321
|
+
resolution: {integrity: sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==}
|
|
325
322
|
engines: {node: '>= 10'}
|
|
326
323
|
cpu: [x64]
|
|
327
324
|
os: [linux]
|
|
328
325
|
libc: [glibc]
|
|
329
326
|
|
|
330
|
-
'@next/swc-linux-x64-musl@15.4.
|
|
331
|
-
resolution: {integrity: sha512-
|
|
327
|
+
'@next/swc-linux-x64-musl@15.4.8':
|
|
328
|
+
resolution: {integrity: sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==}
|
|
332
329
|
engines: {node: '>= 10'}
|
|
333
330
|
cpu: [x64]
|
|
334
331
|
os: [linux]
|
|
335
332
|
libc: [musl]
|
|
336
333
|
|
|
337
|
-
'@next/swc-win32-arm64-msvc@15.4.
|
|
338
|
-
resolution: {integrity: sha512-
|
|
334
|
+
'@next/swc-win32-arm64-msvc@15.4.8':
|
|
335
|
+
resolution: {integrity: sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==}
|
|
339
336
|
engines: {node: '>= 10'}
|
|
340
337
|
cpu: [arm64]
|
|
341
338
|
os: [win32]
|
|
342
339
|
|
|
343
|
-
'@next/swc-win32-x64-msvc@15.4.
|
|
344
|
-
resolution: {integrity: sha512-
|
|
340
|
+
'@next/swc-win32-x64-msvc@15.4.8':
|
|
341
|
+
resolution: {integrity: sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==}
|
|
345
342
|
engines: {node: '>= 10'}
|
|
346
343
|
cpu: [x64]
|
|
347
344
|
os: [win32]
|
|
@@ -510,8 +507,8 @@ packages:
|
|
|
510
507
|
'@types/json5@0.0.29':
|
|
511
508
|
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
|
512
509
|
|
|
513
|
-
'@types/node@
|
|
514
|
-
resolution: {integrity: sha512-
|
|
510
|
+
'@types/node@22.19.19':
|
|
511
|
+
resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==}
|
|
515
512
|
|
|
516
513
|
'@types/react-dom@19.1.3':
|
|
517
514
|
resolution: {integrity: sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==}
|
|
@@ -892,8 +889,8 @@ packages:
|
|
|
892
889
|
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
|
893
890
|
engines: {node: '>=10'}
|
|
894
891
|
|
|
895
|
-
eslint-config-next@15.4.
|
|
896
|
-
resolution: {integrity: sha512-
|
|
892
|
+
eslint-config-next@15.4.11:
|
|
893
|
+
resolution: {integrity: sha512-JgvFtb0R8tFyGRRzPZhX4mX+bgllh0v8WP7VxlRXWrh829ONZCi+Bv8OGH4QeQjmFIvZ7hgdQBRXHPf2TYgvsA==}
|
|
897
894
|
peerDependencies:
|
|
898
895
|
eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
|
|
899
896
|
typescript: '>=3.3.1'
|
|
@@ -1420,8 +1417,8 @@ packages:
|
|
|
1420
1417
|
natural-compare@1.4.0:
|
|
1421
1418
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
|
1422
1419
|
|
|
1423
|
-
next@15.4.
|
|
1424
|
-
resolution: {integrity: sha512-
|
|
1420
|
+
next@15.4.11:
|
|
1421
|
+
resolution: {integrity: sha512-IJRyXal45mIsshZI5XJne/intjusslUP1F+FHVBIyMGEqbYtIq1Irdx5vdWBBg58smviPDycmDeV6txsfkv1RQ==}
|
|
1425
1422
|
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
|
1426
1423
|
hasBin: true
|
|
1427
1424
|
peerDependencies:
|
|
@@ -1541,16 +1538,16 @@ packages:
|
|
|
1541
1538
|
queue-microtask@1.2.3:
|
|
1542
1539
|
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
|
1543
1540
|
|
|
1544
|
-
react-dom@19.
|
|
1545
|
-
resolution: {integrity: sha512-
|
|
1541
|
+
react-dom@19.2.0:
|
|
1542
|
+
resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
|
|
1546
1543
|
peerDependencies:
|
|
1547
|
-
react: ^19.
|
|
1544
|
+
react: ^19.2.0
|
|
1548
1545
|
|
|
1549
1546
|
react-is@16.13.1:
|
|
1550
1547
|
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
|
1551
1548
|
|
|
1552
|
-
react@19.
|
|
1553
|
-
resolution: {integrity: sha512-
|
|
1549
|
+
react@19.2.0:
|
|
1550
|
+
resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
|
|
1554
1551
|
engines: {node: '>=0.10.0'}
|
|
1555
1552
|
|
|
1556
1553
|
redis@4.7.0:
|
|
@@ -1599,18 +1596,13 @@ packages:
|
|
|
1599
1596
|
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
|
|
1600
1597
|
engines: {node: '>= 0.4'}
|
|
1601
1598
|
|
|
1602
|
-
scheduler@0.
|
|
1603
|
-
resolution: {integrity: sha512-
|
|
1599
|
+
scheduler@0.27.0:
|
|
1600
|
+
resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
|
|
1604
1601
|
|
|
1605
1602
|
semver@6.3.1:
|
|
1606
1603
|
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
|
1607
1604
|
hasBin: true
|
|
1608
1605
|
|
|
1609
|
-
semver@7.7.1:
|
|
1610
|
-
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
|
|
1611
|
-
engines: {node: '>=10'}
|
|
1612
|
-
hasBin: true
|
|
1613
|
-
|
|
1614
1606
|
semver@7.7.3:
|
|
1615
1607
|
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
|
|
1616
1608
|
engines: {node: '>=10'}
|
|
@@ -1771,8 +1763,8 @@ packages:
|
|
|
1771
1763
|
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
|
|
1772
1764
|
engines: {node: '>= 0.4'}
|
|
1773
1765
|
|
|
1774
|
-
undici-types@6.
|
|
1775
|
-
resolution: {integrity: sha512-
|
|
1766
|
+
undici-types@6.21.0:
|
|
1767
|
+
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
|
1776
1768
|
|
|
1777
1769
|
unrs-resolver@1.5.0:
|
|
1778
1770
|
resolution: {integrity: sha512-6aia3Oy7SEe0MuUGQm2nsyob0L2+g57w178K5SE/3pvSGAIp28BB2O921fKx424Ahc/gQ6v0DXFbhcpyhGZdOA==}
|
|
@@ -1822,11 +1814,6 @@ snapshots:
|
|
|
1822
1814
|
tslib: 2.8.1
|
|
1823
1815
|
optional: true
|
|
1824
1816
|
|
|
1825
|
-
'@emnapi/runtime@1.4.1':
|
|
1826
|
-
dependencies:
|
|
1827
|
-
tslib: 2.8.1
|
|
1828
|
-
optional: true
|
|
1829
|
-
|
|
1830
1817
|
'@emnapi/runtime@1.7.1':
|
|
1831
1818
|
dependencies:
|
|
1832
1819
|
tslib: 2.8.1
|
|
@@ -1998,38 +1985,38 @@ snapshots:
|
|
|
1998
1985
|
'@napi-rs/wasm-runtime@0.2.8':
|
|
1999
1986
|
dependencies:
|
|
2000
1987
|
'@emnapi/core': 1.4.1
|
|
2001
|
-
'@emnapi/runtime': 1.
|
|
1988
|
+
'@emnapi/runtime': 1.7.1
|
|
2002
1989
|
'@tybys/wasm-util': 0.9.0
|
|
2003
1990
|
optional: true
|
|
2004
1991
|
|
|
2005
|
-
'@next/env@15.4.
|
|
1992
|
+
'@next/env@15.4.11': {}
|
|
2006
1993
|
|
|
2007
|
-
'@next/eslint-plugin-next@15.4.
|
|
1994
|
+
'@next/eslint-plugin-next@15.4.11':
|
|
2008
1995
|
dependencies:
|
|
2009
1996
|
fast-glob: 3.3.1
|
|
2010
1997
|
|
|
2011
|
-
'@next/swc-darwin-arm64@15.4.
|
|
1998
|
+
'@next/swc-darwin-arm64@15.4.8':
|
|
2012
1999
|
optional: true
|
|
2013
2000
|
|
|
2014
|
-
'@next/swc-darwin-x64@15.4.
|
|
2001
|
+
'@next/swc-darwin-x64@15.4.8':
|
|
2015
2002
|
optional: true
|
|
2016
2003
|
|
|
2017
|
-
'@next/swc-linux-arm64-gnu@15.4.
|
|
2004
|
+
'@next/swc-linux-arm64-gnu@15.4.8':
|
|
2018
2005
|
optional: true
|
|
2019
2006
|
|
|
2020
|
-
'@next/swc-linux-arm64-musl@15.4.
|
|
2007
|
+
'@next/swc-linux-arm64-musl@15.4.8':
|
|
2021
2008
|
optional: true
|
|
2022
2009
|
|
|
2023
|
-
'@next/swc-linux-x64-gnu@15.4.
|
|
2010
|
+
'@next/swc-linux-x64-gnu@15.4.8':
|
|
2024
2011
|
optional: true
|
|
2025
2012
|
|
|
2026
|
-
'@next/swc-linux-x64-musl@15.4.
|
|
2013
|
+
'@next/swc-linux-x64-musl@15.4.8':
|
|
2027
2014
|
optional: true
|
|
2028
2015
|
|
|
2029
|
-
'@next/swc-win32-arm64-msvc@15.4.
|
|
2016
|
+
'@next/swc-win32-arm64-msvc@15.4.8':
|
|
2030
2017
|
optional: true
|
|
2031
2018
|
|
|
2032
|
-
'@next/swc-win32-x64-msvc@15.4.
|
|
2019
|
+
'@next/swc-win32-x64-msvc@15.4.8':
|
|
2033
2020
|
optional: true
|
|
2034
2021
|
|
|
2035
2022
|
'@nodelib/fs.scandir@2.1.5':
|
|
@@ -2146,9 +2133,9 @@ snapshots:
|
|
|
2146
2133
|
postcss: 8.5.3
|
|
2147
2134
|
tailwindcss: 4.1.4
|
|
2148
2135
|
|
|
2149
|
-
'@trieb.work/nextjs-turbo-redis-cache@file:../../..(next@15.4.
|
|
2136
|
+
'@trieb.work/nextjs-turbo-redis-cache@file:../../..(next@15.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(redis@4.7.0)':
|
|
2150
2137
|
dependencies:
|
|
2151
|
-
next: 15.4.
|
|
2138
|
+
next: 15.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
|
2152
2139
|
redis: 4.7.0
|
|
2153
2140
|
|
|
2154
2141
|
'@tybys/wasm-util@0.9.0':
|
|
@@ -2162,9 +2149,9 @@ snapshots:
|
|
|
2162
2149
|
|
|
2163
2150
|
'@types/json5@0.0.29': {}
|
|
2164
2151
|
|
|
2165
|
-
'@types/node@
|
|
2152
|
+
'@types/node@22.19.19':
|
|
2166
2153
|
dependencies:
|
|
2167
|
-
undici-types: 6.
|
|
2154
|
+
undici-types: 6.21.0
|
|
2168
2155
|
|
|
2169
2156
|
'@types/react-dom@19.1.3(@types/react@19.1.3)':
|
|
2170
2157
|
dependencies:
|
|
@@ -2229,7 +2216,7 @@ snapshots:
|
|
|
2229
2216
|
fast-glob: 3.3.3
|
|
2230
2217
|
is-glob: 4.0.3
|
|
2231
2218
|
minimatch: 9.0.5
|
|
2232
|
-
semver: 7.7.
|
|
2219
|
+
semver: 7.7.3
|
|
2233
2220
|
ts-api-utils: 2.1.0(typescript@5.8.3)
|
|
2234
2221
|
typescript: 5.8.3
|
|
2235
2222
|
transitivePeerDependencies:
|
|
@@ -2624,9 +2611,9 @@ snapshots:
|
|
|
2624
2611
|
|
|
2625
2612
|
escape-string-regexp@4.0.0: {}
|
|
2626
2613
|
|
|
2627
|
-
eslint-config-next@15.4.
|
|
2614
|
+
eslint-config-next@15.4.11(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3):
|
|
2628
2615
|
dependencies:
|
|
2629
|
-
'@next/eslint-plugin-next': 15.4.
|
|
2616
|
+
'@next/eslint-plugin-next': 15.4.11
|
|
2630
2617
|
'@rushstack/eslint-patch': 1.11.0
|
|
2631
2618
|
'@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
|
|
2632
2619
|
'@typescript-eslint/parser': 8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
|
|
@@ -3001,7 +2988,7 @@ snapshots:
|
|
|
3001
2988
|
|
|
3002
2989
|
is-bun-module@2.0.0:
|
|
3003
2990
|
dependencies:
|
|
3004
|
-
semver: 7.7.
|
|
2991
|
+
semver: 7.7.3
|
|
3005
2992
|
|
|
3006
2993
|
is-callable@1.2.7: {}
|
|
3007
2994
|
|
|
@@ -3218,24 +3205,24 @@ snapshots:
|
|
|
3218
3205
|
|
|
3219
3206
|
natural-compare@1.4.0: {}
|
|
3220
3207
|
|
|
3221
|
-
next@15.4.
|
|
3208
|
+
next@15.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
|
|
3222
3209
|
dependencies:
|
|
3223
|
-
'@next/env': 15.4.
|
|
3210
|
+
'@next/env': 15.4.11
|
|
3224
3211
|
'@swc/helpers': 0.5.15
|
|
3225
3212
|
caniuse-lite: 1.0.30001713
|
|
3226
3213
|
postcss: 8.4.31
|
|
3227
|
-
react: 19.
|
|
3228
|
-
react-dom: 19.
|
|
3229
|
-
styled-jsx: 5.1.6(react@19.
|
|
3214
|
+
react: 19.2.0
|
|
3215
|
+
react-dom: 19.2.0(react@19.2.0)
|
|
3216
|
+
styled-jsx: 5.1.6(react@19.2.0)
|
|
3230
3217
|
optionalDependencies:
|
|
3231
|
-
'@next/swc-darwin-arm64': 15.4.
|
|
3232
|
-
'@next/swc-darwin-x64': 15.4.
|
|
3233
|
-
'@next/swc-linux-arm64-gnu': 15.4.
|
|
3234
|
-
'@next/swc-linux-arm64-musl': 15.4.
|
|
3235
|
-
'@next/swc-linux-x64-gnu': 15.4.
|
|
3236
|
-
'@next/swc-linux-x64-musl': 15.4.
|
|
3237
|
-
'@next/swc-win32-arm64-msvc': 15.4.
|
|
3238
|
-
'@next/swc-win32-x64-msvc': 15.4.
|
|
3218
|
+
'@next/swc-darwin-arm64': 15.4.8
|
|
3219
|
+
'@next/swc-darwin-x64': 15.4.8
|
|
3220
|
+
'@next/swc-linux-arm64-gnu': 15.4.8
|
|
3221
|
+
'@next/swc-linux-arm64-musl': 15.4.8
|
|
3222
|
+
'@next/swc-linux-x64-gnu': 15.4.8
|
|
3223
|
+
'@next/swc-linux-x64-musl': 15.4.8
|
|
3224
|
+
'@next/swc-win32-arm64-msvc': 15.4.8
|
|
3225
|
+
'@next/swc-win32-x64-msvc': 15.4.8
|
|
3239
3226
|
sharp: 0.34.5
|
|
3240
3227
|
transitivePeerDependencies:
|
|
3241
3228
|
- '@babel/core'
|
|
@@ -3348,14 +3335,14 @@ snapshots:
|
|
|
3348
3335
|
|
|
3349
3336
|
queue-microtask@1.2.3: {}
|
|
3350
3337
|
|
|
3351
|
-
react-dom@19.
|
|
3338
|
+
react-dom@19.2.0(react@19.2.0):
|
|
3352
3339
|
dependencies:
|
|
3353
|
-
react: 19.
|
|
3354
|
-
scheduler: 0.
|
|
3340
|
+
react: 19.2.0
|
|
3341
|
+
scheduler: 0.27.0
|
|
3355
3342
|
|
|
3356
3343
|
react-is@16.13.1: {}
|
|
3357
3344
|
|
|
3358
|
-
react@19.
|
|
3345
|
+
react@19.2.0: {}
|
|
3359
3346
|
|
|
3360
3347
|
redis@4.7.0:
|
|
3361
3348
|
dependencies:
|
|
@@ -3427,14 +3414,11 @@ snapshots:
|
|
|
3427
3414
|
es-errors: 1.3.0
|
|
3428
3415
|
is-regex: 1.2.1
|
|
3429
3416
|
|
|
3430
|
-
scheduler@0.
|
|
3417
|
+
scheduler@0.27.0: {}
|
|
3431
3418
|
|
|
3432
3419
|
semver@6.3.1: {}
|
|
3433
3420
|
|
|
3434
|
-
semver@7.7.
|
|
3435
|
-
|
|
3436
|
-
semver@7.7.3:
|
|
3437
|
-
optional: true
|
|
3421
|
+
semver@7.7.3: {}
|
|
3438
3422
|
|
|
3439
3423
|
set-function-length@1.2.2:
|
|
3440
3424
|
dependencies:
|
|
@@ -3582,10 +3566,10 @@ snapshots:
|
|
|
3582
3566
|
|
|
3583
3567
|
strip-json-comments@3.1.1: {}
|
|
3584
3568
|
|
|
3585
|
-
styled-jsx@5.1.6(react@19.
|
|
3569
|
+
styled-jsx@5.1.6(react@19.2.0):
|
|
3586
3570
|
dependencies:
|
|
3587
3571
|
client-only: 0.0.1
|
|
3588
|
-
react: 19.
|
|
3572
|
+
react: 19.2.0
|
|
3589
3573
|
|
|
3590
3574
|
supports-color@7.2.0:
|
|
3591
3575
|
dependencies:
|
|
@@ -3665,7 +3649,7 @@ snapshots:
|
|
|
3665
3649
|
has-symbols: 1.1.0
|
|
3666
3650
|
which-boxed-primitive: 1.1.1
|
|
3667
3651
|
|
|
3668
|
-
undici-types@6.
|
|
3652
|
+
undici-types@6.21.0: {}
|
|
3669
3653
|
|
|
3670
3654
|
unrs-resolver@1.5.0:
|
|
3671
3655
|
optionalDependencies:
|