From e63f52e2fbdb24c12660b3b8a3999025cc1b8712 Mon Sep 17 00:00:00 2001 From: Thegan Govender Date: Sat, 11 Nov 2023 17:06:44 +0200 Subject: [PATCH] Added .dockerignore file to speed up local image builds Changed Dockerfile as previos file was failing to build consistently removed some unused packages added compression to json payloads changed vite ports to 3000 to not break existing builds backend and frontend both use port 3000 now --- .dockerignore | 8 + Dockerfile | 31 +- backend/server.js | 5 +- docker-compose.yml | 1 + package-lock.json | 1176 +------------------------------------------- package.json | 6 +- vite.config.js | 20 +- 7 files changed, 43 insertions(+), 1204 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e6b8a45 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +node_modules +npm-debug.log +Dockerfile +.dockerignore +.git +.gitignore +.vscode +.github \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index c259b16..90151e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,21 @@ -# pull the Node.js Docker image -FROM node:lts-alpine +# Stage 1: Build the application +FROM node:slim AS builder -# update the package index -RUN apk update && apk add --no-cache tzdata +WORKDIR /app -# set timezone data -ENV TZ=Asia/Kuala_Lumpur +COPY package*.json ./ +RUN npm cache clean --force +RUN npm install -# create app directory -WORKDIR /usr/src/app +COPY ./ ./ -# bundle app source -COPY . . +# Stage 2: Create the production image +FROM node:slim -# install node_modules, build client React JS, delete node_modules server side, prune image for production, clear npm cache, delete unnecessary folder client side -RUN npm install && \ - npm run build && \ - npm cache clean --force && \ - rm -rf src +WORKDIR /app + +COPY --from=builder /app . -# app run on port 3000 EXPOSE 3000 -# run the server -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "run", "start"] diff --git a/backend/server.js b/backend/server.js index 4d4433d..c783ecd 100644 --- a/backend/server.js +++ b/backend/server.js @@ -3,6 +3,7 @@ require('dotenv').config(); const http = require('http'); const path = require('path'); const express = require('express'); +const compression = require('compression'); const cors = require('cors'); const jwt = require('jsonwebtoken'); const knex = require('knex'); @@ -35,7 +36,7 @@ const { setupWebSocketServer } = require('./ws'); const app = express(); const db = knex(knexConfig.development); -const PORT = process.env.PORT || 3003; +const PORT = 3000; const LISTEN_IP = '127.0.0.1'; const JWT_SECRET = process.env.JWT_SECRET; @@ -49,6 +50,8 @@ app.use(express.json()); // middleware to parse JSON request bodies app.use(cors()); app.set('trust proxy', 1); app.disable('x-powered-by'); +app.use(compression()); + // initiate routes app.use('/auth', authRouter, () => { diff --git a/docker-compose.yml b/docker-compose.yml index 63b1b4f..e686d99 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,7 @@ services: POSTGRES_IP: jellystat-db POSTGRES_PORT: 5432 JWT_SECRET: 'my-secret-jwt-key' + TZ: Africa/Johannesburg ports: - "3000:3000" depends_on: diff --git a/package-lock.json b/package-lock.json index cf82f88..f4b0035 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,10 +13,6 @@ "@jellyfin/sdk": "^0.8.2", "@mui/material": "^5.12.2", "@mui/x-data-grid": "^6.2.1", - "@nivo/api": "^0.74.1", - "@nivo/bar": "^0.80.0", - "@nivo/core": "^0.80.0", - "@nivo/line": "^0.80.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -25,6 +21,7 @@ "axios-cache-interceptor": "^1.3.1", "bootstrap": "^5.2.3", "compare-versions": "^6.0.0-rc.1", + "compression": "^1.7.4", "config": "^3.3.9", "cors": "^2.8.5", "crypto-js": "^4.1.1", @@ -4467,799 +4464,6 @@ "node": ">=4.0" } }, - "node_modules/@nivo/annotations": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/annotations/-/annotations-0.80.0.tgz", - "integrity": "sha512-bC9z0CLjU07LULTMWsqpjovRtHxP7n8oJjqBQBLmHOGB4IfiLbrryBfu9+aEZH3VN2jXHhdpWUz+HxeZzOzsLg==", - "dependencies": { - "@nivo/colors": "0.80.0", - "@react-spring/web": "9.4.5", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/api": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/api/-/api-0.74.1.tgz", - "integrity": "sha512-DXrAnh8+ohB3khYinmiz/IKhO9KcWr+R2lgcVdsBGo68lJ+syFGckT9MsXvKN9ye8lFXQWxGThgGZoZPHdoPOA==", - "dependencies": { - "@nivo/bar": "0.74.1", - "@nivo/bullet": "0.74.1", - "@nivo/calendar": "0.74.1", - "@nivo/chord": "0.74.1", - "@nivo/circle-packing": "0.74.1", - "@nivo/core": "0.74.1", - "@nivo/generators": "0.74.0", - "@nivo/heatmap": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/line": "0.74.1", - "@nivo/parallel-coordinates": "0.74.1", - "@nivo/pie": "0.74.1", - "@nivo/radar": "0.74.1", - "@nivo/sankey": "0.74.1", - "@nivo/scatterplot": "0.74.1", - "@nivo/stream": "0.74.1", - "@nivo/sunburst": "0.74.1", - "@nivo/treemap": "0.74.1", - "@nivo/voronoi": "0.74.1", - "@nivo/waffle": "0.74.1", - "body-parser": "^1.17.2", - "compression": "^1.7.0", - "cors": "^2.8.4", - "express": "^4.15.4", - "express-winston": "^2.4.0", - "joi": "^14.3.0", - "lodash": "^4.17.21", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "uuid": "^3.1.0", - "winston": "^2.3.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/annotations": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/annotations/-/annotations-0.74.1.tgz", - "integrity": "sha512-xeaSRrsBNJRJ7nenh6b7PpBoAbNamzKLuul4P4ItPaCJRdEbtHtuRDZM67H4zR11PORusAAd8sB1uY4arvrt7Q==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@react-spring/web": "9.3.1", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/arcs": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/arcs/-/arcs-0.74.1.tgz", - "integrity": "sha512-hPwzl0VcJi77Dz09XjqJEzd9aRYYyjBApA8a8u+qKJVaJ61PdIg4bp5HHXeKsLaVqJg5ukO+n2uGPUaw0YQDqw==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/axes": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/axes/-/axes-0.74.1.tgz", - "integrity": "sha512-kwzjuhB5W204rrqO0mqqXtOvoHt4APNUJxylw5OGQDg9L8f5U28TPq+bGkar+vpKMtpFjQdOiwUoMPAq7RyCYQ==", - "dependencies": { - "@nivo/scales": "0.74.0", - "@react-spring/web": "9.3.1", - "d3-format": "^1.4.4", - "d3-time-format": "^3.0.0" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/bar": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/bar/-/bar-0.74.1.tgz", - "integrity": "sha512-qjeww0HXwm5uxEHKE2mHTKXKScnuEd9RhUw6JGjmJOL6No/iWFI2xO5aPEFNG50l8F4MbFcJu8L4uYSWIEmE1g==", - "dependencies": { - "@nivo/annotations": "0.74.1", - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/scales": "0.74.0", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3", - "d3-shape": "^1.2.2", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/bullet": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/bullet/-/bullet-0.74.1.tgz", - "integrity": "sha512-DrihiKouR2YUzdWLYSXnSCs4Bfk06DDK0Oj8z5UrmAOVcJCvAWEBDX++roSkjIaEGzWHY+q4j28ZDegm3uoM9A==", - "dependencies": { - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/calendar": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/calendar/-/calendar-0.74.1.tgz", - "integrity": "sha512-5ThaZpU43sdw8MHolp6YGqfrZQNwr/QstMPnTi05xwLbUwAk0v1pBeoPzy/XkJy6nOjJdouZJX7PcrrZWtciIg==", - "dependencies": { - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "d3-scale": "^3.2.3", - "d3-time": "^1.0.10", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/chord": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/chord/-/chord-0.74.1.tgz", - "integrity": "sha512-Cfp5ObJebuiJJ+ILdN2sBITGXYTaoCdsPlNSvr8D1879GjAqln2t83vzx0qysbeY3K7gRRKJhXOh5dr6ZMXhnA==", - "dependencies": { - "@nivo/arcs": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "d3-chord": "^1.0.6", - "d3-shape": "^1.3.5", - "lodash": "^4.17.21", - "react-motion": "^0.5.2" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/chord/node_modules/react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "dependencies": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/circle-packing": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/circle-packing/-/circle-packing-0.74.1.tgz", - "integrity": "sha512-X1OkZAKmwFQ+ysDo6gci7RXEeBPUcZSq/H51w4uCt+43bW6FIR1NpS9xuCdfb8Waw01nM1JJ5uO1Pe71ZEih6g==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-hierarchy": "^1.1.8", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/colors": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/colors/-/colors-0.74.1.tgz", - "integrity": "sha512-QS8++QPBC1eQoGVfVy4DHjeAzpWMAkRLfSSTQ9cDDZtzM5Y4AE6AD1P9iXX9987lY080+vEqIu9hgqkoey4V3g==", - "dependencies": { - "d3-color": "^2.0.0", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^2.0.0", - "lodash": "^4.17.21", - "react-motion": "^0.5.2" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/colors/node_modules/react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "dependencies": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/core": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/core/-/core-0.74.1.tgz", - "integrity": "sha512-uwSxCSky95Yc3FLZIqwm27ZHXII25osQGIlSFgehsed/5Zl3RRsQYzffzA+QOcFxLJTQcUx1oUmof0zxbUIbtA==", - "dependencies": { - "@nivo/recompose": "0.74.0", - "@react-spring/web": "9.3.1", - "d3-color": "^2.0.0", - "d3-format": "^1.4.4", - "d3-hierarchy": "^1.1.8", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^2.0.0", - "d3-shape": "^1.3.5", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "@nivo/tooltip": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/heatmap": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/heatmap/-/heatmap-0.74.1.tgz", - "integrity": "sha512-ajeFhar3KFM5kHfGEHdozjpU1rf0YWa14hI81OVK49MVvwVkgCKKNAxwr1ro1Vqua+KSb1VeVwa6P5Sj139eVg==", - "dependencies": { - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/legends": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/legends/-/legends-0.74.1.tgz", - "integrity": "sha512-ATxAVcX5p/gbcTZ2NfJg7c0GDAyylkFRaViXuVH0+HJT5OHdesvbF/W9x0ieO1XoV6iWDcubkxnsscYFr1UyFA==", - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/line": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/line/-/line-0.74.1.tgz", - "integrity": "sha512-vtHnMViVScgHQDtlrIugS4XJRDNy4u+czsDrV1zToBI98u2PAOs13+SmvBlKIipKCXvU+2pzZNqNxSpXETHVCA==", - "dependencies": { - "@nivo/annotations": "0.74.1", - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/scales": "0.74.0", - "@nivo/tooltip": "0.74.1", - "@nivo/voronoi": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/parallel-coordinates": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/parallel-coordinates/-/parallel-coordinates-0.74.1.tgz", - "integrity": "sha512-qdZtNShuc+u3rbKdFJDGXLSW/DHqk0ugyUEyB2CM6myz3lpkFk8SEU1peDbTELoJ62U2JZv+S8r2MOYeK/Qr+w==", - "dependencies": { - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/pie": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/pie/-/pie-0.74.1.tgz", - "integrity": "sha512-XS+4iQob8TwwN0pCQW713yr/RjO1VsOYNtNhPEs96CUl4wLpQVmBN/fl7hsuhsGttQq2nRH3ShbGFEQaKBr2uQ==", - "dependencies": { - "@nivo/arcs": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/radar": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/radar/-/radar-0.74.1.tgz", - "integrity": "sha512-hd7pCLMxp0+MYe7bJk8dEcxktSD91HOOiFgrOLr900iRVVxF841RIaCOTSZ5yqhAMqqxo69VJ+0B/r1G1esS9A==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/recompose": { - "version": "0.74.0", - "resolved": "https://registry.npmjs.org/@nivo/recompose/-/recompose-0.74.0.tgz", - "integrity": "sha512-qC9gzGvDIxocrJoozDjqqffOwDpuEZijeMV59KExnztCwIpQbIYVBsDdpvL+tXfWausigSlnGILGfereXJTLUQ==", - "dependencies": { - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/sankey": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/sankey/-/sankey-0.74.1.tgz", - "integrity": "sha512-pr1YZagoTgtcwjAOQf7FTSN3fiM3hiHJ/PO2WJ1l1uy37YDHuwG2MAypmITFKT2i3zR/PWeCB+aWA5eN7xEeeQ==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-sankey": "^0.12.3", - "d3-shape": "^1.3.5", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/scales": { - "version": "0.74.0", - "resolved": "https://registry.npmjs.org/@nivo/scales/-/scales-0.74.0.tgz", - "integrity": "sha512-5mER71NgZGdgs8X2PgilBpAWMMGtTXrUuYOBQWDKDMgtc83MU+mphhiYfLv5e6ViZyUB5ebfEkfeIgStLqrcEA==", - "dependencies": { - "d3-scale": "^3.2.3", - "d3-time": "^1.0.11", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/scatterplot": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/scatterplot/-/scatterplot-0.74.1.tgz", - "integrity": "sha512-yyE7yRqVABu5+mQLdfvFgy6pMQ3/AbE/TmoqWNT3Tf2bcUKh3c9CDxjtavmdPPGI239iXYmoTiQVZaD+eN+Bpw==", - "dependencies": { - "@nivo/annotations": "0.74.1", - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/scales": "0.74.0", - "@nivo/tooltip": "0.74.1", - "@nivo/voronoi": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3", - "d3-shape": "^1.3.5", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/stream": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/stream/-/stream-0.74.1.tgz", - "integrity": "sha512-Z1cW4Rj4OB4mrKStAQ8SX/0AodJ3ecsV0QjK+b5Xm2cF8cpJXChIKNQ/qQeARZFuRN82QZuRNlB2dZuD2iqJPA==", - "dependencies": { - "@nivo/axes": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/scales": "0.74.0", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-scale": "^3.2.3", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/sunburst": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/sunburst/-/sunburst-0.74.1.tgz", - "integrity": "sha512-ZBzz8nGsj5MECk2g8RDhEP4pdc3JPQj/3JQDQ9VO4MRH5JmT1FeZcuYlMD3lIs5/TjRYR7bDSwi4L05VjxH0AA==", - "dependencies": { - "@nivo/arcs": "0.74.1", - "@nivo/colors": "0.74.1", - "@nivo/tooltip": "0.74.1", - "d3-hierarchy": "^1.1.8", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/tooltip": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/tooltip/-/tooltip-0.74.1.tgz", - "integrity": "sha512-7Z/uHB+u1srlXaQnnywSVY8LOG6TiZpZUu+KRkV5UaOv0RcUqjgAz7vSSoJQIg19s6gOw8YDqm5sgHRtliQ3Wg==", - "dependencies": { - "@react-spring/web": "9.3.1" - }, - "peerDependencies": { - "@nivo/core": "0.74.1" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/treemap": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/treemap/-/treemap-0.74.1.tgz", - "integrity": "sha512-rcr9NPDbGagRUmpY0OJyQTey81y2yNLcJ0BG77O5Xv6Wgm9haYC9QCWN8wURLnLhOAY44+Cr2pQ5CcgNcZCyJg==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@nivo/tooltip": "0.74.1", - "@react-spring/web": "9.3.1", - "d3-hierarchy": "^1.1.8", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/voronoi": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/voronoi/-/voronoi-0.74.1.tgz", - "integrity": "sha512-1meqmw6wFNthg92WW9dsthJbUak+VuZXXMQpN0/qqZg4VHdW+qxzr6MM4WHLlEokICHsbhMCHSUIR2I41iHgYg==", - "dependencies": { - "d3-delaunay": "^5.3.0", - "d3-scale": "^3.2.3" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/waffle": { - "version": "0.74.1", - "resolved": "https://registry.npmjs.org/@nivo/waffle/-/waffle-0.74.1.tgz", - "integrity": "sha512-3oe8Hwlzqhu1w1z2rWfMV9wO+dO5IPNYFWy3XKhDvvaWRXQs2h+tC6YCcUmp2zzYTB9m94SvFJSyff063w1DWw==", - "dependencies": { - "@nivo/colors": "0.74.1", - "@nivo/legends": "0.74.1", - "@nivo/recompose": "0.74.0", - "@nivo/tooltip": "0.74.1", - "lodash": "^4.17.21", - "react-motion": "^0.5.2" - }, - "peerDependencies": { - "@nivo/core": "0.74.1", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 18.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@nivo/waffle/node_modules/react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "dependencies": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@react-spring/animated": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.3.2.tgz", - "integrity": "sha512-pBvKydRHbTzuyaeHtxGIOvnskZxGo/S5/YK1rtYm88b9NQZuZa95Rgd3O0muFL+99nvBMBL8cvQGD0UJmsqQsg==", - "dependencies": { - "@react-spring/shared": "~9.3.0", - "@react-spring/types": "~9.3.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@react-spring/core": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.3.2.tgz", - "integrity": "sha512-kMRjkgdQ6LJ0lmb/wQlONpghaMT83UxglXHJC6m9kZS/GKVmN//TYMEK85xN1rC5Gg+BmjG61DtLCSkkLDTfNw==", - "dependencies": { - "@react-spring/animated": "~9.3.0", - "@react-spring/shared": "~9.3.0", - "@react-spring/types": "~9.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@react-spring/rafz": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.3.2.tgz", - "integrity": "sha512-YtqNnAYp5bl6NdnDOD5TcYS40VJmB+Civ4LPtcWuRPKDAOa/XAf3nep48r0wPTmkK936mpX8aIm7h+luW59u5A==" - }, - "node_modules/@nivo/api/node_modules/@react-spring/shared": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.3.2.tgz", - "integrity": "sha512-ypGQQ8w7mWnrELLon4h6mBCBxdd8j1pgLzmHXLpTC/f4ya2wdP+0WIKBWXJymIf+5NiTsXgSJra5SnHP5FBY+A==", - "dependencies": { - "@react-spring/rafz": "~9.3.0", - "@react-spring/types": "~9.3.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@nivo/api/node_modules/@react-spring/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.3.2.tgz", - "integrity": "sha512-u+IK9z9Re4hjNkBYKebZr7xVDYTai2RNBsI4UPL/k0B6lCNSwuqWIXfKZUDVlMOeZHtDqayJn4xz6HcSkTj3FQ==" - }, - "node_modules/@nivo/api/node_modules/@react-spring/web": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.3.1.tgz", - "integrity": "sha512-sisZIgFGva/Z+xKWPSfXpukF0AP3kR9ALTxlHL87fVotMUCJX5vtH/YlVcywToEFwTHKt3MpI5Wy2M+vgVEeaw==", - "dependencies": { - "@react-spring/animated": "~9.3.0", - "@react-spring/core": "~9.3.0", - "@react-spring/shared": "~9.3.0", - "@react-spring/types": "~9.3.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@nivo/api/node_modules/performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==" - }, - "node_modules/@nivo/api/node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nivo/api/node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/@nivo/api/node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/@nivo/axes": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/axes/-/axes-0.80.0.tgz", - "integrity": "sha512-AsUyaSHGwQVSEK8QXpsn8X+poZxvakLMYW7crKY1xTGPNw+SU4SSBohPVumm2jMH3fTSLNxLhAjWo71GBJXfdA==", - "dependencies": { - "@nivo/scales": "0.80.0", - "@react-spring/web": "9.4.5", - "d3-format": "^1.4.4", - "d3-time-format": "^3.0.0" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/bar": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/bar/-/bar-0.80.0.tgz", - "integrity": "sha512-woE/S12Sp+RKQeOHtp302WXfy5usj73cV/gjP95PzJxMv+Rn01i1Uwys3BILzc9h4+OxYuWTFqLADAySAmi7qQ==", - "dependencies": { - "@nivo/annotations": "0.80.0", - "@nivo/axes": "0.80.0", - "@nivo/colors": "0.80.0", - "@nivo/legends": "0.80.0", - "@nivo/scales": "0.80.0", - "@nivo/tooltip": "0.80.0", - "@react-spring/web": "9.4.5", - "d3-scale": "^3.2.3", - "d3-shape": "^1.3.5", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/colors": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/colors/-/colors-0.80.0.tgz", - "integrity": "sha512-T695Zr411FU4RPo7WDINOAn8f79DPP10SFJmDdEqELE+cbzYVTpXqLGZ7JMv88ko7EOf9qxLQgcBqY69rp9tHQ==", - "dependencies": { - "d3-color": "^2.0.0", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^2.0.0", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/core": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/core/-/core-0.80.0.tgz", - "integrity": "sha512-6caih0RavXdWWSfde+rC2pk17WrX9YQlqK26BrxIdXzv3Ydzlh5SkrC7dR2TEvMGBhunzVeLOfiC2DWT1S8CFg==", - "dependencies": { - "@nivo/recompose": "0.80.0", - "@react-spring/web": "9.4.5", - "d3-color": "^2.0.0", - "d3-format": "^1.4.4", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^2.0.0", - "d3-shape": "^1.3.5", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@nivo/tooltip": "0.80.0", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/generators": { - "version": "0.74.0", - "resolved": "https://registry.npmjs.org/@nivo/generators/-/generators-0.74.0.tgz", - "integrity": "sha512-UYXMq8yg1hEO2cqMmwwQAUnK9DJoBfegACZFOrHtI28eERXFKEKHbz4iy20EJYBYmstHlHkFRyK7uvz24Hggmw==", - "dependencies": { - "d3-random": "^1.1.2", - "d3-time": "^1.0.10", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "node_modules/@nivo/legends": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/legends/-/legends-0.80.0.tgz", - "integrity": "sha512-h0IUIPGygpbKIZZZWIxkkxOw4SO0rqPrqDrykjaoQz4CvL4HtLIUS3YRA4akKOVNZfS5agmImjzvIe0s3RvqlQ==", - "peerDependencies": { - "@nivo/core": "0.80.0", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/line": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/line/-/line-0.80.0.tgz", - "integrity": "sha512-6UAD/y74qq3DDRnVb+QUPvXYojxMtwXMipGSNvCGk8omv1QZNTaUrbV+eQacvn9yh//a0yZcWipnpq0tGJyJCA==", - "dependencies": { - "@nivo/annotations": "0.80.0", - "@nivo/axes": "0.80.0", - "@nivo/colors": "0.80.0", - "@nivo/legends": "0.80.0", - "@nivo/scales": "0.80.0", - "@nivo/tooltip": "0.80.0", - "@nivo/voronoi": "0.80.0", - "@react-spring/web": "9.4.5", - "d3-shape": "^1.3.5" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/recompose": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/recompose/-/recompose-0.80.0.tgz", - "integrity": "sha512-iL3g7j3nJGD9+mRDbwNwt/IXDXH6E29mhShY1I7SP91xrfusZV9pSFf4EzyYgruNJk/2iqMuaqn+e+TVFra44A==", - "dependencies": { - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/scales": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/scales/-/scales-0.80.0.tgz", - "integrity": "sha512-4y2pQdCg+f3n4TKXC2tYuq71veZM+xPRQbOTgGYJpuBvMc7pQsXF9T5z7ryeIG9hkpXkrlyjecU6XcAG7tLSNg==", - "dependencies": { - "d3-scale": "^3.2.3", - "d3-time": "^1.0.11", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "node_modules/@nivo/tooltip": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/tooltip/-/tooltip-0.80.0.tgz", - "integrity": "sha512-qGmrreRwnCsYjn/LAuwBtxBn/tvG8y+rwgd4gkANLBAoXd3bzJyvmkSe+QJPhUG64bq57ibDK+lO2pC48a3/fw==", - "dependencies": { - "@react-spring/web": "9.4.5" - }, - "peerDependencies": { - "@nivo/core": "0.80.0" - } - }, - "node_modules/@nivo/voronoi": { - "version": "0.80.0", - "resolved": "https://registry.npmjs.org/@nivo/voronoi/-/voronoi-0.80.0.tgz", - "integrity": "sha512-zaJV3I3cRu1gHpsXCIEvp6GGlGY8P7D9CwAVCjYDGrz3W/+GKN0kA7qGyHTC97zVxJtfefxSPlP/GtOdxac+qw==", - "dependencies": { - "d3-delaunay": "^5.3.0", - "d3-scale": "^3.2.3" - }, - "peerDependencies": { - "@nivo/core": "0.80.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -5484,73 +4688,6 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, - "node_modules/@react-spring/animated": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.5.tgz", - "integrity": "sha512-KWqrtvJSMx6Fj9nMJkhTwM9r6LIriExDRV6YHZV9HKQsaolUFppgkOXpC+rsL1JEtEvKv6EkLLmSqHTnuYjiIA==", - "dependencies": { - "@react-spring/shared": "~9.4.5", - "@react-spring/types": "~9.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || >=17.0.0 || >=18.0.0" - } - }, - "node_modules/@react-spring/core": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.4.5.tgz", - "integrity": "sha512-83u3FzfQmGMJFwZLAJSwF24/ZJctwUkWtyPD7KYtNagrFeQKUH1I05ZuhmCmqW+2w1KDW1SFWQ43RawqfXKiiQ==", - "dependencies": { - "@react-spring/animated": "~9.4.5", - "@react-spring/rafz": "~9.4.5", - "@react-spring/shared": "~9.4.5", - "@react-spring/types": "~9.4.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || >=17.0.0 || >=18.0.0" - } - }, - "node_modules/@react-spring/rafz": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.4.5.tgz", - "integrity": "sha512-swGsutMwvnoyTRxvqhfJBtGM8Ipx6ks0RkIpNX9F/U7XmyPvBMGd3GgX/mqxZUpdlsuI1zr/jiYw+GXZxAlLcQ==" - }, - "node_modules/@react-spring/shared": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.4.5.tgz", - "integrity": "sha512-JhMh3nFKsqyag0KM5IIM8BQANGscTdd0mMv3BXsUiMZrcjQTskyfnv5qxEeGWbJGGar52qr5kHuBHtCjQOzniA==", - "dependencies": { - "@react-spring/rafz": "~9.4.5", - "@react-spring/types": "~9.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || >=17.0.0 || >=18.0.0" - } - }, - "node_modules/@react-spring/types": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.4.5.tgz", - "integrity": "sha512-mpRIamoHwql0ogxEUh9yr4TP0xU5CWyZxVQeccGkHHF8kPMErtDXJlxyo0lj+telRF35XNihtPTWoflqtyARmg==" - }, - "node_modules/@react-spring/web": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.4.5.tgz", - "integrity": "sha512-NGAkOtKmOzDEctL7MzRlQGv24sRce++0xAY7KlcxmeVkR7LRSGkoXHaIfm9ObzxPMcPHQYQhf3+X9jepIFNHQA==", - "dependencies": { - "@react-spring/animated": "~9.4.5", - "@react-spring/core": "~9.4.5", - "@react-spring/shared": "~9.4.5", - "@react-spring/types": "~9.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || >=17.0.0 || >=18.0.0", - "react-dom": "^16.8.0 || >=17.0.0 || >=18.0.0" - } - }, "node_modules/@remix-run/router": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.11.0.tgz", @@ -7636,14 +6773,6 @@ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", @@ -8061,29 +7190,6 @@ "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==", "peer": true }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/bonjour-service": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", @@ -8587,14 +7693,6 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, - "node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -9312,49 +8410,11 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, - "node_modules/cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "dependencies": { - "d3-array": "1", - "d3-path": "1" - } - }, - "node_modules/d3-chord/node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, "node_modules/d3-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, - "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", - "dependencies": { - "delaunator": "4" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -9368,75 +8428,6 @@ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "dependencies": { - "d3-color": "1 - 2" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "node_modules/d3-sankey": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", - "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", - "dependencies": { - "d3-array": "1 - 2", - "d3-shape": "^1.2.0" - } - }, - "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz", - "integrity": "sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA==", - "dependencies": { - "d3-color": "1 - 2", - "d3-interpolate": "1 - 2" - } - }, - "node_modules/d3-scale/node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "dependencies": { - "d3-array": "2" - } - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, "node_modules/d3-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", @@ -9609,11 +8600,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -11080,53 +10066,6 @@ "express": "^4.13.3" } }, - "node_modules/express-winston": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/express-winston/-/express-winston-2.6.0.tgz", - "integrity": "sha512-m4qvQrrIErAZFMQman8CKnQB8sgVG0dSp/wRFv1ZyoWPpP/6waDZywteAdjMF57uJ5+9O7tkwZb5k9w80ZyvAA==", - "dependencies": { - "chalk": "~0.4.0", - "lodash": "~4.17.5" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "winston": ">=1.x" - } - }, - "node_modules/express-winston/node_modules/ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/express-winston/node_modules/chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==", - "dependencies": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/express-winston/node_modules/strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==", - "bin": { - "strip-ansi": "cli.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/express/node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -11183,14 +10122,6 @@ } ] }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "engines": { - "node": "> 0.1.90" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -11921,14 +10852,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12003,12 +10926,6 @@ "he": "bin/he" } }, - "node_modules/hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==", - "deprecated": "This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues." - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -12882,27 +11799,11 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "node_modules/isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "dependencies": { - "punycode": "2.x.x" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.1.tgz", @@ -14912,17 +13813,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/joi": { - "version": "14.3.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.1.tgz", - "integrity": "sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==", - "deprecated": "This module has moved and is now available at @hapi/joi. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", - "dependencies": { - "hoek": "6.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -18236,20 +17126,6 @@ "node": ">= 0.6" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc-cascader": { "version": "3.20.0", "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.20.0.tgz", @@ -20483,14 +19359,6 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -21513,15 +20381,6 @@ "node": ">=0.6" } }, - "node_modules/topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", - "deprecated": "This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", - "dependencies": { - "hoek": "6.x.x" - } - }, "node_modules/toposort-class": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", @@ -21762,16 +20621,16 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=14.17" + "node": ">=4.2.0" } }, "node_modules/unbox-primitive": { @@ -21978,15 +20837,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", @@ -22664,22 +21514,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/winston": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.7.tgz", - "integrity": "sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==", - "dependencies": { - "async": "^2.6.4", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/wkx": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", diff --git a/package.json b/package.json index 1343483..f6dafd1 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "jfstat", "version": "1.0.8", "private": true, + "main": "src/index.jsx", "scripts": { "start-client": "vite --host", "start-server": "cd backend && nodemon server.js", @@ -18,10 +19,6 @@ "@jellyfin/sdk": "^0.8.2", "@mui/material": "^5.12.2", "@mui/x-data-grid": "^6.2.1", - "@nivo/api": "^0.74.1", - "@nivo/bar": "^0.80.0", - "@nivo/core": "^0.80.0", - "@nivo/line": "^0.80.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -30,6 +27,7 @@ "axios-cache-interceptor": "^1.3.1", "bootstrap": "^5.2.3", "compare-versions": "^6.0.0-rc.1", + "compression": "^1.7.4", "config": "^3.3.9", "cors": "^2.8.5", "crypto-js": "^4.1.1", diff --git a/vite.config.js b/vite.config.js index 93e88b6..8257c8d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -22,16 +22,16 @@ export default defineConfig({ port: 3000, // port for exposing APIs proxy: { - '/api': 'http://localhost:3003', - '/proxy': 'http://localhost:3003', - '/stats': 'http://localhost:3003', - '/sync': 'http://localhost:3003', - '/auth': 'http://localhost:3003', - '/backup': 'http://localhost:3003', - '/logs': 'http://localhost:3003', - '/socket.io': 'http://localhost:3003', - '/swagger': 'http://localhost:3003', - '/utils': 'http://localhost:3003', + '/api': 'http://localhost:3000', + '/proxy': 'http://localhost:3000', + '/stats': 'http://localhost:3000', + '/sync': 'http://localhost:3000', + '/auth': 'http://localhost:3000', + '/backup': 'http://localhost:3000', + '/logs': 'http://localhost:3000', + '/socket.io': 'http://localhost:3000', + '/swagger': 'http://localhost:3000', + '/utils': 'http://localhost:3000', }, }, target: ['es2015'],