diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ab07072b8cb..83f74a3d348 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -85,7 +85,7 @@ "multiparty": "^4.2.1", "netlify": "^10.0.0", "netlify-headers-parser": "^5.0.0", - "netlify-redirect-parser": "^12.0.0", + "netlify-redirect-parser": "^13.0.0", "netlify-redirector": "^0.2.1", "node-fetch": "^2.6.0", "node-version-alias": "^1.0.1", @@ -3035,6 +3035,20 @@ "node": ">=8" } }, + "node_modules/@netlify/config/node_modules/netlify-redirect-parser": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-12.0.0.tgz", + "integrity": "sha512-PUI3o9Jolc9bp0rE4R4E2PwnfUQYKC5o4G+uQqMuanm29aled6PbhIUYI/3Xbahn785OC93ozu1fP1tcSHJ/Ug==", + "dependencies": { + "filter-obj": "^2.0.2", + "is-plain-obj": "^3.0.0", + "path-exists": "^4.0.0", + "toml": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, "node_modules/@netlify/config/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -15195,9 +15209,9 @@ } }, "node_modules/netlify-redirect-parser": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-12.0.0.tgz", - "integrity": "sha512-PUI3o9Jolc9bp0rE4R4E2PwnfUQYKC5o4G+uQqMuanm29aled6PbhIUYI/3Xbahn785OC93ozu1fP1tcSHJ/Ug==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-13.0.0.tgz", + "integrity": "sha512-ptTSxYPDmeZgoECkX6utbXdjlJat35OkioKFyBCf7anmoi2bSoZEWgIDZE4SwiQUhDsfkJo1MdZd0GO91MKXuA==", "dependencies": { "filter-obj": "^2.0.2", "is-plain-obj": "^3.0.0", @@ -24130,6 +24144,17 @@ } } }, + "netlify-redirect-parser": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-12.0.0.tgz", + "integrity": "sha512-PUI3o9Jolc9bp0rE4R4E2PwnfUQYKC5o4G+uQqMuanm29aled6PbhIUYI/3Xbahn785OC93ozu1fP1tcSHJ/Ug==", + "requires": { + "filter-obj": "^2.0.2", + "is-plain-obj": "^3.0.0", + "path-exists": "^4.0.0", + "toml": "^3.0.0" + } + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -33356,9 +33381,9 @@ } }, "netlify-redirect-parser": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-12.0.0.tgz", - "integrity": "sha512-PUI3o9Jolc9bp0rE4R4E2PwnfUQYKC5o4G+uQqMuanm29aled6PbhIUYI/3Xbahn785OC93ozu1fP1tcSHJ/Ug==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-13.0.0.tgz", + "integrity": "sha512-ptTSxYPDmeZgoECkX6utbXdjlJat35OkioKFyBCf7anmoi2bSoZEWgIDZE4SwiQUhDsfkJo1MdZd0GO91MKXuA==", "requires": { "filter-obj": "^2.0.2", "is-plain-obj": "^3.0.0", diff --git a/package.json b/package.json index f9f604dbd12..3a7328a2f7f 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "multiparty": "^4.2.1", "netlify": "^10.0.0", "netlify-headers-parser": "^5.0.0", - "netlify-redirect-parser": "^12.0.0", + "netlify-redirect-parser": "^13.0.0", "netlify-redirector": "^0.2.1", "node-fetch": "^2.6.0", "node-version-alias": "^1.0.1", diff --git a/src/utils/redirects.js b/src/utils/redirects.js index 7363a7ac234..732c727d1ab 100644 --- a/src/utils/redirects.js +++ b/src/utils/redirects.js @@ -1,4 +1,5 @@ -const { parseAllRedirects } = require('netlify-redirect-parser') +// TODO: use static `import` after migrating this repository to pure ES modules +const netlifyRedirectParser = import('netlify-redirect-parser') const { log } = require('./command-helpers') const { NETLIFYDEVERR } = require('./logo') @@ -6,6 +7,7 @@ const { NETLIFYDEVERR } = require('./logo') // Parse, normalize and validate all redirects from `_redirects` files // and `netlify.toml` const parseRedirects = async function ({ configPath, redirectsFiles }) { + const { parseAllRedirects } = await netlifyRedirectParser const { errors, redirects } = await parseAllRedirects({ redirectsFiles, netlifyConfigPath: configPath,