diff --git a/scripts/prepare-package-lock.js b/scripts/prepare-package-lock.js index 4da1bd0f..48139a47 100755 --- a/scripts/prepare-package-lock.js +++ b/scripts/prepare-package-lock.js @@ -17,16 +17,27 @@ if (packageLock.lockfileVersion !== 2) { throw new Error('package-lock.json must have "lockfileVersion": 2'); } +const disallowedHosts = [ + { + host: "codeartifact.us-west-2.amazonaws.com", + errorMessage: + "package-lock.json file contains a reference to CodeArtifact. Use regular npm to update the packages.", + }, +]; + function unlock(packages) { Object.keys(packages).forEach((dependencyName) => { const dependency = packages[dependencyName]; if (dependencyName.includes("@cloudscape-design/")) { delete packages[dependencyName]; - } else if (dependency.resolved && dependency.resolved.includes("codeartifact.us-west-2.amazonaws.com")) { - throw Error( - "package-lock.json file contains a reference to CodeArtifact. Use regular npm to update the packages.", - ); + } else if (dependency.resolved) { + const host = new URL(dependency.resolved).host; + for (const disalloweHost of disallowedHosts) { + if (host === disalloweHost.host || host.endsWith(`.${disalloweHost.host}`)) { + throw Error(disalloweHost.errorMessage); + } + } } });