chore: security patch for the dependency chain v2026.3.0 (#6013)

Co-authored-by: James George <25279263+jamesgeorge007@users.noreply.github.com>
This commit is contained in:
Mir Arif Hasan 2026-03-24 17:04:36 +06:00 committed by GitHub
parent e03ffc5d85
commit 2fcf5b7a5f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 3626 additions and 3069 deletions

View file

@ -5,7 +5,7 @@
"author": "Hoppscotch (support@hoppscotch.io)", "author": "Hoppscotch (support@hoppscotch.io)",
"private": true, "private": true,
"license": "MIT", "license": "MIT",
"packageManager": "pnpm@10.29.3", "packageManager": "pnpm@10.32.1",
"scripts": { "scripts": {
"preinstall": "npx only-allow pnpm", "preinstall": "npx only-allow pnpm",
"prepare": "husky", "prepare": "husky",
@ -24,30 +24,40 @@
"./packages/*" "./packages/*"
], ],
"devDependencies": { "devDependencies": {
"@commitlint/cli": "20.4.1", "@commitlint/cli": "20.5.0",
"@commitlint/config-conventional": "20.4.1", "@commitlint/config-conventional": "20.5.0",
"@hoppscotch/ui": "0.2.5", "@hoppscotch/ui": "0.2.5",
"@types/node": "24.10.1", "@types/node": "24.10.1",
"cross-env": "10.1.0", "cross-env": "10.1.0",
"http-server": "14.1.1", "http-server": "14.1.1",
"husky": "9.1.7", "husky": "9.1.7",
"lint-staged": "16.2.7" "lint-staged": "16.4.0"
}, },
"pnpm": { "pnpm": {
"overrides": { "overrides": {
"@hono/node-server@>=1.0.0 <1.19.10": "1.19.10",
"@nestjs-modules/mailer>mjml": "5.0.0-alpha.4", "@nestjs-modules/mailer>mjml": "5.0.0-alpha.4",
"apiconnect-wsdl": "2.0.36", "apiconnect-wsdl": "2.0.36",
"body-parser": "2.2.1", "body-parser": "2.2.1",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
"execa@<2.0.0": "2.0.0", "execa@<2.0.0": "2.0.0",
"flatted@>=3.0.0 <3.4.2": "3.4.2",
"form-data": "4.0.4", "form-data": "4.0.4",
"glob@<11.1.0": "11.1.0", "glob@>=10.2.0 <10.5.0": "10.5.0",
"hono@4.11.4": "4.11.7", "glob@>=11.0.0 <11.1.0": "11.1.0",
"lodash@4.17.21": "4.17.23", "hono@>=4.0.0 <4.12.7": "4.12.7",
"nodemailer@<7.0.11": "7.0.11", "liquidjs@>=10.0.0 <10.25.0": "10.25.0",
"qs@6.14.1": "6.14.2", "lodash@>=4.0.0 <4.17.23": "4.17.23",
"mailparser@>=3.0.0 <3.9.3": "3.9.3",
"minimatch@>=3.0.0 <3.1.3": "3.1.5",
"minimatch@>=4.0.0 <4.2.5": "4.2.5",
"minimatch@>=5.0.0 <10.2.3": "10.2.3",
"preview-email@>=3.0.0 <3.1.1": "3.1.1",
"rollup@>=4.0.0 <4.59.0": "4.59.0",
"serialize-javascript@>=7.0.0 <7.0.3": "7.0.3",
"subscriptions-transport-ws>ws": "7.5.10", "subscriptions-transport-ws>ws": "7.5.10",
"vue": "3.5.28", "svgo@4.0.0": "4.0.1",
"vue": "3.5.30",
"ws": "8.17.1" "ws": "8.17.1"
}, },
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [

View file

@ -25,7 +25,7 @@
"@lezer/generator": "1.8.0", "@lezer/generator": "1.8.0",
"@rollup/plugin-typescript": "12.1.4", "@rollup/plugin-typescript": "12.1.4",
"mocha": "11.7.5", "mocha": "11.7.5",
"rollup": "4.55.3", "rollup": "4.59.0",
"typescript": "5.9.3" "typescript": "5.9.3"
} }
} }

View file

@ -21,27 +21,27 @@
"@tauri-apps/api": "2.1.1", "@tauri-apps/api": "2.1.1",
"@tauri-apps/plugin-shell": "2.3.3", "@tauri-apps/plugin-shell": "2.3.3",
"@vueuse/core": "14.2.1", "@vueuse/core": "14.2.1",
"axios": "1.13.5", "axios": "1.13.6",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"lodash-es": "4.17.23", "lodash-es": "4.17.23",
"vue": "3.5.28" "vue": "3.5.30"
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/lucide": "1.2.91", "@iconify-json/lucide": "1.2.98",
"@tauri-apps/cli": "2.9.3", "@tauri-apps/cli": "2.9.3",
"@types/lodash-es": "4.17.12", "@types/lodash-es": "4.17.12",
"@types/node": "24.10.1", "@types/node": "24.10.1",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"@vitejs/plugin-vue": "6.0.4", "@vitejs/plugin-vue": "6.0.5",
"@vue/eslint-config-typescript": "14.7.0", "@vue/eslint-config-typescript": "14.7.0",
"autoprefixer": "10.4.24", "autoprefixer": "10.4.27",
"cross-env": "10.1.0", "cross-env": "10.1.0",
"eslint": "9.39.2", "eslint": "9.39.2",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
"eslint-plugin-vue": "10.8.0", "eslint-plugin-vue": "10.8.0",
"globals": "16.5.0", "globals": "16.5.0",
"postcss": "8.5.6", "postcss": "8.5.8",
"tailwindcss": "3.4.16", "tailwindcss": "3.4.16",
"typescript": "5.9.3", "typescript": "5.9.3",
"unplugin-icons": "22.5.0", "unplugin-icons": "22.5.0",

View file

@ -35,77 +35,76 @@
"@as-integrations/express5": "1.1.2", "@as-integrations/express5": "1.1.2",
"@nestjs-modules/mailer": "2.0.2", "@nestjs-modules/mailer": "2.0.2",
"@nestjs/apollo": "13.2.4", "@nestjs/apollo": "13.2.4",
"@nestjs/common": "11.1.13", "@nestjs/common": "11.1.17",
"@nestjs/config": "4.0.3", "@nestjs/config": "4.0.3",
"@nestjs/core": "11.1.13", "@nestjs/core": "11.1.17",
"@nestjs/graphql": "13.2.4", "@nestjs/graphql": "13.2.4",
"@nestjs/jwt": "11.0.2", "@nestjs/jwt": "11.0.2",
"@nestjs/passport": "11.0.0", "@nestjs/passport": "11.0.0",
"@nestjs/platform-express": "11.1.13", "@nestjs/platform-express": "11.1.17",
"@nestjs/schedule": "6.1.1", "@nestjs/schedule": "6.1.1",
"@nestjs/swagger": "11.2.6", "@nestjs/swagger": "11.2.6",
"@nestjs/terminus": "11.0.0", "@nestjs/terminus": "11.1.1",
"@nestjs/throttler": "6.5.0", "@nestjs/throttler": "6.5.0",
"@prisma/adapter-pg": "7.4.2", "@prisma/adapter-pg": "7.5.0",
"@prisma/client": "7.4.2", "@prisma/client": "7.5.0",
"argon2": "0.44.0", "argon2": "0.44.0",
"bcrypt": "6.0.0", "bcrypt": "6.0.0",
"class-transformer": "0.5.1", "class-transformer": "0.5.1",
"class-validator": "0.14.3", "class-validator": "0.15.1",
"cookie": "1.1.1", "cookie": "1.1.1",
"cookie-parser": "1.4.7", "cookie-parser": "1.4.7",
"dotenv": "17.3.1", "dotenv": "17.3.1",
"express": "5.2.1", "express": "5.2.1",
"express-session": "1.19.0", "express-session": "1.19.0",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"graphql": "16.12.0", "graphql": "16.13.1",
"graphql-query-complexity": "1.1.0", "graphql-query-complexity": "1.1.0",
"graphql-redis-subscriptions": "2.7.0", "graphql-redis-subscriptions": "2.7.0",
"graphql-subscriptions": "3.0.0", "graphql-subscriptions": "3.0.0",
"handlebars": "4.7.8", "handlebars": "4.7.8",
"io-ts": "2.2.22", "io-ts": "2.2.22",
"morgan": "1.10.1", "morgan": "1.10.1",
"nodemailer": "8.0.1", "nodemailer": "8.0.3",
"passport": "0.7.0", "passport": "0.7.0",
"passport-github2": "0.1.12", "passport-github2": "0.1.12",
"passport-google-oauth20": "2.0.0", "passport-google-oauth20": "2.0.0",
"passport-jwt": "4.0.1", "passport-jwt": "4.0.1",
"passport-local": "1.0.0", "passport-local": "1.0.0",
"passport-microsoft": "2.1.0", "passport-microsoft": "2.1.0",
"pg": "8.18.0", "pg": "8.20.0",
"posthog-node": "5.24.15", "posthog-node": "5.28.4",
"prisma": "7.4.2", "prisma": "7.5.0",
"reflect-metadata": "0.2.2", "reflect-metadata": "0.2.2",
"rimraf": "6.1.3", "rimraf": "6.1.3",
"rxjs": "7.8.2" "rxjs": "7.8.2"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "3.3.3", "@eslint/eslintrc": "3.3.5",
"@eslint/js": "10.0.1", "@eslint/js": "10.0.1",
"@nestjs/cli": "11.0.16", "@nestjs/cli": "11.0.16",
"@nestjs/schematics": "11.0.9", "@nestjs/schematics": "11.0.9",
"@nestjs/testing": "11.1.13", "@nestjs/testing": "11.1.17",
"@relmify/jest-fp-ts": "2.1.1", "@relmify/jest-fp-ts": "2.1.1",
"@types/bcrypt": "6.0.0", "@types/bcrypt": "6.0.0",
"@types/cookie-parser": "1.4.10", "@types/cookie-parser": "1.4.10",
"@types/express": "5.0.6", "@types/express": "5.0.6",
"@types/jest": "30.0.0", "@types/jest": "30.0.0",
"@types/node": "25.2.3", "@types/node": "25.5.0",
"@types/nodemailer": "7.0.10", "@types/nodemailer": "7.0.11",
"@types/passport-github2": "1.2.9", "@types/passport-github2": "1.2.9",
"@types/passport-google-oauth20": "2.0.17", "@types/passport-google-oauth20": "2.0.17",
"@types/passport-jwt": "4.0.1", "@types/passport-jwt": "4.0.1",
"@types/passport-microsoft": "2.1.1", "@types/passport-microsoft": "2.1.1",
"@types/pg": "8.16.0", "@types/supertest": "7.2.0",
"@types/supertest": "6.0.3", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"@typescript-eslint/parser": "8.56.0",
"cross-env": "10.1.0", "cross-env": "10.1.0",
"eslint": "10.0.0", "eslint": "10.0.3",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
"globals": "17.3.0", "globals": "17.4.0",
"jest": "30.2.0", "jest": "30.3.0",
"jest-mock-extended": "4.0.0", "jest-mock-extended": "4.0.0",
"prettier": "3.8.1", "prettier": "3.8.1",
"source-map-support": "0.5.21", "source-map-support": "0.5.21",

View file

@ -42,17 +42,17 @@
"private": false, "private": false,
"dependencies": { "dependencies": {
"aws4fetch": "1.0.20", "aws4fetch": "1.0.20",
"axios": "1.13.5", "axios": "1.13.6",
"axios-cookiejar-support": "6.0.5", "axios-cookiejar-support": "6.0.5",
"chalk": "5.6.2", "chalk": "5.6.2",
"commander": "14.0.3", "commander": "14.0.3",
"isolated-vm": "6.0.2", "isolated-vm": "6.1.2",
"js-md5": "0.8.3", "js-md5": "0.8.3",
"jsonc-parser": "3.3.1", "jsonc-parser": "3.3.1",
"lodash-es": "4.17.23", "lodash-es": "4.17.23",
"papaparse": "5.5.3", "papaparse": "5.5.3",
"qs": "6.15.0", "qs": "6.15.0",
"tough-cookie": "6.0.0", "tough-cookie": "6.0.1",
"verzod": "0.4.0", "verzod": "0.4.0",
"xmlbuilder2": "4.0.3", "xmlbuilder2": "4.0.3",
"zod": "3.25.32" "zod": "3.25.32"
@ -63,13 +63,13 @@
"@relmify/jest-fp-ts": "2.1.1", "@relmify/jest-fp-ts": "2.1.1",
"@types/lodash-es": "4.17.12", "@types/lodash-es": "4.17.12",
"@types/papaparse": "5.5.2", "@types/papaparse": "5.5.2",
"@types/qs": "6.14.0", "@types/qs": "6.15.0",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"prettier": "3.8.1", "prettier": "3.8.1",
"qs": "6.11.2", "qs": "6.11.2",
"semver": "7.7.4", "semver": "7.7.4",
"tsup": "8.5.1", "tsup": "8.5.1",
"typescript": "5.9.3", "typescript": "5.9.3",
"vitest": "4.0.18" "vitest": "4.1.0"
} }
} }

View file

@ -52,23 +52,23 @@
"@types/hawk": "9.0.7", "@types/hawk": "9.0.7",
"@types/markdown-it": "14.1.2", "@types/markdown-it": "14.1.2",
"@types/node": "24.10.1", "@types/node": "24.10.1",
"@unhead/vue": "2.1.4", "@unhead/vue": "2.1.12",
"@urql/core": "6.0.1", "@urql/core": "6.0.1",
"@urql/devtools": "2.0.3", "@urql/devtools": "2.0.3",
"@urql/exchange-auth": "3.0.0", "@urql/exchange-auth": "3.0.0",
"@vueuse/core": "14.2.1", "@vueuse/core": "14.2.1",
"acorn-walk": "8.3.4", "acorn-walk": "8.3.5",
"aws4fetch": "1.0.20", "aws4fetch": "1.0.20",
"axios": "1.13.5", "axios": "1.13.6",
"buffer": "6.0.3", "buffer": "6.0.3",
"cookie-es": "2.0.0", "cookie-es": "2.0.0",
"dioc": "3.0.2", "dioc": "3.0.2",
"dompurify": "3.3.1", "dompurify": "3.3.3",
"esprima": "4.0.1", "esprima": "4.0.1",
"events": "3.3.0", "events": "3.3.0",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"globalthis": "1.0.4", "globalthis": "1.0.4",
"graphql": "16.12.0", "graphql": "16.13.1",
"graphql-language-service-interface": "2.10.2", "graphql-language-service-interface": "2.10.2",
"graphql-tag": "2.12.6", "graphql-tag": "2.12.6",
"hawk": "9.0.2", "hawk": "9.0.2",
@ -88,11 +88,11 @@
"nprogress": "0.2.0", "nprogress": "0.2.0",
"paho-mqtt": "1.1.0", "paho-mqtt": "1.1.0",
"path": "0.12.7", "path": "0.12.7",
"postman-collection": "5.2.1", "postman-collection": "5.3.0",
"process": "0.11.10", "process": "0.11.10",
"qs": "6.15.0", "qs": "6.15.0",
"quicktype-core": "23.2.6", "quicktype-core": "23.2.6",
"rollup": "4.55.3", "rollup": "4.59.0",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"set-cookie-parser": "2.7.2", "set-cookie-parser": "2.7.2",
"set-cookie-parser-es": "1.0.5", "set-cookie-parser-es": "1.0.5",
@ -111,68 +111,68 @@
"util": "0.12.5", "util": "0.12.5",
"uuid": "13.0.0", "uuid": "13.0.0",
"verzod": "0.4.0", "verzod": "0.4.0",
"vue": "3.5.28", "vue": "3.5.30",
"vue-i18n": "11.2.8", "vue-i18n": "11.3.0",
"vue-json-pretty": "2.6.0", "vue-json-pretty": "2.6.0",
"vue-pdf-embed": "2.1.3", "vue-pdf-embed": "2.1.4",
"vue-router": "4.6.4", "vue-router": "4.6.4",
"vue-tippy": "6.7.1", "vue-tippy": "6.7.1",
"vuedraggable-es": "4.1.1", "vuedraggable-es": "4.1.1",
"wonka": "6.3.5", "wonka": "6.3.5",
"workbox-window": "7.4.0", "workbox-window": "7.4.0",
"xml-formatter": "3.6.7", "xml-formatter": "3.7.0",
"yargs-parser": "22.0.0", "yargs-parser": "22.0.0",
"zod": "3.25.32" "zod": "3.25.32"
}, },
"devDependencies": { "devDependencies": {
"@esbuild-plugins/node-globals-polyfill": "0.2.3", "@esbuild-plugins/node-globals-polyfill": "0.2.3",
"@esbuild-plugins/node-modules-polyfill": "0.2.2", "@esbuild-plugins/node-modules-polyfill": "0.2.2",
"@eslint/eslintrc": "3.3.3", "@eslint/eslintrc": "3.3.5",
"@eslint/js": "9.39.2", "@eslint/js": "9.39.2",
"@graphql-codegen/add": "6.0.0", "@graphql-codegen/add": "6.0.0",
"@graphql-codegen/cli": "6.1.1", "@graphql-codegen/cli": "6.2.1",
"@graphql-codegen/typed-document-node": "6.1.6", "@graphql-codegen/typed-document-node": "6.1.7",
"@graphql-codegen/typescript": "5.0.8", "@graphql-codegen/typescript": "5.0.9",
"@graphql-codegen/typescript-operations": "5.0.8", "@graphql-codegen/typescript-operations": "5.0.9",
"@graphql-codegen/typescript-urql-graphcache": "3.1.1", "@graphql-codegen/typescript-urql-graphcache": "3.1.1",
"@graphql-codegen/urql-introspection": "3.0.1", "@graphql-codegen/urql-introspection": "3.0.1",
"@graphql-typed-document-node/core": "3.2.0", "@graphql-typed-document-node/core": "3.2.0",
"@iconify-json/lucide": "1.2.91", "@iconify-json/lucide": "1.2.98",
"@import-meta-env/cli": "0.7.4", "@import-meta-env/cli": "0.7.4",
"@intlify/unplugin-vue-i18n": "11.0.7", "@intlify/unplugin-vue-i18n": "11.0.7",
"@relmify/jest-fp-ts": "2.1.1", "@relmify/jest-fp-ts": "2.1.1",
"@rushstack/eslint-patch": "1.15.0", "@rushstack/eslint-patch": "1.16.1",
"@types/har-format": "1.2.16", "@types/har-format": "1.2.16",
"@types/js-yaml": "4.0.9", "@types/js-yaml": "4.0.9",
"@types/lodash-es": "4.17.12", "@types/lodash-es": "4.17.12",
"@types/nprogress": "0.2.3", "@types/nprogress": "0.2.3",
"@types/paho-mqtt": "1.0.10", "@types/paho-mqtt": "1.0.10",
"@types/postman-collection": "3.5.11", "@types/postman-collection": "3.5.11",
"@types/qs": "6.14.0", "@types/qs": "6.15.0",
"@types/splitpanes": "2.2.6", "@types/splitpanes": "2.2.6",
"@types/yargs-parser": "21.0.3", "@types/yargs-parser": "21.0.3",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"@vitejs/plugin-vue": "6.0.4", "@vitejs/plugin-vue": "6.0.5",
"@vue/compiler-sfc": "3.5.28", "@vue/compiler-sfc": "3.5.30",
"@vue/eslint-config-typescript": "14.7.0", "@vue/eslint-config-typescript": "14.7.0",
"@vue/runtime-core": "3.5.28", "@vue/runtime-core": "3.5.30",
"autoprefixer": "10.4.24", "autoprefixer": "10.4.27",
"cross-env": "10.1.0", "cross-env": "10.1.0",
"dotenv": "17.3.1", "dotenv": "17.3.1",
"eslint": "9.39.2", "eslint": "9.39.2",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
"eslint-plugin-vue": "10.8.0", "eslint-plugin-vue": "10.8.0",
"glob": "13.0.5", "glob": "13.0.6",
"globals": "16.5.0", "globals": "16.5.0",
"jsdom": "27.4.0", "jsdom": "27.4.0",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"openapi-types": "12.1.3", "openapi-types": "12.1.3",
"postcss": "8.5.6", "postcss": "8.5.8",
"prettier": "3.8.1", "prettier": "3.8.1",
"prettier-plugin-tailwindcss": "0.7.1", "prettier-plugin-tailwindcss": "0.7.2",
"rollup-plugin-polyfill-node": "0.13.0", "rollup-plugin-polyfill-node": "0.13.0",
"sass": "1.97.3", "sass": "1.98.0",
"tailwindcss": "3.4.16", "tailwindcss": "3.4.16",
"tsup": "8.5.1", "tsup": "8.5.1",
"typescript": "5.9.3", "typescript": "5.9.3",
@ -180,14 +180,14 @@
"unplugin-icons": "22.5.0", "unplugin-icons": "22.5.0",
"unplugin-vue-components": "30.0.0", "unplugin-vue-components": "30.0.0",
"vite": "7.3.1", "vite": "7.3.1",
"vite-plugin-checker": "0.11.0", "vite-plugin-checker": "0.12.0",
"vite-plugin-fonts": "0.7.0", "vite-plugin-fonts": "0.7.0",
"vite-plugin-html-config": "2.0.2", "vite-plugin-html-config": "2.0.2",
"vite-plugin-pages": "0.33.2", "vite-plugin-pages": "0.33.3",
"vite-plugin-pages-sitemap": "1.7.1", "vite-plugin-pages-sitemap": "1.7.1",
"vite-plugin-pwa": "1.2.0", "vite-plugin-pwa": "1.2.0",
"vite-plugin-vue-layouts": "0.11.0", "vite-plugin-vue-layouts": "0.11.0",
"vitest": "4.0.18", "vitest": "4.1.0",
"vue-tsc": "1.8.8" "vue-tsc": "1.8.8"
} }
} }

View file

@ -35,14 +35,14 @@
}, },
"homepage": "https://github.com/hoppscotch/hoppscotch#readme", "homepage": "https://github.com/hoppscotch/hoppscotch#readme",
"devDependencies": { "devDependencies": {
"@types/lodash": "4.17.23", "@types/lodash": "4.17.24",
"typescript": "5.9.3", "typescript": "5.9.3",
"vite": "7.3.1" "vite": "7.3.1"
}, },
"dependencies": { "dependencies": {
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"io-ts": "2.2.22", "io-ts": "2.2.22",
"jose": "6.1.3", "jose": "6.2.2",
"lodash": "4.17.23", "lodash": "4.17.23",
"parser-ts": "0.7.0", "parser-ts": "0.7.0",
"uuid": "13.0.0", "uuid": "13.0.0",

View file

@ -23,7 +23,7 @@
}, },
"dependencies": { "dependencies": {
"@fontsource-variable/inter": "5.2.8", "@fontsource-variable/inter": "5.2.8",
"@fontsource-variable/material-symbols-rounded": "5.2.35", "@fontsource-variable/material-symbols-rounded": "5.2.38",
"@fontsource-variable/roboto-mono": "5.2.8", "@fontsource-variable/roboto-mono": "5.2.8",
"@hoppscotch/common": "workspace:^", "@hoppscotch/common": "workspace:^",
"@hoppscotch/kernel": "workspace:^", "@hoppscotch/kernel": "workspace:^",
@ -37,28 +37,28 @@
"@tauri-apps/plugin-updater": "2.9.0", "@tauri-apps/plugin-updater": "2.9.0",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"vue": "3.5.28", "vue": "3.5.30",
"vue-router": "4.6.4", "vue-router": "4.6.4",
"vue-tippy": "6.7.1", "vue-tippy": "6.7.1",
"zod": "3.25.32" "zod": "3.25.32"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "3.3.3", "@eslint/eslintrc": "3.3.5",
"@eslint/js": "9.39.2", "@eslint/js": "9.39.2",
"@iconify-json/lucide": "1.2.91", "@iconify-json/lucide": "1.2.98",
"@rushstack/eslint-patch": "1.15.0", "@rushstack/eslint-patch": "1.16.1",
"@tauri-apps/cli": "2.9.3", "@tauri-apps/cli": "2.9.3",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"@vitejs/plugin-vue": "6.0.4", "@vitejs/plugin-vue": "6.0.5",
"@vue/eslint-config-typescript": "14.7.0", "@vue/eslint-config-typescript": "14.7.0",
"autoprefixer": "10.4.24", "autoprefixer": "10.4.27",
"eslint": "9.39.2", "eslint": "9.39.2",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
"eslint-plugin-vue": "10.8.0", "eslint-plugin-vue": "10.8.0",
"globals": "16.5.0", "globals": "16.5.0",
"postcss": "8.5.6", "postcss": "8.5.8",
"sass": "1.97.3", "sass": "1.98.0",
"tailwindcss": "3.4.16", "tailwindcss": "3.4.16",
"typescript": "5.9.3", "typescript": "5.9.3",
"unplugin-icons": "22.5.0", "unplugin-icons": "22.5.0",

View file

@ -26,7 +26,7 @@
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-typescript": "^12.3.0", "@rollup/plugin-typescript": "^12.3.0",
"rollup": "^4.54.0", "rollup": "^4.59.0",
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "5.9.3" "typescript": "5.9.3"
} }

View file

@ -26,8 +26,8 @@
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-typescript": "^11.1.6", "@rollup/plugin-typescript": "^11.1.6",
"rollup": "^4.9.6", "rollup": "^4.59.0",
"typescript": "5.9.2", "tslib": "^2.6.2",
"tslib": "^2.6.2" "typescript": "5.9.2"
} }
} }

View file

@ -60,15 +60,15 @@
}, },
"devDependencies": { "devDependencies": {
"@digitak/esrun": "3.2.26", "@digitak/esrun": "3.2.26",
"@eslint/eslintrc": "3.3.3", "@eslint/eslintrc": "3.3.5",
"@eslint/js": "9.39.2", "@eslint/js": "9.39.2",
"@relmify/jest-fp-ts": "2.1.1", "@relmify/jest-fp-ts": "2.1.1",
"@types/chai": "5.2.3", "@types/chai": "5.2.3",
"@types/jest": "30.0.0", "@types/jest": "30.0.0",
"@types/lodash": "4.17.23", "@types/lodash": "4.17.24",
"@types/node": "24.10.1", "@types/node": "24.10.1",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"eslint": "9.39.2", "eslint": "9.39.2",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
@ -77,10 +77,10 @@
"prettier": "3.8.1", "prettier": "3.8.1",
"typescript": "5.9.3", "typescript": "5.9.3",
"vite": "7.3.1", "vite": "7.3.1",
"vitest": "4.0.18" "vitest": "4.1.0"
}, },
"peerDependencies": { "peerDependencies": {
"isolated-vm": "6.0.2" "isolated-vm": "6.1.2"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"isolated-vm": { "isolated-vm": {

View file

@ -41,8 +41,8 @@
"devDependencies": { "devDependencies": {
"@eslint/js": "9.39.2", "@eslint/js": "9.39.2",
"@types/node": "24.9.1", "@types/node": "24.9.1",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"eslint": "9.39.2", "eslint": "9.39.2",
"eslint-plugin-prettier": "5.5.5", "eslint-plugin-prettier": "5.5.5",
"globals": "16.5.0", "globals": "16.5.0",
@ -64,7 +64,7 @@
"@tauri-apps/plugin-shell": "2.2.1", "@tauri-apps/plugin-shell": "2.2.1",
"@tauri-apps/plugin-store": "2.4.1", "@tauri-apps/plugin-store": "2.4.1",
"aws4fetch": "1.0.20", "aws4fetch": "1.0.20",
"axios": "1.13.5", "axios": "1.13.6",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"superjson": "2.2.6", "superjson": "2.2.6",
"zod": "3.25.32" "zod": "3.25.32"

View file

@ -24,7 +24,7 @@
}, },
"dependencies": { "dependencies": {
"@fontsource-variable/inter": "5.2.8", "@fontsource-variable/inter": "5.2.8",
"@fontsource-variable/material-symbols-rounded": "5.2.35", "@fontsource-variable/material-symbols-rounded": "5.2.38",
"@fontsource-variable/roboto-mono": "5.2.8", "@fontsource-variable/roboto-mono": "5.2.8",
"@hoppscotch/common": "workspace:^", "@hoppscotch/common": "workspace:^",
"@hoppscotch/data": "workspace:^", "@hoppscotch/data": "workspace:^",
@ -37,7 +37,7 @@
"@tauri-apps/plugin-fs": "2.0.2", "@tauri-apps/plugin-fs": "2.0.2",
"@tauri-apps/plugin-shell": "2.2.1", "@tauri-apps/plugin-shell": "2.2.1",
"@vueuse/core": "14.2.1", "@vueuse/core": "14.2.1",
"axios": "1.13.5", "axios": "1.13.6",
"buffer": "6.0.3", "buffer": "6.0.3",
"dioc": "3.0.2", "dioc": "3.0.2",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
@ -46,30 +46,30 @@
"stream-browserify": "3.0.0", "stream-browserify": "3.0.0",
"util": "0.12.5", "util": "0.12.5",
"verzod": "0.4.0", "verzod": "0.4.0",
"vue": "3.5.28", "vue": "3.5.30",
"workbox-window": "7.4.0", "workbox-window": "7.4.0",
"zod": "3.25.32" "zod": "3.25.32"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "3.3.3", "@eslint/eslintrc": "3.3.5",
"@eslint/js": "9.39.2", "@eslint/js": "9.39.2",
"@graphql-codegen/add": "6.0.0", "@graphql-codegen/add": "6.0.0",
"@graphql-codegen/cli": "6.1.1", "@graphql-codegen/cli": "6.2.1",
"@graphql-codegen/typed-document-node": "6.1.6", "@graphql-codegen/typed-document-node": "6.1.7",
"@graphql-codegen/typescript": "5.0.8", "@graphql-codegen/typescript": "5.0.9",
"@graphql-codegen/typescript-operations": "5.0.8", "@graphql-codegen/typescript-operations": "5.0.9",
"@graphql-codegen/typescript-urql-graphcache": "3.1.1", "@graphql-codegen/typescript-urql-graphcache": "3.1.1",
"@graphql-codegen/urql-introspection": "3.0.1", "@graphql-codegen/urql-introspection": "3.0.1",
"@graphql-typed-document-node/core": "3.2.0", "@graphql-typed-document-node/core": "3.2.0",
"@iconify-json/lucide": "1.2.91", "@iconify-json/lucide": "1.2.98",
"@intlify/unplugin-vue-i18n": "11.0.7", "@intlify/unplugin-vue-i18n": "11.0.7",
"@rushstack/eslint-patch": "1.15.0", "@rushstack/eslint-patch": "1.16.1",
"@typescript-eslint/eslint-plugin": "8.56.0", "@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.56.0", "@typescript-eslint/parser": "8.57.1",
"@vitejs/plugin-legacy": "7.2.1", "@vitejs/plugin-legacy": "7.2.1",
"@vitejs/plugin-vue": "6.0.4", "@vitejs/plugin-vue": "6.0.5",
"@vue/eslint-config-typescript": "14.7.0", "@vue/eslint-config-typescript": "14.7.0",
"autoprefixer": "10.4.24", "autoprefixer": "10.4.27",
"cross-env": "10.1.0", "cross-env": "10.1.0",
"dotenv": "17.3.1", "dotenv": "17.3.1",
"eslint": "9.39.2", "eslint": "9.39.2",
@ -77,8 +77,8 @@
"eslint-plugin-vue": "10.8.0", "eslint-plugin-vue": "10.8.0",
"globals": "16.5.0", "globals": "16.5.0",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"postcss": "8.5.6", "postcss": "8.5.8",
"prettier-plugin-tailwindcss": "0.7.1", "prettier-plugin-tailwindcss": "0.7.2",
"tailwindcss": "3.4.16", "tailwindcss": "3.4.16",
"typescript": "5.9.3", "typescript": "5.9.3",
"unplugin-fonts": "1.4.0", "unplugin-fonts": "1.4.0",
@ -88,10 +88,10 @@
"vite-plugin-fonts": "0.7.0", "vite-plugin-fonts": "0.7.0",
"vite-plugin-html-config": "2.0.2", "vite-plugin-html-config": "2.0.2",
"vite-plugin-inspect": "11.3.3", "vite-plugin-inspect": "11.3.3",
"vite-plugin-pages": "0.33.2", "vite-plugin-pages": "0.33.3",
"vite-plugin-pages-sitemap": "1.7.1", "vite-plugin-pages-sitemap": "1.7.1",
"vite-plugin-pwa": "1.2.0", "vite-plugin-pwa": "1.2.0",
"vite-plugin-static-copy": "3.2.0", "vite-plugin-static-copy": "3.3.0",
"vite-plugin-vue-layouts": "0.11.0", "vite-plugin-vue-layouts": "0.11.0",
"vue-tsc": "2.1.6" "vue-tsc": "2.1.6"
} }

View file

@ -14,7 +14,7 @@
}, },
"dependencies": { "dependencies": {
"@fontsource-variable/inter": "5.2.8", "@fontsource-variable/inter": "5.2.8",
"@fontsource-variable/material-symbols-rounded": "5.2.35", "@fontsource-variable/material-symbols-rounded": "5.2.38",
"@fontsource-variable/roboto-mono": "5.2.8", "@fontsource-variable/roboto-mono": "5.2.8",
"@graphql-typed-document-node/core": "3.2.0", "@graphql-typed-document-node/core": "3.2.0",
"@hoppscotch/ui": "0.2.5", "@hoppscotch/ui": "0.2.5",
@ -24,14 +24,14 @@
"@urql/exchange-auth": "3.0.0", "@urql/exchange-auth": "3.0.0",
"@urql/vue": "2.0.0", "@urql/vue": "2.0.0",
"@vueuse/core": "14.2.1", "@vueuse/core": "14.2.1",
"axios": "1.13.5", "axios": "1.13.6",
"cors": "2.8.6", "cors": "2.8.6",
"date-fns": "4.1.0", "date-fns": "4.1.0",
"fp-ts": "2.16.11", "fp-ts": "2.16.11",
"graphql": "16.12.0", "graphql": "16.13.1",
"io-ts": "2.2.22", "io-ts": "2.2.22",
"lodash-es": "4.17.23", "lodash-es": "4.17.23",
"postcss": "8.5.6", "postcss": "8.5.8",
"prettier-plugin-tailwindcss": "0.7.1", "prettier-plugin-tailwindcss": "0.7.1",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"tailwindcss": "3.4.16", "tailwindcss": "3.4.16",
@ -39,32 +39,32 @@
"ts-node-dev": "2.0.0", "ts-node-dev": "2.0.0",
"unplugin-icons": "22.5.0", "unplugin-icons": "22.5.0",
"unplugin-vue-components": "30.0.0", "unplugin-vue-components": "30.0.0",
"vue": "3.5.28", "vue": "3.5.30",
"vue-i18n": "11.2.8", "vue-i18n": "11.3.0",
"vue-router": "4.6.4", "vue-router": "4.6.4",
"vue-tippy": "6.7.1" "vue-tippy": "6.7.1"
}, },
"devDependencies": { "devDependencies": {
"@graphql-codegen/cli": "6.1.1", "@graphql-codegen/cli": "6.2.1",
"@graphql-codegen/client-preset": "5.2.3", "@graphql-codegen/client-preset": "5.2.4",
"@graphql-codegen/introspection": "5.0.0", "@graphql-codegen/introspection": "5.0.1",
"@graphql-codegen/typed-document-node": "6.1.6", "@graphql-codegen/typed-document-node": "6.1.7",
"@graphql-codegen/typescript": "5.0.8", "@graphql-codegen/typescript": "5.0.9",
"@graphql-codegen/typescript-document-nodes": "5.0.8", "@graphql-codegen/typescript-document-nodes": "5.0.9",
"@graphql-codegen/typescript-operations": "5.0.8", "@graphql-codegen/typescript-operations": "5.0.9",
"@graphql-codegen/urql-introspection": "3.0.1", "@graphql-codegen/urql-introspection": "3.0.1",
"@iconify-json/lucide": "1.2.91", "@iconify-json/lucide": "1.2.98",
"@import-meta-env/cli": "0.7.4", "@import-meta-env/cli": "0.7.4",
"@import-meta-env/unplugin": "0.6.3", "@import-meta-env/unplugin": "0.6.3",
"@types/lodash-es": "4.17.12", "@types/lodash-es": "4.17.12",
"@vitejs/plugin-vue": "6.0.4", "@vitejs/plugin-vue": "6.0.5",
"@vue/compiler-sfc": "3.5.28", "@vue/compiler-sfc": "3.5.30",
"autoprefixer": "10.4.24", "autoprefixer": "10.4.27",
"dotenv": "17.3.1", "dotenv": "17.3.1",
"graphql-tag": "2.12.6", "graphql-tag": "2.12.6",
"hoppscotch-backend": "workspace:^", "hoppscotch-backend": "workspace:^",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"sass": "1.97.3", "sass": "1.98.0",
"ts-node": "10.9.2", "ts-node": "10.9.2",
"typescript": "5.9.3", "typescript": "5.9.3",
"unplugin-fonts": "1.4.0", "unplugin-fonts": "1.4.0",

File diff suppressed because it is too large Load diff

View file

@ -2,17 +2,17 @@
# This stage is used to build both Caddy and the webapp server, # This stage is used to build both Caddy and the webapp server,
# preventing vulnerable packages on the dependency chain # preventing vulnerable packages on the dependency chain
FROM alpine:3.23.3 AS go_builder FROM alpine:3.23.3 AS go_builder
RUN apk add --no-cache curl git RUN apk add --no-cache curl git openssh-client
# Install Go 1.26.0 from GitHub releases to fix CVE-2025-47907
ARG TARGETARCH ARG TARGETARCH
ENV GOLANG_VERSION=1.26.0 ENV GOLANG_VERSION=1.26.1
# Download Go tarball # Download Go tarball
RUN case "${TARGETARCH}" in amd64) GOARCH=amd64 ;; arm64) GOARCH=arm64 ;; *) echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; esac && \ RUN case "${TARGETARCH}" in amd64) GOARCH=amd64 ;; arm64) GOARCH=arm64 ;; *) echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; esac && \
curl -fsSL "https://go.dev/dl/go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz" -o go.tar.gz curl -fsSL "https://go.dev/dl/go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz" -o go.tar.gz
# Checksum verification of Go tarball # Checksum verification of Go tarball
RUN case "${TARGETARCH}" in \ RUN case "${TARGETARCH}" in \
amd64) expected="aac1b08a0fb0c4e0a7c1555beb7b59180b05dfc5a3d62e40e9de90cd42f88235" ;; \ amd64) expected="031f088e5d955bab8657ede27ad4e3bc5b7c1ba281f05f245bcc304f327c987a" ;; \
arm64) expected="bd03b743eb6eb4193ea3c3fd3956546bf0e3ca5b7076c8226334afe6b75704cd" ;; \ arm64) expected="a290581cfe4fe28ddd737dde3095f3dbeb7f2e4065cab4eae44dfc53b760c2f7" ;; \
esac && \ esac && \
actual=$(sha256sum go.tar.gz | cut -d' ' -f1) && \ actual=$(sha256sum go.tar.gz | cut -d' ' -f1) && \
[ "$actual" = "$expected" ] && \ [ "$actual" = "$expected" ] && \
@ -30,27 +30,24 @@ ENV PATH="/usr/local/go/bin:${PATH}" \
# Build Caddy from the Go base # Build Caddy from the Go base
FROM go_builder AS caddy_builder FROM go_builder AS caddy_builder
RUN mkdir -p /tmp/caddy-build && \ RUN mkdir -p /tmp/caddy-build && \
curl -L -o /tmp/caddy-build/src.tar.gz https://github.com/caddyserver/caddy/releases/download/v2.10.2/caddy_2.10.2_src.tar.gz curl -L -o /tmp/caddy-build/src.tar.gz https://github.com/caddyserver/caddy/releases/download/v2.11.2/caddy_2.11.2_src.tar.gz
# Checksum verification of caddy source # Checksum verification of caddy source
RUN expected="a9efa00c161922dd24650fd0bee2f4f8bb2fb69ff3e63dcc44f0694da64bb0cf" && \ RUN expected="40cb9dc5e0b005bba635e830ba2354450248831fca3b58f5c49892a4747d0e76" && \
actual=$(sha256sum /tmp/caddy-build/src.tar.gz | cut -d' ' -f1) && \ actual=$(sha256sum /tmp/caddy-build/src.tar.gz | cut -d' ' -f1) && \
[ "$actual" = "$expected" ] && \ [ "$actual" = "$expected" ] && \
echo "✅ Caddy Source Checksum OK" || \ echo "✅ Caddy Source Checksum OK" || \
(echo "❌ Caddy Source Checksum failed!" && exit 1) (echo "❌ Caddy Source Checksum failed!" && exit 1)
WORKDIR /tmp/caddy-build WORKDIR /tmp/caddy-build
RUN tar xvf /tmp/caddy-build/src.tar.gz && \ RUN tar -xzf /tmp/caddy-build/src.tar.gz && \
# Patch to resolve CVE-2025-64702 on quic-go # Fix CVE: upgrade google.golang.org/grpc to 1.79.3 (CVSS 9.1)
go get github.com/quic-go/quic-go@v0.57.0 && \ go get google.golang.org/grpc@v1.79.3 && \
# Patch to resolve CVE-2025-47913 on crypto # Fix CVE: upgrade github.com/smallstep/certificates to 0.30.0 (CVSS 10)
go get golang.org/x/crypto@v0.45.0 && \ go get github.com/smallstep/certificates@v0.30.0 && \
# Patch to resolve CVE-2025-44005 on smallstep
go get github.com/smallstep/certificates@v0.29.0 && \
# Clean up any existing vendor directory and regenerate with updated deps # Clean up any existing vendor directory and regenerate with updated deps
rm -rf vendor && \ rm -rf vendor && \
go mod tidy && \ go mod tidy && \
go mod vendor go mod vendor
WORKDIR /tmp/caddy-build/cmd/caddy WORKDIR /tmp/caddy-build/cmd/caddy
# Build using the updated vendored dependencies
RUN go build RUN go build
@ -70,14 +67,15 @@ RUN CGO_ENABLED=0 GOOS=linux go build -o webapp-server .
# Shared Node.js base with optimized NPM installation # Shared Node.js base with optimized NPM installation
FROM alpine:3.23.3 AS node_base FROM alpine:3.23.3 AS node_base
# Install dependencies # Install dependencies
RUN apk add --no-cache nodejs curl bash tini ca-certificates RUN apk upgrade --no-cache && \
apk add --no-cache nodejs curl bash tini ca-certificates git openssh-client
# Set working directory for NPM installation # Set working directory for NPM installation
RUN mkdir -p /tmp/npm-install RUN mkdir -p /tmp/npm-install
WORKDIR /tmp/npm-install WORKDIR /tmp/npm-install
# Download NPM tarball # Download NPM tarball
RUN curl -fsSL https://registry.npmjs.org/npm/-/npm-11.10.0.tgz -o npm.tgz RUN curl -fsSL https://registry.npmjs.org/npm/-/npm-11.11.1.tgz -o npm.tgz
# Verify checksum # Verify checksum
RUN expected="43c653384c39617756846ad405705061a78fb6bbddb2ced57ab79fb92e8af2a7" \ RUN expected="a3b2dbeb2544809a75f186cbae27adc5ceb5adc1ee696e17dfed689d7f46fcf2" \
&& actual=$(sha256sum npm.tgz | cut -d' ' -f1) \ && actual=$(sha256sum npm.tgz | cut -d' ' -f1) \
&& [ "$actual" = "$expected" ] \ && [ "$actual" = "$expected" ] \
&& echo "✅ NPM Tarball Checksum OK" \ && echo "✅ NPM Tarball Checksum OK" \
@ -85,20 +83,26 @@ RUN expected="43c653384c39617756846ad405705061a78fb6bbddb2ced57ab79fb92e8af2a7"
# Install NPM from verified tarball and global packages # Install NPM from verified tarball and global packages
RUN tar -xzf npm.tgz && \ RUN tar -xzf npm.tgz && \
cd package && \ cd package && \
node bin/npm-cli.js install -g npm@11.10.0 && \ node bin/npm-cli.js install -g npm@11.11.1 && \
cd / && \ cd / && \
rm -rf /tmp/npm-install rm -rf /tmp/npm-install
RUN npm install -g pnpm@10.29.3 @import-meta-env/cli RUN npm install -g pnpm@10.32.1 @import-meta-env/cli@0.7.4
# Fix CVE-2025-64756 by replacing vulnerable glob with patched version # Fix CVE-2025-64756 by replacing vulnerable glob in @import-meta-env/cli (ships glob@11.0.2, fix requires >=11.1.0)
RUN npm install -g glob@11.1.0 tar@7.5.8 && \ RUN mkdir -p /tmp/glob-fix && \
# Replace tar in npm's node_modules cd /tmp/glob-fix && \
rm -rf /usr/lib/node_modules/npm/node_modules/tar && \ npm install glob@11.1.0 && \
cp -r /usr/lib/node_modules/tar /usr/lib/node_modules/npm/node_modules/ && \
cp -r /usr/lib/node_modules/tar /usr/lib/node_modules/pnpm/dist/node_modules/ && \
# Replace glob in @import-meta-env/cli's node_modules
rm -rf /usr/lib/node_modules/@import-meta-env/cli/node_modules/glob && \ rm -rf /usr/lib/node_modules/@import-meta-env/cli/node_modules/glob && \
cp -r /usr/lib/node_modules/glob /usr/lib/node_modules/@import-meta-env/cli/node_modules/ cp -r node_modules/glob /usr/lib/node_modules/@import-meta-env/cli/node_modules/ && \
rm -rf /tmp/glob-fix
# Fix CVE: upgrade serialize-javascript in @import-meta-env/cli (ships 6.0.2, fix requires >=7.0.3)
RUN mkdir -p /tmp/serialize-fix && \
cd /tmp/serialize-fix && \
npm install serialize-javascript@7.0.3 && \
rm -rf /usr/lib/node_modules/@import-meta-env/cli/node_modules/serialize-javascript && \
cp -r node_modules/serialize-javascript /usr/lib/node_modules/@import-meta-env/cli/node_modules/ && \
rm -rf /tmp/serialize-fix