From e424ea54ddb95fbf81aa6f0679fcb29956c9ca32 Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 10:55:46 -0400 Subject: [PATCH 01/66] Feature/settings page (#7) * Update docker-compose.yaml * Update docker-compose.yaml * Update package.json * Update Dockerfile * Update Dockerfile * Integrity 1 --- .github/workflows/web-deploy.yml | 14 +- web/Dockerfile | 5 + web/package-lock.json | 728 ++++++++++++++++--------------- web/package.json | 4 +- 4 files changed, 383 insertions(+), 368 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index d757c4c..613701e 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -29,16 +29,10 @@ jobs: registry: docker.io username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build Image and Push to Registry - uses: docker/build-push-action@v6 - with: - context: ./web - file: ./web/Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ secrets.DOCKERHUB_USER }}/shiftsync:latest_web + - name: Docker Build Backend + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web - name: Deploy to Coolify run: | curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' diff --git a/web/Dockerfile b/web/Dockerfile index 48ec791..bb9805c 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -2,6 +2,9 @@ FROM node:20-alpine WORKDIR /app +RUN echo ":tools: Listing context:" && ls -R . && echo "************************" + + COPY ./package*.json ./ RUN npm ci @@ -9,4 +12,6 @@ RUN npm ci COPY . ./ EXPOSE 5173 + + CMD ["npm", "run", "dev"] diff --git a/web/package-lock.json b/web/package-lock.json index db57ba7..4fac8da 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "shiftsync-website-web", - "version": "0.0.1", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "shiftsync-website-web", - "version": "0.0.1", + "version": "1.0.0", "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", @@ -60,9 +60,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", "dev": true, "license": "MIT", "engines": { @@ -70,22 +70,22 @@ } }, "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -100,14 +100,21 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -147,15 +154,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -203,26 +210,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -264,9 +271,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", - "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -287,16 +294,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -314,9 +321,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -345,12 +352,6 @@ "stylis": "4.2.0" } }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, "node_modules/@emotion/cache": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", @@ -479,9 +480,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", "cpu": [ "ppc64" ], @@ -496,9 +497,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", "cpu": [ "arm" ], @@ -513,9 +514,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", "cpu": [ "arm64" ], @@ -530,9 +531,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", "cpu": [ "x64" ], @@ -547,9 +548,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", "cpu": [ "arm64" ], @@ -564,9 +565,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", "cpu": [ "x64" ], @@ -581,9 +582,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", "cpu": [ "arm64" ], @@ -598,9 +599,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", "cpu": [ "x64" ], @@ -615,9 +616,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", "cpu": [ "arm" ], @@ -632,9 +633,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", "cpu": [ "arm64" ], @@ -649,9 +650,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", "cpu": [ "ia32" ], @@ -666,9 +667,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", "cpu": [ "loong64" ], @@ -683,9 +684,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", "cpu": [ "mips64el" ], @@ -700,9 +701,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", "cpu": [ "ppc64" ], @@ -717,9 +718,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", "cpu": [ "riscv64" ], @@ -734,9 +735,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", "cpu": [ "s390x" ], @@ -751,9 +752,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", "cpu": [ "x64" ], @@ -768,9 +769,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", "cpu": [ "arm64" ], @@ -785,9 +786,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", "cpu": [ "x64" ], @@ -802,9 +803,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", "cpu": [ "arm64" ], @@ -819,9 +820,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", "cpu": [ "x64" ], @@ -836,9 +837,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", "cpu": [ "x64" ], @@ -853,9 +854,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", "cpu": [ "arm64" ], @@ -870,9 +871,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", "cpu": [ "ia32" ], @@ -887,9 +888,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", "cpu": [ "x64" ], @@ -1021,9 +1022,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.27.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz", - "integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==", + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz", + "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==", "dev": true, "license": "MIT", "engines": { @@ -1172,9 +1173,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.0.tgz", - "integrity": "sha512-E0OqhZv548Qdc0PwWhLVA2zmjJZSTvaL4ZhoswmI8NJEC1tpW2js6LLP827jrW9MEiXYdz3QS6+hask83w74yQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.1.tgz", + "integrity": "sha512-yBckQs4aQ8mqukLnPC6ivIRv6guhaXi8snVl00VtyojBbm+l6VbVhyTSZ68Abcx7Ah8B+GZhrB7BOli+e+9LkQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -1182,9 +1183,9 @@ } }, "node_modules/@mui/icons-material": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.0.tgz", - "integrity": "sha512-1mUPMAZ+Qk3jfgL5ftRR06ATH/Esi0izHl1z56H+df6cwIlCWG66RXciUqeJCttbOXOQ5y2DCjLZI/4t3Yg3LA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.1.tgz", + "integrity": "sha512-X37+Yc8QpEnl0sYmz+WcLFy2dWgNRzbswDzLPXG7QU1XDVlP5TPp1HXjdmCupOWLL/I9m1fyhcyZl8/HPpp/Cg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1" @@ -1197,7 +1198,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^7.1.0", + "@mui/material": "^7.1.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1208,16 +1209,16 @@ } }, "node_modules/@mui/material": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.0.tgz", - "integrity": "sha512-ahUJdrhEv+mCp4XHW+tHIEYzZMSRLg8z4AjUOsj44QpD1ZaMxQoVOG2xiHvLFdcsIPbgSRx1bg1eQSheHBgvtg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.1.tgz", + "integrity": "sha512-mTpdmdZCaHCGOH3SrYM41+XKvNL0iQfM9KlYgpSjgadXx/fEKhhvOktxm8++Xw6FFeOHoOiV+lzOI8X1rsv71A==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", - "@mui/core-downloads-tracker": "^7.1.0", - "@mui/system": "^7.1.0", - "@mui/types": "^7.4.2", - "@mui/utils": "^7.1.0", + "@mui/core-downloads-tracker": "^7.1.1", + "@mui/system": "^7.1.1", + "@mui/types": "^7.4.3", + "@mui/utils": "^7.1.1", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", @@ -1236,7 +1237,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^7.1.0", + "@mui/material-pigment-css": "^7.1.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -1257,13 +1258,13 @@ } }, "node_modules/@mui/private-theming": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.1.0.tgz", - "integrity": "sha512-4Kck4jxhqF6YxNwJdSae1WgDfXVg0lIH6JVJ7gtuFfuKcQCgomJxPvUEOySTFRPz1IZzwz5OAcToskRdffElDA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.1.1.tgz", + "integrity": "sha512-M8NbLUx+armk2ZuaxBkkMk11ultnWmrPlN0Xe3jUEaBChg/mcxa5HWIWS1EE4DF36WRACaAHVAvyekWlDQf0PQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", - "@mui/utils": "^7.1.0", + "@mui/utils": "^7.1.1", "prop-types": "^15.8.1" }, "engines": { @@ -1284,9 +1285,9 @@ } }, "node_modules/@mui/styled-engine": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.1.0.tgz", - "integrity": "sha512-m0mJ0c6iRC+f9hMeRe0W7zZX1wme3oUX0+XTVHjPG7DJz6OdQ6K/ggEOq7ZdwilcpdsDUwwMfOmvO71qDkYd2w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.1.1.tgz", + "integrity": "sha512-R2wpzmSN127j26HrCPYVQ53vvMcT5DaKLoWkrfwUYq3cYytL6TQrCH8JBH3z79B6g4nMZZVoaXrxO757AlShaw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", @@ -1318,16 +1319,16 @@ } }, "node_modules/@mui/system": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.1.0.tgz", - "integrity": "sha512-iedAWgRJMCxeMHvkEhsDlbvkK+qKf9me6ofsf7twk/jfT4P1ImVf7Rwb5VubEA0sikrVL+1SkoZM41M4+LNAVA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.1.1.tgz", + "integrity": "sha512-Kj1uhiqnj4Zo7PDjAOghtXJtNABunWvhcRU0O7RQJ7WOxeynoH6wXPcilphV8QTFtkKaip8EiNJRiCD+B3eROA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", - "@mui/private-theming": "^7.1.0", - "@mui/styled-engine": "^7.1.0", - "@mui/types": "^7.4.2", - "@mui/utils": "^7.1.0", + "@mui/private-theming": "^7.1.1", + "@mui/styled-engine": "^7.1.1", + "@mui/types": "^7.4.3", + "@mui/utils": "^7.1.1", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -1358,9 +1359,9 @@ } }, "node_modules/@mui/types": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz", - "integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.3.tgz", + "integrity": "sha512-2UCEiK29vtiZTeLdS2d4GndBKacVyxGvReznGXGr+CzW/YhjIX+OHUdCIczZjzcRAgKBGmE9zCIgoV9FleuyRQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1" @@ -1375,13 +1376,13 @@ } }, "node_modules/@mui/utils": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.0.tgz", - "integrity": "sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.1.tgz", + "integrity": "sha512-BkOt2q7MBYl7pweY2JWwfrlahhp+uGLR8S+EhiyRaofeRYUWL2YKbSGQvN4hgSN1i8poN0PaUiii1kEMrchvzg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", - "@mui/types": "^7.4.2", + "@mui/types": "^7.4.3", "@types/prop-types": "^15.7.14", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1414,10 +1415,17 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.11", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.11.tgz", + "integrity": "sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz", - "integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", + "integrity": "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==", "cpu": [ "arm" ], @@ -1429,9 +1437,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz", - "integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.43.0.tgz", + "integrity": "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==", "cpu": [ "arm64" ], @@ -1443,9 +1451,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz", - "integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.43.0.tgz", + "integrity": "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==", "cpu": [ "arm64" ], @@ -1457,9 +1465,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz", - "integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.43.0.tgz", + "integrity": "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==", "cpu": [ "x64" ], @@ -1471,9 +1479,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz", - "integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.43.0.tgz", + "integrity": "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==", "cpu": [ "arm64" ], @@ -1485,9 +1493,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz", - "integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.43.0.tgz", + "integrity": "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==", "cpu": [ "x64" ], @@ -1499,9 +1507,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz", - "integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.43.0.tgz", + "integrity": "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==", "cpu": [ "arm" ], @@ -1513,9 +1521,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz", - "integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.43.0.tgz", + "integrity": "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==", "cpu": [ "arm" ], @@ -1527,9 +1535,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz", - "integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.43.0.tgz", + "integrity": "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==", "cpu": [ "arm64" ], @@ -1541,9 +1549,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz", - "integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.43.0.tgz", + "integrity": "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==", "cpu": [ "arm64" ], @@ -1555,9 +1563,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz", - "integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.43.0.tgz", + "integrity": "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==", "cpu": [ "loong64" ], @@ -1569,9 +1577,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz", - "integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.43.0.tgz", + "integrity": "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==", "cpu": [ "ppc64" ], @@ -1583,9 +1591,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz", - "integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.43.0.tgz", + "integrity": "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==", "cpu": [ "riscv64" ], @@ -1597,9 +1605,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz", - "integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.43.0.tgz", + "integrity": "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==", "cpu": [ "riscv64" ], @@ -1611,9 +1619,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz", - "integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.43.0.tgz", + "integrity": "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==", "cpu": [ "s390x" ], @@ -1625,9 +1633,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz", - "integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.43.0.tgz", + "integrity": "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==", "cpu": [ "x64" ], @@ -1639,9 +1647,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz", - "integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.43.0.tgz", + "integrity": "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==", "cpu": [ "x64" ], @@ -1653,9 +1661,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz", - "integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.43.0.tgz", + "integrity": "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==", "cpu": [ "arm64" ], @@ -1667,9 +1675,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz", - "integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.43.0.tgz", + "integrity": "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==", "cpu": [ "ia32" ], @@ -1681,9 +1689,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz", - "integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.43.0.tgz", + "integrity": "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==", "cpu": [ "x64" ], @@ -1740,9 +1748,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -1760,24 +1768,24 @@ "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", - "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", - "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1794,15 +1802,16 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", - "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.2.tgz", + "integrity": "sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.26.10", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@babel/core": "^7.27.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.11", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -1810,13 +1819,13 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -1916,9 +1925,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -1927,9 +1936,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "dev": true, "funding": [ { @@ -1947,8 +1956,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -1982,9 +1991,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "version": "1.0.30001722", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", + "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", "dev": true, "funding": [ { @@ -2068,10 +2077,9 @@ "license": "MIT" }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "license": "MIT" }, "node_modules/cookie": { @@ -2187,9 +2195,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.155", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", - "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", + "version": "1.5.166", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz", + "integrity": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==", "dev": true, "license": "ISC" }, @@ -2248,9 +2256,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2261,31 +2269,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.4", - "@esbuild/android-arm": "0.25.4", - "@esbuild/android-arm64": "0.25.4", - "@esbuild/android-x64": "0.25.4", - "@esbuild/darwin-arm64": "0.25.4", - "@esbuild/darwin-x64": "0.25.4", - "@esbuild/freebsd-arm64": "0.25.4", - "@esbuild/freebsd-x64": "0.25.4", - "@esbuild/linux-arm": "0.25.4", - "@esbuild/linux-arm64": "0.25.4", - "@esbuild/linux-ia32": "0.25.4", - "@esbuild/linux-loong64": "0.25.4", - "@esbuild/linux-mips64el": "0.25.4", - "@esbuild/linux-ppc64": "0.25.4", - "@esbuild/linux-riscv64": "0.25.4", - "@esbuild/linux-s390x": "0.25.4", - "@esbuild/linux-x64": "0.25.4", - "@esbuild/netbsd-arm64": "0.25.4", - "@esbuild/netbsd-x64": "0.25.4", - "@esbuild/openbsd-arm64": "0.25.4", - "@esbuild/openbsd-x64": "0.25.4", - "@esbuild/sunos-x64": "0.25.4", - "@esbuild/win32-arm64": "0.25.4", - "@esbuild/win32-ia32": "0.25.4", - "@esbuild/win32-x64": "0.25.4" + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" } }, "node_modules/escalade": { @@ -2311,9 +2319,9 @@ } }, "node_modules/eslint": { - "version": "9.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", - "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz", + "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2323,7 +2331,7 @@ "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.27.0", + "@eslint/js": "9.28.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2395,9 +2403,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2412,9 +2420,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2425,15 +2433,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2510,9 +2518,9 @@ "license": "MIT" }, "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2602,14 +2610,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -2701,9 +2710,9 @@ } }, "node_modules/globals": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz", - "integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", + "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", "dev": true, "license": "MIT", "engines": { @@ -3248,9 +3257,9 @@ } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", "dev": true, "funding": [ { @@ -3268,7 +3277,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3357,9 +3366,9 @@ } }, "node_modules/react-router": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.0.tgz", - "integrity": "sha512-GGufuHIVCJDbnIAXP3P9Sxzq3UUsddG3rrI3ut1q6m0FI6vxVBF3JoPQ38+W/blslLH4a5Yutp8drkEpXoddGQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.2.tgz", + "integrity": "sha512-U7Nv3y+bMimgWjhlT5CRdzHPu2/KVmqPwKUCChW8en5P3znxUqwlYFlbmyj8Rgp1SF6zs5X4+77kBVknkg6a0w==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -3379,12 +3388,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.0.tgz", - "integrity": "sha512-DYgm6RDEuKdopSyGOWZGtDfSm7Aofb8CCzgkliTjtu/eDuB0gcsv6qdFhhi8HdtmA+KHkt5MfZ5K2PdzjugYsA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.2.tgz", + "integrity": "sha512-Q8zb6VlTbdYKK5JJBLQEN06oTUa/RAbG/oQS1auK1I0TbJOXktqm+QENEVJU6QvWynlXPRBXI3fiOQcSEA78rA==", "license": "MIT", "dependencies": { - "react-router": "7.6.0" + "react-router": "7.6.2" }, "engines": { "node": ">=20.0.0" @@ -3440,9 +3449,9 @@ } }, "node_modules/rollup": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", - "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", + "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", "dev": true, "license": "MIT", "dependencies": { @@ -3456,29 +3465,36 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.0", - "@rollup/rollup-android-arm64": "4.41.0", - "@rollup/rollup-darwin-arm64": "4.41.0", - "@rollup/rollup-darwin-x64": "4.41.0", - "@rollup/rollup-freebsd-arm64": "4.41.0", - "@rollup/rollup-freebsd-x64": "4.41.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.0", - "@rollup/rollup-linux-arm-musleabihf": "4.41.0", - "@rollup/rollup-linux-arm64-gnu": "4.41.0", - "@rollup/rollup-linux-arm64-musl": "4.41.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-musl": "4.41.0", - "@rollup/rollup-linux-s390x-gnu": "4.41.0", - "@rollup/rollup-linux-x64-gnu": "4.41.0", - "@rollup/rollup-linux-x64-musl": "4.41.0", - "@rollup/rollup-win32-arm64-msvc": "4.41.0", - "@rollup/rollup-win32-ia32-msvc": "4.41.0", - "@rollup/rollup-win32-x64-msvc": "4.41.0", + "@rollup/rollup-android-arm-eabi": "4.43.0", + "@rollup/rollup-android-arm64": "4.43.0", + "@rollup/rollup-darwin-arm64": "4.43.0", + "@rollup/rollup-darwin-x64": "4.43.0", + "@rollup/rollup-freebsd-arm64": "4.43.0", + "@rollup/rollup-freebsd-x64": "4.43.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", + "@rollup/rollup-linux-arm-musleabihf": "4.43.0", + "@rollup/rollup-linux-arm64-gnu": "4.43.0", + "@rollup/rollup-linux-arm64-musl": "4.43.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-musl": "4.43.0", + "@rollup/rollup-linux-s390x-gnu": "4.43.0", + "@rollup/rollup-linux-x64-gnu": "4.43.0", + "@rollup/rollup-linux-x64-musl": "4.43.0", + "@rollup/rollup-win32-arm64-msvc": "4.43.0", + "@rollup/rollup-win32-ia32-msvc": "4.43.0", + "@rollup/rollup-win32-x64-msvc": "4.43.0", "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -3588,9 +3604,9 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { diff --git a/web/package.json b/web/package.json index 994d017..ba586dd 100644 --- a/web/package.json +++ b/web/package.json @@ -1,10 +1,10 @@ { "name": "shiftsync-website-web", "private": true, - "version": "0.0.1", + "version": "1.0.0", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "vite build", "lint": "eslint .", "preview": "vite preview" From 262327e20a06881bfd5f0fe4edd8f7e3e6f4ffc4 Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 11:11:47 -0400 Subject: [PATCH 02/66] Update vite.config.js --- web/vite.config.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/vite.config.js b/web/vite.config.js index 6371a5f..51722a2 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -5,6 +5,9 @@ import path from 'path'; // https://vite.dev/config/ export default defineConfig({ plugins: [react()], + server:{ + allowedHosts: ['.code-catalyst.com'] + }, resolve: { alias: { '@src': path.resolve(__dirname, 'src'), From 5be241ab86fc2ed0476db7a03fc6e8cf7b236a4c Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 11:16:00 -0400 Subject: [PATCH 03/66] Update vite.config.js --- web/vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/vite.config.js b/web/vite.config.js index 51722a2..0cb6f53 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -6,7 +6,7 @@ import path from 'path'; export default defineConfig({ plugins: [react()], server:{ - allowedHosts: ['.code-catalyst.com'] + allowedHosts: ['shift.code-catalyst.com'] }, resolve: { alias: { From 835157b42556310a03e8caa3beb7d148a5a58f2c Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 11:19:01 -0400 Subject: [PATCH 04/66] Update vite.config.js --- web/vite.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/web/vite.config.js b/web/vite.config.js index 0cb6f53..3be5fa9 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -6,6 +6,7 @@ import path from 'path'; export default defineConfig({ plugins: [react()], server:{ + host: true, allowedHosts: ['shift.code-catalyst.com'] }, resolve: { From 8aaabe496c4163548b1fc629f150f6cc0ebbbff6 Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 11:32:22 -0400 Subject: [PATCH 05/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 613701e..673f4da 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -17,7 +17,7 @@ on: jobs: deploy: environment: dev - runs-on: 'ubuntu-latest' + runs-on: ['self-hosted', 'pi'] permissions: contents: read packages: write From 8f329d8e1323309501ee548937165b83424495be Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 11:48:31 -0400 Subject: [PATCH 06/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 673f4da..9f74e95 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -15,7 +15,7 @@ on: paths: - web/** jobs: - deploy: + build: environment: dev runs-on: ['self-hosted', 'pi'] permissions: @@ -33,6 +33,13 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web + deploy: + environment: dev + runs-on: ['self-hosted', 'pi'] + permissions: + contents: read + packages: write + steps: - name: Deploy to Coolify run: | curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From 6e1417ca6e62d1d2225d84b4b0e62d495b8d3f14 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 11:51:03 -0400 Subject: [PATCH 07/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 9f74e95..7d136f2 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -17,7 +17,7 @@ on: jobs: build: environment: dev - runs-on: ['self-hosted', 'pi'] + runs-on: 'ubuntu-latest' permissions: contents: read packages: write @@ -35,7 +35,8 @@ jobs: run: docker push john4064/shiftsync:latest_web deploy: environment: dev - runs-on: ['self-hosted', 'pi'] + needs: build + runs-on: 'ubuntu-latest' permissions: contents: read packages: write From 4c5a07876762dc2bc5faf719ffe8d702bf8c400a Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 11:58:50 -0400 Subject: [PATCH 08/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 7d136f2..0faa842 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -36,6 +36,7 @@ jobs: deploy: environment: dev needs: build + if: always() && needs.build.result == 'success' runs-on: 'ubuntu-latest' permissions: contents: read From 88e3486bad5653c89e7efb4de3ad6c66091dd177 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 12:03:49 -0400 Subject: [PATCH 09/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 0faa842..e97de76 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -15,8 +15,20 @@ on: paths: - web/** jobs: + pr-validation: + permissions: + contents: read + pull-requests: write + runs-on: ['self-hosted', 'pi'] + steps: + - uses: TimonVS/pr-labeler-action@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/configs/pr-labeler-configuration.yml build: environment: dev + needs: pr-validation + if: always() && needs.pr-validation.result == 'success' runs-on: 'ubuntu-latest' permissions: contents: read From 291417efc9d69d0126683bf680297ff0d367b2e8 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 12:05:00 -0400 Subject: [PATCH 10/66] Delete .github/workflows/pr-validation.yml --- .github/workflows/pr-validation.yml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .github/workflows/pr-validation.yml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml deleted file mode 100644 index 3797c32..0000000 --- a/.github/workflows/pr-validation.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: PR Validation -on: - pull_request: - types: [opened] - -permissions: - contents: read - -jobs: - pr-validation: - permissions: - contents: read - pull-requests: write - runs-on: ['self-hosted', 'pi'] - steps: - - uses: TimonVS/pr-labeler-action@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: .github/configs/pr-labeler-configuration.yml From 8041173264715df5926d8e3d3d020439060fe400 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 12:06:44 -0400 Subject: [PATCH 11/66] Create pr-validation.yml --- .github/workflows/pr-validation.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/pr-validation.yml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml new file mode 100644 index 0000000..3797c32 --- /dev/null +++ b/.github/workflows/pr-validation.yml @@ -0,0 +1,19 @@ +name: PR Validation +on: + pull_request: + types: [opened] + +permissions: + contents: read + +jobs: + pr-validation: + permissions: + contents: read + pull-requests: write + runs-on: ['self-hosted', 'pi'] + steps: + - uses: TimonVS/pr-labeler-action@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/configs/pr-labeler-configuration.yml From 904542751581e8ac55acad430fc9b8ed4cf557f0 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 12:07:18 -0400 Subject: [PATCH 12/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index e97de76..85acda5 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -15,16 +15,6 @@ on: paths: - web/** jobs: - pr-validation: - permissions: - contents: read - pull-requests: write - runs-on: ['self-hosted', 'pi'] - steps: - - uses: TimonVS/pr-labeler-action@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: .github/configs/pr-labeler-configuration.yml build: environment: dev needs: pr-validation From 92a75771b96c83b71fe7bfb7431958849bcd127d Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 12:08:14 -0400 Subject: [PATCH 13/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 85acda5..0faa842 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -17,8 +17,6 @@ on: jobs: build: environment: dev - needs: pr-validation - if: always() && needs.pr-validation.result == 'success' runs-on: 'ubuntu-latest' permissions: contents: read From 4d8554690126f5403dd249727f1ac168fa5ee918 Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 12:58:59 -0400 Subject: [PATCH 14/66] Update Dockerfile --- web/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/web/Dockerfile b/web/Dockerfile index bb9805c..43b4327 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -12,6 +12,7 @@ RUN npm ci COPY . ./ EXPOSE 5173 +EXPOSE 5171 CMD ["npm", "run", "dev"] From 1277b258342fb7b30c265ac5379ab2adccf4197b Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:15:27 -0400 Subject: [PATCH 15/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 37 +++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 0faa842..9f1ed7c 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -1,6 +1,16 @@ name: Web Deployment on: workflow_dispatch: {} + workflow_call: + inputs: + develop-environments: + type: string + description: An optional list of dev environments to deploy to. + default: '["dev"]' + release-environments: + type: string + description: An optional list of release environments to deploy to. + default: '["prod"]' pull_request: branches: - main @@ -15,8 +25,33 @@ on: paths: - web/** jobs: + determine-workflow: + runs-on: 'ubuntu-latest' + outputs: + workflow_type: ${{ steps.workflow.outputs.workflow_type }} + workflow_envs: ${{ steps.workflow.outputs.workflow_envs }} + release_type: ${{ steps.workflow.outputs.release_type }} + steps: + - name: Determine Workflow + id: workflow + shell: bash + run: | + event=${{ github.event_name }} + workflow_type='dev'; + workflow_envs='${{ inputs.develop-environments }}' + if [[ $event == 'workflow_dispatch' && ${{ github.ref_name }}' == 'main' ]]; + then + workflow_type='release'; + workflow_envs='${{ inputs.release-environments }}' + fi + + echo "workflow_type=$workflow_type" >> $GITHUB_OUTPUT + echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT + + echo "Running #workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY build: environment: dev + needs: determine-workflow runs-on: 'ubuntu-latest' permissions: contents: read @@ -36,7 +71,7 @@ jobs: deploy: environment: dev needs: build - if: always() && needs.build.result == 'success' + if: always() && needs.build.result == 'success' && ${{ steps.workflow.outputs.workflow_type }} == 'release' runs-on: 'ubuntu-latest' permissions: contents: read From 9986f2200ec3371129ecff72d30ae27f8bae100d Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:18:45 -0400 Subject: [PATCH 16/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 9f1ed7c..e30c96a 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -71,7 +71,7 @@ jobs: deploy: environment: dev needs: build - if: always() && needs.build.result == 'success' && ${{ steps.workflow.outputs.workflow_type }} == 'release' + if: always() && needs.build.result == 'success' && ${{ needs.determine-workflow.outputs.workflow_type }} == 'release' runs-on: 'ubuntu-latest' permissions: contents: read From 37e8e6d39a98433887e61edfe61e34ef971d4589 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:20:14 -0400 Subject: [PATCH 17/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index e30c96a..5dcb9e6 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -39,7 +39,7 @@ jobs: event=${{ github.event_name }} workflow_type='dev'; workflow_envs='${{ inputs.develop-environments }}' - if [[ $event == 'workflow_dispatch' && ${{ github.ref_name }}' == 'main' ]]; + if [[ $event == 'workflow_dispatch' && '${{ github.ref_name }}' == 'main' ]]; then workflow_type='release'; workflow_envs='${{ inputs.release-environments }}' From 2006b1a1cbeee45cd0790fd4705ce39e5c92cfbc Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:24:12 -0400 Subject: [PATCH 18/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 5dcb9e6..0b1a2f8 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -1,16 +1,6 @@ name: Web Deployment on: workflow_dispatch: {} - workflow_call: - inputs: - develop-environments: - type: string - description: An optional list of dev environments to deploy to. - default: '["dev"]' - release-environments: - type: string - description: An optional list of release environments to deploy to. - default: '["prod"]' pull_request: branches: - main @@ -38,17 +28,17 @@ jobs: run: | event=${{ github.event_name }} workflow_type='dev'; - workflow_envs='${{ inputs.develop-environments }}' + workflow_envs='["dev"]' if [[ $event == 'workflow_dispatch' && '${{ github.ref_name }}' == 'main' ]]; then workflow_type='release'; - workflow_envs='${{ inputs.release-environments }}' + workflow_envs='["prod"]' fi echo "workflow_type=$workflow_type" >> $GITHUB_OUTPUT echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT - echo "Running #workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY + echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY build: environment: dev needs: determine-workflow From 0c0a510acade9c0037c9b3b8c7e6edb529e2cc9e Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:26:16 -0400 Subject: [PATCH 19/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 0b1a2f8..27c3b6b 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -61,7 +61,7 @@ jobs: deploy: environment: dev needs: build - if: always() && needs.build.result == 'success' && ${{ needs.determine-workflow.outputs.workflow_type }} == 'release' + if: needs.build.result == 'success' && ${{ needs.determine-workflow.outputs.workflow_type }} == 'release' runs-on: 'ubuntu-latest' permissions: contents: read From 721c5a85be0860b911c9803f3ed34ed1ba70309e Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:29:14 -0400 Subject: [PATCH 20/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 27c3b6b..88b0854 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -59,9 +59,9 @@ jobs: - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web deploy: - environment: dev - needs: build + needs: [build, determine-workflow] if: needs.build.result == 'success' && ${{ needs.determine-workflow.outputs.workflow_type }} == 'release' + environment: prod runs-on: 'ubuntu-latest' permissions: contents: read From 7b255e75431e269a8ff9bed684dbbad26027ffbf Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:31:26 -0400 Subject: [PATCH 21/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 88b0854..cd76023 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -69,5 +69,6 @@ jobs: steps: - name: Deploy to Coolify run: | + echo ${{ needs.determine-workflow.outputs.workflow_type }} curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From 93ccca8f9797c49652e323c6368f292c92d4a591 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 13:33:55 -0400 Subject: [PATCH 22/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index cd76023..073b642 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -60,7 +60,7 @@ jobs: run: docker push john4064/shiftsync:latest_web deploy: needs: [build, determine-workflow] - if: needs.build.result == 'success' && ${{ needs.determine-workflow.outputs.workflow_type }} == 'release' + if: needs.build.result == 'success' && needs.determine-workflow.outputs.workflow_type == 'release' environment: prod runs-on: 'ubuntu-latest' permissions: From 0582fac284f3f7c1bc47f37db68ef2ac16598039 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 14:37:47 -0400 Subject: [PATCH 23/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 42 +++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 073b642..eebb6aa 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -39,9 +39,10 @@ jobs: echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY - build: - environment: dev + nonprod-build: needs: determine-workflow + if: needs.determine-workflow.outputs.workflow_type != 'release' + environment: dev runs-on: 'ubuntu-latest' permissions: contents: read @@ -58,8 +59,41 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web - deploy: - needs: [build, determine-workflow] + nonprod-deploy: + needs: [nonprod-build, determine-workflow] + if: needs.nonprod-build.result == 'success' && needs.determine-workflow.outputs.workflow_type != 'release' + environment: dev + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + echo ${{ needs.determine-workflow.outputs.workflow_type }} + curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + prod-build: + needs: determine-workflow + if: needs.determine-workflow.outputs.workflow_type == 'release' + environment: prod + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - name: Login to Docker + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Docker Build Backend + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web + prod-deploy: + needs: [prod-build, determine-workflow] if: needs.build.result == 'success' && needs.determine-workflow.outputs.workflow_type == 'release' environment: prod runs-on: 'ubuntu-latest' From e0d3235c0e082066cab9c7ffe2d5a7dd285d5fd5 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 14:39:00 -0400 Subject: [PATCH 24/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index eebb6aa..666b68a 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -94,7 +94,7 @@ jobs: run: docker push john4064/shiftsync:latest_web prod-deploy: needs: [prod-build, determine-workflow] - if: needs.build.result == 'success' && needs.determine-workflow.outputs.workflow_type == 'release' + if: needs.prod-build.result == 'success' && needs.determine-workflow.outputs.workflow_type == 'release' environment: prod runs-on: 'ubuntu-latest' permissions: From c2a5a755c136ff859ef53ade79114579996a21fe Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 14:42:06 -0400 Subject: [PATCH 25/66] Update web-deploy.yml --- .github/workflows/web-deploy.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 666b68a..0fbd8a3 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -44,6 +44,8 @@ jobs: if: needs.determine-workflow.outputs.workflow_type != 'release' environment: dev runs-on: 'ubuntu-latest' + outputs: + workflow_type: needs.determine-workflow.outputs.workflow_type permissions: contents: read packages: write @@ -60,8 +62,8 @@ jobs: - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web nonprod-deploy: - needs: [nonprod-build, determine-workflow] - if: needs.nonprod-build.result == 'success' && needs.determine-workflow.outputs.workflow_type != 'release' + needs: nonprod-build + if: needs.nonprod-build.result == 'success' && needs.nonprod-build.outputs.workflow_type != 'release' environment: dev runs-on: 'ubuntu-latest' permissions: @@ -77,6 +79,8 @@ jobs: if: needs.determine-workflow.outputs.workflow_type == 'release' environment: prod runs-on: 'ubuntu-latest' + outputs: + workflow_type: needs.determine-workflow.outputs.workflow_type permissions: contents: read packages: write @@ -93,8 +97,8 @@ jobs: - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web prod-deploy: - needs: [prod-build, determine-workflow] - if: needs.prod-build.result == 'success' && needs.determine-workflow.outputs.workflow_type == 'release' + needs: prod-build + if: needs.prod-build.result == 'success' && needs.prod-build.outputs.workflow_type == 'release' environment: prod runs-on: 'ubuntu-latest' permissions: From 47dce7bfc8d8b67e16f862b6bd8c1758baf056f1 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 14:51:00 -0400 Subject: [PATCH 26/66] Update and rename web-deploy.yml to web-container.yml --- .github/workflows/{web-deploy.yml => web-container.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{web-deploy.yml => web-container.yml} (99%) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-container.yml similarity index 99% rename from .github/workflows/web-deploy.yml rename to .github/workflows/web-container.yml index 0fbd8a3..66b1a5c 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-container.yml @@ -1,4 +1,4 @@ -name: Web Deployment +name: Web Deployment Container on: workflow_dispatch: {} pull_request: From 13b92f69d02168878a86dbe8040f3ed45fc00b77 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:00:06 -0400 Subject: [PATCH 27/66] Create web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/web-deploy-nonprod.yml diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml new file mode 100644 index 0000000..1230789 --- /dev/null +++ b/.github/workflows/web-deploy-nonprod.yml @@ -0,0 +1,53 @@ +name: Web Deployment Non-Production +on: + workflow_call: + inputs: + environments: + type: string + description: An optional list of environments to deploy to. + default: '["dev"]' + workflow_type: + type: string + description: An optional string for workflow types. + default: 'dev' + branch: + type: string + description: An optional string to define which branch to checkout. + default: 'main' +jobs: + build: + if: inputs.workflow_type != 'release' + environment: dev + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Branch Checkout + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + - name: Login to Docker + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Docker Build Backend + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type != 'release' + environment: dev + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + echo ${{ needs.determine-workflow.outputs.workflow_type }} + curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + From 381913620d2fd2a1b94880ac8615d2a74c12e5f3 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:07:02 -0400 Subject: [PATCH 28/66] Update web-container.yml --- .github/workflows/web-container.yml | 87 +++++++---------------------- 1 file changed, 20 insertions(+), 67 deletions(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index 66b1a5c..d75ad15 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -39,74 +39,27 @@ jobs: echo "workflow_envs=$workflow_envs" >> $GITHUB_OUTPUT echo "Running $workflow_type pipeline in environments: $workflow_envs" >> $GITHUB_STEP_SUMMARY - nonprod-build: + nonprod-deploy: needs: determine-workflow if: needs.determine-workflow.outputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - outputs: - workflow_type: needs.determine-workflow.outputs.workflow_type - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v4 - - name: Login to Docker - uses: docker/login-action@v3 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USER }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web - nonprod-deploy: - needs: nonprod-build - if: needs.nonprod-build.result == 'success' && needs.nonprod-build.outputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - prod-build: + strategy: + max-parallel: 1 + matrix: + env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + with: + environments: ${{ matrix.env }} + workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} + branch: ${{ github.ref_name }} + prod-deploy: needs: determine-workflow if: needs.determine-workflow.outputs.workflow_type == 'release' - environment: prod - runs-on: 'ubuntu-latest' - outputs: - workflow_type: needs.determine-workflow.outputs.workflow_type - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v4 - - name: Login to Docker - uses: docker/login-action@v3 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USER }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web - prod-deploy: - needs: prod-build - if: needs.prod-build.result == 'success' && needs.prod-build.outputs.workflow_type == 'release' - environment: prod - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' - + strategy: + max-parallel: 1 + matrix: + env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + with: + environments: ${{ matrix.env }} + workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} + branch: ${{ github.ref_name }} From 8af7195cac10967a77fbcd14e31c7d768f15ca2d Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:11:29 -0400 Subject: [PATCH 29/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 1230789..fd46a34 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -17,7 +17,7 @@ on: jobs: build: if: inputs.workflow_type != 'release' - environment: dev + environment: ${{ input.environments }} runs-on: 'ubuntu-latest' permissions: contents: read @@ -37,17 +37,17 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web - deploy: - needs: build - if: needs.build.result == 'success' && inputs.workflow_type != 'release' - environment: dev - runs-on: 'ubuntu-latest' - permissions: - contents: read - packages: write - steps: - - name: Deploy to Coolify - run: | - echo ${{ needs.determine-workflow.outputs.workflow_type }} - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + # deploy: + # needs: build + # if: needs.build.result == 'success' && inputs.workflow_type != 'release' + # environment: ${{ input.environments }} + # runs-on: 'ubuntu-latest' + # permissions: + # contents: read + # packages: write + # steps: + # - name: Deploy to Coolify + # run: | + # echo ${{ inputs.workflow_type }} + # curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From df9b5ff0d420a4c43eb0c67915ed405daeb80873 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:12:22 -0400 Subject: [PATCH 30/66] Update web-container.yml --- .github/workflows/web-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index d75ad15..fdd5bae 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -58,7 +58,7 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-prod.yml@main with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} From e430ae795da98380681782078e138858ed718d39 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:14:47 -0400 Subject: [PATCH 31/66] Create web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/web-deploy-prod.yml diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml new file mode 100644 index 0000000..09ddbbc --- /dev/null +++ b/.github/workflows/web-deploy-prod.yml @@ -0,0 +1,53 @@ +name: Web Deployment Production +on: + workflow_call: + inputs: + environments: + type: string + description: An optional list of environments to deploy to. + default: '["prod"]' + workflow_type: + type: string + description: An optional string for workflow types. + default: 'prod' + branch: + type: string + description: An optional string to define which branch to checkout. + default: 'main' +jobs: + build: + if: inputs.workflow_type == 'release' + environment: ${{ input.environments }} + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Branch Checkout + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + - name: Login to Docker + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Docker Build Backend + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + - name: Docker Push Backend + run: docker push john4064/shiftsync:latest_web + # deploy: + # needs: build + # if: needs.build.result == 'success' && inputs.workflow_type == 'release' + # environment: ${{ input.environments }} + # runs-on: 'ubuntu-latest' + # permissions: + # contents: read + # packages: write + # steps: + # - name: Deploy to Coolify + # run: | + # echo ${{ inputs.workflow_type }} + # curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + From dcae4956c8cdda57e1f6d422f586a7e15d240e3f Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:16:00 -0400 Subject: [PATCH 32/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index fd46a34..93b1256 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -17,7 +17,7 @@ on: jobs: build: if: inputs.workflow_type != 'release' - environment: ${{ input.environments }} + environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' permissions: contents: read @@ -40,7 +40,7 @@ jobs: # deploy: # needs: build # if: needs.build.result == 'success' && inputs.workflow_type != 'release' - # environment: ${{ input.environments }} + # environment: ${{ inputs.environments }} # runs-on: 'ubuntu-latest' # permissions: # contents: read From 4e75470c95dca37f930424cbbfd6229a75144394 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:16:14 -0400 Subject: [PATCH 33/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 09ddbbc..b794521 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -17,7 +17,7 @@ on: jobs: build: if: inputs.workflow_type == 'release' - environment: ${{ input.environments }} + environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' permissions: contents: read @@ -40,7 +40,7 @@ jobs: # deploy: # needs: build # if: needs.build.result == 'success' && inputs.workflow_type == 'release' - # environment: ${{ input.environments }} + # environment: ${{ inputs.environments }} # runs-on: 'ubuntu-latest' # permissions: # contents: read From fb717e7ca69a391d653c05014d8d52cc22b05013 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:19:07 -0400 Subject: [PATCH 34/66] Update web-container.yml --- .github/workflows/web-container.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index fdd5bae..dfb4140 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -51,6 +51,9 @@ jobs: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} branch: ${{ github.ref_name }} + permissions: + contents: read + packages: write prod-deploy: needs: determine-workflow if: needs.determine-workflow.outputs.workflow_type == 'release' @@ -63,3 +66,6 @@ jobs: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} branch: ${{ github.ref_name }} + permissions: + contents: read + packages: write From 5d1b923d944e11c1015fb122d595ce589861ee22 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:22:51 -0400 Subject: [PATCH 35/66] Update web-container.yml --- .github/workflows/web-container.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index dfb4140..cc03388 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -50,7 +50,7 @@ jobs: with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} - branch: ${{ github.ref_name }} + branch: ${{ github.head_ref }} permissions: contents: read packages: write @@ -65,7 +65,7 @@ jobs: with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} - branch: ${{ github.ref_name }} + branch: ${{ github.head_ref }} permissions: contents: read packages: write From aa8e44b12abcc9f3787ccf83de1f27b8711ddd21 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:26:17 -0400 Subject: [PATCH 36/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 93b1256..acc58bf 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -15,6 +15,15 @@ on: description: An optional string to define which branch to checkout. default: 'main' jobs: + check-inputs: + runs-on: 'ubuntu-latest' + environment: ${{ inputs.environments }} + steps: + - name: Check secrets present + run: | + echo "User is set: ${{ secrets.DOCKERHUB_USER != '' }}" + echo "Token is set: ${{ secrets.DOCKERHUB_TOKEN != '' }}" + echo "Environment: ${{ inputs.environments }}" build: if: inputs.workflow_type != 'release' environment: ${{ inputs.environments }} From 405f770eddfe66eae1e413510a95cc9827d3d24a Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:30:01 -0400 Subject: [PATCH 37/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index acc58bf..01b8487 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -5,7 +5,7 @@ on: environments: type: string description: An optional list of environments to deploy to. - default: '["dev"]' + default: 'dev' workflow_type: type: string description: An optional string for workflow types. From 5ee89c3f66f10f4e4ac59c1edc16c089900e5799 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:36:11 -0400 Subject: [PATCH 38/66] Update web-container.yml --- .github/workflows/web-container.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index cc03388..4ff8928 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -46,11 +46,11 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-nonprod.yml@main + uses: .github/workflows/web-deploy-nonprod.yml@main with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} - branch: ${{ github.head_ref }} + branch: ${{ github.head_ref || github.ref_name }} permissions: contents: read packages: write @@ -61,11 +61,11 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: Doble-Technologies/ShiftSync-Website/.github/workflows/web-deploy-prod.yml@main + uses: .github/workflows/web-deploy-prod.yml@main with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} - branch: ${{ github.head_ref }} + branch: ${{ github.head_ref || github.ref_name }} permissions: contents: read packages: write From e132ad433d38e87c44050c0d1f028f7430bcaa70 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:36:58 -0400 Subject: [PATCH 39/66] Update web-container.yml --- .github/workflows/web-container.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index 4ff8928..ead0b72 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -46,7 +46,7 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: .github/workflows/web-deploy-nonprod.yml@main + uses: ./.github/workflows/web-deploy-nonprod.yml with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} @@ -61,7 +61,7 @@ jobs: max-parallel: 1 matrix: env: ${{ fromJson(needs.determine-workflow.outputs.workflow_envs) }} - uses: .github/workflows/web-deploy-prod.yml@main + uses: ./.github/workflows/web-deploy-prod.yml with: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} From 4b97dc2153531e96f10f505458e7c8f02bcd0eb2 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:40:36 -0400 Subject: [PATCH 40/66] Update web-container.yml From 3db8f0ffacab13a6bbf37eae60e054c0a09e7769 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:40:53 -0400 Subject: [PATCH 41/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 01b8487..8a3619f 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -14,6 +14,12 @@ on: type: string description: An optional string to define which branch to checkout. default: 'main' + secrets: + DOCKERHUB_USER: {} + DOCKERHUB_TOKEN: {} + TEST: {} + COOLIFY_WEBHOOK: {} + COOLIFY_TOKEN: {} jobs: check-inputs: runs-on: 'ubuntu-latest' From b3d04977ec2de696fee1f273e5749c824d464e39 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:43:01 -0400 Subject: [PATCH 42/66] Update web-container.yml --- .github/workflows/web-container.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index ead0b72..d553381 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -51,6 +51,12 @@ jobs: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} branch: ${{ github.head_ref || github.ref_name }} + secrets: + DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + TEST: ${{ secrets.TEST }} + COOLIFY_WEBHOOK: ${{ secrets.COOLIFY_WEBHOOK }} + COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }} permissions: contents: read packages: write @@ -66,6 +72,12 @@ jobs: environments: ${{ matrix.env }} workflow_type: ${{ needs.determine-workflow.outputs.workflow_type }} branch: ${{ github.head_ref || github.ref_name }} + secrets: + DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + TEST: ${{ secrets.TEST }} + COOLIFY_WEBHOOK: ${{ secrets.COOLIFY_WEBHOOK }} + COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }} permissions: contents: read packages: write From c501175bfbe9ec6d80cd2d3dc43901f693a9635f Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:44:01 -0400 Subject: [PATCH 43/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index b794521..a985b2e 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -14,6 +14,12 @@ on: type: string description: An optional string to define which branch to checkout. default: 'main' + secrets: + DOCKERHUB_USER: {} + DOCKERHUB_TOKEN: {} + TEST: {} + COOLIFY_WEBHOOK: {} + COOLIFY_TOKEN: {} jobs: build: if: inputs.workflow_type == 'release' From 132983505739441783c81dd2c7bb609e0b6e6e4e Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:46:27 -0400 Subject: [PATCH 44/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 27 +++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 8a3619f..1ea8126 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -27,9 +27,30 @@ jobs: steps: - name: Check secrets present run: | - echo "User is set: ${{ secrets.DOCKERHUB_USER != '' }}" - echo "Token is set: ${{ secrets.DOCKERHUB_TOKEN != '' }}" - echo "Environment: ${{ inputs.environments }}" + if [[ -z "${{ secrets.COOLIFY_WEBHOOK }}" ]]; then + echo "COOLIFY_WEBHOOK secret is empty or missing" + exit 1 + else + echo "COOLIFY_WEBHOOK secret is set" + fi + if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then + echo "COOLIFY_TOKEN secret is empty or missing" + exit 1 + else + echo "COOLIFY_TOKEN secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then + echo "DOCKERHUB_USER secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_USER secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then + echo "DOCKERHUB_TOKEN secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_TOKEN secret is set" + fi build: if: inputs.workflow_type != 'release' environment: ${{ inputs.environments }} From 8b183b7b7da6c6857ef38874daddeaf258ecd10a Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:46:59 -0400 Subject: [PATCH 45/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index a985b2e..a6f4f18 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -21,6 +21,36 @@ on: COOLIFY_WEBHOOK: {} COOLIFY_TOKEN: {} jobs: + check-inputs: + runs-on: 'ubuntu-latest' + environment: ${{ inputs.environments }} + steps: + - name: Check secrets present + run: | + if [[ -z "${{ secrets.COOLIFY_WEBHOOK }}" ]]; then + echo "COOLIFY_WEBHOOK secret is empty or missing" + exit 1 + else + echo "COOLIFY_WEBHOOK secret is set" + fi + if [[ -z "${{ secrets.COOLIFY_TOKEN }}" ]]; then + echo "COOLIFY_TOKEN secret is empty or missing" + exit 1 + else + echo "COOLIFY_TOKEN secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_USER }}" ]]; then + echo "DOCKERHUB_USER secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_USER secret is set" + fi + if [[ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then + echo "DOCKERHUB_TOKEN secret is empty or missing" + exit 1 + else + echo "DOCKERHUB_TOKEN secret is set" + fi build: if: inputs.workflow_type == 'release' environment: ${{ inputs.environments }} From bc9602f6aacc874bc07ea4f2b8f3b1468f8afee5 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:48:19 -0400 Subject: [PATCH 46/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index a6f4f18..e8d2645 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -5,7 +5,7 @@ on: environments: type: string description: An optional list of environments to deploy to. - default: '["prod"]' + default: 'prod' workflow_type: type: string description: An optional string for workflow types. From f81dc9e789301fd7bfdd863e0697cbe703b76100 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:53:33 -0400 Subject: [PATCH 47/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 1ea8126..a63d493 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -73,17 +73,17 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web - # deploy: - # needs: build - # if: needs.build.result == 'success' && inputs.workflow_type != 'release' - # environment: ${{ inputs.environments }} - # runs-on: 'ubuntu-latest' - # permissions: - # contents: read - # packages: write - # steps: - # - name: Deploy to Coolify - # run: | - # echo ${{ inputs.workflow_type }} - # curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type != 'release' + environment: ${{ inputs.environments }} + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + echo ${{ inputs.workflow_type }} + curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From d63e7bd88f02cb47e7bfb67fd5944dc27ce19969 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:53:48 -0400 Subject: [PATCH 48/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index e8d2645..4f6b9c7 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -73,17 +73,17 @@ jobs: run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web - # deploy: - # needs: build - # if: needs.build.result == 'success' && inputs.workflow_type == 'release' - # environment: ${{ inputs.environments }} - # runs-on: 'ubuntu-latest' - # permissions: - # contents: read - # packages: write - # steps: - # - name: Deploy to Coolify - # run: | - # echo ${{ inputs.workflow_type }} - # curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + deploy: + needs: build + if: needs.build.result == 'success' && inputs.workflow_type == 'release' + environment: ${{ inputs.environments }} + runs-on: 'ubuntu-latest' + permissions: + contents: read + packages: write + steps: + - name: Deploy to Coolify + run: | + echo ${{ inputs.workflow_type }} + curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From 341a5dad74d347a03f1789d6a6090bcf1434990e Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:55:43 -0400 Subject: [PATCH 49/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index a63d493..00e51f2 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -84,6 +84,5 @@ jobs: steps: - name: Deploy to Coolify run: | - echo ${{ inputs.workflow_type }} curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From 12af49553b5ada3c23ead376900bd2756e4480dd Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:55:54 -0400 Subject: [PATCH 50/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 4f6b9c7..2bcab29 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -84,6 +84,5 @@ jobs: steps: - name: Deploy to Coolify run: | - echo ${{ inputs.workflow_type }} curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' From c719de930aa376ca1d69df128162bb56f620788b Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:57:07 -0400 Subject: [PATCH 51/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 2bcab29..9c9b08c 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -52,6 +52,7 @@ jobs: echo "DOCKERHUB_TOKEN secret is set" fi build: + needs: check-inputs if: inputs.workflow_type == 'release' environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' From 6fd6765173ca576906b3da3fd4c1cb3cbb8bc959 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:57:20 -0400 Subject: [PATCH 52/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index 00e51f2..e132680 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -52,6 +52,7 @@ jobs: echo "DOCKERHUB_TOKEN secret is set" fi build: + needs: check-inputs if: inputs.workflow_type != 'release' environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' From e3633c81554f9112709309b8b75b0b14a9ac6c17 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:58:28 -0400 Subject: [PATCH 53/66] Update web-deploy-nonprod.yml --- .github/workflows/web-deploy-nonprod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index e132680..e2fe9e0 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -53,7 +53,7 @@ jobs: fi build: needs: check-inputs - if: inputs.workflow_type != 'release' + if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' permissions: From a236cda73883c9bfc998970237d513e269cec655 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 15:58:43 -0400 Subject: [PATCH 54/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 9c9b08c..7e01082 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -53,7 +53,7 @@ jobs: fi build: needs: check-inputs - if: inputs.workflow_type == 'release' + if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' permissions: From 3dba630c23dd8d41f1cec420d59cbc2e44ee6126 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 19:01:08 -0400 Subject: [PATCH 55/66] push version (#8) * push version * Update Home.jsx * Update Home.jsx * Changes * Update vite.config.js * Update vite.config.js * New Tag Update * Update vite.config.js * Change dev/prod ones * Update vite.config.js * Dockerfile update * Update Dockerfile * Update Dockerfile * Update vite.config.js * Update vite.config.js * Update vite.config.js * Update vite.config.js * Update vite.config.js --------- Co-authored-by: John Parkhurst --- .github/workflows/web-deploy-nonprod.yml | 2 +- .github/workflows/web-deploy-prod.yml | 4 +-- package.json | 4 +-- web/Dockerfile | 8 ++--- web/docker-compose.yaml | 2 +- web/package-lock.json | 13 ++----- web/package.json | 6 ++-- web/src/pages/Home/Home.jsx | 2 ++ web/vite.config.js | 45 ++++++++++++++++++------ 9 files changed, 53 insertions(+), 33 deletions(-) diff --git a/.github/workflows/web-deploy-nonprod.yml b/.github/workflows/web-deploy-nonprod.yml index e2fe9e0..ab168ef 100644 --- a/.github/workflows/web-deploy-nonprod.yml +++ b/.github/workflows/web-deploy-nonprod.yml @@ -71,7 +71,7 @@ jobs: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg ENVIRONMENT=dev - name: Docker Push Backend run: docker push john4064/shiftsync:latest_web deploy: diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index 7e01082..f1d000d 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -71,9 +71,9 @@ jobs: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker Build Backend - run: docker build -f web/Dockerfile -t john4064/shiftsync:latest_web ./web --build-arg TEST=${{ secrets.TEST }} + run: docker build -f web/Dockerfile -t john4064/shiftsync:prod_web ./web --build-arg ENVIRONMENT=prod - name: Docker Push Backend - run: docker push john4064/shiftsync:latest_web + run: docker push john4064/shiftsync:prod_web deploy: needs: build if: needs.build.result == 'success' && inputs.workflow_type == 'release' diff --git a/package.json b/package.json index 69ef0b7..99c9cbc 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "shiftsync-website", "private": true, - "version": "1.0.1", + "version": "0.0.0", "main": "index.js", "scripts": { "api": "npm run dev --prefix api", - "web": "npm run dev --prefix web", + "web": "npm run local --prefix web", "dev": "concurrently \"npm run api\" \"npm run web\"", "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/web/Dockerfile b/web/Dockerfile index 43b4327..fa76806 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -2,9 +2,6 @@ FROM node:20-alpine WORKDIR /app -RUN echo ":tools: Listing context:" && ls -R . && echo "************************" - - COPY ./package*.json ./ RUN npm ci @@ -14,5 +11,8 @@ COPY . ./ EXPOSE 5173 EXPOSE 5171 +ARG ENVIRONMENT +ENV ENVIRONMENT ${ENVIRONMENT} +RUN echo ${ENVIRONMENT} -CMD ["npm", "run", "dev"] +CMD npm run ${ENVIRONMENT} diff --git a/web/docker-compose.yaml b/web/docker-compose.yaml index e5d5886..11d208e 100644 --- a/web/docker-compose.yaml +++ b/web/docker-compose.yaml @@ -1,6 +1,6 @@ services: shiftsync-web: - image: 'docker.io/john4064/shiftsync:latest_web' + image: 'docker.io/john4064/shiftsync:prod_web' environment: - 'TESTVAR=${COOLIFY_VAR}' volumes: diff --git a/web/package-lock.json b/web/package-lock.json index 4fac8da..dfe5eb3 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1748,9 +1748,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, "license": "MIT" }, @@ -3488,13 +3488,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup/node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", diff --git a/web/package.json b/web/package.json index ba586dd..1653901 100644 --- a/web/package.json +++ b/web/package.json @@ -1,10 +1,12 @@ { "name": "shiftsync-website-web", "private": true, - "version": "1.0.0", + "version": "1.0.1", "type": "module", "scripts": { - "dev": "vite --host", + "local": "vite", + "dev": "vite --host --mode dev", + "prod": "vite --host --mode prod", "build": "vite build", "lint": "eslint .", "preview": "vite preview" diff --git a/web/src/pages/Home/Home.jsx b/web/src/pages/Home/Home.jsx index e783380..4a75291 100644 --- a/web/src/pages/Home/Home.jsx +++ b/web/src/pages/Home/Home.jsx @@ -1,6 +1,7 @@ import React, { useEffect } from 'react'; import { Link } from 'react-router-dom'; import { useLocalStore } from '@components'; +import pkg from '../../../package.json'; export const Home = () => { @@ -16,6 +17,7 @@ export const Home = () => {

Home Page

Go to Settings +

Version: {pkg.version}

); }; diff --git a/web/vite.config.js b/web/vite.config.js index 3be5fa9..ffaabbd 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -3,16 +3,39 @@ import react from '@vitejs/plugin-react'; import path from 'path'; // https://vite.dev/config/ -export default defineConfig({ - plugins: [react()], - server:{ - host: true, - allowedHosts: ['shift.code-catalyst.com'] - }, - resolve: { - alias: { - '@src': path.resolve(__dirname, 'src'), - '@components': path.resolve(__dirname, 'components') +export default defineConfig(({ mode = 'local' }) => { + const isDev = mode === 'dev'; + const isProd = mode === 'prod'; + + return { + plugins: [react()], + server:{ + host: true, + allowedHosts: ['.code-catalyst.com'], + cors: true, + hmr: isDev + ? { + protocol: 'wss', + host: 'shift-dev.code-catalyst.com', + clientPort: 443, + } + : isProd ? + { + protocol: 'wss', + host: 'shift.code-catalyst.com', + clientPort: 443, + } + : { + protocol: 'wss', + host: 'localhost', + clientPort: 443, + }, }, - }, + resolve: { + alias: { + '@src': path.resolve(__dirname, 'src'), + '@components': path.resolve(__dirname, 'components') + }, + }, + } }); From 53baab7ef52f3c2e38ab4ea4e5bde9690dd935ea Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 19:03:53 -0400 Subject: [PATCH 56/66] Update Dockerfile --- web/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/web/Dockerfile b/web/Dockerfile index fa76806..21b3560 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -13,6 +13,5 @@ EXPOSE 5171 ARG ENVIRONMENT ENV ENVIRONMENT ${ENVIRONMENT} -RUN echo ${ENVIRONMENT} CMD npm run ${ENVIRONMENT} From 3391da14ce706d1745390ad453db3741f2898e12 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 21:56:49 -0400 Subject: [PATCH 57/66] Update web-container.yml --- .github/workflows/web-container.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/web-container.yml b/.github/workflows/web-container.yml index d553381..c910578 100644 --- a/.github/workflows/web-container.yml +++ b/.github/workflows/web-container.yml @@ -31,6 +31,7 @@ jobs: workflow_envs='["dev"]' if [[ $event == 'workflow_dispatch' && '${{ github.ref_name }}' == 'main' ]]; then + echo "in if statement" workflow_type='release'; workflow_envs='["prod"]' fi From 8c069788438bf34c5b07ea1569f3c32411cb4e21 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Wed, 11 Jun 2025 21:58:17 -0400 Subject: [PATCH 58/66] Update web-deploy-prod.yml --- .github/workflows/web-deploy-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web-deploy-prod.yml b/.github/workflows/web-deploy-prod.yml index f1d000d..09152e9 100644 --- a/.github/workflows/web-deploy-prod.yml +++ b/.github/workflows/web-deploy-prod.yml @@ -53,7 +53,7 @@ jobs: fi build: needs: check-inputs - if: needs.check-inputs.result == 'success' && inputs.workflow_type != 'release' + if: needs.check-inputs.result == 'success' && inputs.workflow_type == 'release' environment: ${{ inputs.environments }} runs-on: 'ubuntu-latest' permissions: From a2ce912ee8506ceee7353a94f7afb195465dba6b Mon Sep 17 00:00:00 2001 From: John Parkhurst Date: Wed, 11 Jun 2025 22:15:00 -0400 Subject: [PATCH 59/66] Update vite.config.js (#12) * Update vite.config.js * Update package.json --- web/package.json | 2 +- web/vite.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/package.json b/web/package.json index 1653901..375ebcd 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "shiftsync-website-web", "private": true, - "version": "1.0.1", + "version": "1.0.2", "type": "module", "scripts": { "local": "vite", diff --git a/web/vite.config.js b/web/vite.config.js index ffaabbd..51ebd1c 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -11,7 +11,7 @@ export default defineConfig(({ mode = 'local' }) => { plugins: [react()], server:{ host: true, - allowedHosts: ['.code-catalyst.com'], + allowedHosts: true, cors: true, hmr: isDev ? { From 9053ca0b4473e06626508eb6a08b0f1344405bb2 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 09:57:08 -0400 Subject: [PATCH 60/66] Add HMR Injection --- web/index.html | 1 + web/public/hmr-runtime-inject.js | 5 ++++ web/vite.config.js | 47 +++++++++----------------------- 3 files changed, 19 insertions(+), 34 deletions(-) create mode 100644 web/public/hmr-runtime-inject.js diff --git a/web/index.html b/web/index.html index 05efba8..2246b38 100644 --- a/web/index.html +++ b/web/index.html @@ -6,6 +6,7 @@ + ShiftSync diff --git a/web/public/hmr-runtime-inject.js b/web/public/hmr-runtime-inject.js new file mode 100644 index 0000000..6868556 --- /dev/null +++ b/web/public/hmr-runtime-inject.js @@ -0,0 +1,5 @@ +window.__vite_plugin_hmrOptions = { + protocol: location.protocol === 'https:' ? 'wss' : 'ws', + host: location.hostname, + port: location.port || (location.protocol === 'https:' ? 443 : 80), +}; \ No newline at end of file diff --git a/web/vite.config.js b/web/vite.config.js index 51ebd1c..deaa114 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -3,39 +3,18 @@ import react from '@vitejs/plugin-react'; import path from 'path'; // https://vite.dev/config/ -export default defineConfig(({ mode = 'local' }) => { - const isDev = mode === 'dev'; - const isProd = mode === 'prod'; - - return { - plugins: [react()], - server:{ - host: true, - allowedHosts: true, - cors: true, - hmr: isDev - ? { - protocol: 'wss', - host: 'shift-dev.code-catalyst.com', - clientPort: 443, - } - : isProd ? - { - protocol: 'wss', - host: 'shift.code-catalyst.com', - clientPort: 443, - } - : { - protocol: 'wss', - host: 'localhost', - clientPort: 443, - }, +export default defineConfig({ + plugins: [react()], + server:{ + host: true, + allowedHosts: true, + cors: true, + hmr: true + }, + resolve: { + alias: { + '@src': path.resolve(__dirname, 'src'), + '@components': path.resolve(__dirname, 'components') }, - resolve: { - alias: { - '@src': path.resolve(__dirname, 'src'), - '@components': path.resolve(__dirname, 'components') - }, - }, - } + }, }); From d6bdfae44fdf626f1b56d7557e1564b602ca9460 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 09:57:41 -0400 Subject: [PATCH 61/66] ver bump --- web/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/package.json b/web/package.json index 375ebcd..f0ccc82 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "shiftsync-website-web", "private": true, - "version": "1.0.2", + "version": "1.0.3", "type": "module", "scripts": { "local": "vite", From e7453bf4114295d64681ab448ddee38d55976e65 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 10:19:09 -0400 Subject: [PATCH 62/66] Update index.html --- web/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/index.html b/web/index.html index 2246b38..933180d 100644 --- a/web/index.html +++ b/web/index.html @@ -6,7 +6,7 @@ - + ShiftSync From 0fd1678627759eede773cff90427a4378c8d8e7a Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 10:25:26 -0400 Subject: [PATCH 63/66] update versions --- package-lock.json | 4 ++-- web/package-lock.json | 56 +++++++++++++++++++++++++++++-------------- web/package.json | 2 +- web/vite.config.js | 4 ++++ 4 files changed, 45 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index deee5be..c3e5595 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "shiftsync-website", - "version": "1.0.1", + "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "shiftsync-website", - "version": "1.0.1", + "version": "0.0.0", "dependencies": { "cors": "^2.8.5", "express": "^5.1.0" diff --git a/web/package-lock.json b/web/package-lock.json index dfe5eb3..d7a010a 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "shiftsync-website-web", - "version": "1.0.0", + "version": "1.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "shiftsync-website-web", - "version": "1.0.0", + "version": "1.0.4", "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", @@ -947,9 +947,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", - "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", + "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -962,9 +962,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", - "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", + "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1045,19 +1045,32 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", - "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", + "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.14.0", + "@eslint/core": "^0.15.0", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz", + "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1748,9 +1761,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -3257,9 +3270,9 @@ } }, "node_modules/postcss": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", - "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", + "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", "dev": true, "funding": [ { @@ -3488,6 +3501,13 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", diff --git a/web/package.json b/web/package.json index f0ccc82..236e5a4 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "shiftsync-website-web", "private": true, - "version": "1.0.3", + "version": "1.0.4", "type": "module", "scripts": { "local": "vite", diff --git a/web/vite.config.js b/web/vite.config.js index deaa114..68c4221 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -11,7 +11,11 @@ export default defineConfig({ cors: true, hmr: true }, + optimizeDeps: { + include: ['react', 'react-dom'], + }, resolve: { + dedupe: ['react', 'react-dom'], alias: { '@src': path.resolve(__dirname, 'src'), '@components': path.resolve(__dirname, 'components') From 0e696e05ccbaf29780405711a0aa188d2adbefa0 Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 12:57:25 -0400 Subject: [PATCH 64/66] Add builds --- web/index.html | 1 + web/src/router/AppRouter.jsx | 10 ++++++++++ web/vite.config.js | 12 +++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/web/index.html b/web/index.html index 933180d..5ca2263 100644 --- a/web/index.html +++ b/web/index.html @@ -7,6 +7,7 @@ + ShiftSync diff --git a/web/src/router/AppRouter.jsx b/web/src/router/AppRouter.jsx index 19d6710..5fa17a6 100644 --- a/web/src/router/AppRouter.jsx +++ b/web/src/router/AppRouter.jsx @@ -69,6 +69,16 @@ const AppRouter = () => { }; useEffect(() => { + const localVersion = localStorage.getItem("APP_VERSION"); + const currentVersion = window.APP_VERSION; + + if (localVersion && localVersion !== currentVersion) { + console.log("Version changed, forcing reload"); + localStorage.setItem("APP_VERSION", currentVersion); + window.location.reload(true); // force full page reload + } else { + localStorage.setItem("APP_VERSION", currentVersion); + } fetchAPI(); // await call for getting the count of employees and any other calls to db. diff --git a/web/vite.config.js b/web/vite.config.js index 68c4221..1dba73d 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -1,10 +1,20 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; +import pkg from './package.json'; // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + { + name: 'html-transform', + transformIndexHtml(html) { + return html + .replace(/__appVersion__/g, pkg.version) + } + } + ], server:{ host: true, allowedHosts: true, From c835c78fafb643e0c56e411900bd7f5a825e7a5b Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 13:21:47 -0400 Subject: [PATCH 65/66] Update vite.config.js --- web/vite.config.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/vite.config.js b/web/vite.config.js index 1dba73d..c0e1bf1 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -31,4 +31,14 @@ export default defineConfig({ '@components': path.resolve(__dirname, 'components') }, }, + build: { + assetsDir: 'assets', + rollupOptions: { + output: { + entryFileNames: `assets/[name].[hash].js`, + chunkFileNames: `assets/[name].[hash].js`, + assetFileNames: `assets/[name].[hash].[ext]`, + }, + }, + } }); From 3e93de707e78737a06c49b36183b97e9f929a6cd Mon Sep 17 00:00:00 2001 From: Matt DiMeglio Date: Thu, 12 Jun 2025 13:38:10 -0400 Subject: [PATCH 66/66] Ver bump --- web/package-lock.json | 4 ++-- web/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d7a010a..9512d68 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "shiftsync-website-web", - "version": "1.0.4", + "version": "1.0.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "shiftsync-website-web", - "version": "1.0.4", + "version": "1.0.5", "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", diff --git a/web/package.json b/web/package.json index 236e5a4..495e058 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "shiftsync-website-web", "private": true, - "version": "1.0.4", + "version": "1.0.5", "type": "module", "scripts": { "local": "vite",