├── .github └── workflows │ ├── release.yml │ └── tests.yaml ├── .gitignore ├── LICENSE ├── README.md ├── biome.json ├── bun.lockb ├── examples ├── cloudflare │ ├── ci.test.ts │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── worker.ts │ ├── tsconfig.json │ └── wrangler.toml ├── deno │ ├── main.test.ts │ └── main.ts └── nextjs │ ├── .gitignore │ ├── README.md │ ├── app │ ├── layout.tsx │ └── route.ts │ ├── bun.lockb │ ├── ci.test.ts │ ├── next.config.js │ ├── package.json │ ├── postcss.config.js │ ├── tailwind.config.ts │ └── tsconfig.json ├── package.json ├── pnpm-lock.yaml ├── src ├── booleans.test.ts ├── booleans.ts └── index.ts ├── tsconfig.json └── tsup.config.js /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | release: 10 | name: Release 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout Repo 14 | uses: actions/checkout@v3 15 | 16 | - name: Set env 17 | run: echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV 18 | 19 | - name: Setup Node 20 | uses: actions/setup-node@v2 21 | with: 22 | node-version: lts/* 23 | 24 | - name: Install bun 25 | run: npm i -g bun 26 | 27 | - name: Set package version 28 | run: | 29 | bun run ./scripts/set-version.js . ${{ env.VERSION }} 30 | echo "export const VERSION='${{ env.VERSION }}'" > ./src/version.ts 31 | 32 | - name: Install Dependencies 33 | run: bun install 34 | 35 | - name: Build 36 | run: bun run build 37 | 38 | - name: Publish 39 | if: "!github.event.release.prerelease" 40 | working-directory: ./dist 41 | run: | 42 | echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}" > .npmrc 43 | npm publish --access public 44 | 45 | - name: Publish release candidate 46 | if: "github.event.release.prerelease" 47 | working-directory: ./dist 48 | run: | 49 | echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}" > .npmrc 50 | npm publish --access public --tag=next 51 | -------------------------------------------------------------------------------- /.github/workflows/tests.yaml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | schedule: 8 | - cron: "0 0 * * *" # daily 9 | 10 | 11 | jobs: 12 | test: 13 | runs-on: ubuntu-latest 14 | concurrency: test 15 | 16 | name: Tests 17 | steps: 18 | - name: Setup repo 19 | uses: actions/checkout@v3 20 | 21 | - name: Install bun 22 | run: npm install -g bun 23 | 24 | - name: Install Dependencies 25 | run: bun install 26 | 27 | - name: Lint 28 | run: bun run fmt 29 | 30 | - name: Run tests 31 | run: bun test src --bail --coverage 32 | 33 | - name: Build 34 | run: bun run build 35 | 36 | 37 | nextjs-local: 38 | needs: 39 | - test 40 | 41 | runs-on: ubuntu-latest 42 | steps: 43 | - name: Setup repo 44 | uses: actions/checkout@v3 45 | 46 | - name: Install bun 47 | run: npm install -g bun 48 | 49 | - name: Install Dependencies 50 | run: bun install 51 | 52 | - name: Build 53 | run: bun run build 54 | 55 | - name: Install example 56 | run: | 57 | bun install 58 | bun add @chronark/sdk@../.. 59 | working-directory: ./examples/nextjs 60 | 61 | - name: Build example 62 | run: bun run build 63 | working-directory: ./examples/nextjs 64 | 65 | - name: Start example 66 | run: bun run start & 67 | working-directory: ./examples/nextjs 68 | 69 | - name: Test 70 | run: bun test examples/nextjs/ci.test.ts 71 | env: 72 | DEPLOYMENT_URL: http://localhost:3000 73 | 74 | 75 | nextjs-deployed: 76 | concurrency: nextjs-deployed 77 | runs-on: ubuntu-latest 78 | needs: 79 | - release 80 | steps: 81 | - name: Setup repo 82 | uses: actions/checkout@v3 83 | 84 | - name: Setup node 85 | uses: actions/setup-node@v2 86 | with: 87 | node-version: 18 88 | 89 | - name: Install bun 90 | run: npm install -g bun 91 | 92 | - name: Install Canary 93 | run: bun install @chronark/sdk@${{needs.release.outputs.version}} 94 | working-directory: ./examples/nextjs 95 | 96 | - name: Deploy 97 | run: | 98 | DEPLOYMENT_URL=$(npx vercel --token=${{ secrets.VERCEL_TOKEN }}) 99 | echo "DEPLOYMENT_URL=${DEPLOYMENT_URL}" >> $GITHUB_ENV 100 | env: 101 | VERCEL_ORG_ID: ${{secrets.VERCEL_ORG_ID}} 102 | VERCEL_PROJECT_ID: ${{secrets.VERCEL_PROJECT_ID}} 103 | 104 | - name: Test 105 | run: bun test examples/nextjs/ci.test.ts 106 | 107 | 108 | cloudflare-local: 109 | needs: 110 | - test 111 | 112 | runs-on: ubuntu-latest 113 | steps: 114 | - name: Setup repo 115 | uses: actions/checkout@v3 116 | 117 | - name: Install bun 118 | run: npm install -g bun 119 | 120 | - name: Install Dependencies 121 | run: bun install 122 | 123 | - name: Build 124 | run: bun run build 125 | 126 | - name: Install example 127 | run: | 128 | npm install 129 | npm install @chronark/sdk@../.. 130 | npm install -g wrangler 131 | working-directory: ./examples/cloudflare 132 | 133 | - name: Start example 134 | run: wrangler dev & sleep 5 135 | working-directory: ./examples/cloudflare 136 | 137 | - name: Test 138 | run: bun test examples/cloudflare/ci.test.ts 139 | env: 140 | DEPLOYMENT_URL: http://127.0.0.1:8787 141 | 142 | 143 | cloudflare-deployed: 144 | needs: 145 | - release 146 | 147 | runs-on: ubuntu-latest 148 | steps: 149 | - name: Setup repo 150 | uses: actions/checkout@v3 151 | 152 | - name: Install bun 153 | run: npm install -g bun 154 | 155 | - name: Install example 156 | run: | 157 | npm install 158 | npm install @chronark/sdk@${{needs.release.outputs.version}} 159 | npm install -g wrangler 160 | working-directory: ./examples/cloudflare 161 | 162 | - name: Deploy 163 | run: wrangler deploy 164 | working-directory: ./examples/cloudflare 165 | env: 166 | CLOUDFLARE_API_TOKEN: ${{secrets.CF_API_TOKEN}} 167 | - name: Test 168 | run: bun test examples/cloudflare/ci.test.ts 169 | env: 170 | DEPLOYMENT_URL: https://sdk.chronark.workers.dev 171 | 172 | 173 | 174 | deno-deployed: 175 | concurrency: deno-deployed 176 | needs: 177 | - release 178 | runs-on: ubuntu-latest 179 | steps: 180 | - name: Setup repo 181 | uses: actions/checkout@v3 182 | 183 | - name: Install bun 184 | run: npm install -g bun 185 | 186 | - uses: denoland/setup-deno@v1 187 | with: 188 | deno-version: v1.x 189 | 190 | - name: Install @chronark/sdk canary version 191 | run: sed -i 's;@chronark/sdk@latest;@chronark/sdk@${{needs.release.outputs.version}};' ./examples/deno/main.ts 192 | 193 | - name: Deploy 194 | run: deno run -A https://deno.land/x/deploy/deployctl.ts deploy --project=chronark-sdk ./main.ts 195 | working-directory: examples/deno 196 | env: 197 | DENO_DEPLOY_TOKEN: ${{ secrets.DENO_DEPLOY_TOKEN }} 198 | 199 | - name: Test 200 | run: bun test examples/deno/ci.test.ts 201 | env: 202 | DEPLOYMENT_URL: https://upstash-redis-70jbfgxwz310.deno.dev 203 | 204 | 205 | release: 206 | concurrency: release 207 | outputs: 208 | version: ${{ steps.version.outputs.version }} 209 | needs: 210 | - nextjs-local 211 | - cloudflare-local 212 | 213 | name: Canary Release 214 | runs-on: ubuntu-latest 215 | steps: 216 | - name: Checkout Repo 217 | uses: actions/checkout@v3 218 | 219 | - name: Get version 220 | id: version 221 | run: echo "::set-output name=version::0.0.0-ci.${GITHUB_SHA}-$(date +%s)" 222 | 223 | - name: Setup Node 224 | uses: actions/setup-node@v2 225 | with: 226 | node-version: 18 227 | 228 | - name: Install bun 229 | run: npm install -g bun 230 | 231 | - name: Set package version 232 | run: | 233 | jq '.version = "${{ steps.version.outputs.version }}"' <<< cat package.json > tmp.json 234 | mv tmp.json package.json 235 | 236 | - name: Install Dependencies 237 | run: bun install 238 | 239 | - name: Build 240 | run: bun run build 241 | 242 | - name: Publish ci version 243 | run: | 244 | npm config set //registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}} 245 | npm publish --tag=ci 246 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Andreas Thomas 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

@chronark/sdk

3 |
Typescript SDK Template
4 |
5 | 6 |
7 | 8 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.0.0/schema.json", 3 | 4 | "linter": { 5 | "enabled": true, 6 | "rules": { 7 | "recommended": true 8 | }, 9 | "ignore": ["node_modules", ".next", "dist"] 10 | }, 11 | "formatter": { 12 | "indentStyle": "space", 13 | "indentWidth": 2, 14 | "enabled": true, 15 | "lineWidth": 100, 16 | "ignore": ["node_modules", ".next", "dist"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chronark/sdk/19ded770d95104a643cf2a3f8797bec19e36f636/bun.lockb -------------------------------------------------------------------------------- /examples/cloudflare/ci.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from "bun:test"; 2 | 3 | const url = process.env.DEPLOYMENT_URL; 4 | if (!url) { 5 | throw new Error("DEPLOYMENT_URL not set"); 6 | } 7 | 8 | test("works", async () => { 9 | const res = await fetch(url); 10 | if (res.status !== 200) { 11 | console.log(await res.text()); 12 | } 13 | expect(res.status).toEqual(200); 14 | 15 | const response = (await res.json()) as { shouldBeTrue: boolean; shouldBeFalse: boolean }; 16 | expect(response.shouldBeTrue).toBeTrue(); 17 | expect(response.shouldBeFalse).toBeFalse(); 18 | }); 19 | -------------------------------------------------------------------------------- /examples/cloudflare/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudflare", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "cloudflare", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "@chronark/sdk": "^0.0.2" 12 | }, 13 | "devDependencies": { 14 | "@cloudflare/workers-types": "^4.20230419.0", 15 | "typescript": "^5.0.4", 16 | "wrangler": "^3.0.0" 17 | } 18 | }, 19 | "node_modules/@chronark/sdk": { 20 | "version": "0.0.2", 21 | "resolved": "https://registry.npmjs.org/@chronark/sdk/-/sdk-0.0.2.tgz", 22 | "integrity": "sha512-yakgoixj5qHyhuKhZkCXapfmERSNz8RHmNEg8yqThaKHSfwIkvmRBQDQRzWRMye8MBLFrofD1GSSt1NWxI7izQ==", 23 | "peerDependencies": { 24 | "typescript": "^5.0.0" 25 | } 26 | }, 27 | "node_modules/@cloudflare/kv-asset-handler": { 28 | "version": "0.2.0", 29 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", 30 | "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", 31 | "dev": true, 32 | "dependencies": { 33 | "mime": "^3.0.0" 34 | } 35 | }, 36 | "node_modules/@cloudflare/workerd-darwin-64": { 37 | "version": "1.20231025.0", 38 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231025.0.tgz", 39 | "integrity": "sha512-MYRYTbSl+tjGg6su7savlLIb8cOcKJfdGpA+WdtgqT2OF7O+89Lag0l1SA/iyVlUkT31Jc6OLHqvzsXgmg+niQ==", 40 | "cpu": [ 41 | "x64" 42 | ], 43 | "dev": true, 44 | "optional": true, 45 | "os": [ 46 | "darwin" 47 | ], 48 | "engines": { 49 | "node": ">=16" 50 | } 51 | }, 52 | "node_modules/@cloudflare/workerd-darwin-arm64": { 53 | "version": "1.20231025.0", 54 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231025.0.tgz", 55 | "integrity": "sha512-BszjtBDR84TVa6oWe74dePJSAukWlTmLw9zR4KeWuwZLJGV7RMm6AmwGStetjnwZrecZaaOFELfBCAHtsebV0Q==", 56 | "cpu": [ 57 | "arm64" 58 | ], 59 | "dev": true, 60 | "optional": true, 61 | "os": [ 62 | "darwin" 63 | ], 64 | "engines": { 65 | "node": ">=16" 66 | } 67 | }, 68 | "node_modules/@cloudflare/workerd-linux-64": { 69 | "version": "1.20231025.0", 70 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231025.0.tgz", 71 | "integrity": "sha512-AT9dxgKXOa9xZxZ3k2a432axPJJ58KpoNWnPiPYGpuAuLoWnfcYwwh6mr9sZVcTdAdTAK9Xu9c81tp0YABanUw==", 72 | "cpu": [ 73 | "x64" 74 | ], 75 | "dev": true, 76 | "optional": true, 77 | "os": [ 78 | "linux" 79 | ], 80 | "engines": { 81 | "node": ">=16" 82 | } 83 | }, 84 | "node_modules/@cloudflare/workerd-linux-arm64": { 85 | "version": "1.20231025.0", 86 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231025.0.tgz", 87 | "integrity": "sha512-EIjex5o2k80YZWPix1btGybL/vNZ3o6vqKX9ptS0JcFkHV5aFX5/kcMwSBRjiIC+w04zVjmGQx3N1Vh3njuncg==", 88 | "cpu": [ 89 | "arm64" 90 | ], 91 | "dev": true, 92 | "optional": true, 93 | "os": [ 94 | "linux" 95 | ], 96 | "engines": { 97 | "node": ">=16" 98 | } 99 | }, 100 | "node_modules/@cloudflare/workerd-windows-64": { 101 | "version": "1.20231025.0", 102 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231025.0.tgz", 103 | "integrity": "sha512-7vtq0mO22A2v0OOsKXa760r9a84Gg8CK0gDu5uNWlj6hojmt011iz7jJt76I7oo/XrVwVlVfu69GnA3ljx6U8w==", 104 | "cpu": [ 105 | "x64" 106 | ], 107 | "dev": true, 108 | "optional": true, 109 | "os": [ 110 | "win32" 111 | ], 112 | "engines": { 113 | "node": ">=16" 114 | } 115 | }, 116 | "node_modules/@cloudflare/workers-types": { 117 | "version": "4.20231025.0", 118 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20231025.0.tgz", 119 | "integrity": "sha512-TkcZkntUTOcvJ4vgmwpNfLTclpMbmbClZCe62B25/VTukmyv91joRa4eKzSjzCZUXTbFHNmVdOpmGaaJU2U3+A==", 120 | "dev": true 121 | }, 122 | "node_modules/@esbuild-plugins/node-globals-polyfill": { 123 | "version": "0.2.3", 124 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", 125 | "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", 126 | "dev": true, 127 | "peerDependencies": { 128 | "esbuild": "*" 129 | } 130 | }, 131 | "node_modules/@esbuild-plugins/node-modules-polyfill": { 132 | "version": "0.2.2", 133 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", 134 | "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", 135 | "dev": true, 136 | "dependencies": { 137 | "escape-string-regexp": "^4.0.0", 138 | "rollup-plugin-node-polyfills": "^0.2.1" 139 | }, 140 | "peerDependencies": { 141 | "esbuild": "*" 142 | } 143 | }, 144 | "node_modules/@esbuild/android-arm": { 145 | "version": "0.17.19", 146 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 147 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 148 | "cpu": [ 149 | "arm" 150 | ], 151 | "dev": true, 152 | "optional": true, 153 | "os": [ 154 | "android" 155 | ], 156 | "engines": { 157 | "node": ">=12" 158 | } 159 | }, 160 | "node_modules/@esbuild/android-arm64": { 161 | "version": "0.17.19", 162 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 163 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 164 | "cpu": [ 165 | "arm64" 166 | ], 167 | "dev": true, 168 | "optional": true, 169 | "os": [ 170 | "android" 171 | ], 172 | "engines": { 173 | "node": ">=12" 174 | } 175 | }, 176 | "node_modules/@esbuild/android-x64": { 177 | "version": "0.17.19", 178 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 179 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 180 | "cpu": [ 181 | "x64" 182 | ], 183 | "dev": true, 184 | "optional": true, 185 | "os": [ 186 | "android" 187 | ], 188 | "engines": { 189 | "node": ">=12" 190 | } 191 | }, 192 | "node_modules/@esbuild/darwin-arm64": { 193 | "version": "0.17.19", 194 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 195 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 196 | "cpu": [ 197 | "arm64" 198 | ], 199 | "dev": true, 200 | "optional": true, 201 | "os": [ 202 | "darwin" 203 | ], 204 | "engines": { 205 | "node": ">=12" 206 | } 207 | }, 208 | "node_modules/@esbuild/darwin-x64": { 209 | "version": "0.17.19", 210 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 211 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 212 | "cpu": [ 213 | "x64" 214 | ], 215 | "dev": true, 216 | "optional": true, 217 | "os": [ 218 | "darwin" 219 | ], 220 | "engines": { 221 | "node": ">=12" 222 | } 223 | }, 224 | "node_modules/@esbuild/freebsd-arm64": { 225 | "version": "0.17.19", 226 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 227 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 228 | "cpu": [ 229 | "arm64" 230 | ], 231 | "dev": true, 232 | "optional": true, 233 | "os": [ 234 | "freebsd" 235 | ], 236 | "engines": { 237 | "node": ">=12" 238 | } 239 | }, 240 | "node_modules/@esbuild/freebsd-x64": { 241 | "version": "0.17.19", 242 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 243 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 244 | "cpu": [ 245 | "x64" 246 | ], 247 | "dev": true, 248 | "optional": true, 249 | "os": [ 250 | "freebsd" 251 | ], 252 | "engines": { 253 | "node": ">=12" 254 | } 255 | }, 256 | "node_modules/@esbuild/linux-arm": { 257 | "version": "0.17.19", 258 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 259 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 260 | "cpu": [ 261 | "arm" 262 | ], 263 | "dev": true, 264 | "optional": true, 265 | "os": [ 266 | "linux" 267 | ], 268 | "engines": { 269 | "node": ">=12" 270 | } 271 | }, 272 | "node_modules/@esbuild/linux-arm64": { 273 | "version": "0.17.19", 274 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 275 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 276 | "cpu": [ 277 | "arm64" 278 | ], 279 | "dev": true, 280 | "optional": true, 281 | "os": [ 282 | "linux" 283 | ], 284 | "engines": { 285 | "node": ">=12" 286 | } 287 | }, 288 | "node_modules/@esbuild/linux-ia32": { 289 | "version": "0.17.19", 290 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 291 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 292 | "cpu": [ 293 | "ia32" 294 | ], 295 | "dev": true, 296 | "optional": true, 297 | "os": [ 298 | "linux" 299 | ], 300 | "engines": { 301 | "node": ">=12" 302 | } 303 | }, 304 | "node_modules/@esbuild/linux-loong64": { 305 | "version": "0.17.19", 306 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 307 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 308 | "cpu": [ 309 | "loong64" 310 | ], 311 | "dev": true, 312 | "optional": true, 313 | "os": [ 314 | "linux" 315 | ], 316 | "engines": { 317 | "node": ">=12" 318 | } 319 | }, 320 | "node_modules/@esbuild/linux-mips64el": { 321 | "version": "0.17.19", 322 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 323 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 324 | "cpu": [ 325 | "mips64el" 326 | ], 327 | "dev": true, 328 | "optional": true, 329 | "os": [ 330 | "linux" 331 | ], 332 | "engines": { 333 | "node": ">=12" 334 | } 335 | }, 336 | "node_modules/@esbuild/linux-ppc64": { 337 | "version": "0.17.19", 338 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 339 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 340 | "cpu": [ 341 | "ppc64" 342 | ], 343 | "dev": true, 344 | "optional": true, 345 | "os": [ 346 | "linux" 347 | ], 348 | "engines": { 349 | "node": ">=12" 350 | } 351 | }, 352 | "node_modules/@esbuild/linux-riscv64": { 353 | "version": "0.17.19", 354 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 355 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 356 | "cpu": [ 357 | "riscv64" 358 | ], 359 | "dev": true, 360 | "optional": true, 361 | "os": [ 362 | "linux" 363 | ], 364 | "engines": { 365 | "node": ">=12" 366 | } 367 | }, 368 | "node_modules/@esbuild/linux-s390x": { 369 | "version": "0.17.19", 370 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 371 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 372 | "cpu": [ 373 | "s390x" 374 | ], 375 | "dev": true, 376 | "optional": true, 377 | "os": [ 378 | "linux" 379 | ], 380 | "engines": { 381 | "node": ">=12" 382 | } 383 | }, 384 | "node_modules/@esbuild/linux-x64": { 385 | "version": "0.17.19", 386 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 387 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 388 | "cpu": [ 389 | "x64" 390 | ], 391 | "dev": true, 392 | "optional": true, 393 | "os": [ 394 | "linux" 395 | ], 396 | "engines": { 397 | "node": ">=12" 398 | } 399 | }, 400 | "node_modules/@esbuild/netbsd-x64": { 401 | "version": "0.17.19", 402 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 403 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 404 | "cpu": [ 405 | "x64" 406 | ], 407 | "dev": true, 408 | "optional": true, 409 | "os": [ 410 | "netbsd" 411 | ], 412 | "engines": { 413 | "node": ">=12" 414 | } 415 | }, 416 | "node_modules/@esbuild/openbsd-x64": { 417 | "version": "0.17.19", 418 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 419 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 420 | "cpu": [ 421 | "x64" 422 | ], 423 | "dev": true, 424 | "optional": true, 425 | "os": [ 426 | "openbsd" 427 | ], 428 | "engines": { 429 | "node": ">=12" 430 | } 431 | }, 432 | "node_modules/@esbuild/sunos-x64": { 433 | "version": "0.17.19", 434 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 435 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 436 | "cpu": [ 437 | "x64" 438 | ], 439 | "dev": true, 440 | "optional": true, 441 | "os": [ 442 | "sunos" 443 | ], 444 | "engines": { 445 | "node": ">=12" 446 | } 447 | }, 448 | "node_modules/@esbuild/win32-arm64": { 449 | "version": "0.17.19", 450 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 451 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 452 | "cpu": [ 453 | "arm64" 454 | ], 455 | "dev": true, 456 | "optional": true, 457 | "os": [ 458 | "win32" 459 | ], 460 | "engines": { 461 | "node": ">=12" 462 | } 463 | }, 464 | "node_modules/@esbuild/win32-ia32": { 465 | "version": "0.17.19", 466 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 467 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 468 | "cpu": [ 469 | "ia32" 470 | ], 471 | "dev": true, 472 | "optional": true, 473 | "os": [ 474 | "win32" 475 | ], 476 | "engines": { 477 | "node": ">=12" 478 | } 479 | }, 480 | "node_modules/@esbuild/win32-x64": { 481 | "version": "0.17.19", 482 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 483 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 484 | "cpu": [ 485 | "x64" 486 | ], 487 | "dev": true, 488 | "optional": true, 489 | "os": [ 490 | "win32" 491 | ], 492 | "engines": { 493 | "node": ">=12" 494 | } 495 | }, 496 | "node_modules/@fastify/busboy": { 497 | "version": "2.0.0", 498 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", 499 | "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", 500 | "dev": true, 501 | "engines": { 502 | "node": ">=14" 503 | } 504 | }, 505 | "node_modules/@types/node": { 506 | "version": "20.8.9", 507 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", 508 | "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", 509 | "dev": true, 510 | "dependencies": { 511 | "undici-types": "~5.26.4" 512 | } 513 | }, 514 | "node_modules/@types/node-forge": { 515 | "version": "1.3.8", 516 | "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.8.tgz", 517 | "integrity": "sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==", 518 | "dev": true, 519 | "dependencies": { 520 | "@types/node": "*" 521 | } 522 | }, 523 | "node_modules/acorn": { 524 | "version": "8.11.2", 525 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", 526 | "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", 527 | "dev": true, 528 | "bin": { 529 | "acorn": "bin/acorn" 530 | }, 531 | "engines": { 532 | "node": ">=0.4.0" 533 | } 534 | }, 535 | "node_modules/acorn-walk": { 536 | "version": "8.3.0", 537 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", 538 | "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", 539 | "dev": true, 540 | "engines": { 541 | "node": ">=0.4.0" 542 | } 543 | }, 544 | "node_modules/anymatch": { 545 | "version": "3.1.3", 546 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 547 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 548 | "dev": true, 549 | "dependencies": { 550 | "normalize-path": "^3.0.0", 551 | "picomatch": "^2.0.4" 552 | }, 553 | "engines": { 554 | "node": ">= 8" 555 | } 556 | }, 557 | "node_modules/as-table": { 558 | "version": "1.0.55", 559 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 560 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 561 | "dev": true, 562 | "dependencies": { 563 | "printable-characters": "^1.0.42" 564 | } 565 | }, 566 | "node_modules/binary-extensions": { 567 | "version": "2.2.0", 568 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 569 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 570 | "dev": true, 571 | "engines": { 572 | "node": ">=8" 573 | } 574 | }, 575 | "node_modules/blake3-wasm": { 576 | "version": "2.1.5", 577 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 578 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 579 | "dev": true 580 | }, 581 | "node_modules/braces": { 582 | "version": "3.0.2", 583 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 584 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 585 | "dev": true, 586 | "dependencies": { 587 | "fill-range": "^7.0.1" 588 | }, 589 | "engines": { 590 | "node": ">=8" 591 | } 592 | }, 593 | "node_modules/buffer-from": { 594 | "version": "1.1.2", 595 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 596 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 597 | "dev": true 598 | }, 599 | "node_modules/capnp-ts": { 600 | "version": "0.7.0", 601 | "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", 602 | "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", 603 | "dev": true, 604 | "dependencies": { 605 | "debug": "^4.3.1", 606 | "tslib": "^2.2.0" 607 | } 608 | }, 609 | "node_modules/chokidar": { 610 | "version": "3.5.3", 611 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 612 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 613 | "dev": true, 614 | "funding": [ 615 | { 616 | "type": "individual", 617 | "url": "https://paulmillr.com/funding/" 618 | } 619 | ], 620 | "dependencies": { 621 | "anymatch": "~3.1.2", 622 | "braces": "~3.0.2", 623 | "glob-parent": "~5.1.2", 624 | "is-binary-path": "~2.1.0", 625 | "is-glob": "~4.0.1", 626 | "normalize-path": "~3.0.0", 627 | "readdirp": "~3.6.0" 628 | }, 629 | "engines": { 630 | "node": ">= 8.10.0" 631 | }, 632 | "optionalDependencies": { 633 | "fsevents": "~2.3.2" 634 | } 635 | }, 636 | "node_modules/cookie": { 637 | "version": "0.5.0", 638 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 639 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 640 | "dev": true, 641 | "engines": { 642 | "node": ">= 0.6" 643 | } 644 | }, 645 | "node_modules/data-uri-to-buffer": { 646 | "version": "2.0.2", 647 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 648 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 649 | "dev": true 650 | }, 651 | "node_modules/debug": { 652 | "version": "4.3.4", 653 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 654 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 655 | "dev": true, 656 | "dependencies": { 657 | "ms": "2.1.2" 658 | }, 659 | "engines": { 660 | "node": ">=6.0" 661 | }, 662 | "peerDependenciesMeta": { 663 | "supports-color": { 664 | "optional": true 665 | } 666 | } 667 | }, 668 | "node_modules/esbuild": { 669 | "version": "0.17.19", 670 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 671 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 672 | "dev": true, 673 | "hasInstallScript": true, 674 | "bin": { 675 | "esbuild": "bin/esbuild" 676 | }, 677 | "engines": { 678 | "node": ">=12" 679 | }, 680 | "optionalDependencies": { 681 | "@esbuild/android-arm": "0.17.19", 682 | "@esbuild/android-arm64": "0.17.19", 683 | "@esbuild/android-x64": "0.17.19", 684 | "@esbuild/darwin-arm64": "0.17.19", 685 | "@esbuild/darwin-x64": "0.17.19", 686 | "@esbuild/freebsd-arm64": "0.17.19", 687 | "@esbuild/freebsd-x64": "0.17.19", 688 | "@esbuild/linux-arm": "0.17.19", 689 | "@esbuild/linux-arm64": "0.17.19", 690 | "@esbuild/linux-ia32": "0.17.19", 691 | "@esbuild/linux-loong64": "0.17.19", 692 | "@esbuild/linux-mips64el": "0.17.19", 693 | "@esbuild/linux-ppc64": "0.17.19", 694 | "@esbuild/linux-riscv64": "0.17.19", 695 | "@esbuild/linux-s390x": "0.17.19", 696 | "@esbuild/linux-x64": "0.17.19", 697 | "@esbuild/netbsd-x64": "0.17.19", 698 | "@esbuild/openbsd-x64": "0.17.19", 699 | "@esbuild/sunos-x64": "0.17.19", 700 | "@esbuild/win32-arm64": "0.17.19", 701 | "@esbuild/win32-ia32": "0.17.19", 702 | "@esbuild/win32-x64": "0.17.19" 703 | } 704 | }, 705 | "node_modules/escape-string-regexp": { 706 | "version": "4.0.0", 707 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 708 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 709 | "dev": true, 710 | "engines": { 711 | "node": ">=10" 712 | }, 713 | "funding": { 714 | "url": "https://github.com/sponsors/sindresorhus" 715 | } 716 | }, 717 | "node_modules/estree-walker": { 718 | "version": "0.6.1", 719 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 720 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 721 | "dev": true 722 | }, 723 | "node_modules/exit-hook": { 724 | "version": "2.2.1", 725 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 726 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 727 | "dev": true, 728 | "engines": { 729 | "node": ">=6" 730 | }, 731 | "funding": { 732 | "url": "https://github.com/sponsors/sindresorhus" 733 | } 734 | }, 735 | "node_modules/fill-range": { 736 | "version": "7.0.1", 737 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 738 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 739 | "dev": true, 740 | "dependencies": { 741 | "to-regex-range": "^5.0.1" 742 | }, 743 | "engines": { 744 | "node": ">=8" 745 | } 746 | }, 747 | "node_modules/fsevents": { 748 | "version": "2.3.3", 749 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 750 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 751 | "dev": true, 752 | "hasInstallScript": true, 753 | "optional": true, 754 | "os": [ 755 | "darwin" 756 | ], 757 | "engines": { 758 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 759 | } 760 | }, 761 | "node_modules/get-source": { 762 | "version": "2.0.12", 763 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 764 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 765 | "dev": true, 766 | "dependencies": { 767 | "data-uri-to-buffer": "^2.0.0", 768 | "source-map": "^0.6.1" 769 | } 770 | }, 771 | "node_modules/glob-parent": { 772 | "version": "5.1.2", 773 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 774 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 775 | "dev": true, 776 | "dependencies": { 777 | "is-glob": "^4.0.1" 778 | }, 779 | "engines": { 780 | "node": ">= 6" 781 | } 782 | }, 783 | "node_modules/glob-to-regexp": { 784 | "version": "0.4.1", 785 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 786 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 787 | "dev": true 788 | }, 789 | "node_modules/is-binary-path": { 790 | "version": "2.1.0", 791 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 792 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 793 | "dev": true, 794 | "dependencies": { 795 | "binary-extensions": "^2.0.0" 796 | }, 797 | "engines": { 798 | "node": ">=8" 799 | } 800 | }, 801 | "node_modules/is-extglob": { 802 | "version": "2.1.1", 803 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 804 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 805 | "dev": true, 806 | "engines": { 807 | "node": ">=0.10.0" 808 | } 809 | }, 810 | "node_modules/is-glob": { 811 | "version": "4.0.3", 812 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 813 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 814 | "dev": true, 815 | "dependencies": { 816 | "is-extglob": "^2.1.1" 817 | }, 818 | "engines": { 819 | "node": ">=0.10.0" 820 | } 821 | }, 822 | "node_modules/is-number": { 823 | "version": "7.0.0", 824 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 825 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 826 | "dev": true, 827 | "engines": { 828 | "node": ">=0.12.0" 829 | } 830 | }, 831 | "node_modules/magic-string": { 832 | "version": "0.25.9", 833 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 834 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 835 | "dev": true, 836 | "dependencies": { 837 | "sourcemap-codec": "^1.4.8" 838 | } 839 | }, 840 | "node_modules/mime": { 841 | "version": "3.0.0", 842 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 843 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 844 | "dev": true, 845 | "bin": { 846 | "mime": "cli.js" 847 | }, 848 | "engines": { 849 | "node": ">=10.0.0" 850 | } 851 | }, 852 | "node_modules/miniflare": { 853 | "version": "3.20231025.0", 854 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20231025.0.tgz", 855 | "integrity": "sha512-pFcr2BRaGIQ26UfdDo8BMJ6kkd/Jo/FkQ/4K7UG/eORlDepsLrR/sTJddcSSIGl07MA+MGjhzopFTPpFskkS+g==", 856 | "dev": true, 857 | "dependencies": { 858 | "acorn": "^8.8.0", 859 | "acorn-walk": "^8.2.0", 860 | "capnp-ts": "^0.7.0", 861 | "exit-hook": "^2.2.1", 862 | "glob-to-regexp": "^0.4.1", 863 | "source-map-support": "0.5.21", 864 | "stoppable": "^1.1.0", 865 | "undici": "^5.22.1", 866 | "workerd": "1.20231025.0", 867 | "ws": "^8.11.0", 868 | "youch": "^3.2.2", 869 | "zod": "^3.20.6" 870 | }, 871 | "engines": { 872 | "node": ">=16.13" 873 | } 874 | }, 875 | "node_modules/ms": { 876 | "version": "2.1.2", 877 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 878 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 879 | "dev": true 880 | }, 881 | "node_modules/mustache": { 882 | "version": "4.2.0", 883 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 884 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 885 | "dev": true, 886 | "bin": { 887 | "mustache": "bin/mustache" 888 | } 889 | }, 890 | "node_modules/nanoid": { 891 | "version": "3.3.6", 892 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 893 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 894 | "dev": true, 895 | "funding": [ 896 | { 897 | "type": "github", 898 | "url": "https://github.com/sponsors/ai" 899 | } 900 | ], 901 | "bin": { 902 | "nanoid": "bin/nanoid.cjs" 903 | }, 904 | "engines": { 905 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 906 | } 907 | }, 908 | "node_modules/node-forge": { 909 | "version": "1.3.1", 910 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 911 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 912 | "dev": true, 913 | "engines": { 914 | "node": ">= 6.13.0" 915 | } 916 | }, 917 | "node_modules/normalize-path": { 918 | "version": "3.0.0", 919 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 920 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 921 | "dev": true, 922 | "engines": { 923 | "node": ">=0.10.0" 924 | } 925 | }, 926 | "node_modules/path-to-regexp": { 927 | "version": "6.2.1", 928 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", 929 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", 930 | "dev": true 931 | }, 932 | "node_modules/picomatch": { 933 | "version": "2.3.1", 934 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 935 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 936 | "dev": true, 937 | "engines": { 938 | "node": ">=8.6" 939 | }, 940 | "funding": { 941 | "url": "https://github.com/sponsors/jonschlinkert" 942 | } 943 | }, 944 | "node_modules/printable-characters": { 945 | "version": "1.0.42", 946 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 947 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 948 | "dev": true 949 | }, 950 | "node_modules/readdirp": { 951 | "version": "3.6.0", 952 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 953 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 954 | "dev": true, 955 | "dependencies": { 956 | "picomatch": "^2.2.1" 957 | }, 958 | "engines": { 959 | "node": ">=8.10.0" 960 | } 961 | }, 962 | "node_modules/resolve.exports": { 963 | "version": "2.0.2", 964 | "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", 965 | "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", 966 | "dev": true, 967 | "engines": { 968 | "node": ">=10" 969 | } 970 | }, 971 | "node_modules/rollup-plugin-inject": { 972 | "version": "3.0.2", 973 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 974 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 975 | "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", 976 | "dev": true, 977 | "dependencies": { 978 | "estree-walker": "^0.6.1", 979 | "magic-string": "^0.25.3", 980 | "rollup-pluginutils": "^2.8.1" 981 | } 982 | }, 983 | "node_modules/rollup-plugin-node-polyfills": { 984 | "version": "0.2.1", 985 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 986 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 987 | "dev": true, 988 | "dependencies": { 989 | "rollup-plugin-inject": "^3.0.0" 990 | } 991 | }, 992 | "node_modules/rollup-pluginutils": { 993 | "version": "2.8.2", 994 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 995 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 996 | "dev": true, 997 | "dependencies": { 998 | "estree-walker": "^0.6.1" 999 | } 1000 | }, 1001 | "node_modules/selfsigned": { 1002 | "version": "2.4.1", 1003 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", 1004 | "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", 1005 | "dev": true, 1006 | "dependencies": { 1007 | "@types/node-forge": "^1.3.0", 1008 | "node-forge": "^1" 1009 | }, 1010 | "engines": { 1011 | "node": ">=10" 1012 | } 1013 | }, 1014 | "node_modules/source-map": { 1015 | "version": "0.6.1", 1016 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1017 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1018 | "dev": true, 1019 | "engines": { 1020 | "node": ">=0.10.0" 1021 | } 1022 | }, 1023 | "node_modules/source-map-support": { 1024 | "version": "0.5.21", 1025 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1026 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1027 | "dev": true, 1028 | "dependencies": { 1029 | "buffer-from": "^1.0.0", 1030 | "source-map": "^0.6.0" 1031 | } 1032 | }, 1033 | "node_modules/sourcemap-codec": { 1034 | "version": "1.4.8", 1035 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1036 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 1037 | "deprecated": "Please use @jridgewell/sourcemap-codec instead", 1038 | "dev": true 1039 | }, 1040 | "node_modules/stacktracey": { 1041 | "version": "2.1.8", 1042 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 1043 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 1044 | "dev": true, 1045 | "dependencies": { 1046 | "as-table": "^1.0.36", 1047 | "get-source": "^2.0.12" 1048 | } 1049 | }, 1050 | "node_modules/stoppable": { 1051 | "version": "1.1.0", 1052 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 1053 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 1054 | "dev": true, 1055 | "engines": { 1056 | "node": ">=4", 1057 | "npm": ">=6" 1058 | } 1059 | }, 1060 | "node_modules/to-regex-range": { 1061 | "version": "5.0.1", 1062 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1063 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1064 | "dev": true, 1065 | "dependencies": { 1066 | "is-number": "^7.0.0" 1067 | }, 1068 | "engines": { 1069 | "node": ">=8.0" 1070 | } 1071 | }, 1072 | "node_modules/tslib": { 1073 | "version": "2.6.2", 1074 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 1075 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", 1076 | "dev": true 1077 | }, 1078 | "node_modules/typescript": { 1079 | "version": "5.2.2", 1080 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", 1081 | "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", 1082 | "bin": { 1083 | "tsc": "bin/tsc", 1084 | "tsserver": "bin/tsserver" 1085 | }, 1086 | "engines": { 1087 | "node": ">=14.17" 1088 | } 1089 | }, 1090 | "node_modules/undici": { 1091 | "version": "5.27.0", 1092 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.0.tgz", 1093 | "integrity": "sha512-l3ydWhlhOJzMVOYkymLykcRRXqbUaQriERtR70B9LzNkZ4bX52Fc8wbTDneMiwo8T+AemZXvXaTx+9o5ROxrXg==", 1094 | "dev": true, 1095 | "dependencies": { 1096 | "@fastify/busboy": "^2.0.0" 1097 | }, 1098 | "engines": { 1099 | "node": ">=14.0" 1100 | } 1101 | }, 1102 | "node_modules/undici-types": { 1103 | "version": "5.26.5", 1104 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1105 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 1106 | "dev": true 1107 | }, 1108 | "node_modules/workerd": { 1109 | "version": "1.20231025.0", 1110 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20231025.0.tgz", 1111 | "integrity": "sha512-W1PFtpMFfvmm+ozBf+u70TE3Pviv7WA4qzDeejHDC4z+PFDq4+3KJCkgffaGBO86h+akWO0hSsc0uXL2zAqofQ==", 1112 | "dev": true, 1113 | "hasInstallScript": true, 1114 | "bin": { 1115 | "workerd": "bin/workerd" 1116 | }, 1117 | "engines": { 1118 | "node": ">=16" 1119 | }, 1120 | "optionalDependencies": { 1121 | "@cloudflare/workerd-darwin-64": "1.20231025.0", 1122 | "@cloudflare/workerd-darwin-arm64": "1.20231025.0", 1123 | "@cloudflare/workerd-linux-64": "1.20231025.0", 1124 | "@cloudflare/workerd-linux-arm64": "1.20231025.0", 1125 | "@cloudflare/workerd-windows-64": "1.20231025.0" 1126 | } 1127 | }, 1128 | "node_modules/wrangler": { 1129 | "version": "3.15.0", 1130 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.15.0.tgz", 1131 | "integrity": "sha512-kxzK62rD+LRrDeZZzw8cP6FBub71vJCbfAAb594XobXajgXYh3pFjv18Vm8YLxHzoGMhmAOJPA5b4DHq4HEUCw==", 1132 | "dev": true, 1133 | "dependencies": { 1134 | "@cloudflare/kv-asset-handler": "^0.2.0", 1135 | "@esbuild-plugins/node-globals-polyfill": "^0.2.3", 1136 | "@esbuild-plugins/node-modules-polyfill": "^0.2.2", 1137 | "blake3-wasm": "^2.1.5", 1138 | "chokidar": "^3.5.3", 1139 | "esbuild": "0.17.19", 1140 | "miniflare": "3.20231025.0", 1141 | "nanoid": "^3.3.3", 1142 | "path-to-regexp": "^6.2.0", 1143 | "resolve.exports": "^2.0.2", 1144 | "selfsigned": "^2.0.1", 1145 | "source-map": "0.6.1", 1146 | "source-map-support": "0.5.21", 1147 | "xxhash-wasm": "^1.0.1" 1148 | }, 1149 | "bin": { 1150 | "wrangler": "bin/wrangler.js", 1151 | "wrangler2": "bin/wrangler.js" 1152 | }, 1153 | "engines": { 1154 | "node": ">=16.17.0" 1155 | }, 1156 | "optionalDependencies": { 1157 | "fsevents": "~2.3.2" 1158 | } 1159 | }, 1160 | "node_modules/ws": { 1161 | "version": "8.14.2", 1162 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", 1163 | "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", 1164 | "dev": true, 1165 | "engines": { 1166 | "node": ">=10.0.0" 1167 | }, 1168 | "peerDependencies": { 1169 | "bufferutil": "^4.0.1", 1170 | "utf-8-validate": ">=5.0.2" 1171 | }, 1172 | "peerDependenciesMeta": { 1173 | "bufferutil": { 1174 | "optional": true 1175 | }, 1176 | "utf-8-validate": { 1177 | "optional": true 1178 | } 1179 | } 1180 | }, 1181 | "node_modules/xxhash-wasm": { 1182 | "version": "1.0.2", 1183 | "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", 1184 | "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", 1185 | "dev": true 1186 | }, 1187 | "node_modules/youch": { 1188 | "version": "3.3.2", 1189 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.2.tgz", 1190 | "integrity": "sha512-9cwz/z7abtcHOIuH45nzmUFCZbyJA1nLqlirKvyNRx4wDMhqsBaifAJzBej7L4fsVPjFxYq3NK3GAcfvZsydFw==", 1191 | "dev": true, 1192 | "dependencies": { 1193 | "cookie": "^0.5.0", 1194 | "mustache": "^4.2.0", 1195 | "stacktracey": "^2.1.8" 1196 | } 1197 | }, 1198 | "node_modules/zod": { 1199 | "version": "3.22.4", 1200 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", 1201 | "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", 1202 | "dev": true, 1203 | "funding": { 1204 | "url": "https://github.com/sponsors/colinhacks" 1205 | } 1206 | } 1207 | } 1208 | } 1209 | -------------------------------------------------------------------------------- /examples/cloudflare/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudflare", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "deploy": "wrangler publish", 7 | "start": "wrangler dev" 8 | }, 9 | "devDependencies": { 10 | "@cloudflare/workers-types": "^4.20230419.0", 11 | "typescript": "^5.0.4", 12 | "wrangler": "^3.0.0" 13 | }, 14 | "dependencies": { 15 | "@chronark/sdk": "^0.0.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/cloudflare/src/worker.ts: -------------------------------------------------------------------------------- 1 | import { isTrue } from "@chronark/sdk"; 2 | 3 | export interface Env { 4 | WE_DONT_NEED_ENV?: string; 5 | } 6 | 7 | export default { 8 | async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise { 9 | return Response.json({ 10 | shouldBeTrue: isTrue(true), 11 | shouldBeFalse: isTrue(false), 12 | }); 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /examples/cloudflare/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | "lib": ["es2021"] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, 16 | "jsx": "react" /* Specify what JSX code is generated. */, 17 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 22 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | 26 | /* Modules */ 27 | "module": "es2022" /* Specify what module code is generated. */, 28 | // "rootDir": "./", /* Specify the root folder within your source files. */ 29 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 30 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 31 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 32 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 33 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 34 | "types": ["@cloudflare/workers-types"] /* Specify type package names to be included without being referenced in a source file. */, 35 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 36 | "resolveJsonModule": true /* Enable importing .json files */, 37 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 38 | 39 | /* JavaScript Support */ 40 | "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, 41 | "checkJs": false /* Enable error reporting in type-checked JavaScript files. */, 42 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 43 | 44 | /* Emit */ 45 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 46 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 47 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 48 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 49 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 50 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 51 | // "removeComments": true, /* Disable emitting comments. */ 52 | "noEmit": true /* Disable emitting files from a compilation. */, 53 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 54 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 55 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 56 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 57 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 60 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 61 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 62 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 63 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 64 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 65 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 66 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 67 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 68 | 69 | /* Interop Constraints */ 70 | "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, 71 | "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, 72 | // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 73 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 74 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 75 | 76 | /* Type Checking */ 77 | "strict": true /* Enable all strict type-checking options. */, 78 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 79 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 80 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 81 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 82 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 83 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 84 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 85 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 86 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 87 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 88 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 89 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 90 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 91 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 92 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 93 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 94 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 95 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 96 | 97 | /* Completeness */ 98 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 99 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /examples/cloudflare/wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "sdk" 2 | main = "src/worker.ts" 3 | compatibility_date = "2023-10-27" 4 | -------------------------------------------------------------------------------- /examples/deno/main.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from "bun:test"; 2 | 3 | const url = process.env.DEPLOYMENT_URL; 4 | if (!url) { 5 | throw new Error("DEPLOYMENT_URL not set"); 6 | } 7 | 8 | test("works", async () => { 9 | const res = await fetch(url); 10 | if (res.status !== 200) { 11 | console.log(await res.text()); 12 | } 13 | expect(res.status).toEqual(200); 14 | 15 | const response = (await res.json()) as { shouldBeTrue: boolean; shouldBeFalse: boolean }; 16 | expect(response.shouldBeTrue).toBeTrue(); 17 | expect(response.shouldBeFalse).toBeFalse(); 18 | }); 19 | -------------------------------------------------------------------------------- /examples/deno/main.ts: -------------------------------------------------------------------------------- 1 | import { serve } from "https://deno.land/std@0.177.0/http/server.ts"; 2 | import { isTrue } from "https://esm.sh/@chronark/sdk@latest"; 3 | 4 | serve(async (_req: Request) => { 5 | return new Response( 6 | JSON.stringify({ 7 | shouldBeTrue: isTrue(true), 8 | shouldBeFalse: isTrue(false), 9 | }), 10 | { status: 200 }, 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /examples/nextjs/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /examples/nextjs/README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | # or 14 | bun dev 15 | ``` 16 | 17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 | 19 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 37 | -------------------------------------------------------------------------------- /examples/nextjs/app/layout.tsx: -------------------------------------------------------------------------------- 1 | export const metadata = { 2 | title: "Next.js", 3 | description: "Generated by Next.js", 4 | }; 5 | 6 | export default function RootLayout({ 7 | children, 8 | }: { 9 | children: React.ReactNode; 10 | }) { 11 | return ( 12 | 13 | {children} 14 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /examples/nextjs/app/route.ts: -------------------------------------------------------------------------------- 1 | import { isTrue } from "@chronark/sdk"; 2 | 3 | export const runtime = "edge"; 4 | 5 | /** 6 | * This is obviously a ridiculous route, but the only thing we care about is that our code can run 7 | * in this environment 8 | */ 9 | export function GET(_req: Request): Response { 10 | return Response.json({ 11 | shouldBeTrue: isTrue(true), 12 | shouldBeFalse: isTrue(false), 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /examples/nextjs/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chronark/sdk/19ded770d95104a643cf2a3f8797bec19e36f636/examples/nextjs/bun.lockb -------------------------------------------------------------------------------- /examples/nextjs/ci.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from "bun:test"; 2 | 3 | const url = process.env.DEPLOYMENT_URL; 4 | if (!url) { 5 | throw new Error("DEPLOYMENT_URL not set"); 6 | } 7 | 8 | test("works", async () => { 9 | const res = await fetch(url); 10 | if (res.status !== 200) { 11 | console.log(await res.text()); 12 | } 13 | expect(res.status).toEqual(200); 14 | 15 | const response = (await res.json()) as { shouldBeTrue: boolean; shouldBeFalse: boolean }; 16 | expect(response.shouldBeTrue).toBeTrue(); 17 | expect(response.shouldBeFalse).toBeFalse(); 18 | }); 19 | -------------------------------------------------------------------------------- /examples/nextjs/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | module.exports = nextConfig; 5 | -------------------------------------------------------------------------------- /examples/nextjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "react": "^18", 13 | "react-dom": "^18", 14 | "next": "14.0.0", 15 | "@chronark/sdk": "^0.0.2" 16 | }, 17 | "devDependencies": { 18 | "typescript": "^5", 19 | "@types/node": "^20", 20 | "@types/react": "^18", 21 | "@types/react-dom": "^18", 22 | "autoprefixer": "^10", 23 | "postcss": "^8", 24 | "tailwindcss": "^3" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/nextjs/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /examples/nextjs/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 13 | "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 14 | }, 15 | }, 16 | }, 17 | plugins: [], 18 | }; 19 | export default config; 20 | -------------------------------------------------------------------------------- /examples/nextjs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@chronark/sdk", 3 | "description": "Typescritp SDK Template", 4 | "version": "0.0.2", 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/chronark/sdk.git" 8 | }, 9 | "author": "Andreas Thomas ", 10 | "license": "MIT", 11 | "bugs": { 12 | "url": "https://github.com/chronark/sdk/issues" 13 | }, 14 | "homepage": "https://github.com/chronark/sdk#readme", 15 | "files": [ 16 | "README.md", 17 | "LICENSE", 18 | "./dist" 19 | ], 20 | "main": "./dist/index.js", 21 | "types": "./dist/index.d.ts", 22 | "module": "./dist/index.mjs", 23 | "devDependencies": { 24 | "@biomejs/biome": "^1.3.1", 25 | "bun-types": "latest", 26 | "tsup": "^7.2.0" 27 | }, 28 | "scripts": { 29 | "build": "tsup", 30 | "fmt": "biome check --apply ." 31 | }, 32 | "peerDependencies": { 33 | "typescript": "^5.0.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | typescript: 9 | specifier: ^5.0.0 10 | version: 5.0.2 11 | 12 | devDependencies: 13 | '@biomejs/biome': 14 | specifier: ^1.3.1 15 | version: 1.3.1 16 | bun-types: 17 | specifier: latest 18 | version: 1.0.6 19 | tsup: 20 | specifier: ^7.2.0 21 | version: 7.2.0(typescript@5.0.2) 22 | 23 | packages: 24 | 25 | /@biomejs/biome@1.3.1: 26 | resolution: {integrity: sha512-ufGCBj8ZNbF+vZDZscqvvLIGsh8M4BduQoJ1X3nm8c9Dupp8gzAKibZSWDLLcgnsAVeKEmWwY6r3Wv/JIa0LgA==} 27 | engines: {node: '>=14.*'} 28 | hasBin: true 29 | requiresBuild: true 30 | optionalDependencies: 31 | '@biomejs/cli-darwin-arm64': 1.3.1 32 | '@biomejs/cli-darwin-x64': 1.3.1 33 | '@biomejs/cli-linux-arm64': 1.3.1 34 | '@biomejs/cli-linux-x64': 1.3.1 35 | '@biomejs/cli-win32-arm64': 1.3.1 36 | '@biomejs/cli-win32-x64': 1.3.1 37 | dev: true 38 | 39 | /@biomejs/cli-darwin-arm64@1.3.1: 40 | resolution: {integrity: sha512-m3cBroQftLFYFh3to6RO4ooLqZsE2K9yf5xOlDjm6D4Vrgq85XFwDOxjjJyGGDjDPQ55xGunm80qmGr8jTjiyA==} 41 | engines: {node: '>=14.*'} 42 | cpu: [arm64] 43 | os: [darwin] 44 | requiresBuild: true 45 | dev: true 46 | optional: true 47 | 48 | /@biomejs/cli-darwin-x64@1.3.1: 49 | resolution: {integrity: sha512-i2yDivc/HHBRFJMoRUUPsFs9pKK0NnS/8tQg/uqNsAkLMF9OKZCCxtUJPmpUBHpdQ2f39An1cVpFmCIEv0uYJQ==} 50 | engines: {node: '>=14.*'} 51 | cpu: [x64] 52 | os: [darwin] 53 | requiresBuild: true 54 | dev: true 55 | optional: true 56 | 57 | /@biomejs/cli-linux-arm64@1.3.1: 58 | resolution: {integrity: sha512-H56MB7Mf59snzG+nLpfS2j3jXsJ+a6aQOBeRiT0rgn44FZ63yI9jWNIgN1+Xylsa8shmwtquOkoxLS/4KKt0Qg==} 59 | engines: {node: '>=14.*'} 60 | cpu: [arm64] 61 | os: [linux] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@biomejs/cli-linux-x64@1.3.1: 67 | resolution: {integrity: sha512-8ENayCpYXXC77a7AxDNjC+pPKMYteLzysxhkCCZ7Gd2sWtrH8iMM45JL8wQJhoHz5NT3+qgsfGafiNuxeVAVlg==} 68 | engines: {node: '>=14.*'} 69 | cpu: [x64] 70 | os: [linux] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@biomejs/cli-win32-arm64@1.3.1: 76 | resolution: {integrity: sha512-gAx/E949/1/jQDwG9nTspVtjikBI/y7RbbUwwBVABF1bcAUC63VhrHfKJRbM7VTXMlZ7n9YrxkyMww8vf40qcQ==} 77 | engines: {node: '>=14.*'} 78 | cpu: [arm64] 79 | os: [win32] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@biomejs/cli-win32-x64@1.3.1: 85 | resolution: {integrity: sha512-+08eKmEdVM7d4UxY/tff2aPXbeUNNp6wwH7v0FbrE+25mH9lhELgylEk4+k6OLXOcDT7KDAduzP2f9CuM/Aj9w==} 86 | engines: {node: '>=14.*'} 87 | cpu: [x64] 88 | os: [win32] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/android-arm64@0.18.20: 94 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 95 | engines: {node: '>=12'} 96 | cpu: [arm64] 97 | os: [android] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/android-arm@0.18.20: 103 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 104 | engines: {node: '>=12'} 105 | cpu: [arm] 106 | os: [android] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/android-x64@0.18.20: 112 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 113 | engines: {node: '>=12'} 114 | cpu: [x64] 115 | os: [android] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/darwin-arm64@0.18.20: 121 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 122 | engines: {node: '>=12'} 123 | cpu: [arm64] 124 | os: [darwin] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/darwin-x64@0.18.20: 130 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 131 | engines: {node: '>=12'} 132 | cpu: [x64] 133 | os: [darwin] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/freebsd-arm64@0.18.20: 139 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 140 | engines: {node: '>=12'} 141 | cpu: [arm64] 142 | os: [freebsd] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/freebsd-x64@0.18.20: 148 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 149 | engines: {node: '>=12'} 150 | cpu: [x64] 151 | os: [freebsd] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-arm64@0.18.20: 157 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 158 | engines: {node: '>=12'} 159 | cpu: [arm64] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-arm@0.18.20: 166 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 167 | engines: {node: '>=12'} 168 | cpu: [arm] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-ia32@0.18.20: 175 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 176 | engines: {node: '>=12'} 177 | cpu: [ia32] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-loong64@0.18.20: 184 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 185 | engines: {node: '>=12'} 186 | cpu: [loong64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/linux-mips64el@0.18.20: 193 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 194 | engines: {node: '>=12'} 195 | cpu: [mips64el] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/linux-ppc64@0.18.20: 202 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 203 | engines: {node: '>=12'} 204 | cpu: [ppc64] 205 | os: [linux] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/linux-riscv64@0.18.20: 211 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 212 | engines: {node: '>=12'} 213 | cpu: [riscv64] 214 | os: [linux] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/linux-s390x@0.18.20: 220 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 221 | engines: {node: '>=12'} 222 | cpu: [s390x] 223 | os: [linux] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/linux-x64@0.18.20: 229 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [linux] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/netbsd-x64@0.18.20: 238 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [netbsd] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/openbsd-x64@0.18.20: 247 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [openbsd] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/sunos-x64@0.18.20: 256 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 257 | engines: {node: '>=12'} 258 | cpu: [x64] 259 | os: [sunos] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/win32-arm64@0.18.20: 265 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 266 | engines: {node: '>=12'} 267 | cpu: [arm64] 268 | os: [win32] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@esbuild/win32-ia32@0.18.20: 274 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 275 | engines: {node: '>=12'} 276 | cpu: [ia32] 277 | os: [win32] 278 | requiresBuild: true 279 | dev: true 280 | optional: true 281 | 282 | /@esbuild/win32-x64@0.18.20: 283 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 284 | engines: {node: '>=12'} 285 | cpu: [x64] 286 | os: [win32] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@jridgewell/gen-mapping@0.3.3: 292 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 293 | engines: {node: '>=6.0.0'} 294 | dependencies: 295 | '@jridgewell/set-array': 1.1.2 296 | '@jridgewell/sourcemap-codec': 1.4.15 297 | '@jridgewell/trace-mapping': 0.3.20 298 | dev: true 299 | 300 | /@jridgewell/resolve-uri@3.1.1: 301 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 302 | engines: {node: '>=6.0.0'} 303 | dev: true 304 | 305 | /@jridgewell/set-array@1.1.2: 306 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 307 | engines: {node: '>=6.0.0'} 308 | dev: true 309 | 310 | /@jridgewell/sourcemap-codec@1.4.15: 311 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 312 | dev: true 313 | 314 | /@jridgewell/trace-mapping@0.3.20: 315 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 316 | dependencies: 317 | '@jridgewell/resolve-uri': 3.1.1 318 | '@jridgewell/sourcemap-codec': 1.4.15 319 | dev: true 320 | 321 | /@nodelib/fs.scandir@2.1.5: 322 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 323 | engines: {node: '>= 8'} 324 | dependencies: 325 | '@nodelib/fs.stat': 2.0.5 326 | run-parallel: 1.2.0 327 | dev: true 328 | 329 | /@nodelib/fs.stat@2.0.5: 330 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 331 | engines: {node: '>= 8'} 332 | dev: true 333 | 334 | /@nodelib/fs.walk@1.2.8: 335 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 336 | engines: {node: '>= 8'} 337 | dependencies: 338 | '@nodelib/fs.scandir': 2.1.5 339 | fastq: 1.15.0 340 | dev: true 341 | 342 | /any-promise@1.3.0: 343 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 344 | dev: true 345 | 346 | /anymatch@3.1.3: 347 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 348 | engines: {node: '>= 8'} 349 | dependencies: 350 | normalize-path: 3.0.0 351 | picomatch: 2.3.1 352 | dev: true 353 | 354 | /array-union@2.1.0: 355 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 356 | engines: {node: '>=8'} 357 | dev: true 358 | 359 | /balanced-match@1.0.2: 360 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 361 | dev: true 362 | 363 | /binary-extensions@2.2.0: 364 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 365 | engines: {node: '>=8'} 366 | dev: true 367 | 368 | /brace-expansion@1.1.11: 369 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 370 | dependencies: 371 | balanced-match: 1.0.2 372 | concat-map: 0.0.1 373 | dev: true 374 | 375 | /braces@3.0.2: 376 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 377 | engines: {node: '>=8'} 378 | dependencies: 379 | fill-range: 7.0.1 380 | dev: true 381 | 382 | /bun-types@1.0.6: 383 | resolution: {integrity: sha512-5QwynfXiRCRxPW3ZnC0Dv+sHHmctP4SHIuzsRKOWYO0HF/qUpsxQVexoviaxpmwDsF1hoVDDFdc4xUuafOzx1g==} 384 | dev: true 385 | 386 | /bundle-require@4.0.2(esbuild@0.18.20): 387 | resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} 388 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 389 | peerDependencies: 390 | esbuild: '>=0.17' 391 | dependencies: 392 | esbuild: 0.18.20 393 | load-tsconfig: 0.2.5 394 | dev: true 395 | 396 | /cac@6.7.14: 397 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 398 | engines: {node: '>=8'} 399 | dev: true 400 | 401 | /chokidar@3.5.3: 402 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 403 | engines: {node: '>= 8.10.0'} 404 | dependencies: 405 | anymatch: 3.1.3 406 | braces: 3.0.2 407 | glob-parent: 5.1.2 408 | is-binary-path: 2.1.0 409 | is-glob: 4.0.3 410 | normalize-path: 3.0.0 411 | readdirp: 3.6.0 412 | optionalDependencies: 413 | fsevents: 2.3.3 414 | dev: true 415 | 416 | /commander@4.1.1: 417 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 418 | engines: {node: '>= 6'} 419 | dev: true 420 | 421 | /concat-map@0.0.1: 422 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 423 | dev: true 424 | 425 | /cross-spawn@7.0.3: 426 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 427 | engines: {node: '>= 8'} 428 | dependencies: 429 | path-key: 3.1.1 430 | shebang-command: 2.0.0 431 | which: 2.0.2 432 | dev: true 433 | 434 | /debug@4.3.4: 435 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 436 | engines: {node: '>=6.0'} 437 | peerDependencies: 438 | supports-color: '*' 439 | peerDependenciesMeta: 440 | supports-color: 441 | optional: true 442 | dependencies: 443 | ms: 2.1.2 444 | dev: true 445 | 446 | /dir-glob@3.0.1: 447 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 448 | engines: {node: '>=8'} 449 | dependencies: 450 | path-type: 4.0.0 451 | dev: true 452 | 453 | /esbuild@0.18.20: 454 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 455 | engines: {node: '>=12'} 456 | hasBin: true 457 | requiresBuild: true 458 | optionalDependencies: 459 | '@esbuild/android-arm': 0.18.20 460 | '@esbuild/android-arm64': 0.18.20 461 | '@esbuild/android-x64': 0.18.20 462 | '@esbuild/darwin-arm64': 0.18.20 463 | '@esbuild/darwin-x64': 0.18.20 464 | '@esbuild/freebsd-arm64': 0.18.20 465 | '@esbuild/freebsd-x64': 0.18.20 466 | '@esbuild/linux-arm': 0.18.20 467 | '@esbuild/linux-arm64': 0.18.20 468 | '@esbuild/linux-ia32': 0.18.20 469 | '@esbuild/linux-loong64': 0.18.20 470 | '@esbuild/linux-mips64el': 0.18.20 471 | '@esbuild/linux-ppc64': 0.18.20 472 | '@esbuild/linux-riscv64': 0.18.20 473 | '@esbuild/linux-s390x': 0.18.20 474 | '@esbuild/linux-x64': 0.18.20 475 | '@esbuild/netbsd-x64': 0.18.20 476 | '@esbuild/openbsd-x64': 0.18.20 477 | '@esbuild/sunos-x64': 0.18.20 478 | '@esbuild/win32-arm64': 0.18.20 479 | '@esbuild/win32-ia32': 0.18.20 480 | '@esbuild/win32-x64': 0.18.20 481 | dev: true 482 | 483 | /execa@5.1.1: 484 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 485 | engines: {node: '>=10'} 486 | dependencies: 487 | cross-spawn: 7.0.3 488 | get-stream: 6.0.1 489 | human-signals: 2.1.0 490 | is-stream: 2.0.1 491 | merge-stream: 2.0.0 492 | npm-run-path: 4.0.1 493 | onetime: 5.1.2 494 | signal-exit: 3.0.7 495 | strip-final-newline: 2.0.0 496 | dev: true 497 | 498 | /fast-glob@3.3.1: 499 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 500 | engines: {node: '>=8.6.0'} 501 | dependencies: 502 | '@nodelib/fs.stat': 2.0.5 503 | '@nodelib/fs.walk': 1.2.8 504 | glob-parent: 5.1.2 505 | merge2: 1.4.1 506 | micromatch: 4.0.5 507 | dev: true 508 | 509 | /fastq@1.15.0: 510 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 511 | dependencies: 512 | reusify: 1.0.4 513 | dev: true 514 | 515 | /fill-range@7.0.1: 516 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 517 | engines: {node: '>=8'} 518 | dependencies: 519 | to-regex-range: 5.0.1 520 | dev: true 521 | 522 | /fs.realpath@1.0.0: 523 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 524 | dev: true 525 | 526 | /fsevents@2.3.3: 527 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 528 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 529 | os: [darwin] 530 | requiresBuild: true 531 | dev: true 532 | optional: true 533 | 534 | /get-stream@6.0.1: 535 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 536 | engines: {node: '>=10'} 537 | dev: true 538 | 539 | /glob-parent@5.1.2: 540 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 541 | engines: {node: '>= 6'} 542 | dependencies: 543 | is-glob: 4.0.3 544 | dev: true 545 | 546 | /glob@7.1.6: 547 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 548 | dependencies: 549 | fs.realpath: 1.0.0 550 | inflight: 1.0.6 551 | inherits: 2.0.4 552 | minimatch: 3.1.2 553 | once: 1.4.0 554 | path-is-absolute: 1.0.1 555 | dev: true 556 | 557 | /globby@11.1.0: 558 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 559 | engines: {node: '>=10'} 560 | dependencies: 561 | array-union: 2.1.0 562 | dir-glob: 3.0.1 563 | fast-glob: 3.3.1 564 | ignore: 5.2.4 565 | merge2: 1.4.1 566 | slash: 3.0.0 567 | dev: true 568 | 569 | /human-signals@2.1.0: 570 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 571 | engines: {node: '>=10.17.0'} 572 | dev: true 573 | 574 | /ignore@5.2.4: 575 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 576 | engines: {node: '>= 4'} 577 | dev: true 578 | 579 | /inflight@1.0.6: 580 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 581 | dependencies: 582 | once: 1.4.0 583 | wrappy: 1.0.2 584 | dev: true 585 | 586 | /inherits@2.0.4: 587 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 588 | dev: true 589 | 590 | /is-binary-path@2.1.0: 591 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 592 | engines: {node: '>=8'} 593 | dependencies: 594 | binary-extensions: 2.2.0 595 | dev: true 596 | 597 | /is-extglob@2.1.1: 598 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 599 | engines: {node: '>=0.10.0'} 600 | dev: true 601 | 602 | /is-glob@4.0.3: 603 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 604 | engines: {node: '>=0.10.0'} 605 | dependencies: 606 | is-extglob: 2.1.1 607 | dev: true 608 | 609 | /is-number@7.0.0: 610 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 611 | engines: {node: '>=0.12.0'} 612 | dev: true 613 | 614 | /is-stream@2.0.1: 615 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 616 | engines: {node: '>=8'} 617 | dev: true 618 | 619 | /isexe@2.0.0: 620 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 621 | dev: true 622 | 623 | /joycon@3.1.1: 624 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 625 | engines: {node: '>=10'} 626 | dev: true 627 | 628 | /lilconfig@2.1.0: 629 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 630 | engines: {node: '>=10'} 631 | dev: true 632 | 633 | /lines-and-columns@1.2.4: 634 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 635 | dev: true 636 | 637 | /load-tsconfig@0.2.5: 638 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 639 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 640 | dev: true 641 | 642 | /lodash.sortby@4.7.0: 643 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 644 | dev: true 645 | 646 | /merge-stream@2.0.0: 647 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 648 | dev: true 649 | 650 | /merge2@1.4.1: 651 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 652 | engines: {node: '>= 8'} 653 | dev: true 654 | 655 | /micromatch@4.0.5: 656 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 657 | engines: {node: '>=8.6'} 658 | dependencies: 659 | braces: 3.0.2 660 | picomatch: 2.3.1 661 | dev: true 662 | 663 | /mimic-fn@2.1.0: 664 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 665 | engines: {node: '>=6'} 666 | dev: true 667 | 668 | /minimatch@3.1.2: 669 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 670 | dependencies: 671 | brace-expansion: 1.1.11 672 | dev: true 673 | 674 | /ms@2.1.2: 675 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 676 | dev: true 677 | 678 | /mz@2.7.0: 679 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 680 | dependencies: 681 | any-promise: 1.3.0 682 | object-assign: 4.1.1 683 | thenify-all: 1.6.0 684 | dev: true 685 | 686 | /normalize-path@3.0.0: 687 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 688 | engines: {node: '>=0.10.0'} 689 | dev: true 690 | 691 | /npm-run-path@4.0.1: 692 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 693 | engines: {node: '>=8'} 694 | dependencies: 695 | path-key: 3.1.1 696 | dev: true 697 | 698 | /object-assign@4.1.1: 699 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 700 | engines: {node: '>=0.10.0'} 701 | dev: true 702 | 703 | /once@1.4.0: 704 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 705 | dependencies: 706 | wrappy: 1.0.2 707 | dev: true 708 | 709 | /onetime@5.1.2: 710 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 711 | engines: {node: '>=6'} 712 | dependencies: 713 | mimic-fn: 2.1.0 714 | dev: true 715 | 716 | /path-is-absolute@1.0.1: 717 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 718 | engines: {node: '>=0.10.0'} 719 | dev: true 720 | 721 | /path-key@3.1.1: 722 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 723 | engines: {node: '>=8'} 724 | dev: true 725 | 726 | /path-type@4.0.0: 727 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 728 | engines: {node: '>=8'} 729 | dev: true 730 | 731 | /picomatch@2.3.1: 732 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 733 | engines: {node: '>=8.6'} 734 | dev: true 735 | 736 | /pirates@4.0.6: 737 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 738 | engines: {node: '>= 6'} 739 | dev: true 740 | 741 | /postcss-load-config@4.0.1: 742 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 743 | engines: {node: '>= 14'} 744 | peerDependencies: 745 | postcss: '>=8.0.9' 746 | ts-node: '>=9.0.0' 747 | peerDependenciesMeta: 748 | postcss: 749 | optional: true 750 | ts-node: 751 | optional: true 752 | dependencies: 753 | lilconfig: 2.1.0 754 | yaml: 2.3.3 755 | dev: true 756 | 757 | /punycode@2.3.0: 758 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 759 | engines: {node: '>=6'} 760 | dev: true 761 | 762 | /queue-microtask@1.2.3: 763 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 764 | dev: true 765 | 766 | /readdirp@3.6.0: 767 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 768 | engines: {node: '>=8.10.0'} 769 | dependencies: 770 | picomatch: 2.3.1 771 | dev: true 772 | 773 | /resolve-from@5.0.0: 774 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 775 | engines: {node: '>=8'} 776 | dev: true 777 | 778 | /reusify@1.0.4: 779 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 780 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 781 | dev: true 782 | 783 | /rollup@3.29.4: 784 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 785 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 786 | hasBin: true 787 | optionalDependencies: 788 | fsevents: 2.3.3 789 | dev: true 790 | 791 | /run-parallel@1.2.0: 792 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 793 | dependencies: 794 | queue-microtask: 1.2.3 795 | dev: true 796 | 797 | /shebang-command@2.0.0: 798 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 799 | engines: {node: '>=8'} 800 | dependencies: 801 | shebang-regex: 3.0.0 802 | dev: true 803 | 804 | /shebang-regex@3.0.0: 805 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 806 | engines: {node: '>=8'} 807 | dev: true 808 | 809 | /signal-exit@3.0.7: 810 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 811 | dev: true 812 | 813 | /slash@3.0.0: 814 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 815 | engines: {node: '>=8'} 816 | dev: true 817 | 818 | /source-map@0.8.0-beta.0: 819 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 820 | engines: {node: '>= 8'} 821 | dependencies: 822 | whatwg-url: 7.1.0 823 | dev: true 824 | 825 | /strip-final-newline@2.0.0: 826 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 827 | engines: {node: '>=6'} 828 | dev: true 829 | 830 | /sucrase@3.34.0: 831 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} 832 | engines: {node: '>=8'} 833 | hasBin: true 834 | dependencies: 835 | '@jridgewell/gen-mapping': 0.3.3 836 | commander: 4.1.1 837 | glob: 7.1.6 838 | lines-and-columns: 1.2.4 839 | mz: 2.7.0 840 | pirates: 4.0.6 841 | ts-interface-checker: 0.1.13 842 | dev: true 843 | 844 | /thenify-all@1.6.0: 845 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 846 | engines: {node: '>=0.8'} 847 | dependencies: 848 | thenify: 3.3.1 849 | dev: true 850 | 851 | /thenify@3.3.1: 852 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 853 | dependencies: 854 | any-promise: 1.3.0 855 | dev: true 856 | 857 | /to-regex-range@5.0.1: 858 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 859 | engines: {node: '>=8.0'} 860 | dependencies: 861 | is-number: 7.0.0 862 | dev: true 863 | 864 | /tr46@1.0.1: 865 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 866 | dependencies: 867 | punycode: 2.3.0 868 | dev: true 869 | 870 | /tree-kill@1.2.2: 871 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 872 | hasBin: true 873 | dev: true 874 | 875 | /ts-interface-checker@0.1.13: 876 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 877 | dev: true 878 | 879 | /tsup@7.2.0(typescript@5.0.2): 880 | resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} 881 | engines: {node: '>=16.14'} 882 | hasBin: true 883 | peerDependencies: 884 | '@swc/core': ^1 885 | postcss: ^8.4.12 886 | typescript: '>=4.1.0' 887 | peerDependenciesMeta: 888 | '@swc/core': 889 | optional: true 890 | postcss: 891 | optional: true 892 | typescript: 893 | optional: true 894 | dependencies: 895 | bundle-require: 4.0.2(esbuild@0.18.20) 896 | cac: 6.7.14 897 | chokidar: 3.5.3 898 | debug: 4.3.4 899 | esbuild: 0.18.20 900 | execa: 5.1.1 901 | globby: 11.1.0 902 | joycon: 3.1.1 903 | postcss-load-config: 4.0.1 904 | resolve-from: 5.0.0 905 | rollup: 3.29.4 906 | source-map: 0.8.0-beta.0 907 | sucrase: 3.34.0 908 | tree-kill: 1.2.2 909 | typescript: 5.0.2 910 | transitivePeerDependencies: 911 | - supports-color 912 | - ts-node 913 | dev: true 914 | 915 | /typescript@5.0.2: 916 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} 917 | engines: {node: '>=12.20'} 918 | hasBin: true 919 | 920 | /webidl-conversions@4.0.2: 921 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 922 | dev: true 923 | 924 | /whatwg-url@7.1.0: 925 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 926 | dependencies: 927 | lodash.sortby: 4.7.0 928 | tr46: 1.0.1 929 | webidl-conversions: 4.0.2 930 | dev: true 931 | 932 | /which@2.0.2: 933 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 934 | engines: {node: '>= 8'} 935 | hasBin: true 936 | dependencies: 937 | isexe: 2.0.0 938 | dev: true 939 | 940 | /wrappy@1.0.2: 941 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 942 | dev: true 943 | 944 | /yaml@2.3.3: 945 | resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} 946 | engines: {node: '>= 14'} 947 | dev: true 948 | -------------------------------------------------------------------------------- /src/booleans.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, test } from "bun:test"; 2 | import { isFalse, isTrue } from "./booleans"; 3 | 4 | describe("isTrue()", () => { 5 | test("`false` should return `false`", () => { 6 | expect(isTrue(false)).toBeFalse(); 7 | }); 8 | 9 | test("`true` should return `true`", () => { 10 | expect(isTrue(true)).toBeTrue(); 11 | }); 12 | }); 13 | 14 | describe("isFalse()", () => { 15 | test("`false` should return `true`", () => { 16 | expect(isFalse(false)).toBeTrue(); 17 | }); 18 | test("`true` should return `false`", () => { 19 | expect(isFalse(true)).toBeFalse(); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /src/booleans.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * isTrue returns `true` if the input is true 3 | * 4 | * 5 | * Sorry I could not come with a more ridiculous function. 6 | */ 7 | export function isTrue(b: boolean): boolean { 8 | return b === true; 9 | } 10 | 11 | /** 12 | * isFalse returns `true` if the input is false 13 | */ 14 | export function isFalse(b: boolean): boolean { 15 | return !isTrue(b); 16 | } 17 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./booleans"; 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | // "module": "commonjs", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "resolveJsonModule": true, /* Enable importing .json files. */ 39 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 40 | 41 | /* JavaScript Support */ 42 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 43 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 44 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 45 | 46 | /* Emit */ 47 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 48 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 49 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 50 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 51 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 52 | "outDir": "./dist", /* Specify an output folder for all emitted files. */ 53 | // "removeComments": true, /* Disable emitting comments. */ 54 | "noEmit": true, /* Disable emitting files from a compilation. */ 55 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 56 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 57 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 58 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 59 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 60 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 61 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 62 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 63 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 64 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 65 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 66 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 67 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 68 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 69 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 70 | 71 | /* Interop Constraints */ 72 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 73 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 74 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 75 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 76 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 77 | 78 | /* Type Checking */ 79 | "strict": true, /* Enable all strict type-checking options. */ 80 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 81 | "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 82 | "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 83 | "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 84 | "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 85 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 86 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 87 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 88 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 89 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 90 | "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 91 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 92 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 93 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 94 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 95 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 96 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 97 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 98 | 99 | /* Completeness */ 100 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 101 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /tsup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: ["src/index.ts"], 5 | format: ["cjs", "esm"], 6 | splitting: false, 7 | sourcemap: false, 8 | clean: true, 9 | bundle: true, 10 | dts: true, 11 | }); 12 | --------------------------------------------------------------------------------