Fix blog build + clear 14 dependabot advisories

Build was failing because the new MDX post tried to `import` the
SuchMoonLaunchStoreButtons component — next-mdx-remote/rsc doesn't
support imports inside .mdx; components must be passed via the
`components` prop. Wire the helper into [slug]/page.tsx and drop the
import line from the .mdx.

Dependency bumps to clear the 14 outstanding Dependabot advisories
(9 high, 4 moderate, 1 low):
- apps/web/next: ^15.5.15 → ^15.5.18 (covers 12 next.js advisories)
- pnpm overrides: pin postcss ^8.5.14 (clears 1117015 XSS via </style>)
- pnpm overrides: pin fast-uri ^3.1.2 (clears 1117870 + 1117884 path
  traversal / host confusion)

pnpm audit: 14 vulnerabilities → 0.
This commit is contained in:
jwinterm
2026-05-18 10:28:02 -04:00
parent d2ee3ffb55
commit 927cf80c58
5 changed files with 80 additions and 86 deletions
+74 -82
View File
@@ -11,6 +11,8 @@ overrides:
picomatch: ^4.0.4
ajv: ^8.17.1
brace-expansion: ^2.0.3
postcss: ^8.5.14
fast-uri: ^3.1.2
importers:
@@ -54,8 +56,8 @@ importers:
specifier: ^0.350.0
version: 0.350.0(react@19.2.4)
next:
specifier: ^15.5.15
version: 15.5.15(@playwright/test@1.57.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
specifier: ^15.5.18
version: 15.5.18(@playwright/test@1.57.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next-mdx-remote:
specifier: ^6.0.0
version: 6.0.0(@types/react@19.2.14)(react@19.2.4)
@@ -98,7 +100,7 @@ importers:
version: 19.2.3(@types/react@19.2.14)
autoprefixer:
specifier: ^10.0.1
version: 10.4.23(postcss@8.5.6)
version: 10.4.23(postcss@8.5.14)
eslint:
specifier: ^8
version: 8.57.1
@@ -106,8 +108,8 @@ importers:
specifier: ^15.1.3
version: 15.5.9(eslint@8.57.1)(typescript@5.9.3)
postcss:
specifier: ^8
version: 8.5.6
specifier: ^8.5.14
version: 8.5.14
tailwindcss:
specifier: ^3.3.0
version: 3.4.19(yaml@2.8.3)
@@ -434,56 +436,56 @@ packages:
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
'@next/env@15.5.15':
resolution: {integrity: sha512-vcmyu5/MyFzN7CdqRHO3uHO44p/QPCZkuTUXroeUmhNP8bL5PHFEhik22JUazt+CDDoD6EpBYRCaS2pISL+/hg==}
'@next/env@15.5.18':
resolution: {integrity: sha512-hAV85Ckd9QR6RvH04MEKwsfLTksvFpO47j9xwtoIuvuPnlwecpSi+uZTtm8HirVbtlI2Fnz//xpcSTjFdyJk+g==}
'@next/eslint-plugin-next@15.5.9':
resolution: {integrity: sha512-kUzXx0iFiXw27cQAViE1yKWnz/nF8JzRmwgMRTMh8qMY90crNsdXJRh2e+R0vBpFR3kk1yvAR7wev7+fCCb79Q==}
'@next/swc-darwin-arm64@15.5.15':
resolution: {integrity: sha512-6PvFO2Tzt10GFK2Ro9tAVEtacMqRmTarYMFKAnV2vYMdwWc73xzmDQyAV7SwEdMhzmiRoo7+m88DuiXlJlGeaw==}
'@next/swc-darwin-arm64@15.5.18':
resolution: {integrity: sha512-w0WvQf1n+txiwns/9pwIQteCJpZTbxzO2SE0FLcwuD4v0WEh1JPOjdyxWL21XwJsdpx8cFRjyzxzCS/siP7HcQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@next/swc-darwin-x64@15.5.15':
resolution: {integrity: sha512-G+YNV+z6FDZTp/+IdGyIMFqalBTaQSnvAA+X/hrt+eaTRFSznRMz9K7rTmzvM6tDmKegNtyzgufZW0HwVzEqaQ==}
'@next/swc-darwin-x64@15.5.18':
resolution: {integrity: sha512-znn71QmDuxm+BOaglihMZfvyySMnNljkVIY5Z2TCssBmm+WqL6c19VhtH5ktFkHa8EZ2bnTUpcNcmNSQsg67og==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@next/swc-linux-arm64-gnu@15.5.15':
resolution: {integrity: sha512-eVkrMcVIBqGfXB+QUC7jjZ94Z6uX/dNStbQFabewAnk13Uy18Igd1YZ/GtPRzdhtm7QwC0e6o7zOQecul4iC1w==}
'@next/swc-linux-arm64-gnu@15.5.18':
resolution: {integrity: sha512-yPPe5MNL+igZUa+OsqQJisqSfh6oarIuA1Q0BDxljGJhRQyZeP+WRHh7rs/jZUGMh5aY0YdIjXZG0VohkKkUdw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@next/swc-linux-arm64-musl@15.5.15':
resolution: {integrity: sha512-RwSHKMQ7InLy5GfkY2/n5PcFycKA08qI1VST78n09nN36nUPqCvGSMiLXlfUmzmpQpF6XeBYP2KRWHi0UW3uNg==}
'@next/swc-linux-arm64-musl@15.5.18':
resolution: {integrity: sha512-glaCczEWIrHsokFZ3pP08U4BpKxwIdnT+txdOM32OBgpL9Yw4aqx8NejmgtZQZOdstQ5f0L3CasIZudzCuD+nw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@next/swc-linux-x64-gnu@15.5.15':
resolution: {integrity: sha512-nplqvY86LakS+eeiuWsNWvfmK8pFcOEW7ZtVRt4QH70lL+0x6LG/m1OpJ/tvrbwjmR8HH9/fH2jzW1GlL03TIg==}
'@next/swc-linux-x64-gnu@15.5.18':
resolution: {integrity: sha512-oUfg2EgJmU3R0OCOWiokGFUTvZiPfXtriXiuF3YNxRoROCdgvTedHIzYoeKH34gsZxS/V7mHbfq2hpAHwhH1/A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@next/swc-linux-x64-musl@15.5.15':
resolution: {integrity: sha512-eAgl9NKQ84/sww0v81DQINl/vL2IBxD7sMybd0cWRw6wqgouVI53brVRBrggqBRP/NWeIAE1dm5cbKYoiMlqDQ==}
'@next/swc-linux-x64-musl@15.5.18':
resolution: {integrity: sha512-JLxSP3KTd9iu/bvUMQxH7RJo9xKSHf55/6RPE4a6FTSZygGn7uvZbCej0AHXydwkggQGSD9UddSjwv6Xz5ESfA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@next/swc-win32-arm64-msvc@15.5.15':
resolution: {integrity: sha512-GJVZC86lzSquh0MtvZT+L7G8+jMnJcldloOjA8Kf3wXvBrvb6OGe2MzPuALxFshSm/IpwUtD2mIoof39ymf52A==}
'@next/swc-win32-arm64-msvc@15.5.18':
resolution: {integrity: sha512-ir1v7enP52K2HNz3tQQvwF+x7VNxBk1ciiZ18WBPvxf4C59IqdfmHPJYK3vH7rSxpuCVw/8C712wTXNAtEp+NA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@next/swc-win32-x64-msvc@15.5.15':
resolution: {integrity: sha512-nFucjVdwlFqxh/JG3hWSJ4p8+YJV7Ii8aPDuBQULB6DzUF4UNZETXLfEUk+oI2zEznWWULPt7MeuTE6xtK1HSA==}
'@next/swc-win32-x64-msvc@15.5.18':
resolution: {integrity: sha512-LIu5me6QTANCd25E7I5uIEfvgQ06RK7tvHAbYo3zCb3VpxQEPvMcSpd87NwUABDT6MbGPdEGR5VRiK4PPTJhQg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -878,7 +880,7 @@ packages:
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
postcss: ^8.5.14
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
@@ -1335,8 +1337,8 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
fast-uri@3.1.0:
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
fast-uri@3.1.2:
resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==}
fastq@1.20.1:
resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
@@ -1943,8 +1945,8 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
next@15.5.15:
resolution: {integrity: sha512-VSqCrJwtLVGwAVE0Sb/yikrQfkwkZW9p+lL/J4+xe+G3ZA+QnWPqgcfH1tDUEuk9y+pthzzVFp4L/U8JerMfMQ==}
next@15.5.18:
resolution: {integrity: sha512-eKL8zUJkX9Y5lE+RX/2YJoItVdGlIscyVyboeD9wSpp0PaGqjoA4tTpT2qPqz9ax+5IzGESyLSeZ/RCwbSZ2uQ==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
hasBin: true
peerDependencies:
@@ -2091,20 +2093,20 @@ packages:
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
postcss: ^8.5.14
postcss-js@4.1.0:
resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
postcss: ^8.5.14
postcss-load-config@6.0.1:
resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
engines: {node: '>= 18'}
peerDependencies:
jiti: '>=1.21.0'
postcss: '>=8.0.9'
postcss: ^8.5.14
tsx: ^4.8.1
yaml: ^2.8.3
peerDependenciesMeta:
@@ -2121,7 +2123,7 @@ packages:
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
postcss: ^8.5.14
postcss-selector-parser@6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
@@ -2134,12 +2136,8 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.6:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
postcss@8.5.14:
resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
@@ -2935,34 +2933,34 @@ snapshots:
'@tybys/wasm-util': 0.10.1
optional: true
'@next/env@15.5.15': {}
'@next/env@15.5.18': {}
'@next/eslint-plugin-next@15.5.9':
dependencies:
fast-glob: 3.3.1
'@next/swc-darwin-arm64@15.5.15':
'@next/swc-darwin-arm64@15.5.18':
optional: true
'@next/swc-darwin-x64@15.5.15':
'@next/swc-darwin-x64@15.5.18':
optional: true
'@next/swc-linux-arm64-gnu@15.5.15':
'@next/swc-linux-arm64-gnu@15.5.18':
optional: true
'@next/swc-linux-arm64-musl@15.5.15':
'@next/swc-linux-arm64-musl@15.5.18':
optional: true
'@next/swc-linux-x64-gnu@15.5.15':
'@next/swc-linux-x64-gnu@15.5.18':
optional: true
'@next/swc-linux-x64-musl@15.5.15':
'@next/swc-linux-x64-musl@15.5.18':
optional: true
'@next/swc-win32-arm64-msvc@15.5.15':
'@next/swc-win32-arm64-msvc@15.5.18':
optional: true
'@next/swc-win32-x64-msvc@15.5.15':
'@next/swc-win32-x64-msvc@15.5.18':
optional: true
'@nodelib/fs.scandir@2.1.5':
@@ -3265,7 +3263,7 @@ snapshots:
ajv@8.18.0:
dependencies:
fast-deep-equal: 3.1.3
fast-uri: 3.1.0
fast-uri: 3.1.2
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
@@ -3367,13 +3365,13 @@ snapshots:
async-function@1.0.0: {}
autoprefixer@10.4.23(postcss@8.5.6):
autoprefixer@10.4.23(postcss@8.5.14):
dependencies:
browserslist: 4.28.1
caniuse-lite: 1.0.30001764
fraction.js: 5.3.4
picocolors: 1.1.1
postcss: 8.5.6
postcss: 8.5.14
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
@@ -4023,7 +4021,7 @@ snapshots:
fast-levenshtein@2.0.6: {}
fast-uri@3.1.0: {}
fast-uri@3.1.2: {}
fastq@1.20.1:
dependencies:
@@ -4874,24 +4872,24 @@ snapshots:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
next@15.5.15(@playwright/test@1.57.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
next@15.5.18(@playwright/test@1.57.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
dependencies:
'@next/env': 15.5.15
'@next/env': 15.5.18
'@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001764
postcss: 8.4.31
postcss: 8.5.14
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
styled-jsx: 5.1.6(react@19.2.4)
optionalDependencies:
'@next/swc-darwin-arm64': 15.5.15
'@next/swc-darwin-x64': 15.5.15
'@next/swc-linux-arm64-gnu': 15.5.15
'@next/swc-linux-arm64-musl': 15.5.15
'@next/swc-linux-x64-gnu': 15.5.15
'@next/swc-linux-x64-musl': 15.5.15
'@next/swc-win32-arm64-msvc': 15.5.15
'@next/swc-win32-x64-msvc': 15.5.15
'@next/swc-darwin-arm64': 15.5.18
'@next/swc-darwin-x64': 15.5.18
'@next/swc-linux-arm64-gnu': 15.5.18
'@next/swc-linux-arm64-musl': 15.5.18
'@next/swc-linux-x64-gnu': 15.5.18
'@next/swc-linux-x64-musl': 15.5.18
'@next/swc-win32-arm64-msvc': 15.5.18
'@next/swc-win32-x64-msvc': 15.5.18
'@playwright/test': 1.57.0
sharp: 0.34.5
transitivePeerDependencies:
@@ -5022,29 +5020,29 @@ snapshots:
possible-typed-array-names@1.1.0: {}
postcss-import@15.1.0(postcss@8.5.6):
postcss-import@15.1.0(postcss@8.5.14):
dependencies:
postcss: 8.5.6
postcss: 8.5.14
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.11
postcss-js@4.1.0(postcss@8.5.6):
postcss-js@4.1.0(postcss@8.5.14):
dependencies:
camelcase-css: 2.0.1
postcss: 8.5.6
postcss: 8.5.14
postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.3):
postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.14)(yaml@2.8.3):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
jiti: 1.21.7
postcss: 8.5.6
postcss: 8.5.14
yaml: 2.8.3
postcss-nested@6.2.0(postcss@8.5.6):
postcss-nested@6.2.0(postcss@8.5.14):
dependencies:
postcss: 8.5.6
postcss: 8.5.14
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.0.10:
@@ -5059,13 +5057,7 @@ snapshots:
postcss-value-parser@4.2.0: {}
postcss@8.4.31:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
postcss@8.5.6:
postcss@8.5.14:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
@@ -5495,11 +5487,11 @@ snapshots:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
postcss: 8.5.6
postcss-import: 15.1.0(postcss@8.5.6)
postcss-js: 4.1.0(postcss@8.5.6)
postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.3)
postcss-nested: 6.2.0(postcss@8.5.6)
postcss: 8.5.14
postcss-import: 15.1.0(postcss@8.5.14)
postcss-js: 4.1.0(postcss@8.5.14)
postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.14)(yaml@2.8.3)
postcss-nested: 6.2.0(postcss@8.5.14)
postcss-selector-parser: 6.1.2
resolve: 1.22.11
sucrase: 3.35.1