diff --git a/package-lock.json b/package-lock.json index 5fac3ba8e..84f95d6cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1205,6 +1205,12 @@ "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", "dev": true }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -6378,6 +6384,58 @@ "p-locate": "^4.1.0" } }, + "lockfile-lint": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-4.3.7.tgz", + "integrity": "sha512-hOHVJyHxtrK6cgYlKoaWveVOCz/w4IXlhmxM+RSWW7f1lA3ENJaRL9eNS9AO0PBKx4P/KMXuker0KzExNDenRg==", + "dev": true, + "requires": { + "cosmiconfig": "^6.0.0", + "debug": "^4.1.1", + "lockfile-lint-api": "^5.1.6", + "yargs": "^15.0.2" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "lockfile-lint-api": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/lockfile-lint-api/-/lockfile-lint-api-5.1.6.tgz", + "integrity": "sha512-liJ1p/NkHbE2Wx5fRw8T1io+x2b2DttVvXpHLm4x7QC8pW3Lc6sHqV4T7cM6rAOs4fF2O9sAt7SEtuN2sX91qA==", + "dev": true, + "requires": { + "@yarnpkg/lockfile": "^1.1.0", + "debug": "^4.1.1", + "object-hash": "^2.0.1" + }, + "dependencies": { + "object-hash": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", + "integrity": "sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==", + "dev": true + } + } + }, "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", diff --git a/package.json b/package.json index 5c930341b..a99442cd9 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,13 @@ "docs-compile": "cd docs/ && bundle exec jekyll build -d ../docs_html", "docs-serve": "cd docs/ && bundle exec jekyll serve", "docs-prepare": "node build/npm/DocsPublish.js -v", + "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", "postinstall": "npm run plugins", "js": "npm-run-all js-compile js-minify", "js-compile": "rollup --config build/config/rollup.config.js --sourcemap", "js-minify": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/adminlte.js.map,includeSources,url=adminlte.min.js.map\" --output dist/js/adminlte.min.js dist/js/adminlte.js", "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives .", - "lint": "npm-run-all --continue-on-error --parallel css-lint js-lint", + "lint": "npm-run-all --continue-on-error --parallel css-lint js-lint lockfile-lint", "production": "npm-run-all compile plugins", "prepare-release": "npm-run-all production docs", "test": "npm-run-all lint production", @@ -143,6 +144,7 @@ "eslint-plugin-compat": "^3.9.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-unicorn": "^26.0.1", + "lockfile-lint": "^4.3.7", "node-sass": "^5.0.0", "node-sass-package-importer": "^5.3.2", "nodemon": "^2.0.7",