From 7c492b4888f4124410782d90d4df010e1066ddce Mon Sep 17 00:00:00 2001 From: wadesdev Date: Wed, 18 Mar 2026 10:10:29 -0400 Subject: [PATCH 1/3] package-lock committing for pull --- clients/package-lock.json | 89 +++++++++++++++------------------------ 1 file changed, 35 insertions(+), 54 deletions(-) diff --git a/clients/package-lock.json b/clients/package-lock.json index 36097d49f9f..d9ab6aaba01 100644 --- a/clients/package-lock.json +++ b/clients/package-lock.json @@ -410,7 +410,6 @@ "integrity": "sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@gerrit0/mini-shiki": "^1.24.0", "lunr": "^2.3.9", @@ -447,7 +446,6 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -1212,7 +1210,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -1444,7 +1441,6 @@ "integrity": "sha512-heMfJjOfbHvL+wlCAwFZlSxcakyJ5yQDam6e9k2RRArB1veJhRnsjO6lO1hOXjJYrqxfHA/ldIugbBVlCDqfvQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@storybook/global": "^5.0.0", "@storybook/icons": "^2.0.1", @@ -1583,7 +1579,6 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -2402,7 +2397,6 @@ "version": "2.10.6", "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.10.6.tgz", "integrity": "sha512-9cdzcUR3LV3E2as0QhZhHAH5qjbyspV12kU1E1Ibcv6/uKUi6bIfPfMSC6R/Tw8Beqhn2ClJFPqjtXzL+C0knQ==", - "peer": true, "dependencies": { "@chakra-ui/hooks": "2.4.4", "@chakra-ui/styled-system": "2.12.2", @@ -2427,7 +2421,6 @@ "version": "2.12.2", "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.12.2.tgz", "integrity": "sha512-BlQ7i3+GYC0S0c72B+paa0sYo+QeNSMfz6fwQRFsc8A5Aax9i9lSdRL+vwJVC+k6r/0HWfRwk016R2RD2ihEwQ==", - "peer": true, "dependencies": { "@chakra-ui/utils": "2.2.4", "csstype": "^3.1.2" @@ -2641,7 +2634,6 @@ "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2692,7 +2684,6 @@ "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2760,6 +2751,7 @@ "os": [ "aix" ], + "peer": true, "engines": { "node": ">=18" } @@ -2776,6 +2768,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -2792,6 +2785,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -2808,6 +2802,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -2824,6 +2819,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -2840,6 +2836,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -2856,6 +2853,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -2872,6 +2870,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -2888,6 +2887,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2904,6 +2904,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2920,6 +2921,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2936,6 +2938,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2952,6 +2955,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2968,6 +2972,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -2984,6 +2989,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -3000,6 +3006,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -3016,6 +3023,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -3032,6 +3040,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -3048,6 +3057,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -3064,6 +3074,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -3080,6 +3091,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -3113,6 +3125,7 @@ "os": [ "sunos" ], + "peer": true, "engines": { "node": ">=18" } @@ -3129,6 +3142,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -3145,6 +3159,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -3161,6 +3176,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -3329,8 +3345,7 @@ "version": "1.5.20", "resolved": "https://registry.npmjs.org/@iabtechlabtcf/core/-/core-1.5.20.tgz", "integrity": "sha512-Z4TH/79/zWPsv8D2rDNbqMDks08f6rmb6XVHMZkYWT9DZlS7XJ+bnNkTiTaDURo/5QNta0/8SkMe8aTiezhjYg==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@ibm/telemetry-js": { "version": "1.9.1", @@ -4283,7 +4298,6 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -4310,7 +4324,6 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -5556,7 +5569,6 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "peer": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -6702,7 +6714,6 @@ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -7132,7 +7143,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "peer": true, "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -7343,7 +7353,6 @@ "version": "18.3.18", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -7499,7 +7508,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.18.0", @@ -7664,7 +7672,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "7.18.0", "@typescript-eslint/types": "7.18.0", @@ -8102,7 +8109,6 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -8664,7 +8670,6 @@ "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", "license": "MIT", - "peer": true, "bin": { "astring": "bin/astring" } @@ -8975,6 +8980,7 @@ "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "open": "^8.0.4" }, @@ -9127,7 +9133,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -10846,7 +10851,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "peer": true, "engines": { "node": ">=12" } @@ -11024,7 +11028,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -11897,6 +11900,7 @@ "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^4.3.4" }, @@ -11961,7 +11965,6 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -12396,7 +12399,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -12514,7 +12516,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, - "peer": true, "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -12592,7 +12593,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, - "peer": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -12625,7 +12625,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -13057,8 +13056,7 @@ "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "peer": true + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/esutils": { "version": "2.0.3", @@ -13681,7 +13679,6 @@ "version": "11.18.2", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", - "peer": true, "dependencies": { "motion-dom": "^11.18.1", "motion-utils": "^11.18.1", @@ -14646,7 +14643,6 @@ "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -14655,8 +14651,7 @@ "node_modules/immutable": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", - "peer": true + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==" }, "node_modules/import-cwd": { "version": "3.0.0", @@ -15703,7 +15698,6 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -18713,7 +18707,6 @@ "resolved": "https://registry.npmjs.org/next/-/next-14.2.35.tgz", "integrity": "sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==", "license": "MIT", - "peer": true, "dependencies": { "@next/env": "14.2.35", "@swc/helpers": "0.5.5", @@ -20094,7 +20087,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -20745,7 +20737,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -21061,7 +21052,6 @@ "version": "0.30.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz", "integrity": "sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/ramda" @@ -21707,7 +21697,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -21839,7 +21828,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -21947,8 +21935,7 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "peer": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-phone-number-input": { "version": "3.4.12", @@ -22315,8 +22302,7 @@ "node_modules/redux": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "peer": true + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/redux-persist": { "version": "6.0.0", @@ -22618,7 +22604,6 @@ "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -23831,6 +23816,7 @@ "integrity": "sha512-es7uDdEwRVVUAt7XLAZZ1hicOq9r4ov5NFeFPpa2YEyAsyHYOCr0CTlHBfslWG6D5EVNWK3kVIIuW8GHB6hEig==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@storybook/global": "^5.0.0", "@testing-library/jest-dom": "^6.6.3", @@ -23867,6 +23853,7 @@ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/spy": "3.2.4", "estree-walker": "^3.0.3", @@ -23894,6 +23881,7 @@ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -24541,7 +24529,6 @@ "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -24621,7 +24608,6 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -24685,7 +24671,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -25574,7 +25559,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26938,7 +26922,6 @@ "version": "19.0.10", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", - "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -27194,7 +27177,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.0.2.tgz", "integrity": "sha512-xgvB+eJxFIW0HcFmURjOOLhGmbhYVHATKeS+aQd7HeRJI3nYuutqG4eJfBi+I2rFob7E72M3tXJGjv+5XUHLEQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -27204,7 +27186,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.2.tgz", "integrity": "sha512-6N4UcB4mLYRdX3W+z9fIz+2yijW3r7laRQCV+zg8PFCZsy2iVaEQgWy3eLH0NBeQmVyi1PeLzFqXfucqeYghjw==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.25.0" }, From a8ccca4edbcfa52507ab07bcd8af6e04537c0c09 Mon Sep 17 00:00:00 2001 From: wadesdev Date: Mon, 23 Mar 2026 22:25:41 -0400 Subject: [PATCH 2/3] ENG-3009: Fix Edit SSO Provider Save button always disabled In edit mode, the Yup validation schema required client_id and client_secret, but the GET endpoint intentionally omits these sensitive fields from responses. This made the form permanently invalid, disabling the Save button even after editing other fields. - Converts the validation schema to a factory function parameterized on isEditMode; credentials are optional when editing an existing provider - Strips empty credential fields from the PATCH payload so the backend can preserve existing encrypted values (see companion fidesplus PR #3284) - Removes the asterisk required indicator from credential inputs in edit mode Co-Authored-By: Claude Sonnet 4.6 --- .../openid-authentication/SSOProviderForm.tsx | 57 ++++++++++++------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/clients/admin-ui/src/features/openid-authentication/SSOProviderForm.tsx b/clients/admin-ui/src/features/openid-authentication/SSOProviderForm.tsx index 7fb59a8c918..8436c802a23 100644 --- a/clients/admin-ui/src/features/openid-authentication/SSOProviderForm.tsx +++ b/clients/admin-ui/src/features/openid-authentication/SSOProviderForm.tsx @@ -64,22 +64,27 @@ export const transformOrganizationToFormValues = ( openIDProvider: OpenIDProvider, ): SSOProviderFormValues => ({ ...openIDProvider }); -const SSOProviderFormValidationSchema = Yup.object().shape({ - provider: Yup.string().required().label("Provider"), - name: Yup.string().required().label("Name"), - client_id: Yup.string().required().label("Client ID"), - client_secret: Yup.string().required().label("Client Secret"), - scopes: Yup.array().of(Yup.string()).label("Scopes"), - verify_email: Yup.boolean().optional().label("Verify Email"), - verify_email_field: Yup.string() - .optional() - .nullable() - .label("Userinfo object verify email field"), - email_field: Yup.string() - .optional() - .nullable() - .label("Userinfo object email field"), -}); +const getSSOProviderFormValidationSchema = (isEditMode: boolean) => + Yup.object().shape({ + provider: Yup.string().required().label("Provider"), + name: Yup.string().required().label("Name"), + client_id: isEditMode + ? Yup.string().optional().label("Client ID") + : Yup.string().required().label("Client ID"), + client_secret: isEditMode + ? Yup.string().optional().label("Client Secret") + : Yup.string().required().label("Client Secret"), + scopes: Yup.array().of(Yup.string()).label("Scopes"), + verify_email: Yup.boolean().optional().label("Verify Email"), + verify_email_field: Yup.string() + .optional() + .nullable() + .label("Userinfo object verify email field"), + email_field: Yup.string() + .optional() + .nullable() + .label("Userinfo object email field"), + }); const CustomProviderExtraFields = () => { const { @@ -183,6 +188,7 @@ const SSOProviderForm = ({ onSuccess, onClose, }: SSOProviderFormProps) => { + const isEditMode = !!openIDProvider; const [createOpenIDProviderMutationTrigger] = useCreateOpenIDProviderMutation(); const [updateOpenIDProviderMutation] = useUpdateOpenIDProviderMutation(); @@ -221,8 +227,17 @@ const SSOProviderForm = ({ } } }; - if (initialValues.id) { - const result = await updateOpenIDProviderMutation(values); + if (isEditMode) { + // Strip empty credential fields — the backend preserves existing encrypted + // values when client_id / client_secret are absent from the payload. + const payload = { ...values }; + if (!payload.client_id) { + delete payload.client_id; + } + if (!payload.client_secret) { + delete payload.client_secret; + } + const result = await updateOpenIDProviderMutation(payload); handleResult(result); } else { const result = await createOpenIDProviderMutationTrigger(values); @@ -274,7 +289,7 @@ const SSOProviderForm = ({ initialValues={initialValues} enableReinitialize onSubmit={handleSubmit} - validationSchema={SSOProviderFormValidationSchema} + validationSchema={getSSOProviderFormValidationSchema(isEditMode)} > {({ dirty, isValid, values }) => (
@@ -310,7 +325,7 @@ const SSOProviderForm = ({ type="password" tooltip="Client ID for your provider" variant="stacked" - isRequired + isRequired={!isEditMode} /> {values.provider === "azure" && renderAzureProviderExtraFields()} {values.provider === "okta" && renderOktaProviderExtraFields()} From 49746a95c1907ea088f8db8f1445b239ddeaabe9 Mon Sep 17 00:00:00 2001 From: wadesdev Date: Mon, 23 Mar 2026 22:26:04 -0400 Subject: [PATCH 3/3] add changelog for PR #7739 --- changelog/7739-fix-edit-sso-provider-save-button.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changelog/7739-fix-edit-sso-provider-save-button.yaml diff --git a/changelog/7739-fix-edit-sso-provider-save-button.yaml b/changelog/7739-fix-edit-sso-provider-save-button.yaml new file mode 100644 index 00000000000..6f510f996da --- /dev/null +++ b/changelog/7739-fix-edit-sso-provider-save-button.yaml @@ -0,0 +1,4 @@ +type: Fixed +description: Fixed Edit SSO Provider Save button being permanently disabled after creating a provider +pr: 7739 +labels: []