diff --git a/.github/workflows/check-tests.yml b/.github/workflows/check-tests.yml index 612f0660..95cc8e2d 100644 --- a/.github/workflows/check-tests.yml +++ b/.github/workflows/check-tests.yml @@ -35,6 +35,10 @@ jobs: env: npm_config_omit: optional + - name: Validate lockfile for SPFx Toolkit + run: .\node_modules\.bin\lockfile-lint --path npm-shrinkwrap.json --type npm --allowed-hosts npm --validate-https + working-directory: vscode-viva + - name: Build SPFx Toolkit run: npm run package working-directory: vscode-viva diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 39360d68..b4b43e1c 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -42,6 +42,7 @@ "fast-glob": "^3.2.11", "github-directory-downloader": "^1.3.6", "glob": "12.0.0", + "lockfile-lint": "^5.0.0", "mocha": "^11.1.0", "npm": "^11.18.0", "npm-run-all": "^4.1.5", @@ -6048,6 +6049,20 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/@yarnpkg/parsers": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.1.0.tgz", + "integrity": "sha512-WoxUM/Be4hfsX06FxsvpGgfYqwgivMV7/Ol7aFuSfSmY6rRaiju4QxOEe9RUS0iYcSHWl5i9AhB1cMoE0p+XiA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "js-yaml": "^4.3.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -10548,6 +10563,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lockfile-lint": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-5.0.0.tgz", + "integrity": "sha512-QcVIVITLZAhWYHU2wbNSOMgwc6EN4Y2sy6mjgS5aikYyRzgDIfotXUsCrm38En+3fZpc58Yu7DF9dNeT/goi1A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cosmiconfig": "^9.0.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "lockfile-lint-api": "^5.9.2", + "yargs": "^17.7.2" + }, + "bin": { + "lockfile-lint": "bin/lockfile-lint.js" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/lockfile-lint-api": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/lockfile-lint-api/-/lockfile-lint-api-5.9.2.tgz", + "integrity": "sha512-3QhxWxl3jT9GcMxuCnTsU8Tz5U6U1lKBlKBu2zOYOz/x3ONUoojEtky3uzoaaDgExcLqIX0Aqv2I7TZXE383CQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@yarnpkg/parsers": "^3.0.0-rc.48.1", + "debug": "^4.3.4", + "object-hash": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", diff --git a/package.json b/package.json index 2b6aa26f..ef521d86 100644 --- a/package.json +++ b/package.json @@ -1579,10 +1579,10 @@ "@tailwindcss/postcss": "4.3.3", "@types/glob": "8.1.0", "@types/mocha": "10.0.10", + "@types/node-forge": "^1.3.11", "@types/react": "18.0.8", "@types/react-dom": "18.0.3", "@types/react-router-dom": "5.3.3", - "@types/node-forge": "^1.3.11", "@types/sinon": "^17.0.4", "@types/vscode": "^1.125.0", "@typescript-eslint/eslint-plugin": "8.65.0", @@ -1597,6 +1597,7 @@ "fast-glob": "^3.2.11", "github-directory-downloader": "^1.3.6", "glob": "12.0.0", + "lockfile-lint": "^5.0.0", "mocha": "^11.1.0", "npm": "^11.18.0", "npm-run-all": "^4.1.5", @@ -1622,8 +1623,8 @@ "@pnp/cli-microsoft365-spfx-toolkit": "1.12.0", "node-forge": "1.4.0", "react-markdown": "10.1.0", + "rehype-raw": "7.0.0", "remark-gfm": "4.0.1", - "use-debounce": "10.1.1", - "rehype-raw": "7.0.0" + "use-debounce": "10.1.1" } }