From 587fe0a858bb8b9cbb1b756c1b59e99aa8fded34 Mon Sep 17 00:00:00 2001 From: Ryan Westfall Date: Thu, 30 Jul 2026 13:04:17 -0500 Subject: [PATCH] Fix brace-expansion lock so npm 10 can build on beta deploy Deploy hosts use Node 22 / npm 10, which followed broken package-lock links to empty phantom paths and failed with Cannot find module brace-expansion. Point overrides at the vendored shim and declare it as a direct dependency so npm ci resolves correctly. --- llm-fe/package-lock.json | 59 +++++++++++++++------------------------- llm-fe/package.json | 1 + 2 files changed, 23 insertions(+), 37 deletions(-) diff --git a/llm-fe/package-lock.json b/llm-fe/package-lock.json index 40c4dde..c1b5967 100644 --- a/llm-fe/package-lock.json +++ b/llm-fe/package-lock.json @@ -46,7 +46,8 @@ "web-vitals": "^4.2.4", "webpack": "^5.97.1", "webpack-cli": "^5.1.4", - "yup": "^1.5.0" + "yup": "^1.5.0", + "brace-expansion": "file:vendor/brace-expansion-compat" }, "devDependencies": { "@capacitor/assets": "^3.0.5", @@ -2160,7 +2161,7 @@ } }, "node_modules/@capacitor/assets/node_modules/glob/node_modules/brace-expansion": { - "resolved": "node_modules/@capacitor/assets/node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/@capacitor/assets/node_modules/glob/node_modules/minimatch": { @@ -2176,9 +2177,6 @@ "node": "*" } }, - "node_modules/@capacitor/assets/node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat": { - "dev": true - }, "node_modules/@capacitor/assets/node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -2371,7 +2369,7 @@ } }, "node_modules/@capacitor/cli/node_modules/glob/node_modules/brace-expansion": { - "resolved": "node_modules/@capacitor/cli/node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/@capacitor/cli/node_modules/glob/node_modules/minimatch": { @@ -2386,7 +2384,6 @@ "node": "*" } }, - "node_modules/@capacitor/cli/node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/@capacitor/cli/node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -3050,7 +3047,6 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3085,7 +3081,7 @@ } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "resolved": "node_modules/@humanwhocodes/config-array/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { @@ -3100,7 +3096,6 @@ "node": "*" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -7963,7 +7958,7 @@ } }, "node_modules/brace-expansion": { - "resolved": "node_modules/@eslint/eslintrc/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/braces": { @@ -10447,7 +10442,7 @@ } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "resolved": "node_modules/eslint-plugin-import/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -10481,7 +10476,6 @@ "node": "*" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/eslint-plugin-jest": { "version": "25.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", @@ -10542,7 +10536,7 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { - "resolved": "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { @@ -10557,7 +10551,6 @@ "node": "*" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/eslint-plugin-react": { "version": "7.37.4", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", @@ -10601,7 +10594,7 @@ } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "resolved": "node_modules/eslint-plugin-react/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/eslint-plugin-react/node_modules/doctrine": { @@ -10627,7 +10620,6 @@ "node": "*" } }, - "node_modules/eslint-plugin-react/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -10741,7 +10733,7 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/eslint/node_modules/brace-expansion": { - "resolved": "node_modules/eslint/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/eslint/node_modules/find-up": { @@ -10821,7 +10813,6 @@ "node": "*" } }, - "node_modules/eslint/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -11253,7 +11244,7 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "resolved": "node_modules/filelist/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/filelist/node_modules/minimatch": { @@ -11268,7 +11259,6 @@ "node": "*" } }, - "node_modules/filelist/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", @@ -11479,7 +11469,7 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { - "resolved": "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { @@ -11531,7 +11521,6 @@ "node": "*" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -11976,7 +11965,7 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "resolved": "node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/glob/node_modules/minimatch": { @@ -11991,7 +11980,6 @@ "node": "*" } }, - "node_modules/glob/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -13479,7 +13467,7 @@ } }, "node_modules/jake/node_modules/brace-expansion": { - "resolved": "node_modules/jake/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/jake/node_modules/minimatch": { @@ -13494,7 +13482,6 @@ "node": "*" } }, - "node_modules/jake/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", @@ -19530,7 +19517,7 @@ } }, "node_modules/recursive-readdir/node_modules/brace-expansion": { - "resolved": "node_modules/recursive-readdir/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/recursive-readdir/node_modules/minimatch": { @@ -19545,7 +19532,6 @@ "node": "*" } }, - "node_modules/recursive-readdir/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -19744,7 +19730,7 @@ } }, "node_modules/replace/node_modules/brace-expansion": { - "resolved": "node_modules/replace/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/replace/node_modules/camelcase": { @@ -19861,9 +19847,6 @@ "node": "*" } }, - "node_modules/replace/node_modules/minimatch/vendor/brace-expansion-compat": { - "dev": true - }, "node_modules/replace/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -21486,7 +21469,7 @@ } }, "node_modules/sucrase/node_modules/brace-expansion": { - "resolved": "node_modules/sucrase/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/sucrase/node_modules/commander": { @@ -21530,7 +21513,6 @@ "node": "*" } }, - "node_modules/sucrase/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -21837,7 +21819,7 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "resolved": "node_modules/test-exclude/node_modules/minimatch/vendor/brace-expansion-compat", + "resolved": "vendor/brace-expansion-compat", "link": true }, "node_modules/test-exclude/node_modules/minimatch": { @@ -21852,7 +21834,6 @@ "node": "*" } }, - "node_modules/test-exclude/node_modules/minimatch/vendor/brace-expansion-compat": {}, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -23639,6 +23620,10 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "vendor/brace-expansion-compat": { + "version": "5.0.8", + "license": "MIT" } } } diff --git a/llm-fe/package.json b/llm-fe/package.json index 82673e7..9131e0a 100644 --- a/llm-fe/package.json +++ b/llm-fe/package.json @@ -23,6 +23,7 @@ "axios": "^1.13.2", "babel-loader": "^9.2.1", "bootstrap": "^5.3.3", + "brace-expansion": "file:vendor/brace-expansion-compat", "chroma-js": "^3.1.2", "formik": "^2.4.6", "jwt-decode": "^4.0.0", -- 2.54.0