From 463c5e765545fada8f197c4ada51da3e9ff61236 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Tue, 16 Jun 2026 10:45:23 +0000 Subject: [PATCH 1/3] Added extensions and updated files --- .devcontainer/Dockerfile | 2 +- .devcontainer/devcontainer.json | 11 +++++++---- .github/workflows/_lint.yaml | 12 ++++++------ .github/workflows/_tests.yaml | 6 +++--- .github/workflows/actions.yaml | 7 ++++--- .husky/pre-commit | 3 +-- public/vite.svg | 1 - 7 files changed, 22 insertions(+), 20 deletions(-) delete mode 100644 public/vite.svg diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 00c8774..a7aae21 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # Base stage with Node.js and pnpm -FROM node:20-bullseye AS base +FROM node:24-bullseye AS base WORKDIR /workspaces # Install system dependencies diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0b9672f..84eb3b1 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,17 +8,20 @@ "customizations": { "vscode": { "extensions": [ - "ms-vscode.vscode-typescript-next", "esbenp.prettier-vscode", "ms-vscode.vscode-json", - "redhat.vscode-yaml" + "redhat.vscode-yaml", + "aaron-bond.better-comments", + "dbaeumer.vscode-eslint", + "vitest.explorer", + "usernamehw.errorlens" ], "settings": { - "typescript.preferences.preferTypeOnlyAutoImports": true, + "js/ts.preferences.preferTypeOnlyAutoImports": true, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { - "source.fixAll.eslint": "always" + "source.fixAll.eslint": "explicit" } } } diff --git a/.github/workflows/_lint.yaml b/.github/workflows/_lint.yaml index 0e5f965..3cf0171 100644 --- a/.github/workflows/_lint.yaml +++ b/.github/workflows/_lint.yaml @@ -5,24 +5,24 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v3 + - name: Checkout code + uses: actions/checkout@v4 + + - name: Use pnpm + uses: pnpm/action-setup@v3 with: version: 10 - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 24 cache: "pnpm" cache-dependency-path: "**/pnpm-lock.yaml" - name: Install dependencies run: pnpm install --frozen-lockfile - - name: Run audit - run: pnpm audit --audit-level=high - - name: Run Prettier run: pnpm run prettier diff --git a/.github/workflows/_tests.yaml b/.github/workflows/_tests.yaml index a8b2880..27a8220 100644 --- a/.github/workflows/_tests.yaml +++ b/.github/workflows/_tests.yaml @@ -4,14 +4,14 @@ on: workflow_call: jobs: - build: + test: runs-on: ubuntu-latest strategy: matrix: node-version: [22, 24] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Use pnpm uses: pnpm/action-setup@v3 @@ -19,7 +19,7 @@ jobs: version: 10 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" diff --git a/.github/workflows/actions.yaml b/.github/workflows/actions.yaml index 5c86a76..97a57eb 100644 --- a/.github/workflows/actions.yaml +++ b/.github/workflows/actions.yaml @@ -2,7 +2,7 @@ name: Deploy static content to Pages on: push: - branches: ["add-actions"] + branches: ["main"] workflow_dispatch: permissions: @@ -32,11 +32,12 @@ jobs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 24 cache: "pnpm" + cache-dependency-path: "**/pnpm-lock.yaml" - name: Install dependencies - run: pnpm i + run: pnpm install --frozen-lockfile - name: Build run: pnpm run build diff --git a/.husky/pre-commit b/.husky/pre-commit index 9c48ce3..dd86b17 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,3 +1,2 @@ pnpm run lint -pnpm run prettier -pnpm test +pnpm run prettier \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 29b8b3b8811fc9f2bbf7e7afac1ef7cd8b1ea913 Mon Sep 17 00:00:00 2001 From: Tamoor Shahid Date: Tue, 16 Jun 2026 10:47:52 +0000 Subject: [PATCH 2/3] Another dockerfile update --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6926bc8..f1ce61f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-alpine AS base +FROM node:24-alpine AS base # Use a consistent working directory across all stages WORKDIR /app From fa99e9956be70f89ab643752ffab86d6a312d5c2 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 17 Jul 2026 13:57:47 +0000 Subject: [PATCH 3/3] PNPM configuration updated for v11 and dev container lock file added. --- .devcontainer/devcontainer-lock.json | 9 +++ package.json | 8 --- pnpm-lock.yaml | 85 +++++++++++++++++++--------- pnpm-workspace.yaml | 7 +++ 4 files changed, 74 insertions(+), 35 deletions(-) create mode 100644 .devcontainer/devcontainer-lock.json diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 0000000..6d1dc46 --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,9 @@ +{ + "features": { + "ghcr.io/diamondlightsource/devcontainer-features/bash-config:1": { + "version": "1.0.3", + "resolved": "ghcr.io/diamondlightsource/devcontainer-features/bash-config@sha256:5b32dfbc5d02a04b200eba276b5f21b6fce31658e8965f7c4b25c002b46dab4c", + "integrity": "sha256:5b32dfbc5d02a04b200eba276b5f21b6fce31658e8965f7c4b25c002b46dab4c" + } + } +} diff --git a/package.json b/package.json index 7b3aa46..e524532 100644 --- a/package.json +++ b/package.json @@ -66,14 +66,6 @@ "vite": "^5.4.21", "vitest": "^3.2.4" }, - "pnpm": { - "overrides": { - "ajv": "^6.12.6", - "esbuild@<=0.24.2": ">=0.25.0", - "minimatch@>=9.0.0 <9.0.6": ">=9.0.6", - "minimatch@>=9.0.0 <9.0.7": ">=9.0.7" - } - }, "imports": { "#/*": "./src/*.ts" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de9b661..457f8ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,10 +5,14 @@ settings: excludeLinksFromLockfile: false overrides: - ajv: ^6.12.6 + ajv@<6.14.0: ">=6.14.0" + ajv@>=7.0.0-alpha.0 <8.18.0: ">=8.18.0" esbuild@<=0.24.2: ">=0.25.0" + minimatch@>=10.0.0 <10.2.3: ">=10.2.3" minimatch@>=9.0.0 <9.0.6: ">=9.0.6" minimatch@>=9.0.0 <9.0.7: ">=9.0.7" + rollup@>=4.0.0 <4.59.0: ">=4.59.0" + serialize-javascript@<=7.0.2: ">=7.0.3" importers: .: @@ -1940,6 +1944,7 @@ packages: { integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, } + deprecated: Potential CWE-502 - Update to 1.3.1 or higher "@vitejs/plugin-react-swc@3.11.0": resolution: @@ -2195,7 +2200,7 @@ packages: integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, } peerDependencies: - ajv: ^6.12.6 + ajv: ">=8.18.0" peerDependenciesMeta: ajv: optional: true @@ -2206,7 +2211,7 @@ packages: integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, } peerDependencies: - ajv: ^6.12.6 + ajv: ">=8.18.0" ajv@6.14.0: resolution: @@ -2214,6 +2219,12 @@ packages: integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==, } + ajv@8.20.0: + resolution: + { + integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==, + } + almost-equal@1.1.0: resolution: { @@ -3646,6 +3657,12 @@ packages: integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, } + fast-uri@3.1.3: + resolution: + { + integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==, + } + fastq@1.20.1: resolution: { @@ -4611,6 +4628,12 @@ packages: integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, } + json-schema-traverse@1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } + json-stable-stringify-without-jsonify@1.0.1: resolution: { @@ -4851,20 +4874,7 @@ packages: { integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==, } - - minimatch@9.0.3: - resolution: - { - integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, - } - engines: { node: ">=16 || 14 >=14.17" } - - minimatch@9.0.9: - resolution: - { - integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==, - } - engines: { node: ">=16 || 14 >=14.17" } + engines: { node: 18 || 20 || >=22 } minimatch@3.1.5: resolution: @@ -5678,6 +5688,13 @@ packages: integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==, } + require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } + require-relative@0.8.7: resolution: { @@ -6603,6 +6620,7 @@ packages: { integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, } + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true vite-node@3.2.4: @@ -7348,8 +7366,8 @@ snapshots: "@jsonforms/core@3.7.0": dependencies: "@types/json-schema": 7.0.15 - ajv: 6.14.0 - ajv-formats: 2.1.1(ajv@6.14.0) + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) lodash: 4.17.23 "@jsonforms/material-renderers@3.7.0(084ffb6e2cd7bbd51e9104c649105a46)": @@ -7414,7 +7432,7 @@ snapshots: "@microsoft/tsdoc-config@0.17.1": dependencies: "@microsoft/tsdoc": 0.15.1 - ajv: 6.14.0 + ajv: 8.20.0 jju: 1.4.0 resolve: 1.22.11 @@ -8221,13 +8239,13 @@ snapshots: agent-base@7.1.4: {} - ajv-formats@2.1.1(ajv@6.14.0): + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: - ajv: 6.14.0 + ajv: 8.20.0 - ajv-keywords@5.1.0(ajv@6.14.0): + ajv-keywords@5.1.0(ajv@8.20.0): dependencies: - ajv: 6.14.0 + ajv: 8.20.0 fast-deep-equal: 3.1.3 ajv@6.14.0: @@ -8237,6 +8255,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + almost-equal@1.1.0: {} ansi-regex@2.1.1: {} @@ -9246,6 +9271,8 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-uri@3.1.3: {} + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -9834,6 +9861,8 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-pretty-compact@4.0.0: {} @@ -10561,6 +10590,8 @@ snapshots: remove-accents@0.5.0: {} + require-from-string@2.0.2: {} + require-relative@0.8.7: {} reselect@5.1.1: {} @@ -10673,9 +10704,9 @@ snapshots: schema-utils@4.3.3: dependencies: "@types/json-schema": 7.0.15 - ajv: 6.14.0 - ajv-formats: 2.1.1(ajv@6.14.0) - ajv-keywords: 5.1.0(ajv@6.14.0) + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) semver@6.3.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ee45ce4..61e8ae4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,10 @@ +allowBuilds: + "@swc/core": true + bufferutil: false + es5-ext: false + esbuild: true + utf-8-validate: false + ignoredBuiltDependencies: - "@swc/core"