From d8c9cc25d4ab395de5c03564af44cdc43f12251f Mon Sep 17 00:00:00 2001 From: Gian Lazzarini <1166579+gianlazz@users.noreply.github.com> Date: Wed, 10 Jun 2026 21:37:33 -0700 Subject: [PATCH 1/2] rolled back to nodejs v22 due to lack of prebuilt better-sqlite dep --- .github/workflows/github-actions-ci.yml | 2 +- .github/workflows/playwright.yml | 2 +- .nvmrc | 2 +- docker/Dockerfile | 4 +- package-lock.json | 143 +++++++++++++++++------- package.json | 2 +- 6 files changed, 109 insertions(+), 46 deletions(-) diff --git a/.github/workflows/github-actions-ci.yml b/.github/workflows/github-actions-ci.yml index ead3924..3d58811 100644 --- a/.github/workflows/github-actions-ci.yml +++ b/.github/workflows/github-actions-ci.yml @@ -2,7 +2,7 @@ name: Github Actions CI on: [push] env: - NODE_VERSION: "24.x" # set this to the node version to use + NODE_VERSION: "22.x" # set this to the node version to use jobs: back-end-ci: diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 82af776..32f5246 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 24.x + node-version: 22.x - name: Install dependencies run: npm ci - name: Install Playwright Browsers diff --git a/.nvmrc b/.nvmrc index eb6ead3..c004e35 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v24.16.0 +v22.20.0 diff --git a/docker/Dockerfile b/docker/Dockerfile index 5f67e45..2585c15 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ # Build stage -FROM node:24 AS builder +FROM node:22 AS builder # Create app directory WORKDIR /app @@ -24,7 +24,7 @@ COPY workbox-config.js . RUN npm run build # Production stage -FROM node:24-slim +FROM node:22-slim WORKDIR /app diff --git a/package-lock.json b/package-lock.json index 3c586ef..f2b4fdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -98,7 +98,7 @@ "workbox-strategies": "^7.3.0" }, "engines": { - "node": "24.x" + "node": "22.x" } }, "node_modules/@angular-devkit/schematics": { @@ -218,6 +218,24 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@angular-devkit/schematics-cli/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/schematics-cli/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -225,6 +243,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@angular-devkit/schematics-cli/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/schematics-cli/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -290,6 +324,24 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@angular-devkit/schematics/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/schematics/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -297,6 +349,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -6004,9 +6072,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6024,9 +6089,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6044,9 +6106,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6064,9 +6123,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6084,9 +6140,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6104,9 +6157,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6124,9 +6174,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6791,6 +6838,24 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@nestjs/schematics/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nestjs/schematics/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -6798,6 +6863,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@nestjs/schematics/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nestjs/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -8516,9 +8597,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -8536,9 +8614,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -8556,9 +8631,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -8576,9 +8648,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -8596,9 +8665,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -8616,9 +8682,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ diff --git a/package.json b/package.json index 80fce0a..66f09f2 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": true, "license": "UNLICENSED", "engines": { - "node": "24.x" + "node": "22.x" }, "scripts": { "build": "nest build && npm run generate", From d2bf082b143a617a31263f3c2d7c3de291daa6c7 Mon Sep 17 00:00:00 2001 From: Gian Lazzarini <1166579+gianlazz@users.noreply.github.com> Date: Wed, 10 Jun 2026 21:39:19 -0700 Subject: [PATCH 2/2] removed problematic global safe-area-inset css --- views/layout.hbs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/views/layout.hbs b/views/layout.hbs index ff26b47..f895c7c 100644 --- a/views/layout.hbs +++ b/views/layout.hbs @@ -57,12 +57,11 @@ https://nestjs-i18n.com/quick-start --}} swaps out the body of the html with the response. This results in a smoother user experience where the body gets swapped out without a full page reload similar to a SPA. https://htmx.org/attributes/hx-boost/ - https://htmx.org/quirks/#some-people-don-t-like-hx-boost - safe-area-inset-bottom ensures smartphone nav doesnt interfere with UI. }} + https://htmx.org/quirks/#some-people-don-t-like-hx-boost}} {{! Caution: Triple brackets in handlebarsjs disables auto-escaping and may pose a XSS risk with HTMX. However the exception to this rule is when