diff --git a/package.json b/package.json index 55a4feb1a..adfc96b67 100644 --- a/package.json +++ b/package.json @@ -137,6 +137,7 @@ "flatted": "^3.4.2", "@protobufjs/utf8": "1.1.1", "tsx": "4.20.4", + "vite-plugin-storybook-nextjs>image-size": "npm:probe-image-size@7.3.0", "webpack": "5.104.1", "yaml-language-server>yaml": "2.8.3", "@opentelemetry/propagator-jaeger": "2.9.0", @@ -150,6 +151,9 @@ "immutable": "5.1.8", "postcss": "8.5.23", "sharp": "0.35.0" + }, + "patchedDependencies": { + "vite-plugin-storybook-nextjs@3.1.10": "patches/vite-plugin-storybook-nextjs@3.1.10.patch" } } } diff --git a/patches/vite-plugin-storybook-nextjs@3.1.10.patch b/patches/vite-plugin-storybook-nextjs@3.1.10.patch new file mode 100644 index 000000000..cec36f4f3 --- /dev/null +++ b/patches/vite-plugin-storybook-nextjs@3.1.10.patch @@ -0,0 +1,52 @@ +diff --git a/dist/index.cjs b/dist/index.cjs +index bdb9d7f0a94537982da08ac839bc48c063833232..7c5ae5832446e12baa4711f6c1b2862e2aceefc5 100644 +--- a/dist/index.cjs ++++ b/dist/index.cjs +@@ -23,7 +23,7 @@ var nextServerConfig = require('next/dist/server/config.js'); + var constants_js = require('next/dist/shared/lib/constants.js'); + var MagicString = require('magic-string'); + var path = require('path'); +-var imageSize = require('image-size'); ++var probeImageSize = require('image-size'); + + var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; + function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } +@@ -4833,7 +4833,11 @@ function vitePluginNextImage(nextConfigResolver, options = {}) { + `; + } + const imageData = await fs3__default.default.promises.readFile(imagePath); +- const { width, height } = imageSize.imageSize(imageData); ++ const dimensions = probeImageSize.sync(imageData); ++ if (!dimensions) { ++ throw new TypeError(`Unsupported image file ${imagePath}`); ++ } ++ const { width, height } = dimensions; + return tsDedent.dedent` + import src from "${imagePath}?ignore"; + export default { +diff --git a/dist/index.js b/dist/index.js +index 61192f8f44dcd580bdd22b918b6cc16210a6e8f5..634e51590e578c55005df2b6295cd57f86405969 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -21,7 +21,7 @@ import nextServerConfig from 'next/dist/server/config.js'; + import { PHASE_DEVELOPMENT_SERVER, PHASE_TEST, PHASE_PRODUCTION_BUILD } from 'next/dist/shared/lib/constants.js'; + import MagicString from 'magic-string'; + import { win32 as win32$1, posix as posix$1, isAbsolute as isAbsolute$1, resolve as resolve$1 } from 'path'; +-import { imageSize } from 'image-size'; ++import probeImageSize from 'image-size'; + + var __create = Object.create; + var __defProp = Object.defineProperty; +@@ -4800,7 +4800,11 @@ function vitePluginNextImage(nextConfigResolver, options = {}) { + `; + } + const imageData = await fs3.promises.readFile(imagePath); +- const { width, height } = imageSize(imageData); ++ const dimensions = probeImageSize.sync(imageData); ++ if (!dimensions) { ++ throw new TypeError(`Unsupported image file ${imagePath}`); ++ } ++ const { width, height } = dimensions; + return dedent` + import src from "${imagePath}?ignore"; + export default { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5065df156..dd8f60356 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,6 +52,7 @@ overrides: flatted: ^3.4.2 '@protobufjs/utf8': 1.1.1 tsx: 4.20.4 + vite-plugin-storybook-nextjs>image-size: npm:probe-image-size@7.3.0 webpack: 5.104.1 yaml-language-server>yaml: 2.8.3 '@opentelemetry/propagator-jaeger': 2.9.0 @@ -68,6 +69,11 @@ overrides: packageExtensionsChecksum: sha256-JfWrBLcTGUbHJ+9MRdfpiV99a/JYeeS1zDFUVoCXsM8= +patchedDependencies: + vite-plugin-storybook-nextjs@3.1.10: + hash: 8fd881e8d006f7111cd4b98ae502e988740c08f78aa13282d99cecd3b5bf53cb + path: patches/vite-plugin-storybook-nextjs@3.1.10.patch + importers: .: @@ -240,7 +246,7 @@ importers: version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.20.4)(typescript@5.9.3)(yaml@2.9.0) vitest: specifier: ^4.1.1 - version: 4.1.1(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@24.12.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) + version: 4.1.1(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) apps/bullmq: dependencies: @@ -368,7 +374,7 @@ importers: version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.20.4)(typescript@5.9.3)(yaml@2.9.0) vitest: specifier: ^4.1.1 - version: 4.1.1(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@24.12.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) + version: 4.1.1(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@24.12.4)(jsdom@26.1.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) apps/dev: dependencies: @@ -7389,6 +7395,22 @@ packages: dayjs@1.11.20: resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -8442,6 +8464,10 @@ packages: engines: {node: '>=18'} hasBin: true + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -8461,11 +8487,6 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} - engines: {node: '>=16.x'} - hasBin: true - immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -9506,6 +9527,9 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -9541,6 +9565,11 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -10109,6 +10138,9 @@ packages: resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} + probe-image-size@7.3.0: + resolution: {integrity: sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -10569,6 +10601,10 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} + engines: {node: '>=11.0.0'} + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -10811,6 +10847,9 @@ packages: stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + streamdown@2.1.0: resolution: {integrity: sha512-u9gWd0AmjKg1d+74P44XaPlGrMeC21oDOSIhjGNEYMAttDMzCzlJO6lpTyJ9JkSinQQF65YcK4eOd3q9iTvULw==} peerDependencies: @@ -11704,7 +11743,7 @@ packages: engines: {node: '>=20'} xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz: - resolution: {tarball: https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz} + resolution: {integrity: sha512-+nKZ39+nvK7Qq6i0PvWWRA4j/EkfWOtkP/YhMtupm+lJIiHxUrgTr1CcKv1nBk1rHtkRRQ3O2+Ih/q/sA+FXZA==, tarball: https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz} version: 0.20.2 engines: {node: '>=0.8'} hasBin: true @@ -13468,8 +13507,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@img/colour@1.1.0': - optional: true + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.35.0': optionalDependencies: @@ -16133,7 +16171,7 @@ snapshots: storybook: 10.2.10(@testing-library/dom@10.4.1)(bufferutil@4.1.0)(prettier@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(utf-8-validate@6.0.6) styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.4) vite: 7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0) - vite-plugin-storybook-nextjs: 3.1.10(next@16.2.11(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(storybook@10.2.10(@testing-library/dom@10.4.1)(bufferutil@4.1.0)(prettier@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(utf-8-validate@6.0.6))(typescript@5.9.3)(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) + vite-plugin-storybook-nextjs: 3.1.10(patch_hash=8fd881e8d006f7111cd4b98ae502e988740c08f78aa13282d99cecd3b5bf53cb)(next@16.2.11(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(storybook@10.2.10(@testing-library/dom@10.4.1)(bufferutil@4.1.0)(prettier@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(utf-8-validate@6.0.6))(typescript@5.9.3)(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -18059,6 +18097,14 @@ snapshots: dayjs@1.11.20: {} + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + debug@4.4.3: dependencies: ms: 2.1.3 @@ -19328,6 +19374,10 @@ snapshots: husky@9.1.7: {} + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -19342,8 +19392,6 @@ snapshots: ignore@7.0.5: {} - image-size@2.0.2: {} - immediate@3.0.6: {} immer@10.2.0: {} @@ -20646,6 +20694,8 @@ snapshots: mri@1.2.0: {} + ms@2.0.0: {} + ms@2.1.3: {} msgpackr-extract@3.0.4: @@ -20684,6 +20734,14 @@ snapshots: natural-compare@1.4.0: {} + needle@2.9.1: + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.6.1 + transitivePeerDependencies: + - supports-color + negotiator@1.0.0: {} neo-async@2.6.2: {} @@ -21304,6 +21362,14 @@ snapshots: dependencies: parse-ms: 4.0.0 + probe-image-size@7.3.0: + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + process-nextick-args@2.0.1: {} process-warning@5.0.0: {} @@ -21921,6 +21987,8 @@ snapshots: safer-buffer@2.1.2: {} + sax@1.6.1: {} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -22037,7 +22105,6 @@ snapshots: '@img/sharp-win32-arm64': 0.35.0 '@img/sharp-win32-ia32': 0.35.0 '@img/sharp-win32-x64': 0.35.0 - optional: true shebang-command@2.0.0: dependencies: @@ -22254,6 +22321,12 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + stream-parser@0.3.1: + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + streamdown@2.1.0(react@19.2.4): dependencies: clsx: 2.1.1 @@ -22965,10 +23038,10 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - vite-plugin-storybook-nextjs@3.1.10(next@16.2.11(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(storybook@10.2.10(@testing-library/dom@10.4.1)(bufferutil@4.1.0)(prettier@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(utf-8-validate@6.0.6))(typescript@5.9.3)(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)): + vite-plugin-storybook-nextjs@3.1.10(patch_hash=8fd881e8d006f7111cd4b98ae502e988740c08f78aa13282d99cecd3b5bf53cb)(next@16.2.11(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(storybook@10.2.10(@testing-library/dom@10.4.1)(bufferutil@4.1.0)(prettier@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(utf-8-validate@6.0.6))(typescript@5.9.3)(vite@7.3.5(@types/node@24.12.4)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.20.4)(yaml@2.9.0)): dependencies: '@next/env': 16.0.0 - image-size: 2.0.2 + image-size: probe-image-size@7.3.0 magic-string: 0.30.21 module-alias: 2.2.3 next: 16.2.11(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)