📦 deps(thirdparty): update snapshots
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
// Strip Cache-Control directives Vercel's CDN silently ignores
|
||||
// (stale-if-error, proxy-revalidate, must-revalidate). s-maxage/max-age/
|
||||
// stale-while-revalidate/no-store/private/public are honored — leave them.
|
||||
|
||||
import { escapeRegex } from '../util.mjs';
|
||||
|
||||
const STRIP_DIRECTIVES = ['stale-if-error', 'proxy-revalidate', 'must-revalidate'];
|
||||
|
||||
export const metadata = {
|
||||
id: 'vercel-directive-strip',
|
||||
description: 'Strip cache-control directives Vercel\'s CDN does not honor.',
|
||||
};
|
||||
|
||||
export function apply(rec, _ctx = {}) {
|
||||
const fields = ['fix', 'currentBehavior', 'desiredBehavior'];
|
||||
const strippedSet = new Set();
|
||||
for (const f of fields) {
|
||||
if (typeof rec[f] !== 'string') continue;
|
||||
for (const directive of STRIP_DIRECTIVES) {
|
||||
const re = new RegExp(`(?:,\\s*)?\\b${escapeRegex(directive)}\\b(?:\\s*,)?`, 'g');
|
||||
if (re.test(rec[f])) {
|
||||
rec[f] = rec[f]
|
||||
.replace(new RegExp(`\\b${escapeRegex(directive)}\\b`, 'g'), '')
|
||||
.replace(/,\s*,/g, ',')
|
||||
.replace(/(['"])\s*,\s*/g, '$1, ')
|
||||
.replace(/,\s*(['"])/g, ', $1')
|
||||
.replace(/(['"])\s*,\s*(['"])/g, '$1, $2')
|
||||
.replace(/\b(Cache-Control|cache-control)\b:\s*,\s*/g, '$1: ')
|
||||
.replace(/(['"])\s*,\s*\1/g, '$1');
|
||||
strippedSet.add(directive);
|
||||
}
|
||||
}
|
||||
}
|
||||
const stripped = [...strippedSet];
|
||||
if (stripped.length === 0) return {};
|
||||
return { tags: stripped.map((d) => `vercel-directive-strip:${d}`) };
|
||||
}
|
||||
Reference in New Issue
Block a user