Unverified Commit aeeb19c7 authored by Hong Minhee's avatar Hong Minhee
Browse files

Set up Vitest with @cloudflare/vitest-pool-workers for @fedify/cfworkers



This replaces the previous test file that was always skipped with
actual working tests that run in a simulated Cloudflare Workers
runtime environment using @cloudflare/vitest-pool-workers.

Changes:
- Add wrangler.jsonc with KV and Queue bindings for testing
- Add vitest.config.ts with Workers pool configuration
- Create test/env.d.ts for TypeScript type declarations
- Create test/kv.test.ts with WorkersKvStore tests
- Create test/mq.test.ts with WorkersMessageQueue tests
- Update package.json with Vitest and Cloudflare testing dependencies
- Update deno.json to remove old test configuration
- Update @cloudflare/workers-types to ^4.20250906.0 in catalog

Note: Tests use mock Temporal.Duration objects since Cloudflare Workers
doesn't support the native Temporal API.

Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
parent 47e36f55
Loading
Loading
Loading
Loading
+296 −21
Original line number Diff line number Diff line
@@ -72,7 +72,9 @@
    "jsr:@std/yaml@^1.0.8": "1.0.9",
    "npm:@alinea/suite@~0.6.3": "0.6.3",
    "npm:@cfworker/json-schema@^4.1.1": "4.1.1",
    "npm:@cloudflare/vitest-pool-workers@~0.8.31": "0.8.71_@vitest+runner@3.2.4_@vitest+snapshot@3.2.4_vitest@3.2.4__@types+node@24.7.2__vite@7.1.9___@types+node@24.7.2___tsx@4.20.6___picomatch@4.0.3__tsx@4.20.6_@types+node@24.7.2_@cloudflare+workers-types@4.20251011.0_tsx@4.20.6",
    "npm:@cloudflare/workers-types@^4.20250529.0": "4.20251011.0",
    "npm:@cloudflare/workers-types@^4.20250906.0": "4.20251011.0",
    "npm:@hongminhee/localtunnel@0.3": "0.3.0",
    "npm:@jimp/core@^1.6.0": "1.6.0",
    "npm:@jimp/wasm-webp@^1.6.0": "1.6.0",
@@ -129,7 +131,9 @@
    "npm:url-template@^3.1.1": "3.1.1",
    "npm:urlpattern-polyfill@^10.1.0": "10.1.0",
    "npm:uuidv7@1": "1.0.2",
    "npm:wrangler@^4.17.0": "4.42.2_@cloudflare+workers-types@4.20251011.0_unenv@2.0.0-rc.21_workerd@1.20251008.0"
    "npm:vitest@3.2": "3.2.4_@types+node@24.7.2_vite@7.1.9__@types+node@24.7.2__tsx@4.20.6__picomatch@4.0.3_tsx@4.20.6",
    "npm:wrangler@^4.17.0": "4.35.0_@cloudflare+workers-types@4.20251011.0_unenv@2.0.0-rc.21_workerd@1.20250906.0",
    "npm:wrangler@^4.21.1": "4.35.0_@cloudflare+workers-types@4.20251011.0_unenv@2.0.0-rc.21_workerd@1.20250906.0"
  },
  "jsr": {
    "@alinea/suite@0.6.3": {
@@ -480,36 +484,76 @@
        "mime@3.0.0"
      ]
    },
    "@cloudflare/unenv-preset@2.7.7_unenv@2.0.0-rc.21_workerd@1.20251008.0": {
      "integrity": "sha512-HtZuh166y0Olbj9bqqySckz0Rw9uHjggJeoGbDx5x+sgezBXlxO6tQSig2RZw5tgObF8mWI8zaPvQMkQZtAODw==",
    "@cloudflare/unenv-preset@2.7.3_unenv@2.0.0-rc.21_workerd@1.20250906.0": {
      "integrity": "sha512-tsQQagBKjvpd9baa6nWVIv399ejiqcrUBBW6SZx6Z22+ymm+Odv5+cFimyuCsD/fC1fQTwfRmwXBNpzvHSeGCw==",
      "dependencies": [
        "unenv",
        "workerd"
        "workerd@1.20250906.0"
      ],
      "optionalPeers": [
        "workerd"
        "workerd@1.20250906.0"
      ]
    },
    "@cloudflare/vitest-pool-workers@0.8.71_@vitest+runner@3.2.4_@vitest+snapshot@3.2.4_vitest@3.2.4__@types+node@24.7.2__vite@7.1.9___@types+node@24.7.2___tsx@4.20.6___picomatch@4.0.3__tsx@4.20.6_@types+node@24.7.2_@cloudflare+workers-types@4.20251011.0_tsx@4.20.6": {
      "integrity": "sha512-keu2HCLQfRNwbmLBCDXJgCFpANTaYnQpE01fBOo4CNwiWHUT7SZGN7w64RKiSWRHyYppStXBuE5Ng7F42+flpg==",
      "dependencies": [
        "@vitest/runner",
        "@vitest/snapshot",
        "birpc@0.2.14",
        "cjs-module-lexer",
        "devalue",
        "miniflare@4.20250906.0",
        "semver",
        "vitest",
        "wrangler",
        "zod@3.25.76"
      ]
    },
    "@cloudflare/workerd-darwin-64@1.20250906.0": {
      "integrity": "sha512-E+X/YYH9BmX0ew2j/mAWFif2z05NMNuhCTlNYEGLkqMe99K15UewBqajL9pMcMUKxylnlrEoK3VNxl33DkbnPA==",
      "os": ["darwin"],
      "cpu": ["x64"]
    },
    "@cloudflare/workerd-darwin-64@1.20251008.0": {
      "integrity": "sha512-yph0H+8mMOK5Z9oDwjb8rI96oTVt4no5lZ43aorcbzsWG9VUIaXSXlBBoB3von6p4YCRW+J3n36fBM9XZ6TLaA==",
      "os": ["darwin"],
      "cpu": ["x64"]
    },
    "@cloudflare/workerd-darwin-arm64@1.20250906.0": {
      "integrity": "sha512-X5apsZ1SFW4FYTM19ISHf8005FJMPfrcf4U5rO0tdj+TeJgQgXuZ57IG0WeW7SpLVeBo8hM6WC8CovZh41AfnA==",
      "os": ["darwin"],
      "cpu": ["arm64"]
    },
    "@cloudflare/workerd-darwin-arm64@1.20251008.0": {
      "integrity": "sha512-Yc4lMGSbM4AEtYRpyDpmk77MsHb6X2BSwJgMgGsLVPmckM7ZHivZkJChfcNQjZ/MGR6nkhYc4iF6TcVS+UMEVw==",
      "os": ["darwin"],
      "cpu": ["arm64"]
    },
    "@cloudflare/workerd-linux-64@1.20250906.0": {
      "integrity": "sha512-rlKzWgsLnlQ5Nt9W69YBJKcmTmZbOGu0edUsenXPmc6wzULUxoQpi7ZE9k3TfTonJx4WoQsQlzCUamRYFsX+0Q==",
      "os": ["linux"],
      "cpu": ["x64"]
    },
    "@cloudflare/workerd-linux-64@1.20251008.0": {
      "integrity": "sha512-AjoQnylw4/5G6SmfhZRsli7EuIK7ZMhmbxtU0jkpciTlVV8H01OsFOgS1d8zaTXMfkWamEfMouy8oH/L7B9YcQ==",
      "os": ["linux"],
      "cpu": ["x64"]
    },
    "@cloudflare/workerd-linux-arm64@1.20250906.0": {
      "integrity": "sha512-DdedhiQ+SeLzpg7BpcLrIPEZ33QKioJQ1wvL4X7nuLzEB9rWzS37NNNahQzc1+44rhG4fyiHbXBPOeox4B9XVA==",
      "os": ["linux"],
      "cpu": ["arm64"]
    },
    "@cloudflare/workerd-linux-arm64@1.20251008.0": {
      "integrity": "sha512-hRy9yyvzVq1HsqHZUmFkAr0C8JGjAD/PeeVEGCKL3jln3M9sNCKIrbDXiL+efe+EwajJNNlDxpO+s30uVWVaRg==",
      "os": ["linux"],
      "cpu": ["arm64"]
    },
    "@cloudflare/workerd-windows-64@1.20250906.0": {
      "integrity": "sha512-Q8Qjfs8jGVILnZL6vUpQ90q/8MTCYaGR3d1LGxZMBqte8Vr7xF3KFHPEy7tFs0j0mMjnqCYzlofmPNY+9ZaDRg==",
      "os": ["win32"],
      "cpu": ["x64"]
    },
    "@cloudflare/workerd-windows-64@1.20251008.0": {
      "integrity": "sha512-Gm0RR+ehfNMsScn2pUcn3N9PDUpy7FyvV9ecHEyclKttvztyFOcmsF14bxEaSVv7iM4TxWEBn1rclmYHxDM4ow==",
      "os": ["win32"],
@@ -1741,9 +1785,19 @@
        "@types/node@24.2.0"
      ]
    },
    "@types/chai@5.2.3": {
      "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
      "dependencies": [
        "@types/deep-eql",
        "assertion-error"
      ]
    },
    "@types/cookie@0.6.0": {
      "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="
    },
    "@types/deep-eql@4.0.2": {
      "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="
    },
    "@types/estree@1.0.8": {
      "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="
    },
@@ -1783,6 +1837,64 @@
    "@ungap/structured-clone@1.3.0": {
      "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="
    },
    "@vitest/expect@3.2.4": {
      "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
      "dependencies": [
        "@types/chai",
        "@vitest/spy",
        "@vitest/utils",
        "chai",
        "tinyrainbow"
      ]
    },
    "@vitest/mocker@3.2.4_vite@7.1.9__@types+node@24.7.2__tsx@4.20.6__picomatch@4.0.3_@types+node@24.7.2_tsx@4.20.6": {
      "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
      "dependencies": [
        "@vitest/spy",
        "estree-walker",
        "magic-string",
        "vite"
      ],
      "optionalPeers": [
        "vite"
      ]
    },
    "@vitest/pretty-format@3.2.4": {
      "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
      "dependencies": [
        "tinyrainbow"
      ]
    },
    "@vitest/runner@3.2.4": {
      "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
      "dependencies": [
        "@vitest/utils",
        "pathe",
        "strip-literal"
      ]
    },
    "@vitest/snapshot@3.2.4": {
      "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
      "dependencies": [
        "@vitest/pretty-format",
        "magic-string",
        "pathe"
      ]
    },
    "@vitest/spy@3.2.4": {
      "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
      "dependencies": [
        "tinyspy"
      ]
    },
    "@vitest/utils@3.2.4": {
      "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
      "dependencies": [
        "@vitest/pretty-format",
        "loupe",
        "tinyrainbow"
      ]
    },
    "abort-controller@3.0.0": {
      "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
      "dependencies": [
@@ -1873,6 +1985,9 @@
        "tslib"
      ]
    },
    "assertion-error@2.0.1": {
      "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="
    },
    "ast-kit@2.1.3": {
      "integrity": "sha512-TH+b3Lv6pUjy/Nu0m6A2JULtdzLpmqF9x1Dhj00ZoEiML8qvVA9j1flkzTKNYgdEhWrjDwtWNpyyCUbfQe514g==",
      "dependencies": [
@@ -1899,6 +2014,9 @@
    "base64-js@1.5.1": {
      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
    },
    "birpc@0.2.14": {
      "integrity": "sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA=="
    },
    "birpc@2.6.1": {
      "integrity": "sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ=="
    },
@@ -1985,6 +2103,16 @@
    "ccount@2.0.1": {
      "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="
    },
    "chai@5.3.3": {
      "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
      "dependencies": [
        "assertion-error",
        "check-error",
        "deep-eql",
        "loupe",
        "pathval"
      ]
    },
    "chalk@4.1.2": {
      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
      "dependencies": [
@@ -2001,12 +2129,18 @@
    "character-entities-legacy@3.0.0": {
      "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="
    },
    "check-error@2.1.1": {
      "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="
    },
    "chokidar@4.0.3": {
      "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
      "dependencies": [
        "readdirp"
      ]
    },
    "cjs-module-lexer@1.4.3": {
      "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="
    },
    "cli-cursor@5.0.0": {
      "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
      "dependencies": [
@@ -2135,6 +2269,9 @@
        "to-data-view@1.1.0"
      ]
    },
    "deep-eql@5.0.2": {
      "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="
    },
    "deep-equal@1.0.1": {
      "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
    },
@@ -2249,6 +2386,9 @@
    "es-errors@1.3.0": {
      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
    },
    "es-module-lexer@1.7.0": {
      "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="
    },
    "es-object-atoms@1.1.1": {
      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
      "dependencies": [
@@ -2308,6 +2448,12 @@
        "@jridgewell/sourcemap-codec"
      ]
    },
    "estree-walker@3.0.3": {
      "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
      "dependencies": [
        "@types/estree"
      ]
    },
    "etag@1.8.1": {
      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
    },
@@ -2323,6 +2469,9 @@
    "exit-hook@2.2.1": {
      "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw=="
    },
    "expect-type@1.3.0": {
      "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="
    },
    "express@4.21.2": {
      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
      "dependencies": [
@@ -2810,6 +2959,9 @@
    "jpeg-js@0.4.4": {
      "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
    },
    "js-tokens@9.0.1": {
      "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="
    },
    "jsbi@4.3.2": {
      "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew=="
    },
@@ -2931,6 +3083,9 @@
        "is-unicode-supported@1.3.0"
      ]
    },
    "loupe@3.2.1": {
      "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ=="
    },
    "lru-cache@6.0.0": {
      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
      "dependencies": [
@@ -3028,6 +3183,24 @@
    "mimic-function@5.0.1": {
      "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="
    },
    "miniflare@4.20250906.0": {
      "integrity": "sha512-T/RWn1sa0ien80s6NjU+Un/tj12gR6wqScZoiLeMJDD4/fK0UXfnbWXJDubnUED8Xjm7RPQ5ESYdE+mhPmMtuQ==",
      "dependencies": [
        "@cspotcode/source-map-support",
        "acorn@8.14.0",
        "acorn-walk",
        "exit-hook",
        "glob-to-regexp",
        "sharp@0.33.5",
        "stoppable",
        "undici@7.14.0",
        "workerd@1.20250906.0",
        "ws",
        "youch",
        "zod@3.22.3"
      ],
      "bin": true
    },
    "miniflare@4.20251008.0": {
      "integrity": "sha512-sKCNYNzXG6l8qg0Oo7y8WcDKcpbgw0qwZsxNpdZilFTR4EavRow2TlcwuPSVN99jqAjhz0M4VXvTdSGdtJ2VfQ==",
      "dependencies": [
@@ -3039,7 +3212,7 @@
        "sharp@0.33.5",
        "stoppable",
        "undici@7.14.0",
        "workerd",
        "workerd@1.20251008.0",
        "ws",
        "youch",
        "zod@3.22.3"
@@ -3188,6 +3361,9 @@
    "pathe@2.0.3": {
      "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="
    },
    "pathval@2.0.1": {
      "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ=="
    },
    "peek-readable@4.1.0": {
      "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg=="
    },
@@ -3435,7 +3611,7 @@
        "@babel/parser",
        "@babel/types",
        "ast-kit",
        "birpc",
        "birpc@2.6.1",
        "debug@4.4.3",
        "dts-resolver",
        "get-tsconfig",
@@ -3703,6 +3879,9 @@
        "side-channel-weakmap"
      ]
    },
    "siginfo@2.0.0": {
      "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="
    },
    "signal-exit@4.1.0": {
      "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
    },
@@ -3741,6 +3920,9 @@
    "split2@4.2.0": {
      "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="
    },
    "stackback@0.0.2": {
      "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="
    },
    "standard-as-callback@2.1.0": {
      "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A=="
    },
@@ -3750,6 +3932,9 @@
    "statuses@2.0.1": {
      "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
    },
    "std-env@3.10.0": {
      "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="
    },
    "stdin-discarder@0.2.2": {
      "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="
    },
@@ -3797,6 +3982,12 @@
        "ansi-regex@6.2.2"
      ]
    },
    "strip-literal@3.1.0": {
      "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
      "dependencies": [
        "js-tokens"
      ]
    },
    "strtok3@10.3.4": {
      "integrity": "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==",
      "dependencies": [
@@ -3866,9 +4057,15 @@
        "real-require"
      ]
    },
    "tinybench@2.9.0": {
      "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="
    },
    "tinycolor2@1.6.0": {
      "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
    },
    "tinyexec@0.3.2": {
      "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="
    },
    "tinyexec@1.0.1": {
      "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw=="
    },
@@ -3879,6 +4076,15 @@
        "picomatch"
      ]
    },
    "tinypool@1.1.1": {
      "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg=="
    },
    "tinyrainbow@2.0.0": {
      "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="
    },
    "tinyspy@4.0.4": {
      "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q=="
    },
    "to-data-view@1.1.0": {
      "integrity": "sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ=="
    },
@@ -3928,7 +4134,7 @@
        "rolldown",
        "rolldown-plugin-dts",
        "semver",
        "tinyexec",
        "tinyexec@1.0.1",
        "tinyglobby",
        "unconfig"
      ],
@@ -4098,6 +4304,17 @@
        "vfile-message"
      ]
    },
    "vite-node@3.2.4_@types+node@24.7.2_tsx@4.20.6": {
      "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
      "dependencies": [
        "cac",
        "debug@4.4.3",
        "es-module-lexer",
        "pathe",
        "vite"
      ],
      "bin": true
    },
    "vite@7.1.9_@types+node@24.7.2_tsx@4.20.6_picomatch@4.0.3": {
      "integrity": "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==",
      "dependencies": [
@@ -4128,6 +4345,39 @@
        "vite"
      ]
    },
    "vitest@3.2.4_@types+node@24.7.2_vite@7.1.9__@types+node@24.7.2__tsx@4.20.6__picomatch@4.0.3_tsx@4.20.6": {
      "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
      "dependencies": [
        "@types/chai",
        "@types/node@24.7.2",
        "@vitest/expect",
        "@vitest/mocker",
        "@vitest/pretty-format",
        "@vitest/runner",
        "@vitest/snapshot",
        "@vitest/spy",
        "@vitest/utils",
        "chai",
        "debug@4.4.3",
        "expect-type",
        "magic-string",
        "pathe",
        "picomatch",
        "std-env",
        "tinybench",
        "tinyexec@0.3.2",
        "tinyglobby",
        "tinypool",
        "tinyrainbow",
        "vite",
        "vite-node",
        "why-is-node-running"
      ],
      "optionalPeers": [
        "@types/node@24.7.2"
      ],
      "bin": true
    },
    "wasm-feature-detect@1.8.0": {
      "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ=="
    },
@@ -4144,30 +4394,50 @@
        "webidl-conversions"
      ]
    },
    "why-is-node-running@2.3.0": {
      "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
      "dependencies": [
        "siginfo",
        "stackback"
      ],
      "bin": true
    },
    "workerd@1.20250906.0": {
      "integrity": "sha512-ryVyEaqXPPsr/AxccRmYZZmDAkfQVjhfRqrNTlEeN8aftBk6Ca1u7/VqmfOayjCXrA+O547TauebU+J3IpvFXw==",
      "optionalDependencies": [
        "@cloudflare/workerd-darwin-64@1.20250906.0",
        "@cloudflare/workerd-darwin-arm64@1.20250906.0",
        "@cloudflare/workerd-linux-64@1.20250906.0",
        "@cloudflare/workerd-linux-arm64@1.20250906.0",
        "@cloudflare/workerd-windows-64@1.20250906.0"
      ],
      "scripts": true,
      "bin": true
    },
    "workerd@1.20251008.0": {
      "integrity": "sha512-HwaJmXO3M1r4S8x2ea2vy8Rw/y/38HRQuK/gNDRQ7w9cJXn6xSl1sIIqKCffULSUjul3wV3I3Nd/GfbmsRReEA==",
      "optionalDependencies": [
        "@cloudflare/workerd-darwin-64",
        "@cloudflare/workerd-darwin-arm64",
        "@cloudflare/workerd-linux-64",
        "@cloudflare/workerd-linux-arm64",
        "@cloudflare/workerd-windows-64"
        "@cloudflare/workerd-darwin-64@1.20251008.0",
        "@cloudflare/workerd-darwin-arm64@1.20251008.0",
        "@cloudflare/workerd-linux-64@1.20251008.0",
        "@cloudflare/workerd-linux-arm64@1.20251008.0",
        "@cloudflare/workerd-windows-64@1.20251008.0"
      ],
      "scripts": true,
      "bin": true
    },
    "wrangler@4.42.2_@cloudflare+workers-types@4.20251011.0_unenv@2.0.0-rc.21_workerd@1.20251008.0": {
      "integrity": "sha512-1iTnbjB4F12KSP1zbfxQL495xarS+vdrZnulQP2SEcAxDTUGn7N9zk1O2WtFOc+Fhcgl+9/sdz/4AL9pF34Pwg==",
    "wrangler@4.35.0_@cloudflare+workers-types@4.20251011.0_unenv@2.0.0-rc.21_workerd@1.20250906.0": {
      "integrity": "sha512-HbyXtbrh4Fi3mU8ussY85tVdQ74qpVS1vctUgaPc+bPrXBTqfDLkZ6VRtHAVF/eBhz4SFmhJtCQpN1caY2Ak8A==",
      "dependencies": [
        "@cloudflare/kv-asset-handler",
        "@cloudflare/unenv-preset",
        "@cloudflare/workers-types",
        "blake3-wasm",
        "esbuild",
        "miniflare",
        "miniflare@4.20250906.0",
        "path-to-regexp@6.3.0",
        "unenv",
        "workerd"
        "workerd@1.20250906.0"
      ],
      "optionalDependencies": [
        "fsevents"
@@ -4553,10 +4823,15 @@
      },
      "packages/cfworkers": {
        "dependencies": [
          "jsr:@std/assert@^1.0.13",
          "npm:@cloudflare/workers-types@^4.20250529.0",
          "npm:es-toolkit@^1.30.0"
          "npm:@cloudflare/workers-types@^4.20250906.0"
        ],
        "packageJson": {
          "dependencies": [
            "npm:@cloudflare/vitest-pool-workers@~0.8.31",
            "npm:vitest@3.2",
            "npm:wrangler@^4.21.1"
          ]
        }
      },
      "packages/cli": {
        "dependencies": [
+4 −6
Original line number Diff line number Diff line
@@ -3,19 +3,17 @@
  "version": "1.10.0",
  "license": "MIT",
  "imports": {
    "@std/assert": "jsr:@std/assert@^1.0.13",
    "es-toolkit": "npm:es-toolkit@^1.30.0",
    "@cloudflare/workers-types/experimental": "npm:@cloudflare/workers-types@^4.20250529.0/experimental"
    "@cloudflare/workers-types/experimental": "npm:@cloudflare/workers-types@^4.20250906.0/experimental"
  },
  "exports": {
    ".": "./src/mod.ts"
  },
  "exclude": [
    "dist",
    "node_modules"
    "node_modules",
    "test"
  ],
  "tasks": {
    "check": "deno fmt --check && deno lint && deno check src/*.ts",
    "test": "deno test --allow-net --allow-env"
    "check": "deno fmt --check && deno lint && deno check src/*.ts"
  }
}
+5 −2
Original line number Diff line number Diff line
@@ -55,13 +55,16 @@
    "@cloudflare/workers-types": "catalog:"
  },
  "devDependencies": {
    "@cloudflare/vitest-pool-workers": "^0.8.31",
    "tsdown": "catalog:",
    "typescript": "catalog:"
    "typescript": "catalog:",
    "vitest": "~3.2.0",
    "wrangler": "^4.21.1"
  },
  "scripts": {
    "build": "tsdown",
    "prepack": "tsdown",
    "prepublish": "tsdown",
    "test": "deno task codegen && tsdown && cd dist/ && node --test"
    "test": "vitest run"
  }
}
+0 −138

File deleted.

Preview size limit exceeded, changes collapsed.

+8 −0
Original line number Diff line number Diff line
import type { KVNamespace, Queue } from "@cloudflare/workers-types/experimental";

declare module "cloudflare:test" {
  interface ProvidedEnv {
    KV1: KVNamespace<string>;
    Q1: Queue;
  }
}
Loading