📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// Rule: precision for performance, magnitudes for cost. Customer-facing phrases never contain $N literals.
|
||||
|
||||
export function impactMagnitude({ currentCost, impactTier }) {
|
||||
const fraction = { high: 0.4, medium: 0.2, low: 0.1 }[impactTier] ?? 0.2;
|
||||
const estUsd = (currentCost ?? 0) * fraction;
|
||||
|
||||
if (estUsd < 5) {
|
||||
return { magnitude: 'negligible', phrase: 'small cost impact at current traffic' };
|
||||
}
|
||||
if (estUsd < 50) {
|
||||
return { magnitude: 'small', phrase: 'low-tens of dollars per month at current traffic' };
|
||||
}
|
||||
if (estUsd < 500) {
|
||||
return { magnitude: 'medium', phrase: 'hundreds of dollars per month at current traffic' };
|
||||
}
|
||||
if (estUsd < 5000) {
|
||||
return { magnitude: 'large', phrase: 'low-thousands of dollars per month at current traffic' };
|
||||
}
|
||||
return { magnitude: 'very-large', phrase: 'thousands+ of dollars per month at current traffic' };
|
||||
}
|
||||
|
||||
// Preserves Postgres placeholders ($1, $2, …) — digits with no comma/period/k/m suffix.
|
||||
export function stripDollarLiterals(text) {
|
||||
if (!text || typeof text !== 'string') return { text, stripped: 0 };
|
||||
|
||||
let count = 0;
|
||||
const cleaned = text.replace(
|
||||
/\$[\d][\d.,]*(?:[kKmMbB])?(?:\/[\dA-Za-z]+)?/g,
|
||||
(m) => {
|
||||
if (/^\$\d+$/.test(m)) return m;
|
||||
count++;
|
||||
return 'the billed cost';
|
||||
}
|
||||
);
|
||||
|
||||
return { text: cleaned, stripped: count };
|
||||
}
|
||||
|
||||
export function applyDollarStrip(rec) {
|
||||
const fields = ['what', 'why', 'fix', 'impact', 'currentBehavior', 'desiredBehavior', 'before', 'after'];
|
||||
let totalStripped = 0;
|
||||
for (const f of fields) {
|
||||
if (typeof rec[f] !== 'string') continue;
|
||||
// Preserve code-fence content so example snippets aren't mangled.
|
||||
const fences = [];
|
||||
rec[f] = rec[f].replace(/```[\s\S]*?```/g, (m) => {
|
||||
fences.push(m);
|
||||
return `__FENCE_${fences.length - 1}__`;
|
||||
});
|
||||
const { text, stripped } = stripDollarLiterals(rec[f]);
|
||||
rec[f] = text;
|
||||
totalStripped += stripped;
|
||||
rec[f] = rec[f].replace(/__FENCE_(\d+)__/g, (_, i) => fences[Number(i)]);
|
||||
}
|
||||
if (totalStripped > 0) {
|
||||
rec.sanitizerTrail = rec.sanitizerTrail ?? [];
|
||||
rec.sanitizerTrail.push(`$-strip:${totalStripped}`);
|
||||
}
|
||||
return rec;
|
||||
}
|
||||
Reference in New Issue
Block a user