├── pnpm-workspace.yaml ├── .gitignore ├── packages └── webcrypt-session │ ├── adapters │ └── trpc │ │ ├── index.d.ts │ │ └── index.js │ ├── testSetUp.ts │ ├── vite.config.ts │ ├── tsconfig.build.json │ ├── tsconfig.json │ ├── script │ └── build.js │ ├── src │ ├── adapters │ │ └── trpc │ │ │ ├── index.test.ts │ │ │ └── index.ts │ ├── helper.ts │ ├── index.ts │ └── index.test.ts │ ├── README.md │ ├── package.json │ └── CHANGELOG.md ├── examples └── cloudflare │ ├── wrangler.toml │ ├── tsconfig.json │ ├── package.json │ ├── CHANGELOG.md │ ├── README.md │ └── src │ └── index.ts ├── .changeset ├── config.json └── README.md ├── turbo.json ├── package.json ├── .github └── workflows │ ├── ci.yml │ └── release.yml ├── CHANGELOG.md ├── README.md └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/*" 3 | - "examples/*" 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .turbo 2 | node_modules 3 | dist 4 | dev 5 | cookie.txt 6 | 7 | .pnpm-debug.log -------------------------------------------------------------------------------- /packages/webcrypt-session/adapters/trpc/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from '../../dist/adapters/trpc'; 2 | -------------------------------------------------------------------------------- /packages/webcrypt-session/adapters/trpc/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../../dist/adapters/trpc'); 2 | -------------------------------------------------------------------------------- /examples/cloudflare/wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "webcrypt-session" 2 | main = "src/index.ts" 3 | compatibility_date = "2022-06-14" 4 | tsconfig = "./tsconfig.json" 5 | -------------------------------------------------------------------------------- /packages/webcrypt-session/testSetUp.ts: -------------------------------------------------------------------------------- 1 | import { webcrypto } from "node:crypto"; 2 | 3 | /** 4 | * TODO: Explain to use webcrypto 5 | */ 6 | // @ts-ignore-next-line 7 | globalThis.crypto = webcrypto; 8 | -------------------------------------------------------------------------------- /packages/webcrypt-session/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | define: { 5 | "import.meta.vitest": "undefined", 6 | }, 7 | test: { 8 | dir: "src", 9 | includeSource: ["src/**/*.{js,ts}"], 10 | setupFiles: ["./testSetUp.ts"], 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /examples/cloudflare/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/esm/tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["@cloudflare/workers-types"], 5 | "moduleResolution": "node", 6 | "downlevelIteration": true, 7 | "strict": true, 8 | "lib": ["ESNext"] 9 | 10 | }, 11 | "exclude": [ 12 | "node_modules" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json", 3 | "changelog":["@changesets/changelog-github", { "repo": "toyamarinyon/webcrypt-session" }], 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } -------------------------------------------------------------------------------- /packages/webcrypt-session/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["./src/index.ts", "./src/adapters/trpc/index.ts"], 4 | "compilerOptions": { 5 | "types": ["node"], 6 | "emitDeclarationOnly": true, 7 | "isolatedModules": false, 8 | "declaration": true, 9 | // helps local development, could be dropped out of the NPM package though 10 | "declarationMap": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/webcrypt-session/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/esm/tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "types": ["vitest/importMeta", "@cloudflare/workers-types"], 6 | "moduleResolution": "node", 7 | "downlevelIteration": true, 8 | "strict": true 9 | }, 10 | "exclude": [ 11 | "node_modules", 12 | "**/dev/*", 13 | "**/dist/*", 14 | "vite.config.ts", 15 | "testSetUp.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turborepo.org/schema.json", 3 | "baseBranch": "origin/main", 4 | "pipeline": { 5 | "build": { 6 | "dependsOn": ["^build"], 7 | "outputs": ["dist/**"] 8 | }, 9 | "test": { 10 | "dependsOn": ["build"], 11 | "outputs": [], 12 | "inputs": ["src/**/*.tsx", "src/**/*.ts", "test/**/*.ts", "test/**/*.tsx"] 13 | }, 14 | "test:ci": { 15 | "dependsOn": ["build"], 16 | "outputs": [], 17 | "inputs": ["src/**/*.tsx", "src/**/*.ts", "test/**/*.ts", "test/**/*.tsx"] 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcrypt-session-project", 3 | "private": true, 4 | "version": "0.2.2", 5 | "packageManager": "pnpm@7.1.7", 6 | "scripts": { 7 | "build": "turbo run build", 8 | "test": "turbo run test", 9 | "test:ci": "turbo run test:ci", 10 | "version": "changeset version", 11 | "release": "pnpm build && changeset publish" 12 | }, 13 | "devDependencies": { 14 | "@changesets/changelog-github": "^0.4.5", 15 | "turbo": "latest" 16 | }, 17 | "workspaces": [ 18 | "packages/*", 19 | "examples/*" 20 | ], 21 | "engines": { 22 | "npm": ">=8.11.0", 23 | "node": ">=18.3.0" 24 | }, 25 | "dependencies": { 26 | "@changesets/cli": "^2.23.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Build & Test 2 | on: [push] 3 | 4 | jobs: 5 | test: 6 | name: Build testing 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Checkout Repo 10 | uses: actions/checkout@v3 11 | env: 12 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 13 | 14 | - name: Setup PNPM 15 | uses: pnpm/action-setup@v2.2.1 16 | 17 | - name: Setup Node 18 | uses: actions/setup-node@v3 19 | with: 20 | node-version: 18 21 | cache: 'pnpm' 22 | 23 | - name: Install Dependencies 24 | run: pnpm install 25 | 26 | - name: Test 27 | run: pnpm test:ci 28 | 29 | - name: Build 30 | run: pnpm build 31 | -------------------------------------------------------------------------------- /packages/webcrypt-session/script/build.js: -------------------------------------------------------------------------------- 1 | const { build } = require("esbuild"); 2 | const { join } = require("path"); 3 | 4 | const prefixes = ["", "adapters/trpc"]; 5 | const shared = { 6 | bundle: true, 7 | define: { 8 | "import.meta.vitest": undefined, 9 | }, 10 | }; 11 | prefixes.map((prefix) => { 12 | const entryPoint = join("src", prefix, "index.ts"); 13 | const cjsOutFile = join("dist", prefix, "index.js"); 14 | const esmOutFile = join("dist", prefix, "index.mjs"); 15 | build({ 16 | ...shared, 17 | entryPoints: [entryPoint], 18 | format: "cjs", 19 | outfile: cjsOutFile, 20 | }); 21 | 22 | build({ 23 | ...shared, 24 | entryPoints: [entryPoint], 25 | format: "esm", 26 | outfile: esmOutFile, 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /examples/cloudflare/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcrypt-session-example", 3 | "version": "0.0.2", 4 | "private": true, 5 | "description": "", 6 | "main": "", 7 | "scripts": { 8 | "dev": "wrangler dev" 9 | }, 10 | "author": "Satoshi Toyama ", 11 | "repository": { 12 | "type": "git", 13 | "url": "git+ssh://git@github.com/toyamarinyon/webcrypt-session.git" 14 | }, 15 | "bugs": { 16 | "url": "https://github.com/toyamarinyon/webcrypt-session/issues" 17 | }, 18 | "homepage": "https://github.com/toyamarinyon/webcrypt-session#readme", 19 | "license": "ISC", 20 | "dependencies": { 21 | "webcrypt-session": "*", 22 | "zod": "^3.17.3" 23 | }, 24 | "devDependencies": { 25 | "@cloudflare/workers-types": "^3.12.0", 26 | "@tsconfig/esm": "^1.0.1", 27 | "wrangler": "^2.0.12" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/webcrypt-session/src/adapters/trpc/index.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from "vitest"; 2 | import { z } from "zod"; 3 | import { getWebCryptSession } from "."; 4 | import { WebCryptSessionOption } from "../.."; 5 | 6 | const scheme = z.object({ 7 | userId: z.number(), 8 | }); 9 | const defaultRequest = new Request("http://loclahost:8989/test"); 10 | const password = "IF4B#t69!WlX$uS22blaxDvzJJ%$vEh%"; 11 | const option: WebCryptSessionOption = { password }; 12 | 13 | test("works properly", async () => { 14 | const session = await getWebCryptSession(scheme, defaultRequest, option); 15 | expect(session.userId).not.toBeNull(); 16 | // @ts-ignore we actually want to test this 17 | const [key, value] = session.responseHeader(); 18 | expect(key).toBe("set-cookie"); 19 | expect(value).toBeUndefined(); 20 | 21 | await session.save({ userId: 1 }); 22 | // @ts-ignore we actually want to test this 23 | const [key2, value2] = session.responseHeader(); 24 | expect(key2).toBe("set-cookie"); 25 | expect(value2).not.toBeUndefined(); 26 | }); 27 | -------------------------------------------------------------------------------- /examples/cloudflare/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # webcrypt-session-example 2 | 3 | ## 0.0.2 4 | 5 | ### Patch Changes 6 | 7 | - [#19](https://github.com/toyamarinyon/webcrypt-session/pull/19) [`d788375`](https://github.com/toyamarinyon/webcrypt-session/commit/d788375ae5ccb0ff48ea852eaf4c69380aa8731a) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add a live demo 8 | 9 | - Updated dependencies [[`d788375`](https://github.com/toyamarinyon/webcrypt-session/commit/d788375ae5ccb0ff48ea852eaf4c69380aa8731a), [`508fbfb`](https://github.com/toyamarinyon/webcrypt-session/commit/508fbfb7aa506cbea48eea4dfee5939b537b68a2)]: 10 | - webcrypt-session@0.5.1 11 | 12 | ## 0.0.1 13 | 14 | ### Patch Changes 15 | 16 | - [#17](https://github.com/toyamarinyon/webcrypt-session/pull/17) [`a2be98c`](https://github.com/toyamarinyon/webcrypt-session/commit/a2be98c5c519d93961dd606034c2c64295013347) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add save function into session 17 | 18 | - Updated dependencies [[`a2be98c`](https://github.com/toyamarinyon/webcrypt-session/commit/a2be98c5c519d93961dd606034c2c64295013347)]: 19 | - webcrypt-session@0.5.0 20 | -------------------------------------------------------------------------------- /examples/cloudflare/README.md: -------------------------------------------------------------------------------- 1 | # WebCrypt Session on Cloudflare Worker Example 2 | 3 | ## Install 4 | ```bash 5 | pnpm install 6 | ``` 7 | ## Try it out 8 | Start worker: 9 | ```bash 10 | pnpm dev 11 | # worker listening at http://localhost:8787 (or other free port) 12 | ``` 13 | 14 | Send a request to the worker without session: 15 | ```bash 16 | curl http://localhost:8787 17 | # The text 'Please sign in first with http://localhost:8787/signIn' is responded. 18 | ``` 19 | 20 | 21 | 22 | Create session: 23 | ```bash 24 | curl -X POST -H "Content-Type: application/json" \ 25 | -d '{"username": "satoshi" }' \ 26 | --cookie-jar cookie.txt \ 27 | http://localhost:8787/signIn 28 | # The text 'Hello satoshi' is responded and put session in cookie.txt 29 | ``` 30 | Show encrypted session: 31 | ```bash 32 | cat cookie.txt 33 | # Netscape HTTP Cookie File 34 | # https://curl.se/docs/http-cookies.html 35 | # This file was generated by libcurl! Edit at your own risk. 36 | # 37 | # localhost FALSE / FALSE 0sessioneRDBYVm7xIT%2FxCKtPYsgjiZndQbNvg%3D%3D--PwXKJoVURX%2FnGbTwCvsVCw%3D%3D 38 | ``` 39 | 40 | Use session: 41 | ```bash 42 | curl --cookie cookie.txt http://localhost:8787 43 | # The text 'Hello satoshi' is responded. 44 | ``` 45 | 46 | 47 | -------------------------------------------------------------------------------- /packages/webcrypt-session/src/adapters/trpc/index.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | import { 3 | createWebCryptSession, 4 | WebCryptSession, 5 | WebCryptSessionOption, 6 | } from "../.."; 7 | import { 8 | AnyRouter, 9 | inferRouterContext, 10 | inferRouterError, 11 | ProcedureType, 12 | TRPCError, 13 | } from "@trpc/server"; 14 | import { TRPCResponse } from "@trpc/server/rpc"; 15 | 16 | export async function getWebCryptSession( 17 | scheme: T, 18 | req: Request, 19 | option: WebCryptSessionOption 20 | ) { 21 | const webCryptSession = await createWebCryptSession(scheme, req, option); 22 | 23 | // Call this function inside tRPC.responseMeta to set cookie into header 24 | function responseHeader(opts: { 25 | data: TRPCResponse>[]; 26 | ctx?: inferRouterContext; 27 | paths?: string[]; 28 | type: ProcedureType | "unknown"; 29 | errors: TRPCError[]; 30 | }) { 31 | const setCookieHeader = webCryptSession.toHeaderValue(); 32 | return ["set-cookie", setCookieHeader]; 33 | } 34 | 35 | Object.assign(webCryptSession, { 36 | responseHeader, 37 | }); 38 | 39 | // Block calls to WebCryptSession's internal functions 40 | // allowing access only to the scheme. 41 | return (webCryptSession as unknown) as Omit< 42 | WebCryptSession, 43 | "toHeaderValue" 44 | >; 45 | } 46 | -------------------------------------------------------------------------------- /packages/webcrypt-session/README.md: -------------------------------------------------------------------------------- 1 | # WebCrypt Session 2 | 3 | demo: https://webcrypt-session.sat0shi.workers.dev/ 4 | 5 | _🛠 Stateless session utility using signed and encrypted cookies to store data. Works with WebCrypt API on Cloudflare Workers._ 6 | 7 | ```ts 8 | import { createWebCryptSession } from "webcrypt-session"; 9 | import { z } from "zod"; 10 | 11 | const sessionScheme = z.object({ 12 | username: z.string(), 13 | }); 14 | export default { 15 | async fetch(request: Request): Promise { 16 | const webCryptSession = await createWebCryptSession( 17 | sessionScheme, 18 | request, 19 | { 20 | password: "IF4B#t69!WlX$uS22blaxDvzJJ%$vEh%", 21 | } 22 | ); 23 | return new Response(`Hello ${webCryptSession.username}`, { 24 | headers: { 25 | "Set-Cookie": webCryptSession.toHeaderValue(), 26 | }, 27 | }); 28 | }, 29 | }; 30 | ``` 31 | 32 | # Acknowledgment 33 | 34 | This package is greatly influenced by [iron-session](https://github.com/vvo/iron-session) developed by [@vvoyer](https://twitter.com/vvoyer). iron-session is quite cool library that it allows to manage a stateless session. 35 | 36 | I'd like to use iron-session on CloudFlare worker, but it could not run it because it requires Node.js runtime. 37 | 38 | So, I started to develop a library that it allows to manage a stateless session on Cloudflare Worker, using iron-session's api design and implementation as a reference. 39 | 40 | # Example 41 | 42 | https://github.com/toyamarinyon/webcrypt-session/tree/main/examples/cloudflare 43 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | concurrency: ${{ github.workflow }}-${{ github.ref }} 9 | 10 | jobs: 11 | release: 12 | name: Release 13 | if: ${{ (github.ref_name == 'main' || github.head_ref == 'next') && github.repository_owner == 'toyamarinyon' }} 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout Repo 17 | uses: actions/checkout@v3 18 | env: 19 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 20 | 21 | - name: Setup PNPM 22 | uses: pnpm/action-setup@v2.2.1 23 | 24 | - name: Setup Node 25 | uses: actions/setup-node@v3 26 | with: 27 | node-version: 18 28 | cache: 'pnpm' 29 | 30 | - name: Install Dependencies 31 | run: pnpm install 32 | 33 | - name: Create Release Pull Request or Publish to npm 34 | id: changesets 35 | uses: changesets/action@v1 36 | with: 37 | # Note: pnpm install after versioning is necessary to refresh lockfile 38 | version: pnpm run version 39 | publish: pnpm run release 40 | commit: '[ci] release' 41 | title: '[ci] release' 42 | env: 43 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 44 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 45 | 46 | # - name: Send a Slack notification if a publish happens 47 | # if: steps.changesets.outputs.published == 'true' 48 | # # You can do something when a publish happens. 49 | # run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!" 50 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # v0.2.2 (Thu Jun 23 2022) 2 | 3 | 4 | 5 | --- 6 | 7 | # v0.2.1 (Thu Jun 23 2022) 8 | 9 | #### 🐛 Bug Fix 10 | 11 | - Add auto [#4](https://github.com/toyamarinyon/webcrypt-session/pull/4) ([@toyamarinyon](https://github.com/toyamarinyon)) 12 | - use workspace and turborepo [#3](https://github.com/toyamarinyon/webcrypt-session/pull/3) ([@toyamarinyon](https://github.com/toyamarinyon)) 13 | 14 | #### ⚠️ Pushed to `main` 15 | 16 | - bump up version ([@toyamarinyon](https://github.com/toyamarinyon)) 17 | - update example ([@toyamarinyon](https://github.com/toyamarinyon)) 18 | 19 | #### Authors: 1 20 | 21 | - toyamarinyon ([@toyamarinyon](https://github.com/toyamarinyon)) 22 | 23 | --- 24 | 25 | # v0.2.1 (Thu Jun 23 2022) 26 | 27 | #### 🐛 Bug Fix 28 | 29 | - Add auto [#4](https://github.com/toyamarinyon/webcrypt-session/pull/4) ([@toyamarinyon](https://github.com/toyamarinyon)) 30 | - use workspace and turborepo [#3](https://github.com/toyamarinyon/webcrypt-session/pull/3) ([@toyamarinyon](https://github.com/toyamarinyon)) 31 | 32 | #### ⚠️ Pushed to `main` 33 | 34 | - update example ([@toyamarinyon](https://github.com/toyamarinyon)) 35 | 36 | #### Authors: 1 37 | 38 | - toyamarinyon ([@toyamarinyon](https://github.com/toyamarinyon)) 39 | 40 | --- 41 | 42 | # v0.2.1 (Thu Jun 23 2022) 43 | 44 | #### 🐛 Bug Fix 45 | 46 | - Add auto [#4](https://github.com/toyamarinyon/webcrypt-session/pull/4) ([@toyamarinyon](https://github.com/toyamarinyon)) 47 | - use workspace and turborepo [#3](https://github.com/toyamarinyon/webcrypt-session/pull/3) ([@toyamarinyon](https://github.com/toyamarinyon)) 48 | 49 | #### ⚠️ Pushed to `main` 50 | 51 | - update example ([@toyamarinyon](https://github.com/toyamarinyon)) 52 | 53 | #### Authors: 1 54 | 55 | - toyamarinyon ([@toyamarinyon](https://github.com/toyamarinyon)) 56 | -------------------------------------------------------------------------------- /packages/webcrypt-session/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcrypt-session", 3 | "version": "0.5.1", 4 | "description": "WebCrypt stateless session utility using signed and encrypted cookies to store data.", 5 | "main": "./dist/index.js", 6 | "module": "./dist/index.mjs", 7 | "types": "./dist/index.d.ts", 8 | "files": [ 9 | "dist/", 10 | "adapters/" 11 | ], 12 | "scripts": { 13 | "build": "run-p build:*", 14 | "build:esbuild": "node script/build.js", 15 | "build:type": "tsc --project tsconfig.build.json", 16 | "test": "vitest", 17 | "test:ci": "vitest run" 18 | }, 19 | "exports": { 20 | ".": { 21 | "import": "./dist/index.mjs", 22 | "require": "./dist/index.js", 23 | "type": "./dist/index.d.ts" 24 | }, 25 | "./adapters/trpc": { 26 | "import": "./dist/adapters/trpc/index.mjs", 27 | "require": "./dist/adapters/trpc/index.js", 28 | "types": "./dist/adapters/trpc/index.d.ts" 29 | } 30 | }, 31 | "repository": { 32 | "type": "git", 33 | "url": "git+ssh://git@github.com/toyamarinyon/webcrypt-session.git" 34 | }, 35 | "author": "@toyamarinyon", 36 | "license": "MIT", 37 | "bugs": { 38 | "url": "https://github.com/toyamarinyon/webcrypt-session/issues" 39 | }, 40 | "homepage": "https://github.com/toyamarinyon/webcrypt-session#readme", 41 | "dependencies": { 42 | "cookie": "^0.5.0", 43 | "zod": "^3.17.3" 44 | }, 45 | "devDependencies": { 46 | "@cloudflare/workers-types": "^3.11.0", 47 | "@trpc/server": "^10.0.0-alpha.22", 48 | "@tsconfig/esm": "^1.0.1", 49 | "@types/cookie": "^0.5.1", 50 | "@types/node": "^17.0.40", 51 | "esbuild": "^0.14.42", 52 | "miniflare": "^2.5.0", 53 | "npm-run-all": "^4.1.5", 54 | "turbo": "^1.2.16", 55 | "typescript": "^4.7.3", 56 | "vitest": "^0.13.1" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /packages/webcrypt-session/src/helper.ts: -------------------------------------------------------------------------------- 1 | const encoder = new TextEncoder(); 2 | const decoder = new TextDecoder(); 3 | 4 | // Convert a ByteString (a string whose code units are all in the range 5 | // [0, 255]), to a Uint8Array. If you pass in a string with code units larger 6 | // than 255, their values will overflow. 7 | function byteStringToUint8Array(byteString: string) { 8 | const ui = new Uint8Array(byteString.length); 9 | for (let i = 0; i < byteString.length; ++i) { 10 | ui[i] = byteString.charCodeAt(i); 11 | } 12 | return ui; 13 | } 14 | 15 | export async function importKey(password: string) { 16 | const rawKey = encoder.encode(password); 17 | const key = await crypto.subtle.importKey("raw", rawKey, "AES-CTR", true, [ 18 | "encrypt", 19 | "decrypt", 20 | ]); 21 | return key; 22 | } 23 | export async function encrypt( 24 | key: CryptoKey, 25 | string: string 26 | ): Promise<{ 27 | encrypted: string; 28 | counter: string; 29 | }> { 30 | const sessionEncoded = encoder.encode(string); 31 | const counter = crypto.getRandomValues(new Uint8Array(16)); 32 | 33 | const encrypted = await crypto.subtle.encrypt( 34 | { 35 | name: "AES-CTR", 36 | counter, 37 | length: 128, 38 | }, 39 | key, 40 | sessionEncoded 41 | ); 42 | 43 | const encryptedString = btoa( 44 | String.fromCharCode(...new Uint8Array(encrypted)) 45 | ); 46 | const counterString = btoa(String.fromCharCode(...counter)); 47 | return { encrypted: encryptedString, counter: counterString }; 48 | } 49 | 50 | export async function decrypt(key: CryptoKey, string: string, counter: string) { 51 | const result = await crypto.subtle.decrypt( 52 | { 53 | name: "AES-CTR", 54 | counter: byteStringToUint8Array(atob(counter)), 55 | length: 64, 56 | }, 57 | key, 58 | byteStringToUint8Array(atob(string)) 59 | ); 60 | 61 | return decoder.decode(result); 62 | } 63 | 64 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WebCrypt Session 2 | 3 | demo: https://webcrypt-session.sat0shi.workers.dev/ 4 | 5 | _🛠 Stateless session utility using signed and encrypted cookies to store data. Works with WebCrypt API on Cloudflare Workers._ 6 | 7 | ## Features 8 | - 🧙‍♂️ **TypeSafe** - Written in 100% TypeScript. 9 | - 📝 **With Scheme** - You can define the session scheme and you can use static typesafty & autocommpletion for the session. 10 | - 🍃 **Light** - No database required. (You don't need to use CloudFlare R2 or CloudFlare DurableObjects) 11 | 12 | ## How to use 13 | See the ./examples for more practical examples. 14 | 15 | ### Install 16 | ```bash 17 | pnpm add webcrypt-session 18 | ``` 19 | ```bash 20 | npm i webcrypt-session 21 | ``` 22 | ```bash 23 | yarn add webcrypt-session 24 | ``` 25 | ### Basic Usage 26 | ```ts 27 | import { createWebCryptSession } from "webcrypt-session"; 28 | import { z } from "zod"; 29 | 30 | const sessionScheme = z.object({ 31 | username: z.string(), 32 | }); 33 | export default { 34 | async fetch(request: Request): Promise { 35 | const webCryptSession = await createWebCryptSession( 36 | sessionScheme, 37 | request, 38 | { 39 | password: "IF4B#t69!WlX$uS22blaxDvzJJ%$vEh%", 40 | } 41 | ); 42 | return new Response(`Hello ${webCryptSession.username}`, { 43 | headers: { 44 | "Set-Cookie": webCryptSession.toHeaderValue(), 45 | }, 46 | }); 47 | }, 48 | }; 49 | ``` 50 | 51 | # Acknowledgment 52 | 53 | This package is greatly influenced by [iron-session](https://github.com/vvo/iron-session) developed by [@vvoyer](https://twitter.com/vvoyer). iron-session is quite cool library that it allows to manage a stateless session. 54 | 55 | I'd like to use iron-session on CloudFlare worker, but it could not run it because it requires Node.js runtime. 56 | 57 | So, I started to develop a library that it allows to manage a stateless session on Cloudflare Worker, using iron-session's api design and implementation as a reference. 58 | -------------------------------------------------------------------------------- /packages/webcrypt-session/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # webcrypt-session 2 | 3 | ## 0.5.1 4 | 5 | ### Patch Changes 6 | 7 | - [#19](https://github.com/toyamarinyon/webcrypt-session/pull/19) [`d788375`](https://github.com/toyamarinyon/webcrypt-session/commit/d788375ae5ccb0ff48ea852eaf4c69380aa8731a) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add a live demo 8 | 9 | * [#21](https://github.com/toyamarinyon/webcrypt-session/pull/21) [`508fbfb`](https://github.com/toyamarinyon/webcrypt-session/commit/508fbfb7aa506cbea48eea4dfee5939b537b68a2) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - update readme 10 | 11 | ## 0.5.0 12 | 13 | ### Minor Changes 14 | 15 | - [#17](https://github.com/toyamarinyon/webcrypt-session/pull/17) [`a2be98c`](https://github.com/toyamarinyon/webcrypt-session/commit/a2be98c5c519d93961dd606034c2c64295013347) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add save function into session 16 | 17 | ## 0.4.2 18 | 19 | ### Patch Changes 20 | 21 | - [`7050415`](https://github.com/toyamarinyon/webcrypt-session/commit/70504155f8df007c76a3e5628a9e7387f567848b) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add adapters directory into project 22 | 23 | ## 0.4.1 24 | 25 | ### Patch Changes 26 | 27 | - [#13](https://github.com/toyamarinyon/webcrypt-session/pull/13) [`6dcba1f`](https://github.com/toyamarinyon/webcrypt-session/commit/6dcba1fe8cf039daa78ddd4c5677a16d6985dc8a) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add ci 28 | 29 | ## 0.4.0 30 | 31 | ### Minor Changes 32 | 33 | - [#11](https://github.com/toyamarinyon/webcrypt-session/pull/11) [`68f9b10`](https://github.com/toyamarinyon/webcrypt-session/commit/68f9b10a9464e85592a1aefde251329c2cf6cfd4) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Add tRPC plugin 34 | 35 | ## 0.3.2 36 | 37 | ### Patch Changes 38 | 39 | - [#9](https://github.com/toyamarinyon/webcrypt-session/pull/9) [`6afbe08`](https://github.com/toyamarinyon/webcrypt-session/commit/6afbe085fae4d11998d03b967545c60e1e621a77) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Build before release 40 | 41 | ## 0.3.1 42 | 43 | ### Patch Changes 44 | 45 | - [#7](https://github.com/toyamarinyon/webcrypt-session/pull/7) [`7327244`](https://github.com/toyamarinyon/webcrypt-session/commit/73272440fb847f73306619ef90e9a488c4cc3aba) Thanks [@toyamarinyon](https://github.com/toyamarinyon)! - Automating Changegset 46 | 47 | ## 0.3.0 48 | 49 | ### Minor Changes 50 | 51 | - a61f407: use changesets for release management 52 | -------------------------------------------------------------------------------- /packages/webcrypt-session/src/index.ts: -------------------------------------------------------------------------------- 1 | import { parse, serialize } from "cookie"; 2 | import { AnyZodObject, z } from "zod"; 3 | import { encrypt, decrypt, importKey } from "./helper"; 4 | 5 | const webCryptSessionOptionScheme = z.object({ 6 | password: z.string().length(32), 7 | }); 8 | export type WebCryptSessionOption = z.infer; 9 | 10 | function JSONCookie( 11 | scheme: z.AnyZodObject, 12 | cookie: string 13 | ): z.infer { 14 | if (typeof cookie !== "string") { 15 | return {} as z.infer; 16 | } 17 | 18 | try { 19 | const json = JSON.parse(cookie); 20 | return scheme.parse(json); 21 | } catch (err) { 22 | return {} as z.infer; 23 | } 24 | } 25 | 26 | async function decryptSession( 27 | key: CryptoKey, 28 | scheme: z.AnyZodObject, 29 | cookie: string | null 30 | ) { 31 | try { 32 | const cookieParsed = cookie ? parse(cookie) : { session: "" }; 33 | const [sessionEncrypted, counter] = cookieParsed.session.split("--"); 34 | const sessionDecrypted = await decrypt(key, sessionEncrypted, counter); 35 | const session = JSONCookie(scheme, sessionDecrypted); 36 | return session; 37 | } catch (_) { 38 | return {} as z.infer; 39 | } 40 | } 41 | 42 | export type WebCryptSession = z.infer & { 43 | save: (scheme: z.infer) => Promise; 44 | toHeaderValue: () => string | undefined; 45 | }; 46 | 47 | export async function createWebCryptSession( 48 | scheme: T, 49 | req: Request, 50 | option: WebCryptSessionOption 51 | ): Promise> { 52 | if ( 53 | req == null || 54 | scheme == null || 55 | option == null || 56 | option.password == null 57 | ) { 58 | throw new Error(`webcrypt-session: Bad usage`); 59 | } 60 | const parsedOption = webCryptSessionOptionScheme.safeParse(option); 61 | if (!parsedOption.success) { 62 | throw new Error(`webcrypt-session: Bad usage`); 63 | } 64 | const key = await importKey(parsedOption.data.password); 65 | 66 | const session = await decryptSession(key, scheme, req.headers.get("cookie")); 67 | let encryptedSession: string; 68 | let encryptedCounter: string; 69 | return Object.assign(session, { 70 | save: async (newSession: z.infer) => { 71 | const safeSession = scheme.parse(newSession); 72 | const safeSessionString = JSON.stringify(safeSession); 73 | const { encrypted, counter } = await encrypt(key, safeSessionString); 74 | encryptedSession = encrypted; 75 | encryptedCounter = counter; 76 | }, 77 | toHeaderValue: () => { 78 | if (encryptedSession == null || encryptedCounter == null) { 79 | return undefined; 80 | } 81 | return serialize("session", `${encryptedSession}--${encryptedCounter}`); 82 | }, 83 | }); 84 | } 85 | -------------------------------------------------------------------------------- /packages/webcrypt-session/src/index.test.ts: -------------------------------------------------------------------------------- 1 | import { test, expect } from "vitest"; 2 | import { z } from "zod"; 3 | import { createWebCryptSession, WebCryptSessionOption } from "."; 4 | 5 | const scheme = z.object({ 6 | userId: z.number(), 7 | }); 8 | const defaultRequest = new Request("http://loclahost:8989/test"); 9 | const password = "IF4B#t69!WlX$uS22blaxDvzJJ%$vEh%"; 10 | const option: WebCryptSessionOption = { password }; 11 | 12 | test("no scheme", async () => { 13 | // @ts-ignore we actually want to test this 14 | await expect(createWebCryptSession()).rejects.toThrowError( 15 | "webcrypt-session: Bad usage" 16 | ); 17 | }); 18 | 19 | test("no req", async () => { 20 | await expect( 21 | // @ts-ignore we actually want to test this 22 | createWebCryptSession(scheme) 23 | ).rejects.toThrowError("webcrypt-session: Bad usage"); 24 | }); 25 | 26 | test("no option", async () => { 27 | await expect(() => 28 | // @ts-ignore we actually want to test this 29 | createWebCryptSession(scheme, defaultRequest) 30 | ).rejects.toThrowError("webcrypt-session: Bad usage"); 31 | }); 32 | 33 | test("no password", async () => { 34 | await expect(() => 35 | // @ts-ignore we actually want to test this 36 | createWebCryptSession(scheme, defaultRequest, {}) 37 | ).rejects.toThrowError("webcrypt-session: Bad usage"); 38 | }); 39 | 40 | test("bad password length", async () => { 41 | await expect(() => 42 | // @ts-ignore we actually want to test this 43 | createWebCryptSession(scheme, defaultRequest, { password: "a" }) 44 | ).rejects.toThrowError("webcrypt-session: Bad usage"); 45 | }); 46 | 47 | test("session not exists", async () => { 48 | const webCryptSession = await createWebCryptSession( 49 | scheme, 50 | defaultRequest, 51 | option 52 | ); 53 | expect(webCryptSession.userId).toBeUndefined(); 54 | const setCookieHeader = webCryptSession.toHeaderValue(); 55 | expect(setCookieHeader).toBeUndefined(); 56 | }); 57 | 58 | test("session exists", async () => { 59 | const webCryptSession = await createWebCryptSession( 60 | scheme, 61 | new Request("http://loclahost:8989/test", { 62 | headers: { 63 | cookie: "session=Ekvxbb%2F1pRAsZZWq--%2FybF8SeKlgnR%2FKn7eEiFeA%3D%3D", 64 | }, 65 | }), 66 | option 67 | ); 68 | expect(webCryptSession.userId).toBe(1); 69 | }); 70 | 71 | test("save session", async () => { 72 | const webCryptSession = await createWebCryptSession( 73 | scheme, 74 | new Request("http://loclahost:8989/test"), 75 | option 76 | ); 77 | expect(webCryptSession.userId).toBeUndefined(); 78 | const nonSessionHeader = await webCryptSession.toHeaderValue(); 79 | expect(nonSessionHeader).toBeUndefined(); 80 | await webCryptSession.save({ 81 | userId: 1, 82 | }); 83 | const sessionHeader = webCryptSession.toHeaderValue(); 84 | expect(sessionHeader).not.toBeUndefined(); 85 | }); 86 | 87 | test("invalid session", async () => { 88 | const webCryptSession = await createWebCryptSession( 89 | scheme, 90 | new Request("http://loclahost:8989/test", { 91 | headers: { 92 | cookie: "session=%7B%22userId%22%3A1%7", 93 | }, 94 | }), 95 | option 96 | ); 97 | const nonSessionHeader = webCryptSession.toHeaderValue(); 98 | expect(webCryptSession.userId).toBeUndefined(); 99 | expect(nonSessionHeader).toBeUndefined(); 100 | }); 101 | 102 | test("there is no session in cookie", async () => { 103 | const webCryptSession = await createWebCryptSession( 104 | scheme, 105 | new Request("http://loclahost:8989/test", { 106 | headers: { 107 | cookie: "googleAnalytics=%7B%22userId%22%3A1%7", 108 | }, 109 | }), 110 | option 111 | ); 112 | const nonSessionHeader = webCryptSession.toHeaderValue(); 113 | expect(webCryptSession.userId).toBeUndefined(); 114 | expect(nonSessionHeader).toBeUndefined(); 115 | }); 116 | -------------------------------------------------------------------------------- /examples/cloudflare/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Welcome to Cloudflare Workers! This is your first worker. 3 | * 4 | * - Run `wrangler dev src/index.ts` in your terminal to start a development server 5 | * - Open a browser tab at http://localhost:8787/ to see your worker in action 6 | * - Run `wrangler publish src/index.ts --name my-worker` to publish your worker 7 | * 8 | * Learn more at https://developers.cloudflare.com/workers/ 9 | */ 10 | import { z } from "zod"; 11 | import { createWebCryptSession } from "webcrypt-session"; 12 | export interface Env { 13 | // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/ 14 | // MY_KV_NAMESPACE: KVNamespace; 15 | // 16 | // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/ 17 | // MY_DURABLE_OBJECT: DurableObjectNamespace; 18 | // 19 | // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/ 20 | // MY_BUCKET: R2Bucket; 21 | } 22 | const sessionScheme = z.object({ 23 | username: z.string(), 24 | }); 25 | 26 | const signInParamScheme = z.object({ 27 | username: z.string(), 28 | }); 29 | 30 | const welComePage = ` 31 | 32 |

Hello WebCrypt-Session

33 |

Please sign in first with sign-in.

34 | 35 | `; 36 | 37 | const welComeUserPage = ` 38 | 39 |

Hello WebCrypt-Session

40 |

Welcome, <%= username %>!

41 |

You can sign out with clicking following button.

42 |
43 | 44 |
45 | 46 | `; 47 | 48 | const signInPage = ` 49 | 50 |

Sign-In to WebCrypt-Session

51 |
52 | 53 | 54 |
55 | 56 | `; 57 | 58 | export default { 59 | async fetch( 60 | request: Request, 61 | env: Env, 62 | ctx: ExecutionContext 63 | ): Promise { 64 | const webCryptSession = await createWebCryptSession( 65 | sessionScheme, 66 | request, 67 | { 68 | password: "IF4B#t69!WlX$uS22blaxDvzJJ%$vEh%", 69 | } 70 | ); 71 | const url = new URL(request.url); 72 | const baseUrl = `${url.protocol}//${url.host}`; 73 | if (url.pathname === "/signIn") { 74 | if (request.method === "GET") { 75 | return new Response(signInPage, { 76 | headers: { 77 | "content-type": "text/html;charset=UTF-8", 78 | }, 79 | }); 80 | } else if (request.method !== "POST") { 81 | return new Response(null, { status: 405 }); 82 | } 83 | try { 84 | const formData = await request.formData(); 85 | const formObject = Object.fromEntries(formData.entries()); 86 | const signInParam = signInParamScheme.parse(formObject); 87 | await webCryptSession.save({ 88 | username: signInParam.username, 89 | }); 90 | const session = webCryptSession.toHeaderValue(); 91 | if (session == null) { 92 | throw new Error(); 93 | } 94 | return new Response(null, { 95 | status: 303, 96 | headers: { 97 | location: baseUrl, 98 | "Set-Cookie": session, 99 | }, 100 | }); 101 | } catch (_) { 102 | return new Response(null, { 103 | status: 400, 104 | }); 105 | } 106 | } else if (url.pathname === "/signOut") { 107 | return new Response(null, { 108 | status: 303, 109 | headers: { 110 | location: baseUrl, 111 | "Set-Cookie": "session=delete; expires=Thu, 01 Jan 1970 00:00:00 GMT", 112 | }, 113 | }); 114 | } 115 | const session = webCryptSession.username; 116 | if (session == null) { 117 | return new Response(welComePage, { 118 | headers: { 119 | "content-type": "text/html;charset=UTF-8", 120 | }, 121 | }); 122 | } 123 | return new Response( 124 | welComeUserPage.replace("<%= username %>", webCryptSession.username), 125 | { 126 | headers: { 127 | "Set-Cookie": webCryptSession.toHeaderValue() ?? "", 128 | "content-type": "text/html;charset=UTF-8", 129 | }, 130 | } 131 | ); 132 | }, 133 | }; 134 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | importers: 4 | 5 | .: 6 | specifiers: 7 | '@changesets/changelog-github': ^0.4.5 8 | '@changesets/cli': ^2.23.0 9 | turbo: latest 10 | dependencies: 11 | '@changesets/cli': 2.23.0 12 | devDependencies: 13 | '@changesets/changelog-github': 0.4.5 14 | turbo: 1.3.1 15 | 16 | examples/cloudflare: 17 | specifiers: 18 | '@cloudflare/workers-types': ^3.12.0 19 | '@tsconfig/esm': ^1.0.1 20 | webcrypt-session: '*' 21 | wrangler: ^2.0.12 22 | zod: ^3.17.3 23 | dependencies: 24 | webcrypt-session: link:../../packages/webcrypt-session 25 | zod: 3.17.3 26 | devDependencies: 27 | '@cloudflare/workers-types': 3.13.0 28 | '@tsconfig/esm': 1.0.1 29 | wrangler: 2.0.15 30 | 31 | packages/webcrypt-session: 32 | specifiers: 33 | '@cloudflare/workers-types': ^3.11.0 34 | '@trpc/server': ^10.0.0-alpha.22 35 | '@tsconfig/esm': ^1.0.1 36 | '@types/cookie': ^0.5.1 37 | '@types/node': ^17.0.40 38 | cookie: ^0.5.0 39 | esbuild: ^0.14.42 40 | miniflare: ^2.5.0 41 | npm-run-all: ^4.1.5 42 | turbo: ^1.2.16 43 | typescript: ^4.7.3 44 | vitest: ^0.13.1 45 | zod: ^3.17.3 46 | dependencies: 47 | cookie: 0.5.0 48 | zod: 3.17.3 49 | devDependencies: 50 | '@cloudflare/workers-types': 3.13.0 51 | '@trpc/server': 10.0.0-alpha.29 52 | '@tsconfig/esm': 1.0.1 53 | '@types/cookie': 0.5.1 54 | '@types/node': 17.0.45 55 | esbuild: 0.14.47 56 | miniflare: 2.5.1 57 | npm-run-all: 4.1.5 58 | turbo: 1.2.16 59 | typescript: 4.7.4 60 | vitest: 0.13.1 61 | 62 | packages: 63 | 64 | /@babel/code-frame/7.16.7: 65 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} 66 | engines: {node: '>=6.9.0'} 67 | dependencies: 68 | '@babel/highlight': 7.17.12 69 | dev: false 70 | 71 | /@babel/helper-validator-identifier/7.16.7: 72 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 73 | engines: {node: '>=6.9.0'} 74 | dev: false 75 | 76 | /@babel/highlight/7.17.12: 77 | resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==} 78 | engines: {node: '>=6.9.0'} 79 | dependencies: 80 | '@babel/helper-validator-identifier': 7.16.7 81 | chalk: 2.4.2 82 | js-tokens: 4.0.0 83 | dev: false 84 | 85 | /@babel/runtime/7.18.3: 86 | resolution: {integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==} 87 | engines: {node: '>=6.9.0'} 88 | dependencies: 89 | regenerator-runtime: 0.13.9 90 | dev: false 91 | 92 | /@changesets/apply-release-plan/6.0.0: 93 | resolution: {integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==} 94 | dependencies: 95 | '@babel/runtime': 7.18.3 96 | '@changesets/config': 2.0.0 97 | '@changesets/get-version-range-type': 0.3.2 98 | '@changesets/git': 1.3.2 99 | '@changesets/types': 5.0.0 100 | '@manypkg/get-packages': 1.1.3 101 | detect-indent: 6.1.0 102 | fs-extra: 7.0.1 103 | lodash.startcase: 4.4.0 104 | outdent: 0.5.0 105 | prettier: 1.19.1 106 | resolve-from: 5.0.0 107 | semver: 5.7.1 108 | dev: false 109 | 110 | /@changesets/assemble-release-plan/5.1.3: 111 | resolution: {integrity: sha512-I+TTkUoqvxBEuDLoJfJYKDXIJ+nyiTbVJ8KGhpXEsLq4N/ms/AStSbouJwF2d/p3cB+RCPr5+gXh31GSN4kA7w==} 112 | dependencies: 113 | '@babel/runtime': 7.18.3 114 | '@changesets/errors': 0.1.4 115 | '@changesets/get-dependents-graph': 1.3.2 116 | '@changesets/types': 5.0.0 117 | '@manypkg/get-packages': 1.1.3 118 | semver: 5.7.1 119 | dev: false 120 | 121 | /@changesets/changelog-git/0.1.11: 122 | resolution: {integrity: sha512-sWJvAm+raRPeES9usNpZRkooeEB93lOpUN0Lmjz5vhVAb7XGIZrHEJ93155bpE1S0c4oJ5Di9ZWgzIwqhWP/Wg==} 123 | dependencies: 124 | '@changesets/types': 5.0.0 125 | dev: false 126 | 127 | /@changesets/changelog-github/0.4.5: 128 | resolution: {integrity: sha512-J36QJml3mXYm88PLY2qGepmb7j6LA3NM/wuUy6XBwh14qzVTRek+3Xww5oqeZhpK5lK8ELxGahdhSdYQzMv0kA==} 129 | dependencies: 130 | '@changesets/get-github-info': 0.5.1 131 | '@changesets/types': 5.0.0 132 | dotenv: 8.6.0 133 | transitivePeerDependencies: 134 | - encoding 135 | dev: true 136 | 137 | /@changesets/cli/2.23.0: 138 | resolution: {integrity: sha512-Gi3tMi0Vr6eNd8GX6q73tbOm9XOzGfuLEm4PYVeWG2neg5DlRGNOjYwrFULJ/An3N9MHtHn4r5h1Qvnju9Ijug==} 139 | hasBin: true 140 | dependencies: 141 | '@babel/runtime': 7.18.3 142 | '@changesets/apply-release-plan': 6.0.0 143 | '@changesets/assemble-release-plan': 5.1.3 144 | '@changesets/changelog-git': 0.1.11 145 | '@changesets/config': 2.0.0 146 | '@changesets/errors': 0.1.4 147 | '@changesets/get-dependents-graph': 1.3.2 148 | '@changesets/get-release-plan': 3.0.9 149 | '@changesets/git': 1.3.2 150 | '@changesets/logger': 0.0.5 151 | '@changesets/pre': 1.0.11 152 | '@changesets/read': 0.5.5 153 | '@changesets/types': 5.0.0 154 | '@changesets/write': 0.1.8 155 | '@manypkg/get-packages': 1.1.3 156 | '@types/is-ci': 3.0.0 157 | '@types/semver': 6.2.3 158 | ansi-colors: 4.1.3 159 | chalk: 2.4.2 160 | enquirer: 2.3.6 161 | external-editor: 3.1.0 162 | fs-extra: 7.0.1 163 | human-id: 1.0.2 164 | is-ci: 3.0.1 165 | meow: 6.1.1 166 | outdent: 0.5.0 167 | p-limit: 2.3.0 168 | preferred-pm: 3.0.3 169 | resolve-from: 5.0.0 170 | semver: 5.7.1 171 | spawndamnit: 2.0.0 172 | term-size: 2.2.1 173 | tty-table: 4.1.6 174 | dev: false 175 | 176 | /@changesets/config/2.0.0: 177 | resolution: {integrity: sha512-r5bIFY6CN3K6SQ+HZbjyE3HXrBIopONR47mmX7zUbORlybQXtympq9rVAOzc0Oflbap8QeIexc+hikfZoREXDg==} 178 | dependencies: 179 | '@changesets/errors': 0.1.4 180 | '@changesets/get-dependents-graph': 1.3.2 181 | '@changesets/logger': 0.0.5 182 | '@changesets/types': 5.0.0 183 | '@manypkg/get-packages': 1.1.3 184 | fs-extra: 7.0.1 185 | micromatch: 4.0.5 186 | dev: false 187 | 188 | /@changesets/errors/0.1.4: 189 | resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} 190 | dependencies: 191 | extendable-error: 0.1.7 192 | dev: false 193 | 194 | /@changesets/get-dependents-graph/1.3.2: 195 | resolution: {integrity: sha512-tsqA6qZRB86SQuApSoDvI8yEWdyIlo/WLI4NUEdhhxLMJ0dapdeT6rUZRgSZzK1X2nv5YwR0MxQBbDAiDibKrg==} 196 | dependencies: 197 | '@changesets/types': 5.0.0 198 | '@manypkg/get-packages': 1.1.3 199 | chalk: 2.4.2 200 | fs-extra: 7.0.1 201 | semver: 5.7.1 202 | dev: false 203 | 204 | /@changesets/get-github-info/0.5.1: 205 | resolution: {integrity: sha512-w2yl3AuG+hFuEEmT6j1zDlg7GQLM/J2UxTmk0uJBMdRqHni4zXGe/vUlPfLom5KfX3cRfHc0hzGvloDPjWFNZw==} 206 | dependencies: 207 | dataloader: 1.4.0 208 | node-fetch: 2.6.7 209 | transitivePeerDependencies: 210 | - encoding 211 | dev: true 212 | 213 | /@changesets/get-release-plan/3.0.9: 214 | resolution: {integrity: sha512-5C1r4DcOjVxcCvPmXpymeyT6mdSTLCNiB2L+5uf19BRkDKndJdIQorH5Fe2XBR2nHUcZQFT+2TXDzCepat969w==} 215 | dependencies: 216 | '@babel/runtime': 7.18.3 217 | '@changesets/assemble-release-plan': 5.1.3 218 | '@changesets/config': 2.0.0 219 | '@changesets/pre': 1.0.11 220 | '@changesets/read': 0.5.5 221 | '@changesets/types': 5.0.0 222 | '@manypkg/get-packages': 1.1.3 223 | dev: false 224 | 225 | /@changesets/get-version-range-type/0.3.2: 226 | resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} 227 | dev: false 228 | 229 | /@changesets/git/1.3.2: 230 | resolution: {integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==} 231 | dependencies: 232 | '@babel/runtime': 7.18.3 233 | '@changesets/errors': 0.1.4 234 | '@changesets/types': 5.0.0 235 | '@manypkg/get-packages': 1.1.3 236 | is-subdir: 1.2.0 237 | spawndamnit: 2.0.0 238 | dev: false 239 | 240 | /@changesets/logger/0.0.5: 241 | resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} 242 | dependencies: 243 | chalk: 2.4.2 244 | dev: false 245 | 246 | /@changesets/parse/0.3.13: 247 | resolution: {integrity: sha512-wh9Ifa0dungY6d2nMz6XxF6FZ/1I7j+mEgPAqrIyKS64nifTh1Ua82qKKMMK05CL7i4wiB2NYc3SfnnCX3RVeA==} 248 | dependencies: 249 | '@changesets/types': 5.0.0 250 | js-yaml: 3.14.1 251 | dev: false 252 | 253 | /@changesets/pre/1.0.11: 254 | resolution: {integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==} 255 | dependencies: 256 | '@babel/runtime': 7.18.3 257 | '@changesets/errors': 0.1.4 258 | '@changesets/types': 5.0.0 259 | '@manypkg/get-packages': 1.1.3 260 | fs-extra: 7.0.1 261 | dev: false 262 | 263 | /@changesets/read/0.5.5: 264 | resolution: {integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==} 265 | dependencies: 266 | '@babel/runtime': 7.18.3 267 | '@changesets/git': 1.3.2 268 | '@changesets/logger': 0.0.5 269 | '@changesets/parse': 0.3.13 270 | '@changesets/types': 5.0.0 271 | chalk: 2.4.2 272 | fs-extra: 7.0.1 273 | p-filter: 2.1.0 274 | dev: false 275 | 276 | /@changesets/types/4.1.0: 277 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 278 | dev: false 279 | 280 | /@changesets/types/5.0.0: 281 | resolution: {integrity: sha512-IT1kBLSbAgTS4WtpU6P5ko054hq12vk4tgeIFRVE7Vnm4a/wgbNvBalgiKP0MjEXbCkZbItiGQHkCGxYWR55sA==} 282 | 283 | /@changesets/write/0.1.8: 284 | resolution: {integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==} 285 | dependencies: 286 | '@babel/runtime': 7.18.3 287 | '@changesets/types': 5.0.0 288 | fs-extra: 7.0.1 289 | human-id: 1.0.2 290 | prettier: 1.19.1 291 | dev: false 292 | 293 | /@cloudflare/kv-asset-handler/0.2.0: 294 | resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} 295 | dependencies: 296 | mime: 3.0.0 297 | dev: true 298 | 299 | /@cloudflare/workers-types/3.13.0: 300 | resolution: {integrity: sha512-oyhzfYlWBLgd9odJ/WHcsD/8B+IaAjSD+OcPEGLzX5kGRONjwcW3NY0WQfsVIhQzZ6AbPzjwkmj4D2VFwU1xRQ==} 301 | dev: true 302 | 303 | /@esbuild-plugins/node-globals-polyfill/0.1.1_esbuild@0.14.34: 304 | resolution: {integrity: sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==} 305 | peerDependencies: 306 | esbuild: '*' 307 | dependencies: 308 | esbuild: 0.14.34 309 | dev: true 310 | 311 | /@esbuild-plugins/node-modules-polyfill/0.1.4_esbuild@0.14.34: 312 | resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} 313 | peerDependencies: 314 | esbuild: '*' 315 | dependencies: 316 | esbuild: 0.14.34 317 | escape-string-regexp: 4.0.0 318 | rollup-plugin-node-polyfills: 0.2.1 319 | dev: true 320 | 321 | /@iarna/toml/2.2.5: 322 | resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} 323 | dev: true 324 | 325 | /@manypkg/find-root/1.1.0: 326 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 327 | dependencies: 328 | '@babel/runtime': 7.18.3 329 | '@types/node': 12.20.55 330 | find-up: 4.1.0 331 | fs-extra: 8.1.0 332 | dev: false 333 | 334 | /@manypkg/get-packages/1.1.3: 335 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 336 | dependencies: 337 | '@babel/runtime': 7.18.3 338 | '@changesets/types': 4.1.0 339 | '@manypkg/find-root': 1.1.0 340 | fs-extra: 8.1.0 341 | globby: 11.1.0 342 | read-yaml-file: 1.1.0 343 | dev: false 344 | 345 | /@miniflare/cache/2.5.1: 346 | resolution: {integrity: sha512-qH5PC4zb7mHdQHlcaOuP0KUXuRbNSuB/HU7gpoeplV8J6CgNJGceVmQCZVZLycgDKZtAlhyGE1gkpJmeW7GCyw==} 347 | engines: {node: '>=16.7'} 348 | dependencies: 349 | '@miniflare/core': 2.5.1 350 | '@miniflare/shared': 2.5.1 351 | http-cache-semantics: 4.1.0 352 | undici: 5.5.1 353 | dev: true 354 | 355 | /@miniflare/cli-parser/2.5.1: 356 | resolution: {integrity: sha512-itlMDe9jwO806mkNkg3G70QYoG9YQHW6V10AF9L5b8J4LYt/V78uCEJSwNnCpL7zfKrScRPtDfXZxhrFzMXiUw==} 357 | engines: {node: '>=16.7'} 358 | dependencies: 359 | '@miniflare/shared': 2.5.1 360 | kleur: 4.1.4 361 | dev: true 362 | 363 | /@miniflare/core/2.5.1: 364 | resolution: {integrity: sha512-0oEBLV5AM3xxs6TS+7/fn4MSGNBfhUFVv41R8uc72H1a89+kBfRoz+xYI2RnJ3Yo+we66UgU3fXdG+R2KyESlQ==} 365 | engines: {node: '>=16.7'} 366 | dependencies: 367 | '@iarna/toml': 2.2.5 368 | '@miniflare/shared': 2.5.1 369 | '@miniflare/watcher': 2.5.1 370 | busboy: 1.6.0 371 | dotenv: 10.0.0 372 | kleur: 4.1.4 373 | set-cookie-parser: 2.5.0 374 | undici: 5.5.1 375 | urlpattern-polyfill: 4.0.3 376 | dev: true 377 | 378 | /@miniflare/durable-objects/2.5.1: 379 | resolution: {integrity: sha512-AZEGSA9LMA6vBzwADAzr81RBSWYlMfa/cDHnHaFL31w4mQwMUcqXOvemoqe6sTSq1KI0TTtvYbxPt0Lui8tEPw==} 380 | engines: {node: '>=16.7'} 381 | dependencies: 382 | '@miniflare/core': 2.5.1 383 | '@miniflare/shared': 2.5.1 384 | '@miniflare/storage-memory': 2.5.1 385 | undici: 5.5.1 386 | dev: true 387 | 388 | /@miniflare/html-rewriter/2.5.1: 389 | resolution: {integrity: sha512-fdO1qme8ukucejRz5yXJN/F4B9qEDRbBLPOEG94zwx8bHGGIo5VX15+J6oHubhjifLwzNuvOcg16Bu5dyR1KxQ==} 390 | engines: {node: '>=16.7'} 391 | dependencies: 392 | '@miniflare/core': 2.5.1 393 | '@miniflare/shared': 2.5.1 394 | html-rewriter-wasm: 0.4.1 395 | undici: 5.5.1 396 | dev: true 397 | 398 | /@miniflare/http-server/2.5.1: 399 | resolution: {integrity: sha512-K+VoBU0LN8/oku/JWLEyX8wrp9fiaTC8/dosbY/6VWizyIrgQze16uD21GnK5+NBtbCAtLRryS5dZ3PnhiTR1w==} 400 | engines: {node: '>=16.7'} 401 | dependencies: 402 | '@miniflare/core': 2.5.1 403 | '@miniflare/shared': 2.5.1 404 | '@miniflare/web-sockets': 2.5.1 405 | kleur: 4.1.4 406 | selfsigned: 2.0.1 407 | undici: 5.5.1 408 | ws: 8.8.0 409 | youch: 2.2.2 410 | transitivePeerDependencies: 411 | - bufferutil 412 | - utf-8-validate 413 | dev: true 414 | 415 | /@miniflare/kv/2.5.1: 416 | resolution: {integrity: sha512-ODTUqI7on3egHluBpFHifO0a9QFQUZscciASWKxGOt8VDp1vp0vIfU9ykQZrdZYFVeSKNVlUNqNQx+NMYZ6gIg==} 417 | engines: {node: '>=16.7'} 418 | dependencies: 419 | '@miniflare/shared': 2.5.1 420 | dev: true 421 | 422 | /@miniflare/runner-vm/2.5.1: 423 | resolution: {integrity: sha512-7U7BPgzaikwWkAMonlmyy4lDpW1H7mqHFr7NdK9kA6BbXZ2GY6uro69QsGw0c4Y/vyKBodKiqXAq53iGdM3Kug==} 424 | engines: {node: '>=16.7'} 425 | dependencies: 426 | '@miniflare/shared': 2.5.1 427 | dev: true 428 | 429 | /@miniflare/scheduler/2.5.1: 430 | resolution: {integrity: sha512-ybho5Kg3Cfl4E0JleKAbiv/RTA+/PVqH6Y/PuCH2oowSM7qeAvFkrwiRvxtN7BuAl+5lsGyVxFe4gL+weXohEw==} 431 | engines: {node: '>=16.7'} 432 | dependencies: 433 | '@miniflare/core': 2.5.1 434 | '@miniflare/shared': 2.5.1 435 | cron-schedule: 3.0.6 436 | dev: true 437 | 438 | /@miniflare/shared/2.5.1: 439 | resolution: {integrity: sha512-DObgqbFml3qetIBtZa8fNqkBqUH9XtI6rdrWtTYVrx0rzKsd5PDf6gdMoxy7v1rr9zBAipKJxrcBqlEgjPl53Q==} 440 | engines: {node: '>=16.7'} 441 | dependencies: 442 | ignore: 5.2.0 443 | kleur: 4.1.4 444 | dev: true 445 | 446 | /@miniflare/sites/2.5.1: 447 | resolution: {integrity: sha512-7V/fAzR50LYgMcOfoCaoppqBCjagBpGWFbZgMyJi/Hj4oVlSIzxo+424hzdjitNzikCpv+AryF9tXfy9j6qiOg==} 448 | engines: {node: '>=16.7'} 449 | dependencies: 450 | '@miniflare/kv': 2.5.1 451 | '@miniflare/shared': 2.5.1 452 | '@miniflare/storage-file': 2.5.1 453 | dev: true 454 | 455 | /@miniflare/storage-file/2.5.1: 456 | resolution: {integrity: sha512-o12KFXgc1M0nHD98mrA/IqwBsJ6KYLWH9NaTwqLhxhpGz/KSo5kWb7z/vrz2I/Rk2XR/gHSYQm2XR9XE6IJCdA==} 457 | engines: {node: '>=16.7'} 458 | dependencies: 459 | '@miniflare/shared': 2.5.1 460 | '@miniflare/storage-memory': 2.5.1 461 | dev: true 462 | 463 | /@miniflare/storage-memory/2.5.1: 464 | resolution: {integrity: sha512-LIdBEFcwY7yLCeowO34p5bajRsvU1XuQjXIqcgfiCVt1+qa3D0seELTpW1NSFEJzxulVtu/KsScEug9GipEt7A==} 465 | engines: {node: '>=16.7'} 466 | dependencies: 467 | '@miniflare/shared': 2.5.1 468 | dev: true 469 | 470 | /@miniflare/watcher/2.5.1: 471 | resolution: {integrity: sha512-8oOdgWA7CZ7uIAwbjqSrhDnuQXRJqd9e3yDHsMa91E/jkC/GDmlt5SJh6VEMlNDtBGWd661IpVErZf7injI52w==} 472 | engines: {node: '>=16.7'} 473 | dependencies: 474 | '@miniflare/shared': 2.5.1 475 | dev: true 476 | 477 | /@miniflare/web-sockets/2.5.1: 478 | resolution: {integrity: sha512-GyXHoDAI5LDF87rmD+d0cSoN7Xs2pCYjSyUR6Vf6exkS4CN6F/Rtr8vIM5+om9kRkS6qxAyOYjWeEqBOjLm/og==} 479 | engines: {node: '>=16.7'} 480 | dependencies: 481 | '@miniflare/core': 2.5.1 482 | '@miniflare/shared': 2.5.1 483 | undici: 5.5.1 484 | ws: 8.8.0 485 | transitivePeerDependencies: 486 | - bufferutil 487 | - utf-8-validate 488 | dev: true 489 | 490 | /@nodelib/fs.scandir/2.1.5: 491 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 492 | engines: {node: '>= 8'} 493 | dependencies: 494 | '@nodelib/fs.stat': 2.0.5 495 | run-parallel: 1.2.0 496 | dev: false 497 | 498 | /@nodelib/fs.stat/2.0.5: 499 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 500 | engines: {node: '>= 8'} 501 | dev: false 502 | 503 | /@nodelib/fs.walk/1.2.8: 504 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 505 | engines: {node: '>= 8'} 506 | dependencies: 507 | '@nodelib/fs.scandir': 2.1.5 508 | fastq: 1.13.0 509 | dev: false 510 | 511 | /@trpc/server/10.0.0-alpha.29: 512 | resolution: {integrity: sha512-66OsW+9XOcvbwnbNRVpjaHu25gPlC4J1IZl2Z0uGRAlUH21EXUGNNxBoX61HOCGFxYpRonKeyg4n+pU9nv8WHA==} 513 | dependencies: 514 | tslib: 2.4.0 515 | dev: true 516 | 517 | /@tsconfig/esm/1.0.1: 518 | resolution: {integrity: sha512-7AQo6puqT/DYOmgUT2YZnNHZ9qxciS5Kj2lGSkWLiuUgsFI/E2slBoiEjlJ+OEl88/7OjbUbnaF7Z3NZdopQgA==} 519 | dev: true 520 | 521 | /@types/chai-subset/1.3.3: 522 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 523 | dependencies: 524 | '@types/chai': 4.3.1 525 | dev: true 526 | 527 | /@types/chai/4.3.1: 528 | resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} 529 | dev: true 530 | 531 | /@types/cookie/0.5.1: 532 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 533 | dev: true 534 | 535 | /@types/is-ci/3.0.0: 536 | resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} 537 | dependencies: 538 | ci-info: 3.3.2 539 | dev: false 540 | 541 | /@types/minimist/1.2.2: 542 | resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} 543 | dev: false 544 | 545 | /@types/node/12.20.55: 546 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 547 | dev: false 548 | 549 | /@types/node/17.0.45: 550 | resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} 551 | dev: true 552 | 553 | /@types/normalize-package-data/2.4.1: 554 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 555 | dev: false 556 | 557 | /@types/semver/6.2.3: 558 | resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} 559 | dev: false 560 | 561 | /@types/stack-trace/0.0.29: 562 | resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==} 563 | dev: true 564 | 565 | /ansi-colors/4.1.3: 566 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 567 | engines: {node: '>=6'} 568 | dev: false 569 | 570 | /ansi-regex/5.0.1: 571 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 572 | engines: {node: '>=8'} 573 | dev: false 574 | 575 | /ansi-styles/3.2.1: 576 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 577 | engines: {node: '>=4'} 578 | dependencies: 579 | color-convert: 1.9.3 580 | 581 | /ansi-styles/4.3.0: 582 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 583 | engines: {node: '>=8'} 584 | dependencies: 585 | color-convert: 2.0.1 586 | dev: false 587 | 588 | /argparse/1.0.10: 589 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 590 | dependencies: 591 | sprintf-js: 1.0.3 592 | dev: false 593 | 594 | /array-union/2.1.0: 595 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 596 | engines: {node: '>=8'} 597 | dev: false 598 | 599 | /array.prototype.flat/1.3.0: 600 | resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} 601 | engines: {node: '>= 0.4'} 602 | dependencies: 603 | call-bind: 1.0.2 604 | define-properties: 1.1.4 605 | es-abstract: 1.20.1 606 | es-shim-unscopables: 1.0.0 607 | dev: false 608 | 609 | /arrify/1.0.1: 610 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 611 | engines: {node: '>=0.10.0'} 612 | dev: false 613 | 614 | /assertion-error/1.1.0: 615 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 616 | dev: true 617 | 618 | /balanced-match/1.0.2: 619 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 620 | dev: true 621 | 622 | /better-path-resolve/1.0.0: 623 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 624 | engines: {node: '>=4'} 625 | dependencies: 626 | is-windows: 1.0.2 627 | dev: false 628 | 629 | /blake3-wasm/2.1.5: 630 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 631 | dev: true 632 | 633 | /brace-expansion/1.1.11: 634 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 635 | dependencies: 636 | balanced-match: 1.0.2 637 | concat-map: 0.0.1 638 | dev: true 639 | 640 | /braces/3.0.2: 641 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 642 | engines: {node: '>=8'} 643 | dependencies: 644 | fill-range: 7.0.1 645 | dev: false 646 | 647 | /breakword/1.0.5: 648 | resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} 649 | dependencies: 650 | wcwidth: 1.0.1 651 | dev: false 652 | 653 | /buffer-from/1.1.2: 654 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 655 | dev: true 656 | 657 | /busboy/1.6.0: 658 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 659 | engines: {node: '>=10.16.0'} 660 | dependencies: 661 | streamsearch: 1.1.0 662 | dev: true 663 | 664 | /call-bind/1.0.2: 665 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 666 | dependencies: 667 | function-bind: 1.1.1 668 | get-intrinsic: 1.1.2 669 | 670 | /camelcase-keys/6.2.2: 671 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 672 | engines: {node: '>=8'} 673 | dependencies: 674 | camelcase: 5.3.1 675 | map-obj: 4.3.0 676 | quick-lru: 4.0.1 677 | dev: false 678 | 679 | /camelcase/5.3.1: 680 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 681 | engines: {node: '>=6'} 682 | dev: false 683 | 684 | /chai/4.3.6: 685 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} 686 | engines: {node: '>=4'} 687 | dependencies: 688 | assertion-error: 1.1.0 689 | check-error: 1.0.2 690 | deep-eql: 3.0.1 691 | get-func-name: 2.0.0 692 | loupe: 2.3.4 693 | pathval: 1.1.1 694 | type-detect: 4.0.8 695 | dev: true 696 | 697 | /chalk/2.4.2: 698 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 699 | engines: {node: '>=4'} 700 | dependencies: 701 | ansi-styles: 3.2.1 702 | escape-string-regexp: 1.0.5 703 | supports-color: 5.5.0 704 | 705 | /chalk/4.1.2: 706 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 707 | engines: {node: '>=10'} 708 | dependencies: 709 | ansi-styles: 4.3.0 710 | supports-color: 7.2.0 711 | dev: false 712 | 713 | /chardet/0.7.0: 714 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 715 | dev: false 716 | 717 | /check-error/1.0.2: 718 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 719 | dev: true 720 | 721 | /ci-info/3.3.2: 722 | resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==} 723 | dev: false 724 | 725 | /cliui/6.0.0: 726 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 727 | dependencies: 728 | string-width: 4.2.3 729 | strip-ansi: 6.0.1 730 | wrap-ansi: 6.2.0 731 | dev: false 732 | 733 | /cliui/7.0.4: 734 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 735 | dependencies: 736 | string-width: 4.2.3 737 | strip-ansi: 6.0.1 738 | wrap-ansi: 7.0.0 739 | dev: false 740 | 741 | /clone/1.0.4: 742 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 743 | engines: {node: '>=0.8'} 744 | dev: false 745 | 746 | /color-convert/1.9.3: 747 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 748 | dependencies: 749 | color-name: 1.1.3 750 | 751 | /color-convert/2.0.1: 752 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 753 | engines: {node: '>=7.0.0'} 754 | dependencies: 755 | color-name: 1.1.4 756 | dev: false 757 | 758 | /color-name/1.1.3: 759 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 760 | 761 | /color-name/1.1.4: 762 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 763 | dev: false 764 | 765 | /concat-map/0.0.1: 766 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 767 | dev: true 768 | 769 | /cookie/0.4.2: 770 | resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} 771 | engines: {node: '>= 0.6'} 772 | dev: true 773 | 774 | /cookie/0.5.0: 775 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 776 | engines: {node: '>= 0.6'} 777 | dev: false 778 | 779 | /cron-schedule/3.0.6: 780 | resolution: {integrity: sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==} 781 | dev: true 782 | 783 | /cross-spawn/5.1.0: 784 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 785 | dependencies: 786 | lru-cache: 4.1.5 787 | shebang-command: 1.2.0 788 | which: 1.3.1 789 | dev: false 790 | 791 | /cross-spawn/6.0.5: 792 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 793 | engines: {node: '>=4.8'} 794 | dependencies: 795 | nice-try: 1.0.5 796 | path-key: 2.0.1 797 | semver: 5.7.1 798 | shebang-command: 1.2.0 799 | which: 1.3.1 800 | dev: true 801 | 802 | /csv-generate/3.4.3: 803 | resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} 804 | dev: false 805 | 806 | /csv-parse/4.16.3: 807 | resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} 808 | dev: false 809 | 810 | /csv-stringify/5.6.5: 811 | resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} 812 | dev: false 813 | 814 | /csv/5.5.3: 815 | resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} 816 | engines: {node: '>= 0.1.90'} 817 | dependencies: 818 | csv-generate: 3.4.3 819 | csv-parse: 4.16.3 820 | csv-stringify: 5.6.5 821 | stream-transform: 2.1.3 822 | dev: false 823 | 824 | /dataloader/1.4.0: 825 | resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 826 | dev: true 827 | 828 | /debug/4.3.4: 829 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 830 | engines: {node: '>=6.0'} 831 | peerDependencies: 832 | supports-color: '*' 833 | peerDependenciesMeta: 834 | supports-color: 835 | optional: true 836 | dependencies: 837 | ms: 2.1.2 838 | dev: true 839 | 840 | /decamelize-keys/1.1.0: 841 | resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} 842 | engines: {node: '>=0.10.0'} 843 | dependencies: 844 | decamelize: 1.2.0 845 | map-obj: 1.0.1 846 | dev: false 847 | 848 | /decamelize/1.2.0: 849 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 850 | engines: {node: '>=0.10.0'} 851 | dev: false 852 | 853 | /deep-eql/3.0.1: 854 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} 855 | engines: {node: '>=0.12'} 856 | dependencies: 857 | type-detect: 4.0.8 858 | dev: true 859 | 860 | /defaults/1.0.3: 861 | resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} 862 | dependencies: 863 | clone: 1.0.4 864 | dev: false 865 | 866 | /define-properties/1.1.4: 867 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 868 | engines: {node: '>= 0.4'} 869 | dependencies: 870 | has-property-descriptors: 1.0.0 871 | object-keys: 1.1.1 872 | 873 | /detect-indent/6.1.0: 874 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 875 | engines: {node: '>=8'} 876 | dev: false 877 | 878 | /dir-glob/3.0.1: 879 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 880 | engines: {node: '>=8'} 881 | dependencies: 882 | path-type: 4.0.0 883 | dev: false 884 | 885 | /dotenv/10.0.0: 886 | resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} 887 | engines: {node: '>=10'} 888 | dev: true 889 | 890 | /dotenv/8.6.0: 891 | resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} 892 | engines: {node: '>=10'} 893 | dev: true 894 | 895 | /emoji-regex/8.0.0: 896 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 897 | dev: false 898 | 899 | /enquirer/2.3.6: 900 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 901 | engines: {node: '>=8.6'} 902 | dependencies: 903 | ansi-colors: 4.1.3 904 | dev: false 905 | 906 | /error-ex/1.3.2: 907 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 908 | dependencies: 909 | is-arrayish: 0.2.1 910 | 911 | /es-abstract/1.20.1: 912 | resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} 913 | engines: {node: '>= 0.4'} 914 | dependencies: 915 | call-bind: 1.0.2 916 | es-to-primitive: 1.2.1 917 | function-bind: 1.1.1 918 | function.prototype.name: 1.1.5 919 | get-intrinsic: 1.1.2 920 | get-symbol-description: 1.0.0 921 | has: 1.0.3 922 | has-property-descriptors: 1.0.0 923 | has-symbols: 1.0.3 924 | internal-slot: 1.0.3 925 | is-callable: 1.2.4 926 | is-negative-zero: 2.0.2 927 | is-regex: 1.1.4 928 | is-shared-array-buffer: 1.0.2 929 | is-string: 1.0.7 930 | is-weakref: 1.0.2 931 | object-inspect: 1.12.2 932 | object-keys: 1.1.1 933 | object.assign: 4.1.2 934 | regexp.prototype.flags: 1.4.3 935 | string.prototype.trimend: 1.0.5 936 | string.prototype.trimstart: 1.0.5 937 | unbox-primitive: 1.0.2 938 | 939 | /es-shim-unscopables/1.0.0: 940 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 941 | dependencies: 942 | has: 1.0.3 943 | dev: false 944 | 945 | /es-to-primitive/1.2.1: 946 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 947 | engines: {node: '>= 0.4'} 948 | dependencies: 949 | is-callable: 1.2.4 950 | is-date-object: 1.0.5 951 | is-symbol: 1.0.4 952 | 953 | /esbuild-android-64/0.14.34: 954 | resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==} 955 | engines: {node: '>=12'} 956 | cpu: [x64] 957 | os: [android] 958 | requiresBuild: true 959 | dev: true 960 | optional: true 961 | 962 | /esbuild-android-64/0.14.47: 963 | resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} 964 | engines: {node: '>=12'} 965 | cpu: [x64] 966 | os: [android] 967 | requiresBuild: true 968 | dev: true 969 | optional: true 970 | 971 | /esbuild-android-arm64/0.14.34: 972 | resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==} 973 | engines: {node: '>=12'} 974 | cpu: [arm64] 975 | os: [android] 976 | requiresBuild: true 977 | dev: true 978 | optional: true 979 | 980 | /esbuild-android-arm64/0.14.47: 981 | resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} 982 | engines: {node: '>=12'} 983 | cpu: [arm64] 984 | os: [android] 985 | requiresBuild: true 986 | dev: true 987 | optional: true 988 | 989 | /esbuild-darwin-64/0.14.34: 990 | resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==} 991 | engines: {node: '>=12'} 992 | cpu: [x64] 993 | os: [darwin] 994 | requiresBuild: true 995 | dev: true 996 | optional: true 997 | 998 | /esbuild-darwin-64/0.14.47: 999 | resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} 1000 | engines: {node: '>=12'} 1001 | cpu: [x64] 1002 | os: [darwin] 1003 | requiresBuild: true 1004 | dev: true 1005 | optional: true 1006 | 1007 | /esbuild-darwin-arm64/0.14.34: 1008 | resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==} 1009 | engines: {node: '>=12'} 1010 | cpu: [arm64] 1011 | os: [darwin] 1012 | requiresBuild: true 1013 | dev: true 1014 | optional: true 1015 | 1016 | /esbuild-darwin-arm64/0.14.47: 1017 | resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} 1018 | engines: {node: '>=12'} 1019 | cpu: [arm64] 1020 | os: [darwin] 1021 | requiresBuild: true 1022 | dev: true 1023 | optional: true 1024 | 1025 | /esbuild-freebsd-64/0.14.34: 1026 | resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==} 1027 | engines: {node: '>=12'} 1028 | cpu: [x64] 1029 | os: [freebsd] 1030 | requiresBuild: true 1031 | dev: true 1032 | optional: true 1033 | 1034 | /esbuild-freebsd-64/0.14.47: 1035 | resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} 1036 | engines: {node: '>=12'} 1037 | cpu: [x64] 1038 | os: [freebsd] 1039 | requiresBuild: true 1040 | dev: true 1041 | optional: true 1042 | 1043 | /esbuild-freebsd-arm64/0.14.34: 1044 | resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==} 1045 | engines: {node: '>=12'} 1046 | cpu: [arm64] 1047 | os: [freebsd] 1048 | requiresBuild: true 1049 | dev: true 1050 | optional: true 1051 | 1052 | /esbuild-freebsd-arm64/0.14.47: 1053 | resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} 1054 | engines: {node: '>=12'} 1055 | cpu: [arm64] 1056 | os: [freebsd] 1057 | requiresBuild: true 1058 | dev: true 1059 | optional: true 1060 | 1061 | /esbuild-linux-32/0.14.34: 1062 | resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==} 1063 | engines: {node: '>=12'} 1064 | cpu: [ia32] 1065 | os: [linux] 1066 | requiresBuild: true 1067 | dev: true 1068 | optional: true 1069 | 1070 | /esbuild-linux-32/0.14.47: 1071 | resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} 1072 | engines: {node: '>=12'} 1073 | cpu: [ia32] 1074 | os: [linux] 1075 | requiresBuild: true 1076 | dev: true 1077 | optional: true 1078 | 1079 | /esbuild-linux-64/0.14.34: 1080 | resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==} 1081 | engines: {node: '>=12'} 1082 | cpu: [x64] 1083 | os: [linux] 1084 | requiresBuild: true 1085 | dev: true 1086 | optional: true 1087 | 1088 | /esbuild-linux-64/0.14.47: 1089 | resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} 1090 | engines: {node: '>=12'} 1091 | cpu: [x64] 1092 | os: [linux] 1093 | requiresBuild: true 1094 | dev: true 1095 | optional: true 1096 | 1097 | /esbuild-linux-arm/0.14.34: 1098 | resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==} 1099 | engines: {node: '>=12'} 1100 | cpu: [arm] 1101 | os: [linux] 1102 | requiresBuild: true 1103 | dev: true 1104 | optional: true 1105 | 1106 | /esbuild-linux-arm/0.14.47: 1107 | resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} 1108 | engines: {node: '>=12'} 1109 | cpu: [arm] 1110 | os: [linux] 1111 | requiresBuild: true 1112 | dev: true 1113 | optional: true 1114 | 1115 | /esbuild-linux-arm64/0.14.34: 1116 | resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==} 1117 | engines: {node: '>=12'} 1118 | cpu: [arm64] 1119 | os: [linux] 1120 | requiresBuild: true 1121 | dev: true 1122 | optional: true 1123 | 1124 | /esbuild-linux-arm64/0.14.47: 1125 | resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} 1126 | engines: {node: '>=12'} 1127 | cpu: [arm64] 1128 | os: [linux] 1129 | requiresBuild: true 1130 | dev: true 1131 | optional: true 1132 | 1133 | /esbuild-linux-mips64le/0.14.34: 1134 | resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==} 1135 | engines: {node: '>=12'} 1136 | cpu: [mips64el] 1137 | os: [linux] 1138 | requiresBuild: true 1139 | dev: true 1140 | optional: true 1141 | 1142 | /esbuild-linux-mips64le/0.14.47: 1143 | resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} 1144 | engines: {node: '>=12'} 1145 | cpu: [mips64el] 1146 | os: [linux] 1147 | requiresBuild: true 1148 | dev: true 1149 | optional: true 1150 | 1151 | /esbuild-linux-ppc64le/0.14.34: 1152 | resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==} 1153 | engines: {node: '>=12'} 1154 | cpu: [ppc64] 1155 | os: [linux] 1156 | requiresBuild: true 1157 | dev: true 1158 | optional: true 1159 | 1160 | /esbuild-linux-ppc64le/0.14.47: 1161 | resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} 1162 | engines: {node: '>=12'} 1163 | cpu: [ppc64] 1164 | os: [linux] 1165 | requiresBuild: true 1166 | dev: true 1167 | optional: true 1168 | 1169 | /esbuild-linux-riscv64/0.14.34: 1170 | resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==} 1171 | engines: {node: '>=12'} 1172 | cpu: [riscv64] 1173 | os: [linux] 1174 | requiresBuild: true 1175 | dev: true 1176 | optional: true 1177 | 1178 | /esbuild-linux-riscv64/0.14.47: 1179 | resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} 1180 | engines: {node: '>=12'} 1181 | cpu: [riscv64] 1182 | os: [linux] 1183 | requiresBuild: true 1184 | dev: true 1185 | optional: true 1186 | 1187 | /esbuild-linux-s390x/0.14.34: 1188 | resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==} 1189 | engines: {node: '>=12'} 1190 | cpu: [s390x] 1191 | os: [linux] 1192 | requiresBuild: true 1193 | dev: true 1194 | optional: true 1195 | 1196 | /esbuild-linux-s390x/0.14.47: 1197 | resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} 1198 | engines: {node: '>=12'} 1199 | cpu: [s390x] 1200 | os: [linux] 1201 | requiresBuild: true 1202 | dev: true 1203 | optional: true 1204 | 1205 | /esbuild-netbsd-64/0.14.34: 1206 | resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==} 1207 | engines: {node: '>=12'} 1208 | cpu: [x64] 1209 | os: [netbsd] 1210 | requiresBuild: true 1211 | dev: true 1212 | optional: true 1213 | 1214 | /esbuild-netbsd-64/0.14.47: 1215 | resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} 1216 | engines: {node: '>=12'} 1217 | cpu: [x64] 1218 | os: [netbsd] 1219 | requiresBuild: true 1220 | dev: true 1221 | optional: true 1222 | 1223 | /esbuild-openbsd-64/0.14.34: 1224 | resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==} 1225 | engines: {node: '>=12'} 1226 | cpu: [x64] 1227 | os: [openbsd] 1228 | requiresBuild: true 1229 | dev: true 1230 | optional: true 1231 | 1232 | /esbuild-openbsd-64/0.14.47: 1233 | resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} 1234 | engines: {node: '>=12'} 1235 | cpu: [x64] 1236 | os: [openbsd] 1237 | requiresBuild: true 1238 | dev: true 1239 | optional: true 1240 | 1241 | /esbuild-sunos-64/0.14.34: 1242 | resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==} 1243 | engines: {node: '>=12'} 1244 | cpu: [x64] 1245 | os: [sunos] 1246 | requiresBuild: true 1247 | dev: true 1248 | optional: true 1249 | 1250 | /esbuild-sunos-64/0.14.47: 1251 | resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} 1252 | engines: {node: '>=12'} 1253 | cpu: [x64] 1254 | os: [sunos] 1255 | requiresBuild: true 1256 | dev: true 1257 | optional: true 1258 | 1259 | /esbuild-windows-32/0.14.34: 1260 | resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==} 1261 | engines: {node: '>=12'} 1262 | cpu: [ia32] 1263 | os: [win32] 1264 | requiresBuild: true 1265 | dev: true 1266 | optional: true 1267 | 1268 | /esbuild-windows-32/0.14.47: 1269 | resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} 1270 | engines: {node: '>=12'} 1271 | cpu: [ia32] 1272 | os: [win32] 1273 | requiresBuild: true 1274 | dev: true 1275 | optional: true 1276 | 1277 | /esbuild-windows-64/0.14.34: 1278 | resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==} 1279 | engines: {node: '>=12'} 1280 | cpu: [x64] 1281 | os: [win32] 1282 | requiresBuild: true 1283 | dev: true 1284 | optional: true 1285 | 1286 | /esbuild-windows-64/0.14.47: 1287 | resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} 1288 | engines: {node: '>=12'} 1289 | cpu: [x64] 1290 | os: [win32] 1291 | requiresBuild: true 1292 | dev: true 1293 | optional: true 1294 | 1295 | /esbuild-windows-arm64/0.14.34: 1296 | resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==} 1297 | engines: {node: '>=12'} 1298 | cpu: [arm64] 1299 | os: [win32] 1300 | requiresBuild: true 1301 | dev: true 1302 | optional: true 1303 | 1304 | /esbuild-windows-arm64/0.14.47: 1305 | resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} 1306 | engines: {node: '>=12'} 1307 | cpu: [arm64] 1308 | os: [win32] 1309 | requiresBuild: true 1310 | dev: true 1311 | optional: true 1312 | 1313 | /esbuild/0.14.34: 1314 | resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==} 1315 | engines: {node: '>=12'} 1316 | hasBin: true 1317 | requiresBuild: true 1318 | optionalDependencies: 1319 | esbuild-android-64: 0.14.34 1320 | esbuild-android-arm64: 0.14.34 1321 | esbuild-darwin-64: 0.14.34 1322 | esbuild-darwin-arm64: 0.14.34 1323 | esbuild-freebsd-64: 0.14.34 1324 | esbuild-freebsd-arm64: 0.14.34 1325 | esbuild-linux-32: 0.14.34 1326 | esbuild-linux-64: 0.14.34 1327 | esbuild-linux-arm: 0.14.34 1328 | esbuild-linux-arm64: 0.14.34 1329 | esbuild-linux-mips64le: 0.14.34 1330 | esbuild-linux-ppc64le: 0.14.34 1331 | esbuild-linux-riscv64: 0.14.34 1332 | esbuild-linux-s390x: 0.14.34 1333 | esbuild-netbsd-64: 0.14.34 1334 | esbuild-openbsd-64: 0.14.34 1335 | esbuild-sunos-64: 0.14.34 1336 | esbuild-windows-32: 0.14.34 1337 | esbuild-windows-64: 0.14.34 1338 | esbuild-windows-arm64: 0.14.34 1339 | dev: true 1340 | 1341 | /esbuild/0.14.47: 1342 | resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} 1343 | engines: {node: '>=12'} 1344 | hasBin: true 1345 | requiresBuild: true 1346 | optionalDependencies: 1347 | esbuild-android-64: 0.14.47 1348 | esbuild-android-arm64: 0.14.47 1349 | esbuild-darwin-64: 0.14.47 1350 | esbuild-darwin-arm64: 0.14.47 1351 | esbuild-freebsd-64: 0.14.47 1352 | esbuild-freebsd-arm64: 0.14.47 1353 | esbuild-linux-32: 0.14.47 1354 | esbuild-linux-64: 0.14.47 1355 | esbuild-linux-arm: 0.14.47 1356 | esbuild-linux-arm64: 0.14.47 1357 | esbuild-linux-mips64le: 0.14.47 1358 | esbuild-linux-ppc64le: 0.14.47 1359 | esbuild-linux-riscv64: 0.14.47 1360 | esbuild-linux-s390x: 0.14.47 1361 | esbuild-netbsd-64: 0.14.47 1362 | esbuild-openbsd-64: 0.14.47 1363 | esbuild-sunos-64: 0.14.47 1364 | esbuild-windows-32: 0.14.47 1365 | esbuild-windows-64: 0.14.47 1366 | esbuild-windows-arm64: 0.14.47 1367 | dev: true 1368 | 1369 | /escalade/3.1.1: 1370 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1371 | engines: {node: '>=6'} 1372 | dev: false 1373 | 1374 | /escape-string-regexp/1.0.5: 1375 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1376 | engines: {node: '>=0.8.0'} 1377 | 1378 | /escape-string-regexp/4.0.0: 1379 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1380 | engines: {node: '>=10'} 1381 | dev: true 1382 | 1383 | /esprima/4.0.1: 1384 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1385 | engines: {node: '>=4'} 1386 | hasBin: true 1387 | dev: false 1388 | 1389 | /estree-walker/0.6.1: 1390 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 1391 | dev: true 1392 | 1393 | /extendable-error/0.1.7: 1394 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 1395 | dev: false 1396 | 1397 | /external-editor/3.1.0: 1398 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 1399 | engines: {node: '>=4'} 1400 | dependencies: 1401 | chardet: 0.7.0 1402 | iconv-lite: 0.4.24 1403 | tmp: 0.0.33 1404 | dev: false 1405 | 1406 | /fast-glob/3.2.11: 1407 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 1408 | engines: {node: '>=8.6.0'} 1409 | dependencies: 1410 | '@nodelib/fs.stat': 2.0.5 1411 | '@nodelib/fs.walk': 1.2.8 1412 | glob-parent: 5.1.2 1413 | merge2: 1.4.1 1414 | micromatch: 4.0.5 1415 | dev: false 1416 | 1417 | /fastq/1.13.0: 1418 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1419 | dependencies: 1420 | reusify: 1.0.4 1421 | dev: false 1422 | 1423 | /fill-range/7.0.1: 1424 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1425 | engines: {node: '>=8'} 1426 | dependencies: 1427 | to-regex-range: 5.0.1 1428 | dev: false 1429 | 1430 | /find-up/4.1.0: 1431 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1432 | engines: {node: '>=8'} 1433 | dependencies: 1434 | locate-path: 5.0.0 1435 | path-exists: 4.0.0 1436 | dev: false 1437 | 1438 | /find-up/5.0.0: 1439 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1440 | engines: {node: '>=10'} 1441 | dependencies: 1442 | locate-path: 6.0.0 1443 | path-exists: 4.0.0 1444 | dev: false 1445 | 1446 | /find-yarn-workspace-root2/1.2.16: 1447 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 1448 | dependencies: 1449 | micromatch: 4.0.5 1450 | pkg-dir: 4.2.0 1451 | dev: false 1452 | 1453 | /fs-extra/7.0.1: 1454 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1455 | engines: {node: '>=6 <7 || >=8'} 1456 | dependencies: 1457 | graceful-fs: 4.2.10 1458 | jsonfile: 4.0.0 1459 | universalify: 0.1.2 1460 | dev: false 1461 | 1462 | /fs-extra/8.1.0: 1463 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 1464 | engines: {node: '>=6 <7 || >=8'} 1465 | dependencies: 1466 | graceful-fs: 4.2.10 1467 | jsonfile: 4.0.0 1468 | universalify: 0.1.2 1469 | dev: false 1470 | 1471 | /fsevents/2.3.2: 1472 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1473 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1474 | os: [darwin] 1475 | requiresBuild: true 1476 | dev: true 1477 | optional: true 1478 | 1479 | /function-bind/1.1.1: 1480 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1481 | 1482 | /function.prototype.name/1.1.5: 1483 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1484 | engines: {node: '>= 0.4'} 1485 | dependencies: 1486 | call-bind: 1.0.2 1487 | define-properties: 1.1.4 1488 | es-abstract: 1.20.1 1489 | functions-have-names: 1.2.3 1490 | 1491 | /functions-have-names/1.2.3: 1492 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1493 | 1494 | /get-caller-file/2.0.5: 1495 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1496 | engines: {node: 6.* || 8.* || >= 10.*} 1497 | dev: false 1498 | 1499 | /get-func-name/2.0.0: 1500 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1501 | dev: true 1502 | 1503 | /get-intrinsic/1.1.2: 1504 | resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} 1505 | dependencies: 1506 | function-bind: 1.1.1 1507 | has: 1.0.3 1508 | has-symbols: 1.0.3 1509 | 1510 | /get-symbol-description/1.0.0: 1511 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1512 | engines: {node: '>= 0.4'} 1513 | dependencies: 1514 | call-bind: 1.0.2 1515 | get-intrinsic: 1.1.2 1516 | 1517 | /glob-parent/5.1.2: 1518 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1519 | engines: {node: '>= 6'} 1520 | dependencies: 1521 | is-glob: 4.0.3 1522 | dev: false 1523 | 1524 | /globby/11.1.0: 1525 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1526 | engines: {node: '>=10'} 1527 | dependencies: 1528 | array-union: 2.1.0 1529 | dir-glob: 3.0.1 1530 | fast-glob: 3.2.11 1531 | ignore: 5.2.0 1532 | merge2: 1.4.1 1533 | slash: 3.0.0 1534 | dev: false 1535 | 1536 | /graceful-fs/4.2.10: 1537 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1538 | 1539 | /grapheme-splitter/1.0.4: 1540 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1541 | dev: false 1542 | 1543 | /hard-rejection/2.1.0: 1544 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1545 | engines: {node: '>=6'} 1546 | dev: false 1547 | 1548 | /has-bigints/1.0.2: 1549 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1550 | 1551 | /has-flag/3.0.0: 1552 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1553 | engines: {node: '>=4'} 1554 | 1555 | /has-flag/4.0.0: 1556 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1557 | engines: {node: '>=8'} 1558 | dev: false 1559 | 1560 | /has-property-descriptors/1.0.0: 1561 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1562 | dependencies: 1563 | get-intrinsic: 1.1.2 1564 | 1565 | /has-symbols/1.0.3: 1566 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1567 | engines: {node: '>= 0.4'} 1568 | 1569 | /has-tostringtag/1.0.0: 1570 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1571 | engines: {node: '>= 0.4'} 1572 | dependencies: 1573 | has-symbols: 1.0.3 1574 | 1575 | /has/1.0.3: 1576 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1577 | engines: {node: '>= 0.4.0'} 1578 | dependencies: 1579 | function-bind: 1.1.1 1580 | 1581 | /hosted-git-info/2.8.9: 1582 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1583 | 1584 | /html-rewriter-wasm/0.4.1: 1585 | resolution: {integrity: sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==} 1586 | dev: true 1587 | 1588 | /http-cache-semantics/4.1.0: 1589 | resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} 1590 | dev: true 1591 | 1592 | /human-id/1.0.2: 1593 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1594 | dev: false 1595 | 1596 | /iconv-lite/0.4.24: 1597 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1598 | engines: {node: '>=0.10.0'} 1599 | dependencies: 1600 | safer-buffer: 2.1.2 1601 | dev: false 1602 | 1603 | /ignore/5.2.0: 1604 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 1605 | engines: {node: '>= 4'} 1606 | 1607 | /indent-string/4.0.0: 1608 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1609 | engines: {node: '>=8'} 1610 | dev: false 1611 | 1612 | /internal-slot/1.0.3: 1613 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 1614 | engines: {node: '>= 0.4'} 1615 | dependencies: 1616 | get-intrinsic: 1.1.2 1617 | has: 1.0.3 1618 | side-channel: 1.0.4 1619 | 1620 | /is-arrayish/0.2.1: 1621 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1622 | 1623 | /is-bigint/1.0.4: 1624 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1625 | dependencies: 1626 | has-bigints: 1.0.2 1627 | 1628 | /is-boolean-object/1.1.2: 1629 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1630 | engines: {node: '>= 0.4'} 1631 | dependencies: 1632 | call-bind: 1.0.2 1633 | has-tostringtag: 1.0.0 1634 | 1635 | /is-callable/1.2.4: 1636 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 1637 | engines: {node: '>= 0.4'} 1638 | 1639 | /is-ci/3.0.1: 1640 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 1641 | hasBin: true 1642 | dependencies: 1643 | ci-info: 3.3.2 1644 | dev: false 1645 | 1646 | /is-core-module/2.9.0: 1647 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 1648 | dependencies: 1649 | has: 1.0.3 1650 | 1651 | /is-date-object/1.0.5: 1652 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1653 | engines: {node: '>= 0.4'} 1654 | dependencies: 1655 | has-tostringtag: 1.0.0 1656 | 1657 | /is-extglob/2.1.1: 1658 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1659 | engines: {node: '>=0.10.0'} 1660 | dev: false 1661 | 1662 | /is-fullwidth-code-point/3.0.0: 1663 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1664 | engines: {node: '>=8'} 1665 | dev: false 1666 | 1667 | /is-glob/4.0.3: 1668 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1669 | engines: {node: '>=0.10.0'} 1670 | dependencies: 1671 | is-extglob: 2.1.1 1672 | dev: false 1673 | 1674 | /is-negative-zero/2.0.2: 1675 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1676 | engines: {node: '>= 0.4'} 1677 | 1678 | /is-number-object/1.0.7: 1679 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1680 | engines: {node: '>= 0.4'} 1681 | dependencies: 1682 | has-tostringtag: 1.0.0 1683 | 1684 | /is-number/7.0.0: 1685 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1686 | engines: {node: '>=0.12.0'} 1687 | dev: false 1688 | 1689 | /is-plain-obj/1.1.0: 1690 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1691 | engines: {node: '>=0.10.0'} 1692 | dev: false 1693 | 1694 | /is-regex/1.1.4: 1695 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1696 | engines: {node: '>= 0.4'} 1697 | dependencies: 1698 | call-bind: 1.0.2 1699 | has-tostringtag: 1.0.0 1700 | 1701 | /is-shared-array-buffer/1.0.2: 1702 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1703 | dependencies: 1704 | call-bind: 1.0.2 1705 | 1706 | /is-string/1.0.7: 1707 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1708 | engines: {node: '>= 0.4'} 1709 | dependencies: 1710 | has-tostringtag: 1.0.0 1711 | 1712 | /is-subdir/1.2.0: 1713 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1714 | engines: {node: '>=4'} 1715 | dependencies: 1716 | better-path-resolve: 1.0.0 1717 | dev: false 1718 | 1719 | /is-symbol/1.0.4: 1720 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1721 | engines: {node: '>= 0.4'} 1722 | dependencies: 1723 | has-symbols: 1.0.3 1724 | 1725 | /is-weakref/1.0.2: 1726 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1727 | dependencies: 1728 | call-bind: 1.0.2 1729 | 1730 | /is-windows/1.0.2: 1731 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1732 | engines: {node: '>=0.10.0'} 1733 | dev: false 1734 | 1735 | /isexe/2.0.0: 1736 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1737 | 1738 | /js-tokens/4.0.0: 1739 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1740 | dev: false 1741 | 1742 | /js-yaml/3.14.1: 1743 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1744 | hasBin: true 1745 | dependencies: 1746 | argparse: 1.0.10 1747 | esprima: 4.0.1 1748 | dev: false 1749 | 1750 | /json-parse-better-errors/1.0.2: 1751 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1752 | dev: true 1753 | 1754 | /json-parse-even-better-errors/2.3.1: 1755 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1756 | dev: false 1757 | 1758 | /jsonfile/4.0.0: 1759 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1760 | optionalDependencies: 1761 | graceful-fs: 4.2.10 1762 | dev: false 1763 | 1764 | /kind-of/6.0.3: 1765 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1766 | engines: {node: '>=0.10.0'} 1767 | dev: false 1768 | 1769 | /kleur/4.1.4: 1770 | resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} 1771 | engines: {node: '>=6'} 1772 | 1773 | /lines-and-columns/1.2.4: 1774 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1775 | dev: false 1776 | 1777 | /load-json-file/4.0.0: 1778 | resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} 1779 | engines: {node: '>=4'} 1780 | dependencies: 1781 | graceful-fs: 4.2.10 1782 | parse-json: 4.0.0 1783 | pify: 3.0.0 1784 | strip-bom: 3.0.0 1785 | dev: true 1786 | 1787 | /load-yaml-file/0.2.0: 1788 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 1789 | engines: {node: '>=6'} 1790 | dependencies: 1791 | graceful-fs: 4.2.10 1792 | js-yaml: 3.14.1 1793 | pify: 4.0.1 1794 | strip-bom: 3.0.0 1795 | dev: false 1796 | 1797 | /local-pkg/0.4.1: 1798 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} 1799 | engines: {node: '>=14'} 1800 | dev: true 1801 | 1802 | /locate-path/5.0.0: 1803 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1804 | engines: {node: '>=8'} 1805 | dependencies: 1806 | p-locate: 4.1.0 1807 | dev: false 1808 | 1809 | /locate-path/6.0.0: 1810 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1811 | engines: {node: '>=10'} 1812 | dependencies: 1813 | p-locate: 5.0.0 1814 | dev: false 1815 | 1816 | /lodash.startcase/4.4.0: 1817 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1818 | dev: false 1819 | 1820 | /loupe/2.3.4: 1821 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} 1822 | dependencies: 1823 | get-func-name: 2.0.0 1824 | dev: true 1825 | 1826 | /lru-cache/4.1.5: 1827 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1828 | dependencies: 1829 | pseudomap: 1.0.2 1830 | yallist: 2.1.2 1831 | dev: false 1832 | 1833 | /magic-string/0.25.9: 1834 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1835 | dependencies: 1836 | sourcemap-codec: 1.4.8 1837 | dev: true 1838 | 1839 | /map-obj/1.0.1: 1840 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 1841 | engines: {node: '>=0.10.0'} 1842 | dev: false 1843 | 1844 | /map-obj/4.3.0: 1845 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1846 | engines: {node: '>=8'} 1847 | dev: false 1848 | 1849 | /memorystream/0.3.1: 1850 | resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 1851 | engines: {node: '>= 0.10.0'} 1852 | dev: true 1853 | 1854 | /meow/6.1.1: 1855 | resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} 1856 | engines: {node: '>=8'} 1857 | dependencies: 1858 | '@types/minimist': 1.2.2 1859 | camelcase-keys: 6.2.2 1860 | decamelize-keys: 1.1.0 1861 | hard-rejection: 2.1.0 1862 | minimist-options: 4.1.0 1863 | normalize-package-data: 2.5.0 1864 | read-pkg-up: 7.0.1 1865 | redent: 3.0.0 1866 | trim-newlines: 3.0.1 1867 | type-fest: 0.13.1 1868 | yargs-parser: 18.1.3 1869 | dev: false 1870 | 1871 | /merge2/1.4.1: 1872 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1873 | engines: {node: '>= 8'} 1874 | dev: false 1875 | 1876 | /micromatch/4.0.5: 1877 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1878 | engines: {node: '>=8.6'} 1879 | dependencies: 1880 | braces: 3.0.2 1881 | picomatch: 2.3.1 1882 | dev: false 1883 | 1884 | /mime/3.0.0: 1885 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1886 | engines: {node: '>=10.0.0'} 1887 | hasBin: true 1888 | dev: true 1889 | 1890 | /min-indent/1.0.1: 1891 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1892 | engines: {node: '>=4'} 1893 | dev: false 1894 | 1895 | /miniflare/2.5.1: 1896 | resolution: {integrity: sha512-PT56C/j7U6n7WDxnIUHu0d8EY/gedPRsta2b+LsrIHGZPSkxAcPzf2DgbbPU7obv0C4hT9H0GL1fWpWtr2SbDQ==} 1897 | engines: {node: '>=16.7'} 1898 | hasBin: true 1899 | peerDependencies: 1900 | '@miniflare/storage-redis': 2.5.1 1901 | cron-schedule: ^3.0.4 1902 | ioredis: ^4.27.9 1903 | peerDependenciesMeta: 1904 | '@miniflare/storage-redis': 1905 | optional: true 1906 | cron-schedule: 1907 | optional: true 1908 | ioredis: 1909 | optional: true 1910 | dependencies: 1911 | '@miniflare/cache': 2.5.1 1912 | '@miniflare/cli-parser': 2.5.1 1913 | '@miniflare/core': 2.5.1 1914 | '@miniflare/durable-objects': 2.5.1 1915 | '@miniflare/html-rewriter': 2.5.1 1916 | '@miniflare/http-server': 2.5.1 1917 | '@miniflare/kv': 2.5.1 1918 | '@miniflare/runner-vm': 2.5.1 1919 | '@miniflare/scheduler': 2.5.1 1920 | '@miniflare/shared': 2.5.1 1921 | '@miniflare/sites': 2.5.1 1922 | '@miniflare/storage-file': 2.5.1 1923 | '@miniflare/storage-memory': 2.5.1 1924 | '@miniflare/web-sockets': 2.5.1 1925 | kleur: 4.1.4 1926 | semiver: 1.1.0 1927 | source-map-support: 0.5.21 1928 | undici: 5.5.1 1929 | transitivePeerDependencies: 1930 | - bufferutil 1931 | - utf-8-validate 1932 | dev: true 1933 | 1934 | /minimatch/3.1.2: 1935 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1936 | dependencies: 1937 | brace-expansion: 1.1.11 1938 | dev: true 1939 | 1940 | /minimist-options/4.1.0: 1941 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1942 | engines: {node: '>= 6'} 1943 | dependencies: 1944 | arrify: 1.0.1 1945 | is-plain-obj: 1.1.0 1946 | kind-of: 6.0.3 1947 | dev: false 1948 | 1949 | /mixme/0.5.4: 1950 | resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} 1951 | engines: {node: '>= 8.0.0'} 1952 | dev: false 1953 | 1954 | /ms/2.1.2: 1955 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1956 | dev: true 1957 | 1958 | /mustache/4.2.0: 1959 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 1960 | hasBin: true 1961 | dev: true 1962 | 1963 | /nanoid/3.3.4: 1964 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1965 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1966 | hasBin: true 1967 | dev: true 1968 | 1969 | /nice-try/1.0.5: 1970 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1971 | dev: true 1972 | 1973 | /node-fetch/2.6.7: 1974 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} 1975 | engines: {node: 4.x || >=6.0.0} 1976 | peerDependencies: 1977 | encoding: ^0.1.0 1978 | peerDependenciesMeta: 1979 | encoding: 1980 | optional: true 1981 | dependencies: 1982 | whatwg-url: 5.0.0 1983 | dev: true 1984 | 1985 | /node-forge/1.3.1: 1986 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 1987 | engines: {node: '>= 6.13.0'} 1988 | dev: true 1989 | 1990 | /normalize-package-data/2.5.0: 1991 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1992 | dependencies: 1993 | hosted-git-info: 2.8.9 1994 | resolve: 1.22.1 1995 | semver: 5.7.1 1996 | validate-npm-package-license: 3.0.4 1997 | 1998 | /npm-run-all/4.1.5: 1999 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 2000 | engines: {node: '>= 4'} 2001 | hasBin: true 2002 | dependencies: 2003 | ansi-styles: 3.2.1 2004 | chalk: 2.4.2 2005 | cross-spawn: 6.0.5 2006 | memorystream: 0.3.1 2007 | minimatch: 3.1.2 2008 | pidtree: 0.3.1 2009 | read-pkg: 3.0.0 2010 | shell-quote: 1.7.3 2011 | string.prototype.padend: 3.1.3 2012 | dev: true 2013 | 2014 | /object-inspect/1.12.2: 2015 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 2016 | 2017 | /object-keys/1.1.1: 2018 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2019 | engines: {node: '>= 0.4'} 2020 | 2021 | /object.assign/4.1.2: 2022 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 2023 | engines: {node: '>= 0.4'} 2024 | dependencies: 2025 | call-bind: 1.0.2 2026 | define-properties: 1.1.4 2027 | has-symbols: 1.0.3 2028 | object-keys: 1.1.1 2029 | 2030 | /os-tmpdir/1.0.2: 2031 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 2032 | engines: {node: '>=0.10.0'} 2033 | dev: false 2034 | 2035 | /outdent/0.5.0: 2036 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 2037 | dev: false 2038 | 2039 | /p-filter/2.1.0: 2040 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 2041 | engines: {node: '>=8'} 2042 | dependencies: 2043 | p-map: 2.1.0 2044 | dev: false 2045 | 2046 | /p-limit/2.3.0: 2047 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2048 | engines: {node: '>=6'} 2049 | dependencies: 2050 | p-try: 2.2.0 2051 | dev: false 2052 | 2053 | /p-limit/3.1.0: 2054 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2055 | engines: {node: '>=10'} 2056 | dependencies: 2057 | yocto-queue: 0.1.0 2058 | dev: false 2059 | 2060 | /p-locate/4.1.0: 2061 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2062 | engines: {node: '>=8'} 2063 | dependencies: 2064 | p-limit: 2.3.0 2065 | dev: false 2066 | 2067 | /p-locate/5.0.0: 2068 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2069 | engines: {node: '>=10'} 2070 | dependencies: 2071 | p-limit: 3.1.0 2072 | dev: false 2073 | 2074 | /p-map/2.1.0: 2075 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 2076 | engines: {node: '>=6'} 2077 | dev: false 2078 | 2079 | /p-try/2.2.0: 2080 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2081 | engines: {node: '>=6'} 2082 | dev: false 2083 | 2084 | /parse-json/4.0.0: 2085 | resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 2086 | engines: {node: '>=4'} 2087 | dependencies: 2088 | error-ex: 1.3.2 2089 | json-parse-better-errors: 1.0.2 2090 | dev: true 2091 | 2092 | /parse-json/5.2.0: 2093 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2094 | engines: {node: '>=8'} 2095 | dependencies: 2096 | '@babel/code-frame': 7.16.7 2097 | error-ex: 1.3.2 2098 | json-parse-even-better-errors: 2.3.1 2099 | lines-and-columns: 1.2.4 2100 | dev: false 2101 | 2102 | /path-exists/4.0.0: 2103 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2104 | engines: {node: '>=8'} 2105 | dev: false 2106 | 2107 | /path-key/2.0.1: 2108 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 2109 | engines: {node: '>=4'} 2110 | dev: true 2111 | 2112 | /path-parse/1.0.7: 2113 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2114 | 2115 | /path-to-regexp/6.2.1: 2116 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2117 | dev: true 2118 | 2119 | /path-type/3.0.0: 2120 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 2121 | engines: {node: '>=4'} 2122 | dependencies: 2123 | pify: 3.0.0 2124 | dev: true 2125 | 2126 | /path-type/4.0.0: 2127 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2128 | engines: {node: '>=8'} 2129 | dev: false 2130 | 2131 | /pathval/1.1.1: 2132 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2133 | dev: true 2134 | 2135 | /picocolors/1.0.0: 2136 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2137 | dev: true 2138 | 2139 | /picomatch/2.3.1: 2140 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2141 | engines: {node: '>=8.6'} 2142 | dev: false 2143 | 2144 | /pidtree/0.3.1: 2145 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 2146 | engines: {node: '>=0.10'} 2147 | hasBin: true 2148 | dev: true 2149 | 2150 | /pify/3.0.0: 2151 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} 2152 | engines: {node: '>=4'} 2153 | dev: true 2154 | 2155 | /pify/4.0.1: 2156 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2157 | engines: {node: '>=6'} 2158 | dev: false 2159 | 2160 | /pkg-dir/4.2.0: 2161 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2162 | engines: {node: '>=8'} 2163 | dependencies: 2164 | find-up: 4.1.0 2165 | dev: false 2166 | 2167 | /postcss/8.4.14: 2168 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 2169 | engines: {node: ^10 || ^12 || >=14} 2170 | dependencies: 2171 | nanoid: 3.3.4 2172 | picocolors: 1.0.0 2173 | source-map-js: 1.0.2 2174 | dev: true 2175 | 2176 | /preferred-pm/3.0.3: 2177 | resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} 2178 | engines: {node: '>=10'} 2179 | dependencies: 2180 | find-up: 5.0.0 2181 | find-yarn-workspace-root2: 1.2.16 2182 | path-exists: 4.0.0 2183 | which-pm: 2.0.0 2184 | dev: false 2185 | 2186 | /prettier/1.19.1: 2187 | resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} 2188 | engines: {node: '>=4'} 2189 | hasBin: true 2190 | dev: false 2191 | 2192 | /pseudomap/1.0.2: 2193 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 2194 | dev: false 2195 | 2196 | /queue-microtask/1.2.3: 2197 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2198 | dev: false 2199 | 2200 | /quick-lru/4.0.1: 2201 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 2202 | engines: {node: '>=8'} 2203 | dev: false 2204 | 2205 | /read-pkg-up/7.0.1: 2206 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 2207 | engines: {node: '>=8'} 2208 | dependencies: 2209 | find-up: 4.1.0 2210 | read-pkg: 5.2.0 2211 | type-fest: 0.8.1 2212 | dev: false 2213 | 2214 | /read-pkg/3.0.0: 2215 | resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} 2216 | engines: {node: '>=4'} 2217 | dependencies: 2218 | load-json-file: 4.0.0 2219 | normalize-package-data: 2.5.0 2220 | path-type: 3.0.0 2221 | dev: true 2222 | 2223 | /read-pkg/5.2.0: 2224 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 2225 | engines: {node: '>=8'} 2226 | dependencies: 2227 | '@types/normalize-package-data': 2.4.1 2228 | normalize-package-data: 2.5.0 2229 | parse-json: 5.2.0 2230 | type-fest: 0.6.0 2231 | dev: false 2232 | 2233 | /read-yaml-file/1.1.0: 2234 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 2235 | engines: {node: '>=6'} 2236 | dependencies: 2237 | graceful-fs: 4.2.10 2238 | js-yaml: 3.14.1 2239 | pify: 4.0.1 2240 | strip-bom: 3.0.0 2241 | dev: false 2242 | 2243 | /redent/3.0.0: 2244 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 2245 | engines: {node: '>=8'} 2246 | dependencies: 2247 | indent-string: 4.0.0 2248 | strip-indent: 3.0.0 2249 | dev: false 2250 | 2251 | /regenerator-runtime/0.13.9: 2252 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} 2253 | dev: false 2254 | 2255 | /regexp.prototype.flags/1.4.3: 2256 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2257 | engines: {node: '>= 0.4'} 2258 | dependencies: 2259 | call-bind: 1.0.2 2260 | define-properties: 1.1.4 2261 | functions-have-names: 1.2.3 2262 | 2263 | /require-directory/2.1.1: 2264 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 2265 | engines: {node: '>=0.10.0'} 2266 | dev: false 2267 | 2268 | /require-main-filename/2.0.0: 2269 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 2270 | dev: false 2271 | 2272 | /resolve-from/5.0.0: 2273 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2274 | engines: {node: '>=8'} 2275 | dev: false 2276 | 2277 | /resolve/1.22.1: 2278 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2279 | hasBin: true 2280 | dependencies: 2281 | is-core-module: 2.9.0 2282 | path-parse: 1.0.7 2283 | supports-preserve-symlinks-flag: 1.0.0 2284 | 2285 | /reusify/1.0.4: 2286 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2287 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2288 | dev: false 2289 | 2290 | /rollup-plugin-inject/3.0.2: 2291 | resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 2292 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 2293 | dependencies: 2294 | estree-walker: 0.6.1 2295 | magic-string: 0.25.9 2296 | rollup-pluginutils: 2.8.2 2297 | dev: true 2298 | 2299 | /rollup-plugin-node-polyfills/0.2.1: 2300 | resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 2301 | dependencies: 2302 | rollup-plugin-inject: 3.0.2 2303 | dev: true 2304 | 2305 | /rollup-pluginutils/2.8.2: 2306 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 2307 | dependencies: 2308 | estree-walker: 0.6.1 2309 | dev: true 2310 | 2311 | /rollup/2.75.7: 2312 | resolution: {integrity: sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==} 2313 | engines: {node: '>=10.0.0'} 2314 | hasBin: true 2315 | optionalDependencies: 2316 | fsevents: 2.3.2 2317 | dev: true 2318 | 2319 | /run-parallel/1.2.0: 2320 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2321 | dependencies: 2322 | queue-microtask: 1.2.3 2323 | dev: false 2324 | 2325 | /safer-buffer/2.1.2: 2326 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2327 | dev: false 2328 | 2329 | /selfsigned/2.0.1: 2330 | resolution: {integrity: sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==} 2331 | engines: {node: '>=10'} 2332 | dependencies: 2333 | node-forge: 1.3.1 2334 | dev: true 2335 | 2336 | /semiver/1.1.0: 2337 | resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} 2338 | engines: {node: '>=6'} 2339 | dev: true 2340 | 2341 | /semver/5.7.1: 2342 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2343 | hasBin: true 2344 | 2345 | /set-blocking/2.0.0: 2346 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 2347 | dev: false 2348 | 2349 | /set-cookie-parser/2.5.0: 2350 | resolution: {integrity: sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==} 2351 | dev: true 2352 | 2353 | /shebang-command/1.2.0: 2354 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 2355 | engines: {node: '>=0.10.0'} 2356 | dependencies: 2357 | shebang-regex: 1.0.0 2358 | 2359 | /shebang-regex/1.0.0: 2360 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 2361 | engines: {node: '>=0.10.0'} 2362 | 2363 | /shell-quote/1.7.3: 2364 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} 2365 | dev: true 2366 | 2367 | /side-channel/1.0.4: 2368 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2369 | dependencies: 2370 | call-bind: 1.0.2 2371 | get-intrinsic: 1.1.2 2372 | object-inspect: 1.12.2 2373 | 2374 | /signal-exit/3.0.7: 2375 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2376 | dev: false 2377 | 2378 | /slash/3.0.0: 2379 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2380 | engines: {node: '>=8'} 2381 | dev: false 2382 | 2383 | /smartwrap/2.0.2: 2384 | resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} 2385 | engines: {node: '>=6'} 2386 | hasBin: true 2387 | dependencies: 2388 | array.prototype.flat: 1.3.0 2389 | breakword: 1.0.5 2390 | grapheme-splitter: 1.0.4 2391 | strip-ansi: 6.0.1 2392 | wcwidth: 1.0.1 2393 | yargs: 15.4.1 2394 | dev: false 2395 | 2396 | /source-map-js/1.0.2: 2397 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2398 | engines: {node: '>=0.10.0'} 2399 | dev: true 2400 | 2401 | /source-map-support/0.5.21: 2402 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2403 | dependencies: 2404 | buffer-from: 1.1.2 2405 | source-map: 0.6.1 2406 | dev: true 2407 | 2408 | /source-map/0.6.1: 2409 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2410 | engines: {node: '>=0.10.0'} 2411 | dev: true 2412 | 2413 | /sourcemap-codec/1.4.8: 2414 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2415 | dev: true 2416 | 2417 | /spawndamnit/2.0.0: 2418 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} 2419 | dependencies: 2420 | cross-spawn: 5.1.0 2421 | signal-exit: 3.0.7 2422 | dev: false 2423 | 2424 | /spdx-correct/3.1.1: 2425 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 2426 | dependencies: 2427 | spdx-expression-parse: 3.0.1 2428 | spdx-license-ids: 3.0.11 2429 | 2430 | /spdx-exceptions/2.3.0: 2431 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2432 | 2433 | /spdx-expression-parse/3.0.1: 2434 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2435 | dependencies: 2436 | spdx-exceptions: 2.3.0 2437 | spdx-license-ids: 3.0.11 2438 | 2439 | /spdx-license-ids/3.0.11: 2440 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 2441 | 2442 | /sprintf-js/1.0.3: 2443 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 2444 | dev: false 2445 | 2446 | /stack-trace/0.0.10: 2447 | resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} 2448 | dev: true 2449 | 2450 | /stream-transform/2.1.3: 2451 | resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} 2452 | dependencies: 2453 | mixme: 0.5.4 2454 | dev: false 2455 | 2456 | /streamsearch/1.1.0: 2457 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 2458 | engines: {node: '>=10.0.0'} 2459 | dev: true 2460 | 2461 | /string-width/4.2.3: 2462 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2463 | engines: {node: '>=8'} 2464 | dependencies: 2465 | emoji-regex: 8.0.0 2466 | is-fullwidth-code-point: 3.0.0 2467 | strip-ansi: 6.0.1 2468 | dev: false 2469 | 2470 | /string.prototype.padend/3.1.3: 2471 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 2472 | engines: {node: '>= 0.4'} 2473 | dependencies: 2474 | call-bind: 1.0.2 2475 | define-properties: 1.1.4 2476 | es-abstract: 1.20.1 2477 | dev: true 2478 | 2479 | /string.prototype.trimend/1.0.5: 2480 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} 2481 | dependencies: 2482 | call-bind: 1.0.2 2483 | define-properties: 1.1.4 2484 | es-abstract: 1.20.1 2485 | 2486 | /string.prototype.trimstart/1.0.5: 2487 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} 2488 | dependencies: 2489 | call-bind: 1.0.2 2490 | define-properties: 1.1.4 2491 | es-abstract: 1.20.1 2492 | 2493 | /strip-ansi/6.0.1: 2494 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2495 | engines: {node: '>=8'} 2496 | dependencies: 2497 | ansi-regex: 5.0.1 2498 | dev: false 2499 | 2500 | /strip-bom/3.0.0: 2501 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2502 | engines: {node: '>=4'} 2503 | 2504 | /strip-indent/3.0.0: 2505 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2506 | engines: {node: '>=8'} 2507 | dependencies: 2508 | min-indent: 1.0.1 2509 | dev: false 2510 | 2511 | /supports-color/5.5.0: 2512 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2513 | engines: {node: '>=4'} 2514 | dependencies: 2515 | has-flag: 3.0.0 2516 | 2517 | /supports-color/7.2.0: 2518 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2519 | engines: {node: '>=8'} 2520 | dependencies: 2521 | has-flag: 4.0.0 2522 | dev: false 2523 | 2524 | /supports-preserve-symlinks-flag/1.0.0: 2525 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2526 | engines: {node: '>= 0.4'} 2527 | 2528 | /term-size/2.2.1: 2529 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2530 | engines: {node: '>=8'} 2531 | dev: false 2532 | 2533 | /tinypool/0.1.3: 2534 | resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} 2535 | engines: {node: '>=14.0.0'} 2536 | dev: true 2537 | 2538 | /tinyspy/0.3.3: 2539 | resolution: {integrity: sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==} 2540 | engines: {node: '>=14.0.0'} 2541 | dev: true 2542 | 2543 | /tmp/0.0.33: 2544 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2545 | engines: {node: '>=0.6.0'} 2546 | dependencies: 2547 | os-tmpdir: 1.0.2 2548 | dev: false 2549 | 2550 | /to-regex-range/5.0.1: 2551 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2552 | engines: {node: '>=8.0'} 2553 | dependencies: 2554 | is-number: 7.0.0 2555 | dev: false 2556 | 2557 | /tr46/0.0.3: 2558 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2559 | dev: true 2560 | 2561 | /trim-newlines/3.0.1: 2562 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 2563 | engines: {node: '>=8'} 2564 | dev: false 2565 | 2566 | /tslib/2.4.0: 2567 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 2568 | dev: true 2569 | 2570 | /tty-table/4.1.6: 2571 | resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} 2572 | engines: {node: '>=8.0.0'} 2573 | hasBin: true 2574 | dependencies: 2575 | chalk: 4.1.2 2576 | csv: 5.5.3 2577 | kleur: 4.1.4 2578 | smartwrap: 2.0.2 2579 | strip-ansi: 6.0.1 2580 | wcwidth: 1.0.1 2581 | yargs: 17.5.1 2582 | dev: false 2583 | 2584 | /turbo-android-arm64/1.3.1: 2585 | resolution: {integrity: sha512-JcnZh9tLbZDpKaXaao/s/k4qXt3TbNEc1xEYYXurVWnqiMueGeS7QAtThVB85ZSqzj7djk+ngSrZabPy5RG25Q==} 2586 | cpu: [arm64] 2587 | os: [android] 2588 | requiresBuild: true 2589 | dev: true 2590 | optional: true 2591 | 2592 | /turbo-darwin-64/1.2.16: 2593 | resolution: {integrity: sha512-dyitLQJdH3uLVdlH9jAkP4LqEO/K+wOXjUqOzjTciRLjQPzmsNY60/bmFHODADK4eBBl1nxbtn7tmmoT4vS1qA==} 2594 | cpu: [x64] 2595 | os: [darwin] 2596 | requiresBuild: true 2597 | dev: true 2598 | optional: true 2599 | 2600 | /turbo-darwin-64/1.3.1: 2601 | resolution: {integrity: sha512-TIGDradVFoGck86VIuM38KaDeNxdKaP2ti93UpQeFw26ZhPIeTAa6wUgnz4DQP6bjIvQmXlYJ16ETZb4tFYygg==} 2602 | cpu: [x64] 2603 | os: [darwin] 2604 | requiresBuild: true 2605 | dev: true 2606 | optional: true 2607 | 2608 | /turbo-darwin-arm64/1.2.16: 2609 | resolution: {integrity: sha512-Ex6uM4HU7rGXdhvJMpzNpp6qxglJ98nWeIi5qR/lBXHLjK3UCvSW8BEALArUJYJTXS9FZBq1a5LowFqXYsfDcA==} 2610 | cpu: [arm64] 2611 | os: [darwin] 2612 | requiresBuild: true 2613 | dev: true 2614 | optional: true 2615 | 2616 | /turbo-darwin-arm64/1.3.1: 2617 | resolution: {integrity: sha512-aLBq8KiMMmop7uKBkvDt/y+eER2UzxZyUzh1KWcZ7DZB5tFZnknEUyf2qggY2vd2WcDVfQ1EUjZ0MFxhhVaVzA==} 2618 | cpu: [arm64] 2619 | os: [darwin] 2620 | requiresBuild: true 2621 | dev: true 2622 | optional: true 2623 | 2624 | /turbo-freebsd-64/1.2.16: 2625 | resolution: {integrity: sha512-onRGKMvog8B3XDssSBIAg+FrEq9pcBoAybP7bpi/uYIH1L/WQ7YMmLn88X9JX19ehYuVOVZrjap4jWH2GIkU8A==} 2626 | cpu: [x64] 2627 | os: [freebsd] 2628 | requiresBuild: true 2629 | dev: true 2630 | optional: true 2631 | 2632 | /turbo-freebsd-64/1.3.1: 2633 | resolution: {integrity: sha512-BOr/ifmxjlBeuDkDQLUJtzqzXQ2zPHHcI14U9Ys+z4Mza1uzQn/oSJqQvU5RuyRBVai7noMrpPS7QuKtDz0Cyg==} 2634 | cpu: [x64] 2635 | os: [freebsd] 2636 | requiresBuild: true 2637 | dev: true 2638 | optional: true 2639 | 2640 | /turbo-freebsd-arm64/1.2.16: 2641 | resolution: {integrity: sha512-S0EqPqxwnJuVNNXRgcHB0r8ai8LSrpHdihVJKRM7WYmIR7isccBEf/G9agrt73sCXwjvenxFs4HDR7cSvGt14Q==} 2642 | cpu: [arm64] 2643 | os: [freebsd] 2644 | requiresBuild: true 2645 | dev: true 2646 | optional: true 2647 | 2648 | /turbo-freebsd-arm64/1.3.1: 2649 | resolution: {integrity: sha512-bHPZjK4xnGLz6/oxl5XmWhdYOdtBMSadrGhptWSZ0wBGNn/gQzDTeZAkQeqhh25AD0eM1hzDe8QUz8GlS43lrA==} 2650 | cpu: [arm64] 2651 | os: [freebsd] 2652 | requiresBuild: true 2653 | dev: true 2654 | optional: true 2655 | 2656 | /turbo-linux-32/1.2.16: 2657 | resolution: {integrity: sha512-ecbqmGOxgTWePGrowtwyvZGfvwaLxFWmPK21cU0PS+fzoZBaVmzYmniTdd/2EkGCw7TOPhtiT22v96fWcnRycA==} 2658 | cpu: [ia32] 2659 | os: [linux] 2660 | requiresBuild: true 2661 | dev: true 2662 | optional: true 2663 | 2664 | /turbo-linux-32/1.3.1: 2665 | resolution: {integrity: sha512-c5okimusfvivu9wS8MKSr+rXpQAV+M4TyR9JX+spIK8B1I7AjfECAqiK2D5WFWO1bQ33bUAuxXOEpUuLpgEm+g==} 2666 | cpu: [ia32] 2667 | os: [linux] 2668 | requiresBuild: true 2669 | dev: true 2670 | optional: true 2671 | 2672 | /turbo-linux-64/1.2.16: 2673 | resolution: {integrity: sha512-q6gtdMWCzM0Sktkd73zcaQjNoeM1MjtrbwQBctWN/Sgj0eiPBPnzpIvokvx98x7RLf4qyI99/mlme0Dn5fx21A==} 2674 | cpu: [x64] 2675 | os: [linux] 2676 | requiresBuild: true 2677 | dev: true 2678 | optional: true 2679 | 2680 | /turbo-linux-64/1.3.1: 2681 | resolution: {integrity: sha512-O0pNX+N5gbmRcyZT+jsCPUNCN3DpIZHqNN35j7MT5nr0IkZa83CGbZnrEc+7Qws//jFJ26EngqD/JyRB2E8nwQ==} 2682 | cpu: [x64] 2683 | os: [linux] 2684 | requiresBuild: true 2685 | dev: true 2686 | optional: true 2687 | 2688 | /turbo-linux-arm/1.2.16: 2689 | resolution: {integrity: sha512-du7uvExELNb89V3g7iM0XP21fR1Yl3EoHRcOfQz32oUqnS7idCKvbEowM9LtiluQl1dKcOIJjn1nlvvsqzkhOg==} 2690 | cpu: [arm] 2691 | os: [linux] 2692 | requiresBuild: true 2693 | dev: true 2694 | optional: true 2695 | 2696 | /turbo-linux-arm/1.3.1: 2697 | resolution: {integrity: sha512-f+r6JIwv/7ylxxJtgVi8cVw+6oNoD/r1IMTU6ejH8bfyMZZko4kkNwH9VYribQ44KDkJEgzdltnzFG5f6Hz10g==} 2698 | cpu: [arm] 2699 | os: [linux] 2700 | requiresBuild: true 2701 | dev: true 2702 | optional: true 2703 | 2704 | /turbo-linux-arm64/1.2.16: 2705 | resolution: {integrity: sha512-gUf67tYJ/N09WAZTTmtUWYrqm381tZxiulnRGAIM+iRsaTrweyUKZaYXwJvlPpI/cQOw25wCG9/IyvxLeagL8A==} 2706 | cpu: [arm64] 2707 | os: [linux] 2708 | requiresBuild: true 2709 | dev: true 2710 | optional: true 2711 | 2712 | /turbo-linux-arm64/1.3.1: 2713 | resolution: {integrity: sha512-D6+1MeS/x+/VCCooHPU4NIpB8qI/eW70eMRA79bqTPaxxluP0g2CaxXgucco05P51YtNsSxeVcH7X76iadON6Q==} 2714 | cpu: [arm64] 2715 | os: [linux] 2716 | requiresBuild: true 2717 | dev: true 2718 | optional: true 2719 | 2720 | /turbo-linux-mips64le/1.2.16: 2721 | resolution: {integrity: sha512-U5BM+Ql3z13uRtwMmKH/8eL+9DdTgyijC2gaX4xP0RTlcN7WfAstg8Fg/Tn2Vw9vtpVDdxwpw7dvX4kw2ghhpA==} 2722 | cpu: [mips64el] 2723 | os: [linux] 2724 | requiresBuild: true 2725 | dev: true 2726 | optional: true 2727 | 2728 | /turbo-linux-mips64le/1.3.1: 2729 | resolution: {integrity: sha512-yL64jgwVCziOpBcdpMxIsczkgwwOvmaqKObFKWyCNlk/LOl5NKODLwXEaryLaALtpwUAoS4ltMSI64gKqmLrOA==} 2730 | cpu: [mips64el] 2731 | os: [linux] 2732 | requiresBuild: true 2733 | dev: true 2734 | optional: true 2735 | 2736 | /turbo-linux-ppc64le/1.2.16: 2737 | resolution: {integrity: sha512-HQWSCmVZyc5chw7Ie2ZcfZPfmM06mbEEu0Wl11Y5QWh1ZzhPNQHs/TsF4I9r146wHi62XgcrKFjkw4ARZiWsLA==} 2738 | cpu: [ppc64] 2739 | os: [linux] 2740 | requiresBuild: true 2741 | dev: true 2742 | optional: true 2743 | 2744 | /turbo-linux-ppc64le/1.3.1: 2745 | resolution: {integrity: sha512-tjnM+8RosykS1lBpOPLDXGOz/Po2h796ty17uBd7IFslWPOI16a/akFOFoLH8PCiGGJMe3CYgRhEKn4sPWNxFA==} 2746 | cpu: [ppc64] 2747 | os: [linux] 2748 | requiresBuild: true 2749 | dev: true 2750 | optional: true 2751 | 2752 | /turbo-windows-32/1.2.16: 2753 | resolution: {integrity: sha512-0ZtPz5FK2qZjznMG4vvRyaabrhO8BgbN+tBx1wjXSuoICTAjYi5TwRVVRh59c3x7qQmR21Cv33CrhLBPRfeAlg==} 2754 | cpu: [ia32] 2755 | os: [win32] 2756 | requiresBuild: true 2757 | dev: true 2758 | optional: true 2759 | 2760 | /turbo-windows-32/1.3.1: 2761 | resolution: {integrity: sha512-Snnv+TVigulqwK6guHKndMlrLw88NXj8BtHRGrEksPR0QkyuHlwLf+tHYB4HmvpUl4W9lnXQf4hsljWP64BEdw==} 2762 | cpu: [ia32] 2763 | os: [win32] 2764 | requiresBuild: true 2765 | dev: true 2766 | optional: true 2767 | 2768 | /turbo-windows-64/1.2.16: 2769 | resolution: {integrity: sha512-j8iAIixq/rGfBpHNbYOosxMasZrGuMzLILEuQGDxZgKNpYgobJ15QFHQlGR9sit1b8qPU5zZX4CtByRtkgH1Bw==} 2770 | cpu: [x64] 2771 | os: [win32] 2772 | requiresBuild: true 2773 | dev: true 2774 | optional: true 2775 | 2776 | /turbo-windows-64/1.3.1: 2777 | resolution: {integrity: sha512-gLeohHG07yIhON1Pp0YNE00i/yzip2GFhkA6HdJaK95uE5bKULpqxuO414hOS/WzGwrGVXBKCImfe24XXh5T+Q==} 2778 | cpu: [x64] 2779 | os: [win32] 2780 | requiresBuild: true 2781 | dev: true 2782 | optional: true 2783 | 2784 | /turbo-windows-arm64/1.2.16: 2785 | resolution: {integrity: sha512-4GpcJG3B8R9WDhwfT8fu6ZmOOfseCg6Q1cy/G8/zpJQk769yYcSnD8MgQhYgHB58aVFxZcMxBvLL6UA0UrpgWA==} 2786 | cpu: [arm64] 2787 | os: [win32] 2788 | requiresBuild: true 2789 | dev: true 2790 | optional: true 2791 | 2792 | /turbo-windows-arm64/1.3.1: 2793 | resolution: {integrity: sha512-0MWcHLvYgs/qdcoTFZ55nu8HhrpeiwXEMw9cbNfgqTlzy3OsrAsovYEJFyQ8KSxeploiD+QJlCdvhxx+5C0tlA==} 2794 | cpu: [arm64] 2795 | os: [win32] 2796 | requiresBuild: true 2797 | dev: true 2798 | optional: true 2799 | 2800 | /turbo/1.2.16: 2801 | resolution: {integrity: sha512-PPUa2COKgFkyb6N3uF9AnIY3l9FZkF15QQ3U1K2wpI01D3gyGKQO0Q3DUQ4ipmciP0teBfL7H+l/QTrUA9IVvQ==} 2802 | hasBin: true 2803 | requiresBuild: true 2804 | optionalDependencies: 2805 | turbo-darwin-64: 1.2.16 2806 | turbo-darwin-arm64: 1.2.16 2807 | turbo-freebsd-64: 1.2.16 2808 | turbo-freebsd-arm64: 1.2.16 2809 | turbo-linux-32: 1.2.16 2810 | turbo-linux-64: 1.2.16 2811 | turbo-linux-arm: 1.2.16 2812 | turbo-linux-arm64: 1.2.16 2813 | turbo-linux-mips64le: 1.2.16 2814 | turbo-linux-ppc64le: 1.2.16 2815 | turbo-windows-32: 1.2.16 2816 | turbo-windows-64: 1.2.16 2817 | turbo-windows-arm64: 1.2.16 2818 | dev: true 2819 | 2820 | /turbo/1.3.1: 2821 | resolution: {integrity: sha512-DXckoGKlZgvTn/PrHpBI/57aeXR7tfyPf2dK+4LmBczt24ELA3o6eYHeA7KzfpSYhB2LE9qveYFQ6mJ1OzGjjg==} 2822 | hasBin: true 2823 | requiresBuild: true 2824 | optionalDependencies: 2825 | turbo-android-arm64: 1.3.1 2826 | turbo-darwin-64: 1.3.1 2827 | turbo-darwin-arm64: 1.3.1 2828 | turbo-freebsd-64: 1.3.1 2829 | turbo-freebsd-arm64: 1.3.1 2830 | turbo-linux-32: 1.3.1 2831 | turbo-linux-64: 1.3.1 2832 | turbo-linux-arm: 1.3.1 2833 | turbo-linux-arm64: 1.3.1 2834 | turbo-linux-mips64le: 1.3.1 2835 | turbo-linux-ppc64le: 1.3.1 2836 | turbo-windows-32: 1.3.1 2837 | turbo-windows-64: 1.3.1 2838 | turbo-windows-arm64: 1.3.1 2839 | dev: true 2840 | 2841 | /type-detect/4.0.8: 2842 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 2843 | engines: {node: '>=4'} 2844 | dev: true 2845 | 2846 | /type-fest/0.13.1: 2847 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 2848 | engines: {node: '>=10'} 2849 | dev: false 2850 | 2851 | /type-fest/0.6.0: 2852 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2853 | engines: {node: '>=8'} 2854 | dev: false 2855 | 2856 | /type-fest/0.8.1: 2857 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2858 | engines: {node: '>=8'} 2859 | dev: false 2860 | 2861 | /typescript/4.7.4: 2862 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 2863 | engines: {node: '>=4.2.0'} 2864 | hasBin: true 2865 | dev: true 2866 | 2867 | /unbox-primitive/1.0.2: 2868 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2869 | dependencies: 2870 | call-bind: 1.0.2 2871 | has-bigints: 1.0.2 2872 | has-symbols: 1.0.3 2873 | which-boxed-primitive: 1.0.2 2874 | 2875 | /undici/5.5.1: 2876 | resolution: {integrity: sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==} 2877 | engines: {node: '>=12.18'} 2878 | dev: true 2879 | 2880 | /universalify/0.1.2: 2881 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2882 | engines: {node: '>= 4.0.0'} 2883 | dev: false 2884 | 2885 | /urlpattern-polyfill/4.0.3: 2886 | resolution: {integrity: sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==} 2887 | dev: true 2888 | 2889 | /validate-npm-package-license/3.0.4: 2890 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2891 | dependencies: 2892 | spdx-correct: 3.1.1 2893 | spdx-expression-parse: 3.0.1 2894 | 2895 | /vite/2.9.12: 2896 | resolution: {integrity: sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==} 2897 | engines: {node: '>=12.2.0'} 2898 | hasBin: true 2899 | peerDependencies: 2900 | less: '*' 2901 | sass: '*' 2902 | stylus: '*' 2903 | peerDependenciesMeta: 2904 | less: 2905 | optional: true 2906 | sass: 2907 | optional: true 2908 | stylus: 2909 | optional: true 2910 | dependencies: 2911 | esbuild: 0.14.47 2912 | postcss: 8.4.14 2913 | resolve: 1.22.1 2914 | rollup: 2.75.7 2915 | optionalDependencies: 2916 | fsevents: 2.3.2 2917 | dev: true 2918 | 2919 | /vitest/0.13.1: 2920 | resolution: {integrity: sha512-CfSBf7YFw/i8HumSUQRtZKs0aV91DC9WU8nAgIJAlawKHaFuPHQohDwOTPIFgrxySiuFYUa0Yohf9gDFfBwjxA==} 2921 | engines: {node: '>=v14.16.0'} 2922 | hasBin: true 2923 | peerDependencies: 2924 | '@vitest/ui': '*' 2925 | c8: '*' 2926 | happy-dom: '*' 2927 | jsdom: '*' 2928 | peerDependenciesMeta: 2929 | '@vitest/ui': 2930 | optional: true 2931 | c8: 2932 | optional: true 2933 | happy-dom: 2934 | optional: true 2935 | jsdom: 2936 | optional: true 2937 | dependencies: 2938 | '@types/chai': 4.3.1 2939 | '@types/chai-subset': 1.3.3 2940 | chai: 4.3.6 2941 | debug: 4.3.4 2942 | local-pkg: 0.4.1 2943 | tinypool: 0.1.3 2944 | tinyspy: 0.3.3 2945 | vite: 2.9.12 2946 | transitivePeerDependencies: 2947 | - less 2948 | - sass 2949 | - stylus 2950 | - supports-color 2951 | dev: true 2952 | 2953 | /wcwidth/1.0.1: 2954 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 2955 | dependencies: 2956 | defaults: 1.0.3 2957 | dev: false 2958 | 2959 | /webidl-conversions/3.0.1: 2960 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2961 | dev: true 2962 | 2963 | /whatwg-url/5.0.0: 2964 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2965 | dependencies: 2966 | tr46: 0.0.3 2967 | webidl-conversions: 3.0.1 2968 | dev: true 2969 | 2970 | /which-boxed-primitive/1.0.2: 2971 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2972 | dependencies: 2973 | is-bigint: 1.0.4 2974 | is-boolean-object: 1.1.2 2975 | is-number-object: 1.0.7 2976 | is-string: 1.0.7 2977 | is-symbol: 1.0.4 2978 | 2979 | /which-module/2.0.0: 2980 | resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} 2981 | dev: false 2982 | 2983 | /which-pm/2.0.0: 2984 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 2985 | engines: {node: '>=8.15'} 2986 | dependencies: 2987 | load-yaml-file: 0.2.0 2988 | path-exists: 4.0.0 2989 | dev: false 2990 | 2991 | /which/1.3.1: 2992 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2993 | hasBin: true 2994 | dependencies: 2995 | isexe: 2.0.0 2996 | 2997 | /wrangler/2.0.15: 2998 | resolution: {integrity: sha512-iBigg/qR1U74wJSR81njVNG69h/tcAGxXoBS1iKeLu1WIhTR/jfBbZdXWcspgkFaex4J6roJnhbFNy7Ob7caUA==} 2999 | engines: {node: '>=16.7.0'} 3000 | hasBin: true 3001 | dependencies: 3002 | '@cloudflare/kv-asset-handler': 0.2.0 3003 | '@esbuild-plugins/node-globals-polyfill': 0.1.1_esbuild@0.14.34 3004 | '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.14.34 3005 | blake3-wasm: 2.1.5 3006 | esbuild: 0.14.34 3007 | miniflare: 2.5.1 3008 | nanoid: 3.3.4 3009 | path-to-regexp: 6.2.1 3010 | selfsigned: 2.0.1 3011 | semiver: 1.1.0 3012 | xxhash-wasm: 1.0.1 3013 | optionalDependencies: 3014 | fsevents: 2.3.2 3015 | transitivePeerDependencies: 3016 | - '@miniflare/storage-redis' 3017 | - bufferutil 3018 | - cron-schedule 3019 | - ioredis 3020 | - utf-8-validate 3021 | dev: true 3022 | 3023 | /wrap-ansi/6.2.0: 3024 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 3025 | engines: {node: '>=8'} 3026 | dependencies: 3027 | ansi-styles: 4.3.0 3028 | string-width: 4.2.3 3029 | strip-ansi: 6.0.1 3030 | dev: false 3031 | 3032 | /wrap-ansi/7.0.0: 3033 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3034 | engines: {node: '>=10'} 3035 | dependencies: 3036 | ansi-styles: 4.3.0 3037 | string-width: 4.2.3 3038 | strip-ansi: 6.0.1 3039 | dev: false 3040 | 3041 | /ws/8.8.0: 3042 | resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} 3043 | engines: {node: '>=10.0.0'} 3044 | peerDependencies: 3045 | bufferutil: ^4.0.1 3046 | utf-8-validate: ^5.0.2 3047 | peerDependenciesMeta: 3048 | bufferutil: 3049 | optional: true 3050 | utf-8-validate: 3051 | optional: true 3052 | dev: true 3053 | 3054 | /xxhash-wasm/1.0.1: 3055 | resolution: {integrity: sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==} 3056 | dev: true 3057 | 3058 | /y18n/4.0.3: 3059 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 3060 | dev: false 3061 | 3062 | /y18n/5.0.8: 3063 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3064 | engines: {node: '>=10'} 3065 | dev: false 3066 | 3067 | /yallist/2.1.2: 3068 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 3069 | dev: false 3070 | 3071 | /yargs-parser/18.1.3: 3072 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 3073 | engines: {node: '>=6'} 3074 | dependencies: 3075 | camelcase: 5.3.1 3076 | decamelize: 1.2.0 3077 | dev: false 3078 | 3079 | /yargs-parser/21.0.1: 3080 | resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} 3081 | engines: {node: '>=12'} 3082 | dev: false 3083 | 3084 | /yargs/15.4.1: 3085 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 3086 | engines: {node: '>=8'} 3087 | dependencies: 3088 | cliui: 6.0.0 3089 | decamelize: 1.2.0 3090 | find-up: 4.1.0 3091 | get-caller-file: 2.0.5 3092 | require-directory: 2.1.1 3093 | require-main-filename: 2.0.0 3094 | set-blocking: 2.0.0 3095 | string-width: 4.2.3 3096 | which-module: 2.0.0 3097 | y18n: 4.0.3 3098 | yargs-parser: 18.1.3 3099 | dev: false 3100 | 3101 | /yargs/17.5.1: 3102 | resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} 3103 | engines: {node: '>=12'} 3104 | dependencies: 3105 | cliui: 7.0.4 3106 | escalade: 3.1.1 3107 | get-caller-file: 2.0.5 3108 | require-directory: 2.1.1 3109 | string-width: 4.2.3 3110 | y18n: 5.0.8 3111 | yargs-parser: 21.0.1 3112 | dev: false 3113 | 3114 | /yocto-queue/0.1.0: 3115 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3116 | engines: {node: '>=10'} 3117 | dev: false 3118 | 3119 | /youch/2.2.2: 3120 | resolution: {integrity: sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==} 3121 | dependencies: 3122 | '@types/stack-trace': 0.0.29 3123 | cookie: 0.4.2 3124 | mustache: 4.2.0 3125 | stack-trace: 0.0.10 3126 | dev: true 3127 | 3128 | /zod/3.17.3: 3129 | resolution: {integrity: sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg==} 3130 | dev: false 3131 | --------------------------------------------------------------------------------