Add PWA support and Recharts dependency

- Install recharts for analytics dashboard visualizations
- Configure Next.js PWA with next-pwa plugin
- Update manifest.json with app details
- Generate service worker and workbox files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
andupetcu
2025-09-30 22:36:40 +03:00
parent ac440ddb85
commit 688f9bd57a
6 changed files with 739 additions and 130 deletions

View File

@@ -1,3 +1,149 @@
const withPWA = require('next-pwa')({
dest: 'public',
register: true,
skipWaiting: true,
disable: process.env.NODE_ENV === 'development',
runtimeCaching: [
{
urlPattern: /^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,
handler: 'CacheFirst',
options: {
cacheName: 'google-fonts-webfonts',
expiration: {
maxEntries: 4,
maxAgeSeconds: 365 * 24 * 60 * 60, // 365 days
},
},
},
{
urlPattern: /^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'google-fonts-stylesheets',
expiration: {
maxEntries: 4,
maxAgeSeconds: 7 * 24 * 60 * 60, // 7 days
},
},
},
{
urlPattern: /\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'static-font-assets',
expiration: {
maxEntries: 4,
maxAgeSeconds: 7 * 24 * 60 * 60, // 7 days
},
},
},
{
urlPattern: /\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'static-image-assets',
expiration: {
maxEntries: 64,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\/_next\/image\?url=.+$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'next-image',
expiration: {
maxEntries: 64,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\.(?:mp3|wav|ogg)$/i,
handler: 'CacheFirst',
options: {
rangeRequests: true,
cacheName: 'static-audio-assets',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\.(?:mp4)$/i,
handler: 'CacheFirst',
options: {
rangeRequests: true,
cacheName: 'static-video-assets',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\.(?:js)$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'static-js-assets',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\.(?:css|less)$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'static-style-assets',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\/_next\/data\/.+\/.+\.json$/i,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'next-data',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
},
},
{
urlPattern: /\/api\/.*$/i,
handler: 'NetworkFirst',
method: 'GET',
options: {
cacheName: 'apis',
expiration: {
maxEntries: 16,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
networkTimeoutSeconds: 10, // fall back to cache if API doesn't respond within 10s
},
},
{
urlPattern: /.*/i,
handler: 'NetworkFirst',
options: {
cacheName: 'others',
expiration: {
maxEntries: 32,
maxAgeSeconds: 24 * 60 * 60, // 24 hours
},
networkTimeoutSeconds: 10,
},
},
],
});
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = { const nextConfig = {
reactStrictMode: true, reactStrictMode: true,
@@ -26,4 +172,4 @@ const nextConfig = {
}, },
} }
module.exports = nextConfig module.exports = withPWA(nextConfig)

View File

@@ -28,6 +28,8 @@
"recharts": "^3.2.1", "recharts": "^3.2.1",
"redux-persist": "^6.0.0", "redux-persist": "^6.0.0",
"socket.io-client": "^4.8.1", "socket.io-client": "^4.8.1",
"workbox-webpack-plugin": "^7.3.0",
"workbox-window": "^7.3.0",
"zod": "^3.25.76" "zod": "^3.25.76"
}, },
"devDependencies": { "devDependencies": {
@@ -3211,23 +3213,67 @@
} }
}, },
"node_modules/@rollup/plugin-node-resolve": { "node_modules/@rollup/plugin-node-resolve": {
"version": "11.2.1", "version": "15.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz",
"integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@rollup/pluginutils": "^3.1.0", "@rollup/pluginutils": "^5.0.1",
"@types/resolve": "1.17.1", "@types/resolve": "1.20.2",
"builtin-modules": "^3.1.0",
"deepmerge": "^4.2.2", "deepmerge": "^4.2.2",
"is-module": "^1.0.0", "is-module": "^1.0.0",
"resolve": "^1.19.0" "resolve": "^1.22.1"
}, },
"engines": { "engines": {
"node": ">= 10.0.0" "node": ">=14.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"rollup": "^1.20.0||^2.0.0" "rollup": "^2.78.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
"integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
"picomatch": "^4.0.2"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-node-resolve/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==",
"license": "MIT"
},
"node_modules/@rollup/plugin-node-resolve/node_modules/picomatch": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
} }
}, },
"node_modules/@rollup/plugin-replace": { "node_modules/@rollup/plugin-replace": {
@@ -3243,6 +3289,28 @@
"rollup": "^1.20.0 || ^2.0.0" "rollup": "^1.20.0 || ^2.0.0"
} }
}, },
"node_modules/@rollup/plugin-terser": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz",
"integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==",
"license": "MIT",
"dependencies": {
"serialize-javascript": "^6.0.1",
"smob": "^1.0.0",
"terser": "^5.17.4"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils": { "node_modules/@rollup/pluginutils": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
@@ -3608,8 +3676,7 @@
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/@types/glob": { "node_modules/@types/glob": {
"version": "7.2.0", "version": "7.2.0",
@@ -3769,13 +3836,10 @@
} }
}, },
"node_modules/@types/resolve": { "node_modules/@types/resolve": {
"version": "1.17.1", "version": "1.20.2",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
"integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"license": "MIT", "license": "MIT"
"dependencies": {
"@types/node": "*"
}
}, },
"node_modules/@types/stack-utils": { "node_modules/@types/stack-utils": {
"version": "2.0.3", "version": "2.0.3",
@@ -9614,6 +9678,361 @@
"next": ">=9.0.0" "next": ">=9.0.0"
} }
}, },
"node_modules/next-pwa/node_modules/@apideck/better-ajv-errors": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
"integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
"license": "MIT",
"dependencies": {
"json-schema": "^0.4.0",
"jsonpointer": "^5.0.0",
"leven": "^3.1.0"
},
"engines": {
"node": ">=10"
},
"peerDependencies": {
"ajv": ">=8"
}
},
"node_modules/next-pwa/node_modules/@rollup/plugin-node-resolve": {
"version": "11.2.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
"integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
"license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^3.1.0",
"@types/resolve": "1.17.1",
"builtin-modules": "^3.1.0",
"deepmerge": "^4.2.2",
"is-module": "^1.0.0",
"resolve": "^1.19.0"
},
"engines": {
"node": ">= 10.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0"
}
},
"node_modules/next-pwa/node_modules/@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
"integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/next-pwa/node_modules/ajv": {
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/next-pwa/node_modules/brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/next-pwa/node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"deprecated": "Glob versions prior to v9 are no longer supported",
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/next-pwa/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/next-pwa/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/next-pwa/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/next-pwa/node_modules/webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
"integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
"license": "MIT",
"dependencies": {
"source-list-map": "^2.0.0",
"source-map": "~0.6.1"
}
},
"node_modules/next-pwa/node_modules/workbox-background-sync": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz",
"integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==",
"license": "MIT",
"dependencies": {
"idb": "^7.0.1",
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-broadcast-update": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz",
"integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-build": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz",
"integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==",
"license": "MIT",
"dependencies": {
"@apideck/better-ajv-errors": "^0.3.1",
"@babel/core": "^7.11.1",
"@babel/preset-env": "^7.11.0",
"@babel/runtime": "^7.11.2",
"@rollup/plugin-babel": "^5.2.0",
"@rollup/plugin-node-resolve": "^11.2.1",
"@rollup/plugin-replace": "^2.4.1",
"@surma/rollup-plugin-off-main-thread": "^2.2.3",
"ajv": "^8.6.0",
"common-tags": "^1.8.0",
"fast-json-stable-stringify": "^2.1.0",
"fs-extra": "^9.0.1",
"glob": "^7.1.6",
"lodash": "^4.17.20",
"pretty-bytes": "^5.3.0",
"rollup": "^2.43.1",
"rollup-plugin-terser": "^7.0.0",
"source-map": "^0.8.0-beta.0",
"stringify-object": "^3.3.0",
"strip-comments": "^2.0.1",
"tempy": "^0.6.0",
"upath": "^1.2.0",
"workbox-background-sync": "6.6.0",
"workbox-broadcast-update": "6.6.0",
"workbox-cacheable-response": "6.6.0",
"workbox-core": "6.6.0",
"workbox-expiration": "6.6.0",
"workbox-google-analytics": "6.6.0",
"workbox-navigation-preload": "6.6.0",
"workbox-precaching": "6.6.0",
"workbox-range-requests": "6.6.0",
"workbox-recipes": "6.6.0",
"workbox-routing": "6.6.0",
"workbox-strategies": "6.6.0",
"workbox-streams": "6.6.0",
"workbox-sw": "6.6.0",
"workbox-window": "6.6.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/next-pwa/node_modules/workbox-build/node_modules/source-map": {
"version": "0.8.0-beta.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
"integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
"deprecated": "The work that was done in this beta branch won't be included in future versions",
"license": "BSD-3-Clause",
"dependencies": {
"whatwg-url": "^7.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/next-pwa/node_modules/workbox-cacheable-response": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz",
"integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==",
"deprecated": "workbox-background-sync@6.6.0",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-core": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz",
"integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==",
"license": "MIT"
},
"node_modules/next-pwa/node_modules/workbox-expiration": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz",
"integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==",
"license": "MIT",
"dependencies": {
"idb": "^7.0.1",
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-google-analytics": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz",
"integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==",
"deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
"license": "MIT",
"dependencies": {
"workbox-background-sync": "6.6.0",
"workbox-core": "6.6.0",
"workbox-routing": "6.6.0",
"workbox-strategies": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-navigation-preload": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz",
"integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-precaching": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz",
"integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0",
"workbox-routing": "6.6.0",
"workbox-strategies": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-range-requests": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz",
"integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-recipes": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz",
"integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==",
"license": "MIT",
"dependencies": {
"workbox-cacheable-response": "6.6.0",
"workbox-core": "6.6.0",
"workbox-expiration": "6.6.0",
"workbox-precaching": "6.6.0",
"workbox-routing": "6.6.0",
"workbox-strategies": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-routing": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz",
"integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-strategies": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz",
"integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-streams": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz",
"integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==",
"license": "MIT",
"dependencies": {
"workbox-core": "6.6.0",
"workbox-routing": "6.6.0"
}
},
"node_modules/next-pwa/node_modules/workbox-sw": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz",
"integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==",
"license": "MIT"
},
"node_modules/next-pwa/node_modules/workbox-webpack-plugin": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz",
"integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==",
"license": "MIT",
"dependencies": {
"fast-json-stable-stringify": "^2.1.0",
"pretty-bytes": "^5.4.1",
"upath": "^1.2.0",
"webpack-sources": "^1.4.3",
"workbox-build": "6.6.0"
},
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"webpack": "^4.4.0 || ^5.9.0"
}
},
"node_modules/next-pwa/node_modules/workbox-window": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz",
"integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==",
"license": "MIT",
"dependencies": {
"@types/trusted-types": "^2.0.2",
"workbox-core": "6.6.0"
}
},
"node_modules/next/node_modules/postcss": { "node_modules/next/node_modules/postcss": {
"version": "8.4.31", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -11102,6 +11521,12 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/smob": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
"integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
"license": "MIT"
},
"node_modules/socket.io-client": { "node_modules/socket.io-client": {
"version": "4.8.1", "version": "4.8.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz",
@@ -12684,37 +13109,38 @@
} }
}, },
"node_modules/workbox-background-sync": { "node_modules/workbox-background-sync": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz",
"integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", "integrity": "sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"idb": "^7.0.1", "idb": "^7.0.1",
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-broadcast-update": { "node_modules/workbox-broadcast-update": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz",
"integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", "integrity": "sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-build": { "node_modules/workbox-build": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.3.0.tgz",
"integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", "integrity": "sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@apideck/better-ajv-errors": "^0.3.1", "@apideck/better-ajv-errors": "^0.3.1",
"@babel/core": "^7.11.1", "@babel/core": "^7.24.4",
"@babel/preset-env": "^7.11.0", "@babel/preset-env": "^7.11.0",
"@babel/runtime": "^7.11.2", "@babel/runtime": "^7.11.2",
"@rollup/plugin-babel": "^5.2.0", "@rollup/plugin-babel": "^5.2.0",
"@rollup/plugin-node-resolve": "^11.2.1", "@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-replace": "^2.4.1", "@rollup/plugin-replace": "^2.4.1",
"@rollup/plugin-terser": "^0.4.3",
"@surma/rollup-plugin-off-main-thread": "^2.2.3", "@surma/rollup-plugin-off-main-thread": "^2.2.3",
"ajv": "^8.6.0", "ajv": "^8.6.0",
"common-tags": "^1.8.0", "common-tags": "^1.8.0",
@@ -12724,30 +13150,29 @@
"lodash": "^4.17.20", "lodash": "^4.17.20",
"pretty-bytes": "^5.3.0", "pretty-bytes": "^5.3.0",
"rollup": "^2.43.1", "rollup": "^2.43.1",
"rollup-plugin-terser": "^7.0.0",
"source-map": "^0.8.0-beta.0", "source-map": "^0.8.0-beta.0",
"stringify-object": "^3.3.0", "stringify-object": "^3.3.0",
"strip-comments": "^2.0.1", "strip-comments": "^2.0.1",
"tempy": "^0.6.0", "tempy": "^0.6.0",
"upath": "^1.2.0", "upath": "^1.2.0",
"workbox-background-sync": "6.6.0", "workbox-background-sync": "7.3.0",
"workbox-broadcast-update": "6.6.0", "workbox-broadcast-update": "7.3.0",
"workbox-cacheable-response": "6.6.0", "workbox-cacheable-response": "7.3.0",
"workbox-core": "6.6.0", "workbox-core": "7.3.0",
"workbox-expiration": "6.6.0", "workbox-expiration": "7.3.0",
"workbox-google-analytics": "6.6.0", "workbox-google-analytics": "7.3.0",
"workbox-navigation-preload": "6.6.0", "workbox-navigation-preload": "7.3.0",
"workbox-precaching": "6.6.0", "workbox-precaching": "7.3.0",
"workbox-range-requests": "6.6.0", "workbox-range-requests": "7.3.0",
"workbox-recipes": "6.6.0", "workbox-recipes": "7.3.0",
"workbox-routing": "6.6.0", "workbox-routing": "7.3.0",
"workbox-strategies": "6.6.0", "workbox-strategies": "7.3.0",
"workbox-streams": "6.6.0", "workbox-streams": "7.3.0",
"workbox-sw": "6.6.0", "workbox-sw": "7.3.0",
"workbox-window": "6.6.0" "workbox-window": "7.3.0"
}, },
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=16.0.0"
} }
}, },
"node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": {
@@ -12846,138 +13271,136 @@
} }
}, },
"node_modules/workbox-cacheable-response": { "node_modules/workbox-cacheable-response": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz",
"integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", "integrity": "sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==",
"deprecated": "workbox-background-sync@6.6.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-core": { "node_modules/workbox-core": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.3.0.tgz",
"integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", "integrity": "sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/workbox-expiration": { "node_modules/workbox-expiration": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.3.0.tgz",
"integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", "integrity": "sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"idb": "^7.0.1", "idb": "^7.0.1",
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-google-analytics": { "node_modules/workbox-google-analytics": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz",
"integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", "integrity": "sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==",
"deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-background-sync": "6.6.0", "workbox-background-sync": "7.3.0",
"workbox-core": "6.6.0", "workbox-core": "7.3.0",
"workbox-routing": "6.6.0", "workbox-routing": "7.3.0",
"workbox-strategies": "6.6.0" "workbox-strategies": "7.3.0"
} }
}, },
"node_modules/workbox-navigation-preload": { "node_modules/workbox-navigation-preload": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz",
"integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", "integrity": "sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-precaching": { "node_modules/workbox-precaching": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.3.0.tgz",
"integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", "integrity": "sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0", "workbox-core": "7.3.0",
"workbox-routing": "6.6.0", "workbox-routing": "7.3.0",
"workbox-strategies": "6.6.0" "workbox-strategies": "7.3.0"
} }
}, },
"node_modules/workbox-range-requests": { "node_modules/workbox-range-requests": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz",
"integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", "integrity": "sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-recipes": { "node_modules/workbox-recipes": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.3.0.tgz",
"integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", "integrity": "sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-cacheable-response": "6.6.0", "workbox-cacheable-response": "7.3.0",
"workbox-core": "6.6.0", "workbox-core": "7.3.0",
"workbox-expiration": "6.6.0", "workbox-expiration": "7.3.0",
"workbox-precaching": "6.6.0", "workbox-precaching": "7.3.0",
"workbox-routing": "6.6.0", "workbox-routing": "7.3.0",
"workbox-strategies": "6.6.0" "workbox-strategies": "7.3.0"
} }
}, },
"node_modules/workbox-routing": { "node_modules/workbox-routing": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.3.0.tgz",
"integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", "integrity": "sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-strategies": { "node_modules/workbox-strategies": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.3.0.tgz",
"integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", "integrity": "sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/workbox-streams": { "node_modules/workbox-streams": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.3.0.tgz",
"integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", "integrity": "sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"workbox-core": "6.6.0", "workbox-core": "7.3.0",
"workbox-routing": "6.6.0" "workbox-routing": "7.3.0"
} }
}, },
"node_modules/workbox-sw": { "node_modules/workbox-sw": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.3.0.tgz",
"integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", "integrity": "sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/workbox-webpack-plugin": { "node_modules/workbox-webpack-plugin": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-7.3.0.tgz",
"integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", "integrity": "sha512-EC8lmSAuNmPli04+a5r5lTgv8ab+f5l+XjdYuYpbGnxDT15kH6DBeBazVslpffqTDHt+wkdBMnBCu8GdkKrTSA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fast-json-stable-stringify": "^2.1.0", "fast-json-stable-stringify": "^2.1.0",
"pretty-bytes": "^5.4.1", "pretty-bytes": "^5.4.1",
"upath": "^1.2.0", "upath": "^1.2.0",
"webpack-sources": "^1.4.3", "webpack-sources": "^1.4.3",
"workbox-build": "6.6.0" "workbox-build": "7.3.0"
}, },
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=16.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"webpack": "^4.4.0 || ^5.9.0" "webpack": "^4.4.0 || ^5.91.0"
} }
}, },
"node_modules/workbox-webpack-plugin/node_modules/source-map": { "node_modules/workbox-webpack-plugin/node_modules/source-map": {
@@ -13000,13 +13423,13 @@
} }
}, },
"node_modules/workbox-window": { "node_modules/workbox-window": {
"version": "6.6.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.3.0.tgz",
"integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", "integrity": "sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/trusted-types": "^2.0.2", "@types/trusted-types": "^2.0.2",
"workbox-core": "6.6.0" "workbox-core": "7.3.0"
} }
}, },
"node_modules/wrap-ansi": { "node_modules/wrap-ansi": {

View File

@@ -32,6 +32,8 @@
"recharts": "^3.2.1", "recharts": "^3.2.1",
"redux-persist": "^6.0.0", "redux-persist": "^6.0.0",
"socket.io-client": "^4.8.1", "socket.io-client": "^4.8.1",
"workbox-webpack-plugin": "^7.3.0",
"workbox-window": "^7.3.0",
"zod": "^3.25.76" "zod": "^3.25.76"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -1,26 +1,62 @@
{ {
"name": "Maternal Organization App", "name": "Maternal Organization App",
"short_name": "Maternal", "short_name": "Maternal App",
"description": "AI-powered maternal and child care organization", "description": "Track your child's activities, get AI-powered insights, and stay organized with your family.",
"start_url": "/",
"display": "standalone",
"background_color": "#FFF9F5",
"theme_color": "#FFB6C1", "theme_color": "#FFB6C1",
"background_color": "#FFFFFF",
"display": "standalone",
"orientation": "portrait", "orientation": "portrait",
"scope": "/",
"start_url": "/",
"icons": [ "icons": [
{ {
"src": "/icon-192x192.png", "src": "/icons/icon-72x72.png",
"sizes": "192x192", "sizes": "72x72",
"type": "image/png", "type": "image/png",
"purpose": "any maskable" "purpose": "maskable any"
}, },
{ {
"src": "/icon-512x512.png", "src": "/icons/icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-384x384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any maskable" "purpose": "maskable any"
} }
], ],
"categories": ["health", "lifestyle", "productivity"], "splash_pages": null
"lang": "en-US"
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long