diff --git a/manifests/native.json b/manifests/native.json index b21c31a8..f727fd9c 100644 --- a/manifests/native.json +++ b/manifests/native.json @@ -2402,6 +2402,11 @@ "moduleName": "repeat-string", "replacements": ["String.prototype.repeat"] }, + "safe-buffer": { + "type": "module", + "moduleName": "safe-buffer", + "replacements": ["safe-buffer"] + }, "setprototypeof": { "type": "module", "moduleName": "setprototypeof", diff --git a/scripts/validate-manifests.js b/scripts/validate-manifests.js index e2147ee9..158c61c6 100644 --- a/scripts/validate-manifests.js +++ b/scripts/validate-manifests.js @@ -55,6 +55,8 @@ export async function validateManifests() { } } + const usedReplacementIds = new Set(); + for (const [key, mapping] of Object.entries(manifest.mappings)) { if (mapping.type === 'module' && mapping.moduleName !== key) { throw new Error( @@ -68,6 +70,15 @@ export async function validateManifests() { `${manifestPath}: mapping "${key}" references unknown replacement "${replacementId}"` ); } + usedReplacementIds.add(replacementId); + } + } + + for (const id of Object.keys(manifest.replacements)) { + if (!usedReplacementIds.has(id)) { + throw new Error( + `${manifestPath}: replacement "${id}" is defined but not used by any mapping.` + ); } } }