├── .github └── images │ ├── cf-access-app.png │ └── worker-example-app.png ├── .gitignore ├── .prettierrc ├── README.md ├── build.js ├── config.yml ├── package.json ├── rollup.config.js ├── src ├── main.ts ├── oidc-do.ts ├── types.ts └── utils.js ├── tsconfig.json ├── wrangler.toml ├── yarn-error.log └── yarn.lock /.github/images/cf-access-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eidam/cf-access-workers-oidc/9ad454c76375c5869a55bff5769a5480abe7bf3a/.github/images/cf-access-app.png -------------------------------------------------------------------------------- /.github/images/worker-example-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eidam/cf-access-workers-oidc/9ad454c76375c5869a55bff5769a5480abe7bf3a/.github/images/worker-example-app.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "trailingComma": "all", 5 | "tabWidth": 2, 6 | "printWidth": 80 7 | } 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cloudflare Access+Workers OIDC provider 2 | 3 | Almost stateless OpenID Connect provider completely running on top of Cloudflare for Teams (Access) and Cloudflare Developers platform (Workers, Durable Objects) 4 | 5 | ## Why its awesome 6 | 7 | - OIDC private key is created on-demand and persisted only in Durable Object memory. The private key automatically rotates with Durable Object scale up/down events. 8 | - Only OIDC public keys (jwks) are persisted in Durable Object storage for signature verification purposes. Public keys are automatically cleaned up using CRON Triggers once they are no longer needed. 9 | - Cloudflare Access API is used to fetch and filter user's Access groups, then passed within the ID token as group claims. Applications can scope user permissions based on their groups. 10 | 11 | There are some example applications using this OIDC provider, feel free to try them out! 12 | 13 | - https://vault.eidam.dev/ui/vault/auth?with=oidc 14 | - or with Vault CLI `vault login -method=oidc -address=https://vault.eidam.dev` 15 | - https://workers-oidc-example.eidam.workers.dev 16 | 17 | ![Worker example app](.github/images/worker-example-app.png) 18 | 19 | ## Deployment 20 | 21 | ### Prerequisites 22 | 23 | - Cloudflare account with Workers Paid plan (becuase of Durable Objects) and enabled Cloudflare for Teams 24 | - Wrangler CLI installed 25 | 26 | ### Cloudflare Access 27 | 28 | Cloudflare Access application needs to be deployed to `/authorize` endpoints _(other endpoints are public, 3rd party applications need to be able to fetch JWK keys in order to verify JWTs)_. 29 | 30 | ![Cloudflare Access Application](.github/images/cf-access-app.png) 31 | 32 | ### Config file 33 | 34 | The only file you need to edit in order to deploy your own OIDC provider is [config.yml](./config.xml) 35 | 36 | Following configuration is used and deployed to https://oidc.eidam.dev 37 | 38 | ```yaml 39 | cf_account_id: fbbebdb1eed350f2a05f517e1d80915f # Cloudflare Account ID 40 | cf_access_team: eidam # Cloudflare for Teams name 41 | cf_access_aud: d27389ecd9bdc9c651bdadea01b6d9f835269f94fa3be1a9f9a4a5c755a1a0f9 # Cloudflare Access application AUD 42 | 43 | jwt_ttl: 600 # TTL of the generated JWT tokens, in seconds 44 | 45 | clients: 46 | - name: 'Workers oidc example' 47 | client_id: b78f6b19-50ca-4bab-85bf-93e6c51ff8fb # should not be guessable, e.g. you can use uuidv4 from https://uuid.rocks/plain 48 | client_secret_key: SECRET_WORKERS_OIDC_EXAMPLE # should be set with 'wragler secret put SECRET_SOMETHING_SOMETHING' (could be also uuid) 49 | redirect_uris: 50 | - https://workers-oidc-example.eidam.workers.dev/auth 51 | cors_origins: 52 | - https://workers-oidc-example.eidam.workers.dev 53 | 54 | - name: 'HashiCorp Vault' 55 | client_id: 3006081d-4f08-47b3-a9fb-23707dcae95b # should not be guessable, e.g. you can use uuidv4 from https://uuid.rocks/plain 56 | client_secret_key: SECRET_VAULT # should be set with 'wragler secret put SECRET_VAULT' (could be also uuid) 57 | redirect_uris: 58 | - https://vault.eidam.dev/ui/vault/auth/oidc/oidc/callback 59 | - http://localhost:8250/oidc/callback 60 | - http://127.0.0.1:8250/oidc/callback 61 | ``` 62 | 63 | ### Build & Deploy 64 | 65 | - `export CF_ACCOUNT_ID=` (Cloudflare Account ID to deploy OIDC provider to) 66 | - `export CF_API_TOKEN=` (Cloudflare API Token with Workers permissions) 67 | - `wrangler secret put CF_SECRET_API_TOKEN` (Cloudflare API Token with Account.Teams read-only permissions, used to fetch user's Access groups) 68 | - `yarn` 69 | - `wrangler publish` 70 | 71 | ### Worker routes & endpoints 72 | 73 | The Worker is not deployed to any domain by default, feel free to configure [wrangler.toml](wrangler.toml) to expose it on one of your domains _(or use the Workers UI)_. 74 | 75 | ### Profit 76 | 77 | Once deployed your OIDC provider is up and ready, with following endpoints are available 78 | 79 | - [/.well-known/openid-configuration](https://oidc.eidam.dev/.well-known/openid-configuration) - OIDC configuration discovery 80 | - [/.well-known/jwks.json](https://oidc.eidam.dev/.well-known/jwks.json) - public endpoint with public keys used to verify JWTs 81 | - [/authorize](https://oidc.eidam.dev/authorize) - the only endpoint behind Cloudflare Access, used to authorize the user and initialize the OIDC auth flow 82 | - [/token](https://oidc.eidam.dev/token) 83 | - [/userinfo](https://oidc.eidam.dev/userinfo) 84 | -------------------------------------------------------------------------------- /build.js: -------------------------------------------------------------------------------- 1 | const esbuild = require('esbuild') 2 | const { yamlPlugin } = require('esbuild-plugin-yaml') 3 | 4 | esbuild 5 | .build({ 6 | entryPoints: ['./src/main.ts'], 7 | bundle: true, 8 | format: 'esm', 9 | outfile: './dist/main.mjs', 10 | plugins: [yamlPlugin()], 11 | }) 12 | .catch(() => process.exit(1)) 13 | -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- 1 | cf_account_id: fbbebdb1eed350f2a05f517e1d80915f # Cloudflare Account ID 2 | cf_access_team: eidam # Cloudflare for Teams name 3 | cf_access_aud: d27389ecd9bdc9c651bdadea01b6d9f835269f94fa3be1a9f9a4a5c755a1a0f9 4 | 5 | jwt_ttl: 600 # TTL of the generated JWT tokens, in seconds 6 | 7 | clients: 8 | - name: "Workers oidc example" 9 | client_id: b78f6b19-50ca-4bab-85bf-93e6c51ff8fb # should not be guessable, you can get for example uuidv4 from https://uuid.rocks/plain 10 | client_secret_key: SECRET_WORKERS_OIDC_EXAMPLE # should be set with 'wragler secret put SECRET_SOMETHING_SOMETHING' (could be also uuid) 11 | redirect_uris: 12 | - https://workers-oidc-example.eidam.workers.dev/auth 13 | cors_origins: 14 | - https://workers-oidc-example.eidam.workers.dev 15 | 16 | - name: "HashiCorp Vault" 17 | client_id: 96c02d1c-af05-482c-a9c9-2eec5ee30cf1 # should not be guessable, you can get for example uuidv4 from https://uuid.rocks/plain 18 | client_secret_key: SECRET_VAULT # should be set with 'wragler secret put SECRET_VAULT' (could be also uuid) 19 | redirect_uris: 20 | - https://vault.eidam.dev/ui/vault/auth/oidc/oidc/callback 21 | - http://localhost:8250/oidc/callback 22 | - http://127.0.0.1:8250/oidc/callback 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "access-workers-oidc", 3 | "author": "Adam Janis ", 4 | "version": "1.0.0", 5 | "private": true, 6 | "module": "./dist/main.mjs", 7 | "scripts": { 8 | "build": "npx tsc && node build.js", 9 | "dev": "miniflare --modules --watch", 10 | "deploy": "wrangler publish", 11 | "test": "echo \"Error: no test specified\" && exit 1", 12 | "format": "prettier --write '**/*.{js,mjs,css,json,md}'" 13 | }, 14 | "license": "MIT", 15 | "devDependencies": { 16 | "@cloudflare/workers-types": "^2.2.2", 17 | "@rollup/plugin-alias": "^3.1.5", 18 | "@rollup/plugin-commonjs": "^17.0.0", 19 | "@rollup/plugin-node-resolve": "^11.1.0", 20 | "@rollup/plugin-typescript": "^8.2.5", 21 | "esbuild": "^0.13.3", 22 | "esbuild-plugin-yaml": "^0.0.1", 23 | "prettier": "^1.19.1", 24 | "rollup": "^2.36.1", 25 | "rollup-plugin-yaml": "^2.0.0", 26 | "typescript": "^4.4.3" 27 | }, 28 | "dependencies": { 29 | "itty-router": "^2.1.9", 30 | "jwt-decode": "^3.1.2", 31 | "miniflare": "^1.3.3", 32 | "rfc4648": "^1.5.0", 33 | "uuid": "^8.3.2", 34 | "worktop": "^0.7.3" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | // plugin-node-resolve and plugin-commonjs are required for a rollup bundled project 2 | // to resolve dependencies from node_modules. See the documentation for these plugins 3 | // for more details. 4 | import { nodeResolve } from '@rollup/plugin-node-resolve' 5 | import commonjs from '@rollup/plugin-commonjs' 6 | import yaml from 'rollup-plugin-yaml' 7 | 8 | export default { 9 | input: 'src/main.mjs', 10 | output: { 11 | exports: 'named', 12 | format: 'es', 13 | file: 'dist/main.mjs', 14 | sourcemap: false, 15 | }, 16 | plugins: [yaml(), commonjs(), nodeResolve({ browser: true })], 17 | } 18 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'itty-router' 2 | import { 3 | getAllowedOrigin, 4 | getClientConfig, 5 | getClientSecret, 6 | getCloudflareAccessGroups, 7 | getCloudflareAccessIdentity, 8 | getCorsHeaders, 9 | getDoStub, 10 | getIssuer, 11 | getResponse, 12 | verifyCloudflareAccessJwt, 13 | } from './utils' 14 | export { OpenIDConnectDurableObject } from './oidc-do' 15 | 16 | const router = Router() 17 | router.get('/.well-known/openid-configuration', (req, env) => 18 | handleOIDConfig(req, env), 19 | ) 20 | router.get('/.well-known/jwks.json', (req, env) => handleGetJwks(req, env)) 21 | router.get('/authorize', (req, env) => handleAuthorize(req, env)) 22 | router.post('/token', (req, env) => handleToken(req, env)) 23 | router.get('/userinfo', (req, env) => handleUserInfo(req, env)) 24 | router.post('/userinfo', (req, env) => handleUserInfo(req, env)) 25 | router.options('*', (req, env) => handleOptions(req, env)) 26 | router.all('*', (req, env) => getResponse({ err: 'Bad request' }, 400)) 27 | 28 | export default { 29 | async fetch(request, env) { 30 | try { 31 | return await handleRequest(request, env) 32 | } catch (e) { 33 | return new Response(e.message) 34 | } 35 | }, 36 | 37 | async scheduled(controller, env, ctx) { 38 | const stub = getDoStub(env) 39 | 40 | ctx.waitUntil( 41 | stub.fetch('/jwks', { 42 | method: 'PATCH', 43 | }), 44 | ) 45 | }, 46 | } 47 | 48 | async function handleRequest(req, env) { 49 | return router.handle(req, env) 50 | } 51 | 52 | async function handleOIDConfig(req, env) { 53 | const corsHeaders = getCorsHeaders(getAllowedOrigin(req, '*')) 54 | const issuer = getIssuer(req) 55 | 56 | return getResponse( 57 | { 58 | issuer: `${issuer}`, 59 | authorization_endpoint: `${issuer}/authorize`, 60 | token_endpoint: `${issuer}/token`, 61 | userinfo_endpoint: `${issuer}/userinfo`, 62 | jwks_uri: `${issuer}/.well-known/jwks.json`, 63 | response_types_supported: ['id_token', 'code', 'code id_token'], 64 | id_token_signing_alg_values_supported: ['RS256'], 65 | token_endpoint_auth_methods_supported: [ 66 | 'client_secret_post', 67 | //"client_secret_basic" 68 | ], 69 | claims_supported: [ 70 | 'aud', 71 | 'email', 72 | 'exp', 73 | 'iat', 74 | 'nbf', 75 | 'iss', 76 | 'name', 77 | 'sub', 78 | 'country', 79 | ], 80 | grant_types_supported: ['authorization_code'], 81 | }, 82 | 200, 83 | corsHeaders, 84 | ) 85 | } 86 | 87 | async function handleUserInfo(req, env) { 88 | const authorization = req.headers.get('Authorization') 89 | const corsHeaders = getCorsHeaders(getAllowedOrigin(req, '*'), [ 90 | 'authorization', 91 | ]) 92 | 93 | if (!authorization || !authorization.startsWith('Bearer ')) 94 | return getResponse({ err: 'Missing Bearer token' }, 400, corsHeaders) 95 | const access_token = authorization.substring(7, authorization.length) 96 | 97 | const identity = await getCloudflareAccessIdentity(access_token) 98 | 99 | if (identity.err) { 100 | return getResponse(identity.err, 401, corsHeaders) 101 | } 102 | 103 | const userinfo = { 104 | sub: identity.user_uuid, 105 | name: identity.name, 106 | email: identity.email, 107 | } 108 | 109 | return getResponse(userinfo, 200, corsHeaders) 110 | } 111 | 112 | async function handleToken(req, env) { 113 | const body = await req.text() 114 | let data 115 | 116 | switch (req.headers.get('content-type')) { 117 | case 'application/json': 118 | data = JSON.parse(body) 119 | break 120 | case 'application/x-www-form-urlencoded': 121 | data = Object.fromEntries(new URLSearchParams(body)) 122 | break 123 | default: 124 | data = Object.fromEntries(new URLSearchParams(body)) 125 | } 126 | 127 | const { grant_type, client_id, client_secret, redirect_uri, code } = data 128 | const corsHeaders = getCorsHeaders(getAllowedOrigin(req, client_id)) 129 | const clientConfig = getClientConfig(client_id) 130 | 131 | // Authorization request validation 132 | if (!client_id || !code || !grant_type) 133 | return getResponse({ err: 'Missing client_id or code or grant_type' }, 400) 134 | if (!clientConfig) 135 | return getResponse( 136 | { err: 'Client configuration not found' }, 137 | 404, 138 | corsHeaders, 139 | ) 140 | if (!clientConfig?.redirect_uris.includes(redirect_uri)) 141 | return getResponse( 142 | { err: 'Redirect URIs does not match' }, 143 | 400, 144 | corsHeaders, 145 | ) 146 | if ( 147 | !client_secret || 148 | client_secret !== getClientSecret(clientConfig.client_secret_key, env) 149 | ) 150 | return getResponse({ err: 'Wrong client_secret' }, 400, corsHeaders) 151 | 152 | // Exchange code for id_token and access code 153 | const stub = getDoStub(env) 154 | const res = await stub.fetch(`/exchange/${code}`) 155 | return getResponse(await res.text(), res.status, corsHeaders) 156 | } 157 | 158 | async function handleAuthorize(req, env) { 159 | const access_jwt = req.headers.get('cf-access-jwt-assertion') 160 | const { 161 | client_id, 162 | redirect_uri, 163 | response_type, 164 | state, 165 | nonce, 166 | justGiveJwt, 167 | } = req.query 168 | const clientConfig = getClientConfig(client_id) 169 | 170 | // Authorization request validation 171 | if (!client_id || !response_type) 172 | return getResponse( 173 | { err: 'Missing client_id or response_type or scope' }, 174 | 400, 175 | ) 176 | if (!clientConfig) 177 | return getResponse({ err: 'Client configuration not found' }, 404) 178 | if (!clientConfig?.redirect_uris.includes(redirect_uri)) 179 | return getResponse({ err: 'Redirect URIs does not match' }, 400) 180 | 181 | // Validate Cloudflare Access JWT token and return decoded data 182 | const result = await verifyCloudflareAccessJwt(access_jwt, env) 183 | if (!result.success) { 184 | return getResponse({ error: result.error }, 400) 185 | } 186 | 187 | // Get issuer 188 | const issuer = getIssuer(req) 189 | // Fetch Cloudflare API and get Cloudflare Access Groups for user email 190 | const groups = await getCloudflareAccessGroups(result.payload.email, env) 191 | // Fetch Cloudflare Identity 192 | const identity = await getCloudflareAccessIdentity(access_jwt) 193 | // Construct new JWT payload 194 | const payload = { 195 | iss: issuer, 196 | aud: client_id, 197 | azp: client_id, 198 | name: identity.name, 199 | email: result.payload.email, 200 | sub: result.payload.sub, 201 | country: result.payload.country, 202 | groups, 203 | nonce, 204 | } 205 | 206 | // Pass the payload to Durable Object and get signed JWT token back 207 | // Also generate exchange code in case of 'code' OIDC authorization flow 208 | const stub = getDoStub(env) 209 | const idTokenRes = await stub.fetch('/sign', { 210 | method: 'POST', 211 | body: JSON.stringify({ 212 | payload, 213 | access_jwt, 214 | generate_exchange_code: response_type.includes('code'), 215 | }), 216 | }) 217 | const { id_token, code } = await idTokenRes.json() 218 | 219 | // Prepare the redirect query 220 | const redirectSearchParams = new URLSearchParams() 221 | if (response_type.includes('code')) redirectSearchParams.set('code', code) 222 | if (response_type.includes('id_token')) 223 | redirectSearchParams.set('id_token', id_token) 224 | if (state) redirectSearchParams.set('state', state) 225 | if (nonce) redirectSearchParams.set('nonce', nonce) 226 | 227 | if (justGiveJwt) { 228 | return getResponse({ id_token }) 229 | } 230 | 231 | // Redirect user back to the OIDC client 232 | return Response.redirect(`${redirect_uri}?${redirectSearchParams.toString()}`) 233 | } 234 | 235 | // Get current public keys from Durable Object for JWT validation 236 | async function handleGetJwks(req, env) { 237 | const corsHeaders = getCorsHeaders(getAllowedOrigin(req, '*')) 238 | const stub = getDoStub(env) 239 | const jwksRes = await stub.fetch('/jwks') 240 | 241 | return getResponse(await jwksRes.text(), 200, corsHeaders) 242 | } 243 | 244 | async function handleOptions(req, env) { 245 | const { pathname } = new URL(req.url) 246 | const corsHeaders = getCorsHeaders( 247 | getAllowedOrigin(req, '*'), 248 | pathname === '/userinfo' ? ['authorization'] : [], 249 | ) 250 | return getResponse(null, 200, corsHeaders) 251 | } 252 | -------------------------------------------------------------------------------- /src/oidc-do.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'itty-router' 2 | import { 3 | dateInSecs, 4 | generateKeyPair, 5 | getResponse, 6 | obj2encStr, 7 | str2ab, 8 | } from './utils' 9 | import { base64url } from 'rfc4648' 10 | // @ts-ignore 11 | import config from './../config.yml' 12 | import { Env, ExchangeCode, Jwk, PrivateKey } from './types' 13 | 14 | const keyAlg = { 15 | name: 'RSASSA-PKCS1-v1_5', 16 | modulusLength: 2048, 17 | publicExponent: new Uint8Array([0x01, 0x00, 0x01]), 18 | hash: { name: 'SHA-256' }, 19 | } 20 | 21 | export class OpenIDConnectDurableObject { 22 | state: DurableObjectState 23 | storage: DurableObjectStorage 24 | env: Env 25 | 26 | jwtTtl: number 27 | 28 | privateKey: PrivateKey 29 | codes: Map 30 | jwks: Map 31 | router: Router 32 | 33 | constructor(state: DurableObjectState, env: Env) { 34 | this.state = state 35 | this.storage = state.storage 36 | this.env = env 37 | 38 | // `blockConcurrencyWhile()` ensures no requests are delivered until 39 | // initialization completes. 40 | this.state.blockConcurrencyWhile(async () => { 41 | this.jwtTtl = config.jwt_ttl || 600 // 10 minutes default 42 | 43 | this.codes = new Map() 44 | this.jwks = await this.storage.list() 45 | 46 | const router = Router() 47 | router.post('/sign', req => this.handleSign(req)) 48 | router.get('/exchange/:code', req => this.handleExchangeCode(req)) 49 | router.get('/jwks', req => this.handleGetJwks(req)) 50 | router.patch('/jwks', req => this.handleCleanupJwks(req)) 51 | 52 | router.all('/', req => getResponse(null, 400)) 53 | this.router = router 54 | }) 55 | } 56 | 57 | async fetch(req: Request) { 58 | try { 59 | return this.router.handle(req) 60 | } catch (e) { 61 | return getResponse(e, 500) 62 | } 63 | } 64 | 65 | // Exchange the OIDC code for a signed JWT token 66 | async handleExchangeCode(req) { 67 | const { code } = req.params 68 | const exchange = this.codes.get(code) 69 | return getResponse(exchange, exchange ? 200 : 404) 70 | } 71 | 72 | async handleSign(req) { 73 | const { 74 | payload, 75 | generate_exchange_code: generateExchangeCode, 76 | access_jwt: access_token, 77 | } = await req.json() 78 | 79 | const timestamp = dateInSecs(new Date()) 80 | const newPayload = { 81 | ...payload, 82 | iat: timestamp, 83 | nbf: timestamp, 84 | exp: timestamp + this.jwtTtl, 85 | } 86 | 87 | // Generate new private key if there is none 88 | if (!this.privateKey) { 89 | const { privateKey, publicKey } = await generateKeyPair(keyAlg) 90 | // @ts-ignore 91 | const kid = crypto.randomUUID() 92 | 93 | this.privateKey = { 94 | id: kid, 95 | key: privateKey, 96 | } 97 | 98 | const newJwk = { 99 | last_signature: timestamp, 100 | key: { 101 | kid, 102 | use: 'sig', 103 | kty: publicKey.kty, 104 | alg: publicKey.alg, 105 | n: publicKey.n, 106 | e: publicKey.e, 107 | }, 108 | } 109 | 110 | await this.storage.put(kid, newJwk) 111 | this.jwks.set(kid, newJwk) 112 | } else { 113 | // otherwise just add last_signature metadata to the public key 114 | this.jwks.get(this.privateKey.id).last_signature = timestamp 115 | await this.storage.put( 116 | this.privateKey.id, 117 | this.jwks.get(this.privateKey.id), 118 | ) 119 | } 120 | 121 | // Construct and sign new JWT token 122 | const header = { alg: 'RS256', typ: 'JWT', kid: this.privateKey.id } 123 | const encodedMessage = `${obj2encStr(header)}.${obj2encStr(newPayload)}` 124 | const encodedMessageArrBuf = str2ab(encodedMessage) 125 | 126 | const signatureArrBuf = await crypto.subtle.sign( 127 | { 128 | name: keyAlg.name, 129 | hash: keyAlg.hash, 130 | }, 131 | this.privateKey.key, 132 | encodedMessageArrBuf, 133 | ) 134 | 135 | const signatureUint8Array = new Uint8Array(signatureArrBuf) 136 | const encodedSignature = base64url.stringify(signatureUint8Array, { 137 | pad: false, 138 | }) 139 | const id_token = `${encodedMessage}.${encodedSignature}` 140 | 141 | let code 142 | if (generateExchangeCode) { 143 | // @ts-ignore 144 | code = crypto.randomUUID() 145 | this.codes.set(code, { 146 | id_token, 147 | access_token, 148 | expires_at: payload.exp, // access_token is original Cloudflare Access JWT, so pass the original exp 149 | }) 150 | } 151 | 152 | // Return both id_token and code 153 | return getResponse({ id_token, code }) 154 | } 155 | 156 | // Return all public keys 157 | handleGetJwks(req) { 158 | const keys = Array.from(this.jwks, ([kid, jwk]) => jwk.key) 159 | return getResponse({ keys }) 160 | } 161 | 162 | // Cleanup public keys we wont need anymore 163 | handleCleanupJwks(req) { 164 | this.jwks.forEach((jwk:Jwk, kid:string) => { 165 | if ( 166 | this.privateKey?.id !== kid && 167 | jwk.last_signature + this.jwtTtl < dateInSecs(new Date()) 168 | ) { 169 | this.jwks.delete(kid) 170 | this.storage.delete(kid) 171 | } 172 | }) 173 | 174 | return getResponse('ok') 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface DurableObjectState { 3 | blockConcurrencyWhile(callback: () => Promise): Promise 4 | } 5 | } 6 | 7 | export interface Env {} 8 | 9 | export interface ExchangeCode { 10 | id_token: string, 11 | access_token: string, 12 | expires_at: number 13 | } 14 | 15 | export interface PrivateKey { 16 | id: string, 17 | key: CryptoKey, 18 | } 19 | 20 | export interface JwkKey { 21 | kid: string, 22 | use: string, 23 | kty: string, 24 | alg: string, 25 | n: number, 26 | e: number 27 | } 28 | 29 | export interface Jwk { 30 | last_signature: number, 31 | key: JwkKey, 32 | } -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | import { base64url } from 'rfc4648' 2 | import jwt_decode from 'jwt-decode' 3 | import config from '../config.yml' 4 | 5 | export const getClientConfig = clientId => { 6 | return config.clients.find(x => x.client_id === clientId) 7 | } 8 | 9 | export const getClientSecret = (clientSecretKey, env) => { 10 | return env[clientSecretKey] 11 | } 12 | 13 | export const dateInSecs = d => Math.ceil(Number(d) / 1000) 14 | 15 | export const getResponse = (body, status = 200, headers = {}) => { 16 | return new Response(typeof body !== 'string' ? JSON.stringify(body) : body, { 17 | status, 18 | headers: { 19 | 'content-type': 'application/json', 20 | ...headers, 21 | }, 22 | }) 23 | } 24 | 25 | export const getCorsHeaders = (origin, headers = []) => { 26 | if (origin) { 27 | return { 28 | 'Access-Control-Allow-Origin': origin, 29 | 'Access-Control-Allow-Headers': headers.join(','), 30 | } 31 | } else { 32 | return {} 33 | } 34 | } 35 | 36 | export const getAllowedOrigin = (req, clientId) => { 37 | const reqOrigin = req.headers.get('origin') 38 | let allowOrigin 39 | 40 | if ((clientId = '*')) { 41 | allowOrigin = config.clients.some(client => 42 | client.cors_origins?.includes(reqOrigin), 43 | ) 44 | } else { 45 | allowOrigin = getClientConfig(clientId)?.cors_origins?.includes(reqOrigin) 46 | } 47 | 48 | return allowOrigin ? reqOrigin : null 49 | } 50 | 51 | export const verifyJwtSignature = (jwsObject, jwk) => { 52 | const jwsSigningInput = jwsObject 53 | .split('.') 54 | .slice(0, 2) 55 | .join('.') 56 | const jwsSignature = jwsObject.split('.')[2] 57 | return crypto.subtle 58 | .importKey( 59 | 'jwk', 60 | jwk, 61 | { 62 | name: 'RSASSA-PKCS1-v1_5', 63 | hash: { name: 'SHA-256' }, 64 | }, 65 | false, 66 | ['verify'], 67 | ) 68 | .then(key => 69 | crypto.subtle.verify( 70 | { name: 'RSASSA-PKCS1-v1_5' }, 71 | key, 72 | base64url.parse(jwsSignature, { loose: true }), 73 | new TextEncoder().encode(jwsSigningInput), 74 | ), 75 | ) 76 | } 77 | 78 | export const obj2encStr = object => { 79 | return base64url.stringify(new TextEncoder().encode(JSON.stringify(object)), { 80 | pad: false, 81 | }) 82 | } 83 | 84 | export const str2ab = str => { 85 | const buf = new ArrayBuffer(str.length) 86 | const bufView = new Uint8Array(buf) 87 | for (let i = 0, strLen = str.length; i < strLen; i++) { 88 | bufView[i] = str.charCodeAt(i) 89 | } 90 | return buf 91 | } 92 | 93 | export const getIssuer = req => { 94 | const url = new URL(req.url) 95 | return `https://${url.hostname}` 96 | } 97 | 98 | export const generateKeyPair = async keyAlg => { 99 | const keyPair = await crypto.subtle.generateKey(keyAlg, true, [ 100 | 'sign', 101 | 'verify', 102 | ]) 103 | 104 | if (!keyPair.privateKey || !keyPair.publicKey) { 105 | throw 'Generating of key pair failed' 106 | } 107 | 108 | const publicKey = await crypto.subtle.exportKey('jwk', keyPair.publicKey) 109 | 110 | return { privateKey: keyPair.privateKey, publicKey } 111 | } 112 | 113 | export const getDoStub = env => { 114 | const oidcDoId = env.DO_OIDC.idFromName('oidc') 115 | return env.DO_OIDC.get(oidcDoId) 116 | } 117 | 118 | // Verify Cloudflare Access JWT 119 | export const verifyCloudflareAccessJwt = async (jwtToken, env) => { 120 | try { 121 | const header = jwt_decode(jwtToken, { header: true }) 122 | const payload = jwt_decode(jwtToken) 123 | const jwk = await getCloudflareAccessJwk(header.kid, env) 124 | 125 | const verified = await verifyJwtSignature(jwtToken, jwk) 126 | if (!verified) throw 'JWT token could not be verified' 127 | 128 | if (!payload.aud.includes(config.cf_access_aud)) 129 | throw "JWT token 'aud' is not valid" 130 | if (payload.iss !== `https://${config.cf_access_team}.cloudflareaccess.com`) 131 | throw 'JWT token issuer is not valid' 132 | 133 | const currentTime = Math.floor(Date.now() / 1000) 134 | if (payload.exp < currentTime) throw 'JWT token is expired' 135 | if (payload.iat > currentTime) throw 'JWT token issued in the future' 136 | if (payload.nbf > currentTime) throw 'JWT token is not valid yet' 137 | 138 | return { 139 | success: true, 140 | header, 141 | payload, 142 | } 143 | } catch (e) { 144 | return { 145 | success: false, 146 | error: e.toString(), 147 | } 148 | } 149 | } 150 | 151 | // Get Cloudflare Access jwk for key id 152 | const getCloudflareAccessJwk = async (kid, env) => { 153 | const apiRes = await fetch( 154 | `https://${config.cf_access_team}.cloudflareaccess.com/cdn-cgi/access/certs`, 155 | ) 156 | return (await apiRes.json()).keys.find(x => x.kid === kid) 157 | } 158 | 159 | // Get Cloudflare Access Identity 160 | export const getCloudflareAccessIdentity = async access_token => { 161 | const identity = await fetch( 162 | `https://${config.cf_account_team}.cloudflareaccess.com/cdn-cgi/access/get-identity`, 163 | { 164 | headers: { 165 | cookie: `CF_Authorization=${access_token}`, 166 | }, 167 | }, 168 | ) 169 | return await identity.json() 170 | } 171 | 172 | // Get Cloudflare Access groups and filter them for an email 173 | export const getCloudflareAccessGroups = async (email, env) => { 174 | const apiRes = await fetch( 175 | `https://api.cloudflare.com/client/v4/accounts/${config.cf_account_id}/access/groups`, 176 | { 177 | headers: { 178 | Authorization: `Bearer ${env.SECRET_CF_API_TOKEN}`, 179 | }, 180 | }, 181 | ) 182 | 183 | const groups = (await apiRes.json()).result 184 | const groupsMatch = groups 185 | .filter(group => 186 | group.include.find( 187 | rule => 188 | rule.email?.email === email || 189 | rule.email_domain?.domain === email.split('@')[1] || 190 | rule.everyone, 191 | ), 192 | ) 193 | .map(group => group.name) 194 | 195 | return groupsMatch 196 | } 197 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noEmit": true, 4 | "experimentalDecorators": true, 5 | "lib": ["esnext", "webworker"], 6 | "types": ["@cloudflare/workers-types"] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "openid-connect" 2 | type = "javascript" 3 | workers_dev = false 4 | compatibility_date = "2021-10-02" 5 | 6 | #zone_id = "your-zone-id" 7 | #routes = ["oidc.example.com/*"] 8 | 9 | [durable_objects] 10 | classes = [ 11 | { binding = "DO_OIDC", class_name = "OpenIDConnectDurableObject" }, 12 | ] 13 | 14 | [triggers] 15 | crons = ["* * * * *"] 16 | 17 | [build] 18 | command = "yarn install && yarn build" 19 | cwd = "." 20 | watch_dir = "src" 21 | 22 | [build.upload] 23 | format = "modules" 24 | main = "main.mjs" 25 | -------------------------------------------------------------------------------- /yarn-error.log: -------------------------------------------------------------------------------- 1 | Arguments: 2 | /usr/local/Cellar/node/16.10.0/bin/node /usr/local/bin/yarn 3 | 4 | PATH: 5 | /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 6 | 7 | Yarn version: 8 | 1.22.15 9 | 10 | Node version: 11 | 16.10.0 12 | 13 | Platform: 14 | darwin x64 15 | 16 | Trace: 17 | Error: unable to get local issuer certificate 18 | at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34) 19 | at TLSSocket.emit (node:events:390:28) 20 | at TLSSocket._finishInit (node:_tls_wrap:944:8) 21 | at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12) 22 | 23 | npm manifest: 24 | { 25 | "name": "access-workers-oidc", 26 | "author": "Adam Janis ", 27 | "version": "1.0.0", 28 | "type": "module", 29 | "private": true, 30 | "module": "./dist/main.mjs", 31 | "scripts": { 32 | "build": "rollup -c", 33 | "dev": "miniflare --modules --watch", 34 | "deploy": "wrangler publish", 35 | "test": "echo \"Error: no test specified\" && exit 1", 36 | "format": "prettier --write '**/*.{js,mjs,css,json,md}'" 37 | }, 38 | "license": "MIT", 39 | "devDependencies": { 40 | "@rollup/plugin-alias": "^3.1.5", 41 | "@rollup/plugin-commonjs": "^17.0.0", 42 | "@rollup/plugin-node-resolve": "^11.1.0", 43 | "@rollup/plugin-typescript": "^8.2.5", 44 | "prettier": "^1.19.1", 45 | "rollup": "^2.36.1", 46 | "rollup-plugin-yaml": "^2.0.0" 47 | }, 48 | "dependencies": { 49 | "itty-router": "^2.1.9", 50 | "jwt-decode": "^3.1.2", 51 | "miniflare": "^1.3.3", 52 | "rfc4648": "^1.5.0", 53 | "uuid": "^8.3.2" 54 | } 55 | } 56 | 57 | yarn manifest: 58 | No manifest 59 | 60 | Lockfile: 61 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 62 | # yarn lockfile v1 63 | 64 | 65 | "@cloudflare/workers-types@^2.2.2": 66 | version "2.2.2" 67 | resolved "https://registry.yarnpkg.com/@cloudflare/workers-types/-/workers-types-2.2.2.tgz#1bced16bba801d7af987da835467545bb5cc7ac6" 68 | integrity sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A== 69 | 70 | "@iarna/toml@^2.2.5": 71 | version "2.2.5" 72 | resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" 73 | integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== 74 | 75 | "@mrbbot/node-fetch@^4.5.0": 76 | version "4.5.0" 77 | resolved "https://registry.yarnpkg.com/@mrbbot/node-fetch/-/node-fetch-4.5.0.tgz#3b0e184cf4f22781f9de1950fa3b57be7fff7cb8" 78 | integrity sha512-EuFTbohMH/dzWXy4PRTM/bn1fqmOkyiCHfXzioA9lYV/xRAnUKjIvaRiA0h4YQ6ZSPvgTGzvZi7O+Ro66xDN5A== 79 | dependencies: 80 | "@cloudflare/workers-types" "^2.2.2" 81 | busboy "^0.3.1" 82 | formdata-node "^2.4.0" 83 | web-streams-polyfill "^3.0.1" 84 | 85 | "@nodelib/fs.scandir@2.1.5": 86 | version "2.1.5" 87 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 88 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 89 | dependencies: 90 | "@nodelib/fs.stat" "2.0.5" 91 | run-parallel "^1.1.9" 92 | 93 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 94 | version "2.0.5" 95 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 96 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 97 | 98 | "@nodelib/fs.walk@^1.2.3": 99 | version "1.2.8" 100 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 101 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 102 | dependencies: 103 | "@nodelib/fs.scandir" "2.1.5" 104 | fastq "^1.6.0" 105 | 106 | "@peculiar/asn1-schema@^2.0.27", "@peculiar/asn1-schema@^2.0.32": 107 | version "2.0.38" 108 | resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz#98b6f12daad275ecd6774dfe31fb62f362900412" 109 | integrity sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ== 110 | dependencies: 111 | "@types/asn1js" "^2.0.2" 112 | asn1js "^2.1.1" 113 | pvtsutils "^1.2.0" 114 | tslib "^2.3.0" 115 | 116 | "@peculiar/json-schema@^1.1.12": 117 | version "1.1.12" 118 | resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" 119 | integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== 120 | dependencies: 121 | tslib "^2.0.0" 122 | 123 | "@peculiar/webcrypto@^1.1.4": 124 | version "1.1.7" 125 | resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz#ff02008612e67ab7cc2a92fce04a7f0e2a04b71c" 126 | integrity sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ== 127 | dependencies: 128 | "@peculiar/asn1-schema" "^2.0.32" 129 | "@peculiar/json-schema" "^1.1.12" 130 | pvtsutils "^1.1.6" 131 | tslib "^2.2.0" 132 | webcrypto-core "^1.2.0" 133 | 134 | "@rollup/plugin-alias@^3.1.5": 135 | version "3.1.5" 136 | resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz#73356a3a1eab2e1e2fd952f9f53cd89fc740d952" 137 | integrity sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ== 138 | dependencies: 139 | slash "^3.0.0" 140 | 141 | "@rollup/plugin-commonjs@^17.0.0": 142 | version "17.1.0" 143 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" 144 | integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== 145 | dependencies: 146 | "@rollup/pluginutils" "^3.1.0" 147 | commondir "^1.0.1" 148 | estree-walker "^2.0.1" 149 | glob "^7.1.6" 150 | is-reference "^1.2.1" 151 | magic-string "^0.25.7" 152 | resolve "^1.17.0" 153 | 154 | "@rollup/plugin-node-resolve@^11.1.0": 155 | version "11.2.1" 156 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" 157 | integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== 158 | dependencies: 159 | "@rollup/pluginutils" "^3.1.0" 160 | "@types/resolve" "1.17.1" 161 | builtin-modules "^3.1.0" 162 | deepmerge "^4.2.2" 163 | is-module "^1.0.0" 164 | resolve "^1.19.0" 165 | 166 | "@rollup/plugin-typescript@^8.2.5": 167 | version "8.2.5" 168 | resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz#e0319761b2b5105615e5a0c371ae05bc2984b7de" 169 | integrity sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ== 170 | dependencies: 171 | "@rollup/pluginutils" "^3.1.0" 172 | resolve "^1.17.0" 173 | 174 | "@rollup/pluginutils@^3.1.0": 175 | version "3.1.0" 176 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 177 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 178 | dependencies: 179 | "@types/estree" "0.0.39" 180 | estree-walker "^1.0.1" 181 | picomatch "^2.2.2" 182 | 183 | "@types/asn1js@^2.0.2": 184 | version "2.0.2" 185 | resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.2.tgz#bb1992291381b5f06e22a829f2ae009267cdf8c5" 186 | integrity sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA== 187 | 188 | "@types/estree@*": 189 | version "0.0.50" 190 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" 191 | integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== 192 | 193 | "@types/estree@0.0.39": 194 | version "0.0.39" 195 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 196 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 197 | 198 | "@types/node@*": 199 | version "16.7.4" 200 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.4.tgz#68a9384694af63ceab8848e95d76d9a3519e84b6" 201 | integrity sha512-25QXpDsTiDnl2rZGUenagVMwO46way8dOUdvoC3R3p+6TrbpxeJBo/v87BEG1IHI31Jhaa8lPeSHcqwxsVBeYQ== 202 | 203 | "@types/node@^15.6.1": 204 | version "15.14.9" 205 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" 206 | integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== 207 | 208 | "@types/resolve@1.17.1": 209 | version "1.17.1" 210 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" 211 | integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 212 | dependencies: 213 | "@types/node" "*" 214 | 215 | "@types/stack-trace@0.0.29": 216 | version "0.0.29" 217 | resolved "https://registry.yarnpkg.com/@types/stack-trace/-/stack-trace-0.0.29.tgz#eb7a7c60098edb35630ed900742a5ecb20cfcb4d" 218 | integrity sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g== 219 | 220 | "@wessberg/stringutil@^1.0.19": 221 | version "1.0.19" 222 | resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" 223 | integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg== 224 | 225 | ansi-regex@^5.0.0: 226 | version "5.0.0" 227 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 228 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 229 | 230 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 231 | version "4.3.0" 232 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 233 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 234 | dependencies: 235 | color-convert "^2.0.1" 236 | 237 | anymatch@~3.1.2: 238 | version "3.1.2" 239 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 240 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 241 | dependencies: 242 | normalize-path "^3.0.0" 243 | picomatch "^2.0.4" 244 | 245 | argparse@^1.0.7: 246 | version "1.0.10" 247 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 248 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 249 | dependencies: 250 | sprintf-js "~1.0.2" 251 | 252 | asn1js@^2.0.26, asn1js@^2.1.1: 253 | version "2.1.1" 254 | resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.1.1.tgz#bb3896191ebb5fb1caeda73436a6c6e20a2eedff" 255 | integrity sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g== 256 | dependencies: 257 | pvutils latest 258 | 259 | balanced-match@^1.0.0: 260 | version "1.0.2" 261 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 262 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 263 | 264 | base64-arraybuffer-es6@^0.7.0: 265 | version "0.7.0" 266 | resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.7.0.tgz#dbe1e6c87b1bf1ca2875904461a7de40f21abc86" 267 | integrity sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw== 268 | 269 | binary-extensions@^2.0.0: 270 | version "2.2.0" 271 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 272 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 273 | 274 | brace-expansion@^1.1.7: 275 | version "1.1.11" 276 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 277 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 278 | dependencies: 279 | balanced-match "^1.0.0" 280 | concat-map "0.0.1" 281 | 282 | braces@^3.0.1, braces@~3.0.2: 283 | version "3.0.2" 284 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 285 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 286 | dependencies: 287 | fill-range "^7.0.1" 288 | 289 | buffer-from@^1.0.0: 290 | version "1.1.2" 291 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 292 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 293 | 294 | builtin-modules@^3.1.0: 295 | version "3.2.0" 296 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" 297 | integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== 298 | 299 | busboy@^0.3.1: 300 | version "0.3.1" 301 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" 302 | integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== 303 | dependencies: 304 | dicer "0.3.0" 305 | 306 | chalk@^4.1.1: 307 | version "4.1.2" 308 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 309 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 310 | dependencies: 311 | ansi-styles "^4.1.0" 312 | supports-color "^7.1.0" 313 | 314 | chokidar@^3.5.1: 315 | version "3.5.2" 316 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 317 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 318 | dependencies: 319 | anymatch "~3.1.2" 320 | braces "~3.0.2" 321 | glob-parent "~5.1.2" 322 | is-binary-path "~2.1.0" 323 | is-glob "~4.0.1" 324 | normalize-path "~3.0.0" 325 | readdirp "~3.6.0" 326 | optionalDependencies: 327 | fsevents "~2.3.2" 328 | 329 | cjstoesm@^1.1.4: 330 | version "1.1.4" 331 | resolved "https://registry.yarnpkg.com/cjstoesm/-/cjstoesm-1.1.4.tgz#8d323b926407df4947d9bc2da94be24459b9c6df" 332 | integrity sha512-cixLJwK2HS8R8J1jJcYwlrLxWUbdNms5EmVQuvP3O0CGvHNv2WVd2gnqTP/tbTEYzbgWiSYQBZDoAakqsSl94Q== 333 | dependencies: 334 | "@wessberg/stringutil" "^1.0.19" 335 | chalk "^4.1.1" 336 | commander "^7.2.0" 337 | compatfactory "^0.0.6" 338 | crosspath "^0.0.8" 339 | fast-glob "^3.2.5" 340 | helpertypes "^0.0.2" 341 | reserved-words "^0.1.2" 342 | resolve "^1.20.0" 343 | 344 | cliui@^7.0.2: 345 | version "7.0.4" 346 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 347 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 348 | dependencies: 349 | string-width "^4.2.0" 350 | strip-ansi "^6.0.0" 351 | wrap-ansi "^7.0.0" 352 | 353 | cluster-key-slot@^1.1.0: 354 | version "1.1.0" 355 | resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" 356 | integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== 357 | 358 | color-convert@^2.0.1: 359 | version "2.0.1" 360 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 361 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 362 | dependencies: 363 | color-name "~1.1.4" 364 | 365 | color-name@~1.1.4: 366 | version "1.1.4" 367 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 368 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 369 | 370 | commander@^7.2.0: 371 | version "7.2.0" 372 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 373 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 374 | 375 | commondir@^1.0.1: 376 | version "1.0.1" 377 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 378 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 379 | 380 | compatfactory@^0.0.6: 381 | version "0.0.6" 382 | resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-0.0.6.tgz#58706caaba2ddb004aff8875a8bf48c48cf4c11d" 383 | integrity sha512-F1LpdNxgxay4UdanmeL75+guJPDg2zu8bFZDVih/kse5hA3oa+aMgvk4tLwq7AFBpy3S0ilnPdSfYsTl/L9NXA== 384 | dependencies: 385 | helpertypes "^0.0.2" 386 | 387 | concat-map@0.0.1: 388 | version "0.0.1" 389 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 390 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 391 | 392 | cookie@^0.4.1: 393 | version "0.4.1" 394 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 395 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 396 | 397 | crosspath@^0.0.8: 398 | version "0.0.8" 399 | resolved "https://registry.yarnpkg.com/crosspath/-/crosspath-0.0.8.tgz#0a9f9ff99e2b88262d3afb87503b933a394e72aa" 400 | integrity sha512-IKlS3MpP0fhJ50M6ltyLO7Q4NzwfhafpmolMH0EDKyyaY81HutF2mH4hLpCdm3fKZ/TSTW5qPIdTy62YnefEyQ== 401 | dependencies: 402 | "@types/node" "^15.6.1" 403 | 404 | debug@^4.3.1: 405 | version "4.3.2" 406 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 407 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 408 | dependencies: 409 | ms "2.1.2" 410 | 411 | deepmerge@^4.2.2: 412 | version "4.2.2" 413 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" 414 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 415 | 416 | denque@^1.1.0: 417 | version "1.5.1" 418 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" 419 | integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== 420 | 421 | dicer@0.3.0: 422 | version "0.3.0" 423 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" 424 | integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== 425 | dependencies: 426 | streamsearch "0.1.2" 427 | 428 | dotenv@^8.2.0: 429 | version "8.6.0" 430 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" 431 | integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== 432 | 433 | emoji-regex@^8.0.0: 434 | version "8.0.0" 435 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 436 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 437 | 438 | env-paths@^2.2.1: 439 | version "2.2.1" 440 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" 441 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 442 | 443 | escalade@^3.1.1: 444 | version "3.1.1" 445 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 446 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 447 | 448 | esprima@^4.0.0: 449 | version "4.0.1" 450 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 451 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 452 | 453 | estree-walker@^0.6.1: 454 | version "0.6.1" 455 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 456 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 457 | 458 | estree-walker@^1.0.1: 459 | version "1.0.1" 460 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 461 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 462 | 463 | estree-walker@^2.0.1: 464 | version "2.0.2" 465 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 466 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 467 | 468 | event-target-shim@^6.0.2: 469 | version "6.0.2" 470 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-6.0.2.tgz#ea5348c3618ee8b62ff1d344f01908ee2b8a2b71" 471 | integrity sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA== 472 | 473 | fast-glob@^3.2.5: 474 | version "3.2.7" 475 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 476 | integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== 477 | dependencies: 478 | "@nodelib/fs.stat" "^2.0.2" 479 | "@nodelib/fs.walk" "^1.2.3" 480 | glob-parent "^5.1.2" 481 | merge2 "^1.3.0" 482 | micromatch "^4.0.4" 483 | 484 | fastq@^1.6.0: 485 | version "1.12.0" 486 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" 487 | integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== 488 | dependencies: 489 | reusify "^1.0.4" 490 | 491 | fill-range@^7.0.1: 492 | version "7.0.1" 493 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 494 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 495 | dependencies: 496 | to-regex-range "^5.0.1" 497 | 498 | formdata-node@^2.4.0, formdata-node@^2.5.0: 499 | version "2.5.0" 500 | resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-2.5.0.tgz#b84a70f4f76b1511f7fc960fa3082ca050820117" 501 | integrity sha512-JFSNLq34u2Tqc6F034x5aaK3ksIfrDBMPie8b4KYx2/pVDLxWFXDly52dsvHjZ+A0LGHTZb/w4HBZVdgN74RTw== 502 | dependencies: 503 | mime-types "2.1.29" 504 | 505 | fs.realpath@^1.0.0: 506 | version "1.0.0" 507 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 508 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 509 | 510 | fsevents@~2.3.2: 511 | version "2.3.2" 512 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 513 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 514 | 515 | function-bind@^1.1.1: 516 | version "1.1.1" 517 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 518 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 519 | 520 | get-caller-file@^2.0.5: 521 | version "2.0.5" 522 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 523 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 524 | 525 | glob-parent@^5.1.2, glob-parent@~5.1.2: 526 | version "5.1.2" 527 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 528 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 529 | dependencies: 530 | is-glob "^4.0.1" 531 | 532 | glob@^7.1.6: 533 | version "7.1.7" 534 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 535 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 536 | dependencies: 537 | fs.realpath "^1.0.0" 538 | inflight "^1.0.4" 539 | inherits "2" 540 | minimatch "^3.0.4" 541 | once "^1.3.0" 542 | path-is-absolute "^1.0.0" 543 | 544 | has-flag@^4.0.0: 545 | version "4.0.0" 546 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 547 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 548 | 549 | has@^1.0.3: 550 | version "1.0.3" 551 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 552 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 553 | dependencies: 554 | function-bind "^1.1.1" 555 | 556 | helpertypes@^0.0.2: 557 | version "0.0.2" 558 | resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.2.tgz#8427cb93dc558079be302ef1cd9f0d3d648ca062" 559 | integrity sha512-PKVtWnJ+dcvPeUJRiqtbraN/Hr2rNEnS14T/IxDBb0KgHkAL5w4YwVxMEPowA9vyoMP0DrwO0TxJ+KH3UF/6YA== 560 | 561 | html-rewriter-wasm@^0.3.2: 562 | version "0.3.2" 563 | resolved "https://registry.yarnpkg.com/html-rewriter-wasm/-/html-rewriter-wasm-0.3.2.tgz#6bfa58f769b5866a7dc420879c0c7e7575c3b54a" 564 | integrity sha512-b+pOh+bs00uRVNIZoTgGBREjUKN47pchTNwkxKuP4ecQTFcOA6KJIW+jjvjjXrkSRURZsideLxFKqX7hnxdegQ== 565 | 566 | http-cache-semantics@^4.1.0: 567 | version "4.1.0" 568 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 569 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 570 | 571 | inflight@^1.0.4: 572 | version "1.0.6" 573 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 574 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 575 | dependencies: 576 | once "^1.3.0" 577 | wrappy "1" 578 | 579 | inherits@2: 580 | version "2.0.4" 581 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 582 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 583 | 584 | ioredis@^4.27.6: 585 | version "4.27.8" 586 | resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.8.tgz#822c2d1ac44067a8f7b92fb673070fc9d661c56e" 587 | integrity sha512-AcMEevap2wKxNcYEybZ/Qp+MR2HbNNUwGjG4sVCC3cAJ/zR9HXKAkolXOuR6YcOGPf7DHx9mWb/JKtAGujyPow== 588 | dependencies: 589 | cluster-key-slot "^1.1.0" 590 | debug "^4.3.1" 591 | denque "^1.1.0" 592 | lodash.defaults "^4.2.0" 593 | lodash.flatten "^4.4.0" 594 | lodash.isarguments "^3.1.0" 595 | p-map "^2.1.0" 596 | redis-commands "1.7.0" 597 | redis-errors "^1.2.0" 598 | redis-parser "^3.0.0" 599 | standard-as-callback "^2.1.0" 600 | 601 | is-binary-path@~2.1.0: 602 | version "2.1.0" 603 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 604 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 605 | dependencies: 606 | binary-extensions "^2.0.0" 607 | 608 | is-core-module@^2.2.0: 609 | version "2.6.0" 610 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" 611 | integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== 612 | dependencies: 613 | has "^1.0.3" 614 | 615 | is-extglob@^2.1.1: 616 | version "2.1.1" 617 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 618 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 619 | 620 | is-fullwidth-code-point@^3.0.0: 621 | version "3.0.0" 622 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 623 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 624 | 625 | is-glob@^4.0.1, is-glob@~4.0.1: 626 | version "4.0.1" 627 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 628 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 629 | dependencies: 630 | is-extglob "^2.1.1" 631 | 632 | is-module@^1.0.0: 633 | version "1.0.0" 634 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 635 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 636 | 637 | is-number@^7.0.0: 638 | version "7.0.0" 639 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 640 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 641 | 642 | is-reference@^1.2.1: 643 | version "1.2.1" 644 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" 645 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 646 | dependencies: 647 | "@types/estree" "*" 648 | 649 | itty-router@^2.1.9: 650 | version "2.4.2" 651 | resolved "https://registry.yarnpkg.com/itty-router/-/itty-router-2.4.2.tgz#5680f880f618ef9dc14148f47b9885bd09e5a015" 652 | integrity sha512-VCJPoGKYrCoFSGQ9kko5prt66SHVppde498kj9XkMuZVrLCaG6xSIMIz/qaqW/mWk34BJPYGzhvWMf6l8g/CnA== 653 | 654 | js-yaml@^3.13.1: 655 | version "3.14.1" 656 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 657 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 658 | dependencies: 659 | argparse "^1.0.7" 660 | esprima "^4.0.0" 661 | 662 | jwt-decode@^3.1.2: 663 | version "3.1.2" 664 | resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" 665 | integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== 666 | 667 | kleur@^4.1.4: 668 | version "4.1.4" 669 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" 670 | integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== 671 | 672 | lodash.defaults@^4.2.0: 673 | version "4.2.0" 674 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 675 | integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= 676 | 677 | lodash.flatten@^4.4.0: 678 | version "4.4.0" 679 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 680 | integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= 681 | 682 | lodash.isarguments@^3.1.0: 683 | version "3.1.0" 684 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 685 | integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= 686 | 687 | lodash@^4.7.0: 688 | version "4.17.21" 689 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 690 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 691 | 692 | magic-string@^0.25.7: 693 | version "0.25.7" 694 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" 695 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 696 | dependencies: 697 | sourcemap-codec "^1.4.4" 698 | 699 | merge2@^1.3.0: 700 | version "1.4.1" 701 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 702 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 703 | 704 | micromatch@^4.0.4: 705 | version "4.0.4" 706 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 707 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 708 | dependencies: 709 | braces "^3.0.1" 710 | picomatch "^2.2.3" 711 | 712 | mime-db@1.46.0: 713 | version "1.46.0" 714 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" 715 | integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== 716 | 717 | mime-types@2.1.29: 718 | version "2.1.29" 719 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" 720 | integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== 721 | dependencies: 722 | mime-db "1.46.0" 723 | 724 | miniflare@^1.3.3: 725 | version "1.4.0" 726 | resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-1.4.0.tgz#305c5a675e41fc3f015fc920bb87ac1b50d789c1" 727 | integrity sha512-jmxwA/+E8dGb80+AJyjgb6isT2ojIk852Jl1qpacDpIAkWOPKoq1VshxLtiMsotheoAuZKQCQQrjJnTMOrAFiw== 728 | dependencies: 729 | "@iarna/toml" "^2.2.5" 730 | "@mrbbot/node-fetch" "^4.5.0" 731 | "@peculiar/webcrypto" "^1.1.4" 732 | chokidar "^3.5.1" 733 | cjstoesm "^1.1.4" 734 | dotenv "^8.2.0" 735 | env-paths "^2.2.1" 736 | event-target-shim "^6.0.2" 737 | formdata-node "^2.5.0" 738 | html-rewriter-wasm "^0.3.2" 739 | http-cache-semantics "^4.1.0" 740 | ioredis "^4.27.6" 741 | kleur "^4.1.4" 742 | node-cron "^2.0.3" 743 | picomatch "^2.3.0" 744 | sanitize-filename "^1.6.3" 745 | selfsigned "^1.10.11" 746 | semiver "^1.1.0" 747 | source-map-support "^0.5.19" 748 | tslib "^2.3.0" 749 | typescript "^4.3.4" 750 | typeson "^6.1.0" 751 | typeson-registry "^1.0.0-alpha.39" 752 | web-streams-polyfill "^3.1.0" 753 | ws "^7.5.0" 754 | yargs "^16.2.0" 755 | youch "^2.2.2" 756 | 757 | minimatch@^3.0.4: 758 | version "3.0.4" 759 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 760 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 761 | dependencies: 762 | brace-expansion "^1.1.7" 763 | 764 | ms@2.1.2: 765 | version "2.1.2" 766 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 767 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 768 | 769 | mustache@^4.2.0: 770 | version "4.2.0" 771 | resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" 772 | integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== 773 | 774 | node-cron@^2.0.3: 775 | version "2.0.3" 776 | resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-2.0.3.tgz#b9649784d0d6c00758410eef22fa54a10e3f602d" 777 | integrity sha512-eJI+QitXlwcgiZwNNSRbqsjeZMp5shyajMR81RZCqeW0ZDEj4zU9tpd4nTh/1JsBiKbF8d08FCewiipDmVIYjg== 778 | dependencies: 779 | opencollective-postinstall "^2.0.0" 780 | tz-offset "0.0.1" 781 | 782 | node-forge@^0.10.0: 783 | version "0.10.0" 784 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" 785 | integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== 786 | 787 | normalize-path@^3.0.0, normalize-path@~3.0.0: 788 | version "3.0.0" 789 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 790 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 791 | 792 | once@^1.3.0: 793 | version "1.4.0" 794 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 795 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 796 | dependencies: 797 | wrappy "1" 798 | 799 | opencollective-postinstall@^2.0.0: 800 | version "2.0.3" 801 | resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" 802 | integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== 803 | 804 | p-map@^2.1.0: 805 | version "2.1.0" 806 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" 807 | integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== 808 | 809 | path-is-absolute@^1.0.0: 810 | version "1.0.1" 811 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 812 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 813 | 814 | path-parse@^1.0.6: 815 | version "1.0.7" 816 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 817 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 818 | 819 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.0: 820 | version "2.3.0" 821 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 822 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 823 | 824 | prettier@^1.19.1: 825 | version "1.19.1" 826 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 827 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 828 | 829 | punycode@^2.1.1: 830 | version "2.1.1" 831 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 832 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 833 | 834 | pvtsutils@^1.1.2, pvtsutils@^1.1.6, pvtsutils@^1.2.0: 835 | version "1.2.0" 836 | resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.2.0.tgz#619e4767093d23cd600482600c16f4c36d3025bb" 837 | integrity sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA== 838 | dependencies: 839 | tslib "^2.2.0" 840 | 841 | pvutils@latest: 842 | version "1.0.17" 843 | resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" 844 | integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== 845 | 846 | queue-microtask@^1.2.2: 847 | version "1.2.3" 848 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 849 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 850 | 851 | readdirp@~3.6.0: 852 | version "3.6.0" 853 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 854 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 855 | dependencies: 856 | picomatch "^2.2.1" 857 | 858 | redis-commands@1.7.0: 859 | version "1.7.0" 860 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" 861 | integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== 862 | 863 | redis-errors@^1.0.0, redis-errors@^1.2.0: 864 | version "1.2.0" 865 | resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" 866 | integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= 867 | 868 | redis-parser@^3.0.0: 869 | version "3.0.0" 870 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" 871 | integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= 872 | dependencies: 873 | redis-errors "^1.0.0" 874 | 875 | require-directory@^2.1.1: 876 | version "2.1.1" 877 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 878 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 879 | 880 | reserved-words@^0.1.2: 881 | version "0.1.2" 882 | resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" 883 | integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= 884 | 885 | resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: 886 | version "1.20.0" 887 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 888 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 889 | dependencies: 890 | is-core-module "^2.2.0" 891 | path-parse "^1.0.6" 892 | 893 | reusify@^1.0.4: 894 | version "1.0.4" 895 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 896 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 897 | 898 | rfc4648@^1.5.0: 899 | version "1.5.0" 900 | resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.0.tgz#1ba940ec1649685ec4d88788dc57fb8e18855055" 901 | integrity sha512-FA6W9lDNeX8WbMY31io1xWg+TpZCbeDKsBo0ocwACZiWnh9TUAyk9CCuBQuOPmYnwwdEQZmraQ2ZK7yJsxErBg== 902 | 903 | rollup-plugin-json@^4.0.0: 904 | version "4.0.0" 905 | resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e" 906 | integrity sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow== 907 | dependencies: 908 | rollup-pluginutils "^2.5.0" 909 | 910 | rollup-plugin-yaml@^2.0.0: 911 | version "2.0.0" 912 | resolved "https://registry.yarnpkg.com/rollup-plugin-yaml/-/rollup-plugin-yaml-2.0.0.tgz#80a67b59e00f010f5f2a2bb6fa70aad4718f85f8" 913 | integrity sha512-aBfREZIkvKjfwHbcpqVsst0iB2PvsdEpvGNw02N2kQ8rOP7ZClZDpxwylkpcmO9/xgD2uInA/AY3mGursT37zw== 914 | dependencies: 915 | js-yaml "^3.13.1" 916 | rollup-plugin-json "^4.0.0" 917 | rollup-pluginutils "^2.8.2" 918 | tosource "^1.0.0" 919 | 920 | rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.8.2: 921 | version "2.8.2" 922 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 923 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 924 | dependencies: 925 | estree-walker "^0.6.1" 926 | 927 | rollup@^2.36.1: 928 | version "2.56.3" 929 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff" 930 | integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== 931 | optionalDependencies: 932 | fsevents "~2.3.2" 933 | 934 | run-parallel@^1.1.9: 935 | version "1.2.0" 936 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 937 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 938 | dependencies: 939 | queue-microtask "^1.2.2" 940 | 941 | sanitize-filename@^1.6.3: 942 | version "1.6.3" 943 | resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" 944 | integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== 945 | dependencies: 946 | truncate-utf8-bytes "^1.0.0" 947 | 948 | selfsigned@^1.10.11: 949 | version "1.10.11" 950 | resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" 951 | integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== 952 | dependencies: 953 | node-forge "^0.10.0" 954 | 955 | semiver@^1.1.0: 956 | version "1.1.0" 957 | resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f" 958 | integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== 959 | 960 | slash@^3.0.0: 961 | version "3.0.0" 962 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 963 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 964 | 965 | source-map-support@^0.5.19: 966 | version "0.5.19" 967 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 968 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 969 | dependencies: 970 | buffer-from "^1.0.0" 971 | source-map "^0.6.0" 972 | 973 | source-map@^0.6.0: 974 | version "0.6.1" 975 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 976 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 977 | 978 | sourcemap-codec@^1.4.4: 979 | version "1.4.8" 980 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 981 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 982 | 983 | sprintf-js@~1.0.2: 984 | version "1.0.3" 985 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 986 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 987 | 988 | stack-trace@0.0.10: 989 | version "0.0.10" 990 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 991 | integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= 992 | 993 | standard-as-callback@^2.1.0: 994 | version "2.1.0" 995 | resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" 996 | integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== 997 | 998 | streamsearch@0.1.2: 999 | version "0.1.2" 1000 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 1001 | integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= 1002 | 1003 | string-width@^4.1.0, string-width@^4.2.0: 1004 | version "4.2.2" 1005 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 1006 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1007 | dependencies: 1008 | emoji-regex "^8.0.0" 1009 | is-fullwidth-code-point "^3.0.0" 1010 | strip-ansi "^6.0.0" 1011 | 1012 | strip-ansi@^6.0.0: 1013 | version "6.0.0" 1014 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1015 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1016 | dependencies: 1017 | ansi-regex "^5.0.0" 1018 | 1019 | supports-color@^7.1.0: 1020 | version "7.2.0" 1021 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1022 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1023 | dependencies: 1024 | has-flag "^4.0.0" 1025 | 1026 | to-regex-range@^5.0.1: 1027 | version "5.0.1" 1028 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1029 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1030 | dependencies: 1031 | is-number "^7.0.0" 1032 | 1033 | tosource@^1.0.0: 1034 | version "1.0.0" 1035 | resolved "https://registry.yarnpkg.com/tosource/-/tosource-1.0.0.tgz#42d88dd116618bcf00d6106dd5446f3427902ff1" 1036 | integrity sha1-QtiN0RZhi88A1hBt1URvNCeQL/E= 1037 | 1038 | tr46@^2.1.0: 1039 | version "2.1.0" 1040 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" 1041 | integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== 1042 | dependencies: 1043 | punycode "^2.1.1" 1044 | 1045 | truncate-utf8-bytes@^1.0.0: 1046 | version "1.0.2" 1047 | resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" 1048 | integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= 1049 | dependencies: 1050 | utf8-byte-length "^1.0.1" 1051 | 1052 | tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: 1053 | version "2.3.1" 1054 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 1055 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 1056 | 1057 | typescript@^4.3.4: 1058 | version "4.4.2" 1059 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" 1060 | integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== 1061 | 1062 | typeson-registry@^1.0.0-alpha.39: 1063 | version "1.0.0-alpha.39" 1064 | resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.39.tgz#9e0f5aabd5eebfcffd65a796487541196f4b1211" 1065 | integrity sha512-NeGDEquhw+yfwNhguLPcZ9Oj0fzbADiX4R0WxvoY8nGhy98IbzQy1sezjoEFWOywOboj/DWehI+/aUlRVrJnnw== 1066 | dependencies: 1067 | base64-arraybuffer-es6 "^0.7.0" 1068 | typeson "^6.0.0" 1069 | whatwg-url "^8.4.0" 1070 | 1071 | typeson@^6.0.0, typeson@^6.1.0: 1072 | version "6.1.0" 1073 | resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" 1074 | integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== 1075 | 1076 | tz-offset@0.0.1: 1077 | version "0.0.1" 1078 | resolved "https://registry.yarnpkg.com/tz-offset/-/tz-offset-0.0.1.tgz#fef920257024d3583ed9072a767721a18bdb8a76" 1079 | integrity sha512-kMBmblijHJXyOpKzgDhKx9INYU4u4E1RPMB0HqmKSgWG8vEcf3exEfLh4FFfzd3xdQOw9EuIy/cP0akY6rHopQ== 1080 | 1081 | utf8-byte-length@^1.0.1: 1082 | version "1.0.4" 1083 | resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" 1084 | integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= 1085 | 1086 | uuid@^8.3.2: 1087 | version "8.3.2" 1088 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1089 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1090 | 1091 | web-streams-polyfill@^3.0.1, web-streams-polyfill@^3.1.0: 1092 | version "3.1.0" 1093 | resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.1.0.tgz#86f983b4f44745502b0d8563d9ef3afc609d4465" 1094 | integrity sha512-wO9r1YnYe7kFBLHyyVEhV1H8VRWoNiNnuP+v/HUUmSTaRF8F93Kmd3JMrETx0f11GXxRek6OcL2QtjFIdc5WYw== 1095 | 1096 | webcrypto-core@^1.2.0: 1097 | version "1.2.0" 1098 | resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.2.0.tgz#44fda3f9315ed6effe9a1e47466e0935327733b5" 1099 | integrity sha512-p76Z/YLuE4CHCRdc49FB/ETaM4bzM3roqWNJeGs+QNY1fOTzKTOVnhmudW1fuO+5EZg6/4LG9NJ6gaAyxTk9XQ== 1100 | dependencies: 1101 | "@peculiar/asn1-schema" "^2.0.27" 1102 | "@peculiar/json-schema" "^1.1.12" 1103 | asn1js "^2.0.26" 1104 | pvtsutils "^1.1.2" 1105 | tslib "^2.1.0" 1106 | 1107 | webidl-conversions@^6.1.0: 1108 | version "6.1.0" 1109 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" 1110 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 1111 | 1112 | whatwg-url@^8.4.0: 1113 | version "8.7.0" 1114 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" 1115 | integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== 1116 | dependencies: 1117 | lodash "^4.7.0" 1118 | tr46 "^2.1.0" 1119 | webidl-conversions "^6.1.0" 1120 | 1121 | wrap-ansi@^7.0.0: 1122 | version "7.0.0" 1123 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1124 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1125 | dependencies: 1126 | ansi-styles "^4.0.0" 1127 | string-width "^4.1.0" 1128 | strip-ansi "^6.0.0" 1129 | 1130 | wrappy@1: 1131 | version "1.0.2" 1132 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1133 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1134 | 1135 | ws@^7.5.0: 1136 | version "7.5.3" 1137 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" 1138 | integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== 1139 | 1140 | y18n@^5.0.5: 1141 | version "5.0.8" 1142 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1143 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1144 | 1145 | yargs-parser@^20.2.2: 1146 | version "20.2.9" 1147 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1148 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1149 | 1150 | yargs@^16.2.0: 1151 | version "16.2.0" 1152 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1153 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1154 | dependencies: 1155 | cliui "^7.0.2" 1156 | escalade "^3.1.1" 1157 | get-caller-file "^2.0.5" 1158 | require-directory "^2.1.1" 1159 | string-width "^4.2.0" 1160 | y18n "^5.0.5" 1161 | yargs-parser "^20.2.2" 1162 | 1163 | youch@^2.2.2: 1164 | version "2.2.2" 1165 | resolved "https://registry.yarnpkg.com/youch/-/youch-2.2.2.tgz#cb87a359a5c524ebd35eb07ca3a1521dbc7e1a3e" 1166 | integrity sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ== 1167 | dependencies: 1168 | "@types/stack-trace" "0.0.29" 1169 | cookie "^0.4.1" 1170 | mustache "^4.2.0" 1171 | stack-trace "0.0.10" 1172 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cloudflare/workers-types@^2.2.2": 6 | version "2.2.2" 7 | resolved "https://registry.yarnpkg.com/@cloudflare/workers-types/-/workers-types-2.2.2.tgz#1bced16bba801d7af987da835467545bb5cc7ac6" 8 | integrity sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A== 9 | 10 | "@iarna/toml@^2.2.5": 11 | version "2.2.5" 12 | resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" 13 | integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== 14 | 15 | "@mrbbot/node-fetch@^4.5.0": 16 | version "4.5.0" 17 | resolved "https://registry.yarnpkg.com/@mrbbot/node-fetch/-/node-fetch-4.5.0.tgz#3b0e184cf4f22781f9de1950fa3b57be7fff7cb8" 18 | integrity sha512-EuFTbohMH/dzWXy4PRTM/bn1fqmOkyiCHfXzioA9lYV/xRAnUKjIvaRiA0h4YQ6ZSPvgTGzvZi7O+Ro66xDN5A== 19 | dependencies: 20 | "@cloudflare/workers-types" "^2.2.2" 21 | busboy "^0.3.1" 22 | formdata-node "^2.4.0" 23 | web-streams-polyfill "^3.0.1" 24 | 25 | "@nodelib/fs.scandir@2.1.5": 26 | version "2.1.5" 27 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 28 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 29 | dependencies: 30 | "@nodelib/fs.stat" "2.0.5" 31 | run-parallel "^1.1.9" 32 | 33 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 34 | version "2.0.5" 35 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 36 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 37 | 38 | "@nodelib/fs.walk@^1.2.3": 39 | version "1.2.8" 40 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 41 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 42 | dependencies: 43 | "@nodelib/fs.scandir" "2.1.5" 44 | fastq "^1.6.0" 45 | 46 | "@peculiar/asn1-schema@^2.0.27", "@peculiar/asn1-schema@^2.0.32": 47 | version "2.0.38" 48 | resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz#98b6f12daad275ecd6774dfe31fb62f362900412" 49 | integrity sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ== 50 | dependencies: 51 | "@types/asn1js" "^2.0.2" 52 | asn1js "^2.1.1" 53 | pvtsutils "^1.2.0" 54 | tslib "^2.3.0" 55 | 56 | "@peculiar/json-schema@^1.1.12": 57 | version "1.1.12" 58 | resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" 59 | integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== 60 | dependencies: 61 | tslib "^2.0.0" 62 | 63 | "@peculiar/webcrypto@^1.1.4": 64 | version "1.1.7" 65 | resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz#ff02008612e67ab7cc2a92fce04a7f0e2a04b71c" 66 | integrity sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ== 67 | dependencies: 68 | "@peculiar/asn1-schema" "^2.0.32" 69 | "@peculiar/json-schema" "^1.1.12" 70 | pvtsutils "^1.1.6" 71 | tslib "^2.2.0" 72 | webcrypto-core "^1.2.0" 73 | 74 | "@rollup/plugin-alias@^3.1.5": 75 | version "3.1.5" 76 | resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz#73356a3a1eab2e1e2fd952f9f53cd89fc740d952" 77 | integrity sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ== 78 | dependencies: 79 | slash "^3.0.0" 80 | 81 | "@rollup/plugin-commonjs@^17.0.0": 82 | version "17.1.0" 83 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" 84 | integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== 85 | dependencies: 86 | "@rollup/pluginutils" "^3.1.0" 87 | commondir "^1.0.1" 88 | estree-walker "^2.0.1" 89 | glob "^7.1.6" 90 | is-reference "^1.2.1" 91 | magic-string "^0.25.7" 92 | resolve "^1.17.0" 93 | 94 | "@rollup/plugin-node-resolve@^11.1.0": 95 | version "11.2.1" 96 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" 97 | integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== 98 | dependencies: 99 | "@rollup/pluginutils" "^3.1.0" 100 | "@types/resolve" "1.17.1" 101 | builtin-modules "^3.1.0" 102 | deepmerge "^4.2.2" 103 | is-module "^1.0.0" 104 | resolve "^1.19.0" 105 | 106 | "@rollup/plugin-typescript@^8.2.5": 107 | version "8.2.5" 108 | resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.2.5.tgz#e0319761b2b5105615e5a0c371ae05bc2984b7de" 109 | integrity sha512-QL/LvDol/PAGB2O0S7/+q2HpSUNodpw7z6nGn9BfoVCPOZ0r4EALrojFU29Bkoi2Hr2jgTocTejJ5GGWZfOxbQ== 110 | dependencies: 111 | "@rollup/pluginutils" "^3.1.0" 112 | resolve "^1.17.0" 113 | 114 | "@rollup/pluginutils@^3.1.0": 115 | version "3.1.0" 116 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 117 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 118 | dependencies: 119 | "@types/estree" "0.0.39" 120 | estree-walker "^1.0.1" 121 | picomatch "^2.2.2" 122 | 123 | "@types/asn1js@^2.0.2": 124 | version "2.0.2" 125 | resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.2.tgz#bb1992291381b5f06e22a829f2ae009267cdf8c5" 126 | integrity sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA== 127 | 128 | "@types/estree@*": 129 | version "0.0.50" 130 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" 131 | integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== 132 | 133 | "@types/estree@0.0.39": 134 | version "0.0.39" 135 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 136 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 137 | 138 | "@types/node@*": 139 | version "16.7.4" 140 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.4.tgz#68a9384694af63ceab8848e95d76d9a3519e84b6" 141 | integrity sha512-25QXpDsTiDnl2rZGUenagVMwO46way8dOUdvoC3R3p+6TrbpxeJBo/v87BEG1IHI31Jhaa8lPeSHcqwxsVBeYQ== 142 | 143 | "@types/node@^15.6.1": 144 | version "15.14.9" 145 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" 146 | integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== 147 | 148 | "@types/resolve@1.17.1": 149 | version "1.17.1" 150 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" 151 | integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 152 | dependencies: 153 | "@types/node" "*" 154 | 155 | "@types/stack-trace@0.0.29": 156 | version "0.0.29" 157 | resolved "https://registry.yarnpkg.com/@types/stack-trace/-/stack-trace-0.0.29.tgz#eb7a7c60098edb35630ed900742a5ecb20cfcb4d" 158 | integrity sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g== 159 | 160 | "@wessberg/stringutil@^1.0.19": 161 | version "1.0.19" 162 | resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" 163 | integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg== 164 | 165 | ansi-regex@^5.0.0: 166 | version "5.0.0" 167 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 168 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 169 | 170 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 171 | version "4.3.0" 172 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 173 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 174 | dependencies: 175 | color-convert "^2.0.1" 176 | 177 | anymatch@~3.1.2: 178 | version "3.1.2" 179 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 180 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 181 | dependencies: 182 | normalize-path "^3.0.0" 183 | picomatch "^2.0.4" 184 | 185 | argparse@^1.0.7: 186 | version "1.0.10" 187 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 188 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 189 | dependencies: 190 | sprintf-js "~1.0.2" 191 | 192 | argparse@^2.0.1: 193 | version "2.0.1" 194 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 195 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 196 | 197 | asn1js@^2.0.26, asn1js@^2.1.1: 198 | version "2.1.1" 199 | resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.1.1.tgz#bb3896191ebb5fb1caeda73436a6c6e20a2eedff" 200 | integrity sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g== 201 | dependencies: 202 | pvutils latest 203 | 204 | at-least-node@^1.0.0: 205 | version "1.0.0" 206 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 207 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 208 | 209 | balanced-match@^1.0.0: 210 | version "1.0.2" 211 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 212 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 213 | 214 | base64-arraybuffer-es6@^0.7.0: 215 | version "0.7.0" 216 | resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.7.0.tgz#dbe1e6c87b1bf1ca2875904461a7de40f21abc86" 217 | integrity sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw== 218 | 219 | binary-extensions@^2.0.0: 220 | version "2.2.0" 221 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 222 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 223 | 224 | brace-expansion@^1.1.7: 225 | version "1.1.11" 226 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 227 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 228 | dependencies: 229 | balanced-match "^1.0.0" 230 | concat-map "0.0.1" 231 | 232 | braces@^3.0.1, braces@~3.0.2: 233 | version "3.0.2" 234 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 235 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 236 | dependencies: 237 | fill-range "^7.0.1" 238 | 239 | buffer-from@^1.0.0: 240 | version "1.1.2" 241 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 242 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 243 | 244 | builtin-modules@^3.1.0: 245 | version "3.2.0" 246 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" 247 | integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== 248 | 249 | busboy@^0.3.1: 250 | version "0.3.1" 251 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" 252 | integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== 253 | dependencies: 254 | dicer "0.3.0" 255 | 256 | chalk@^4.1.1: 257 | version "4.1.2" 258 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 259 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 260 | dependencies: 261 | ansi-styles "^4.1.0" 262 | supports-color "^7.1.0" 263 | 264 | chokidar@^3.5.1: 265 | version "3.5.2" 266 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 267 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 268 | dependencies: 269 | anymatch "~3.1.2" 270 | braces "~3.0.2" 271 | glob-parent "~5.1.2" 272 | is-binary-path "~2.1.0" 273 | is-glob "~4.0.1" 274 | normalize-path "~3.0.0" 275 | readdirp "~3.6.0" 276 | optionalDependencies: 277 | fsevents "~2.3.2" 278 | 279 | cjstoesm@^1.1.4: 280 | version "1.1.4" 281 | resolved "https://registry.yarnpkg.com/cjstoesm/-/cjstoesm-1.1.4.tgz#8d323b926407df4947d9bc2da94be24459b9c6df" 282 | integrity sha512-cixLJwK2HS8R8J1jJcYwlrLxWUbdNms5EmVQuvP3O0CGvHNv2WVd2gnqTP/tbTEYzbgWiSYQBZDoAakqsSl94Q== 283 | dependencies: 284 | "@wessberg/stringutil" "^1.0.19" 285 | chalk "^4.1.1" 286 | commander "^7.2.0" 287 | compatfactory "^0.0.6" 288 | crosspath "^0.0.8" 289 | fast-glob "^3.2.5" 290 | helpertypes "^0.0.2" 291 | reserved-words "^0.1.2" 292 | resolve "^1.20.0" 293 | 294 | cliui@^7.0.2: 295 | version "7.0.4" 296 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 297 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 298 | dependencies: 299 | string-width "^4.2.0" 300 | strip-ansi "^6.0.0" 301 | wrap-ansi "^7.0.0" 302 | 303 | cluster-key-slot@^1.1.0: 304 | version "1.1.0" 305 | resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" 306 | integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== 307 | 308 | color-convert@^2.0.1: 309 | version "2.0.1" 310 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 311 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 312 | dependencies: 313 | color-name "~1.1.4" 314 | 315 | color-name@~1.1.4: 316 | version "1.1.4" 317 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 318 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 319 | 320 | commander@^7.2.0: 321 | version "7.2.0" 322 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 323 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 324 | 325 | commondir@^1.0.1: 326 | version "1.0.1" 327 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 328 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 329 | 330 | compatfactory@^0.0.6: 331 | version "0.0.6" 332 | resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-0.0.6.tgz#58706caaba2ddb004aff8875a8bf48c48cf4c11d" 333 | integrity sha512-F1LpdNxgxay4UdanmeL75+guJPDg2zu8bFZDVih/kse5hA3oa+aMgvk4tLwq7AFBpy3S0ilnPdSfYsTl/L9NXA== 334 | dependencies: 335 | helpertypes "^0.0.2" 336 | 337 | concat-map@0.0.1: 338 | version "0.0.1" 339 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 340 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 341 | 342 | cookie@^0.4.1: 343 | version "0.4.1" 344 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 345 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 346 | 347 | crosspath@^0.0.8: 348 | version "0.0.8" 349 | resolved "https://registry.yarnpkg.com/crosspath/-/crosspath-0.0.8.tgz#0a9f9ff99e2b88262d3afb87503b933a394e72aa" 350 | integrity sha512-IKlS3MpP0fhJ50M6ltyLO7Q4NzwfhafpmolMH0EDKyyaY81HutF2mH4hLpCdm3fKZ/TSTW5qPIdTy62YnefEyQ== 351 | dependencies: 352 | "@types/node" "^15.6.1" 353 | 354 | debug@^4.3.1: 355 | version "4.3.2" 356 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 357 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 358 | dependencies: 359 | ms "2.1.2" 360 | 361 | deepmerge@^4.2.2: 362 | version "4.2.2" 363 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" 364 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 365 | 366 | denque@^1.1.0: 367 | version "1.5.1" 368 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" 369 | integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== 370 | 371 | dicer@0.3.0: 372 | version "0.3.0" 373 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" 374 | integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== 375 | dependencies: 376 | streamsearch "0.1.2" 377 | 378 | dotenv@^8.2.0: 379 | version "8.6.0" 380 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" 381 | integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== 382 | 383 | emoji-regex@^8.0.0: 384 | version "8.0.0" 385 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 386 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 387 | 388 | env-paths@^2.2.1: 389 | version "2.2.1" 390 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" 391 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 392 | 393 | esbuild-android-arm64@0.13.3: 394 | version "0.13.3" 395 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz#ef734c76eeff42e8c53acdffe901da090164a890" 396 | integrity sha512-jc9E8vGTHkzb0Vwl74H8liANV9BWsqtzLHaKvcsRgf1M+aVCBSF0gUheduAKfDsbDMT0judeMLhwBP34EUesTA== 397 | 398 | esbuild-darwin-64@0.13.3: 399 | version "0.13.3" 400 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.3.tgz#35f29376b7451add79f0640980683ef923365385" 401 | integrity sha512-8bG3Zq+ZNuLlIJebOO2+weI7P2LVf33sOzaUfHj8MuJ+1Ixe4KtQxfYp7qhFnP6xP2ToJaYHxGUfLeiUCEz9hw== 402 | 403 | esbuild-darwin-arm64@0.13.3: 404 | version "0.13.3" 405 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.3.tgz#530a1326e7d18d62c9a54b6dce70f2b77ed50eec" 406 | integrity sha512-5E81eImYtTgh8pY7Gq4WQHhWkR/LvYadUXmuYeZBiP+3ADZJZcG60UFceZrjqNPaFOWKr/xmh4aNocwagEubcA== 407 | 408 | esbuild-freebsd-64@0.13.3: 409 | version "0.13.3" 410 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.3.tgz#ce2896ac362e06eb82ca5dec06b2568901eb5afc" 411 | integrity sha512-ou+f91KkTGexi8HvF/BdtsITL6plbciQfZGys7QX6/QEwyE96PmL5KnU6ZQwoU7E99Ts6Sc9bUDq8HXJubKtBA== 412 | 413 | esbuild-freebsd-arm64@0.13.3: 414 | version "0.13.3" 415 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.3.tgz#a20454f99e060bea4e465d131556a9f0533f403f" 416 | integrity sha512-F1zV7nySjHswJuvIgjkiG5liZ63MeazDGXGKViTCeegjZ71sAhOChcaGhKcu6vq9+vqZxlfEi1fmXlx6Pc3coQ== 417 | 418 | esbuild-linux-32@0.13.3: 419 | version "0.13.3" 420 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.3.tgz#ad56f18208ecf007cd9ab16cd39626ca0312b8ee" 421 | integrity sha512-mHHc2v6uLrHH4zaaq5RB/5IWzgimEJ1HGldzf1qtGI513KZWfH0HRRQ8p1di4notJgBn7tDzWQ1f34ZHy69viQ== 422 | 423 | esbuild-linux-64@0.13.3: 424 | version "0.13.3" 425 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.3.tgz#be1eabadf68d153897ed887678f7496d3949810f" 426 | integrity sha512-FJ1De2O89mrOuqtaEXu41qIYJU6R41F+OA6vheNwcAQcX8fu0aiA13FJeLABq29BYJuTVgRj3cyC8q+tz19/dQ== 427 | 428 | esbuild-linux-arm64@0.13.3: 429 | version "0.13.3" 430 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.3.tgz#329348bb4a19cfb5e9046cc5d97ba5017d8f74ad" 431 | integrity sha512-Cauhr45KSo+wRUojs+1qfycQqQCAXTOvsWvkZ6xmEMAXLAm+f8RQGDQeP8CAf8Yeelnegcn6UNdvzdzLHhWDFg== 432 | 433 | esbuild-linux-arm@0.13.3: 434 | version "0.13.3" 435 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.3.tgz#b3b3167c9d5d3038894fbc75b194a4fbe93eaf09" 436 | integrity sha512-9BJNRtLwBh3OP22cln9g3AJdbAQUcjRHqA4BScx9k4RZpGqPokFr548zpeplxWhcwrIjT8qPebwH9CrRVy8Bsw== 437 | 438 | esbuild-linux-mips64le@0.13.3: 439 | version "0.13.3" 440 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.3.tgz#ea1687f28ea2c85399ecc2fe23a48ab343b7b35d" 441 | integrity sha512-YVzJUGCncuuLm2boYyVeuMFsak4ZAhdiBwi0xNDZCC8sy+tS6Boe2mzcrD2uubv5JKAUOrpN186S1DtU4WgBgw== 442 | 443 | esbuild-linux-ppc64le@0.13.3: 444 | version "0.13.3" 445 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.3.tgz#a462cf42eae3d7fc29a9f277679f5adee70afa67" 446 | integrity sha512-GU6CqqKtJEoyxC2QWHiJtmuOz9wc/jMv8ZloK2WwiGY5yMvAmM3PI103Dj7xcjebNTHBqITTUw/aigY1wx5A3w== 447 | 448 | esbuild-openbsd-64@0.13.3: 449 | version "0.13.3" 450 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.3.tgz#0cb15bd86d20eb19cb548b530f1a533197532cf9" 451 | integrity sha512-HVpkgpn4BQt4BPDAjTOpeMub6mzNWw6Y3gaLQJrpbO24pws6ZwYkY24OI3/Uo3LDCbH6856MM81JxECt92OWjA== 452 | 453 | esbuild-plugin-yaml@^0.0.1: 454 | version "0.0.1" 455 | resolved "https://registry.yarnpkg.com/esbuild-plugin-yaml/-/esbuild-plugin-yaml-0.0.1.tgz#660b9ddab78f4c3f488284762d6c01b6738615fb" 456 | integrity sha512-s3jqOeeCd+dUuUsuBqLRgN2SeQjPF2ppIglvV3B//txgQpTDThGvxu6sqiOUOJ0NOzegitmpWCXoCONdRbUS7w== 457 | dependencies: 458 | fs-extra "^9.1.0" 459 | js-yaml "^4.0.0" 460 | 461 | esbuild-sunos-64@0.13.3: 462 | version "0.13.3" 463 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.3.tgz#53a941241f881010969cc8f1acb1ada49c4cd3c2" 464 | integrity sha512-XncBVOtnEfUbPV4CaiFBxh38ychnBfwCxuTm9iAqcHzIwkmeNRN5qMzDyfE1jyfJje+Bbt6AvIfz6SdYt8/UEQ== 465 | 466 | esbuild-windows-32@0.13.3: 467 | version "0.13.3" 468 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.3.tgz#265dc0d0cdb5374685a851c584857055e12865a4" 469 | integrity sha512-ZlgDz7d1nk8wQACi+z8IDzNZVUlN9iprAme+1YSTsfFDlkyI8jeaGWPk9EQFNY7rJzsLVYm6eZ2mhPioc7uT5A== 470 | 471 | esbuild-windows-64@0.13.3: 472 | version "0.13.3" 473 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.3.tgz#ae710c0629ec8c39c5ef1f69e86ed5592bb4128f" 474 | integrity sha512-YX7KvRez3TR+GudlQm9tND/ssj2FsF9vb8ZWzAoZOLxpPzE3y+3SFJNrfDzzQKPzJ0Pnh9KBP4gsaMwJjKHDhw== 475 | 476 | esbuild-windows-arm64@0.13.3: 477 | version "0.13.3" 478 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.3.tgz#a236199a26b1205573dcb571f966189326a4c953" 479 | integrity sha512-nP7H0Y2a6OJd3Qi1Q8sehhyP4x4JoXK4S5y6FzH2vgaJgiyEurzFxjUufGdMaw+RxtxiwD/uRndUgwaZ2JD8lg== 480 | 481 | esbuild@^0.13.3: 482 | version "0.13.3" 483 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.3.tgz#cc9fc347fc81ff6440cdd1fdb9fe65c02eddcc97" 484 | integrity sha512-98xovMLKnyhv3gcReUuAEi5Ig1rK6SIgvsJuBIcfwzqGSEHsV8UJjMlmkhHoHMf9XZybMpE9Zax8AA8f7i2hlQ== 485 | optionalDependencies: 486 | esbuild-android-arm64 "0.13.3" 487 | esbuild-darwin-64 "0.13.3" 488 | esbuild-darwin-arm64 "0.13.3" 489 | esbuild-freebsd-64 "0.13.3" 490 | esbuild-freebsd-arm64 "0.13.3" 491 | esbuild-linux-32 "0.13.3" 492 | esbuild-linux-64 "0.13.3" 493 | esbuild-linux-arm "0.13.3" 494 | esbuild-linux-arm64 "0.13.3" 495 | esbuild-linux-mips64le "0.13.3" 496 | esbuild-linux-ppc64le "0.13.3" 497 | esbuild-openbsd-64 "0.13.3" 498 | esbuild-sunos-64 "0.13.3" 499 | esbuild-windows-32 "0.13.3" 500 | esbuild-windows-64 "0.13.3" 501 | esbuild-windows-arm64 "0.13.3" 502 | 503 | escalade@^3.1.1: 504 | version "3.1.1" 505 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 506 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 507 | 508 | esprima@^4.0.0: 509 | version "4.0.1" 510 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 511 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 512 | 513 | estree-walker@^0.6.1: 514 | version "0.6.1" 515 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 516 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 517 | 518 | estree-walker@^1.0.1: 519 | version "1.0.1" 520 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 521 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 522 | 523 | estree-walker@^2.0.1: 524 | version "2.0.2" 525 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 526 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 527 | 528 | event-target-shim@^6.0.2: 529 | version "6.0.2" 530 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-6.0.2.tgz#ea5348c3618ee8b62ff1d344f01908ee2b8a2b71" 531 | integrity sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA== 532 | 533 | fast-glob@^3.2.5: 534 | version "3.2.7" 535 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 536 | integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== 537 | dependencies: 538 | "@nodelib/fs.stat" "^2.0.2" 539 | "@nodelib/fs.walk" "^1.2.3" 540 | glob-parent "^5.1.2" 541 | merge2 "^1.3.0" 542 | micromatch "^4.0.4" 543 | 544 | fastq@^1.6.0: 545 | version "1.12.0" 546 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" 547 | integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== 548 | dependencies: 549 | reusify "^1.0.4" 550 | 551 | fill-range@^7.0.1: 552 | version "7.0.1" 553 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 554 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 555 | dependencies: 556 | to-regex-range "^5.0.1" 557 | 558 | formdata-node@^2.4.0, formdata-node@^2.5.0: 559 | version "2.5.0" 560 | resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-2.5.0.tgz#b84a70f4f76b1511f7fc960fa3082ca050820117" 561 | integrity sha512-JFSNLq34u2Tqc6F034x5aaK3ksIfrDBMPie8b4KYx2/pVDLxWFXDly52dsvHjZ+A0LGHTZb/w4HBZVdgN74RTw== 562 | dependencies: 563 | mime-types "2.1.29" 564 | 565 | fs-extra@^9.1.0: 566 | version "9.1.0" 567 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" 568 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== 569 | dependencies: 570 | at-least-node "^1.0.0" 571 | graceful-fs "^4.2.0" 572 | jsonfile "^6.0.1" 573 | universalify "^2.0.0" 574 | 575 | fs.realpath@^1.0.0: 576 | version "1.0.0" 577 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 578 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 579 | 580 | fsevents@~2.3.2: 581 | version "2.3.2" 582 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 583 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 584 | 585 | function-bind@^1.1.1: 586 | version "1.1.1" 587 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 588 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 589 | 590 | get-caller-file@^2.0.5: 591 | version "2.0.5" 592 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 593 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 594 | 595 | glob-parent@^5.1.2, glob-parent@~5.1.2: 596 | version "5.1.2" 597 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 598 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 599 | dependencies: 600 | is-glob "^4.0.1" 601 | 602 | glob@^7.1.6: 603 | version "7.1.7" 604 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 605 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 606 | dependencies: 607 | fs.realpath "^1.0.0" 608 | inflight "^1.0.4" 609 | inherits "2" 610 | minimatch "^3.0.4" 611 | once "^1.3.0" 612 | path-is-absolute "^1.0.0" 613 | 614 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 615 | version "4.2.8" 616 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 617 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 618 | 619 | has-flag@^4.0.0: 620 | version "4.0.0" 621 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 622 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 623 | 624 | has@^1.0.3: 625 | version "1.0.3" 626 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 627 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 628 | dependencies: 629 | function-bind "^1.1.1" 630 | 631 | helpertypes@^0.0.2: 632 | version "0.0.2" 633 | resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.2.tgz#8427cb93dc558079be302ef1cd9f0d3d648ca062" 634 | integrity sha512-PKVtWnJ+dcvPeUJRiqtbraN/Hr2rNEnS14T/IxDBb0KgHkAL5w4YwVxMEPowA9vyoMP0DrwO0TxJ+KH3UF/6YA== 635 | 636 | html-rewriter-wasm@^0.3.2: 637 | version "0.3.2" 638 | resolved "https://registry.yarnpkg.com/html-rewriter-wasm/-/html-rewriter-wasm-0.3.2.tgz#6bfa58f769b5866a7dc420879c0c7e7575c3b54a" 639 | integrity sha512-b+pOh+bs00uRVNIZoTgGBREjUKN47pchTNwkxKuP4ecQTFcOA6KJIW+jjvjjXrkSRURZsideLxFKqX7hnxdegQ== 640 | 641 | http-cache-semantics@^4.1.0: 642 | version "4.1.0" 643 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 644 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 645 | 646 | inflight@^1.0.4: 647 | version "1.0.6" 648 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 649 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 650 | dependencies: 651 | once "^1.3.0" 652 | wrappy "1" 653 | 654 | inherits@2: 655 | version "2.0.4" 656 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 657 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 658 | 659 | ioredis@^4.27.6: 660 | version "4.27.8" 661 | resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.8.tgz#822c2d1ac44067a8f7b92fb673070fc9d661c56e" 662 | integrity sha512-AcMEevap2wKxNcYEybZ/Qp+MR2HbNNUwGjG4sVCC3cAJ/zR9HXKAkolXOuR6YcOGPf7DHx9mWb/JKtAGujyPow== 663 | dependencies: 664 | cluster-key-slot "^1.1.0" 665 | debug "^4.3.1" 666 | denque "^1.1.0" 667 | lodash.defaults "^4.2.0" 668 | lodash.flatten "^4.4.0" 669 | lodash.isarguments "^3.1.0" 670 | p-map "^2.1.0" 671 | redis-commands "1.7.0" 672 | redis-errors "^1.2.0" 673 | redis-parser "^3.0.0" 674 | standard-as-callback "^2.1.0" 675 | 676 | is-binary-path@~2.1.0: 677 | version "2.1.0" 678 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 679 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 680 | dependencies: 681 | binary-extensions "^2.0.0" 682 | 683 | is-core-module@^2.2.0: 684 | version "2.6.0" 685 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" 686 | integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== 687 | dependencies: 688 | has "^1.0.3" 689 | 690 | is-extglob@^2.1.1: 691 | version "2.1.1" 692 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 693 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 694 | 695 | is-fullwidth-code-point@^3.0.0: 696 | version "3.0.0" 697 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 698 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 699 | 700 | is-glob@^4.0.1, is-glob@~4.0.1: 701 | version "4.0.1" 702 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 703 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 704 | dependencies: 705 | is-extglob "^2.1.1" 706 | 707 | is-module@^1.0.0: 708 | version "1.0.0" 709 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 710 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 711 | 712 | is-number@^7.0.0: 713 | version "7.0.0" 714 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 715 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 716 | 717 | is-reference@^1.2.1: 718 | version "1.2.1" 719 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" 720 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 721 | dependencies: 722 | "@types/estree" "*" 723 | 724 | itty-router@^2.1.9: 725 | version "2.4.2" 726 | resolved "https://registry.yarnpkg.com/itty-router/-/itty-router-2.4.2.tgz#5680f880f618ef9dc14148f47b9885bd09e5a015" 727 | integrity sha512-VCJPoGKYrCoFSGQ9kko5prt66SHVppde498kj9XkMuZVrLCaG6xSIMIz/qaqW/mWk34BJPYGzhvWMf6l8g/CnA== 728 | 729 | js-yaml@^3.13.1: 730 | version "3.14.1" 731 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 732 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 733 | dependencies: 734 | argparse "^1.0.7" 735 | esprima "^4.0.0" 736 | 737 | js-yaml@^4.0.0: 738 | version "4.1.0" 739 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 740 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 741 | dependencies: 742 | argparse "^2.0.1" 743 | 744 | jsonfile@^6.0.1: 745 | version "6.1.0" 746 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 747 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 748 | dependencies: 749 | universalify "^2.0.0" 750 | optionalDependencies: 751 | graceful-fs "^4.1.6" 752 | 753 | jwt-decode@^3.1.2: 754 | version "3.1.2" 755 | resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" 756 | integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== 757 | 758 | kleur@^4.1.4: 759 | version "4.1.4" 760 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" 761 | integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== 762 | 763 | lodash.defaults@^4.2.0: 764 | version "4.2.0" 765 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 766 | integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= 767 | 768 | lodash.flatten@^4.4.0: 769 | version "4.4.0" 770 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 771 | integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= 772 | 773 | lodash.isarguments@^3.1.0: 774 | version "3.1.0" 775 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 776 | integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= 777 | 778 | lodash@^4.7.0: 779 | version "4.17.21" 780 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 781 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 782 | 783 | magic-string@^0.25.7: 784 | version "0.25.7" 785 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" 786 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 787 | dependencies: 788 | sourcemap-codec "^1.4.4" 789 | 790 | merge2@^1.3.0: 791 | version "1.4.1" 792 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 793 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 794 | 795 | micromatch@^4.0.4: 796 | version "4.0.4" 797 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 798 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 799 | dependencies: 800 | braces "^3.0.1" 801 | picomatch "^2.2.3" 802 | 803 | mime-db@1.46.0: 804 | version "1.46.0" 805 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" 806 | integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== 807 | 808 | mime-types@2.1.29: 809 | version "2.1.29" 810 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" 811 | integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== 812 | dependencies: 813 | mime-db "1.46.0" 814 | 815 | miniflare@^1.3.3: 816 | version "1.4.0" 817 | resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-1.4.0.tgz#305c5a675e41fc3f015fc920bb87ac1b50d789c1" 818 | integrity sha512-jmxwA/+E8dGb80+AJyjgb6isT2ojIk852Jl1qpacDpIAkWOPKoq1VshxLtiMsotheoAuZKQCQQrjJnTMOrAFiw== 819 | dependencies: 820 | "@iarna/toml" "^2.2.5" 821 | "@mrbbot/node-fetch" "^4.5.0" 822 | "@peculiar/webcrypto" "^1.1.4" 823 | chokidar "^3.5.1" 824 | cjstoesm "^1.1.4" 825 | dotenv "^8.2.0" 826 | env-paths "^2.2.1" 827 | event-target-shim "^6.0.2" 828 | formdata-node "^2.5.0" 829 | html-rewriter-wasm "^0.3.2" 830 | http-cache-semantics "^4.1.0" 831 | ioredis "^4.27.6" 832 | kleur "^4.1.4" 833 | node-cron "^2.0.3" 834 | picomatch "^2.3.0" 835 | sanitize-filename "^1.6.3" 836 | selfsigned "^1.10.11" 837 | semiver "^1.1.0" 838 | source-map-support "^0.5.19" 839 | tslib "^2.3.0" 840 | typescript "^4.3.4" 841 | typeson "^6.1.0" 842 | typeson-registry "^1.0.0-alpha.39" 843 | web-streams-polyfill "^3.1.0" 844 | ws "^7.5.0" 845 | yargs "^16.2.0" 846 | youch "^2.2.2" 847 | 848 | minimatch@^3.0.4: 849 | version "3.0.4" 850 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 851 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 852 | dependencies: 853 | brace-expansion "^1.1.7" 854 | 855 | ms@2.1.2: 856 | version "2.1.2" 857 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 858 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 859 | 860 | mustache@^4.2.0: 861 | version "4.2.0" 862 | resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" 863 | integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== 864 | 865 | node-cron@^2.0.3: 866 | version "2.0.3" 867 | resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-2.0.3.tgz#b9649784d0d6c00758410eef22fa54a10e3f602d" 868 | integrity sha512-eJI+QitXlwcgiZwNNSRbqsjeZMp5shyajMR81RZCqeW0ZDEj4zU9tpd4nTh/1JsBiKbF8d08FCewiipDmVIYjg== 869 | dependencies: 870 | opencollective-postinstall "^2.0.0" 871 | tz-offset "0.0.1" 872 | 873 | node-forge@^0.10.0: 874 | version "0.10.0" 875 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" 876 | integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== 877 | 878 | normalize-path@^3.0.0, normalize-path@~3.0.0: 879 | version "3.0.0" 880 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 881 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 882 | 883 | once@^1.3.0: 884 | version "1.4.0" 885 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 886 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 887 | dependencies: 888 | wrappy "1" 889 | 890 | opencollective-postinstall@^2.0.0: 891 | version "2.0.3" 892 | resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" 893 | integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== 894 | 895 | p-map@^2.1.0: 896 | version "2.1.0" 897 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" 898 | integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== 899 | 900 | path-is-absolute@^1.0.0: 901 | version "1.0.1" 902 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 903 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 904 | 905 | path-parse@^1.0.6: 906 | version "1.0.7" 907 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 908 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 909 | 910 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.0: 911 | version "2.3.0" 912 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 913 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 914 | 915 | prettier@^1.19.1: 916 | version "1.19.1" 917 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 918 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 919 | 920 | punycode@^2.1.1: 921 | version "2.1.1" 922 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 923 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 924 | 925 | pvtsutils@^1.1.2, pvtsutils@^1.1.6, pvtsutils@^1.2.0: 926 | version "1.2.0" 927 | resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.2.0.tgz#619e4767093d23cd600482600c16f4c36d3025bb" 928 | integrity sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA== 929 | dependencies: 930 | tslib "^2.2.0" 931 | 932 | pvutils@latest: 933 | version "1.0.17" 934 | resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" 935 | integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== 936 | 937 | queue-microtask@^1.2.2: 938 | version "1.2.3" 939 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 940 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 941 | 942 | readdirp@~3.6.0: 943 | version "3.6.0" 944 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 945 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 946 | dependencies: 947 | picomatch "^2.2.1" 948 | 949 | redis-commands@1.7.0: 950 | version "1.7.0" 951 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" 952 | integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== 953 | 954 | redis-errors@^1.0.0, redis-errors@^1.2.0: 955 | version "1.2.0" 956 | resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" 957 | integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= 958 | 959 | redis-parser@^3.0.0: 960 | version "3.0.0" 961 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" 962 | integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= 963 | dependencies: 964 | redis-errors "^1.0.0" 965 | 966 | regexparam@^2.0.0: 967 | version "2.0.0" 968 | resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c" 969 | integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow== 970 | 971 | require-directory@^2.1.1: 972 | version "2.1.1" 973 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 974 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 975 | 976 | reserved-words@^0.1.2: 977 | version "0.1.2" 978 | resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" 979 | integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= 980 | 981 | resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: 982 | version "1.20.0" 983 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 984 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 985 | dependencies: 986 | is-core-module "^2.2.0" 987 | path-parse "^1.0.6" 988 | 989 | reusify@^1.0.4: 990 | version "1.0.4" 991 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 992 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 993 | 994 | rfc4648@^1.5.0: 995 | version "1.5.0" 996 | resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.0.tgz#1ba940ec1649685ec4d88788dc57fb8e18855055" 997 | integrity sha512-FA6W9lDNeX8WbMY31io1xWg+TpZCbeDKsBo0ocwACZiWnh9TUAyk9CCuBQuOPmYnwwdEQZmraQ2ZK7yJsxErBg== 998 | 999 | rollup-plugin-json@^4.0.0: 1000 | version "4.0.0" 1001 | resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e" 1002 | integrity sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow== 1003 | dependencies: 1004 | rollup-pluginutils "^2.5.0" 1005 | 1006 | rollup-plugin-yaml@^2.0.0: 1007 | version "2.0.0" 1008 | resolved "https://registry.yarnpkg.com/rollup-plugin-yaml/-/rollup-plugin-yaml-2.0.0.tgz#80a67b59e00f010f5f2a2bb6fa70aad4718f85f8" 1009 | integrity sha512-aBfREZIkvKjfwHbcpqVsst0iB2PvsdEpvGNw02N2kQ8rOP7ZClZDpxwylkpcmO9/xgD2uInA/AY3mGursT37zw== 1010 | dependencies: 1011 | js-yaml "^3.13.1" 1012 | rollup-plugin-json "^4.0.0" 1013 | rollup-pluginutils "^2.8.2" 1014 | tosource "^1.0.0" 1015 | 1016 | rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.8.2: 1017 | version "2.8.2" 1018 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 1019 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1020 | dependencies: 1021 | estree-walker "^0.6.1" 1022 | 1023 | rollup@^2.36.1: 1024 | version "2.56.3" 1025 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff" 1026 | integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== 1027 | optionalDependencies: 1028 | fsevents "~2.3.2" 1029 | 1030 | run-parallel@^1.1.9: 1031 | version "1.2.0" 1032 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1033 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1034 | dependencies: 1035 | queue-microtask "^1.2.2" 1036 | 1037 | sanitize-filename@^1.6.3: 1038 | version "1.6.3" 1039 | resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" 1040 | integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== 1041 | dependencies: 1042 | truncate-utf8-bytes "^1.0.0" 1043 | 1044 | selfsigned@^1.10.11: 1045 | version "1.10.11" 1046 | resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" 1047 | integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== 1048 | dependencies: 1049 | node-forge "^0.10.0" 1050 | 1051 | semiver@^1.1.0: 1052 | version "1.1.0" 1053 | resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f" 1054 | integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== 1055 | 1056 | slash@^3.0.0: 1057 | version "3.0.0" 1058 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1059 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1060 | 1061 | source-map-support@^0.5.19: 1062 | version "0.5.19" 1063 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 1064 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 1065 | dependencies: 1066 | buffer-from "^1.0.0" 1067 | source-map "^0.6.0" 1068 | 1069 | source-map@^0.6.0: 1070 | version "0.6.1" 1071 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1072 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1073 | 1074 | sourcemap-codec@^1.4.4: 1075 | version "1.4.8" 1076 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1077 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1078 | 1079 | sprintf-js@~1.0.2: 1080 | version "1.0.3" 1081 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1082 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1083 | 1084 | stack-trace@0.0.10: 1085 | version "0.0.10" 1086 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1087 | integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= 1088 | 1089 | standard-as-callback@^2.1.0: 1090 | version "2.1.0" 1091 | resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" 1092 | integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== 1093 | 1094 | streamsearch@0.1.2: 1095 | version "0.1.2" 1096 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 1097 | integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= 1098 | 1099 | string-width@^4.1.0, string-width@^4.2.0: 1100 | version "4.2.2" 1101 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 1102 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1103 | dependencies: 1104 | emoji-regex "^8.0.0" 1105 | is-fullwidth-code-point "^3.0.0" 1106 | strip-ansi "^6.0.0" 1107 | 1108 | strip-ansi@^6.0.0: 1109 | version "6.0.0" 1110 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1111 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1112 | dependencies: 1113 | ansi-regex "^5.0.0" 1114 | 1115 | supports-color@^7.1.0: 1116 | version "7.2.0" 1117 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1118 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1119 | dependencies: 1120 | has-flag "^4.0.0" 1121 | 1122 | to-regex-range@^5.0.1: 1123 | version "5.0.1" 1124 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1125 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1126 | dependencies: 1127 | is-number "^7.0.0" 1128 | 1129 | tosource@^1.0.0: 1130 | version "1.0.0" 1131 | resolved "https://registry.yarnpkg.com/tosource/-/tosource-1.0.0.tgz#42d88dd116618bcf00d6106dd5446f3427902ff1" 1132 | integrity sha1-QtiN0RZhi88A1hBt1URvNCeQL/E= 1133 | 1134 | tr46@^2.1.0: 1135 | version "2.1.0" 1136 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" 1137 | integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== 1138 | dependencies: 1139 | punycode "^2.1.1" 1140 | 1141 | truncate-utf8-bytes@^1.0.0: 1142 | version "1.0.2" 1143 | resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" 1144 | integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= 1145 | dependencies: 1146 | utf8-byte-length "^1.0.1" 1147 | 1148 | tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: 1149 | version "2.3.1" 1150 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 1151 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 1152 | 1153 | typescript@^4.3.4: 1154 | version "4.4.2" 1155 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" 1156 | integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== 1157 | 1158 | typescript@^4.4.3: 1159 | version "4.4.3" 1160 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" 1161 | integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== 1162 | 1163 | typeson-registry@^1.0.0-alpha.39: 1164 | version "1.0.0-alpha.39" 1165 | resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.39.tgz#9e0f5aabd5eebfcffd65a796487541196f4b1211" 1166 | integrity sha512-NeGDEquhw+yfwNhguLPcZ9Oj0fzbADiX4R0WxvoY8nGhy98IbzQy1sezjoEFWOywOboj/DWehI+/aUlRVrJnnw== 1167 | dependencies: 1168 | base64-arraybuffer-es6 "^0.7.0" 1169 | typeson "^6.0.0" 1170 | whatwg-url "^8.4.0" 1171 | 1172 | typeson@^6.0.0, typeson@^6.1.0: 1173 | version "6.1.0" 1174 | resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" 1175 | integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== 1176 | 1177 | tz-offset@0.0.1: 1178 | version "0.0.1" 1179 | resolved "https://registry.yarnpkg.com/tz-offset/-/tz-offset-0.0.1.tgz#fef920257024d3583ed9072a767721a18bdb8a76" 1180 | integrity sha512-kMBmblijHJXyOpKzgDhKx9INYU4u4E1RPMB0HqmKSgWG8vEcf3exEfLh4FFfzd3xdQOw9EuIy/cP0akY6rHopQ== 1181 | 1182 | universalify@^2.0.0: 1183 | version "2.0.0" 1184 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1185 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1186 | 1187 | utf8-byte-length@^1.0.1: 1188 | version "1.0.4" 1189 | resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" 1190 | integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= 1191 | 1192 | uuid@^8.3.2: 1193 | version "8.3.2" 1194 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1195 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1196 | 1197 | web-streams-polyfill@^3.0.1, web-streams-polyfill@^3.1.0: 1198 | version "3.1.0" 1199 | resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.1.0.tgz#86f983b4f44745502b0d8563d9ef3afc609d4465" 1200 | integrity sha512-wO9r1YnYe7kFBLHyyVEhV1H8VRWoNiNnuP+v/HUUmSTaRF8F93Kmd3JMrETx0f11GXxRek6OcL2QtjFIdc5WYw== 1201 | 1202 | webcrypto-core@^1.2.0: 1203 | version "1.2.0" 1204 | resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.2.0.tgz#44fda3f9315ed6effe9a1e47466e0935327733b5" 1205 | integrity sha512-p76Z/YLuE4CHCRdc49FB/ETaM4bzM3roqWNJeGs+QNY1fOTzKTOVnhmudW1fuO+5EZg6/4LG9NJ6gaAyxTk9XQ== 1206 | dependencies: 1207 | "@peculiar/asn1-schema" "^2.0.27" 1208 | "@peculiar/json-schema" "^1.1.12" 1209 | asn1js "^2.0.26" 1210 | pvtsutils "^1.1.2" 1211 | tslib "^2.1.0" 1212 | 1213 | webidl-conversions@^6.1.0: 1214 | version "6.1.0" 1215 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" 1216 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 1217 | 1218 | whatwg-url@^8.4.0: 1219 | version "8.7.0" 1220 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" 1221 | integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== 1222 | dependencies: 1223 | lodash "^4.7.0" 1224 | tr46 "^2.1.0" 1225 | webidl-conversions "^6.1.0" 1226 | 1227 | worktop@^0.7.3: 1228 | version "0.7.3" 1229 | resolved "https://registry.yarnpkg.com/worktop/-/worktop-0.7.3.tgz#7dbf85f0add229cf261759bf3855820814b99cba" 1230 | integrity sha512-WBHP1hk8pLP7ahAw13fugDWcO0SUAOiCD6DHT/bfLWoCIA/PL9u7GKdudT2nGZ8EGR1APbGCAI6ZzKG1+X+PnQ== 1231 | dependencies: 1232 | regexparam "^2.0.0" 1233 | 1234 | wrap-ansi@^7.0.0: 1235 | version "7.0.0" 1236 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1237 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1238 | dependencies: 1239 | ansi-styles "^4.0.0" 1240 | string-width "^4.1.0" 1241 | strip-ansi "^6.0.0" 1242 | 1243 | wrappy@1: 1244 | version "1.0.2" 1245 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1246 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1247 | 1248 | ws@^7.5.0: 1249 | version "7.5.3" 1250 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" 1251 | integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== 1252 | 1253 | y18n@^5.0.5: 1254 | version "5.0.8" 1255 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1256 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1257 | 1258 | yargs-parser@^20.2.2: 1259 | version "20.2.9" 1260 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1261 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1262 | 1263 | yargs@^16.2.0: 1264 | version "16.2.0" 1265 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1266 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1267 | dependencies: 1268 | cliui "^7.0.2" 1269 | escalade "^3.1.1" 1270 | get-caller-file "^2.0.5" 1271 | require-directory "^2.1.1" 1272 | string-width "^4.2.0" 1273 | y18n "^5.0.5" 1274 | yargs-parser "^20.2.2" 1275 | 1276 | youch@^2.2.2: 1277 | version "2.2.2" 1278 | resolved "https://registry.yarnpkg.com/youch/-/youch-2.2.2.tgz#cb87a359a5c524ebd35eb07ca3a1521dbc7e1a3e" 1279 | integrity sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ== 1280 | dependencies: 1281 | "@types/stack-trace" "0.0.29" 1282 | cookie "^0.4.1" 1283 | mustache "^4.2.0" 1284 | stack-trace "0.0.10" 1285 | --------------------------------------------------------------------------------