├── .github ├── .kodiak.toml ├── CODEOWNERS └── workflows │ ├── add-to-project.yml │ ├── labeller.yml │ ├── pre-release.yml │ └── release-please.yml ├── .gitignore ├── .prettierrc ├── CHANGELOG.md ├── README.md ├── demo ├── handler.js ├── index.html ├── public │ ├── favicon.ico │ └── images │ │ └── frogmouth.png └── vite.config.js ├── netlify.toml ├── package-lock.json ├── package.json ├── renovate.json ├── src └── index.ts └── tsconfig.json /.github/.kodiak.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [merge.automerge_dependencies] 4 | versions = ["minor", "patch"] 5 | usernames = ["renovate"] 6 | 7 | [approve] 8 | auto_approve_usernames = ["renovate"] 9 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @netlify/ecosystem-pod-frameworks 2 | -------------------------------------------------------------------------------- /.github/workflows/add-to-project.yml: -------------------------------------------------------------------------------- 1 | name: Add new issue to project 2 | on: 3 | issues: 4 | types: 5 | - opened 6 | jobs: 7 | track_pr: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Generate token 11 | id: generate_token 12 | uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0 13 | with: 14 | app_id: ${{ secrets.TOKENS_APP_ID }} 15 | private_key: ${{ secrets.TOKENS_PRIVATE_KEY }} 16 | - name: Add issue to Project 17 | uses: actions/add-to-project@v0.6.1 18 | with: 19 | project-url: https://github.com/orgs/netlify/projects/199 20 | github-token: ${{ steps.generate_token.outputs.token }} 21 | -------------------------------------------------------------------------------- /.github/workflows/labeller.yml: -------------------------------------------------------------------------------- 1 | name: Label PR 2 | on: 3 | pull_request: 4 | types: [opened, edited] 5 | 6 | jobs: 7 | label-pr: 8 | if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false 9 | runs-on: ubuntu-latest 10 | strategy: 11 | matrix: 12 | pr: 13 | [ 14 | { prefix: 'fix', type: 'bug' }, 15 | { prefix: 'chore', type: 'chore' }, 16 | { prefix: 'test', type: 'chore' }, 17 | { prefix: 'ci', type: 'chore' }, 18 | { prefix: 'feat', type: 'feature' }, 19 | { prefix: 'security', type: 'security' }, 20 | ] 21 | steps: 22 | - uses: netlify/pr-labeler-action@v1.1.0 23 | if: startsWith(github.event.pull_request.title, matrix.pr.prefix) 24 | with: 25 | token: '${{ secrets.GITHUB_TOKEN }}' 26 | label: 'type: ${{ matrix.pr.type }}' 27 | -------------------------------------------------------------------------------- /.github/workflows/pre-release.yml: -------------------------------------------------------------------------------- 1 | name: prerelease 2 | on: 3 | push: 4 | branches: 5 | # releases// 6 | - releases/*/* 7 | jobs: 8 | prerelease: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v3 12 | - uses: actions/setup-node@v3 13 | with: 14 | node-version: '*' 15 | cache: 'npm' 16 | check-latest: true 17 | registry-url: 'https://registry.npmjs.org' 18 | - name: Install core dependencies 19 | run: npm ci --no-audit 20 | - name: Extract tag and version 21 | id: extract 22 | run: |- 23 | ref=${{ github.ref }} 24 | branch=${ref:11} 25 | tag_version=${branch:9} 26 | tag=${tag_version%/*} 27 | version=${tag_version##*/} 28 | echo "tag=${tag}" >> $GITHUB_OUTPUT 29 | echo "version=${version}" >> $GITHUB_OUTPUT 30 | - name: Log versions 31 | run: |- 32 | echo tag=${{ steps.extract.outputs.tag }} 33 | echo version=${{ steps.extract.outputs.version }} 34 | - name: Setup git user 35 | run: git config --global user.name github-actions 36 | - name: Setup git email 37 | run: git config --global user.email github-actions@github.com 38 | - name: Run npm version 39 | run: npm version ${{ steps.extract.outputs.version }}-${{ steps.extract.outputs.tag }} --allow-same-version 40 | - name: Push changes 41 | run: git push --follow-tags 42 | - name: Run npm publish 43 | run: npm publish --tag=${{ steps.extract.outputs.tag }} 44 | env: 45 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 46 | -------------------------------------------------------------------------------- /.github/workflows/release-please.yml: -------------------------------------------------------------------------------- 1 | name: release-please 2 | on: 3 | push: 4 | branches: 5 | - main 6 | jobs: 7 | release-please: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: navikt/github-app-token-generator@a8ae52448279d468cfbca5cd899f2457f0b1f643 11 | id: get-token 12 | with: 13 | private-key: ${{ secrets.TOKENS_PRIVATE_KEY }} 14 | app-id: ${{ secrets.TOKENS_APP_ID }} 15 | - uses: GoogleCloudPlatform/release-please-action@v3 16 | id: release 17 | with: 18 | token: ${{ steps.get-token.outputs.token }} 19 | release-type: node 20 | package-name: '@netlify/plugin-nextjs' 21 | - uses: actions/checkout@v3 22 | if: ${{ steps.release.outputs.release_created }} 23 | - uses: actions/setup-node@v3 24 | with: 25 | node-version: '*' 26 | cache: 'npm' 27 | check-latest: true 28 | registry-url: 'https://registry.npmjs.org' 29 | if: ${{ steps.release.outputs.release_created }} 30 | - name: Install dependencies 31 | run: npm ci 32 | if: ${{ steps.release.outputs.release_created }} 33 | - run: npm publish 34 | if: ${{ steps.release.outputs.release_created }} 35 | env: 36 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .netlify -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [1.1.3](https://github.com/netlify/vite-plugin-netlify-edge/compare/v1.1.2...v1.1.3) (2023-10-09) 4 | 5 | 6 | ### Bug Fixes 7 | 8 | * **deps:** update dependency fast-glob to v3.3.0 ([ac9456f](https://github.com/netlify/vite-plugin-netlify-edge/commit/ac9456ff178d552f69f1922ad154a81800c865bd)) 9 | * **deps:** update dependency fast-glob to v3.3.1 ([861b6c4](https://github.com/netlify/vite-plugin-netlify-edge/commit/861b6c4f89001db7ca36196db9dbf8b7d050d503)) 10 | 11 | ## [1.1.2](https://github.com/netlify/vite-plugin-netlify-edge/compare/v1.1.1...v1.1.2) (2023-01-13) 12 | 13 | 14 | ### Bug Fixes 15 | 16 | * remove uri encoding from manifest ([9af3fbd](https://github.com/netlify/vite-plugin-netlify-edge/commit/9af3fbdab99bf10114f7a99e3b963f6bf907cf35)) 17 | 18 | ## [1.1.1](https://github.com/netlify/vite-plugin-netlify-edge/compare/v1.1.0...v1.1.1) (2022-10-03) 19 | 20 | 21 | ### Bug Fixes 22 | 23 | * **deps:** update dependency fast-glob to v3.2.12 ([c653804](https://github.com/netlify/vite-plugin-netlify-edge/commit/c653804e4a1e20f451061a9b3c184ded766f9d15)) 24 | 25 | ## [1.1.0](https://github.com/netlify/vite-plugin-netlify-edge/compare/v1.0.0...v1.1.0) (2022-05-11) 26 | 27 | 28 | ### Features 29 | 30 | * allow custom function name ([c3beb84](https://github.com/netlify/vite-plugin-netlify-edge/commit/c3beb84fba5d7f33115d987c153e6e5dc9b8fc31)) 31 | 32 | ## 1.0.0 (2022-05-09) 33 | 34 | 35 | ### Bug Fixes 36 | 37 | * add demo and use base path ([c6b5e6f](https://github.com/netlify/vite-plugin-netlify-edge/commit/c6b5e6fbdf1dff5e59a8c40b7d64c35a2845435f)) 38 | * correct publish config ([5b0ce34](https://github.com/netlify/vite-plugin-netlify-edge/commit/5b0ce34193bd9433332d3d0bd1808cd8bae9c0a5)) 39 | * publish config ([83806dc](https://github.com/netlify/vite-plugin-netlify-edge/commit/83806dc13674d1056d6b6ba11b81982540008513)) 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vite-plugin-netlify-edge 2 | 3 | This plugin helps add support for generating Netlify Edge Functions. This is mostly intended for frameworks that need to generate a catch-all Edge Function to serve all requests. 4 | 5 | # Usage 6 | 7 | Install the plugin: 8 | 9 | ```shell 10 | npm i -D @netlify/vite-plugin-netlify-edge 11 | ``` 12 | 13 | Then add the following to your `.vite.config.js`: 14 | 15 | ```js 16 | // vite.config.js 17 | import { defineConfig } from 'vite' 18 | import netlifyEdge from '@netlify/vite-plugin-netlify-edge' 19 | 20 | export default defineConfig({ 21 | plugins: [netlifyEdge()], 22 | }) 23 | ``` 24 | 25 | By default, it sets `outDir` to `.netlify/edge-functions/handler`, and generates an Edge Functions manifest that defines the `handler` function for all requests. 26 | Passing a value to `functionName` will override this. This will affect the generated manifest and the base directory for the output, but it will not affect the names of the generated bundles. For this reason you should ensure that your entrypoint file is named the same as the function name. 27 | 28 | ```js 29 | // vite.config.js 30 | 31 | // ... 32 | export default defineConfig({ 33 | plugins: [netlifyEdge({ functionName: 'server' })], 34 | }) 35 | ``` 36 | 37 | This generates the file inside `.netlify/edge-functions/server`, and creates a manifest pointing to the `server` function. 38 | 39 | ### Static file handling 40 | 41 | To help with handling static files, it registers a virtual module called `@static-manifest` that exports a `Set` that includes the paths of all files in `publicDir`. This can be used in the handler to identify requests for static files. 42 | 43 | You can disable any of this feature by passing options to the `netlifyEdge()` function: 44 | 45 | ```js 46 | // vite.config.js 47 | 48 | // ... 49 | export default defineConfig({ 50 | plugins: [netlifyEdge({ generateEdgeFunctionsManifest: false })], 51 | }) 52 | ``` 53 | 54 | You can pass additional static paths to the plugin, so that they are also included. They are paths not filenames, so should include a leading slash and be URL-encoded. 55 | 56 | ```js 57 | // vite.config.js 58 | import { defineConfig } from 'vite' 59 | import netlifyEdge from '@netlify/vite-plugin-netlify-edge' 60 | import glob from 'fast-glob' 61 | 62 | export default defineConfig({ 63 | plugins: [ 64 | netlifyEdge({ 65 | additionalStaticPaths: glob 66 | .sync('**/*.{js,css}', { cwd: 'dist/client' }) 67 | .map((path) => `/${encodeURI(path)}`), 68 | }), 69 | ], 70 | }) 71 | ``` 72 | 73 | If you need to add all paths under a directory then it is likely to be more efficient to check the prefix instead of adding all files individually. See the example below, where every path under `/assets/` is served from the CDN. 74 | 75 | In order to use this plugin to create Edge Functions you must define an SSR entrypoint: 76 | 77 | ```js 78 | // handler.js 79 | import { handleRequest } from 'my-framework' 80 | import staticFiles from '@static-manifest' 81 | 82 | export const handler = async (request, { next }) => { 83 | // Handle static files 84 | 85 | const { pathname } = new URL(request.url) 86 | 87 | // If your framework generates client assets in a subdirectory, you can add these too 88 | if (staticFiles.includes(pathname) || pathname.startsWith('assets/')) { 89 | return 90 | } 91 | 92 | // "handleRequest" is defined by your framework 93 | try { 94 | return await handleRequest(request) 95 | } catch (err) { 96 | return new Response(err.message || 'Internal Server Error', { 97 | status: err.status || 500, 98 | }) 99 | } 100 | } 101 | ``` 102 | 103 | You can then build it using the vite CLI: 104 | 105 | ```shell 106 | vite build --ssr handler.js 107 | ``` 108 | 109 | This will generate the Edge Function `.netlify/edge-functions/handler/handler.js` and a manifest file `.netlify/edge-functions/manifest.json` that defines the `handler` function. 110 | -------------------------------------------------------------------------------- /demo/handler.js: -------------------------------------------------------------------------------- 1 | import staticFiles from '@static-manifest' 2 | 3 | export const handler = async (request, { next }) => { 4 | // Handle static files 5 | 6 | const { pathname } = new URL(request.url) 7 | 8 | // If your framework generates client assets in a subdirectory, you can add these too 9 | if (staticFiles.includes(pathname) || pathname.startsWith('assets/')) { 10 | return next() 11 | } 12 | 13 | return new Response('Hello World!') 14 | } 15 | -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 |

Hi

13 | Baby tawny frogmouth looking surly 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /demo/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netlify/vite-plugin-netlify-edge/9a7ed738931d01e2a8b369498ba46a093e959461/demo/public/favicon.ico -------------------------------------------------------------------------------- /demo/public/images/frogmouth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netlify/vite-plugin-netlify-edge/9a7ed738931d01e2a8b369498ba46a093e959461/demo/public/images/frogmouth.png -------------------------------------------------------------------------------- /demo/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import netlifyEdge from '../dist/index.js' 3 | 4 | export default defineConfig({ 5 | plugins: [netlifyEdge()], 6 | }) 7 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "demo/dist" 3 | command = "npm run build && npm run build:demo" 4 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@netlify/vite-plugin-netlify-edge", 3 | "version": "1.1.3", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@netlify/vite-plugin-netlify-edge", 9 | "version": "1.1.3", 10 | "license": "MIT", 11 | "dependencies": { 12 | "fast-glob": "^3.2.11" 13 | }, 14 | "devDependencies": { 15 | "@types/node": "^18.0.0", 16 | "tsup": "^5.12.4", 17 | "typescript": "^4.6.3", 18 | "vite": "^2.9.1" 19 | } 20 | }, 21 | "node_modules/@nodelib/fs.scandir": { 22 | "version": "2.1.5", 23 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 24 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 25 | "dependencies": { 26 | "@nodelib/fs.stat": "2.0.5", 27 | "run-parallel": "^1.1.9" 28 | }, 29 | "engines": { 30 | "node": ">= 8" 31 | } 32 | }, 33 | "node_modules/@nodelib/fs.stat": { 34 | "version": "2.0.5", 35 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 36 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 37 | "engines": { 38 | "node": ">= 8" 39 | } 40 | }, 41 | "node_modules/@nodelib/fs.walk": { 42 | "version": "1.2.8", 43 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 44 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 45 | "dependencies": { 46 | "@nodelib/fs.scandir": "2.1.5", 47 | "fastq": "^1.6.0" 48 | }, 49 | "engines": { 50 | "node": ">= 8" 51 | } 52 | }, 53 | "node_modules/@types/node": { 54 | "version": "18.19.74", 55 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.74.tgz", 56 | "integrity": "sha512-HMwEkkifei3L605gFdV+/UwtpxP6JSzM+xFk2Ia6DNFSwSVBRh9qp5Tgf4lNFOMfPVuU0WnkcWpXZpgn5ufO4A==", 57 | "dev": true, 58 | "dependencies": { 59 | "undici-types": "~5.26.4" 60 | } 61 | }, 62 | "node_modules/any-promise": { 63 | "version": "1.3.0", 64 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 65 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", 66 | "dev": true 67 | }, 68 | "node_modules/anymatch": { 69 | "version": "3.1.2", 70 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 71 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 72 | "dev": true, 73 | "dependencies": { 74 | "normalize-path": "^3.0.0", 75 | "picomatch": "^2.0.4" 76 | }, 77 | "engines": { 78 | "node": ">= 8" 79 | } 80 | }, 81 | "node_modules/array-union": { 82 | "version": "2.1.0", 83 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 84 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 85 | "dev": true, 86 | "engines": { 87 | "node": ">=8" 88 | } 89 | }, 90 | "node_modules/balanced-match": { 91 | "version": "1.0.2", 92 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 93 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 94 | "dev": true 95 | }, 96 | "node_modules/binary-extensions": { 97 | "version": "2.2.0", 98 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 99 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 100 | "dev": true, 101 | "engines": { 102 | "node": ">=8" 103 | } 104 | }, 105 | "node_modules/brace-expansion": { 106 | "version": "1.1.11", 107 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 108 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 109 | "dev": true, 110 | "dependencies": { 111 | "balanced-match": "^1.0.0", 112 | "concat-map": "0.0.1" 113 | } 114 | }, 115 | "node_modules/braces": { 116 | "version": "3.0.3", 117 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 118 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 119 | "dependencies": { 120 | "fill-range": "^7.1.1" 121 | }, 122 | "engines": { 123 | "node": ">=8" 124 | } 125 | }, 126 | "node_modules/bundle-require": { 127 | "version": "3.0.4", 128 | "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-3.0.4.tgz", 129 | "integrity": "sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==", 130 | "dev": true, 131 | "dependencies": { 132 | "load-tsconfig": "^0.2.0" 133 | }, 134 | "engines": { 135 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 136 | }, 137 | "peerDependencies": { 138 | "esbuild": ">=0.13" 139 | } 140 | }, 141 | "node_modules/cac": { 142 | "version": "6.7.12", 143 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.12.tgz", 144 | "integrity": "sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==", 145 | "dev": true, 146 | "engines": { 147 | "node": ">=8" 148 | } 149 | }, 150 | "node_modules/chokidar": { 151 | "version": "3.5.3", 152 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 153 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 154 | "dev": true, 155 | "funding": [ 156 | { 157 | "type": "individual", 158 | "url": "https://paulmillr.com/funding/" 159 | } 160 | ], 161 | "dependencies": { 162 | "anymatch": "~3.1.2", 163 | "braces": "~3.0.2", 164 | "glob-parent": "~5.1.2", 165 | "is-binary-path": "~2.1.0", 166 | "is-glob": "~4.0.1", 167 | "normalize-path": "~3.0.0", 168 | "readdirp": "~3.6.0" 169 | }, 170 | "engines": { 171 | "node": ">= 8.10.0" 172 | }, 173 | "optionalDependencies": { 174 | "fsevents": "~2.3.2" 175 | } 176 | }, 177 | "node_modules/commander": { 178 | "version": "4.1.1", 179 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 180 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 181 | "dev": true, 182 | "engines": { 183 | "node": ">= 6" 184 | } 185 | }, 186 | "node_modules/concat-map": { 187 | "version": "0.0.1", 188 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 189 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 190 | "dev": true 191 | }, 192 | "node_modules/cross-spawn": { 193 | "version": "7.0.3", 194 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 195 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 196 | "dev": true, 197 | "dependencies": { 198 | "path-key": "^3.1.0", 199 | "shebang-command": "^2.0.0", 200 | "which": "^2.0.1" 201 | }, 202 | "engines": { 203 | "node": ">= 8" 204 | } 205 | }, 206 | "node_modules/debug": { 207 | "version": "4.3.4", 208 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 209 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 210 | "dev": true, 211 | "dependencies": { 212 | "ms": "2.1.2" 213 | }, 214 | "engines": { 215 | "node": ">=6.0" 216 | }, 217 | "peerDependenciesMeta": { 218 | "supports-color": { 219 | "optional": true 220 | } 221 | } 222 | }, 223 | "node_modules/dir-glob": { 224 | "version": "3.0.1", 225 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 226 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 227 | "dev": true, 228 | "dependencies": { 229 | "path-type": "^4.0.0" 230 | }, 231 | "engines": { 232 | "node": ">=8" 233 | } 234 | }, 235 | "node_modules/esbuild": { 236 | "version": "0.14.31", 237 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.31.tgz", 238 | "integrity": "sha512-QA0fUM13+JZzcvg1bdrhi7wo8Lr5IRHA9ypNn2znqxGqb66dSK6pAh01TjyBOhzZGazPQJZ1K26VrCAQJ715qA==", 239 | "dev": true, 240 | "hasInstallScript": true, 241 | "bin": { 242 | "esbuild": "bin/esbuild" 243 | }, 244 | "engines": { 245 | "node": ">=12" 246 | }, 247 | "optionalDependencies": { 248 | "esbuild-android-64": "0.14.31", 249 | "esbuild-android-arm64": "0.14.31", 250 | "esbuild-darwin-64": "0.14.31", 251 | "esbuild-darwin-arm64": "0.14.31", 252 | "esbuild-freebsd-64": "0.14.31", 253 | "esbuild-freebsd-arm64": "0.14.31", 254 | "esbuild-linux-32": "0.14.31", 255 | "esbuild-linux-64": "0.14.31", 256 | "esbuild-linux-arm": "0.14.31", 257 | "esbuild-linux-arm64": "0.14.31", 258 | "esbuild-linux-mips64le": "0.14.31", 259 | "esbuild-linux-ppc64le": "0.14.31", 260 | "esbuild-linux-riscv64": "0.14.31", 261 | "esbuild-linux-s390x": "0.14.31", 262 | "esbuild-netbsd-64": "0.14.31", 263 | "esbuild-openbsd-64": "0.14.31", 264 | "esbuild-sunos-64": "0.14.31", 265 | "esbuild-windows-32": "0.14.31", 266 | "esbuild-windows-64": "0.14.31", 267 | "esbuild-windows-arm64": "0.14.31" 268 | } 269 | }, 270 | "node_modules/esbuild-android-64": { 271 | "version": "0.14.31", 272 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.31.tgz", 273 | "integrity": "sha512-MYkuJ91w07nGmr4EouejOZK2j/f5TCnsKxY8vRr2+wpKKfHD1LTJK28VbZa+y1+AL7v1V9G98ezTUwsV3CmXNw==", 274 | "cpu": [ 275 | "x64" 276 | ], 277 | "dev": true, 278 | "optional": true, 279 | "os": [ 280 | "android" 281 | ], 282 | "engines": { 283 | "node": ">=12" 284 | } 285 | }, 286 | "node_modules/esbuild-android-arm64": { 287 | "version": "0.14.31", 288 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.31.tgz", 289 | "integrity": "sha512-0rkH/35s7ZVcsw6nS0IAkR0dekSbjZGWdlOAf3jV0lGoPqqw0x6/TmaV9w7DQgUERTH1ApmPlpAMU4kVkCq9Jg==", 290 | "cpu": [ 291 | "arm64" 292 | ], 293 | "dev": true, 294 | "optional": true, 295 | "os": [ 296 | "android" 297 | ], 298 | "engines": { 299 | "node": ">=12" 300 | } 301 | }, 302 | "node_modules/esbuild-darwin-64": { 303 | "version": "0.14.31", 304 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.31.tgz", 305 | "integrity": "sha512-kP6xPZHxtJa36Hb0jC05L3VzQSZBW2f3bpnQS20czXTRGEmM2GDiYpGdI5g2QYaw6vC4PYXjnigq8usd9g9jnQ==", 306 | "cpu": [ 307 | "x64" 308 | ], 309 | "dev": true, 310 | "optional": true, 311 | "os": [ 312 | "darwin" 313 | ], 314 | "engines": { 315 | "node": ">=12" 316 | } 317 | }, 318 | "node_modules/esbuild-darwin-arm64": { 319 | "version": "0.14.31", 320 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.31.tgz", 321 | "integrity": "sha512-1ZMog4hkNsdBGtDDtsftUqX6S9N52gEx4vX5aVehsSptgoBFIar1XrPiBTQty7YNH+bJasTpSVaZQgElCVvPKQ==", 322 | "cpu": [ 323 | "arm64" 324 | ], 325 | "dev": true, 326 | "optional": true, 327 | "os": [ 328 | "darwin" 329 | ], 330 | "engines": { 331 | "node": ">=12" 332 | } 333 | }, 334 | "node_modules/esbuild-freebsd-64": { 335 | "version": "0.14.31", 336 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.31.tgz", 337 | "integrity": "sha512-Zo0BYj7QpVFWoUpkv6Ng0RO2eJ4zk/WDaHMO88+jr5HuYmxsOre0imgwaZVPquTuJnCvL1G48BFucJ3tFflSeQ==", 338 | "cpu": [ 339 | "x64" 340 | ], 341 | "dev": true, 342 | "optional": true, 343 | "os": [ 344 | "freebsd" 345 | ], 346 | "engines": { 347 | "node": ">=12" 348 | } 349 | }, 350 | "node_modules/esbuild-freebsd-arm64": { 351 | "version": "0.14.31", 352 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.31.tgz", 353 | "integrity": "sha512-t85bS6jbRpmdjr4pdr/FY/fpx8lo1vv9S7BAs2EsXKJQhRDMIiC3QW+k2acYJoRuqirlvJcJVFQGCq/PfyC1kA==", 354 | "cpu": [ 355 | "arm64" 356 | ], 357 | "dev": true, 358 | "optional": true, 359 | "os": [ 360 | "freebsd" 361 | ], 362 | "engines": { 363 | "node": ">=12" 364 | } 365 | }, 366 | "node_modules/esbuild-linux-32": { 367 | "version": "0.14.31", 368 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.31.tgz", 369 | "integrity": "sha512-XYtOk/GodSkv+UOYVwryGpGPuFnszsMvRMKq6cIUfFfdssHuKDsU9IZveyCG44J106J39ABenQ5EetbYtVJHUw==", 370 | "cpu": [ 371 | "ia32" 372 | ], 373 | "dev": true, 374 | "optional": true, 375 | "os": [ 376 | "linux" 377 | ], 378 | "engines": { 379 | "node": ">=12" 380 | } 381 | }, 382 | "node_modules/esbuild-linux-64": { 383 | "version": "0.14.31", 384 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.31.tgz", 385 | "integrity": "sha512-Zf9CZxAxaXWHLqCg/QZ/hs0RU0XV3IBxV+ENQzy00S4QOTnZAvSLgPciILHHrVJ0lPIlb4XzAqlLM5y6iI2LIw==", 386 | "cpu": [ 387 | "x64" 388 | ], 389 | "dev": true, 390 | "optional": true, 391 | "os": [ 392 | "linux" 393 | ], 394 | "engines": { 395 | "node": ">=12" 396 | } 397 | }, 398 | "node_modules/esbuild-linux-arm": { 399 | "version": "0.14.31", 400 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.31.tgz", 401 | "integrity": "sha512-RpiaeHPRlgCCDskxoyIsI49BhcDtZ4cl8+SLffizDm0yMNWP538SUg0ezQ2TTOPj3/svaGIbkRDwYtAon0Sjkg==", 402 | "cpu": [ 403 | "arm" 404 | ], 405 | "dev": true, 406 | "optional": true, 407 | "os": [ 408 | "linux" 409 | ], 410 | "engines": { 411 | "node": ">=12" 412 | } 413 | }, 414 | "node_modules/esbuild-linux-arm64": { 415 | "version": "0.14.31", 416 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.31.tgz", 417 | "integrity": "sha512-V/H0tv+xpQ9IOHM+o85oCKNNidIEc5CcnDWl0V+hPd2F03dqdbFkWPBGphx8rD4JSQn6UefUQ1iH7y1qIzO8Fw==", 418 | "cpu": [ 419 | "arm64" 420 | ], 421 | "dev": true, 422 | "optional": true, 423 | "os": [ 424 | "linux" 425 | ], 426 | "engines": { 427 | "node": ">=12" 428 | } 429 | }, 430 | "node_modules/esbuild-linux-mips64le": { 431 | "version": "0.14.31", 432 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.31.tgz", 433 | "integrity": "sha512-9/oBfAckInRuUg6AEgdCLLn6KJ6UOJDOLmUinTsReVSg6AfV6wxYQJq9iQM2idRogP7GUpomJ+bvCdWXpotQRQ==", 434 | "cpu": [ 435 | "mips64el" 436 | ], 437 | "dev": true, 438 | "optional": true, 439 | "os": [ 440 | "linux" 441 | ], 442 | "engines": { 443 | "node": ">=12" 444 | } 445 | }, 446 | "node_modules/esbuild-linux-ppc64le": { 447 | "version": "0.14.31", 448 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.31.tgz", 449 | "integrity": "sha512-NMcb14Pg+8q8raGkzor9/R3vQwKzgxE3694BtO2SDLBwJuL2C1dQ1ZtM1t7ZvArQBgT8RiZVxb0/3fD+qGNk7g==", 450 | "cpu": [ 451 | "ppc64" 452 | ], 453 | "dev": true, 454 | "optional": true, 455 | "os": [ 456 | "linux" 457 | ], 458 | "engines": { 459 | "node": ">=12" 460 | } 461 | }, 462 | "node_modules/esbuild-linux-riscv64": { 463 | "version": "0.14.31", 464 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.31.tgz", 465 | "integrity": "sha512-l13yvmsVfawAnoYfcpuvml+nTlrOmtdceXYufSkXl2DOb0JKcuR6ARlAzuQCDcpo49SOJy1cCxpwlOIsUQBfzA==", 466 | "cpu": [ 467 | "riscv64" 468 | ], 469 | "dev": true, 470 | "optional": true, 471 | "os": [ 472 | "linux" 473 | ], 474 | "engines": { 475 | "node": ">=12" 476 | } 477 | }, 478 | "node_modules/esbuild-linux-s390x": { 479 | "version": "0.14.31", 480 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.31.tgz", 481 | "integrity": "sha512-GIwV9mY3koYja9MCSkKLk1P7rj+MkPV0UsGsZ575hEcIBrXeKN9jBi6X/bxDDPEN/SUAH35cJhBNrZU4x9lEfg==", 482 | "cpu": [ 483 | "s390x" 484 | ], 485 | "dev": true, 486 | "optional": true, 487 | "os": [ 488 | "linux" 489 | ], 490 | "engines": { 491 | "node": ">=12" 492 | } 493 | }, 494 | "node_modules/esbuild-netbsd-64": { 495 | "version": "0.14.31", 496 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.31.tgz", 497 | "integrity": "sha512-bJ+pyLvKQm+Obp5k7/Wk8e9Gdkls56F1aiI3uptoIfOIUqsZImH7pDyTrSufwqsFp62kO9LRuwXnjDwQtPyhFQ==", 498 | "cpu": [ 499 | "x64" 500 | ], 501 | "dev": true, 502 | "optional": true, 503 | "os": [ 504 | "netbsd" 505 | ], 506 | "engines": { 507 | "node": ">=12" 508 | } 509 | }, 510 | "node_modules/esbuild-openbsd-64": { 511 | "version": "0.14.31", 512 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.31.tgz", 513 | "integrity": "sha512-NRAAPPca05H9j9Xab0kVXK0V6/pyZGGy8d2Y8KS0BMwWEydlD4KCJDmH8/7bWCKYLRGOOCE9/GPBJyPWHFW3sg==", 514 | "cpu": [ 515 | "x64" 516 | ], 517 | "dev": true, 518 | "optional": true, 519 | "os": [ 520 | "openbsd" 521 | ], 522 | "engines": { 523 | "node": ">=12" 524 | } 525 | }, 526 | "node_modules/esbuild-sunos-64": { 527 | "version": "0.14.31", 528 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.31.tgz", 529 | "integrity": "sha512-9uA+V8w9Eehu4ldb95lPWdgCMcMO5HH6pXmfkk5usn3JsSZxKdLKsXB4hYgP80wscZvVYXJl2G+KNxsUTfPhZw==", 530 | "cpu": [ 531 | "x64" 532 | ], 533 | "dev": true, 534 | "optional": true, 535 | "os": [ 536 | "sunos" 537 | ], 538 | "engines": { 539 | "node": ">=12" 540 | } 541 | }, 542 | "node_modules/esbuild-windows-32": { 543 | "version": "0.14.31", 544 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.31.tgz", 545 | "integrity": "sha512-VGdncQTqoxD9q3v/dk0Yugbmx2FzOkcs0OemBYc1X9KXOLQYH0uQbLJIckZdZOC3J+JKSExbYFrzYCOwWPuNyA==", 546 | "cpu": [ 547 | "ia32" 548 | ], 549 | "dev": true, 550 | "optional": true, 551 | "os": [ 552 | "win32" 553 | ], 554 | "engines": { 555 | "node": ">=12" 556 | } 557 | }, 558 | "node_modules/esbuild-windows-64": { 559 | "version": "0.14.31", 560 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.31.tgz", 561 | "integrity": "sha512-v/2ye5zBqpmCzi3bLCagStbNQlnOsY7WtMrD2Q0xZxeSIXONxji15KYtVee5o7nw4lXWbQSS1BL8G6BBMvtq4A==", 562 | "cpu": [ 563 | "x64" 564 | ], 565 | "dev": true, 566 | "optional": true, 567 | "os": [ 568 | "win32" 569 | ], 570 | "engines": { 571 | "node": ">=12" 572 | } 573 | }, 574 | "node_modules/esbuild-windows-arm64": { 575 | "version": "0.14.31", 576 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.31.tgz", 577 | "integrity": "sha512-RXeU42FJoG1sriNHg73h4S+5B7L/gw+8T7U9u8IWqSSEbY6fZvBh4uofugiU1szUDqqP00GHwZ09WgYe3lGZiw==", 578 | "cpu": [ 579 | "arm64" 580 | ], 581 | "dev": true, 582 | "optional": true, 583 | "os": [ 584 | "win32" 585 | ], 586 | "engines": { 587 | "node": ">=12" 588 | } 589 | }, 590 | "node_modules/execa": { 591 | "version": "5.1.1", 592 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 593 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 594 | "dev": true, 595 | "dependencies": { 596 | "cross-spawn": "^7.0.3", 597 | "get-stream": "^6.0.0", 598 | "human-signals": "^2.1.0", 599 | "is-stream": "^2.0.0", 600 | "merge-stream": "^2.0.0", 601 | "npm-run-path": "^4.0.1", 602 | "onetime": "^5.1.2", 603 | "signal-exit": "^3.0.3", 604 | "strip-final-newline": "^2.0.0" 605 | }, 606 | "engines": { 607 | "node": ">=10" 608 | }, 609 | "funding": { 610 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 611 | } 612 | }, 613 | "node_modules/fast-glob": { 614 | "version": "3.3.3", 615 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 616 | "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 617 | "dependencies": { 618 | "@nodelib/fs.stat": "^2.0.2", 619 | "@nodelib/fs.walk": "^1.2.3", 620 | "glob-parent": "^5.1.2", 621 | "merge2": "^1.3.0", 622 | "micromatch": "^4.0.8" 623 | }, 624 | "engines": { 625 | "node": ">=8.6.0" 626 | } 627 | }, 628 | "node_modules/fastq": { 629 | "version": "1.13.0", 630 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 631 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 632 | "dependencies": { 633 | "reusify": "^1.0.4" 634 | } 635 | }, 636 | "node_modules/fill-range": { 637 | "version": "7.1.1", 638 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 639 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 640 | "dependencies": { 641 | "to-regex-range": "^5.0.1" 642 | }, 643 | "engines": { 644 | "node": ">=8" 645 | } 646 | }, 647 | "node_modules/fs.realpath": { 648 | "version": "1.0.0", 649 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 650 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 651 | "dev": true 652 | }, 653 | "node_modules/fsevents": { 654 | "version": "2.3.2", 655 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 656 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 657 | "dev": true, 658 | "hasInstallScript": true, 659 | "optional": true, 660 | "os": [ 661 | "darwin" 662 | ], 663 | "engines": { 664 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 665 | } 666 | }, 667 | "node_modules/function-bind": { 668 | "version": "1.1.1", 669 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 670 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 671 | "dev": true 672 | }, 673 | "node_modules/get-stream": { 674 | "version": "6.0.1", 675 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 676 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 677 | "dev": true, 678 | "engines": { 679 | "node": ">=10" 680 | }, 681 | "funding": { 682 | "url": "https://github.com/sponsors/sindresorhus" 683 | } 684 | }, 685 | "node_modules/glob": { 686 | "version": "7.1.6", 687 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 688 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 689 | "dev": true, 690 | "dependencies": { 691 | "fs.realpath": "^1.0.0", 692 | "inflight": "^1.0.4", 693 | "inherits": "2", 694 | "minimatch": "^3.0.4", 695 | "once": "^1.3.0", 696 | "path-is-absolute": "^1.0.0" 697 | }, 698 | "engines": { 699 | "node": "*" 700 | }, 701 | "funding": { 702 | "url": "https://github.com/sponsors/isaacs" 703 | } 704 | }, 705 | "node_modules/glob-parent": { 706 | "version": "5.1.2", 707 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 708 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 709 | "dependencies": { 710 | "is-glob": "^4.0.1" 711 | }, 712 | "engines": { 713 | "node": ">= 6" 714 | } 715 | }, 716 | "node_modules/globby": { 717 | "version": "11.1.0", 718 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 719 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 720 | "dev": true, 721 | "dependencies": { 722 | "array-union": "^2.1.0", 723 | "dir-glob": "^3.0.1", 724 | "fast-glob": "^3.2.9", 725 | "ignore": "^5.2.0", 726 | "merge2": "^1.4.1", 727 | "slash": "^3.0.0" 728 | }, 729 | "engines": { 730 | "node": ">=10" 731 | }, 732 | "funding": { 733 | "url": "https://github.com/sponsors/sindresorhus" 734 | } 735 | }, 736 | "node_modules/has": { 737 | "version": "1.0.3", 738 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 739 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 740 | "dev": true, 741 | "dependencies": { 742 | "function-bind": "^1.1.1" 743 | }, 744 | "engines": { 745 | "node": ">= 0.4.0" 746 | } 747 | }, 748 | "node_modules/human-signals": { 749 | "version": "2.1.0", 750 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 751 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 752 | "dev": true, 753 | "engines": { 754 | "node": ">=10.17.0" 755 | } 756 | }, 757 | "node_modules/ignore": { 758 | "version": "5.2.0", 759 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 760 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 761 | "dev": true, 762 | "engines": { 763 | "node": ">= 4" 764 | } 765 | }, 766 | "node_modules/inflight": { 767 | "version": "1.0.6", 768 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 769 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 770 | "dev": true, 771 | "dependencies": { 772 | "once": "^1.3.0", 773 | "wrappy": "1" 774 | } 775 | }, 776 | "node_modules/inherits": { 777 | "version": "2.0.4", 778 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 779 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 780 | "dev": true 781 | }, 782 | "node_modules/is-binary-path": { 783 | "version": "2.1.0", 784 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 785 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 786 | "dev": true, 787 | "dependencies": { 788 | "binary-extensions": "^2.0.0" 789 | }, 790 | "engines": { 791 | "node": ">=8" 792 | } 793 | }, 794 | "node_modules/is-core-module": { 795 | "version": "2.8.1", 796 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 797 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 798 | "dev": true, 799 | "dependencies": { 800 | "has": "^1.0.3" 801 | }, 802 | "funding": { 803 | "url": "https://github.com/sponsors/ljharb" 804 | } 805 | }, 806 | "node_modules/is-extglob": { 807 | "version": "2.1.1", 808 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 809 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 810 | "engines": { 811 | "node": ">=0.10.0" 812 | } 813 | }, 814 | "node_modules/is-glob": { 815 | "version": "4.0.3", 816 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 817 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 818 | "dependencies": { 819 | "is-extglob": "^2.1.1" 820 | }, 821 | "engines": { 822 | "node": ">=0.10.0" 823 | } 824 | }, 825 | "node_modules/is-number": { 826 | "version": "7.0.0", 827 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 828 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 829 | "engines": { 830 | "node": ">=0.12.0" 831 | } 832 | }, 833 | "node_modules/is-stream": { 834 | "version": "2.0.1", 835 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 836 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 837 | "dev": true, 838 | "engines": { 839 | "node": ">=8" 840 | }, 841 | "funding": { 842 | "url": "https://github.com/sponsors/sindresorhus" 843 | } 844 | }, 845 | "node_modules/isexe": { 846 | "version": "2.0.0", 847 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 848 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 849 | "dev": true 850 | }, 851 | "node_modules/joycon": { 852 | "version": "3.1.1", 853 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", 854 | "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", 855 | "dev": true, 856 | "engines": { 857 | "node": ">=10" 858 | } 859 | }, 860 | "node_modules/lilconfig": { 861 | "version": "2.0.5", 862 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", 863 | "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", 864 | "dev": true, 865 | "engines": { 866 | "node": ">=10" 867 | } 868 | }, 869 | "node_modules/lines-and-columns": { 870 | "version": "1.2.4", 871 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 872 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 873 | "dev": true 874 | }, 875 | "node_modules/load-tsconfig": { 876 | "version": "0.2.3", 877 | "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.3.tgz", 878 | "integrity": "sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==", 879 | "dev": true, 880 | "engines": { 881 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 882 | } 883 | }, 884 | "node_modules/lodash.sortby": { 885 | "version": "4.7.0", 886 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 887 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", 888 | "dev": true 889 | }, 890 | "node_modules/merge-stream": { 891 | "version": "2.0.0", 892 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 893 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 894 | "dev": true 895 | }, 896 | "node_modules/merge2": { 897 | "version": "1.4.1", 898 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 899 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 900 | "engines": { 901 | "node": ">= 8" 902 | } 903 | }, 904 | "node_modules/micromatch": { 905 | "version": "4.0.8", 906 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 907 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 908 | "dependencies": { 909 | "braces": "^3.0.3", 910 | "picomatch": "^2.3.1" 911 | }, 912 | "engines": { 913 | "node": ">=8.6" 914 | } 915 | }, 916 | "node_modules/mimic-fn": { 917 | "version": "2.1.0", 918 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 919 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 920 | "dev": true, 921 | "engines": { 922 | "node": ">=6" 923 | } 924 | }, 925 | "node_modules/minimatch": { 926 | "version": "3.1.2", 927 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 928 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 929 | "dev": true, 930 | "dependencies": { 931 | "brace-expansion": "^1.1.7" 932 | }, 933 | "engines": { 934 | "node": "*" 935 | } 936 | }, 937 | "node_modules/ms": { 938 | "version": "2.1.2", 939 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 940 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 941 | "dev": true 942 | }, 943 | "node_modules/mz": { 944 | "version": "2.7.0", 945 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 946 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 947 | "dev": true, 948 | "dependencies": { 949 | "any-promise": "^1.0.0", 950 | "object-assign": "^4.0.1", 951 | "thenify-all": "^1.0.0" 952 | } 953 | }, 954 | "node_modules/nanoid": { 955 | "version": "3.3.4", 956 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 957 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 958 | "dev": true, 959 | "bin": { 960 | "nanoid": "bin/nanoid.cjs" 961 | }, 962 | "engines": { 963 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 964 | } 965 | }, 966 | "node_modules/normalize-path": { 967 | "version": "3.0.0", 968 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 969 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 970 | "dev": true, 971 | "engines": { 972 | "node": ">=0.10.0" 973 | } 974 | }, 975 | "node_modules/npm-run-path": { 976 | "version": "4.0.1", 977 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 978 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 979 | "dev": true, 980 | "dependencies": { 981 | "path-key": "^3.0.0" 982 | }, 983 | "engines": { 984 | "node": ">=8" 985 | } 986 | }, 987 | "node_modules/object-assign": { 988 | "version": "4.1.1", 989 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 990 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 991 | "dev": true, 992 | "engines": { 993 | "node": ">=0.10.0" 994 | } 995 | }, 996 | "node_modules/once": { 997 | "version": "1.4.0", 998 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 999 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1000 | "dev": true, 1001 | "dependencies": { 1002 | "wrappy": "1" 1003 | } 1004 | }, 1005 | "node_modules/onetime": { 1006 | "version": "5.1.2", 1007 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 1008 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1009 | "dev": true, 1010 | "dependencies": { 1011 | "mimic-fn": "^2.1.0" 1012 | }, 1013 | "engines": { 1014 | "node": ">=6" 1015 | }, 1016 | "funding": { 1017 | "url": "https://github.com/sponsors/sindresorhus" 1018 | } 1019 | }, 1020 | "node_modules/path-is-absolute": { 1021 | "version": "1.0.1", 1022 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1023 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1024 | "dev": true, 1025 | "engines": { 1026 | "node": ">=0.10.0" 1027 | } 1028 | }, 1029 | "node_modules/path-key": { 1030 | "version": "3.1.1", 1031 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1032 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1033 | "dev": true, 1034 | "engines": { 1035 | "node": ">=8" 1036 | } 1037 | }, 1038 | "node_modules/path-parse": { 1039 | "version": "1.0.7", 1040 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1041 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1042 | "dev": true 1043 | }, 1044 | "node_modules/path-type": { 1045 | "version": "4.0.0", 1046 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1047 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1048 | "dev": true, 1049 | "engines": { 1050 | "node": ">=8" 1051 | } 1052 | }, 1053 | "node_modules/picocolors": { 1054 | "version": "1.0.0", 1055 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1056 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1057 | "dev": true 1058 | }, 1059 | "node_modules/picomatch": { 1060 | "version": "2.3.1", 1061 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1062 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1063 | "engines": { 1064 | "node": ">=8.6" 1065 | }, 1066 | "funding": { 1067 | "url": "https://github.com/sponsors/jonschlinkert" 1068 | } 1069 | }, 1070 | "node_modules/pirates": { 1071 | "version": "4.0.5", 1072 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", 1073 | "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", 1074 | "dev": true, 1075 | "engines": { 1076 | "node": ">= 6" 1077 | } 1078 | }, 1079 | "node_modules/postcss": { 1080 | "version": "8.4.13", 1081 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", 1082 | "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", 1083 | "dev": true, 1084 | "funding": [ 1085 | { 1086 | "type": "opencollective", 1087 | "url": "https://opencollective.com/postcss/" 1088 | }, 1089 | { 1090 | "type": "tidelift", 1091 | "url": "https://tidelift.com/funding/github/npm/postcss" 1092 | } 1093 | ], 1094 | "dependencies": { 1095 | "nanoid": "^3.3.3", 1096 | "picocolors": "^1.0.0", 1097 | "source-map-js": "^1.0.2" 1098 | }, 1099 | "engines": { 1100 | "node": "^10 || ^12 || >=14" 1101 | } 1102 | }, 1103 | "node_modules/postcss-load-config": { 1104 | "version": "3.1.4", 1105 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 1106 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 1107 | "dev": true, 1108 | "dependencies": { 1109 | "lilconfig": "^2.0.5", 1110 | "yaml": "^1.10.2" 1111 | }, 1112 | "engines": { 1113 | "node": ">= 10" 1114 | }, 1115 | "funding": { 1116 | "type": "opencollective", 1117 | "url": "https://opencollective.com/postcss/" 1118 | }, 1119 | "peerDependencies": { 1120 | "postcss": ">=8.0.9", 1121 | "ts-node": ">=9.0.0" 1122 | }, 1123 | "peerDependenciesMeta": { 1124 | "postcss": { 1125 | "optional": true 1126 | }, 1127 | "ts-node": { 1128 | "optional": true 1129 | } 1130 | } 1131 | }, 1132 | "node_modules/punycode": { 1133 | "version": "2.1.1", 1134 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1135 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1136 | "dev": true, 1137 | "engines": { 1138 | "node": ">=6" 1139 | } 1140 | }, 1141 | "node_modules/queue-microtask": { 1142 | "version": "1.2.3", 1143 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1144 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1145 | "funding": [ 1146 | { 1147 | "type": "github", 1148 | "url": "https://github.com/sponsors/feross" 1149 | }, 1150 | { 1151 | "type": "patreon", 1152 | "url": "https://www.patreon.com/feross" 1153 | }, 1154 | { 1155 | "type": "consulting", 1156 | "url": "https://feross.org/support" 1157 | } 1158 | ] 1159 | }, 1160 | "node_modules/readdirp": { 1161 | "version": "3.6.0", 1162 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1163 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1164 | "dev": true, 1165 | "dependencies": { 1166 | "picomatch": "^2.2.1" 1167 | }, 1168 | "engines": { 1169 | "node": ">=8.10.0" 1170 | } 1171 | }, 1172 | "node_modules/resolve": { 1173 | "version": "1.22.0", 1174 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1175 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1176 | "dev": true, 1177 | "dependencies": { 1178 | "is-core-module": "^2.8.1", 1179 | "path-parse": "^1.0.7", 1180 | "supports-preserve-symlinks-flag": "^1.0.0" 1181 | }, 1182 | "bin": { 1183 | "resolve": "bin/resolve" 1184 | }, 1185 | "funding": { 1186 | "url": "https://github.com/sponsors/ljharb" 1187 | } 1188 | }, 1189 | "node_modules/resolve-from": { 1190 | "version": "5.0.0", 1191 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1192 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1193 | "dev": true, 1194 | "engines": { 1195 | "node": ">=8" 1196 | } 1197 | }, 1198 | "node_modules/reusify": { 1199 | "version": "1.0.4", 1200 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1201 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1202 | "engines": { 1203 | "iojs": ">=1.0.0", 1204 | "node": ">=0.10.0" 1205 | } 1206 | }, 1207 | "node_modules/rollup": { 1208 | "version": "2.75.3", 1209 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.3.tgz", 1210 | "integrity": "sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ==", 1211 | "dev": true, 1212 | "bin": { 1213 | "rollup": "dist/bin/rollup" 1214 | }, 1215 | "engines": { 1216 | "node": ">=10.0.0" 1217 | }, 1218 | "optionalDependencies": { 1219 | "fsevents": "~2.3.2" 1220 | } 1221 | }, 1222 | "node_modules/run-parallel": { 1223 | "version": "1.2.0", 1224 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1225 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1226 | "funding": [ 1227 | { 1228 | "type": "github", 1229 | "url": "https://github.com/sponsors/feross" 1230 | }, 1231 | { 1232 | "type": "patreon", 1233 | "url": "https://www.patreon.com/feross" 1234 | }, 1235 | { 1236 | "type": "consulting", 1237 | "url": "https://feross.org/support" 1238 | } 1239 | ], 1240 | "dependencies": { 1241 | "queue-microtask": "^1.2.2" 1242 | } 1243 | }, 1244 | "node_modules/shebang-command": { 1245 | "version": "2.0.0", 1246 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1247 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1248 | "dev": true, 1249 | "dependencies": { 1250 | "shebang-regex": "^3.0.0" 1251 | }, 1252 | "engines": { 1253 | "node": ">=8" 1254 | } 1255 | }, 1256 | "node_modules/shebang-regex": { 1257 | "version": "3.0.0", 1258 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1259 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1260 | "dev": true, 1261 | "engines": { 1262 | "node": ">=8" 1263 | } 1264 | }, 1265 | "node_modules/signal-exit": { 1266 | "version": "3.0.7", 1267 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1268 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 1269 | "dev": true 1270 | }, 1271 | "node_modules/slash": { 1272 | "version": "3.0.0", 1273 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 1274 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1275 | "dev": true, 1276 | "engines": { 1277 | "node": ">=8" 1278 | } 1279 | }, 1280 | "node_modules/source-map": { 1281 | "version": "0.8.0-beta.0", 1282 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", 1283 | "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", 1284 | "dev": true, 1285 | "dependencies": { 1286 | "whatwg-url": "^7.0.0" 1287 | }, 1288 | "engines": { 1289 | "node": ">= 8" 1290 | } 1291 | }, 1292 | "node_modules/source-map-js": { 1293 | "version": "1.0.2", 1294 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1295 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1296 | "dev": true, 1297 | "engines": { 1298 | "node": ">=0.10.0" 1299 | } 1300 | }, 1301 | "node_modules/strip-final-newline": { 1302 | "version": "2.0.0", 1303 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 1304 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 1305 | "dev": true, 1306 | "engines": { 1307 | "node": ">=6" 1308 | } 1309 | }, 1310 | "node_modules/sucrase": { 1311 | "version": "3.20.3", 1312 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", 1313 | "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", 1314 | "dev": true, 1315 | "dependencies": { 1316 | "commander": "^4.0.0", 1317 | "glob": "7.1.6", 1318 | "lines-and-columns": "^1.1.6", 1319 | "mz": "^2.7.0", 1320 | "pirates": "^4.0.1", 1321 | "ts-interface-checker": "^0.1.9" 1322 | }, 1323 | "bin": { 1324 | "sucrase": "bin/sucrase", 1325 | "sucrase-node": "bin/sucrase-node" 1326 | }, 1327 | "engines": { 1328 | "node": ">=8" 1329 | } 1330 | }, 1331 | "node_modules/supports-preserve-symlinks-flag": { 1332 | "version": "1.0.0", 1333 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1334 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1335 | "dev": true, 1336 | "engines": { 1337 | "node": ">= 0.4" 1338 | }, 1339 | "funding": { 1340 | "url": "https://github.com/sponsors/ljharb" 1341 | } 1342 | }, 1343 | "node_modules/thenify": { 1344 | "version": "3.3.1", 1345 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 1346 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 1347 | "dev": true, 1348 | "dependencies": { 1349 | "any-promise": "^1.0.0" 1350 | } 1351 | }, 1352 | "node_modules/thenify-all": { 1353 | "version": "1.6.0", 1354 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 1355 | "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", 1356 | "dev": true, 1357 | "dependencies": { 1358 | "thenify": ">= 3.1.0 < 4" 1359 | }, 1360 | "engines": { 1361 | "node": ">=0.8" 1362 | } 1363 | }, 1364 | "node_modules/to-regex-range": { 1365 | "version": "5.0.1", 1366 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1367 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1368 | "dependencies": { 1369 | "is-number": "^7.0.0" 1370 | }, 1371 | "engines": { 1372 | "node": ">=8.0" 1373 | } 1374 | }, 1375 | "node_modules/tr46": { 1376 | "version": "1.0.1", 1377 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 1378 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", 1379 | "dev": true, 1380 | "dependencies": { 1381 | "punycode": "^2.1.0" 1382 | } 1383 | }, 1384 | "node_modules/tree-kill": { 1385 | "version": "1.2.2", 1386 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", 1387 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 1388 | "dev": true, 1389 | "bin": { 1390 | "tree-kill": "cli.js" 1391 | } 1392 | }, 1393 | "node_modules/ts-interface-checker": { 1394 | "version": "0.1.13", 1395 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 1396 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 1397 | "dev": true 1398 | }, 1399 | "node_modules/tsup": { 1400 | "version": "5.12.9", 1401 | "resolved": "https://registry.npmjs.org/tsup/-/tsup-5.12.9.tgz", 1402 | "integrity": "sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==", 1403 | "dev": true, 1404 | "dependencies": { 1405 | "bundle-require": "^3.0.2", 1406 | "cac": "^6.7.12", 1407 | "chokidar": "^3.5.1", 1408 | "debug": "^4.3.1", 1409 | "esbuild": "^0.14.25", 1410 | "execa": "^5.0.0", 1411 | "globby": "^11.0.3", 1412 | "joycon": "^3.0.1", 1413 | "postcss-load-config": "^3.0.1", 1414 | "resolve-from": "^5.0.0", 1415 | "rollup": "^2.74.1", 1416 | "source-map": "0.8.0-beta.0", 1417 | "sucrase": "^3.20.3", 1418 | "tree-kill": "^1.2.2" 1419 | }, 1420 | "bin": { 1421 | "tsup": "dist/cli-default.js", 1422 | "tsup-node": "dist/cli-node.js" 1423 | }, 1424 | "peerDependencies": { 1425 | "@swc/core": "^1", 1426 | "postcss": "^8.4.12", 1427 | "typescript": "^4.1.0" 1428 | }, 1429 | "peerDependenciesMeta": { 1430 | "@swc/core": { 1431 | "optional": true 1432 | }, 1433 | "postcss": { 1434 | "optional": true 1435 | }, 1436 | "typescript": { 1437 | "optional": true 1438 | } 1439 | } 1440 | }, 1441 | "node_modules/typescript": { 1442 | "version": "4.9.5", 1443 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", 1444 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", 1445 | "dev": true, 1446 | "bin": { 1447 | "tsc": "bin/tsc", 1448 | "tsserver": "bin/tsserver" 1449 | }, 1450 | "engines": { 1451 | "node": ">=4.2.0" 1452 | } 1453 | }, 1454 | "node_modules/undici-types": { 1455 | "version": "5.26.5", 1456 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1457 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 1458 | "dev": true 1459 | }, 1460 | "node_modules/vite": { 1461 | "version": "2.9.18", 1462 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.18.tgz", 1463 | "integrity": "sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==", 1464 | "dev": true, 1465 | "dependencies": { 1466 | "esbuild": "^0.14.27", 1467 | "postcss": "^8.4.13", 1468 | "resolve": "^1.22.0", 1469 | "rollup": ">=2.59.0 <2.78.0" 1470 | }, 1471 | "bin": { 1472 | "vite": "bin/vite.js" 1473 | }, 1474 | "engines": { 1475 | "node": ">=12.2.0" 1476 | }, 1477 | "optionalDependencies": { 1478 | "fsevents": "~2.3.2" 1479 | }, 1480 | "peerDependencies": { 1481 | "less": "*", 1482 | "sass": "*", 1483 | "stylus": "*" 1484 | }, 1485 | "peerDependenciesMeta": { 1486 | "less": { 1487 | "optional": true 1488 | }, 1489 | "sass": { 1490 | "optional": true 1491 | }, 1492 | "stylus": { 1493 | "optional": true 1494 | } 1495 | } 1496 | }, 1497 | "node_modules/webidl-conversions": { 1498 | "version": "4.0.2", 1499 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 1500 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 1501 | "dev": true 1502 | }, 1503 | "node_modules/whatwg-url": { 1504 | "version": "7.1.0", 1505 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 1506 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 1507 | "dev": true, 1508 | "dependencies": { 1509 | "lodash.sortby": "^4.7.0", 1510 | "tr46": "^1.0.1", 1511 | "webidl-conversions": "^4.0.2" 1512 | } 1513 | }, 1514 | "node_modules/which": { 1515 | "version": "2.0.2", 1516 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1517 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1518 | "dev": true, 1519 | "dependencies": { 1520 | "isexe": "^2.0.0" 1521 | }, 1522 | "bin": { 1523 | "node-which": "bin/node-which" 1524 | }, 1525 | "engines": { 1526 | "node": ">= 8" 1527 | } 1528 | }, 1529 | "node_modules/wrappy": { 1530 | "version": "1.0.2", 1531 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1532 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1533 | "dev": true 1534 | }, 1535 | "node_modules/yaml": { 1536 | "version": "1.10.2", 1537 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1538 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1539 | "dev": true, 1540 | "engines": { 1541 | "node": ">= 6" 1542 | } 1543 | } 1544 | }, 1545 | "dependencies": { 1546 | "@nodelib/fs.scandir": { 1547 | "version": "2.1.5", 1548 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1549 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1550 | "requires": { 1551 | "@nodelib/fs.stat": "2.0.5", 1552 | "run-parallel": "^1.1.9" 1553 | } 1554 | }, 1555 | "@nodelib/fs.stat": { 1556 | "version": "2.0.5", 1557 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1558 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 1559 | }, 1560 | "@nodelib/fs.walk": { 1561 | "version": "1.2.8", 1562 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1563 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1564 | "requires": { 1565 | "@nodelib/fs.scandir": "2.1.5", 1566 | "fastq": "^1.6.0" 1567 | } 1568 | }, 1569 | "@types/node": { 1570 | "version": "18.19.74", 1571 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.74.tgz", 1572 | "integrity": "sha512-HMwEkkifei3L605gFdV+/UwtpxP6JSzM+xFk2Ia6DNFSwSVBRh9qp5Tgf4lNFOMfPVuU0WnkcWpXZpgn5ufO4A==", 1573 | "dev": true, 1574 | "requires": { 1575 | "undici-types": "~5.26.4" 1576 | } 1577 | }, 1578 | "any-promise": { 1579 | "version": "1.3.0", 1580 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 1581 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", 1582 | "dev": true 1583 | }, 1584 | "anymatch": { 1585 | "version": "3.1.2", 1586 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1587 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1588 | "dev": true, 1589 | "requires": { 1590 | "normalize-path": "^3.0.0", 1591 | "picomatch": "^2.0.4" 1592 | } 1593 | }, 1594 | "array-union": { 1595 | "version": "2.1.0", 1596 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 1597 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 1598 | "dev": true 1599 | }, 1600 | "balanced-match": { 1601 | "version": "1.0.2", 1602 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1603 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1604 | "dev": true 1605 | }, 1606 | "binary-extensions": { 1607 | "version": "2.2.0", 1608 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1609 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1610 | "dev": true 1611 | }, 1612 | "brace-expansion": { 1613 | "version": "1.1.11", 1614 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1615 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1616 | "dev": true, 1617 | "requires": { 1618 | "balanced-match": "^1.0.0", 1619 | "concat-map": "0.0.1" 1620 | } 1621 | }, 1622 | "braces": { 1623 | "version": "3.0.3", 1624 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1625 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1626 | "requires": { 1627 | "fill-range": "^7.1.1" 1628 | } 1629 | }, 1630 | "bundle-require": { 1631 | "version": "3.0.4", 1632 | "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-3.0.4.tgz", 1633 | "integrity": "sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==", 1634 | "dev": true, 1635 | "requires": { 1636 | "load-tsconfig": "^0.2.0" 1637 | } 1638 | }, 1639 | "cac": { 1640 | "version": "6.7.12", 1641 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.12.tgz", 1642 | "integrity": "sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==", 1643 | "dev": true 1644 | }, 1645 | "chokidar": { 1646 | "version": "3.5.3", 1647 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1648 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1649 | "dev": true, 1650 | "requires": { 1651 | "anymatch": "~3.1.2", 1652 | "braces": "~3.0.2", 1653 | "fsevents": "~2.3.2", 1654 | "glob-parent": "~5.1.2", 1655 | "is-binary-path": "~2.1.0", 1656 | "is-glob": "~4.0.1", 1657 | "normalize-path": "~3.0.0", 1658 | "readdirp": "~3.6.0" 1659 | } 1660 | }, 1661 | "commander": { 1662 | "version": "4.1.1", 1663 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 1664 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 1665 | "dev": true 1666 | }, 1667 | "concat-map": { 1668 | "version": "0.0.1", 1669 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1670 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1671 | "dev": true 1672 | }, 1673 | "cross-spawn": { 1674 | "version": "7.0.3", 1675 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1676 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1677 | "dev": true, 1678 | "requires": { 1679 | "path-key": "^3.1.0", 1680 | "shebang-command": "^2.0.0", 1681 | "which": "^2.0.1" 1682 | } 1683 | }, 1684 | "debug": { 1685 | "version": "4.3.4", 1686 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1687 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1688 | "dev": true, 1689 | "requires": { 1690 | "ms": "2.1.2" 1691 | } 1692 | }, 1693 | "dir-glob": { 1694 | "version": "3.0.1", 1695 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 1696 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1697 | "dev": true, 1698 | "requires": { 1699 | "path-type": "^4.0.0" 1700 | } 1701 | }, 1702 | "esbuild": { 1703 | "version": "0.14.31", 1704 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.31.tgz", 1705 | "integrity": "sha512-QA0fUM13+JZzcvg1bdrhi7wo8Lr5IRHA9ypNn2znqxGqb66dSK6pAh01TjyBOhzZGazPQJZ1K26VrCAQJ715qA==", 1706 | "dev": true, 1707 | "requires": { 1708 | "esbuild-android-64": "0.14.31", 1709 | "esbuild-android-arm64": "0.14.31", 1710 | "esbuild-darwin-64": "0.14.31", 1711 | "esbuild-darwin-arm64": "0.14.31", 1712 | "esbuild-freebsd-64": "0.14.31", 1713 | "esbuild-freebsd-arm64": "0.14.31", 1714 | "esbuild-linux-32": "0.14.31", 1715 | "esbuild-linux-64": "0.14.31", 1716 | "esbuild-linux-arm": "0.14.31", 1717 | "esbuild-linux-arm64": "0.14.31", 1718 | "esbuild-linux-mips64le": "0.14.31", 1719 | "esbuild-linux-ppc64le": "0.14.31", 1720 | "esbuild-linux-riscv64": "0.14.31", 1721 | "esbuild-linux-s390x": "0.14.31", 1722 | "esbuild-netbsd-64": "0.14.31", 1723 | "esbuild-openbsd-64": "0.14.31", 1724 | "esbuild-sunos-64": "0.14.31", 1725 | "esbuild-windows-32": "0.14.31", 1726 | "esbuild-windows-64": "0.14.31", 1727 | "esbuild-windows-arm64": "0.14.31" 1728 | } 1729 | }, 1730 | "esbuild-android-64": { 1731 | "version": "0.14.31", 1732 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.31.tgz", 1733 | "integrity": "sha512-MYkuJ91w07nGmr4EouejOZK2j/f5TCnsKxY8vRr2+wpKKfHD1LTJK28VbZa+y1+AL7v1V9G98ezTUwsV3CmXNw==", 1734 | "dev": true, 1735 | "optional": true 1736 | }, 1737 | "esbuild-android-arm64": { 1738 | "version": "0.14.31", 1739 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.31.tgz", 1740 | "integrity": "sha512-0rkH/35s7ZVcsw6nS0IAkR0dekSbjZGWdlOAf3jV0lGoPqqw0x6/TmaV9w7DQgUERTH1ApmPlpAMU4kVkCq9Jg==", 1741 | "dev": true, 1742 | "optional": true 1743 | }, 1744 | "esbuild-darwin-64": { 1745 | "version": "0.14.31", 1746 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.31.tgz", 1747 | "integrity": "sha512-kP6xPZHxtJa36Hb0jC05L3VzQSZBW2f3bpnQS20czXTRGEmM2GDiYpGdI5g2QYaw6vC4PYXjnigq8usd9g9jnQ==", 1748 | "dev": true, 1749 | "optional": true 1750 | }, 1751 | "esbuild-darwin-arm64": { 1752 | "version": "0.14.31", 1753 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.31.tgz", 1754 | "integrity": "sha512-1ZMog4hkNsdBGtDDtsftUqX6S9N52gEx4vX5aVehsSptgoBFIar1XrPiBTQty7YNH+bJasTpSVaZQgElCVvPKQ==", 1755 | "dev": true, 1756 | "optional": true 1757 | }, 1758 | "esbuild-freebsd-64": { 1759 | "version": "0.14.31", 1760 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.31.tgz", 1761 | "integrity": "sha512-Zo0BYj7QpVFWoUpkv6Ng0RO2eJ4zk/WDaHMO88+jr5HuYmxsOre0imgwaZVPquTuJnCvL1G48BFucJ3tFflSeQ==", 1762 | "dev": true, 1763 | "optional": true 1764 | }, 1765 | "esbuild-freebsd-arm64": { 1766 | "version": "0.14.31", 1767 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.31.tgz", 1768 | "integrity": "sha512-t85bS6jbRpmdjr4pdr/FY/fpx8lo1vv9S7BAs2EsXKJQhRDMIiC3QW+k2acYJoRuqirlvJcJVFQGCq/PfyC1kA==", 1769 | "dev": true, 1770 | "optional": true 1771 | }, 1772 | "esbuild-linux-32": { 1773 | "version": "0.14.31", 1774 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.31.tgz", 1775 | "integrity": "sha512-XYtOk/GodSkv+UOYVwryGpGPuFnszsMvRMKq6cIUfFfdssHuKDsU9IZveyCG44J106J39ABenQ5EetbYtVJHUw==", 1776 | "dev": true, 1777 | "optional": true 1778 | }, 1779 | "esbuild-linux-64": { 1780 | "version": "0.14.31", 1781 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.31.tgz", 1782 | "integrity": "sha512-Zf9CZxAxaXWHLqCg/QZ/hs0RU0XV3IBxV+ENQzy00S4QOTnZAvSLgPciILHHrVJ0lPIlb4XzAqlLM5y6iI2LIw==", 1783 | "dev": true, 1784 | "optional": true 1785 | }, 1786 | "esbuild-linux-arm": { 1787 | "version": "0.14.31", 1788 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.31.tgz", 1789 | "integrity": "sha512-RpiaeHPRlgCCDskxoyIsI49BhcDtZ4cl8+SLffizDm0yMNWP538SUg0ezQ2TTOPj3/svaGIbkRDwYtAon0Sjkg==", 1790 | "dev": true, 1791 | "optional": true 1792 | }, 1793 | "esbuild-linux-arm64": { 1794 | "version": "0.14.31", 1795 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.31.tgz", 1796 | "integrity": "sha512-V/H0tv+xpQ9IOHM+o85oCKNNidIEc5CcnDWl0V+hPd2F03dqdbFkWPBGphx8rD4JSQn6UefUQ1iH7y1qIzO8Fw==", 1797 | "dev": true, 1798 | "optional": true 1799 | }, 1800 | "esbuild-linux-mips64le": { 1801 | "version": "0.14.31", 1802 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.31.tgz", 1803 | "integrity": "sha512-9/oBfAckInRuUg6AEgdCLLn6KJ6UOJDOLmUinTsReVSg6AfV6wxYQJq9iQM2idRogP7GUpomJ+bvCdWXpotQRQ==", 1804 | "dev": true, 1805 | "optional": true 1806 | }, 1807 | "esbuild-linux-ppc64le": { 1808 | "version": "0.14.31", 1809 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.31.tgz", 1810 | "integrity": "sha512-NMcb14Pg+8q8raGkzor9/R3vQwKzgxE3694BtO2SDLBwJuL2C1dQ1ZtM1t7ZvArQBgT8RiZVxb0/3fD+qGNk7g==", 1811 | "dev": true, 1812 | "optional": true 1813 | }, 1814 | "esbuild-linux-riscv64": { 1815 | "version": "0.14.31", 1816 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.31.tgz", 1817 | "integrity": "sha512-l13yvmsVfawAnoYfcpuvml+nTlrOmtdceXYufSkXl2DOb0JKcuR6ARlAzuQCDcpo49SOJy1cCxpwlOIsUQBfzA==", 1818 | "dev": true, 1819 | "optional": true 1820 | }, 1821 | "esbuild-linux-s390x": { 1822 | "version": "0.14.31", 1823 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.31.tgz", 1824 | "integrity": "sha512-GIwV9mY3koYja9MCSkKLk1P7rj+MkPV0UsGsZ575hEcIBrXeKN9jBi6X/bxDDPEN/SUAH35cJhBNrZU4x9lEfg==", 1825 | "dev": true, 1826 | "optional": true 1827 | }, 1828 | "esbuild-netbsd-64": { 1829 | "version": "0.14.31", 1830 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.31.tgz", 1831 | "integrity": "sha512-bJ+pyLvKQm+Obp5k7/Wk8e9Gdkls56F1aiI3uptoIfOIUqsZImH7pDyTrSufwqsFp62kO9LRuwXnjDwQtPyhFQ==", 1832 | "dev": true, 1833 | "optional": true 1834 | }, 1835 | "esbuild-openbsd-64": { 1836 | "version": "0.14.31", 1837 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.31.tgz", 1838 | "integrity": "sha512-NRAAPPca05H9j9Xab0kVXK0V6/pyZGGy8d2Y8KS0BMwWEydlD4KCJDmH8/7bWCKYLRGOOCE9/GPBJyPWHFW3sg==", 1839 | "dev": true, 1840 | "optional": true 1841 | }, 1842 | "esbuild-sunos-64": { 1843 | "version": "0.14.31", 1844 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.31.tgz", 1845 | "integrity": "sha512-9uA+V8w9Eehu4ldb95lPWdgCMcMO5HH6pXmfkk5usn3JsSZxKdLKsXB4hYgP80wscZvVYXJl2G+KNxsUTfPhZw==", 1846 | "dev": true, 1847 | "optional": true 1848 | }, 1849 | "esbuild-windows-32": { 1850 | "version": "0.14.31", 1851 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.31.tgz", 1852 | "integrity": "sha512-VGdncQTqoxD9q3v/dk0Yugbmx2FzOkcs0OemBYc1X9KXOLQYH0uQbLJIckZdZOC3J+JKSExbYFrzYCOwWPuNyA==", 1853 | "dev": true, 1854 | "optional": true 1855 | }, 1856 | "esbuild-windows-64": { 1857 | "version": "0.14.31", 1858 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.31.tgz", 1859 | "integrity": "sha512-v/2ye5zBqpmCzi3bLCagStbNQlnOsY7WtMrD2Q0xZxeSIXONxji15KYtVee5o7nw4lXWbQSS1BL8G6BBMvtq4A==", 1860 | "dev": true, 1861 | "optional": true 1862 | }, 1863 | "esbuild-windows-arm64": { 1864 | "version": "0.14.31", 1865 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.31.tgz", 1866 | "integrity": "sha512-RXeU42FJoG1sriNHg73h4S+5B7L/gw+8T7U9u8IWqSSEbY6fZvBh4uofugiU1szUDqqP00GHwZ09WgYe3lGZiw==", 1867 | "dev": true, 1868 | "optional": true 1869 | }, 1870 | "execa": { 1871 | "version": "5.1.1", 1872 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 1873 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 1874 | "dev": true, 1875 | "requires": { 1876 | "cross-spawn": "^7.0.3", 1877 | "get-stream": "^6.0.0", 1878 | "human-signals": "^2.1.0", 1879 | "is-stream": "^2.0.0", 1880 | "merge-stream": "^2.0.0", 1881 | "npm-run-path": "^4.0.1", 1882 | "onetime": "^5.1.2", 1883 | "signal-exit": "^3.0.3", 1884 | "strip-final-newline": "^2.0.0" 1885 | } 1886 | }, 1887 | "fast-glob": { 1888 | "version": "3.3.3", 1889 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 1890 | "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 1891 | "requires": { 1892 | "@nodelib/fs.stat": "^2.0.2", 1893 | "@nodelib/fs.walk": "^1.2.3", 1894 | "glob-parent": "^5.1.2", 1895 | "merge2": "^1.3.0", 1896 | "micromatch": "^4.0.8" 1897 | } 1898 | }, 1899 | "fastq": { 1900 | "version": "1.13.0", 1901 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1902 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1903 | "requires": { 1904 | "reusify": "^1.0.4" 1905 | } 1906 | }, 1907 | "fill-range": { 1908 | "version": "7.1.1", 1909 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 1910 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 1911 | "requires": { 1912 | "to-regex-range": "^5.0.1" 1913 | } 1914 | }, 1915 | "fs.realpath": { 1916 | "version": "1.0.0", 1917 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1918 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1919 | "dev": true 1920 | }, 1921 | "fsevents": { 1922 | "version": "2.3.2", 1923 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1924 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1925 | "dev": true, 1926 | "optional": true 1927 | }, 1928 | "function-bind": { 1929 | "version": "1.1.1", 1930 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1931 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1932 | "dev": true 1933 | }, 1934 | "get-stream": { 1935 | "version": "6.0.1", 1936 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 1937 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 1938 | "dev": true 1939 | }, 1940 | "glob": { 1941 | "version": "7.1.6", 1942 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1943 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1944 | "dev": true, 1945 | "requires": { 1946 | "fs.realpath": "^1.0.0", 1947 | "inflight": "^1.0.4", 1948 | "inherits": "2", 1949 | "minimatch": "^3.0.4", 1950 | "once": "^1.3.0", 1951 | "path-is-absolute": "^1.0.0" 1952 | } 1953 | }, 1954 | "glob-parent": { 1955 | "version": "5.1.2", 1956 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1957 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1958 | "requires": { 1959 | "is-glob": "^4.0.1" 1960 | } 1961 | }, 1962 | "globby": { 1963 | "version": "11.1.0", 1964 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 1965 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1966 | "dev": true, 1967 | "requires": { 1968 | "array-union": "^2.1.0", 1969 | "dir-glob": "^3.0.1", 1970 | "fast-glob": "^3.2.9", 1971 | "ignore": "^5.2.0", 1972 | "merge2": "^1.4.1", 1973 | "slash": "^3.0.0" 1974 | } 1975 | }, 1976 | "has": { 1977 | "version": "1.0.3", 1978 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1979 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1980 | "dev": true, 1981 | "requires": { 1982 | "function-bind": "^1.1.1" 1983 | } 1984 | }, 1985 | "human-signals": { 1986 | "version": "2.1.0", 1987 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 1988 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 1989 | "dev": true 1990 | }, 1991 | "ignore": { 1992 | "version": "5.2.0", 1993 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 1994 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 1995 | "dev": true 1996 | }, 1997 | "inflight": { 1998 | "version": "1.0.6", 1999 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2000 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2001 | "dev": true, 2002 | "requires": { 2003 | "once": "^1.3.0", 2004 | "wrappy": "1" 2005 | } 2006 | }, 2007 | "inherits": { 2008 | "version": "2.0.4", 2009 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2010 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2011 | "dev": true 2012 | }, 2013 | "is-binary-path": { 2014 | "version": "2.1.0", 2015 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2016 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2017 | "dev": true, 2018 | "requires": { 2019 | "binary-extensions": "^2.0.0" 2020 | } 2021 | }, 2022 | "is-core-module": { 2023 | "version": "2.8.1", 2024 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 2025 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 2026 | "dev": true, 2027 | "requires": { 2028 | "has": "^1.0.3" 2029 | } 2030 | }, 2031 | "is-extglob": { 2032 | "version": "2.1.1", 2033 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2034 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" 2035 | }, 2036 | "is-glob": { 2037 | "version": "4.0.3", 2038 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2039 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2040 | "requires": { 2041 | "is-extglob": "^2.1.1" 2042 | } 2043 | }, 2044 | "is-number": { 2045 | "version": "7.0.0", 2046 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2047 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 2048 | }, 2049 | "is-stream": { 2050 | "version": "2.0.1", 2051 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 2052 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 2053 | "dev": true 2054 | }, 2055 | "isexe": { 2056 | "version": "2.0.0", 2057 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2058 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2059 | "dev": true 2060 | }, 2061 | "joycon": { 2062 | "version": "3.1.1", 2063 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", 2064 | "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", 2065 | "dev": true 2066 | }, 2067 | "lilconfig": { 2068 | "version": "2.0.5", 2069 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", 2070 | "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", 2071 | "dev": true 2072 | }, 2073 | "lines-and-columns": { 2074 | "version": "1.2.4", 2075 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 2076 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 2077 | "dev": true 2078 | }, 2079 | "load-tsconfig": { 2080 | "version": "0.2.3", 2081 | "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.3.tgz", 2082 | "integrity": "sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==", 2083 | "dev": true 2084 | }, 2085 | "lodash.sortby": { 2086 | "version": "4.7.0", 2087 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 2088 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", 2089 | "dev": true 2090 | }, 2091 | "merge-stream": { 2092 | "version": "2.0.0", 2093 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 2094 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 2095 | "dev": true 2096 | }, 2097 | "merge2": { 2098 | "version": "1.4.1", 2099 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2100 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 2101 | }, 2102 | "micromatch": { 2103 | "version": "4.0.8", 2104 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 2105 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 2106 | "requires": { 2107 | "braces": "^3.0.3", 2108 | "picomatch": "^2.3.1" 2109 | } 2110 | }, 2111 | "mimic-fn": { 2112 | "version": "2.1.0", 2113 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2114 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2115 | "dev": true 2116 | }, 2117 | "minimatch": { 2118 | "version": "3.1.2", 2119 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2120 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2121 | "dev": true, 2122 | "requires": { 2123 | "brace-expansion": "^1.1.7" 2124 | } 2125 | }, 2126 | "ms": { 2127 | "version": "2.1.2", 2128 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2129 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2130 | "dev": true 2131 | }, 2132 | "mz": { 2133 | "version": "2.7.0", 2134 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 2135 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 2136 | "dev": true, 2137 | "requires": { 2138 | "any-promise": "^1.0.0", 2139 | "object-assign": "^4.0.1", 2140 | "thenify-all": "^1.0.0" 2141 | } 2142 | }, 2143 | "nanoid": { 2144 | "version": "3.3.4", 2145 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 2146 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 2147 | "dev": true 2148 | }, 2149 | "normalize-path": { 2150 | "version": "3.0.0", 2151 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2152 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2153 | "dev": true 2154 | }, 2155 | "npm-run-path": { 2156 | "version": "4.0.1", 2157 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 2158 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 2159 | "dev": true, 2160 | "requires": { 2161 | "path-key": "^3.0.0" 2162 | } 2163 | }, 2164 | "object-assign": { 2165 | "version": "4.1.1", 2166 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2167 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2168 | "dev": true 2169 | }, 2170 | "once": { 2171 | "version": "1.4.0", 2172 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2173 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2174 | "dev": true, 2175 | "requires": { 2176 | "wrappy": "1" 2177 | } 2178 | }, 2179 | "onetime": { 2180 | "version": "5.1.2", 2181 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2182 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2183 | "dev": true, 2184 | "requires": { 2185 | "mimic-fn": "^2.1.0" 2186 | } 2187 | }, 2188 | "path-is-absolute": { 2189 | "version": "1.0.1", 2190 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2191 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2192 | "dev": true 2193 | }, 2194 | "path-key": { 2195 | "version": "3.1.1", 2196 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2197 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2198 | "dev": true 2199 | }, 2200 | "path-parse": { 2201 | "version": "1.0.7", 2202 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2203 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2204 | "dev": true 2205 | }, 2206 | "path-type": { 2207 | "version": "4.0.0", 2208 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2209 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2210 | "dev": true 2211 | }, 2212 | "picocolors": { 2213 | "version": "1.0.0", 2214 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2215 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2216 | "dev": true 2217 | }, 2218 | "picomatch": { 2219 | "version": "2.3.1", 2220 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2221 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 2222 | }, 2223 | "pirates": { 2224 | "version": "4.0.5", 2225 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", 2226 | "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", 2227 | "dev": true 2228 | }, 2229 | "postcss": { 2230 | "version": "8.4.13", 2231 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", 2232 | "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", 2233 | "dev": true, 2234 | "requires": { 2235 | "nanoid": "^3.3.3", 2236 | "picocolors": "^1.0.0", 2237 | "source-map-js": "^1.0.2" 2238 | } 2239 | }, 2240 | "postcss-load-config": { 2241 | "version": "3.1.4", 2242 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 2243 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 2244 | "dev": true, 2245 | "requires": { 2246 | "lilconfig": "^2.0.5", 2247 | "yaml": "^1.10.2" 2248 | } 2249 | }, 2250 | "punycode": { 2251 | "version": "2.1.1", 2252 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2253 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2254 | "dev": true 2255 | }, 2256 | "queue-microtask": { 2257 | "version": "1.2.3", 2258 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2259 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 2260 | }, 2261 | "readdirp": { 2262 | "version": "3.6.0", 2263 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2264 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2265 | "dev": true, 2266 | "requires": { 2267 | "picomatch": "^2.2.1" 2268 | } 2269 | }, 2270 | "resolve": { 2271 | "version": "1.22.0", 2272 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 2273 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 2274 | "dev": true, 2275 | "requires": { 2276 | "is-core-module": "^2.8.1", 2277 | "path-parse": "^1.0.7", 2278 | "supports-preserve-symlinks-flag": "^1.0.0" 2279 | } 2280 | }, 2281 | "resolve-from": { 2282 | "version": "5.0.0", 2283 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 2284 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2285 | "dev": true 2286 | }, 2287 | "reusify": { 2288 | "version": "1.0.4", 2289 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2290 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 2291 | }, 2292 | "rollup": { 2293 | "version": "2.75.3", 2294 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.3.tgz", 2295 | "integrity": "sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ==", 2296 | "dev": true, 2297 | "requires": { 2298 | "fsevents": "~2.3.2" 2299 | } 2300 | }, 2301 | "run-parallel": { 2302 | "version": "1.2.0", 2303 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2304 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2305 | "requires": { 2306 | "queue-microtask": "^1.2.2" 2307 | } 2308 | }, 2309 | "shebang-command": { 2310 | "version": "2.0.0", 2311 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2312 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2313 | "dev": true, 2314 | "requires": { 2315 | "shebang-regex": "^3.0.0" 2316 | } 2317 | }, 2318 | "shebang-regex": { 2319 | "version": "3.0.0", 2320 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2321 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2322 | "dev": true 2323 | }, 2324 | "signal-exit": { 2325 | "version": "3.0.7", 2326 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 2327 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 2328 | "dev": true 2329 | }, 2330 | "slash": { 2331 | "version": "3.0.0", 2332 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2333 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2334 | "dev": true 2335 | }, 2336 | "source-map": { 2337 | "version": "0.8.0-beta.0", 2338 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", 2339 | "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", 2340 | "dev": true, 2341 | "requires": { 2342 | "whatwg-url": "^7.0.0" 2343 | } 2344 | }, 2345 | "source-map-js": { 2346 | "version": "1.0.2", 2347 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2348 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2349 | "dev": true 2350 | }, 2351 | "strip-final-newline": { 2352 | "version": "2.0.0", 2353 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2354 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2355 | "dev": true 2356 | }, 2357 | "sucrase": { 2358 | "version": "3.20.3", 2359 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", 2360 | "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", 2361 | "dev": true, 2362 | "requires": { 2363 | "commander": "^4.0.0", 2364 | "glob": "7.1.6", 2365 | "lines-and-columns": "^1.1.6", 2366 | "mz": "^2.7.0", 2367 | "pirates": "^4.0.1", 2368 | "ts-interface-checker": "^0.1.9" 2369 | } 2370 | }, 2371 | "supports-preserve-symlinks-flag": { 2372 | "version": "1.0.0", 2373 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2374 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2375 | "dev": true 2376 | }, 2377 | "thenify": { 2378 | "version": "3.3.1", 2379 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 2380 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 2381 | "dev": true, 2382 | "requires": { 2383 | "any-promise": "^1.0.0" 2384 | } 2385 | }, 2386 | "thenify-all": { 2387 | "version": "1.6.0", 2388 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 2389 | "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", 2390 | "dev": true, 2391 | "requires": { 2392 | "thenify": ">= 3.1.0 < 4" 2393 | } 2394 | }, 2395 | "to-regex-range": { 2396 | "version": "5.0.1", 2397 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2398 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2399 | "requires": { 2400 | "is-number": "^7.0.0" 2401 | } 2402 | }, 2403 | "tr46": { 2404 | "version": "1.0.1", 2405 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 2406 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", 2407 | "dev": true, 2408 | "requires": { 2409 | "punycode": "^2.1.0" 2410 | } 2411 | }, 2412 | "tree-kill": { 2413 | "version": "1.2.2", 2414 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", 2415 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 2416 | "dev": true 2417 | }, 2418 | "ts-interface-checker": { 2419 | "version": "0.1.13", 2420 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 2421 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 2422 | "dev": true 2423 | }, 2424 | "tsup": { 2425 | "version": "5.12.9", 2426 | "resolved": "https://registry.npmjs.org/tsup/-/tsup-5.12.9.tgz", 2427 | "integrity": "sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==", 2428 | "dev": true, 2429 | "requires": { 2430 | "bundle-require": "^3.0.2", 2431 | "cac": "^6.7.12", 2432 | "chokidar": "^3.5.1", 2433 | "debug": "^4.3.1", 2434 | "esbuild": "^0.14.25", 2435 | "execa": "^5.0.0", 2436 | "globby": "^11.0.3", 2437 | "joycon": "^3.0.1", 2438 | "postcss-load-config": "^3.0.1", 2439 | "resolve-from": "^5.0.0", 2440 | "rollup": "^2.74.1", 2441 | "source-map": "0.8.0-beta.0", 2442 | "sucrase": "^3.20.3", 2443 | "tree-kill": "^1.2.2" 2444 | } 2445 | }, 2446 | "typescript": { 2447 | "version": "4.9.5", 2448 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", 2449 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", 2450 | "dev": true 2451 | }, 2452 | "undici-types": { 2453 | "version": "5.26.5", 2454 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 2455 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 2456 | "dev": true 2457 | }, 2458 | "vite": { 2459 | "version": "2.9.18", 2460 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.18.tgz", 2461 | "integrity": "sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==", 2462 | "dev": true, 2463 | "requires": { 2464 | "esbuild": "^0.14.27", 2465 | "fsevents": "~2.3.2", 2466 | "postcss": "^8.4.13", 2467 | "resolve": "^1.22.0", 2468 | "rollup": ">=2.59.0 <2.78.0" 2469 | } 2470 | }, 2471 | "webidl-conversions": { 2472 | "version": "4.0.2", 2473 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 2474 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 2475 | "dev": true 2476 | }, 2477 | "whatwg-url": { 2478 | "version": "7.1.0", 2479 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 2480 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 2481 | "dev": true, 2482 | "requires": { 2483 | "lodash.sortby": "^4.7.0", 2484 | "tr46": "^1.0.1", 2485 | "webidl-conversions": "^4.0.2" 2486 | } 2487 | }, 2488 | "which": { 2489 | "version": "2.0.2", 2490 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2491 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2492 | "dev": true, 2493 | "requires": { 2494 | "isexe": "^2.0.0" 2495 | } 2496 | }, 2497 | "wrappy": { 2498 | "version": "1.0.2", 2499 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2500 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2501 | "dev": true 2502 | }, 2503 | "yaml": { 2504 | "version": "1.10.2", 2505 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2506 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2507 | "dev": true 2508 | } 2509 | } 2510 | } 2511 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@netlify/vite-plugin-netlify-edge", 3 | "version": "1.1.3", 4 | "description": "Vite support for Netlify Edge Function", 5 | "main": "./dist/index.js", 6 | "module": "./dist/index.mjs", 7 | "types": "./dist/index.d.ts", 8 | "exports": { 9 | ".": { 10 | "import": "./dist/index.mjs", 11 | "require": "./dist/index.js" 12 | } 13 | }, 14 | "author": "Matt Kane ", 15 | "license": "MIT", 16 | "scripts": { 17 | "build": "tsup src/index.ts --format esm,cjs --dts ", 18 | "prepublishOnly": "npm run build", 19 | "build:demo": "npm run build:client && npm run build:ssr", 20 | "build:client": "vite build demo", 21 | "build:ssr": "vite build demo --ssr handler.js" 22 | }, 23 | "files": [ 24 | "dist" 25 | ], 26 | "devDependencies": { 27 | "@types/node": "^18.0.0", 28 | "tsup": "^5.12.4", 29 | "typescript": "^4.6.3", 30 | "vite": "^2.9.1" 31 | }, 32 | "dependencies": { 33 | "fast-glob": "^3.2.11" 34 | }, 35 | "repository": { 36 | "type": "git", 37 | "url": "git+ssh://git@github.com/netlify/vite-plugin-netlify-edge.git" 38 | }, 39 | "bugs": { 40 | "url": "https://github.com/netlify/vite-plugin-netlify-edge/issues" 41 | }, 42 | "homepage": "https://github.com/netlify/vite-plugin-netlify-edge#readme", 43 | "keywords": [ 44 | "vite-plugin", 45 | "vite" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>netlify/renovate-config" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Plugin, ResolvedConfig } from 'vite' 2 | 3 | import fs from 'fs' 4 | import path from 'path' 5 | import glob from 'fast-glob' 6 | 7 | export interface NetlifyEdgePluginOptions { 8 | generateStaticManifest?: boolean 9 | generateEdgeFunctionsManifest?: boolean 10 | additionalStaticPaths?: Array 11 | functionName?: string 12 | } 13 | 14 | const staticManifestModuleId = '@static-manifest' 15 | const resolvedStaticManifestModuleId = '\0' + staticManifestModuleId 16 | const edgeFunctionsDir = '.netlify/edge-functions' 17 | const DEFAULT_FUNCTION_NAME = 'handler' 18 | 19 | const netlifyEdge = ({ 20 | generateStaticManifest = true, 21 | generateEdgeFunctionsManifest = true, 22 | additionalStaticPaths = [], 23 | functionName = DEFAULT_FUNCTION_NAME, 24 | }: NetlifyEdgePluginOptions = {}): Plugin => { 25 | let resolvedConfig: ResolvedConfig 26 | let originalPublicDir: string 27 | 28 | return { 29 | name: 'vite-plugin-netlify-edge', 30 | config(config) { 31 | if (config.build?.ssr) { 32 | originalPublicDir = config.publicDir || 'public' 33 | config.build.outDir ||= path.join(edgeFunctionsDir, functionName) 34 | return { 35 | publicDir: false, 36 | // The types for `ssr` are omitted because it's marked as alpha, but it's still used 37 | ssr: { 38 | target: 'webworker', 39 | noExternal: true, 40 | }, 41 | build: { 42 | rollupOptions: { 43 | output: { 44 | format: 'es', 45 | }, 46 | }, 47 | }, 48 | } 49 | } 50 | }, 51 | configResolved(config) { 52 | resolvedConfig = config 53 | }, 54 | resolveId(id) { 55 | if (generateStaticManifest && id === staticManifestModuleId) { 56 | return resolvedStaticManifestModuleId 57 | } 58 | }, 59 | load(id) { 60 | if (generateStaticManifest && id === resolvedStaticManifestModuleId) { 61 | const files = glob 62 | .sync('**/*', { 63 | cwd: path.resolve(resolvedConfig.root, originalPublicDir), 64 | }) 65 | .map((file) => `${resolvedConfig.base}${file}`) 66 | 67 | return `export default new Set(${JSON.stringify([ 68 | ...files, 69 | ...additionalStaticPaths, 70 | ])})` 71 | } 72 | }, 73 | writeBundle(options) { 74 | // If we're writing to the internal edge functions dir we need to write a manifest 75 | if ( 76 | generateEdgeFunctionsManifest && 77 | resolvedConfig.build.ssr && 78 | // Edge Functions can either be in a subdirectory or directly in the edge functions dir 79 | (options.dir?.endsWith(edgeFunctionsDir) || 80 | options.dir?.endsWith(path.join(edgeFunctionsDir, functionName))) 81 | ) { 82 | const manifest = { 83 | functions: [{ function: functionName, path: '/*' }], 84 | version: 1, 85 | } 86 | // Write the manifest to the edge functions directory 87 | fs.writeFileSync( 88 | path.join(resolvedConfig.root, edgeFunctionsDir, 'manifest.json'), 89 | JSON.stringify(manifest), 90 | 'utf-8' 91 | ) 92 | } 93 | }, 94 | } 95 | } 96 | 97 | export default netlifyEdge 98 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | /* Projects */ 5 | // "incremental": true, /* Enable incremental compilation */ 6 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 7 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 8 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 9 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 10 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 11 | /* Language and Environment */ 12 | "target": "ES2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 13 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 14 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 15 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 16 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 17 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 18 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 19 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 20 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 21 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 22 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 23 | /* Modules */ 24 | "module": "ES2020", /* Specify what module code is generated. */ 25 | // "rootDir": "./", /* Specify the root folder within your source files. */ 26 | "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 27 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 28 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 29 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 30 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 31 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 32 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 33 | // "resolveJsonModule": true, /* Enable importing .json files */ 34 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 35 | /* JavaScript Support */ 36 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 37 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 38 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 39 | /* Emit */ 40 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 41 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 42 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 43 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 44 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 45 | "outDir": "./dist", /* Specify an output folder for all emitted files. */ 46 | // "removeComments": true, /* Disable emitting comments. */ 47 | // "noEmit": true, /* Disable emitting files from a compilation. */ 48 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 49 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 50 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 51 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 52 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 53 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 54 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 55 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 56 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 57 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 58 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 59 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 60 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 61 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 62 | /* Interop Constraints */ 63 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 64 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 65 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ 66 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 67 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 68 | /* Type Checking */ 69 | "strict": true, /* Enable all strict type-checking options. */ 70 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 71 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 72 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 73 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 74 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 75 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 76 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 77 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 78 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 79 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 80 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 81 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 82 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 83 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 84 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 85 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 86 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 87 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 88 | /* Completeness */ 89 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 90 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 91 | }, 92 | "include": [ 93 | "src/**/*.ts" 94 | ], 95 | } --------------------------------------------------------------------------------