diff --git a/client/package-lock.json b/client/package-lock.json index a70ac66c9..e8d3d6b02 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,18 +8,18 @@ "name": "bodyshop", "version": "0.2.1", "dependencies": { - "@ant-design/pro-layout": "^7.19.8", + "@ant-design/pro-layout": "^7.19.10", "@apollo/client": "^3.10.8", "@emotion/is-prop-valid": "^1.2.2", "@fingerprintjs/fingerprintjs": "^4.4.3", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.2.6", - "@sentry/cli": "^2.32.1", + "@sentry/cli": "^2.32.2", "@sentry/react": "^7.114.0", "@splitsoftware/splitio-react": "^1.12.0", "@tanem/react-nprogress": "^5.0.51", "@vitejs/plugin-react": "^4.3.1", - "antd": "^5.19.1", + "antd": "^5.19.2", "apollo-link-logger": "^2.0.1", "apollo-link-sentry": "^3.3.0", "autosize": "^6.0.1", @@ -53,8 +53,8 @@ "react-dom": "^18.3.1", "react-drag-listview": "^2.0.0", "react-grid-gallery": "^1.0.1", - "react-grid-layout": "^1.4.4", - "react-i18next": "^14.1.2", + "react-grid-layout": "1.3.4", + "react-i18next": "^14.1.3", "react-icons": "^5.2.1", "react-image-lightbox": "^5.1.4", "react-joyride": "^2.8.2", @@ -87,7 +87,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-react": "^7.24.7", - "@dotenvx/dotenvx": "^1.6.2", + "@dotenvx/dotenvx": "^1.6.4", "@emotion/babel-plugin": "^11.11.0", "@emotion/react": "^11.11.4", "@sentry/webpack-plugin": "^2.21.1", @@ -104,7 +104,7 @@ "react-error-overlay": "6.0.11", "redux-logger": "^3.0.6", "source-map-explorer": "^2.5.3", - "vite": "^5.3.3", + "vite": "^5.3.4", "vite-plugin-babel": "^1.2.0", "vite-plugin-eslint": "^1.8.1", "vite-plugin-legacy": "^2.1.0", @@ -182,13 +182,13 @@ "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" }, "node_modules/@ant-design/pro-layout": { - "version": "7.19.8", - "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.19.8.tgz", - "integrity": "sha512-f/vC83jmCjEDP7rrLBxRBqCK8298keSRrXqpd2RqigYlJpGqeKVGcevmk5ngBjDxz+UqjoNfOokG7cU3t3eIvQ==", + "version": "7.19.10", + "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.19.10.tgz", + "integrity": "sha512-w2Cbh3Ari1h5e7WBbrZSZi2f3pokpf0Pn+7GQ/PN+cimKBC+BIBgNh6mtpheLlNTdTM3jsgpEpIO+BtiLbjkkg==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.14.7", - "@ant-design/pro-utils": "2.15.14", + "@ant-design/pro-provider": "2.14.9", + "@ant-design/pro-utils": "2.15.16", "@babel/runtime": "^7.18.0", "@umijs/route-utils": "^4.0.0", "@umijs/use-params": "^1.0.9", @@ -213,9 +213,9 @@ "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" }, "node_modules/@ant-design/pro-provider": { - "version": "2.14.7", - "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.14.7.tgz", - "integrity": "sha512-yEAOph/fTzIhOWMtYAbcsjffyYq8tL6IgMQqRlYZmIisVMRDZZ32F+Ab18a4S18foZiDChEr0e6NZuuY7du5rA==", + "version": "2.14.9", + "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.14.9.tgz", + "integrity": "sha512-4UJr6AHyWKsrhx2KfdkpRQCgjc75oDUDhMHGA2OWqQVI16sMQfeZf6KYfmeiG3Dal1QKFOtSibCdH5G2CDvWlg==", "dependencies": { "@ant-design/cssinjs": "^1.11.1", "@babel/runtime": "^7.18.0", @@ -230,12 +230,12 @@ } }, "node_modules/@ant-design/pro-utils": { - "version": "2.15.14", - "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.15.14.tgz", - "integrity": "sha512-h/GdYDN19dTnyWvbfoEF5DyeTwkB+iRUXlhQ1O1NMkD2eOUpKTjVKF8J+Kekb7Bp7Fkf1dBVktVrcY8sioTkrw==", + "version": "2.15.16", + "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.15.16.tgz", + "integrity": "sha512-WSyE6dSZOY3aBSdfqzu3HSfV6XbZNQoHOhh6ankEZMgDRiKn1JiDG1CvgjdzFN2N5RULCoCcAHqU784fTEhggA==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.14.7", + "@ant-design/pro-provider": "2.14.9", "@babel/runtime": "^7.18.0", "classnames": "^2.3.2", "dayjs": "^1.11.10", @@ -2681,9 +2681,9 @@ } }, "node_modules/@dotenvx/dotenvx": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.6.2.tgz", - "integrity": "sha512-uoJb4iXaXKPDhqOZdnh/EuPGYVETRj2v4xmX9Wajn3S3q/LazaXbv4K+h8gmxzKr8mmjl9ErQC7dEwru81vsXA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.6.4.tgz", + "integrity": "sha512-2jbcxpqbJDafeZo9i2ha38qGyB0KISgCht6KDTyvR4LlWK922pflm9t8M1jY97uYgW3PNZZjCmQjzQ+IB/V4rQ==", "dev": true, "dependencies": { "chalk": "^4.1.2", @@ -5168,9 +5168,9 @@ } }, "node_modules/@sentry/cli": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.32.1.tgz", - "integrity": "sha512-MWkbkzZfnlE7s2pPbg4VozRSAeMlIObfZlTIou9ye6XnPt6ZmmxCLOuOgSKMv4sXg6aeqKNzMNiadThxCWyvPg==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.32.2.tgz", + "integrity": "sha512-m/6Z3FWu+rTd8jepVlJPKQhvbT8vCjt0N7BSWZiEUVW/8mhwAYJiwO0b+Ch/u4IqbBg1dp3805q5TFPl4AdrNw==", "hasInstallScript": true, "dependencies": { "https-proxy-agent": "^5.0.0", @@ -5186,19 +5186,19 @@ "node": ">= 10" }, "optionalDependencies": { - "@sentry/cli-darwin": "2.32.1", - "@sentry/cli-linux-arm": "2.32.1", - "@sentry/cli-linux-arm64": "2.32.1", - "@sentry/cli-linux-i686": "2.32.1", - "@sentry/cli-linux-x64": "2.32.1", - "@sentry/cli-win32-i686": "2.32.1", - "@sentry/cli-win32-x64": "2.32.1" + "@sentry/cli-darwin": "2.32.2", + "@sentry/cli-linux-arm": "2.32.2", + "@sentry/cli-linux-arm64": "2.32.2", + "@sentry/cli-linux-i686": "2.32.2", + "@sentry/cli-linux-x64": "2.32.2", + "@sentry/cli-win32-i686": "2.32.2", + "@sentry/cli-win32-x64": "2.32.2" } }, "node_modules/@sentry/cli-darwin": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.32.1.tgz", - "integrity": "sha512-z/lEwANTYPCzbWTZ2+eeeNYxRLllC8knd0h+vtAKlhmGw/fyc/N39cznIFyFu+dLJ6tTdjOWOeikHtKuS/7onw==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.32.2.tgz", + "integrity": "sha512-GDtePIavx3FKSRowdPdtIssahn46MfFFYNN+s7a9MjlhFwJtvC9A1bSDw7ksEtDaQolepUwmLPHaVe19y0T/zw==", "optional": true, "os": [ "darwin" @@ -5208,9 +5208,9 @@ } }, "node_modules/@sentry/cli-linux-arm": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.32.1.tgz", - "integrity": "sha512-m0lHkn+o4YKBq8KptGZvpT64FAwSl9mYvHZO9/ChnEGIJ/WyJwiN1X1r9JHVaW4iT5lD0Y5FAyq3JLkk0m0XHg==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.32.2.tgz", + "integrity": "sha512-u9s08wr8bDDqsAl6pk9iGGlOHtU+T8btU6voNKy71QzeIBpV9c8VVk/OnmP9aswp/ea4NY416yjnzcTvCrFKAw==", "cpu": [ "arm" ], @@ -5224,9 +5224,9 @@ } }, "node_modules/@sentry/cli-linux-arm64": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.32.1.tgz", - "integrity": "sha512-hsGqHYuecUl1Yhq4MhiRejfh1gNlmhyNPcQEoO/DDRBnGnJyEAdiDpKXJcc2e/lT9k40B55Ob2CP1SeY040T2w==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.32.2.tgz", + "integrity": "sha512-VECLVC1rLyvXk6rTVUfmfs4vhANjMgm4BVKGlA3rydmf2PJw2/NfipH3KeyijdE2vEoyLri+/6HH883pP0iniQ==", "cpu": [ "arm64" ], @@ -5240,9 +5240,9 @@ } }, "node_modules/@sentry/cli-linux-i686": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.32.1.tgz", - "integrity": "sha512-SuMLN1/ceFd3Q/B0DVyh5igjetTAF423txiABAHASenEev0lG0vZkRDXFclfgDtDUKRPmOXW7VDMirM3yZWQHQ==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.32.2.tgz", + "integrity": "sha512-XhofQz32OqLrQK1DEOsryhT7d29Df6VkccvxueGoIt2gpXEXtgRczsUwZjZqquDdkNCt+HPj9eUGcj8pY8JkmQ==", "cpu": [ "x86", "ia32" @@ -5257,9 +5257,9 @@ } }, "node_modules/@sentry/cli-linux-x64": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.32.1.tgz", - "integrity": "sha512-x4FGd6xgvFddz8V/dh6jii4wy9qjWyvYLBTz8Fhi9rIP+b8wQ3oxwHIdzntareetZP7C1ggx+hZheiYocNYVwA==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.32.2.tgz", + "integrity": "sha512-anyng4Qqt7zX4ZY4IzDH1RJWAVZNBe6sUHcuciNy7giCU3B4/XnxAHlwYmBSN5txpaumsWdstPgRKEUJG6AOSA==", "cpu": [ "x64" ], @@ -5273,9 +5273,9 @@ } }, "node_modules/@sentry/cli-win32-i686": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.32.1.tgz", - "integrity": "sha512-i6aZma9mFzR+hqMY5VliQZEX6ypP/zUjPK0VtIMYWs5cC6PsQLRmuoeJmy3Z7d4nlh0CdK5NPC813Ej6RY6/vg==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.32.2.tgz", + "integrity": "sha512-/auqx7QXG7F556fNK7vaB26pX7Far1CQMfI65iV4u/VWg6gV2WfvJWXB4iowhjqkYv56sZ+zOymLkEVF0R8wtg==", "cpu": [ "x86", "ia32" @@ -5289,9 +5289,9 @@ } }, "node_modules/@sentry/cli-win32-x64": { - "version": "2.32.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.32.1.tgz", - "integrity": "sha512-B58w/lRHLb4MUSjJNfMMw2cQykfimDCMLMmeK+1EiT2RmSeNQliwhhBxYcKk82a8kszH6zg3wT2vCea7LyPUyA==", + "version": "2.32.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.32.2.tgz", + "integrity": "sha512-w7hW2sEWVYQquqdILBSFhcVW+HdoyLqVPPkLPAXRSLTwBnuni9nQEIdXr0h/7db+K3cm7PvWndp5ixVyswLHZA==", "cpu": [ "x64" ], @@ -6263,9 +6263,9 @@ } }, "node_modules/antd": { - "version": "5.19.1", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.19.1.tgz", - "integrity": "sha512-ogGEUPaamSZ2HFGvlyLBNfxZ0c4uX5aqEIwMtmqRTPNjcLY/k+qdMmdWrMMiY1CDJ3j1in5wjzQTvREG+do65g==", + "version": "5.19.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.19.2.tgz", + "integrity": "sha512-377Sqqbr5PQj1rwLXqjSSAB23sNO6KCsFm0LKjU6OdpHktdDk7MYcqep3q/Azo7tHrqgE+EntxaTk4lY0dx8eA==", "dependencies": { "@ant-design/colors": "^7.1.0", "@ant-design/cssinjs": "^1.21.0", @@ -6296,7 +6296,7 @@ "rc-motion": "^2.9.2", "rc-notification": "~5.6.0", "rc-pagination": "~4.2.0", - "rc-picker": "~4.6.7", + "rc-picker": "~4.6.9", "rc-progress": "~4.0.0", "rc-rate": "~2.13.0", "rc-resize-observer": "^1.4.0", @@ -6311,7 +6311,7 @@ "rc-tooltip": "~6.2.0", "rc-tree": "~5.8.8", "rc-tree-select": "~5.22.1", - "rc-upload": "~4.5.2", + "rc-upload": "~4.6.0", "rc-util": "^5.43.0", "scroll-into-view-if-needed": "^3.1.0", "throttle-debounce": "^5.0.0" @@ -12086,6 +12086,11 @@ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -14414,9 +14419,9 @@ } }, "node_modules/rc-picker": { - "version": "4.6.7", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.6.7.tgz", - "integrity": "sha512-ZntxLH863jdNPZq2i6e2+1iXpRfYKHjNfUGgoObA1YExuWAnTCHpZzOkBuS43GnVcnp2MPDp78pH9OZJFd2hLw==", + "version": "4.6.9", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.6.9.tgz", + "integrity": "sha512-kwQq5xDNJ1VcX7pauLlVBiuQorpZGUwA/YczVJTO1e33YsTyDuVjaQkYAiAupXbEPUBCU3doGZo0J25HGq2ZOQ==", "dependencies": { "@babel/runtime": "^7.24.7", "@rc-component/trigger": "^2.0.0", @@ -14688,9 +14693,9 @@ } }, "node_modules/rc-upload": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", - "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.6.0.tgz", + "integrity": "sha512-Zr0DT1NHw/ApxrP7UAoxOtGaVYuzarrrCVr0ld7RiEFsKX07uFhE1EpCBxwL11ruFn89GMcshOKWp+s6FLyAlA==", "dependencies": { "@babel/runtime": "^7.18.3", "classnames": "^2.2.5", @@ -14889,39 +14894,25 @@ } }, "node_modules/react-grid-layout": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz", - "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.3.4.tgz", + "integrity": "sha512-sB3rNhorW77HUdOjB4JkelZTdJGQKuXLl3gNg+BI8gJkTScspL1myfZzW/EM0dLEn+1eH+xW+wNqk0oIM9o7cw==", "dependencies": { - "clsx": "^2.0.0", - "fast-equals": "^4.0.3", + "clsx": "^1.1.1", + "lodash.isequal": "^4.0.0", "prop-types": "^15.8.1", - "react-draggable": "^4.4.5", - "react-resizable": "^3.0.5", - "resize-observer-polyfill": "^1.5.1" + "react-draggable": "^4.0.0", + "react-resizable": "^3.0.4" }, "peerDependencies": { "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } }, - "node_modules/react-grid-layout/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/react-grid-layout/node_modules/fast-equals": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==" - }, "node_modules/react-i18next": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.2.tgz", - "integrity": "sha512-FSIcJy6oauJbGEXfhUgVeLzvWBhIBIS+/9c6Lj4niwKZyGaGb4V4vUbATXSlsHJDXXB+ociNxqFNiFuV1gmoqg==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.3.tgz", + "integrity": "sha512-wZnpfunU6UIAiJ+bxwOiTmBOAaB14ha97MjOEnLGac2RJ+h/maIYXZuTHlmyqQVX1UVHmU1YDTQ5vxLmwfXTjw==", "dependencies": { "@babel/runtime": "^7.23.9", "html-parse-stringify": "^3.0.1" @@ -17687,9 +17678,9 @@ } }, "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", "dev": true, "dependencies": { "esbuild": "^0.21.3", diff --git a/client/package.json b/client/package.json index 05c8d2be5..21dc5ffa3 100644 --- a/client/package.json +++ b/client/package.json @@ -8,18 +8,18 @@ "private": true, "proxy": "http://localhost:4000", "dependencies": { - "@ant-design/pro-layout": "^7.19.8", + "@ant-design/pro-layout": "^7.19.10", "@apollo/client": "^3.10.8", "@emotion/is-prop-valid": "^1.2.2", "@fingerprintjs/fingerprintjs": "^4.4.3", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.2.6", - "@sentry/cli": "^2.32.1", + "@sentry/cli": "^2.32.2", "@sentry/react": "^7.114.0", "@splitsoftware/splitio-react": "^1.12.0", "@tanem/react-nprogress": "^5.0.51", "@vitejs/plugin-react": "^4.3.1", - "antd": "^5.19.1", + "antd": "^5.19.2", "apollo-link-logger": "^2.0.1", "apollo-link-sentry": "^3.3.0", "autosize": "^6.0.1", @@ -53,8 +53,8 @@ "react-dom": "^18.3.1", "react-drag-listview": "^2.0.0", "react-grid-gallery": "^1.0.1", - "react-grid-layout": "^1.4.4", - "react-i18next": "^14.1.2", + "react-grid-layout": "1.3.4", + "react-i18next": "^14.1.3", "react-icons": "^5.2.1", "react-image-lightbox": "^5.1.4", "react-joyride": "^2.8.2", @@ -131,7 +131,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-react": "^7.24.7", - "@dotenvx/dotenvx": "^1.6.2", + "@dotenvx/dotenvx": "^1.6.4", "@emotion/babel-plugin": "^11.11.0", "@emotion/react": "^11.11.4", "@sentry/webpack-plugin": "^2.21.1", @@ -148,7 +148,7 @@ "react-error-overlay": "6.0.11", "redux-logger": "^3.0.6", "source-map-explorer": "^2.5.3", - "vite": "^5.3.3", + "vite": "^5.3.4", "vite-plugin-babel": "^1.2.0", "vite-plugin-eslint": "^1.8.1", "vite-plugin-legacy": "^2.1.0", diff --git a/client/src/components/production-board-kanban/production-board-kanban.container.jsx b/client/src/components/production-board-kanban/production-board-kanban.container.jsx index 236cf9099..c67d97c1f 100644 --- a/client/src/components/production-board-kanban/production-board-kanban.container.jsx +++ b/client/src/components/production-board-kanban/production-board-kanban.container.jsx @@ -1,14 +1,8 @@ -import { useApolloClient, useQuery, useSubscription } from "@apollo/client"; -import _ from "lodash"; -import React, { useEffect, useState, useCallback, useMemo } from "react"; +import { useQuery, useSubscription } from "@apollo/client"; +import React, { useEffect, useMemo } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; -import { - QUERY_EXACT_JOB_IN_PRODUCTION, - QUERY_EXACT_JOBS_IN_PRODUCTION, - QUERY_JOBS_IN_PRODUCTION, - SUBSCRIPTION_JOBS_IN_PRODUCTION -} from "../../graphql/jobs.queries"; +import { QUERY_JOBS_IN_PRODUCTION, SUBSCRIPTION_JOBS_IN_PRODUCTION } from "../../graphql/jobs.queries"; import { QUERY_KANBAN_SETTINGS } from "../../graphql/user.queries"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; import ProductionBoardKanbanComponent from "./production-board-kanban.component"; @@ -18,64 +12,26 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser }); -export function ProductionBoardKanbanContainer({ bodyshop, currentUser }) { - const client = useApolloClient(); - const [joblist, setJoblist] = useState([]); - +function ProductionBoardKanbanContainer({ bodyshop, currentUser }) { const { refetch, loading, data } = useQuery(QUERY_JOBS_IN_PRODUCTION, { pollInterval: 3600000, fetchPolicy: "network-only", - nextFetchPolicy: "network-only" + nextFetchPolicy: "network-only", + onError: (error) => console.error(`Error fetching jobs in production: ${error.message}`) }); const { data: updatedJobs } = useSubscription(SUBSCRIPTION_JOBS_IN_PRODUCTION); const { loading: associationSettingsLoading, data: associationSettings } = useQuery(QUERY_KANBAN_SETTINGS, { - variables: { email: currentUser.email } + variables: { email: currentUser.email }, + onError: (error) => console.error(`Error fetching Kanban settings: ${error.message}`) }); - const getUpdatedJobData = useCallback( - async (jobId) => { - await client.query({ - query: QUERY_EXACT_JOB_IN_PRODUCTION, - variables: { id: jobId } - }); - }, - [client] - ); - - const getUpdatedJobsData = useCallback( - async (jobIds) => { - await client.query({ - query: QUERY_EXACT_JOBS_IN_PRODUCTION, - variables: { ids: jobIds } - }); - }, - [client] - ); - useEffect(() => { - if (!data?.jobs) return; - setJoblist(data.jobs.map((j) => ({ id: j.id, updated_at: j.updated_at }))); - }, [data]); - - useEffect(() => { - if (!updatedJobs || joblist.length === 0) return; - - const jobDiff = _.differenceWith( - joblist, - updatedJobs.jobs, - (a, b) => a.id === b.id && a.updated_at === b.updated_at - ); - - if (jobDiff.length > 1) { - getUpdatedJobsData(jobDiff.map((j) => j.id)); - } else if (jobDiff.length === 1) { - getUpdatedJobData(jobDiff[0].id); + if (updatedJobs) { + refetch().catch((err) => console.error(`Error re-fetching jobs in production: ${err.message}`)); } - - setJoblist(updatedJobs.jobs); - }, [updatedJobs, joblist, getUpdatedJobData, getUpdatedJobsData]); + }, [updatedJobs, refetch]); const filteredAssociationSettings = useMemo(() => { return associationSettings?.associations[0] || null; @@ -91,4 +47,4 @@ export function ProductionBoardKanbanContainer({ bodyshop, currentUser }) { ); } -export default connect(mapStateToProps, null)(ProductionBoardKanbanContainer); +export default connect(mapStateToProps)(ProductionBoardKanbanContainer); diff --git a/package-lock.json b/package-lock.json index 38749546f..bfc978154 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "phone": "^3.1.49", "recursive-diff": "^1.0.9", "rimraf": "^6.0.1", - "soap": "^1.0.4", + "soap": "^1.1.0", "socket.io": "^4.7.5", "ssh2-sftp-client": "^10.0.3", "twilio": "^4.23.0", @@ -2484,6 +2484,14 @@ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" }, + "node_modules/@xmldom/is-dom-node": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", + "integrity": "sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==", + "engines": { + "node": ">= 16" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -3429,9 +3437,9 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dependencies": { "ms": "2.1.2" }, @@ -6120,9 +6128,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "node_modules/scmp": { "version": "2.1.0", @@ -6340,34 +6348,25 @@ } }, "node_modules/soap": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/soap/-/soap-1.0.4.tgz", - "integrity": "sha512-NOjmUAFI18HqL/tVND1wr27QGOQNOp7u6kS28zIAyiMQeVHOa00HDtI6HrUKi5hmPx+QaHspTYYsMnrdtRNIlA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/soap/-/soap-1.1.0.tgz", + "integrity": "sha512-5C9PT00v9KygPviQCSuwCobeERV+zQV0t0qUPW6kAw3Vs69UmG64h2zJhMcK/NNOMmUnVEOnHevMfCXc68O2Vw==", "dependencies": { - "axios": "^1.6.8", + "axios": "^1.7.2", "axios-ntlm": "^1.4.2", - "debug": "^4.3.2", - "formidable": "^3.2.4", + "debug": "^4.3.5", + "formidable": "^3.5.1", "get-stream": "^6.0.1", "lodash": "^4.17.21", - "sax": ">=0.6", + "sax": "^1.4.1", "strip-bom": "^3.0.0", - "uuid": "^8.3.2", - "whatwg-mimetype": "3.0.0", - "xml-crypto": "^3.0.0" + "whatwg-mimetype": "4.0.0", + "xml-crypto": "^6.0.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/soap/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/socket.io": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", @@ -7248,11 +7247,11 @@ } }, "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-url": { @@ -7388,15 +7387,16 @@ } }, "node_modules/xml-crypto": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-3.2.0.tgz", - "integrity": "sha512-qVurBUOQrmvlgmZqIVBqmb06TD2a/PpEUfFPgD7BuBfjmoH4zgkqaWSIJrnymlCvM2GGt9x+XtJFA+ttoAufqg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.0.0.tgz", + "integrity": "sha512-L3RgnkaDrHaYcCnoENv4Idzt1ZRj5U1z1BDH98QdDTQfssScx8adgxhd9qwyYo+E3fXbQZjEQH7aiXHLVgxGvw==", "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "xpath": "0.0.32" + "@xmldom/is-dom-node": "^1.0.1", + "@xmldom/xmldom": "^0.8.10", + "xpath": "^0.0.33" }, "engines": { - "node": ">=4.0.0" + "node": ">=16" } }, "node_modules/xml2js": { @@ -7442,9 +7442,9 @@ } }, "node_modules/xpath": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", - "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", + "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", "engines": { "node": ">=0.6.0" } diff --git a/package.json b/package.json index b4df10dfe..152f06ac5 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "phone": "^3.1.49", "recursive-diff": "^1.0.9", "rimraf": "^6.0.1", - "soap": "^1.0.4", + "soap": "^1.1.0", "socket.io": "^4.7.5", "ssh2-sftp-client": "^10.0.3", "twilio": "^4.23.0",