diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2e9aece..b5bffe6 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:2.4.0 +FROM denoland/deno:2.4.2 # Install tools RUN apt-get update && \ diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e81c8dd..c13c343 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -10,7 +10,6 @@ jobs: build-test: name: Build & Test runs-on: ubuntu-latest - if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')" steps: - name: Git checkout @@ -18,10 +17,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.4.0 + - name: Setup Deno v2.4.2 uses: denoland/setup-deno@v2 with: - deno-version: v2.4.0 + deno-version: v2.4.2 - name: Setup LCOV run: sudo apt install -y lcov @@ -39,6 +38,7 @@ jobs: uses: sonarsource/sonarqube-scan-action@v5.2.0 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + if: env.SONAR_TOKEN != '' docker: name: Publish Docker Image diff --git a/.github/workflows/re-release.yml b/.github/workflows/re-release.yml index 179b894..1da70a2 100644 --- a/.github/workflows/re-release.yml +++ b/.github/workflows/re-release.yml @@ -21,10 +21,10 @@ jobs: fetch-depth: 0 ref: ${{ github.event.inputs.tag }} - - name: Setup Deno v2.4.0 + - name: Setup Deno v2.4.2 uses: denoland/setup-deno@v2 with: - deno-version: v2.4.0 + deno-version: v2.4.2 - name: Verify formatting run: deno task fmt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9210383..1516586 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,10 +16,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.4.0 + - name: Setup Deno v2.4.2 uses: denoland/setup-deno@v2 with: - deno-version: v2.4.0 + deno-version: v2.4.2 - name: Verify formatting run: deno task fmt diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml new file mode 100644 index 0000000..1577d14 --- /dev/null +++ b/.github/workflows/sonar.yml @@ -0,0 +1,62 @@ +name: Manual SonarCloud Analysis + +on: + workflow_dispatch: + inputs: + pr_id: + description: 'Pull Request ID to analyze' + required: true + type: string + +jobs: + sonar-analysis: + name: SonarCloud Analysis for PR + runs-on: ubuntu-latest + + steps: + - name: Get PR details + id: pr + uses: actions/github-script@v7 + with: + script: | + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: ${{ inputs.pr_id }} + }); + core.setOutput('head_ref', pr.data.head.ref); + core.setOutput('base_ref', pr.data.base.ref); + core.setOutput('head_sha', pr.data.head.sha); + + - uses: actions/checkout@v4 + with: + ref: ${{ steps.pr.outputs.head_sha }} + fetch-depth: 0 + + - name: Setup Deno v2.4.2 + uses: denoland/setup-deno@v2 + with: + deno-version: v2.4.2 + + - name: Setup LCOV + run: sudo apt install -y lcov + + - name: Verify formatting + run: deno task fmt + + - name: Run linter + run: deno lint + + - name: Run tests and coverage + run: deno task cover + + - name: SonarCloud Scan + uses: sonarsource/sonarqube-scan-action@v5.2.0 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + if: env.SONAR_TOKEN != '' + with: + args: > + -Dsonar.pullrequest.key=${{ inputs.pr_id }} + -Dsonar.pullrequest.branch=${{ steps.pr.outputs.head_ref }} + -Dsonar.pullrequest.base=${{ steps.pr.outputs.base_ref }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ffca07e..24a6703 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:alpine-2.4.0 +FROM denoland/deno:alpine-2.4.2 ENV APP_HOME=/home/app WORKDIR $APP_HOME diff --git a/deno.lock b/deno.lock index ca65fe6..5cf1c23 100644 --- a/deno.lock +++ b/deno.lock @@ -1,246 +1,59 @@ { "version": "5", "specifiers": { - "jsr:@oak/commons@0.11": "0.11.0", "jsr:@oak/commons@1": "1.0.1", - "jsr:@oak/oak@16.1.0": "16.1.0", - "jsr:@oak/oak@17.0.0": "17.0.0", - "jsr:@oak/oak@17.1.0": "17.1.0", - "jsr:@oak/oak@17.1.3": "17.1.3", - "jsr:@oak/oak@17.1.4": "17.1.4", "jsr:@oak/oak@17.1.5": "17.1.5", - "jsr:@std/assert@0.223": "0.223.0", - "jsr:@std/assert@0.224": "0.224.0", - "jsr:@std/assert@0.226": "0.226.0", "jsr:@std/assert@1": "1.0.13", - "jsr:@std/assert@1.0.11": "1.0.11", - "jsr:@std/assert@1.0.12": "1.0.12", "jsr:@std/assert@1.0.13": "1.0.13", - "jsr:@std/assert@1.0.3": "1.0.3", - "jsr:@std/assert@1.0.5": "1.0.5", - "jsr:@std/assert@1.0.9": "1.0.9", "jsr:@std/assert@^1.0.13": "1.0.13", - "jsr:@std/assert@~0.225.2": "0.225.3", - "jsr:@std/bytes@0.223": "0.223.0", - "jsr:@std/bytes@0.224": "0.224.0", "jsr:@std/bytes@1": "1.0.6", - "jsr:@std/bytes@^1.0.2": "1.0.4", - "jsr:@std/cli@^1.0.17": "1.0.17", - "jsr:@std/cli@^1.0.18": "1.0.20", - "jsr:@std/crypto@0.223": "0.223.0", - "jsr:@std/crypto@0.224": "0.224.0", + "jsr:@std/cli@^1.0.20": "1.0.20", "jsr:@std/crypto@1": "1.0.5", - "jsr:@std/dotenv@0.225.1": "0.225.1", - "jsr:@std/dotenv@0.225.2": "0.225.2", - "jsr:@std/dotenv@0.225.3": "0.225.3", - "jsr:@std/dotenv@0.225.4": "0.225.4", "jsr:@std/dotenv@0.225.5": "0.225.5", - "jsr:@std/encoding@0.223": "0.223.0", "jsr:@std/encoding@1": "1.0.10", - "jsr:@std/encoding@1.0.0-rc.2": "1.0.0-rc.2", "jsr:@std/encoding@^1.0.10": "1.0.10", - "jsr:@std/encoding@^1.0.5": "1.0.5", - "jsr:@std/encoding@^1.0.7": "1.0.7", - "jsr:@std/fmt@1.0.1": "1.0.1", - "jsr:@std/fmt@1.0.2": "1.0.2", - "jsr:@std/fmt@1.0.3": "1.0.3", - "jsr:@std/fmt@1.0.5": "1.0.5", - "jsr:@std/fmt@1.0.6": "1.0.6", - "jsr:@std/fmt@1.0.7": "1.0.7", "jsr:@std/fmt@1.0.8": "1.0.8", "jsr:@std/fmt@^1.0.8": "1.0.8", - "jsr:@std/fs@0.229.1": "0.229.1", - "jsr:@std/fs@1.0.18": "1.0.18", "jsr:@std/fs@1.0.19": "1.0.19", - "jsr:@std/fs@1.0.6": "1.0.6", + "jsr:@std/fs@^1.0.19": "1.0.19", "jsr:@std/html@^1.0.4": "1.0.4", - "jsr:@std/http@0.223": "0.223.0", - "jsr:@std/http@0.224": "0.224.5", - "jsr:@std/http@1": "1.0.17", - "jsr:@std/http@^1.0.16": "1.0.17", - "jsr:@std/internal@^1.0.2": "1.0.2", - "jsr:@std/internal@^1.0.3": "1.0.3", - "jsr:@std/internal@^1.0.5": "1.0.5", + "jsr:@std/http@1": "1.0.19", + "jsr:@std/http@^1.0.16": "1.0.19", "jsr:@std/internal@^1.0.6": "1.0.9", "jsr:@std/internal@^1.0.9": "1.0.9", - "jsr:@std/io@0.223": "0.223.0", - "jsr:@std/io@0.224": "0.224.9", - "jsr:@std/media-types@0.223": "0.223.0", - "jsr:@std/media-types@0.224": "0.224.1", "jsr:@std/media-types@1": "1.1.0", "jsr:@std/media-types@^1.1.0": "1.1.0", "jsr:@std/net@^1.0.4": "1.0.4", - "jsr:@std/path@0.223": "0.223.0", "jsr:@std/path@1": "1.1.1", - "jsr:@std/path@^1.0.8": "1.1.1", - "jsr:@std/path@^1.0.9": "1.0.9", - "jsr:@std/path@^1.1.0": "1.1.1", "jsr:@std/path@^1.1.1": "1.1.1", - "jsr:@std/path@~0.225.1": "0.225.2", - "jsr:@std/streams@^1.0.9": "1.0.9", - "jsr:@switcherapi/switcher-client-deno@2.0.2": "2.0.2", - "jsr:@switcherapi/switcher-client-deno@2.1.0": "2.1.0", - "jsr:@switcherapi/switcher-client-deno@2.2.0": "2.2.0", - "jsr:@switcherapi/switcher-client-deno@2.3.0": "2.3.0", - "jsr:@trackerforce/validator4oak@1.1.0": "1.1.0", - "jsr:@trackerforce/validator4oak@1.2.0": "1.2.0", - "npm:@types/node@*": "18.16.19", - "npm:path-to-regexp@6.2.1": "6.2.1", + "jsr:@std/streams@^1.0.10": "1.0.10", + "jsr:@switcherapi/switcher-client-deno@2.3.1": "2.3.1", + "jsr:@trackerforce/validator4oak@1.3.0": "1.3.0", + "npm:@types/node@*": "22.15.15", "npm:path-to-regexp@^6.3.0": "6.3.0" }, "jsr": { - "@oak/commons@0.11.0": { - "integrity": "07702bfe5c07cd8144c422022994da1f9fea466b185824f4be63a2b1b1a65125", - "dependencies": [ - "jsr:@std/assert@0.226", - "jsr:@std/bytes@0.224", - "jsr:@std/crypto@0.224", - "jsr:@std/http@0.224", - "jsr:@std/media-types@0.224" - ] - }, - "@oak/commons@1.0.0": { - "integrity": "49805b55603c3627a9d6235c0655aa2b6222d3036b3a13ff0380c16368f607ac", - "dependencies": [ - "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/crypto@1", - "jsr:@std/encoding@1", - "jsr:@std/http@1", - "jsr:@std/media-types@1" - ] - }, "@oak/commons@1.0.1": { "integrity": "889ff210f0b4292591721be07244ecb1b5c118742f5273c70cf30d7cd4184d0c", "dependencies": [ "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/crypto@1", + "jsr:@std/bytes", + "jsr:@std/crypto", "jsr:@std/encoding@1", "jsr:@std/http@1", "jsr:@std/media-types@1" ] }, - "@oak/oak@16.1.0": { - "integrity": "ab21506555fffeb08dc8f45ff5d28607e8087949ff58bd2964b27df65994480b", - "dependencies": [ - "jsr:@oak/commons@0.11", - "jsr:@std/assert@0.223", - "jsr:@std/bytes@0.223", - "jsr:@std/crypto@0.223", - "jsr:@std/http@0.223", - "jsr:@std/io@0.223", - "jsr:@std/media-types@0.223", - "jsr:@std/path@0.223", - "npm:path-to-regexp@6.2.1" - ] - }, - "@oak/oak@17.0.0": { - "integrity": "1be33e585080d8ce5093963469a05ed265f1d5f139421c9b0fda8419a533ebee", - "dependencies": [ - "jsr:@oak/commons@1", - "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/crypto@1", - "jsr:@std/http@1", - "jsr:@std/io@0.224", - "jsr:@std/media-types@1", - "jsr:@std/path@1", - "npm:path-to-regexp@6.2.1" - ] - }, - "@oak/oak@17.1.0": { - "integrity": "14ffb400c3c268bdc7b3a838664fab782b4ed35bb0dfe7669013c95bb12a9503", - "dependencies": [ - "jsr:@oak/commons@1", - "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/crypto@1", - "jsr:@std/http@1", - "jsr:@std/io@0.224", - "jsr:@std/media-types@1", - "jsr:@std/path@1", - "npm:path-to-regexp@6.2.1" - ] - }, - "@oak/oak@17.1.3": { - "integrity": "d89296c22db91681dd3a2a1e1fd14e258d0d5a9654de55637aee5b661c159f33", - "dependencies": [ - "jsr:@oak/commons@1", - "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/crypto@1", - "jsr:@std/http@1", - "jsr:@std/io@0.224", - "jsr:@std/media-types@1", - "jsr:@std/path@1", - "npm:path-to-regexp@6.2.1" - ] - }, - "@oak/oak@17.1.4": { - "integrity": "60530b582bf276ff741e39cc664026781aa08dd5f2bc5134d756cc427bf2c13e", - "dependencies": [ - "jsr:@oak/commons@1", - "jsr:@std/assert@1", - "jsr:@std/bytes@1", - "jsr:@std/http@1", - "jsr:@std/media-types@1", - "jsr:@std/path@1", - "npm:path-to-regexp@^6.3.0" - ] - }, "@oak/oak@17.1.5": { "integrity": "676263340dcfd069fb422b4274b4f75f7048a68e605dece6a2897ccfe669e7cc", "dependencies": [ - "jsr:@oak/commons@1", + "jsr:@oak/commons", "jsr:@std/assert@1", - "jsr:@std/bytes@1", + "jsr:@std/bytes", "jsr:@std/http@1", "jsr:@std/media-types@1", "jsr:@std/path@1", - "npm:path-to-regexp@^6.3.0" - ] - }, - "@std/assert@0.223.0": { - "integrity": "eb8d6d879d76e1cc431205bd346ed4d88dc051c6366365b1af47034b0670be24" - }, - "@std/assert@0.224.0": { - "integrity": "8643233ec7aec38a940a8264a6e3eed9bfa44e7a71cc6b3c8874213ff401967f" - }, - "@std/assert@0.225.3": { - "integrity": "b3c2847aecf6955b50644cdb9cf072004ea3d1998dd7579fc0acb99dbb23bd4f" - }, - "@std/assert@0.226.0": { - "integrity": "0dfb5f7c7723c18cec118e080fec76ce15b4c31154b15ad2bd74822603ef75b3" - }, - "@std/assert@1.0.3": { - "integrity": "b0d03ce1ced880df67132eea140623010d415848df66f6aa5df76507ca7c26d8", - "dependencies": [ - "jsr:@std/internal@^1.0.2" - ] - }, - "@std/assert@1.0.5": { - "integrity": "e37da8e4033490ce613eec4ac1d78dba1faf5b02a3f6c573a28f15365b9b440f", - "dependencies": [ - "jsr:@std/internal@^1.0.3" - ] - }, - "@std/assert@1.0.9": { - "integrity": "a9f0c611a869cc791b26f523eec54c7e187aab7932c2c8e8bea0622d13680dcd", - "dependencies": [ - "jsr:@std/internal@^1.0.5" - ] - }, - "@std/assert@1.0.11": { - "integrity": "2461ef3c368fe88bc60e186e7744a93112f16fd110022e113a0849e94d1c83c1", - "dependencies": [ - "jsr:@std/internal@^1.0.5" - ] - }, - "@std/assert@1.0.12": { - "integrity": "08009f0926dda9cbd8bef3a35d3b6a4b964b0ab5c3e140a4e0351fbf34af5b9a", - "dependencies": [ - "jsr:@std/internal@^1.0.6" + "npm:path-to-regexp" ] }, "@std/assert@1.0.13": { @@ -249,122 +62,24 @@ "jsr:@std/internal@^1.0.6" ] }, - "@std/bytes@0.223.0": { - "integrity": "84b75052cd8680942c397c2631318772b295019098f40aac5c36cead4cba51a8" - }, - "@std/bytes@0.224.0": { - "integrity": "a2250e1d0eb7d1c5a426f21267ab9bdeac2447fa87a3d0d1a467d3f7a6058e49" - }, - "@std/bytes@1.0.2": { - "integrity": "fbdee322bbd8c599a6af186a1603b3355e59a5fb1baa139f8f4c3c9a1b3e3d57" - }, - "@std/bytes@1.0.4": { - "integrity": "11a0debe522707c95c7b7ef89b478c13fb1583a7cfb9a85674cd2cc2e3a28abc" - }, - "@std/bytes@1.0.5": { - "integrity": "4465dd739d7963d964c809202ebea6d5c6b8e3829ef25c6a224290fbb8a1021e" - }, "@std/bytes@1.0.6": { "integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a" }, - "@std/cli@1.0.17": { - "integrity": "e15b9abe629e17be90cc6216327f03a29eae613365f1353837fa749aad29ce7b" - }, "@std/cli@1.0.20": { "integrity": "a8c384a2c98cec6ec6a2055c273a916e2772485eb784af0db004c5ab8ba52333" }, - "@std/crypto@0.223.0": { - "integrity": "1aa9555ff56b09e197ad988ea200f84bc6781fd4fd83f3a156ee44449af93000", - "dependencies": [ - "jsr:@std/assert@0.223", - "jsr:@std/encoding@0.223" - ] - }, - "@std/crypto@0.224.0": { - "integrity": "154ef3ff08ef535562ef1a718718c5b2c5fc3808f0f9100daad69e829bfcdf2d", - "dependencies": [ - "jsr:@std/assert@0.224" - ] - }, - "@std/crypto@1.0.3": { - "integrity": "a2a32f51ddef632d299e3879cd027c630dcd4d1d9a5285d6e6788072f4e51e7f" - }, - "@std/crypto@1.0.4": { - "integrity": "cee245c453bd5366207f4d8aa25ea3e9c86cecad2be3fefcaa6cb17203d79340" - }, "@std/crypto@1.0.5": { "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" }, - "@std/dotenv@0.225.1": { - "integrity": "138f31352843d76cfb6cda1b860e8aac6d02ce3b05e7e236a81bf285a9868d0c" - }, - "@std/dotenv@0.225.2": { - "integrity": "e2025dce4de6c7bca21dece8baddd4262b09d5187217e231b033e088e0c4dd23" - }, - "@std/dotenv@0.225.3": { - "integrity": "a95e5b812c27b0854c52acbae215856d9cce9d4bbf774d938c51d212711e8d4a" - }, - "@std/dotenv@0.225.4": { - "integrity": "2a672c2b192abe535dcfea1ae89f219ee3979af6aad7d185cb19206ee9bc5caf" - }, "@std/dotenv@0.225.5": { "integrity": "9ce6f9d0ec3311f74a32535aa1b8c62ed88b1ab91b7f0815797d77a6f60c922f" }, - "@std/encoding@0.223.0": { - "integrity": "2b5615a75e00337ce113f34cf2f9b8c18182c751a8dcc8b1a2c2fc0e117bef00" - }, - "@std/encoding@1.0.0-rc.2": { - "integrity": "160d7674a20ebfbccdf610b3801fee91cf6e42d1c106dd46bbaf46e395cd35ef" - }, - "@std/encoding@1.0.5": { - "integrity": "ecf363d4fc25bd85bd915ff6733a7e79b67e0e7806334af15f4645c569fefc04" - }, - "@std/encoding@1.0.7": { - "integrity": "f631247c1698fef289f2de9e2a33d571e46133b38d042905e3eac3715030a82d" - }, "@std/encoding@1.0.10": { "integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1" }, - "@std/fmt@1.0.1": { - "integrity": "ef76c37faa7720faa8c20fd8cc74583f9b1e356dfd630c8714baa716a45856ab" - }, - "@std/fmt@1.0.2": { - "integrity": "87e9dfcdd3ca7c066e0c3c657c1f987c82888eb8103a3a3baa62684ffeb0f7a7" - }, - "@std/fmt@1.0.3": { - "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f" - }, - "@std/fmt@1.0.5": { - "integrity": "0cfab43364bc36650d83c425cd6d99910fc20c4576631149f0f987eddede1a4d" - }, - "@std/fmt@1.0.6": { - "integrity": "a2c56a69a2369876ddb3ad6a500bb6501b5bad47bb3ea16bfb0c18974d2661fc" - }, - "@std/fmt@1.0.7": { - "integrity": "2a727c043d8df62cd0b819b3fb709b64dd622e42c3b1bb817ea7e6cc606360fb" - }, "@std/fmt@1.0.8": { "integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7" }, - "@std/fs@0.229.1": { - "integrity": "38d3fb31f0ca0a8c1118e039939188f32e291a3f7f17dc0868fec22024bdfadd", - "dependencies": [ - "jsr:@std/assert@~0.225.2", - "jsr:@std/path@~0.225.1" - ] - }, - "@std/fs@1.0.6": { - "integrity": "42b56e1e41b75583a21d5a37f6a6a27de9f510bcd36c0c85791d685ca0b85fa2", - "dependencies": [ - "jsr:@std/path@^1.0.8" - ] - }, - "@std/fs@1.0.18": { - "integrity": "24bcad99eab1af4fde75e05da6e9ed0e0dce5edb71b7e34baacf86ffe3969f3a", - "dependencies": [ - "jsr:@std/path@^1.1.0" - ] - }, "@std/fs@1.0.19": { "integrity": "051968c2b1eae4d2ea9f79a08a3845740ef6af10356aff43d3e2ef11ed09fb06", "dependencies": [ @@ -375,284 +90,66 @@ "@std/html@1.0.4": { "integrity": "eff3497c08164e6ada49b7f81a28b5108087033823153d065e3f89467dd3d50e" }, - "@std/http@0.223.0": { - "integrity": "15ab8a0c5a7e9d5be017a15b01600f20f66602ceec48b378939fa24fcec522aa", - "dependencies": [ - "jsr:@std/assert@0.223", - "jsr:@std/encoding@0.223" - ] - }, - "@std/http@0.224.5": { - "integrity": "b03b5d1529f6c423badfb82f6640f9f2557b4034cd7c30655ba5bb447ff750a4", - "dependencies": [ - "jsr:@std/encoding@1.0.0-rc.2" - ] - }, - "@std/http@1.0.6": { - "integrity": "20a6f3fa4a914fbb19ea96572f2519b656232597092581ed706cd865d842d0d0", - "dependencies": [ - "jsr:@std/encoding@^1.0.5" - ] - }, - "@std/http@1.0.12": { - "integrity": "85246d8bfe9c8e2538518725b158bdc31f616e0869255f4a8d9e3de919cab2aa", - "dependencies": [ - "jsr:@std/encoding@^1.0.5" - ] - }, - "@std/http@1.0.13": { - "integrity": "d29618b982f7ae44380111f7e5b43da59b15db64101198bb5f77100d44eb1e1e", - "dependencies": [ - "jsr:@std/encoding@^1.0.7" - ] - }, - "@std/http@1.0.15": { - "integrity": "435a4934b4e196e82a8233f724da525f7b7112f3566502f28815e94764c19159", - "dependencies": [ - "jsr:@std/encoding@^1.0.10" - ] - }, - "@std/http@1.0.16": { - "integrity": "80c8d08c4bfcf615b89978dcefb84f7e880087cf3b6b901703936f3592a06933", - "dependencies": [ - "jsr:@std/cli@^1.0.17", - "jsr:@std/encoding@^1.0.10", - "jsr:@std/fmt@^1.0.8", - "jsr:@std/html", - "jsr:@std/media-types@^1.1.0", - "jsr:@std/net", - "jsr:@std/path@^1.0.9", - "jsr:@std/streams" - ] - }, - "@std/http@1.0.17": { - "integrity": "98aec8ab4080d95c21f731e3008f69c29c5012d12f1b4e553f85935db601569f", + "@std/http@1.0.19": { + "integrity": "52128c8d00a1f0b20019f8b72376e7ef5f3133375b6f805b5bc89b9de2ad4686", "dependencies": [ - "jsr:@std/cli@^1.0.18", + "jsr:@std/cli", "jsr:@std/encoding@^1.0.10", "jsr:@std/fmt@^1.0.8", + "jsr:@std/fs@^1.0.19", "jsr:@std/html", "jsr:@std/media-types@^1.1.0", "jsr:@std/net", - "jsr:@std/path@^1.1.0", + "jsr:@std/path@^1.1.1", "jsr:@std/streams" ] }, - "@std/internal@1.0.2": { - "integrity": "f4cabe2021352e8bfc24e6569700df87bf070914fc38d4b23eddd20108ac4495" - }, - "@std/internal@1.0.3": { - "integrity": "208e9b94a3d5649bd880e9ca38b885ab7651ab5b5303a56ed25de4755fb7b11e" - }, - "@std/internal@1.0.5": { - "integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba" - }, - "@std/internal@1.0.6": { - "integrity": "9533b128f230f73bd209408bb07a4b12f8d4255ab2a4d22a1fd6d87304aca9a4" - }, "@std/internal@1.0.9": { "integrity": "bdfb97f83e4db7a13e8faab26fb1958d1b80cc64366501af78a0aee151696eb8" }, - "@std/io@0.223.0": { - "integrity": "2d8c3c2ab3a515619b90da2c6ff5ea7b75a94383259ef4d02116b228393f84f1", - "dependencies": [ - "jsr:@std/bytes@0.223" - ] - }, - "@std/io@0.224.8": { - "integrity": "f525d05d51fd873de6352b9afcf35cab9ab5dc448bf3c20e0c8b521ded9be392", - "dependencies": [ - "jsr:@std/bytes@^1.0.2" - ] - }, - "@std/io@0.224.9": { - "integrity": "4414664b6926f665102e73c969cfda06d2c4c59bd5d0c603fd4f1b1c840d6ee3", - "dependencies": [ - "jsr:@std/bytes@^1.0.2" - ] - }, - "@std/media-types@0.223.0": { - "integrity": "84684680c2eb6bc6d9369c6d6f26a49decaf2c7603ff531862dda575d9d6776e" - }, - "@std/media-types@0.224.1": { - "integrity": "9e69a5daed37c5b5c6d3ce4731dc191f80e67f79bed392b0957d1d03b87f11e1" - }, - "@std/media-types@1.0.3": { - "integrity": "b12d30a7852f7578f4d210622df713bbfd1cbdd9b4ec2eaf5c1845ab70bab159" - }, "@std/media-types@1.1.0": { "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" }, "@std/net@1.0.4": { "integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852" }, - "@std/path@0.223.0": { - "integrity": "593963402d7e6597f5a6e620931661053572c982fc014000459edc1f93cc3989", - "dependencies": [ - "jsr:@std/assert@0.223" - ] - }, - "@std/path@0.225.2": { - "integrity": "0f2db41d36b50ef048dcb0399aac720a5348638dd3cb5bf80685bf2a745aa506", - "dependencies": [ - "jsr:@std/assert@0.226" - ] - }, - "@std/path@1.0.6": { - "integrity": "ab2c55f902b380cf28e0eec501b4906e4c1960d13f00e11cfbcd21de15f18fed" - }, - "@std/path@1.0.8": { - "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be" - }, - "@std/path@1.0.9": { - "integrity": "260a49f11edd3db93dd38350bf9cd1b4d1366afa98e81b86167b4e3dd750129e" - }, - "@std/path@1.1.0": { - "integrity": "ddc94f8e3c275627281cbc23341df6b8bcc874d70374f75fec2533521e3d6886" - }, "@std/path@1.1.1": { "integrity": "fe00026bd3a7e6a27f73709b83c607798be40e20c81dde655ce34052fd82ec76", "dependencies": [ "jsr:@std/internal@^1.0.9" ] }, - "@std/streams@1.0.9": { - "integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035" - }, - "@switcherapi/switcher-client-deno@2.0.2": { - "integrity": "a665ee63b889e843e861f51c893e7f2013ea983615aba094d160076120344157", - "dependencies": [ - "jsr:@std/fs@0.229.1" - ] - }, - "@switcherapi/switcher-client-deno@2.1.0": { - "integrity": "4c6d6d967e6c07b490b6e941a03625d62d44c60de0a4bb1a14fd2f8c1008d6ea", - "dependencies": [ - "jsr:@std/fs@1.0.6" - ] - }, - "@switcherapi/switcher-client-deno@2.2.0": { - "integrity": "8db674c070d263cde16e6512f00329d20d131f5c1d6a79b6cfe89cf0b3aa6848", - "dependencies": [ - "jsr:@std/fs@1.0.18" - ] + "@std/streams@1.0.10": { + "integrity": "75c0b1431873cd0d8b3d679015220204d36d3c7420d93b60acfc379eb0dc30af" }, - "@switcherapi/switcher-client-deno@2.3.0": { - "integrity": "b23c46e4882bd828a62e8fc39313d94e99a8c1ac056ab03c4db7e146fec2ca02", + "@switcherapi/switcher-client-deno@2.3.1": { + "integrity": "a21ba6bd5a744635772e2f87131009801b3467028e38aae6744a5732d23bd350", "dependencies": [ "jsr:@std/fs@1.0.19" ] }, - "@trackerforce/validator4oak@1.1.0": { - "integrity": "1ee9d26ddc4760fc1fd62db447c42e90d95d85a95e7bb84d9ee56e76cb70a64b" - }, - "@trackerforce/validator4oak@1.2.0": { - "integrity": "cecff4eab89d16e2d1bf3dcbc89cfa7cf0adf51f2a8f7814227044f986f28014" + "@trackerforce/validator4oak@1.3.0": { + "integrity": "124aef92edeeac315bdc6b93a6caa6b88d6eaa98cddc638fa90e33cc570cd173" } }, "npm": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==" - }, - "path-to-regexp@6.2.1": { - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "@types/node@22.15.15": { + "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==", + "dependencies": [ + "undici-types" + ] }, "path-to-regexp@6.3.0": { "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" + }, + "undici-types@6.21.0": { + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" } }, - "redirects": { - "https://crux.land/api/get/2KNRVU": "https://crux.land/api/get/2KNRVU.ts", - "https://crux.land/api/get/router@0.0.5": "https://crux.land/api/get/2KNRVU", - "https://crux.land/router@0.0.5": "https://crux.land/api/get/router@0.0.5" - }, "remote": { - "https://crux.land/api/get/2KNRVU.ts": "6a77d55844aba78d01520c5ff0b2f0af7f24cc1716a0de8b3bb6bd918c47b5ba", - "https://deno.land/std@0.213.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", - "https://deno.land/std@0.213.0/assert/_diff.ts": "dcc63d94ca289aec80644030cf88ccbf7acaa6fbd7b0f22add93616b36593840", - "https://deno.land/std@0.213.0/assert/_format.ts": "0ba808961bf678437fb486b56405b6fefad2cf87b5809667c781ddee8c32aff4", - "https://deno.land/std@0.213.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", - "https://deno.land/std@0.213.0/assert/assert_almost_equals.ts": "8b96b7385cc117668b0720115eb6ee73d04c9bcb2f5d2344d674918c9113688f", - "https://deno.land/std@0.213.0/assert/assert_array_includes.ts": "1688d76317fd45b7e93ef9e2765f112fdf2b7c9821016cdfb380b9445374aed1", - "https://deno.land/std@0.213.0/assert/assert_equals.ts": "4497c56fe7d2993b0d447926702802fc0becb44e319079e8eca39b482ee01b4e", - "https://deno.land/std@0.213.0/assert/assert_exists.ts": "24a7bf965e634f909242cd09fbaf38bde6b791128ece08e33ab08586a7cc55c9", - "https://deno.land/std@0.213.0/assert/assert_false.ts": "6f382568e5128c0f855e5f7dbda8624c1ed9af4fcc33ef4a9afeeedcdce99769", - "https://deno.land/std@0.213.0/assert/assert_greater.ts": "4945cf5729f1a38874d7e589e0fe5cc5cd5abe5573ca2ddca9d3791aa891856c", - "https://deno.land/std@0.213.0/assert/assert_greater_or_equal.ts": "573ed8823283b8d94b7443eb69a849a3c369a8eb9666b2d1db50c33763a5d219", - "https://deno.land/std@0.213.0/assert/assert_instance_of.ts": "72dc1faff1e248692d873c89382fa1579dd7b53b56d52f37f9874a75b11ba444", - "https://deno.land/std@0.213.0/assert/assert_is_error.ts": "6596f2b5ba89ba2fe9b074f75e9318cda97a2381e59d476812e30077fbdb6ed2", - "https://deno.land/std@0.213.0/assert/assert_less.ts": "2b4b3fe7910f65f7be52212f19c3977ecb8ba5b2d6d0a296c83cde42920bb005", - "https://deno.land/std@0.213.0/assert/assert_less_or_equal.ts": "b93d212fe669fbde959e35b3437ac9a4468f2e6b77377e7b6ea2cfdd825d38a0", - "https://deno.land/std@0.213.0/assert/assert_match.ts": "ec2d9680ed3e7b9746ec57ec923a17eef6d476202f339ad91d22277d7f1d16e1", - "https://deno.land/std@0.213.0/assert/assert_not_equals.ts": "f3edda73043bc2c9fae6cbfaa957d5c69bbe76f5291a5b0466ed132c8789df4c", - "https://deno.land/std@0.213.0/assert/assert_not_instance_of.ts": "8f720d92d83775c40b2542a8d76c60c2d4aeddaf8713c8d11df8984af2604931", - "https://deno.land/std@0.213.0/assert/assert_not_match.ts": "b4b7c77f146963e2b673c1ce4846473703409eb93f5ab0eb60f6e6f8aeffe39f", - "https://deno.land/std@0.213.0/assert/assert_not_strict_equals.ts": "da0b8ab60a45d5a9371088378e5313f624799470c3b54c76e8b8abeec40a77be", - "https://deno.land/std@0.213.0/assert/assert_object_match.ts": "e85e5eef62a56ce364c3afdd27978ccab979288a3e772e6855c270a7b118fa49", - "https://deno.land/std@0.213.0/assert/assert_rejects.ts": "e9e0c8d9c3e164c7ac962c37b3be50577c5a2010db107ed272c4c1afb1269f54", - "https://deno.land/std@0.213.0/assert/assert_strict_equals.ts": "0425a98f70badccb151644c902384c12771a93e65f8ff610244b8147b03a2366", - "https://deno.land/std@0.213.0/assert/assert_string_includes.ts": "dfb072a890167146f8e5bdd6fde887ce4657098e9f71f12716ef37f35fb6f4a7", - "https://deno.land/std@0.213.0/assert/assert_throws.ts": "edddd86b39606c342164b49ad88dd39a26e72a26655e07545d172f164b617fa7", - "https://deno.land/std@0.213.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", - "https://deno.land/std@0.213.0/assert/equal.ts": "fae5e8a52a11d3ac694bbe1a53e13a7969e3f60791262312e91a3e741ae519e2", - "https://deno.land/std@0.213.0/assert/fail.ts": "f310e51992bac8e54f5fd8e44d098638434b2edb802383690e0d7a9be1979f1c", - "https://deno.land/std@0.213.0/assert/mod.ts": "325df8c0683ad83a873b9691aa66b812d6275fc9fec0b2d180ac68a2c5efed3b", - "https://deno.land/std@0.213.0/assert/unimplemented.ts": "47ca67d1c6dc53abd0bd729b71a31e0825fc452dbcd4fde4ca06789d5644e7fd", - "https://deno.land/std@0.213.0/assert/unreachable.ts": "38cfecb95d8b06906022d2f9474794fca4161a994f83354fd079cac9032b5145", - "https://deno.land/std@0.213.0/async/delay.ts": "8e1d18fe8b28ff95885e2bc54eccec1713f57f756053576d8228e6ca110793ad", - "https://deno.land/std@0.213.0/fmt/colors.ts": "aeaee795471b56fc62a3cb2e174ed33e91551b535f44677f6320336aabb54fbb", - "https://deno.land/std@0.213.0/http/server.ts": "6dce295abc169d0956ae00432441331b3425afad4d79e8b3475739be2f04d614", - "https://deno.land/std@0.213.0/http/status.ts": "ed61b4882af2514a81aefd3245e8df4c47b9a8e54929a903577643d2d1ebf514", - "https://deno.land/std@0.224.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", - "https://deno.land/std@0.224.0/assert/assert.ts": "09d30564c09de846855b7b071e62b5974b001bb72a4b797958fe0660e7849834", - "https://deno.land/std@0.224.0/assert/assert_almost_equals.ts": "9e416114322012c9a21fa68e187637ce2d7df25bcbdbfd957cd639e65d3cf293", - "https://deno.land/std@0.224.0/assert/assert_array_includes.ts": "14c5094471bc8e4a7895fc6aa5a184300d8a1879606574cb1cd715ef36a4a3c7", - "https://deno.land/std@0.224.0/assert/assert_equals.ts": "3bbca947d85b9d374a108687b1a8ba3785a7850436b5a8930d81f34a32cb8c74", - "https://deno.land/std@0.224.0/assert/assert_exists.ts": "43420cf7f956748ae6ed1230646567b3593cb7a36c5a5327269279c870c5ddfd", - "https://deno.land/std@0.224.0/assert/assert_false.ts": "3e9be8e33275db00d952e9acb0cd29481a44fa0a4af6d37239ff58d79e8edeff", - "https://deno.land/std@0.224.0/assert/assert_greater.ts": "5e57b201fd51b64ced36c828e3dfd773412c1a6120c1a5a99066c9b261974e46", - "https://deno.land/std@0.224.0/assert/assert_greater_or_equal.ts": "9870030f997a08361b6f63400273c2fb1856f5db86c0c3852aab2a002e425c5b", - "https://deno.land/std@0.224.0/assert/assert_instance_of.ts": "e22343c1fdcacfaea8f37784ad782683ec1cf599ae9b1b618954e9c22f376f2c", - "https://deno.land/std@0.224.0/assert/assert_is_error.ts": "f856b3bc978a7aa6a601f3fec6603491ab6255118afa6baa84b04426dd3cc491", - "https://deno.land/std@0.224.0/assert/assert_less.ts": "60b61e13a1982865a72726a5fa86c24fad7eb27c3c08b13883fb68882b307f68", - "https://deno.land/std@0.224.0/assert/assert_less_or_equal.ts": "d2c84e17faba4afe085e6c9123a63395accf4f9e00150db899c46e67420e0ec3", - "https://deno.land/std@0.224.0/assert/assert_match.ts": "ace1710dd3b2811c391946954234b5da910c5665aed817943d086d4d4871a8b7", - "https://deno.land/std@0.224.0/assert/assert_not_equals.ts": "78d45dd46133d76ce624b2c6c09392f6110f0df9b73f911d20208a68dee2ef29", - "https://deno.land/std@0.224.0/assert/assert_not_instance_of.ts": "3434a669b4d20cdcc5359779301a0588f941ffdc2ad68803c31eabdb4890cf7a", - "https://deno.land/std@0.224.0/assert/assert_not_match.ts": "df30417240aa2d35b1ea44df7e541991348a063d9ee823430e0b58079a72242a", - "https://deno.land/std@0.224.0/assert/assert_not_strict_equals.ts": "37f73880bd672709373d6dc2c5f148691119bed161f3020fff3548a0496f71b8", - "https://deno.land/std@0.224.0/assert/assert_object_match.ts": "411450fd194fdaabc0089ae68f916b545a49d7b7e6d0026e84a54c9e7eed2693", - "https://deno.land/std@0.224.0/assert/assert_rejects.ts": "4bee1d6d565a5b623146a14668da8f9eb1f026a4f338bbf92b37e43e0aa53c31", - "https://deno.land/std@0.224.0/assert/assert_strict_equals.ts": "b4f45f0fd2e54d9029171876bd0b42dd9ed0efd8f853ab92a3f50127acfa54f5", - "https://deno.land/std@0.224.0/assert/assert_string_includes.ts": "496b9ecad84deab72c8718735373feb6cdaa071eb91a98206f6f3cb4285e71b8", - "https://deno.land/std@0.224.0/assert/assert_throws.ts": "c6508b2879d465898dab2798009299867e67c570d7d34c90a2d235e4553906eb", - "https://deno.land/std@0.224.0/assert/assertion_error.ts": "ba8752bd27ebc51f723702fac2f54d3e94447598f54264a6653d6413738a8917", - "https://deno.land/std@0.224.0/assert/equal.ts": "bddf07bb5fc718e10bb72d5dc2c36c1ce5a8bdd3b647069b6319e07af181ac47", - "https://deno.land/std@0.224.0/assert/fail.ts": "0eba674ffb47dff083f02ced76d5130460bff1a9a68c6514ebe0cdea4abadb68", - "https://deno.land/std@0.224.0/assert/mod.ts": "48b8cb8a619ea0b7958ad7ee9376500fe902284bb36f0e32c598c3dc34cbd6f3", - "https://deno.land/std@0.224.0/assert/unimplemented.ts": "8c55a5793e9147b4f1ef68cd66496b7d5ba7a9e7ca30c6da070c1a58da723d73", - "https://deno.land/std@0.224.0/assert/unreachable.ts": "5ae3dbf63ef988615b93eb08d395dda771c96546565f9e521ed86f6510c29e19", - "https://deno.land/std@0.224.0/dotenv/mod.ts": "0180eaeedaaf88647318811cdaa418cc64dc51fb08354f91f5f480d0a1309f7d", - "https://deno.land/std@0.224.0/dotenv/parse.ts": "09977ff88dfd1f24f9973a338f0f91bbdb9307eb5ff6085446e7c423e4c7ba0c", - "https://deno.land/std@0.224.0/dotenv/stringify.ts": "275da322c409170160440836342eaa7cf012a1d11a7e700d8ca4e7f2f8aa4615", - "https://deno.land/std@0.224.0/fmt/colors.ts": "508563c0659dd7198ba4bbf87e97f654af3c34eb56ba790260f252ad8012e1c5", - "https://deno.land/std@0.224.0/internal/diff.ts": "6234a4b493ebe65dc67a18a0eb97ef683626a1166a1906232ce186ae9f65f4e6", - "https://deno.land/std@0.224.0/internal/format.ts": "0a98ee226fd3d43450245b1844b47003419d34d210fa989900861c79820d21c2", - "https://deno.land/std@0.224.0/internal/mod.ts": "534125398c8e7426183e12dc255bb635d94e06d0f93c60a297723abe69d3b22e", "https://deno.land/x/free_port@v1.2.0/mod.ts": "512646732aaea41fbfd1f210f3ae82660f38251777d189d290da331d0235a58e", - "https://deno.land/x/mock_fetch@0.3.0/mod.ts": "7e7806c65ab17b2b684c334c4e565812bdaf504a3e9c938d2bb52bb67428bc89", "https://deno.land/x/opine@2.3.4/src/methods.ts": "0481daecc6068d24e9e5391818baddf555ab803d39a465dcd259161f8bd8ee49", "https://deno.land/x/opine@2.3.4/src/utils/mergeDescriptors.ts": "1fe498d4a1a8dcfd3570f9ca5e0647590d86d029b3c340bfcfdb57002851e41b", - "https://deno.land/x/superdeno@4.9.0/deps.ts": "acb88a5969aae0bcc82e053cb433cd183a10cc656495caa634b6e22a79156c4e", - "https://deno.land/x/superdeno@4.9.0/mod.ts": "fa91c501867a4302a4bc92d63cbf934fe5475ebb7bf58335338e001147263c87", - "https://deno.land/x/superdeno@4.9.0/src/close.ts": "8bd4ab602ebbb048d06697d0c48c30be5f78ab9ad673850965e8014d78cca7a8", - "https://deno.land/x/superdeno@4.9.0/src/superagent.ts": "8f60187f9278b154ef6bccf09a5ff7d45f81103ad0ce02d45518a6bbe63ce764", - "https://deno.land/x/superdeno@4.9.0/src/superdeno.ts": "2e2cd4898961ac7688f0c2a4b210bf560a338f6601bd231d74bf8a0956880311", - "https://deno.land/x/superdeno@4.9.0/src/test.ts": "1ab3c8c98160af8c3b30e097809d5c57bdd38d7b42c703f3f170f8452ad06c0f", - "https://deno.land/x/superdeno@4.9.0/src/types.ts": "9a48cdfafad3cea2212e1be29cdd2055e7d3d467437c9048012797323335abbb", - "https://deno.land/x/superdeno@4.9.0/src/utils.ts": "09a2e65cc5cc2a261b885f0e66ee84e96e978181975a0728636d20e48b67bd89", - "https://deno.land/x/superdeno@4.9.0/src/xhrSham.js": "6a35aed77bbe98324fe3b4d7430463b7cd6d3b43445ffdccd1fc327dc59dd3c6", - "https://deno.land/x/superdeno@4.9.0/version.ts": "4f8ba8f2a6b201e8e96818d3ab5c43aef1db751523c4b79160500664b72f87de", "https://deno.land/x/superdeno@5.0.1/deps.ts": "57b47f41ed8b17df087ea385b74921e1b758bccaf31d0d55afaeeff24cd87e28", "https://deno.land/x/superdeno@5.0.1/mod.ts": "fa91c501867a4302a4bc92d63cbf934fe5475ebb7bf58335338e001147263c87", "https://deno.land/x/superdeno@5.0.1/src/close.ts": "8bd4ab602ebbb048d06697d0c48c30be5f78ab9ad673850965e8014d78cca7a8", @@ -663,10 +160,6 @@ "https://deno.land/x/superdeno@5.0.1/src/utils.ts": "f90f54ba43f87f3bb104036a2b6a1b0189327fc86ece5d4e21a445f072e09482", "https://deno.land/x/superdeno@5.0.1/src/xhrSham.js": "6a35aed77bbe98324fe3b4d7430463b7cd6d3b43445ffdccd1fc327dc59dd3c6", "https://deno.land/x/superdeno@5.0.1/version.ts": "8ea56025ee2d327922bd8fa58692ea7dbb4069003c2325929bb56216d8257eb5", - "https://deno.land/x/superoak@4.8.1/deps.ts": "d716c0b36fdac6458f6984ce80f69d0b645c7e0ac8461024a40ead5ed3fcd08d", - "https://deno.land/x/superoak@4.8.1/mod.ts": "6d4ea8a5a48c9007f2e947934889c06259d3ebb5569515bcb0432036a22449cd", - "https://deno.land/x/superoak@4.8.1/src/superoak.ts": "9c08a3211c4d1f7bb89e88fc3f242536fce654c157aa6db52d3c24f033bb3d28", - "https://deno.land/x/superoak@4.8.1/version.ts": "b9b71ac3596ff0a6aaad2bf9df8a54fb2925abd526800879e261de9c693812bc", "https://deno.land/x/superoak@5.0.0/deps.ts": "bd765dde2cdf25b44892dab4caa8e81dfa285bec6567591e11a5f4c3e6682c07", "https://deno.land/x/superoak@5.0.0/mod.ts": "6d4ea8a5a48c9007f2e947934889c06259d3ebb5569515bcb0432036a22449cd", "https://deno.land/x/superoak@5.0.0/src/superoak.ts": "c2464572c61d123e97fbfc428a8331969e3264c8dc86d247429aac59ea1f1028", diff --git a/src/deps.ts b/src/deps.ts index 2a933e2..dacead9 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.1.5'; -export { Client } from 'jsr:@switcherapi/switcher-client-deno@2.3.0'; -export { ValidatorFn, ValidatorMiddleware } from 'jsr:@trackerforce/validator4oak@1.2.0'; +export { Client } from 'jsr:@switcherapi/switcher-client-deno@2.3.1'; +export { ValidatorFn, ValidatorMiddleware } from 'jsr:@trackerforce/validator4oak@1.3.0'; export { load } from 'jsr:@std/dotenv@0.225.5'; export { bold, cyan, green } from 'jsr:@std/fmt@1.0.8/colors'; diff --git a/src/routes/feature.ts b/src/routes/feature.ts index d2948de..1f987d1 100644 --- a/src/routes/feature.ts +++ b/src/routes/feature.ts @@ -11,7 +11,7 @@ import { responseError, responseSuccess } from '../utils.ts'; const router = new Router(); let service: FeatureService; -const { body, useErrorHandler } = ValidatorMiddleware.createMiddleware(); +const { body, check, useErrorHandler } = ValidatorMiddleware.createMiddleware(); const { hasLenght, isArray } = ValidatorFn.createValidator(); const featureNameConstraints = [hasLenght({ min: 3 })]; const featureValueConstraints = [hasLenght({ max: 100 })]; @@ -22,10 +22,10 @@ useErrorHandler((context: Context, error: string) => { router.post( '/', - body([ - { key: 'feature', validators: featureNameConstraints }, - { key: 'parameters.value', validators: featureValueConstraints, optional: true }, - ]), + body( + check('feature').ifValue(...featureNameConstraints), + check('parameters.value').maybe().ifValue(...featureValueConstraints), + ), async (context: Context) => { try { const request = toFeatureRequestDto(context); @@ -41,11 +41,11 @@ router.post( router.post( '/group', - body([ - { key: 'features', validators: [isArray({ min: 1 })] }, - { key: 'features.*.feature', validators: featureNameConstraints }, - { key: 'features.*.parameters.value', validators: featureValueConstraints, optional: true }, - ]), + body( + check('features').ifValue(isArray({ min: 1 })), + check('features.*.feature').ifValue(...featureNameConstraints), + check('features.*.parameters.value').maybe().ifValue(...featureValueConstraints), + ), async (context: Context) => { try { const request = toFeaturesRequestDto(context); diff --git a/tests/deps.ts b/tests/deps.ts index 0e9cc19..f600ece 100644 --- a/tests/deps.ts +++ b/tests/deps.ts @@ -1,4 +1,4 @@ export { type Middleware, testing } from 'jsr:@oak/oak@17.1.5'; -export { Client, StrategiesType } from 'jsr:@switcherapi/switcher-client-deno@2.3.0'; +export { Client, StrategiesType } from 'jsr:@switcherapi/switcher-client-deno@2.3.1'; export { superoak } from 'https://deno.land/x/superoak@5.0.0/mod.ts'; export { assert, assertEquals, assertFalse, assertObjectMatch } from 'jsr:@std/assert@1.0.13';