├── .prettierrc ├── wrangler.toml ├── webpack.config.js ├── package.json ├── .github └── workflows │ └── deploy.yml ├── README.md ├── src └── index.js ├── .gitignore └── yarn.lock /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "trailingComma": "all", 5 | "tabWidth": 2, 6 | "printWidth": 80 7 | } -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "cloudflare-helm-proxy" 2 | type = "webpack" 3 | 4 | account_id = "" 5 | workers_dev = true 6 | route = "" 7 | zone_id = "" 8 | 9 | webpack_config = "webpack.config.js" 10 | compatibility_date = "2021-12-07" 11 | 12 | 13 | [dev] 14 | ip = "0.0.0.0" 15 | port = 8787 16 | local_protocol="http" 17 | upstream_protocol="https" -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | module.exports = { 4 | context: path.resolve(__dirname, './'), 5 | target: 'webworker', 6 | mode: 'production', 7 | optimization: { 8 | usedExports: true, 9 | }, 10 | module: { 11 | rules: [ 12 | { 13 | include: /node_modules/, 14 | test: /\.mjs$/, 15 | type: 'javascript/auto', 16 | }, 17 | ], 18 | }, 19 | } 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudflare-helm-proxy", 3 | "private": true, 4 | "description": "", 5 | "version": "1.0.0", 6 | "author": "ciiiii ", 7 | "dependencies": {}, 8 | "devDependencies": { 9 | "prettier": "^2.4.1", 10 | "webpack": "^5.65.0", 11 | "webpack-cli": "^4.9.1" 12 | }, 13 | "scripts": { 14 | "format": "prettier --write '**/*.{js,css,json,md}'", 15 | "build": "webpack" 16 | }, 17 | "license": "MIT", 18 | "main": "src/index.js" 19 | } 20 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to Cloudflare Workers 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | repository_dispatch: 8 | 9 | jobs: 10 | build-and-deploy: 11 | runs-on: ubuntu-latest 12 | name: Build & Deploy 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: Use Node.js 16 | uses: actions/setup-node@v1 17 | with: 18 | node-version: "12.x" 19 | - run: npm install 20 | - name: Publish 21 | uses: cloudflare/wrangler-action@1.2.0 22 | with: 23 | apiToken: ${{ secrets.CF_API_TOKEN }} 24 | env: 25 | CF_ACCOUNT_ID: ${{secrets.CF_ACCOUNT_ID}} 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cloudflare-helm-proxy 2 | 3 | ![deploy](https://github.com/ciiiii/cloudflare-helm-proxy/actions/workflows/deploy.yml/badge.svg) 4 | 5 | A helm repo proxy run on cloudflare worker. 6 | 7 | [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/ciiiii/cloudflare-helm-proxy) 8 | 9 | > If you're looking for proxy for docker, maybe you can try [cloudflare-docker-proxy](https://github.com/ciiiii/cloudflare-docker-proxy). 10 | 11 | ## Rules example 12 | - request based on `${cloudflare_worker_route}/${key}` will request to `${url}`. 13 | - text of `*/index.yaml` will be handled with replaces rules. 14 | - `$host` in replaces will be replace with cloudflare worker route. 15 | ```javascript 16 | const routes = { 17 | stable: { 18 | url: 'https://charts.helm.sh/stable', 19 | replaces: { 20 | 'charts.helm.sh': '$host', 21 | }, 22 | }, 23 | incubator: { 24 | url: 'https://charts.helm.sh/incubator', 25 | replaces: { 26 | 'charts.helm.sh': '$host', 27 | }, 28 | }, 29 | grafana: { 30 | url: 'https://grafana.github.io/helm-charts', 31 | replaces: { 32 | 'github.com': 'hub.fastgit.org', 33 | }, 34 | }, 35 | prometheus: { 36 | url: 'https://prometheus-community.github.io/helm-charts', 37 | replaces: { 38 | 'prometheus-community.github.io/helm-charts': '$host/prometheus', 39 | }, 40 | }, 41 | 'k8s-at-home': { 42 | url: 'https://k8s-at-home.com/charts/', 43 | replaces: { 44 | 'github.com': 'hub.fastgit.org', 45 | }, 46 | }, 47 | } 48 | ``` 49 | 50 | ## Usage example 51 | ```bash 52 | # helm usage 53 | helm repo add stable https://${cloudflare_worker_route}/stable 54 | helm search repo stable/zetcd 55 | 56 | # curl test 57 | curl https://${cloudflare_worker_route}/stable/index.yaml 58 | curl https://${cloudflare_worker_route}/stable/packages/zetcd-0.1.2.tgz 59 | ``` 60 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | addEventListener('fetch', (event) => { 2 | event.passThroughOnException() 3 | event.respondWith(handleRequest(event)) 4 | }) 5 | 6 | const routes = { 7 | stable: { 8 | url: 'https://charts.helm.sh/stable', 9 | replaces: { 10 | 'charts.helm.sh': '$host', 11 | }, 12 | }, 13 | incubator: { 14 | url: 'https://charts.helm.sh/incubator', 15 | replaces: { 16 | 'charts.helm.sh': '$host', 17 | }, 18 | }, 19 | grafana: { 20 | url: 'https://grafana.github.io/helm-charts', 21 | replaces: { 22 | 'github.com': 'hub.fastgit.org', 23 | }, 24 | }, 25 | prometheus: { 26 | url: 'https://prometheus-community.github.io/helm-charts', 27 | replaces: { 28 | 'prometheus-community.github.io/helm-charts': '$host/prometheus', 29 | }, 30 | }, 31 | 'k8s-at-home': { 32 | url: 'https://k8s-at-home.com/charts/', 33 | replaces: { 34 | 'github.com': 'hub.fastgit.org', 35 | }, 36 | }, 37 | self: { 38 | url: 'https://ciiiii.github.io/helm-charts/', 39 | replaces: { 40 | 'github.com': 'hub.fastgit.org', 41 | }, 42 | }, 43 | argo: { 44 | url: 'https://argoproj.github.io/argo-helm/', 45 | replaces: { 46 | 'github.com': 'hub.fastgit.org', 47 | }, 48 | }, 49 | cilium: { 50 | url: 'https://helm.cilium.io/', 51 | replaces: {}, 52 | }, 53 | } 54 | 55 | async function handleRequest(event) { 56 | try { 57 | const request = event.request 58 | const url = new URL(request.url) 59 | const pathname = url.pathname 60 | const p = pathname.split('/').filter((e) => e.length != 0) 61 | if (p.length > 0) { 62 | for (const [key, value] of Object.entries(routes)) { 63 | if (p[0] == key) { 64 | const mirrorUrl = new URL(value.url) 65 | p[0] = mirrorUrl.pathname 66 | mirrorUrl.pathname = p.join('/') 67 | console.log('request', mirrorUrl.toString()) 68 | const resp = await fetch(mirrorUrl) 69 | if ( 70 | value.replaces && 71 | (pathname.endsWith('index.yml') || pathname.endsWith('index.yaml')) 72 | ) { 73 | const contentType = resp.headers.get('content-type') 74 | switch (contentType) { 75 | case 'text/yaml': 76 | let respStr = await resp.text() 77 | for (let [o, n] of Object.entries(value.replaces)) { 78 | n = n.replaceAll('$host', url.hostname) 79 | respStr = respStr.replaceAll(o, n) 80 | console.log(`replace ${o} to ${n} in ${mirrorUrl} response`) 81 | } 82 | return new Response(respStr, { 83 | status: resp.status, 84 | headers: resp.headers, 85 | }) 86 | default: 87 | console.log(`ignore ${contentType} response`) 88 | return resp 89 | } 90 | } 91 | return resp 92 | } 93 | } 94 | } 95 | return new Response( 96 | JSON.stringify({ message: 'no routes matched' }, { status: 404 }), 97 | ) 98 | } catch (e) { 99 | console.warn('[handleRequest]', e.toString()) 100 | return new Response( 101 | JSON.stringify({ 102 | message: e.toString(), 103 | }), 104 | { status: 500 }, 105 | ) 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### cloudflare worker ### 2 | worker 3 | 4 | # Created by https://www.toptal.com/developers/gitignore/api/osx 5 | # Edit at https://www.toptal.com/developers/gitignore?templates=osx 6 | 7 | ### OSX ### 8 | # General 9 | .DS_Store 10 | .AppleDouble 11 | .LSOverride 12 | 13 | # Icon must end with two \r 14 | Icon 15 | 16 | # Thumbnails 17 | ._* 18 | 19 | # Files that might appear in the root of a volume 20 | .DocumentRevisions-V100 21 | .fseventsd 22 | .Spotlight-V100 23 | .TemporaryItems 24 | .Trashes 25 | .VolumeIcon.icns 26 | .com.apple.timemachine.donotpresent 27 | 28 | # Directories potentially created on remote AFP share 29 | .AppleDB 30 | .AppleDesktop 31 | Network Trash Folder 32 | Temporary Items 33 | .apdisk 34 | 35 | # End of https://www.toptal.com/developers/gitignore/api/osx 36 | 37 | # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode 38 | # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode 39 | 40 | ### VisualStudioCode ### 41 | .vscode/* 42 | !.vscode/settings.json 43 | !.vscode/tasks.json 44 | !.vscode/launch.json 45 | !.vscode/extensions.json 46 | *.code-workspace 47 | 48 | # Local History for Visual Studio Code 49 | .history/ 50 | 51 | ### VisualStudioCode Patch ### 52 | # Ignore all local history of files 53 | .history 54 | .ionide 55 | 56 | # Support for Project snippet scope 57 | !.vscode/*.code-snippets 58 | 59 | # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode 60 | 61 | # Created by https://www.toptal.com/developers/gitignore/api/node 62 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 63 | 64 | ### Node ### 65 | # Logs 66 | logs 67 | *.log 68 | npm-debug.log* 69 | yarn-debug.log* 70 | yarn-error.log* 71 | lerna-debug.log* 72 | .pnpm-debug.log* 73 | 74 | # Diagnostic reports (https://nodejs.org/api/report.html) 75 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 76 | 77 | # Runtime data 78 | pids 79 | *.pid 80 | *.seed 81 | *.pid.lock 82 | 83 | # Directory for instrumented libs generated by jscoverage/JSCover 84 | lib-cov 85 | 86 | # Coverage directory used by tools like istanbul 87 | coverage 88 | *.lcov 89 | 90 | # nyc test coverage 91 | .nyc_output 92 | 93 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 94 | .grunt 95 | 96 | # Bower dependency directory (https://bower.io/) 97 | bower_components 98 | 99 | # node-waf configuration 100 | .lock-wscript 101 | 102 | # Compiled binary addons (https://nodejs.org/api/addons.html) 103 | build/Release 104 | 105 | # Dependency directories 106 | node_modules/ 107 | jspm_packages/ 108 | 109 | # Snowpack dependency directory (https://snowpack.dev/) 110 | web_modules/ 111 | 112 | # TypeScript cache 113 | *.tsbuildinfo 114 | 115 | # Optional npm cache directory 116 | .npm 117 | 118 | # Optional eslint cache 119 | .eslintcache 120 | 121 | # Microbundle cache 122 | .rpt2_cache/ 123 | .rts2_cache_cjs/ 124 | .rts2_cache_es/ 125 | .rts2_cache_umd/ 126 | 127 | # Optional REPL history 128 | .node_repl_history 129 | 130 | # Output of 'npm pack' 131 | *.tgz 132 | 133 | # Yarn Integrity file 134 | .yarn-integrity 135 | 136 | # dotenv environment variables file 137 | .env 138 | .env.test 139 | .env.production 140 | 141 | # parcel-bundler cache (https://parceljs.org/) 142 | .cache 143 | .parcel-cache 144 | 145 | # Next.js build output 146 | .next 147 | out 148 | 149 | # Nuxt.js build / generate output 150 | .nuxt 151 | dist 152 | 153 | # Gatsby files 154 | .cache/ 155 | # Comment in the public line in if your project uses Gatsby and not Next.js 156 | # https://nextjs.org/blog/next-9-1#public-directory-support 157 | # public 158 | 159 | # vuepress build output 160 | .vuepress/dist 161 | 162 | # Serverless directories 163 | .serverless/ 164 | 165 | # FuseBox cache 166 | .fusebox/ 167 | 168 | # DynamoDB Local files 169 | .dynamodb/ 170 | 171 | # TernJS port file 172 | .tern-port 173 | 174 | # Stores VSCode versions used for testing VSCode extensions 175 | .vscode-test 176 | 177 | # yarn v2 178 | .yarn/cache 179 | .yarn/unplugged 180 | .yarn/build-state.yml 181 | .yarn/install-state.gz 182 | .pnp.* 183 | 184 | ### Node Patch ### 185 | # Serverless Webpack directories 186 | .webpack/ 187 | 188 | # Optional stylelint cache 189 | .stylelintcache 190 | 191 | # SvelteKit build / generate output 192 | .svelte-kit 193 | 194 | # End of https://www.toptal.com/developers/gitignore/api/node 195 | 196 | # Created by https://www.toptal.com/developers/gitignore/api/yarn 197 | # Edit at https://www.toptal.com/developers/gitignore?templates=yarn 198 | 199 | ### yarn ### 200 | # https://yarnpkg.com/advanced/qa#which-files-should-be-gitignored 201 | 202 | .yarn/* 203 | !.yarn/releases 204 | !.yarn/plugins 205 | !.yarn/sdks 206 | !.yarn/versions 207 | 208 | # if you are NOT using Zero-installs, then: 209 | # comment the following lines 210 | !.yarn/cache 211 | 212 | # and uncomment the following lines 213 | # .pnp.* 214 | 215 | # End of https://www.toptal.com/developers/gitignore/api/yarn 216 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@discoveryjs/json-ext@^0.5.0": 6 | version "0.5.6" 7 | resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz" 8 | integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== 9 | 10 | "@types/eslint-scope@^3.7.0": 11 | version "3.7.1" 12 | resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz" 13 | integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== 14 | dependencies: 15 | "@types/eslint" "*" 16 | "@types/estree" "*" 17 | 18 | "@types/eslint@*": 19 | version "8.2.1" 20 | resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz" 21 | integrity sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ== 22 | dependencies: 23 | "@types/estree" "*" 24 | "@types/json-schema" "*" 25 | 26 | "@types/estree@*", "@types/estree@^0.0.50": 27 | version "0.0.50" 28 | resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz" 29 | integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== 30 | 31 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 32 | version "7.0.9" 33 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" 34 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== 35 | 36 | "@types/node@*": 37 | version "16.11.12" 38 | resolved "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz" 39 | integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== 40 | 41 | "@webassemblyjs/ast@1.11.1": 42 | version "1.11.1" 43 | resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" 44 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 45 | dependencies: 46 | "@webassemblyjs/helper-numbers" "1.11.1" 47 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 48 | 49 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 50 | version "1.11.1" 51 | resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" 52 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 53 | 54 | "@webassemblyjs/helper-api-error@1.11.1": 55 | version "1.11.1" 56 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" 57 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 58 | 59 | "@webassemblyjs/helper-buffer@1.11.1": 60 | version "1.11.1" 61 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" 62 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 63 | 64 | "@webassemblyjs/helper-numbers@1.11.1": 65 | version "1.11.1" 66 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" 67 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 68 | dependencies: 69 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 70 | "@webassemblyjs/helper-api-error" "1.11.1" 71 | "@xtuc/long" "4.2.2" 72 | 73 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 74 | version "1.11.1" 75 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" 76 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 77 | 78 | "@webassemblyjs/helper-wasm-section@1.11.1": 79 | version "1.11.1" 80 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" 81 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 82 | dependencies: 83 | "@webassemblyjs/ast" "1.11.1" 84 | "@webassemblyjs/helper-buffer" "1.11.1" 85 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 86 | "@webassemblyjs/wasm-gen" "1.11.1" 87 | 88 | "@webassemblyjs/ieee754@1.11.1": 89 | version "1.11.1" 90 | resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" 91 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 92 | dependencies: 93 | "@xtuc/ieee754" "^1.2.0" 94 | 95 | "@webassemblyjs/leb128@1.11.1": 96 | version "1.11.1" 97 | resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" 98 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 99 | dependencies: 100 | "@xtuc/long" "4.2.2" 101 | 102 | "@webassemblyjs/utf8@1.11.1": 103 | version "1.11.1" 104 | resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" 105 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 106 | 107 | "@webassemblyjs/wasm-edit@1.11.1": 108 | version "1.11.1" 109 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" 110 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 111 | dependencies: 112 | "@webassemblyjs/ast" "1.11.1" 113 | "@webassemblyjs/helper-buffer" "1.11.1" 114 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 115 | "@webassemblyjs/helper-wasm-section" "1.11.1" 116 | "@webassemblyjs/wasm-gen" "1.11.1" 117 | "@webassemblyjs/wasm-opt" "1.11.1" 118 | "@webassemblyjs/wasm-parser" "1.11.1" 119 | "@webassemblyjs/wast-printer" "1.11.1" 120 | 121 | "@webassemblyjs/wasm-gen@1.11.1": 122 | version "1.11.1" 123 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" 124 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 125 | dependencies: 126 | "@webassemblyjs/ast" "1.11.1" 127 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 128 | "@webassemblyjs/ieee754" "1.11.1" 129 | "@webassemblyjs/leb128" "1.11.1" 130 | "@webassemblyjs/utf8" "1.11.1" 131 | 132 | "@webassemblyjs/wasm-opt@1.11.1": 133 | version "1.11.1" 134 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" 135 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 136 | dependencies: 137 | "@webassemblyjs/ast" "1.11.1" 138 | "@webassemblyjs/helper-buffer" "1.11.1" 139 | "@webassemblyjs/wasm-gen" "1.11.1" 140 | "@webassemblyjs/wasm-parser" "1.11.1" 141 | 142 | "@webassemblyjs/wasm-parser@1.11.1": 143 | version "1.11.1" 144 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" 145 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 146 | dependencies: 147 | "@webassemblyjs/ast" "1.11.1" 148 | "@webassemblyjs/helper-api-error" "1.11.1" 149 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 150 | "@webassemblyjs/ieee754" "1.11.1" 151 | "@webassemblyjs/leb128" "1.11.1" 152 | "@webassemblyjs/utf8" "1.11.1" 153 | 154 | "@webassemblyjs/wast-printer@1.11.1": 155 | version "1.11.1" 156 | resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" 157 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 158 | dependencies: 159 | "@webassemblyjs/ast" "1.11.1" 160 | "@xtuc/long" "4.2.2" 161 | 162 | "@webpack-cli/configtest@^1.1.0": 163 | version "1.1.0" 164 | resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz" 165 | integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg== 166 | 167 | "@webpack-cli/info@^1.4.0": 168 | version "1.4.0" 169 | resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz" 170 | integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw== 171 | dependencies: 172 | envinfo "^7.7.3" 173 | 174 | "@webpack-cli/serve@^1.6.0": 175 | version "1.6.0" 176 | resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz" 177 | integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA== 178 | 179 | "@xtuc/ieee754@^1.2.0": 180 | version "1.2.0" 181 | resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" 182 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 183 | 184 | "@xtuc/long@4.2.2": 185 | version "4.2.2" 186 | resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" 187 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 188 | 189 | acorn-import-assertions@^1.7.6: 190 | version "1.8.0" 191 | resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" 192 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 193 | 194 | acorn@^8.4.1: 195 | version "8.6.0" 196 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz" 197 | integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== 198 | 199 | ajv-keywords@^3.5.2: 200 | version "3.5.2" 201 | resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" 202 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 203 | 204 | ajv@^6.12.5: 205 | version "6.12.6" 206 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 207 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 208 | dependencies: 209 | fast-deep-equal "^3.1.1" 210 | fast-json-stable-stringify "^2.0.0" 211 | json-schema-traverse "^0.4.1" 212 | uri-js "^4.2.2" 213 | 214 | browserslist@^4.14.5: 215 | version "4.18.1" 216 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz" 217 | integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== 218 | dependencies: 219 | caniuse-lite "^1.0.30001280" 220 | electron-to-chromium "^1.3.896" 221 | escalade "^3.1.1" 222 | node-releases "^2.0.1" 223 | picocolors "^1.0.0" 224 | 225 | buffer-from@^1.0.0: 226 | version "1.1.2" 227 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" 228 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 229 | 230 | caniuse-lite@^1.0.30001280: 231 | version "1.0.30001285" 232 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz" 233 | integrity sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q== 234 | 235 | chrome-trace-event@^1.0.2: 236 | version "1.0.3" 237 | resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" 238 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 239 | 240 | clone-deep@^4.0.1: 241 | version "4.0.1" 242 | resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" 243 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 244 | dependencies: 245 | is-plain-object "^2.0.4" 246 | kind-of "^6.0.2" 247 | shallow-clone "^3.0.0" 248 | 249 | colorette@^2.0.14: 250 | version "2.0.16" 251 | resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" 252 | integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== 253 | 254 | commander@^2.20.0: 255 | version "2.20.3" 256 | resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" 257 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 258 | 259 | commander@^7.0.0: 260 | version "7.2.0" 261 | resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" 262 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 263 | 264 | cross-spawn@^7.0.3: 265 | version "7.0.3" 266 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 267 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 268 | dependencies: 269 | path-key "^3.1.0" 270 | shebang-command "^2.0.0" 271 | which "^2.0.1" 272 | 273 | electron-to-chromium@^1.3.896: 274 | version "1.4.12" 275 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz" 276 | integrity sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog== 277 | 278 | enhanced-resolve@^5.8.3: 279 | version "5.8.3" 280 | resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz" 281 | integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== 282 | dependencies: 283 | graceful-fs "^4.2.4" 284 | tapable "^2.2.0" 285 | 286 | envinfo@^7.7.3: 287 | version "7.8.1" 288 | resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" 289 | integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== 290 | 291 | es-module-lexer@^0.9.0: 292 | version "0.9.3" 293 | resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" 294 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 295 | 296 | escalade@^3.1.1: 297 | version "3.1.1" 298 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 299 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 300 | 301 | eslint-scope@5.1.1: 302 | version "5.1.1" 303 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" 304 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 305 | dependencies: 306 | esrecurse "^4.3.0" 307 | estraverse "^4.1.1" 308 | 309 | esrecurse@^4.3.0: 310 | version "4.3.0" 311 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 312 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 313 | dependencies: 314 | estraverse "^5.2.0" 315 | 316 | estraverse@^4.1.1: 317 | version "4.3.0" 318 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 319 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 320 | 321 | estraverse@^5.2.0: 322 | version "5.3.0" 323 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 324 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 325 | 326 | events@^3.2.0: 327 | version "3.3.0" 328 | resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" 329 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 330 | 331 | execa@^5.0.0: 332 | version "5.1.1" 333 | resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" 334 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 335 | dependencies: 336 | cross-spawn "^7.0.3" 337 | get-stream "^6.0.0" 338 | human-signals "^2.1.0" 339 | is-stream "^2.0.0" 340 | merge-stream "^2.0.0" 341 | npm-run-path "^4.0.1" 342 | onetime "^5.1.2" 343 | signal-exit "^3.0.3" 344 | strip-final-newline "^2.0.0" 345 | 346 | fast-deep-equal@^3.1.1: 347 | version "3.1.3" 348 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 349 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 350 | 351 | fast-json-stable-stringify@^2.0.0: 352 | version "2.1.0" 353 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 354 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 355 | 356 | fastest-levenshtein@^1.0.12: 357 | version "1.0.12" 358 | resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" 359 | integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== 360 | 361 | find-up@^4.0.0: 362 | version "4.1.0" 363 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 364 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 365 | dependencies: 366 | locate-path "^5.0.0" 367 | path-exists "^4.0.0" 368 | 369 | function-bind@^1.1.1: 370 | version "1.1.1" 371 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 372 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 373 | 374 | get-stream@^6.0.0: 375 | version "6.0.1" 376 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" 377 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 378 | 379 | glob-to-regexp@^0.4.1: 380 | version "0.4.1" 381 | resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" 382 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 383 | 384 | graceful-fs@^4.1.2, graceful-fs@^4.2.4: 385 | version "4.2.8" 386 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" 387 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 388 | 389 | has-flag@^4.0.0: 390 | version "4.0.0" 391 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 392 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 393 | 394 | has@^1.0.3: 395 | version "1.0.3" 396 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 397 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 398 | dependencies: 399 | function-bind "^1.1.1" 400 | 401 | human-signals@^2.1.0: 402 | version "2.1.0" 403 | resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" 404 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 405 | 406 | import-local@^3.0.2: 407 | version "3.0.3" 408 | resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz" 409 | integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== 410 | dependencies: 411 | pkg-dir "^4.2.0" 412 | resolve-cwd "^3.0.0" 413 | 414 | interpret@^2.2.0: 415 | version "2.2.0" 416 | resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" 417 | integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== 418 | 419 | is-core-module@^2.2.0: 420 | version "2.8.0" 421 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz" 422 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 423 | dependencies: 424 | has "^1.0.3" 425 | 426 | is-plain-object@^2.0.4: 427 | version "2.0.4" 428 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" 429 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 430 | dependencies: 431 | isobject "^3.0.1" 432 | 433 | is-stream@^2.0.0: 434 | version "2.0.1" 435 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" 436 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 437 | 438 | isexe@^2.0.0: 439 | version "2.0.0" 440 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 441 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 442 | 443 | isobject@^3.0.1: 444 | version "3.0.1" 445 | resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" 446 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 447 | 448 | jest-worker@^27.0.6: 449 | version "27.4.2" 450 | resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz" 451 | integrity sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag== 452 | dependencies: 453 | "@types/node" "*" 454 | merge-stream "^2.0.0" 455 | supports-color "^8.0.0" 456 | 457 | json-parse-better-errors@^1.0.2: 458 | version "1.0.2" 459 | resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 460 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 461 | 462 | json-schema-traverse@^0.4.1: 463 | version "0.4.1" 464 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 465 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 466 | 467 | kind-of@^6.0.2: 468 | version "6.0.3" 469 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" 470 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 471 | 472 | loader-runner@^4.2.0: 473 | version "4.2.0" 474 | resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" 475 | integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== 476 | 477 | locate-path@^5.0.0: 478 | version "5.0.0" 479 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 480 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 481 | dependencies: 482 | p-locate "^4.1.0" 483 | 484 | merge-stream@^2.0.0: 485 | version "2.0.0" 486 | resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" 487 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 488 | 489 | mime-db@1.51.0: 490 | version "1.51.0" 491 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" 492 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 493 | 494 | mime-types@^2.1.27: 495 | version "2.1.34" 496 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" 497 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 498 | dependencies: 499 | mime-db "1.51.0" 500 | 501 | mimic-fn@^2.1.0: 502 | version "2.1.0" 503 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" 504 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 505 | 506 | neo-async@^2.6.2: 507 | version "2.6.2" 508 | resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" 509 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 510 | 511 | node-releases@^2.0.1: 512 | version "2.0.1" 513 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" 514 | integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== 515 | 516 | npm-run-path@^4.0.1: 517 | version "4.0.1" 518 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" 519 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 520 | dependencies: 521 | path-key "^3.0.0" 522 | 523 | onetime@^5.1.2: 524 | version "5.1.2" 525 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" 526 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 527 | dependencies: 528 | mimic-fn "^2.1.0" 529 | 530 | p-limit@^2.2.0: 531 | version "2.3.0" 532 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 533 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 534 | dependencies: 535 | p-try "^2.0.0" 536 | 537 | p-locate@^4.1.0: 538 | version "4.1.0" 539 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 540 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 541 | dependencies: 542 | p-limit "^2.2.0" 543 | 544 | p-try@^2.0.0: 545 | version "2.2.0" 546 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 547 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 548 | 549 | path-exists@^4.0.0: 550 | version "4.0.0" 551 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 552 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 553 | 554 | path-key@^3.0.0, path-key@^3.1.0: 555 | version "3.1.1" 556 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 557 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 558 | 559 | path-parse@^1.0.6: 560 | version "1.0.7" 561 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 562 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 563 | 564 | picocolors@^1.0.0: 565 | version "1.0.0" 566 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" 567 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 568 | 569 | pkg-dir@^4.2.0: 570 | version "4.2.0" 571 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 572 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 573 | dependencies: 574 | find-up "^4.0.0" 575 | 576 | prettier@^2.4.1: 577 | version "2.5.1" 578 | resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" 579 | integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== 580 | 581 | punycode@^2.1.0: 582 | version "2.1.1" 583 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 584 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 585 | 586 | randombytes@^2.1.0: 587 | version "2.1.0" 588 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 589 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 590 | dependencies: 591 | safe-buffer "^5.1.0" 592 | 593 | rechoir@^0.7.0: 594 | version "0.7.1" 595 | resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" 596 | integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== 597 | dependencies: 598 | resolve "^1.9.0" 599 | 600 | resolve-cwd@^3.0.0: 601 | version "3.0.0" 602 | resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 603 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 604 | dependencies: 605 | resolve-from "^5.0.0" 606 | 607 | resolve-from@^5.0.0: 608 | version "5.0.0" 609 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 610 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 611 | 612 | resolve@^1.9.0: 613 | version "1.20.0" 614 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" 615 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 616 | dependencies: 617 | is-core-module "^2.2.0" 618 | path-parse "^1.0.6" 619 | 620 | safe-buffer@^5.1.0: 621 | version "5.2.1" 622 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 623 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 624 | 625 | schema-utils@^3.1.0, schema-utils@^3.1.1: 626 | version "3.1.1" 627 | resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" 628 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 629 | dependencies: 630 | "@types/json-schema" "^7.0.8" 631 | ajv "^6.12.5" 632 | ajv-keywords "^3.5.2" 633 | 634 | serialize-javascript@^6.0.0: 635 | version "6.0.0" 636 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" 637 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 638 | dependencies: 639 | randombytes "^2.1.0" 640 | 641 | shallow-clone@^3.0.0: 642 | version "3.0.1" 643 | resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" 644 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 645 | dependencies: 646 | kind-of "^6.0.2" 647 | 648 | shebang-command@^2.0.0: 649 | version "2.0.0" 650 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 651 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 652 | dependencies: 653 | shebang-regex "^3.0.0" 654 | 655 | shebang-regex@^3.0.0: 656 | version "3.0.0" 657 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 658 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 659 | 660 | signal-exit@^3.0.3: 661 | version "3.0.6" 662 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz" 663 | integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== 664 | 665 | source-map-support@~0.5.20: 666 | version "0.5.21" 667 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" 668 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 669 | dependencies: 670 | buffer-from "^1.0.0" 671 | source-map "^0.6.0" 672 | 673 | source-map@^0.6.0, source-map@^0.6.1: 674 | version "0.6.1" 675 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 676 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 677 | 678 | source-map@~0.7.2: 679 | version "0.7.3" 680 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" 681 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 682 | 683 | strip-final-newline@^2.0.0: 684 | version "2.0.0" 685 | resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 686 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 687 | 688 | supports-color@^8.0.0: 689 | version "8.1.1" 690 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 691 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 692 | dependencies: 693 | has-flag "^4.0.0" 694 | 695 | tapable@^2.1.1, tapable@^2.2.0: 696 | version "2.2.1" 697 | resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" 698 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 699 | 700 | terser-webpack-plugin@^5.1.3: 701 | version "5.2.5" 702 | resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz" 703 | integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== 704 | dependencies: 705 | jest-worker "^27.0.6" 706 | schema-utils "^3.1.1" 707 | serialize-javascript "^6.0.0" 708 | source-map "^0.6.1" 709 | terser "^5.7.2" 710 | 711 | terser@^5.7.2: 712 | version "5.10.0" 713 | resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz" 714 | integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== 715 | dependencies: 716 | commander "^2.20.0" 717 | source-map "~0.7.2" 718 | source-map-support "~0.5.20" 719 | 720 | uri-js@^4.2.2: 721 | version "4.4.1" 722 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 723 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 724 | dependencies: 725 | punycode "^2.1.0" 726 | 727 | watchpack@^2.3.1: 728 | version "2.3.1" 729 | resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" 730 | integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== 731 | dependencies: 732 | glob-to-regexp "^0.4.1" 733 | graceful-fs "^4.1.2" 734 | 735 | webpack-cli@^4.9.1: 736 | version "4.9.1" 737 | resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz" 738 | integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ== 739 | dependencies: 740 | "@discoveryjs/json-ext" "^0.5.0" 741 | "@webpack-cli/configtest" "^1.1.0" 742 | "@webpack-cli/info" "^1.4.0" 743 | "@webpack-cli/serve" "^1.6.0" 744 | colorette "^2.0.14" 745 | commander "^7.0.0" 746 | execa "^5.0.0" 747 | fastest-levenshtein "^1.0.12" 748 | import-local "^3.0.2" 749 | interpret "^2.2.0" 750 | rechoir "^0.7.0" 751 | webpack-merge "^5.7.3" 752 | 753 | webpack-merge@^5.7.3: 754 | version "5.8.0" 755 | resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" 756 | integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== 757 | dependencies: 758 | clone-deep "^4.0.1" 759 | wildcard "^2.0.0" 760 | 761 | webpack-sources@^3.2.2: 762 | version "3.2.2" 763 | resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz" 764 | integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== 765 | 766 | webpack@^5.65.0: 767 | version "5.65.0" 768 | resolved "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz" 769 | integrity sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw== 770 | dependencies: 771 | "@types/eslint-scope" "^3.7.0" 772 | "@types/estree" "^0.0.50" 773 | "@webassemblyjs/ast" "1.11.1" 774 | "@webassemblyjs/wasm-edit" "1.11.1" 775 | "@webassemblyjs/wasm-parser" "1.11.1" 776 | acorn "^8.4.1" 777 | acorn-import-assertions "^1.7.6" 778 | browserslist "^4.14.5" 779 | chrome-trace-event "^1.0.2" 780 | enhanced-resolve "^5.8.3" 781 | es-module-lexer "^0.9.0" 782 | eslint-scope "5.1.1" 783 | events "^3.2.0" 784 | glob-to-regexp "^0.4.1" 785 | graceful-fs "^4.2.4" 786 | json-parse-better-errors "^1.0.2" 787 | loader-runner "^4.2.0" 788 | mime-types "^2.1.27" 789 | neo-async "^2.6.2" 790 | schema-utils "^3.1.0" 791 | tapable "^2.1.1" 792 | terser-webpack-plugin "^5.1.3" 793 | watchpack "^2.3.1" 794 | webpack-sources "^3.2.2" 795 | 796 | which@^2.0.1: 797 | version "2.0.2" 798 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 799 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 800 | dependencies: 801 | isexe "^2.0.0" 802 | 803 | wildcard@^2.0.0: 804 | version "2.0.0" 805 | resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" 806 | integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== 807 | --------------------------------------------------------------------------------