@evoscientist/webui 0.3.0 → 0.3.2
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/dist/.next/BUILD_ID +1 -1
- package/dist/.next/build-manifest.json +6 -6
- package/dist/.next/prerender-manifest.json +6 -6
- package/dist/.next/required-server-files.json +7 -1
- package/dist/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/dist/.next/server/app/_global-error/page.js +3 -3
- package/dist/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_global-error.html +1 -1
- package/dist/.next/server/app/_global-error.meta +8 -0
- package/dist/.next/server/app/_global-error.rsc +1 -1
- package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/dist/.next/server/app/_not-found/page.js +3 -3
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.meta +8 -0
- package/dist/.next/server/app/_not-found.rsc +2 -2
- package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/.next/server/app/api/evosci-config/route.js +1 -1
- package/dist/.next/server/app/api/evosci-config/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/evosci-config/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/executions/route.js +1 -1
- package/dist/.next/server/app/api/memory/executions/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/executions/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/observations/route.js +1 -1
- package/dist/.next/server/app/api/memory/observations/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/observations/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/memory/route.js +1 -1
- package/dist/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/memory/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/catalog/route.js +1 -1
- package/dist/.next/server/app/api/skills/catalog/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/catalog/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/detail/route.js +1 -1
- package/dist/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/detail/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/install/route.js +1 -1
- package/dist/.next/server/app/api/skills/install/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/skills/route.js +1 -1
- package/dist/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/download/route.js +1 -1
- package/dist/.next/server/app/api/workspace/download/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/download/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/file/route.js +1 -1
- package/dist/.next/server/app/api/workspace/file/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/file/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/route.js +1 -1
- package/dist/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/workspace/upload/route.js +1 -1
- package/dist/.next/server/app/api/workspace/upload/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/workspace/upload/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/icon.png/route.js +1 -1
- package/dist/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/dist/.next/server/app/icon.png.meta +1 -1
- package/dist/.next/server/app/index.html +1 -1
- package/dist/.next/server/app/index.meta +8 -0
- package/dist/.next/server/app/index.rsc +3 -3
- package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/dist/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/.next/server/app/page/build-manifest.json +3 -3
- package/dist/.next/server/app/page.js +3 -3
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/chunks/{[externals]__0l8ei7u._.js → [externals]__12s2uxr._.js} +2 -2
- package/dist/.next/server/chunks/[root-of-the-server]__0239a1s._.js +1 -1
- package/dist/.next/server/chunks/[root-of-the-server]__0l3yhx4._.js +2 -2
- package/dist/.next/server/chunks/{[root-of-the-server]__0c_9zoh._.js → [root-of-the-server]__0lmbd-x._.js} +1 -1
- package/dist/.next/server/chunks/{[root-of-the-server]__08gtyud._.js → [root-of-the-server]__0o8rrlw._.js} +1 -1
- package/dist/.next/server/chunks/{[root-of-the-server]__0dsauq5._.js → [root-of-the-server]__0tsmn4o._.js} +1 -1
- package/dist/.next/server/chunks/{[root-of-the-server]__1nb3ezt._.js → [root-of-the-server]__1301wm3._.js} +1 -1
- package/dist/.next/server/chunks/[root-of-the-server]__13z7yld._.js +3 -0
- package/dist/.next/server/chunks/[root-of-the-server]__1csj9d7._.js +6 -0
- package/dist/.next/server/chunks/[root-of-the-server]__1lhglnn._.js +6 -0
- package/dist/.next/server/chunks/[root-of-the-server]__21ai51o._.js +6 -0
- package/dist/.next/server/chunks/_00r_7g_._.js +1 -1
- package/dist/.next/server/chunks/_042sj8j._.js +1 -1
- package/dist/.next/server/chunks/_0lp3ten._.js +1 -1
- package/dist/.next/server/chunks/_0m7b81h._.js +1 -1
- package/dist/.next/server/chunks/_13lro7d._.js +1 -1
- package/dist/.next/server/chunks/_154zcbx._.js +1 -1
- package/dist/.next/server/chunks/_1_oz68h._.js +1 -1
- package/dist/.next/server/chunks/_1lqtgjk._.js +1 -1
- package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0xpcv9w._.js → [root-of-the-server]__0gz0l81._.js} +4 -4
- package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0o0ct70._.js → [root-of-the-server]__0ofckpb._.js} +2 -2
- package/dist/.next/server/chunks/ssr/[root-of-the-server]__1q-wcrf._.js +5 -5
- package/dist/.next/server/chunks/ssr/{node_modules_09pkkps._.js → node_modules_05olfud._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0sfdscp._.js → node_modules_0707c4h._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_13418z5._.js → node_modules_0784dh-._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_1ic3g8m._.js → node_modules_09zrx7f._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_1di__7s._.js → node_modules_0afp9zt._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0265-rz._.js → node_modules_0bhc62w._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0mshgc0._.js → node_modules_0d3782d._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0y4c6ao._.js → node_modules_0gczflt._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0lb0yml._.js → node_modules_0i24s-o._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_1frmxq2._.js → node_modules_0jt-p_3._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_1yw7dd6._.js → node_modules_0jwjxy_._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_16r2-d4._.js → node_modules_0l773dp._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_10xlaeo._.js → node_modules_0m8u9v1._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0zinurw._.js → node_modules_0ml23_q._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0r6hp0p._.js → node_modules_0rlst0z._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0f1vz2j._.js → node_modules_0tivl4k._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0653v7w._.js → node_modules_13v6kpn._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0snw7z_._.js → node_modules_168xluw._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0gq6n6w._.js → node_modules_16ad5zu._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_0tbm7m-._.js → node_modules_18bc60h._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0e21i6_._.js → node_modules_1aavgsp._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0tfd3hd._.js → node_modules_1bo2k7k._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0zz_c7x._.js → node_modules_1ch0k2m._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_1e3xu34._.js → node_modules_1dc_thh._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0fpr7k8._.js → node_modules_1mqkp65._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0d4t5t-._.js → node_modules_1t21v31._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_0revk50._.js → node_modules_1u__5g0._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_11xf286._.js → node_modules_1vsvm0k._.js} +2 -2
- package/dist/.next/server/chunks/ssr/{node_modules_1_uze58._.js → node_modules_1z3x6_m._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_1nia3l1._.js → node_modules_1zm22k3._.js} +1 -1
- package/dist/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0rmimx0._.js → node_modules_katex_dist_katex_mjs_02vnq48._.js} +1 -1
- package/dist/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-DU6HZSFF_mjs_20hsuk9._.js +2 -2
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +6 -0
- package/dist/.next/server/middleware-build-manifest.js +6 -6
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.js +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/09nrlxui_thd6.css +3 -0
- package/dist/.next/static/chunks/13ss71zqoc3if.js +122 -0
- package/dist/.next/static/chunks/{02g89o135esk3.js → 36z02g61bmnkq.js} +1 -1
- package/dist/.next/static/chunks/3ckjr-0dkyr_7.js +13 -0
- package/dist/.next/static/chunks/{2zf625u-tcwdn.js → 3gwb465dhjxo9.js} +1 -1
- package/dist/.next/static/chunks/{3fg_vuz1xt14w.js → 45asonyfr0kfy.js} +1 -1
- package/dist/.next/static/chunks/{turbopack-3cm-eevva8ksw.js → turbopack-3it-vrv5uq3no.js} +1 -1
- package/dist/node_modules/@next/env/package.json +1 -1
- package/dist/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
- package/dist/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +17 -17
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +18 -18
- package/dist/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +3 -3
- package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +13 -13
- package/dist/node_modules/next/dist/experimental/testmode/fetch.js +10 -2
- package/dist/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/dist/node_modules/next/dist/lib/typescript/runTypeScriptCli.js +2 -2
- package/dist/node_modules/next/dist/lib/verify-typescript-setup.js +3 -1
- package/dist/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +2 -1
- package/dist/node_modules/next/dist/server/base-server.js +1 -2
- package/dist/node_modules/next/dist/server/config.js +1 -1
- package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/node_modules/next/dist/server/image-optimizer.js +281 -55
- package/dist/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/node_modules/next/dist/server/lib/disk-lru-cache.external.js +7 -1
- package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +177 -19
- package/dist/node_modules/next/dist/server/lib/incremental-cache/index.js +36 -17
- package/dist/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +14 -6
- package/dist/node_modules/next/dist/server/lib/match-next-data-pathname.js +3 -1
- package/dist/node_modules/next/dist/server/lib/node-fs-methods.js +14 -0
- package/dist/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
- package/dist/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +9 -11
- package/dist/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/node_modules/next/dist/server/mcp/get-mcp-middleware.js +4 -2
- package/dist/node_modules/next/dist/server/next-server.js +7 -3
- package/dist/node_modules/next/dist/server/response-cache/index.js +32 -16
- package/dist/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +2 -2
- package/dist/node_modules/next/dist/server/route-modules/pages/pages-handler.js +6 -1
- package/dist/node_modules/next/dist/server/route-modules/route-module.js +9 -2
- package/dist/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +36 -30
- package/dist/node_modules/next/dist/shared/lib/router/utils/app-paths.js +18 -1
- package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/node_modules/next/package.json +11 -11
- package/dist/package.json +3 -3
- package/dist/server.js +1 -1
- package/package.json +3 -3
- package/dist/.next/server/chunks/[root-of-the-server]__01e0ekn._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__0d2jr7j._.js +0 -3
- package/dist/.next/server/chunks/[root-of-the-server]__0om1fsa._.js +0 -6
- package/dist/.next/server/chunks/[root-of-the-server]__19l67fj._.js +0 -6
- package/dist/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +0 -6
- package/dist/.next/static/chunks/357uypdcfkasu.js +0 -13
- package/dist/.next/static/chunks/3cmvtz1y1tcd1.css +0 -3
- package/dist/.next/static/chunks/3zgnmu3cnahk0.js +0 -122
- package/dist/node_modules/@img/colour/color.cjs +0 -1596
- package/dist/node_modules/@img/colour/index.cjs +0 -1
- package/dist/node_modules/@img/colour/package.json +0 -58
- package/dist/node_modules/@img/sharp-darwin-arm64/index.cjs +0 -2
- package/dist/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.4.node +0 -0
- package/dist/node_modules/@img/sharp-darwin-arm64/package.json +0 -41
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/README.md +0 -46
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +0 -218
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.18.6.dylib +0 -0
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -37
- package/dist/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
- package/dist/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/dist/node_modules/detect-libc/lib/elf.js +0 -39
- package/dist/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/dist/node_modules/detect-libc/lib/process.js +0 -24
- package/dist/node_modules/detect-libc/package.json +0 -44
- package/dist/node_modules/semver/package.json +0 -38
- package/dist/node_modules/sharp/dist/channel.cjs +0 -177
- package/dist/node_modules/sharp/dist/channel.mjs +0 -177
- package/dist/node_modules/sharp/dist/colour.cjs +0 -199
- package/dist/node_modules/sharp/dist/colour.mjs +0 -199
- package/dist/node_modules/sharp/dist/composite.cjs +0 -213
- package/dist/node_modules/sharp/dist/composite.mjs +0 -213
- package/dist/node_modules/sharp/dist/constructor.cjs +0 -511
- package/dist/node_modules/sharp/dist/constructor.mjs +0 -511
- package/dist/node_modules/sharp/dist/index.cjs +0 -25
- package/dist/node_modules/sharp/dist/index.d.cts +0 -1999
- package/dist/node_modules/sharp/dist/index.d.mts +0 -2046
- package/dist/node_modules/sharp/dist/index.mjs +0 -25
- package/dist/node_modules/sharp/dist/input.cjs +0 -819
- package/dist/node_modules/sharp/dist/input.mjs +0 -819
- package/dist/node_modules/sharp/dist/is.cjs +0 -143
- package/dist/node_modules/sharp/dist/is.mjs +0 -143
- package/dist/node_modules/sharp/dist/libvips.cjs +0 -212
- package/dist/node_modules/sharp/dist/libvips.mjs +0 -212
- package/dist/node_modules/sharp/dist/operation.cjs +0 -1002
- package/dist/node_modules/sharp/dist/operation.mjs +0 -1002
- package/dist/node_modules/sharp/dist/output.cjs +0 -1785
- package/dist/node_modules/sharp/dist/output.mjs +0 -1785
- package/dist/node_modules/sharp/dist/resize.cjs +0 -617
- package/dist/node_modules/sharp/dist/resize.mjs +0 -617
- package/dist/node_modules/sharp/dist/sharp.cjs +0 -174
- package/dist/node_modules/sharp/dist/sharp.mjs +0 -174
- package/dist/node_modules/sharp/dist/utility.cjs +0 -301
- package/dist/node_modules/sharp/dist/utility.mjs +0 -301
- package/dist/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
- package/dist/node_modules/sharp/node_modules/semver/classes/range.js +0 -577
- package/dist/node_modules/sharp/node_modules/semver/classes/semver.js +0 -350
- package/dist/node_modules/sharp/node_modules/semver/functions/clean.js +0 -8
- package/dist/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
- package/dist/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
- package/dist/node_modules/sharp/node_modules/semver/functions/compare-build.js +0 -9
- package/dist/node_modules/sharp/node_modules/semver/functions/compare-loose.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
- package/dist/node_modules/sharp/node_modules/semver/functions/diff.js +0 -60
- package/dist/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/inc.js +0 -21
- package/dist/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/major.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/minor.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
- package/dist/node_modules/sharp/node_modules/semver/functions/patch.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/prerelease.js +0 -8
- package/dist/node_modules/sharp/node_modules/semver/functions/rcompare.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/rsort.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
- package/dist/node_modules/sharp/node_modules/semver/functions/sort.js +0 -5
- package/dist/node_modules/sharp/node_modules/semver/functions/truncate.js +0 -48
- package/dist/node_modules/sharp/node_modules/semver/functions/valid.js +0 -8
- package/dist/node_modules/sharp/node_modules/semver/index.js +0 -93
- package/dist/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
- package/dist/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
- package/dist/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
- package/dist/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
- package/dist/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
- package/dist/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
- package/dist/node_modules/sharp/node_modules/semver/package.json +0 -78
- package/dist/node_modules/sharp/node_modules/semver/ranges/gtr.js +0 -6
- package/dist/node_modules/sharp/node_modules/semver/ranges/intersects.js +0 -9
- package/dist/node_modules/sharp/node_modules/semver/ranges/ltr.js +0 -6
- package/dist/node_modules/sharp/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/dist/node_modules/sharp/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/dist/node_modules/sharp/node_modules/semver/ranges/min-version.js +0 -63
- package/dist/node_modules/sharp/node_modules/semver/ranges/outside.js +0 -82
- package/dist/node_modules/sharp/node_modules/semver/ranges/simplify.js +0 -49
- package/dist/node_modules/sharp/node_modules/semver/ranges/subset.js +0 -249
- package/dist/node_modules/sharp/node_modules/semver/ranges/to-comparators.js +0 -10
- package/dist/node_modules/sharp/node_modules/semver/ranges/valid.js +0 -13
- package/dist/node_modules/sharp/package.json +0 -227
- /package/dist/.next/static/{GuE943tuTCMHEfFMDvjrJ → 6-cCzudznf5YJPljIySXU}/_buildManifest.js +0 -0
- /package/dist/.next/static/{GuE943tuTCMHEfFMDvjrJ → 6-cCzudznf5YJPljIySXU}/_clientMiddlewareManifest.js +0 -0
- /package/dist/.next/static/{GuE943tuTCMHEfFMDvjrJ → 6-cCzudznf5YJPljIySXU}/_ssgManifest.js +0 -0
|
@@ -83,11 +83,19 @@ function buildResponse(proxyResponse) {
|
|
|
83
83
|
headers: new Headers(headers)
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
+
function passthroughFetch(originalFetch, request) {
|
|
87
|
+
// Mark the request so the ClientRequest interception in `httpget.ts` sends it
|
|
88
|
+
// to the real server instead of intercepting it again. @mswjs/interceptors
|
|
89
|
+
// intercepts at the TCP level, so an unmarked passthrough would re-enter the
|
|
90
|
+
// interception listener from within itself, recursing indefinitely.
|
|
91
|
+
request.headers.set('next-test-internal', '1');
|
|
92
|
+
return originalFetch(request);
|
|
93
|
+
}
|
|
86
94
|
async function handleFetch(originalFetch, request) {
|
|
87
95
|
const testInfo = (0, _context.getTestReqInfo)(request, reader);
|
|
88
96
|
if (!testInfo) {
|
|
89
97
|
// Passthrough non-test requests.
|
|
90
|
-
return originalFetch
|
|
98
|
+
return passthroughFetch(originalFetch, request);
|
|
91
99
|
}
|
|
92
100
|
const { testData, proxyPort } = testInfo;
|
|
93
101
|
const proxyRequest = await buildProxyRequest(testData, request);
|
|
@@ -118,7 +126,7 @@ async function handleFetch(originalFetch, request) {
|
|
|
118
126
|
const { api } = proxyResponse;
|
|
119
127
|
switch(api){
|
|
120
128
|
case 'continue':
|
|
121
|
-
return originalFetch
|
|
129
|
+
return passthroughFetch(originalFetch, request);
|
|
122
130
|
case 'abort':
|
|
123
131
|
case 'unhandled':
|
|
124
132
|
throw Object.defineProperty(new Error(`Proxy request aborted [${request.method} ${request.url}]`), "__NEXT_ERROR_CODE", {
|
|
@@ -72,7 +72,7 @@ async function fetchPkgInfo(pkg) {
|
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
const data = await res.json();
|
|
75
|
-
const versionData = data.versions["16.3.
|
|
75
|
+
const versionData = data.versions["16.3.8"];
|
|
76
76
|
return {
|
|
77
77
|
os: versionData.os,
|
|
78
78
|
cpu: versionData.cpu,
|
|
@@ -100,7 +100,7 @@ async function patchIncorrectLockfile(dir) {
|
|
|
100
100
|
const expectedSwcPkgs = Object.keys(_packagejson.optionalDependencies || {}).filter((pkg)=>pkg.startsWith('@next/swc-'));
|
|
101
101
|
const patchDependency = (pkg, pkgData)=>{
|
|
102
102
|
lockfileParsed.dependencies[pkg] = {
|
|
103
|
-
version: "16.3.
|
|
103
|
+
version: "16.3.8",
|
|
104
104
|
resolved: pkgData.tarball,
|
|
105
105
|
integrity: pkgData.integrity,
|
|
106
106
|
optional: true
|
|
@@ -108,7 +108,7 @@ async function patchIncorrectLockfile(dir) {
|
|
|
108
108
|
};
|
|
109
109
|
const patchPackage = (pkg, pkgData)=>{
|
|
110
110
|
lockfileParsed.packages[pkg] = {
|
|
111
|
-
version: "16.3.
|
|
111
|
+
version: "16.3.8",
|
|
112
112
|
resolved: pkgData.tarball,
|
|
113
113
|
integrity: pkgData.integrity,
|
|
114
114
|
cpu: pkgData.cpu,
|
|
@@ -44,7 +44,7 @@ function _interop_require_default(obj) {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
function getTypeScriptPackageInfo(baseDir) {
|
|
47
|
-
var _packageJson_bin;
|
|
47
|
+
var _packageJson_bin, _Object_entries_find;
|
|
48
48
|
let packageJsonPath;
|
|
49
49
|
try {
|
|
50
50
|
packageJsonPath = (0, _resolvefrom.resolveFrom)(baseDir, 'typescript/package.json');
|
|
@@ -54,7 +54,7 @@ function getTypeScriptPackageInfo(baseDir) {
|
|
|
54
54
|
const packageJson = JSON.parse((0, _nodefs.readFileSync)(packageJsonPath, 'utf8'));
|
|
55
55
|
const packageDir = _nodepath.default.dirname(packageJsonPath);
|
|
56
56
|
const apiPath = _nodepath.default.join(packageDir, 'lib', 'typescript.js');
|
|
57
|
-
const tscBin = typeof packageJson.bin === 'string' ? packageJson.bin : (_packageJson_bin = packageJson.bin) == null ? void 0 : _packageJson_bin.tsc;
|
|
57
|
+
const tscBin = typeof packageJson.bin === 'string' ? packageJson.bin : ((_packageJson_bin = packageJson.bin) == null ? void 0 : _packageJson_bin.tsc) ?? ((_Object_entries_find = Object.entries(packageJson.bin ?? {}).find(([name])=>/^tsc\d+$/.test(name))) == null ? void 0 : _Object_entries_find[1]);
|
|
58
58
|
const tscBinPath = tscBin ? _nodepath.default.resolve(packageDir, tscBin) : undefined;
|
|
59
59
|
let tscPath = tscBinPath;
|
|
60
60
|
if (tscBinPath && (0, _nodefs.existsSync)(tscBinPath) && packageJson.type === 'module' && _nodepath.default.extname(tscBinPath) === '') {
|
|
@@ -86,7 +86,9 @@ const typescriptApiPackage = {
|
|
|
86
86
|
exportsRestrict: true
|
|
87
87
|
};
|
|
88
88
|
const typescriptCliPackage = {
|
|
89
|
-
|
|
89
|
+
// The CLI path is resolved from the package's bin metadata after this initial
|
|
90
|
+
// package-presence check, since aliased TypeScript packages may rename it.
|
|
91
|
+
file: 'typescript/package.json',
|
|
90
92
|
pkg: 'typescript',
|
|
91
93
|
exportsRestrict: true
|
|
92
94
|
};
|
package/dist/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js
CHANGED
|
@@ -23,7 +23,8 @@ async function createComponentStylesAndScripts({ filePath, getComponent, injecte
|
|
|
23
23
|
scripts.push(createElement('script', {
|
|
24
24
|
src: `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(href)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`,
|
|
25
25
|
async: true,
|
|
26
|
-
key: `script-${scriptIndex}
|
|
26
|
+
key: `script-${scriptIndex}`,
|
|
27
|
+
nonce: ctx.nonce
|
|
27
28
|
}));
|
|
28
29
|
scriptIndex++;
|
|
29
30
|
}
|
|
@@ -1569,8 +1569,7 @@ class Server {
|
|
|
1569
1569
|
const isAppPath = Array.isArray(appPaths);
|
|
1570
1570
|
let page = pathname;
|
|
1571
1571
|
if (isAppPath) {
|
|
1572
|
-
|
|
1573
|
-
page = appPaths[appPaths.length - 1];
|
|
1572
|
+
page = (0, _apppaths.selectAppPageEntry)(pathname, appPaths);
|
|
1574
1573
|
}
|
|
1575
1574
|
const result = await this.findPageComponents({
|
|
1576
1575
|
locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'),
|
|
@@ -302,7 +302,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
|
|
|
302
302
|
}
|
|
303
303
|
const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
|
|
304
304
|
const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
305
|
-
version: "16.3.
|
|
305
|
+
version: "16.3.8"
|
|
306
306
|
});
|
|
307
307
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
308
308
|
// of the current `next dev` invocation.
|
|
@@ -362,7 +362,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
|
|
|
362
362
|
writeRoutesHashesManifest: false,
|
|
363
363
|
currentNodeJsVersion,
|
|
364
364
|
isPersistentCachingEnabled: (0, _utils2.isFileSystemCacheEnabledForDev)(opts.nextConfig),
|
|
365
|
-
nextVersion: "16.3.
|
|
365
|
+
nextVersion: "16.3.8",
|
|
366
366
|
serverHmr: serverFastRefresh
|
|
367
367
|
}, {
|
|
368
368
|
turbopackMemoryEviction: opts.nextConfig.experimental.turbopackMemoryEvictionMode,
|
|
@@ -234,7 +234,7 @@ class HotReloaderWebpack {
|
|
|
234
234
|
this.previewProps = previewProps;
|
|
235
235
|
this.rewrites = rewrites;
|
|
236
236
|
this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
|
|
237
|
-
version: "16.3.
|
|
237
|
+
version: "16.3.8"
|
|
238
238
|
});
|
|
239
239
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
240
240
|
// of the current `next dev` invocation.
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
0 && (module.exports = {
|
|
6
6
|
ImageError: null,
|
|
7
7
|
ImageOptimizerCache: null,
|
|
8
|
+
createPinnedLookup: null,
|
|
8
9
|
detectContentType: null,
|
|
9
10
|
extractEtag: null,
|
|
10
11
|
fetchExternalImage: null,
|
|
@@ -32,6 +33,9 @@ _export(exports, {
|
|
|
32
33
|
ImageOptimizerCache: function() {
|
|
33
34
|
return ImageOptimizerCache;
|
|
34
35
|
},
|
|
36
|
+
createPinnedLookup: function() {
|
|
37
|
+
return createPinnedLookup;
|
|
38
|
+
},
|
|
35
39
|
detectContentType: function() {
|
|
36
40
|
return detectContentType;
|
|
37
41
|
},
|
|
@@ -74,6 +78,8 @@ _export(exports, {
|
|
|
74
78
|
});
|
|
75
79
|
const _crypto = require("crypto");
|
|
76
80
|
const _fs = require("fs");
|
|
81
|
+
const _http = require("http");
|
|
82
|
+
const _https = require("https");
|
|
77
83
|
const _accept = require("next/dist/compiled/@hapi/accept");
|
|
78
84
|
const _contentdisposition = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/content-disposition"));
|
|
79
85
|
const _imagesize = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/image-size"));
|
|
@@ -96,6 +102,8 @@ const _invarianterror = require("../shared/lib/invariant-error");
|
|
|
96
102
|
const _promises = require("dns/promises");
|
|
97
103
|
const _net = require("net");
|
|
98
104
|
const _dns = require("dns");
|
|
105
|
+
const _stream = require("stream");
|
|
106
|
+
const _zlib = require("zlib");
|
|
99
107
|
function _interop_require_default(obj) {
|
|
100
108
|
return obj && obj.__esModule ? obj : {
|
|
101
109
|
default: obj
|
|
@@ -168,8 +176,7 @@ const BYPASS_TYPES = [
|
|
|
168
176
|
ICNS,
|
|
169
177
|
BMP,
|
|
170
178
|
JXL,
|
|
171
|
-
HEIC
|
|
172
|
-
AVIF
|
|
179
|
+
HEIC
|
|
173
180
|
];
|
|
174
181
|
const BLUR_IMG_SIZE = 8 // should match `next-image-loader`
|
|
175
182
|
;
|
|
@@ -207,6 +214,7 @@ function getSharp(concurrency, operationCache) {
|
|
|
207
214
|
});
|
|
208
215
|
_sharp.unblock({
|
|
209
216
|
operation: [
|
|
217
|
+
'VipsForeignLoadHeif',
|
|
210
218
|
'VipsForeignLoadJpeg',
|
|
211
219
|
'VipsForeignLoadNsgif',
|
|
212
220
|
'VipsForeignLoadPng',
|
|
@@ -266,6 +274,13 @@ function getImageEtag(image) {
|
|
|
266
274
|
]);
|
|
267
275
|
}
|
|
268
276
|
async function writeToCacheDir(cacheDir, cacheKey, extension, maxAge, expireAt, buffer, etag, upstreamEtag) {
|
|
277
|
+
if (buffer.byteLength === 0) {
|
|
278
|
+
throw Object.defineProperty(new Error('Invariant: cannot write an empty buffer to the image cache'), "__NEXT_ERROR_CODE", {
|
|
279
|
+
value: "E1470",
|
|
280
|
+
enumerable: false,
|
|
281
|
+
configurable: true
|
|
282
|
+
});
|
|
283
|
+
}
|
|
269
284
|
const dir = (0, _path.join)(/* turbopackIgnore: true */ cacheDir, cacheKey);
|
|
270
285
|
const filename = (0, _path.join)(/* turbopackIgnore: true */ dir, `${maxAge}.${expireAt}.${etag}.${upstreamEtag}.${extension}`);
|
|
271
286
|
await _fs.promises.rm(dir, {
|
|
@@ -291,6 +306,13 @@ async function readFromCacheDir(cacheDir, cacheKey) {
|
|
|
291
306
|
const [maxAgeSt, expireAtSt, etag, upstreamEtag, extension] = file.split('.', 5);
|
|
292
307
|
const filePath = (0, _path.join)(/* turbopackIgnore: true */ dir, file);
|
|
293
308
|
const buffer = await _fs.promises.readFile(/* turbopackIgnore: true */ filePath);
|
|
309
|
+
if (buffer.byteLength === 0) {
|
|
310
|
+
throw Object.defineProperty(new Error(`Invariant: image cache entry "${cacheKey}" is empty`), "__NEXT_ERROR_CODE", {
|
|
311
|
+
value: "E1469",
|
|
312
|
+
enumerable: false,
|
|
313
|
+
configurable: true
|
|
314
|
+
});
|
|
315
|
+
}
|
|
294
316
|
const expireAt = Number(expireAtSt);
|
|
295
317
|
const maxAge = Number(maxAgeSt);
|
|
296
318
|
return {
|
|
@@ -782,6 +804,7 @@ class ImageOptimizerCache {
|
|
|
782
804
|
revalidate: effectiveRevalidate
|
|
783
805
|
};
|
|
784
806
|
await this.cacheHandler.set(cacheKey, valueWithRevalidate, {
|
|
807
|
+
kind: _responsecache.IncrementalCacheKind.IMAGE,
|
|
785
808
|
cacheControl: {
|
|
786
809
|
revalidate: effectiveRevalidate,
|
|
787
810
|
expire: cacheControl == null ? void 0 : cacheControl.expire
|
|
@@ -918,25 +941,210 @@ function isRedirect(statusCode) {
|
|
|
918
941
|
308
|
|
919
942
|
].includes(statusCode);
|
|
920
943
|
}
|
|
944
|
+
function upstreamTimedOut(href) {
|
|
945
|
+
_log.error('upstream image response timed out for', href);
|
|
946
|
+
return Object.defineProperty(new ImageError(504, '"url" parameter is valid but upstream response timed out'), "__NEXT_ERROR_CODE", {
|
|
947
|
+
value: "E394",
|
|
948
|
+
enumerable: false,
|
|
949
|
+
configurable: true
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
const agentOptions = {
|
|
953
|
+
keepAlive: true,
|
|
954
|
+
timeout: 7000
|
|
955
|
+
};
|
|
956
|
+
const getHttpAgentName = _http.Agent.prototype.getName;
|
|
957
|
+
const getHttpsAgentName = _https.Agent.prototype.getName;
|
|
958
|
+
class ImageHttpAgent extends _http.Agent {
|
|
959
|
+
getName(options = {}) {
|
|
960
|
+
return `${getHttpAgentName.call(this, options)}:${options.imageLookupKey ?? ''}`;
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
class ImageHttpsAgent extends _https.Agent {
|
|
964
|
+
getName(options = {}) {
|
|
965
|
+
return `${getHttpsAgentName.call(this, options)}:${options.imageLookupKey ?? ''}`;
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
let protectedHttpAgent;
|
|
969
|
+
let protectedHttpsAgent;
|
|
970
|
+
let permissiveHttpAgent;
|
|
971
|
+
let permissiveHttpsAgent;
|
|
972
|
+
function getImageAgent(dangerouslyAllowLocalIP, isHttps) {
|
|
973
|
+
if (isHttps) {
|
|
974
|
+
if (dangerouslyAllowLocalIP) {
|
|
975
|
+
return permissiveHttpsAgent ??= new ImageHttpsAgent(agentOptions);
|
|
976
|
+
}
|
|
977
|
+
return protectedHttpsAgent ??= new ImageHttpsAgent(agentOptions);
|
|
978
|
+
}
|
|
979
|
+
if (dangerouslyAllowLocalIP) {
|
|
980
|
+
return permissiveHttpAgent ??= new ImageHttpAgent(agentOptions);
|
|
981
|
+
}
|
|
982
|
+
return protectedHttpAgent ??= new ImageHttpAgent(agentOptions);
|
|
983
|
+
}
|
|
984
|
+
const BASE_REQ_HEADERS = {
|
|
985
|
+
accept: '*/*',
|
|
986
|
+
'accept-language': '*',
|
|
987
|
+
'sec-fetch-mode': 'cors',
|
|
988
|
+
'user-agent': 'node'
|
|
989
|
+
};
|
|
990
|
+
const HTTP_FETCH_HEADERS = {
|
|
991
|
+
...BASE_REQ_HEADERS,
|
|
992
|
+
'accept-encoding': 'gzip, deflate'
|
|
993
|
+
};
|
|
994
|
+
const HTTPS_FETCH_HEADERS = {
|
|
995
|
+
...BASE_REQ_HEADERS,
|
|
996
|
+
'accept-encoding': 'br, gzip, deflate'
|
|
997
|
+
};
|
|
998
|
+
/**
|
|
999
|
+
* Resolves `hostname` with the DNS options the socket itself would have used,
|
|
1000
|
+
* so the addresses checked below are the exact set the connection can reach.
|
|
1001
|
+
* Mirrors `lookupAndConnect()` in Node's `lib/net.js`.
|
|
1002
|
+
*/ function lookupAsSocketWould(hostname) {
|
|
1003
|
+
return (0, _promises.lookup)(hostname, {
|
|
1004
|
+
all: true,
|
|
1005
|
+
// Node applies ADDRCONFIG whenever no address family is requested,
|
|
1006
|
+
// on every platform except Windows.
|
|
1007
|
+
hints: process.platform === 'win32' ? 0 : _dns.ADDRCONFIG
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
function createPinnedLookup(hostname, addresses) {
|
|
1011
|
+
return (lookupHostname, options, callback)=>{
|
|
1012
|
+
if (lookupHostname !== hostname) {
|
|
1013
|
+
callback(new _invarianterror.InvariantError(`Image lookup hostname "${lookupHostname}" does not match request hostname "${hostname}"`), []);
|
|
1014
|
+
return;
|
|
1015
|
+
}
|
|
1016
|
+
const family = typeof options.family === 'number' ? options.family : 0;
|
|
1017
|
+
const matched = family ? addresses.filter((address)=>address.family === family) : addresses;
|
|
1018
|
+
if (matched.length === 0) {
|
|
1019
|
+
// Reporting this as an error rather than an empty list is not optional:
|
|
1020
|
+
// Node destructures the first address, so the resulting TypeError is
|
|
1021
|
+
// thrown inside the socket and escapes the request entirely.
|
|
1022
|
+
const err = new Error(`No IPv${family} address available for ${hostname}`);
|
|
1023
|
+
err.code = 'ENODATA';
|
|
1024
|
+
callback(err, []);
|
|
1025
|
+
return;
|
|
1026
|
+
}
|
|
1027
|
+
if (options.all) {
|
|
1028
|
+
callback(null, matched);
|
|
1029
|
+
} else {
|
|
1030
|
+
callback(null, matched[0].address, matched[0].family);
|
|
1031
|
+
}
|
|
1032
|
+
};
|
|
1033
|
+
}
|
|
1034
|
+
function requestUpstreamImage(url, pinnedLookup, imageLookupKey, dangerouslyAllowLocalIP, signal) {
|
|
1035
|
+
return new Promise((resolve, reject)=>{
|
|
1036
|
+
const isHttps = url.protocol === 'https:';
|
|
1037
|
+
const request = isHttps ? _https.request : _http.request;
|
|
1038
|
+
const options = {
|
|
1039
|
+
agent: getImageAgent(dangerouslyAllowLocalIP, isHttps),
|
|
1040
|
+
headers: isHttps ? HTTPS_FETCH_HEADERS : HTTP_FETCH_HEADERS,
|
|
1041
|
+
imageLookupKey,
|
|
1042
|
+
lookup: pinnedLookup,
|
|
1043
|
+
signal
|
|
1044
|
+
};
|
|
1045
|
+
const req = request(url, options, resolve);
|
|
1046
|
+
req.on('error', reject);
|
|
1047
|
+
req.end();
|
|
1048
|
+
});
|
|
1049
|
+
}
|
|
1050
|
+
class DeflateDecoder extends _stream.Transform {
|
|
1051
|
+
constructor(){
|
|
1052
|
+
super();
|
|
1053
|
+
this.decoder = undefined;
|
|
1054
|
+
}
|
|
1055
|
+
_transform(chunk, encoding, callback) {
|
|
1056
|
+
if (!this.decoder) {
|
|
1057
|
+
if (chunk.length === 0) {
|
|
1058
|
+
callback();
|
|
1059
|
+
return;
|
|
1060
|
+
}
|
|
1061
|
+
const options = {
|
|
1062
|
+
flush: _zlib.constants.Z_SYNC_FLUSH,
|
|
1063
|
+
finishFlush: _zlib.constants.Z_SYNC_FLUSH
|
|
1064
|
+
};
|
|
1065
|
+
this.decoder = (chunk[0] & 0x0f) === 0x08 ? (0, _zlib.createInflate)(options) : (0, _zlib.createInflateRaw)(options);
|
|
1066
|
+
this.decoder.on('data', (data)=>this.push(data));
|
|
1067
|
+
this.decoder.on('end', ()=>this.push(null));
|
|
1068
|
+
this.decoder.on('error', (err)=>this.destroy(err));
|
|
1069
|
+
}
|
|
1070
|
+
this.decoder.write(chunk, encoding, callback);
|
|
1071
|
+
}
|
|
1072
|
+
_final(callback) {
|
|
1073
|
+
var _this_decoder;
|
|
1074
|
+
(_this_decoder = this.decoder) == null ? void 0 : _this_decoder.end();
|
|
1075
|
+
this.decoder = undefined;
|
|
1076
|
+
callback();
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
// Matches the chain limit of native fetch (undici), so an upstream cannot
|
|
1080
|
+
// force unbounded decoder allocations with the header alone.
|
|
1081
|
+
const MAX_CONTENT_ENCODINGS = 5;
|
|
1082
|
+
function decodeResponseBody(res, href) {
|
|
1083
|
+
const contentEncoding = res.headers['content-encoding'];
|
|
1084
|
+
if (!contentEncoding) {
|
|
1085
|
+
return res;
|
|
1086
|
+
}
|
|
1087
|
+
const codings = contentEncoding.toLowerCase().split(',');
|
|
1088
|
+
if (codings.length > MAX_CONTENT_ENCODINGS) {
|
|
1089
|
+
_log.error('upstream image response had too many content encodings for', href);
|
|
1090
|
+
throw Object.defineProperty(new ImageError(400, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
1091
|
+
value: "E394",
|
|
1092
|
+
enumerable: false,
|
|
1093
|
+
configurable: true
|
|
1094
|
+
});
|
|
1095
|
+
}
|
|
1096
|
+
const decoders = [];
|
|
1097
|
+
for(let i = codings.length - 1; i >= 0; i--){
|
|
1098
|
+
switch(codings[i].trim()){
|
|
1099
|
+
case 'x-gzip':
|
|
1100
|
+
case 'gzip':
|
|
1101
|
+
decoders.push((0, _zlib.createGunzip)({
|
|
1102
|
+
flush: _zlib.constants.Z_SYNC_FLUSH,
|
|
1103
|
+
finishFlush: _zlib.constants.Z_SYNC_FLUSH
|
|
1104
|
+
}));
|
|
1105
|
+
break;
|
|
1106
|
+
case 'deflate':
|
|
1107
|
+
decoders.push(new DeflateDecoder());
|
|
1108
|
+
break;
|
|
1109
|
+
case 'br':
|
|
1110
|
+
decoders.push((0, _zlib.createBrotliDecompress)({
|
|
1111
|
+
flush: _zlib.constants.BROTLI_OPERATION_FLUSH,
|
|
1112
|
+
finishFlush: _zlib.constants.BROTLI_OPERATION_FLUSH
|
|
1113
|
+
}));
|
|
1114
|
+
break;
|
|
1115
|
+
default:
|
|
1116
|
+
return res;
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
(0, _stream.pipeline)([
|
|
1120
|
+
res,
|
|
1121
|
+
...decoders
|
|
1122
|
+
], ()=>{});
|
|
1123
|
+
return decoders[decoders.length - 1];
|
|
1124
|
+
}
|
|
921
1125
|
async function fetchExternalImage(href, dangerouslyAllowLocalIP, maximumResponseBody, count = 3) {
|
|
1126
|
+
const url = new URL(href);
|
|
1127
|
+
// `URL.hostname` keeps the brackets around an IPv6 literal, the socket does not
|
|
1128
|
+
const hostname = url.hostname.replace(/^\[|\]$/g, '');
|
|
1129
|
+
let pinnedLookup;
|
|
1130
|
+
let imageLookupKey;
|
|
922
1131
|
if (!dangerouslyAllowLocalIP) {
|
|
923
|
-
const
|
|
924
|
-
let
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
]);
|
|
937
|
-
ips = records.map((record)=>record.address);
|
|
1132
|
+
const literalFamily = (0, _net.isIP)(hostname);
|
|
1133
|
+
let addresses;
|
|
1134
|
+
if (literalFamily > 0) {
|
|
1135
|
+
// A literal address is connected to as-is, without any DNS resolution
|
|
1136
|
+
addresses = [
|
|
1137
|
+
{
|
|
1138
|
+
address: hostname,
|
|
1139
|
+
family: literalFamily
|
|
1140
|
+
}
|
|
1141
|
+
];
|
|
1142
|
+
} else {
|
|
1143
|
+
addresses = await lookupAsSocketWould(hostname);
|
|
1144
|
+
pinnedLookup = createPinnedLookup(hostname, addresses);
|
|
938
1145
|
}
|
|
939
|
-
|
|
1146
|
+
imageLookupKey = addresses.map((address)=>`${address.family}:${address.address}`).join(',');
|
|
1147
|
+
const privateIps = addresses.map((record)=>record.address).filter((ip)=>(0, _isprivateip.isPrivateIp)(ip));
|
|
940
1148
|
if (privateIps.length > 0) {
|
|
941
1149
|
_log.error('upstream image', href, 'hostname resolved to private IP', JSON.stringify(privateIps), 'If this is expected and you understand SSRF risk, use images.dangerouslyAllowLocalIP = true to continue.');
|
|
942
1150
|
throw Object.defineProperty(new ImageError(400, '"url" parameter is not allowed'), "__NEXT_ERROR_CODE", {
|
|
@@ -946,24 +1154,31 @@ async function fetchExternalImage(href, dangerouslyAllowLocalIP, maximumResponse
|
|
|
946
1154
|
});
|
|
947
1155
|
}
|
|
948
1156
|
}
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
configurable: true
|
|
961
|
-
});
|
|
1157
|
+
// The signal is owned here rather than by `requestUpstreamImage()` because it
|
|
1158
|
+
// has to stay readable while the body streams. Node reports an abort during
|
|
1159
|
+
// the body as a plain `ECONNRESET` on the response, so the signal is the only
|
|
1160
|
+
// way to tell a timeout apart from the upstream resetting the connection.
|
|
1161
|
+
const signal = AbortSignal.timeout(agentOptions.timeout);
|
|
1162
|
+
let res;
|
|
1163
|
+
try {
|
|
1164
|
+
res = await requestUpstreamImage(url, pinnedLookup, imageLookupKey, dangerouslyAllowLocalIP, signal);
|
|
1165
|
+
} catch (err) {
|
|
1166
|
+
if (signal.aborted) {
|
|
1167
|
+
throw upstreamTimedOut(href);
|
|
962
1168
|
}
|
|
963
1169
|
throw err;
|
|
964
1170
|
}
|
|
965
|
-
const
|
|
966
|
-
if (
|
|
1171
|
+
const statusCode = res.statusCode;
|
|
1172
|
+
if (statusCode === undefined) {
|
|
1173
|
+
res.destroy();
|
|
1174
|
+
throw new _invarianterror.InvariantError('Expected statusCode on upstream image response');
|
|
1175
|
+
}
|
|
1176
|
+
const locationHeader = res.headers.location;
|
|
1177
|
+
if (isRedirect(statusCode) && locationHeader && URL.canParse(locationHeader, href)) {
|
|
1178
|
+
// Discard the body rather than draining it. A redirect body is never used,
|
|
1179
|
+
// and draining one would download unlimited bytes from the upstream because
|
|
1180
|
+
// `maximumResponseBody` is only enforced on the final response.
|
|
1181
|
+
res.destroy();
|
|
967
1182
|
if (count === 0) {
|
|
968
1183
|
_log.error('upstream image response had too many redirects', href);
|
|
969
1184
|
throw Object.defineProperty(new ImageError(508, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
@@ -975,15 +1190,41 @@ async function fetchExternalImage(href, dangerouslyAllowLocalIP, maximumResponse
|
|
|
975
1190
|
const redirect = new URL(locationHeader, href).href;
|
|
976
1191
|
return fetchExternalImage(redirect, dangerouslyAllowLocalIP, maximumResponseBody, count - 1);
|
|
977
1192
|
}
|
|
978
|
-
if (
|
|
979
|
-
|
|
980
|
-
|
|
1193
|
+
if (statusCode < 200 || statusCode > 299) {
|
|
1194
|
+
res.destroy();
|
|
1195
|
+
_log.error('upstream image response failed for', href, statusCode);
|
|
1196
|
+
throw Object.defineProperty(new ImageError(statusCode, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
981
1197
|
value: "E394",
|
|
982
1198
|
enumerable: false,
|
|
983
1199
|
configurable: true
|
|
984
1200
|
});
|
|
985
1201
|
}
|
|
986
|
-
|
|
1202
|
+
const chunks = [];
|
|
1203
|
+
let totalSize = 0;
|
|
1204
|
+
try {
|
|
1205
|
+
const body = decodeResponseBody(res, href);
|
|
1206
|
+
// Throwing out of this loop destroys the response, so an oversized or
|
|
1207
|
+
// timed out download stops instead of running to completion.
|
|
1208
|
+
for await (const chunk of body){
|
|
1209
|
+
totalSize += chunk.byteLength;
|
|
1210
|
+
if (totalSize > maximumResponseBody) {
|
|
1211
|
+
_log.error('upstream image response exceeded maximum size for', href, totalSize);
|
|
1212
|
+
throw Object.defineProperty(new ImageError(413, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
1213
|
+
value: "E394",
|
|
1214
|
+
enumerable: false,
|
|
1215
|
+
configurable: true
|
|
1216
|
+
});
|
|
1217
|
+
}
|
|
1218
|
+
chunks.push(chunk);
|
|
1219
|
+
}
|
|
1220
|
+
} catch (err) {
|
|
1221
|
+
res.destroy();
|
|
1222
|
+
if (signal.aborted) {
|
|
1223
|
+
throw upstreamTimedOut(href);
|
|
1224
|
+
}
|
|
1225
|
+
throw err;
|
|
1226
|
+
}
|
|
1227
|
+
if (totalSize === 0) {
|
|
987
1228
|
_log.error('upstream image response is empty for', href);
|
|
988
1229
|
throw Object.defineProperty(new ImageError(400, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
989
1230
|
value: "E394",
|
|
@@ -991,25 +1232,10 @@ async function fetchExternalImage(href, dangerouslyAllowLocalIP, maximumResponse
|
|
|
991
1232
|
configurable: true
|
|
992
1233
|
});
|
|
993
1234
|
}
|
|
994
|
-
const chunks = [];
|
|
995
|
-
let totalSize = 0;
|
|
996
|
-
for await (const c of res.body){
|
|
997
|
-
const chunk = Buffer.from(c);
|
|
998
|
-
totalSize += chunk.byteLength;
|
|
999
|
-
if (totalSize > maximumResponseBody) {
|
|
1000
|
-
_log.error('upstream image response exceeded maximum size for', href, totalSize);
|
|
1001
|
-
throw Object.defineProperty(new ImageError(413, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", {
|
|
1002
|
-
value: "E394",
|
|
1003
|
-
enumerable: false,
|
|
1004
|
-
configurable: true
|
|
1005
|
-
});
|
|
1006
|
-
}
|
|
1007
|
-
chunks.push(chunk);
|
|
1008
|
-
}
|
|
1009
1235
|
const buffer = Buffer.concat(chunks);
|
|
1010
|
-
const contentType = res.headers
|
|
1011
|
-
const cacheControl = res.headers
|
|
1012
|
-
const etag = extractEtag(res.headers.
|
|
1236
|
+
const contentType = res.headers['content-type'];
|
|
1237
|
+
const cacheControl = res.headers['cache-control'];
|
|
1238
|
+
const etag = extractEtag(res.headers.etag, buffer);
|
|
1013
1239
|
return {
|
|
1014
1240
|
buffer,
|
|
1015
1241
|
contentType,
|
|
@@ -79,7 +79,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
79
79
|
}
|
|
80
80
|
function logStartInfo({ networkUrl, appUrl, envInfo, logBundler }) {
|
|
81
81
|
const versionSuffix = logBundler ? ` (${(0, _bundler.bundlerName)((0, _bundler.getBundlerFromEnv)())})` : '';
|
|
82
|
-
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.3.
|
|
82
|
+
_log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.3.8"}`))}${versionSuffix}`);
|
|
83
83
|
if (appUrl) {
|
|
84
84
|
_log.bootstrap(`- Local: ${appUrl}`);
|
|
85
85
|
}
|
|
@@ -43,7 +43,13 @@ async function getOrInitDiskLRU(cacheDir, maxDiskSize, readEntries, evictEntry)
|
|
|
43
43
|
const lru = new _lrucache.LRUCache(maxSize, (size)=>size, (cacheKey)=>evictEntry(cacheDir, cacheKey));
|
|
44
44
|
const entries = await readEntries(cacheDir);
|
|
45
45
|
for (const entry of entries){
|
|
46
|
-
|
|
46
|
+
// Skip entries with a non-positive size: `LRUCache.set()` rejects
|
|
47
|
+
// sizes <= 0, so a single such entry (e.g. a 0-byte or corrupt cache
|
|
48
|
+
// file) would otherwise throw here and permanently reject this cached
|
|
49
|
+
// singleton promise, breaking the disk cache for the whole process.
|
|
50
|
+
if (entry.size > 0) {
|
|
51
|
+
lru.set(entry.key, entry.size);
|
|
52
|
+
}
|
|
47
53
|
}
|
|
48
54
|
return lru;
|
|
49
55
|
})();
|