From c1a9a06786a66731185a6657067b654302983da8 Mon Sep 17 00:00:00 2001 From: petruki <31597636+petruki@users.noreply.github.com> Date: Wed, 27 May 2026 17:05:17 -0700 Subject: [PATCH] chore(deps): bump Deno 2.8.1, validator4oak@1.3.1, dotenv@0.225.7 --- .devcontainer/Dockerfile | 2 +- .github/workflows/master.yml | 6 +-- .github/workflows/re-release.yml | 4 +- .github/workflows/release.yml | 4 +- .github/workflows/sonar.yml | 8 ++-- Dockerfile | 2 +- README.md | 1 + deno.lock | 69 ++++++++++++++++---------------- src/deps.ts | 4 +- src/routes/feature.ts | 6 +-- 10 files changed, 54 insertions(+), 52 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 6443b2d..aad8448 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:2.7.13 +FROM denoland/deno:2.8.1 # Install tools RUN apt-get update && \ diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index b5adef1..7898fe9 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -17,10 +17,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.7.13 + - name: Setup Deno v2.8.1 uses: denoland/setup-deno@v2 with: - deno-version: v2.7.13 + deno-version: v2.8.1 - name: Setup LCOV run: sudo apt install -y lcov @@ -35,7 +35,7 @@ jobs: run: deno task cover - name: SonarCloud Scan - uses: sonarsource/sonarqube-scan-action@v7.0.0 + uses: sonarsource/sonarqube-scan-action@v8.1.0 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} if: env.SONAR_TOKEN != '' diff --git a/.github/workflows/re-release.yml b/.github/workflows/re-release.yml index 1223fc6..c014f10 100644 --- a/.github/workflows/re-release.yml +++ b/.github/workflows/re-release.yml @@ -20,10 +20,10 @@ jobs: fetch-depth: 0 ref: ${{ github.event.inputs.tag }} - - name: Setup Deno v2.7.13 + - name: Setup Deno v2.8.1 uses: denoland/setup-deno@v2 with: - deno-version: v2.7.13 + deno-version: v2.8.1 - name: Verify formatting run: deno task fmt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9be829..218cf41 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,10 +15,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.7.13 + - name: Setup Deno v2.8.1 uses: denoland/setup-deno@v2 with: - deno-version: v2.7.13 + deno-version: v2.8.1 - name: Verify formatting run: deno task fmt diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 80ec08a..ae0a919 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Get PR details id: pr - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const pr = await github.rest.pulls.get({ @@ -33,10 +33,10 @@ jobs: ref: ${{ steps.pr.outputs.head_sha }} fetch-depth: 0 - - name: Setup Deno v2.7.13 + - name: Setup Deno v2.8.1 uses: denoland/setup-deno@v2 with: - deno-version: v2.7.13 + deno-version: v2.8.1 - name: Setup LCOV run: sudo apt install -y lcov @@ -51,7 +51,7 @@ jobs: run: deno task cover - name: SonarCloud Scan - uses: sonarsource/sonarqube-scan-action@v7.0.0 + uses: sonarsource/sonarqube-scan-action@v8.1.0 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} if: env.SONAR_TOKEN != '' diff --git a/Dockerfile b/Dockerfile index a8a425c..c603549 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:alpine-2.7.13 +FROM denoland/deno:alpine-2.8.1 ENV APP_HOME=/home/app WORKDIR $APP_HOME diff --git a/README.md b/README.md index 4b7e786..776df1a 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Feature Flag Service for Switcher Management

[![Master CI](https://github.com/switcherapi/switcher-management-feature/actions/workflows/master.yml/badge.svg)](https://github.com/switcherapi/switcher-management-feature/actions/workflows/master.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=switcherapi_switcher-management-feature&metric=alert_status)](https://sonarcloud.io/dashboard?id=switcherapi_switcher-management-feature) +![Known Vulnerabilities](https://snyk.io/test/github/switcherapi/switcher-management-feature/badge.svg) [![Docker Hub](https://img.shields.io/docker/pulls/trackerforce/switcher-management-feature.svg)](https://hub.docker.com/r/trackerforce/switcher-management-feature) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Slack: Switcher-HQ](https://img.shields.io/badge/slack-@switcher/hq-blue.svg?logo=slack)](https://switcher-hq.slack.com/) diff --git a/deno.lock b/deno.lock index 420dfd4..fab0f35 100644 --- a/deno.lock +++ b/deno.lock @@ -7,29 +7,30 @@ "jsr:@std/assert@1.0.19": "1.0.19", "jsr:@std/assert@^1.0.13": "1.0.19", "jsr:@std/bytes@1": "1.0.6", - "jsr:@std/cli@^1.0.29": "1.0.29", + "jsr:@std/cli@^1.0.30": "1.0.30", "jsr:@std/crypto@1": "1.1.0", - "jsr:@std/dotenv@0.225.6": "0.225.6", + "jsr:@std/dotenv@0.225.7": "0.225.7", "jsr:@std/encoding@1": "1.0.10", "jsr:@std/encoding@^1.0.10": "1.0.10", "jsr:@std/fmt@1.0.10": "1.0.10", "jsr:@std/fmt@^1.0.10": "1.0.10", "jsr:@std/fs@1.0.19": "1.0.19", - "jsr:@std/fs@^1.0.23": "1.0.23", - "jsr:@std/html@^1.0.6": "1.0.6", - "jsr:@std/http@1": "1.1.0", - "jsr:@std/http@^1.0.16": "1.1.0", - "jsr:@std/internal@^1.0.12": "1.0.13", - "jsr:@std/internal@^1.0.9": "1.0.13", + "jsr:@std/fs@^1.0.24": "1.0.24", + "jsr:@std/html@^1.0.7": "1.0.7", + "jsr:@std/http@1": "1.1.1", + "jsr:@std/http@^1.0.16": "1.1.1", + "jsr:@std/internal@^1.0.12": "1.0.14", + "jsr:@std/internal@^1.0.14": "1.0.14", + "jsr:@std/internal@^1.0.9": "1.0.14", "jsr:@std/media-types@1": "1.1.0", "jsr:@std/media-types@^1.1.0": "1.1.0", "jsr:@std/net@^1.0.6": "1.0.6", - "jsr:@std/path@1": "1.1.4", - "jsr:@std/path@^1.1.1": "1.1.4", - "jsr:@std/path@^1.1.4": "1.1.4", - "jsr:@std/streams@^1.1.0": "1.1.0", + "jsr:@std/path@1": "1.1.5", + "jsr:@std/path@^1.1.1": "1.1.5", + "jsr:@std/path@^1.1.5": "1.1.5", + "jsr:@std/streams@^1.1.1": "1.1.1", "jsr:@switcherapi/switcher-client-deno@2.4.0": "2.4.0", - "jsr:@trackerforce/validator4oak@1.3.0": "1.3.0", + "jsr:@trackerforce/validator4oak@1.3.1": "1.3.1", "npm:path-to-regexp@^6.3.0": "6.3.0" }, "jsr": { @@ -65,14 +66,14 @@ "@std/bytes@1.0.6": { "integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a" }, - "@std/cli@1.0.29": { - "integrity": "fa4ef29130baa834d8a13b7d138240c3a2fcfba740bfb7afa646a360a15ec84f" + "@std/cli@1.0.30": { + "integrity": "769446536522d0417d7127ebcabcafac1ab0ce6766d0eb3fca1d36326fe98d13" }, "@std/crypto@1.1.0": { "integrity": "b8d6d0a6377a32b213af2661ed7bf1062d94feac0c57def5526a8e74a95c3ec8" }, - "@std/dotenv@0.225.6": { - "integrity": "1d6f9db72f565bd26790fa034c26e45ecb260b5245417be76c2279e5734c421b" + "@std/dotenv@0.225.7": { + "integrity": "11d8db03ca4ad5aba9eba809f2e8058b2a4f320b7b09fea4b360e162928329e3" }, "@std/encoding@1.0.10": { "integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1" @@ -87,28 +88,28 @@ "jsr:@std/path@^1.1.1" ] }, - "@std/fs@1.0.23": { - "integrity": "3ecbae4ce4fee03b180fa710caff36bb5adb66631c46a6460aaad49515565a37" + "@std/fs@1.0.24": { + "integrity": "f3061b45b81673a2bece689da041df32d174be064c89eb6397fb5718d3fb7877" }, - "@std/html@1.0.6": { - "integrity": "eaf759c8141e0733ca30eb49e4c08d8e6ca442b85c4d51f9894a56f502993e08" + "@std/html@1.0.7": { + "integrity": "175c818905a6e75743c69c251395e273d82698e58cfe7dd76268d70e28b8d8fe" }, - "@std/http@1.1.0": { - "integrity": "265cd9a589fea924c5bb0bbed8bebb4bb2fa19129f760bd014e78dbd7a365a51", + "@std/http@1.1.1": { + "integrity": "e343a9a80aea07c716b91be5c79df764144430ad2dd7c9121ed7443f08dc74f7", "dependencies": [ "jsr:@std/cli", "jsr:@std/encoding@^1.0.10", "jsr:@std/fmt@^1.0.10", - "jsr:@std/fs@^1.0.23", + "jsr:@std/fs@^1.0.24", "jsr:@std/html", "jsr:@std/media-types@^1.1.0", "jsr:@std/net", - "jsr:@std/path@^1.1.4", + "jsr:@std/path@^1.1.5", "jsr:@std/streams" ] }, - "@std/internal@1.0.13": { - "integrity": "2f9546691d4ac2d32859c82dff284aaeac980ddeca38430d07941e7e288725c0" + "@std/internal@1.0.14": { + "integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7" }, "@std/media-types@1.1.0": { "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" @@ -116,14 +117,14 @@ "@std/net@1.0.6": { "integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c" }, - "@std/path@1.1.4": { - "integrity": "1d2d43f39efb1b42f0b1882a25486647cb851481862dc7313390b2bb044314b5", + "@std/path@1.1.5": { + "integrity": "ccea00982ea28c36becaf6e62f855406c76a8c32d462f66f415bbb7d83a271bc", "dependencies": [ - "jsr:@std/internal@^1.0.12" + "jsr:@std/internal@^1.0.14" ] }, - "@std/streams@1.1.0": { - "integrity": "2f7024d841f343fd478afe0c958a3f0f068ef2a0d2bcc954f550f97ac1fa22e3" + "@std/streams@1.1.1": { + "integrity": "92556d350e537e9dce527a6d08f6f15be3ff65e656079dea69d15252187c7613" }, "@switcherapi/switcher-client-deno@2.4.0": { "integrity": "7fea9e619caec812e53188387c2f145022c368e1a7eb70cc368c35c936b36fd6", @@ -131,8 +132,8 @@ "jsr:@std/fs@1.0.19" ] }, - "@trackerforce/validator4oak@1.3.0": { - "integrity": "124aef92edeeac315bdc6b93a6caa6b88d6eaa98cddc638fa90e33cc570cd173" + "@trackerforce/validator4oak@1.3.1": { + "integrity": "f096dd124622299a8d7b58cd19ceee6e33defb069dd3c3879cddb0df99a0c25d" } }, "npm": { diff --git a/src/deps.ts b/src/deps.ts index 7498aab..bb28eb1 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -1,5 +1,5 @@ export { Application, Context, type Middleware, type Next, Router } from 'jsr:@oak/oak@17.2.0'; export { Client } from 'jsr:@switcherapi/switcher-client-deno@2.4.0'; -export { ValidatorFn, ValidatorMiddleware } from 'jsr:@trackerforce/validator4oak@1.3.0'; -export { load } from 'jsr:@std/dotenv@0.225.6'; +export { ValidatorFn, ValidatorMiddleware } from 'jsr:@trackerforce/validator4oak@1.3.1'; +export { load } from 'jsr:@std/dotenv@0.225.7'; export { bold, cyan, green } from 'jsr:@std/fmt@1.0.10/colors'; diff --git a/src/routes/feature.ts b/src/routes/feature.ts index 1f987d1..2089ebe 100644 --- a/src/routes/feature.ts +++ b/src/routes/feature.ts @@ -12,9 +12,9 @@ const router = new Router(); let service: FeatureService; const { body, check, useErrorHandler } = ValidatorMiddleware.createMiddleware(); -const { hasLenght, isArray } = ValidatorFn.createValidator(); -const featureNameConstraints = [hasLenght({ min: 3 })]; -const featureValueConstraints = [hasLenght({ max: 100 })]; +const { hasLength, isArray } = ValidatorFn.createValidator(); +const featureNameConstraints = [hasLength({ min: 3 })]; +const featureValueConstraints = [hasLength({ max: 100 })]; useErrorHandler((context: Context, error: string) => { return responseError(context, new Error(error), 422);